From a54ed0085b29f81946f3652bd412103292da7589 Mon Sep 17 00:00:00 2001 From: Dean Camera <dean@fourwalledcubicle.com> Date: Mon, 13 Jul 2009 04:46:52 +0000 Subject: [PATCH] Seperated out parts of the PrinterHost incomplete demo into a seperate Lib subdirectory. Fixed Host mode to Device mode UID change not causing a USB Disconnect event when a device was connected. --- .../PrinterHost/Lib/PrinterCommands.c | 86 +++++++++++++++++ .../PrinterHost/Lib/PrinterCommands.h | 60 ++++++++++++ .../Host/Incomplete/PrinterHost/PrinterHost.c | 87 ++++++------------ .../Host/Incomplete/PrinterHost/PrinterHost.h | 18 +--- Demos/Host/Incomplete/PrinterHost/makefile | 1 + LUFA.pnproj | 2 +- LUFA/Drivers/USB/HighLevel/USBInterrupt.c | 4 +- LUFA/Drivers/USB/HighLevel/USBTask.c | 2 +- LUFA/Drivers/USB/LowLevel/HostChapter9.c | 16 ++-- LUFA/Drivers/USB/LowLevel/HostChapter9.h | 2 +- LUFA/ManPages/Author.jpg | Bin 20591 -> 28410 bytes LUFA/ManPages/ChangeLog.txt | 1 + LUFA/ManPages/ConfiguringApps.txt | 25 +++-- LUFA/ManPages/FutureChanges.txt | 2 +- 14 files changed, 212 insertions(+), 94 deletions(-) create mode 100644 Demos/Host/Incomplete/PrinterHost/Lib/PrinterCommands.c create mode 100644 Demos/Host/Incomplete/PrinterHost/Lib/PrinterCommands.h diff --git a/Demos/Host/Incomplete/PrinterHost/Lib/PrinterCommands.c b/Demos/Host/Incomplete/PrinterHost/Lib/PrinterCommands.c new file mode 100644 index 000000000..031289193 --- /dev/null +++ b/Demos/Host/Incomplete/PrinterHost/Lib/PrinterCommands.c @@ -0,0 +1,86 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2009. + + dean [at] fourwalledcubicle [dot] com + www.fourwalledcubicle.com +*/ + +/* + Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaim all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +#include "PrinterCommands.h" + +uint8_t Printer_GetDeviceID(Device_ID_String_t* DeviceIDString) +{ + uint8_t ErrorCode = HOST_SENDCONTROL_Successful; + + USB_ControlRequest = (USB_Request_Header_t) + { + bmRequestType: (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE), + bRequest: GET_DEVICE_ID, + wValue: 0, + wIndex: 0, + wLength: sizeof(DeviceIDString), + }; + + if ((ErrorCode == USB_Host_SendControlRequest(DeviceIDString)) != HOST_SENDCONTROL_Successful) + return ErrorCode; + + DeviceIDString->Length = SwapEndian_16(DeviceIDString->Length); + + /* Protect against overflow for the null terminator if the string length is equal to or larger than the buffer */ + if (DeviceIDString->Length >= sizeof(DeviceIDString->String)) + DeviceIDString->Length = sizeof(DeviceIDString->String) - 1; + + DeviceIDString->String[DeviceIDString->Length] = 0x00; + + return HOST_SENDCONTROL_Successful; +} + +uint8_t Printer_GetPortStatus(uint8_t* PortStatus) +{ + USB_ControlRequest = (USB_Request_Header_t) + { + bmRequestType: (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE), + bRequest: GET_PORT_STATUS, + wValue: 0, + wIndex: 0, + wLength: sizeof(uint8_t), + }; + + return USB_Host_SendControlRequest(PortStatus); +} + +uint8_t Printer_SoftReset(void) +{ + USB_ControlRequest = (USB_Request_Header_t) + { + bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE), + bRequest: SOFT_RESET, + wValue: 0, + wIndex: 0, + wLength: 0, + }; + + return USB_Host_SendControlRequest(NULL); +} diff --git a/Demos/Host/Incomplete/PrinterHost/Lib/PrinterCommands.h b/Demos/Host/Incomplete/PrinterHost/Lib/PrinterCommands.h new file mode 100644 index 000000000..e9c1d9fb9 --- /dev/null +++ b/Demos/Host/Incomplete/PrinterHost/Lib/PrinterCommands.h @@ -0,0 +1,60 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2009. + + dean [at] fourwalledcubicle [dot] com + www.fourwalledcubicle.com +*/ + +/* + Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaim all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +#ifndef _PRINTER_COMMANDS_H_ +#define _PRINTER_COMMANDS_H_ + + /* Includes: */ + #include <avr/io.h> + + #include <LUFA/Drivers/USB/USB.h> + + /* Macros: */ + #define PROTOCOL_UNIDIRECTIONAL 0x01 + #define PROTOCOL_BIDIRECTIONAL 0x02 + #define PROTOCOL_IEEE1284 0x03 + + #define GET_DEVICE_ID 0 + #define GET_PORT_STATUS 1 + #define SOFT_RESET 2 + + /* Type Defines: */ + typedef struct + { + uint16_t Length; + uint8_t String[128]; + } Device_ID_String_t; + + /* Function Prototypes: */ + uint8_t Printer_GetDeviceID(Device_ID_String_t* DeviceIDString); + uint8_t Printer_GetPortStatus(uint8_t* PortStatus); + uint8_t Printer_SoftReset(void); + +#endif diff --git a/Demos/Host/Incomplete/PrinterHost/PrinterHost.c b/Demos/Host/Incomplete/PrinterHost/PrinterHost.c index b63f4fe22..df80789dd 100644 --- a/Demos/Host/Incomplete/PrinterHost/PrinterHost.c +++ b/Demos/Host/Incomplete/PrinterHost/PrinterHost.c @@ -36,7 +36,6 @@ #include "PrinterHost.h" -/* Globals */ uint8_t PrinterProtocol; @@ -115,34 +114,10 @@ void USB_Printer_Host(void) switch (USB_HostState) { case HOST_STATE_Addressed: - /* Standard request to set the device configuration to configuration 1 */ - USB_ControlRequest = (USB_Request_Header_t) - { - bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE), - bRequest: REQ_SetConfiguration, - wValue: 1, - wIndex: 0, - wLength: 0, - }; - - /* Send the request, display error and wait for device detatch if request fails */ - if ((ErrorCode = USB_Host_SendControlRequest(NULL)) != HOST_SENDCONTROL_Successful) - { - puts_P(PSTR("Control Error (Set Configuration).\r\n")); - printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode); - - /* Indicate error via status LEDs */ - LEDs_SetAllLEDs(LEDS_LED1); - - /* Wait until USB device disconnected */ - while (USB_IsConnected); - break; - } - - USB_HostState = HOST_STATE_Configured; - break; - case HOST_STATE_Configured: puts_P(PSTR("Getting Config Data.\r\n")); + + /* Select the control pipe for the request transfer */ + Pipe_SelectPipe(PIPE_CONTROLPIPE); /* Get and process the configuration descriptor data */ if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead) @@ -161,16 +136,38 @@ void USB_Printer_Host(void) while (USB_IsConnected); break; } + + /* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */ + if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful) + { + puts_P(PSTR("Control Error (Set Configuration).\r\n")); + printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode); + + /* Indicate error via status LEDs */ + LEDs_SetAllLEDs(LEDS_LED1); + + /* Wait until USB device disconnected */ + while (USB_IsConnected); + break; + } + USB_HostState = HOST_STATE_Configured; + break; + case HOST_STATE_Configured: puts_P(PSTR("Printer Enumerated.\r\n")); - + USB_HostState = HOST_STATE_Ready; break; case HOST_STATE_Ready: /* Indicate device busy via the status LEDs */ LEDs_SetAllLEDs(LEDS_LED3 | LEDS_LED4); - if (!(GetDeviceID())) + printf_P(PSTR("Printer Protocol: %d\r\n"), PrinterProtocol); + + puts_P(PSTR("Retrieving Device ID...\r\n")); + + Device_ID_String_t DeviceIDString; + if (Printer_GetDeviceID(&DeviceIDString) != HOST_SENDCONTROL_Successful) { /* Indicate error via status LEDs */ LEDs_SetAllLEDs(LEDS_LED1); @@ -179,6 +176,8 @@ void USB_Printer_Host(void) while (USB_IsConnected); break; } + + printf_P(PSTR("Printer Device ID: %s\r\n"), DeviceIDString.String); /* Indicate device no longer busy */ LEDs_SetAllLEDs(LEDS_LED4); @@ -189,31 +188,3 @@ void USB_Printer_Host(void) break; } } - -bool GetDeviceID(void) -{ - Device_ID_String_t DeviceIDString; - - /* Request to retrieve the device ID string */ - USB_ControlRequest = (USB_Request_Header_t) - { - bmRequestType: (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE), - bRequest: GET_DEVICE_ID, - wValue: 0, - wIndex: 0, - wLength: sizeof(DeviceIDString), - }; - - printf("Error Code: %d", USB_Host_SendControlRequest(&DeviceIDString)); - - /* Send the request, display error and wait for device detatch if request fails */ - if (USB_Host_SendControlRequest(&DeviceIDString) != HOST_SENDCONTROL_Successful) - return false; - - /* Reverse the order of the string length as it is sent in big-endian format */ - DeviceIDString.Length = SwapEndian_16(DeviceIDString.Length); - - printf("%s", DeviceIDString.String); - - return true; -} diff --git a/Demos/Host/Incomplete/PrinterHost/PrinterHost.h b/Demos/Host/Incomplete/PrinterHost/PrinterHost.h index e1649563a..191cd7f12 100644 --- a/Demos/Host/Incomplete/PrinterHost/PrinterHost.h +++ b/Demos/Host/Incomplete/PrinterHost/PrinterHost.h @@ -39,6 +39,7 @@ #include <stdio.h> #include "ConfigDescriptor.h" + #include "Lib/PrinterCommands.h" #include <LUFA/Version.h> #include <LUFA/Drivers/Misc/TerminalCodes.h> @@ -58,20 +59,7 @@ /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */ #define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3) - - #define PROTOCOL_UNIDIRECTIONAL 0x01 - #define PROTOCOL_BIDIRECTIONAL 0x02 - #define PROTOCOL_IEEE1284 0x03 - - #define GET_DEVICE_ID 0 - - /* Type Defines: */ - typedef struct - { - uint16_t Length; - uint8_t String[128]; - } Device_ID_String_t; - + /* External Variables: */ extern uint8_t PrinterProtocol; @@ -86,6 +74,4 @@ void USB_Printer_Host(void); - bool GetDeviceID(void); - #endif diff --git a/Demos/Host/Incomplete/PrinterHost/makefile b/Demos/Host/Incomplete/PrinterHost/makefile index 21743ec61..a56d9f2a8 100644 --- a/Demos/Host/Incomplete/PrinterHost/makefile +++ b/Demos/Host/Incomplete/PrinterHost/makefile @@ -132,6 +132,7 @@ LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" # List C source files here. (C dependencies are automatically generated.) SRC = $(TARGET).c \ ConfigDescriptor.c \ + Lib/PrinterCommands.c \ $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c \ $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c \ $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c \ diff --git a/LUFA.pnproj b/LUFA.pnproj index 39ec03372..585f74e49 100644 --- a/LUFA.pnproj +++ b/LUFA.pnproj @@ -1 +1 @@ -<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="ClassDriver"><Folder name="AudioInput"><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\ClassDriver\CDC\CDC.c"></File><File path="Demos\Device\ClassDriver\CDC\CDC.h"></File><File path="Demos\Device\ClassDriver\CDC\CDC.txt"></File><File path="Demos\Device\ClassDriver\CDC\Descriptors.c"></File><File path="Demos\Device\ClassDriver\CDC\Descriptors.h"></File><File path="Demos\Device\ClassDriver\CDC\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\CDC\LUFA CDC.inf"></File><File path="Demos\Device\ClassDriver\CDC\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\ClassDriver\DualCDC\Descriptors.c"></File><File path="Demos\Device\ClassDriver\DualCDC\Descriptors.h"></File><File path="Demos\Device\ClassDriver\DualCDC\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.c"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.h"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.txt"></File><File path="Demos\Device\ClassDriver\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\ClassDriver\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c"></File><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h"></File><File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt"></File><File path="Demos\Device\ClassDriver\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\ClassDriver\Joystick\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Joystick\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.c"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.h"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.txt"></File><File path="Demos\Device\ClassDriver\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt"></File><File path="Demos\Device\ClassDriver\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorage\makefile"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\ClassDriver\MIDI\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MIDI\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MIDI\makefile"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.c"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.h"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\ClassDriver\Mouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Mouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Mouse\makefile"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.c"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.h"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\makefile"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Demos\Device\ClassDriver\USBtoSerial\Lib\RingBuff.c"></File><File path="Demos\Device\ClassDriver\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Demos\Device\ClassDriver\USBtoSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\USBtoSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\USBtoSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Demos\Device\ClassDriver\USBtoSerial\makefile"></File><File path="Demos\Device\ClassDriver\USBtoSerial\USBtoSerial.c"></File><File path="Demos\Device\ClassDriver\USBtoSerial\USBtoSerial.h"></File><File path="Demos\Device\ClassDriver\USBtoSerial\USBtoSerial.txt"></File></Folder><File path="Demos\Device\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AudioInput"><File path="Demos\Device\LowLevel\AudioInput\AudioInput.c"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.h"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\LowLevel\CDC\CDC.c"></File><File path="Demos\Device\LowLevel\CDC\CDC.h"></File><File path="Demos\Device\LowLevel\CDC\CDC.txt"></File><File path="Demos\Device\LowLevel\CDC\Descriptors.c"></File><File path="Demos\Device\LowLevel\CDC\Descriptors.h"></File><File path="Demos\Device\LowLevel\CDC\Doxygen.conf"></File><File path="Demos\Device\LowLevel\CDC\LUFA CDC.inf"></File><File path="Demos\Device\LowLevel\CDC\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\LowLevel\DualCDC\Descriptors.c"></File><File path="Demos\Device\LowLevel\DualCDC\Descriptors.h"></File><File path="Demos\Device\LowLevel\DualCDC\Doxygen.conf"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.c"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.h"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.txt"></File><File path="Demos\Device\LowLevel\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\LowLevel\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\LowLevel\GenericHID\Descriptors.c"></File><File path="Demos\Device\LowLevel\GenericHID\Descriptors.h"></File><File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.c"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.h"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt"></File><File path="Demos\Device\LowLevel\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\LowLevel\Joystick\Descriptors.c"></File><File path="Demos\Device\LowLevel\Joystick\Descriptors.h"></File><File path="Demos\Device\LowLevel\Joystick\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.c"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.h"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.txt"></File><File path="Demos\Device\LowLevel\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\LowLevel\Keyboard\Descriptors.c"></File><File path="Demos\Device\LowLevel\Keyboard\Descriptors.h"></File><File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.c"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.h"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt"></File><File path="Demos\Device\LowLevel\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\LowLevel\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Device\LowLevel\MassStorage\Descriptors.c"></File><File path="Demos\Device\LowLevel\MassStorage\Descriptors.h"></File><File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MassStorage\makefile"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.c"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.h"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\LowLevel\MIDI\Descriptors.c"></File><File path="Demos\Device\LowLevel\MIDI\Descriptors.h"></File><File path="Demos\Device\LowLevel\MIDI\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MIDI\makefile"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.c"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.h"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\LowLevel\Mouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\Mouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\Mouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Mouse\makefile"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.c"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.h"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDISConstants.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\makefile"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Demos\Device\LowLevel\USBtoSerial\Lib\RingBuff.c"></File><File path="Demos\Device\LowLevel\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Demos\Device\LowLevel\USBtoSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\USBtoSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\USBtoSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Demos\Device\LowLevel\USBtoSerial\makefile"></File><File path="Demos\Device\LowLevel\USBtoSerial\USBtoSerial.c"></File><File path="Demos\Device\LowLevel\USBtoSerial\USBtoSerial.h"></File><File path="Demos\Device\LowLevel\USBtoSerial\USBtoSerial.txt"></File></Folder><File path="Demos\Device\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="SideShow"><File path="Demos\Device\Incomplete\Sideshow\SideshowContent.h"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.c"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.h"></File><File path="Demos\Device\Incomplete\Sideshow\makefile"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.c"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.h"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowApplications.c"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowApplications.h"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowCommands.c"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowCommands.h"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowCommon.c"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowCommon.h"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowContent.c"></File></Folder></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><Folder name="CDCHost"><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.c"></File><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.h"></File><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.txt"></File><File path="Demos\Host\ClassDriver\CDCHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\CDCHost\makefile"></File></Folder></Folder><Folder name="LowLevel"><Folder name="CDCHost"><File path="Demos\Host\LowLevel\CDCHost\CDCHost.c"></File><File path="Demos\Host\LowLevel\CDCHost\CDCHost.h"></File><File path="Demos\Host\LowLevel\CDCHost\CDCHost.txt"></File><File path="Demos\Host\LowLevel\CDCHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\CDCHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\CDCHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\CDCHost\makefile"></File></Folder><Folder name="GenericHIDHost"><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt"></File><File path="Demos\Host\LowLevel\GenericHIDHost\makefile"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\LowLevel\KeyboardHost\makefile"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File></Folder><Folder name="MassStorageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MassStorageHost\makefile"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHost\makefile"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.c"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.h"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h"></File></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h"></File></Folder><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\StillImageHost\makefile"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt"></File></Folder><File path="Demos\Host\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="BluetoothHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothClassCodes.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.h"></File></Folder><File path="Demos\Host\Incomplete\BluetoothHost\makefile"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.h"></File></Folder><Folder name="PrinterHost"><File path="Demos\Host\Incomplete\PrinterHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\PrinterHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\PrinterHost\makefile"></File><File path="Demos\Host\Incomplete\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\Incomplete\PrinterHost\PrinterHost.h"></File></Folder></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="OTG"><Folder name="TestApp"><File path="Demos\OTG\TestApp\Descriptors.c"></File><File path="Demos\OTG\TestApp\Descriptors.h"></File><File path="Demos\OTG\TestApp\Doxygen.conf"></File><File path="Demos\OTG\TestApp\makefile"></File><File path="Demos\OTG\TestApp\TestApp.c"></File><File path="Demos\OTG\TestApp\TestApp.h"></File><File path="Demos\OTG\TestApp\TestApp.txt"></File><File path="Demos\OTG\TestApp\TestEvents.c"></File><File path="Demos\OTG\TestApp\TestEvents.h"></File></Folder><File path="Demos\OTG\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\StreamCallbacks.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.h"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDISConstants.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Host\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Host\HIDReportData.h"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Host\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File></Folder><Folder name="Board"><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AT90USBXXX67"><File path="LUFA\Drivers\Peripheral\AT90USBXXX67\ADC.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\Serial.c"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File></Folder></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\Licence.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File></Folder><Folder name="Projects"><Folder name="MagStripe"><Folder name="Lib"><File path="Projects\Magstripe\Lib\CircularBitBuffer.c"></File><File path="Projects\Magstripe\Lib\CircularBitBuffer.h"></File><File path="Projects\Magstripe\Lib\MagstripeHW.h"></File></Folder><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File></Folder><Folder name="MissileLauncher"><File path="Projects\MissileLauncher\ConfigDescriptor.c"></File><File path="Projects\MissileLauncher\ConfigDescriptor.h"></File><File path="Projects\MissileLauncher\Doxygen.conf"></File><File path="Projects\MissileLauncher\makefile"></File><File path="Projects\MissileLauncher\MissileLauncher.c"></File><File path="Projects\MissileLauncher\MissileLauncher.h"></File><File path="Projects\MissileLauncher\MissileLauncher.txt"></File></Folder><File path="Projects\makefile"></File></Folder><Folder name="Bootloaders"><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File></Folder><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><File path="Bootloaders\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project> \ No newline at end of file +<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="ClassDriver"><Folder name="AudioInput"><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\ClassDriver\CDC\CDC.c"></File><File path="Demos\Device\ClassDriver\CDC\CDC.h"></File><File path="Demos\Device\ClassDriver\CDC\CDC.txt"></File><File path="Demos\Device\ClassDriver\CDC\Descriptors.c"></File><File path="Demos\Device\ClassDriver\CDC\Descriptors.h"></File><File path="Demos\Device\ClassDriver\CDC\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\CDC\LUFA CDC.inf"></File><File path="Demos\Device\ClassDriver\CDC\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\ClassDriver\DualCDC\Descriptors.c"></File><File path="Demos\Device\ClassDriver\DualCDC\Descriptors.h"></File><File path="Demos\Device\ClassDriver\DualCDC\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.c"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.h"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.txt"></File><File path="Demos\Device\ClassDriver\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\ClassDriver\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c"></File><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h"></File><File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt"></File><File path="Demos\Device\ClassDriver\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\ClassDriver\Joystick\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Joystick\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.c"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.h"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.txt"></File><File path="Demos\Device\ClassDriver\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt"></File><File path="Demos\Device\ClassDriver\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorage\makefile"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\ClassDriver\MIDI\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MIDI\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MIDI\makefile"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.c"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.h"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\ClassDriver\Mouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Mouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Mouse\makefile"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.c"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.h"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\makefile"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Demos\Device\ClassDriver\USBtoSerial\Lib\RingBuff.c"></File><File path="Demos\Device\ClassDriver\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Demos\Device\ClassDriver\USBtoSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\USBtoSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\USBtoSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Demos\Device\ClassDriver\USBtoSerial\makefile"></File><File path="Demos\Device\ClassDriver\USBtoSerial\USBtoSerial.c"></File><File path="Demos\Device\ClassDriver\USBtoSerial\USBtoSerial.h"></File><File path="Demos\Device\ClassDriver\USBtoSerial\USBtoSerial.txt"></File></Folder><File path="Demos\Device\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AudioInput"><File path="Demos\Device\LowLevel\AudioInput\AudioInput.c"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.h"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\LowLevel\CDC\CDC.c"></File><File path="Demos\Device\LowLevel\CDC\CDC.h"></File><File path="Demos\Device\LowLevel\CDC\CDC.txt"></File><File path="Demos\Device\LowLevel\CDC\Descriptors.c"></File><File path="Demos\Device\LowLevel\CDC\Descriptors.h"></File><File path="Demos\Device\LowLevel\CDC\Doxygen.conf"></File><File path="Demos\Device\LowLevel\CDC\LUFA CDC.inf"></File><File path="Demos\Device\LowLevel\CDC\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\LowLevel\DualCDC\Descriptors.c"></File><File path="Demos\Device\LowLevel\DualCDC\Descriptors.h"></File><File path="Demos\Device\LowLevel\DualCDC\Doxygen.conf"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.c"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.h"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.txt"></File><File path="Demos\Device\LowLevel\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\LowLevel\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\LowLevel\GenericHID\Descriptors.c"></File><File path="Demos\Device\LowLevel\GenericHID\Descriptors.h"></File><File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.c"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.h"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt"></File><File path="Demos\Device\LowLevel\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\LowLevel\Joystick\Descriptors.c"></File><File path="Demos\Device\LowLevel\Joystick\Descriptors.h"></File><File path="Demos\Device\LowLevel\Joystick\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.c"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.h"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.txt"></File><File path="Demos\Device\LowLevel\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\LowLevel\Keyboard\Descriptors.c"></File><File path="Demos\Device\LowLevel\Keyboard\Descriptors.h"></File><File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.c"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.h"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt"></File><File path="Demos\Device\LowLevel\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\LowLevel\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Device\LowLevel\MassStorage\Descriptors.c"></File><File path="Demos\Device\LowLevel\MassStorage\Descriptors.h"></File><File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MassStorage\makefile"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.c"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.h"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\LowLevel\MIDI\Descriptors.c"></File><File path="Demos\Device\LowLevel\MIDI\Descriptors.h"></File><File path="Demos\Device\LowLevel\MIDI\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MIDI\makefile"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.c"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.h"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\LowLevel\Mouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\Mouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\Mouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Mouse\makefile"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.c"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.h"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDISConstants.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\makefile"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Demos\Device\LowLevel\USBtoSerial\Lib\RingBuff.c"></File><File path="Demos\Device\LowLevel\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Demos\Device\LowLevel\USBtoSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\USBtoSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\USBtoSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Demos\Device\LowLevel\USBtoSerial\makefile"></File><File path="Demos\Device\LowLevel\USBtoSerial\USBtoSerial.c"></File><File path="Demos\Device\LowLevel\USBtoSerial\USBtoSerial.h"></File><File path="Demos\Device\LowLevel\USBtoSerial\USBtoSerial.txt"></File></Folder><File path="Demos\Device\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="SideShow"><File path="Demos\Device\Incomplete\Sideshow\SideshowContent.h"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.c"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.h"></File><File path="Demos\Device\Incomplete\Sideshow\makefile"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.c"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.h"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowApplications.c"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowApplications.h"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowCommands.c"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowCommands.h"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowCommon.c"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowCommon.h"></File><File path="Demos\Device\Incomplete\Sideshow\SideshowContent.c"></File></Folder></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><Folder name="CDCHost"><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.c"></File><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.h"></File><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.txt"></File><File path="Demos\Host\ClassDriver\CDCHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\CDCHost\makefile"></File></Folder></Folder><Folder name="LowLevel"><Folder name="CDCHost"><File path="Demos\Host\LowLevel\CDCHost\CDCHost.c"></File><File path="Demos\Host\LowLevel\CDCHost\CDCHost.h"></File><File path="Demos\Host\LowLevel\CDCHost\CDCHost.txt"></File><File path="Demos\Host\LowLevel\CDCHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\CDCHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\CDCHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\CDCHost\makefile"></File></Folder><Folder name="GenericHIDHost"><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt"></File><File path="Demos\Host\LowLevel\GenericHIDHost\makefile"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\LowLevel\KeyboardHost\makefile"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File></Folder><Folder name="MassStorageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MassStorageHost\makefile"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHost\makefile"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.c"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.h"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h"></File></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h"></File></Folder><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\StillImageHost\makefile"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt"></File></Folder><File path="Demos\Host\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="BluetoothHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothClassCodes.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.h"></File></Folder><File path="Demos\Host\Incomplete\BluetoothHost\makefile"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.h"></File></Folder><Folder name="PrinterHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\PrinterHost\Lib\PrinterCommands.c"></File><File path="Demos\Host\Incomplete\PrinterHost\Lib\PrinterCommands.h"></File></Folder><File path="Demos\Host\Incomplete\PrinterHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\PrinterHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\PrinterHost\makefile"></File><File path="Demos\Host\Incomplete\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\Incomplete\PrinterHost\PrinterHost.h"></File></Folder></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="OTG"><Folder name="TestApp"><File path="Demos\OTG\TestApp\Descriptors.c"></File><File path="Demos\OTG\TestApp\Descriptors.h"></File><File path="Demos\OTG\TestApp\Doxygen.conf"></File><File path="Demos\OTG\TestApp\makefile"></File><File path="Demos\OTG\TestApp\TestApp.c"></File><File path="Demos\OTG\TestApp\TestApp.h"></File><File path="Demos\OTG\TestApp\TestApp.txt"></File><File path="Demos\OTG\TestApp\TestEvents.c"></File><File path="Demos\OTG\TestApp\TestEvents.h"></File></Folder><File path="Demos\OTG\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\StreamCallbacks.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.h"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDISConstants.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Host\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Host\HIDReportData.h"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Host\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File></Folder><Folder name="Board"><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AT90USBXXX67"><File path="LUFA\Drivers\Peripheral\AT90USBXXX67\ADC.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\Serial.c"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File></Folder></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\Licence.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File></Folder><Folder name="Projects"><Folder name="MagStripe"><Folder name="Lib"><File path="Projects\Magstripe\Lib\CircularBitBuffer.c"></File><File path="Projects\Magstripe\Lib\CircularBitBuffer.h"></File><File path="Projects\Magstripe\Lib\MagstripeHW.h"></File></Folder><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File></Folder><Folder name="MissileLauncher"><File path="Projects\MissileLauncher\ConfigDescriptor.c"></File><File path="Projects\MissileLauncher\ConfigDescriptor.h"></File><File path="Projects\MissileLauncher\Doxygen.conf"></File><File path="Projects\MissileLauncher\makefile"></File><File path="Projects\MissileLauncher\MissileLauncher.c"></File><File path="Projects\MissileLauncher\MissileLauncher.h"></File><File path="Projects\MissileLauncher\MissileLauncher.txt"></File></Folder><File path="Projects\makefile"></File></Folder><Folder name="Bootloaders"><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File></Folder><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><File path="Bootloaders\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project> \ No newline at end of file diff --git a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c index 43bc53220..c240bef6e 100644 --- a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c +++ b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c @@ -243,8 +243,8 @@ ISR(USB_GEN_vect, ISR_BLOCK) { if (USB_CurrentMode == USB_MODE_HOST) EVENT_USB_DeviceUnattached(); - else - EVENT_USB_Disconnect(); + + EVENT_USB_Disconnect(); } EVENT_USB_UIDChange(); diff --git a/LUFA/Drivers/USB/HighLevel/USBTask.c b/LUFA/Drivers/USB/HighLevel/USBTask.c index 46fcd5709..894171f24 100644 --- a/LUFA/Drivers/USB/HighLevel/USBTask.c +++ b/LUFA/Drivers/USB/HighLevel/USBTask.c @@ -39,7 +39,7 @@ volatile bool USB_IsInitialized; USB_Request_Header_t USB_ControlRequest; #if defined(USB_CAN_BE_HOST) -volatile uint8_t USB_HostState; +volatile uint8_t USB_HostState; #endif void USB_USBTask(void) diff --git a/LUFA/Drivers/USB/LowLevel/HostChapter9.c b/LUFA/Drivers/USB/LowLevel/HostChapter9.c index 2bdab7c67..a271c06cb 100644 --- a/LUFA/Drivers/USB/LowLevel/HostChapter9.c +++ b/LUFA/Drivers/USB/LowLevel/HostChapter9.c @@ -58,7 +58,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr) Pipe_ClearSETUP(); - if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_SetupSent))) + if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_SetupSent))) goto End_Of_Control_Send; Pipe_Freeze(); @@ -76,7 +76,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr) { Pipe_Unfreeze(); - if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_InReceived))) + if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_InReceived))) goto End_Of_Control_Send; if (!(Pipe_BytesInPipe())) @@ -96,12 +96,12 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr) Pipe_SetToken(PIPE_TOKEN_OUT); Pipe_Unfreeze(); - if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady))) + if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady))) goto End_Of_Control_Send; Pipe_ClearOUT(); - if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady))) + if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady))) goto End_Of_Control_Send; } else @@ -113,7 +113,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr) while (DataLen) { - if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady))) + if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady))) goto End_Of_Control_Send; while (DataLen && (Pipe_BytesInPipe() < USB_ControlPipeSize)) @@ -125,7 +125,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr) Pipe_ClearOUT(); } - if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady))) + if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady))) goto End_Of_Control_Send; Pipe_Freeze(); @@ -134,7 +134,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr) Pipe_SetToken(PIPE_TOKEN_IN); Pipe_Unfreeze(); - if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_InReceived))) + if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_InReceived))) goto End_Of_Control_Send; Pipe_ClearIN(); @@ -151,7 +151,7 @@ End_Of_Control_Send: return ReturnStatus; } -static uint8_t USB_Host_Wait_For_Setup_IOS(const uint8_t WaitType) +static uint8_t USB_Host_WaitForIOS(const uint8_t WaitType) { #if (USB_HOST_TIMEOUT_MS < 0xFF) uint8_t TimeoutCounter = USB_HOST_TIMEOUT_MS; diff --git a/LUFA/Drivers/USB/LowLevel/HostChapter9.h b/LUFA/Drivers/USB/LowLevel/HostChapter9.h index 3fa5277a3..7550bcd04 100644 --- a/LUFA/Drivers/USB/LowLevel/HostChapter9.h +++ b/LUFA/Drivers/USB/LowLevel/HostChapter9.h @@ -90,7 +90,7 @@ /* Function Prototypes: */ #if defined(INCLUDE_FROM_HOSTCHAPTER9_C) - static uint8_t USB_Host_Wait_For_Setup_IOS(const uint8_t WaitType); + static uint8_t USB_Host_WaitForIOS(const uint8_t WaitType); #endif #endif diff --git a/LUFA/ManPages/Author.jpg b/LUFA/ManPages/Author.jpg index 71e1a08fbe7f82ca04d6538da2dd314aaca32923..e8f5541a0e3c9fe5fed08ee52def2effcd40d221 100644 GIT binary patch delta 27994 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 delta 20037 zcmex$m+}1q#tHe1|0WiMPTU|maRWQc|Jw}C6Bnw0c^sVo4=@OFFdSo8uvwq+1Y`Zb zKN^d=7!Y_>OnlU>m6^{x4m^3<{-0s>*9F`q;nOSHAMJ1b!cttkB6^|YxtAgW?g5U< z{WbMkAG7D*`u=e3wgtbUE1Eri7rCWp+i$z|ca7s7_vf?gO}v!uIsI%k6H_ct>3MA9 z%25-VuyyOsY5y7OXKpe0`bzsy{hTMem)t+^J8k#o*Q>Oj{^q|m`G9z<)2nSUkJo%` zGOE8PY4JtY&ARyhOL?h3(yNWuSWR7dw@1*Z#P+0a<3Ia2jz=1&AFgDt-5T}w_7&Ck z^|CL0Yi7PN2{Ucmzx0*I`s`BaHc5$uia+*;e_cDE*yhM0_juM-lW&>7vXU-GnWo>Y z?{*alW?0mvfr3{&on{fRr$^M`r26eYe>Kk>6xl4m!1Af^(mvC_tN$}(&S$SX|DS=s z^gn~tkL@8=WfK?OGMRjmb??!yS2peZv^H1g&6-Quvv=P<-QIWW(mjpSr)@SaIOfe) z<EPdq)bslKoXpG1#Vt=21@<J@i<aH4Qkj&yEx+w>=+SG-oqAM*mU_Awwg^vIs%a`R z$#dK7OqH$q$yfHN|0(*g{_tI`{|tdwOQW^9v$-?h<*mzGm$-fVwx)Y#(=y+wPrYQ3 z*kx+usnfGkO0!(i(e%%we^>r9e26{I{&Lp6l@ID~zIMFw&*aCVYhhdVTs4VYy7fbS zShvb%+co9WXI(M7K3!_=+`R{c?%2)D{$}~+qv^cmiWOJ)EAG$C@2}r7|Bpy=z~sQ) zAJ6<}VEe}q|LVIyMf{;#y4Szm+xjTGIyNQ3yKvpj%oP8%S;wy3dmi9zsVXHlQ-1O{ zX4@aXL*Mf+s0cd!tww5kw~g|HTD9vQ*VgK6=@+YC-)+jPcK=9K>b1#hvUY8oSgAMR zZF&02Tid4FO<a9{@vEr9Emv8>&TQHu7I^)!jQ1ng@bj%Flb#2~eCW+|3S72iXKB!^ zfJudUfu1L~O`6qjdi~8E>xW0JyymG}W!}`>W1}`_QoOjeugRmId6Tb)uD*ET??U@L z`P<%)#U@s+u2^0Fm~Hxp$A`_sXU*MWC;vg_`#vc)X$|%4+o%7Qer35X?X{g_+dI{( z%liZNm2TR0d2Y{<I`0~nAB~Uas%5@er~frKJLn_p(U!1XcmJ)-Uv$%?e7l-=v1r@E zJkz;ukN)1e_faT9xiV*I_^u7%(*o*){;5?=esKQ?_iuioSLRmtd-LjZ9&O!m*~B}Z zH$zITb9t7qkDkI*le>w!3%7emP71D?v?bt`&5C{5NoVzsey`{J5-<N_&yUx>KiZR5 zyfUj(Yl<~2^-k@JtO@%4ReayxK8trc3oo10E1&C+5{^5(@}9)Q%em`#jCJf8oz2f_ zhlLu~xK^z?wd66U@A12tK?S|?_34(bx8kk^6}AL#eJ-vlzppQFO5n1W4-9@}MICg! zvTV+jEmQ9-KetdbXHIE;X6Evq%>N9+|7>c^ui02Hiu=)iWZSe^ZWCAeuX+_W>)z%C z(J!_aoO&d>C7Zjuy0bLeHtHR((W7%56O%bknr>k^tMRM(;D3hg>)$qhxOr^p!}DGL z>Mb{IZMt+i*zDK2o#q`mYjt$<XM0{z-FB%aws@^;!RGs3>y2(Y7i_zD;`;Q7x0Yne z#HoJlKfWuqZ)N6(?FTO%nU&rUcIbHA$7L%%9?Yz^(L3VTU7z`P{hF-s=|*Rbq$di+ zNy<HXC8^N+Wc#s?=etYl`ScrX3Li(WHIKZ!Huy+Yz3JI$^K-ZTXNbJK$N%A3J6-p~ zR;_!x&n`_m9Jnp5@2-kx{g$w2A8$<P+k2(h=bG^0qFrCK!h8J_xk^`gEmIOKRdowo zEPZUsYO|e+YI8D==@m|$J!$>a)UBFVo*%xjYUPgKrB(r1^R-%3=DIC<cG>T~(3Dqs z>s96N$KQ1R$H(`vKCE{|bVj|5$qZBOiiJjMn;*`J%sO`MQbgkHfV~&K$~vxjr?^9C z_C_7?Tiz<1-LY05pD@<1Tz^ye+n*oyzXL1$&L8>Dz;Bb7xc-L6%iOXRsoVBlUeA-Q z9r>!N_K|aCYSBuCg6RUQd|J~QpSDg5`_Eu@J2%<&<9~+MS(gvjv0bje{pkDb=b2S) z)Bcq>AGVruZQK2uv-b9Uw8>r*aqheBl9-MwTerUHES#ycHhKP+;&0|x_No05{OI2H z$M?hUm|Y*lyK-6kI!f-ArC$Crzw^7|kz4cTi?x@g=YM<8d-J@^#?z|}HeJcp%UfvW zX3ChYazB20;Xiw(#X5(1qn2{`iDcKmS{^6mx@%)keYfx0J3)CdcUG$G+^28;;WuMX z&(rBw+vN5vS{2kX`I~W3?hebltMaE$J?^sR^5pW%f0c69FWA?a+UAmQKz?fDD<i|E zthaUY|BlZ85Hz2+CTP!=AH|P%NFUfQ@^;!Q%{}@n?@Zrzt!?I0?$`erxLyURXs(W0 z<T1JabjE41rMcXm%8sT>_e@{@t=sXsZs}@|ce+o)`MM4?@f8{W`2J@<*WYTbvl}Y+ z2~9I*j}pxc?V6G*zW2}ES(z_2w#=$BsWYFI8gXX1XfSurVk=WcwONxsUtGS~zv86X ztgB}Efv%!2=Vb)CiZDR1=?tZ5wjx3q%q<_E*LNv=cs8-LSbG)6qq36<MIygG8NM;T z{xbd~``hWio&GZ%j;u+(USqmA)>r?~`_|%Dg3Gq3oa<hfUHEd>oI2%?Dn%O8WZf<w z7Q6kXq~N9MoXh)`matrmjk2lVHvdEL{2t*S+7I%(xBQj*6=CD~C_>@G`u60eOx<_t zSGL|>p(C46zoT0&_}0ry_p^fbeXV%2M(<sSQS{0Fr`*S`@A}Vh`1E}N{lhnPU7VdJ z`(Am{SG!&3y0ClJ^jo#Fm=v~0ORjmS7~6YfU*QgYDU<a-=6C*lr|Hi<@xhYIM?aqy zeDmb*@=eP{^+KlJ>fT(O^;WgIXs7bGd|o3Rn}yL<N007L)VO@Oex>T^w`!A~Upw`& z$jdxCeBCx1;Y0OX<&SFrXONxGR$=aaImaYd;r_vg(L43O)N|c>C1tzy$i>^QW?i|Y zI`!?e`C`+~>U{ffEB36(^`O`+4kzzI`SWphKbk+rKdM{tYujqOg-bG}^luBt%s=#` zqDi7Od-loX?fcpe9lK=K5UpZZe^hVb+OyW4dDA}LxZ^PCr_qmdGxOJF*QtF>{d=yp zlto-laqs0C&BEf^T7{jvc_wkBYzr>9bu07Ri#+|eizX`kyD(Ml>bk`nw~Jk$Ur?j{ z!Mx{>elFkE(uBj&o5Qb~eA_Ix?UKi}>HG6{xBa@2`Oj_5<~5tzF1<^bcHy8%*n!(i z>NS=A%+=X!veuoyzkS1UbHASH+m^mR*Au>_D0EKR)VR3lBDYJ~v;6LC`>Xh<pkTF* z&Wo#4D(B?-6<o@9n-a5gj_`i#Nn3;quD;ZtTH~DlQSY+*l~R4y*bF-z*9xU;KEHf7 zz21~ry{9)wS#MhI^pNelcd)%Zf8+VJH|tn}-|*+w%Pso3OT0<#noYq!g%AH0uJ`AW z%3Zd+Fj@9YRLX|<h|DPCJ7;!jpK!hHUz=Dj9Mkc*jbrgfotVmv*I)lz|Iz!1oXNE> z{DPTrj2kw56y0?5Zk(%l`;?5R)3=VQF3y;>>8H7P{mlbS^I!a0bHOIby4kQ*>Y5(= zBk`6$qL23cSnW~&A@N7;qusYXp6u|@5t83@Z%dG?{Y@XAlAmvTx+b}%m)uX=zilUn zitv$1`U`EGmt8Tm$cPRN+q6<_*>jO)i<W9lY`rpTPRvg&>zzew+1n0y`ktF><NjWB zq4%VqfPg77DvvX^pICHhN=R<noHBd4J+8maU;Wei$bY2Q>7V!P?CyGv=%b(4dEbsd zZ8v@0{WXbt&VH}0UTnJ+yXbxAtVo_4<vpt_^*g@w76<-_Tv|~c7waC<{jk1c>sjUl zg3%IY{)La<3uooYMI=qUR<CHIyW;TjJ2AK2_5L#m#r!mquE;&{_u_~8gZ?r<ejm=x zPhVPjPa(S7*UC5Uyw{|=X-((P)K5G7Hsj-rbqhDl%I@x%%Gq+X(uAL7q8nrPQTY#k z{2f)z2X&{-&0Ksl^OoP_d?RNm!`;)J`tslG4LG)(yE0$&>Je@YHn+-?$vYDF%E;E3 zZ|)8Eo_cZai%j2;u9Bsm8ozH@Tv~Zz)?~kLn>J;wPWjRGX^yT&wZ~G`Q#+%BTb?Yh z7nw5O<nkonEwjEaeqX(R@_ybw_DgCkKk98>Z58V%-juU==eDWplPXPb-&IOnyl#cE z%h9!~?nk{YUzn_>oxSq#%w)r;=+j@;AN<cCRB`;cRnI-Wt9v4C|4m=o5ogc;$K=u( zt9ug{AJlO<Ew(s0zj*cLL!0~y%eHSgwd|ht$*^mg^-m+-*-FR$o%F|d@sCBfjvqC+ z<F<*r+w$Et$;)TA%#WLYL|o9{N`YJW)$~axHOp=|IDFhC+xvCd)`#!e{>Xn2F^}Wg zdbx)8k+0Voon8B;E<C^1WV%4qoh{|f{+mCo5qcaj&tk3WJd6C9%DX0|w{j)?xVg^I zf9l1B+$&YNN_DQRs`vB$-mAG(Rz~Ocq$!K0ELK_LQ*>*G*wnPQ8mebm>!J#Kk{&HR zZ8p1bvX?>3_Dk1%9@!*5v={zy%>0Ut`r04e-XFKOCS0y5eXx>kTb|10`iHVpecP6@ zEzVw^DfRT(#ue^Nl}(ShLyfdu%cak8*?$xL&%koy$LEzb1%K!56aR6&K4zxM_0oEt zTSp(s&Q|W-<G$piUiTxhJ`oOu-miPj{w&>gH9J-9?tzRO{12KB?HAq?{$Rh{kL2LX ze-evVFZrjIJzwn3og2=X-(uAxt|e~U+xI|hlEtInqHlzcr*j?A*>_kZ$l-im<Nj6W ze<=TFIJ)HG*Lt}>%9V?ye3xx6d_14A{<Op-i+mg7N7*l<!`kj?GHT6A+ZR{%^OQvC zX|;~Z6w~TG%rmYWO518+n!PgcsO!18w#rf!UBv-Mf_p^5wel`?d1<~j6<K!i!<^db zI%$zIF`D+-&6A!@UGnq8SD6r%XSd6H){389zgN6$y79l+8mqPib9YCivMXMYzx=CY zb!h$XSy$EX{LxQ<b-`9e^|WbgPnQi-Q~tDitA9ZM*-bnB-@82i%u*j^zy5XMTB)z@ zpA!Ewu+ILmdG*a2?;q6<UH1Ien=RM-=xp|xNdXhqEiWuymT_&mP(ftc_N~)CUAuZg zK>5o1?w&Ojf26O}>1SA_PkzLC_TzN-i*MtP){B=-KCEK(^i$TxEm3jPY91SHy?rcw z>KUII8=iEmJ2d|m{||ls#((D@&u_kGFy+jw+GEQf@pHbKaj<pCp6Om!w-g<`8{(O# zvvqb07yFzOi`;GtE&k77A!qZkyv;<OFDfJOxZQ02u9CHGhog6F4piALZYI9);pWRv zC#*a<=Wfao^Lm$_+!N9><{$nspP6+|(#Nyv9pAEgqJySfu~fRUa@$%~xw^<(=e&Zh z{xSO3_~4Ao(n$#$R_;%Fu6a)LnBkl&YaW~ZoclBBj#S@Tx0l+Rzj!~`e)z2U@$h}Z zS97*}@wJcnaIdvIKRs3a#&q|~>lOZ8o9%u1$<$>N?|pms^?vxw&4u+P)3yb~Zp=<P z`CI?P`EMm3dcwl;YnLAhR19XRR`}`s!0dri!0l!kAr2mX2gm$l{6ExMtnNOEs%x%Y z;cqv6LCoDdQ76kAtsE;(s_vbXZ)CJ~?w;(O+}5n~^PUEX?O!sVD{9TPvUjVFx)ic7 z^oi$Pah^O?%aU0}G^X$Br<vF4>rbo*I_z~}PJYI=x7n^LlVUdR%ClORx^~@~y5)y0 zg-TwB9XV*Z@=uZHXYCia{VVg{TrSV^d>8!T`N926FSMUUR@D3V^d7W1T`_+qTg--3 z<!8E0#ci^FjH0(rf4F|&e9lMThkLmmsxpX9_T5%$q5JQcyF!ar#L5?rD&eu2OXAMe zFF)CPn~OW4X@QX8e+DLow+tzLGu3v#6+YNIeg7Vo6&<YYD#?keA&(~*Pka1K<<kvj zxiWd_jun@utg<`1`*`--d*8Qp?%vnA^!+2vhXpUamMoNuFEec2Id@7fckI^v<?Fuf zJukBPLwVaD^@Texe9`uHnfK(_#KTz=-zGT}?Fe$Jf1I`ajM?uZE$O>TmO2+_F$$e$ z-koQA_-T>fg$hgNi4zv2GlXBXIy-gFuM)BSX`NzfynEL9%Ss5(<CN}XnfF{~*3+$P zImKk{3>x^=bsoq`zfX9$vB849;LwN4gMwWv<IH9kXYRiD`fl|f!|!vy=2u7OdL0Zu zyp`o;(Yd9Ow`bLR`CYm6^xe8i{?XRk*F8UYPwPkSg6#13mBqPv*H!0Ps@z%=UiL&s z((xqMjG8$q!fn5|e#n0-`JwB!^M&WTFMoM&r)KPNt#4nBxb@U>m5wtUwG9$;ivk-S zHfqPO`_<l}x6Xb`lt$;LWuL=YaurzX7*ziJw3K1KxU1{O@5j&9FRgzW<@)(`7+WIi z&Plh-LqFZhnB-IY;M6Imxvy?dU?|UHW-FL+T*p^G<4TCib(?9sR;=E-=+b|NyVYfv zjOXYWN_f4K`?F}>%VXgem#XI0-oCru^=j<=GyfTm=&HQ<^(8xdiQ0U%4Z0Vf?Cex* zx+n2$^4q}ZqcVlZwg)}BI`@aFWNdx2+4KCX{Xf*qkM8w8e1EI`p||EySDx+YkNA+^ z^+!<TJ7ds2&p&6?j|!OZb2bU;9Cw;z%C~98kwY9xp))+?pN9AU(|%c}_2cZS7v|Hh zeT;fl)gpNF_N0y6-W%2@Z5Mm8G4yj-N_q$Hnhysa7Inuv{5v;Kb;pPI$Nd`%Gd4LF zm)HMi;I4l7cZpBXtIQkTkD|4C{iMUTRNR$`@-BV8X3YiDRo>5aR(ROQPJ5W_ZGJG# zB5U5YR-X{d$xY9Dy(Sh;?s~eb%TGLW+2rzYpFhb~E46m!*)v9ZnPy(hRJr^;G1I+l zi{C4+vs)HDdNXzZ#r}iguj?1wJR@P2<mB;uT0rgI`u%fDw?4kl`c7s3A**T+Pqlk; zJ0CxhwO9P|^5EHO-g<}N^5yLJ4FBw3|G9epxvSzjPj;I>6A5&UWONk?VDy>7EYr~Q zRJuQo*KSq3_mf+v{&iI)Uzqow!LN43jm+33+jI5z-uM?<|KO3eb+7${{PsQ0nY?G( zoqnu-xclV4Gdn-kFSufoFZ_a6<%zbu{+VlwJvIcF-oCY>Mt1EVm-veH!Pjg`()UHa zTX5;!+%;Qnx`pa3-MORUsllHU>yD*OXP#-k*~~j_|DO0CI<~F<8IHZx`~ASLbH%cW zm4(Smf1LXF?it5B;UF`ssek@SefT>i*ChSi?vHG(qHo`xJL$W|tZajGeQvSZqPp{c z+W!drU@m>se~anR>A1^MtQ$VYE#}+G?DAT2w%fjnF!RrW9L#UlZDLybUE*p3&w)DA zBRkHR=A1WdwLBMeIPub|ovImrr{3v>wfsHlYU$>C%zx^w=z8}Lb<VRM6vgz5cOG6< z5p!BF^uem%QGTJxk{Z^Rf=ZQkUin#XyQn8^y~aw_@?ZP^GqC*nFm3I!m$Q7o{#_K| zzuNxR%~+qjmj>NBuX|Q?d{|td(8}^5Z2yA)3_Q-6%QL5~`0PHt&xo(!=*EU3&Vvdc z&(#aYPgIWH@WbD<D<Z0Yt1FM$uH3nMs+Y`)Ja$3U&1^~Ff}~3|Yb1Dj%*>a4{C?av zOS-=EkA}X<>Dir!mi(G~OSLJN`LEjZx09U>LYb@nPK;nO(^5%Pwx6C*^zxbM^PpbM za|SC<O%B_VpSt>c>E`_Cob~VS{(IZG+FScz@ZnS8D^E*a`Bt-QU&x)=7nknd6*g^~ z=dJ$?yR784FFTsIVP$ujz{W#!&(438)4YRm64w*KV~+LfJ+|y?`*w3-lWV}oCh_;e zO{aSo2rRMC^5?4Fe#ZFE-K;vbzpKCebb0+T`0&dWZaaV5R5g3DDRT&hmaWop*!bDA z%Ts34_F1>Lg<p%`Y<|4H*MH@*=Es?9zDn<y<kt7=+LOr&6B@Ye!Zq$|Z%Hz}5gGnW zE24IuG`lxvkhZX+M!mJ$$<_Ny)h-2Q+Lx|Y&;GjG&TXIU<M6FZZdIK#o*m?sb*<=W z?lJSM>#?y@ub#htx7>9euidlAd3PLh)|}nv!q|B3sl=TFHTNz1%kF$`J-MF$%AVQ< zw@xkl&k(+8Q`6PDGpuLN1U%@tI@9fYXpN@y9YcnR=T-W3e_VVNFZ7?`P(6Qbd49d^ zYF@KX4nDWloOS$#H>UE=o84r1SR{#qeg5J3LKW`E=L_noO+Pwc`0HG|Lz?eyY4e&z zE}OWhvSrfDCy^l%lQh;ol0H7AlP@m(PI1K?HL)#MbyOvGx?L)o>mKx}Z0kaa_-yrz z?WO6d%8R+bt}zn}UiC1lD9@mvdD(*cHB)XEO_@A-Qu(XNnQ>?Se!0BQ@CU12p5o-# zi~kbbE>>ne*vURUwd@50vwG2krajE@n*T1YeDI&4BaZ7@DX-9b|GicbJNnYMPE%*u zlRD3S%H)|ME1cMjcks^;U4Jr`{o(gRr?YRTUHE6e^P|I#$$69hsa)23m-n>m<)T^E zYt`=82MM2-n0&Tzl15mvN=jwpBFDJ<g^OzZFML^jdOlx#)azTSkDY!^-J)HXv$;}; zZC3aeUY)F`+?>iix6eG>UvcIE^W$fCOygR_lw{VO^fT-Vd1diw+1zCdW>r<Mwe+-B z>pGZbIOVz7%2VH#2MMlNHtR=fZB%}>+WkF~FMYRX|IbjLS>Iyyyyc(5%^$aYx*ps- zcilJb<!-@y?#gGTeQNo=?x1IHo1fFl(-YYD{bx96XY!vxID5XtK9P!-f21GHEk7`y z*G?gG`#qbFX>%86Ssk1Fu&}&ZW5eF-dAV;>o35JtyjiNLC$VHgq{??jj&14wd+Lm8 zY`5<HQM@YK+-#*$^w0Y5*PdmRb8BzyKI^Dg^ifnNxp-rffG4xWdgs5L?Y(y5|IS&- z&0c(aTl2&B9dX7V<+hgV6ujMYRrlYmTV?H~1uCpzmtGwbI;11G^?FiEno;@F8#52H zx-HczSlO{WZpz9-i|1Oba0@I8?l+y1s$TJFyJoEQlC_WOS6$gL*?#r3RrQw+U0U5b zXK9pn#Hj$^l{;fi9{W$9?tSw3z3wajF4S?wM*BYGHC%hcq$ujpi33LO-5j?z6iBl- zE#a|x*r?3%+qNe0w^-KtRW*V?qDyDqRsX=>5@UL#=(y&&)&$A9>Y-D_6gKKL%#*fx z@^^mx{)Fu68da{fMLRFI%z9g~JpF!g{ZDi2gZ1fYGw#Tnn_qo>W$Br1lUwFU$N3)n z&tR~qOMA_yrY?;IOe?ble@>gMFSGFV7v+yn`mC?s>MER(BDbpQQr63LuMT%__TTLP z5fq=f{~21vZk<2&zI|3>m!$L&u}zWpww}DR(ec6Bq}#FE1RXr?UDsY4uX2e;C+Qx` z&s+70+duq1TF;YfC;RWpttGQ+*Ivr_r)qZV+DzT6d$*{CPs^MgnIWb=(aUV*4zuS* zCfUMXqBk`Dwb|$G-s|l0qwz!CFO7yx`*(l5-hL}#lcaFy-iuq_W}OwCYO_aH`|v)6 z9jQi3)?C}TCF8|pllW=z@=3D;Fa2R$_1a21!)kfM*0c3~9Pd*5Zv1D+eR=Ee*|mEv zt+}|n^X;2;x@%?$aT#QvR80u@{G(lTMc|pu96NVt&8XNa?LKMo%F}GKFCKq5<=$Fz zmV2xH-}bQuo&95fQp@Y=s?;6lyaJ#1+j3l9t95DRiOF*opANpUR9fS=$IhHtuWIB! z%sU(r_-Oa)z?HFor`d0=chnONb*tIxR&a_jagv`SgMkVI|Ad;rzjN!9YaFh8wa#@u zGXKUtvH4#6wr%+EpP}6}dM$Hc^vi`AYu>Ln-J$$DX4*F)`+2u&J2#l`i|DG}-t#l` zoBN^DJ7zm<?3Boj2oNx+U`P?LP?6av>sI7>&VNz1*k*qr6OT!!CkZa;l&lZjc+7j< z#XbY8$u|o4kEQHvt&w>&C1|PJci&<+-_K@u!X{<r%$v3;d;9IAB9CW#E){i`zP#mo zF5qdmXOwW?#=@srM!u%^W9`lMr@g=NExz&M>+APSCLjK1ch&T_t<j-l|6WJTJNMdc z%Vpm+lWZ>Emds1pv#altMBchI%iYtmSJtaGMLg|KkFHHDU0U(_;H4MgQcl@Icb4|8 z`X{$-$L7oV>eUlv%)PTxQrf~=8jEzpw9}@aN$nM#s{ETh_`|mKD;&aJeVumG=soMM zHFkw3R3lh}PBGr8v~FW}^8DP-TVvT$amn&sWKg2|%#4VJWX`7D!s|pD93M9vc|Pk~ z@jvzYid7<urTqBL7F!(B(p)PP7=Formd&MHThXcSQetG=Psv72H4H47Gv`%s&#UX- zCPl~JwszCfyVR<2$mnVJ)H|Vjmw%h~Vac!ZgOU1MPXF$FFLic$uuBq0v&Lml;dI>& z$?XDF`3zz*e*!<;HMt#Oa-{3>p~;c|8B&k*r?1Tr7q5TxIpp)=9rHu>?d^MKTy7!Q zp|E+D<yzfGl^gRmol04Mb${nP(aFI-GG-MW(sS8WGVPNE<7rN%TW?<9d8{&Vhu8t; zS$}T)h<}*2`RZ3+w&>J-my>r)V|VYdb~bTo?{$<*vN+Vop|Gwf`{*g-s2egqp=Qs6 zKCD=GC;rgnt7fx$w$^{0ygxB<LqyJN{gqr>AD>yB^wRIcvMVo-?SATK<~6(3>@j<( zUBue*{O6B<3)g6M9}SN)uv+};ySSNE>zXLldy~FbxwVU}tSv9B%wKdX?y1RV#XYkU zO9jojYi+hC{`vkn`bB-aJja&*42&6>OJ2-6x3PZt=1TAMHFy8+d!Ew!sebufn_RuC zyc@)moccVK_TK&{dUER|&xM~SXmtvTK2gxL?wDj0!!z;9gT@2L)z;pO)|;$#@7}5@ z9eLI#pPsb#Ja(p`C|bT`#aE@hcP^V8e<m2TS~K`t&7NsfZ+%Z%TQd3Sb}g@OnYTBJ z{0P=Ky<uzC#UpO3o))k6nycaJxx#&7etr3=NuJBrOpadsc>OK=hqa6T81DOUbnlU> z+WVbb*J}HFPgiW6^6TiUL!XYU2~_)(G|4@~r-Re6y{Gr^{_8g43x7l(luAGJR_~F= zvk$KK+e&H$&os7hv*>0g#RV<qQg6FBr}cot^93v)>cwh&S5$m|6yI7SztBOil<gz? zx0BoN)bnl;vx?#82|m}a;Ka7DoKupyewsf|sQ<Ex;}73=)EF<zxOl5}cf{2{p&!*B zK5J)NUa{F<`TmdYBlqMkycK(V!c*$raewpaHja|oIhTCZK1;5v+4XL&j;+hyC954B zw=J%#c3u5Cv-qUO-PK#Z7hOJiI_u#Ee&aJ&u4w7l`X{T^ueY!Y4DMOJXYYKiN%g!x zC;5Il<^IM0w_Szb=|gtxAD%TX*Y4)!cDeMWTi>wT`<t)PIce)e<&A3YpAvoF94|JD z_&hn@>H4fcCfllOh3>{A{M6w1&i%80;h##jy;}PhewYyQ;md+ao=%#on><w}eTu)< z{^4G3T*RE?;!#D<rh3(1o;>yancKT_zwXX$6$y-GpCc0J${^BX#POA-E?Hzt0Q+<K zx351u4*sZr=&bt@Ik|1dKW0CCw>bGD_u+?$*)x0Y$qM)8-MV$pBr|RIl|QQ0k8I_x zNgT}7GnKfU-IQE^CSU6OgZQrh46LReTcXcuhwq<#_`CQ%xn0|LwuO7<uC4dIy7=~l zn@XO_t&x?d6AaGQyUlvm&bFTUuu0adSI(M@n|BBtXrACG>t=b5Uq=2se^>p6`3KrB zZ@vARzipq~#XQqYJ^lRj4}Z7J;@<n^v+0@b7uQWxU1D(8vmokG<fBfxO39u_p=G=u zWI_*%7F*4aI(%x@q@@}mp_Y@T<eyn8S?_A?r9V^ca@^Oe^ZqmJ{E_*{j=z0F=%=1j z)0CE4U0r$gaOgsd<!*~&CI`3N30WE9#aFYr`+M%Hsneg#Kj<&$s@uB6&Euw%;w#6z zx)01YxmphA+=`nl<r6dcg;!}FRu*_NcR?F_=D~Bu4F;Ar2@Gdk>&h$C{dRot+y7`i zm(%rnVR^QS{qY}mOe&uFZ0m)s(R<DAJ#%9;ul%;{+vk;9Yr+z41QqNL&8Rb+a6@cs zSJ*DMi7qZo=Djx)x6Er^_T~xC<AwG;4>Jz6Rvz2rJuQ!q@9auVRg0A>U!!)%noONP z|I0afqwd3(dQ|RjUFx^gvSg~&hTxWU-@Lwm4bRT5m48$(>wl;!Zo2BK)%RbmStl5> zq%gW?n&7s#YmO%;n4gJxY;i35sjcwwc|0Hf?3&-TCqVDrAE#a2ws*Amzq!RWUH1Bo z++>R*2FH9ZR&L%IsIs|#M$^nKv#u>KUCn74sr1{?Q#Mz*=q;D~r?$D<8uvExC_5Z= zO!CZQXMa@B5dCA*zqj?edc9LGyR9sFEl}~i=|Rh^dykAl?zlZs=ilLWT6!f*_}cEn z0cT`2LKdyK&=NXTmBXr2`}o|OJI&RrKgX&}om_5h;1`k+-co3q<+Ukzs^_Uv>7YrW z${a@zYWaD(*{sxzdOz#UZ~mk8Tgn^1<TKoSRrcQW_MY75H>Yp^l*fDIME$gtDa@5? z&h#t_I{d6GP-x!rr@8XScS%<~-8$FUb+XgdJhfeRs+VqF$`(J(`R1M9wTx+hBhM6> zL_~_rxUDNS@tN+2@c0b|FSnO}KAXMl-=|Z?9Ae*2Z!h*}i+PvPoELDr$9L||R3HDv z6-Cz%R|T4#d#y3m_3YJi<repMWzKwdtp0gQzQNobwa4dq@NJ84Ul`U~5ja=sLr=0_ z;CJDkL<w^XQ&n?ox1hZ1lXm&;wRy9jXTz6`njv1jQCC$1PrmrO=I@f2XHRyD#6D(u zbj!<d*Vg;@dLP%aM_ruu?B2b5nunV84t4Kdp`0JPM9<C7QiXBy{F!x{6_*ZO_MPSt z%blZD-!X}QZ*%M8CO1C6#|_f9#&L-Yvcf-QIsUP(%6pUduI{AimX@@;_lssKTHfnO z4cK(#h2Wke)6@bY!et+8d;fL%_Eb+zKK=5fXOW^OLX5N$r)SN1yee5?l83qt=g}n9 zsDM(P<r1puVmqU}!`{4I^=|rM>6h7+J63(!@S|$VhtKs>rmV8i*y;IN{lmWWP1jDH zHQk&U^WlDroayACzstVr@_T<+-ub8eQEl|034i<jKin~UXJX;DL3Mt})qH(DU7a^3 zm%@%Q+k8IOYtkttKB3iqpZ(_T2l+eZsa`XAFHsY6@y!-qYxkYvagra(=jX1D-}<L; zQPhv_`2AaF<yu*<4y~_lT=sHWf91E#nz>$&zUn8n-MjtpKf@1|<A-XsWA^{p`Z2EB zWZHj*BXJh(ho*hk<rXsWXS?BS!kMr9E|@!O*S|HJIvj#^H@Rz8>K;4)VzckXw>r9y z`ZNyZIv6bAuUq^p`SODG7b?Qr3U2JOh`BC$R<l@ZOU7sWREbrSR=W9_)%z9qUb$TN z_TDYE{|t<e`|QsYh;EjXJ@{KAXx2B2u2)>4e_w?xj+$$Ef7%?Ky>oUZJy#W*a%r;j zmu``bTRo<hH7s;s;A6kMHtPbLg-H0zlNw8=os6vMKeSX`)6zTa?u|fKk&|2+iyFZA z>7VGN{4cXRoZjh5_teSME$@F_AM5I_ldWZvV<b_&a!SafN8cuG))OvyF1c1FWywCj z=bz4gynZNZ{=xgVRv#Cu+TzdNYNr{qzWa}UNvM$gw!Leo&hOG;UMIM2?bjK%113re z_U_x77P+LXQu<PjNRDvm-c6N4%GG&c#`A<c83Imjm-)`DJt^YzF?+ZD`SmyV{}Zb} ze)#t8ULlLzJ*f{@H$SpxkKg%enr+rO$?!Mg#>qty*<$bY=9hV9Jj_hkm+@rMDOLNn z{rq<NThHFnTy^{8@>jb;e_kxD)?Oxf_s0EbuY?_46?bYj9W?TlZrbUoq^ufU^q;}L zur4%M^UUf{@4xefgCe?uvhVgR&CljGn}6iWq<a6i8QZgeeQ(&&G+!Xa!o&4w@}@gB z1{G7!ifRV;?pqrftNpt(sQh<8UX*`)_>bog{5x)m?(1Fq$Mj>}Lf&8TCw8rytT%tT zZ|bUp3}w@9MbBKbeD{V*;pbcTw4ZVNwBglhh4ZQ(UO$q(`}*jTAD>=7(wn(f^wQd= z`#&6;zbI?ky`1{OTV`vkzO7uQwoIWfWzTON?aYFgoNaDt6O8!RuFbQ5sCaqN1mEeN zJSR48dfI#}N$_p$f%YIj2FX;O9X4~;|8New_RTizuGrzgEmNb;eY;&_&eD1!-^fg8 zb<f)bu9OFjlV^P{I#a88N+j*&Z&TgMg_6FOMa6o#!rtMcno%!T*YDo^<(I(erOg4y zf{r;0N_YkzeY#`)>hMs#JIZlAFT)mxaeefPI~FP;I^QN)y6~RCN5icbzlP>Z{E7Q$ zB38KgaBl7ci9hDL_Y~aPWZjQkzva3mz~Q|@>r<B|SDh54un^IYZ7U!Ct$ysc$%NPL zcJznqE${S~O!}0$$8lAb)RbNIiM^6*Qg%l^-rikOXcu?P;Afexwszuvhp+LxKboVu zp1i)b^ywAxrRqClor8DHv%IAw>doDma?hPLv^_?E@vQIS3a8_qOs*b691~}X-C%VM z;ES9+$?=43yQ+uH^Q&h*Zpl2xH`nc_&Z1Svgyx%0+EjBndursLFu!k}aX%C1G1qgp zKkwx!vzGqPp!e$0N6v%~Z=K9%9ZJl2u;EA7#_870M*`-p;yt<aRM9-COMeVM{AV~k zZCjYwwy=pA*SI%nJn(30SmLzFnD>&$sTH5RelICYI6AYnCjI05N2=4?Ya}1#3;0?c zx-Jm2L;K%`Chn<0J9XYY3=Az7w_&IheZ60DU%leZ%nfIkcQ*>hd7OHsqPS#x;~nF< z3lc3Dcve_4FgC}_|7S?LSL1%gL^eKp+m7}_&PVOUE^oOlIm=^yXl?irsoI|FjsmMy z_iiyd`}FJtn{P(PJUhK>zFJm$Zd>v;DA4zFvHiUwmAgyRE6wKh+PzeM`f+Nds?~(v zE2>s|)*ky*KPBn?B2SBzvD>p%ek=dV{Lj!-StI4&@}Gg}597m~3j|+H$mCx2qjB2` zqaU-67@uADqtEw1>V#~m-X{f<KkM#tX=qrq-@~1O-|M4))3=GYD)LT-GyI)r)8ro8 zynX+Vo+sD0K9OrT{i`}HpiP>&ZLx3Bp}AUxU0e6wIH>wvHTg&VajT<Ok3Fk6<D2$0 zXl>P0wfm8NenItShq^S@eLf8?wP2-}#-awB%a3Yj#r&vx>&2!fX`TMV-@pFz%lH%G zNAI`)TDJ6~`J-=}A5NR?^HHw%qyKTSOSe4sx$aw>D&C>LUf1<Vs)*6qd==wJ|9jRw zizob)zj41O$g;kqd&U#(GyVs^2jBkipTTndv-yvwH>Q1f{#N*-+q>xG{6!UqLoeHS zFS_G&k#*jq>xZl4Ca)9qn95Xt<kYRQxhdh5&n892-q<fctD@UU=-|U_FD<WmYMjeA z_dL`%S^nnBt6gjPZ|;#l>L)qPoSUnUZ=cX|W$#&+TV7u24$M{0wyuBw?!NE)&(9Co z-(q~cum7-}Zkw-h<W_EJ*9tS~mhL>&Z4<w(Il$z|wRGc#Nd{McaV|NV{HQbcd2`6N zO?@Gsm3B^?`q-r=$upU6r<UI%zQYrH?_57r^hfH$^S=D#ZM$`I>+_YkYrXEyvhKJs z_0t>!t|RP<F^f}pnr>If9b8buS^wko!;ZNovT4_kNL4k;F8|hg`1Xm9M$=*^>CalO z!kVac#9LEYA?06q>**CCD^>?TpQ3bSxu5U4^oslUx_wuAyG{1g52<%gEZ+Gr<>jNy zW1_XQd$d<*O}uvRbE|85_T78G)aK+@|80HLYknxIZ?@jt^wlbx9A-!UOO$!DFe1^d z{tUa~xeM_Hn)BAMpOUlw__e*U#(ZV;$(nu1C+<b97I-yr6YmPQr>r;2Ha%$zx?9P5 zy^i_E`)r=I<zn4S7aq)1y~guiPSo*8*anX~MW+}g6*LnJ=k$tytN(ZX>f3yq#9F<* zC6`o=-OhGTDmSnWV^^7EI4O0;B<_NR+xpIg@rKr~6xS+Tw76t3U#5E5)UElK_szDI zJ{S3)Ve_FYhk{n?1kJhfFepp==J~h#GLCUtW~OGU=1SS6{;2-2`^bDbn{@TAJ?^|` z=Qrg%`I$H|RyxSge5UMzv|FdSw_Tfi<;k)Tnd=wh1^y@}FFpM*TAF3cr3G6*%D4Fh z+c@gx3SAH1JgHtYCF1I~=x7sf?Of+g8f7aiZ^svB{u90YC00nAJ6hvyf=AQAd?Bq| z*Z4h71(KeUPnzfXtMto%j6WnV`X}s)&L7!_5|Ll$7Co}&=3LU*6O}ok_t(-pT@puA zmmQvcdim{7M}=8}-mEyAa7XK5qFeWB%j-)PyUo4x%Ja(d)XVp#)vsRUx$Tz6&skd^ zN=fXx(RHfVB60O^ugjBqtqMYJ7v(OSlAOIas4UZZ%ltL}F8pWs5RmPEBmJRxW1VVE z)`$L1-5T*ne_d;Avmf<ybjv2YZoL-xURm&7Z_szA{hPM$={of2vwvmojJr<#BB{?p zB5TSYeE%bU`J45R$!nutiq(tN=a{^F_wLd);YYT{Q6K*9pYxVUrRbH^(iW*4>w8a? zdrp_j6j^z1oZ;qMtNEXSRp4*Wm;PJ!-_$;qzgeoc;JbM653y6156@G%ve?`>s^a{i zY2UujV((Dx5i_iuwQs)2_KVRX@@YGEZSP^7(EKmzSO4Ml9rC>U^j^*9{^P#%-V3>U zix1bk^J_HMy<Df(_Somj7hkt%T^GYc?On{ds)z2l&q&*<T_|j#*YfYNvvAy8A6NDu zfnJGYC7~g=r)nIsc@?T~X>#-K$vq|A-JAE`|MX9rv;D}Wh25>T+2@vM?JDvzSn=ek z=MMi_fjtkdPB+dAn0-+_|6A~n)Q`=F=L?pcwyk&fxRRTn`(B}|B7OTj%SY2R1LG`{ zCaIN7G7sbFTXX7!Gjm_|O-B|cKF245@duXw5j^~lD{$=}nUBk6{<i-U^ik$=1%J@a zzS9q{?OYY>w(&=C!2M4@qMp5S6926pcv8yvq^4Bqhi>1_sB8aNH~xFRPqxPK(w@}C zw_<O_x@u07sK1e0aKF;=jlay}SGGUD82vdk&1%w|e96_C2mb_2_Ppi&eDSMUwdeVz z8&@{3JgIGR-6UnJpZ>b{&(@b*e!24Hl|a`jbq?^dPDh0zKlYXD@?$>wO<w4za(#Nh zF+p$Ha|{n;zA7)Xd^R~#d#@17?2Fp_PQ17|)h(h`Zb{>x*Hi1S+axc_2-vfI`UE#Y zZ`n&)Us%2?f3}dV)&9)=?ZAJAra6Cj|IRXz{K_x&<F?<WXOqu%`(DbuyZ-ClxQBuF z-~96HPEx;;AEPDo$(jA;+Cww-(pwo5|IGS#z5YYo`967}w5wbCn`gz;^VL{td-KRC zd}M46`B-{JXN}DdldF|mZ0lw37tOd<|Mp~Ph?s%LE8){epZ$nYemZ66tCHpXRr$+K zovgGpnRk8X>x4};afZdmWVTGo3srx2P-WfM>fI&1_paHm*nj)`Kd#vy(!crrs9#?( z`AF3j@n8EV+AeS1qrB{_=&{|8=9Vs)ax3$jS+|l+S(D3WQ(eDc*?Ds_CY?4}7F?gt za$m8=_QF4{KWTqk_ow9FYJX(5kZ<qfeyIxYBfIYRuKV&j<Lz4A<R9IS-;2~Zepqxn z^7iH>V$-D9wr4(k68nim@sdvN+)bj{KLma({@8phUgVFz+TO?Wg<kK|xo+yctom(u z^p*Ff(I*#I_H?y9`{XHfi?uRx?c3Z_(N4@d0rf{3h4x>${g3nh16{q>|2Xge*8agB zzcI4pb^p!n5A*t0MQ&hRytDn_tsuV>UXx|d?tL{gaR%?l^HLVl4eHN7$ME_o9SmJ) zwqn(Upao0cTZFYt^$J?4a(}lvE9X(|RYkeQ-uY`z8b`&b_8oexdGz{J8CT1sSz+I1 zWKCG<wAU)jx85$}@@lOK`BS~tD3(25^r!K+>b=P;olO|0m`_*QcJW!h^9dH7sYOfP z+OVav$QgfAKYU+y?XelF%b#|>6`paB<5Ql68%KzcGuuy*2IDO~lU)0I>zVTHWPZ$g z?7i!=+V*?bt4#khOy6Yd?p=Os(n_unU*_DlUw13F&t_KROqk|Z?|oQKszir{WrCw3 z<FO)6Ee=b&-wiBZ*Pk`8sQRH3nqwMOcUsVM#g*lOHF{Rok=Dzrm(32^Ralle|Dxfs zhnr>0<Yn7d%D4%O`<ZI`X?{9o>>d4HyyVf9DKTnuQYE%LD&PKnad@We)J}zM*J657 zR;^~7qA<C!@u0#4gNzURy6P|A-+Sgn*%31r3A6j=vK$J+4OU{>*KO-!|C%5Et}7+O zv5BwTQ14`q?2&#Q<~fBu0v3|%m+TY&BftNnQ>S3v(Z$EkY<^Yb78yIG;bPSBDZhPQ zRa$#=DKSp`F6#E}Me5bU86B4wyIx&cy=>Cc@~oK4d3Pp;@4fG9(=Tsyc0;6Jy;#MZ z+^iB!SKH{<xtfPKy@F@gy-DWYetYG!e{vtvc0QW@yH?$Ev$^?pp1L%NHje9gKi|bq zZR2Q^p4*@5arH?`*zeU3*B_cI{czq)+e01i|9I95ty{X9<IqEqHnA|S`!-@(_l=8G zc23ZlEFdKD@C!fB4}X^rQ@d`w_|`4v^mkGH%R_sg-d^#aA+p$x+47`nVA)YQk6r;G z?W{-k=FM|7Y|2#nen@_M|K-_!$5R&7{L{@lS1s;1cCvb_)RqiQl{uN}<!5tM1NWtE z@zUJ#pMmYsJhP+E-##?>b0cP*(e5Q%R(CzkJQmR|p33rQsg&l9mDQJuCiUx2tXS=o z>vb=(>sh_0qf6Kmt$7|_4>NE0;BG(tgXw<;*4LNp(^lB$?)LS5$h$}QPr~IIe*X44 ztN54k=~B!Uv+kw*JDU6L={$dl%zv^|P2z=oKONZ?c1w5ie}*H+F8v7qYWtsoweLSe z)2tu)-#C95{%7Dg-u(W}SN>bpkMgG0r+@hDc9-|yhk0|APS&TEe`JqonEdqC4X-G9 z{@XsYOJh^{#Jp|o{xjtNeD><sxxJ5h%R@fKca&zI&5ygTzuwd~Ip~T?_3pRcf%|7g z@4kI{_spB~JfF{eGO03h=97u1OD$!7ZuR&b>ef9e<h|Bc&HHbcOx0d}*R=9VxtCF3 zc>et9{TkmU9QIn9_BMKwNxi1Y-G`FLvUYEYU9^-hs%-0hll!~#vUUa8ZrSLyX-l;^ zllMl(8)jZ2Ma)f%C;1|#s>?|IoAaOH!Ib$Q!rnR`G`CVeXy1QN^*@7K&*9_;>*Zg4 zpRK&R)4rUq@lo{cHo>K@6a+J?_I#3mE5eywtFS*}*}i{iYai=4bk=Oz7m>hJZ<*ls zD28{%^D?`4*MlcH&3T-5FXPR^9XogTpA@@b?DK?&H8f``?<AQ&H*QHVgsXRbSaEH2 z+ghm~S<@zE`ptQ=_eJ&ELxEmrf1kVT_dWO1>MehxepE%w5?UH%*4HO$`=6n7tF*<w z_|C1TE_<4+d$Mjx{i^4O&-dDif1EcvyD)o2ee{X6UJ22eeB~MnO%fl9Up8M!-oM4M znD-Q?Vri)@hr+k>5;oU=uKssAe*65l`oB%grqswk&Ymy+!|If1rVZ<3>D%3BZK8L( zy%p<TY0T^GHjQD;w3jTGGB5s|Bx!Q9Xve>8_6hHQX!9Ssf6Lx~+r{Ts{M%~EGg;gt zKKSjo-6K_hbT{L+=(VQbIkxWA@!*L5&HFDP<JvcF%_kB4*B%(JlGy&{$=<1<89UA{ znZ4<U{H=JE>mmJ9jy)CKaQfDvz}2qnQZ3?L-hR}Mvwpp6U+3QQcdJ%b*5)S*dlxD# zTA?y6!Q%V*`~!bA^Ya#O-af5TLTiz6$`=Wi=i9yhX#ZzuT3la$(EpG0Z`leZ_e#F4 zk7FzI-`Yq%l#X7%`EGXjH1GUxw`aZ!((ZrrSJ_K^+N7*molVIMJGV7)SH63<_QB+9 z>*GW;Pc6ASCAiw`&7P^ZKY5znJ2|gRo<CSP%w(nOsh~1%*Vn5zdFn>zs%*_w{$l*C z`S1FFQZ+&!uC0G0FIKVK?L+;)$x9towpaD7tj|x)W{}rvn^q}MImuG+u)tlNOGZbz ztaq*a=e$49{)hhdE}P8KH5K;XvbN2-bYP}#{3E;lIk!87JT`4_w=peRT>tK>kNB_G zZj464i@a9KOseDmcX|G{_~Z7swjaGNr~YI4WA5(L9C=ITdw$qAU-jtx)-T*;C+k0b zd8>WC-mIucEZ09^+Uww*4^?&>xbg_rthlvzldEFKYPAq;v&)K;Z8qr0l&EV+q!h4O z+ROHx{WxR#>GtlWuBQy2?fN#UXYTBaroN@yHod#ND?YLD<cElor5$s$!?v62zV(fa z{Ze=F_*-3}Se04nD}TIxWZq*_{fIaE*gd<C^=_LV?HA7G(bM}nH}Biyfc<l)mru`2 z-7)dc>I%o3x!L^FvorI8q$?hEI`Pjf-CO0oQ%|xpLTN(tq{Y=c)E68-J^$Sb>kbt& z&Q<#qKGxnTKFBiRwC$2l98adnOm8tfF~Q-_t`vsf+#BMY%pBHP{d=S?aUf#Pp`rzE zgc4Hb2yn~QKbbe<ge<=qKdZ{ztm(6>cAB5p*qU0tDtG^8ap~pnHFnF*Qx-q5*stZM zNWx-~+kSaox<y%+mwgQnyBT?OdEM=Y{Vk>X9sd~w|8PIZRpq=|lmF;F-w$ukfav5` za!S{9zGRDXwQN@0v9E(+cf^wko-EgYz4>>n>_TMSxp>Ymrwi&?r2Jb<&gwBR9Oyb^ zwymSE&t}DCW`=|YHn!|P>+B!Qjk3A*{_V-%YMEteH`Dg~`2As{j_OpF71OgH+bX_& zX0VZQmgQql<({`euNtO?snoBEe=}ii?uYDyV!adGdh^u|83dncRne&WBzYs*cJu4_ z=$4k`w&t+!8*Ns8?^-G{yMFK6?5(FuPhH;Rej+Wn=T%6Hoy4V{+fSeF*?D<>_RHMd z?7QkaU(1WuNoB?h*BILMmnm<*vbOn7M%D6Z>-FZ=ZfE$S^KH5UM}7heXQHKaTA!ry zpTkyi>mT+OeRjO^<)yA^uhpB#n5dkz@)<imJ>4F{bzSVc$7$O&8&|7*^y+D>FK4ii zv`K#SpMkG}{m?yykITEiX8Up<wiCaUUwXDUd~dzpt;4>TA6C9gpYUL_Ku4IxVqTp~ zMy^~o>$>V~{xc-n-!4CJf4hCxKZ9&Bd7d|W)GI%n`t96)sA}KhQn97$e{>&=Q{4HH z{hQs!Ql449lV4o7E}1&*(Yb5yL$@`>I=I&JEjTl&`FYw;HfiG{L2D&fS*&n%TXV&7 z?^5p7#aYw0bjR<`UH16g+$-Vwmkau(k}HZiyBCJ@>eNNux0TXcwdBK(ol)n6v;1#d z+4b#1PgKhsEp4ydknj9$@l5OU|D9d?<B{3sO&XJ;UvTh*i)%Tg<~p{iY;EnhlN;K4 z`nk{+=6X%_>t@@wT{F9IEAk-k)~$Q8MZ`Y1ZFCmNGFT~-!L+FH0t0KrqP;nM@olGH zR_oa4+}pfT+iI%ny`W8(w}dX*rTolz&u_!?8~ug*R_qL}JI?F%@o?g!e`mGItNt^X zdd4kzvvX<6B<)A<Z{PlQ_ebDwrn+<gw0^w*==Cx$>a1V?gZg;3gQc?jHhyG2E`Gu1 zmwB7X+K0DHCN7%vJ>rT>u=|pXZQF14O!WESnrnYWUSOX>h4n-K#y{a7)gOs>n7rru zp?pw^Z~3EqkssY*b91-6Rd&6ko3eY~o}E)SdGu-Aa2Lt?d|q2cz+L5%lKIcN`h!vR z50?Hj`_Irc@!w^s_Acd}^;fp|H_l_69Qffs!$E!K^9m7L?(_d$$$GtOYjvo8zIt~} zQm(@Ot4~?`=I6@IUwF{w+O2>cJJ!T0-*h}A<h5k_k+0tZ%fH{+wL911VC~BCz;roo zUa3u`+1eMDeC^6JTC2K#Q}>HWTUMQVJxQuq^W5A&!r$8dF0s?DyD?v?Cimm(`bXEc z+iiSwUh385_*1Js9bc9amEv-E$&Y;J&6C`G?VT^0Ty6KetQ$CU+C4#?PoCwvM=lkb z?Tb3Myza-T%EBH|hD|)vG&l|w&s!K>=Bbl?u10^CNyG=IQ-P5wj33;X-k$T?%uqa| zLH4?}$CnIUo0$@dJWFHe80v+j2!vK>-07>g3#xuRF<!NER=-K!lv%mv)hBOi&EFIB zJ$jOVWaM47rECAK=RX@X*V2Dd%(rLdPkWMCD~=g_Pg=}z%AhCjPLTK1h+XPkMuA?_ zGVZ5L+;PX@_nv(MA}o0dlbji>LdqweEzHkORq0pQv!}^i|I?~NeR}H7J0_jEc<gqY zq)-0I!}T?1Zmrz&UaMhWWOUvozHf&urJeq)3Xpl~smEZ-diBxVq_dJ!IM&96Ka5$k zX_wQQ!cXr7*UZ#f+E%z_@~nqbqzk?kZSL~CGU@H<^3_u>U5)*{cF85*yQQE1Xq`2C zESsvjILy<{=-HI%yY3rhdaqqv`s(${=)*Dz)^77(Ianypwyt-(^YDP<;lwieDGWs% zuWHO6<pw)nSyQ@JI_Qc?Y`Dj+uFu|AOLos(vsKsbm0G^mt4sf`KHAk(aUfwW&#Dl^ zFpISFUA`roTt(JA?eJu{`{}`Iv+p|RPTk4nYG6|kK9==#+V&@l8lHYzv@tFC(^SiZ zGm+)fPQCR#Ft1#&r%!9b)A~KhnsG*PpP%Jg>{yqovF+Wg+~uYvTm5cjN?llKaVW_5 zthKAU#K~n-*RGm+ZQZxB?q^q5*RRe$c3woi^^g3DyVC`yY@PYZKcUC-e4dqD^Nqsz zXWsuASpEMl{`#MxZ~vC($9SW@hfVr^=syF0jo*I;z8cLGRkd>`GOj!E3wo{kSs%W8 z|Mi6Z=E7Ry1_x7fZa?1A`ueZve}+8Up!dE%k{@xdjhy)ClK$OD|GTN%CQjWYc%_^r zg-`p>{F=x|)#n9X#3@}f)$Y{$svCdYylUFgO2Z@H%V#aQKHd1N_Csddqjx5qx}6kq zroF{t{r0oBXD{|Vy2EQp{%WsRfra7TVPChtsh_-U+m)X+)2DImjkR3Nsj)rn+U%pY zax2y5z1+GvU9@ubyGlX(&W<}hP6oMaRvl<M(8@Yx+PNa8#;%2S`_4*qays=f^HsI} zoY^UH^0*8G$L}MP=Y>b^m~@k6woi3~s@JCVr!1A9GHi3sVR&;=romC>kJTD)+ude7 z#+E(WhSIY24Waiuv^Z)~<Qf<oZub@j9d;|3bIVt4adza*9VgdDcV}JOe`ww9?}0D8 z1x<A?J@X1Ge_Hq~yUu&t-JLPB_wRalZq=iY=@Vx*Kei6>i10YfyF25?0X9`fd+mfC zrUkPOPOG@4>C8X<Yz&+3#2sdQ+!`u|>@3N$j-s}A)=DVzIMr(&pLY24?*$F=Sx@Io zoTlesku$0C$vV9hAyJNS=EB$$e+xwW9)FfQu6>(bed0|nn~76G-=?PBiQT!~_ilW& z`z%jSvsqcMZa6Jo8RqA?W7%AjCp#zmdaA9htXy{4JLO$nfBiwDt%AwFtLl!GuinB@ zpXuMk;k_~8QGCZd`4)!N^^KEcR@}WZm0?cdzm@wpH<;P+TsHa1=$z7@AoB5Z)aC<! z@+_1*?pif|Y7j~8{}k}I-zHi9@cmob-%38-S+j9@^FPx+x*tvNv>tHeYka(xJ8b56 z{vG#Rm-J2w&}7_vMgHrSAMr{rKV@C8<eGMC+0udsDJ-2&v;Y2(X$X6Hvw%^#-tvIO zx>tn(hg7pI9x1PStuEodx;%IJ>fKo{bI$Sjo4g7M^0f?@QyS(yY4Pmb`;Wq}U5wpr z{^Rg}2G)sxS4Br(fAgOqHJ&SLsfjN`W}WJft=}TMc>Tk7G?wb~Rm44g<TlM)mhbAD zKf$XGXPSf;+>d!tt{7YLyW{-%{U6-_Gj!C)e`x-9ZQ4AZnF-rB{aE}UUi3%B3InJ0 zYhP@tKNOf-`1FX`?(^d9dA+-tS;Y0%+=+?4b+}OVL;i_=xjzBdww~{im#OjpIPXDb zo$XaSqZ)TR?TgE^PrfU88(R~(E-EhL`6*uY8(%DQQZ9e_`N-qlmlZjW`ZS(jo^>(d zwVl|%i&pjSZ@zzA|6uyj-?MK{JASCn?t|ObRh|XvO;7jOman{(S*J8l+pXz}yXd`% zxldvpGevf#9zFYg)+9%pOGY0aCU&mwEnVfdbk6NvK~K7N^(5TdQhVi6*8Av_ckkWX zr#4l}vc@1JMpZLtb5>x{R9{uAUbQ*Fv+v%GbmKf_*!izPB&6Q#x<Op@!SZY^|J-7p zaIw!W2OrOpoS4!Tk~ra{O3u19d|VUU+4ghpf3W-hhv3!zH_X2k?D$dp;eAZk{crt0 zUM_hxOTEc;&4VmCmJi*>Rr@>Yl)WZypPgIEKI@iy%iKMi)%NPl>d{rH;=SYhCTy*g z$X!o$-6_iQT}z(4<#0deTfek+(w@1CX2)x`FSK!uxYRa%&vNq*mzRrHUYR~6Y4)~H zWj(=DCe=6Fe<<SrBU<w(`s3Q~Z`401A9)tvdY|7k)n0m!>!R4S`^W7Cx9q%q>O)C+ zfQQiQ!*<NOolG@OOPI<_xGSbq{IOns=T5!GE}pE2Jqz9{HXV8A=U4q)A+<5N{!~Lm z6MNM2_g}N;rUy-X_Vk_lu6gewpYPl`aoMy-k+ZA!OtP#@DXZDM*)lEdq@_;ug+2Dn ztvt%TQ<hIxnsjGcfatcK`O}{<Oq}ywL7*mTQ$fpI&*HFEcb<LAT)sqUt?EhERMwO` z`DfpI1=U@t)H*j;DzNbIML&UOxhG%kT(vc$zV6eKzppwE1zvPBe%foYd#zDK?nKE` z9S1{WYR=65@WR{dn%0u!WuMH=m>Q$a=jmVgvQT#4+SM<=eKyGpW7*T2DygfG8D)Dk zLLfSMN7C<b-B#W+cO=Z*E-q=jdbu#{knD=1Ei-;LKhNYTo6}@e#c%jA{qWB{{wv&9 zztqnb*?g>i!z;tH=988_`p*zrvYXxdn3${M?h?lnx$h32Z<PvF{r&3Ru_==a<}NII zTx~9W)J^X{L*~i&sTTKMmRn6;D9#mf=l<@Dqjxob_r6#xy<2bECclqaXMgqlXAu4) z$mF%@^|oTKx{?f^)=hPvHCz}w?u2Y(d%($XWmnkV#Pu<8uXfdktSw$XF*iHE?3GK= zX&Jkmdl8dNOVuK|rX_?-QDKuzezL3lpjyx3EUBqm{2T7?=s2@<gN2b-qeznn<Hbhx zro(J|%UwQvo!<6k#g^CZZ1*JP!V?0Qrl%iNPg-K#EmO0KYn6hf%$(PUS>4PQMuo2O zuB$jc)!pssqMoRWDpQs&sh_>|&860uG^P4|EgGvlecwEPrz&4(v|_E;&n;#7kDAIS z$Line>^XM-(2~lm=hb$PmP``QPH%`&KUK6-q2a3C9cHH8pB%zVB?CfgP92Q&V7{!n ziOu1p>C9T&NypAj*I6%qCYgJhYSrrXGt3pz(pU;CEz}#2-^~iPnWUn#YPWa2NyDm% z#|#RjRX5(5qi6PYo&M_2uO9pPnxEO3D$0G*db!%-)a)16-o5->Y#W;u_$*JeSVQBS z(bZ#my6WuerzZcXRGI7_Ht#>fYxUnrF9Wjb`AjR8GfwigduARye`b_;7)zgn!h^^2 zb|~#XrTne^!@B+t-yhW<_iz6v+m*3JpQFAe?s`eAn&uOslf13dJKn8byU=LroqxVN z1=$Ot92!neI&#sq)-7Xl$@>2c_A7PoM{2*lcfa)7*?DrYni^L;x9m*Sm5w_0)_QHp z@A=U;<x*EvRNeZ0c;fxHy=IFI>_1&DKed-BhpRm0tHr5Lyfx2Pv^U;U5YRH7a?I}< z&k{2Zmimc3wNFnl+iEP@^Ji7jRIe>h)gDU58Rom(S@ZT&u3p!>YrAcG!X|p=YB-+W zooBc^zxvg$uT~Mys&BidaWS?=vs?GSbG#Kl?chntlX;$Z{MEazs8pO_W_Wk!FhlQ> zlvb6L`Kz8cPBRIN+be!v$K7<k&Vp&3nP+yZ)`zb=E9qrW-!u99Qp>wrW`9q*Qto$B z<EYA-HIugXhkR)LGojb+9ph8qypx5(D-SQ3=pknornn(==ZWKv2W7&4{r-18>dQRK z5BzO4u}Y@9e;htw$Ntf0qb2L3eBp}V!&XZ!oZPN)W@W8O{`RML9D+B@(pX#Y(Mwb) zO6y9_+`C&>-oI!cTfXyXeNWk3w=G$7L)J{XxJx`NDmr|5ZMl8t`dd-|84gKZe|!IT z%ByWrnw#Q(#NQWQyQllE+3~Q6@4x7aXYDduT%@;d-H{8ov#PGmUimsRt>;6u-qzA| zp2GF#qi)$POilSEwl;I|%cw140=Hisce`G)R&|T@i?!<#uIautovRQLcRTxAJ##?Y zA<r$bDR*BAFN)LIc1};kEilF+^Yks(&(^yp=iXnF6%x4p(@oVSIlJdw(-R1JFeS)u ziqhMqmlyl_y)U~nJJ0XkyYKdU{M+XXnyeT2Bk-a9sCTT{YyS&d^V@dm_q{D?>AU`R zTa@YhwzYp8bC<0NJhiPpYun|geHYwiUS~hAKfYB>;Nj~(i|rpQ{?D+@ystj@{;lng zrXTN@-1~G%oZ_|Tm;XpVJo!AjqelKgtXQN@jqbzl+9ikV4lZ|<+10Xv)%$JI<G?Es zmD4AsEZTnD?Bk4#yPuAks!hGS^XEgp^t+$D0>k%CS(<zIPt88f1jDOBUUm1`z30EJ zwsaQ`3h-Z2pK2BI<kH<k<~QX9GaF307#L?ZuS|TFt77n?z;KFgPx9QwOndDQUsqC_ zW!4+(RdZw-%MRA>4E*et$5nbJa7dnXEl9rp?$x`sxwGRxzYkAa_uIT|mu+OoDnBD% z(=|(_Esh?a>g;;za@Y2f_1C^zS<jSokbM$+vZ>C=J4MKBBWt~%h4QWqg_Evadihqh zaYBmNryD7n#h=wYU7Z-Xb{ssZAl$>irG0wEt)@wL4^7VBy{T&LcF#Y3t2RxMQDuAd zUNW|Py6O9S-=eISOr5mxw%tno$&97Exds8rC+={yJz)#;>DT@CareY&Po^H&cV%Xn zd%zJ_Wr6-S>8>XN$8}Ex?x>gZRG(MuDms<p_`F3=!)mUFh2?sk+`2h4vwZEY*{7E5 zU9$My($k!A1}&*)Gp#=#(~AD`Y|~9`8NcN#ebrLJQerfZ85}X5GkI&%I~BnbiQBJy zIotYVZ=?#hlt9FZGv}fU4)rc)@1Jjfh|PdOBrtA@(&QzRE?(}g+qCumYMaVaej+tz Y?|EL?yy>^8(xPowRVHn|eB%F20L~B^K>z>% diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 3ad2097ab..0f582a657 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -49,6 +49,7 @@ * - Fixed MassStorage demo not clearing the reset flag when a Mass Storage Reset is issued while not processing a command * - Fixed USB_Host_SendControlRequest() not re-suspending the USB bus when initial device ready-wait fails * - Fixed USB Pad regulator not being disabled on some AVR models when the USB_OPT_REG_DISABLED option is used + * - Fixed Host mode to Device mode UID change not causing a USB Disconnect event when a device was connected * * * \section Sec_ChangeLog090605 Version 090605 diff --git a/LUFA/ManPages/ConfiguringApps.txt b/LUFA/ManPages/ConfiguringApps.txt index bb6d185e4..fb9da7094 100644 --- a/LUFA/ManPages/ConfiguringApps.txt +++ b/LUFA/ManPages/ConfiguringApps.txt @@ -24,7 +24,9 @@ * - <b>BOARD</b>, the target board hardware * - <b>F_CLOCK</b>, the target raw master clock frequency, before any prescaling is performed * - <b>F_CPU</b>, the target AVR CPU master clock frequency, after any prescaling - * - <b>CDEFS</b>, the C preprocessor defines which configure the source code + * - <b>CDEFS</b>, the C preprocessor defines which configure options the source code + * - <b>LUFA_PATH</b>, the path to the LUFA library source code + * - <b>LUFA_OPTS</b>, the compile time LUFA options which configure the library features * * These values should be changed to reflect the build hardware. * @@ -63,12 +65,23 @@ * library components will occur. * * \section Sec_CDEFS The CDEFS Parameter + * Many applications have features which can be controlled by the defining of specially named preprocessor tokens at the point of compilation - for example, + * an application might use a compile time token to turn on or off optional or mutually exclusive portions of code. Preprocessor tokens can be + * defined here by listing each one with the -D command line switch, and each token can optionally be defined to a specific value. When defined in the + * project makefile, these behave as if they were defined in every source file via a normal preprocessor define statement. + * * Most applications will actually have multiple CDEF lines, which are concatenated together with the "+=" operator. This ensures that large * numbers of configuration options remain readable by splitting up groups of options into separate lines. * - * Normally, these options do not need to be altered to allow an application to compile and run correctly on a different board or AVR to the - * current configuration - if the options are incorrect, then the demo is most likely incompatible with the chosen USB AVR model and cannot be - * made to function through the altering of the makefile settings alone (or at all). Settings such as the USB mode (device, host or both), the USB - * interface speed (Low or Full speed) and other LUFA configuration options can be set here - refer to the library documentation for details on the - * configuration parameters. + * \section Sec_LUFA_PATH The LUFA_PATH Parameter + * As each LUFA program requires the LUFA library source code to compile correctly, the application must know where the LUFA library is located. This + * value specifies the path to the LUFA library base relative to the path of the project makefile. + * + * \section Sec_LUFA_OPTS The LUFA_OPTS Parameter + * This value is similar to the CDEFS parameter listed elsewhere -- indeed, it is simply a convenient place to group LUFA related tokens away from the + * application's compile time tokens. Normally, these options do not need to be altered to allow an application to compile and run correctly on a + * different board or AVR to the current configuration - if the options are incorrect, then the demo is most likely incompatible with the chosen USB AVR + * model and cannot be made to function through the altering of the makefile settings alone (or at all). Settings such as the USB mode (device, host or both), + * the USB interface speed (Low or Full speed) and other LUFA configuration options can be set here - see \ref Page_TokenSummary documentation for details + * on the available LUFA compile time configuration options. */ \ No newline at end of file diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt index 1a2b7a031..59a279072 100644 --- a/LUFA/ManPages/FutureChanges.txt +++ b/LUFA/ManPages/FutureChanges.txt @@ -21,11 +21,11 @@ * - Add standardized descriptor names to device and host class driver structures * - Remove USE_NONSTANDARD_DESCRIPTOR_NAMES, make all typedefs unions to allow either naming scheme to be used * - Add in INTERRUPT_CONTROL_PIPE to use HSOFI to trigger calls to the host state machine - * - Remove FAST_STREAM_TRANSFERS as they have little effect * - Make Suspend host state suspend USB bus frames * - Add in Stream functions for PROGMEM, EEPROM -- move to templated system * - Debug mode for pipe/endpoint calls * - Test and document new FAST_STREAM_TRANSFERS compile time option + * - Demo hardware compatibility table/list * * <b>Targeted for Future Releases:</b> * - Remake AVRStudio project files -- GitLab