Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/nessmd2usb.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-05-27 22:42:33 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-05-27 22:42:33 +0300
commit19ef13744d297fbfdc46dcf286a8706ba57f3c11 (patch)
tree9d08aab4e072ac5d80a57c389d5f6e9aa016c3ed
parent267d1f12cc521b82985c3b35c75bfebf20738bad (diff)
More correct LATCH
-rw-r--r--Descriptors.c450
-rw-r--r--Descriptors.h248
-rw-r--r--README.md104
-rw-r--r--bits.h26
-rw-r--r--board/BoardOutline.gbr38
-rw-r--r--board/Bottom.gbr3980
-rw-r--r--board/BottomMask.gbr188
-rw-r--r--board/BottomSilk.gbr24
-rw-r--r--board/Top.gbr4644
-rw-r--r--board/TopMask.gbr354
-rw-r--r--board/TopSilk.gbr2156
-rw-r--r--defines.h66
-rw-r--r--gamepad.c925
-rw-r--r--gamepad.h118
-rw-r--r--nessmd2usb.c424
-rw-r--r--nessmd2usb.h226
-rw-r--r--nessmd2usb.hex900
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
+
diff --git a/README.md b/README.md
index 4b3faf9..1d00b04 100644
--- a/README.md
+++ b/README.md
@@ -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)
+
+Так же за какую-нибудь символическую цену можно купить у меня уже готовые платы для самостоятельной сборки.
diff --git a/bits.h b/bits.h
index 3451fcf..6c99018 100644
--- a/bits.h
+++ b/bits.h
@@ -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*
diff --git a/defines.h b/defines.h
index 74ba1d0..ee3491d 100644
--- a/defines.h
+++ b/defines.h
@@ -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
diff --git a/gamepad.c b/gamepad.c
index d0e5d16..b18eb7e 100644
--- a/gamepad.c
+++ b/gamepad.c
@@ -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
diff --git a/gamepad.h b/gamepad.h
index 57ddd13..34ba457 100644
--- a/gamepad.h
+++ b/gamepad.h
@@ -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