diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2017-05-27 22:42:33 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2017-05-27 22:42:33 +0300 |
commit | 19ef13744d297fbfdc46dcf286a8706ba57f3c11 (patch) | |
tree | 9d08aab4e072ac5d80a57c389d5f6e9aa016c3ed | |
parent | 267d1f12cc521b82985c3b35c75bfebf20738bad (diff) |
More correct LATCH
-rw-r--r-- | Descriptors.c | 450 | ||||
-rw-r--r-- | Descriptors.h | 248 | ||||
-rw-r--r-- | README.md | 104 | ||||
-rw-r--r-- | bits.h | 26 | ||||
-rw-r--r-- | board/BoardOutline.gbr | 38 | ||||
-rw-r--r-- | board/Bottom.gbr | 3980 | ||||
-rw-r--r-- | board/BottomMask.gbr | 188 | ||||
-rw-r--r-- | board/BottomSilk.gbr | 24 | ||||
-rw-r--r-- | board/Top.gbr | 4644 | ||||
-rw-r--r-- | board/TopMask.gbr | 354 | ||||
-rw-r--r-- | board/TopSilk.gbr | 2156 | ||||
-rw-r--r-- | defines.h | 66 | ||||
-rw-r--r-- | gamepad.c | 925 | ||||
-rw-r--r-- | gamepad.h | 118 | ||||
-rw-r--r-- | nessmd2usb.c | 424 | ||||
-rw-r--r-- | nessmd2usb.h | 226 | ||||
-rw-r--r-- | nessmd2usb.hex | 900 |
17 files changed, 7436 insertions, 7435 deletions
diff --git a/Descriptors.c b/Descriptors.c index 092f6dc..9ca33e5 100644 --- a/Descriptors.c +++ b/Descriptors.c @@ -1,225 +1,225 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, 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 disclaims 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. -*/ - -/** \file - * - * USB Device Descriptors, for library use when in USB device mode. Descriptors are special - * computer-readable structures which the host requests upon device enumeration, to determine - * the device's capabilities and functions. - */ - -#include "defines.h" -#include "Descriptors.h" - -/** HID class report descriptor. This is a special descriptor constructed with values from the - * USBIF HID class specification to describe the reports and capabilities of the HID device. This - * descriptor is parsed by the host and its contents used to determine what data (and in what encoding) - * the device will send, and what it may be sent back from the host. Refer to the HID specification for - * more details on HID report descriptors. - */ - -const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = -{ -#ifndef LINUX_WORKAROUND - HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 8, 1), - HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 8, 2), - HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 4, 3), - HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 4, 4) -#else - HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 8, 1), - HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x32, 0x33, 8, 2), - HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x34, 0x35, 4, 3), - HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x36, 0x37, 4, 4) -#endif -}; - -/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall - * device characteristics, including the supported USB version, control endpoint size and the - * number of device configurations. The descriptor is read out by the USB host when the enumeration - * process begins. - */ -const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = -{ - .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, - - .USBSpecification = VERSION_BCD(1,1,0), - .Class = USB_CSCP_NoDeviceClass, - .SubClass = USB_CSCP_NoDeviceSubclass, - .Protocol = USB_CSCP_NoDeviceProtocol, - - .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, - - .VendorID = 0x03EB, - .ProductID = 0x2044, - .ReleaseNumber = VERSION_BCD(0,0,1), - - .ManufacturerStrIndex = STRING_ID_Manufacturer, - .ProductStrIndex = STRING_ID_Product, - .SerialNumStrIndex = NO_DESCRIPTOR, - - .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS -}; - -/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage - * of the device in one of its supported configurations, including information about any device interfaces - * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting - * a configuration so that the host may correctly communicate with the USB device. - */ -const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = -{ - .Config = - { - .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, - - .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), - .TotalInterfaces = 1, - - .ConfigurationNumber = 1, - .ConfigurationStrIndex = NO_DESCRIPTOR, - - .ConfigAttributes = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED), - - .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) - }, - - .HID_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = INTERFACE_ID_Joystick, - .AlternateSetting = 0x00, - - .TotalEndpoints = 1, - - .Class = HID_CSCP_HIDClass, - .SubClass = HID_CSCP_NonBootSubclass, - .Protocol = HID_CSCP_NonBootProtocol, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .HID_JoystickHID = - { - .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, - - .HIDSpec = VERSION_BCD(1,1,1), - .CountryCode = 0x00, - .TotalReportDescriptors = 1, - .HIDReportType = HID_DTYPE_Report, - .HIDReportLength = sizeof(JoystickReport) - }, - - .HID_ReportINEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = JOYSTICK_EPADDR, - .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = JOYSTICK_EPSIZE, - .PollingIntervalMS = 0x05 - } -}; - -/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests - * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate - * via the language ID table available at USB.org what languages the device supports for its string descriptors. - */ -const USB_Descriptor_String_t PROGMEM LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGUAGE_ID_ENG); - -/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable - * form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device - * Descriptor. - */ -const USB_Descriptor_String_t PROGMEM ManufacturerString = USB_STRING_DESCRIPTOR(L"Cluster"); - -/** Product descriptor string. This is a Unicode string containing the product's details in human readable form, - * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device - * Descriptor. - */ -const USB_Descriptor_String_t PROGMEM ProductString = USB_STRING_DESCRIPTOR(L"Sega/Dendy controllers"); - -/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" - * documentation) by the application code so that the address and size of a requested descriptor can be given - * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function - * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the - * USB host. - */ -uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - const void** const DescriptorAddress) -{ - const uint8_t DescriptorType = (wValue >> 8); - const uint8_t DescriptorNumber = (wValue & 0xFF); - - const void* Address = NULL; - uint16_t Size = NO_DESCRIPTOR; - - switch (DescriptorType) - { - case DTYPE_Device: - Address = &DeviceDescriptor; - Size = sizeof(USB_Descriptor_Device_t); - break; - case DTYPE_Configuration: - Address = &ConfigurationDescriptor; - Size = sizeof(USB_Descriptor_Configuration_t); - break; - case DTYPE_String: - switch (DescriptorNumber) - { - case STRING_ID_Language: - Address = &LanguageString; - Size = pgm_read_byte(&LanguageString.Header.Size); - break; - case STRING_ID_Manufacturer: - Address = &ManufacturerString; - Size = pgm_read_byte(&ManufacturerString.Header.Size); - break; - case STRING_ID_Product: - Address = &ProductString; - Size = pgm_read_byte(&ProductString.Header.Size); - break; - } - - break; - case HID_DTYPE_HID: - Address = &ConfigurationDescriptor.HID_JoystickHID; - Size = sizeof(USB_HID_Descriptor_HID_t); - break; - case HID_DTYPE_Report: - Address = &JoystickReport; - Size = sizeof(JoystickReport); - break; - } - - *DescriptorAddress = Address; - return Size; -} - +/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2014.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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 disclaims 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.
+*/
+
+/** \file
+ *
+ * USB Device Descriptors, for library use when in USB device mode. Descriptors are special
+ * computer-readable structures which the host requests upon device enumeration, to determine
+ * the device's capabilities and functions.
+ */
+
+#include "defines.h"
+#include "Descriptors.h"
+
+/** HID class report descriptor. This is a special descriptor constructed with values from the
+ * USBIF HID class specification to describe the reports and capabilities of the HID device. This
+ * descriptor is parsed by the host and its contents used to determine what data (and in what encoding)
+ * the device will send, and what it may be sent back from the host. Refer to the HID specification for
+ * more details on HID report descriptors.
+ */
+
+const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
+{
+#ifndef LINUX_WORKAROUND
+ HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 8, 1),
+ HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 8, 2),
+ HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 4, 3),
+ HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 4, 4)
+#else
+ HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x30, 0x31, 8, 1),
+ HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x32, 0x33, 8, 2),
+ HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x34, 0x35, 4, 3),
+ HID_DESCRIPTOR_JOYSTICK_MY(-100, 100, -1, 1, 0x36, 0x37, 4, 4)
+#endif
+};
+
+/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
+ * device characteristics, including the supported USB version, control endpoint size and the
+ * number of device configurations. The descriptor is read out by the USB host when the enumeration
+ * process begins.
+ */
+const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
+{
+ .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device},
+
+ .USBSpecification = VERSION_BCD(1,1,0),
+ .Class = USB_CSCP_NoDeviceClass,
+ .SubClass = USB_CSCP_NoDeviceSubclass,
+ .Protocol = USB_CSCP_NoDeviceProtocol,
+
+ .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE,
+
+ .VendorID = 0x03EB,
+ .ProductID = 0x2044,
+ .ReleaseNumber = VERSION_BCD(0,0,1),
+
+ .ManufacturerStrIndex = STRING_ID_Manufacturer,
+ .ProductStrIndex = STRING_ID_Product,
+ .SerialNumStrIndex = NO_DESCRIPTOR,
+
+ .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
+};
+
+/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
+ * of the device in one of its supported configurations, including information about any device interfaces
+ * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting
+ * a configuration so that the host may correctly communicate with the USB device.
+ */
+const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
+{
+ .Config =
+ {
+ .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration},
+
+ .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t),
+ .TotalInterfaces = 1,
+
+ .ConfigurationNumber = 1,
+ .ConfigurationStrIndex = NO_DESCRIPTOR,
+
+ .ConfigAttributes = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED),
+
+ .MaxPowerConsumption = USB_CONFIG_POWER_MA(100)
+ },
+
+ .HID_Interface =
+ {
+ .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
+
+ .InterfaceNumber = INTERFACE_ID_Joystick,
+ .AlternateSetting = 0x00,
+
+ .TotalEndpoints = 1,
+
+ .Class = HID_CSCP_HIDClass,
+ .SubClass = HID_CSCP_NonBootSubclass,
+ .Protocol = HID_CSCP_NonBootProtocol,
+
+ .InterfaceStrIndex = NO_DESCRIPTOR
+ },
+
+ .HID_JoystickHID =
+ {
+ .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID},
+
+ .HIDSpec = VERSION_BCD(1,1,1),
+ .CountryCode = 0x00,
+ .TotalReportDescriptors = 1,
+ .HIDReportType = HID_DTYPE_Report,
+ .HIDReportLength = sizeof(JoystickReport)
+ },
+
+ .HID_ReportINEndpoint =
+ {
+ .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
+
+ .EndpointAddress = JOYSTICK_EPADDR,
+ .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
+ .EndpointSize = JOYSTICK_EPSIZE,
+ .PollingIntervalMS = 0x05
+ }
+};
+
+/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests
+ * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate
+ * via the language ID table available at USB.org what languages the device supports for its string descriptors.
+ */
+const USB_Descriptor_String_t PROGMEM LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGUAGE_ID_ENG);
+
+/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable
+ * form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
+ * Descriptor.
+ */
+const USB_Descriptor_String_t PROGMEM ManufacturerString = USB_STRING_DESCRIPTOR(L"Cluster");
+
+/** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
+ * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
+ * Descriptor.
+ */
+const USB_Descriptor_String_t PROGMEM ProductString = USB_STRING_DESCRIPTOR(L"Sega/Dendy controllers");
+
+/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
+ * documentation) by the application code so that the address and size of a requested descriptor can be given
+ * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
+ * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the
+ * USB host.
+ */
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
+ const uint8_t wIndex,
+ const void** const DescriptorAddress)
+{
+ const uint8_t DescriptorType = (wValue >> 8);
+ const uint8_t DescriptorNumber = (wValue & 0xFF);
+
+ const void* Address = NULL;
+ uint16_t Size = NO_DESCRIPTOR;
+
+ switch (DescriptorType)
+ {
+ case DTYPE_Device:
+ Address = &DeviceDescriptor;
+ Size = sizeof(USB_Descriptor_Device_t);
+ break;
+ case DTYPE_Configuration:
+ Address = &ConfigurationDescriptor;
+ Size = sizeof(USB_Descriptor_Configuration_t);
+ break;
+ case DTYPE_String:
+ switch (DescriptorNumber)
+ {
+ case STRING_ID_Language:
+ Address = &LanguageString;
+ Size = pgm_read_byte(&LanguageString.Header.Size);
+ break;
+ case STRING_ID_Manufacturer:
+ Address = &ManufacturerString;
+ Size = pgm_read_byte(&ManufacturerString.Header.Size);
+ break;
+ case STRING_ID_Product:
+ Address = &ProductString;
+ Size = pgm_read_byte(&ProductString.Header.Size);
+ break;
+ }
+
+ break;
+ case HID_DTYPE_HID:
+ Address = &ConfigurationDescriptor.HID_JoystickHID;
+ Size = sizeof(USB_HID_Descriptor_HID_t);
+ break;
+ case HID_DTYPE_Report:
+ Address = &JoystickReport;
+ Size = sizeof(JoystickReport);
+ break;
+ }
+
+ *DescriptorAddress = Address;
+ return Size;
+}
+
diff --git a/Descriptors.h b/Descriptors.h index 5b76354..f5655fa 100644 --- a/Descriptors.h +++ b/Descriptors.h @@ -1,124 +1,124 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, 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 disclaims 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. -*/ - -/** \file - * - * Header file for Descriptors.c. - */ - -#ifndef _DESCRIPTORS_H_ -#define _DESCRIPTORS_H_ - - /* Includes: */ - #include <avr/pgmspace.h> - - #include <LUFA/Drivers/USB/USB.h> - - /* Type Defines: */ - /** Type define for the device configuration descriptor structure. This must be defined in the - * application code, as the configuration descriptor contains several sub-descriptors which - * vary between devices, and which describe the device's usage to the host. - */ - typedef struct - { - USB_Descriptor_Configuration_Header_t Config; - - // Joystick HID Interface - USB_Descriptor_Interface_t HID_Interface; - USB_HID_Descriptor_HID_t HID_JoystickHID; - USB_Descriptor_Endpoint_t HID_ReportINEndpoint; - } USB_Descriptor_Configuration_t; - - /** Enum for the device interface descriptor IDs within the device. Each interface descriptor - * should have a unique ID index associated with it, which can be used to refer to the - * interface from other descriptors. - */ - enum InterfaceDescriptors_t - { - INTERFACE_ID_Joystick = 0, /**< Joystick interface desciptor ID */ - }; - - /** Enum for the device string descriptor IDs within the device. Each string descriptor should - * have a unique ID index associated with it, which can be used to refer to the string from - * other descriptors. - */ - enum StringDescriptors_t - { - STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */ - STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */ - STRING_ID_Product = 2, /**< Product string ID */ - }; - - /* Macros: */ - /** Endpoint address of the Joystick HID reporting IN endpoint. */ - #define JOYSTICK_EPADDR (ENDPOINT_DIR_IN | 1) - - /** Size in bytes of the Joystick HID reporting IN endpoint. */ - #define JOYSTICK_EPSIZE 8 - - /* Function Prototypes: */ - uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - const void** const DescriptorAddress) - ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); - - -#define HID_DESCRIPTOR_JOYSTICK_MY(MinAxisVal, MaxAxisVal, MinPhysicalVal, MaxPhysicalVal, AxisAtype, AxisBtype, Buttons, ReportId) \ - HID_RI_USAGE_PAGE(8, 0x01), \ - HID_RI_USAGE(8, 0x04), \ - HID_RI_COLLECTION(8, 0x01), \ - HID_RI_REPORT_ID(8, ReportId), \ - HID_RI_USAGE(8, 0x01), \ - HID_RI_COLLECTION(8, 0x00), \ - HID_RI_USAGE(8, AxisAtype), \ - HID_RI_USAGE(8, AxisBtype), \ - HID_RI_LOGICAL_MINIMUM(16, MinAxisVal), \ - HID_RI_LOGICAL_MAXIMUM(16, MaxAxisVal), \ - HID_RI_PHYSICAL_MINIMUM(16, MinPhysicalVal), \ - HID_RI_PHYSICAL_MAXIMUM(16, MaxPhysicalVal), \ - HID_RI_REPORT_COUNT(8, 2), \ - HID_RI_REPORT_SIZE(8, (((MinAxisVal >= -128) && (MaxAxisVal <= 127)) ? 8 : 16)), \ - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \ - HID_RI_END_COLLECTION(0), \ - HID_RI_USAGE_PAGE(8, 0x09), \ - HID_RI_USAGE_MINIMUM(8, 0x01), \ - HID_RI_USAGE_MAXIMUM(8, Buttons), \ - HID_RI_LOGICAL_MINIMUM(8, 0x00), \ - HID_RI_LOGICAL_MAXIMUM(8, 0x01), \ - HID_RI_REPORT_SIZE(8, 0x01), \ - HID_RI_REPORT_COUNT(8, Buttons), \ - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \ - HID_RI_REPORT_SIZE(8, (Buttons % 8) ? (8 - (Buttons % 8)) : 0), \ - HID_RI_REPORT_COUNT(8, 0x01), \ - HID_RI_INPUT(8, HID_IOF_CONSTANT), \ - HID_RI_END_COLLECTION(0) - -#endif - +/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2014.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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 disclaims 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.
+*/
+
+/** \file
+ *
+ * Header file for Descriptors.c.
+ */
+
+#ifndef _DESCRIPTORS_H_
+#define _DESCRIPTORS_H_
+
+ /* Includes: */
+ #include <avr/pgmspace.h>
+
+ #include <LUFA/Drivers/USB/USB.h>
+
+ /* Type Defines: */
+ /** Type define for the device configuration descriptor structure. This must be defined in the
+ * application code, as the configuration descriptor contains several sub-descriptors which
+ * vary between devices, and which describe the device's usage to the host.
+ */
+ typedef struct
+ {
+ USB_Descriptor_Configuration_Header_t Config;
+
+ // Joystick HID Interface
+ USB_Descriptor_Interface_t HID_Interface;
+ USB_HID_Descriptor_HID_t HID_JoystickHID;
+ USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
+ } USB_Descriptor_Configuration_t;
+
+ /** Enum for the device interface descriptor IDs within the device. Each interface descriptor
+ * should have a unique ID index associated with it, which can be used to refer to the
+ * interface from other descriptors.
+ */
+ enum InterfaceDescriptors_t
+ {
+ INTERFACE_ID_Joystick = 0, /**< Joystick interface desciptor ID */
+ };
+
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
+ /* Macros: */
+ /** Endpoint address of the Joystick HID reporting IN endpoint. */
+ #define JOYSTICK_EPADDR (ENDPOINT_DIR_IN | 1)
+
+ /** Size in bytes of the Joystick HID reporting IN endpoint. */
+ #define JOYSTICK_EPSIZE 8
+
+ /* Function Prototypes: */
+ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
+ const uint8_t wIndex,
+ const void** const DescriptorAddress)
+ ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
+
+
+#define HID_DESCRIPTOR_JOYSTICK_MY(MinAxisVal, MaxAxisVal, MinPhysicalVal, MaxPhysicalVal, AxisAtype, AxisBtype, Buttons, ReportId) \
+ HID_RI_USAGE_PAGE(8, 0x01), \
+ HID_RI_USAGE(8, 0x04), \
+ HID_RI_COLLECTION(8, 0x01), \
+ HID_RI_REPORT_ID(8, ReportId), \
+ HID_RI_USAGE(8, 0x01), \
+ HID_RI_COLLECTION(8, 0x00), \
+ HID_RI_USAGE(8, AxisAtype), \
+ HID_RI_USAGE(8, AxisBtype), \
+ HID_RI_LOGICAL_MINIMUM(16, MinAxisVal), \
+ HID_RI_LOGICAL_MAXIMUM(16, MaxAxisVal), \
+ HID_RI_PHYSICAL_MINIMUM(16, MinPhysicalVal), \
+ HID_RI_PHYSICAL_MAXIMUM(16, MaxPhysicalVal), \
+ HID_RI_REPORT_COUNT(8, 2), \
+ HID_RI_REPORT_SIZE(8, (((MinAxisVal >= -128) && (MaxAxisVal <= 127)) ? 8 : 16)), \
+ HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \
+ HID_RI_END_COLLECTION(0), \
+ HID_RI_USAGE_PAGE(8, 0x09), \
+ HID_RI_USAGE_MINIMUM(8, 0x01), \
+ HID_RI_USAGE_MAXIMUM(8, Buttons), \
+ HID_RI_LOGICAL_MINIMUM(8, 0x00), \
+ HID_RI_LOGICAL_MAXIMUM(8, 0x01), \
+ HID_RI_REPORT_SIZE(8, 0x01), \
+ HID_RI_REPORT_COUNT(8, Buttons), \
+ HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \
+ HID_RI_REPORT_SIZE(8, (Buttons % 8) ? (8 - (Buttons % 8)) : 0), \
+ HID_RI_REPORT_COUNT(8, 0x01), \
+ HID_RI_INPUT(8, HID_IOF_CONSTANT), \
+ HID_RI_END_COLLECTION(0)
+
+#endif
+
@@ -1,52 +1,52 @@ -# nessmd2usb -Переходник для одновременного подключения к компьютеру по USB двух контроллеров от Dendy и двух от Sega Mega Drive. - -![Фото](images/photo.jpg) - -![Фото](images/photo2.jpg) - -![Фото](images/photo3.jpg) - -Переходник очень легко собирается и прошивается без использования программатора. Однако, плату лучше заказать на заводе, необходимые файлы лежат в директории "board", включая герберы. - -![Плата](images/board_3d.png) - - -## Необходимые компоненты - -- **U1** - AT90USB162 -- **J5** - miniUSB разъём -- **Y1** - кварцевый резонатор на 16MHz -- **C1** и **C2** - конденсаторы на 0.1uF -- **C3** и **C4** - конденсаторы на 22pF -- **C5** - электролит на 4.7uF -- **R1** и **R2** резисторы на 200 Ом -- **LED1** - **LED2** - светодиоды, первый указывает об успешной инициализации, второй о нажатии на любую кнопку -- **R3** - резистор на 1 кОм (номинал не сильно принципиален) -- Два угловых разъёма DB-9 и два угловых разъёма DB-15 - - -## Как собрать и прошить прошивку - -Для сборки необходима библиотека [LUFA](http://www.fourwalledcubicle.com/LUFA.php) и компилятор [WinAVR](http://winavr.sourceforge.net/), но скомпилированная прошика уже есть в репозитории - "**[nessmd2usb.hex](nessmd2usb.hex)**". -Прошивается микроконтроллер прямо по USB приложением [FLIP](http://www.atmel.com/tools/FLIP.aspx). Для перевода устройства в режим прошивки нужно замкнуть площадку "**RST**", например на корпус USB-разъёма, рядом с которым она и расположена. - - -## Как использовать - -Устройство работает без дополнительных драйверов. Под Windows оно видится как четыре игровых контроллера. Под *nix и MacOS скорее всего понадобятся танцы с бубном. -Контроллеры от Денди поддерживаются как с широким (15-пиновым) разъёмом, так и с узким (9-пиновым) разъёмом. Последние можно включать в гнёзда для Сеги. - -## Корпус - -В директории "**[case](case)**" есть STL файлы для печати корпуса на 3D принтере. - -![Корпус](images/case.png) - -![Корпус](images/incase.jpg) - -## Купить - -Вы так же можете купить у меня уже готовый переходник с напечатанным корпусом за **1500 рублей**. Пишите мне на clusterrr@clusterrr.com или в VK: [http://vk.com/clusterm](http://vk.com/clusterm) - -Так же за какую-нибудь символическую цену можно купить у меня уже готовые платы для самостоятельной сборки. +# nessmd2usb
+Переходник для одновременного подключения к компьютеру по USB двух контроллеров от Dendy и двух от Sega Mega Drive.
+
+![Фото](images/photo.jpg)
+
+![Фото](images/photo2.jpg)
+
+![Фото](images/photo3.jpg)
+
+Переходник очень легко собирается и прошивается без использования программатора. Однако, плату лучше заказать на заводе, необходимые файлы лежат в директории "board", включая герберы.
+
+![Плата](images/board_3d.png)
+
+
+## Необходимые компоненты
+
+- **U1** - AT90USB162
+- **J5** - miniUSB разъём
+- **Y1** - кварцевый резонатор на 16MHz
+- **C1** и **C2** - конденсаторы на 0.1uF
+- **C3** и **C4** - конденсаторы на 22pF
+- **C5** - электролит на 4.7uF
+- **R1** и **R2** резисторы на 200 Ом
+- **LED1** - **LED2** - светодиоды, первый указывает об успешной инициализации, второй о нажатии на любую кнопку
+- **R3** - резистор на 1 кОм (номинал не сильно принципиален)
+- Два угловых разъёма DB-9 и два угловых разъёма DB-15
+
+
+## Как собрать и прошить прошивку
+
+Для сборки необходима библиотека [LUFA](http://www.fourwalledcubicle.com/LUFA.php) и компилятор [WinAVR](http://winavr.sourceforge.net/), но скомпилированная прошика уже есть в репозитории - "**[nessmd2usb.hex](nessmd2usb.hex)**".
+Прошивается микроконтроллер прямо по USB приложением [FLIP](http://www.atmel.com/tools/FLIP.aspx). Для перевода устройства в режим прошивки нужно замкнуть площадку "**RST**", например на корпус USB-разъёма, рядом с которым она и расположена.
+
+
+## Как использовать
+
+Устройство работает без дополнительных драйверов. Под Windows оно видится как четыре игровых контроллера. Под *nix и MacOS скорее всего понадобятся танцы с бубном.
+Контроллеры от Денди поддерживаются как с широким (15-пиновым) разъёмом, так и с узким (9-пиновым) разъёмом. Последние можно включать в гнёзда для Сеги.
+
+## Корпус
+
+В директории "**[case](case)**" есть STL файлы для печати корпуса на 3D принтере.
+
+![Корпус](images/case.png)
+
+![Корпус](images/incase.jpg)
+
+## Купить
+
+Вы так же можете купить у меня уже готовый переходник с напечатанным корпусом за **1500 рублей**. Пишите мне на clusterrr@clusterrr.com или в VK: [http://vk.com/clusterm](http://vk.com/clusterm)
+
+Так же за какую-нибудь символическую цену можно купить у меня уже готовые платы для самостоятельной сборки.
@@ -1,13 +1,13 @@ -#define _BVL(bit) (1UL << (bit)) -#define set(reg,value) reg |= (value) -#define unset(reg,value) reg &= ~(value) -#define set_bit(reg,value) reg |= (_BVL(value)) -#define set_bit2(reg,value1,value2) reg |= (_BVL(value1) | _BVL(value2)) -#define set_bit3(reg,value1,value2,value3) reg |= (_BVL(value1) | _BVL(value2) | _BVL(value3)) -#define set_bit4(reg,value1,value2,value3,value4) reg |= (_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4)) -#define set_bit5(reg,value1,value2,value3,value4,value5) reg |= (_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4) | _BVL(value5)) -#define unset_bit(reg,value) reg &= ~(_BVL(value)) -#define unset_bit2(reg,value1,value2) reg &= ~(_BVL(value1) | _BVL(value2)) -#define unset_bit3(reg,value1,value2,value3) reg &= ~(_BVL(value1) | _BVL(value2) | _BVL(value3)) -#define unset_bit4(reg,value1,value2,value3,value4) reg &= ~(_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4)) -#define unset_bit5(reg,value1,value2,value3,value4,value5) reg &= ~(_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4) | _BVL(value5)) +#define _BVL(bit) (1UL << (bit))
+#define set(reg,value) reg |= (value)
+#define unset(reg,value) reg &= ~(value)
+#define set_bit(reg,value) reg |= (_BVL(value))
+#define set_bit2(reg,value1,value2) reg |= (_BVL(value1) | _BVL(value2))
+#define set_bit3(reg,value1,value2,value3) reg |= (_BVL(value1) | _BVL(value2) | _BVL(value3))
+#define set_bit4(reg,value1,value2,value3,value4) reg |= (_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4))
+#define set_bit5(reg,value1,value2,value3,value4,value5) reg |= (_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4) | _BVL(value5))
+#define unset_bit(reg,value) reg &= ~(_BVL(value))
+#define unset_bit2(reg,value1,value2) reg &= ~(_BVL(value1) | _BVL(value2))
+#define unset_bit3(reg,value1,value2,value3) reg &= ~(_BVL(value1) | _BVL(value2) | _BVL(value3))
+#define unset_bit4(reg,value1,value2,value3,value4) reg &= ~(_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4))
+#define unset_bit5(reg,value1,value2,value3,value4,value5) reg &= ~(_BVL(value1) | _BVL(value2) | _BVL(value3) | _BVL(value4) | _BVL(value5))
diff --git a/board/BoardOutline.gbr b/board/BoardOutline.gbr index 66ff305..3b45bd5 100644 --- a/board/BoardOutline.gbr +++ b/board/BoardOutline.gbr @@ -1,19 +1,19 @@ -G04 DipTrace 2.4.0.2* -%INBoardOutline.gbr*% -%MOIN*% -%ADD11C,0.0055*% -%FSLAX44Y44*% -G04* -G70* -G90* -G75* -G01* -%LNBoardOutline*% -%LPD*% -X3937Y24437D2* -D11* -X33437D1* -Y3937D1* -X3937D1* -Y24437D1* -M02* +G04 DipTrace 2.4.0.2*
+%INBoardOutline.gbr*%
+%MOIN*%
+%ADD11C,0.0055*%
+%FSLAX44Y44*%
+G04*
+G70*
+G90*
+G75*
+G01*
+%LNBoardOutline*%
+%LPD*%
+X3937Y24437D2*
+D11*
+X33437D1*
+Y3937D1*
+X3937D1*
+Y24437D1*
+M02*
diff --git a/board/Bottom.gbr b/board/Bottom.gbr index bdafb34..b2ae0c6 100644 --- a/board/Bottom.gbr +++ b/board/Bottom.gbr @@ -1,1990 +1,1990 @@ -G04 DipTrace 2.4.0.2* -%INBottom.gbr*% -%MOIN*% -%ADD13C,0.0118*% -%ADD14C,0.0079*% -%ADD15C,0.025*% -%ADD18R,0.063X0.063*% -%ADD19C,0.063*% -%ADD24R,0.0665X0.0665*% -%ADD26C,0.0665*% -%ADD27C,0.1874*% -%ADD28C,0.189*% -%ADD34C,0.0276*% -%FSLAX44Y44*% -G04* -G70* -G90* -G75* -G01* -%LNBottom*% -%LPD*% -X24302Y11411D2* -D14* -X13051D1* -X12913Y11549D1* -Y15590D1* -X12776Y15727D1* -X6574D1* -X28526Y20805D2* -Y18044D1* -X26645Y16163D1* -Y11431D1* -X26221Y11008D1* -Y8273D1* -X25676Y7727D1* -Y7217D1* -X25538Y7079D1* -X22464D1* -X21973Y7569D1* -X25245D2* -Y11125D1* -X25582Y11462D1* -Y11746D1* -X25818Y11982D1* -Y16959D1* -X25254Y17523D1* -Y20805D1* -X25247Y11648D2* -X21437Y15458D1* -Y19687D1* -X13189Y12691D2* -Y19980D1* -X13051Y20118D1* -X11475D1* -X10788Y20805D1* -X13882Y13321D2* -Y20667D1* -X13744Y20805D1* -X11879D1* -X8075Y8687D2* -Y12061D1* -X9165Y8687D2* -Y11746D1* -X10256Y8687D2* -Y11431D1* -X8620Y7569D2* -Y9915D1* -X28516Y13293D2* -X27706D1* -X25470Y13321D2* -D13* -X24932D1* -Y13596D1* -X24617D1* -X8062Y19687D2* -X6023Y17648D1* -Y14686D1* -X6259Y14449D1* -X12201D1* -X12437Y14213D1* -Y8687D1* -X21982Y20805D2* -X21183Y21604D1* -X8298D1* -X8062Y21368D1* -Y19687D1* -X24617Y13596D2* -X21982Y16231D1* -Y20805D1* -X29011Y13435D2* -Y12954D1* -X28517Y12460D1* -Y7569D1* -X27984Y13687D2* -X28047Y13750D1* -X28696D1* -X29011Y13435D1* -D34* -X10872Y14938D3* -X8997D3* -Y18126D3* -Y16126D3* -X12562Y14937D3* -X12123Y16126D3* -X10497Y18876D3* -X12873Y16439D3* -X12935Y17501D3* -X11623Y18876D3* -X12748D3* -X13560Y18064D3* -X16623Y15001D3* -X15935Y14563D3* -X15248Y14126D3* -X13560Y16939D3* -X21749Y12376D3* -X17873D3* -X13623D3* -X11935D3* -X8560D3* -X8622Y11438D3* -Y10438D3* -X9685Y11313D3* -Y10438D3* -X10685Y10750D3* -X11998D3* -X12935Y10625D3* -X17998D3* -X22936D3* -X6434Y16876D3* -X8997Y13438D3* -X11998D3* -X13498D3* -Y14813D3* -X24936Y14626D3* -X26187Y14938D3* -Y14063D3* -X26937Y12438D3* -X28624Y12938D3* -X27749Y10625D3* -X25937Y10688D3* -X22374Y18001D3* -X24874D3* -X24374Y15563D3* -X13560Y15813D3* -X4309Y24064D3* -X33062D3* -Y4312D3* -X4309D3* -X7810Y9250D3* -X25624Y18001D3* -X27999D3* -X25749Y9625D3* -X7872Y7375D3* -X6997Y8500D3* -X23561Y11751D3* -X24061Y13501D3* -X25499Y12501D3* -X6574Y15727D3* -X24302Y11411D3* -X26645Y11431D3* -X25582Y11746D3* -X25247Y11648D3* -X13189Y12691D3* -X13882Y13321D3* -X8075Y12061D3* -X9165Y11746D3* -X10256Y11431D3* -X8620Y9915D3* -X27706Y13293D3* -X28516D3* -X27984Y13687D3* -X29011Y13435D3* -X25470Y13321D3* -X24617Y13596D3* -X4337Y23813D2* -D15* -X33039D1* -X4337Y23565D2* -X33039D1* -X4337Y23316D2* -X33039D1* -X4337Y23067D2* -X33039D1* -X4337Y22819D2* -X33039D1* -X4337Y22570D2* -X33039D1* -X4337Y22321D2* -X33039D1* -X4337Y22073D2* -X33039D1* -X4337Y21824D2* -X8035D1* -X21448D2* -X33039D1* -X4337Y21575D2* -X7789D1* -X21694D2* -X33039D1* -X4337Y21326D2* -X7715D1* -X22300D2* -X22758D1* -X23390D2* -X23848D1* -X24480D2* -X24937D1* -X25569D2* -X26027D1* -X26663D2* -X27117D1* -X27753D2* -X28207D1* -X28843D2* -X33039D1* -X4337Y21078D2* -X7715D1* -X9163D2* -X10230D1* -X13905D2* -X21226D1* -X29081D2* -X33039D1* -X4337Y20829D2* -X7715D1* -X9230D2* -X10168D1* -X14163D2* -X21359D1* -X29148D2* -X33039D1* -X4337Y20580D2* -X7715D1* -X9187D2* -X10211D1* -X14210D2* -X21402D1* -X29105D2* -X33039D1* -X4337Y20332D2* -X7715D1* -X8995D2* -X10398D1* -X13292D2* -X13551D1* -X14210D2* -X21594D1* -X28913D2* -X33039D1* -X4337Y20083D2* -X7590D1* -X8534D2* -X8680D1* -X9624D2* -X9770D1* -X10714D2* -X10862D1* -X14210D2* -X20965D1* -X28855D2* -X33039D1* -X4337Y19834D2* -X7457D1* -X14210D2* -X20832D1* -X28855D2* -X33039D1* -X4337Y19586D2* -X7449D1* -X14210D2* -X20824D1* -X28855D2* -X33039D1* -X4337Y19337D2* -X7230D1* -X14210D2* -X20930D1* -X28855D2* -X33039D1* -X4337Y19088D2* -X6980D1* -X7944D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X24926D1* -X25581D2* -X28195D1* -X28855D2* -X33039D1* -X4337Y18840D2* -X6730D1* -X7698D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X24926D1* -X25581D2* -X28195D1* -X28855D2* -X33039D1* -X4337Y18591D2* -X6484D1* -X7448D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X24926D1* -X25581D2* -X28195D1* -X28855D2* -X33039D1* -X4337Y18342D2* -X6234D1* -X7198D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X24926D1* -X25581D2* -X28195D1* -X28855D2* -X33039D1* -X4337Y18094D2* -X5984D1* -X6952D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X24926D1* -X25581D2* -X28121D1* -X28855D2* -X33039D1* -X4337Y17845D2* -X5742D1* -X6702D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X24926D1* -X25581D2* -X27871D1* -X28780D2* -X33039D1* -X4337Y17596D2* -X5676D1* -X6452D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X24926D1* -X25636D2* -X27621D1* -X28534D2* -X33039D1* -X4337Y17347D2* -X5676D1* -X6370D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X24980D1* -X25886D2* -X27375D1* -X28284D2* -X33039D1* -X4337Y17099D2* -X5676D1* -X6370D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X25223D1* -X26112D2* -X27125D1* -X28034D2* -X33039D1* -X4337Y16850D2* -X5676D1* -X6370D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X25473D1* -X26148D2* -X26875D1* -X27788D2* -X33039D1* -X4337Y16601D2* -X5676D1* -X6370D2* -X12859D1* -X14210D2* -X21109D1* -X22331D2* -X25488D1* -X26148D2* -X26629D1* -X27538D2* -X33039D1* -X4337Y16353D2* -X5676D1* -X6370D2* -X12859D1* -X14210D2* -X21109D1* -X22343D2* -X25488D1* -X26148D2* -X26383D1* -X27288D2* -X33039D1* -X4337Y16104D2* -X5676D1* -X6741D2* -X12859D1* -X14210D2* -X21109D1* -X22593D2* -X25488D1* -X26148D2* -X26316D1* -X27042D2* -X33039D1* -X4337Y15855D2* -X5676D1* -X14210D2* -X21109D1* -X22843D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X33039D1* -X4337Y15607D2* -X5676D1* -X14210D2* -X21109D1* -X21765D2* -X22125D1* -X23089D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X33039D1* -X4337Y15358D2* -X5676D1* -X6757D2* -X12586D1* -X14210D2* -X21125D1* -X21991D2* -X22371D1* -X23339D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X31453D1* -X31733D2* -X33039D1* -X4337Y15109D2* -X5676D1* -X6370D2* -X12586D1* -X14210D2* -X21332D1* -X22241D2* -X22621D1* -X23589D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X31164D1* -X32023D2* -X33039D1* -X4337Y14861D2* -X5676D1* -X6370D2* -X12586D1* -X14210D2* -X21578D1* -X22491D2* -X22871D1* -X23835D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X31133D1* -X32054D2* -X33039D1* -X4337Y14612D2* -X5683D1* -X14210D2* -X21828D1* -X22737D2* -X23117D1* -X24085D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X31262D1* -X31925D2* -X33039D1* -X4337Y14363D2* -X5863D1* -X14210D2* -X22078D1* -X22987D2* -X23367D1* -X24335D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X33039D1* -X4337Y14115D2* -X12051D1* -X14210D2* -X22324D1* -X23237D2* -X23617D1* -X24581D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X33039D1* -X4337Y13866D2* -X12090D1* -X14210D2* -X22574D1* -X23483D2* -X23863D1* -X25136D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X27598D1* -X29062D2* -X33039D1* -X4337Y13617D2* -X12090D1* -X14210D2* -X22824D1* -X23733D2* -X24113D1* -X26148D2* -X26316D1* -X26976D2* -X27441D1* -X29394D2* -X31426D1* -X31761D2* -X33039D1* -X4337Y13368D2* -X12090D1* -X14308D2* -X23070D1* -X23983D2* -X24262D1* -X26148D2* -X26316D1* -X26976D2* -X27285D1* -X29433D2* -X31160D1* -X32026D2* -X33039D1* -X4337Y13120D2* -X12090D1* -X14257D2* -X23320D1* -X24230D2* -X24652D1* -X26148D2* -X26316D1* -X26976D2* -X27316D1* -X29358D2* -X31133D1* -X32054D2* -X33039D1* -X4337Y12871D2* -X12090D1* -X13573D2* -X23570D1* -X24480D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X28445D1* -X29351D2* -X31273D1* -X31913D2* -X33039D1* -X4337Y12622D2* -X12090D1* -X13612D2* -X23816D1* -X24730D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X28211D1* -X29163D2* -X33039D1* -X4337Y12374D2* -X7797D1* -X8355D2* -X12090D1* -X13460D2* -X24066D1* -X24976D2* -X25488D1* -X26148D2* -X26316D1* -X26976D2* -X28168D1* -X28913D2* -X33039D1* -X4337Y12125D2* -X7652D1* -X8499D2* -X9004D1* -X9327D2* -X12090D1* -X13241D2* -X24316D1* -X25226D2* -X25422D1* -X26148D2* -X26316D1* -X26976D2* -X28168D1* -X28866D2* -X33039D1* -X4337Y11876D2* -X7691D1* -X8456D2* -X8758D1* -X9569D2* -X12090D1* -X13241D2* -X24562D1* -X26128D2* -X26316D1* -X26976D2* -X28168D1* -X28866D2* -X33039D1* -X4337Y11628D2* -X7746D1* -X8405D2* -X8754D1* -X9573D2* -X9879D1* -X10632D2* -X12090D1* -X24667D2* -X24812D1* -X25991D2* -X26269D1* -X27023D2* -X28168D1* -X28866D2* -X33039D1* -X4337Y11379D2* -X7746D1* -X8405D2* -X8836D1* -X9495D2* -X9832D1* -X10679D2* -X12090D1* -X24730D2* -X24922D1* -X25898D2* -X26137D1* -X27069D2* -X28168D1* -X28866D2* -X29207D1* -X30417D2* -X33039D1* -X4337Y11130D2* -X7746D1* -X8405D2* -X8836D1* -X9495D2* -X9926D1* -X10585D2* -X12090D1* -X24616D2* -X24918D1* -X25706D2* -X25918D1* -X26937D2* -X28168D1* -X28866D2* -X29207D1* -X30417D2* -X33039D1* -X4337Y10882D2* -X7746D1* -X8405D2* -X8836D1* -X9495D2* -X9926D1* -X10585D2* -X12090D1* -X12784D2* -X24918D1* -X25573D2* -X25891D1* -X26550D2* -X28168D1* -X28866D2* -X29207D1* -X30417D2* -X33039D1* -X4337Y10633D2* -X7746D1* -X8405D2* -X8836D1* -X9495D2* -X9926D1* -X10585D2* -X12090D1* -X12784D2* -X24918D1* -X25573D2* -X25891D1* -X26550D2* -X28168D1* -X28866D2* -X29207D1* -X30417D2* -X33039D1* -X4337Y10384D2* -X7746D1* -X8405D2* -X8836D1* -X9495D2* -X9926D1* -X10585D2* -X12090D1* -X12784D2* -X24918D1* -X25573D2* -X25891D1* -X26550D2* -X28168D1* -X28866D2* -X29207D1* -X30417D2* -X33039D1* -X4337Y10135D2* -X7746D1* -X9495D2* -X9926D1* -X10585D2* -X12090D1* -X12784D2* -X24918D1* -X25573D2* -X25891D1* -X26550D2* -X28168D1* -X28866D2* -X33039D1* -X4337Y9887D2* -X7746D1* -X9495D2* -X9926D1* -X10585D2* -X12090D1* -X12784D2* -X24918D1* -X25573D2* -X25891D1* -X26550D2* -X28168D1* -X28866D2* -X33039D1* -X4337Y9638D2* -X7746D1* -X9495D2* -X9926D1* -X10585D2* -X12090D1* -X12784D2* -X24918D1* -X25573D2* -X25891D1* -X26550D2* -X28168D1* -X28866D2* -X33039D1* -X4337Y9389D2* -X7746D1* -X9495D2* -X9926D1* -X10585D2* -X12090D1* -X12784D2* -X24918D1* -X25573D2* -X25891D1* -X26550D2* -X28168D1* -X28866D2* -X33039D1* -X4337Y9141D2* -X7453D1* -X9577D2* -X9844D1* -X10671D2* -X10933D1* -X11761D2* -X12023D1* -X12851D2* -X22105D1* -X22933D2* -X23195D1* -X24023D2* -X24285D1* -X27296D2* -X27558D1* -X29476D2* -X33039D1* -X4337Y8892D2* -X7453D1* -X13023D2* -X21933D1* -X29648D2* -X33039D1* -X4337Y8643D2* -X7453D1* -X13058D2* -X21898D1* -X29683D2* -X33039D1* -X4337Y8395D2* -X7453D1* -X12983D2* -X21973D1* -X29608D2* -X33039D1* -X4337Y8146D2* -X7453D1* -X10534D2* -X11066D1* -X12714D2* -X21793D1* -X29339D2* -X33039D1* -X4337Y7897D2* -X8098D1* -X10233D2* -X11367D1* -X12417D2* -X21449D1* -X29042D2* -X33039D1* -X4337Y7649D2* -X8004D1* -X10327D2* -X11273D1* -X12507D2* -X21355D1* -X29132D2* -X33039D1* -X4337Y7400D2* -X8023D1* -X10308D2* -X11293D1* -X12491D2* -X21375D1* -X29116D2* -X33039D1* -X4337Y7151D2* -X8168D1* -X9073D2* -X9258D1* -X10163D2* -X11441D1* -X12343D2* -X21519D1* -X26788D2* -X26973D1* -X27878D2* -X28066D1* -X28968D2* -X33039D1* -X4337Y6903D2* -X22183D1* -X25816D2* -X33039D1* -X4337Y6654D2* -X33039D1* -X4337Y6405D2* -X33039D1* -X4337Y6156D2* -X33039D1* -X4337Y5908D2* -X33039D1* -X4337Y5659D2* -X33039D1* -X4337Y5410D2* -X33039D1* -X4337Y5162D2* -X33039D1* -X4337Y4913D2* -X33039D1* -X4337Y4664D2* -X33039D1* -X4337Y4416D2* -X33039D1* -X29357Y11393D2* -X30392D1* -Y10233D1* -X29232D1* -Y11393D1* -X29357D1* -X32018Y13076D2* -X31967Y12962D1* -X31886Y12867D1* -X31782Y12799D1* -X31663Y12762D1* -X31538Y12760D1* -X31418Y12793D1* -X31312Y12858D1* -X31228Y12951D1* -X31173Y13062D1* -X31152Y13185D1* -X31165Y13309D1* -X31213Y13424D1* -X31291Y13521D1* -X31393Y13593D1* -X31511Y13633D1* -X31635Y13639D1* -X31756Y13610D1* -X31865Y13548D1* -X31951Y13459D1* -X32009Y13349D1* -X32036Y13199D1* -X32018Y13076D1* -Y14808D2* -X31967Y14694D1* -X31886Y14600D1* -X31782Y14531D1* -X31663Y14495D1* -X31538Y14493D1* -X31418Y14526D1* -X31312Y14591D1* -X31228Y14683D1* -X31173Y14795D1* -X31152Y14917D1* -X31165Y15041D1* -X31213Y15156D1* -X31291Y15254D1* -X31393Y15325D1* -X31511Y15366D1* -X31635Y15371D1* -X31756Y15342D1* -X31865Y15281D1* -X31951Y15191D1* -X32009Y15081D1* -X32036Y14931D1* -X32018Y14808D1* -X7602Y9285D2* -X7770D1* -X7771Y11800D1* -X7696Y11924D1* -X7672Y12046D1* -X7687Y12170D1* -X7739Y12283D1* -X7822Y12375D1* -X7930Y12437D1* -X8052Y12463D1* -X8176Y12451D1* -X8290Y12401D1* -X8384Y12319D1* -X8448Y12213D1* -X8478Y12061D1* -X8458Y11938D1* -X8402Y11827D1* -X8378Y11802D1* -X8379Y10237D1* -X8476Y10291D1* -X8597Y10318D1* -X8721Y10305D1* -X8835Y10256D1* -X8862Y10233D1* -X8861Y11480D1* -X8787Y11609D1* -X8763Y11731D1* -X8778Y11855D1* -X8829Y11968D1* -X8913Y12060D1* -X9021Y12122D1* -X9143Y12148D1* -X9266Y12136D1* -X9381Y12086D1* -X9474Y12004D1* -X9538Y11898D1* -X9568Y11746D1* -X9549Y11623D1* -X9493Y11512D1* -X9468Y11487D1* -X9470Y9203D1* -X9562Y9134D1* -X9646Y9042D1* -X9711Y8930D1* -X9771Y9036D1* -X9854Y9129D1* -X9951Y9201D1* -X9952Y11167D1* -X9877Y11294D1* -X9853Y11416D1* -X9868Y11540D1* -X9920Y11653D1* -X10004Y11745D1* -X10111Y11807D1* -X10233Y11833D1* -X10357Y11821D1* -X10471Y11771D1* -X10565Y11689D1* -X10629Y11583D1* -X10659Y11431D1* -X10639Y11308D1* -X10583Y11197D1* -X10559Y11172D1* -X10560Y9201D1* -X10653Y9134D1* -X10737Y9042D1* -X10801Y8930D1* -X10861Y9036D1* -X10944Y9129D1* -X11045Y9203D1* -X11159Y9254D1* -X11280Y9281D1* -X11405Y9282D1* -X11527Y9257D1* -X11642Y9207D1* -X11743Y9134D1* -X11827Y9042D1* -X11892Y8930D1* -X11952Y9036D1* -X12035Y9129D1* -X12113Y9187D1* -Y14082D1* -X11951Y14125D1* -X6259D1* -X6137Y14149D1* -X6030Y14220D1* -X5794Y14456D1* -X5724Y14560D1* -X5699Y14686D1* -Y17648D1* -X5722Y17770D1* -X5794Y17877D1* -X7476Y19559D1* -X7464Y19685D1* -X7477Y19809D1* -X7515Y19928D1* -X7577Y20036D1* -X7660Y20129D1* -X7738Y20187D1* -Y21368D1* -X7762Y21490D1* -X7833Y21597D1* -X8069Y21833D1* -X8172Y21903D1* -X8298Y21928D1* -X21183D1* -X21305Y21904D1* -X21412Y21833D1* -X21857Y21389D1* -X21916Y21399D1* -X22041Y21400D1* -X22163Y21375D1* -X22278Y21325D1* -X22379Y21252D1* -X22463Y21160D1* -X22528Y21049D1* -X22588Y21154D1* -X22671Y21247D1* -X22771Y21321D1* -X22885Y21372D1* -X23007Y21399D1* -X23132Y21400D1* -X23254Y21375D1* -X23368Y21325D1* -X23470Y21252D1* -X23554Y21160D1* -X23618Y21049D1* -X23678Y21154D1* -X23761Y21247D1* -X23862Y21321D1* -X23975Y21372D1* -X24097Y21399D1* -X24222Y21400D1* -X24344Y21375D1* -X24459Y21325D1* -X24560Y21252D1* -X24644Y21160D1* -X24709Y21049D1* -X24769Y21154D1* -X24852Y21247D1* -X24952Y21321D1* -X25066Y21372D1* -X25188Y21399D1* -X25313Y21400D1* -X25435Y21375D1* -X25549Y21325D1* -X25651Y21252D1* -X25735Y21160D1* -X25799Y21049D1* -X25859Y21154D1* -X25942Y21247D1* -X26043Y21321D1* -X26157Y21372D1* -X26278Y21399D1* -X26403Y21400D1* -X26525Y21375D1* -X26640Y21325D1* -X26741Y21252D1* -X26825Y21160D1* -X26890Y21049D1* -X26950Y21154D1* -X27033Y21247D1* -X27133Y21321D1* -X27247Y21372D1* -X27369Y21399D1* -X27494Y21400D1* -X27616Y21375D1* -X27730Y21325D1* -X27832Y21252D1* -X27916Y21160D1* -X27980Y21049D1* -X28040Y21154D1* -X28123Y21247D1* -X28224Y21321D1* -X28338Y21372D1* -X28460Y21399D1* -X28584Y21400D1* -X28707Y21375D1* -X28821Y21325D1* -X28922Y21252D1* -X29006Y21160D1* -X29070Y21052D1* -X29109Y20934D1* -X29123Y20805D1* -X29110Y20681D1* -X29072Y20562D1* -X29009Y20454D1* -X28926Y20361D1* -X28828Y20290D1* -X28830Y18044D1* -X28802Y17919D1* -X28741Y17829D1* -X26948Y16036D1* -X26949Y11698D1* -X27018Y11583D1* -X27047Y11431D1* -X27028Y11308D1* -X26972Y11197D1* -X26885Y11108D1* -X26775Y11050D1* -X26679Y11033D1* -X26526Y10882D1* -Y9168D1* -X26579Y9203D1* -X26693Y9254D1* -X26815Y9281D1* -X26940Y9282D1* -X27062Y9257D1* -X27176Y9207D1* -X27278Y9134D1* -X27362Y9042D1* -X27426Y8930D1* -X27486Y9036D1* -X27569Y9129D1* -X27670Y9203D1* -X27784Y9254D1* -X27905Y9281D1* -X28030Y9282D1* -X28152Y9257D1* -X28192Y9239D1* -X28193Y12460D1* -X28217Y12582D1* -X28288Y12689D1* -X28489Y12890D1* -X28400Y12908D1* -X28288Y12961D1* -X28256Y12991D1* -X27973Y12989D1* -X27836Y12912D1* -X27713Y12891D1* -X27590Y12908D1* -X27478Y12961D1* -X27387Y13047D1* -X27327Y13156D1* -X27303Y13278D1* -X27318Y13402D1* -X27370Y13515D1* -X27453Y13607D1* -X27580Y13673D1* -X27596Y13795D1* -X27648Y13909D1* -X27732Y14001D1* -X27840Y14063D1* -X27961Y14089D1* -X28172Y14074D1* -X28696D1* -X28818Y14050D1* -X28925Y13979D1* -X29072Y13833D1* -X29112Y13825D1* -X29226Y13775D1* -X29320Y13693D1* -X29384Y13587D1* -X29414Y13435D1* -X29395Y13312D1* -X29335Y13185D1* -Y12954D1* -X29311Y12832D1* -X29240Y12725D1* -X28840Y12325D1* -X28841Y9245D1* -X28996Y9281D1* -X29121Y9282D1* -X29243Y9257D1* -X29357Y9207D1* -X29459Y9134D1* -X29543Y9042D1* -X29606Y8934D1* -X29646Y8816D1* -X29660Y8687D1* -X29647Y8563D1* -X29608Y8444D1* -X29546Y8336D1* -X29462Y8243D1* -X29362Y8170D1* -X29248Y8119D1* -X29126Y8093D1* -X29001D1* -X28879Y8118D1* -X28839Y8136D1* -X28841Y8073D1* -X28913Y8016D1* -X28998Y7924D1* -X29061Y7816D1* -X29100Y7698D1* -X29114Y7569D1* -X29101Y7445D1* -X29063Y7326D1* -X29000Y7218D1* -X28917Y7125D1* -X28816Y7052D1* -X28702Y7001D1* -X28580Y6975D1* -X28456Y6974D1* -X28333Y7000D1* -X28219Y7051D1* -X28118Y7124D1* -X28034Y7216D1* -X27970Y7328D1* -X27910Y7218D1* -X27827Y7125D1* -X27726Y7052D1* -X27612Y7001D1* -X27490Y6975D1* -X27365Y6974D1* -X27243Y7000D1* -X27129Y7051D1* -X27028Y7124D1* -X26944Y7216D1* -X26880Y7328D1* -X26819Y7218D1* -X26736Y7125D1* -X26635Y7052D1* -X26521Y7001D1* -X26399Y6975D1* -X26274Y6974D1* -X26152Y7000D1* -X26038Y7051D1* -X25959Y7108D1* -X25940Y7066D1* -X25891Y7001D1* -X25754Y6864D1* -X25646Y6795D1* -X25538Y6774D1* -X22464D1* -X22339Y6802D1* -X22248Y6864D1* -X22124Y6988D1* -X22037Y6975D1* -X21912Y6974D1* -X21790Y7000D1* -X21676Y7051D1* -X21575Y7124D1* -X21491Y7216D1* -X21428Y7324D1* -X21389Y7442D1* -X21376Y7566D1* -X21388Y7691D1* -X21426Y7809D1* -X21488Y7918D1* -X21571Y8011D1* -X21672Y8085D1* -X21786Y8136D1* -X21907Y8163D1* -X22032Y8164D1* -X22154Y8138D1* -X22269Y8088D1* -X22370Y8016D1* -X22454Y7924D1* -X22519Y7812D1* -X22579Y7918D1* -X22662Y8011D1* -X22762Y8085D1* -X22876Y8136D1* -X22998Y8163D1* -X23123Y8164D1* -X23245Y8138D1* -X23359Y8088D1* -X23461Y8016D1* -X23545Y7924D1* -X23609Y7812D1* -X23669Y7918D1* -X23752Y8011D1* -X23853Y8085D1* -X23967Y8136D1* -X24089Y8163D1* -X24213Y8164D1* -X24336Y8138D1* -X24450Y8088D1* -X24551Y8016D1* -X24635Y7924D1* -X24700Y7812D1* -X24760Y7918D1* -X24843Y8011D1* -X24940Y8083D1* -X24885Y8119D1* -X24763Y8093D1* -X24639D1* -X24517Y8118D1* -X24402Y8169D1* -X24301Y8242D1* -X24217Y8334D1* -X24154Y8446D1* -X24093Y8336D1* -X24010Y8243D1* -X23909Y8170D1* -X23795Y8119D1* -X23673Y8093D1* -X23548D1* -X23426Y8118D1* -X23312Y8169D1* -X23211Y8242D1* -X23127Y8334D1* -X23063Y8446D1* -X23002Y8336D1* -X22919Y8243D1* -X22818Y8170D1* -X22704Y8119D1* -X22582Y8093D1* -X22458D1* -X22335Y8118D1* -X22221Y8169D1* -X22120Y8242D1* -X22036Y8334D1* -X21974Y8442D1* -X21935Y8561D1* -X21921Y8685D1* -X21934Y8809D1* -X21972Y8928D1* -X22034Y9036D1* -X22117Y9129D1* -X22217Y9203D1* -X22331Y9254D1* -X22453Y9281D1* -X22577Y9282D1* -X22700Y9257D1* -X22814Y9207D1* -X22915Y9134D1* -X23000Y9042D1* -X23064Y8930D1* -X23124Y9036D1* -X23207Y9129D1* -X23308Y9203D1* -X23421Y9254D1* -X23543Y9281D1* -X23668Y9282D1* -X23790Y9257D1* -X23905Y9207D1* -X24006Y9134D1* -X24090Y9042D1* -X24155Y8930D1* -X24215Y9036D1* -X24298Y9129D1* -X24398Y9203D1* -X24512Y9254D1* -X24634Y9281D1* -X24759Y9282D1* -X24881Y9257D1* -X24942Y9230D1* -X24941Y11125D1* -X24968Y11250D1* -X24982Y11278D1* -X24868Y11511D1* -X24848Y11614D1* -X21222Y15243D1* -X21153Y15351D1* -X21133Y15458D1* -Y19173D1* -X21038Y19242D1* -X20955Y19334D1* -X20892Y19442D1* -X20853Y19561D1* -X20839Y19685D1* -X20852Y19809D1* -X20890Y19928D1* -X20952Y20036D1* -X21035Y20129D1* -X21135Y20203D1* -X21249Y20254D1* -X21371Y20281D1* -X21496Y20282D1* -X21618Y20257D1* -X21657Y20239D1* -X21584Y20360D1* -X21500Y20452D1* -X21437Y20560D1* -X21398Y20679D1* -X21385Y20803D1* -X21398Y20931D1* -X21049Y21280D1* -X12242D1* -X12360Y21160D1* -X12389Y21109D1* -X13744D1* -X13869Y21082D1* -X13959Y21020D1* -X14097Y20882D1* -X14166Y20775D1* -X14186Y20667D1* -X14191Y13579D1* -X14255Y13472D1* -X14284Y13321D1* -X14265Y13198D1* -X14209Y13087D1* -X14122Y12998D1* -X14012Y12940D1* -X13889Y12918D1* -X13766Y12935D1* -X13654Y12989D1* -X13563Y13074D1* -X13503Y13184D1* -X13494Y13233D1* -X13498Y12949D1* -X13562Y12842D1* -X13592Y12691D1* -X13572Y12568D1* -X13517Y12457D1* -X13429Y12368D1* -X13319Y12310D1* -X13216Y12292D1* -X13218Y11718D1* -X14551Y11716D1* -X24039D1* -X24158Y11787D1* -X24279Y11813D1* -X24403Y11801D1* -X24518Y11752D1* -X24611Y11670D1* -X24675Y11563D1* -X24705Y11411D1* -X24686Y11288D1* -X24630Y11177D1* -X24543Y11088D1* -X24432Y11030D1* -X24310Y11009D1* -X24186Y11026D1* -X24074Y11079D1* -X24043Y11109D1* -X17802Y11107D1* -X13051D1* -X12926Y11135D1* -X12836Y11196D1* -X12761Y11271D1* -Y9186D1* -X12834Y9134D1* -X12918Y9042D1* -X12981Y8934D1* -X13021Y8816D1* -X13035Y8687D1* -X13022Y8563D1* -X12983Y8444D1* -X12921Y8336D1* -X12837Y8243D1* -X12736Y8170D1* -X12623Y8119D1* -X12501Y8093D1* -X12376D1* -X12254Y8118D1* -X12140Y8169D1* -X12038Y8242D1* -X11955Y8334D1* -X11891Y8446D1* -X11830Y8336D1* -X11747Y8243D1* -X11646Y8170D1* -X11532Y8119D1* -X11410Y8093D1* -X11285D1* -X11163Y8118D1* -X11049Y8169D1* -X10948Y8242D1* -X10864Y8334D1* -X10800Y8446D1* -X10740Y8336D1* -X10656Y8243D1* -X10555Y8170D1* -X10441Y8119D1* -X10319Y8093D1* -X10195D1* -X10073Y8118D1* -X9958Y8169D1* -X9857Y8242D1* -X9774Y8334D1* -X9710Y8446D1* -X9649Y8336D1* -X9566Y8243D1* -X9465Y8170D1* -X9351Y8119D1* -X9229Y8093D1* -X9104D1* -X8982Y8118D1* -X8921Y8145D1* -X9017Y8016D1* -X9101Y7924D1* -X9165Y7812D1* -X9225Y7918D1* -X9308Y8011D1* -X9409Y8085D1* -X9523Y8136D1* -X9645Y8163D1* -X9769Y8164D1* -X9892Y8138D1* -X10006Y8088D1* -X10107Y8016D1* -X10192Y7924D1* -X10255Y7816D1* -X10294Y7698D1* -X10308Y7569D1* -X10295Y7445D1* -X10257Y7326D1* -X10194Y7218D1* -X10111Y7125D1* -X10010Y7052D1* -X9896Y7001D1* -X9774Y6975D1* -X9649Y6974D1* -X9527Y7000D1* -X9413Y7051D1* -X9312Y7124D1* -X9228Y7216D1* -X9164Y7328D1* -X9104Y7218D1* -X9020Y7125D1* -X8920Y7052D1* -X8806Y7001D1* -X8684Y6975D1* -X8559Y6974D1* -X8437Y7000D1* -X8323Y7051D1* -X8222Y7124D1* -X8138Y7216D1* -X8075Y7324D1* -X8036Y7442D1* -X8022Y7566D1* -X8035Y7691D1* -X8073Y7809D1* -X8135Y7918D1* -X8218Y8011D1* -X8315Y8083D1* -X8172Y8089D1* -X7477D1* -Y9285D1* -X7602D1* -X12476Y7445D2* -X12438Y7326D1* -X12375Y7218D1* -X12292Y7125D1* -X12191Y7052D1* -X12077Y7001D1* -X11955Y6975D1* -X11831Y6974D1* -X11708Y7000D1* -X11594Y7051D1* -X11493Y7124D1* -X11409Y7216D1* -X11347Y7324D1* -X11308Y7442D1* -X11294Y7566D1* -X11307Y7691D1* -X11345Y7809D1* -X11407Y7918D1* -X11490Y8011D1* -X11590Y8085D1* -X11704Y8136D1* -X11826Y8163D1* -X11951Y8164D1* -X12073Y8138D1* -X12187Y8088D1* -X12288Y8016D1* -X12373Y7924D1* -X12436Y7816D1* -X12475Y7698D1* -X12489Y7569D1* -X12476Y7445D1* -X25549Y9230D2* -X25602Y9254D1* -X25724Y9281D1* -X25849Y9282D1* -X25917Y9273D1* -Y11008D1* -X25945Y11133D1* -X26006Y11223D1* -X26241Y11458D1* -X26257Y11540D1* -X26309Y11653D1* -X26343Y11690D1* -X26340Y14806D1* -Y16163D1* -X26368Y16288D1* -X26430Y16378D1* -X28222Y18171D1* -X28221Y19142D1* -X28166Y19119D1* -X28044Y19093D1* -X27919D1* -X27797Y19118D1* -X27683Y19169D1* -X27582Y19242D1* -X27498Y19334D1* -X27434Y19446D1* -X27374Y19336D1* -X27290Y19243D1* -X27189Y19170D1* -X27075Y19119D1* -X26953Y19093D1* -X26829D1* -X26706Y19118D1* -X26592Y19169D1* -X26491Y19242D1* -X26407Y19334D1* -X26343Y19446D1* -X26283Y19336D1* -X26200Y19243D1* -X26099Y19170D1* -X25985Y19119D1* -X25863Y19093D1* -X25738D1* -X25616Y19118D1* -X25555Y19145D1* -X25558Y17930D1* -Y17653D1* -X26033Y17175D1* -X26102Y17067D1* -X26122Y16959D1* -Y11982D1* -X26095Y11858D1* -X26033Y11767D1* -X25981Y11715D1* -X25965Y11623D1* -X25909Y11512D1* -X25885Y11487D1* -X25861Y11340D1* -X25797Y11246D1* -X25551Y11001D1* -X25549Y9231D1* -X24948Y19143D2* -X24894Y19119D1* -X24772Y19093D1* -X24647D1* -X24525Y19118D1* -X24411Y19169D1* -X24310Y19242D1* -X24226Y19334D1* -X24162Y19446D1* -X24102Y19336D1* -X24018Y19243D1* -X23918Y19170D1* -X23804Y19119D1* -X23682Y19093D1* -X23557D1* -X23435Y19118D1* -X23321Y19169D1* -X23220Y19242D1* -X23136Y19334D1* -X23072Y19446D1* -X23011Y19336D1* -X22928Y19243D1* -X22827Y19170D1* -X22713Y19119D1* -X22591Y19093D1* -X22466D1* -X22344Y19118D1* -X22305Y19136D1* -X22306Y16364D1* -X24678Y13994D1* -X24718Y13986D1* -X24832Y13937D1* -X24853Y13919D1* -X24932Y13920D1* -X25054Y13897D1* -X25158Y13829D1* -X25226Y13731D1* -X25326Y13697D1* -X25448Y13723D1* -X25514Y13716D1* -Y16830D1* -X25039Y17308D1* -X24970Y17416D1* -X24950Y17523D1* -Y19137D1* -X12885Y19089D2* -X11827D1* -Y19351D1* -X11734Y19243D1* -X11633Y19170D1* -X11519Y19119D1* -X11397Y19093D1* -X11272D1* -X11150Y19118D1* -X11036Y19169D1* -X10935Y19242D1* -X10851Y19334D1* -X10787Y19446D1* -X10727Y19336D1* -X10643Y19243D1* -X10543Y19170D1* -X10429Y19119D1* -X10307Y19093D1* -X10182D1* -X10060Y19118D1* -X9946Y19169D1* -X9845Y19242D1* -X9761Y19334D1* -X9697Y19446D1* -X9636Y19336D1* -X9553Y19243D1* -X9452Y19170D1* -X9338Y19119D1* -X9216Y19093D1* -X9091D1* -X8969Y19118D1* -X8855Y19169D1* -X8754Y19242D1* -X8670Y19334D1* -X8606Y19446D1* -X8546Y19336D1* -X8462Y19243D1* -X8362Y19170D1* -X8248Y19119D1* -X8126Y19093D1* -X8001D1* -X7936Y19106D1* -X6344Y17511D1* -X6347Y16058D1* -X6429Y16103D1* -X6551Y16129D1* -X6675Y16117D1* -X6789Y16068D1* -X6833Y16029D1* -X8949Y16032D1* -X12812Y16029D1* -X12885Y16066D1* -Y19093D1* -X10789Y19931D2* -X10849Y20036D1* -X10932Y20129D1* -X10991Y20173D1* -X10852Y20211D1* -X10727D1* -X10605Y20236D1* -X10491Y20287D1* -X10390Y20360D1* -X10306Y20452D1* -X10243Y20560D1* -X10204Y20679D1* -X10191Y20803D1* -X10203Y20927D1* -X10241Y21046D1* -X10303Y21154D1* -X10386Y21247D1* -X10433Y21282D1* -X8968Y21280D1* -X9088Y21160D1* -X9151Y21052D1* -X9191Y20934D1* -X9205Y20805D1* -X9192Y20681D1* -X9153Y20562D1* -X9091Y20454D1* -X9008Y20361D1* -X8907Y20288D1* -X8793Y20237D1* -X8671Y20211D1* -X8546D1* -X8424Y20236D1* -X8385Y20254D1* -X8386Y20192D1* -X8459Y20134D1* -X8543Y20042D1* -X8607Y19930D1* -X8667Y20036D1* -X8750Y20129D1* -X8851Y20203D1* -X8965Y20254D1* -X9087Y20281D1* -X9211Y20282D1* -X9334Y20257D1* -X9448Y20207D1* -X9549Y20134D1* -X9633Y20042D1* -X9698Y19930D1* -X9758Y20036D1* -X9841Y20129D1* -X9942Y20203D1* -X10055Y20254D1* -X10177Y20281D1* -X10302Y20282D1* -X10424Y20257D1* -X10538Y20207D1* -X10640Y20134D1* -X10724Y20042D1* -X10788Y19930D1* -X12388Y20498D2* -X12334Y20422D1* -X13051D1* -X13176Y20395D1* -X13266Y20333D1* -X13404Y20195D1* -X13473Y20088D1* -X13493Y19980D1* -X13494Y13429D1* -X13546Y13543D1* -X13580Y13580D1* -X13577Y16696D1* -Y20504D1* -X12869Y20501D1* -X12396D1* -X6833Y15424D2* -X6814Y15404D1* -X6704Y15346D1* -X6581Y15325D1* -X6458Y15342D1* -X6349Y15394D1* -X6347Y14823D1* -X6509Y14773D1* -X12201D1* -X12323Y14750D1* -X12430Y14678D1* -X12608Y14500D1* -X12609Y15420D1* -X11276Y15423D1* -X6834D1* -X25316Y12045D2* -X25437Y12122D1* -X25517Y12139D1* -X25514Y12924D1* -X25478Y12918D1* -X25355Y12935D1* -X25234Y12997D1* -X24932D1* -X24810Y13021D1* -X24706Y13089D1* -X24635Y13195D1* -X24501Y13211D1* -X24389Y13265D1* -X24299Y13350D1* -X24239Y13459D1* -X24224Y13532D1* -X21751Y16005D1* -X21741Y15937D1* -Y15582D1* -X25273Y12052D1* -X32937Y24062D2* -X4312D1* -Y4312D1* -X33062D1* -Y24062D1* -X32937D1* -D18* -X29812Y10813D3* -D19* -Y9813D3* -D24* -X8075Y8687D3* -D26* -X9165D3* -X10256D3* -X11346D3* -X12437D3* -X8620Y7569D3* -X9711D3* -X10801D3* -X11892D3* -D27* -X5337Y8128D3* -X15175D3* -D24* -X21428Y8687D3* -D26* -X22519D3* -X23609D3* -X24700D3* -X25790D3* -X26881D3* -X27971D3* -X29062D3* -X21973Y7569D3* -X23064D3* -X24155D3* -X25245D3* -X26336D3* -X27426D3* -X28517D3* -D28* -X18686Y8128D3* -X31804D3* -D24* -X29071Y19687D3* -D26* -X27980D3* -X26890D3* -X25799D3* -X24709D3* -X23618D3* -X22528D3* -X21437D3* -X28526Y20805D3* -X27435D3* -X26344D3* -X25254D3* -X24163D3* -X23073D3* -X21982D3* -D28* -X31813Y20246D3* -X18695D3* -D24* -X12424Y19687D3* -D26* -X11334D3* -X10243D3* -X9153D3* -X8062D3* -X11879Y20805D3* -X10788D3* -X9698D3* -X8607D3* -D27* -X15162Y20246D3* -X5324D3* -M02* +G04 DipTrace 2.4.0.2*
+%INBottom.gbr*%
+%MOIN*%
+%ADD13C,0.0118*%
+%ADD14C,0.0079*%
+%ADD15C,0.025*%
+%ADD18R,0.063X0.063*%
+%ADD19C,0.063*%
+%ADD24R,0.0665X0.0665*%
+%ADD26C,0.0665*%
+%ADD27C,0.1874*%
+%ADD28C,0.189*%
+%ADD34C,0.0276*%
+%FSLAX44Y44*%
+G04*
+G70*
+G90*
+G75*
+G01*
+%LNBottom*%
+%LPD*%
+X24302Y11411D2*
+D14*
+X13051D1*
+X12913Y11549D1*
+Y15590D1*
+X12776Y15727D1*
+X6574D1*
+X28526Y20805D2*
+Y18044D1*
+X26645Y16163D1*
+Y11431D1*
+X26221Y11008D1*
+Y8273D1*
+X25676Y7727D1*
+Y7217D1*
+X25538Y7079D1*
+X22464D1*
+X21973Y7569D1*
+X25245D2*
+Y11125D1*
+X25582Y11462D1*
+Y11746D1*
+X25818Y11982D1*
+Y16959D1*
+X25254Y17523D1*
+Y20805D1*
+X25247Y11648D2*
+X21437Y15458D1*
+Y19687D1*
+X13189Y12691D2*
+Y19980D1*
+X13051Y20118D1*
+X11475D1*
+X10788Y20805D1*
+X13882Y13321D2*
+Y20667D1*
+X13744Y20805D1*
+X11879D1*
+X8075Y8687D2*
+Y12061D1*
+X9165Y8687D2*
+Y11746D1*
+X10256Y8687D2*
+Y11431D1*
+X8620Y7569D2*
+Y9915D1*
+X28516Y13293D2*
+X27706D1*
+X25470Y13321D2*
+D13*
+X24932D1*
+Y13596D1*
+X24617D1*
+X8062Y19687D2*
+X6023Y17648D1*
+Y14686D1*
+X6259Y14449D1*
+X12201D1*
+X12437Y14213D1*
+Y8687D1*
+X21982Y20805D2*
+X21183Y21604D1*
+X8298D1*
+X8062Y21368D1*
+Y19687D1*
+X24617Y13596D2*
+X21982Y16231D1*
+Y20805D1*
+X29011Y13435D2*
+Y12954D1*
+X28517Y12460D1*
+Y7569D1*
+X27984Y13687D2*
+X28047Y13750D1*
+X28696D1*
+X29011Y13435D1*
+D34*
+X10872Y14938D3*
+X8997D3*
+Y18126D3*
+Y16126D3*
+X12562Y14937D3*
+X12123Y16126D3*
+X10497Y18876D3*
+X12873Y16439D3*
+X12935Y17501D3*
+X11623Y18876D3*
+X12748D3*
+X13560Y18064D3*
+X16623Y15001D3*
+X15935Y14563D3*
+X15248Y14126D3*
+X13560Y16939D3*
+X21749Y12376D3*
+X17873D3*
+X13623D3*
+X11935D3*
+X8560D3*
+X8622Y11438D3*
+Y10438D3*
+X9685Y11313D3*
+Y10438D3*
+X10685Y10750D3*
+X11998D3*
+X12935Y10625D3*
+X17998D3*
+X22936D3*
+X6434Y16876D3*
+X8997Y13438D3*
+X11998D3*
+X13498D3*
+Y14813D3*
+X24936Y14626D3*
+X26187Y14938D3*
+Y14063D3*
+X26937Y12438D3*
+X28624Y12938D3*
+X27749Y10625D3*
+X25937Y10688D3*
+X22374Y18001D3*
+X24874D3*
+X24374Y15563D3*
+X13560Y15813D3*
+X4309Y24064D3*
+X33062D3*
+Y4312D3*
+X4309D3*
+X7810Y9250D3*
+X25624Y18001D3*
+X27999D3*
+X25749Y9625D3*
+X7872Y7375D3*
+X6997Y8500D3*
+X23561Y11751D3*
+X24061Y13501D3*
+X25499Y12501D3*
+X6574Y15727D3*
+X24302Y11411D3*
+X26645Y11431D3*
+X25582Y11746D3*
+X25247Y11648D3*
+X13189Y12691D3*
+X13882Y13321D3*
+X8075Y12061D3*
+X9165Y11746D3*
+X10256Y11431D3*
+X8620Y9915D3*
+X27706Y13293D3*
+X28516D3*
+X27984Y13687D3*
+X29011Y13435D3*
+X25470Y13321D3*
+X24617Y13596D3*
+X4337Y23813D2*
+D15*
+X33039D1*
+X4337Y23565D2*
+X33039D1*
+X4337Y23316D2*
+X33039D1*
+X4337Y23067D2*
+X33039D1*
+X4337Y22819D2*
+X33039D1*
+X4337Y22570D2*
+X33039D1*
+X4337Y22321D2*
+X33039D1*
+X4337Y22073D2*
+X33039D1*
+X4337Y21824D2*
+X8035D1*
+X21448D2*
+X33039D1*
+X4337Y21575D2*
+X7789D1*
+X21694D2*
+X33039D1*
+X4337Y21326D2*
+X7715D1*
+X22300D2*
+X22758D1*
+X23390D2*
+X23848D1*
+X24480D2*
+X24937D1*
+X25569D2*
+X26027D1*
+X26663D2*
+X27117D1*
+X27753D2*
+X28207D1*
+X28843D2*
+X33039D1*
+X4337Y21078D2*
+X7715D1*
+X9163D2*
+X10230D1*
+X13905D2*
+X21226D1*
+X29081D2*
+X33039D1*
+X4337Y20829D2*
+X7715D1*
+X9230D2*
+X10168D1*
+X14163D2*
+X21359D1*
+X29148D2*
+X33039D1*
+X4337Y20580D2*
+X7715D1*
+X9187D2*
+X10211D1*
+X14210D2*
+X21402D1*
+X29105D2*
+X33039D1*
+X4337Y20332D2*
+X7715D1*
+X8995D2*
+X10398D1*
+X13292D2*
+X13551D1*
+X14210D2*
+X21594D1*
+X28913D2*
+X33039D1*
+X4337Y20083D2*
+X7590D1*
+X8534D2*
+X8680D1*
+X9624D2*
+X9770D1*
+X10714D2*
+X10862D1*
+X14210D2*
+X20965D1*
+X28855D2*
+X33039D1*
+X4337Y19834D2*
+X7457D1*
+X14210D2*
+X20832D1*
+X28855D2*
+X33039D1*
+X4337Y19586D2*
+X7449D1*
+X14210D2*
+X20824D1*
+X28855D2*
+X33039D1*
+X4337Y19337D2*
+X7230D1*
+X14210D2*
+X20930D1*
+X28855D2*
+X33039D1*
+X4337Y19088D2*
+X6980D1*
+X7944D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X24926D1*
+X25581D2*
+X28195D1*
+X28855D2*
+X33039D1*
+X4337Y18840D2*
+X6730D1*
+X7698D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X24926D1*
+X25581D2*
+X28195D1*
+X28855D2*
+X33039D1*
+X4337Y18591D2*
+X6484D1*
+X7448D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X24926D1*
+X25581D2*
+X28195D1*
+X28855D2*
+X33039D1*
+X4337Y18342D2*
+X6234D1*
+X7198D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X24926D1*
+X25581D2*
+X28195D1*
+X28855D2*
+X33039D1*
+X4337Y18094D2*
+X5984D1*
+X6952D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X24926D1*
+X25581D2*
+X28121D1*
+X28855D2*
+X33039D1*
+X4337Y17845D2*
+X5742D1*
+X6702D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X24926D1*
+X25581D2*
+X27871D1*
+X28780D2*
+X33039D1*
+X4337Y17596D2*
+X5676D1*
+X6452D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X24926D1*
+X25636D2*
+X27621D1*
+X28534D2*
+X33039D1*
+X4337Y17347D2*
+X5676D1*
+X6370D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X24980D1*
+X25886D2*
+X27375D1*
+X28284D2*
+X33039D1*
+X4337Y17099D2*
+X5676D1*
+X6370D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X25223D1*
+X26112D2*
+X27125D1*
+X28034D2*
+X33039D1*
+X4337Y16850D2*
+X5676D1*
+X6370D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X25473D1*
+X26148D2*
+X26875D1*
+X27788D2*
+X33039D1*
+X4337Y16601D2*
+X5676D1*
+X6370D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22331D2*
+X25488D1*
+X26148D2*
+X26629D1*
+X27538D2*
+X33039D1*
+X4337Y16353D2*
+X5676D1*
+X6370D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22343D2*
+X25488D1*
+X26148D2*
+X26383D1*
+X27288D2*
+X33039D1*
+X4337Y16104D2*
+X5676D1*
+X6741D2*
+X12859D1*
+X14210D2*
+X21109D1*
+X22593D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X27042D2*
+X33039D1*
+X4337Y15855D2*
+X5676D1*
+X14210D2*
+X21109D1*
+X22843D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X33039D1*
+X4337Y15607D2*
+X5676D1*
+X14210D2*
+X21109D1*
+X21765D2*
+X22125D1*
+X23089D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X33039D1*
+X4337Y15358D2*
+X5676D1*
+X6757D2*
+X12586D1*
+X14210D2*
+X21125D1*
+X21991D2*
+X22371D1*
+X23339D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X31453D1*
+X31733D2*
+X33039D1*
+X4337Y15109D2*
+X5676D1*
+X6370D2*
+X12586D1*
+X14210D2*
+X21332D1*
+X22241D2*
+X22621D1*
+X23589D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X31164D1*
+X32023D2*
+X33039D1*
+X4337Y14861D2*
+X5676D1*
+X6370D2*
+X12586D1*
+X14210D2*
+X21578D1*
+X22491D2*
+X22871D1*
+X23835D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X31133D1*
+X32054D2*
+X33039D1*
+X4337Y14612D2*
+X5683D1*
+X14210D2*
+X21828D1*
+X22737D2*
+X23117D1*
+X24085D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X31262D1*
+X31925D2*
+X33039D1*
+X4337Y14363D2*
+X5863D1*
+X14210D2*
+X22078D1*
+X22987D2*
+X23367D1*
+X24335D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X33039D1*
+X4337Y14115D2*
+X12051D1*
+X14210D2*
+X22324D1*
+X23237D2*
+X23617D1*
+X24581D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X33039D1*
+X4337Y13866D2*
+X12090D1*
+X14210D2*
+X22574D1*
+X23483D2*
+X23863D1*
+X25136D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X27598D1*
+X29062D2*
+X33039D1*
+X4337Y13617D2*
+X12090D1*
+X14210D2*
+X22824D1*
+X23733D2*
+X24113D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X27441D1*
+X29394D2*
+X31426D1*
+X31761D2*
+X33039D1*
+X4337Y13368D2*
+X12090D1*
+X14308D2*
+X23070D1*
+X23983D2*
+X24262D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X27285D1*
+X29433D2*
+X31160D1*
+X32026D2*
+X33039D1*
+X4337Y13120D2*
+X12090D1*
+X14257D2*
+X23320D1*
+X24230D2*
+X24652D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X27316D1*
+X29358D2*
+X31133D1*
+X32054D2*
+X33039D1*
+X4337Y12871D2*
+X12090D1*
+X13573D2*
+X23570D1*
+X24480D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X28445D1*
+X29351D2*
+X31273D1*
+X31913D2*
+X33039D1*
+X4337Y12622D2*
+X12090D1*
+X13612D2*
+X23816D1*
+X24730D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X28211D1*
+X29163D2*
+X33039D1*
+X4337Y12374D2*
+X7797D1*
+X8355D2*
+X12090D1*
+X13460D2*
+X24066D1*
+X24976D2*
+X25488D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X28168D1*
+X28913D2*
+X33039D1*
+X4337Y12125D2*
+X7652D1*
+X8499D2*
+X9004D1*
+X9327D2*
+X12090D1*
+X13241D2*
+X24316D1*
+X25226D2*
+X25422D1*
+X26148D2*
+X26316D1*
+X26976D2*
+X28168D1*
+X28866D2*
+X33039D1*
+X4337Y11876D2*
+X7691D1*
+X8456D2*
+X8758D1*
+X9569D2*
+X12090D1*
+X13241D2*
+X24562D1*
+X26128D2*
+X26316D1*
+X26976D2*
+X28168D1*
+X28866D2*
+X33039D1*
+X4337Y11628D2*
+X7746D1*
+X8405D2*
+X8754D1*
+X9573D2*
+X9879D1*
+X10632D2*
+X12090D1*
+X24667D2*
+X24812D1*
+X25991D2*
+X26269D1*
+X27023D2*
+X28168D1*
+X28866D2*
+X33039D1*
+X4337Y11379D2*
+X7746D1*
+X8405D2*
+X8836D1*
+X9495D2*
+X9832D1*
+X10679D2*
+X12090D1*
+X24730D2*
+X24922D1*
+X25898D2*
+X26137D1*
+X27069D2*
+X28168D1*
+X28866D2*
+X29207D1*
+X30417D2*
+X33039D1*
+X4337Y11130D2*
+X7746D1*
+X8405D2*
+X8836D1*
+X9495D2*
+X9926D1*
+X10585D2*
+X12090D1*
+X24616D2*
+X24918D1*
+X25706D2*
+X25918D1*
+X26937D2*
+X28168D1*
+X28866D2*
+X29207D1*
+X30417D2*
+X33039D1*
+X4337Y10882D2*
+X7746D1*
+X8405D2*
+X8836D1*
+X9495D2*
+X9926D1*
+X10585D2*
+X12090D1*
+X12784D2*
+X24918D1*
+X25573D2*
+X25891D1*
+X26550D2*
+X28168D1*
+X28866D2*
+X29207D1*
+X30417D2*
+X33039D1*
+X4337Y10633D2*
+X7746D1*
+X8405D2*
+X8836D1*
+X9495D2*
+X9926D1*
+X10585D2*
+X12090D1*
+X12784D2*
+X24918D1*
+X25573D2*
+X25891D1*
+X26550D2*
+X28168D1*
+X28866D2*
+X29207D1*
+X30417D2*
+X33039D1*
+X4337Y10384D2*
+X7746D1*
+X8405D2*
+X8836D1*
+X9495D2*
+X9926D1*
+X10585D2*
+X12090D1*
+X12784D2*
+X24918D1*
+X25573D2*
+X25891D1*
+X26550D2*
+X28168D1*
+X28866D2*
+X29207D1*
+X30417D2*
+X33039D1*
+X4337Y10135D2*
+X7746D1*
+X9495D2*
+X9926D1*
+X10585D2*
+X12090D1*
+X12784D2*
+X24918D1*
+X25573D2*
+X25891D1*
+X26550D2*
+X28168D1*
+X28866D2*
+X33039D1*
+X4337Y9887D2*
+X7746D1*
+X9495D2*
+X9926D1*
+X10585D2*
+X12090D1*
+X12784D2*
+X24918D1*
+X25573D2*
+X25891D1*
+X26550D2*
+X28168D1*
+X28866D2*
+X33039D1*
+X4337Y9638D2*
+X7746D1*
+X9495D2*
+X9926D1*
+X10585D2*
+X12090D1*
+X12784D2*
+X24918D1*
+X25573D2*
+X25891D1*
+X26550D2*
+X28168D1*
+X28866D2*
+X33039D1*
+X4337Y9389D2*
+X7746D1*
+X9495D2*
+X9926D1*
+X10585D2*
+X12090D1*
+X12784D2*
+X24918D1*
+X25573D2*
+X25891D1*
+X26550D2*
+X28168D1*
+X28866D2*
+X33039D1*
+X4337Y9141D2*
+X7453D1*
+X9577D2*
+X9844D1*
+X10671D2*
+X10933D1*
+X11761D2*
+X12023D1*
+X12851D2*
+X22105D1*
+X22933D2*
+X23195D1*
+X24023D2*
+X24285D1*
+X27296D2*
+X27558D1*
+X29476D2*
+X33039D1*
+X4337Y8892D2*
+X7453D1*
+X13023D2*
+X21933D1*
+X29648D2*
+X33039D1*
+X4337Y8643D2*
+X7453D1*
+X13058D2*
+X21898D1*
+X29683D2*
+X33039D1*
+X4337Y8395D2*
+X7453D1*
+X12983D2*
+X21973D1*
+X29608D2*
+X33039D1*
+X4337Y8146D2*
+X7453D1*
+X10534D2*
+X11066D1*
+X12714D2*
+X21793D1*
+X29339D2*
+X33039D1*
+X4337Y7897D2*
+X8098D1*
+X10233D2*
+X11367D1*
+X12417D2*
+X21449D1*
+X29042D2*
+X33039D1*
+X4337Y7649D2*
+X8004D1*
+X10327D2*
+X11273D1*
+X12507D2*
+X21355D1*
+X29132D2*
+X33039D1*
+X4337Y7400D2*
+X8023D1*
+X10308D2*
+X11293D1*
+X12491D2*
+X21375D1*
+X29116D2*
+X33039D1*
+X4337Y7151D2*
+X8168D1*
+X9073D2*
+X9258D1*
+X10163D2*
+X11441D1*
+X12343D2*
+X21519D1*
+X26788D2*
+X26973D1*
+X27878D2*
+X28066D1*
+X28968D2*
+X33039D1*
+X4337Y6903D2*
+X22183D1*
+X25816D2*
+X33039D1*
+X4337Y6654D2*
+X33039D1*
+X4337Y6405D2*
+X33039D1*
+X4337Y6156D2*
+X33039D1*
+X4337Y5908D2*
+X33039D1*
+X4337Y5659D2*
+X33039D1*
+X4337Y5410D2*
+X33039D1*
+X4337Y5162D2*
+X33039D1*
+X4337Y4913D2*
+X33039D1*
+X4337Y4664D2*
+X33039D1*
+X4337Y4416D2*
+X33039D1*
+X29357Y11393D2*
+X30392D1*
+Y10233D1*
+X29232D1*
+Y11393D1*
+X29357D1*
+X32018Y13076D2*
+X31967Y12962D1*
+X31886Y12867D1*
+X31782Y12799D1*
+X31663Y12762D1*
+X31538Y12760D1*
+X31418Y12793D1*
+X31312Y12858D1*
+X31228Y12951D1*
+X31173Y13062D1*
+X31152Y13185D1*
+X31165Y13309D1*
+X31213Y13424D1*
+X31291Y13521D1*
+X31393Y13593D1*
+X31511Y13633D1*
+X31635Y13639D1*
+X31756Y13610D1*
+X31865Y13548D1*
+X31951Y13459D1*
+X32009Y13349D1*
+X32036Y13199D1*
+X32018Y13076D1*
+Y14808D2*
+X31967Y14694D1*
+X31886Y14600D1*
+X31782Y14531D1*
+X31663Y14495D1*
+X31538Y14493D1*
+X31418Y14526D1*
+X31312Y14591D1*
+X31228Y14683D1*
+X31173Y14795D1*
+X31152Y14917D1*
+X31165Y15041D1*
+X31213Y15156D1*
+X31291Y15254D1*
+X31393Y15325D1*
+X31511Y15366D1*
+X31635Y15371D1*
+X31756Y15342D1*
+X31865Y15281D1*
+X31951Y15191D1*
+X32009Y15081D1*
+X32036Y14931D1*
+X32018Y14808D1*
+X7602Y9285D2*
+X7770D1*
+X7771Y11800D1*
+X7696Y11924D1*
+X7672Y12046D1*
+X7687Y12170D1*
+X7739Y12283D1*
+X7822Y12375D1*
+X7930Y12437D1*
+X8052Y12463D1*
+X8176Y12451D1*
+X8290Y12401D1*
+X8384Y12319D1*
+X8448Y12213D1*
+X8478Y12061D1*
+X8458Y11938D1*
+X8402Y11827D1*
+X8378Y11802D1*
+X8379Y10237D1*
+X8476Y10291D1*
+X8597Y10318D1*
+X8721Y10305D1*
+X8835Y10256D1*
+X8862Y10233D1*
+X8861Y11480D1*
+X8787Y11609D1*
+X8763Y11731D1*
+X8778Y11855D1*
+X8829Y11968D1*
+X8913Y12060D1*
+X9021Y12122D1*
+X9143Y12148D1*
+X9266Y12136D1*
+X9381Y12086D1*
+X9474Y12004D1*
+X9538Y11898D1*
+X9568Y11746D1*
+X9549Y11623D1*
+X9493Y11512D1*
+X9468Y11487D1*
+X9470Y9203D1*
+X9562Y9134D1*
+X9646Y9042D1*
+X9711Y8930D1*
+X9771Y9036D1*
+X9854Y9129D1*
+X9951Y9201D1*
+X9952Y11167D1*
+X9877Y11294D1*
+X9853Y11416D1*
+X9868Y11540D1*
+X9920Y11653D1*
+X10004Y11745D1*
+X10111Y11807D1*
+X10233Y11833D1*
+X10357Y11821D1*
+X10471Y11771D1*
+X10565Y11689D1*
+X10629Y11583D1*
+X10659Y11431D1*
+X10639Y11308D1*
+X10583Y11197D1*
+X10559Y11172D1*
+X10560Y9201D1*
+X10653Y9134D1*
+X10737Y9042D1*
+X10801Y8930D1*
+X10861Y9036D1*
+X10944Y9129D1*
+X11045Y9203D1*
+X11159Y9254D1*
+X11280Y9281D1*
+X11405Y9282D1*
+X11527Y9257D1*
+X11642Y9207D1*
+X11743Y9134D1*
+X11827Y9042D1*
+X11892Y8930D1*
+X11952Y9036D1*
+X12035Y9129D1*
+X12113Y9187D1*
+Y14082D1*
+X11951Y14125D1*
+X6259D1*
+X6137Y14149D1*
+X6030Y14220D1*
+X5794Y14456D1*
+X5724Y14560D1*
+X5699Y14686D1*
+Y17648D1*
+X5722Y17770D1*
+X5794Y17877D1*
+X7476Y19559D1*
+X7464Y19685D1*
+X7477Y19809D1*
+X7515Y19928D1*
+X7577Y20036D1*
+X7660Y20129D1*
+X7738Y20187D1*
+Y21368D1*
+X7762Y21490D1*
+X7833Y21597D1*
+X8069Y21833D1*
+X8172Y21903D1*
+X8298Y21928D1*
+X21183D1*
+X21305Y21904D1*
+X21412Y21833D1*
+X21857Y21389D1*
+X21916Y21399D1*
+X22041Y21400D1*
+X22163Y21375D1*
+X22278Y21325D1*
+X22379Y21252D1*
+X22463Y21160D1*
+X22528Y21049D1*
+X22588Y21154D1*
+X22671Y21247D1*
+X22771Y21321D1*
+X22885Y21372D1*
+X23007Y21399D1*
+X23132Y21400D1*
+X23254Y21375D1*
+X23368Y21325D1*
+X23470Y21252D1*
+X23554Y21160D1*
+X23618Y21049D1*
+X23678Y21154D1*
+X23761Y21247D1*
+X23862Y21321D1*
+X23975Y21372D1*
+X24097Y21399D1*
+X24222Y21400D1*
+X24344Y21375D1*
+X24459Y21325D1*
+X24560Y21252D1*
+X24644Y21160D1*
+X24709Y21049D1*
+X24769Y21154D1*
+X24852Y21247D1*
+X24952Y21321D1*
+X25066Y21372D1*
+X25188Y21399D1*
+X25313Y21400D1*
+X25435Y21375D1*
+X25549Y21325D1*
+X25651Y21252D1*
+X25735Y21160D1*
+X25799Y21049D1*
+X25859Y21154D1*
+X25942Y21247D1*
+X26043Y21321D1*
+X26157Y21372D1*
+X26278Y21399D1*
+X26403Y21400D1*
+X26525Y21375D1*
+X26640Y21325D1*
+X26741Y21252D1*
+X26825Y21160D1*
+X26890Y21049D1*
+X26950Y21154D1*
+X27033Y21247D1*
+X27133Y21321D1*
+X27247Y21372D1*
+X27369Y21399D1*
+X27494Y21400D1*
+X27616Y21375D1*
+X27730Y21325D1*
+X27832Y21252D1*
+X27916Y21160D1*
+X27980Y21049D1*
+X28040Y21154D1*
+X28123Y21247D1*
+X28224Y21321D1*
+X28338Y21372D1*
+X28460Y21399D1*
+X28584Y21400D1*
+X28707Y21375D1*
+X28821Y21325D1*
+X28922Y21252D1*
+X29006Y21160D1*
+X29070Y21052D1*
+X29109Y20934D1*
+X29123Y20805D1*
+X29110Y20681D1*
+X29072Y20562D1*
+X29009Y20454D1*
+X28926Y20361D1*
+X28828Y20290D1*
+X28830Y18044D1*
+X28802Y17919D1*
+X28741Y17829D1*
+X26948Y16036D1*
+X26949Y11698D1*
+X27018Y11583D1*
+X27047Y11431D1*
+X27028Y11308D1*
+X26972Y11197D1*
+X26885Y11108D1*
+X26775Y11050D1*
+X26679Y11033D1*
+X26526Y10882D1*
+Y9168D1*
+X26579Y9203D1*
+X26693Y9254D1*
+X26815Y9281D1*
+X26940Y9282D1*
+X27062Y9257D1*
+X27176Y9207D1*
+X27278Y9134D1*
+X27362Y9042D1*
+X27426Y8930D1*
+X27486Y9036D1*
+X27569Y9129D1*
+X27670Y9203D1*
+X27784Y9254D1*
+X27905Y9281D1*
+X28030Y9282D1*
+X28152Y9257D1*
+X28192Y9239D1*
+X28193Y12460D1*
+X28217Y12582D1*
+X28288Y12689D1*
+X28489Y12890D1*
+X28400Y12908D1*
+X28288Y12961D1*
+X28256Y12991D1*
+X27973Y12989D1*
+X27836Y12912D1*
+X27713Y12891D1*
+X27590Y12908D1*
+X27478Y12961D1*
+X27387Y13047D1*
+X27327Y13156D1*
+X27303Y13278D1*
+X27318Y13402D1*
+X27370Y13515D1*
+X27453Y13607D1*
+X27580Y13673D1*
+X27596Y13795D1*
+X27648Y13909D1*
+X27732Y14001D1*
+X27840Y14063D1*
+X27961Y14089D1*
+X28172Y14074D1*
+X28696D1*
+X28818Y14050D1*
+X28925Y13979D1*
+X29072Y13833D1*
+X29112Y13825D1*
+X29226Y13775D1*
+X29320Y13693D1*
+X29384Y13587D1*
+X29414Y13435D1*
+X29395Y13312D1*
+X29335Y13185D1*
+Y12954D1*
+X29311Y12832D1*
+X29240Y12725D1*
+X28840Y12325D1*
+X28841Y9245D1*
+X28996Y9281D1*
+X29121Y9282D1*
+X29243Y9257D1*
+X29357Y9207D1*
+X29459Y9134D1*
+X29543Y9042D1*
+X29606Y8934D1*
+X29646Y8816D1*
+X29660Y8687D1*
+X29647Y8563D1*
+X29608Y8444D1*
+X29546Y8336D1*
+X29462Y8243D1*
+X29362Y8170D1*
+X29248Y8119D1*
+X29126Y8093D1*
+X29001D1*
+X28879Y8118D1*
+X28839Y8136D1*
+X28841Y8073D1*
+X28913Y8016D1*
+X28998Y7924D1*
+X29061Y7816D1*
+X29100Y7698D1*
+X29114Y7569D1*
+X29101Y7445D1*
+X29063Y7326D1*
+X29000Y7218D1*
+X28917Y7125D1*
+X28816Y7052D1*
+X28702Y7001D1*
+X28580Y6975D1*
+X28456Y6974D1*
+X28333Y7000D1*
+X28219Y7051D1*
+X28118Y7124D1*
+X28034Y7216D1*
+X27970Y7328D1*
+X27910Y7218D1*
+X27827Y7125D1*
+X27726Y7052D1*
+X27612Y7001D1*
+X27490Y6975D1*
+X27365Y6974D1*
+X27243Y7000D1*
+X27129Y7051D1*
+X27028Y7124D1*
+X26944Y7216D1*
+X26880Y7328D1*
+X26819Y7218D1*
+X26736Y7125D1*
+X26635Y7052D1*
+X26521Y7001D1*
+X26399Y6975D1*
+X26274Y6974D1*
+X26152Y7000D1*
+X26038Y7051D1*
+X25959Y7108D1*
+X25940Y7066D1*
+X25891Y7001D1*
+X25754Y6864D1*
+X25646Y6795D1*
+X25538Y6774D1*
+X22464D1*
+X22339Y6802D1*
+X22248Y6864D1*
+X22124Y6988D1*
+X22037Y6975D1*
+X21912Y6974D1*
+X21790Y7000D1*
+X21676Y7051D1*
+X21575Y7124D1*
+X21491Y7216D1*
+X21428Y7324D1*
+X21389Y7442D1*
+X21376Y7566D1*
+X21388Y7691D1*
+X21426Y7809D1*
+X21488Y7918D1*
+X21571Y8011D1*
+X21672Y8085D1*
+X21786Y8136D1*
+X21907Y8163D1*
+X22032Y8164D1*
+X22154Y8138D1*
+X22269Y8088D1*
+X22370Y8016D1*
+X22454Y7924D1*
+X22519Y7812D1*
+X22579Y7918D1*
+X22662Y8011D1*
+X22762Y8085D1*
+X22876Y8136D1*
+X22998Y8163D1*
+X23123Y8164D1*
+X23245Y8138D1*
+X23359Y8088D1*
+X23461Y8016D1*
+X23545Y7924D1*
+X23609Y7812D1*
+X23669Y7918D1*
+X23752Y8011D1*
+X23853Y8085D1*
+X23967Y8136D1*
+X24089Y8163D1*
+X24213Y8164D1*
+X24336Y8138D1*
+X24450Y8088D1*
+X24551Y8016D1*
+X24635Y7924D1*
+X24700Y7812D1*
+X24760Y7918D1*
+X24843Y8011D1*
+X24940Y8083D1*
+X24885Y8119D1*
+X24763Y8093D1*
+X24639D1*
+X24517Y8118D1*
+X24402Y8169D1*
+X24301Y8242D1*
+X24217Y8334D1*
+X24154Y8446D1*
+X24093Y8336D1*
+X24010Y8243D1*
+X23909Y8170D1*
+X23795Y8119D1*
+X23673Y8093D1*
+X23548D1*
+X23426Y8118D1*
+X23312Y8169D1*
+X23211Y8242D1*
+X23127Y8334D1*
+X23063Y8446D1*
+X23002Y8336D1*
+X22919Y8243D1*
+X22818Y8170D1*
+X22704Y8119D1*
+X22582Y8093D1*
+X22458D1*
+X22335Y8118D1*
+X22221Y8169D1*
+X22120Y8242D1*
+X22036Y8334D1*
+X21974Y8442D1*
+X21935Y8561D1*
+X21921Y8685D1*
+X21934Y8809D1*
+X21972Y8928D1*
+X22034Y9036D1*
+X22117Y9129D1*
+X22217Y9203D1*
+X22331Y9254D1*
+X22453Y9281D1*
+X22577Y9282D1*
+X22700Y9257D1*
+X22814Y9207D1*
+X22915Y9134D1*
+X23000Y9042D1*
+X23064Y8930D1*
+X23124Y9036D1*
+X23207Y9129D1*
+X23308Y9203D1*
+X23421Y9254D1*
+X23543Y9281D1*
+X23668Y9282D1*
+X23790Y9257D1*
+X23905Y9207D1*
+X24006Y9134D1*
+X24090Y9042D1*
+X24155Y8930D1*
+X24215Y9036D1*
+X24298Y9129D1*
+X24398Y9203D1*
+X24512Y9254D1*
+X24634Y9281D1*
+X24759Y9282D1*
+X24881Y9257D1*
+X24942Y9230D1*
+X24941Y11125D1*
+X24968Y11250D1*
+X24982Y11278D1*
+X24868Y11511D1*
+X24848Y11614D1*
+X21222Y15243D1*
+X21153Y15351D1*
+X21133Y15458D1*
+Y19173D1*
+X21038Y19242D1*
+X20955Y19334D1*
+X20892Y19442D1*
+X20853Y19561D1*
+X20839Y19685D1*
+X20852Y19809D1*
+X20890Y19928D1*
+X20952Y20036D1*
+X21035Y20129D1*
+X21135Y20203D1*
+X21249Y20254D1*
+X21371Y20281D1*
+X21496Y20282D1*
+X21618Y20257D1*
+X21657Y20239D1*
+X21584Y20360D1*
+X21500Y20452D1*
+X21437Y20560D1*
+X21398Y20679D1*
+X21385Y20803D1*
+X21398Y20931D1*
+X21049Y21280D1*
+X12242D1*
+X12360Y21160D1*
+X12389Y21109D1*
+X13744D1*
+X13869Y21082D1*
+X13959Y21020D1*
+X14097Y20882D1*
+X14166Y20775D1*
+X14186Y20667D1*
+X14191Y13579D1*
+X14255Y13472D1*
+X14284Y13321D1*
+X14265Y13198D1*
+X14209Y13087D1*
+X14122Y12998D1*
+X14012Y12940D1*
+X13889Y12918D1*
+X13766Y12935D1*
+X13654Y12989D1*
+X13563Y13074D1*
+X13503Y13184D1*
+X13494Y13233D1*
+X13498Y12949D1*
+X13562Y12842D1*
+X13592Y12691D1*
+X13572Y12568D1*
+X13517Y12457D1*
+X13429Y12368D1*
+X13319Y12310D1*
+X13216Y12292D1*
+X13218Y11718D1*
+X14551Y11716D1*
+X24039D1*
+X24158Y11787D1*
+X24279Y11813D1*
+X24403Y11801D1*
+X24518Y11752D1*
+X24611Y11670D1*
+X24675Y11563D1*
+X24705Y11411D1*
+X24686Y11288D1*
+X24630Y11177D1*
+X24543Y11088D1*
+X24432Y11030D1*
+X24310Y11009D1*
+X24186Y11026D1*
+X24074Y11079D1*
+X24043Y11109D1*
+X17802Y11107D1*
+X13051D1*
+X12926Y11135D1*
+X12836Y11196D1*
+X12761Y11271D1*
+Y9186D1*
+X12834Y9134D1*
+X12918Y9042D1*
+X12981Y8934D1*
+X13021Y8816D1*
+X13035Y8687D1*
+X13022Y8563D1*
+X12983Y8444D1*
+X12921Y8336D1*
+X12837Y8243D1*
+X12736Y8170D1*
+X12623Y8119D1*
+X12501Y8093D1*
+X12376D1*
+X12254Y8118D1*
+X12140Y8169D1*
+X12038Y8242D1*
+X11955Y8334D1*
+X11891Y8446D1*
+X11830Y8336D1*
+X11747Y8243D1*
+X11646Y8170D1*
+X11532Y8119D1*
+X11410Y8093D1*
+X11285D1*
+X11163Y8118D1*
+X11049Y8169D1*
+X10948Y8242D1*
+X10864Y8334D1*
+X10800Y8446D1*
+X10740Y8336D1*
+X10656Y8243D1*
+X10555Y8170D1*
+X10441Y8119D1*
+X10319Y8093D1*
+X10195D1*
+X10073Y8118D1*
+X9958Y8169D1*
+X9857Y8242D1*
+X9774Y8334D1*
+X9710Y8446D1*
+X9649Y8336D1*
+X9566Y8243D1*
+X9465Y8170D1*
+X9351Y8119D1*
+X9229Y8093D1*
+X9104D1*
+X8982Y8118D1*
+X8921Y8145D1*
+X9017Y8016D1*
+X9101Y7924D1*
+X9165Y7812D1*
+X9225Y7918D1*
+X9308Y8011D1*
+X9409Y8085D1*
+X9523Y8136D1*
+X9645Y8163D1*
+X9769Y8164D1*
+X9892Y8138D1*
+X10006Y8088D1*
+X10107Y8016D1*
+X10192Y7924D1*
+X10255Y7816D1*
+X10294Y7698D1*
+X10308Y7569D1*
+X10295Y7445D1*
+X10257Y7326D1*
+X10194Y7218D1*
+X10111Y7125D1*
+X10010Y7052D1*
+X9896Y7001D1*
+X9774Y6975D1*
+X9649Y6974D1*
+X9527Y7000D1*
+X9413Y7051D1*
+X9312Y7124D1*
+X9228Y7216D1*
+X9164Y7328D1*
+X9104Y7218D1*
+X9020Y7125D1*
+X8920Y7052D1*
+X8806Y7001D1*
+X8684Y6975D1*
+X8559Y6974D1*
+X8437Y7000D1*
+X8323Y7051D1*
+X8222Y7124D1*
+X8138Y7216D1*
+X8075Y7324D1*
+X8036Y7442D1*
+X8022Y7566D1*
+X8035Y7691D1*
+X8073Y7809D1*
+X8135Y7918D1*
+X8218Y8011D1*
+X8315Y8083D1*
+X8172Y8089D1*
+X7477D1*
+Y9285D1*
+X7602D1*
+X12476Y7445D2*
+X12438Y7326D1*
+X12375Y7218D1*
+X12292Y7125D1*
+X12191Y7052D1*
+X12077Y7001D1*
+X11955Y6975D1*
+X11831Y6974D1*
+X11708Y7000D1*
+X11594Y7051D1*
+X11493Y7124D1*
+X11409Y7216D1*
+X11347Y7324D1*
+X11308Y7442D1*
+X11294Y7566D1*
+X11307Y7691D1*
+X11345Y7809D1*
+X11407Y7918D1*
+X11490Y8011D1*
+X11590Y8085D1*
+X11704Y8136D1*
+X11826Y8163D1*
+X11951Y8164D1*
+X12073Y8138D1*
+X12187Y8088D1*
+X12288Y8016D1*
+X12373Y7924D1*
+X12436Y7816D1*
+X12475Y7698D1*
+X12489Y7569D1*
+X12476Y7445D1*
+X25549Y9230D2*
+X25602Y9254D1*
+X25724Y9281D1*
+X25849Y9282D1*
+X25917Y9273D1*
+Y11008D1*
+X25945Y11133D1*
+X26006Y11223D1*
+X26241Y11458D1*
+X26257Y11540D1*
+X26309Y11653D1*
+X26343Y11690D1*
+X26340Y14806D1*
+Y16163D1*
+X26368Y16288D1*
+X26430Y16378D1*
+X28222Y18171D1*
+X28221Y19142D1*
+X28166Y19119D1*
+X28044Y19093D1*
+X27919D1*
+X27797Y19118D1*
+X27683Y19169D1*
+X27582Y19242D1*
+X27498Y19334D1*
+X27434Y19446D1*
+X27374Y19336D1*
+X27290Y19243D1*
+X27189Y19170D1*
+X27075Y19119D1*
+X26953Y19093D1*
+X26829D1*
+X26706Y19118D1*
+X26592Y19169D1*
+X26491Y19242D1*
+X26407Y19334D1*
+X26343Y19446D1*
+X26283Y19336D1*
+X26200Y19243D1*
+X26099Y19170D1*
+X25985Y19119D1*
+X25863Y19093D1*
+X25738D1*
+X25616Y19118D1*
+X25555Y19145D1*
+X25558Y17930D1*
+Y17653D1*
+X26033Y17175D1*
+X26102Y17067D1*
+X26122Y16959D1*
+Y11982D1*
+X26095Y11858D1*
+X26033Y11767D1*
+X25981Y11715D1*
+X25965Y11623D1*
+X25909Y11512D1*
+X25885Y11487D1*
+X25861Y11340D1*
+X25797Y11246D1*
+X25551Y11001D1*
+X25549Y9231D1*
+X24948Y19143D2*
+X24894Y19119D1*
+X24772Y19093D1*
+X24647D1*
+X24525Y19118D1*
+X24411Y19169D1*
+X24310Y19242D1*
+X24226Y19334D1*
+X24162Y19446D1*
+X24102Y19336D1*
+X24018Y19243D1*
+X23918Y19170D1*
+X23804Y19119D1*
+X23682Y19093D1*
+X23557D1*
+X23435Y19118D1*
+X23321Y19169D1*
+X23220Y19242D1*
+X23136Y19334D1*
+X23072Y19446D1*
+X23011Y19336D1*
+X22928Y19243D1*
+X22827Y19170D1*
+X22713Y19119D1*
+X22591Y19093D1*
+X22466D1*
+X22344Y19118D1*
+X22305Y19136D1*
+X22306Y16364D1*
+X24678Y13994D1*
+X24718Y13986D1*
+X24832Y13937D1*
+X24853Y13919D1*
+X24932Y13920D1*
+X25054Y13897D1*
+X25158Y13829D1*
+X25226Y13731D1*
+X25326Y13697D1*
+X25448Y13723D1*
+X25514Y13716D1*
+Y16830D1*
+X25039Y17308D1*
+X24970Y17416D1*
+X24950Y17523D1*
+Y19137D1*
+X12885Y19089D2*
+X11827D1*
+Y19351D1*
+X11734Y19243D1*
+X11633Y19170D1*
+X11519Y19119D1*
+X11397Y19093D1*
+X11272D1*
+X11150Y19118D1*
+X11036Y19169D1*
+X10935Y19242D1*
+X10851Y19334D1*
+X10787Y19446D1*
+X10727Y19336D1*
+X10643Y19243D1*
+X10543Y19170D1*
+X10429Y19119D1*
+X10307Y19093D1*
+X10182D1*
+X10060Y19118D1*
+X9946Y19169D1*
+X9845Y19242D1*
+X9761Y19334D1*
+X9697Y19446D1*
+X9636Y19336D1*
+X9553Y19243D1*
+X9452Y19170D1*
+X9338Y19119D1*
+X9216Y19093D1*
+X9091D1*
+X8969Y19118D1*
+X8855Y19169D1*
+X8754Y19242D1*
+X8670Y19334D1*
+X8606Y19446D1*
+X8546Y19336D1*
+X8462Y19243D1*
+X8362Y19170D1*
+X8248Y19119D1*
+X8126Y19093D1*
+X8001D1*
+X7936Y19106D1*
+X6344Y17511D1*
+X6347Y16058D1*
+X6429Y16103D1*
+X6551Y16129D1*
+X6675Y16117D1*
+X6789Y16068D1*
+X6833Y16029D1*
+X8949Y16032D1*
+X12812Y16029D1*
+X12885Y16066D1*
+Y19093D1*
+X10789Y19931D2*
+X10849Y20036D1*
+X10932Y20129D1*
+X10991Y20173D1*
+X10852Y20211D1*
+X10727D1*
+X10605Y20236D1*
+X10491Y20287D1*
+X10390Y20360D1*
+X10306Y20452D1*
+X10243Y20560D1*
+X10204Y20679D1*
+X10191Y20803D1*
+X10203Y20927D1*
+X10241Y21046D1*
+X10303Y21154D1*
+X10386Y21247D1*
+X10433Y21282D1*
+X8968Y21280D1*
+X9088Y21160D1*
+X9151Y21052D1*
+X9191Y20934D1*
+X9205Y20805D1*
+X9192Y20681D1*
+X9153Y20562D1*
+X9091Y20454D1*
+X9008Y20361D1*
+X8907Y20288D1*
+X8793Y20237D1*
+X8671Y20211D1*
+X8546D1*
+X8424Y20236D1*
+X8385Y20254D1*
+X8386Y20192D1*
+X8459Y20134D1*
+X8543Y20042D1*
+X8607Y19930D1*
+X8667Y20036D1*
+X8750Y20129D1*
+X8851Y20203D1*
+X8965Y20254D1*
+X9087Y20281D1*
+X9211Y20282D1*
+X9334Y20257D1*
+X9448Y20207D1*
+X9549Y20134D1*
+X9633Y20042D1*
+X9698Y19930D1*
+X9758Y20036D1*
+X9841Y20129D1*
+X9942Y20203D1*
+X10055Y20254D1*
+X10177Y20281D1*
+X10302Y20282D1*
+X10424Y20257D1*
+X10538Y20207D1*
+X10640Y20134D1*
+X10724Y20042D1*
+X10788Y19930D1*
+X12388Y20498D2*
+X12334Y20422D1*
+X13051D1*
+X13176Y20395D1*
+X13266Y20333D1*
+X13404Y20195D1*
+X13473Y20088D1*
+X13493Y19980D1*
+X13494Y13429D1*
+X13546Y13543D1*
+X13580Y13580D1*
+X13577Y16696D1*
+Y20504D1*
+X12869Y20501D1*
+X12396D1*
+X6833Y15424D2*
+X6814Y15404D1*
+X6704Y15346D1*
+X6581Y15325D1*
+X6458Y15342D1*
+X6349Y15394D1*
+X6347Y14823D1*
+X6509Y14773D1*
+X12201D1*
+X12323Y14750D1*
+X12430Y14678D1*
+X12608Y14500D1*
+X12609Y15420D1*
+X11276Y15423D1*
+X6834D1*
+X25316Y12045D2*
+X25437Y12122D1*
+X25517Y12139D1*
+X25514Y12924D1*
+X25478Y12918D1*
+X25355Y12935D1*
+X25234Y12997D1*
+X24932D1*
+X24810Y13021D1*
+X24706Y13089D1*
+X24635Y13195D1*
+X24501Y13211D1*
+X24389Y13265D1*
+X24299Y13350D1*
+X24239Y13459D1*
+X24224Y13532D1*
+X21751Y16005D1*
+X21741Y15937D1*
+Y15582D1*
+X25273Y12052D1*
+X32937Y24062D2*
+X4312D1*
+Y4312D1*
+X33062D1*
+Y24062D1*
+X32937D1*
+D18*
+X29812Y10813D3*
+D19*
+Y9813D3*
+D24*
+X8075Y8687D3*
+D26*
+X9165D3*
+X10256D3*
+X11346D3*
+X12437D3*
+X8620Y7569D3*
+X9711D3*
+X10801D3*
+X11892D3*
+D27*
+X5337Y8128D3*
+X15175D3*
+D24*
+X21428Y8687D3*
+D26*
+X22519D3*
+X23609D3*
+X24700D3*
+X25790D3*
+X26881D3*
+X27971D3*
+X29062D3*
+X21973Y7569D3*
+X23064D3*
+X24155D3*
+X25245D3*
+X26336D3*
+X27426D3*
+X28517D3*
+D28*
+X18686Y8128D3*
+X31804D3*
+D24*
+X29071Y19687D3*
+D26*
+X27980D3*
+X26890D3*
+X25799D3*
+X24709D3*
+X23618D3*
+X22528D3*
+X21437D3*
+X28526Y20805D3*
+X27435D3*
+X26344D3*
+X25254D3*
+X24163D3*
+X23073D3*
+X21982D3*
+D28*
+X31813Y20246D3*
+X18695D3*
+D24*
+X12424Y19687D3*
+D26*
+X11334D3*
+X10243D3*
+X9153D3*
+X8062D3*
+X11879Y20805D3*
+X10788D3*
+X9698D3*
+X8607D3*
+D27*
+X15162Y20246D3*
+X5324D3*
+M02*
diff --git a/board/BottomMask.gbr b/board/BottomMask.gbr index 1c2a193..18d9759 100644 --- a/board/BottomMask.gbr +++ b/board/BottomMask.gbr @@ -1,94 +1,94 @@ -G04 DipTrace 2.4.0.2* -%INBottomMask.gbr*% -%MOIN*% -%ADD35C,0.0354*% -%ADD45C,0.1969*% -%ADD47C,0.1953*% -%ADD49C,0.0744*% -%ADD53R,0.0744X0.0744*% -%ADD61C,0.0709*% -%ADD63R,0.0709X0.0709*% -%FSLAX44Y44*% -G04* -G70* -G90* -G75* -G01* -%LNBotMask*% -%LPD*% -D63* -X29812Y10813D3* -D61* -Y9813D3* -D35* -X31594Y13199D3* -Y14931D3* -D53* -X8075Y8687D3* -D49* -X9165D3* -X10256D3* -X11346D3* -X12437D3* -X8620Y7569D3* -X9711D3* -X10801D3* -X11892D3* -D47* -X5337Y8128D3* -X15175D3* -D53* -X21428Y8687D3* -D49* -X22519D3* -X23609D3* -X24700D3* -X25790D3* -X26881D3* -X27971D3* -X29062D3* -X21973Y7569D3* -X23064D3* -X24155D3* -X25245D3* -X26336D3* -X27426D3* -X28517D3* -D45* -X18686Y8128D3* -X31804D3* -D53* -X29071Y19687D3* -D49* -X27980D3* -X26890D3* -X25799D3* -X24709D3* -X23618D3* -X22528D3* -X21437D3* -X28526Y20805D3* -X27435D3* -X26344D3* -X25254D3* -X24163D3* -X23073D3* -X21982D3* -D45* -X31813Y20246D3* -X18695D3* -D53* -X12424Y19687D3* -D49* -X11334D3* -X10243D3* -X9153D3* -X8062D3* -X11879Y20805D3* -X10788D3* -X9698D3* -X8607D3* -D47* -X15162Y20246D3* -X5324D3* -M02* +G04 DipTrace 2.4.0.2*
+%INBottomMask.gbr*%
+%MOIN*%
+%ADD35C,0.0354*%
+%ADD45C,0.1969*%
+%ADD47C,0.1953*%
+%ADD49C,0.0744*%
+%ADD53R,0.0744X0.0744*%
+%ADD61C,0.0709*%
+%ADD63R,0.0709X0.0709*%
+%FSLAX44Y44*%
+G04*
+G70*
+G90*
+G75*
+G01*
+%LNBotMask*%
+%LPD*%
+D63*
+X29812Y10813D3*
+D61*
+Y9813D3*
+D35*
+X31594Y13199D3*
+Y14931D3*
+D53*
+X8075Y8687D3*
+D49*
+X9165D3*
+X10256D3*
+X11346D3*
+X12437D3*
+X8620Y7569D3*
+X9711D3*
+X10801D3*
+X11892D3*
+D47*
+X5337Y8128D3*
+X15175D3*
+D53*
+X21428Y8687D3*
+D49*
+X22519D3*
+X23609D3*
+X24700D3*
+X25790D3*
+X26881D3*
+X27971D3*
+X29062D3*
+X21973Y7569D3*
+X23064D3*
+X24155D3*
+X25245D3*
+X26336D3*
+X27426D3*
+X28517D3*
+D45*
+X18686Y8128D3*
+X31804D3*
+D53*
+X29071Y19687D3*
+D49*
+X27980D3*
+X26890D3*
+X25799D3*
+X24709D3*
+X23618D3*
+X22528D3*
+X21437D3*
+X28526Y20805D3*
+X27435D3*
+X26344D3*
+X25254D3*
+X24163D3*
+X23073D3*
+X21982D3*
+D45*
+X31813Y20246D3*
+X18695D3*
+D53*
+X12424Y19687D3*
+D49*
+X11334D3*
+X10243D3*
+X9153D3*
+X8062D3*
+X11879Y20805D3*
+X10788D3*
+X9698D3*
+X8607D3*
+D47*
+X15162Y20246D3*
+X5324D3*
+M02*
diff --git a/board/BottomSilk.gbr b/board/BottomSilk.gbr index 995ecc0..02572a6 100644 --- a/board/BottomSilk.gbr +++ b/board/BottomSilk.gbr @@ -1,12 +1,12 @@ -G04 DipTrace 2.4.0.2* -%INBottomSilk.gbr*% -%MOIN*% -%FSLAX44Y44*% -G04* -G70* -G90* -G75* -G01* -%LNBotSilk*% -%LPD*% -M02* +G04 DipTrace 2.4.0.2*
+%INBottomSilk.gbr*%
+%MOIN*%
+%FSLAX44Y44*%
+G04*
+G70*
+G90*
+G75*
+G01*
+%LNBotSilk*%
+%LPD*%
+M02*
diff --git a/board/Top.gbr b/board/Top.gbr index 81faab8..130b516 100644 --- a/board/Top.gbr +++ b/board/Top.gbr @@ -1,2322 +1,2322 @@ -G04 DipTrace 2.4.0.2* -%INTop.gbr*% -%MOIN*% -%ADD13C,0.0118*% -%ADD14C,0.0079*% -%ADD15C,0.025*% -%ADD16R,0.0276X0.0354*% -%ADD17R,0.0354X0.0276*% -%ADD18R,0.063X0.063*% -%ADD19C,0.063*% -%ADD21R,0.0906X0.0197*% -%ADD22R,0.0984X0.0787*% -%ADD23R,0.0571X0.0394*% -%ADD24R,0.0665X0.0665*% -%ADD25R,0.0591X0.0591*% -%ADD26C,0.0665*% -%ADD27C,0.1874*% -%ADD28C,0.189*% -%ADD30R,0.0197X0.0669*% -%ADD31R,0.0669X0.0197*% -%ADD33R,0.2165X0.0787*% -%ADD34C,0.0276*% -%FSLAX44Y44*% -G04* -G70* -G90* -G75* -G01* -%LNTop*% -%LPD*% -X22806Y12376D2* -D13* -X21749D1* -X24932Y14187D2* -Y14622D1* -X24936Y14626D1* -X26113Y12376D2* -X26874D1* -X26937Y12438D1* -X11935Y12376D2* -X13623D1* -X22806D2* -X23436D1* -X23561Y12251D1* -Y11751D1* -X24932Y14187D2* -Y13068D1* -X25499Y12501D1* -X26113Y12376D2* -X25624D1* -X25499Y12501D1* -X4499Y16062D2* -D14* -X5446D1* -X6062D1* -X4499Y11687D2* -X5446D1* -X6062D1* -X6574Y15727D2* -Y16062D1* -X24302Y11411D2* -Y10880D1* -X24617D2* -Y9315D1* -X24479Y9177D1* -X20430D1* -X20292Y9039D1* -Y7026D1* -X20154Y6888D1* -X6712D1* -X6574Y7026D1* -Y11687D1* -X26645Y11431D2* -X26113D1* -X25582Y11746D2* -X26113D1* -X25247Y11648D2* -Y10880D1* -X29062Y8687D2* -X28631Y9118D1* -X25070D1* -X24932Y9256D1* -Y10880D1* -X25562D2* -Y10375D1* -X25624Y10313D1* -X32812D1* -Y11188D1* -Y10313D2* -X28062D1* -Y11063D1* -X22806Y12691D2* -X13189D1* -X7644D1* -X7506Y12553D1* -Y8138D1* -X7644Y8000D1* -X9280D1* -X9711Y7569D1* -X12424Y19687D2* -X17353Y14758D1* -X23849D1* -X23987Y14620D1* -Y14187D1* -X11334Y19687D2* -X16401Y14620D1* -X23672D1* -Y14187D1* -X10243Y19687D2* -X15743Y14187D1* -X23357D1* -X9153Y19687D2* -X15204Y13636D1* -X22806D1* -X13882Y13321D2* -X22806D1* -X8607Y20805D2* -Y13144D1* -X8745Y13006D1* -X22806D1* -X8075Y12061D2* -X22806D1* -X9165Y11746D2* -X22806D1* -X10256Y11431D2* -X22806D1* -X11346Y8687D2* -X10915Y9118D1* -X8384D1* -X8246Y9256D1* -Y10014D1* -X8384Y10152D1* -X23220D1* -X23357Y10289D1* -Y10880D1* -X8620Y9915D2* -X23534D1* -X23672Y10053D1* -Y10880D1* -X11892Y7569D2* -Y9177D1* -X12030Y9315D1* -X23849D1* -X23987Y9453D1* -Y10880D1* -X26113Y12061D2* -X26546D1* -X26670Y11937D1* -X27312D1* -X30570Y14065D2* -X28417D1* -X28279Y13927D1* -Y12921D1* -X28142Y12783D1* -X26925D1* -X26833Y12691D1* -X26113D1* -X27706Y13293D2* -X27418Y13006D1* -X26113D1* -X28516Y13293D2* -Y13612D1* -X28653Y13750D1* -X30570D1* -X27984Y13687D2* -D13* -X27312D1* -X30570Y13435D2* -X29011D1* -X24617Y13596D2* -Y14187D1* -X25470Y13321D2* -X26113D1* -Y13636D2* -X25608D1* -X25470Y13498D1* -Y13321D1* -X27312Y13687D2* -X26676D1* -X26625Y13636D1* -X26113D1* -X29011Y13435D2* -Y11063D1* -X28574D1* -X30062D1* -X29812Y10813D1* -X22562Y16687D2* -D14* -X21381D1* -Y15575D1* -X21519Y15437D1* -X21812D1* -Y15033D1* -X21950Y14896D1* -X25109D1* -X25247Y14758D1* -Y14187D1* -X26302Y16687D2* -X27542D1* -Y15870D1* -X27405Y15732D1* -X26562D1* -Y15437D1* -X25700D1* -X25562Y15299D1* -Y14187D1* -D34* -X10872Y14938D3* -X8997D3* -Y18126D3* -Y16126D3* -X12562Y14937D3* -X12123Y16126D3* -X10497Y18876D3* -X12873Y16439D3* -X12935Y17501D3* -X11623Y18876D3* -X12748D3* -X13560Y18064D3* -X16623Y15001D3* -X15935Y14563D3* -X15248Y14126D3* -X13560Y16939D3* -X21749Y12376D3* -X17873D3* -X13623D3* -X11935D3* -X8560D3* -X8622Y11438D3* -Y10438D3* -X9685Y11313D3* -Y10438D3* -X10685Y10750D3* -X11998D3* -X12935Y10625D3* -X17998D3* -X22936D3* -X6434Y16876D3* -X8997Y13438D3* -X11998D3* -X13498D3* -Y14813D3* -X24936Y14626D3* -X26187Y14938D3* -Y14063D3* -X26937Y12438D3* -X28624Y12938D3* -X27749Y10625D3* -X25937Y10688D3* -X22374Y18001D3* -X24874D3* -X24374Y15563D3* -X13560Y15813D3* -X4309Y24064D3* -X33062D3* -Y4312D3* -X4309D3* -X7810Y9250D3* -X25624Y18001D3* -X27999D3* -X25749Y9625D3* -X7872Y7375D3* -X6997Y8500D3* -X23561Y11751D3* -X24061Y13501D3* -X25499Y12501D3* -X6574Y15727D3* -X24302Y11411D3* -X26645Y11431D3* -X25582Y11746D3* -X25247Y11648D3* -X13189Y12691D3* -X13882Y13321D3* -X8075Y12061D3* -X9165Y11746D3* -X10256Y11431D3* -X8620Y9915D3* -X27706Y13293D3* -X28516D3* -X27984Y13687D3* -X29011Y13435D3* -X25470Y13321D3* -X24617Y13596D3* -X4337Y23813D2* -D15* -X33039D1* -X4337Y23565D2* -X33039D1* -X4337Y23316D2* -X33039D1* -X4337Y23067D2* -X33039D1* -X4337Y22819D2* -X33039D1* -X4337Y22570D2* -X33039D1* -X4337Y22321D2* -X33039D1* -X4337Y22073D2* -X33039D1* -X4337Y21824D2* -X33039D1* -X4337Y21575D2* -X33039D1* -X4337Y21326D2* -X8289D1* -X8925D2* -X10473D1* -X11105D2* -X11562D1* -X12194D2* -X21664D1* -X22300D2* -X22758D1* -X23390D2* -X23848D1* -X24480D2* -X24937D1* -X25569D2* -X26027D1* -X26663D2* -X27117D1* -X27753D2* -X28207D1* -X28843D2* -X33039D1* -X4337Y21078D2* -X8051D1* -X9163D2* -X10230D1* -X12437D2* -X21426D1* -X29081D2* -X33039D1* -X4337Y20829D2* -X7984D1* -X9230D2* -X10168D1* -X12499D2* -X21359D1* -X29148D2* -X33039D1* -X4337Y20580D2* -X8027D1* -X9187D2* -X10211D1* -X12456D2* -X21402D1* -X29105D2* -X33039D1* -X4337Y20332D2* -X8219D1* -X8995D2* -X10398D1* -X11179D2* -X11488D1* -X12269D2* -X21594D1* -X22370D2* -X22683D1* -X23464D2* -X23773D1* -X24554D2* -X24863D1* -X25644D2* -X25957D1* -X26733D2* -X27047D1* -X27823D2* -X28137D1* -X28913D2* -X33039D1* -X4337Y20083D2* -X7590D1* -X9624D2* -X9770D1* -X10714D2* -X10862D1* -X13046D2* -X20965D1* -X21909D2* -X22055D1* -X22999D2* -X23145D1* -X24089D2* -X24237D1* -X25183D2* -X25328D1* -X26273D2* -X26418D1* -X27362D2* -X27505D1* -X28452D2* -X33039D1* -X4337Y19834D2* -X7457D1* -X13046D2* -X20832D1* -X28585D2* -X33039D1* -X4337Y19586D2* -X7449D1* -X13046D2* -X20824D1* -X28593D2* -X33039D1* -X4337Y19337D2* -X7555D1* -X13230D2* -X20930D1* -X28491D2* -X33039D1* -X4337Y19088D2* -X8277D1* -X8937D2* -X9297D1* -X10206D2* -X10387D1* -X11296D2* -X11476D1* -X12386D2* -X12566D1* -X13480D2* -X33039D1* -X4337Y18840D2* -X8277D1* -X8937D2* -X9547D1* -X10456D2* -X10637D1* -X11546D2* -X11726D1* -X12636D2* -X12816D1* -X13726D2* -X33039D1* -X4337Y18591D2* -X8277D1* -X8937D2* -X9793D1* -X10702D2* -X10883D1* -X11796D2* -X11976D1* -X12886D2* -X13066D1* -X13976D2* -X33039D1* -X4337Y18342D2* -X8277D1* -X8937D2* -X10043D1* -X10952D2* -X11133D1* -X12042D2* -X12223D1* -X13132D2* -X13312D1* -X14226D2* -X33039D1* -X4337Y18094D2* -X8277D1* -X8937D2* -X10293D1* -X11202D2* -X11383D1* -X12292D2* -X12473D1* -X13382D2* -X13562D1* -X14472D2* -X33039D1* -X4337Y17845D2* -X8277D1* -X8937D2* -X10539D1* -X11448D2* -X11629D1* -X12542D2* -X12723D1* -X13632D2* -X13812D1* -X14722D2* -X33039D1* -X4337Y17596D2* -X8277D1* -X8937D2* -X10789D1* -X11698D2* -X11879D1* -X12788D2* -X12969D1* -X13878D2* -X14058D1* -X14972D2* -X33039D1* -X4337Y17347D2* -X8277D1* -X8937D2* -X11035D1* -X11948D2* -X12129D1* -X13038D2* -X13219D1* -X14128D2* -X14308D1* -X15218D2* -X33039D1* -X4337Y17099D2* -X8277D1* -X8937D2* -X11285D1* -X12194D2* -X12375D1* -X13288D2* -X13469D1* -X14378D2* -X14558D1* -X15468D2* -X21191D1* -X23933D2* -X24930D1* -X27675D2* -X33039D1* -X4337Y16850D2* -X8277D1* -X8937D2* -X11535D1* -X12444D2* -X12625D1* -X13534D2* -X13715D1* -X14624D2* -X14805D1* -X15718D2* -X21098D1* -X23933D2* -X24930D1* -X27823D2* -X33039D1* -X4337Y16601D2* -X8277D1* -X8937D2* -X11781D1* -X12694D2* -X12875D1* -X13784D2* -X13965D1* -X14874D2* -X15055D1* -X15964D2* -X21051D1* -X23933D2* -X24930D1* -X27870D2* -X33039D1* -X7042Y16353D2* -X8277D1* -X8937D2* -X12031D1* -X12941D2* -X13121D1* -X14034D2* -X14215D1* -X15124D2* -X15305D1* -X16214D2* -X21051D1* -X23933D2* -X24930D1* -X27870D2* -X33039D1* -X7042Y16104D2* -X8277D1* -X8937D2* -X12281D1* -X13191D2* -X13371D1* -X14280D2* -X14461D1* -X15370D2* -X15551D1* -X16464D2* -X21051D1* -X23933D2* -X24930D1* -X27870D2* -X33039D1* -X7042Y15855D2* -X8277D1* -X8937D2* -X12527D1* -X13441D2* -X13621D1* -X14530D2* -X14711D1* -X15620D2* -X15801D1* -X16710D2* -X21051D1* -X21710D2* -X26258D1* -X27870D2* -X33039D1* -X5073Y15607D2* -X6164D1* -X6983D2* -X8277D1* -X8937D2* -X12777D1* -X13687D2* -X13867D1* -X14780D2* -X14961D1* -X15870D2* -X16051D1* -X16960D2* -X21051D1* -X22280D2* -X25414D1* -X27733D2* -X33039D1* -X4337Y15358D2* -X6391D1* -X6757D2* -X8277D1* -X8937D2* -X13027D1* -X13937D2* -X14117D1* -X15026D2* -X15207D1* -X16116D2* -X16297D1* -X17210D2* -X21144D1* -X22280D2* -X25238D1* -X27030D2* -X31453D1* -X31733D2* -X33039D1* -X4337Y15109D2* -X8277D1* -X8937D2* -X13273D1* -X14187D2* -X14367D1* -X15276D2* -X15457D1* -X16366D2* -X16547D1* -X17456D2* -X21344D1* -X25890D2* -X26094D1* -X27030D2* -X31164D1* -X32023D2* -X33039D1* -X4337Y14861D2* -X8277D1* -X8937D2* -X13523D1* -X14433D2* -X14613D1* -X15526D2* -X15703D1* -X25890D2* -X31133D1* -X32054D2* -X33039D1* -X4337Y14612D2* -X8277D1* -X8937D2* -X13773D1* -X14683D2* -X14863D1* -X15773D2* -X15953D1* -X25948D2* -X29828D1* -X31925D2* -X33039D1* -X4337Y14363D2* -X8277D1* -X8937D2* -X14019D1* -X14933D2* -X15113D1* -X25948D2* -X28332D1* -X31312D2* -X33039D1* -X4337Y14115D2* -X8277D1* -X8937D2* -X14269D1* -X15179D2* -X15359D1* -X25948D2* -X26883D1* -X27741D2* -X28016D1* -X31312D2* -X33039D1* -X4337Y13866D2* -X8277D1* -X8937D2* -X14519D1* -X31312D2* -X33039D1* -X4337Y13617D2* -X8277D1* -X8937D2* -X13586D1* -X31761D2* -X33039D1* -X4337Y13368D2* -X8277D1* -X8937D2* -X13457D1* -X23429D2* -X24262D1* -X32026D2* -X33039D1* -X4337Y13120D2* -X8277D1* -X23429D2* -X25098D1* -X32054D2* -X33039D1* -X4337Y12871D2* -X7367D1* -X23429D2* -X25488D1* -X29358D2* -X31273D1* -X31913D2* -X33039D1* -X4337Y12622D2* -X7183D1* -X23429D2* -X25488D1* -X28437D2* -X28664D1* -X29358D2* -X33039D1* -X4337Y12374D2* -X7176D1* -X8355D2* -X12918D1* -X13460D2* -X22183D1* -X23429D2* -X25488D1* -X26737D2* -X26887D1* -X27741D2* -X28664D1* -X29358D2* -X33039D1* -X5073Y12125D2* -X7176D1* -X23429D2* -X25422D1* -X27741D2* -X28664D1* -X29358D2* -X33039D1* -X7042Y11876D2* -X7176D1* -X23429D2* -X24891D1* -X27741D2* -X28664D1* -X29358D2* -X33039D1* -X7042Y11628D2* -X7176D1* -X7835D2* -X8754D1* -X23429D2* -X23937D1* -X24667D2* -X24820D1* -X27741D2* -X28664D1* -X29358D2* -X32226D1* -X5073Y11379D2* -X5594D1* -X7042D2* -X7176D1* -X7835D2* -X8976D1* -X9355D2* -X9832D1* -X27069D2* -X27594D1* -X30417D2* -X32226D1* -X4337Y11130D2* -X6246D1* -X6901D2* -X7176D1* -X7835D2* -X9965D1* -X26937D2* -X27594D1* -X30417D2* -X32226D1* -X4337Y10882D2* -X6246D1* -X6901D2* -X7176D1* -X7835D2* -X22969D1* -X25948D2* -X27594D1* -X30417D2* -X32226D1* -X4337Y10633D2* -X6246D1* -X6901D2* -X7176D1* -X7835D2* -X22969D1* -X25948D2* -X27734D1* -X30417D2* -X32226D1* -X4337Y10384D2* -X6246D1* -X6901D2* -X7176D1* -X7835D2* -X8164D1* -X4337Y10135D2* -X6246D1* -X6901D2* -X7176D1* -X4337Y9887D2* -X6246D1* -X6901D2* -X7176D1* -X25261D2* -X33039D1* -X4337Y9638D2* -X6246D1* -X6901D2* -X7176D1* -X25261D2* -X33039D1* -X4337Y9389D2* -X6246D1* -X6901D2* -X7176D1* -X28792D2* -X33039D1* -X4337Y9141D2* -X6246D1* -X6901D2* -X7176D1* -X29476D2* -X33039D1* -X4337Y8892D2* -X6246D1* -X6901D2* -X7176D1* -X13023D2* -X19961D1* -X29648D2* -X33039D1* -X4337Y8643D2* -X6246D1* -X6901D2* -X7176D1* -X13058D2* -X19961D1* -X20620D2* -X21898D1* -X29683D2* -X33039D1* -X4337Y8395D2* -X6246D1* -X6901D2* -X7176D1* -X12983D2* -X19961D1* -X20620D2* -X21973D1* -X29608D2* -X33039D1* -X4337Y8146D2* -X6246D1* -X6901D2* -X7176D1* -X10534D2* -X11066D1* -X12714D2* -X19961D1* -X20620D2* -X21793D1* -X29339D2* -X33039D1* -X4337Y7897D2* -X6246D1* -X6901D2* -X7293D1* -X10233D2* -X11367D1* -X12417D2* -X19961D1* -X20620D2* -X21449D1* -X29042D2* -X33039D1* -X4337Y7649D2* -X6246D1* -X6901D2* -X8004D1* -X10327D2* -X11273D1* -X12507D2* -X19961D1* -X20620D2* -X21355D1* -X29132D2* -X33039D1* -X4337Y7400D2* -X6246D1* -X6901D2* -X8023D1* -X10308D2* -X11293D1* -X12491D2* -X19961D1* -X20620D2* -X21375D1* -X29116D2* -X33039D1* -X4337Y7151D2* -X6246D1* -X20620D2* -X21519D1* -X22425D2* -X22613D1* -X23515D2* -X23703D1* -X24608D2* -X24793D1* -X25698D2* -X25883D1* -X26788D2* -X26973D1* -X27878D2* -X28066D1* -X28968D2* -X33039D1* -X4337Y6903D2* -X6269D1* -X20597D2* -X33039D1* -X4337Y6654D2* -X6492D1* -X20374D2* -X33039D1* -X4337Y6405D2* -X33039D1* -X4337Y6156D2* -X33039D1* -X4337Y5908D2* -X33039D1* -X4337Y5659D2* -X33039D1* -X4337Y5410D2* -X33039D1* -X4337Y5162D2* -X33039D1* -X4337Y4913D2* -X33039D1* -X4337Y4664D2* -X33039D1* -X4337Y4416D2* -X33039D1* -X27034Y12379D2* -X27715D1* -Y11495D1* -X27039D1* -X27047Y11431D1* -X27028Y11308D1* -X26972Y11197D1* -X26885Y11108D1* -X26775Y11050D1* -X26652Y11028D1* -X26529Y11045D1* -X26463Y11068D1* -X25928D1* -X25925Y10616D1* -X27761Y10617D1* -X27754Y10660D1* -X27620D1* -Y11466D1* -X28504Y11462D1* -X28690Y11466D1* -X28687Y12688D1* -Y12926D1* -X28581Y12901D1* -X28544Y12770D1* -X28495Y12706D1* -X28357Y12568D1* -X28249Y12500D1* -X28142Y12479D1* -X27048Y12476D1* -X26978Y12424D1* -X26913Y12397D1* -X26833Y12387D1* -X26712D1* -X26709Y12328D1* -X26795Y12243D1* -X26909Y12245D1* -Y12379D1* -X27034D1* -Y14129D2* -X27715D1* -Y14008D1* -X27840Y14063D1* -X27961Y14089D1* -X28019Y14083D1* -X28064Y14142D1* -X28202Y14280D1* -X28310Y14349D1* -X28417Y14369D1* -X29851D1* -X29852Y14743D1* -X31192D1* -X31173Y14795D1* -X31152Y14917D1* -X31165Y15041D1* -X31213Y15156D1* -X31291Y15254D1* -X31393Y15325D1* -X31511Y15366D1* -X31635Y15371D1* -X31756Y15342D1* -X31865Y15281D1* -X31951Y15191D1* -X32009Y15081D1* -X32036Y14931D1* -X32018Y14808D1* -X31967Y14694D1* -X31886Y14600D1* -X31782Y14531D1* -X31663Y14495D1* -X31538Y14493D1* -X31418Y14526D1* -X31309Y14594D1* -X31288Y14493D1* -X31284Y14017D1* -X31288Y13613D1* -X31291Y13521D1* -X31393Y13593D1* -X31511Y13633D1* -X31635Y13639D1* -X31756Y13610D1* -X31865Y13548D1* -X31951Y13459D1* -X32009Y13349D1* -X32036Y13199D1* -X32018Y13076D1* -X31967Y12962D1* -X31886Y12867D1* -X31782Y12799D1* -X31663Y12762D1* -X31538Y12760D1* -X31418Y12793D1* -X31312Y12858D1* -X31228Y12951D1* -X31172Y13066D1* -X31038Y13072D1* -X29852D1* -Y13115D1* -X29445Y13111D1* -X29332D1* -X29335Y12560D1* -Y11392D1* -X30392Y11393D1* -Y10615D1* -X32511Y10617D1* -X32497Y10628D1* -X32252D1* -Y11748D1* -X33061D1* -X33062Y24062D1* -X4312D1* -Y16527D1* -X4824Y16524D1* -X5050D1* -Y16364D1* -X5622Y16366D1* -X5620Y16465D1* -X6504Y16461D1* -X6757Y16465D1* -X7016D1* -Y15659D1* -X6973D1* -X6957Y15604D1* -X6901Y15493D1* -X6814Y15404D1* -X6704Y15346D1* -X6581Y15325D1* -X6458Y15342D1* -X6346Y15395D1* -X6255Y15481D1* -X6195Y15590D1* -X6181Y15663D1* -X6132D1* -X5879Y15659D1* -X5620D1* -Y15757D1* -X5051Y15758D1* -X5050Y15600D1* -X4312D1* -Y12152D1* -X4824Y12149D1* -X5050D1* -Y11989D1* -X5622Y11991D1* -X5620Y12090D1* -X6504Y12086D1* -X6757Y12090D1* -X7016D1* -Y11284D1* -X6879D1* -X6878Y7191D1* -X8153Y7192D1* -X8075Y7324D1* -X8036Y7442D1* -X8022Y7566D1* -X8036Y7694D1* -X7644Y7696D1* -X7519Y7723D1* -X7428Y7785D1* -X7291Y7923D1* -X7222Y8030D1* -X7202Y8138D1* -Y12553D1* -X7229Y12678D1* -X7291Y12768D1* -X7428Y12906D1* -X7536Y12975D1* -X7644Y12995D1* -X8343D1* -X8314Y13064D1* -X8303Y13144D1* -Y19140D1* -X8126Y19093D1* -X8001D1* -X7879Y19118D1* -X7765Y19169D1* -X7663Y19242D1* -X7580Y19334D1* -X7517Y19442D1* -X7478Y19561D1* -X7464Y19685D1* -X7477Y19809D1* -X7515Y19928D1* -X7577Y20036D1* -X7660Y20129D1* -X7760Y20203D1* -X7874Y20254D1* -X7996Y20281D1* -X8121Y20282D1* -X8243Y20257D1* -X8304Y20230D1* -X8303Y20288D1* -X8209Y20360D1* -X8125Y20452D1* -X8062Y20560D1* -X8023Y20679D1* -X8010Y20803D1* -X8022Y20927D1* -X8060Y21046D1* -X8122Y21154D1* -X8205Y21247D1* -X8306Y21321D1* -X8419Y21372D1* -X8541Y21399D1* -X8666Y21400D1* -X8788Y21375D1* -X8903Y21325D1* -X9004Y21252D1* -X9088Y21160D1* -X9151Y21052D1* -X9191Y20934D1* -X9205Y20805D1* -X9192Y20681D1* -X9153Y20562D1* -X9091Y20454D1* -X9008Y20361D1* -X8910Y20290D1* -X8965Y20254D1* -X9087Y20281D1* -X9211Y20282D1* -X9334Y20257D1* -X9448Y20207D1* -X9549Y20134D1* -X9633Y20042D1* -X9698Y19930D1* -X9758Y20036D1* -X9841Y20129D1* -X9942Y20203D1* -X10055Y20254D1* -X10177Y20281D1* -X10302Y20282D1* -X10424Y20257D1* -X10538Y20207D1* -X10640Y20134D1* -X10724Y20042D1* -X10788Y19930D1* -X10849Y20036D1* -X10932Y20129D1* -X11032Y20203D1* -X11146Y20254D1* -X11268Y20281D1* -X11392Y20282D1* -X11515Y20257D1* -X11629Y20207D1* -X11730Y20134D1* -X11828Y20018D1* -X11827Y20210D1* -X11696Y20236D1* -X11582Y20287D1* -X11480Y20360D1* -X11397Y20452D1* -X11333Y20564D1* -X11272Y20454D1* -X11189Y20361D1* -X11088Y20288D1* -X10974Y20237D1* -X10852Y20211D1* -X10727D1* -X10605Y20236D1* -X10491Y20287D1* -X10390Y20360D1* -X10306Y20452D1* -X10243Y20560D1* -X10204Y20679D1* -X10191Y20803D1* -X10203Y20927D1* -X10241Y21046D1* -X10303Y21154D1* -X10386Y21247D1* -X10487Y21321D1* -X10601Y21372D1* -X10722Y21399D1* -X10847Y21400D1* -X10969Y21375D1* -X11084Y21325D1* -X11185Y21252D1* -X11269Y21160D1* -X11334Y21049D1* -X11394Y21154D1* -X11477Y21247D1* -X11577Y21321D1* -X11691Y21372D1* -X11813Y21399D1* -X11938Y21400D1* -X12060Y21375D1* -X12174Y21325D1* -X12276Y21252D1* -X12360Y21160D1* -X12423Y21052D1* -X12462Y20934D1* -X12477Y20805D1* -X12464Y20681D1* -X12425Y20562D1* -X12363Y20454D1* -X12279Y20361D1* -X12168Y20283D1* -X13022Y20285D1* -Y19523D1* -X14761Y17781D1* -X17481Y15060D1* -X21373Y15062D1* -X21368Y15173D1* -X21304Y15222D1* -X21166Y15360D1* -X21097Y15467D1* -X21077Y15575D1* -Y16687D1* -X21102Y16809D1* -X21194Y16926D1* -X21214Y17028D1* -Y17346D1* -X23910D1* -Y16028D1* -X21687D1* -X21685Y15839D1* -X22254Y15840D1* -Y15203D1* -X23200Y15200D1* -X25109D1* -X25234Y15172D1* -X25258Y15187D1* -Y15299D1* -X25285Y15424D1* -X25347Y15514D1* -X25485Y15652D1* -X25592Y15721D1* -X25700Y15741D1* -X26118D1* -X26120Y15840D1* -X26280D1* -X26355Y15955D1* -X26485Y16026D1* -X24955Y16028D1* -Y17346D1* -X27650D1* -Y16975D1* -X27765Y16894D1* -X27836Y16767D1* -X27847Y16687D1* -Y15870D1* -X27819Y15745D1* -X27757Y15655D1* -X27620Y15517D1* -X27512Y15448D1* -X27405Y15428D1* -X27002D1* -X27004Y15034D1* -X26120D1* -Y15132D1* -X25863Y15133D1* -X25866Y14787D1* -X25925D1* -Y14001D1* -X26588Y13999D1* -X26676Y14011D1* -X26907D1* -X26909Y14129D1* -X27034D1* -X5050Y11379D2* -Y11225D1* -X4312D1* -Y4312D1* -X33062D1* -Y10136D1* -X33019Y10090D1* -X32909Y10025D1* -X32812Y10009D1* -X25624D1* -X25499Y10036D1* -X25424Y10083D1* -X25310Y10205D1* -X25281Y10258D1* -X25236Y10255D1* -Y9423D1* -X28631Y9422D1* -X28756Y9395D1* -X28846Y9333D1* -X28915Y9264D1* -X28996Y9281D1* -X29121Y9282D1* -X29243Y9257D1* -X29357Y9207D1* -X29459Y9134D1* -X29543Y9042D1* -X29606Y8934D1* -X29646Y8816D1* -X29660Y8687D1* -X29647Y8563D1* -X29608Y8444D1* -X29546Y8336D1* -X29462Y8243D1* -X29362Y8170D1* -X29248Y8119D1* -X29126Y8093D1* -X29001D1* -X28879Y8118D1* -X28765Y8169D1* -X28663Y8242D1* -X28580Y8334D1* -X28516Y8446D1* -X28455Y8336D1* -X28372Y8243D1* -X28271Y8170D1* -X28157Y8119D1* -X28035Y8093D1* -X27910D1* -X27788Y8118D1* -X27674Y8169D1* -X27573Y8242D1* -X27489Y8334D1* -X27425Y8446D1* -X27365Y8336D1* -X27281Y8243D1* -X27180Y8170D1* -X27066Y8119D1* -X26944Y8093D1* -X26820D1* -X26698Y8118D1* -X26584Y8169D1* -X26482Y8242D1* -X26399Y8334D1* -X26335Y8446D1* -X26274Y8336D1* -X26191Y8243D1* -X26090Y8170D1* -X25976Y8119D1* -X25854Y8093D1* -X25729D1* -X25607Y8118D1* -X25493Y8169D1* -X25392Y8242D1* -X25308Y8334D1* -X25244Y8446D1* -X25184Y8336D1* -X25100Y8243D1* -X24999Y8170D1* -X24885Y8119D1* -X24763Y8093D1* -X24639D1* -X24517Y8118D1* -X24402Y8169D1* -X24301Y8242D1* -X24217Y8334D1* -X24154Y8446D1* -X24093Y8336D1* -X24010Y8243D1* -X23909Y8170D1* -X23795Y8119D1* -X23673Y8093D1* -X23548D1* -X23426Y8118D1* -X23312Y8169D1* -X23211Y8242D1* -X23127Y8334D1* -X23063Y8446D1* -X23002Y8336D1* -X22919Y8243D1* -X22818Y8170D1* -X22704Y8119D1* -X22582Y8093D1* -X22458D1* -X22335Y8118D1* -X22221Y8169D1* -X22120Y8242D1* -X22036Y8334D1* -X21974Y8442D1* -X21935Y8561D1* -X21921Y8685D1* -X21934Y8809D1* -X21954Y8872D1* -X20593Y8873D1* -X20596Y8164D1* -Y7026D1* -X20569Y6901D1* -X20507Y6810D1* -X20369Y6673D1* -X20262Y6604D1* -X20154Y6584D1* -X6712D1* -X6587Y6611D1* -X6496Y6673D1* -X6359Y6810D1* -X6290Y6918D1* -X6270Y7026D1* -X6266Y11284D1* -X6132Y11288D1* -X5879Y11284D1* -X5620D1* -Y11382D1* -X5051Y11383D1* -X7809Y9285D2* -X7942D1* -Y10014D1* -X7969Y10139D1* -X8031Y10229D1* -X8169Y10367D1* -X8276Y10435D1* -X8384Y10456D1* -X22997D1* -X22994Y11066D1* -X22207Y11068D1* -Y11126D1* -X10521Y11127D1* -X10386Y11050D1* -X10263Y11028D1* -X10140Y11045D1* -X10028Y11099D1* -X9937Y11185D1* -X9877Y11294D1* -X9853Y11416D1* -X9857Y11443D1* -X9427Y11442D1* -X9296Y11365D1* -X9173Y11343D1* -X9050Y11360D1* -X8937Y11414D1* -X8847Y11500D1* -X8787Y11609D1* -X8763Y11731D1* -X8766Y11758D1* -X8341Y11757D1* -X8205Y11680D1* -X8082Y11658D1* -X7959Y11675D1* -X7847Y11729D1* -X7810Y11764D1* -Y9284D1* -X9709Y8441D2* -X9649Y8336D1* -X9566Y8243D1* -X9506Y8200D1* -X9645Y8163D1* -X9769Y8164D1* -X9892Y8138D1* -X10006Y8088D1* -X10107Y8016D1* -X10192Y7924D1* -X10255Y7816D1* -X10294Y7698D1* -X10308Y7569D1* -X10295Y7445D1* -X10257Y7326D1* -X10171Y7192D1* -X11426D1* -X11347Y7324D1* -X11308Y7442D1* -X11294Y7566D1* -X11307Y7691D1* -X11345Y7809D1* -X11407Y7918D1* -X11490Y8011D1* -X11587Y8083D1* -X11532Y8119D1* -X11410Y8093D1* -X11285D1* -X11163Y8118D1* -X11049Y8169D1* -X10948Y8242D1* -X10864Y8334D1* -X10800Y8446D1* -X10740Y8336D1* -X10656Y8243D1* -X10555Y8170D1* -X10441Y8119D1* -X10319Y8093D1* -X10195D1* -X10073Y8118D1* -X9958Y8169D1* -X9857Y8242D1* -X9774Y8334D1* -X9710Y8446D1* -X13022Y8563D2* -X12983Y8444D1* -X12921Y8336D1* -X12837Y8243D1* -X12736Y8170D1* -X12623Y8119D1* -X12501Y8093D1* -X12376D1* -X12254Y8118D1* -X12193Y8145D1* -X12288Y8016D1* -X12373Y7924D1* -X12436Y7816D1* -X12475Y7698D1* -X12489Y7569D1* -X12476Y7445D1* -X12438Y7326D1* -X12352Y7192D1* -X19989D1* -X19988Y9014D1* -X19599Y9011D1* -X12939D1* -X12981Y8934D1* -X13021Y8816D1* -X13035Y8687D1* -X13022Y8563D1* -X22518Y7323D2* -X22457Y7218D1* -X22374Y7125D1* -X22273Y7052D1* -X22159Y7001D1* -X22037Y6975D1* -X21912Y6974D1* -X21790Y7000D1* -X21676Y7051D1* -X21575Y7124D1* -X21491Y7216D1* -X21428Y7324D1* -X21389Y7442D1* -X21376Y7566D1* -X21388Y7691D1* -X21426Y7809D1* -X21488Y7918D1* -X21571Y8011D1* -X21672Y8085D1* -X21786Y8136D1* -X21907Y8163D1* -X22032Y8164D1* -X22154Y8138D1* -X22269Y8088D1* -X22370Y8016D1* -X22454Y7924D1* -X22519Y7812D1* -X22579Y7918D1* -X22662Y8011D1* -X22762Y8085D1* -X22876Y8136D1* -X22998Y8163D1* -X23123Y8164D1* -X23245Y8138D1* -X23359Y8088D1* -X23461Y8016D1* -X23545Y7924D1* -X23609Y7812D1* -X23669Y7918D1* -X23752Y8011D1* -X23853Y8085D1* -X23967Y8136D1* -X24089Y8163D1* -X24213Y8164D1* -X24336Y8138D1* -X24450Y8088D1* -X24551Y8016D1* -X24635Y7924D1* -X24700Y7812D1* -X24760Y7918D1* -X24843Y8011D1* -X24944Y8085D1* -X25057Y8136D1* -X25179Y8163D1* -X25304Y8164D1* -X25426Y8138D1* -X25540Y8088D1* -X25642Y8016D1* -X25726Y7924D1* -X25790Y7812D1* -X25850Y7918D1* -X25933Y8011D1* -X26034Y8085D1* -X26148Y8136D1* -X26270Y8163D1* -X26394Y8164D1* -X26517Y8138D1* -X26631Y8088D1* -X26732Y8016D1* -X26817Y7924D1* -X26881Y7812D1* -X26941Y7918D1* -X27024Y8011D1* -X27125Y8085D1* -X27238Y8136D1* -X27360Y8163D1* -X27485Y8164D1* -X27607Y8138D1* -X27721Y8088D1* -X27823Y8016D1* -X27907Y7924D1* -X27971Y7812D1* -X28032Y7918D1* -X28115Y8011D1* -X28215Y8085D1* -X28329Y8136D1* -X28451Y8163D1* -X28576Y8164D1* -X28698Y8138D1* -X28812Y8088D1* -X28913Y8016D1* -X28998Y7924D1* -X29061Y7816D1* -X29100Y7698D1* -X29114Y7569D1* -X29101Y7445D1* -X29063Y7326D1* -X29000Y7218D1* -X28917Y7125D1* -X28816Y7052D1* -X28702Y7001D1* -X28580Y6975D1* -X28456Y6974D1* -X28333Y7000D1* -X28219Y7051D1* -X28118Y7124D1* -X28034Y7216D1* -X27970Y7328D1* -X27910Y7218D1* -X27827Y7125D1* -X27726Y7052D1* -X27612Y7001D1* -X27490Y6975D1* -X27365Y6974D1* -X27243Y7000D1* -X27129Y7051D1* -X27028Y7124D1* -X26944Y7216D1* -X26880Y7328D1* -X26819Y7218D1* -X26736Y7125D1* -X26635Y7052D1* -X26521Y7001D1* -X26399Y6975D1* -X26274Y6974D1* -X26152Y7000D1* -X26038Y7051D1* -X25937Y7124D1* -X25853Y7216D1* -X25789Y7328D1* -X25729Y7218D1* -X25645Y7125D1* -X25545Y7052D1* -X25431Y7001D1* -X25309Y6975D1* -X25184Y6974D1* -X25062Y7000D1* -X24948Y7051D1* -X24847Y7124D1* -X24763Y7216D1* -X24699Y7328D1* -X24638Y7218D1* -X24555Y7125D1* -X24454Y7052D1* -X24340Y7001D1* -X24218Y6975D1* -X24093Y6974D1* -X23971Y7000D1* -X23857Y7051D1* -X23756Y7124D1* -X23672Y7216D1* -X23608Y7328D1* -X23548Y7218D1* -X23464Y7125D1* -X23363Y7052D1* -X23250Y7001D1* -X23128Y6975D1* -X23003Y6974D1* -X22881Y7000D1* -X22767Y7051D1* -X22665Y7124D1* -X22582Y7216D1* -X22518Y7328D1* -X28565Y19563D2* -X28526Y19444D1* -X28464Y19336D1* -X28381Y19243D1* -X28280Y19170D1* -X28166Y19119D1* -X28044Y19093D1* -X27919D1* -X27797Y19118D1* -X27683Y19169D1* -X27582Y19242D1* -X27498Y19334D1* -X27434Y19446D1* -X27374Y19336D1* -X27290Y19243D1* -X27189Y19170D1* -X27075Y19119D1* -X26953Y19093D1* -X26829D1* -X26706Y19118D1* -X26592Y19169D1* -X26491Y19242D1* -X26407Y19334D1* -X26343Y19446D1* -X26283Y19336D1* -X26200Y19243D1* -X26099Y19170D1* -X25985Y19119D1* -X25863Y19093D1* -X25738D1* -X25616Y19118D1* -X25502Y19169D1* -X25401Y19242D1* -X25317Y19334D1* -X25253Y19446D1* -X25192Y19336D1* -X25109Y19243D1* -X25008Y19170D1* -X24894Y19119D1* -X24772Y19093D1* -X24647D1* -X24525Y19118D1* -X24411Y19169D1* -X24310Y19242D1* -X24226Y19334D1* -X24162Y19446D1* -X24102Y19336D1* -X24018Y19243D1* -X23918Y19170D1* -X23804Y19119D1* -X23682Y19093D1* -X23557D1* -X23435Y19118D1* -X23321Y19169D1* -X23220Y19242D1* -X23136Y19334D1* -X23072Y19446D1* -X23011Y19336D1* -X22928Y19243D1* -X22827Y19170D1* -X22713Y19119D1* -X22591Y19093D1* -X22466D1* -X22344Y19118D1* -X22230Y19169D1* -X22129Y19242D1* -X22045Y19334D1* -X21981Y19446D1* -X21921Y19336D1* -X21837Y19243D1* -X21736Y19170D1* -X21623Y19119D1* -X21501Y19093D1* -X21376D1* -X21254Y19118D1* -X21140Y19169D1* -X21038Y19242D1* -X20955Y19334D1* -X20892Y19442D1* -X20853Y19561D1* -X20839Y19685D1* -X20852Y19809D1* -X20890Y19928D1* -X20952Y20036D1* -X21035Y20129D1* -X21135Y20203D1* -X21249Y20254D1* -X21371Y20281D1* -X21496Y20282D1* -X21618Y20257D1* -X21732Y20207D1* -X21834Y20134D1* -X21918Y20042D1* -X21982Y19930D1* -X22042Y20036D1* -X22125Y20129D1* -X22226Y20203D1* -X22340Y20254D1* -X22462Y20281D1* -X22586Y20282D1* -X22709Y20257D1* -X22823Y20207D1* -X22924Y20134D1* -X23008Y20042D1* -X23073Y19930D1* -X23133Y20036D1* -X23216Y20129D1* -X23317Y20203D1* -X23430Y20254D1* -X23552Y20281D1* -X23677Y20282D1* -X23799Y20257D1* -X23913Y20207D1* -X24015Y20134D1* -X24099Y20042D1* -X24163Y19930D1* -X24223Y20036D1* -X24307Y20129D1* -X24407Y20203D1* -X24521Y20254D1* -X24643Y20281D1* -X24767Y20282D1* -X24890Y20257D1* -X25004Y20207D1* -X25105Y20134D1* -X25190Y20042D1* -X25254Y19930D1* -X25314Y20036D1* -X25397Y20129D1* -X25498Y20203D1* -X25611Y20254D1* -X25733Y20281D1* -X25858Y20282D1* -X25980Y20257D1* -X26095Y20207D1* -X26196Y20134D1* -X26280Y20042D1* -X26345Y19930D1* -X26405Y20036D1* -X26488Y20129D1* -X26588Y20203D1* -X26702Y20254D1* -X26824Y20281D1* -X26949Y20282D1* -X27071Y20257D1* -X27185Y20207D1* -X27287Y20134D1* -X27371Y20042D1* -X27435Y19930D1* -X27495Y20036D1* -X27578Y20129D1* -X27679Y20203D1* -X27792Y20254D1* -X27914Y20281D1* -X28039Y20282D1* -X28161Y20257D1* -X28276Y20207D1* -X28377Y20134D1* -X28461Y20042D1* -X28524Y19934D1* -X28564Y19816D1* -X28578Y19687D1* -X28565Y19563D1* -X29110Y20681D2* -X29072Y20562D1* -X29009Y20454D1* -X28926Y20361D1* -X28825Y20288D1* -X28711Y20237D1* -X28589Y20211D1* -X28464D1* -X28342Y20236D1* -X28228Y20287D1* -X28127Y20360D1* -X28043Y20452D1* -X27979Y20564D1* -X27919Y20454D1* -X27835Y20361D1* -X27735Y20288D1* -X27621Y20237D1* -X27499Y20211D1* -X27374D1* -X27252Y20236D1* -X27138Y20287D1* -X27036Y20360D1* -X26953Y20452D1* -X26889Y20564D1* -X26828Y20454D1* -X26745Y20361D1* -X26644Y20288D1* -X26530Y20237D1* -X26408Y20211D1* -X26283D1* -X26161Y20236D1* -X26047Y20287D1* -X25946Y20360D1* -X25862Y20452D1* -X25798Y20564D1* -X25738Y20454D1* -X25654Y20361D1* -X25553Y20288D1* -X25440Y20237D1* -X25318Y20211D1* -X25193D1* -X25071Y20236D1* -X24957Y20287D1* -X24855Y20360D1* -X24772Y20452D1* -X24708Y20564D1* -X24647Y20454D1* -X24564Y20361D1* -X24463Y20288D1* -X24349Y20237D1* -X24227Y20211D1* -X24102D1* -X23980Y20236D1* -X23866Y20287D1* -X23765Y20360D1* -X23681Y20452D1* -X23617Y20564D1* -X23557Y20454D1* -X23473Y20361D1* -X23372Y20288D1* -X23258Y20237D1* -X23136Y20211D1* -X23012D1* -X22890Y20236D1* -X22775Y20287D1* -X22674Y20360D1* -X22590Y20452D1* -X22527Y20564D1* -X22466Y20454D1* -X22383Y20361D1* -X22282Y20288D1* -X22168Y20237D1* -X22046Y20211D1* -X21921D1* -X21799Y20236D1* -X21685Y20287D1* -X21584Y20360D1* -X21500Y20452D1* -X21437Y20560D1* -X21398Y20679D1* -X21385Y20803D1* -X21397Y20927D1* -X21435Y21046D1* -X21497Y21154D1* -X21580Y21247D1* -X21681Y21321D1* -X21794Y21372D1* -X21916Y21399D1* -X22041Y21400D1* -X22163Y21375D1* -X22278Y21325D1* -X22379Y21252D1* -X22463Y21160D1* -X22528Y21049D1* -X22588Y21154D1* -X22671Y21247D1* -X22771Y21321D1* -X22885Y21372D1* -X23007Y21399D1* -X23132Y21400D1* -X23254Y21375D1* -X23368Y21325D1* -X23470Y21252D1* -X23554Y21160D1* -X23618Y21049D1* -X23678Y21154D1* -X23761Y21247D1* -X23862Y21321D1* -X23975Y21372D1* -X24097Y21399D1* -X24222Y21400D1* -X24344Y21375D1* -X24459Y21325D1* -X24560Y21252D1* -X24644Y21160D1* -X24709Y21049D1* -X24769Y21154D1* -X24852Y21247D1* -X24952Y21321D1* -X25066Y21372D1* -X25188Y21399D1* -X25313Y21400D1* -X25435Y21375D1* -X25549Y21325D1* -X25651Y21252D1* -X25735Y21160D1* -X25799Y21049D1* -X25859Y21154D1* -X25942Y21247D1* -X26043Y21321D1* -X26157Y21372D1* -X26278Y21399D1* -X26403Y21400D1* -X26525Y21375D1* -X26640Y21325D1* -X26741Y21252D1* -X26825Y21160D1* -X26890Y21049D1* -X26950Y21154D1* -X27033Y21247D1* -X27133Y21321D1* -X27247Y21372D1* -X27369Y21399D1* -X27494Y21400D1* -X27616Y21375D1* -X27730Y21325D1* -X27832Y21252D1* -X27916Y21160D1* -X27980Y21049D1* -X28040Y21154D1* -X28123Y21247D1* -X28224Y21321D1* -X28338Y21372D1* -X28460Y21399D1* -X28584Y21400D1* -X28707Y21375D1* -X28821Y21325D1* -X28922Y21252D1* -X29006Y21160D1* -X29070Y21052D1* -X29109Y20934D1* -X29123Y20805D1* -X29110Y20681D1* -X12588Y19089D2* -X12362D1* -X16529Y14922D1* -X16756Y14924D1* -X12589Y19092D1* -X11477Y19110D2* -X11397Y19093D1* -X11269D1* -X15869Y14491D1* -X16097Y14493D1* -X11482Y19109D1* -X10387Y19110D2* -X10307Y19093D1* -X10178D1* -X15331Y13939D1* -X15567Y13940D1* -X15351Y14149D1* -X10393Y19107D1* -X9296Y19110D2* -X9216Y19093D1* -X9091D1* -X8969Y19118D1* -X8909Y19145D1* -X8912Y17930D1* -Y13309D1* -X13476Y13310D1* -X13494Y13429D1* -X13546Y13543D1* -X13629Y13635D1* -X13737Y13697D1* -X13859Y13723D1* -X13983Y13711D1* -X14097Y13661D1* -X14141Y13623D1* -X14784Y13625D1* -X9301Y19108D1* -X25161Y13587D2* -X25021D1* -X25001Y13473D1* -X24945Y13362D1* -X24858Y13273D1* -X24747Y13215D1* -X24625Y13194D1* -X24501Y13211D1* -X24389Y13265D1* -X24299Y13350D1* -X24239Y13459D1* -X24215Y13585D1* -X23939Y13587D1* -X23407D1* -X23406Y12958D1* -Y12328D1* -Y11698D1* -Y11481D1* -X23909Y11479D1* -X23914Y11520D1* -X23966Y11633D1* -X24050Y11725D1* -X24158Y11787D1* -X24279Y11813D1* -X24403Y11801D1* -X24518Y11752D1* -X24611Y11670D1* -X24675Y11563D1* -X24696Y11476D1* -X24882Y11479D1* -X24845Y11633D1* -X24859Y11757D1* -X24911Y11870D1* -X24995Y11962D1* -X25103Y12024D1* -X25224Y12050D1* -X25306Y12042D1* -X25437Y12122D1* -X25517Y12139D1* -X25514Y12424D1* -Y12920D1* -X25355Y12935D1* -X25242Y12989D1* -X25152Y13074D1* -X25092Y13184D1* -X25068Y13306D1* -X25083Y13429D1* -X25134Y13543D1* -X25153Y13563D1* -X24214Y13587D2* -X23624Y13591D1* -X23404Y13587D1* -X23402Y13272D1* -X23406Y12869D1* -X23402Y12643D1* -X23406Y12299D1* -X23404Y11479D1* -X23721Y11476D1* -X23874Y11479D1* -X13448Y12387D2* -X13426Y12366D1* -X22204Y12365D1* -X22181Y12387D1* -X13451D1* -X12927D2* -X8310D1* -X8450Y12365D1* -X12954D1* -D16* -X27312Y11937D3* -Y12449D3* -Y13687D3* -Y14199D3* -D17* -X21812Y15437D3* -X22324D3* -X26562D3* -X27074D3* -D18* -X29812Y10813D3* -D19* -Y9813D3* -D21* -X30570Y13435D3* -Y13750D3* -Y14065D3* -Y14380D3* -Y14695D3* -D22* -X30609Y12313D3* -Y15817D3* -X32775Y12313D3* -Y15817D3* -D23* -X4499Y16062D3* -Y16692D3* -Y11687D3* -Y12317D3* -D24* -X8075Y8687D3* -D25* -X32812Y11188D3* -D26* -X9165Y8687D3* -X10256D3* -X11346D3* -X12437D3* -X8620Y7569D3* -X9711D3* -X10801D3* -X11892D3* -D27* -X5337Y8128D3* -X15175D3* -D24* -X21428Y8687D3* -D26* -X22519D3* -X23609D3* -X24700D3* -X25790D3* -X26881D3* -X27971D3* -X29062D3* -X21973Y7569D3* -X23064D3* -X24155D3* -X25245D3* -X26336D3* -X27426D3* -X28517D3* -D28* -X18686Y8128D3* -X31804D3* -D24* -X29071Y19687D3* -D26* -X27980D3* -X26890D3* -X25799D3* -X24709D3* -X23618D3* -X22528D3* -X21437D3* -X28526Y20805D3* -X27435D3* -X26344D3* -X25254D3* -X24163D3* -X23073D3* -X21982D3* -D28* -X31813Y20246D3* -X18695D3* -D24* -X12424Y19687D3* -D26* -X11334D3* -X10243D3* -X9153D3* -X8062D3* -X11879Y20805D3* -X10788D3* -X9698D3* -X8607D3* -D27* -X15162Y20246D3* -X5324D3* -D17* -X6062Y16062D3* -X6574D3* -X6062Y11687D3* -X6574D3* -X28062Y11063D3* -X28574D3* -D30* -X25562Y14187D3* -X25247D3* -X24932D3* -X24617D3* -X24302D3* -X23987D3* -X23672D3* -X23357D3* -D31* -X22806Y13636D3* -Y13321D3* -Y13006D3* -Y12691D3* -Y12376D3* -Y12061D3* -Y11746D3* -Y11431D3* -D30* -X23357Y10880D3* -X23672D3* -X23987D3* -X24302D3* -X24617D3* -X24932D3* -X25247D3* -X25562D3* -D31* -X26113Y11431D3* -Y11746D3* -Y12061D3* -Y12376D3* -Y12691D3* -Y13006D3* -Y13321D3* -Y13636D3* -D33* -X22562Y16687D3* -X26302D3* -M02* +G04 DipTrace 2.4.0.2*
+%INTop.gbr*%
+%MOIN*%
+%ADD13C,0.0118*%
+%ADD14C,0.0079*%
+%ADD15C,0.025*%
+%ADD16R,0.0276X0.0354*%
+%ADD17R,0.0354X0.0276*%
+%ADD18R,0.063X0.063*%
+%ADD19C,0.063*%
+%ADD21R,0.0906X0.0197*%
+%ADD22R,0.0984X0.0787*%
+%ADD23R,0.0571X0.0394*%
+%ADD24R,0.0665X0.0665*%
+%ADD25R,0.0591X0.0591*%
+%ADD26C,0.0665*%
+%ADD27C,0.1874*%
+%ADD28C,0.189*%
+%ADD30R,0.0197X0.0669*%
+%ADD31R,0.0669X0.0197*%
+%ADD33R,0.2165X0.0787*%
+%ADD34C,0.0276*%
+%FSLAX44Y44*%
+G04*
+G70*
+G90*
+G75*
+G01*
+%LNTop*%
+%LPD*%
+X22806Y12376D2*
+D13*
+X21749D1*
+X24932Y14187D2*
+Y14622D1*
+X24936Y14626D1*
+X26113Y12376D2*
+X26874D1*
+X26937Y12438D1*
+X11935Y12376D2*
+X13623D1*
+X22806D2*
+X23436D1*
+X23561Y12251D1*
+Y11751D1*
+X24932Y14187D2*
+Y13068D1*
+X25499Y12501D1*
+X26113Y12376D2*
+X25624D1*
+X25499Y12501D1*
+X4499Y16062D2*
+D14*
+X5446D1*
+X6062D1*
+X4499Y11687D2*
+X5446D1*
+X6062D1*
+X6574Y15727D2*
+Y16062D1*
+X24302Y11411D2*
+Y10880D1*
+X24617D2*
+Y9315D1*
+X24479Y9177D1*
+X20430D1*
+X20292Y9039D1*
+Y7026D1*
+X20154Y6888D1*
+X6712D1*
+X6574Y7026D1*
+Y11687D1*
+X26645Y11431D2*
+X26113D1*
+X25582Y11746D2*
+X26113D1*
+X25247Y11648D2*
+Y10880D1*
+X29062Y8687D2*
+X28631Y9118D1*
+X25070D1*
+X24932Y9256D1*
+Y10880D1*
+X25562D2*
+Y10375D1*
+X25624Y10313D1*
+X32812D1*
+Y11188D1*
+Y10313D2*
+X28062D1*
+Y11063D1*
+X22806Y12691D2*
+X13189D1*
+X7644D1*
+X7506Y12553D1*
+Y8138D1*
+X7644Y8000D1*
+X9280D1*
+X9711Y7569D1*
+X12424Y19687D2*
+X17353Y14758D1*
+X23849D1*
+X23987Y14620D1*
+Y14187D1*
+X11334Y19687D2*
+X16401Y14620D1*
+X23672D1*
+Y14187D1*
+X10243Y19687D2*
+X15743Y14187D1*
+X23357D1*
+X9153Y19687D2*
+X15204Y13636D1*
+X22806D1*
+X13882Y13321D2*
+X22806D1*
+X8607Y20805D2*
+Y13144D1*
+X8745Y13006D1*
+X22806D1*
+X8075Y12061D2*
+X22806D1*
+X9165Y11746D2*
+X22806D1*
+X10256Y11431D2*
+X22806D1*
+X11346Y8687D2*
+X10915Y9118D1*
+X8384D1*
+X8246Y9256D1*
+Y10014D1*
+X8384Y10152D1*
+X23220D1*
+X23357Y10289D1*
+Y10880D1*
+X8620Y9915D2*
+X23534D1*
+X23672Y10053D1*
+Y10880D1*
+X11892Y7569D2*
+Y9177D1*
+X12030Y9315D1*
+X23849D1*
+X23987Y9453D1*
+Y10880D1*
+X26113Y12061D2*
+X26546D1*
+X26670Y11937D1*
+X27312D1*
+X30570Y14065D2*
+X28417D1*
+X28279Y13927D1*
+Y12921D1*
+X28142Y12783D1*
+X26925D1*
+X26833Y12691D1*
+X26113D1*
+X27706Y13293D2*
+X27418Y13006D1*
+X26113D1*
+X28516Y13293D2*
+Y13612D1*
+X28653Y13750D1*
+X30570D1*
+X27984Y13687D2*
+D13*
+X27312D1*
+X30570Y13435D2*
+X29011D1*
+X24617Y13596D2*
+Y14187D1*
+X25470Y13321D2*
+X26113D1*
+Y13636D2*
+X25608D1*
+X25470Y13498D1*
+Y13321D1*
+X27312Y13687D2*
+X26676D1*
+X26625Y13636D1*
+X26113D1*
+X29011Y13435D2*
+Y11063D1*
+X28574D1*
+X30062D1*
+X29812Y10813D1*
+X22562Y16687D2*
+D14*
+X21381D1*
+Y15575D1*
+X21519Y15437D1*
+X21812D1*
+Y15033D1*
+X21950Y14896D1*
+X25109D1*
+X25247Y14758D1*
+Y14187D1*
+X26302Y16687D2*
+X27542D1*
+Y15870D1*
+X27405Y15732D1*
+X26562D1*
+Y15437D1*
+X25700D1*
+X25562Y15299D1*
+Y14187D1*
+D34*
+X10872Y14938D3*
+X8997D3*
+Y18126D3*
+Y16126D3*
+X12562Y14937D3*
+X12123Y16126D3*
+X10497Y18876D3*
+X12873Y16439D3*
+X12935Y17501D3*
+X11623Y18876D3*
+X12748D3*
+X13560Y18064D3*
+X16623Y15001D3*
+X15935Y14563D3*
+X15248Y14126D3*
+X13560Y16939D3*
+X21749Y12376D3*
+X17873D3*
+X13623D3*
+X11935D3*
+X8560D3*
+X8622Y11438D3*
+Y10438D3*
+X9685Y11313D3*
+Y10438D3*
+X10685Y10750D3*
+X11998D3*
+X12935Y10625D3*
+X17998D3*
+X22936D3*
+X6434Y16876D3*
+X8997Y13438D3*
+X11998D3*
+X13498D3*
+Y14813D3*
+X24936Y14626D3*
+X26187Y14938D3*
+Y14063D3*
+X26937Y12438D3*
+X28624Y12938D3*
+X27749Y10625D3*
+X25937Y10688D3*
+X22374Y18001D3*
+X24874D3*
+X24374Y15563D3*
+X13560Y15813D3*
+X4309Y24064D3*
+X33062D3*
+Y4312D3*
+X4309D3*
+X7810Y9250D3*
+X25624Y18001D3*
+X27999D3*
+X25749Y9625D3*
+X7872Y7375D3*
+X6997Y8500D3*
+X23561Y11751D3*
+X24061Y13501D3*
+X25499Y12501D3*
+X6574Y15727D3*
+X24302Y11411D3*
+X26645Y11431D3*
+X25582Y11746D3*
+X25247Y11648D3*
+X13189Y12691D3*
+X13882Y13321D3*
+X8075Y12061D3*
+X9165Y11746D3*
+X10256Y11431D3*
+X8620Y9915D3*
+X27706Y13293D3*
+X28516D3*
+X27984Y13687D3*
+X29011Y13435D3*
+X25470Y13321D3*
+X24617Y13596D3*
+X4337Y23813D2*
+D15*
+X33039D1*
+X4337Y23565D2*
+X33039D1*
+X4337Y23316D2*
+X33039D1*
+X4337Y23067D2*
+X33039D1*
+X4337Y22819D2*
+X33039D1*
+X4337Y22570D2*
+X33039D1*
+X4337Y22321D2*
+X33039D1*
+X4337Y22073D2*
+X33039D1*
+X4337Y21824D2*
+X33039D1*
+X4337Y21575D2*
+X33039D1*
+X4337Y21326D2*
+X8289D1*
+X8925D2*
+X10473D1*
+X11105D2*
+X11562D1*
+X12194D2*
+X21664D1*
+X22300D2*
+X22758D1*
+X23390D2*
+X23848D1*
+X24480D2*
+X24937D1*
+X25569D2*
+X26027D1*
+X26663D2*
+X27117D1*
+X27753D2*
+X28207D1*
+X28843D2*
+X33039D1*
+X4337Y21078D2*
+X8051D1*
+X9163D2*
+X10230D1*
+X12437D2*
+X21426D1*
+X29081D2*
+X33039D1*
+X4337Y20829D2*
+X7984D1*
+X9230D2*
+X10168D1*
+X12499D2*
+X21359D1*
+X29148D2*
+X33039D1*
+X4337Y20580D2*
+X8027D1*
+X9187D2*
+X10211D1*
+X12456D2*
+X21402D1*
+X29105D2*
+X33039D1*
+X4337Y20332D2*
+X8219D1*
+X8995D2*
+X10398D1*
+X11179D2*
+X11488D1*
+X12269D2*
+X21594D1*
+X22370D2*
+X22683D1*
+X23464D2*
+X23773D1*
+X24554D2*
+X24863D1*
+X25644D2*
+X25957D1*
+X26733D2*
+X27047D1*
+X27823D2*
+X28137D1*
+X28913D2*
+X33039D1*
+X4337Y20083D2*
+X7590D1*
+X9624D2*
+X9770D1*
+X10714D2*
+X10862D1*
+X13046D2*
+X20965D1*
+X21909D2*
+X22055D1*
+X22999D2*
+X23145D1*
+X24089D2*
+X24237D1*
+X25183D2*
+X25328D1*
+X26273D2*
+X26418D1*
+X27362D2*
+X27505D1*
+X28452D2*
+X33039D1*
+X4337Y19834D2*
+X7457D1*
+X13046D2*
+X20832D1*
+X28585D2*
+X33039D1*
+X4337Y19586D2*
+X7449D1*
+X13046D2*
+X20824D1*
+X28593D2*
+X33039D1*
+X4337Y19337D2*
+X7555D1*
+X13230D2*
+X20930D1*
+X28491D2*
+X33039D1*
+X4337Y19088D2*
+X8277D1*
+X8937D2*
+X9297D1*
+X10206D2*
+X10387D1*
+X11296D2*
+X11476D1*
+X12386D2*
+X12566D1*
+X13480D2*
+X33039D1*
+X4337Y18840D2*
+X8277D1*
+X8937D2*
+X9547D1*
+X10456D2*
+X10637D1*
+X11546D2*
+X11726D1*
+X12636D2*
+X12816D1*
+X13726D2*
+X33039D1*
+X4337Y18591D2*
+X8277D1*
+X8937D2*
+X9793D1*
+X10702D2*
+X10883D1*
+X11796D2*
+X11976D1*
+X12886D2*
+X13066D1*
+X13976D2*
+X33039D1*
+X4337Y18342D2*
+X8277D1*
+X8937D2*
+X10043D1*
+X10952D2*
+X11133D1*
+X12042D2*
+X12223D1*
+X13132D2*
+X13312D1*
+X14226D2*
+X33039D1*
+X4337Y18094D2*
+X8277D1*
+X8937D2*
+X10293D1*
+X11202D2*
+X11383D1*
+X12292D2*
+X12473D1*
+X13382D2*
+X13562D1*
+X14472D2*
+X33039D1*
+X4337Y17845D2*
+X8277D1*
+X8937D2*
+X10539D1*
+X11448D2*
+X11629D1*
+X12542D2*
+X12723D1*
+X13632D2*
+X13812D1*
+X14722D2*
+X33039D1*
+X4337Y17596D2*
+X8277D1*
+X8937D2*
+X10789D1*
+X11698D2*
+X11879D1*
+X12788D2*
+X12969D1*
+X13878D2*
+X14058D1*
+X14972D2*
+X33039D1*
+X4337Y17347D2*
+X8277D1*
+X8937D2*
+X11035D1*
+X11948D2*
+X12129D1*
+X13038D2*
+X13219D1*
+X14128D2*
+X14308D1*
+X15218D2*
+X33039D1*
+X4337Y17099D2*
+X8277D1*
+X8937D2*
+X11285D1*
+X12194D2*
+X12375D1*
+X13288D2*
+X13469D1*
+X14378D2*
+X14558D1*
+X15468D2*
+X21191D1*
+X23933D2*
+X24930D1*
+X27675D2*
+X33039D1*
+X4337Y16850D2*
+X8277D1*
+X8937D2*
+X11535D1*
+X12444D2*
+X12625D1*
+X13534D2*
+X13715D1*
+X14624D2*
+X14805D1*
+X15718D2*
+X21098D1*
+X23933D2*
+X24930D1*
+X27823D2*
+X33039D1*
+X4337Y16601D2*
+X8277D1*
+X8937D2*
+X11781D1*
+X12694D2*
+X12875D1*
+X13784D2*
+X13965D1*
+X14874D2*
+X15055D1*
+X15964D2*
+X21051D1*
+X23933D2*
+X24930D1*
+X27870D2*
+X33039D1*
+X7042Y16353D2*
+X8277D1*
+X8937D2*
+X12031D1*
+X12941D2*
+X13121D1*
+X14034D2*
+X14215D1*
+X15124D2*
+X15305D1*
+X16214D2*
+X21051D1*
+X23933D2*
+X24930D1*
+X27870D2*
+X33039D1*
+X7042Y16104D2*
+X8277D1*
+X8937D2*
+X12281D1*
+X13191D2*
+X13371D1*
+X14280D2*
+X14461D1*
+X15370D2*
+X15551D1*
+X16464D2*
+X21051D1*
+X23933D2*
+X24930D1*
+X27870D2*
+X33039D1*
+X7042Y15855D2*
+X8277D1*
+X8937D2*
+X12527D1*
+X13441D2*
+X13621D1*
+X14530D2*
+X14711D1*
+X15620D2*
+X15801D1*
+X16710D2*
+X21051D1*
+X21710D2*
+X26258D1*
+X27870D2*
+X33039D1*
+X5073Y15607D2*
+X6164D1*
+X6983D2*
+X8277D1*
+X8937D2*
+X12777D1*
+X13687D2*
+X13867D1*
+X14780D2*
+X14961D1*
+X15870D2*
+X16051D1*
+X16960D2*
+X21051D1*
+X22280D2*
+X25414D1*
+X27733D2*
+X33039D1*
+X4337Y15358D2*
+X6391D1*
+X6757D2*
+X8277D1*
+X8937D2*
+X13027D1*
+X13937D2*
+X14117D1*
+X15026D2*
+X15207D1*
+X16116D2*
+X16297D1*
+X17210D2*
+X21144D1*
+X22280D2*
+X25238D1*
+X27030D2*
+X31453D1*
+X31733D2*
+X33039D1*
+X4337Y15109D2*
+X8277D1*
+X8937D2*
+X13273D1*
+X14187D2*
+X14367D1*
+X15276D2*
+X15457D1*
+X16366D2*
+X16547D1*
+X17456D2*
+X21344D1*
+X25890D2*
+X26094D1*
+X27030D2*
+X31164D1*
+X32023D2*
+X33039D1*
+X4337Y14861D2*
+X8277D1*
+X8937D2*
+X13523D1*
+X14433D2*
+X14613D1*
+X15526D2*
+X15703D1*
+X25890D2*
+X31133D1*
+X32054D2*
+X33039D1*
+X4337Y14612D2*
+X8277D1*
+X8937D2*
+X13773D1*
+X14683D2*
+X14863D1*
+X15773D2*
+X15953D1*
+X25948D2*
+X29828D1*
+X31925D2*
+X33039D1*
+X4337Y14363D2*
+X8277D1*
+X8937D2*
+X14019D1*
+X14933D2*
+X15113D1*
+X25948D2*
+X28332D1*
+X31312D2*
+X33039D1*
+X4337Y14115D2*
+X8277D1*
+X8937D2*
+X14269D1*
+X15179D2*
+X15359D1*
+X25948D2*
+X26883D1*
+X27741D2*
+X28016D1*
+X31312D2*
+X33039D1*
+X4337Y13866D2*
+X8277D1*
+X8937D2*
+X14519D1*
+X31312D2*
+X33039D1*
+X4337Y13617D2*
+X8277D1*
+X8937D2*
+X13586D1*
+X31761D2*
+X33039D1*
+X4337Y13368D2*
+X8277D1*
+X8937D2*
+X13457D1*
+X23429D2*
+X24262D1*
+X32026D2*
+X33039D1*
+X4337Y13120D2*
+X8277D1*
+X23429D2*
+X25098D1*
+X32054D2*
+X33039D1*
+X4337Y12871D2*
+X7367D1*
+X23429D2*
+X25488D1*
+X29358D2*
+X31273D1*
+X31913D2*
+X33039D1*
+X4337Y12622D2*
+X7183D1*
+X23429D2*
+X25488D1*
+X28437D2*
+X28664D1*
+X29358D2*
+X33039D1*
+X4337Y12374D2*
+X7176D1*
+X8355D2*
+X12918D1*
+X13460D2*
+X22183D1*
+X23429D2*
+X25488D1*
+X26737D2*
+X26887D1*
+X27741D2*
+X28664D1*
+X29358D2*
+X33039D1*
+X5073Y12125D2*
+X7176D1*
+X23429D2*
+X25422D1*
+X27741D2*
+X28664D1*
+X29358D2*
+X33039D1*
+X7042Y11876D2*
+X7176D1*
+X23429D2*
+X24891D1*
+X27741D2*
+X28664D1*
+X29358D2*
+X33039D1*
+X7042Y11628D2*
+X7176D1*
+X7835D2*
+X8754D1*
+X23429D2*
+X23937D1*
+X24667D2*
+X24820D1*
+X27741D2*
+X28664D1*
+X29358D2*
+X32226D1*
+X5073Y11379D2*
+X5594D1*
+X7042D2*
+X7176D1*
+X7835D2*
+X8976D1*
+X9355D2*
+X9832D1*
+X27069D2*
+X27594D1*
+X30417D2*
+X32226D1*
+X4337Y11130D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X7835D2*
+X9965D1*
+X26937D2*
+X27594D1*
+X30417D2*
+X32226D1*
+X4337Y10882D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X7835D2*
+X22969D1*
+X25948D2*
+X27594D1*
+X30417D2*
+X32226D1*
+X4337Y10633D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X7835D2*
+X22969D1*
+X25948D2*
+X27734D1*
+X30417D2*
+X32226D1*
+X4337Y10384D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X7835D2*
+X8164D1*
+X4337Y10135D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X4337Y9887D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X25261D2*
+X33039D1*
+X4337Y9638D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X25261D2*
+X33039D1*
+X4337Y9389D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X28792D2*
+X33039D1*
+X4337Y9141D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X29476D2*
+X33039D1*
+X4337Y8892D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X13023D2*
+X19961D1*
+X29648D2*
+X33039D1*
+X4337Y8643D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X13058D2*
+X19961D1*
+X20620D2*
+X21898D1*
+X29683D2*
+X33039D1*
+X4337Y8395D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X12983D2*
+X19961D1*
+X20620D2*
+X21973D1*
+X29608D2*
+X33039D1*
+X4337Y8146D2*
+X6246D1*
+X6901D2*
+X7176D1*
+X10534D2*
+X11066D1*
+X12714D2*
+X19961D1*
+X20620D2*
+X21793D1*
+X29339D2*
+X33039D1*
+X4337Y7897D2*
+X6246D1*
+X6901D2*
+X7293D1*
+X10233D2*
+X11367D1*
+X12417D2*
+X19961D1*
+X20620D2*
+X21449D1*
+X29042D2*
+X33039D1*
+X4337Y7649D2*
+X6246D1*
+X6901D2*
+X8004D1*
+X10327D2*
+X11273D1*
+X12507D2*
+X19961D1*
+X20620D2*
+X21355D1*
+X29132D2*
+X33039D1*
+X4337Y7400D2*
+X6246D1*
+X6901D2*
+X8023D1*
+X10308D2*
+X11293D1*
+X12491D2*
+X19961D1*
+X20620D2*
+X21375D1*
+X29116D2*
+X33039D1*
+X4337Y7151D2*
+X6246D1*
+X20620D2*
+X21519D1*
+X22425D2*
+X22613D1*
+X23515D2*
+X23703D1*
+X24608D2*
+X24793D1*
+X25698D2*
+X25883D1*
+X26788D2*
+X26973D1*
+X27878D2*
+X28066D1*
+X28968D2*
+X33039D1*
+X4337Y6903D2*
+X6269D1*
+X20597D2*
+X33039D1*
+X4337Y6654D2*
+X6492D1*
+X20374D2*
+X33039D1*
+X4337Y6405D2*
+X33039D1*
+X4337Y6156D2*
+X33039D1*
+X4337Y5908D2*
+X33039D1*
+X4337Y5659D2*
+X33039D1*
+X4337Y5410D2*
+X33039D1*
+X4337Y5162D2*
+X33039D1*
+X4337Y4913D2*
+X33039D1*
+X4337Y4664D2*
+X33039D1*
+X4337Y4416D2*
+X33039D1*
+X27034Y12379D2*
+X27715D1*
+Y11495D1*
+X27039D1*
+X27047Y11431D1*
+X27028Y11308D1*
+X26972Y11197D1*
+X26885Y11108D1*
+X26775Y11050D1*
+X26652Y11028D1*
+X26529Y11045D1*
+X26463Y11068D1*
+X25928D1*
+X25925Y10616D1*
+X27761Y10617D1*
+X27754Y10660D1*
+X27620D1*
+Y11466D1*
+X28504Y11462D1*
+X28690Y11466D1*
+X28687Y12688D1*
+Y12926D1*
+X28581Y12901D1*
+X28544Y12770D1*
+X28495Y12706D1*
+X28357Y12568D1*
+X28249Y12500D1*
+X28142Y12479D1*
+X27048Y12476D1*
+X26978Y12424D1*
+X26913Y12397D1*
+X26833Y12387D1*
+X26712D1*
+X26709Y12328D1*
+X26795Y12243D1*
+X26909Y12245D1*
+Y12379D1*
+X27034D1*
+Y14129D2*
+X27715D1*
+Y14008D1*
+X27840Y14063D1*
+X27961Y14089D1*
+X28019Y14083D1*
+X28064Y14142D1*
+X28202Y14280D1*
+X28310Y14349D1*
+X28417Y14369D1*
+X29851D1*
+X29852Y14743D1*
+X31192D1*
+X31173Y14795D1*
+X31152Y14917D1*
+X31165Y15041D1*
+X31213Y15156D1*
+X31291Y15254D1*
+X31393Y15325D1*
+X31511Y15366D1*
+X31635Y15371D1*
+X31756Y15342D1*
+X31865Y15281D1*
+X31951Y15191D1*
+X32009Y15081D1*
+X32036Y14931D1*
+X32018Y14808D1*
+X31967Y14694D1*
+X31886Y14600D1*
+X31782Y14531D1*
+X31663Y14495D1*
+X31538Y14493D1*
+X31418Y14526D1*
+X31309Y14594D1*
+X31288Y14493D1*
+X31284Y14017D1*
+X31288Y13613D1*
+X31291Y13521D1*
+X31393Y13593D1*
+X31511Y13633D1*
+X31635Y13639D1*
+X31756Y13610D1*
+X31865Y13548D1*
+X31951Y13459D1*
+X32009Y13349D1*
+X32036Y13199D1*
+X32018Y13076D1*
+X31967Y12962D1*
+X31886Y12867D1*
+X31782Y12799D1*
+X31663Y12762D1*
+X31538Y12760D1*
+X31418Y12793D1*
+X31312Y12858D1*
+X31228Y12951D1*
+X31172Y13066D1*
+X31038Y13072D1*
+X29852D1*
+Y13115D1*
+X29445Y13111D1*
+X29332D1*
+X29335Y12560D1*
+Y11392D1*
+X30392Y11393D1*
+Y10615D1*
+X32511Y10617D1*
+X32497Y10628D1*
+X32252D1*
+Y11748D1*
+X33061D1*
+X33062Y24062D1*
+X4312D1*
+Y16527D1*
+X4824Y16524D1*
+X5050D1*
+Y16364D1*
+X5622Y16366D1*
+X5620Y16465D1*
+X6504Y16461D1*
+X6757Y16465D1*
+X7016D1*
+Y15659D1*
+X6973D1*
+X6957Y15604D1*
+X6901Y15493D1*
+X6814Y15404D1*
+X6704Y15346D1*
+X6581Y15325D1*
+X6458Y15342D1*
+X6346Y15395D1*
+X6255Y15481D1*
+X6195Y15590D1*
+X6181Y15663D1*
+X6132D1*
+X5879Y15659D1*
+X5620D1*
+Y15757D1*
+X5051Y15758D1*
+X5050Y15600D1*
+X4312D1*
+Y12152D1*
+X4824Y12149D1*
+X5050D1*
+Y11989D1*
+X5622Y11991D1*
+X5620Y12090D1*
+X6504Y12086D1*
+X6757Y12090D1*
+X7016D1*
+Y11284D1*
+X6879D1*
+X6878Y7191D1*
+X8153Y7192D1*
+X8075Y7324D1*
+X8036Y7442D1*
+X8022Y7566D1*
+X8036Y7694D1*
+X7644Y7696D1*
+X7519Y7723D1*
+X7428Y7785D1*
+X7291Y7923D1*
+X7222Y8030D1*
+X7202Y8138D1*
+Y12553D1*
+X7229Y12678D1*
+X7291Y12768D1*
+X7428Y12906D1*
+X7536Y12975D1*
+X7644Y12995D1*
+X8343D1*
+X8314Y13064D1*
+X8303Y13144D1*
+Y19140D1*
+X8126Y19093D1*
+X8001D1*
+X7879Y19118D1*
+X7765Y19169D1*
+X7663Y19242D1*
+X7580Y19334D1*
+X7517Y19442D1*
+X7478Y19561D1*
+X7464Y19685D1*
+X7477Y19809D1*
+X7515Y19928D1*
+X7577Y20036D1*
+X7660Y20129D1*
+X7760Y20203D1*
+X7874Y20254D1*
+X7996Y20281D1*
+X8121Y20282D1*
+X8243Y20257D1*
+X8304Y20230D1*
+X8303Y20288D1*
+X8209Y20360D1*
+X8125Y20452D1*
+X8062Y20560D1*
+X8023Y20679D1*
+X8010Y20803D1*
+X8022Y20927D1*
+X8060Y21046D1*
+X8122Y21154D1*
+X8205Y21247D1*
+X8306Y21321D1*
+X8419Y21372D1*
+X8541Y21399D1*
+X8666Y21400D1*
+X8788Y21375D1*
+X8903Y21325D1*
+X9004Y21252D1*
+X9088Y21160D1*
+X9151Y21052D1*
+X9191Y20934D1*
+X9205Y20805D1*
+X9192Y20681D1*
+X9153Y20562D1*
+X9091Y20454D1*
+X9008Y20361D1*
+X8910Y20290D1*
+X8965Y20254D1*
+X9087Y20281D1*
+X9211Y20282D1*
+X9334Y20257D1*
+X9448Y20207D1*
+X9549Y20134D1*
+X9633Y20042D1*
+X9698Y19930D1*
+X9758Y20036D1*
+X9841Y20129D1*
+X9942Y20203D1*
+X10055Y20254D1*
+X10177Y20281D1*
+X10302Y20282D1*
+X10424Y20257D1*
+X10538Y20207D1*
+X10640Y20134D1*
+X10724Y20042D1*
+X10788Y19930D1*
+X10849Y20036D1*
+X10932Y20129D1*
+X11032Y20203D1*
+X11146Y20254D1*
+X11268Y20281D1*
+X11392Y20282D1*
+X11515Y20257D1*
+X11629Y20207D1*
+X11730Y20134D1*
+X11828Y20018D1*
+X11827Y20210D1*
+X11696Y20236D1*
+X11582Y20287D1*
+X11480Y20360D1*
+X11397Y20452D1*
+X11333Y20564D1*
+X11272Y20454D1*
+X11189Y20361D1*
+X11088Y20288D1*
+X10974Y20237D1*
+X10852Y20211D1*
+X10727D1*
+X10605Y20236D1*
+X10491Y20287D1*
+X10390Y20360D1*
+X10306Y20452D1*
+X10243Y20560D1*
+X10204Y20679D1*
+X10191Y20803D1*
+X10203Y20927D1*
+X10241Y21046D1*
+X10303Y21154D1*
+X10386Y21247D1*
+X10487Y21321D1*
+X10601Y21372D1*
+X10722Y21399D1*
+X10847Y21400D1*
+X10969Y21375D1*
+X11084Y21325D1*
+X11185Y21252D1*
+X11269Y21160D1*
+X11334Y21049D1*
+X11394Y21154D1*
+X11477Y21247D1*
+X11577Y21321D1*
+X11691Y21372D1*
+X11813Y21399D1*
+X11938Y21400D1*
+X12060Y21375D1*
+X12174Y21325D1*
+X12276Y21252D1*
+X12360Y21160D1*
+X12423Y21052D1*
+X12462Y20934D1*
+X12477Y20805D1*
+X12464Y20681D1*
+X12425Y20562D1*
+X12363Y20454D1*
+X12279Y20361D1*
+X12168Y20283D1*
+X13022Y20285D1*
+Y19523D1*
+X14761Y17781D1*
+X17481Y15060D1*
+X21373Y15062D1*
+X21368Y15173D1*
+X21304Y15222D1*
+X21166Y15360D1*
+X21097Y15467D1*
+X21077Y15575D1*
+Y16687D1*
+X21102Y16809D1*
+X21194Y16926D1*
+X21214Y17028D1*
+Y17346D1*
+X23910D1*
+Y16028D1*
+X21687D1*
+X21685Y15839D1*
+X22254Y15840D1*
+Y15203D1*
+X23200Y15200D1*
+X25109D1*
+X25234Y15172D1*
+X25258Y15187D1*
+Y15299D1*
+X25285Y15424D1*
+X25347Y15514D1*
+X25485Y15652D1*
+X25592Y15721D1*
+X25700Y15741D1*
+X26118D1*
+X26120Y15840D1*
+X26280D1*
+X26355Y15955D1*
+X26485Y16026D1*
+X24955Y16028D1*
+Y17346D1*
+X27650D1*
+Y16975D1*
+X27765Y16894D1*
+X27836Y16767D1*
+X27847Y16687D1*
+Y15870D1*
+X27819Y15745D1*
+X27757Y15655D1*
+X27620Y15517D1*
+X27512Y15448D1*
+X27405Y15428D1*
+X27002D1*
+X27004Y15034D1*
+X26120D1*
+Y15132D1*
+X25863Y15133D1*
+X25866Y14787D1*
+X25925D1*
+Y14001D1*
+X26588Y13999D1*
+X26676Y14011D1*
+X26907D1*
+X26909Y14129D1*
+X27034D1*
+X5050Y11379D2*
+Y11225D1*
+X4312D1*
+Y4312D1*
+X33062D1*
+Y10136D1*
+X33019Y10090D1*
+X32909Y10025D1*
+X32812Y10009D1*
+X25624D1*
+X25499Y10036D1*
+X25424Y10083D1*
+X25310Y10205D1*
+X25281Y10258D1*
+X25236Y10255D1*
+Y9423D1*
+X28631Y9422D1*
+X28756Y9395D1*
+X28846Y9333D1*
+X28915Y9264D1*
+X28996Y9281D1*
+X29121Y9282D1*
+X29243Y9257D1*
+X29357Y9207D1*
+X29459Y9134D1*
+X29543Y9042D1*
+X29606Y8934D1*
+X29646Y8816D1*
+X29660Y8687D1*
+X29647Y8563D1*
+X29608Y8444D1*
+X29546Y8336D1*
+X29462Y8243D1*
+X29362Y8170D1*
+X29248Y8119D1*
+X29126Y8093D1*
+X29001D1*
+X28879Y8118D1*
+X28765Y8169D1*
+X28663Y8242D1*
+X28580Y8334D1*
+X28516Y8446D1*
+X28455Y8336D1*
+X28372Y8243D1*
+X28271Y8170D1*
+X28157Y8119D1*
+X28035Y8093D1*
+X27910D1*
+X27788Y8118D1*
+X27674Y8169D1*
+X27573Y8242D1*
+X27489Y8334D1*
+X27425Y8446D1*
+X27365Y8336D1*
+X27281Y8243D1*
+X27180Y8170D1*
+X27066Y8119D1*
+X26944Y8093D1*
+X26820D1*
+X26698Y8118D1*
+X26584Y8169D1*
+X26482Y8242D1*
+X26399Y8334D1*
+X26335Y8446D1*
+X26274Y8336D1*
+X26191Y8243D1*
+X26090Y8170D1*
+X25976Y8119D1*
+X25854Y8093D1*
+X25729D1*
+X25607Y8118D1*
+X25493Y8169D1*
+X25392Y8242D1*
+X25308Y8334D1*
+X25244Y8446D1*
+X25184Y8336D1*
+X25100Y8243D1*
+X24999Y8170D1*
+X24885Y8119D1*
+X24763Y8093D1*
+X24639D1*
+X24517Y8118D1*
+X24402Y8169D1*
+X24301Y8242D1*
+X24217Y8334D1*
+X24154Y8446D1*
+X24093Y8336D1*
+X24010Y8243D1*
+X23909Y8170D1*
+X23795Y8119D1*
+X23673Y8093D1*
+X23548D1*
+X23426Y8118D1*
+X23312Y8169D1*
+X23211Y8242D1*
+X23127Y8334D1*
+X23063Y8446D1*
+X23002Y8336D1*
+X22919Y8243D1*
+X22818Y8170D1*
+X22704Y8119D1*
+X22582Y8093D1*
+X22458D1*
+X22335Y8118D1*
+X22221Y8169D1*
+X22120Y8242D1*
+X22036Y8334D1*
+X21974Y8442D1*
+X21935Y8561D1*
+X21921Y8685D1*
+X21934Y8809D1*
+X21954Y8872D1*
+X20593Y8873D1*
+X20596Y8164D1*
+Y7026D1*
+X20569Y6901D1*
+X20507Y6810D1*
+X20369Y6673D1*
+X20262Y6604D1*
+X20154Y6584D1*
+X6712D1*
+X6587Y6611D1*
+X6496Y6673D1*
+X6359Y6810D1*
+X6290Y6918D1*
+X6270Y7026D1*
+X6266Y11284D1*
+X6132Y11288D1*
+X5879Y11284D1*
+X5620D1*
+Y11382D1*
+X5051Y11383D1*
+X7809Y9285D2*
+X7942D1*
+Y10014D1*
+X7969Y10139D1*
+X8031Y10229D1*
+X8169Y10367D1*
+X8276Y10435D1*
+X8384Y10456D1*
+X22997D1*
+X22994Y11066D1*
+X22207Y11068D1*
+Y11126D1*
+X10521Y11127D1*
+X10386Y11050D1*
+X10263Y11028D1*
+X10140Y11045D1*
+X10028Y11099D1*
+X9937Y11185D1*
+X9877Y11294D1*
+X9853Y11416D1*
+X9857Y11443D1*
+X9427Y11442D1*
+X9296Y11365D1*
+X9173Y11343D1*
+X9050Y11360D1*
+X8937Y11414D1*
+X8847Y11500D1*
+X8787Y11609D1*
+X8763Y11731D1*
+X8766Y11758D1*
+X8341Y11757D1*
+X8205Y11680D1*
+X8082Y11658D1*
+X7959Y11675D1*
+X7847Y11729D1*
+X7810Y11764D1*
+Y9284D1*
+X9709Y8441D2*
+X9649Y8336D1*
+X9566Y8243D1*
+X9506Y8200D1*
+X9645Y8163D1*
+X9769Y8164D1*
+X9892Y8138D1*
+X10006Y8088D1*
+X10107Y8016D1*
+X10192Y7924D1*
+X10255Y7816D1*
+X10294Y7698D1*
+X10308Y7569D1*
+X10295Y7445D1*
+X10257Y7326D1*
+X10171Y7192D1*
+X11426D1*
+X11347Y7324D1*
+X11308Y7442D1*
+X11294Y7566D1*
+X11307Y7691D1*
+X11345Y7809D1*
+X11407Y7918D1*
+X11490Y8011D1*
+X11587Y8083D1*
+X11532Y8119D1*
+X11410Y8093D1*
+X11285D1*
+X11163Y8118D1*
+X11049Y8169D1*
+X10948Y8242D1*
+X10864Y8334D1*
+X10800Y8446D1*
+X10740Y8336D1*
+X10656Y8243D1*
+X10555Y8170D1*
+X10441Y8119D1*
+X10319Y8093D1*
+X10195D1*
+X10073Y8118D1*
+X9958Y8169D1*
+X9857Y8242D1*
+X9774Y8334D1*
+X9710Y8446D1*
+X13022Y8563D2*
+X12983Y8444D1*
+X12921Y8336D1*
+X12837Y8243D1*
+X12736Y8170D1*
+X12623Y8119D1*
+X12501Y8093D1*
+X12376D1*
+X12254Y8118D1*
+X12193Y8145D1*
+X12288Y8016D1*
+X12373Y7924D1*
+X12436Y7816D1*
+X12475Y7698D1*
+X12489Y7569D1*
+X12476Y7445D1*
+X12438Y7326D1*
+X12352Y7192D1*
+X19989D1*
+X19988Y9014D1*
+X19599Y9011D1*
+X12939D1*
+X12981Y8934D1*
+X13021Y8816D1*
+X13035Y8687D1*
+X13022Y8563D1*
+X22518Y7323D2*
+X22457Y7218D1*
+X22374Y7125D1*
+X22273Y7052D1*
+X22159Y7001D1*
+X22037Y6975D1*
+X21912Y6974D1*
+X21790Y7000D1*
+X21676Y7051D1*
+X21575Y7124D1*
+X21491Y7216D1*
+X21428Y7324D1*
+X21389Y7442D1*
+X21376Y7566D1*
+X21388Y7691D1*
+X21426Y7809D1*
+X21488Y7918D1*
+X21571Y8011D1*
+X21672Y8085D1*
+X21786Y8136D1*
+X21907Y8163D1*
+X22032Y8164D1*
+X22154Y8138D1*
+X22269Y8088D1*
+X22370Y8016D1*
+X22454Y7924D1*
+X22519Y7812D1*
+X22579Y7918D1*
+X22662Y8011D1*
+X22762Y8085D1*
+X22876Y8136D1*
+X22998Y8163D1*
+X23123Y8164D1*
+X23245Y8138D1*
+X23359Y8088D1*
+X23461Y8016D1*
+X23545Y7924D1*
+X23609Y7812D1*
+X23669Y7918D1*
+X23752Y8011D1*
+X23853Y8085D1*
+X23967Y8136D1*
+X24089Y8163D1*
+X24213Y8164D1*
+X24336Y8138D1*
+X24450Y8088D1*
+X24551Y8016D1*
+X24635Y7924D1*
+X24700Y7812D1*
+X24760Y7918D1*
+X24843Y8011D1*
+X24944Y8085D1*
+X25057Y8136D1*
+X25179Y8163D1*
+X25304Y8164D1*
+X25426Y8138D1*
+X25540Y8088D1*
+X25642Y8016D1*
+X25726Y7924D1*
+X25790Y7812D1*
+X25850Y7918D1*
+X25933Y8011D1*
+X26034Y8085D1*
+X26148Y8136D1*
+X26270Y8163D1*
+X26394Y8164D1*
+X26517Y8138D1*
+X26631Y8088D1*
+X26732Y8016D1*
+X26817Y7924D1*
+X26881Y7812D1*
+X26941Y7918D1*
+X27024Y8011D1*
+X27125Y8085D1*
+X27238Y8136D1*
+X27360Y8163D1*
+X27485Y8164D1*
+X27607Y8138D1*
+X27721Y8088D1*
+X27823Y8016D1*
+X27907Y7924D1*
+X27971Y7812D1*
+X28032Y7918D1*
+X28115Y8011D1*
+X28215Y8085D1*
+X28329Y8136D1*
+X28451Y8163D1*
+X28576Y8164D1*
+X28698Y8138D1*
+X28812Y8088D1*
+X28913Y8016D1*
+X28998Y7924D1*
+X29061Y7816D1*
+X29100Y7698D1*
+X29114Y7569D1*
+X29101Y7445D1*
+X29063Y7326D1*
+X29000Y7218D1*
+X28917Y7125D1*
+X28816Y7052D1*
+X28702Y7001D1*
+X28580Y6975D1*
+X28456Y6974D1*
+X28333Y7000D1*
+X28219Y7051D1*
+X28118Y7124D1*
+X28034Y7216D1*
+X27970Y7328D1*
+X27910Y7218D1*
+X27827Y7125D1*
+X27726Y7052D1*
+X27612Y7001D1*
+X27490Y6975D1*
+X27365Y6974D1*
+X27243Y7000D1*
+X27129Y7051D1*
+X27028Y7124D1*
+X26944Y7216D1*
+X26880Y7328D1*
+X26819Y7218D1*
+X26736Y7125D1*
+X26635Y7052D1*
+X26521Y7001D1*
+X26399Y6975D1*
+X26274Y6974D1*
+X26152Y7000D1*
+X26038Y7051D1*
+X25937Y7124D1*
+X25853Y7216D1*
+X25789Y7328D1*
+X25729Y7218D1*
+X25645Y7125D1*
+X25545Y7052D1*
+X25431Y7001D1*
+X25309Y6975D1*
+X25184Y6974D1*
+X25062Y7000D1*
+X24948Y7051D1*
+X24847Y7124D1*
+X24763Y7216D1*
+X24699Y7328D1*
+X24638Y7218D1*
+X24555Y7125D1*
+X24454Y7052D1*
+X24340Y7001D1*
+X24218Y6975D1*
+X24093Y6974D1*
+X23971Y7000D1*
+X23857Y7051D1*
+X23756Y7124D1*
+X23672Y7216D1*
+X23608Y7328D1*
+X23548Y7218D1*
+X23464Y7125D1*
+X23363Y7052D1*
+X23250Y7001D1*
+X23128Y6975D1*
+X23003Y6974D1*
+X22881Y7000D1*
+X22767Y7051D1*
+X22665Y7124D1*
+X22582Y7216D1*
+X22518Y7328D1*
+X28565Y19563D2*
+X28526Y19444D1*
+X28464Y19336D1*
+X28381Y19243D1*
+X28280Y19170D1*
+X28166Y19119D1*
+X28044Y19093D1*
+X27919D1*
+X27797Y19118D1*
+X27683Y19169D1*
+X27582Y19242D1*
+X27498Y19334D1*
+X27434Y19446D1*
+X27374Y19336D1*
+X27290Y19243D1*
+X27189Y19170D1*
+X27075Y19119D1*
+X26953Y19093D1*
+X26829D1*
+X26706Y19118D1*
+X26592Y19169D1*
+X26491Y19242D1*
+X26407Y19334D1*
+X26343Y19446D1*
+X26283Y19336D1*
+X26200Y19243D1*
+X26099Y19170D1*
+X25985Y19119D1*
+X25863Y19093D1*
+X25738D1*
+X25616Y19118D1*
+X25502Y19169D1*
+X25401Y19242D1*
+X25317Y19334D1*
+X25253Y19446D1*
+X25192Y19336D1*
+X25109Y19243D1*
+X25008Y19170D1*
+X24894Y19119D1*
+X24772Y19093D1*
+X24647D1*
+X24525Y19118D1*
+X24411Y19169D1*
+X24310Y19242D1*
+X24226Y19334D1*
+X24162Y19446D1*
+X24102Y19336D1*
+X24018Y19243D1*
+X23918Y19170D1*
+X23804Y19119D1*
+X23682Y19093D1*
+X23557D1*
+X23435Y19118D1*
+X23321Y19169D1*
+X23220Y19242D1*
+X23136Y19334D1*
+X23072Y19446D1*
+X23011Y19336D1*
+X22928Y19243D1*
+X22827Y19170D1*
+X22713Y19119D1*
+X22591Y19093D1*
+X22466D1*
+X22344Y19118D1*
+X22230Y19169D1*
+X22129Y19242D1*
+X22045Y19334D1*
+X21981Y19446D1*
+X21921Y19336D1*
+X21837Y19243D1*
+X21736Y19170D1*
+X21623Y19119D1*
+X21501Y19093D1*
+X21376D1*
+X21254Y19118D1*
+X21140Y19169D1*
+X21038Y19242D1*
+X20955Y19334D1*
+X20892Y19442D1*
+X20853Y19561D1*
+X20839Y19685D1*
+X20852Y19809D1*
+X20890Y19928D1*
+X20952Y20036D1*
+X21035Y20129D1*
+X21135Y20203D1*
+X21249Y20254D1*
+X21371Y20281D1*
+X21496Y20282D1*
+X21618Y20257D1*
+X21732Y20207D1*
+X21834Y20134D1*
+X21918Y20042D1*
+X21982Y19930D1*
+X22042Y20036D1*
+X22125Y20129D1*
+X22226Y20203D1*
+X22340Y20254D1*
+X22462Y20281D1*
+X22586Y20282D1*
+X22709Y20257D1*
+X22823Y20207D1*
+X22924Y20134D1*
+X23008Y20042D1*
+X23073Y19930D1*
+X23133Y20036D1*
+X23216Y20129D1*
+X23317Y20203D1*
+X23430Y20254D1*
+X23552Y20281D1*
+X23677Y20282D1*
+X23799Y20257D1*
+X23913Y20207D1*
+X24015Y20134D1*
+X24099Y20042D1*
+X24163Y19930D1*
+X24223Y20036D1*
+X24307Y20129D1*
+X24407Y20203D1*
+X24521Y20254D1*
+X24643Y20281D1*
+X24767Y20282D1*
+X24890Y20257D1*
+X25004Y20207D1*
+X25105Y20134D1*
+X25190Y20042D1*
+X25254Y19930D1*
+X25314Y20036D1*
+X25397Y20129D1*
+X25498Y20203D1*
+X25611Y20254D1*
+X25733Y20281D1*
+X25858Y20282D1*
+X25980Y20257D1*
+X26095Y20207D1*
+X26196Y20134D1*
+X26280Y20042D1*
+X26345Y19930D1*
+X26405Y20036D1*
+X26488Y20129D1*
+X26588Y20203D1*
+X26702Y20254D1*
+X26824Y20281D1*
+X26949Y20282D1*
+X27071Y20257D1*
+X27185Y20207D1*
+X27287Y20134D1*
+X27371Y20042D1*
+X27435Y19930D1*
+X27495Y20036D1*
+X27578Y20129D1*
+X27679Y20203D1*
+X27792Y20254D1*
+X27914Y20281D1*
+X28039Y20282D1*
+X28161Y20257D1*
+X28276Y20207D1*
+X28377Y20134D1*
+X28461Y20042D1*
+X28524Y19934D1*
+X28564Y19816D1*
+X28578Y19687D1*
+X28565Y19563D1*
+X29110Y20681D2*
+X29072Y20562D1*
+X29009Y20454D1*
+X28926Y20361D1*
+X28825Y20288D1*
+X28711Y20237D1*
+X28589Y20211D1*
+X28464D1*
+X28342Y20236D1*
+X28228Y20287D1*
+X28127Y20360D1*
+X28043Y20452D1*
+X27979Y20564D1*
+X27919Y20454D1*
+X27835Y20361D1*
+X27735Y20288D1*
+X27621Y20237D1*
+X27499Y20211D1*
+X27374D1*
+X27252Y20236D1*
+X27138Y20287D1*
+X27036Y20360D1*
+X26953Y20452D1*
+X26889Y20564D1*
+X26828Y20454D1*
+X26745Y20361D1*
+X26644Y20288D1*
+X26530Y20237D1*
+X26408Y20211D1*
+X26283D1*
+X26161Y20236D1*
+X26047Y20287D1*
+X25946Y20360D1*
+X25862Y20452D1*
+X25798Y20564D1*
+X25738Y20454D1*
+X25654Y20361D1*
+X25553Y20288D1*
+X25440Y20237D1*
+X25318Y20211D1*
+X25193D1*
+X25071Y20236D1*
+X24957Y20287D1*
+X24855Y20360D1*
+X24772Y20452D1*
+X24708Y20564D1*
+X24647Y20454D1*
+X24564Y20361D1*
+X24463Y20288D1*
+X24349Y20237D1*
+X24227Y20211D1*
+X24102D1*
+X23980Y20236D1*
+X23866Y20287D1*
+X23765Y20360D1*
+X23681Y20452D1*
+X23617Y20564D1*
+X23557Y20454D1*
+X23473Y20361D1*
+X23372Y20288D1*
+X23258Y20237D1*
+X23136Y20211D1*
+X23012D1*
+X22890Y20236D1*
+X22775Y20287D1*
+X22674Y20360D1*
+X22590Y20452D1*
+X22527Y20564D1*
+X22466Y20454D1*
+X22383Y20361D1*
+X22282Y20288D1*
+X22168Y20237D1*
+X22046Y20211D1*
+X21921D1*
+X21799Y20236D1*
+X21685Y20287D1*
+X21584Y20360D1*
+X21500Y20452D1*
+X21437Y20560D1*
+X21398Y20679D1*
+X21385Y20803D1*
+X21397Y20927D1*
+X21435Y21046D1*
+X21497Y21154D1*
+X21580Y21247D1*
+X21681Y21321D1*
+X21794Y21372D1*
+X21916Y21399D1*
+X22041Y21400D1*
+X22163Y21375D1*
+X22278Y21325D1*
+X22379Y21252D1*
+X22463Y21160D1*
+X22528Y21049D1*
+X22588Y21154D1*
+X22671Y21247D1*
+X22771Y21321D1*
+X22885Y21372D1*
+X23007Y21399D1*
+X23132Y21400D1*
+X23254Y21375D1*
+X23368Y21325D1*
+X23470Y21252D1*
+X23554Y21160D1*
+X23618Y21049D1*
+X23678Y21154D1*
+X23761Y21247D1*
+X23862Y21321D1*
+X23975Y21372D1*
+X24097Y21399D1*
+X24222Y21400D1*
+X24344Y21375D1*
+X24459Y21325D1*
+X24560Y21252D1*
+X24644Y21160D1*
+X24709Y21049D1*
+X24769Y21154D1*
+X24852Y21247D1*
+X24952Y21321D1*
+X25066Y21372D1*
+X25188Y21399D1*
+X25313Y21400D1*
+X25435Y21375D1*
+X25549Y21325D1*
+X25651Y21252D1*
+X25735Y21160D1*
+X25799Y21049D1*
+X25859Y21154D1*
+X25942Y21247D1*
+X26043Y21321D1*
+X26157Y21372D1*
+X26278Y21399D1*
+X26403Y21400D1*
+X26525Y21375D1*
+X26640Y21325D1*
+X26741Y21252D1*
+X26825Y21160D1*
+X26890Y21049D1*
+X26950Y21154D1*
+X27033Y21247D1*
+X27133Y21321D1*
+X27247Y21372D1*
+X27369Y21399D1*
+X27494Y21400D1*
+X27616Y21375D1*
+X27730Y21325D1*
+X27832Y21252D1*
+X27916Y21160D1*
+X27980Y21049D1*
+X28040Y21154D1*
+X28123Y21247D1*
+X28224Y21321D1*
+X28338Y21372D1*
+X28460Y21399D1*
+X28584Y21400D1*
+X28707Y21375D1*
+X28821Y21325D1*
+X28922Y21252D1*
+X29006Y21160D1*
+X29070Y21052D1*
+X29109Y20934D1*
+X29123Y20805D1*
+X29110Y20681D1*
+X12588Y19089D2*
+X12362D1*
+X16529Y14922D1*
+X16756Y14924D1*
+X12589Y19092D1*
+X11477Y19110D2*
+X11397Y19093D1*
+X11269D1*
+X15869Y14491D1*
+X16097Y14493D1*
+X11482Y19109D1*
+X10387Y19110D2*
+X10307Y19093D1*
+X10178D1*
+X15331Y13939D1*
+X15567Y13940D1*
+X15351Y14149D1*
+X10393Y19107D1*
+X9296Y19110D2*
+X9216Y19093D1*
+X9091D1*
+X8969Y19118D1*
+X8909Y19145D1*
+X8912Y17930D1*
+Y13309D1*
+X13476Y13310D1*
+X13494Y13429D1*
+X13546Y13543D1*
+X13629Y13635D1*
+X13737Y13697D1*
+X13859Y13723D1*
+X13983Y13711D1*
+X14097Y13661D1*
+X14141Y13623D1*
+X14784Y13625D1*
+X9301Y19108D1*
+X25161Y13587D2*
+X25021D1*
+X25001Y13473D1*
+X24945Y13362D1*
+X24858Y13273D1*
+X24747Y13215D1*
+X24625Y13194D1*
+X24501Y13211D1*
+X24389Y13265D1*
+X24299Y13350D1*
+X24239Y13459D1*
+X24215Y13585D1*
+X23939Y13587D1*
+X23407D1*
+X23406Y12958D1*
+Y12328D1*
+Y11698D1*
+Y11481D1*
+X23909Y11479D1*
+X23914Y11520D1*
+X23966Y11633D1*
+X24050Y11725D1*
+X24158Y11787D1*
+X24279Y11813D1*
+X24403Y11801D1*
+X24518Y11752D1*
+X24611Y11670D1*
+X24675Y11563D1*
+X24696Y11476D1*
+X24882Y11479D1*
+X24845Y11633D1*
+X24859Y11757D1*
+X24911Y11870D1*
+X24995Y11962D1*
+X25103Y12024D1*
+X25224Y12050D1*
+X25306Y12042D1*
+X25437Y12122D1*
+X25517Y12139D1*
+X25514Y12424D1*
+Y12920D1*
+X25355Y12935D1*
+X25242Y12989D1*
+X25152Y13074D1*
+X25092Y13184D1*
+X25068Y13306D1*
+X25083Y13429D1*
+X25134Y13543D1*
+X25153Y13563D1*
+X24214Y13587D2*
+X23624Y13591D1*
+X23404Y13587D1*
+X23402Y13272D1*
+X23406Y12869D1*
+X23402Y12643D1*
+X23406Y12299D1*
+X23404Y11479D1*
+X23721Y11476D1*
+X23874Y11479D1*
+X13448Y12387D2*
+X13426Y12366D1*
+X22204Y12365D1*
+X22181Y12387D1*
+X13451D1*
+X12927D2*
+X8310D1*
+X8450Y12365D1*
+X12954D1*
+D16*
+X27312Y11937D3*
+Y12449D3*
+Y13687D3*
+Y14199D3*
+D17*
+X21812Y15437D3*
+X22324D3*
+X26562D3*
+X27074D3*
+D18*
+X29812Y10813D3*
+D19*
+Y9813D3*
+D21*
+X30570Y13435D3*
+Y13750D3*
+Y14065D3*
+Y14380D3*
+Y14695D3*
+D22*
+X30609Y12313D3*
+Y15817D3*
+X32775Y12313D3*
+Y15817D3*
+D23*
+X4499Y16062D3*
+Y16692D3*
+Y11687D3*
+Y12317D3*
+D24*
+X8075Y8687D3*
+D25*
+X32812Y11188D3*
+D26*
+X9165Y8687D3*
+X10256D3*
+X11346D3*
+X12437D3*
+X8620Y7569D3*
+X9711D3*
+X10801D3*
+X11892D3*
+D27*
+X5337Y8128D3*
+X15175D3*
+D24*
+X21428Y8687D3*
+D26*
+X22519D3*
+X23609D3*
+X24700D3*
+X25790D3*
+X26881D3*
+X27971D3*
+X29062D3*
+X21973Y7569D3*
+X23064D3*
+X24155D3*
+X25245D3*
+X26336D3*
+X27426D3*
+X28517D3*
+D28*
+X18686Y8128D3*
+X31804D3*
+D24*
+X29071Y19687D3*
+D26*
+X27980D3*
+X26890D3*
+X25799D3*
+X24709D3*
+X23618D3*
+X22528D3*
+X21437D3*
+X28526Y20805D3*
+X27435D3*
+X26344D3*
+X25254D3*
+X24163D3*
+X23073D3*
+X21982D3*
+D28*
+X31813Y20246D3*
+X18695D3*
+D24*
+X12424Y19687D3*
+D26*
+X11334D3*
+X10243D3*
+X9153D3*
+X8062D3*
+X11879Y20805D3*
+X10788D3*
+X9698D3*
+X8607D3*
+D27*
+X15162Y20246D3*
+X5324D3*
+D17*
+X6062Y16062D3*
+X6574D3*
+X6062Y11687D3*
+X6574D3*
+X28062Y11063D3*
+X28574D3*
+D30*
+X25562Y14187D3*
+X25247D3*
+X24932D3*
+X24617D3*
+X24302D3*
+X23987D3*
+X23672D3*
+X23357D3*
+D31*
+X22806Y13636D3*
+Y13321D3*
+Y13006D3*
+Y12691D3*
+Y12376D3*
+Y12061D3*
+Y11746D3*
+Y11431D3*
+D30*
+X23357Y10880D3*
+X23672D3*
+X23987D3*
+X24302D3*
+X24617D3*
+X24932D3*
+X25247D3*
+X25562D3*
+D31*
+X26113Y11431D3*
+Y11746D3*
+Y12061D3*
+Y12376D3*
+Y12691D3*
+Y13006D3*
+Y13321D3*
+Y13636D3*
+D33*
+X22562Y16687D3*
+X26302D3*
+M02*
diff --git a/board/TopMask.gbr b/board/TopMask.gbr index c004bf1..d94d2df 100644 --- a/board/TopMask.gbr +++ b/board/TopMask.gbr @@ -1,177 +1,177 @@ -G04 DipTrace 2.4.0.2* -%INTopMask.gbr*% -%MOIN*% -%ADD35C,0.0354*% -%ADD39R,0.2244X0.0866*% -%ADD41R,0.0748X0.0276*% -%ADD43R,0.0276X0.0748*% -%ADD45C,0.1969*% -%ADD47C,0.1953*% -%ADD49C,0.0744*% -%ADD51R,0.0669X0.0669*% -%ADD53R,0.0744X0.0744*% -%ADD55R,0.065X0.0472*% -%ADD57R,0.1063X0.0866*% -%ADD59R,0.0984X0.0276*% -%ADD61C,0.0709*% -%ADD63R,0.0709X0.0709*% -%ADD65R,0.0433X0.0354*% -%ADD67R,0.0354X0.0433*% -%FSLAX44Y44*% -G04* -G70* -G90* -G75* -G01* -%LNTopMask*% -%LPD*% -D67* -X27312Y11937D3* -Y12449D3* -Y13687D3* -Y14199D3* -D65* -X21812Y15437D3* -X22324D3* -X26562D3* -X27074D3* -D63* -X29812Y10813D3* -D61* -Y9813D3* -D59* -X30570Y13435D3* -Y13750D3* -Y14065D3* -Y14380D3* -Y14695D3* -D57* -X30609Y12313D3* -Y15817D3* -X32775Y12313D3* -Y15817D3* -D35* -X31594Y13199D3* -Y14931D3* -D55* -X4499Y16062D3* -Y16692D3* -Y11687D3* -Y12317D3* -D53* -X8075Y8687D3* -D51* -X32812Y11188D3* -D49* -X9165Y8687D3* -X10256D3* -X11346D3* -X12437D3* -X8620Y7569D3* -X9711D3* -X10801D3* -X11892D3* -D47* -X5337Y8128D3* -X15175D3* -D53* -X21428Y8687D3* -D49* -X22519D3* -X23609D3* -X24700D3* -X25790D3* -X26881D3* -X27971D3* -X29062D3* -X21973Y7569D3* -X23064D3* -X24155D3* -X25245D3* -X26336D3* -X27426D3* -X28517D3* -D45* -X18686Y8128D3* -X31804D3* -D53* -X29071Y19687D3* -D49* -X27980D3* -X26890D3* -X25799D3* -X24709D3* -X23618D3* -X22528D3* -X21437D3* -X28526Y20805D3* -X27435D3* -X26344D3* -X25254D3* -X24163D3* -X23073D3* -X21982D3* -D45* -X31813Y20246D3* -X18695D3* -D53* -X12424Y19687D3* -D49* -X11334D3* -X10243D3* -X9153D3* -X8062D3* -X11879Y20805D3* -X10788D3* -X9698D3* -X8607D3* -D47* -X15162Y20246D3* -X5324D3* -D65* -X6062Y16062D3* -X6574D3* -X6062Y11687D3* -X6574D3* -X28062Y11063D3* -X28574D3* -D43* -X25562Y14187D3* -X25247D3* -X24932D3* -X24617D3* -X24302D3* -X23987D3* -X23672D3* -X23357D3* -D41* -X22806Y13636D3* -Y13321D3* -Y13006D3* -Y12691D3* -Y12376D3* -Y12061D3* -Y11746D3* -Y11431D3* -D43* -X23357Y10880D3* -X23672D3* -X23987D3* -X24302D3* -X24617D3* -X24932D3* -X25247D3* -X25562D3* -D41* -X26113Y11431D3* -Y11746D3* -Y12061D3* -Y12376D3* -Y12691D3* -Y13006D3* -Y13321D3* -Y13636D3* -D39* -X22562Y16687D3* -X26302D3* -M02* +G04 DipTrace 2.4.0.2*
+%INTopMask.gbr*%
+%MOIN*%
+%ADD35C,0.0354*%
+%ADD39R,0.2244X0.0866*%
+%ADD41R,0.0748X0.0276*%
+%ADD43R,0.0276X0.0748*%
+%ADD45C,0.1969*%
+%ADD47C,0.1953*%
+%ADD49C,0.0744*%
+%ADD51R,0.0669X0.0669*%
+%ADD53R,0.0744X0.0744*%
+%ADD55R,0.065X0.0472*%
+%ADD57R,0.1063X0.0866*%
+%ADD59R,0.0984X0.0276*%
+%ADD61C,0.0709*%
+%ADD63R,0.0709X0.0709*%
+%ADD65R,0.0433X0.0354*%
+%ADD67R,0.0354X0.0433*%
+%FSLAX44Y44*%
+G04*
+G70*
+G90*
+G75*
+G01*
+%LNTopMask*%
+%LPD*%
+D67*
+X27312Y11937D3*
+Y12449D3*
+Y13687D3*
+Y14199D3*
+D65*
+X21812Y15437D3*
+X22324D3*
+X26562D3*
+X27074D3*
+D63*
+X29812Y10813D3*
+D61*
+Y9813D3*
+D59*
+X30570Y13435D3*
+Y13750D3*
+Y14065D3*
+Y14380D3*
+Y14695D3*
+D57*
+X30609Y12313D3*
+Y15817D3*
+X32775Y12313D3*
+Y15817D3*
+D35*
+X31594Y13199D3*
+Y14931D3*
+D55*
+X4499Y16062D3*
+Y16692D3*
+Y11687D3*
+Y12317D3*
+D53*
+X8075Y8687D3*
+D51*
+X32812Y11188D3*
+D49*
+X9165Y8687D3*
+X10256D3*
+X11346D3*
+X12437D3*
+X8620Y7569D3*
+X9711D3*
+X10801D3*
+X11892D3*
+D47*
+X5337Y8128D3*
+X15175D3*
+D53*
+X21428Y8687D3*
+D49*
+X22519D3*
+X23609D3*
+X24700D3*
+X25790D3*
+X26881D3*
+X27971D3*
+X29062D3*
+X21973Y7569D3*
+X23064D3*
+X24155D3*
+X25245D3*
+X26336D3*
+X27426D3*
+X28517D3*
+D45*
+X18686Y8128D3*
+X31804D3*
+D53*
+X29071Y19687D3*
+D49*
+X27980D3*
+X26890D3*
+X25799D3*
+X24709D3*
+X23618D3*
+X22528D3*
+X21437D3*
+X28526Y20805D3*
+X27435D3*
+X26344D3*
+X25254D3*
+X24163D3*
+X23073D3*
+X21982D3*
+D45*
+X31813Y20246D3*
+X18695D3*
+D53*
+X12424Y19687D3*
+D49*
+X11334D3*
+X10243D3*
+X9153D3*
+X8062D3*
+X11879Y20805D3*
+X10788D3*
+X9698D3*
+X8607D3*
+D47*
+X15162Y20246D3*
+X5324D3*
+D65*
+X6062Y16062D3*
+X6574D3*
+X6062Y11687D3*
+X6574D3*
+X28062Y11063D3*
+X28574D3*
+D43*
+X25562Y14187D3*
+X25247D3*
+X24932D3*
+X24617D3*
+X24302D3*
+X23987D3*
+X23672D3*
+X23357D3*
+D41*
+X22806Y13636D3*
+Y13321D3*
+Y13006D3*
+Y12691D3*
+Y12376D3*
+Y12061D3*
+Y11746D3*
+Y11431D3*
+D43*
+X23357Y10880D3*
+X23672D3*
+X23987D3*
+X24302D3*
+X24617D3*
+X24932D3*
+X25247D3*
+X25562D3*
+D41*
+X26113Y11431D3*
+Y11746D3*
+Y12061D3*
+Y12376D3*
+Y12691D3*
+Y13006D3*
+Y13321D3*
+Y13636D3*
+D39*
+X22562Y16687D3*
+X26302D3*
+M02*
diff --git a/board/TopSilk.gbr b/board/TopSilk.gbr index 0f0d9ea..d02c5a4 100644 --- a/board/TopSilk.gbr +++ b/board/TopSilk.gbr @@ -1,1078 +1,1078 @@ -G04 DipTrace 2.4.0.2* -%INTopSilk.gbr*% -%MOIN*% -%ADD10C,0.0098*% -%ADD20C,0.0197*% -%ADD29O,0.0164X0.0165*% -%ADD32C,0.0154*% -%ADD69C,0.0077*% -%ADD70C,0.0062*% -%ADD71C,0.0139*% -%FSLAX44Y44*% -G04* -G70* -G90* -G75* -G01* -%LNTopSilk*% -%LPD*% -X29694Y11612D2* -D10* -X29930D1* -X29812Y11730D2* -Y11494D1* -X28812Y10313D2* -G02X28812Y10313I1000J0D01* -G01* -X33936Y12530D2* -Y15600D1* -Y12530D2* -X33444D1* -X32113D2* -X31271D1* -X30235Y12884D2* -Y13159D1* -Y14970D2* -Y15246D1* -X31271Y15600D2* -X32113D1* -X33444D2* -X33936D1* -D20* -X29901Y13435D3* -X4736Y17058D2* -D10* -X4263D1* -X4736Y12683D2* -X4263D1* -X25582Y13675D2* -X23298D1* -Y11392D1* -X25582D1* -Y13675D1* -D29* -X25893Y14192D3* -G36* -X25582Y13675D2* -X25267D1* -X25582Y13360D1* -Y13675D1* -G37* -D32* -X21697Y17302D3* -X22188Y17356D2* -D10* -Y17652D1* -X26676Y15722D2* -Y16018D1* -X22188Y15722D2* -X26676D1* -X22188D2* -Y16018D1* -X26676Y17356D2* -Y17652D1* -X22188D2* -X26676D1* -X27735Y12235D2* -D69* -X27688Y12211D1* -X27640Y12163D1* -X27616Y12116D1* -Y12020D1* -X27640Y11972D1* -X27688Y11924D1* -X27735Y11900D1* -X27807Y11876D1* -X27927D1* -X27998Y11900D1* -X28047Y11924D1* -X28094Y11972D1* -X28118Y12020D1* -Y12116D1* -X28094Y12163D1* -X28047Y12211D1* -X27998Y12235D1* -X27712Y12389D2* -X27688Y12438D1* -X27617Y12509D1* -X28118D1* -X27716Y13878D2* -X27669Y13854D1* -X27621Y13806D1* -X27597Y13758D1* -Y13663D1* -X27621Y13615D1* -X27669Y13567D1* -X27716Y13543D1* -X27788Y13519D1* -X27908D1* -X27979Y13543D1* -X28027Y13567D1* -X28075Y13615D1* -X28099Y13663D1* -Y13758D1* -X28075Y13806D1* -X28027Y13854D1* -X27979Y13878D1* -X27717Y14056D2* -X27693D1* -X27645Y14080D1* -X27621Y14104D1* -X27597Y14152D1* -Y14248D1* -X27621Y14295D1* -X27645Y14319D1* -X27693Y14343D1* -X27741D1* -X27789Y14319D1* -X27860Y14271D1* -X28099Y14032D1* -Y14367D1* -X21003Y15438D2* -X20979Y15485D1* -X20931Y15533D1* -X20883Y15557D1* -X20788D1* -X20740Y15533D1* -X20692Y15485D1* -X20668Y15438D1* -X20644Y15366D1* -Y15246D1* -X20668Y15175D1* -X20692Y15126D1* -X20740Y15079D1* -X20788Y15055D1* -X20883D1* -X20931Y15079D1* -X20979Y15126D1* -X21003Y15175D1* -X21205Y15556D2* -X21468D1* -X21324Y15365D1* -X21396D1* -X21444Y15341D1* -X21468Y15318D1* -X21492Y15246D1* -Y15198D1* -X21468Y15126D1* -X21420Y15078D1* -X21348Y15055D1* -X21276D1* -X21205Y15078D1* -X21181Y15103D1* -X21157Y15150D1* -X27741Y15438D2* -X27717Y15485D1* -X27669Y15533D1* -X27621Y15557D1* -X27526D1* -X27478Y15533D1* -X27430Y15485D1* -X27406Y15438D1* -X27382Y15366D1* -Y15246D1* -X27406Y15175D1* -X27430Y15126D1* -X27478Y15079D1* -X27526Y15055D1* -X27621D1* -X27669Y15079D1* -X27717Y15126D1* -X27741Y15175D1* -X28134Y15055D2* -Y15556D1* -X27895Y15222D1* -X28254D1* -X29747Y12343D2* -X29723Y12390D1* -X29675Y12438D1* -X29627Y12462D1* -X29532D1* -X29484Y12438D1* -X29436Y12390D1* -X29412Y12343D1* -X29388Y12271D1* -Y12151D1* -X29412Y12080D1* -X29436Y12032D1* -X29484Y11984D1* -X29532Y11960D1* -X29627D1* -X29675Y11984D1* -X29723Y12032D1* -X29747Y12080D1* -X30188Y12462D2* -X29949D1* -X29925Y12247D1* -X29949Y12270D1* -X30021Y12295D1* -X30092D1* -X30164Y12270D1* -X30212Y12223D1* -X30236Y12151D1* -Y12103D1* -X30212Y12032D1* -X30164Y11984D1* -X30092Y11960D1* -X30021D1* -X29949Y11984D1* -X29925Y12008D1* -X29901Y12055D1* -X31744Y16943D2* -Y16560D1* -X31720Y16489D1* -X31696Y16465D1* -X31648Y16440D1* -X31600D1* -X31553Y16465D1* -X31529Y16489D1* -X31505Y16560D1* -Y16608D1* -X32185Y16942D2* -X31947D1* -X31923Y16727D1* -X31947Y16751D1* -X32018Y16775D1* -X32090D1* -X32162Y16751D1* -X32210Y16704D1* -X32233Y16632D1* -Y16584D1* -X32210Y16512D1* -X32162Y16464D1* -X32090Y16440D1* -X32018D1* -X31947Y16464D1* -X31923Y16489D1* -X31898Y16536D1* -X5044Y15704D2* -X5547D1* -Y15991D1* -X5044Y16456D2* -Y16145D1* -X5547D1* -Y16456D1* -X5284Y16145D2* -Y16336D1* -X5044Y16610D2* -X5547D1* -Y16778D1* -X5523Y16849D1* -X5475Y16898D1* -X5427Y16921D1* -X5356Y16945D1* -X5236D1* -X5164Y16921D1* -X5116Y16898D1* -X5068Y16849D1* -X5044Y16778D1* -Y16610D1* -X5141Y17099D2* -X5116Y17148D1* -X5045Y17219D1* -X5547D1* -X4982Y11284D2* -X5484D1* -Y11571D1* -X4982Y12036D2* -Y11725D1* -X5484D1* -Y12036D1* -X5221Y11725D2* -Y11916D1* -X4982Y12190D2* -X5484D1* -Y12358D1* -X5460Y12429D1* -X5412Y12478D1* -X5364Y12501D1* -X5293Y12525D1* -X5173D1* -X5101Y12501D1* -X5054Y12478D1* -X5006Y12429D1* -X4982Y12358D1* -Y12190D1* -X5102Y12704D2* -X5078D1* -X5030Y12728D1* -X5006Y12751D1* -X4982Y12799D1* -Y12895D1* -X5006Y12943D1* -X5030Y12966D1* -X5078Y12991D1* -X5126D1* -X5174Y12966D1* -X5245Y12919D1* -X5484Y12679D1* -Y13014D1* -X6013Y16693D2* -X6228D1* -X6300Y16717D1* -X6324Y16741D1* -X6348Y16788D1* -Y16836D1* -X6324Y16884D1* -X6300Y16908D1* -X6228Y16932D1* -X6013D1* -Y16430D1* -X6181Y16693D2* -X6348Y16430D1* -X6503Y16836D2* -X6551Y16860D1* -X6623Y16931D1* -Y16430D1* -X5906Y12318D2* -X6121D1* -X6193Y12342D1* -X6217Y12366D1* -X6241Y12413D1* -Y12461D1* -X6217Y12509D1* -X6193Y12533D1* -X6121Y12557D1* -X5906D1* -Y12055D1* -X6073Y12318D2* -X6241Y12055D1* -X6419Y12437D2* -Y12461D1* -X6443Y12509D1* -X6467Y12533D1* -X6515Y12556D1* -X6611D1* -X6658Y12533D1* -X6682Y12509D1* -X6706Y12461D1* -Y12413D1* -X6682Y12365D1* -X6634Y12294D1* -X6395Y12055D1* -X6730D1* -X27906Y11694D2* -X28121D1* -X28192Y11718D1* -X28217Y11742D1* -X28240Y11789D1* -Y11837D1* -X28217Y11885D1* -X28192Y11909D1* -X28121Y11933D1* -X27906D1* -Y11431D1* -X28073Y11694D2* -X28240Y11431D1* -X28443Y11932D2* -X28705D1* -X28562Y11741D1* -X28634D1* -X28682Y11717D1* -X28705Y11694D1* -X28730Y11622D1* -Y11574D1* -X28705Y11502D1* -X28658Y11454D1* -X28586Y11431D1* -X28514D1* -X28443Y11454D1* -X28419Y11479D1* -X28395Y11526D1* -X24155Y15254D2* -Y14895D1* -X24179Y14823D1* -X24227Y14776D1* -X24299Y14751D1* -X24346D1* -X24418Y14776D1* -X24466Y14823D1* -X24490Y14895D1* -Y15254D1* -X24644Y15158D2* -X24692Y15182D1* -X24764Y15253D1* -Y14751D1* -X24104Y18384D2* -X24295Y18144D1* -Y17881D1* -X24486Y18384D2* -X24295Y18144D1* -X24641Y18288D2* -X24689Y18312D1* -X24760Y18383D1* -Y17881D1* -X31280Y11202D2* -D70* -X31452D1* -X31510Y11221D1* -X31529Y11240D1* -X31548Y11278D1* -Y11317D1* -X31529Y11355D1* -X31510Y11374D1* -X31452Y11393D1* -X31280D1* -Y10991D1* -X31414Y11202D2* -X31548Y10991D1* -X31939Y11336D2* -X31901Y11374D1* -X31844Y11393D1* -X31767D1* -X31710Y11374D1* -X31672Y11336D1* -Y11298D1* -X31691Y11259D1* -X31710Y11240D1* -X31748Y11221D1* -X31863Y11183D1* -X31901Y11164D1* -X31920Y11144D1* -X31939Y11106D1* -Y11049D1* -X31901Y11011D1* -X31844Y10991D1* -X31767D1* -X31710Y11011D1* -X31672Y11049D1* -X32197Y11393D2* -Y10991D1* -X32063Y11393D2* -X32331D1* -X8551Y14393D2* -D71* -X8509Y14479D1* -X8422Y14565D1* -X8337Y14608D1* -X8164D1* -X8078Y14565D1* -X7992Y14479D1* -X7949Y14393D1* -X7906Y14264D1* -Y14048D1* -X7949Y13919D1* -X7992Y13833D1* -X8078Y13747D1* -X8164Y13704D1* -X8337D1* -X8422Y13747D1* -X8509Y13833D1* -X8551Y13919D1* -X8829Y14608D2* -Y13704D1* -X9346D1* -X9624Y14608D2* -Y13962D1* -X9666Y13833D1* -X9753Y13747D1* -X9882Y13704D1* -X9968D1* -X10097Y13747D1* -X10184Y13833D1* -X10226Y13962D1* -Y14608D1* -X11107Y14479D2* -X11022Y14565D1* -X10892Y14608D1* -X10720D1* -X10591Y14565D1* -X10504Y14479D1* -Y14393D1* -X10548Y14306D1* -X10591Y14264D1* -X10676Y14221D1* -X10935Y14134D1* -X11022Y14092D1* -X11064Y14048D1* -X11107Y13962D1* -Y13833D1* -X11022Y13747D1* -X10892Y13704D1* -X10720D1* -X10591Y13747D1* -X10504Y13833D1* -X11687Y14608D2* -Y13704D1* -X11385Y14608D2* -X11988D1* -X12825D2* -X12266D1* -Y13704D1* -X12825D1* -X12266Y14177D2* -X12610D1* -X13103D2* -X13490D1* -X13619Y14221D1* -X13663Y14264D1* -X13706Y14349D1* -Y14436D1* -X13663Y14521D1* -X13619Y14565D1* -X13490Y14608D1* -X13103D1* -Y13704D1* -X13404Y14177D2* -X13706Y13704D1* -X13984Y14177D2* -X14371D1* -X14500Y14221D1* -X14544Y14264D1* -X14587Y14349D1* -Y14436D1* -X14544Y14521D1* -X14500Y14565D1* -X14371Y14608D1* -X13984D1* -Y13704D1* -X14285Y14177D2* -X14587Y13704D1* -X14864Y14177D2* -X15251D1* -X15381Y14221D1* -X15425Y14264D1* -X15467Y14349D1* -Y14436D1* -X15425Y14521D1* -X15381Y14565D1* -X15251Y14608D1* -X14864D1* -Y13704D1* -X15166Y14177D2* -X15467Y13704D1* -X15788Y13790D2* -X15745Y13746D1* -X15788Y13704D1* -X15832Y13746D1* -X15788Y13790D1* -X16755Y14393D2* -X16713Y14479D1* -X16626Y14565D1* -X16540Y14608D1* -X16368D1* -X16282Y14565D1* -X16196Y14479D1* -X16153Y14393D1* -X16110Y14264D1* -Y14048D1* -X16153Y13919D1* -X16196Y13833D1* -X16282Y13747D1* -X16368Y13704D1* -X16540D1* -X16626Y13747D1* -X16713Y13833D1* -X16755Y13919D1* -X17292Y14608D2* -X17205Y14565D1* -X17120Y14479D1* -X17076Y14393D1* -X17033Y14264D1* -Y14048D1* -X17076Y13919D1* -X17120Y13833D1* -X17205Y13747D1* -X17292Y13704D1* -X17464D1* -X17550Y13747D1* -X17636Y13833D1* -X17679Y13919D1* -X17722Y14048D1* -Y14264D1* -X17679Y14393D1* -X17636Y14479D1* -X17550Y14565D1* -X17464Y14608D1* -X17292D1* -X18688Y13704D2* -Y14608D1* -X18344Y13704D1* -X18000Y14608D1* -Y13704D1* -X7092Y18915D2* -D69* -X7044Y18963D1* -X6973Y18987D1* -X6877D1* -X6805Y18963D1* -X6757Y18915D1* -Y18867D1* -X6781Y18819D1* -X6805Y18795D1* -X6853Y18772D1* -X6996Y18724D1* -X7044Y18700D1* -X7068Y18676D1* -X7092Y18628D1* -Y18556D1* -X7044Y18509D1* -X6973Y18484D1* -X6877D1* -X6805Y18509D1* -X6757Y18556D1* -X7557Y18987D2* -X7246D1* -Y18484D1* -X7557D1* -X7246Y18747D2* -X7438D1* -X8070Y18867D2* -X8046Y18915D1* -X7998Y18963D1* -X7951Y18987D1* -X7855D1* -X7807Y18963D1* -X7759Y18915D1* -X7735Y18867D1* -X7711Y18795D1* -Y18676D1* -X7735Y18604D1* -X7759Y18556D1* -X7807Y18509D1* -X7855Y18484D1* -X7951D1* -X7998Y18509D1* -X8046Y18556D1* -X8070Y18604D1* -Y18676D1* -X7951D1* -X8607Y18484D2* -X8416Y18987D1* -X8224Y18484D1* -X8296Y18652D2* -X8536D1* -X9630Y18484D2* -Y18987D1* -X9439Y18484D1* -X9248Y18987D1* -Y18484D1* -X9785Y18987D2* -Y18484D1* -X9952D1* -X10024Y18509D1* -X10072Y18556D1* -X10096Y18604D1* -X10120Y18676D1* -Y18795D1* -X10096Y18867D1* -X10072Y18915D1* -X10024Y18963D1* -X9952Y18987D1* -X9785D1* -X10760Y18724D2* -X10976D1* -X11047Y18747D1* -X11071Y18772D1* -X11095Y18819D1* -Y18891D1* -X11071Y18939D1* -X11047Y18963D1* -X10976Y18987D1* -X10760D1* -Y18484D1* -X11393Y18987D2* -X11345Y18963D1* -X11297Y18915D1* -X11273Y18867D1* -X11249Y18795D1* -Y18676D1* -X11273Y18604D1* -X11297Y18556D1* -X11345Y18509D1* -X11393Y18484D1* -X11489D1* -X11536Y18509D1* -X11584Y18556D1* -X11608Y18604D1* -X11632Y18676D1* -Y18795D1* -X11608Y18867D1* -X11584Y18915D1* -X11536Y18963D1* -X11489Y18987D1* -X11393D1* -X11786Y18747D2* -X12001D1* -X12073Y18772D1* -X12097Y18795D1* -X12121Y18843D1* -Y18891D1* -X12097Y18939D1* -X12073Y18963D1* -X12001Y18987D1* -X11786D1* -Y18484D1* -X11954Y18747D2* -X12121Y18484D1* -X12443Y18987D2* -Y18484D1* -X12276Y18987D2* -X12610D1* -X13442Y19082D2* -X13275Y18388D1* -X13586Y19082D2* -X13418Y18388D1* -X13275Y18807D2* -X13610D1* -X13251Y18663D2* -X13586D1* -X13764Y18891D2* -X13812Y18915D1* -X13884Y18986D1* -Y18484D1* -X13688Y9495D2* -X13736Y9447D1* -X13808Y9423D1* -X13903D1* -X13975Y9447D1* -X14023Y9495D1* -Y9543D1* -X13999Y9591D1* -X13975Y9614D1* -X13928Y9638D1* -X13784Y9686D1* -X13736Y9710D1* -X13712Y9734D1* -X13688Y9782D1* -Y9854D1* -X13736Y9901D1* -X13808Y9926D1* -X13903D1* -X13975Y9901D1* -X14023Y9854D1* -X13223Y9423D2* -X13534D1* -Y9926D1* -X13223D1* -X13534Y9662D2* -X13343D1* -X12710Y9543D2* -X12734Y9495D1* -X12782Y9447D1* -X12830Y9423D1* -X12925D1* -X12973Y9447D1* -X13021Y9495D1* -X13045Y9543D1* -X13069Y9614D1* -Y9734D1* -X13045Y9806D1* -X13021Y9854D1* -X12973Y9901D1* -X12925Y9926D1* -X12830D1* -X12782Y9901D1* -X12734Y9854D1* -X12710Y9806D1* -Y9734D1* -X12830D1* -X12173Y9926D2* -X12365Y9423D1* -X12556Y9926D1* -X12484Y9758D2* -X12245D1* -X11150Y9926D2* -Y9423D1* -X11341Y9926D1* -X11533Y9423D1* -Y9926D1* -X10996Y9423D2* -Y9926D1* -X10828D1* -X10756Y9901D1* -X10708Y9854D1* -X10685Y9806D1* -X10661Y9734D1* -Y9614D1* -X10685Y9543D1* -X10708Y9495D1* -X10756Y9447D1* -X10828Y9423D1* -X10996D1* -X10020Y9686D2* -X9805D1* -X9733Y9662D1* -X9709Y9638D1* -X9685Y9591D1* -Y9519D1* -X9709Y9471D1* -X9733Y9447D1* -X9805Y9423D1* -X10020D1* -Y9926D1* -X9387Y9423D2* -X9435Y9447D1* -X9483Y9495D1* -X9507Y9543D1* -X9531Y9614D1* -Y9734D1* -X9507Y9806D1* -X9483Y9854D1* -X9435Y9901D1* -X9387Y9926D1* -X9292D1* -X9244Y9901D1* -X9196Y9854D1* -X9172Y9806D1* -X9149Y9734D1* -Y9614D1* -X9172Y9543D1* -X9196Y9495D1* -X9244Y9447D1* -X9292Y9423D1* -X9387D1* -X8994Y9662D2* -X8779D1* -X8707Y9638D1* -X8683Y9614D1* -X8659Y9567D1* -Y9519D1* -X8683Y9471D1* -X8707Y9447D1* -X8779Y9423D1* -X8994D1* -Y9926D1* -X8827Y9662D2* -X8659Y9926D1* -X8337Y9423D2* -Y9926D1* -X8505Y9423D2* -X8170D1* -X7338Y9328D2* -X7505Y10021D1* -X7195Y9328D2* -X7362Y10021D1* -X7505Y9603D2* -X7171D1* -X7529Y9746D2* -X7195D1* -X6992Y9543D2* -Y9519D1* -X6968Y9471D1* -X6945Y9447D1* -X6896Y9424D1* -X6801D1* -X6753Y9447D1* -X6730Y9471D1* -X6705Y9519D1* -Y9567D1* -X6730Y9615D1* -X6777Y9686D1* -X7016Y9926D1* -X6681D1* -X22384Y18987D2* -Y18484D1* -X22551D1* -X22623Y18509D1* -X22671Y18556D1* -X22695Y18604D1* -X22719Y18676D1* -Y18795D1* -X22695Y18867D1* -X22671Y18915D1* -X22623Y18963D1* -X22551Y18987D1* -X22384D1* -X23184D2* -X22873D1* -Y18484D1* -X23184D1* -X22873Y18747D2* -X23064D1* -X23673Y18987D2* -Y18484D1* -X23338Y18987D1* -Y18484D1* -X23827Y18987D2* -Y18484D1* -X23995D1* -X24067Y18509D1* -X24115Y18556D1* -X24138Y18604D1* -X24162Y18676D1* -Y18795D1* -X24138Y18867D1* -X24115Y18915D1* -X24067Y18963D1* -X23995Y18987D1* -X23827D1* -X24317D2* -X24508Y18747D1* -Y18484D1* -X24699Y18987D2* -X24508Y18747D1* -X25340Y18724D2* -X25555D1* -X25626Y18747D1* -X25651Y18772D1* -X25674Y18819D1* -Y18891D1* -X25651Y18939D1* -X25626Y18963D1* -X25555Y18987D1* -X25340D1* -Y18484D1* -X25973Y18987D2* -X25924Y18963D1* -X25877Y18915D1* -X25853Y18867D1* -X25829Y18795D1* -Y18676D1* -X25853Y18604D1* -X25877Y18556D1* -X25924Y18509D1* -X25973Y18484D1* -X26068D1* -X26116Y18509D1* -X26164Y18556D1* -X26188Y18604D1* -X26211Y18676D1* -Y18795D1* -X26188Y18867D1* -X26164Y18915D1* -X26116Y18963D1* -X26068Y18987D1* -X25973D1* -X26366Y18747D2* -X26581D1* -X26653Y18772D1* -X26677Y18795D1* -X26701Y18843D1* -Y18891D1* -X26677Y18939D1* -X26653Y18963D1* -X26581Y18987D1* -X26366D1* -Y18484D1* -X26533Y18747D2* -X26701Y18484D1* -X27022Y18987D2* -Y18484D1* -X26855Y18987D2* -X27190D1* -X28022Y19082D2* -X27855Y18388D1* -X28165Y19082D2* -X27998Y18388D1* -X27855Y18807D2* -X28189D1* -X27830Y18663D2* -X28165D1* -X28343Y18891D2* -X28392Y18915D1* -X28463Y18986D1* -Y18484D1* -X28303Y9361D2* -Y9863D1* -X28136D1* -X28064Y9839D1* -X28016Y9791D1* -X27992Y9743D1* -X27968Y9672D1* -Y9552D1* -X27992Y9480D1* -X28016Y9432D1* -X28064Y9384D1* -X28136Y9361D1* -X28303D1* -X27503D2* -X27814D1* -Y9863D1* -X27503D1* -X27814Y9600D2* -X27623D1* -X27014Y9361D2* -Y9863D1* -X27349Y9361D1* -Y9863D1* -X26860Y9361D2* -Y9863D1* -X26692D1* -X26620Y9839D1* -X26572Y9791D1* -X26549Y9743D1* -X26525Y9672D1* -Y9552D1* -X26549Y9480D1* -X26572Y9432D1* -X26620Y9384D1* -X26692Y9361D1* -X26860D1* -X26370D2* -X26179Y9600D1* -Y9863D1* -X25988Y9361D2* -X26179Y9600D1* -X25347Y9624D2* -X25132D1* -X25061Y9600D1* -X25036Y9576D1* -X25013Y9528D1* -Y9456D1* -X25036Y9409D1* -X25061Y9384D1* -X25132Y9361D1* -X25347D1* -Y9863D1* -X24714Y9361D2* -X24763Y9384D1* -X24810Y9432D1* -X24834Y9480D1* -X24858Y9552D1* -Y9672D1* -X24834Y9743D1* -X24810Y9791D1* -X24763Y9839D1* -X24714Y9863D1* -X24619D1* -X24571Y9839D1* -X24523Y9791D1* -X24499Y9743D1* -X24476Y9672D1* -Y9552D1* -X24499Y9480D1* -X24523Y9432D1* -X24571Y9384D1* -X24619Y9361D1* -X24714D1* -X24321Y9600D2* -X24106D1* -X24034Y9576D1* -X24010Y9552D1* -X23986Y9504D1* -Y9456D1* -X24010Y9409D1* -X24034Y9384D1* -X24106Y9361D1* -X24321D1* -Y9863D1* -X24154Y9600D2* -X23986Y9863D1* -X23665Y9361D2* -Y9863D1* -X23832Y9361D2* -X23497D1* -X22665Y9265D2* -X22832Y9959D1* -X22522Y9265D2* -X22689Y9959D1* -X22832Y9540D2* -X22498D1* -X22857Y9684D2* -X22522D1* -X22319Y9481D2* -Y9457D1* -X22295Y9409D1* -X22272Y9385D1* -X22224Y9361D1* -X22128D1* -X22080Y9385D1* -X22057Y9409D1* -X22032Y9457D1* -Y9504D1* -X22057Y9552D1* -X22104Y9624D1* -X22344Y9863D1* -X22009D1* -M02* +G04 DipTrace 2.4.0.2*
+%INTopSilk.gbr*%
+%MOIN*%
+%ADD10C,0.0098*%
+%ADD20C,0.0197*%
+%ADD29O,0.0164X0.0165*%
+%ADD32C,0.0154*%
+%ADD69C,0.0077*%
+%ADD70C,0.0062*%
+%ADD71C,0.0139*%
+%FSLAX44Y44*%
+G04*
+G70*
+G90*
+G75*
+G01*
+%LNTopSilk*%
+%LPD*%
+X29694Y11612D2*
+D10*
+X29930D1*
+X29812Y11730D2*
+Y11494D1*
+X28812Y10313D2*
+G02X28812Y10313I1000J0D01*
+G01*
+X33936Y12530D2*
+Y15600D1*
+Y12530D2*
+X33444D1*
+X32113D2*
+X31271D1*
+X30235Y12884D2*
+Y13159D1*
+Y14970D2*
+Y15246D1*
+X31271Y15600D2*
+X32113D1*
+X33444D2*
+X33936D1*
+D20*
+X29901Y13435D3*
+X4736Y17058D2*
+D10*
+X4263D1*
+X4736Y12683D2*
+X4263D1*
+X25582Y13675D2*
+X23298D1*
+Y11392D1*
+X25582D1*
+Y13675D1*
+D29*
+X25893Y14192D3*
+G36*
+X25582Y13675D2*
+X25267D1*
+X25582Y13360D1*
+Y13675D1*
+G37*
+D32*
+X21697Y17302D3*
+X22188Y17356D2*
+D10*
+Y17652D1*
+X26676Y15722D2*
+Y16018D1*
+X22188Y15722D2*
+X26676D1*
+X22188D2*
+Y16018D1*
+X26676Y17356D2*
+Y17652D1*
+X22188D2*
+X26676D1*
+X27735Y12235D2*
+D69*
+X27688Y12211D1*
+X27640Y12163D1*
+X27616Y12116D1*
+Y12020D1*
+X27640Y11972D1*
+X27688Y11924D1*
+X27735Y11900D1*
+X27807Y11876D1*
+X27927D1*
+X27998Y11900D1*
+X28047Y11924D1*
+X28094Y11972D1*
+X28118Y12020D1*
+Y12116D1*
+X28094Y12163D1*
+X28047Y12211D1*
+X27998Y12235D1*
+X27712Y12389D2*
+X27688Y12438D1*
+X27617Y12509D1*
+X28118D1*
+X27716Y13878D2*
+X27669Y13854D1*
+X27621Y13806D1*
+X27597Y13758D1*
+Y13663D1*
+X27621Y13615D1*
+X27669Y13567D1*
+X27716Y13543D1*
+X27788Y13519D1*
+X27908D1*
+X27979Y13543D1*
+X28027Y13567D1*
+X28075Y13615D1*
+X28099Y13663D1*
+Y13758D1*
+X28075Y13806D1*
+X28027Y13854D1*
+X27979Y13878D1*
+X27717Y14056D2*
+X27693D1*
+X27645Y14080D1*
+X27621Y14104D1*
+X27597Y14152D1*
+Y14248D1*
+X27621Y14295D1*
+X27645Y14319D1*
+X27693Y14343D1*
+X27741D1*
+X27789Y14319D1*
+X27860Y14271D1*
+X28099Y14032D1*
+Y14367D1*
+X21003Y15438D2*
+X20979Y15485D1*
+X20931Y15533D1*
+X20883Y15557D1*
+X20788D1*
+X20740Y15533D1*
+X20692Y15485D1*
+X20668Y15438D1*
+X20644Y15366D1*
+Y15246D1*
+X20668Y15175D1*
+X20692Y15126D1*
+X20740Y15079D1*
+X20788Y15055D1*
+X20883D1*
+X20931Y15079D1*
+X20979Y15126D1*
+X21003Y15175D1*
+X21205Y15556D2*
+X21468D1*
+X21324Y15365D1*
+X21396D1*
+X21444Y15341D1*
+X21468Y15318D1*
+X21492Y15246D1*
+Y15198D1*
+X21468Y15126D1*
+X21420Y15078D1*
+X21348Y15055D1*
+X21276D1*
+X21205Y15078D1*
+X21181Y15103D1*
+X21157Y15150D1*
+X27741Y15438D2*
+X27717Y15485D1*
+X27669Y15533D1*
+X27621Y15557D1*
+X27526D1*
+X27478Y15533D1*
+X27430Y15485D1*
+X27406Y15438D1*
+X27382Y15366D1*
+Y15246D1*
+X27406Y15175D1*
+X27430Y15126D1*
+X27478Y15079D1*
+X27526Y15055D1*
+X27621D1*
+X27669Y15079D1*
+X27717Y15126D1*
+X27741Y15175D1*
+X28134Y15055D2*
+Y15556D1*
+X27895Y15222D1*
+X28254D1*
+X29747Y12343D2*
+X29723Y12390D1*
+X29675Y12438D1*
+X29627Y12462D1*
+X29532D1*
+X29484Y12438D1*
+X29436Y12390D1*
+X29412Y12343D1*
+X29388Y12271D1*
+Y12151D1*
+X29412Y12080D1*
+X29436Y12032D1*
+X29484Y11984D1*
+X29532Y11960D1*
+X29627D1*
+X29675Y11984D1*
+X29723Y12032D1*
+X29747Y12080D1*
+X30188Y12462D2*
+X29949D1*
+X29925Y12247D1*
+X29949Y12270D1*
+X30021Y12295D1*
+X30092D1*
+X30164Y12270D1*
+X30212Y12223D1*
+X30236Y12151D1*
+Y12103D1*
+X30212Y12032D1*
+X30164Y11984D1*
+X30092Y11960D1*
+X30021D1*
+X29949Y11984D1*
+X29925Y12008D1*
+X29901Y12055D1*
+X31744Y16943D2*
+Y16560D1*
+X31720Y16489D1*
+X31696Y16465D1*
+X31648Y16440D1*
+X31600D1*
+X31553Y16465D1*
+X31529Y16489D1*
+X31505Y16560D1*
+Y16608D1*
+X32185Y16942D2*
+X31947D1*
+X31923Y16727D1*
+X31947Y16751D1*
+X32018Y16775D1*
+X32090D1*
+X32162Y16751D1*
+X32210Y16704D1*
+X32233Y16632D1*
+Y16584D1*
+X32210Y16512D1*
+X32162Y16464D1*
+X32090Y16440D1*
+X32018D1*
+X31947Y16464D1*
+X31923Y16489D1*
+X31898Y16536D1*
+X5044Y15704D2*
+X5547D1*
+Y15991D1*
+X5044Y16456D2*
+Y16145D1*
+X5547D1*
+Y16456D1*
+X5284Y16145D2*
+Y16336D1*
+X5044Y16610D2*
+X5547D1*
+Y16778D1*
+X5523Y16849D1*
+X5475Y16898D1*
+X5427Y16921D1*
+X5356Y16945D1*
+X5236D1*
+X5164Y16921D1*
+X5116Y16898D1*
+X5068Y16849D1*
+X5044Y16778D1*
+Y16610D1*
+X5141Y17099D2*
+X5116Y17148D1*
+X5045Y17219D1*
+X5547D1*
+X4982Y11284D2*
+X5484D1*
+Y11571D1*
+X4982Y12036D2*
+Y11725D1*
+X5484D1*
+Y12036D1*
+X5221Y11725D2*
+Y11916D1*
+X4982Y12190D2*
+X5484D1*
+Y12358D1*
+X5460Y12429D1*
+X5412Y12478D1*
+X5364Y12501D1*
+X5293Y12525D1*
+X5173D1*
+X5101Y12501D1*
+X5054Y12478D1*
+X5006Y12429D1*
+X4982Y12358D1*
+Y12190D1*
+X5102Y12704D2*
+X5078D1*
+X5030Y12728D1*
+X5006Y12751D1*
+X4982Y12799D1*
+Y12895D1*
+X5006Y12943D1*
+X5030Y12966D1*
+X5078Y12991D1*
+X5126D1*
+X5174Y12966D1*
+X5245Y12919D1*
+X5484Y12679D1*
+Y13014D1*
+X6013Y16693D2*
+X6228D1*
+X6300Y16717D1*
+X6324Y16741D1*
+X6348Y16788D1*
+Y16836D1*
+X6324Y16884D1*
+X6300Y16908D1*
+X6228Y16932D1*
+X6013D1*
+Y16430D1*
+X6181Y16693D2*
+X6348Y16430D1*
+X6503Y16836D2*
+X6551Y16860D1*
+X6623Y16931D1*
+Y16430D1*
+X5906Y12318D2*
+X6121D1*
+X6193Y12342D1*
+X6217Y12366D1*
+X6241Y12413D1*
+Y12461D1*
+X6217Y12509D1*
+X6193Y12533D1*
+X6121Y12557D1*
+X5906D1*
+Y12055D1*
+X6073Y12318D2*
+X6241Y12055D1*
+X6419Y12437D2*
+Y12461D1*
+X6443Y12509D1*
+X6467Y12533D1*
+X6515Y12556D1*
+X6611D1*
+X6658Y12533D1*
+X6682Y12509D1*
+X6706Y12461D1*
+Y12413D1*
+X6682Y12365D1*
+X6634Y12294D1*
+X6395Y12055D1*
+X6730D1*
+X27906Y11694D2*
+X28121D1*
+X28192Y11718D1*
+X28217Y11742D1*
+X28240Y11789D1*
+Y11837D1*
+X28217Y11885D1*
+X28192Y11909D1*
+X28121Y11933D1*
+X27906D1*
+Y11431D1*
+X28073Y11694D2*
+X28240Y11431D1*
+X28443Y11932D2*
+X28705D1*
+X28562Y11741D1*
+X28634D1*
+X28682Y11717D1*
+X28705Y11694D1*
+X28730Y11622D1*
+Y11574D1*
+X28705Y11502D1*
+X28658Y11454D1*
+X28586Y11431D1*
+X28514D1*
+X28443Y11454D1*
+X28419Y11479D1*
+X28395Y11526D1*
+X24155Y15254D2*
+Y14895D1*
+X24179Y14823D1*
+X24227Y14776D1*
+X24299Y14751D1*
+X24346D1*
+X24418Y14776D1*
+X24466Y14823D1*
+X24490Y14895D1*
+Y15254D1*
+X24644Y15158D2*
+X24692Y15182D1*
+X24764Y15253D1*
+Y14751D1*
+X24104Y18384D2*
+X24295Y18144D1*
+Y17881D1*
+X24486Y18384D2*
+X24295Y18144D1*
+X24641Y18288D2*
+X24689Y18312D1*
+X24760Y18383D1*
+Y17881D1*
+X31280Y11202D2*
+D70*
+X31452D1*
+X31510Y11221D1*
+X31529Y11240D1*
+X31548Y11278D1*
+Y11317D1*
+X31529Y11355D1*
+X31510Y11374D1*
+X31452Y11393D1*
+X31280D1*
+Y10991D1*
+X31414Y11202D2*
+X31548Y10991D1*
+X31939Y11336D2*
+X31901Y11374D1*
+X31844Y11393D1*
+X31767D1*
+X31710Y11374D1*
+X31672Y11336D1*
+Y11298D1*
+X31691Y11259D1*
+X31710Y11240D1*
+X31748Y11221D1*
+X31863Y11183D1*
+X31901Y11164D1*
+X31920Y11144D1*
+X31939Y11106D1*
+Y11049D1*
+X31901Y11011D1*
+X31844Y10991D1*
+X31767D1*
+X31710Y11011D1*
+X31672Y11049D1*
+X32197Y11393D2*
+Y10991D1*
+X32063Y11393D2*
+X32331D1*
+X8551Y14393D2*
+D71*
+X8509Y14479D1*
+X8422Y14565D1*
+X8337Y14608D1*
+X8164D1*
+X8078Y14565D1*
+X7992Y14479D1*
+X7949Y14393D1*
+X7906Y14264D1*
+Y14048D1*
+X7949Y13919D1*
+X7992Y13833D1*
+X8078Y13747D1*
+X8164Y13704D1*
+X8337D1*
+X8422Y13747D1*
+X8509Y13833D1*
+X8551Y13919D1*
+X8829Y14608D2*
+Y13704D1*
+X9346D1*
+X9624Y14608D2*
+Y13962D1*
+X9666Y13833D1*
+X9753Y13747D1*
+X9882Y13704D1*
+X9968D1*
+X10097Y13747D1*
+X10184Y13833D1*
+X10226Y13962D1*
+Y14608D1*
+X11107Y14479D2*
+X11022Y14565D1*
+X10892Y14608D1*
+X10720D1*
+X10591Y14565D1*
+X10504Y14479D1*
+Y14393D1*
+X10548Y14306D1*
+X10591Y14264D1*
+X10676Y14221D1*
+X10935Y14134D1*
+X11022Y14092D1*
+X11064Y14048D1*
+X11107Y13962D1*
+Y13833D1*
+X11022Y13747D1*
+X10892Y13704D1*
+X10720D1*
+X10591Y13747D1*
+X10504Y13833D1*
+X11687Y14608D2*
+Y13704D1*
+X11385Y14608D2*
+X11988D1*
+X12825D2*
+X12266D1*
+Y13704D1*
+X12825D1*
+X12266Y14177D2*
+X12610D1*
+X13103D2*
+X13490D1*
+X13619Y14221D1*
+X13663Y14264D1*
+X13706Y14349D1*
+Y14436D1*
+X13663Y14521D1*
+X13619Y14565D1*
+X13490Y14608D1*
+X13103D1*
+Y13704D1*
+X13404Y14177D2*
+X13706Y13704D1*
+X13984Y14177D2*
+X14371D1*
+X14500Y14221D1*
+X14544Y14264D1*
+X14587Y14349D1*
+Y14436D1*
+X14544Y14521D1*
+X14500Y14565D1*
+X14371Y14608D1*
+X13984D1*
+Y13704D1*
+X14285Y14177D2*
+X14587Y13704D1*
+X14864Y14177D2*
+X15251D1*
+X15381Y14221D1*
+X15425Y14264D1*
+X15467Y14349D1*
+Y14436D1*
+X15425Y14521D1*
+X15381Y14565D1*
+X15251Y14608D1*
+X14864D1*
+Y13704D1*
+X15166Y14177D2*
+X15467Y13704D1*
+X15788Y13790D2*
+X15745Y13746D1*
+X15788Y13704D1*
+X15832Y13746D1*
+X15788Y13790D1*
+X16755Y14393D2*
+X16713Y14479D1*
+X16626Y14565D1*
+X16540Y14608D1*
+X16368D1*
+X16282Y14565D1*
+X16196Y14479D1*
+X16153Y14393D1*
+X16110Y14264D1*
+Y14048D1*
+X16153Y13919D1*
+X16196Y13833D1*
+X16282Y13747D1*
+X16368Y13704D1*
+X16540D1*
+X16626Y13747D1*
+X16713Y13833D1*
+X16755Y13919D1*
+X17292Y14608D2*
+X17205Y14565D1*
+X17120Y14479D1*
+X17076Y14393D1*
+X17033Y14264D1*
+Y14048D1*
+X17076Y13919D1*
+X17120Y13833D1*
+X17205Y13747D1*
+X17292Y13704D1*
+X17464D1*
+X17550Y13747D1*
+X17636Y13833D1*
+X17679Y13919D1*
+X17722Y14048D1*
+Y14264D1*
+X17679Y14393D1*
+X17636Y14479D1*
+X17550Y14565D1*
+X17464Y14608D1*
+X17292D1*
+X18688Y13704D2*
+Y14608D1*
+X18344Y13704D1*
+X18000Y14608D1*
+Y13704D1*
+X7092Y18915D2*
+D69*
+X7044Y18963D1*
+X6973Y18987D1*
+X6877D1*
+X6805Y18963D1*
+X6757Y18915D1*
+Y18867D1*
+X6781Y18819D1*
+X6805Y18795D1*
+X6853Y18772D1*
+X6996Y18724D1*
+X7044Y18700D1*
+X7068Y18676D1*
+X7092Y18628D1*
+Y18556D1*
+X7044Y18509D1*
+X6973Y18484D1*
+X6877D1*
+X6805Y18509D1*
+X6757Y18556D1*
+X7557Y18987D2*
+X7246D1*
+Y18484D1*
+X7557D1*
+X7246Y18747D2*
+X7438D1*
+X8070Y18867D2*
+X8046Y18915D1*
+X7998Y18963D1*
+X7951Y18987D1*
+X7855D1*
+X7807Y18963D1*
+X7759Y18915D1*
+X7735Y18867D1*
+X7711Y18795D1*
+Y18676D1*
+X7735Y18604D1*
+X7759Y18556D1*
+X7807Y18509D1*
+X7855Y18484D1*
+X7951D1*
+X7998Y18509D1*
+X8046Y18556D1*
+X8070Y18604D1*
+Y18676D1*
+X7951D1*
+X8607Y18484D2*
+X8416Y18987D1*
+X8224Y18484D1*
+X8296Y18652D2*
+X8536D1*
+X9630Y18484D2*
+Y18987D1*
+X9439Y18484D1*
+X9248Y18987D1*
+Y18484D1*
+X9785Y18987D2*
+Y18484D1*
+X9952D1*
+X10024Y18509D1*
+X10072Y18556D1*
+X10096Y18604D1*
+X10120Y18676D1*
+Y18795D1*
+X10096Y18867D1*
+X10072Y18915D1*
+X10024Y18963D1*
+X9952Y18987D1*
+X9785D1*
+X10760Y18724D2*
+X10976D1*
+X11047Y18747D1*
+X11071Y18772D1*
+X11095Y18819D1*
+Y18891D1*
+X11071Y18939D1*
+X11047Y18963D1*
+X10976Y18987D1*
+X10760D1*
+Y18484D1*
+X11393Y18987D2*
+X11345Y18963D1*
+X11297Y18915D1*
+X11273Y18867D1*
+X11249Y18795D1*
+Y18676D1*
+X11273Y18604D1*
+X11297Y18556D1*
+X11345Y18509D1*
+X11393Y18484D1*
+X11489D1*
+X11536Y18509D1*
+X11584Y18556D1*
+X11608Y18604D1*
+X11632Y18676D1*
+Y18795D1*
+X11608Y18867D1*
+X11584Y18915D1*
+X11536Y18963D1*
+X11489Y18987D1*
+X11393D1*
+X11786Y18747D2*
+X12001D1*
+X12073Y18772D1*
+X12097Y18795D1*
+X12121Y18843D1*
+Y18891D1*
+X12097Y18939D1*
+X12073Y18963D1*
+X12001Y18987D1*
+X11786D1*
+Y18484D1*
+X11954Y18747D2*
+X12121Y18484D1*
+X12443Y18987D2*
+Y18484D1*
+X12276Y18987D2*
+X12610D1*
+X13442Y19082D2*
+X13275Y18388D1*
+X13586Y19082D2*
+X13418Y18388D1*
+X13275Y18807D2*
+X13610D1*
+X13251Y18663D2*
+X13586D1*
+X13764Y18891D2*
+X13812Y18915D1*
+X13884Y18986D1*
+Y18484D1*
+X13688Y9495D2*
+X13736Y9447D1*
+X13808Y9423D1*
+X13903D1*
+X13975Y9447D1*
+X14023Y9495D1*
+Y9543D1*
+X13999Y9591D1*
+X13975Y9614D1*
+X13928Y9638D1*
+X13784Y9686D1*
+X13736Y9710D1*
+X13712Y9734D1*
+X13688Y9782D1*
+Y9854D1*
+X13736Y9901D1*
+X13808Y9926D1*
+X13903D1*
+X13975Y9901D1*
+X14023Y9854D1*
+X13223Y9423D2*
+X13534D1*
+Y9926D1*
+X13223D1*
+X13534Y9662D2*
+X13343D1*
+X12710Y9543D2*
+X12734Y9495D1*
+X12782Y9447D1*
+X12830Y9423D1*
+X12925D1*
+X12973Y9447D1*
+X13021Y9495D1*
+X13045Y9543D1*
+X13069Y9614D1*
+Y9734D1*
+X13045Y9806D1*
+X13021Y9854D1*
+X12973Y9901D1*
+X12925Y9926D1*
+X12830D1*
+X12782Y9901D1*
+X12734Y9854D1*
+X12710Y9806D1*
+Y9734D1*
+X12830D1*
+X12173Y9926D2*
+X12365Y9423D1*
+X12556Y9926D1*
+X12484Y9758D2*
+X12245D1*
+X11150Y9926D2*
+Y9423D1*
+X11341Y9926D1*
+X11533Y9423D1*
+Y9926D1*
+X10996Y9423D2*
+Y9926D1*
+X10828D1*
+X10756Y9901D1*
+X10708Y9854D1*
+X10685Y9806D1*
+X10661Y9734D1*
+Y9614D1*
+X10685Y9543D1*
+X10708Y9495D1*
+X10756Y9447D1*
+X10828Y9423D1*
+X10996D1*
+X10020Y9686D2*
+X9805D1*
+X9733Y9662D1*
+X9709Y9638D1*
+X9685Y9591D1*
+Y9519D1*
+X9709Y9471D1*
+X9733Y9447D1*
+X9805Y9423D1*
+X10020D1*
+Y9926D1*
+X9387Y9423D2*
+X9435Y9447D1*
+X9483Y9495D1*
+X9507Y9543D1*
+X9531Y9614D1*
+Y9734D1*
+X9507Y9806D1*
+X9483Y9854D1*
+X9435Y9901D1*
+X9387Y9926D1*
+X9292D1*
+X9244Y9901D1*
+X9196Y9854D1*
+X9172Y9806D1*
+X9149Y9734D1*
+Y9614D1*
+X9172Y9543D1*
+X9196Y9495D1*
+X9244Y9447D1*
+X9292Y9423D1*
+X9387D1*
+X8994Y9662D2*
+X8779D1*
+X8707Y9638D1*
+X8683Y9614D1*
+X8659Y9567D1*
+Y9519D1*
+X8683Y9471D1*
+X8707Y9447D1*
+X8779Y9423D1*
+X8994D1*
+Y9926D1*
+X8827Y9662D2*
+X8659Y9926D1*
+X8337Y9423D2*
+Y9926D1*
+X8505Y9423D2*
+X8170D1*
+X7338Y9328D2*
+X7505Y10021D1*
+X7195Y9328D2*
+X7362Y10021D1*
+X7505Y9603D2*
+X7171D1*
+X7529Y9746D2*
+X7195D1*
+X6992Y9543D2*
+Y9519D1*
+X6968Y9471D1*
+X6945Y9447D1*
+X6896Y9424D1*
+X6801D1*
+X6753Y9447D1*
+X6730Y9471D1*
+X6705Y9519D1*
+Y9567D1*
+X6730Y9615D1*
+X6777Y9686D1*
+X7016Y9926D1*
+X6681D1*
+X22384Y18987D2*
+Y18484D1*
+X22551D1*
+X22623Y18509D1*
+X22671Y18556D1*
+X22695Y18604D1*
+X22719Y18676D1*
+Y18795D1*
+X22695Y18867D1*
+X22671Y18915D1*
+X22623Y18963D1*
+X22551Y18987D1*
+X22384D1*
+X23184D2*
+X22873D1*
+Y18484D1*
+X23184D1*
+X22873Y18747D2*
+X23064D1*
+X23673Y18987D2*
+Y18484D1*
+X23338Y18987D1*
+Y18484D1*
+X23827Y18987D2*
+Y18484D1*
+X23995D1*
+X24067Y18509D1*
+X24115Y18556D1*
+X24138Y18604D1*
+X24162Y18676D1*
+Y18795D1*
+X24138Y18867D1*
+X24115Y18915D1*
+X24067Y18963D1*
+X23995Y18987D1*
+X23827D1*
+X24317D2*
+X24508Y18747D1*
+Y18484D1*
+X24699Y18987D2*
+X24508Y18747D1*
+X25340Y18724D2*
+X25555D1*
+X25626Y18747D1*
+X25651Y18772D1*
+X25674Y18819D1*
+Y18891D1*
+X25651Y18939D1*
+X25626Y18963D1*
+X25555Y18987D1*
+X25340D1*
+Y18484D1*
+X25973Y18987D2*
+X25924Y18963D1*
+X25877Y18915D1*
+X25853Y18867D1*
+X25829Y18795D1*
+Y18676D1*
+X25853Y18604D1*
+X25877Y18556D1*
+X25924Y18509D1*
+X25973Y18484D1*
+X26068D1*
+X26116Y18509D1*
+X26164Y18556D1*
+X26188Y18604D1*
+X26211Y18676D1*
+Y18795D1*
+X26188Y18867D1*
+X26164Y18915D1*
+X26116Y18963D1*
+X26068Y18987D1*
+X25973D1*
+X26366Y18747D2*
+X26581D1*
+X26653Y18772D1*
+X26677Y18795D1*
+X26701Y18843D1*
+Y18891D1*
+X26677Y18939D1*
+X26653Y18963D1*
+X26581Y18987D1*
+X26366D1*
+Y18484D1*
+X26533Y18747D2*
+X26701Y18484D1*
+X27022Y18987D2*
+Y18484D1*
+X26855Y18987D2*
+X27190D1*
+X28022Y19082D2*
+X27855Y18388D1*
+X28165Y19082D2*
+X27998Y18388D1*
+X27855Y18807D2*
+X28189D1*
+X27830Y18663D2*
+X28165D1*
+X28343Y18891D2*
+X28392Y18915D1*
+X28463Y18986D1*
+Y18484D1*
+X28303Y9361D2*
+Y9863D1*
+X28136D1*
+X28064Y9839D1*
+X28016Y9791D1*
+X27992Y9743D1*
+X27968Y9672D1*
+Y9552D1*
+X27992Y9480D1*
+X28016Y9432D1*
+X28064Y9384D1*
+X28136Y9361D1*
+X28303D1*
+X27503D2*
+X27814D1*
+Y9863D1*
+X27503D1*
+X27814Y9600D2*
+X27623D1*
+X27014Y9361D2*
+Y9863D1*
+X27349Y9361D1*
+Y9863D1*
+X26860Y9361D2*
+Y9863D1*
+X26692D1*
+X26620Y9839D1*
+X26572Y9791D1*
+X26549Y9743D1*
+X26525Y9672D1*
+Y9552D1*
+X26549Y9480D1*
+X26572Y9432D1*
+X26620Y9384D1*
+X26692Y9361D1*
+X26860D1*
+X26370D2*
+X26179Y9600D1*
+Y9863D1*
+X25988Y9361D2*
+X26179Y9600D1*
+X25347Y9624D2*
+X25132D1*
+X25061Y9600D1*
+X25036Y9576D1*
+X25013Y9528D1*
+Y9456D1*
+X25036Y9409D1*
+X25061Y9384D1*
+X25132Y9361D1*
+X25347D1*
+Y9863D1*
+X24714Y9361D2*
+X24763Y9384D1*
+X24810Y9432D1*
+X24834Y9480D1*
+X24858Y9552D1*
+Y9672D1*
+X24834Y9743D1*
+X24810Y9791D1*
+X24763Y9839D1*
+X24714Y9863D1*
+X24619D1*
+X24571Y9839D1*
+X24523Y9791D1*
+X24499Y9743D1*
+X24476Y9672D1*
+Y9552D1*
+X24499Y9480D1*
+X24523Y9432D1*
+X24571Y9384D1*
+X24619Y9361D1*
+X24714D1*
+X24321Y9600D2*
+X24106D1*
+X24034Y9576D1*
+X24010Y9552D1*
+X23986Y9504D1*
+Y9456D1*
+X24010Y9409D1*
+X24034Y9384D1*
+X24106Y9361D1*
+X24321D1*
+Y9863D1*
+X24154Y9600D2*
+X23986Y9863D1*
+X23665Y9361D2*
+Y9863D1*
+X23832Y9361D2*
+X23497D1*
+X22665Y9265D2*
+X22832Y9959D1*
+X22522Y9265D2*
+X22689Y9959D1*
+X22832Y9540D2*
+X22498D1*
+X22857Y9684D2*
+X22522D1*
+X22319Y9481D2*
+Y9457D1*
+X22295Y9409D1*
+X22272Y9385D1*
+X22224Y9361D1*
+X22128D1*
+X22080Y9385D1*
+X22057Y9409D1*
+X22032Y9457D1*
+Y9504D1*
+X22057Y9552D1*
+X22104Y9624D1*
+X22344Y9863D1*
+X22009D1*
+M02*
@@ -1,33 +1,33 @@ -#define SMD_ENABLED -#define SMD_SECOND_ENABLED -#define SMD_SELECT_PORT D -#define SMD_SELECT_PIN 6 -#define SMD_DATA_PORT D -#define SMD_DATA0_PIN 0 -#define SMD_DATA1_PIN 1 -#define SMD_DATA2_PIN 2 -#define SMD_DATA3_PIN 3 -#define SMD_DATA4_PIN 4 -#define SMD_DATA5_PIN 5 -#define SMD_DATA_PORT2 B -#define SMD_DATA0_PIN2 0 -#define SMD_DATA1_PIN2 1 -#define SMD_DATA2_PIN2 2 -#define SMD_DATA3_PIN2 3 -#define SMD_DATA4_PIN2 4 -#define SMD_DATA5_PIN2 5 -#define SMD_USE_DENDY9_PIN - -#define NES_ENABLED -#define NES_SECOND_ENABLED -#define NES_PORT C -#define NES_LATCH_PIN 4 -#define NES_CLOCK_PIN 5 -#define NES_DATA_PIN 6 -#define NES_DATA_PIN2 7 - -#define LED_PORT B -#define LED_RED_PIN 6 -#define LED_GREEN_PIN 7 - -//#define LINUX_WORKAROUND +#define SMD_ENABLED
+#define SMD_SECOND_ENABLED
+#define SMD_SELECT_PORT D
+#define SMD_SELECT_PIN 6
+#define SMD_DATA_PORT D
+#define SMD_DATA0_PIN 0
+#define SMD_DATA1_PIN 1
+#define SMD_DATA2_PIN 2
+#define SMD_DATA3_PIN 3
+#define SMD_DATA4_PIN 4
+#define SMD_DATA5_PIN 5
+#define SMD_DATA_PORT2 B
+#define SMD_DATA0_PIN2 0
+#define SMD_DATA1_PIN2 1
+#define SMD_DATA2_PIN2 2
+#define SMD_DATA3_PIN2 3
+#define SMD_DATA4_PIN2 4
+#define SMD_DATA5_PIN2 5
+#define SMD_USE_DENDY9_PIN
+
+#define NES_ENABLED
+#define NES_SECOND_ENABLED
+#define NES_PORT C
+#define NES_LATCH_PIN 4
+#define NES_CLOCK_PIN 5
+#define NES_DATA_PIN 6
+#define NES_DATA_PIN2 7
+
+#define LED_PORT B
+#define LED_RED_PIN 6
+#define LED_GREEN_PIN 7
+
+//#define LINUX_WORKAROUND
@@ -1,462 +1,463 @@ -#include "defines.h" -#include <avr/io.h> -#include <util/delay.h> -#include "gamepad.h" -#include "bits.h" - -#ifdef NES_ENABLED -void init_nes_gamepad() -{ - NES_PORT_DDR |= 1<<NES_LATCH_PIN; // Latch, output - NES_PORT_DDR |= 1<<NES_CLOCK_PIN; // Clock, output - NES_PORT_DDR &= ~(1<<NES_DATA_PIN); // Data, input - NES_PORT_PORT |= 1<<NES_DATA_PIN; // Data, pull-up -#ifdef NES_SECOND_ENABLED - NES_PORT_DDR &= ~(1<<NES_DATA_PIN2); // Data, input - NES_PORT_PORT |= 1<<NES_DATA_PIN2; // Data, pull-up -#endif -#ifdef NES_THIRD_ENABLED - NES_PORT_DDR &= ~(1<<NES_DATA_PIN3); // Data, input - NES_PORT_PORT |= 1<<NES_DATA_PIN3; // Data, pull-up -#endif -#ifdef NES_FORTH_ENABLED - NES_PORT_DDR &= ~(1<<NES_DATA_PIN4); // Data, input - NES_PORT_PORT |= 1<<NES_DATA_PIN4; // Data, pull-up -#endif -} - -uint32_t get_nes_gamepad() -{ - uint32_t gamepad_data = 0; - NES_PORT_PORT &= ~(1<<NES_LATCH_PIN); // Latch - _delay_us(10); - int b; - for (b = 0; b < 8; b++) - { - NES_PORT_PORT &= ~(1<<NES_CLOCK_PIN); // Clock - _delay_us(10); - gamepad_data |= (((NES_PORT_PIN>>NES_DATA_PIN)&1)<<b); -#ifdef NES_SECOND_ENABLED - gamepad_data |= (uint32_t)(((NES_PORT_PIN>>NES_DATA_PIN2)&1)<<b) << 8; -#endif -#ifdef NES_THIRD_ENABLED - gamepad_data |= (uint32_t)(((NES_PORT_PIN>>NES_DATA_PIN3)&1)<<b) << 16; -#endif -#ifdef NES_FORTH_ENABLED - gamepad_data |= (uint32_t)(((NES_PORT_PIN>>NES_DATA_PIN4)&1)<<b) << 24; -#endif - NES_PORT_PORT |= 1<<NES_CLOCK_PIN; // Clock - _delay_us(10); - } - NES_PORT_PORT |= 1<<NES_LATCH_PIN; // Latch - return gamepad_data; -} -#endif - -uint32_t get_nes_gamepad_decoded(void) -{ - return ~get_nes_gamepad(); -} - -#ifdef SNES_ENABLED -void init_snes_gamepad() -{ - SNES_PORT_DDR |= 1<<SNES_LATCH_PIN; // Latch, output - SNES_PORT_DDR |= 1<<SNES_CLOCK_PIN; // Clock, output - SNES_PORT_DDR &= ~(1<<SNES_DATA_PIN); // Data, input - SNES_PORT_PORT |= 1<<SNES_DATA_PIN; // Data, pull-up -} - -uint16_t get_snes_gamepad() -{ - uint16_t gamepad_data = 0; - SNES_PORT_PORT &= ~(1<<SNES_LATCH_PIN); // Latch - int b; - for (b = 0; b < 16; b++) - { - SNES_PORT_PORT &= ~(1<<SNES_CLOCK_PIN); // Clock - _delay_us(10); - gamepad_data |= ((uint16_t)((SNES_PORT_PIN>>SNES_DATA_PIN)&1)<<b); - SNES_PORT_PORT |= 1<<SNES_CLOCK_PIN; // Clock - _delay_us(10); - } - SNES_PORT_PORT |= 1<<SNES_LATCH_PIN; // Latch - return gamepad_data; -} -#endif - -#ifdef N64_ENABLED -void init_n64_gamepad() -{ - TCCR0 |= _BV(CS00); // Timer - N64_PORT_DDR &= ~(1<<N64_DATA_PIN); // Input - N64_PORT_PORT &= ~(1<<N64_DATA_PIN); // No pull-up (using external resistor) -} - -int get_n64_gamepad(uint8_t* data) -{ - int b, bit; - N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_1; N64SEND_STOP; - for (b = 0; b < 4; b++) - { - data[b] = 0; - for (bit = 0; bit < 8; bit++) - { - TCNT0 = 0; - while (!N64SIGNAL) if (TCNT0 >= 0xF0) return 0; - TCNT0 = 0; - while(N64SIGNAL) if (TCNT0 >= 0xF0) return 0; - data[b] = data[b]<<1; - if (TCNT0 < 0x24 * F_CPU / 20000000UL) data[b] |= 1; - } - } - return 1; -} -#endif - -#ifdef SMD_ENABLED -void init_smd_gamepad() -{ - SMD_SELECT_PORT_DDR |= 1<<SMD_SELECT_PIN; // Select, output - SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA0_PIN); // Data 0, input - SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA1_PIN); // Data 1, input - SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA2_PIN); // Data 2, input - SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA3_PIN); // Data 3, input - SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA4_PIN); // Data 4, input - SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA5_PIN); // Data 5, input - SMD_DATA_PORT_PORT |= 1<<SMD_DATA0_PIN; // Data 0, pull-up - SMD_DATA_PORT_PORT |= 1<<SMD_DATA1_PIN; // Data 1, pull-up - SMD_DATA_PORT_PORT |= 1<<SMD_DATA2_PIN; // Data 2, pull-up - SMD_DATA_PORT_PORT |= 1<<SMD_DATA3_PIN; // Data 3, pull-up - SMD_DATA_PORT_PORT |= 1<<SMD_DATA4_PIN; // Data 4, pull-up - SMD_DATA_PORT_PORT |= 1<<SMD_DATA5_PIN; // Data 5, pull-up -#ifdef SMD_SECOND_ENABLED - SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA0_PIN2); // Data 0, input - SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA1_PIN2); // Data 1, input - SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA2_PIN2); // Data 2, input - SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA3_PIN2); // Data 3, input - SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA4_PIN2); // Data 4, input - SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA5_PIN2); // Data 5, input - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA0_PIN2; // Data 0, pull-up - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA1_PIN2; // Data 1, pull-up - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA2_PIN2; // Data 2, pull-up - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA3_PIN2; // Data 3, pull-up - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA4_PIN2; // Data 4, pull-up - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA5_PIN2; // Data 5, pull-up -#endif -} - -uint32_t get_smd_gamepad() -{ - uint8_t gamepad_data_low = 0xFF; - uint8_t gamepad_data_high = 0xFF; - uint8_t gamepad_data_low2 = 0xFF; - uint8_t gamepad_data_high2 = 0xFF; - SMD_SELECT_PORT_PORT &= ~(1<<SMD_SELECT_PIN); // Select - low - _delay_us(50); - gamepad_data_low = ((SMD_DATA_PORT_PIN>>SMD_DATA0_PIN)&1) - | (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<1) - | (((SMD_DATA_PORT_PIN>>SMD_DATA2_PIN)&1)<<2) - | (((SMD_DATA_PORT_PIN>>SMD_DATA3_PIN)&1)<<3) - | (((SMD_DATA_PORT_PIN>>SMD_DATA4_PIN)&1)<<4) - | (((SMD_DATA_PORT_PIN>>SMD_DATA5_PIN)&1)<<5); -#ifdef SMD_SECOND_ENABLED - gamepad_data_low2 = ((SMD_DATA_PORT_PIN2>>SMD_DATA0_PIN2)&1) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA1_PIN2)&1)<<1) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA2_PIN2)&1)<<2) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA3_PIN2)&1)<<3) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA4_PIN2)&1)<<4) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA5_PIN2)&1)<<5); -#endif - SMD_SELECT_PORT_PORT |= 1<<SMD_SELECT_PIN; // Select - high - _delay_us(50); - gamepad_data_high = ((SMD_DATA_PORT_PIN>>SMD_DATA0_PIN)&1) - | (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<1) - | (((SMD_DATA_PORT_PIN>>SMD_DATA2_PIN)&1)<<2) - | (((SMD_DATA_PORT_PIN>>SMD_DATA3_PIN)&1)<<3) - | (((SMD_DATA_PORT_PIN>>SMD_DATA4_PIN)&1)<<4) - | (((SMD_DATA_PORT_PIN>>SMD_DATA5_PIN)&1)<<5); -#ifdef SMD_SECOND_ENABLED - gamepad_data_high2 = ((SMD_DATA_PORT_PIN2>>SMD_DATA0_PIN2)&1) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA1_PIN2)&1)<<1) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA2_PIN2)&1)<<2) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA3_PIN2)&1)<<3) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA4_PIN2)&1)<<4) - | (((SMD_DATA_PORT_PIN2>>SMD_DATA5_PIN2)&1)<<5); -#endif - return ((uint32_t)gamepad_data_high2<<24) | ((uint32_t)gamepad_data_low2<<16) | ((uint32_t)gamepad_data_high<<8) | gamepad_data_low; -} -#endif - -#ifdef SMD_USE_DENDY9_PIN -void init_dendy_9pin(uint8_t n) -{ // 3, 4, 6 - if (!n) - { - SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA1_PIN); // Data 1 aka data, input - SMD_DATA_PORT_DDR |= 1<<SMD_DATA2_PIN; // Data 2 aka latch, output - SMD_DATA_PORT_DDR |= 1<<SMD_DATA3_PIN; // Data 3 aka clock, output - SMD_DATA_PORT_DDR |= 1<<SMD_DATA4_PIN; // Data 4 aka VCC, output - SMD_DATA_PORT_PORT |= 1<<SMD_DATA1_PIN; // Data 1 aka data, pull-up - SMD_DATA_PORT_PORT |= 1<<SMD_DATA2_PIN; // Data 2 aka latch, hi - SMD_DATA_PORT_PORT |= 1<<SMD_DATA3_PIN; // Data 3 aka clock, hi - SMD_DATA_PORT_PORT |= 1<<SMD_DATA4_PIN; // Data 4 aka VCC, hi - } else { -#ifdef SMD_SECOND_ENABLED - SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA1_PIN2); // Data 1 aka data, input - SMD_DATA_PORT_DDR2 |= 1<<SMD_DATA2_PIN2; // Data 2 aka latch, output - SMD_DATA_PORT_DDR2 |= 1<<SMD_DATA3_PIN2; // Data 3 aka clock, output - SMD_DATA_PORT_DDR2 |= 1<<SMD_DATA4_PIN2; // Data 4 aka VCC, output - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA1_PIN2; // Data 1 aka data, pull-up - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA2_PIN2; // Data 2 aka latch, hi - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA3_PIN2; // Data 3 aka clock, hi - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA4_PIN2; // Data 4 aka VCC, hi -#endif - } -} - -uint8_t get_dendy_9pin(uint8_t n) -{ - uint8_t gamepad_data = 0; - if (!n) - { - SMD_DATA_PORT_PORT &= ~(1<<SMD_DATA2_PIN); // Data 2 aka latch, low - _delay_us(10); - int b; - for (b = 0; b < 8; b++) - { - SMD_DATA_PORT_PORT &= ~(1<<SMD_DATA3_PIN); // Data 3 aka clock, low - _delay_us(10); - gamepad_data |= (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<b); - SMD_DATA_PORT_PORT |= 1<<SMD_DATA3_PIN; // Data 3 aka clock, hi - _delay_us(10); - } - SMD_DATA_PORT_PORT |= 1<<SMD_DATA2_PIN; // Data 2 aka latch, hi - } else { -#ifdef SMD_SECOND_ENABLED - SMD_DATA_PORT_PORT2 &= ~(1<<SMD_DATA2_PIN2); // Data 2 aka latch, low - _delay_us(10); - int b; - for (b = 0; b < 8; b++) - { - SMD_DATA_PORT_PORT2 &= ~(1<<SMD_DATA3_PIN2); // Data 3 aka clock, low - _delay_us(10); - gamepad_data |= (((SMD_DATA_PORT_PIN2>>SMD_DATA1_PIN2)&1)<<b); - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA3_PIN2; // Data 3 aka clock, hi - _delay_us(10); - } - SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA2_PIN2; // Data 2 aka latch, hi -#endif - } - return gamepad_data; -} -#endif - -uint32_t get_smd_gamepad_decoded(void) -{ - uint32_t result = 0; - uint8_t smd_detected[2] = {0, 0}; - uint8_t b, c, d; - for (c = 0; c < 4; c++) - { - uint32_t smd_gamepad_data = get_smd_gamepad(); - for (d = 0; d < 2; d++) // for each controller - { - if ((smd_gamepad_data & 0b00001111) || (c < 2)) // 3-button mode - { - for (b = 0; b <= 13; b++) - { - if (!((smd_gamepad_data>>b)&1)) - { - switch (b) - { - case 0: // Up - set_bit(result, 8 + d*16); - break; - case 1: // Down - set_bit(result, 9 + d*16); - break; - case 2: // always low - case 3: - smd_detected[d] = 1; - break; - case 4: // A - set_bit(result, 0 + d*16); - break; - case 5: // Start - set_bit(result, 6 + d*16); - break; - case 10: // Left - set_bit(result, 10 + d*16); - break; - case 11: // Right - set_bit(result, 11 + d*16); - break; - case 12: // B - set_bit(result, 1 + d*16); - break; - case 13: // C - set_bit(result, 2 + d*16); - break; - } - } - } - } else { // 6-button mode - for (b = 4; b <= 11; b++) - { - if (!((smd_gamepad_data>>b)&1)) - { - switch (b) - { - case 4: // A - set_bit(result, 0 + d*16); - break; - case 5: // Start - set_bit(result, 6 + d*16); - break; - case 8: // Z - set_bit(result, 5 + d*16); - break; - case 9: // Y - set_bit(result, 4 + d*16); - break; - case 10: // X - set_bit(result, 3 + d*16); - break; - case 11: // Mode - set_bit(result, 7 + d*16); - break; - } - } - } - } - smd_gamepad_data >>= 16; - } - } - if (!smd_detected[0] || !smd_detected[1]) // SMD gamepad is not connected? - { -#ifdef SMD_USE_DENDY9_PIN - // so maybe it's 9-pin dendy gamepad? - for (d = 0; d < 2; d++) - { - if (!smd_detected[d]) - { - init_dendy_9pin(d); - _delay_us(50); - uint32_t dendy_data = ~get_dendy_9pin(d); - result &= ~(0xFFFFUL << (d*16)); - result |= ((dendy_data & 0x0F) | ((dendy_data & 0xF0) << 4)) << (16*d); - } - } - init_smd_gamepad(); // back to SMD mode -#endif - } - - return result; -} - -#ifdef DUALSHOCK_ENABLED -void init_dualshock_gamepad() -{ - DUALSHOCK_PORT_DDR |= (1<<DUALSHOCK_COMMAND_PIN); // Command pin - output - DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_COMMAND_PIN); // Command pin - login high - DUALSHOCK_PORT_DDR &= ~(1<<DUALSHOCK_DATA_PIN); // Data pin - input - DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_DATA_PIN); // Data pin - pull-up - DUALSHOCK_PORT_DDR |= (1<<DUALSHOCK_CLOCK_PIN); // Clock - output - DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_CLOCK_PIN); // Clock - logic high - DUALSHOCK_ATTENTION_DDR |= (1<<DUALSHOCK_ATTENTION_PIN); // Attention - output - DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN); // Attention - logic high -#ifdef DUALSHOCK_SECOND_ENABLED - DUALSHOCK_ATTENTION_DDR |= (1<<DUALSHOCK_ATTENTION_PIN2); // Attention 2 - output - DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN2); // Attention 2 - logic high -#endif - /* - DUALSHOCK_PORT_DDR &= ~(1<<DUALSHOCK_ACK_PIN); // Ack pin - input - DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_ACK_PIN); // Ack pin - pull-up - */ -} - -int dualshock_command(uint8_t* command, uint8_t* data, int length, uint8_t controller_number) -{ - if (!controller_number) - DUALSHOCK_ATTENTION_PORT &= ~(1<<DUALSHOCK_ATTENTION_PIN); // Attention! - else - DUALSHOCK_ATTENTION_PORT &= ~(1<<DUALSHOCK_ATTENTION_PIN2); // Attention! - _delay_us(20); - int b, bit; - for (b = 0; b < length; b++) // Each byte... - { - data[b] = 0; - for (bit = 0; bit < 8; bit++) - { - if ((command[b] >> bit) & 1) // 1? - DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_COMMAND_PIN); // 1! - else DUALSHOCK_PORT_PORT &= ~(1<<DUALSHOCK_COMMAND_PIN); // 0! - DUALSHOCK_PORT_PORT &= ~(1<<DUALSHOCK_CLOCK_PIN); // Clock - logic low - _delay_us(20); - if ((DUALSHOCK_PORT_PIN >> DUALSHOCK_DATA_PIN) & 1) // Reading data... 1? - data[b] |= (1<<bit); // 1! - DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_CLOCK_PIN); // Clock - logic high - _delay_us(20); - } - if (b == 1 && data[1] == 0xFF) // Alternative device detection - { - if (!controller_number) - DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN); // No attention... - else - DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN2); // No attention... - return 0; - } - /* - if (b<length-1) // Waiting for ACK - { - int t; - for (t = 0; t < 50; t++) - { - if (!((DUALSHOCK_PORT_PIN >> DUALSHOCK_ACK_PIN)&1)) // ACK reveived - { - ok = 1; - break; - } - _delay_us(1); - } - if ((b < 2) && !ok) return 0; // No ACK in first two bytes? Aboooort! Saving time - } - */ - } - if (!controller_number) - DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN); // No attention... - else - DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN2); // No attention... - _delay_us(20); - return 1; -} - -int get_dualshock_gamepad(uint8_t* data, int size, uint8_t motor_small, uint8_t motor_large, uint8_t controller_number) // pointer to uint8_t[21], number of bytes to request, vibration... -{ - static uint8_t dualshock_configered[2] = {0, 0}; - - uint8_t command_query[21] = {0x01, 0x42, 0, motor_small, motor_large, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - if (!dualshock_command(command_query, data, size, controller_number)) - { - dualshock_configered[controller_number] = 0; - return 0; - } - if (!dualshock_configered[controller_number]) // Need to reconfigure dualshock - { - uint8_t command_config_mode[5] = {0x01, 0x43, 0x00, 0x01, 0x00}; - if (!dualshock_command(command_config_mode, data, sizeof(command_config_mode), controller_number)) return 0; - uint8_t command_analog_mode[9] = {0x01, 0x44, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00}; - if (!dualshock_command(command_analog_mode, data, sizeof(command_analog_mode), controller_number)) return 0; - uint8_t command_config_motors[9] = {0x01, 0x4D, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF}; - if (!dualshock_command(command_config_motors, data, sizeof(command_config_motors), controller_number)) return 0; - uint8_t command_config_pressure[9] = {0x01, 0x4F, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00}; - if (!dualshock_command(command_config_pressure, data, sizeof(command_config_pressure), controller_number)) return 0; - uint8_t command_config_mode_exit[8] = {0x01, 0x43, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF}; - if (!dualshock_command(command_config_mode_exit, data, sizeof(command_config_mode_exit), controller_number)) return 0; - dualshock_configered[controller_number] = 1; - if (!dualshock_command(command_query, data, size, controller_number)) return 0; - } - return 1; -} -#endif +#include "defines.h"
+#include <avr/io.h>
+#include <util/delay.h>
+#include "gamepad.h"
+#include "bits.h"
+
+#ifdef NES_ENABLED
+void init_nes_gamepad()
+{
+ NES_PORT_DDR |= 1<<NES_LATCH_PIN; // Latch, output
+ NES_PORT_DDR |= 1<<NES_CLOCK_PIN; // Clock, output
+ NES_PORT_DDR &= ~(1<<NES_DATA_PIN); // Data, input
+ NES_PORT_PORT |= 1<<NES_DATA_PIN; // Data, pull-up
+#ifdef NES_SECOND_ENABLED
+ NES_PORT_DDR &= ~(1<<NES_DATA_PIN2); // Data, input
+ NES_PORT_PORT |= 1<<NES_DATA_PIN2; // Data, pull-up
+#endif
+#ifdef NES_THIRD_ENABLED
+ NES_PORT_DDR &= ~(1<<NES_DATA_PIN3); // Data, input
+ NES_PORT_PORT |= 1<<NES_DATA_PIN3; // Data, pull-up
+#endif
+#ifdef NES_FORTH_ENABLED
+ NES_PORT_DDR &= ~(1<<NES_DATA_PIN4); // Data, input
+ NES_PORT_PORT |= 1<<NES_DATA_PIN4; // Data, pull-up
+#endif
+}
+
+uint32_t get_nes_gamepad()
+{
+ uint32_t gamepad_data = 0;
+ NES_PORT_PORT |= 1<<NES_LATCH_PIN; // Latch
+ _delay_us(10);
+ NES_PORT_PORT &= ~(1<<NES_LATCH_PIN); // Latch
+ _delay_us(10);
+ int b;
+ for (b = 0; b < 8; b++)
+ {
+ NES_PORT_PORT &= ~(1<<NES_CLOCK_PIN); // Clock
+ _delay_us(10);
+ gamepad_data |= (((NES_PORT_PIN>>NES_DATA_PIN)&1)<<b);
+#ifdef NES_SECOND_ENABLED
+ gamepad_data |= (uint32_t)(((NES_PORT_PIN>>NES_DATA_PIN2)&1)<<b) << 8;
+#endif
+#ifdef NES_THIRD_ENABLED
+ gamepad_data |= (uint32_t)(((NES_PORT_PIN>>NES_DATA_PIN3)&1)<<b) << 16;
+#endif
+#ifdef NES_FORTH_ENABLED
+ gamepad_data |= (uint32_t)(((NES_PORT_PIN>>NES_DATA_PIN4)&1)<<b) << 24;
+#endif
+ NES_PORT_PORT |= 1<<NES_CLOCK_PIN; // Clock
+ _delay_us(10);
+ }
+ return gamepad_data;
+}
+#endif
+
+uint32_t get_nes_gamepad_decoded(void)
+{
+ return ~get_nes_gamepad();
+}
+
+#ifdef SNES_ENABLED
+void init_snes_gamepad()
+{
+ SNES_PORT_DDR |= 1<<SNES_LATCH_PIN; // Latch, output
+ SNES_PORT_DDR |= 1<<SNES_CLOCK_PIN; // Clock, output
+ SNES_PORT_DDR &= ~(1<<SNES_DATA_PIN); // Data, input
+ SNES_PORT_PORT |= 1<<SNES_DATA_PIN; // Data, pull-up
+}
+
+uint16_t get_snes_gamepad()
+{
+ uint16_t gamepad_data = 0;
+ SNES_PORT_PORT &= ~(1<<SNES_LATCH_PIN); // Latch
+ int b;
+ for (b = 0; b < 16; b++)
+ {
+ SNES_PORT_PORT &= ~(1<<SNES_CLOCK_PIN); // Clock
+ _delay_us(10);
+ gamepad_data |= ((uint16_t)((SNES_PORT_PIN>>SNES_DATA_PIN)&1)<<b);
+ SNES_PORT_PORT |= 1<<SNES_CLOCK_PIN; // Clock
+ _delay_us(10);
+ }
+ SNES_PORT_PORT |= 1<<SNES_LATCH_PIN; // Latch
+ return gamepad_data;
+}
+#endif
+
+#ifdef N64_ENABLED
+void init_n64_gamepad()
+{
+ TCCR0 |= _BV(CS00); // Timer
+ N64_PORT_DDR &= ~(1<<N64_DATA_PIN); // Input
+ N64_PORT_PORT &= ~(1<<N64_DATA_PIN); // No pull-up (using external resistor)
+}
+
+int get_n64_gamepad(uint8_t* data)
+{
+ int b, bit;
+ N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_0; N64SEND_1; N64SEND_STOP;
+ for (b = 0; b < 4; b++)
+ {
+ data[b] = 0;
+ for (bit = 0; bit < 8; bit++)
+ {
+ TCNT0 = 0;
+ while (!N64SIGNAL) if (TCNT0 >= 0xF0) return 0;
+ TCNT0 = 0;
+ while(N64SIGNAL) if (TCNT0 >= 0xF0) return 0;
+ data[b] = data[b]<<1;
+ if (TCNT0 < 0x24 * F_CPU / 20000000UL) data[b] |= 1;
+ }
+ }
+ return 1;
+}
+#endif
+
+#ifdef SMD_ENABLED
+void init_smd_gamepad()
+{
+ SMD_SELECT_PORT_DDR |= 1<<SMD_SELECT_PIN; // Select, output
+ SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA0_PIN); // Data 0, input
+ SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA1_PIN); // Data 1, input
+ SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA2_PIN); // Data 2, input
+ SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA3_PIN); // Data 3, input
+ SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA4_PIN); // Data 4, input
+ SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA5_PIN); // Data 5, input
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA0_PIN; // Data 0, pull-up
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA1_PIN; // Data 1, pull-up
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA2_PIN; // Data 2, pull-up
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA3_PIN; // Data 3, pull-up
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA4_PIN; // Data 4, pull-up
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA5_PIN; // Data 5, pull-up
+#ifdef SMD_SECOND_ENABLED
+ SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA0_PIN2); // Data 0, input
+ SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA1_PIN2); // Data 1, input
+ SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA2_PIN2); // Data 2, input
+ SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA3_PIN2); // Data 3, input
+ SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA4_PIN2); // Data 4, input
+ SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA5_PIN2); // Data 5, input
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA0_PIN2; // Data 0, pull-up
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA1_PIN2; // Data 1, pull-up
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA2_PIN2; // Data 2, pull-up
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA3_PIN2; // Data 3, pull-up
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA4_PIN2; // Data 4, pull-up
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA5_PIN2; // Data 5, pull-up
+#endif
+}
+
+uint32_t get_smd_gamepad()
+{
+ uint8_t gamepad_data_low = 0xFF;
+ uint8_t gamepad_data_high = 0xFF;
+ uint8_t gamepad_data_low2 = 0xFF;
+ uint8_t gamepad_data_high2 = 0xFF;
+ SMD_SELECT_PORT_PORT &= ~(1<<SMD_SELECT_PIN); // Select - low
+ _delay_us(50);
+ gamepad_data_low = ((SMD_DATA_PORT_PIN>>SMD_DATA0_PIN)&1)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<1)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA2_PIN)&1)<<2)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA3_PIN)&1)<<3)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA4_PIN)&1)<<4)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA5_PIN)&1)<<5);
+#ifdef SMD_SECOND_ENABLED
+ gamepad_data_low2 = ((SMD_DATA_PORT_PIN2>>SMD_DATA0_PIN2)&1)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA1_PIN2)&1)<<1)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA2_PIN2)&1)<<2)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA3_PIN2)&1)<<3)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA4_PIN2)&1)<<4)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA5_PIN2)&1)<<5);
+#endif
+ SMD_SELECT_PORT_PORT |= 1<<SMD_SELECT_PIN; // Select - high
+ _delay_us(50);
+ gamepad_data_high = ((SMD_DATA_PORT_PIN>>SMD_DATA0_PIN)&1)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<1)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA2_PIN)&1)<<2)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA3_PIN)&1)<<3)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA4_PIN)&1)<<4)
+ | (((SMD_DATA_PORT_PIN>>SMD_DATA5_PIN)&1)<<5);
+#ifdef SMD_SECOND_ENABLED
+ gamepad_data_high2 = ((SMD_DATA_PORT_PIN2>>SMD_DATA0_PIN2)&1)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA1_PIN2)&1)<<1)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA2_PIN2)&1)<<2)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA3_PIN2)&1)<<3)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA4_PIN2)&1)<<4)
+ | (((SMD_DATA_PORT_PIN2>>SMD_DATA5_PIN2)&1)<<5);
+#endif
+ return ((uint32_t)gamepad_data_high2<<24) | ((uint32_t)gamepad_data_low2<<16) | ((uint32_t)gamepad_data_high<<8) | gamepad_data_low;
+}
+#endif
+
+#ifdef SMD_USE_DENDY9_PIN
+void init_dendy_9pin(uint8_t n)
+{ // 3, 4, 6
+ if (!n)
+ {
+ SMD_DATA_PORT_DDR &= ~(1<<SMD_DATA1_PIN); // Data 1 aka data, input
+ SMD_DATA_PORT_DDR |= 1<<SMD_DATA2_PIN; // Data 2 aka latch, output
+ SMD_DATA_PORT_DDR |= 1<<SMD_DATA3_PIN; // Data 3 aka clock, output
+ SMD_DATA_PORT_DDR |= 1<<SMD_DATA4_PIN; // Data 4 aka VCC, output
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA1_PIN; // Data 1 aka data, pull-up
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA2_PIN; // Data 2 aka latch, hi
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA3_PIN; // Data 3 aka clock, hi
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA4_PIN; // Data 4 aka VCC, hi
+ } else {
+#ifdef SMD_SECOND_ENABLED
+ SMD_DATA_PORT_DDR2 &= ~(1<<SMD_DATA1_PIN2); // Data 1 aka data, input
+ SMD_DATA_PORT_DDR2 |= 1<<SMD_DATA2_PIN2; // Data 2 aka latch, output
+ SMD_DATA_PORT_DDR2 |= 1<<SMD_DATA3_PIN2; // Data 3 aka clock, output
+ SMD_DATA_PORT_DDR2 |= 1<<SMD_DATA4_PIN2; // Data 4 aka VCC, output
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA1_PIN2; // Data 1 aka data, pull-up
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA2_PIN2; // Data 2 aka latch, hi
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA3_PIN2; // Data 3 aka clock, hi
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA4_PIN2; // Data 4 aka VCC, hi
+#endif
+ }
+}
+
+uint8_t get_dendy_9pin(uint8_t n)
+{
+ uint8_t gamepad_data = 0;
+ if (!n)
+ {
+ SMD_DATA_PORT_PORT &= ~(1<<SMD_DATA2_PIN); // Data 2 aka latch, low
+ _delay_us(10);
+ int b;
+ for (b = 0; b < 8; b++)
+ {
+ SMD_DATA_PORT_PORT &= ~(1<<SMD_DATA3_PIN); // Data 3 aka clock, low
+ _delay_us(10);
+ gamepad_data |= (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<b);
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA3_PIN; // Data 3 aka clock, hi
+ _delay_us(10);
+ }
+ SMD_DATA_PORT_PORT |= 1<<SMD_DATA2_PIN; // Data 2 aka latch, hi
+ } else {
+#ifdef SMD_SECOND_ENABLED
+ SMD_DATA_PORT_PORT2 &= ~(1<<SMD_DATA2_PIN2); // Data 2 aka latch, low
+ _delay_us(10);
+ int b;
+ for (b = 0; b < 8; b++)
+ {
+ SMD_DATA_PORT_PORT2 &= ~(1<<SMD_DATA3_PIN2); // Data 3 aka clock, low
+ _delay_us(10);
+ gamepad_data |= (((SMD_DATA_PORT_PIN2>>SMD_DATA1_PIN2)&1)<<b);
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA3_PIN2; // Data 3 aka clock, hi
+ _delay_us(10);
+ }
+ SMD_DATA_PORT_PORT2 |= 1<<SMD_DATA2_PIN2; // Data 2 aka latch, hi
+#endif
+ }
+ return gamepad_data;
+}
+#endif
+
+uint32_t get_smd_gamepad_decoded(void)
+{
+ uint32_t result = 0;
+ uint8_t smd_detected[2] = {0, 0};
+ uint8_t b, c, d;
+ for (c = 0; c < 4; c++)
+ {
+ uint32_t smd_gamepad_data = get_smd_gamepad();
+ for (d = 0; d < 2; d++) // for each controller
+ {
+ if ((smd_gamepad_data & 0b00001111) || (c < 2)) // 3-button mode
+ {
+ for (b = 0; b <= 13; b++)
+ {
+ if (!((smd_gamepad_data>>b)&1))
+ {
+ switch (b)
+ {
+ case 0: // Up
+ set_bit(result, 8 + d*16);
+ break;
+ case 1: // Down
+ set_bit(result, 9 + d*16);
+ break;
+ case 2: // always low
+ case 3:
+ smd_detected[d] = 1;
+ break;
+ case 4: // A
+ set_bit(result, 0 + d*16);
+ break;
+ case 5: // Start
+ set_bit(result, 6 + d*16);
+ break;
+ case 10: // Left
+ set_bit(result, 10 + d*16);
+ break;
+ case 11: // Right
+ set_bit(result, 11 + d*16);
+ break;
+ case 12: // B
+ set_bit(result, 1 + d*16);
+ break;
+ case 13: // C
+ set_bit(result, 2 + d*16);
+ break;
+ }
+ }
+ }
+ } else { // 6-button mode
+ for (b = 4; b <= 11; b++)
+ {
+ if (!((smd_gamepad_data>>b)&1))
+ {
+ switch (b)
+ {
+ case 4: // A
+ set_bit(result, 0 + d*16);
+ break;
+ case 5: // Start
+ set_bit(result, 6 + d*16);
+ break;
+ case 8: // Z
+ set_bit(result, 5 + d*16);
+ break;
+ case 9: // Y
+ set_bit(result, 4 + d*16);
+ break;
+ case 10: // X
+ set_bit(result, 3 + d*16);
+ break;
+ case 11: // Mode
+ set_bit(result, 7 + d*16);
+ break;
+ }
+ }
+ }
+ }
+ smd_gamepad_data >>= 16;
+ }
+ }
+ if (!smd_detected[0] || !smd_detected[1]) // SMD gamepad is not connected?
+ {
+#ifdef SMD_USE_DENDY9_PIN
+ // so maybe it's 9-pin dendy gamepad?
+ for (d = 0; d < 2; d++)
+ {
+ if (!smd_detected[d])
+ {
+ init_dendy_9pin(d);
+ _delay_us(50);
+ uint32_t dendy_data = ~get_dendy_9pin(d);
+ result &= ~(0xFFFFUL << (d*16));
+ result |= ((dendy_data & 0x0F) | ((dendy_data & 0xF0) << 4)) << (16*d);
+ }
+ }
+ init_smd_gamepad(); // back to SMD mode
+#endif
+ }
+
+ return result;
+}
+
+#ifdef DUALSHOCK_ENABLED
+void init_dualshock_gamepad()
+{
+ DUALSHOCK_PORT_DDR |= (1<<DUALSHOCK_COMMAND_PIN); // Command pin - output
+ DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_COMMAND_PIN); // Command pin - login high
+ DUALSHOCK_PORT_DDR &= ~(1<<DUALSHOCK_DATA_PIN); // Data pin - input
+ DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_DATA_PIN); // Data pin - pull-up
+ DUALSHOCK_PORT_DDR |= (1<<DUALSHOCK_CLOCK_PIN); // Clock - output
+ DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_CLOCK_PIN); // Clock - logic high
+ DUALSHOCK_ATTENTION_DDR |= (1<<DUALSHOCK_ATTENTION_PIN); // Attention - output
+ DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN); // Attention - logic high
+#ifdef DUALSHOCK_SECOND_ENABLED
+ DUALSHOCK_ATTENTION_DDR |= (1<<DUALSHOCK_ATTENTION_PIN2); // Attention 2 - output
+ DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN2); // Attention 2 - logic high
+#endif
+ /*
+ DUALSHOCK_PORT_DDR &= ~(1<<DUALSHOCK_ACK_PIN); // Ack pin - input
+ DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_ACK_PIN); // Ack pin - pull-up
+ */
+}
+
+int dualshock_command(uint8_t* command, uint8_t* data, int length, uint8_t controller_number)
+{
+ if (!controller_number)
+ DUALSHOCK_ATTENTION_PORT &= ~(1<<DUALSHOCK_ATTENTION_PIN); // Attention!
+ else
+ DUALSHOCK_ATTENTION_PORT &= ~(1<<DUALSHOCK_ATTENTION_PIN2); // Attention!
+ _delay_us(20);
+ int b, bit;
+ for (b = 0; b < length; b++) // Each byte...
+ {
+ data[b] = 0;
+ for (bit = 0; bit < 8; bit++)
+ {
+ if ((command[b] >> bit) & 1) // 1?
+ DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_COMMAND_PIN); // 1!
+ else DUALSHOCK_PORT_PORT &= ~(1<<DUALSHOCK_COMMAND_PIN); // 0!
+ DUALSHOCK_PORT_PORT &= ~(1<<DUALSHOCK_CLOCK_PIN); // Clock - logic low
+ _delay_us(20);
+ if ((DUALSHOCK_PORT_PIN >> DUALSHOCK_DATA_PIN) & 1) // Reading data... 1?
+ data[b] |= (1<<bit); // 1!
+ DUALSHOCK_PORT_PORT |= (1<<DUALSHOCK_CLOCK_PIN); // Clock - logic high
+ _delay_us(20);
+ }
+ if (b == 1 && data[1] == 0xFF) // Alternative device detection
+ {
+ if (!controller_number)
+ DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN); // No attention...
+ else
+ DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN2); // No attention...
+ return 0;
+ }
+ /*
+ if (b<length-1) // Waiting for ACK
+ {
+ int t;
+ for (t = 0; t < 50; t++)
+ {
+ if (!((DUALSHOCK_PORT_PIN >> DUALSHOCK_ACK_PIN)&1)) // ACK reveived
+ {
+ ok = 1;
+ break;
+ }
+ _delay_us(1);
+ }
+ if ((b < 2) && !ok) return 0; // No ACK in first two bytes? Aboooort! Saving time
+ }
+ */
+ }
+ if (!controller_number)
+ DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN); // No attention...
+ else
+ DUALSHOCK_ATTENTION_PORT |= (1<<DUALSHOCK_ATTENTION_PIN2); // No attention...
+ _delay_us(20);
+ return 1;
+}
+
+int get_dualshock_gamepad(uint8_t* data, int size, uint8_t motor_small, uint8_t motor_large, uint8_t controller_number) // pointer to uint8_t[21], number of bytes to request, vibration...
+{
+ static uint8_t dualshock_configered[2] = {0, 0};
+
+ uint8_t command_query[21] = {0x01, 0x42, 0, motor_small, motor_large, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ if (!dualshock_command(command_query, data, size, controller_number))
+ {
+ dualshock_configered[controller_number] = 0;
+ return 0;
+ }
+ if (!dualshock_configered[controller_number]) // Need to reconfigure dualshock
+ {
+ uint8_t command_config_mode[5] = {0x01, 0x43, 0x00, 0x01, 0x00};
+ if (!dualshock_command(command_config_mode, data, sizeof(command_config_mode), controller_number)) return 0;
+ uint8_t command_analog_mode[9] = {0x01, 0x44, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00};
+ if (!dualshock_command(command_analog_mode, data, sizeof(command_analog_mode), controller_number)) return 0;
+ uint8_t command_config_motors[9] = {0x01, 0x4D, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF};
+ if (!dualshock_command(command_config_motors, data, sizeof(command_config_motors), controller_number)) return 0;
+ uint8_t command_config_pressure[9] = {0x01, 0x4F, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00};
+ if (!dualshock_command(command_config_pressure, data, sizeof(command_config_pressure), controller_number)) return 0;
+ uint8_t command_config_mode_exit[8] = {0x01, 0x43, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF};
+ if (!dualshock_command(command_config_mode_exit, data, sizeof(command_config_mode_exit), controller_number)) return 0;
+ dualshock_configered[controller_number] = 1;
+ if (!dualshock_command(command_query, data, size, controller_number)) return 0;
+ }
+ return 1;
+}
+#endif
@@ -1,59 +1,59 @@ -#ifndef _GAMEPAD_H_ -#define _GAMEPAD_H_ - -#include <inttypes.h> -#include "defines.h" - -#define GLUE(a,b) a##b -#define DDR(p) GLUE(DDR,p) -#define PORT(p) GLUE(PORT,p) -#define PIN(p) GLUE(PIN,p) - -#define N64_PORT_PORT PORT(N64_PORT) -#define N64_PORT_DDR DDR(N64_PORT) -#define N64_PORT_PIN PIN(N64_PORT) - -#define NES_PORT_PORT PORT(NES_PORT) -#define NES_PORT_DDR DDR(NES_PORT) -#define NES_PORT_PIN PIN(NES_PORT) - -#define SNES_PORT_PORT PORT(NES_PORT) -#define SNES_PORT_DDR DDR(NES_PORT) -#define SNES_PORT_PIN PIN(NES_PORT) - -#define SMD_SELECT_PORT_PORT PORT(SMD_SELECT_PORT) -#define SMD_SELECT_PORT_DDR DDR(SMD_SELECT_PORT) -#define SMD_DATA_PORT_PORT PORT(SMD_DATA_PORT) -#define SMD_DATA_PORT_DDR DDR(SMD_DATA_PORT) -#define SMD_DATA_PORT_PIN PIN(SMD_DATA_PORT) -#define SMD_DATA_PORT_PORT2 PORT(SMD_DATA_PORT2) -#define SMD_DATA_PORT_DDR2 DDR(SMD_DATA_PORT2) -#define SMD_DATA_PORT_PIN2 PIN(SMD_DATA_PORT2) - -#define DUALSHOCK_PORT_PORT PORT(DUALSHOCK_PORT) -#define DUALSHOCK_PORT_DDR DDR(DUALSHOCK_PORT) -#define DUALSHOCK_PORT_PIN PIN(DUALSHOCK_PORT) - -#define WAIT(t) {TCNT0=0; while(TCNT0 < (F_CPU / 1000000UL) * t);} - -#define N64SEND(t) {N64_PORT_DDR |= (1<<N64_DATA_PIN); WAIT(t); N64_PORT_DDR &= ~(1<<N64_DATA_PIN);} -#define N64SEND_1 {N64SEND(1); WAIT(3);} -#define N64SEND_0 {N64SEND(3); WAIT(1);} -#define N64SEND_STOP {N64SEND(1); WAIT(2);} -#define N64SIGNAL (!((N64_PORT_PIN>>N64_DATA_PIN)&1)) - -void init_nes_gamepad(void); -uint32_t get_nes_gamepad(void); -uint32_t get_nes_gamepad_decoded(void); -void init_snes_gamepad(void); -uint16_t get_snes_gamepad(void); -void init_n64_gamepad(void); -int get_n64_gamepad(uint8_t* data); -void init_smd_gamepad(void); -uint32_t get_smd_gamepad(void); -uint32_t get_smd_gamepad_decoded(void); -void init_dualshock_gamepad(void); -int dualshock_command(uint8_t* command, uint8_t* data, int length); -int get_dualshock_gamepad(uint8_t* data, int size, uint8_t motor_small, uint8_t motor_large); - -#endif +#ifndef _GAMEPAD_H_
+#define _GAMEPAD_H_
+
+#include <inttypes.h>
+#include "defines.h"
+
+#define GLUE(a,b) a##b
+#define DDR(p) GLUE(DDR,p)
+#define PORT(p) GLUE(PORT,p)
+#define PIN(p) GLUE(PIN,p)
+
+#define N64_PORT_PORT PORT(N64_PORT)
+#define N64_PORT_DDR DDR(N64_PORT)
+#define N64_PORT_PIN PIN(N64_PORT)
+
+#define NES_PORT_PORT PORT(NES_PORT)
+#define NES_PORT_DDR DDR(NES_PORT)
+#define NES_PORT_PIN PIN(NES_PORT)
+
+#define SNES_PORT_PORT PORT(NES_PORT)
+#define SNES_PORT_DDR DDR(NES_PORT)
+#define SNES_PORT_PIN PIN(NES_PORT)
+
+#define SMD_SELECT_PORT_PORT PORT(SMD_SELECT_PORT)
+#define SMD_SELECT_PORT_DDR DDR(SMD_SELECT_PORT)
+#define SMD_DATA_PORT_PORT PORT(SMD_DATA_PORT)
+#define SMD_DATA_PORT_DDR DDR(SMD_DATA_PORT)
+#define SMD_DATA_PORT_PIN PIN(SMD_DATA_PORT)
+#define SMD_DATA_PORT_PORT2 PORT(SMD_DATA_PORT2)
+#define SMD_DATA_PORT_DDR2 DDR(SMD_DATA_PORT2)
+#define SMD_DATA_PORT_PIN2 PIN(SMD_DATA_PORT2)
+
+#define DUALSHOCK_PORT_PORT PORT(DUALSHOCK_PORT)
+#define DUALSHOCK_PORT_DDR DDR(DUALSHOCK_PORT)
+#define DUALSHOCK_PORT_PIN PIN(DUALSHOCK_PORT)
+
+#define WAIT(t) {TCNT0=0; while(TCNT0 < (F_CPU / 1000000UL) * t);}
+
+#define N64SEND(t) {N64_PORT_DDR |= (1<<N64_DATA_PIN); WAIT(t); N64_PORT_DDR &= ~(1<<N64_DATA_PIN);}
+#define N64SEND_1 {N64SEND(1); WAIT(3);}
+#define N64SEND_0 {N64SEND(3); WAIT(1);}
+#define N64SEND_STOP {N64SEND(1); WAIT(2);}
+#define N64SIGNAL (!((N64_PORT_PIN>>N64_DATA_PIN)&1))
+
+void init_nes_gamepad(void);
+uint32_t get_nes_gamepad(void);
+uint32_t get_nes_gamepad_decoded(void);
+void init_snes_gamepad(void);
+uint16_t get_snes_gamepad(void);
+void init_n64_gamepad(void);
+int get_n64_gamepad(uint8_t* data);
+void init_smd_gamepad(void);
+uint32_t get_smd_gamepad(void);
+uint32_t get_smd_gamepad_decoded(void);
+void init_dualshock_gamepad(void);
+int dualshock_command(uint8_t* command, uint8_t* data, int length);
+int get_dualshock_gamepad(uint8_t* data, int size, uint8_t motor_small, uint8_t motor_large);
+
+#endif
diff --git a/nessmd2usb.c b/nessmd2usb.c index f70c790..e3e66bf 100644 --- a/nessmd2usb.c +++ b/nessmd2usb.c @@ -1,212 +1,212 @@ -#include <avr/eeprom.h> -#include "nessmd2usb.h" -#include "defines.h" -#include "bits.h" -#include "gamepad.h" - -/** Buffer to hold the previously generated HID report, for comparison purposes inside the HID class driver. */ -static uint8_t PrevJoystickHIDReportBuffer[sizeof(USB_JoystickReport_Data_t)]; - -/** LUFA HID Class driver interface configuration and state information. This structure is - * passed to all HID Class driver functions, so that multiple instances of the same class - * within a device can be differentiated from one another. - */ -USB_ClassInfo_HID_Device_t Joystick_HID_Interface = - { - .Config = - { - .InterfaceNumber = INTERFACE_ID_Joystick, - .ReportINEndpoint = - { - .Address = JOYSTICK_EPADDR, - .Size = JOYSTICK_EPSIZE, - .Banks = 1, - }, - .PrevReportINBuffer = PrevJoystickHIDReportBuffer, - .PrevReportINBufferSize = sizeof(PrevJoystickHIDReportBuffer), - }, - }; - - -/** Main program entry point. This routine contains the overall program flow, including initial - * setup of all components and the main program loop. - */ - -volatile uint8_t current_report = 0; -volatile uint8_t buttons[4]; -volatile int x[4]; -volatile int y[4]; - -int main(void) -{ - LEDS_INIT; - RED_OFF; - GREEN_OFF; - - SetupHardware(); - - GlobalInterruptEnable(); - - int c; - - for (;;) - { - uint32_t smd_gamepad_data = get_smd_gamepad_decoded(); - uint16_t nes_gamepad_data = get_nes_gamepad_decoded(); - - buttons[0] = smd_gamepad_data & 0xFF; - buttons[1] = (smd_gamepad_data>>16) & 0xFF; - buttons[2] = nes_gamepad_data&0x0F; - buttons[3] = (nes_gamepad_data>>8)&0x0F; - - for (c = 0; c < 4; c++) - { - uint8_t dpad = 0; - switch (c) - { - case 0: - dpad = (smd_gamepad_data>>8) & 0xF; - break; - case 1: - dpad = (smd_gamepad_data>>24) & 0xF; - break; - case 2: - dpad = (nes_gamepad_data>>4) & 0xF; - break; - case 3: - dpad = (nes_gamepad_data>>12) & 0xF; - break; - } - if (dpad&1) y[c] = -100; - else if (dpad&2) y[c] = 100; - else y[c] = 0; - if (dpad&4) x[c] = -100; - else if (dpad&8) x[c] = 100; - else x[c] = 0; - } - - if (smd_gamepad_data || nes_gamepad_data) - { - GREEN_ON; - } else { - GREEN_OFF; - } - - for (c = 0; c < 1000; c++) - { - _delay_us(1); - HID_Device_USBTask(&Joystick_HID_Interface); - USB_USBTask(); - } - } -} - -/** Configures the board hardware and chip peripherals for the demo's functionality. */ -void SetupHardware(void) -{ -#if (ARCH == ARCH_AVR8) - /* Disable watchdog if enabled by bootloader/fuses */ - MCUSR &= ~(1 << WDRF); - wdt_disable(); - - /* Disable clock division */ - clock_prescale_set(clock_div_1); -#elif (ARCH == ARCH_XMEGA) - /* Start the PLL to multiply the 2MHz RC oscillator to 32MHz and switch the CPU core to run from it */ - XMEGACLK_StartPLL(CLOCK_SRC_INT_RC2MHZ, 2000000, F_CPU); - XMEGACLK_SetCPUClockSource(CLOCK_SRC_PLL); - - /* Start the 32MHz internal RC oscillator and start the DFLL to increase it to 48MHz using the USB SOF as a reference */ - XMEGACLK_StartInternalOscillator(CLOCK_SRC_INT_RC32MHZ); - XMEGACLK_StartDFLL(CLOCK_SRC_INT_RC32MHZ, DFLL_REF_INT_USBSOF, F_USB); - - PMIC.CTRL = PMIC_LOLVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_HILVLEN_bm; -#endif - - /* Hardware Initialization */ - USB_Init(); - init_smd_gamepad(); - init_nes_gamepad(); -} - -/** Event handler for the library USB Connection event. */ -void EVENT_USB_Device_Connect(void) -{ -} - -/** Event handler for the library USB Disconnection event. */ -void EVENT_USB_Device_Disconnect(void) -{ - RED_OFF; -} - -/** Event handler for the library USB Configuration Changed event. */ -void EVENT_USB_Device_ConfigurationChanged(void) -{ - bool ConfigSuccess = true; - - ConfigSuccess &= HID_Device_ConfigureEndpoints(&Joystick_HID_Interface); - - USB_Device_EnableSOFEvents(); - - RED_ON; -} - -/** Event handler for the library USB Control Request reception event. */ -void EVENT_USB_Device_ControlRequest(void) -{ - HID_Device_ProcessControlRequest(&Joystick_HID_Interface); -} - -/** Event handler for the USB device Start Of Frame event. */ -void EVENT_USB_Device_StartOfFrame(void) -{ - HID_Device_MillisecondElapsed(&Joystick_HID_Interface); -} - -/** HID class driver callback function for the creation of HID reports to the host. - * - * \param[in] HIDInterfaceInfo Pointer to the HID class interface configuration structure being referenced - * \param[in,out] ReportID Report ID requested by the host if non-zero, otherwise callback should set to the generated report ID - * \param[in] ReportType Type of the report to create, either HID_REPORT_ITEM_In or HID_REPORT_ITEM_Feature - * \param[out] ReportData Pointer to a buffer where the created report should be stored - * \param[out] ReportSize Number of bytes written in the report (or zero if no report is to be sent) - * - * \return Boolean \c true to force the sending of the report, \c false to let the library determine if it needs to be sent - */ -bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, - uint8_t* const ReportID, - const uint8_t ReportType, - void* ReportData, - uint16_t* const ReportSize) -{ - USB_JoystickReport_Data_t* JoystickReport = (USB_JoystickReport_Data_t*)ReportData; - - current_report = (current_report+1) % 4; - - JoystickReport->X = x[current_report]; - JoystickReport->Y = y[current_report]; - JoystickReport->Button |= buttons[current_report]; - - *ReportID = current_report+1; - *ReportSize = sizeof(USB_JoystickReport_Data_t); - return true; -} - -/** HID class driver callback function for the processing of HID reports from the host. - * - * \param[in] HIDInterfaceInfo Pointer to the HID class interface configuration structure being referenced - * \param[in] ReportID Report ID of the received report from the host - * \param[in] ReportType The type of report that the host has sent, either HID_REPORT_ITEM_Out or HID_REPORT_ITEM_Feature - * \param[in] ReportData Pointer to a buffer where the received report has been stored - * \param[in] ReportSize Size in bytes of the received HID report - */ -void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, - const uint8_t ReportID, - const uint8_t ReportType, - const void* ReportData, - const uint16_t ReportSize) -{ - // Unused (but mandatory for the HID class driver) in this demo, since there are no Host->Device reports -} - +#include <avr/eeprom.h>
+#include "nessmd2usb.h"
+#include "defines.h"
+#include "bits.h"
+#include "gamepad.h"
+
+/** Buffer to hold the previously generated HID report, for comparison purposes inside the HID class driver. */
+static uint8_t PrevJoystickHIDReportBuffer[sizeof(USB_JoystickReport_Data_t)];
+
+/** LUFA HID Class driver interface configuration and state information. This structure is
+ * passed to all HID Class driver functions, so that multiple instances of the same class
+ * within a device can be differentiated from one another.
+ */
+USB_ClassInfo_HID_Device_t Joystick_HID_Interface =
+ {
+ .Config =
+ {
+ .InterfaceNumber = INTERFACE_ID_Joystick,
+ .ReportINEndpoint =
+ {
+ .Address = JOYSTICK_EPADDR,
+ .Size = JOYSTICK_EPSIZE,
+ .Banks = 1,
+ },
+ .PrevReportINBuffer = PrevJoystickHIDReportBuffer,
+ .PrevReportINBufferSize = sizeof(PrevJoystickHIDReportBuffer),
+ },
+ };
+
+
+/** Main program entry point. This routine contains the overall program flow, including initial
+ * setup of all components and the main program loop.
+ */
+
+volatile uint8_t current_report = 0;
+volatile uint8_t buttons[4];
+volatile int x[4];
+volatile int y[4];
+
+int main(void)
+{
+ LEDS_INIT;
+ RED_OFF;
+ GREEN_OFF;
+
+ SetupHardware();
+
+ GlobalInterruptEnable();
+
+ uint16_t c;
+
+ for (;;)
+ {
+ uint32_t smd_gamepad_data = get_smd_gamepad_decoded();
+ uint16_t nes_gamepad_data = get_nes_gamepad_decoded();
+
+ buttons[0] = smd_gamepad_data & 0xFF;
+ buttons[1] = (smd_gamepad_data>>16) & 0xFF;
+ buttons[2] = nes_gamepad_data&0x0F;
+ buttons[3] = (nes_gamepad_data>>8)&0x0F;
+
+ for (c = 0; c < 4; c++)
+ {
+ uint8_t dpad = 0;
+ switch (c)
+ {
+ case 0:
+ dpad = (smd_gamepad_data>>8) & 0xF;
+ break;
+ case 1:
+ dpad = (smd_gamepad_data>>24) & 0xF;
+ break;
+ case 2:
+ dpad = (nes_gamepad_data>>4) & 0xF;
+ break;
+ case 3:
+ dpad = (nes_gamepad_data>>12) & 0xF;
+ break;
+ }
+ if (dpad&1) y[c] = -100;
+ else if (dpad&2) y[c] = 100;
+ else y[c] = 0;
+ if (dpad&4) x[c] = -100;
+ else if (dpad&8) x[c] = 100;
+ else x[c] = 0;
+ }
+
+ if (smd_gamepad_data || nes_gamepad_data)
+ {
+ GREEN_ON;
+ } else {
+ GREEN_OFF;
+ }
+
+ for (c = 0; c < 1000; c++)
+ {
+ _delay_us(1);
+ HID_Device_USBTask(&Joystick_HID_Interface);
+ USB_USBTask();
+ }
+ }
+}
+
+/** Configures the board hardware and chip peripherals for the demo's functionality. */
+void SetupHardware(void)
+{
+#if (ARCH == ARCH_AVR8)
+ /* Disable watchdog if enabled by bootloader/fuses */
+ MCUSR &= ~(1 << WDRF);
+ wdt_disable();
+
+ /* Disable clock division */
+ clock_prescale_set(clock_div_1);
+#elif (ARCH == ARCH_XMEGA)
+ /* Start the PLL to multiply the 2MHz RC oscillator to 32MHz and switch the CPU core to run from it */
+ XMEGACLK_StartPLL(CLOCK_SRC_INT_RC2MHZ, 2000000, F_CPU);
+ XMEGACLK_SetCPUClockSource(CLOCK_SRC_PLL);
+
+ /* Start the 32MHz internal RC oscillator and start the DFLL to increase it to 48MHz using the USB SOF as a reference */
+ XMEGACLK_StartInternalOscillator(CLOCK_SRC_INT_RC32MHZ);
+ XMEGACLK_StartDFLL(CLOCK_SRC_INT_RC32MHZ, DFLL_REF_INT_USBSOF, F_USB);
+
+ PMIC.CTRL = PMIC_LOLVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_HILVLEN_bm;
+#endif
+
+ /* Hardware Initialization */
+ USB_Init();
+ init_smd_gamepad();
+ init_nes_gamepad();
+}
+
+/** Event handler for the library USB Connection event. */
+void EVENT_USB_Device_Connect(void)
+{
+}
+
+/** Event handler for the library USB Disconnection event. */
+void EVENT_USB_Device_Disconnect(void)
+{
+ RED_OFF;
+}
+
+/** Event handler for the library USB Configuration Changed event. */
+void EVENT_USB_Device_ConfigurationChanged(void)
+{
+ bool ConfigSuccess = true;
+
+ ConfigSuccess &= HID_Device_ConfigureEndpoints(&Joystick_HID_Interface);
+
+ USB_Device_EnableSOFEvents();
+
+ RED_ON;
+}
+
+/** Event handler for the library USB Control Request reception event. */
+void EVENT_USB_Device_ControlRequest(void)
+{
+ HID_Device_ProcessControlRequest(&Joystick_HID_Interface);
+}
+
+/** Event handler for the USB device Start Of Frame event. */
+void EVENT_USB_Device_StartOfFrame(void)
+{
+ HID_Device_MillisecondElapsed(&Joystick_HID_Interface);
+}
+
+/** HID class driver callback function for the creation of HID reports to the host.
+ *
+ * \param[in] HIDInterfaceInfo Pointer to the HID class interface configuration structure being referenced
+ * \param[in,out] ReportID Report ID requested by the host if non-zero, otherwise callback should set to the generated report ID
+ * \param[in] ReportType Type of the report to create, either HID_REPORT_ITEM_In or HID_REPORT_ITEM_Feature
+ * \param[out] ReportData Pointer to a buffer where the created report should be stored
+ * \param[out] ReportSize Number of bytes written in the report (or zero if no report is to be sent)
+ *
+ * \return Boolean \c true to force the sending of the report, \c false to let the library determine if it needs to be sent
+ */
+bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
+ uint8_t* const ReportID,
+ const uint8_t ReportType,
+ void* ReportData,
+ uint16_t* const ReportSize)
+{
+ USB_JoystickReport_Data_t* JoystickReport = (USB_JoystickReport_Data_t*)ReportData;
+
+ current_report = (current_report+1) % 4;
+
+ JoystickReport->X = x[current_report];
+ JoystickReport->Y = y[current_report];
+ JoystickReport->Button |= buttons[current_report];
+
+ *ReportID = current_report+1;
+ *ReportSize = sizeof(USB_JoystickReport_Data_t);
+ return true;
+}
+
+/** HID class driver callback function for the processing of HID reports from the host.
+ *
+ * \param[in] HIDInterfaceInfo Pointer to the HID class interface configuration structure being referenced
+ * \param[in] ReportID Report ID of the received report from the host
+ * \param[in] ReportType The type of report that the host has sent, either HID_REPORT_ITEM_Out or HID_REPORT_ITEM_Feature
+ * \param[in] ReportData Pointer to a buffer where the received report has been stored
+ * \param[in] ReportSize Size in bytes of the received HID report
+ */
+void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
+ const uint8_t ReportID,
+ const uint8_t ReportType,
+ const void* ReportData,
+ const uint16_t ReportSize)
+{
+ // Unused (but mandatory for the HID class driver) in this demo, since there are no Host->Device reports
+}
+
diff --git a/nessmd2usb.h b/nessmd2usb.h index 4c05f95..f553a93 100644 --- a/nessmd2usb.h +++ b/nessmd2usb.h @@ -1,113 +1,113 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, 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 disclaims 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. -*/ - -/** \file - * - * Header file for Joystick.c. - */ - -#ifndef _JOYSTICK_H_ -#define _JOYSTICK_H_ - - #define GLUE(a,b) a##b - #define DDR(p) GLUE(DDR,p) - #define PORT(p) GLUE(PORT,p) - - #define LED_RED_DDR DDR(LED_PORT) - #define LED_RED_PORT PORT(LED_PORT) - - #define LEDS_INIT LED_RED_DDR |= (1<<LED_RED_PIN)|(1<<LED_GREEN_PIN) - #define RED_ON LED_RED_PORT |= (1<<LED_RED_PIN) - #define RED_OFF LED_RED_PORT &= ~(1<<LED_RED_PIN) - #define GREEN_ON LED_RED_PORT |= (1<<LED_GREEN_PIN) - #define GREEN_OFF LED_RED_PORT &= ~(1<<LED_GREEN_PIN) - - /* Includes: */ - #include <avr/io.h> - #include <avr/wdt.h> - #include <avr/power.h> - #include <avr/interrupt.h> - #include <string.h> - - #include "Descriptors.h" - - #include <LUFA/Drivers/Board/Joystick.h> - #include <LUFA/Drivers/Board/LEDs.h> - #include <LUFA/Drivers/Board/Buttons.h> - #include <LUFA/Drivers/USB/USB.h> - #include <LUFA/Platform/Platform.h> - - /* Type Defines: */ - /** Type define for the joystick HID report structure, for creating and sending HID reports to the host PC. - * This mirrors the layout described to the host in the HID report descriptor, in Descriptors.c. - */ - typedef struct - { - int8_t X; /**< Current absolute joystick X position, as a signed 8-bit integer */ - int8_t Y; /**< Current absolute joystick Y position, as a signed 8-bit integer */ - //int8_t Z; /**< Current absolute joystick Z position, as a signed 8-bit integer */ - uint8_t Button; /**< Bit mask of the currently pressed joystick buttons */ - } USB_JoystickReport_Data_t; - - /* Macros: */ - /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */ - #define LEDMASK_USB_NOTREADY LEDS_LED1 - - /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */ - #define LEDMASK_USB_ENUMERATING (LEDS_LED2 | LEDS_LED3) - - /** LED mask for the library LED driver, to indicate that the USB interface is ready. */ - #define LEDMASK_USB_READY (LEDS_LED2 | LEDS_LED4) - - /** 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) - - /* Function Prototypes: */ - void SetupHardware(void); - - void EVENT_USB_Device_Connect(void); - void EVENT_USB_Device_Disconnect(void); - void EVENT_USB_Device_ConfigurationChanged(void); - void EVENT_USB_Device_ControlRequest(void); - void EVENT_USB_Device_StartOfFrame(void); - - bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, - uint8_t* const ReportID, - const uint8_t ReportType, - void* ReportData, - uint16_t* const ReportSize); - void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, - const uint8_t ReportID, - const uint8_t ReportType, - const void* ReportData, - const uint16_t ReportSize); - -#endif - +/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2014.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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 disclaims 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.
+*/
+
+/** \file
+ *
+ * Header file for Joystick.c.
+ */
+
+#ifndef _JOYSTICK_H_
+#define _JOYSTICK_H_
+
+ #define GLUE(a,b) a##b
+ #define DDR(p) GLUE(DDR,p)
+ #define PORT(p) GLUE(PORT,p)
+
+ #define LED_RED_DDR DDR(LED_PORT)
+ #define LED_RED_PORT PORT(LED_PORT)
+
+ #define LEDS_INIT LED_RED_DDR |= (1<<LED_RED_PIN)|(1<<LED_GREEN_PIN)
+ #define RED_ON LED_RED_PORT |= (1<<LED_RED_PIN)
+ #define RED_OFF LED_RED_PORT &= ~(1<<LED_RED_PIN)
+ #define GREEN_ON LED_RED_PORT |= (1<<LED_GREEN_PIN)
+ #define GREEN_OFF LED_RED_PORT &= ~(1<<LED_GREEN_PIN)
+
+ /* Includes: */
+ #include <avr/io.h>
+ #include <avr/wdt.h>
+ #include <avr/power.h>
+ #include <avr/interrupt.h>
+ #include <string.h>
+
+ #include "Descriptors.h"
+
+ #include <LUFA/Drivers/Board/Joystick.h>
+ #include <LUFA/Drivers/Board/LEDs.h>
+ #include <LUFA/Drivers/Board/Buttons.h>
+ #include <LUFA/Drivers/USB/USB.h>
+ #include <LUFA/Platform/Platform.h>
+
+ /* Type Defines: */
+ /** Type define for the joystick HID report structure, for creating and sending HID reports to the host PC.
+ * This mirrors the layout described to the host in the HID report descriptor, in Descriptors.c.
+ */
+ typedef struct
+ {
+ int8_t X; /**< Current absolute joystick X position, as a signed 8-bit integer */
+ int8_t Y; /**< Current absolute joystick Y position, as a signed 8-bit integer */
+ //int8_t Z; /**< Current absolute joystick Z position, as a signed 8-bit integer */
+ uint8_t Button; /**< Bit mask of the currently pressed joystick buttons */
+ } USB_JoystickReport_Data_t;
+
+ /* Macros: */
+ /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
+ #define LEDMASK_USB_NOTREADY LEDS_LED1
+
+ /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
+ #define LEDMASK_USB_ENUMERATING (LEDS_LED2 | LEDS_LED3)
+
+ /** LED mask for the library LED driver, to indicate that the USB interface is ready. */
+ #define LEDMASK_USB_READY (LEDS_LED2 | LEDS_LED4)
+
+ /** 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)
+
+ /* Function Prototypes: */
+ void SetupHardware(void);
+
+ void EVENT_USB_Device_Connect(void);
+ void EVENT_USB_Device_Disconnect(void);
+ void EVENT_USB_Device_ConfigurationChanged(void);
+ void EVENT_USB_Device_ControlRequest(void);
+ void EVENT_USB_Device_StartOfFrame(void);
+
+ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
+ uint8_t* const ReportID,
+ const uint8_t ReportType,
+ void* ReportData,
+ uint16_t* const ReportSize);
+ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
+ const uint8_t ReportID,
+ const uint8_t ReportType,
+ const void* ReportData,
+ const uint16_t ReportSize);
+
+#endif
+
diff --git a/nessmd2usb.hex b/nessmd2usb.hex index 27ea82b..3798462 100644 --- a/nessmd2usb.hex +++ b/nessmd2usb.hex @@ -1,450 +1,450 @@ -:10000000EAC0000004C1000002C1000000C10000FD -:10001000FEC00000FCC00000FAC00000F8C00000F4 -:10002000F6C00000F4C00000F2C000000C947C098F -:10003000EEC00000ECC00000EAC00000E8C0000014 -:10004000E6C00000E4C00000E2C00000E0C0000024 -:10005000DEC00000DCC00000DAC00000D8C0000034 -:10006000D6C00000D4C00000D2C00000D0C0000044 -:10007000CEC0000005010904A10185010901A1000C -:1000800009300931169CFF26640036FFFF46010047 -:10009000950275088102C005091901290815002576 -:1000A00001750195088102750095018101C0050166 -:1000B0000904A10185020901A10009300931169C3A -:1000C000FF26640036FFFF46010095027508810295 -:1000D000C005091901290815002501750195088138 -:1000E00002750095018101C005010904A101850384 -:1000F0000901A10009300931169CFF26640036FF72 -:10010000FF460100950275088102C0050919012901 -:10011000041500250175019504810275049501817E -:1001200001C005010904A10185040901A1000930EC -:100130000931169CFF26640036FFFF460100950238 -:1001400075088102C00509190129041500250175EA -:100150000195048102750495018101C0120110010D -:1001600000000008EB034420010001020001090225 -:100170002200010100C03209040000010300000058 -:1001800009211101000122E800070581030800058B -:1001900004030904100343006C007500730074002D -:1001A0006500720000002E035300650067006100C7 -:1001B0002F00440065006E00640079002000630099 -:1001C0006F006E00740072006F006C006C006500C0 -:1001D00072007300000011241FBECFEFD2E0DEBF1B -:1001E000CDBF11E0A0E0B1E0EAEFFBE102C0059075 -:1001F0000D92A031B107D9F711E0A0E1B1E001C043 -:100200001D92A533B107E1F776D00C94FB0DF8CE23 -:1002100008952E98089580910E0190910F010097F6 -:1002200029F0019790930F0180930E0108950F9389 -:100230001F93D9018091100190E001968370907016 -:1002400080931001E0911001F0E0EE0FFF1FEC5ED3 -:10025000FE4F808191818C93E0911001F0E0EE0FD0 -:10026000FF1FE05EFE4F8081918111968C93119764 -:1002700080911001ECE1F1E0E80FF11D9081129600 -:100280008C911297892B12968C93809110018F5F1D -:10029000FB01808383E090E0F8019183808381E01B -:1002A0001F910F910895089580E091E00C94940CB3 -:1002B00080E091E00E94730CE2EEF0E080818460C7 -:1002C00080832E9A089584B7877F84BF88E10FB614 -:1002D000F89480936000109260000FBE80E090E080 -:1002E00020E80FB6F89420936100809361000FBE60 -:1002F000F4D755D1F3C08F929F92AF92BF92CF9215 -:10030000DF92EF92FF920F931F93CF93DF9384B10D -:10031000806C84B92E982F98D6DF7894B4E68B2E13 -:10032000912CACE9AA2EAFEFBA2EF5E0CF2E1DD35B -:100330007B018C012AD1E0921C01C801AA27BB27AE -:1003400080931D01862F8F7080931E01872F8F70E1 -:1003500080931F01BB27A12F902F8F2D4FE0D42E0C -:10036000D822812F9927AA27BB27582F5F70CB014E -:1003700024E0969587952A95E1F78F70472F42954F -:100380004F7020E030E02130310589F02230310516 -:1003900024F42115310549F006C02230310549F019 -:1003A0002330310541F090E007C09D2D05C0952F09 -:1003B00003C0982F01C0942F90FF08C0F901EE0FE1 -:1003C000FF1FE05EFE4FB182A0820EC0F901EE0F6A -:1003D000FF1F91FF05C0E05EFE4F9182808204C046 -:1003E000E05EFE4F1182108292FF08C0F901EE0F0D -:1003F000FF1FEC5EFE4FB182A0820EC0F901EE0F2E -:10040000FF1F93FF05C0EC5EFE4F9182808204C007 -:10041000EC5EFE4F118210822F5F3F4F243031057A -:1004200009F0B1CFE114F1040105110511F4672BB6 -:1004300011F02F9A01C02F98C0E0D0E08C2D8A9542 -:10044000F1F780E091E00E94A40B0E948F0B2196AF -:1004500083E0C83ED80709F46ACFF0CFDA019330C1 -:10046000B1F0943028F4913041F0923079F50AC01F -:10047000913211F1923251F524C0ECE5F1E022E124 -:1004800030E028C0EEE6F1E022E230E023C0813027 -:1004900049F0813018F08230C9F40AC0E0E9F1E097 -:1004A000849103C0E4E9F1E08491282F30E012C088 -:1004B000E6EAF1E08491F9CFE0E8F1E029E030E00C -:1004C00009C0E4E7F0E028EE30E004C0E0E0F0E04E -:1004D00020E030E0ED93FC93C90108953C9A3D9AE9 -:1004E0003E98469A3F98479A0895EF92FF920F934D -:1004F0001F93449885E38A95F1F7EE24FF24870142 -:1005000060E070E0E5E345988E2F8A95F1F726B11B -:1005100086B1229526952695237030E021703070A3 -:10052000062E02C0220F331F0A94E2F7442737FD3C -:100530004095542F881F8827881F90E0062E02C000 -:10054000880F991F0A94E2F7AA2797FDA095BA2F62 -:10055000BA2FA92F982F8827282B392B4A2B5B2BB2 -:10056000E22AF32A042B152B459A8E2F8A95F1F750 -:100570006F5F7F4F6830710531F6449AB701C8014B -:100580001F910F91FF90EF900895AFDF9B01AC0199 -:100590002095309540955095B901CA010895569A15 -:1005A000509851985298539854985598589A599AE7 -:1005B0005A9A5B9A5C9A5D9A20982198229823987F -:1005C00024982598289A299A2A9A2B9A2C9A2D9A17 -:1005D00008952F923F924F925F926F927F928F92E7 -:1005E0009F92AF92BF92CF92DF92EF92FF920F93C2 -:1005F0001F93DF93CF93CDB7DEB727970FB6F8944D -:10060000DEBF0FBECDBF5E9888EC90E0FC01319755 -:10061000F1F7F9B009B149B029B029B12F8369B117 -:100620006E8313B1A3B1C3B0A3B083B063B05E9ABD -:100630000197F1F789B18D83E9B0E9B1EC83F9B1A4 -:10064000FB8329B12A8369B1698353B183B123B193 -:1006500043B163B1E3B1869590E081709070880FEB -:10066000991F2695269530E021703070220F331F98 -:10067000220F331F822B5170852B46954695469548 -:1006800050E041705070B3E0440F551FBA95E1F748 -:10069000842B62956F7070E061707070F4E0660F8B -:1006A000771FFA95E1F7862BE295E695E770F0E083 -:1006B000E170F07075E0EE0FFF1F7A95E1F78E2B79 -:1006C000282F30E040E050E0522F442733272227E4 -:1006D000A695B0E0A170B070AA0FBB1FC694C694D7 -:1006E000DD2481E0C822DD24CC0CDD1CCC0CDD1C1B -:1006F000AC291170A12BA694A694A694BB24E1E08A -:10070000AE22BB2413E0AA0CBB1C1A95E1F7AA2960 -:100710008294BFE08B229924F1E08F229924F4E0A7 -:10072000880C991CFA95E1F7A82962946694E7E091 -:100730006E22772461E06622772475E0660C771CD0 -:100740007A95E1F7A6298A2F90E0A0E0B0E0DC01DD -:1007500099278827282B392B4A2B5B2B069510E0ED -:1007600001701070000F111F46944694552481E0CB -:1007700048225524440C551C440C551C0429E1E026 -:10078000FE220F292694269426943324F1E02F226A -:10079000332413E0220C331C1A95E1F702296F81F0 -:1007A00062956F70862F90E081709070B4E0880F32 -:1007B000991FBA95E1F7082B8E81829586958770EF -:1007C0008E8390E081709070A5E0880F991FAA95A4 -:1007D000E1F7082B802F90E0A0E0B0E0282B392B28 -:1007E0004A2B5B2BE694FF24E1E0EE22FF24EE0C83 -:1007F000FF1CFC81F695F6958F2F90E0817090702C -:10080000880F991F880F991FE82A6D816170E62A69 -:100810008B818695869586958B8390E0817090700C -:1008200073E0880F991F7A95E1F7E82AEA81E2954B -:10083000EF708E2F90E08170907064E0880F991FA8 -:100840006A95E1F7E82AF981F295F695F7708F2F0E -:1008500090E08170907005E0880F991F0A95E1F78C -:10086000E82A8E2D90E0A0E0B0E0BA2FA92F982FB3 -:100870008827282B392B4A2B5B2BB901CA012796D5 -:100880000FB6F894DEBF0FBECDBFCF91DF911F91A1 -:100890000F91FF90EF90DF90CF90BF90AF909F901F -:1008A0008F907F906F905F904F903F902F90089522 -:1008B000882349F45198529A539A549A599A5A9AB9 -:1008C0005B9A5C9A08952198229A239A249A299AED -:1008D0002A9A2B9A2C9A0895882319F55A9885E319 -:1008E0008A95F1F740E020E030E055E35B98852FF2 -:1008F0008A95F1F789B1869590E081709070022E0B -:1009000002C0880F991F0A94E2F7482B5B9A852F43 -:100910008A95F1F72F5F3F4F2830310539F75A9A02 -:1009200022C02A9885E38A95F1F740E020E030E084 -:1009300055E32B98852F8A95F1F783B1869590E042 -:1009400081709070022E02C0880F991F0A94E2F7FE -:10095000482B2B9A852F8A95F1F72F5F3F4F283030 -:10096000310539F72A9A842F08952F923F924F929A -:100970005F926F927F928F929F92AF92BF92CF922F -:10098000DF92EF92FF920F931F93DF93CF93CDB738 -:10099000DEB7E7970FB6F894DEBF0FBECDBF198262 -:1009A0001A82EE24FF2487011D86CE0101969FAB9B -:1009B0008EABB1E0AB2EB12CC12CD12C0ADE3B01A9 -:1009C0004C01DE011196BC83AB8320E030E066E091 -:1009D00070E0D401C3018F709070A070B070009768 -:1009E000A105B10509F47FC0285F3F4FD601C501BD -:1009F000022E04C0880F991FAA1FBB1F0A94D2F7AA -:100A00008AAB9BABACABBDAB2F5F3F4FD601C501F3 -:100A1000022E04C0880F991FAA1FBB1F0A94D2F789 -:100A20008EA79FA7A8ABB9AB29503040D601C5010E -:100A3000022E04C0880F991FAA1FBB1F0A94D2F769 -:100A400089879A87AB87BC87D601C501062E04C06B -:100A5000880F991FAA1FBB1F0A94D2F78D839E830C -:100A6000AF83B887265F3F4FD601C501022E04C071 -:100A7000880F991FAA1FBB1F0A94D2F78AA39BA3B2 -:100A8000ACA3BDA32F5F3F4FD601C501022E04C00A -:100A9000880F991FAA1FBB1F0A94D2F78E8F9F8FB2 -:100AA000A8A3B9A32A503040D601C501022E04C024 -:100AB000880F991FAA1FBB1F0A94D2F78A8F9B8F9A -:100AC000AC8FBD8F2F5F3F4F15012601022E04C052 -:100AD000220C331C441C551C0A94D2F7225030407F -:100AE000E0E0F0E005C09D85923008F05DC07CCF6D -:100AF000D401C3010E2E04C0B695A795979587958E -:100B00000A94D2F781709070892B09F047C0E430C5 -:100B100041F1E53028F4E130B1F0E230E8F40EC004 -:100B2000EB3071F1EC3028F4E53001F1EA30B1F549 -:100B300022C0EC3051F1ED3089F52CC08AA99BA977 -:100B4000ACA9BDA904C08EA59FA5A8A9B9A9E82AEA -:100B5000F92A0A2B1B2B22C081E0AB81BC818C932C -:100B60001DC089859A85AB85BC85F1CF8D819E811D -:100B7000AF81B885ECCF8AA19BA1ACA1BDA1E7CF85 -:100B80008E8D9F8DA8A1B9A1E2CF8A8D9B8DAC8D52 -:100B9000BD8DDDCFE228F328042915293196EE30EA -:100BA000F10509F0A5CFA0C0D601C501022E04C0F1 -:100BB000880F991FAA1FBB1F0A94D2F78AA79BA769 -:100BC000ACA7BDA7D601C501062E04C0880F991F8A -:100BD000AA1FBB1F0A94D2F78EA39FA3A8A7B9A7E9 -:100BE0002B5F3F4FD601C501022E04C0880F991F0D -:100BF000AA1FBB1F0A94D2F78E8B9F8BA88FB98F29 -:100C000021503040D601C501022E04C0880F991F23 -:100C1000AA1FBB1F0A94D2F78A8B9B8BAC8BBD8B10 -:100C200021503040D601C501022E04C0880F991F03 -:100C3000AA1FBB1F0A94D2F78E879F87A88BB98BF8 -:100C40002C5F3F4F15012601022E04C0220C331CDD -:100C5000441C551C0A94D2F727503040E4E0F0E0E1 -:100C6000D401C3010E2E04C0B695A795979587951C -:100C70000A94D2F781709070892B89F5E830E1F001 -:100C8000E93028F4E43051F0E53049F50CC0EA30A1 -:100C9000E9F0EA30B0F0EB3011F51DC08AA59BA554 -:100CA000ACA5BDA504C08EA19FA1A8A5B9A5E82AA1 -:100CB000F92A0A2B1B2B13C08E899F89A88DB98D09 -:100CC000F6CF8A899B89AC89BD89F1CF8E859F85B6 -:100CD000A889B989ECCFE228F3280429152931968F -:100CE000EC30F10509F0BCCF205F3F4F605F7F4FD4 -:100CF000AB81BC811196BC83AB832032310521F0DE -:100D000034018824992465CEBD85BF5FBD87B4308A -:100D100009F054CE8981882321F08A81882309F043 -:100D200067C06E010894C11CD11CAA24BB24FFEF2C -:100D30004F2EFFEF5F2E612C712CE3E02E2E312C15 -:100D40002C0E3D1E9C2CEEA99E1AD6018C91882358 -:100D500009F042C0892DACDD88EC90E00197F1F7F5 -:100D6000892DBADD90E080959095AA2797FDA095F2 -:100D7000BA2FA30192010A2C04C0220F331F441F73 -:100D8000551F0A94D2F72095309540955095E22250 -:100D9000F322042315239C01AD01207F30704070A5 -:100DA000507074E0220F331F441F551F7A95D1F7FE -:100DB0008F709070A070B070282B392B4A2B5B2B52 -:100DC0000A2C04C0220F331F441F551F0A94D2F768 -:100DD000E22AF32A042B152B0894C11CD11CE0E154 -:100DE000F0E0AE0EBF1EC214D30409F0ABCFD7DBC8 -:100DF000B701C801E7960FB6F894DEBF0FBECDBFAE -:100E0000CF91DF911F910F91FF90EF90DF90CF90E6 -:100E1000BF90AF909F908F907F906F905F904F901A -:100E20003F902F9008959C014091330150913401DF -:100E30004617570718F4F90190E03DC06115710598 -:100E400011F0AB01F8CF8091E8008E778093E80035 -:100E500040E050E0F0CF80912C01882309F441C09C -:100E6000853009F440C08091E80083FD3EC0809148 -:100E7000E80082FD30C08091E80080FF1CC08091B6 -:100E8000F200282F30E007C081918093F10041509B -:100E900050402F5F3F4F4115510519F02830310563 -:100EA00098F390E02830310509F491E08091E80052 -:100EB0008E778093E8004115510569F6992359F61C -:100EC0000AC080912C01882361F0853061F0809107 -:100ED000E80083FD0AC08091E80082FFF2CF80E045 -:100EE000089582E0089583E0089581E008959C01CB -:100EF0006115710529F48091E8008B778093E800F3 -:100F0000F90120C080912C01882361F1853061F1C5 -:100F10008091E80083FF02C081E008958091E8009D -:100F200082FFF0CF06C08091F10081936150704044 -:100F300021F08091F2008823B1F78091E8008B774F -:100F40008093E80061157105E9F606C080912C01D7 -:100F5000882341F0853041F08091E80080FFF6CF92 -:100F600080E0089582E0089583E008959C01409117 -:100F70003301509134014617570718F4F90190E0F6 -:100F80003EC06115710511F0AB01F8CF8091E8000A -:100F90008E778093E80040E050E0F0CF80912C0104 -:100FA000882309F442C0853009F441C08091E800EB -:100FB00083FD3FC08091E80082FD31C08091E80050 -:100FC00080FF1DC08091F200282F30E008C084917E -:100FD0008093F1003196415050402F5F3F4F4115B3 -:100FE000510519F02830310590F390E02830310593 -:100FF00009F491E08091E8008E778093E800411534 -:10100000510561F6992351F60AC080912C0188237D -:1010100061F0853061F08091E80083FD0AC0809125 -:10102000E80082FFF2CF80E0089582E0089583E037 -:10103000089581E00895BF92CF92DF92EF92FF92E0 -:101040000F931F93CF93DF93182F092F7B016A0112 -:10105000D9D0B82E8823B1F5812F902F9C01E901BA -:10106000C114D10439F0F60180819181E81AF90A9E -:10107000C80FD91F00E010E022C08091E80085FD74 -:1010800016C08091E8008E778093E80048D3C114A1 -:10109000D10449F0F60180819181800F911F9183E5 -:1010A000808385E010C0AED0882349F00CC08991C0 -:1010B0008093F1000894E108F1080F5F1F4FE114DD -:1010C000F104D9F68B2DDF91CF911F910F91FF90F5 -:1010D000EF90DF90CF90BF900895382F282F2EC02B -:1010E000822F8F708093E900231721F4762F942F9D -:1010F00050E006C07091EC009091ED005091F0002E -:1011000091FF1BC08091EB008E7F8093EB0080915C -:10111000ED008D7F8093ED008091EB0081608093E6 -:10112000EB007093EC009093ED005093F0008091F1 -:10113000EE0087FD02C080E008952F5F253080F229 -:101140003F703093E90081E008950F931F93CF9390 -:10115000DF93062FEC0110E02AC09881992329F132 -:101160006B81E981FA812C81892F8F70853018F588 -:10117000223010F452E001C056E040E028E030E0B8 -:1011800003C04F5F220F331F2E173F07D0F3629526 -:10119000660F660F607C991F9927991F692B4295EE -:1011A000407F452B9ADF882331F01F5F259610176B -:1011B000A0F281E001C080E0DF91CF911F910F91FB -:1011C000089580912D0188239CF404C080912C0106 -:1011D0008823B9F08091E80082FFF8CF8091E80081 -:1011E0008B778093E800089580912C01882349F043 -:1011F0008091E80080FFF8CF8091E8008E7780939F -:10120000E80008954091E4005091E50024E68091C3 -:10121000EC0080FF24C08091E80080FD1EC080911A -:101220002C01882311F482E00895853011F483E0C5 -:1012300008958091EB0085FF02C081E008958091C0 -:10124000E4009091E5008417950709F3222311F437 -:1012500084E008952150AC01DACF80E008958091B8 -:10126000E80082FFDCCFF9CF41D043D08091D80095 -:101270008F778093D8008091D80080688093D800C1 -:101280008091D8008F7D8093D80084E089BD86E06E -:1012900089BD09B400FEFDCF10922C0110922801E7 -:1012A00010922A011092290180E060E042E015DFEF -:1012B0008091E1008E7F8093E1008091E200816067 -:1012C0008093E2008091E20088608093E200809148 -:1012D000E0008E7F8093E0000895E3E6F0E08081F7 -:1012E0008E7F808381E080932B01BECF1092E2003D -:1012F00008951092E10008951F920F920FB60F9279 -:1013000011242F933F934F935F936F937F938F930A -:101310009F93AF93BF93EF93FF938091E10082FF80 -:101320000BC08091E20082FF07C08091E1008B7FBB -:101330008093E1000E940B018091E10080FF18C0C2 -:101340008091E20080FF14C08091E2008E7F809344 -:10135000E2008091E20080618093E2008091D800F9 -:1013600080628093D80019BC10922C010E94090160 -:101370008091E10084FF30C08091E20084FF2CC0A6 -:1013800084E089BD86E089BD09B400FEFDCF80916F -:10139000D8008F7D8093D8008091E1008F7E80936C -:1013A000E1008091E2008F7E8093E2008091E20074 -:1013B00081608093E20080912801882311F084E00D -:1013C00007C08091E30087FD02C081E001C083E097 -:1013D00080932C010E9408018091E10083FF22C0CC -:1013E0008091E20083FF1EC08091E100877F80939F -:1013F000E10082E080932C01109228018091E100AD -:101400008E7F8093E1008091E2008E7F8093E200E6 -:101410008091E20080618093E20080E060E042E041 -:101420005CDE7CD1FF91EF91BF91AF919F918F9145 -:101430007F916F915F914F913F912F910F900FBED0 -:101440000F901F9018951F93DF93CF93CDB7DEB702 -:10145000AC970FB6F894DEBF0FBECDBFEDE2F1E062 -:101460008091F100819321E0E533F207C9F70E94F2 -:1014700054018091E80083FF39C180912D013091A2 -:101480002E01353009F487C0363040F43130C9F1CF -:10149000313070F0333009F029C133C0383009F4ED -:1014A000F6C0393009F405C1363009F01FC196C0C5 -:1014B000803821F0823809F019C108C090912901C3 -:1014C00080912A01882399F0926011C080913101A6 -:1014D0008F708093E9008091EB0090E025E0969575 -:1014E00087952A95E1F7982F91701092E9008091E5 -:1014F000E800877F8093E8009093F1001092F1005C -:10150000D1C0882319F0823009F0F0C090E08F71CB -:101510009070009721F0029709F0E8C00CC080910C -:101520002F01813009F0E2C010922A01333069F5B1 -:1015300080932A012AC080912F01882331F52091C0 -:1015400031012F7009F4D2C02093E9008091EB00A3 -:1015500080FF1BC0333021F48091EB00806213C008 -:101560008091EB0080618093EB0081E090E002C00D -:10157000880F991F2A95E2F78093EA001092EA00FB -:101580008091EB0088608093EB001092E9008091DD -:10159000E800877F8AC0882309F0A8C010912F0136 -:1015A0001F778091E3008078812B8093E300809106 -:1015B000E800877F8093E80004DE8091E80080FFE8 -:1015C000FCCF8091E30080688093E300112311F445 -:1015D00082E001C083E080932C0188C08058823073 -:1015E00008F084C080912F019091300123E08C3D60 -:1015F000920709F033C083E08C838AE28B837FB744 -:10160000F894DE0115966EE040E050E011E2E62F1E -:10161000F0E010935700849140FF03C082958F70D3 -:101620006F5F8F70282F30E08A3018F0C901C7969D -:1016300002C0C901C0968D939D934F5F5F4F4431A7 -:10164000510529F77FBF8091E800877F8093E800EC -:10165000CE0103966AE270E0E6DB13C060913101CF -:10166000AE014F5F5F4F0E942E02BC01009709F44C -:101670003DC08091E800877F8093E80089819A814E -:1016800075DC8091E8008B778093E8002FC080386C -:1016900069F58091E800877F8093E80080912801B8 -:1016A0008093F1008091E8008E778093E80089DDD7 -:1016B0001DC08823D9F490912F019230B8F4809105 -:1016C000E800877F8093E800909328017ADD80917D -:1016D0002801882331F48091E30087FD02C081E076 -:1016E00001C084E080932C010E9458018091E800A1 -:1016F00083FF0AC08091E800877F8093E800809193 -:10170000EB0080628093EB00AC960FB6F894DEBFDE -:101710000FBECDBFCF91DF911F91089508951F9304 -:1017200080912C01882371F01091E9008091EC00E8 -:101730001092E9008091E80083FF01C084DE1F70F1 -:101740001093E9001F9108954F925F926F927F92DC -:101750008F929F92AF92BF92CF92DF92EF92FF92C1 -:101760000F931F93DF93CF9300D00F92CDB7DEB7C7 -:101770007C016DB67EB680912C01843009F09AC050 -:101780002091E4003091E500F7018285938582176E -:10179000930709F48FC081818F708093E900809155 -:1017A000E80085FF87C05DB64EB6408550E08DB736 -:1017B0009EB7841B950B0FB6F8949EBF0FBE8DBFCE -:1017C0000DB71EB70F5F1F4F19821B821A82C02EE2 -:1017D000912EC80160E070E050E006D2C701BE0162 -:1017E0006F5F7F4F40E098018E010E5F1F4F0E9498 -:1017F0001701882EF70184859585892B19F4AA2471 -:10180000BB240BC020E0F70186859785892B09F062 -:1018100021E081E02827A22EBB24F7010681178151 -:101820000115110511F4DD2412C04A815B818C2D54 -:10183000992DB801C3D1DD24009711F0DD24D39494 -:10184000F7014085C8016C2D792D50E0C4D18A8103 -:101850009B81892B01F1882021F4DD2011F4AB2834 -:10186000D1F0F701848595859787868781818F7070 -:101870008093E9008981882311F08093F1006A81C7 -:101880007B818C2D992D40E050E0D5DB8091E800E4 -:101890008E778093E8008091E4009091E500F70155 -:1018A00093878287252D342DC9010FB6F8949EBFEA -:1018B0000FBE8DBF0FB6F8947EBE0FBE6DBE0F90EB -:1018C0000F900F90CF91DF911F910F91FF90EF90AC -:1018D000DF90CF90BF90AF909F908F907F906F9050 -:1018E0005F904F900895CF93DF93DC010996FC0140 -:1018F00087E0EF0119928A95E9F781E019968C93B8 -:10190000199784EF91E01D969C938E931C9783E02A -:1019100014968C931497CD01019661E016DC811129 -:1019200081E0DF91CF9108956F927F928F929F9285 -:10193000AF92BF92CF92DF92EF92FF920F931F93DD -:10194000DF93CF9300D00F92CDB7DEB76C016DB6A9 -:101950007EB68091E80083FF1AC1F601808190E095 -:1019600020913101309132012817390709F00FC158 -:1019700080912E01833009F4B2C0843030F481307C -:1019800071F0823009F003C1E6C08A3009F4CBC09F -:101990008B3009F4B5C0893009F0F9C05CC0809182 -:1019A0002D01813A09F0F3C09DB68EB61B821A82D2 -:1019B00080912F01109130018983F601408550E01C -:1019C0008DB79EB7841B950B0FB6F8949EBF0FBEC4 -:1019D0008DBFEDB6FEB60894E11CF11CBE2CAF2CF9 -:1019E000C70160E070E050E0FFD01150C601BE01B9 -:1019F0006F5F7F4F412F97018E010E5F1F4F0E9437 -:101A00001701F601268137812115310529F040851E -:101A1000C901B70150E0DFD01092E9008091E800E1 -:101A2000877F8093E8008981882311F08093F100FB -:101A30006A817B818B2D9A2DF6D98091E8008B7776 -:101A40008093E800292D382DC9010FB6F8949EBF68 -:101A50000FBE8DBF9CC080912D01813209F097C0CF -:101A60009DB68EB60091330110913401A0902F01E4 -:101A7000B09030018DB79EB7801B910B0FB6F894D4 -:101A80009EBF0FBE8DBFEDB6FEB60894E11CF11CE3 -:101A90008091E800877F8093E800C701B80127DACA -:101AA0008091E8008E778093E80080E090E0AA20A3 -:101AB00011F081E090E0BA94E80EF91E081B190BB2 -:101AC000C6016A2D4B2D97010E945301892D982D37 -:101AD0009C010FB6F8943EBF0FBE2DBF58C0809139 -:101AE0002D01813A09F053C08091E800877F8093EF -:101AF000E8008091E80080FFFCCFF60181853FC0BF -:101B000080912D01813209F042C08091E800877FE9 -:101B10008093E80056DB90E080912F01811191E0E5 -:101B2000F601918734C080912D01813281F5809139 -:101B3000E800877F8093E80044DB80912F0190913B -:101B40003001807036E0969587953A95E1F7F60179 -:101B5000958784871CC080912D01813AC1F48091C2 -:101B6000E800877F8093E8008091E80080FFFCCF49 -:101B7000F6018485958596958795969587958093AA -:101B8000F1008091E8008E778093E8001ADB0FB6B1 -:101B9000F8947EBE0FBE6DBE0F900F900F90CF9148 -:101BA000DF911F910F91FF90EF90DF90CF90BF904A -:101BB000AF909F908F907F906F900895FB01DC0114 -:101BC00004C08D910190801921F441505040C8F714 -:101BD000881B990B0895FB01DC0102C001900D9256 -:101BE00041505040D8F70895DC0101C06D93415039 -:0A1BF0005040E0F70895F894FFCF8D -:101BFA00008108000001110103000000000000003C -:00000001FF +:10000000EAC0000004C1000002C1000000C10000FD
+:10001000FEC00000FCC00000FAC00000F8C00000F4
+:10002000F6C00000F4C00000F2C000000C947B0990
+:10003000EEC00000ECC00000EAC00000E8C0000014
+:10004000E6C00000E4C00000E2C00000E0C0000024
+:10005000DEC00000DCC00000DAC00000D8C0000034
+:10006000D6C00000D4C00000D2C00000D0C0000044
+:10007000CEC0000005010904A10185010901A1000C
+:1000800009300931169CFF26640036FFFF46010047
+:10009000950275088102C005091901290815002576
+:1000A00001750195088102750095018101C0050166
+:1000B0000904A10185020901A10009300931169C3A
+:1000C000FF26640036FFFF46010095027508810295
+:1000D000C005091901290815002501750195088138
+:1000E00002750095018101C005010904A101850384
+:1000F0000901A10009300931169CFF26640036FF72
+:10010000FF460100950275088102C0050919012901
+:10011000041500250175019504810275049501817E
+:1001200001C005010904A10185040901A1000930EC
+:100130000931169CFF26640036FFFF460100950238
+:1001400075088102C00509190129041500250175EA
+:100150000195048102750495018101C0120110010D
+:1001600000000008EB034420010001020001090225
+:100170002200010100C03209040000010300000058
+:1001800009211101000122E800070581030800058B
+:1001900004030904100343006C007500730074002D
+:1001A0006500720000002E035300650067006100C7
+:1001B0002F00440065006E00640079002000630099
+:1001C0006F006E00740072006F006C006C006500C0
+:1001D00072007300000011241FBECFEFD2E0DEBF1B
+:1001E000CDBF11E0A0E0B1E0E8EFFBE102C0059077
+:1001F0000D92A031B107D9F711E0A0E1B1E001C043
+:100200001D92A533B107E1F776D00C94FA0DF8CE24
+:1002100008952E98089580910E0190910F010097F6
+:1002200029F0019790930F0180930E0108950F9389
+:100230001F93D9018091100190E001968370907016
+:1002400080931001E0911001F0E0EE0FFF1FEC5ED3
+:10025000FE4F808191818C93E0911001F0E0EE0FD0
+:10026000FF1FE05EFE4F8081918111968C93119764
+:1002700080911001ECE1F1E0E80FF11D9081129600
+:100280008C911297892B12968C93809110018F5F1D
+:10029000FB01808383E090E0F8019183808381E01B
+:1002A0001F910F910895089580E091E00C94930CB4
+:1002B00080E091E00E94720CE2EEF0E080818460C8
+:1002C00080832E9A089584B7877F84BF88E10FB614
+:1002D000F89480936000109260000FBE80E090E080
+:1002E00020E80FB6F89420936100809361000FBE60
+:1002F000F3D754D1EFC08F929F92AF92BF92CF921B
+:10030000DF92EF92FF920F931F93CF93DF9384B10D
+:10031000806C84B92E982F98D6DF7894B4E68B2E13
+:10032000912CACE9AA2EAFEFBA2EF5E0CF2E1CD35C
+:100330007B018C0129D1E0921C01C801AA27BB27AF
+:1003400080931D01862F8F7080931E01872F8F70E1
+:1003500080931F01BB27A12F902F8F2D4FE0D42E0C
+:10036000D822812F9927AA27BB27582F5F70CB014E
+:1003700024E0969587952A95E1F78F70472F42954F
+:100380004F7020E030E02130310569F02130310537
+:1003900040F02230310549F02330310541F090E042
+:1003A00007C09D2D05C0952F03C0982F01C0942F25
+:1003B00090FF08C0F901EE0FFF1FE05EFE4FB18213
+:1003C000A0820EC0F901EE0FFF1F91FF05C0E05E95
+:1003D000FE4F9182808204C0E05EFE4F1182108247
+:1003E00092FF08C0F901EE0FFF1FEC5EFE4FB182D5
+:1003F000A0820EC0F901EE0FFF1F93FF05C0EC5E57
+:10040000FE4F9182808204C0EC5EFE4F118210820A
+:100410002F5F3F4F2430310509F0B5CFE114F104CF
+:100420000105110511F4672B11F02F9A01C02F98C7
+:10043000C0E0D0E08C2D8A95F1F780E091E00E9439
+:10044000A30B0E948E0B219683E0C83ED80709F4C7
+:100450006ECFF0CFDA019330B1F0943028F49130C0
+:1004600041F0923079F50AC0913211F1923251F592
+:1004700024C0ECE5F1E022E130E028C0EEE6F1E056
+:1004800022E230E023C0813049F0813018F0823020
+:10049000C9F40AC0E0E9F1E0849103C0E4E9F1E0C5
+:1004A0008491282F30E012C0E6EAF1E08491F9CF80
+:1004B000E0E8F1E029E030E009C0E4E7F0E028EE10
+:1004C00030E004C0E0E0F0E020E030E0ED93FC93A9
+:1004D000C90108953C9A3D9A3E98469A3F98479A9A
+:1004E0000895EF92FF920F931F93449A85E3982FFC
+:1004F0009A95F1F744988A95F1F7EE24FF24870145
+:1005000060E070E0E5E345988E2F8A95F1F726B11B
+:1005100086B1229526952695237030E021703070A3
+:10052000062E02C0220F331F0A94E2F7442737FD3C
+:100530004095542F881F8827881F90E0062E02C000
+:10054000880F991F0A94E2F7AA2797FDA095BA2F62
+:10055000BA2FA92F982F8827282B392B4A2B5B2BB2
+:10056000E22AF32A042B152B459A8E2F8A95F1F750
+:100570006F5F7F4F6830710531F6B701C8011F9179
+:100580000F91FF90EF900895ACDF9B01AC01209597
+:10059000309540955095B901CA010895569A5098E2
+:1005A00051985298539854985598589A599A5A9ADB
+:1005B0005B9A5C9A5D9A20982198229823982498B7
+:1005C0002598289A299A2A9A2B9A2C9A2D9A089536
+:1005D0002F923F924F925F926F927F928F929F9253
+:1005E000AF92BF92CF92DF92EF92FF920F931F9341
+:1005F000DF93CF93CDB7DEB727970FB6F894DEBF62
+:100600000FBECDBF5E9888EC90E0FC013197F1F70A
+:10061000F9B009B149B029B029B12F8369B16E830E
+:1006200013B1A3B1C3B0A3B083B063B05E9A019716
+:10063000F1F789B18D83E9B0E9B1EC83F9B1FB83BE
+:1006400029B12A8369B1698353B183B123B143B11D
+:1006500063B1E3B1869590E081709070880F991F27
+:100660002695269530E021703070220F331F220F1F
+:10067000331F822B5170852B46954695469550E049
+:1006800041705070B3E0440F551FBA95E1F7842BC9
+:1006900062956F7070E061707070F4E0660F771FA4
+:1006A000FA95E1F7862BE295E695E770F0E0E170C8
+:1006B000F07075E0EE0FFF1F7A95E1F78E2B282F73
+:1006C00030E040E050E0522F442733272227A69500
+:1006D000B0E0A170B070AA0FBB1FC694C694DD2411
+:1006E00081E0C822DD24CC0CDD1CCC0CDD1CAC2947
+:1006F0001170A12BA694A694A694BB24E1E0AE228F
+:10070000BB2413E0AA0CBB1C1A95E1F7AA2982941A
+:10071000BFE08B229924F1E08F229924F4E0880C29
+:10072000991CFA95E1F7A82962946694E7E06E2295
+:10073000772461E06622772475E0660C771C7A9551
+:10074000E1F7A6298A2F90E0A0E0B0E0DC0199272C
+:100750008827282B392B4A2B5B2B069510E001703C
+:100760001070000F111F46944694552481E04822D2
+:100770005524440C551C440C551C0429E1E0FE2270
+:100780000F292694269426943324F1E02F22332433
+:1007900013E0220C331C1A95E1F702296F81629550
+:1007A0006F70862F90E081709070B4E0880F991F71
+:1007B000BA95E1F7082B8E818295869587708E8396
+:1007C00090E081709070A5E0880F991FAA95E1F7DD
+:1007D000082B802F90E0A0E0B0E0282B392B4A2B8B
+:1007E0005B2BE694FF24E1E0EE22FF24EE0CFF1CDD
+:1007F000FC81F695F6958F2F90E081709070880FB0
+:10080000991F880F991FE82A6D816170E62A8B81F4
+:100810008695869586958B8390E08170907073E0C5
+:10082000880F991F7A95E1F7E82AEA81E295EF703F
+:100830008E2F90E08170907064E0880F991F6A9508
+:10084000E1F7E82AF981F295F695F7708F2F90E09D
+:100850008170907005E0880F991F0A95E1F7E82AEA
+:100860008E2D90E0A0E0B0E0BA2FA92F982F882716
+:10087000282B392B4A2B5B2BB901CA0127960FB6BF
+:10088000F894DEBF0FBECDBFCF91DF911F910F91C6
+:10089000FF90EF90DF90CF90BF90AF909F908F90A0
+:1008A0007F906F905F904F903F902F900895882396
+:1008B00049F45198529A539A549A599A5A9A5B9A6F
+:1008C0005C9A08952198229A239A249A299A2A9A1E
+:1008D0002B9A2C9A0895882319F55A9885E38A95BE
+:1008E000F1F740E020E030E055E35B98852F8A95F2
+:1008F000F1F789B1869590E081709070022E02C068
+:10090000880F991F0A94E2F7482B5B9A852F8A95E6
+:10091000F1F72F5F3F4F2830310539F75A9A22C03F
+:100920002A9885E38A95F1F740E020E030E055E32E
+:100930002B98852F8A95F1F783B1869590E0817089
+:100940009070022E02C0880F991F0A94E2F7482B7C
+:100950002B9A852F8A95F1F72F5F3F4F283031056D
+:1009600039F72A9A842F08952F923F924F925F92DF
+:100970006F927F928F929F92AF92BF92CF92DF92AF
+:10098000EF92FF920F931F93DF93CF93CDB7DEB714
+:10099000E7970FB6F894DEBF0FBECDBF19821A825B
+:1009A000EE24FF2487011D86CE0101969FAB8EABFE
+:1009B000B1E0AB2EB12CC12CD12C0ADE3B014C0195
+:1009C000DE011196BC83AB8320E030E066E070E08E
+:1009D000D401C3018F709070A070B0700097A10512
+:1009E000B10509F47FC0285F3F4FD601C501022E33
+:1009F00004C0880F991FAA1FBB1F0A94D2F78AABA5
+:100A00009BABACABBDAB2F5F3F4FD601C501022EF8
+:100A100004C0880F991FAA1FBB1F0A94D2F78EA784
+:100A20009FA7A8ABB9AB29503040D601C501022E13
+:100A300004C0880F991FAA1FBB1F0A94D2F7898789
+:100A40009A87AB87BC87D601C501062E04C0880FE4
+:100A5000991FAA1FBB1F0A94D2F78D839E83AF8371
+:100A6000B887265F3F4FD601C501022E04C0880F0C
+:100A7000991FAA1FBB1F0A94D2F78AA39BA3ACA3FA
+:100A8000BDA32F5F3F4FD601C501022E04C0880FC2
+:100A9000991FAA1FBB1F0A94D2F78E8F9F8FA8A3FE
+:100AA000B9A32A503040D601C501022E04C0880FD8
+:100AB000991FAA1FBB1F0A94D2F78A8F9B8FAC8FF6
+:100AC000BD8F2F5F3F4F15012601022E04C0220C5F
+:100AD000331C441C551C0A94D2F722503040E0E0ED
+:100AE000F0E005C09D85923008F05DC07CCFD40158
+:100AF000C3010E2E04C0B695A795979587950A94C5
+:100B0000D2F781709070892B09F047C0E43041F131
+:100B1000E53028F4E130B1F0E230E8F40EC0EB301B
+:100B200071F1EC3028F4E53001F1EA30B1F522C082
+:100B3000EC3051F1ED3089F52CC08AA99BA9ACA904
+:100B4000BDA904C08EA59FA5A8A9B9A9E82AF92A1C
+:100B50000A2B1B2B22C081E0AB81BC818C931DC072
+:100B600089859A85AB85BC85F1CF8D819E81AF81CA
+:100B7000B885ECCF8AA19BA1ACA1BDA1E7CF8E8D9A
+:100B80009F8DA8A1B9A1E2CF8A8D9B8DAC8DBD8D23
+:100B9000DDCFE228F328042915293196EE30F1053E
+:100BA00009F0A5CFA0C0D601C501022E04C0880F50
+:100BB000991FAA1FBB1F0A94D2F78AA79BA7ACA7AD
+:100BC000BDA7D601C501062E04C0880F991FAA1F14
+:100BD000BB1F0A94D2F78EA39FA3A8A7B9A72B5F28
+:100BE0003F4FD601C501022E04C0880F991FAA1FCE
+:100BF000BB1F0A94D2F78E8B9F8BA88FB98F215081
+:100C00003040D601C501022E04C0880F991FAA1FCB
+:100C1000BB1F0A94D2F78A8B9B8BAC8BBD8B215068
+:100C20003040D601C501022E04C0880F991FAA1FAB
+:100C3000BB1F0A94D2F78E879F87A88BB98B2C5F36
+:100C40003F4F15012601022E04C0220C331C441C08
+:100C5000551C0A94D2F727503040E4E0F0E0D4016C
+:100C6000C3010E2E04C0B695A795979587950A9453
+:100C7000D2F781709070892B89F5E830E1F0E93086
+:100C800028F4E43051F0E53049F50CC0EA30E9F0E1
+:100C9000EA30B0F0EB3011F51DC08AA59BA5ACA5DC
+:100CA000BDA504C08EA19FA1A8A5B9A5E82AF92ACF
+:100CB0000A2B1B2B13C08E899F89A88DB98DF6CF67
+:100CC0008A899B89AC89BD89F1CF8E859F85A8894A
+:100CD000B989ECCFE228F328042915293196EC30A4
+:100CE000F10509F0BCCF205F3F4F605F7F4FAB81C4
+:100CF000BC811196BC83AB832032310521F03401D5
+:100D00008824992465CEBD85BF5FBD87B43009F0C6
+:100D100054CE8981882321F08A81882309F067C015
+:100D20006E010894C11CD11CAA24BB24FFEF4F2ED6
+:100D3000FFEF5F2E612C712CE3E02E2E312C2C0E58
+:100D40003D1E9C2CEEA99E1AD6018C91882309F099
+:100D500042C0892DACDD88EC90E00197F1F7892D38
+:100D6000BADD90E080959095AA2797FDA095BA2FBF
+:100D7000A30192010A2C04C0220F331F441F551FE8
+:100D80000A94D2F72095309540955095E222F322AF
+:100D9000042315239C01AD01207F307040705070FA
+:100DA00074E0220F331F441F551F7A95D1F78F70BF
+:100DB0009070A070B070282B392B4A2B5B2B0A2C1B
+:100DC00004C0220F331F441F551F0A94D2F7E22A92
+:100DD000F32A042B152B0894C11CD11CE0E1F0E090
+:100DE000AE0EBF1EC214D30409F0ABCFD7DBB701E0
+:100DF000C801E7960FB6F894DEBF0FBECDBFCF9106
+:100E0000DF911F910F91FF90EF90DF90CF90BF90F7
+:100E1000AF909F908F907F906F905F904F903F909A
+:100E20002F9008959C014091330150913401461751
+:100E3000570718F4F90190E03DC06115710511F0F4
+:100E4000AB01F8CF8091E8008E778093E80040E016
+:100E500050E0F0CF80912C01882309F441C0853007
+:100E600009F440C08091E80083FD3EC08091E80015
+:100E700082FD30C08091E80080FF1CC08091F200AC
+:100E8000282F30E007C081918093F10041505040FD
+:100E90002F5F3F4F4115510519F02830310598F368
+:100EA00090E02830310509F491E08091E8008E77D8
+:100EB0008093E8004115510569F6992359F60AC057
+:100EC00080912C01882361F0853061F08091E800E9
+:100ED00083FD0AC08091E80082FFF2CF80E0089590
+:100EE00082E0089583E0089581E008959C016115F2
+:100EF000710529F48091E8008B778093E800F9016F
+:100F000020C080912C01882361F1853061F18091AE
+:100F1000E80083FF02C081E008958091E80082FF2D
+:100F2000F0CF06C08091F10081936150704021F0B4
+:100F30008091F2008823B1F78091E8008B7780934D
+:100F4000E80061157105E9F606C080912C0188233F
+:100F500041F0853041F08091E80080FFF6CF80E0DD
+:100F6000089582E0089583E008959C014091330143
+:100F7000509134014617570718F4F90190E03EC02C
+:100F80006115710511F0AB01F8CF8091E8008E7703
+:100F90008093E80040E050E0F0CF80912C0188235E
+:100FA00009F442C0853009F441C08091E80083FD16
+:100FB0003FC08091E80082FD31C08091E80080FF51
+:100FC0001DC08091F200282F30E008C084918093EA
+:100FD000F1003196415050402F5F3F4F4115510570
+:100FE00019F02830310590F390E02830310509F4EC
+:100FF00091E08091E8008E778093E80041155105DB
+:1010000061F6992351F60AC080912C01882361F082
+:10101000853061F08091E80083FD0AC08091E8008E
+:1010200082FFF2CF80E0089582E0089583E0089582
+:1010300081E00895BF92CF92DF92EF92FF920F93DB
+:101040001F93CF93DF93182F092F7B016A01D9D00B
+:10105000B82E8823B1F5812F902F9C01E901C1148E
+:10106000D10439F0F60180819181E81AF90AC80F9C
+:10107000D91F00E010E022C08091E80085FD16C075
+:101080008091E8008E778093E80048D3C114D104A2
+:1010900049F0F60180819181800F911F91838083B7
+:1010A00085E010C0AED0882349F00CC089918093B0
+:1010B000F1000894E108F1080F5F1F4FE114F104FB
+:1010C000D9F68B2DDF91CF911F910F91FF90EF906B
+:1010D000DF90CF90BF900895382F282F2EC0822FF9
+:1010E0008F708093E900231721F4762F942F50E01E
+:1010F00006C07091EC009091ED005091F00091FFCE
+:101100001BC08091EB008E7F8093EB008091ED00FF
+:101110008D7F8093ED008091EB0081608093EB00E8
+:101120007093EC009093ED005093F0008091EE00EE
+:1011300087FD02C080E008952F5F253080F23F7068
+:101140003093E90081E008950F931F93CF93DF93CD
+:10115000062FEC0110E02AC09881992329F16B81B8
+:10116000E981FA812C81892F8F70853018F5223022
+:1011700010F452E001C056E040E028E030E003C047
+:101180004F5F220F331F2E173F07D0F36295660F74
+:10119000660F607C991F9927991F692B4295407FA4
+:1011A000452B9ADF882331F01F5F25961017A0F298
+:1011B00081E001C080E0DF91CF911F910F910895F0
+:1011C00080912D0188239CF404C080912C018823F8
+:1011D000B9F08091E80082FFF8CF8091E8008B772A
+:1011E0008093E800089580912C01882349F0809134
+:1011F000E80080FFF8CF8091E8008E778093E800C8
+:1012000008954091E4005091E50024E68091EC00BF
+:1012100080FF24C08091E80080FD1EC080912C01D9
+:10122000882311F482E00895853011F483E0089555
+:101230008091EB0085FF02C081E008958091E40079
+:101240009091E5008417950709F3222311F484E0B7
+:1012500008952150AC01DACF80E008958091E80034
+:1012600082FFDCCFF9CF41D043D08091D8008F7777
+:101270008093D8008091D80080688093D8008091B6
+:10128000D8008F7D8093D80084E089BD86E089BD39
+:1012900009B400FEFDCF10922C011092280110928B
+:1012A0002A011092290180E060E042E015DF809180
+:1012B000E1008E7F8093E1008091E2008160809365
+:1012C000E2008091E20088608093E2008091E0007B
+:1012D0008E7F8093E0000895E3E6F0E080818E7FCA
+:1012E000808381E080932B01BECF1092E2000895AD
+:1012F0001092E10008951F920F920FB60F921124E1
+:101300002F933F934F935F936F937F938F939F930D
+:10131000AF93BF93EF93FF938091E10082FF0BC0E7
+:101320008091E20082FF07C08091E1008B7F809373
+:10133000E1000E940B018091E10080FF18C08091C4
+:10134000E20080FF14C08091E2008E7F8093E20073
+:101350008091E20080618093E2008091D8008062F9
+:101360008093D80019BC10922C010E940901809131
+:10137000E10084FF30C08091E20084FF2CC084E053
+:1013800089BD86E089BD09B400FEFDCF8091D800FB
+:101390008F7D8093D8008091E1008F7E8093E10063
+:1013A0008091E2008F7E8093E2008091E200816074
+:1013B0008093E20080912801882311F084E007C027
+:1013C0008091E30087FD02C081E001C083E080934B
+:1013D0002C010E9408018091E10083FF22C08091CE
+:1013E000E20083FF1EC08091E100877F8093E100CF
+:1013F00082E080932C01109228018091E1008E7F81
+:101400008093E1008091E2008E7F8093E2008091E2
+:10141000E20080618093E20080E060E042E05CDE18
+:101420007CD1FF91EF91BF91AF919F918F917F916F
+:101430006F915F914F913F912F910F900FBE0F9041
+:101440001F9018951F93DF93CF93CDB7DEB7AC975E
+:101450000FB6F894DEBF0FBECDBFEDE2F1E0809194
+:10146000F100819321E0E533F207C9F70E945401AE
+:101470008091E80083FF39C180912D0130912E01C8
+:10148000353009F487C0363040F43130C9F131309D
+:1014900070F0333009F029C133C0383009F4F6C098
+:1014A000393009F405C1363009F01FC196C08038C3
+:1014B00021F0823809F019C108C09091290180916A
+:1014C0002A01882399F0926011C0809131018F70B8
+:1014D0008093E9008091EB0090E025E09695879558
+:1014E0002A95E1F7982F91701092E9008091E80019
+:1014F000877F8093E8009093F1001092F100D1C0B3
+:10150000882319F0823009F0F0C090E08F7190705C
+:10151000009721F0029709F0E8C00CC080912F01DC
+:10152000813009F0E2C010922A01333069F58093CE
+:101530002A012AC080912F01882331F520913101A1
+:101540002F7009F4D2C02093E9008091EB0080FF56
+:101550001BC0333021F48091EB00806213C0809176
+:10156000EB0080618093EB0081E090E002C0880F87
+:10157000991F2A95E2F78093EA001092EA00809181
+:10158000EB0088608093EB001092E9008091E80006
+:10159000877F8AC0882309F0A8C010912F011F7788
+:1015A0008091E3008078812B8093E3008091E800B4
+:1015B000877F8093E80004DE8091E80080FFFCCF05
+:1015C0008091E30080688093E300112311F482E0AE
+:1015D00001C083E080932C0188C08058823008F0DD
+:1015E00084C080912F019091300123E08C3D9207BF
+:1015F00009F033C083E08C838AE28B837FB7F89451
+:10160000DE0115966EE040E050E011E2E62FF0E0DA
+:1016100010935700849140FF03C082958F706F5FD5
+:101620008F70282F30E08A3018F0C901C79602C0A9
+:10163000C901C0968D939D934F5F5F4F4431510513
+:1016400029F77FBF8091E800877F8093E800CE0173
+:1016500003966AE270E0E6DB13C060913101AE01EF
+:101660004F5F5F4F0E942A02BC01009709F43DC002
+:101670008091E800877F8093E80089819A8175DCFA
+:101680008091E8008B778093E8002FC0803869F55F
+:101690008091E800877F8093E80080912801809303
+:1016A000F1008091E8008E778093E80089DD1DC00D
+:1016B0008823D9F490912F019230B8F48091E800FA
+:1016C000877F8093E800909328017ADD809128013C
+:1016D000882331F48091E30087FD02C081E001C0DE
+:1016E00084E080932C010E9458018091E80083FFE0
+:1016F0000AC08091E800877F8093E8008091EB002A
+:1017000080628093EB00AC960FB6F894DEBF0FBEFC
+:10171000CDBFCF91DF911F91089508951F938091C0
+:101720002C01882371F01091E9008091EC00109257
+:10173000E9008091E80083FF01C084DE1F701093F0
+:10174000E9001F9108954F925F926F927F928F925E
+:101750009F92AF92BF92CF92DF92EF92FF920F9340
+:101760001F93DF93CF9300D00F92CDB7DEB77C01EC
+:101770006DB67EB680912C01843009F09AC020911C
+:10178000E4003091E500F701828593858217930785
+:1017900009F48FC081818F708093E9008091E80007
+:1017A00085FF87C05DB64EB6408550E08DB79EB7C9
+:1017B000841B950B0FB6F8949EBF0FBE8DBF0DB75F
+:1017C0001EB70F5F1F4F19821B821A82C02E912EE7
+:1017D000C80160E070E050E006D2C701BE016F5F53
+:1017E0007F4F40E098018E010E5F1F4F0E9417014E
+:1017F000882EF70184859585892B19F4AA24BB24AA
+:101800000BC020E0F70186859785892B09F021E040
+:1018100081E02827A22EBB24F7010681178101153C
+:10182000110511F4DD2412C04A815B818C2D992DA4
+:10183000B801C3D1DD24009711F0DD24D394F70162
+:101840004085C8016C2D792D50E0C4D18A819B81DF
+:10185000892B01F1882021F4DD2011F4AB28D1F08F
+:10186000F701848595859787868781818F7080931E
+:10187000E9008981882311F08093F1006A817B81DE
+:101880008C2D992D40E050E0D5DB8091E8008E77DB
+:101890008093E8008091E4009091E500F701938740
+:1018A0008287252D342DC9010FB6F8949EBF0FBE37
+:1018B0008DBF0FB6F8947EBE0FBE6DBE0F900F9019
+:1018C0000F90CF91DF911F910F91FF90EF90DF90DC
+:1018D000CF90BF90AF909F908F907F906F905F90D0
+:1018E0004F900895CF93DF93DC010996FC0187E0C8
+:1018F000EF0119928A95E9F781E019968C9319976F
+:1019000084EF91E01D969C938E931C9783E0149630
+:101910008C931497CD01019661E016DC811181E072
+:10192000DF91CF9108956F927F928F929F92AF92A5
+:10193000BF92CF92DF92EF92FF920F931F93DF93AC
+:10194000CF9300D00F92CDB7DEB76C016DB67EB6E7
+:101950008091E80083FF1AC1F601808190E0209118
+:101960003101309132012817390709F00FC18091F8
+:101970002E01833009F4B2C0843030F4813071F02C
+:10198000823009F003C1E6C08A3009F4CBC08B3045
+:1019900009F4B5C0893009F0F9C05CC080912D010F
+:1019A000813A09F0F3C09DB68EB61B821A828091EF
+:1019B0002F01109130018983F601408550E08DB7E9
+:1019C0009EB7841B950B0FB6F8949EBF0FBE8DBFBC
+:1019D000EDB6FEB60894E11CF11CBE2CAF2CC7017D
+:1019E00060E070E050E0FFD01150C601BE016F5FB3
+:1019F0007F4F412F97018E010E5F1F4F0E941701ED
+:101A0000F601268137812115310529F04085C9016C
+:101A1000B70150E0DFD01092E9008091E800877FA5
+:101A20008093E8008981882311F08093F1006A8116
+:101A30007B818B2D9A2DF6D98091E8008B7780934E
+:101A4000E800292D382DC9010FB6F8949EBF0FBEAE
+:101A50008DBF9CC080912D01813209F097C09DB649
+:101A60008EB60091330110913401A0902F01B090F7
+:101A700030018DB79EB7801B910B0FB6F8949EBFB7
+:101A80000FBE8DBFEDB6FEB60894E11CF11C80912F
+:101A9000E800877F8093E800C701B80127DA8091CA
+:101AA000E8008E778093E80080E090E0AA2011F0B3
+:101AB00081E090E0BA94E80EF91E081B190BC601EC
+:101AC0006A2D4B2D97010E945301892D982D9C0161
+:101AD0000FB6F8943EBF0FBE2DBF58C080912D01A8
+:101AE000813A09F053C08091E800877F8093E80035
+:101AF0008091E80080FFFCCFF60181853FC0809196
+:101B00002D01813209F042C08091E800877F8093E7
+:101B1000E80056DB90E080912F01811191E0F60101
+:101B2000918734C080912D01813281F58091E80048
+:101B3000877F8093E80044DB80912F0190913001F2
+:101B4000807036E0969587953A95E1F7F60195878E
+:101B500084871CC080912D01813AC1F48091E800F6
+:101B6000877F8093E8008091E80080FFFCCFF6013A
+:101B70008485958596958795969587958093F100B0
+:101B80008091E8008E778093E8001ADB0FB6F89416
+:101B90007EBE0FBE6DBE0F900F900F90CF91DF9164
+:101BA0001F910F91FF90EF90DF90CF90BF90AF907B
+:101BB0009F908F907F906F900895FB01DC0104C08F
+:101BC0008D910190801921F441505040C8F7881B35
+:101BD000990B0895FB01DC0102C001900D92415068
+:101BE0005040D8F70895DC0101C06D93415050403A
+:081BF000E0F70895F894FFCF1F
+:101BF800008108000001110103000000000000003E
+:00000001FF
|