wie schon "angedroht"

2x digitale Eingänge (Taster)
8x Port Erweiterung als Ausgang und Eingang nutzbar (E-Blocks kompatibel)
1x LDR mit AD Wandlung von 10 bit
1x MIC mit AD Wandlung von 10 bit
3 x IR Sensoren
1 x Motorsteuerung mit zwei Motoren
2 x Servosteuerungen
1 x V24 Schnittstelle
1 x IC2 Bus
Je nach Zeit werde ich mich um die eine oder andere Funktion "kümmern". Hier jetzt das erste Projekt
Habt Spaß

Michael
Code: Alles auswählen
; "MPZ Buggy IO INTERFACE.pb"
;
; PowerBasic Example um ein Formel Flowcode Buggy von www.matrixmultimedia.com als
; I/O Interface anzusteuern. Das Gerät wird auch von Elektor vertrieben
; Der PIC 18F4455 besitzt unter anderem 35x I/O´s und 13x 10bit AD´s
; Dieses Programm wird erweitert und erlaubt derzeit:
; 2x digitale Eingänge (Taster)
; 8x digitalen Ausgängen
; 1x LDR mit AD Wandlung von 10 bit
; 1x MIC mit AD Wandlung von 10 bit
;
;
; PowerBasic Example to use a PIC Formel Flowcode Buggy from www.matrixmultimedia.com as
; I/O interface anzusteuern.
; The PIC 18F4455 has 35x I/O´s and 13x 10bit AD´s
; This Program will updated and has now:
; 2x digital Inputs
; 8x digital Outputs
; 1x LDR input with 10 bit resulution
; 1x MIC input with 10 bit resulution
;
;
; Version 1.00 by MPZ Okt.2007
; for PB 4.10 beta3
;
; benötigt wird die mcHID.dll von der Firma Mecanique. Die mcHID Library ist
; Bestandteil der EasyHID Software:
; You need the mcHID.dll from the company Mecanique. The mcHID Library is included
; in the EasyHID Software:
; http://www.mecanique.co.uk/software/EasyHID.zip
;
; Ein direkter Download der DLL ist über den folgenden Link möglich
; Direct download link
; http://www.docpro.com.br/arquivos/mcHID.zip
;
; Definierte Übergabeparameter
;
; Wert
; 1 2 3 4 5 6 7 8
; a b c d e f g h
; Daten PIC -> PC
; a = 1 Daten PIC -> PC
; b,c AD8(x*256+y) ; MIC - AD Wandlung (10 bit, ADC 8)
; d,e AD9(x*256+y) ; LDR - AD Wandlung (10 bit, ADC 9)
; f Taster 1 (Bit 1 of f) / Taster 2 (Bit 2 of f)
; in Vorbereitung
; g,h I2C Bus (a,b); Empfangen von I2C Bus Daten
; Daten PC -> PIC
; a = 13 PC -> PIC
; b 8 fach Output
; in Vorbereitung
; c Servo 1 out(x) ; Einstellwert des Servos in 0-100%
; d Servo 2 out(x) ; Einstellwert des Servos in 0-100%
; e Motor links (x) ; Geschwindigkeit in -100% bis +100%
; f Motor rechts (x) ; Geschwindigkeit in -100% bis +100%
; g,h I2C Bus (a,b); Senden von I2C Bus Daten
Enumeration
#Window_0
#Text_Status
#Text_DIGI_IN
#Listview_INPUT
#Text_LDR
#Analog_LDR
#Text_MIC
#Analog_MIC
#Text_OUT
#Button_OUT1
#Button_OUT2
#Button_OUT3
#Button_OUT4
#Button_OUT5
#Button_OUT6
#Button_OUT7
#Button_OUT8
EndEnumeration
; Global
;{/ Globale Variablen
Global pVendorID.l, pProductID.l, DeviceHandle.l, ProductName.s
Global USB_HID.l,DIGITAL_OUT.b, Button_1.b, Button_2.b
Global Dim BufferIn.b(8),Dim BufferOut.b(8)
#WM_APP = 32768
#WM_HID_EVENT = #WM_APP + 200
#NOTIFY_PLUGGED = 1
#NOTIFY_UNPLUGGED = 2
#NOTIFY_CHANGED = 3
#NOTIFY_READ = 4
#VendorID = 6017 ; Vendor ID "MPZ USB BUGGY"
#ProductID = 2001 ; ProductID "MPZ USB BUGGY"
ProductName.s = Space(256)
;}
Procedure Open_Window_0()
If OpenWindow(#Window_0, 310, 185, 391, 272, "MPZ USB BUGGY Interface", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered )
If CreateGadgetList(WindowID(#Window_0))
TextGadget(#Text_Status, 135, 10, 120, 20, "No Device", #PB_Text_Center | #PB_Text_Border)
TextGadget(#Text_DIGI_IN, 30, 40, 330, 12, "DIGITAL IN 1 - IN 2 / TIME", #PB_Text_Center)
ListViewGadget(#Listview_INPUT, 30, 56, 330, 50)
TextGadget(#Text_LDR, 30, 110, 330, 12, "LDR INPUT", #PB_Text_Center)
ProgressBarGadget(#Analog_LDR, 30, 130, 330, 20, 0, 1024, #PB_ProgressBar_Smooth)
TextGadget(#Text_MIC, 30, 153, 330, 12, "MIC INPUT", #PB_Text_Center)
ProgressBarGadget(#Analog_MIC, 30, 170, 330, 20, 0, 1024, #PB_ProgressBar_Smooth)
TextGadget(#Text_OUT, 20, 200, 350, 20, "DIGITAL OUT 1 - OUT8", #PB_Text_Center)
ButtonGadget(#Button_OUT1, 20, 220, 40, 30, "OUT 1", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT2, 65, 220, 40, 30, "OUT 2", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT3, 110, 220, 40, 30, "OUT 3", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT4, 155, 220, 40, 30, "OUT 4", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT5, 200, 220, 40, 30, "OUT 5", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT6, 245, 220, 40, 30, "OUT 6", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT7, 290, 220, 40, 30, "OUT 7", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT8, 335, 220, 40, 30, "OUT 8", #PB_Button_Default | #PB_Button_Toggle)
EndIf
ProcedureReturn 1
EndIf
EndProcedure
;{/ DLL LIB
Prototype hidConnect (pHostWin.l); As Boolean
Prototype hidDisconnect (); As Boolean
Prototype hidRead (pHandle.l, pData.b); As Boolean
Prototype hidWrite (pHandle.l, pData.b); As Boolean
Prototype hidReadEx (pVendorID.l, pProductID.l, pData.b); As Boolean
Prototype hidWriteEx (pVendorID.l, pProductID.l, ByRef.b); As Boolean
Prototype hidGetVendorName (pHandle.l, pText.s, pLen.l); As Long
Prototype hidGetProductName (pHandle.l, pText.s, pLen.l); As Long
Prototype hidGetSerialNumber (pHandle.l, pText.s, pLen.l); As Long
Prototype hidGetVendorID (pHandle.l); As Long
Prototype hidGetProductID (pHandle.l); As Long
Prototype hidGetVersion (pHandle.l); As Long
Prototype hidGetInputReportLength (pHandle.l); As Long
Prototype hidGetOutputReportLength (pHandle.l); As Long
Prototype hidGetHandle (pVendoID.l, pProductID.l); As Long
Prototype hidGetItem (pIndex.l); As Long
Prototype hidGetItemCount (); As Long
Prototype hidSetReadNotify (pHandle.l, pValue.b);
Prototype hidIsReadNotifyEnabled (pHandle.l); As Boolean
Prototype hidIsAvailable (pVendorID.l, pProductID.l); As Boolean
Define mcHID_DLL.l = OpenLibrary(#PB_Any, "mcHID.dll")
If mcHID_DLL
Global hidConnect.hidConnect = GetFunction(mcHID_dll,"Connect") ; (ByVal pHostWin As Long) As Boolean
Global hidDisconnect.hidDisconnect = GetFunction(mcHID_dll,"Disconnect"); () As Boolean
Global hidRead.hidRead = GetFunction(mcHID_dll,"Read"); (ByVal pHandle As Long, ByRef pData As Byte) As Boolean
Global hidWrite.hidWrite = GetFunction(mcHID_dll,"Write"); (ByVal pHandle As Long, ByRef pData As Byte) As Boolean
Global hidReadEx.hidReadEx = GetFunction(mcHID_dll,"ReadEx"); (ByVal pVendorID As Long, ByVal pProductID As Long, ByRef pData As Byte) As Boolean
Global hidWriteEx.hidWriteEx = GetFunction(mcHID_dll,"WriteEx"); (ByVal pVendorID As Long, ByVal pProductID As Long, ByRef pData As Byte) As Boolean
Global hidGetVendorName.hidGetVendorName = GetFunction(mcHID_dll,"GetVendorName"); (ByVal pHandle As Long, ByVal pText As String, ByVal pLen As Long) As Long
Global hidGetProductName.hidGetProductName = GetFunction(mcHID_dll,"GetProductName"); (ByVal pHandle As Long, ByVal pText As String, ByVal pLen As Long) As Long
Global hidGetSerialNumber.hidGetSerialNumber = GetFunction(mcHID_dll,"GetSerialNumber"); (ByVal pHandle As Long, ByVal pText As String, ByVal pLen As Long) As Long
Global hidGetVendorID.hidGetVendorID = GetFunction(mcHID_dll,"GetVendorID"); (ByVal pHandle As Long) As Long
Global hidGetProductid.hidGetProductid = GetFunction(mcHID_dll,"GetProductID"); (ByVal pHandle As Long) As Long
Global hidGetVersion.hidGetVersion = GetFunction(mcHID_dll,"GetVersion"); (ByVal pHandle As Long) As Long
Global hidGetInputReportLength.hidGetInputReportLength = GetFunction(mcHID_dll,"GetInputReportLength"); (ByVal pHandle As Long) As Long
Global hidGetOutputReportLength.hidGetOutputReportLength = GetFunction(mcHID_dll,"GetOutputReportLength"); (ByVal pHandle As Long) As Long
Global hidGetHandle.hidGetHandle = GetFunction(mcHID_dll,"GetHandle"); (ByVal pVendoID As Long, ByVal pProductID As Long) As Long
Global hidGetItem.hidGetItem = GetFunction(mcHID_dll,"GetItem"); (ByVal pIndex As Long) As Long
Global hidGetItemCount.hidGetItemCount = GetFunction(mcHID_dll,"GetItemCount"); (ByVal pIndex As Long) As Long
Global hidSetReadNotify.hidSetReadNotify = GetFunction(mcHID_dll,"SetReadNotify"); ByVal pHandle As Long, ByVal pValue As Boolean)
Global hidIsReadNotifyEnabled.hidIsReadNotifyEnabled = GetFunction(mcHID_dll,"IsReadNotifyEnabled"); (ByVal pHandle As Long) As Boolean
Global hidIsAvailable.hidIsAvailable = GetFunction(mcHID_dll,"IsAvailable"); (ByVal pVendorID As Long, ByVal pProductID As Long) As Boolean
Else
MessageRequester("Fehlermeldung", "Das Programm konnte die mcHID.dll Datei nicht öffnen", #PB_MessageRequester_Ok)
End
EndIf
;}
ProcedureDLL mcHID_Free(); DLL FREE
If mcHID_DLL
CloseLibrary(#PB_Any)
EndIf
XLTable_DLL = 0
EndProcedure
;- Window Callback
Procedure WinProc(hWnd,Msg,wParam,lParam)
result = #PB_ProcessPureBasicEvents
If Msg = #WM_HID_EVENT
Select wParam
; HID device has been plugged message...
Case #NOTIFY_PLUGGED
;HID device has been plugged
DeviceHandle = hidGetHandle(#VendorID, #ProductID)
If DeviceHandle
hidGetProductName (DeviceHandle.l,ProductName,256)
SetGadgetText(#Text_Status, ProductName)
; Reset für PIC eingefügt
BufferOut(0) = 0
BufferOut(1) = 1
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
EndIf
Case #NOTIFY_UNPLUGGED
;HID device has unplugged
DeviceHandle = hidGetHandle(#VendorID, #ProductID)
If Not DeviceHandle
SetGadgetText(#Text_Status, "No Device")
EndIf
Case #NOTIFY_CHANGED
;HID device has been changed
If DeviceHandle
hidSetReadNotify (DeviceHandle, #True) ;read event...
EndIf
;DeviceHandle = hidGetHandle(#VendorID, #ProductID)
;hidSetReadNotify (DeviceHandle, #True) ! IMPORTANT ! Read works only With this flag
Case #NOTIFY_READ
; READ works only if the hidSetReadNotify flag is set
If hidRead(DeviceHandle, @BufferIn(0))
;AddGadgetItem(#Listview_INPUT,0, "Read: "+Str(BufferIn(0)) +"/"+ Str(BufferIn(1))+"/"+Str(BufferIn(2))+"/"+Str(BufferIn(3))+"/"+Str(BufferIn(4))+"/"+Str(BufferIn(5))+"/"+Str(BufferIn(6))+"/"+Str(BufferIn(7))+"/"+Str(BufferIn(8)))
If BufferIn(1) = 1 ; Taster 1
If BufferIn(6) & %01 = 1
If Button_1 = 0
AddGadgetItem(#Listview_INPUT,0, "Button 1 at "+FormatDate("%hh:%ii:%ss", Date()))
Button_1 = 1
EndIf
Else
Button_1 = 0
EndIf
If BufferIn(6) & %10 = 2 ; Taster 2
If Button_2 = 0
AddGadgetItem(#Listview_INPUT,0, "Button 2 at "+FormatDate("%hh:%ii:%ss", Date()))
Button_2 = 1
EndIf
Else
Button_2 = 0
EndIf
AD_Wert = BufferIn(2)*256 ; LDR IN
If BufferIn(3) > 0
AD_Wert = AD_Wert + BufferIn(3)
Else
AD_Wert = AD_Wert + 256 + BufferIn(3)
EndIf
SetGadgetState (#Analog_LDR,1024-AD_Wert)
AD_Wert = BufferIn(4)*256 ; MIC IN
If BufferIn(5) > 0
AD_Wert = AD_Wert + BufferIn(5)
Else
AD_Wert = AD_Wert + 256 + BufferIn(5)
EndIf
SetGadgetState (#Analog_MIC,AD_Wert)
EndIf
Else
AddGadgetItem(#Listview_INPUT,0, "Read Error!")
EndIf
EndSelect
EndIf
ProcedureReturn result
EndProcedure
;{ Mainunit
If Open_Window_0()
hidconnect (WindowID(#Window_0))
SetWindowCallback(@WinProc())
BufferOut(1) = 13 ; Out PortD,(x) ; Ausgabe von PortD
BufferOut(2) = 0
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_OUT1 ; Erweiterungsport Bit 1
If GetGadgetState(#Button_OUT1)
DIGITAL_OUTD = DIGITAL_OUTD | %00000001
Else
DIGITAL_OUTD = DIGITAL_OUTD & %11111110
EndIf
BufferOut(0) = 0
BufferOut(1) = 13 ; Out PortD,(x) ; Ausgabe von PortD
BufferOut(2) = DIGITAL_OUTD
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
Case #Button_OUT2 ; Erweiterungsport Bit 2
If GetGadgetState(#Button_OUT2)
DIGITAL_OUTD = DIGITAL_OUTD | %00000010
Else
DIGITAL_OUTD = DIGITAL_OUTD & %11111101
EndIf
BufferOut(0) = 0
BufferOut(1) = 13 ; Out PortD,(x) ; Ausgabe von PortD
BufferOut(2) = DIGITAL_OUTD
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
Case #Button_OUT3 ; Erweiterungsport Bit 3
If GetGadgetState(#Button_OUT3)
DIGITAL_OUTD = DIGITAL_OUTD | %00000100
Else
DIGITAL_OUTD = DIGITAL_OUTD & %11111011
EndIf
BufferOut(0) = 0
BufferOut(1) = 13 ; Out PortD,(x) ; Ausgabe von PortD
BufferOut(2) = DIGITAL_OUTD
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
Case #Button_OUT4 ; Erweiterungsport Bit 4
If GetGadgetState(#Button_OUT4)
DIGITAL_OUTD = DIGITAL_OUTD | %00001000
Else
DIGITAL_OUTD = DIGITAL_OUTD & %11110111
EndIf
BufferOut(0) = 0
BufferOut(1) = 13 ; Out PortD,(x) ; Ausgabe von PortD
BufferOut(2) = DIGITAL_OUTD
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
Case #Button_OUT5 ; Erweiterungsport Bit 5
If GetGadgetState(#Button_OUT5)
DIGITAL_OUTD = DIGITAL_OUTD | %00010000
Else
DIGITAL_OUTD = DIGITAL_OUTD & %11101111
EndIf
BufferOut(0) = 0
BufferOut(1) = 13 ; Out PortD,(x) ; Ausgabe von PortD
BufferOut(2) = DIGITAL_OUTD
hidWrite (DeviceHandle.l,@BufferOut()) ; Sende Daten zu einem HID Gerät
Case #Button_OUT6 ; Erweiterungsport Bit 6
If GetGadgetState(#Button_OUT6)
DIGITAL_OUTD = DIGITAL_OUTD | %00100000
Else
DIGITAL_OUTD = DIGITAL_OUTD & %11011111
EndIf
BufferOut(0) = 0
BufferOut(1) = 13 ; Out PortD,(x) ; Ausgabe von PortD
BufferOut(2) = DIGITAL_OUTD
hidWrite (DeviceHandle.l,@BufferOut()) ; Sende Daten zu einem HID Gerät
Case #Button_OUT7 ; Erweiterungsport Bit 7
If GetGadgetState(#Button_OUT7)
DIGITAL_OUTD = DIGITAL_OUTD | %01000000
Else
DIGITAL_OUTD = DIGITAL_OUTD & %10111111
EndIf
BufferOut(0) = 0
BufferOut(1) = 13 ; Out PortD,(x) ; Ausgabe von PortD
BufferOut(2) = DIGITAL_OUTD
hidWrite (DeviceHandle.l,@BufferOut()) ; Sende Daten zu einem HID Gerät
Case #Button_OUT8 ; Erweiterungsport Bit 8
If GetGadgetState(#Button_OUT8)
DIGITAL_OUTD = DIGITAL_OUTD | %10000000
Else
DIGITAL_OUTD = DIGITAL_OUTD & %01111111
EndIf
BufferOut(0) = 0
BufferOut(1) = 13 ; Out PortD,(x) ; Ausgabe von PortD
BufferOut(2) = DIGITAL_OUTD
hidWrite (DeviceHandle.l,@BufferOut()) ; Sende Daten zu einem HID Gerät
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
hidDisconnect ()
mcHID_Free()
EndIf
End
;}
;
Code: Alles auswählen
;PIC_BUGGY_IO.HEX File wird erstellt
;-----------------------------
If CreateFile(1, "PIC_BUGGY_IO.HEX" )
Restore StringData
Repeat
Read Daten.s
If Daten.s = "End" : Break : EndIf
WriteStringN(1,Daten.s)
ForEver
CloseFile (1)
EndIf
DataSection
StringData:
Data.s ":020000040000FA"
Data.s ":10080000D5EF09F0FFFFFFFFFFFFFFFFFFFFFFFF3F"
Data.s ":10081000E9CF01F0EACF02F0E1CF03F0E2CF04F03C"
Data.s ":10082000D9CF05F0DACF06F0D4EC08F001C0E9FF2B"
Data.s ":1008300002C0EAFF03C0E1FF04C0E2FF05C0D9FF28"
Data.s ":1008400006C0DAFF110004010401376B1E0E716E41"
Data.s ":100850000401400E096F5B0E0A6F040E0B6F880EC9"
Data.s ":10086000086F9B0E0E6F040E0F6F0D6B400E0C6F1A"
Data.s ":100870001200040104012A6B14EE9BF024EE18F020"
Data.s ":10088000010E2A5D04E2E6CFDEFF2A2BF9D7010E26"
Data.s ":100890003E6F3F6B1200040104012A6B14EE20F03E"
Data.s ":1008A00024EE18F0020E2A5D04E2E6CFDEFF2A2BCA"
Data.s ":1008B000F9D7020E3E6F3F6B12000401800E040157"
Data.s ":1008C00010634FD0135103082FE0135102080EE0BC"
Data.s ":1008D0001351010801E044D0010E396F7A0E3A6FCE"
Data.s ":1008E000140E3B6F120E3E6F3F6B3AD0010E396F04"
Data.s ":1008F000450EE16E040EE26E1245E126000EE22284"
Data.s ":10090000E6CF3AF4E7CF3BF4F86AF76A040E3A25EB"
Data.s ":10091000F66E3B51F7220900F5CF3EF409000A00BC"
Data.s ":10092000F5CF3FF40A001CD0010E396F020E12659C"
Data.s ":1009300002D0030E126F490EE16E040EE26E1245F4"
Data.s ":10094000E126000EE222E6CF3AF4E7CF3BF43AC4C8"
Data.s ":10095000F6FF3BC4F7FF0800F5503E6F3F6B00D039"
Data.s ":10096000348312000401010E0401396F716A726A46"
Data.s ":10097000736A746A756A766A776A786A796A7A6A73"
Data.s ":100980007B6A7C6A7D6A7E6A7F6A326B336B12C4D3"
Data.s ":1009900031F4125103E1050E306F04D0060E306FB2"
Data.s ":1009A00023EC04F0120004010401186B196B1051C0"
Data.s ":1009B0001F0B020814E010511F0B01080CE010512E"
Data.s ":1009C0001F0B000801E02CD0010E0401396F34A187"
Data.s ":1009D00001D0188325D0010E0401396F21D0010EFA"
Data.s ":1009E0000401396F14510F0B0800F350296B000FED"
Data.s ":1009F000286F040E29231451800B01E0010E04001E"
Data.s ":100A0000F35028253C6F000E29213D6F3CC4E1FFC7"
Data.s ":100A10003DC4E2FFE750040B02E0010E186F00D066"
Data.s ":100A2000010E0401396309E1180E3A6F040E3B6FA1"
Data.s ":100A30003493020E3E6F3F6B00D012000401010E92"
Data.s ":100A40000401125D0CE110511F0B000808E1010EBA"
Data.s ":100A5000396F030E115D02E1348101D03491000E33"
Data.s ":100A60000401125D37E110511F0B020833E11451EC"
Data.s ":100A70000F0B00082FE0010E396F14510F0B080007"
Data.s ":100A8000F350296B000F286F040E29231451800B9B"
Data.s ":100A900001E0010E0400F35028253C6F000E2921CF"
Data.s ":100AA0003D6F030E115D07E1840E3CC4E1FF3DC4C0"
Data.s ":100AB000E2FFE76E0FD014AF07D0000E3CC4E1FF99"
Data.s ":100AC0003DC4E2FFE76E06D0880E3CC4E1FF3DC4A2"
Data.s ":100AD000E2FFE76E12000401010E0401135D04E061"
Data.s ":100AE000030E135D10E01AD0000E0401125D04E045"
Data.s ":100AF000010E125D07E012D0020E0401396F39ECCD"
Data.s ":100B000004F00CD00BD0000E0401125D01E006D001"
Data.s ":100B1000020E0401396F4BEC04F000D0180E0401F2"
Data.s ":100B20003A6F040E3B6F349312000401020E04016D"
Data.s ":100B3000135D04E0030E135D0EE01AD0000E0401F5"
Data.s ":100B4000125D01E015D0020E0401396F5B0E3C6F9F"
Data.s ":100B5000040E3D6F0DD0000E0401125D01E008D0BF"
Data.s ":100B6000020E0401396F200E3C6F040E3D6F00D061"
Data.s ":100B700012000401080E04013E5D000E3F5905E21B"
Data.s ":100B80003EC440F43FC441F404D0080E406F000E50"
Data.s ":100B9000416F049304914151030B041340C405F4C5"
Data.s ":100BA00040513E5F41513F5B180E3C6F040E3D6F5C"
Data.s ":100BB00034A31AD03AC4F6FF3BC4F7FFF86A3CC42A"
Data.s ":100BC000E1FF3DC4E2FF04014051411105E1F6CFD0"
Data.s ":100BD0003AF4F7CF3BF41FD00900F5CFE6FF090048"
Data.s ":100BE000400701E24107EFD73AC4E1FF3BC4E2FF0F"
Data.s ":100BF0003CC4D9FF3DC4DAFF04014051411105E175"
Data.s ":100C0000E1CF3AF4E2CF3BF406D0E6CFDEFF400777"
Data.s ":100C100001E24107F1D71200040104011051600BF9"
Data.s ":100C2000E842E842E842E842E84200085CE111514B"
Data.s ":100C30000C0858E01151070855E011510B0846E027"
Data.s ":100C400011510A0834E0115103082EE01151010836"
Data.s ":100C50002BE01151000825E01151080816E0115150"
Data.s ":100C6000090810E0115106080AE01151050801E0D9"
Data.s ":100C70003AD0010E0401396F040E306F34D05DECB0"
Data.s ":100C800004F031D0B2EC04F02ED0010E0401396F23"
Data.s ":100C9000310E3A6F040E3A6F3493010E3E6F3F6B84"
Data.s ":100CA00022D0D3EC04F01FD01EEC05F01CD0010EB6"
Data.s ":100CB0000401396F14513A6F3B6B320E3A27040E20"
Data.s ":100CC0003B233493010E3E6F3F6B0DD0010E0401A8"
Data.s ":100CD000396FE26A320E1425E16E040EE22212C46C"
Data.s ":100CE000E7FF01D000D004011200040104011051FB"
Data.s ":100CF0001F0B010878E11451000875E11151060835"
Data.s ":100D000001E02AD01351210807E01351220812E014"
Data.s ":100D1000135123081DE01DD0020E0401396F010E8E"
Data.s ":100D2000316304D0C20E3A6F140E3B6F090E3E6F52"
Data.s ":100D30003F6B0FD0020E0401396F010E316307D0F3"
Data.s ":100D4000F00E3A6F140E3B6F2F0E3E6F3F6B01D0CB"
Data.s ":100D500000D00401348300D004011051600BE8423C"
Data.s ":100D6000E842E842E842E84201083DE111510B083F"
Data.s ":100D700034E01151030825E011510A081CE011511B"
Data.s ":100D800002080DE01151090807E01151010801E0C6"
Data.s ":100D90002AD06BEC05F027D095EC05F024D0020E9C"
Data.s ":100DA0000401396F350E3A6F040E3B6F3493010E18"
Data.s ":100DB0003E6F3F6B18D0020E0401396F1351356F2F"
Data.s ":100DC00012D0020E0401396F360E3A6F040E3B6FDB"
Data.s ":100DD0003493010E3E6F3F6B06D0020E0401396F53"
Data.s ":100DE0001251366F00D0040112000401000E0401FC"
Data.s ":100DF00039630AD0080E016F100E026F040E036FE4"
Data.s ":100E0000840E006F046F30D0040110AF1ED00401B7"
Data.s ":100E10003E51165D3F51175904E216C43EF417C403"
Data.s ":100E20003FF4B9EC05F0010E0401386F080E016FB4"
Data.s ":100E3000100E026F040E036F800E006F180E066F07"
Data.s ":100E4000040E076FC80E046F0FD0020E0401386F36"
Data.s ":100E5000056BC80E046F080E016F180E026F040EAA"
Data.s ":100E6000036FC80E006F00D06D9800D0120004010F"
Data.s ":100E7000030E04010015436F01C442F442513E27A2"
Data.s ":100E800043513F23180E3A6F040E3B6F3AC4E1FF03"
Data.s ":100E90003BC4E2FF3CC4D9FF3DC4DAFF0401425128"
Data.s ":100EA000431105E1E1CF3AF4E2CF3BF406D0E6CFBF"
Data.s ":100EB000DEFF420701E24307F1D712000401020EF0"
Data.s ":100EC0000401135D04E0030E135D17E020D0000E53"
Data.s ":100ED0000401125D01E01BD004012A6B14EE5BF0EB"
Data.s ":100EE00024EE9BF0010E2A5D04E2E6CFDEFF2A2B02"
Data.s ":100EF000F9D7010E3E6F3F6B0AD0000E0401125D60"
Data.s ":100F000001E005D0020E04013E6F3F6B00D01200DD"
Data.s ":100F10000401000E0401386F080E016F100E026FFD"
Data.s ":100F2000040E036F880E006F000E046F12000401A0"
Data.s ":100F3000000E0401386F000E396F3E6B3F6B0CECF6"
Data.s ":100F400006F0000E0401396302D075EC06F0F5ECF2"
Data.s ":100F500006F012000401020E0401386311D037ECD0"
Data.s ":100F600007F0020E0401396302D05EEC07F00401C1"
Data.s ":100F700000BD03D0C80E006F02D0880E006F03D0F2"
Data.s ":100F800088EC07F000D012000401040E0401306365"
Data.s ":100F900009D012C46EFF6E5003E0050E306F02D010"
Data.s ":100FA000030E306F010E040138630BD0B9EC05F06D"
Data.s ":100FB000040104BD03D0C80E046F02D0880E046F74"
Data.s ":100FC00003D088EC07F000D0120004010401376B55"
Data.s ":100FD00008BF1BD009512C6502D009C42CF4376B13"
Data.s ":100FE00014EE5BF02DC4D9FF2EC4DAFF2C51375D0F"
Data.s ":100FF00004E2E6CFDEFF372BF9D7400E096F400E33"
Data.s ":101000000817087D880E081300D00401375112001C"
Data.s ":1010100004016D9269946894120004016A6A686A16"
Data.s ":101020009F0E6B6E3B0E696E6E6A716A726A736AAE"
Data.s ":10103000746A756A766A776A786A796A7A6A7B6AA4"
Data.s ":101040007C6A7D6A7E6A7F6A160E706E68A602D020"
Data.s ":101050006896FCD76D9888EC07F004013491316BE9"
Data.s ":10106000030E306F12000401698468986D821200CB"
Data.s ":101070000401689C1200040170A003D088EC07F002"
Data.s ":101080007090689A120004016892120004017C0EAC"
Data.s ":101090006C1404012F6F000E2F6301D005D0040ED5"
Data.s ":1010A0002F6301D00ED010D0040100513C0BE84258"
Data.s ":1010B000E8420D0803E197EC07F002D0AAEC07F034"
Data.s ":1010C00003D0C4EC07F000D0120004017C0E6C14B5"
Data.s ":1010D00004012F6F080E2F6301D005D00C0E2F6373"
Data.s ":1010E00001D00DD00DD057C42DF458C42EF4010EEC"
Data.s ":1010F00004012C6FE5EC07F00401446F01D000D02F"
Data.s ":101100001200E9CF51F4EACF52F4E1CF53F4E2CF29"
Data.s ":1011100054F4D9CF55F4DACF56F40401000E04018B"
Data.s ":10112000306301D034D069A404D068A402D008ECA4"
Data.s ":1011300008F06DB22CD069A004D068A002D00DECEC"
Data.s ":1011400008F069A804D068A802D033EC08F069ACB4"
Data.s ":1011500004D068AC02D038EC08F069AA04D068AAC0"
Data.s ":1011600002D03BEC08F069A204D068A202D043ECA4"
Data.s ":1011700008F0030E0401306101D009D069A607D040"
Data.s ":1011800068A605D046EC08F065EC08F0689656C4F1"
Data.s ":10119000DAFF55C4D9FF54C4E2FF53C4E1FF52C47F"
Data.s ":1011A000EAFF51C4E9FF1200A0AA05D0A1AA03D00A"
Data.s ":1011B00081EC08F0A19A12003F0E566EFF0E556E9C"
Data.s ":1011C000562E01D003D0552EFED7FAD72B0E556ED2"
Data.s ":1011D000552EFED70000000012001F0E576EFF0EA6"
Data.s ":1011E000566EFF0E556E572E01D007D0562E01D0E9"
Data.s ":1011F00003D0552EFED7FAD7F6D7980E566EFF0EAF"
Data.s ":10120000556E562E01D003D0552EFED7FAD79D0E1F"
Data.s ":10121000556E552EFED700000000120004016DB679"
Data.s ":101220001200140E6F6E000E0401306F346B316BC0"
Data.s ":101230006D6A696A6D86010E306FDCEC08F06DBA7C"
Data.s ":1012400006D0686A696A69806988020E0401306F95"
Data.s ":1012500012001200040104010CBFFED7400E2C65E1"
Data.s ":1012600002D0400E2C6F2A6B2DC4E1FF2EC4E2FF8A"
Data.s ":1012700024EE9BF02C512A5D04E2E6CFDEFF2A2B00"
Data.s ":10128000F9D704012CC40DF4400E0C170C7D880E08"
Data.s ":101290000C13120004016DA612006D6A696A000E3B"
Data.s ":1012A0000401306F1200F26AF50EF16EC00EF06E9E"
Data.s ":1012B000D09E9D6AA06A9E6AA16A0F0EC112FF0E9F"
Data.s ":1012C000926EFF0E936EFF0E946E956A070E966EE9"
Data.s ":1012D000896A8A6A8B6A8C6A8D6A120004EE00F051"
Data.s ":1012E000050EEE6AEA62FDD7EDEC08F004019E0EF1"
Data.s ":1012F0000401456F140E466F9E0E476F140E486F23"
Data.s ":101300004E0E496F150E4A6F560E4B6F150E4C6FF1"
Data.s ":101310009A0E4D6F150E4E6FCE0E4F6F150E506F0D"
Data.s ":101320000BC057F40CC058F40DC059F40EC05AF459"
Data.s ":101330000EEC09F0A19AA08AF28CF28E12000B6AD0"
Data.s ":10134000A09A0401060E0401306101D008D06DB2EC"
Data.s ":1013500006D0445304E044C44BF0446B04D04B6AC1"
Data.s ":101360000401446B00D0A08A12000BC04BF01200A5"
Data.s ":101370004C6A04010CBF4C2A4C50000A02E00E6A71"
Data.s ":101380000CD0A09A0BC02DF40CC02EF40DC02CF480"
Data.s ":101390002AEC09F0A08A010E0E6E0EC04BF012006E"
Data.s ":1013A0004AEC09F0A19AA09A12000F6A106A53EC55"
Data.s ":1013B00009F0600E0B6E000E0C6EA00E0D6E000E8E"
Data.s ":1013C0000E6E6EEC09F0838283841F0E576EFF0E43"
Data.s ":1013D000566EFF0E556E572E01D007D0562E01D0F7"
Data.s ":1013E00003D0552EFED7FAD7F6D7980E566EFF0EBD"
Data.s ":1013F000556E562E01D003D0552EFED7FAD79D0E2E"
Data.s ":10140000556E552EFED7000000001F0E576EFF0EC2"
Data.s ":10141000566EFF0E556E572E01D007D0562E01D0B6"
Data.s ":1014200003D0552EFED7FAD7F6D7980E566EFF0E7C"
Data.s ":10143000556E562E01D003D0552EFED7FAD79D0EED"
Data.s ":10144000556E552EFED7000000009FEC09F04BC0F2"
Data.s ":1014500000F0076A0050075C0EE260C008F0A00EC2"
Data.s ":101460000B6E000E0C6E60C0A0F0010E0D6EB8EC9D"
Data.s ":1014700009F0072AEFD7E9D7FFD7120001000000D3"
Data.s ":10148000020000000000000008003400120001000B"
Data.s ":10149000000001000000010002000000010009003E"
Data.s ":1014A000020029000000010001000000A00032003D"
Data.s ":1014B000090004000000000002000300000000001A"
Data.s ":1014C00000000900210001000100000001002200CD"
Data.s ":1014D0002F0000000700050081000300400000000D"
Data.s ":1014E00001000700050001000300400000000100AA"
Data.s ":1014F0000600A000FF0009000100A1000100090092"
Data.s ":1015000003001500000026000000FF007500080021"
Data.s ":101510009500010081000200090004001500000090"
Data.s ":1015200026000000FF0075000800950001009100F2"
Data.s ":101530000200090005001500000026000000FF0061"
Data.s ":101540007500080095000200B1000200C000040010"
Data.s ":10155000030009000400220003006D000000690080"
Data.s ":1015600000006B000000720000006F0000004500EA"
Data.s ":1015700000006C000000650000006B0000007400BB"
Data.s ":101580000000720000006F0000006E0000006900A3"
Data.s ":1015900000006B000000610000001A00030055000D"
Data.s ":1015A000000053000000420000002000000048003E"
Data.s ":1015B000000049000000440000002000000064001A"
Data.s ":1015C0000000650000006D0000006F0000000200D8"
Data.s ":1015D0000300FFFFFFFFFFFFFFFFFFFFFFFFFFFF16"
Data.s ":020000040030CA"
Data.s ":0E000000F032FFFEFFF99BFFFFFFFFBFFFFF87"
Data.s ":00000001FF"
Data.s "End"