ich habe gerade meine Project mit einem USB-HDI Interface unter Windows abgeschlossen. Ich habe einen PIC Microcontroller an den USB Port des PCs geschaltet um Steuerungsaufgaben zu erledigen. Das Ergebnis ist eine Interface mit 4 In, 6 Out + 1x AD Wandler. Die Stromversorgung erfolgt über den USB Port. Der Bauteileaufwand ist gering, der PIC 18F2550 kostet z.b. 7.70 Euro bei www.reichelt.de.
Der erste Code beinhaltet die Steuerungsoberfläche für Windows.
Der zweite Code beinhaltet das Stromschaltbild, den Hexcode (Betriebssystem) für den Microcontroller und eine Grafik mit der Einstellung für den PIC Programmierer.
Alle Angaben sind natürlich ohne Gewähr!
Gruß
MPZ
Steuerungsoberfläche
Code: Alles auswählen
; "MPZ PIC IO INTERFACE.pb"
;
; PowerBasic Example um ein PIC 18F2550 über USB als I/O Interface anzusteuern.
; Der PIC 18F2550 besitzt 24x I/O´s und 10x 10bit AD´s
; Dieses Programm erlaubt die Eingabe von 4x digitalen Eingängen
; 6x digitalen Ausgängen
; 1x AD Wandlung mit 8 bit
;
; PowerBasic Example to use a PIC 18F2550 with USB as I/O Interface.
; The PIC 18F2550 has 24x I/O´s and 10x 10bit AD´s
; This Programm works with 4x digital Inputs
; 6x digital Outputs
; 1x AD conversion with 8 bit
;
; Version 1.00 by MPZ Okt.2006
; for PB 4.00
;
; 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 downloadlink
; http://www.docpro.com.br/arquivos/mcHID.zip
;
Enumeration
#Window_0
#Text_Status
#Text_DIGI_IN
#Listview_INPUT
#Text_AN
#Analog_AD
#Text_OUT
#Button_OUT1
#Button_OUT2
#Button_OUT3
#Button_OUT4
#Button_OUT5
#Button_OUT6
EndEnumeration
; Global
;{/ Globale Variablen
Global pVendorID.l, pProductID.l, DeviceHandle.l, ProductName.s
Global USB_HID.l,DIGITAL_OUT.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 PIC I/O"
#ProductID = 2000 ; ProductID "MPZ PIC I/O"
ProductName.s = Space(256)
;BufferIn.b(8), BufferOut (8)
;Buffer (0) = Controllregister
;Buffer (1) = Outregister
;Buffer (2) = ADregister
;Buffer (3) = INregister
;Buffer (4) = free for Future
;}
Procedure Open_Window_0()
If OpenWindow(#Window_0, 310, 185, 391, 222, "MPZ PIC I/O 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 4 / TIME", #PB_Text_Center)
ListViewGadget(#Listview_INPUT, 30, 56, 330, 50)
TextGadget(#Text_AN, 30, 110, 330, 12, "ANALOG IN ", #PB_Text_Center)
ProgressBarGadget(#Analog_AD, 30, 130, 330, 20, 0, 127, #PB_ProgressBar_Smooth)
TextGadget(#Text_OUT, 20, 160, 350, 20, "DIGITAL OUT 1 - OUT6", #PB_Text_Center)
ButtonGadget(#Button_OUT1, 20, 180, 50, 30, "OUT 1", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT2, 80, 180, 50, 30, "OUT 2", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT3, 140, 180, 50, 30, "OUT 3", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT4, 200, 180, 50, 30, "OUT 4", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT5, 260, 180, 50, 30, "OUT 5", #PB_Button_Default | #PB_Button_Toggle)
ButtonGadget(#Button_OUT6, 320, 180, 50, 30, "OUT 6", #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)
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...
BufferOut(0) = 0
BufferOut(1) = 0
hidWrite (DeviceHandle.l,@BufferOut()) ; All OUTPUT = 0
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(3) = 1
AddGadgetItem(#Listview_INPUT,0, "Button 1 at "+FormatDate("%hh:%ii:%ss", Date()))
ElseIf BufferIn(3) = 2
AddGadgetItem(#Listview_INPUT,0, "Button 2 at "+FormatDate("%hh:%ii:%ss", Date()))
ElseIf BufferIn(3) = 3
AddGadgetItem(#Listview_INPUT,0, "Button 3 at "+FormatDate("%hh:%ii:%ss", Date()))
ElseIf BufferIn(3) = 4
AddGadgetItem(#Listview_INPUT,0, "Button 4 at "+FormatDate("%hh:%ii:%ss", Date()))
ElseIf BufferIn(3) = 64
SetGadgetState (#Analog_AD,BufferIn(2))
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())
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_OUT1
If GetGadgetState(#Button_OUT1)
DIGITAL_OUT = DIGITAL_OUT | %000001
Else
DIGITAL_OUT = DIGITAL_OUT & %111110
EndIf
BufferOut(0) = 0
BufferOut(1) = DIGITAL_OUT
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
Case #Button_OUT2
If GetGadgetState(#Button_OUT2)
DIGITAL_OUT = DIGITAL_OUT | %000010
Else
DIGITAL_OUT = DIGITAL_OUT & %111101
EndIf
BufferOut(0) = 0
BufferOut(1) = DIGITAL_OUT
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
Case #Button_OUT3
If GetGadgetState(#Button_OUT3)
DIGITAL_OUT = DIGITAL_OUT | %000100
Else
DIGITAL_OUT = DIGITAL_OUT & %111011
EndIf
BufferOut(0) = 0
BufferOut(1) = DIGITAL_OUT
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
Case #Button_OUT4
If GetGadgetState(#Button_OUT4)
DIGITAL_OUT = DIGITAL_OUT | %001000
Else
DIGITAL_OUT = DIGITAL_OUT & %110111
EndIf
BufferOut(0) = 0
BufferOut(1) = DIGITAL_OUT
hidWrite (DeviceHandle.l,@BufferOut()) ; Send Out
Case #Button_OUT5
If GetGadgetState(#Button_OUT5)
DIGITAL_OUT = DIGITAL_OUT | %010000
Else
DIGITAL_OUT = DIGITAL_OUT & %101111
EndIf
BufferOut(0) = 0
BufferOut(1) = DIGITAL_OUT
hidWrite (DeviceHandle.l,@BufferOut()) ; Sende Daten zu einem HID Gerät
Case #Button_OUT6
If GetGadgetState(#Button_OUT6)
DIGITAL_OUT = DIGITAL_OUT | %100000
Else
DIGITAL_OUT = DIGITAL_OUT & %011111
EndIf
BufferOut(0) = 0
BufferOut(1) = DIGITAL_OUT
hidWrite (DeviceHandle.l,@BufferOut()) ; Sende Daten zu einem HID Gerät
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
hidDisconnect ()
mcHID_Free()
EndIf
End
;}
;
Betriebssystem PIC 18F2550
Einstellung für den PIC Programmierer
Code: Alles auswählen
;*****************************************************************************************************
;********** Diese Datei wurde mit File2PBSource*******************************************************
;*****************************************************************************************************
; This Program extract the programming HEX File for the PIC 18F2550,
; Layout of the USB interface and the program settings for the pic programer
; Version 1.00 by MPZ Okt.2006
; for PB 4.00
Procedure Extract_mpz_pic_io_HEX(Zielpfad.s, Modus.l) ;Modus.l -> 0=Datei Extrahieren ; 1=Speicheradresse als Rückgabewert ; 2=Dateilänge als Rückgabewert ; 3=Kompressionsstatus als Rückgabewert (1=komprimiert, 0=unkompriniert)
If Right(Zielpfad.s, 1) <> "\"
Zielpfad.s+"\"
EndIf
StartBuffer.l = ?File853725336
BufferLength.l = ?Ende853725336-?File853725336
Restore start853725336
Read OriginalLength.l
Read KompressStatus.b
If Modus.l = 1 ;Speicheradresse als Rückgabewert
If KompressStatus.b = 0
ProcedureReturn StartBuffer.l
Else
*FileBuffer = AllocateMemory(OriginalLength)
If *FileBuffer
Unpacklength.l = UnpackMemory(StartBuffer, *FileBuffer)
If Unpacklength.l = OriginalLength
ProcedureReturn *FileBuffer
EndIf
EndIf
EndIf
ElseIf Modus.l = 2 ;Dateilänge als Rückgabewert
ProcedureReturn OriginalLength.l
ElseIf Modus.l = 3 ;Kompressionsstatus als Rückgabewert (1=komprimiert, 0=unkompriniert)
ProcedureReturn KompressStatus.b
ElseIf Modus = 0 ;Extrahiere die Datei
If FileSize(Zielpfad.s+"mpz_pic_io.HEX") >= 0
ProcedureReturn 2
EndIf
If KompressStatus = 0
If CreateFile(0, Zielpfad.s+"mpz_pic_io.HEX")
WriteData(0, StartBuffer.l, OriginalLength)
CloseFile(0)
EndIf
ElseIf KompressStatus = 1 ;Entpacke erst die daten
*ZielBuffer = AllocateMemory(OriginalLength)
If *ZielBuffer
Unpacklength.l = UnpackMemory(StartBuffer, *ZielBuffer)
If Unpacklength.l = OriginalLength
If CreateFile(0, Zielpfad.s+"mpz_pic_io.HEX")
WriteData(0, *ZielBuffer, Unpacklength.l)
CloseFile(0)
FreeMemory(*ZielBuffer)
EndIf
EndIf
EndIf
EndIf
EndIf
DataSection
Start853725336:
Data.l 7362 ;Originallänge der Datei in Byte
Data.b 1 ;Datei ist komprimiert
File853725336: ; Packrate: 42.03% OriginalSize: 7362 PackSize: 3094
Data.l 482493258, 663355392, 1481837440, 1152000005, -881306605, 175112555, 1250637835, -1068678400, -1163486277, -1982060962, 638496772, 705404088, 840537574, -1956641952, 1522809929, -222817787, 609233602, -2080103095, -1387449344, 829161840, 1844330513, -1472907450, -1600262587, 2004298628, 1265549619, 1091524001, -977176920, -1436919922, 159630893, -1876548177, -1534938757, -603253357, 592442042, 207309698, 1611945397, -890546925, -1189763066, 108691572, 1547604017, 1043430033, 172820493, 35155286, -1888946810, 1152978058, -1591732204, 1668416914, -1826306635, 1419108395, -1800552295, -1403293656, -384826606, 482482506, -1048194500, 693941586, -753642662, -1809317305, 2013541656, -1789762163, -1293521196, 1782889911, -1432757244, 1184819241, 1802804097, -1326386805
Data.l 702106262, 876229034, -1258128631, 1101371148, 1784001859, -2066451851, -617779765, -1514456240, 876631368, 717559009, -1825017427, 1489090002, 1398850873, -701332841, -1519493096, 249614941, 2139283164, 141247056, -1831971168, 1751401300, 663538205, 1510517586, 1471197841, -1940236856, 719668287, 1369638417, 1720131924, -1721001621, -1703550332, -372966676, 1779581525, 1796244713, -827545935, -1060830099, -1532314944, 1966975314, -111768995, -2144243067, -732181039, 764980834, -1280163050, -242584528, 1658489377, -1297780686, -1450595014, 277099190, -1290376250, -709536072, 142726537, -375264875, 1865075298, -1387333628, 1753159862, 1027713975, 1160456922, -1795615125, 394694986, 829266599, -995298037, 1437032092, -1857759606, -356246976, 1368124276, 729474793
Data.l -2061872483, -1928010517, -1167181499, -1567863980, 1796609293, 1390191861, 876266389, -1985598883, 1026590419, -1231607395, 875124136, 1565660458, 504002201, 1580558480, 1131069450, -582372276, -664698682, 1528410339, 1649947372, 1434797228, 139814987, -1401672333, 757000246, -1631198826, 715766085, -917031071, -1604976110, 190062754, 1234624572, -1081027573, 1635462469, 1712386861, 1750562502, 1825270483, -445031375, 1268278030, 279483412, -1253424338, 1882341061, 493430202, -515790695, -1249149692, -1268636994, 1487432358, 309155245, -701678077, 943075473, -1371171544, -1976757188, 493752394, 1121797468, -495592275, -1590391984, 630551402, 2025586888, -452287231, 1528447662, 1112134444, -1263513363, 1081442400, 154403712, -167826732, -1602168466, 562123821
Data.l -1521276040, -1708062620, -1029612958, -1934342811, -682977150, -617507352, -1506502219, -2113066660, -977981173, 2013951310, -1447708093, 26444668, -761777390, 189872421, 517098076, 714924541, 1142195410, -793094103, 1209551194, -736670023, 2124229290, 1399238407, 914489476, 383215204, -1521824861, 794119619, -1152955897, -1974821298, 1238229704, -2131299998, -231473531, 310752498, 275602707, 349572545, -1927520211, 655904938, 1642357106, -1573022262, -216259216, -646360351, 695514978, 1612239119, -781152743, 273383685, -1069530453, 764248743, -1991384650, 844571229, 1510859447, 566430163, 242576901, 1527931778, 1657362220, -947633142, -1471539903, -1572052012, 1208333578, 662264601, -1810228228, -89368858, 364951395, -1827222488, 627721304, 311348072
Data.l 758027864, -1680010388, -2110256989, 1713918646, 2087206283, 1357730272, 212795050, -645446326, -602991146, -1604782646, 834163330, 1212817283, -1233890130, -1532525207, 1619210333, -1453451069, 43938501, -1371761984, 901297600, 403113633, 692721848, -648880116, -1000333726, 672170798, 1977670366, -2112162326, 1424658105, 541371222, 1968543156, 1297494177, 977754114, 97069086, -1583848808, 1214854462, -535678773, -348710228, 590011432, 1527204392, 757408560, 1792947643, -954084794, -649666358, 1794715976, -1463481631, 920020377, -1440537260, 1430363152, -920614354, 1181612124, -1043597912, 634733027, 1567759932, -2106040087, 1130712258, -2042428309, -1183428046, -2099737864, 239258256, 26317681, -1573188768, 966095188, 1429035948, 2060504245, -709648253
Data.l -1671085834, 1796609364, 731132093, -1162033327, 925612679, -1929050039, -264698526, -715830573, -871483307, -245354865, 370002575, 906863, -2015865067, -884997630, 1079686692, 1124872722, -2042204642, 1134771770, -919980909, 1108252338, -2099962789, -1466071352, -55647856, 1426135134, 579644906, -1992546414, -773999467, 537308147, 497644769, -624863478, 1983666936, 1554332015, -172244927, -724726440, -1955985501, -1407497143, 25945423, 1164699048, 308743122, -891676312, -892007752, 1103235442, 259963407, -600722427, -2112196542, -1416270666, -1372761693, 498437539, 1922029322, -659129021, 960717254, -1307002800, -2138676232, 127810471, -978133723, 1065693016, 1184356872, 25238163, -1438855103, 10284030, 1456769247, -1643586399, -1681351499, 379758034
Data.l -737643325, -564012536, 1461268132, -1798913431, 615013037, -1758510421, -511137472, 1447897302, 305422344, -1794856438, -1752059314, 496800541, 1951714320, -804730597, 945225346, 78146512, -647108243, -1657886366, -669512622, -1318266307, -1271117481, 412539416, -445706586, -747524798, 1532288042, 968217228, -600726956, 1376290762, -367187405, -319835491, 1491285014, -1214539986, -341127743, -1566017197, -185808587, 900144822, -1807983786, -1891039149, 979037186, 382093271, -1159089005, -1710860885, 415623200, 1093672516, 176559533, 1854912772, -1454887613, 1886182766, 839500041, -1874589476, -655698048, 1229035106, 281034890, -1739250084, 981582946, -1374025207, -1464677797, 1812445380, -1732883689, 434842347, -897206188, 2131588412, 373375600, -1481091793
Data.l 1516022128, 1230326875, -2067779471, -1666437540, -1474259670, 852546052, 576066382, -898503843, -1601829955, -1136291051, -1152759495, 999826772, -1368481608, -869904850, -521385336, -691000590, -1551496249, 17334932, 586322002, 2023973512, -2059040420, 657018802, -900967519, 31294144, 675958122, 1550014986, -909006828, -1967701333, 768751149, -1518006434, -872282582, -1044220251, -1081538015, -626956962, 89856866, 1682841716, -98200571, 1752352100, 498690787, -767496123, 282507952, 880716126, -1791169453, -2029904128, -942218258, 1057471667, 1158336662, 352350900, 1176480125, -1372546185, -392980669, -1605716348, -622800942, -1837100021, 1327266840, 1121207308, 1520595426, -1133518671, 727030136, 2095131983, 1455059669, 1495750486, -812242756, -1044793339
Data.l -1453556615, 1848194245, 1146063036, 1540867903, -1197370806, -2012725743, -118695281, 1125579044, -1898910043, -2134583576, 1923059205, -2018787767, -1373671114, -1205278061, -1276887748, 899873060, 1123430228, 1954317909, 1712880786, -1821473309, -103827910, -144465239, -1451962159, -2024757038, -583028442, 62681259, -1540194731, -1790530203, -1467575916, 1350370569, 1252297442, 1531158754, -1462654188, -1314247863, -1581071492, 360067858, -920351653, 1901354865, 1924289823, 384200773, -1470875087, 1795561654, -1839631389, 11366556, -1294992804, 382717452, -159361597, 191399944, -1047411542, 1249332142, 1425828546, 1590406491, -334871605, 1916052160, -996305182, -1798559139, -1597995422, 1381325613, -1049982888, -1182159070, -2061118744, 76748117, -626981981, -296506622
Data.l -678918591, -460934616, 153239500, 1554504041, -1762905094, -873165596, -89934699, -1111388621, -1754646238, 1524356520, 987614016, 1212583552, 1629754454, 1117163345, -856803165, -1475810034, -2059082892, -1827270860, -1885932900, -301017336, 1530169508, -1782914388, 491470593, -1253439718, 2127336577, 1765042861, 713539908, 53162221, 781272676, 1910806889, -2105010266, -709884872, 39156046, -1551329226, -1501288060, -1495986947, 883678635, -621784654, -2089702046, 1821187231, -451299980, 1561073405, 1192614325, -1051289492, -1269219656, -1437277831, 1957395138, 207092884, 1896946467, -1692159636, -1265257129, 923485068, 1488268977, -636629560, 1884824117, 768397719, -655731151, 982390626, 1914257576, 70628881, -696106648, 1981311063, -1095858751, -1231808671
Data.l -1731941515, 1398103656, 559167740, -993383889, -2109797702, 622679863, 1808015189, -2055509482, 53127173, -1341870066, -659149632, 713328237, 1179220017, -1282675996, 1887125248, -954400113, 137593363, -443458389, -1183693134, 1913286309, 993248419, -1235514331, -1270462952, 908738822, 1662244201, 1427178892, 840779866, 651082104, -1650794204, 179304562, 1267118418, -550743647, 1259713761, 2119342285, 179481716, -361449107, 782869917, 1381876137, 709923123, 2009411946, -512089818, 1486831110, 1846912305, 1452445211, -1720696248, -248492508, 923487546, -533552982, -1940204248, 1288580174, -1202245667, 497281125, 706849387, -279702353, -1940728052, 325034020, -821941101, 2125431974, -1899900475, -1278001927, -51056298, 56412815, 1384688812, 1323184493
Data.l -1957628784, 1158212337, 1921928863, -125783770, 861057388, 1710017378, 1783903585, 811262038, -730068288, -764896158, -1218166715, 81222302, -782849824, 876261250, -2093859573, 2064878565, 986403788, -1847937204, -1438103206, -1104445143, 1599908675, 1557569533, -768945937, 128590533, -968252965, -246171317, -455920578, 478914965, -666456623, 1701905573, -300259209, -1217843285, 1758993890, -1022898249, 1135186856, -680084149, 245854875, 1537534341, -83600090, -919710348, -1903451990, 687357268, 158413658, -1542029119, 542667921, 761741080, 1490395974, 289423828, 1461118346, -1720622747, 1083974759, 1373199389, -412937209, -1523930156, -841539550, -885184170, -1092790724, -1579434917, -2134102690, -1999829846, 1291782189, -297571967, 1574847400, -1731165380
Data.l 317279431, 84542336, -1291827824, 2021184515, 38112, 61440
Ende853725336:
EndDataSection
ProcedureReturn 1
EndProcedure
Procedure Extract_MPZ_PIC_IO_JPG(Zielpfad.s, Modus.l) ;Modus.l -> 0=Datei Extrahieren ; 1=Speicheradresse als Rückgabewert ; 2=Dateilänge als Rückgabewert ; 3=Kompressionsstatus als Rückgabewert (1=komprimiert, 0=unkompriniert)
If Right(Zielpfad.s, 1) <> "\"
Zielpfad.s+"\"
EndIf
StartBuffer.l = ?File1989273772
BufferLength.l = ?Ende1989273772-?File1989273772
Restore start1989273772
Read OriginalLength.l
Read KompressStatus.b
If Modus.l = 1 ;Speicheradresse als Rückgabewert
If KompressStatus.b = 0
ProcedureReturn StartBuffer.l
Else
*FileBuffer = AllocateMemory(OriginalLength)
If *FileBuffer
Unpacklength.l = UnpackMemory(StartBuffer, *FileBuffer)
If Unpacklength.l = OriginalLength
ProcedureReturn *FileBuffer
EndIf
EndIf
EndIf
ElseIf Modus.l = 2 ;Dateilänge als Rückgabewert
ProcedureReturn OriginalLength.l
ElseIf Modus.l = 3 ;Kompressionsstatus als Rückgabewert (1=komprimiert, 0=unkompriniert)
ProcedureReturn KompressStatus.b
ElseIf Modus = 0 ;Extrahiere die Datei
If FileSize(Zielpfad.s+"MPZ PIC IO.JPG") >= 0
ProcedureReturn 2
EndIf
If KompressStatus = 0
If CreateFile(0, Zielpfad.s+"MPZ PIC IO.JPG")
WriteData(0, StartBuffer.l, OriginalLength)
CloseFile(0)
EndIf
ElseIf KompressStatus = 1 ;Entpacke erst die daten
*ZielBuffer = AllocateMemory(OriginalLength)
If *ZielBuffer
Unpacklength.l = UnpackMemory(StartBuffer, *ZielBuffer)
If Unpacklength.l = OriginalLength
If CreateFile(0, Zielpfad.s+"MPZ PIC IO.JPG")
WriteData(0, *ZielBuffer, Unpacklength.l)
CloseFile(0)
FreeMemory(*ZielBuffer)
EndIf
EndIf
EndIf
EndIf
EndIf
DataSection
Start1989273772:
Data.l 48696 ;Originallänge der Datei in Byte
Data.b 1 ;Datei ist komprimiert
File1989273772: ; Packrate: 81.60% OriginalSize: 48696 PackSize: 39738
Data.l -1103609014, -604569600, -83578215, 1645486335, 614071300, 74230325, 1207900170, 1126367250, 310631203, -1758852989, -1840934014, -928776048, 747757904, 1244083364, 495798476, -1071575241, 546457571, -446424027, 403983268, -225226039, -1932506586, -226946295, 1899102499, -1503212298, -1274765749, 115460872, 881933065, -2043135804, 12470676, 18369707, 86564862, -2118087646, 1268524854, 54486084, 838216800, 1095367746, 350462732, 470974521, 606228520, -2054944042, 538317578, 1219243734, 345080160, -209907548, 648172096, 1377372178, 219359138, 1626508550, 1382394072, -396285044, 382173640, -1452010950, 1235059477, -2112913902, 1580305125, 1231308980, 1151736205, -1697787271, -1983097548, 1151510259, -192222585, -1487613528, -1426764502, 1791470293
Data.l -643003699, 1303012530, -1159858549, -1949440140, -2067616009, -124982521, 630448560, 1926843947, 1731578469, -382436154, 1050911441, -647185811, 1572230058, -1176635749, 2085543793, -1882689352, -1168298213, 1471014130, 1987788455, 395302892, -210149857, -1621636635, -201655010, -545273883, -186942082, -468924441, -1553200935, 1382916864, 675363652, 11690128, -787424415, 1913515536, -731871123, -1941040480, 573175323, -1581955964, -1905835411, 1162922060, -1323019528, 1690298550, 1188731512, 1596987099, -1154062631, -1327018571, 833997517, 1722312844, -922909393, -1927935793, -1064566958, 1586954772, -1697650018, -1273254007, -749310603, -1562046814, -1175008403, -286478952, 884506185, 1105977509, -472206257, -1124126952, -54280878, 1072874479, -1038102741, 1526806042
Data.l -29864873, 518655960, 329678828, 648756822, -949615537, 905044943, 1526178277, -815515034, 881297658, -1891069010, -824334483, 1710109424, -1738910855, 858090605, 2010625830, -805521303, -871894720, -325750017, -1495681153, -469989617, -1618332544, -1023592999, 1533873071, -71746285, -1741693291, 635588896, -266396353, -1573215495, 612837735, 2011126657, -314611467, -99148089, 1752206431, -1672680, 95643293, 1509906107, 263584503, -113265505, 248749782, -445170185, -299880985, -2050525457, -1677004453, -1944307357, 181978749, -2082626570, -1542242126, -111835264, 1575266175, 2043767421, -1142057225, -1884301337, -463675738, 2010769115, 1823636412, 339980512, -1043418613, 1405065608, 1554464634, -1164468804, 888974221, 391280766, -281398117, 651812306
Data.l 1648687860, 1854919888, -1682033757, 1594219759, 567496491, 36035452, -240965219, -280986169, 349830984, 1231690302, -1458259958, -5493414, -446725901, -1172420933, -1134158468, 1055205749, -376394597, 820780883, -486214234, -1151672925, -1144267687, 1253465884, 1286572978, -100674418, -1061680339, -58302219, 64341615, -1516819029, 804311273, 2116145219, 1274326862, 1571761598, -303762403, 1220310359, 1579525138, 1106405630, 129118110, -1872939398, -1082585855, -975281227, 436751482, -646022619, -2120256001, 87070721, -1673700, 1878742685, 868897988, 1602831347, 758669191, -1970030209, 484777623, 472413479, -1888561035, -260483729, -2023631935, 1382878278, -553203527, 723489247, -49029253, 1853408847, -1076577016, -872139961, -801854185, -1069341736
Data.l -1263947670, -1182663909, -477674991, -1169218161, 979915192, 1787559825, 1470109810, -1846202371, -538062504, 1693019031, 1559641756, 732355482, 633339715, -1411660559, -370877300, 127827086, -1209475556, -380683883, -1008763595, -1278491865, -1850555331, -249966930, 1456202985, -630006497, -888286031, 374031567, -507389396, -319297854, 1609352000, -1559357327, -976249496, -1193245465, -1418854974, 162486692, -814085959, -548741922, 799922134, -606226787, -890163996, 1567493077, -924288933, 1996377985, -1995067627, 1579891152, 1069322160, 1049416249, 178816972, -1313144165, 156371071, -805548682, 75962331, -1074356603, -1269994, 396045011, -2019652758, -122056644, 1461642332, -1922170956, -1596521068, -704667129, -1331142664, -2136567411, 1585617869, -1271163713
Data.l -817699710, -550632029, -1969476134, -1029054607, 295345866, -2096877117, 611904803, 1386319682, 206490278, -942995689, -3493121, -572523075, -1153739525, 2127794431, -131645474, 2138043295, 277577579, 1804466523, -365048486, -581069956, 770789281, -589385807, -1821575947, -321690041, -1876446644, -448955270, -587813009, 611056097, -984309944, -717949569, 486387568, 1221214939, -1176753393, 296805550, -1186417378, -1437652687, 1962599827, 1603028631, -1083650528, -1234829390, 795672439, 1285896607, -949512321, 230160892, 326745067, -568375774, -637570728, 164927798, 531053428, -764532137, 228980141, 1885250839, 1808651263, 1890298694, 1296292226, -1940472039, -1418348664, 2126013083, -27048077, 68611451, -551617766, -30397493, 1322774865, -741613642
Data.l 2072552116, 1439226420, -230779089, -2101883400, -72131929, 1349164187, 1134757554, -974965723, -1562606229, -893687971, 1329249022, 105859465, -2133205013, -1956342414, -1898169453, 1900704537, -1962776543, -1611100908, -1474878377, -1937250817, -186945798, 313872127, -1174321475, -169448993, 2096441699, -153899371, -644122741, 625921908, 935025747, -1773811593, -949261601, 1179535050, -740355411, -712681571, 384018941, -89404019, -721717511, -1512219826, 2042044330, 849273237, -579281041, -280601798, -446980836, -1292220155, -1352635108, -1567772810, -408727222, -956308323, -875291667, 975020876, 1790095163, 956554987, -1934734688, -1914555444, -500080360, 410069012, 363370809, 403773495, -178108684, 1032710375, 896959273, 1399783352, 1668521791, -228026647
Data.l -2145722561, 658996493, -397090942, 1537174933, -1632165836, 2142882801, 501939047, 862280894, -1391338580, 1324567014, 1883172557, -1756787310, -1247514011, 1809409583, -1749165956, 429570990, 998858535, 329868598, 942847839, 60536545, 817499870, 1548259889, 209078969, -696285298, -1916834008, -1044421899, 2051628905, -989078862, -1493420698, -757359023, -1349203052, 334337331, 1463967271, 1993409658, 72899359, -1612815707, 1259278909, -917503322, 1159439115, -1596518400, 1351136599, -1743709299, 1632874594, 1787746682, 155612368, -604042995, 1458720819, 494104759, -870794898, 1826439108, 245077187, -155505924, -1945757207, -1295780146, 2121064377, -1786696100, -1120111083, -510148289, -470055697, 1513610063, 1916426308, 873375998, -504244849, 687139712
Data.l 1425915250, -848497101, 1388312819, 2117696047, -1611188056, -654829569, -377798818, 1587421670, 1019739916, -211853669, -639763603, 668962710, 208087527, -373827079, 969949117, -748439649, 1450132226, -1848881193, 1304400942, 207893986, -1429812398, -692535843, 322539259, 2011418787, -409895117, 748499861, -370831519, -539399327, -161706003, -145926487, -120165301, 335394797, 1491545647, -426813814, -1805813413, 1408660439, 367583672, -622600721, -1285928071, 2008343221, -1185009973, -1798389391, 726478517, -622976831, 407861805, 691791653, -402903213, 1340328922, -1019748930, 1606119119, -358916484, -1570724018, -1917413473, -1561445612, -1856119195, -1639519245, 633931648, -1964992112, -1956649605, -1879267337, -1096199593, -1111004811, -313265040, -1619110038
Data.l 2094823677, 2128511973, 1407311269, -262869814, 40091841, 1832352022, -958468202, 1971843487, -1094670257, 1836180061, -1157943190, 1651222117, 480930629, 903465416, 94884924, -1664577638, -141247727, 1342027684, -827917745, 1304377077, -1931953939, 1935591181, 673462203, -728226887, -565497301, 492716514, -1883358893, 779386850, -2132304728, 35536107, 531922730, -1449767983, -544921002, 511277155, -1087629526, 2097181088, -1107818652, -663412348, 1475605503, 1375005246, 109797375, 856756475, -1954711169, -2101348381, 1338779454, -910459095, -1431930082, 945025698, 1073576966, 254533519, -2119923923, 2079325399, -1766944853, -1318141393, 1950131330, 775544407, -668165929, -1371094852, -18465221, -824959210, 2141410832, -725832467, 1500181910, 300768298
Data.l 1054816074, -1233539470, -446268491, 1552577252, -2107622504, -1727120991, 1394551089, 263505125, -436061336, 1706257809, -1260553659, -931248319, 2045099867, -587220041, 678325744, -1329349450, 157626820, -505809990, 1197638177, 1318569650, 657903837, 1238553520, -1102608934, 1615412243, -277493584, 778448626, 1175240847, -2002236736, 838272017, 591632508, -1187527223, 283430742, -307629392, 263224623, -1478432958, -68048681, -1549842168, -1080636418, -1885125953, -137428999, -1561946991, 2079949447, -228020738, 92946465, -1852574985, -842008384, -1974487702, 989648799, 2026447678, -580834381, 399677161, -1335855909, 2073343896, 1152675387, -955478491, 511463523, -1226161675, -1978567648, 535012165, -562822901, -1481097392, -316217722, -1230826922, 1915350891
Data.l 2037475238, -1556840850, -926512310, -2137678331, -56997979, 2146236335, 449650503, -24933736, -1497293388, 794582350, 2060974261, -403842124, -1146488165, -897915738, -957987001, 866037062, -1166864515, 2109176204, 1465904829, -359318997, -1074251979, 2133409196, -969430345, 1878441572, 375945470, 1864268883, 2075686847, -964579086, -98056089, -1228465736, -696427426, -1170422375, -1445233228, -1338061123, -644811155, -497801313, 465671268, -532714802, -28425856, 200028290, -451299553, 2073373646, 1220452079, -1716682863, -1615266089, 367285478, 626691379, 111772377, -626877330, 1694437323, -495708901, 1527517556, 1521448371, -1149439195, -853129049, -294736880, 1500995957, 1489036405, -995221795, 775319112, -629862370, -1419940012, -2068220483, -1692852447
Data.l -1915198300, -1311709878, 101286851, 1355561295, 1831207555, 2016113712, 1038188450, -1457955402, -539126814, 1785057109, -1664412182, 891313531, 571882875, -1347173897, -91440234, -617881683, 1482083642, -380842425, -1171094194, 1253326395, 1595263745, 928283632, -12078762, 840838003, -2517965, -1664582564, -1907283057, 1701762711, 1677840639, -182802104, -824953892, -1997892305, -1082348917, 1873171879, 1827298546, -648564910, 1994338576, -163820588, 1142064829, 709523294, -1697133751, -540982786, 988404520, -1007035235, 779778104, -1739642176, 87985714, 1174372100, 1920766815, -660737743, -748239512, -1827906346, 1909650789, -377561637, 711588546, -885684049, -926247207, -263695952, 340248876, -1025448465, 767849175, -397074430, 528460213, 2027546622
Data.l 1527834141, -982122568, 1475888372, 558081134, -349530630, 1924790465, 2050442641, -290243970, -1856208935, 1232893721, 2037593267, -406330032, -203002932, -678451671, 1670306302, -1989675229, -554765418, -537467145, 524146541, 1869053815, 1727935779, -954341809, -193038097, 454114027, 669166537, -43583348, 664128863, -1347553281, -130216227, 233979008, -1744961654, -1405657702, 1603908511, 1522362045, -1453566597, -480458761, 1768279703, 1969975929, 1610543041, -182026577, 231422847, 2125077947, -736792570, -478727717, 1238882596, 180289330, -783630342, 319330853, 424256241, -2037674178, -448599338, 2096639149, -1311944558, 1953068543, 1024829458, 2113038927, -997937282, 2077244826, 1944486661, -647175348, -1390200680, -467147070, -690567676, 164424163
Data.l -1113312168, 978046917, 992411426, -90847734, -592451351, 1452991095, -1265713357, 1160048174, 697859682, 2121123929, 1919147292, 379914720, 992861151, 1669089139, 741849667, -343278151, 1916438449, 268073829, -216447318, -566518948, -184632859, 667319211, -455370049, -1680489128, -690789282, 1038022619, -1018569746, -1116146217, -796003247, 582532750, -1850801379, 1047061547, 330084055, 157132271, 759693769, -591041097, -354485731, 1595503768, -1853404224, 1022919203, 198015096, 1727604546, 1056025073, -1842934967, 2025213141, -607275027, -438608990, 842849499, 193963721, 1914793301, 225583262, -2045234274, 2059036055, -1829902228, -1802766289, 1719360047, 1966296554, -1068338807, -867835443, 150824990, -1126952772, -79942683, 763091829, -1973239973
Data.l -1088581940, -351538318, 1725683541, -291107777, 479685874, -154869986, -577482400, 1961145885, -1083213943, 89377460, 1802794223, -613420713, -811156010, 2036513591, -719163859, -2041815314, 986133849, 1820371090, 1173131947, 499567212, 732199000, 1888377776, -119578941, 1578942015, 189775478, 1996128247, 157876067, 86768387, -306598553, -1592334854, 1027727044, 1201007534, 1366840291, 822494060, -1387046998, 940665154, 946726876, -1286599719, 1137693482, 1733911549, 1366117124, -411336707, -1688767480, -1956036804, -1293835969, 1769470908, -450143763, 87784906, -2122612011, 181354290, 1038888725, -1787672957, 83313588, -1938298300, 1674558415, 1966799475, 1921627101, -429343009, -733232687, -1337541923, -1837295304, -2085723212, 49499254, 1504402787
Data.l -581902653, -1571147042, -1855062821, -256132140, -1818505892, -115306531, 109714633, -1527170850, -1177085472, -1988594797, 73918141, -1173048986, 1223366654, -52401483, -208423333, 926786369, -601522202, 1203185681, 1539014645, -1276979803, -518717661, 196593662, -2138745034, -1091709243, 1313753776, 1028377023, 1798771055, 2076415442, 1850375206, -92789839, 1475628580, -540983349, -1443093675, -1127718599, 1028609627, -1853492761, -40399761, -1769739562, 2106486724, 447481030, -2142243851, -1515606529, -1790453956, -1454831318, -337033011, 1975333119, -583655804, -1914503572, 1889983103, 1556921432, 1372332981, -1195475239, 734229300, 2033734874, -1155168642, -970453275, -592024633, -1345274328, -1650044933, -838866954, 2120186831, -1351650765, -408972904, 2045845115
Data.l -1626104370, 200588255, 296300345, 292548395, -1107678377, -295872629, -1308362542, 1232223766, 83558136, -51258164, -1702905536, 265600404, -957672467, 691928630, -849642248, -1292800604, -1456328943, 680948836, 1040529927, 1377880220, -1808123991, -1918633495, 1817694315, -1481313977, -157550483, -1111332059, 792031151, 1207548713, 1222921938, -1824732222, -957635339, 345361404, -1654889825, 2034851755, -291680837, -1439332382, 1997134215, -900967507, 767073721, 314433328, 2130926906, 1897027198, -527451931, 1372801262, -1283671081, -1386782609, -1947455011, -2108416553, 1856580573, -449999155, -417297875, -17861899, -212116196, -1403096761, 1370450876, -769888467, 1976793779, -1309860505, -1162685549, -474150554, 1809976781, -277919322, -943099537, -996842070
Data.l 1750620948, 1743637960, -500814332, 391338739, -160778359, -277583457, -739476043, 992649935, -847688649, -472442969, -1757030417, -763876084, -800269603, 1760419442, -588983835, -1413989675, 1520659405, 2099767628, -1538010628, 2024189729, 1720744922, -1032796551, 248143306, -958213393, 241346979, -696735433, -111307002, 642382261, -2337047, -1101641866, 1447308755, -1142531194, -570482778, 1978600472, -361510255, 1518468846, -46737265, 1283958591, -151584114, -1792823425, 520339586, -1479601204, -590004238, 341190314, 352288763, 1025126844, 1837091999, 1525962545, -1291650283, 448739818, -141149636, 283232929, 1372566904, 1294792702, 1256951196, 178285967, -784251779, 38264808, 355362835, 67802937, -537165963, 72320978, -1797311137, -103725202
Data.l 463466048, -904609803, 601560081, -1244217349, -1625625886, 613005357, -571786804, -1941199639, -1422499008, 1288518397, 1751375697, -232117868, -2062768334, -1141736433, -361451445, -962818999, -1140259317, 1837855541, 1769262235, -1259540249, 368504463, 1494586339, 1635275619, 625122825, -1493719805, 1000575205, -266130092, 434551236, -1133661, 377997112, -395955576, -110741788, 628419663, -1691887746, 1475432100, -992295793, -1376626853, 1039390049, -562574092, 1139276590, -1912107276, -1656155637, -29294501, 1042693463, 1632436187, -1227817661, -42237367, 863584958, 1144247803, -154430745, 1875217209, 1321645180, 287088447, -934611484, -1921667902, 1576411519, -1963904908, -415634577, 1443330040, -1669620470, -632830062, -1950471371, -207805887, -377666520
Data.l -1716761411, 318056915, 1356705439, 787011003, 1594632494, 1247061715, -1959396405, -879920236, 1485350753, 1136916601, -682432871, 523947518, -508245801, -1250039133, 995781929, -1278283395, -91064369, 647988937, 1737614844, 1538502557, -816605299, -1838386724, -275453181, -1431208624, 1888005883, -952414168, -418372165, -1146764463, -633372882, -1258323842, -338753738, -325004173, 863239676, 1759013320, 1734320884, -369636995, -585896201, -2072986737, 781494237, 908845791, -960577394, 1831420037, 1364189021, -856136185, 1304147153, -1814209672, -1906530874, -1432343308, -181913703, 167139488, 1834225046, -1688080817, -30167249, -183585829, -1143620994, 1602212612, 1222699861, -593794483, -418488722, -264682402, 124956096, 1776151716, -1159889065, 1114005368
Data.l -302256197, -484844739, -1684982056, 1403738325, 117643424, -621732260, -1819088098, -1863483517, -649420309, -751112193, 1836531018, -486159511, -944145083, -1050021450, 221503290, -521296246, 1430006189, 1932619961, 1382320647, -1211387413, 1924501724, 255972671, -13439164, 1790767251, -1055752968, 1448890485, 1959955245, -639394559, -970235656, -501777491, -111231521, 980916852, -414901986, 462616780, -1305927540, -503860480, -381690766, 899558175, 1478774751, 1203488013, -1462167875, 1819269998, 483586588, -1238788449, 434164448, 565744707, 2094398184, 2112464670, -1279894355, -400730578, -321525386, 297999847, -587012259, 1459645541, 1987681099, -473487820, -136786346, -979717644, -686329258, 396675789, -1829061207, -1955898886, 890908427, -1954308653
Data.l 1228679237, -706845022, 1995297323, 880158977, 780882305, -831128233, 1562828867, 777289003, 1006572951, -481915044, 469707189, -1112791919, -1593727429, -492344643, 207561651, -302645559, 1019674001, -1621666708, -724157894, -835356089, -1663397190, -783575538, 1282838500, 1770075635, -1752617407, -1525955787, -434316030, 736331895, -139260643, -1667793454, 432501069, -1354254254, 165582437, -846333795, 373925461, 494135974, -521001910, -696596903, -704959066, 1402624671, -1722622090, -497780765, -1635795755, 1484209972, -1004655626, -1669720274, -913882770, 213429599, 1417158367, -1994231581, -1408458296, -737759142, -1342404327, -1946189543, -164023691, -335593604, -1108180275, -825240710, -125490206, -86197420, -1290803411, -772277018, 2127912855, 1001502688
Data.l -466633841, 1545572073, 1844056962, 410886, -438629556, 489059727, 27746318, -1023583319, 1071324079, -538815059, -300536891, -1226116931, 1518012353, 1428748385, -490113781, -1433325810, 1798113484, -788906851, 517684789, -339182873, 839937458, -209063725, -645272515, 1556255396, -1993323422, -1817578931, 1575824425, -984065365, -474878537, -493438362, 1854995054, -1264605343, -953030993, -1439689578, -1154968095, -461292793, 1433233929, 1409110951, 1996174951, -1279926797, 1098419263, 1869514207, -680805605, 652011421, 1647472679, 723853015, 1501058569, -329569600, -1596424659, 1277801226, -1626376804, 531861078, -125046870, 1715161912, 1430247000, -630220501, 1589440844, 1170079551, 381550561, -476791015, -1391524215, -1168481963, -305313252, 1565596154
Data.l 1117194277, -2051655459, -1392981951, -1410541548, 317569459, 1521384379, -1616668030, -1743466241, 2092593032, -499533716, 2015438876, 769593042, -404580056, -878433539, 2126171140, 103489438, 1221250935, 1264971521, -1218532958, 593421679, -1905688590, 1175716815, 1857156165, 2126280910, -2121469702, -35800219, -396034525, -1164593468, -589766222, 526930449, 331893873, 1878779458, -1967808547, -1383226467, 1947755439, 398455092, 2027916663, -724706833, -1048220227, -587224271, 2073983752, -531989166, -1879231430, 1652232454, -687884296, 1121937918, -149507305, 1660509935, -648215401, 1808395057, -152060110, 1871437766, -973089329, 245658495, -342121285, -88737235, -865986579, -1680592321, 1334732777, -477809636, -205161797, -167555410, -77450614, -1166756742
Data.l -223238449, 1535749622, 449521060, -1783670682, -463751237, -362560649, -252961260, 337566422, 1374426700, 511860394, 1585202921, -602523556, 27605759, 722646242, 1408881789, -597549609, 213607351, -1839425734, 1538018729, -1061051114, -1860248915, -1627241504, 1738486954, -184631310, -2103112001, -31279805, 1872417976, -899615700, -102376518, -676745475, -158675243, 1195919676, 715456378, 673491792, 2024049496, -352624516, -1644689513, 1728966334, 2077841367, 1756224233, -1677989023, 1311731575, 893900374, -850445975, -1203975369, -409849295, 527677975, -686588681, -76695986, -1244430993, -148541020, 1307451183, -1122766345, -372327189, -1670041107, 77297982, 1572780703, 969987518, 1687741718, -847862431, -763763952, 423465664, -377795979, 1140635903
Data.l 370843977, 595210041, 703044284, -661325044, -128212473, 772237884, 1229091247, -232482738, 954517080, 1425911826, -1055732959, -1311121257, -1900544639, -766413601, 2129115364, 1278735498, -1856333637, -1170314927, -221994438, 957610735, 1275787627, -136718967, 1034128700, -13667952, -462967761, -555123586, -1107855970, -1548550863, 869099081, 1307728299, -213951002, 1785850343, -533829297, -1529451383, -772875829, -1659962087, -1969082157, -657963447, -700267599, 665736904, 917865245, 1051572054, -1262823239, 1156234969, -1239780036, -1401309606, 574327178, 1729710805, 348822452, -717429872, -1547908745, 759006627, 1540331754, 1835903717, 486956508, -2053915399, -1415920892, 993502843, 1113965374, 1612736732, 1610121111, -1784710531, -150295739, -917105281
Data.l 535746459, -1054283021, -642828940, 2140042086, -514400557, 699559287, -209730326, 481721412, 1534858485, 1138652472, -304628649, 1111342962, 2027976943, 969699488, 1806394478, 994022407, 179549636, -705654825, 2129145082, 122412410, -1602442837, 956587366, 248293307, 165884332, 395125755, 1840925742, 2111463003, 1785318139, 2007719285, 1179547273, -769098318, -432594979, -1940285671, -25834167, 550774101, 1884062247, 2011775659, -1214667405, -1886401581, -1016975657, -846258543, -228469809, 201172973, -628448872, 1413017173, 1638163425, 605941682, 863344880, 1169562941, -943278606, -1193617431, 41564105, 455419382, 1199144671, -782384479, 1296064211, -167735397, 1640144070, -461692763, -1076960565, -1713423251, 310816615, 699634950, -1996665063
Data.l 1522934143, -1683391366, -1313030529, -478195162, -1117955045, 1131726439, -1038879980, -890496308, 1427988621, 129271402, -1300986097, 783544422, -318853650, 1325628346, -75744260, -1686014643, 930589590, -457532258, 1296205539, -1455409826, 618182323, 695636968, 1275005407, -1317897657, 745169455, 1023058856, -52655372, 1205265085, -695549955, -1661513758, 389404208, 2057205351, -1349792544, 653772989, 2119984675, 91374627, 562365555, -2009227815, 1937090128, 1451222667, -174778389, -1183913671, 869465081, -915229401, -19412255, -292750347, -298118284, -893406275, 808106686, -1156024631, 2038983908, -4405893, -691539384, -76910684, -1854669176, 2136108708, -1297923149, -137580401, -19017672, -654368457, -1859442504, 1097757363, 1072003528, -1343770633
Data.l -1616905065, 568080374, -87042024, 1677457820, 1542789941, -340793627, -63841855, 374948277, -63561743, -172074828, 800191900, 1930569578, 1380440036, 1910799479, -1215502660, -369839590, -2140931054, 2074865960, -60104988, 1465005788, -1093427223, -1470240325, 1859250392, -1684345103, -1779180954, -243732773, 1176474704, 1941768269, -1379016992, -654845896, 1592349822, 1447025531, -1118309994, -1378721910, -1896596010, 117043061, 2033100635, -2096446158, -585710169, -401628566, -399946175, 1025917164, 399192725, -1434795021, 2085315775, -1367702405, 798332342, 772847363, -1839744424, 1634658501, -734567005, -1216774289, 1810685913, 1272540597, 1869675516, -1390191122, -1997858594, -1154673822, -1716063375, -1868690547, -977649479, -2022763837, -426147202, -2102556077
Data.l 1752382932, -1103391072, -1479043041, -1340759802, 1372620999, 71829542, -980568634, -398479809, -1688490628, -1048834129, -138647630, 904199555, -158052725, 1787159038, -536319177, 758202029, 1975502870, -889430643, 1534496722, 2005476827, 888888303, -306776197, -1179489230, 109308243, 1618165287, -469301038, -2056334472, -1158116295, 896427386, -1713382074, 1808018468, -1130584506, -950828682, -432736026, 1433818559, -238857970, -543398646, 1013626642, -490400163, -1183247653, -2008034463, -445016718, -763855537, -1301338568, -120656964, -1183250532, -1447628676, -150682134, -1142034617, 1470740468, 1786026950, -555478626, -1993540755, -177758694, 1608898244, 1085502228, 1400743713, -276863694, -153680670, 719056245, -821449282, -126950450, 879743084, -1762519690
Data.l 743824334, 750332702, 1549994631, 1973054348, -1634651991, -1076162753, -1917469754, 1828426616, -1646382283, -1768891269, 261687679, -1556351322, 2139067729, -609014852, 255246506, -1968892998, -1805651349, -40715783, 1265557892, -1638685380, -285280531, -277563183, 1248992092, -1300699461, 852721063, 1003857597, 1953311790, 78657465, 121544173, -1554077302, -829541938, 989605880, 1423561661, -189572254, -1940642757, -943341109, -595281644, -1819168159, 1149114869, 497546531, -993406817, 2074368997, -963988912, 1337895781, -1661070199, -1553789896, -286024238, -349456267, -962953283, 1894310305, 43347140, 379777433, -1541733959, -1456453374, 1305261643, 1370402053, 2011977074, 828030904, -1024834214, -1389151274, 1524052453, -751363844, 1311450605, -1060391399
Data.l 1274519410, 964851157, 2133626417, -1653114590, 1675453511, -1952473096, -1080339778, 148004015, 1525258109, 1349878503, 497424286, -605201187, 1807122283, 586330590, -995761991, 1220581676, -1199397171, -730084574, -152618005, 646654799, -861891110, -56351357, -39098525, -405935893, 1791315930, 1537732955, 1018947261, -209931389, -1790810013, -338655686, 774756081, -1234333879, 608951639, 781163088, -1808950702, -2043815010, -4648040, -673246840, -1228521810, 1304892852, 1723973493, -725859735, 2070049467, 1780894810, 996452721, 1921737235, 389880544, -913738378, 1965877924, 1455144864, -281749955, 2107694056, -12710439, -1697260808, -1700057204, 1263006263, 243888667, 1542284269, -1657125524, 1974472038, 1341622366, -605103715, -824805427, 663433470
Data.l -153217156, 1991750006, 1841396189, 322700089, -1404375690, -2015947742, 1727375943, 1528027751, 936484751, 1270050773, 1551341544, -1788790833, -667571925, 1186512502, -73596223, -511552967, -2597249, 1013955663, -1451468180, -411361107, 1759602325, 779768679, 1243604783, 1971429318, 982323445, 363467701, -40806853, 792210935, -2023508791, -500572427, 2033444345, -1243967357, -793882119, 2046747523, 364823291, -451103784, -504618632, 2127360283, 1307310971, 1989903119, 2033338795, -858392794, -181426275, 395258235, 1310755910, 256560582, -441814200, -1234789669, 516206074, -1176721007, -759457877, -2072897106, -1856201586, -407024586, -250246110, 169723086, -211617434, -144711518, -387844801, 456042245, 1491204409, 1917475773, -555754591, 2006029522
Data.l -2107382581, 520432456, -1161616816, -689993771, -1089674707, -474257106, -622471598, -53597346, -2121696581, 338236951, 1030221109, 555208090, -1699355192, 299035169, -1067092069, -381822129, -472262337, -1101357614, -1421887535, -966247756, 1150447818, -1817634181, 1564875235, -1407866264, -1098954403, 2057025343, 1067247185, -609878195, -1010087982, -1431848386, -447186463, 1163108058, -545962169, -397311131, -1142341978, -550023506, 1145633014, 192355624, 957912466, 642890985, 1487784837, -982109725, -1649752627, -941910536, 2084418958, 1770680050, -576864565, 1253992422, 1301550435, 1620794768, 1357418251, -1451179143, 1565083567, -738346371, 155049788, -1375750724, -677309026, -274604059, -1407050027, -2082120337, -621426191, -1733034954, -1152845835, 31358140
Data.l 1970395847, -1638320305, -341907695, -362861544, -100712308, -1244001326, -522481138, -1373196877, -1681099363, 1928151997, 1670468407, 1825998518, -1769627190, 251997794, -817893209, 2058404288, 935713109, -620329791, -56675362, -1225861317, -1119298322, -1160325678, -2103977384, 1840994790, 1547133877, 1059819981, -1304067666, 2019405158, 2085764467, 1735051093, 1305887967, 1459950126, 698821726, 1688088376, 1181062086, -356434201, -31696341, -704457421, -1149458035, -649729167, -840471236, -1937336924, 1617444665, -978630897, -168750805, 245749234, -1918784677, 1962719225, -1425520795, -1990764634, 1652110756, -819115532, -2084318567, -719570201, -549556000, 1725561951, -72449030, -1009576969, -38303049, 487757310, -890937560, -373970991, 1216686046, 1865921117
Data.l 748557290, -1008306470, 712415215, 744207037, -927718617, 124202168, -1782288022, 1630695908, -160724017, 1525697197, -1612173894, -1311847871, 1956367735, 991159380, 1193434205, 506694386, -162899140, -973536911, 1378754331, -733048580, -33573633, 959540175, 176577700, 1716669439, 1215674850, -1459620447, -347137579, -423835356, 706936196, -1795168945, -1998595921, 2028739359, -1243076294, -1769152873, -403833922, -510070965, 373394394, -1899570849, -1436326486, -1765277492, -998316141, 667042299, -1124536693, 1598913981, -36982800, -997266533, 403371573, 555317182, -1161558141, -1105413645, 1407739422, 1323842207, -1968357503, -619003762, 640401733, -1864773377, 2106359450, -771499139, 194980855, -339743651, -1818302257, 1835857567, -855899577, -75561987
Data.l -34545859, -1074632758, 1864122299, 1560280827, 935983075, -102799756, 2054211419, -1445726676, -893930777, -320352642, -1298932763, -336315285, 721004419, 1474271990, -551305276, 202518262, -1300959123, -1919537825, 1670734971, -27702347, 1565194152, -1250220613, -1543645211, 1952622901, -589012762, 1239621117, -18051231, 1239806321, -9680412, -218268620, -102760461, -70463625, -562184738, -616384742, 666910012, 362453700, -1854561715, -1982509057, -473084605, -322555119, 1759474877, -82987317, -2027862174, -179114229, 746038431, 1250226367, -1774373065, 1031399020, -824589106, -1185012820, 428235712, 1527522812, -1885736366, 900617853, -1145636047, -31517630, -1192178922, -1620324630, -520340092, -1237555714, -1287899521, -137519649, -1298559594, -1695287009
Data.l -319980705, -812738067, -1401162274, 1028602739, -1013058156, -1175592049, -1178964613, -882025449, 1582613476, -1915076779, -1044828495, 1930359352, 1466724300, -1419585221, -1233844689, 1718327623, -567317484, 1200312199, -1679073815, 681535815, -623255226, -794547346, -301840925, -1929062098, 1813000266, 1009906169, 2087880382, 1072971652, 1596702610, -419597322, -830806018, -134834933, -562250378, -1695157858, -2069403693, 228543179, 275815084, -302395928, -7230721, 25508565, -87076874, 1853812575, -189794482, 1843421150, -1742757592, 2094908734, -841042149, -1272751698, -1131548133, -421168868, 1349127182, 792933312, 1912329563, -1569242014, 1306377896, 2129060383, 2124082961, -975640021, 2000273163, -1353196677, -478777699, -1335140169, 365565795, -1025735418
Data.l 1558652349, 988327775, -1110679747, 1667875190, -1468877090, 1803668468, -2019053783, 1143590533, -84795235, 381880137, 1799296348, 1994373242, 1511381982, 230783107, -287505604, -176772754, 929199066, -2117201026, 1529444187, 822551576, -1160238460, -414465001, -978100682, -1077749067, -291417009, -26063766, -1181877842, -1864614894, 955823943, -1653583425, 1456196707, 2026061119, 609080169, -2049523825, -1948904642, 1679458586, -2031961142, -491352563, 1905085285, 2001989155, 1991464378, -1418216000, 1882225028, -963737362, -697451368, -1619020842, -1651105357, -1108814291, 1306055908, -641540698, -1388240092, 1040661176, 2137857838, 468309724, 1863837242, -563991189, -54581957, -2037108227, -623036573, -916685391, 1700001046, 1470216921, -137156084, -1622443940
Data.l 1864171812, 2141813337, -735101074, -1797676087, 1865853718, -1449691242, 315469280, -1030845794, -692337743, 2067062651, -61827353, -1289509159, -685479721, 2008731092, -2114897682, -1320785623, -1896052519, -1797708647, 1367976627, 1697564129, 657099815, 1163250016, -445394562, 2095217283, -1915800248, 940630009, -753063378, 1433308671, -1847992618, 740474969, 614789462, 1187518640, -1123058819, -1654533065, -1292458378, -1419928833, -151757892, -1131167495, -370894648, 1875035726, 1547894621, 1602160709, -42739030, 313385119, 1637732949, -1278782514, -708663013, 1358469746, -1786936417, -1178173579, 1743828546, -2021549353, -995714651, -1419715141, 881848446, -785768532, -1434434642, -1612374408, 368291389, 1862260689, 2063040772, -251337528, 1569587045, 130405060
Data.l -603453478, 1168327649, 1865931122, -1662738675, -2080867920, -899603304, -508900460, -37616463, -705474388, -71728355, -428507245, -1732380267, -87400743, -1687950360, -440539794, 393845609, 616001245, -1201900491, 535985020, -1334696934, -1342846606, 1505156605, 1871922417, -448464549, -1859969735, 101340496, -1302752979, 1778290043, 2108029589, -1148380439, -306785930, 931774204, 943087378, 1456715588, -685543804, 462185916, 1279761541, -1273496561, 2075840317, -1971859987, -1812723073, 1431276461, -1268778614, -478972699, -413813114, 373132874, -621172625, -836549667, -1470194466, 1041864070, -605603065, 1941294918, 1574857197, -496739459, 764796717, 1397226833, 1290957452, -776156461, 267424978, 932857686, -1510136443, 1658305505, -1912968211, -1647683015
Data.l 2073345826, -476427177, -1956263045, 1903078540, -1273872434, -547876326, 1790769601, -153929628, 1466468774, 1978576529, 1974236620, -1589751722, -88110231, -933144235, -2062403936, -1310616643, -530873916, -1170266748, 1387187479, -860452629, -437407043, -1197187724, -913113231, -1272822131, -415765984, -481062321, -1733388522, 2147264016, -939647115, 2074956335, -1369514561, -859855852, 1726968822, 934916863, -174065217, -1494828582, -738479234, -1896353892, 1943192876, -487760221, 855316031, -1236614292, -847903442, -1107389523, -960295228, 1101097364, 95823608, -179464929, -1202552891, -62745397, 43441102, -2146944169, -1303432586, -404931809, 1893649276, -584507466, 798882509, -672436443, 664260153, -613068513, 635379529, 395596860, -1414058017, -1817372003
Data.l 1824053869, 930248649, -875818388, 1286492978, 1240621138, 1510960669, 1203002414, 1660529786, -1397760788, -814636335, 1952739510, 1316965777, -1336223908, -863725797, -1931005834, -777204135, 629611722, -1041728614, -1422512666, -575672975, -839999661, 1421539982, -1777058306, -1591853768, -2069921428, -305906587, -113491995, 380591179, -2086866033, -1510288070, -151677963, -370016345, -1113274644, -181502819, -1681729124, -849376982, -409716231, -855232741, 74734766, -992590744, -1755447766, 455281109, 1793681333, 1936323969, -1951107221, 1998378743, 506591328, 1886107997, -863612528, -1596327603, -124664027, -1689011372, -356131516, -1841663193, -949499393, -146033064, 1215259605, 1520203000, 812128947, 1271492785, 1699043315, 1032750534, -87349539, -244667439
Data.l 463498302, -1434665749, 1448732795, 2087894231, 1048041639, -2089173959, 39505248, 247669329, 1431325701, -153714334, -82533960, -516423815, -823096486, 1665366501, 1815499927, -945910111, -2084250182, 681893685, -356471341, 1985802109, -1174514452, 1273855430, -657075720, 1522264567, -1843823885, 1467166313, -1591747138, 548907004, -1432622529, -365175227, -1751268533, -564167907, 436004044, -255525823, 1386203727, 2071723729, 758163895, 318538337, 1085739996, -1519680261, -882065572, -1730212964, 166717342, 303009357, -2029107741, -407664734, 1916653283, -76109131, 2039157224, -1219979646, -1930486034, -1744028356, -421153892, -969200387, 381687791, 1966176606, 1653650610, 1058006905, 1567104188, -2020674308, 2073918087, 1869831623, 1852686196, -1789702580
Data.l -1936113260, 320396371, -1924503508, -1241900772, -738864294, -877691914, 1551952509, 1927370537, 948481074, 1434457794, -1192309149, -1473233978, 1510290981, 650488227, -1435741096, -455463299, -1340149001, -1893178055, -891820773, -1952454428, 707130045, 1332259990, -1371617553, -1563961665, -283168941, 1783965267, -521875900, -150261271, -1408270357, 897013949, -907303069, 1372781425, -1143080160, -1260388997, -823150147, -56780071, 1845284076, -122225553, -1754342154, -281049278,